| CPC H04L 9/0869 (2013.01) [G06F 16/2255 (2019.01); G06F 16/288 (2019.01)] | 13 Claims |

|
1. A cryptographic data access method to be executed by a data storage system that includes a server apparatus and a client apparatus, the server apparatus and the client apparatus each including at least a processor and a memory, and performing processing in cooperation with each other,
where k and m are integers of 2 or more, and i is each of the integers that are 2 or more and m or less,
a data array and a data table are stored in a data storage of the server apparatus, the data array being for storing k data elements each consisting of data and a first key associated with the data, and the data table including at least one hash table for storing k or more data records each consisting of a data index that is randomly generated based on the first key, the first key, and the data, and
m−1 key relationship arrays and m−1 key relationship tables are stored in a key relationship storage of the server apparatus, each of the m−1 key relationship arrays being for storing k key relationship elements each consisting of the first key and another key associated with the data, and each of the m−1 key relationship tables including at least one hash table for storing k or more key relationship records each consisting of a key relationship index that is randomly generated based on the other key, the first key, and the other key,
the data access method comprising:
generating, by a search key generation circuitry of the client apparatus, m search keys;
transmitting, by the search key generation circuitry of the client apparatus, a signal indicating a request for data access to the server apparatus;
transmitting, by a key relationship array transmission circuitry of the server apparatus, an i-th key relationship array to the client apparatus;
holding, by a key relationship array search circuitry of the client apparatus, the first key of this key relationship element as a found search key if a key relationship element that matches an i-th search key is present in the i-th key relationship array received from the server apparatus;
transmitting, by a key relationship index generation circuitry of the client apparatus, a key relationship index generated based on the i-th search key to the server apparatus;
transmitting, by a key relationship table search circuitry of the server apparatus, a key relationship record that is read out from the key relationship table using the key relationship index received from the client apparatus, to the client apparatus;
holding, by a key relationship record reference circuitry of the client apparatus, the first key of this key relationship record as the found search key if the key relationship record received from the server apparatus matches the i-th search key;
transmitting, by a key relationship array return circuitry of the client apparatus, a key relationship array in which a key relationship element consisting of the found search key and the i-th search key is set for an empty element of the i-th key relationship array, to the server apparatus;
transmitting, by a data array transmission circuitry of the server apparatus, the data array to the client apparatus;
holding, by a data array search circuitry of the client apparatus, data of this data element as found data if a data element that matches the found search key or the first search key is present in the data array received from the server apparatus;
generating, by a data index generation circuitry of the client apparatus, a data index based on the found search key if the found search key is held, or generating, by the data index generation circuitry, a data index based on the first search key if the found search key is not held, and transmitting, by a data index generation circuitry, the generated data index to the server apparatus;
identifying, by a data table search circuitry of the server apparatus, a data record using the data index received from the client apparatus, and reading out the data record;
transmitting, by the data table search circuitry of the server apparatus, the data record that is read out from the data table using the data index received from the client apparatus, to the client apparatus to allow the client apparatus to access the data record;
holding, by a data record reference circuitry of the client apparatus, data of this data record as the found data if the data record received from the server apparatus matches the found search key or the first search key; and
setting, by a data array return circuitry of the client apparatus, a data element consisting of desired data and the found search key for an empty element of the data array if the found data and the found search key are held, or setting, by the data array return circuitry, a data element consisting of desired data and the first search key for an empty element of the data array if the found data and the found search key are not held, and transmitting, by the data array return circuitry, an updated data array to the server apparatus.
|