JP2011198079A - System and method for encrypting database - Google Patents

System and method for encrypting database Download PDF

Info

Publication number
JP2011198079A
JP2011198079A JP2010064555A JP2010064555A JP2011198079A JP 2011198079 A JP2011198079 A JP 2011198079A JP 2010064555 A JP2010064555 A JP 2010064555A JP 2010064555 A JP2010064555 A JP 2010064555A JP 2011198079 A JP2011198079 A JP 2011198079A
Authority
JP
Japan
Prior art keywords
ciphertext
cipher
database
stochastic
deterministic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010064555A
Other languages
Japanese (ja)
Other versions
JP5411034B2 (en
Inventor
Natsuki Ishida
夏樹 石田
Akira Moriguchi
昭 森口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2010064555A priority Critical patent/JP5411034B2/en
Publication of JP2011198079A publication Critical patent/JP2011198079A/en
Application granted granted Critical
Publication of JP5411034B2 publication Critical patent/JP5411034B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform high-speed exact match search with respect to a database storing probabilistically encrypted data, as well as partial match search with respect to a database storing encrypted data.SOLUTION: For high-speed exact match search with respect to the database storing probabilistically encrypted data, a definite encryption table and a ciphertext relation table that holds encrypted relation between tables are provided in addition to a probabilistic encryption table. The definite encryption table is searched, and the search result is converted by the ciphertext relation table, to obtain a result of search on the probabilistic encryption table. The database that stores encrypted data includes a definite encryption table which holds an index value for high-speed partial match search, and performs binary-research on a definite ciphertext based on the index value using the definite encryption table to narrow a range of the partial match search.

Description

本発明は、データベースのセキュリティを強化するデータベース暗号化システムに関する。   The present invention relates to a database encryption system for enhancing database security.

データベースに格納されているデータは、データベース管理者による不正持ち出しや外部不正者によるSQLインジェクション攻撃に晒されており、データ漏洩が問題になっている。
そこで、データベースのセキュリティ対策として、データを暗号化してデータベースに格納するデータベース暗号化システムがある。
Data stored in the database is exposed to unauthorized removal by database administrators and SQL injection attacks by external unauthorized persons, and data leakage is a problem.
Therefore, as a database security measure, there is a database encryption system that encrypts data and stores it in the database.

図10に、特許文献1などに記載されている、データを決定的暗号化したデータベースの一例を示す。
データを決定的暗号化した場合、同一データは同一暗号文として記憶されため、不正者はレコード間で同一データであることが分かるという問題点がある。
図11に、データを確率的暗号化したデータベースの一例を示す。
データを確率的暗号化した場合、同一データでも異なる暗号文として記憶されるため、不正者はレコード間で同一データであることが分からないという利点がある。
FIG. 10 shows an example of a database in which data is decisively encrypted as described in Patent Document 1 and the like.
When the data is definitively encrypted, the same data is stored as the same ciphertext, and thus there is a problem that an unauthorized person knows that the same data exists between records.
FIG. 11 shows an example of a database in which data is stochastically encrypted.
When data is stochastically encrypted, even the same data is stored as different ciphertexts, so there is an advantage that an unauthorized person does not know that the data is the same between records.

なお、確率的暗号化はデータに対し乱数を付加して暗号化するものである。   Note that stochastic encryption is performed by adding random numbers to data.

特開2009−99151号公報JP 2009-99151 A

データを決定的暗号化した場合、完全一致検索データを1回だけ暗号化して探せるため、完全一致検索処理を高速に行なうことができる。データを確率的暗号化した場合、完全一致検索データをレコード毎に暗号化して探すため、完全一致検索処理を高速に行なうことができない。
したがって、データを確率的暗号化したデータベースでは、完全一致検索処理を高速に行なうことができないという課題がある。
When the data is definitively encrypted, the exact match search data can be encrypted and searched only once, so that the exact match search process can be performed at high speed. When the data is stochastically encrypted, the exact match search data is encrypted for each record and searched, so the exact match search process cannot be performed at high speed.
Therefore, a database in which data is stochastically encrypted has a problem that the exact match search process cannot be performed at high speed.

データを暗号化した場合、部分一致検索データに対応する全ての完全一致検索データについて暗号化して探すことは、高速に行なうことができない。
例えば、部分一致検索文字列「AAA」から始まるデータを検索する場合、完全一致検索データ「AAAA...A」から「AAAZ...Z」までの莫大な数の完全一致検索データについて暗号化して探す必要があり、事実上不可能である。
したがって、データを暗号化したデータベースでは、部分一致検索処理を高速に行なうことができないという課題がある。
When data is encrypted, it is not possible to search for all complete match search data corresponding to partial match search data in an encrypted manner at high speed.
For example, when searching for data that begins with the partial match search string “AAA”, the enormous number of complete match search data from “AAAA ... A” to “AAAZ ... Z” is encrypted. This is virtually impossible.
Therefore, there is a problem that a partial match search process cannot be performed at high speed in a database in which data is encrypted.

本発明の目的は、データを確率的暗号化したデータベースでも完全一致検索処理を高速に行なうことができ、またデータを暗号化したデータベースでも、部分一致検索処理を高速に行なうことができるデータベース暗号化システム及び方法を提供することにある。   An object of the present invention is to perform database matching capable of performing a complete match search process at high speed even in a database in which data is stochastically encrypted, and capable of performing a partial match search process in a database at a high speed. It is to provide a system and method.

上記目的を達成するために本発明に係るシステムは、データベースサーバとアプリケーションサーバがネットワークを介して接続して構成され、前記データベースサーバのデータベースが確率的暗号テーブルと決定的暗号テーブルと暗号文関係テーブルとを記憶し、前記アプリケーションサーバのデータベースが暗号鍵を記憶するデータベース暗号化システムであって、
前記データベースへのデータ登録処理を行うために、
前記アプリケーションサーバが、前記データベースへの登録対象データを確率的暗号化と決定的暗号化し、前記データベースサーバに確率的暗号文5と決定的暗号文とを送信する手段を備え、
前記データベースサーバが、前記確率的暗号テーブルに確率的暗号文と確率的暗号IDを含むレコードを挿入し、前記決定的暗号テーブルに決定的暗号文と決定的暗号IDを含むレコードを挿入した後、前記アプリケーションサーバに確率的暗号IDと決定的暗号IDを送信する手段を備え、
アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号IDと決定的暗号IDを決定的暗号化し、前記データベースサーバに確率的暗号ID暗号文と決定的暗号ID暗号文を送信する手段を備え、
前記データベースサーバが、前記暗号文関係テーブルに確率的暗号ID暗号文と決定的暗号ID暗号文を含むレコードを挿入する手段を備えることを特徴とする。
In order to achieve the above object, a system according to the present invention is configured by connecting a database server and an application server via a network, and the database of the database server includes a stochastic encryption table, a deterministic encryption table, and a ciphertext relationship table. And a database encryption system in which the database of the application server stores an encryption key,
In order to perform data registration processing in the database,
The application server includes means for performing stochastic encryption and deterministic encryption on data to be registered in the database, and transmitting the stochastic ciphertext 5 and the deterministic ciphertext to the database server,
After the database server inserts a record including a stochastic ciphertext and a stochastic cipher ID into the stochastic cipher table, and inserts a record including a deterministic ciphertext and a deterministic cipher ID into the deterministic cipher table, Means for transmitting a stochastic cryptographic ID and a definitive cryptographic ID to the application server;
The application server deterministically encrypts the stochastic cipher ID and the deterministic cipher ID with the cipher key obtained from the deterministic cipher text, and transmits the stochastic cipher ID cipher text and the definitive cipher ID cipher text to the database server. With means,
The database server includes means for inserting a record including a stochastic cipher ID ciphertext and a deterministic cipher ID ciphertext into the ciphertext relationship table.

また、前記データベースのデータ完全一致検索処理として、
前記アプリケーションサーバが、
データを決定的暗号化して前記データベースサーバに決定的暗号文を送信する手段を備え、
前記データベースサーバが、前記決定的暗号テーブルから決定的暗号文を含むレコードから決定的暗号IDを射影し、アプリケーションサーバに決定的暗号IDを送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化して前記データベースサーバに決定的暗号ID暗号文を送信する手段を備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信する手段を備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信する手段を備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得する手段を備えることを特徴とする。
In addition, as a data exact match search process of the database,
The application server is
Means for deterministically encrypting data and transmitting deterministic ciphertext to the database server;
The database server comprises means for projecting a definitive cipher ID from a record including a definitive ciphertext from the deterministic cipher table and transmitting the definitive cipher ID to the application server;
The application server comprises means for deterministically encrypting a definitive cipher ID with an encryption key obtained from the deterministic ciphertext and transmitting the definitive cipher ID ciphertext to the database server,
The database server includes means for projecting a stochastic cipher ID ciphertext from a record including a deterministic cipher ID ciphertext from the ciphertext relationship table and transmitting the stochastic cipher ID ciphertext to the application server;
The application server comprises means for deterministically decrypting a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmitting a stochastic cipher ID to the database server;
The database server includes means for selecting a record including a probabilistic encryption ID from the probabilistic encryption table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result Means are provided.

また、データベースのデータ登録処理として、
前記データベースサーバが、前記データベースのインデックス値登録処理を決定的暗号IDと決定的暗号文を入力として実行する手段を備え、
データベースのデータ部分一致検索処理として、
前記アプリケーションサーバが、検索範囲開始データと検索範囲終端データを決定的暗号化し、前記データベースサーバに検索範囲開始データ暗号文と検索範囲終端データ暗号文を送信する手段を備え、
前記データベースサーバが、前記データベースのインデックス値取得処理を検索範囲開始データ暗号文を入力として実行し、前記データベースのインデックス値取得処理を検索範囲終端データ暗号文を入力として実行し、前記決定的暗号テーブルからインデックス値が検索範囲開始インデックス値以上かつ検索範囲終端インデックス値未満であるレコードから決定的暗号IDと決定的暗号文を射影し、前記アプリケーションサーバに決定的暗号IDと決定的暗号文を送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文を決定的復号し、平文のソート順番が検索範囲開始データと検索範囲終端データの間ならば、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化し、前記データベースサーバに決定的暗号ID暗号文を送信する手段を備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信する手段を備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信する手段を備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、前記レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得する手段を備えることを特徴とする。
In addition, as database data registration processing,
The database server comprises means for executing an index value registration process of the database with a definitive cipher ID and a definitive ciphertext as inputs,
Database partial match search processing of database,
The application server includes means for definitively encrypting search range start data and search range end data, and transmitting the search range start data ciphertext and search range end data ciphertext to the database server,
The database server executes index value acquisition processing of the database with a search range start data ciphertext as input, executes index value acquisition processing of the database with a search range end data ciphertext as input, and the deterministic encryption table Projecting the definitive cipher ID and the definitive ciphertext from the record whose index value is greater than or equal to the search range start index value and less than the search range end index value, and transmits the definitive cipher ID and definitive ciphertext to the application server With means,
If the application server deciphers the deterministic ciphertext and the plaintext sort order is between search range start data and search range end data, a deterministic cipher ID is obtained using the cipher key obtained from the deterministic ciphertext. Means for deterministically encrypting and transmitting a definitive cipher ID ciphertext to the database server,
The database server includes means for projecting a stochastic cipher ID ciphertext from a record including a deterministic cipher ID ciphertext from the ciphertext relationship table and transmitting the stochastic cipher ID ciphertext to the application server;
The application server comprises means for deterministically decrypting a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmitting a stochastic cipher ID to the database server;
The database server includes means for selecting a record including a probabilistic encryption ID from the probabilistic encryption table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result It has the means to do, It is characterized by the above-mentioned.

また、本発明に係る方法は、データベースサーバとアプリケーションサーバがネットワークを介して接続して構成され、前記データベースサーバのデータベースが確率的暗号テーブルと決定的暗号テーブルと暗号文関係テーブルとを記憶し、前記アプリケーションサーバのデータベースが暗号鍵を記憶するデータベース暗号化方法であって、
前記データベースへのデータ登録処理を行うために、
前記アプリケーションサーバが、前記データベースへの登録対象データを確率的暗号化と決定的暗号化し、前記データベースサーバに確率的暗号文5と決定的暗号文とを送信するステップを備え、
前記データベースサーバが、前記確率的暗号テーブルに確率的暗号文と確率的暗号IDを含むレコードを挿入し、前記決定的暗号テーブルに決定的暗号文と決定的暗号IDを含むレコードを挿入した後、前記アプリケーションサーバに確率的暗号IDと決定的暗号IDを送信するステップを備え、
アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号IDと決定的暗号IDを決定的暗号化し、前記データベースサーバに確率的暗号ID暗号文と決定的暗号ID暗号文を送信するステップを備え、
前記データベースサーバが、前記暗号文関係テーブルに確率的暗号ID暗号文と決定的暗号ID暗号文を含むレコードを挿入する手ステップを備えることを特徴とする。
The method according to the present invention is configured by connecting a database server and an application server via a network, and the database of the database server stores a stochastic encryption table, a deterministic encryption table, and a ciphertext relationship table, A database encryption method in which the database of the application server stores an encryption key,
In order to perform data registration processing in the database,
The application server comprises the steps of probabilistic encryption and deterministic encryption of data to be registered in the database, and transmitting the stochastic ciphertext 5 and deterministic ciphertext to the database server,
After the database server inserts a record including a stochastic ciphertext and a stochastic cipher ID into the stochastic cipher table, and inserts a record including a deterministic ciphertext and a deterministic cipher ID into the deterministic cipher table, Transmitting a stochastic cryptographic ID and a definitive cryptographic ID to the application server,
The application server deterministically encrypts the stochastic cipher ID and the deterministic cipher ID with the cipher key obtained from the deterministic cipher text, and transmits the stochastic cipher ID cipher text and the definitive cipher ID cipher text to the database server. With steps,
The database server includes a manual step of inserting a record including a stochastic cipher ID ciphertext and a deterministic cipher ID ciphertext into the ciphertext relation table.

また、前記データベースのデータ完全一致検索処理として、
前記アプリケーションサーバが、
データを決定的暗号化して前記データベースサーバに決定的暗号文を送信するステップを備え、
前記データベースサーバが、前記決定的暗号テーブルから決定的暗号文を含むレコードから決定的暗号IDを射影し、アプリケーションサーバに決定的暗号IDを送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化して前記データベースサーバに決定的暗号ID暗号文を送信するステップを備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信するステップを備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信するステップを備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得するステップを備えることを特徴とする。
In addition, as a data exact match search process of the database,
The application server is
Deterministically encrypting data and sending definitive ciphertext to the database server,
The database server includes projecting a definitive cipher ID from a record including definitive ciphertext from the deterministic cipher table and transmitting the definitive cipher ID to the application server;
The application server includes a step of definitively encrypting a definitive cipher ID with an encryption key obtained from the deterministic ciphertext and transmitting the definitive cipher ID ciphertext to the database server,
The database server includes a step of projecting a stochastic cipher ID ciphertext from a record including a definitive cipher ID ciphertext from the ciphertext relationship table, and transmitting the stochastic cipher ID ciphertext to the application server,
The application server deterministically decrypts a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmits the stochastic cipher ID to the database server,
The database server comprises selecting a record including a stochastic cipher ID from the stochastic cipher table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result It is characterized by comprising a step.

また、データベースのデータ登録処理として、
前記データベースサーバが、前記データベースのインデックス値登録処理を決定的暗号IDと決定的暗号文を入力として実行するステップを備え、
データベースのデータ部分一致検索処理として、
前記アプリケーションサーバが、検索範囲開始データと検索範囲終端データを決定的暗号化し、前記データベースサーバに検索範囲開始データ暗号文と検索範囲終端データ暗号文を送信するステップを備え、
前記データベースサーバが、前記データベースのインデックス値取得処理を検索範囲開始データ暗号文を入力として実行し、前記データベースのインデックス値取得処理を検索範囲終端データ暗号文を入力として実行し、前記決定的暗号テーブルからインデックス値が検索範囲開始インデックス値以上かつ検索範囲終端インデックス値未満であるレコードから決定的暗号IDと決定的暗号文を射影し、前記アプリケーションサーバに決定的暗号IDと決定的暗号文を送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文を決定的復号し、平文のソート順番が検索範囲開始データと検索範囲終端データの間ならば、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化し、前記データベースサーバに決定的暗号ID暗号文を送信するステップを備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信するステップを備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信するステップを備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、前記レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得するステップを備えることを特徴とする。
In addition, as database data registration processing,
The database server includes a step of executing an index value registration process of the database with a definitive cipher ID and a definitive ciphertext as inputs,
Database partial match search processing of database,
The application server includes the step of definitively encrypting search range start data and search range end data, and transmitting the search range start data ciphertext and search range end data ciphertext to the database server,
The database server executes index value acquisition processing of the database with a search range start data ciphertext as input, executes index value acquisition processing of the database with a search range end data ciphertext as input, and the deterministic encryption table Projecting the definitive cipher ID and the definitive ciphertext from the record whose index value is greater than or equal to the search range start index value and less than the search range end index value, and transmits the definitive cipher ID and definitive ciphertext to the application server With steps,
If the application server deciphers the deterministic ciphertext and the plaintext sort order is between search range start data and search range end data, a deterministic cipher ID is obtained using the cipher key obtained from the deterministic ciphertext. Deciphering and sending a definitive cipher ID ciphertext to the database server,
The database server includes a step of projecting a stochastic cipher ID ciphertext from a record including a definitive cipher ID ciphertext from the ciphertext relationship table, and transmitting the stochastic cipher ID ciphertext to the application server,
The application server deterministically decrypts a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmits the stochastic cipher ID to the database server,
The database server comprises selecting a record including a stochastic cipher ID from the stochastic cipher table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result The step which performs is characterized by the above-mentioned.

本発明によれば、確率的暗号テーブルの他に、決定的暗号テーブルと、両テーブル間の関係を暗号化して保持する暗号文関係テーブルを設け、決定的暗号テーブルで検索し、検索結果を暗号文関係テーブルで変換することで、確率的暗号テーブルでの検索結果を取得する。
これにより、データを確率的暗号化したデータベースでも、完全一致検索処理を高速に行なうことができる。
インデックス値を保持する決定的暗号テーブルを設け、この決定的暗号テーブルでインデックス値に基づいて決定的暗号文をバイナリサーチすることで、部分一致検索範囲を絞り込む。
これにより、データを暗号化したデータベースでも、部分一致検索処理を高速に行なうことができる。
検索結果を暗号文関係テーブルで変換する際に、検索結果の関係を変換することを、検索結果データの決定的暗号文から取得した暗号鍵で変換することで保証する。
これにより、不正者が任意の関係を変換できないため、不正者が任意のレコード間で同一データであることが分からないようにできる。
According to the present invention, in addition to the stochastic encryption table, a deterministic encryption table and a ciphertext relationship table that encrypts and holds the relationship between the two tables are provided, a search is performed using the deterministic encryption table, and the search result is encrypted. The search result in the probabilistic encryption table is acquired by converting the sentence relation table.
Thereby, even in a database in which data is stochastically encrypted, the exact match search process can be performed at high speed.
A deterministic encryption table that holds index values is provided, and the partial cipher search range is narrowed down by performing a binary search on the deterministic ciphertext based on the index values.
Thereby, even in a database in which data is encrypted, partial match search processing can be performed at high speed.
When the search result is converted in the ciphertext relationship table, the conversion of the search result relationship is guaranteed by the conversion using the encryption key acquired from the definitive ciphertext of the search result data.
Thereby, since an unauthorized person cannot convert arbitrary relations, it can be prevented that an unauthorized person is the same data between arbitrary records.

本発明のデータベース暗号化システムの構成の一例を示す図である。It is a figure which shows an example of a structure of the database encryption system of this invention. データベースサーバが記憶する確率的暗号テーブルの一例を示す図である。It is a figure which shows an example of the stochastic encryption table which a database server memorize | stores. データベースサーバが記憶する決定的暗号テーブルの一例を示す図である。It is a figure which shows an example of the definitive encryption table which a database server memorize | stores. データベースサーバが記憶する暗号文関係テーブルの一例を示す図である。It is a figure which shows an example of the ciphertext relationship table which a database server memorize | stores. データベースのデータ登録処理の一例を示す図である。It is a figure which shows an example of the data registration process of a database. データベースのインデックス値登録処理の一例を示す図である。It is a figure which shows an example of the index value registration process of a database. データベースのインデックス値取得処理の一例を示す図である。It is a figure which shows an example of the index value acquisition process of a database. データベースのデータ完全一致検索処理の一例を示す図である。It is a figure which shows an example of the data exact match search process of a database. データベースのデータ部分一致検索処理の一例を示す図である。It is a figure which shows an example of the data partial matching search process of a database. データを決定的暗号化したデータベースの一例を示す図である。It is a figure which shows an example of the database which deciphered data. データを確率的暗号化したデータベースの一例を示す図である。It is a figure which shows an example of the database which encrypted data stochastically.

以下、本発明のデータベース暗号化システムの構成の一例について、図1を参照しながら説明する。
図1において、本発明のデータベース暗号化システムは、データベースサーバ1とアプリケーションサーバ2がネットワーク3を介して接続して構成される。
データベースサーバ1は、中央演算処理装置4と主記憶装置6と補助記憶装置8とネットワーク通信装置12がデータバス8を介して接続して構成される。
また、アプリケーションサーバ2は、中央演算処理装置5と主記憶装置7と補助記憶装置9とネットワーク通信装置13がデータバス11を介して接続して構成される。
データベースサーバの補助記憶装置8には、確率的暗号テーブル81、決定的暗号テーブル82、暗号文関係テーブル83が設けられている。
また、アプリケーションサーバ2の補助記憶装置9には暗号鍵Kの記憶領域91が設けられている。
Hereinafter, an example of the configuration of the database encryption system of the present invention will be described with reference to FIG.
In FIG. 1, the database encryption system of the present invention is configured by connecting a database server 1 and an application server 2 via a network 3.
The database server 1 is configured by connecting a central processing unit 4, a main storage device 6, an auxiliary storage device 8, and a network communication device 12 via a data bus 8.
The application server 2 includes a central processing unit 5, a main storage device 7, an auxiliary storage device 9, and a network communication device 13 connected via a data bus 11.
The auxiliary storage device 8 of the database server is provided with a probabilistic encryption table 81, a deterministic encryption table 82, and a ciphertext relationship table 83.
The auxiliary storage device 9 of the application server 2 is provided with a storage area 91 for the encryption key K.

ここで、本発明のデータベース暗号化システムで使用する暗号について説明する。
確率的暗号とは、IV(暗号利用モードの初期化ベクトル)またはSALT(平文に付加するランダムなビット列)が有る共通鍵暗号である。
確率的暗号化処理PEは、暗号鍵Kと平文Mを入力として、暗号文PE(K,M)を出力する。
確率的暗号化処理では、入力が同一の暗号鍵と平文であっても、IVまたはSALTの値が異なれば、出力は異なる暗号文になる。
確率的復号処理PDは、暗号鍵Kと暗号文Cを入力として、平文PD(K,C)を出力する。
決定的暗号とは、IVおよびSALTが無い共通鍵暗号である。
決定的暗号化処理DEは、暗号鍵Kと平文Mを入力として、暗号文DE(K,M)を出力する。
決定的暗号化処理では、入力が同一の暗号鍵と平文ならば、出力は同一の暗号文になる。
決定的復号処理DDは、暗号鍵Kと暗号文Cを入力として、平文DD(K,C)を出力する。
鍵付きセキュアハッシュ処理Hは、暗号鍵KとメッセージMを入力として、セキュアハッシュ値H(K,M)を出力する。
Here, encryption used in the database encryption system of the present invention will be described.
The probabilistic encryption is a common key encryption having IV (initialization vector for encryption usage mode) or SALT (random bit string added to plaintext).
The probabilistic encryption processing PE receives the encryption key K and the plaintext M and outputs the ciphertext PE (K, M).
In the stochastic encryption process, even if the input is the same encryption key and plaintext, the output is different if the IV or SALT value is different.
Probabilistic decryption PD receives cipher key K and ciphertext C as inputs and outputs plaintext PD (K, C).
A deterministic cipher is a common key cipher without IV and SALT.
The definitive encryption process DE receives the encryption key K and the plaintext M, and outputs the ciphertext DE (K, M).
In the definitive encryption process, if the input is the same encryption key and plain text, the output is the same cipher text.
The definitive decryption process DD receives the encryption key K and the ciphertext C and outputs plaintext DD (K, C).
The keyed secure hash process H receives the encryption key K and the message M and outputs a secure hash value H (K, M).

例えば、セキュアハッシュ関数をSHA−256かつ共通鍵暗号をAES256ビットとすると、セキュアハッシュ値と暗号鍵のビット長が同じため、セキュアハッシュ値を暗号鍵にすることができる。
アプリケーションサーバ2が、暗号鍵Kを記憶する。
For example, if the secure hash function is SHA-256 and the common key cipher is AES256 bits, the secure hash value and the encryption key have the same bit length, so the secure hash value can be used as the encryption key.
The application server 2 stores the encryption key K.

データベースサーバ1が記憶する確率的暗号テーブル81の一例について、図2を参照しながら説明する。
確率的暗号テーブル81の必須カラムは、確率的暗号ID811と確率的暗号文812である。
確率的暗号ID811は、ユニーク制約のあるカラムである。
図2の確率的暗号テーブル81は、確率的暗号文カラムとして名前812とカード番号813を確率的暗号化した暗号文と、個人情報カラムとして年齢814を格納したテーブルである。
データベースサーバ1が記憶する決定的暗号テーブル82の一例について、図3を参照しながら説明する。
決定的暗号テーブル82のカラムは、決定的暗号ID821と決定的暗号文822とインデックス値823である。
決定的暗号ID821は、ユニーク制約のあるカラムである。
An example of the probabilistic encryption table 81 stored in the database server 1 will be described with reference to FIG.
The essential columns of the stochastic cipher table 81 are the stochastic cipher ID 811 and the stochastic ciphertext 812.
The probabilistic encryption ID 811 is a column with a unique constraint.
The stochastic cipher table 81 in FIG. 2 is a table in which a ciphertext obtained by probabilistically encrypting the name 812 and the card number 813 as a probabilistic ciphertext column and an age 814 as a personal information column are stored.
An example of the definitive encryption table 82 stored in the database server 1 will be described with reference to FIG.
The columns of the definitive cipher table 82 are definitive cipher ID 821, definitive ciphertext 822, and index value 823.
The definitive encryption ID 821 is a column with a unique constraint.

図3の決定的暗号テーブル82は、決定的暗号文カラムとして名前822とカード番号824を決定的暗号化した暗号文と、インデックス値として名前822とカード番号824の昇順ソート順番の正整数値を格納したテーブルである。
データベースサーバ1が記憶する暗号文関係テーブル83の一例について、図4を参照しながら説明する。
暗号文関係テーブル83のカラムは、確率的暗号ID暗号文831と決定的暗号ID暗号文832である。
確率的暗号ID暗号文831は、確率的暗号テーブル81の確率的暗号ID811を決定的暗号化した暗号文である。
決定的暗号ID暗号文832は、決定的暗号テーブル82の決定的暗号ID821を決定的暗号化した暗号文である。
データベースのデータ登録処理の一例について、図5を参照しながら説明する。
ただし、アプリケーションサーバ2が、データM(例えば名前やカード番号に相当)と個人情報(例えば年齢に相当)を記憶しているものとする。
The deterministic cipher table 82 in FIG. 3 includes ciphertext obtained by definitively encrypting the name 822 and the card number 824 as the definitive ciphertext column, and a positive integer value in the ascending sort order of the name 822 and the card number 824 as the index value. It is a stored table.
An example of the ciphertext relationship table 83 stored in the database server 1 will be described with reference to FIG.
The columns of the ciphertext relationship table 83 are the probabilistic cipher ID ciphertext 831 and the deterministic cipher ID ciphertext 832.
The stochastic cipher ID ciphertext 831 is a ciphertext obtained by definitively encrypting the probabilistic cipher ID 811 of the stochastic cipher table 81.
The definitive cipher ID ciphertext 832 is a ciphertext obtained by definitively encrypting the definitive cipher ID 821 of the definitive cipher table 82.
An example of database data registration processing will be described with reference to FIG.
However, it is assumed that the application server 2 stores data M (for example, corresponding to a name or card number) and personal information (for example, corresponding to age).

図5の例は、データベースサーバ1が記憶するテーブルが図2〜4の状態であり、データM(名前=”HITACHI TARO”, カード番号=1111222222222222)と個人情報(年齢=35)についてデータ登録処理を実行する場合である。
まず、ステップ501において、アプリケーションサーバ2が、確率的暗号化処理を、暗号鍵KとデータMを入力として実行し、出力された確率的暗号文PC=PE(K,M)を取得し、また決定的暗号化処理を、暗号鍵KとデータMを入力として実行して、出力された決定的暗号文DC=DE(K,M)を取得して、データベースサーバ1に確率的暗号文812と決定的暗号文と個人情報822を送信する。
In the example of FIG. 5, the table stored in the database server 1 is the state shown in FIGS. 2 to 4, and data registration processing is performed for data M (name = “HITACHI TARO”, card number = 1111222222222222) and personal information (age = 35). Is executed.
First, in step 501, the application server 2 executes the stochastic encryption process with the encryption key K and the data M as inputs, obtains the output stochastic ciphertext PC = PE (K, M), and The deterministic encryption process is executed with the encryption key K and the data M as inputs, the output deterministic ciphertext DC = DE (K, M) is obtained, and the database server 1 receives the probabilistic ciphertext 812 and The definitive ciphertext and personal information 822 are transmitted.

ステップ502において、データベースサーバ1が、アプリケーションサーバ2から確率的暗号文と決定的暗号文と個人情報を受信して、確率的暗号テーブル81のユニーク制約を満たすように確率的暗号ID811をランダムに生成して、確率的暗号テーブル81に生成した確率的暗号ID811と受信した確率的暗号文812と個人情報814を含むレコードを挿入して、決定的暗号テーブル82に受信した決定的暗号文822を含むレコードが記憶されているならば、ステップ503を実行して、決定的暗号テーブル82に受信した決定的暗号文822を含むレコードが記憶されていないならば、ステップ504を実行する。   In step 502, the database server 1 receives the stochastic ciphertext, deterministic ciphertext, and personal information from the application server 2, and randomly generates the stochastic cipher ID 811 so as to satisfy the unique constraint of the stochastic cipher table 81. Then, a record including the probabilistic cipher ID 811 generated in the probabilistic cipher table 81, the received probabilistic cipher text 812, and the personal information 814 is inserted, and the deterministic cipher text 822 received in the deterministic cipher table 82 is included. If a record is stored, step 503 is executed. If a record including the received definitive ciphertext 822 is not stored in the deterministic cipher table 82, step 504 is executed.

ステップ503において、データベースサーバ1が、決定的暗号テーブル82から受信した決定的暗号文822を含むレコードを選択して、選択したレコードから決定的暗号IDを射影して(すなわち抽出して)、アプリケーションサーバ2に生成した確率的暗号ID811と射影した決定的暗号ID821を送信して、ステップ504を実行する。   In step 503, the database server 1 selects a record including the definitive ciphertext 822 received from the deterministic cipher table 82, projects (ie, extracts) the definitive cipher ID from the selected record, and then selects the application. The probabilistic encryption ID 811 generated and the projected deterministic encryption ID 821 are transmitted to the server 2, and step 504 is executed.

ステップ504において、データベースサーバ1が、決定的暗号テーブル82のユニーク制約を満たすように決定的暗号ID821をランダムに生成して、決定的暗号テーブル82に生成した決定的暗号ID821と受信した決定的暗号文822を含むレコードを挿入して、データベースのインデックス値登録処理を、生成した決定的暗号ID821と受信した決定的暗号文822を入力として実行して、アプリケーションサーバ2に生成した確率的暗号ID811と決定的暗号ID821を送信して、ステップ505を実行する。   In step 504, the database server 1 randomly generates a definitive cipher ID 821 so as to satisfy the unique constraint of the deterministic cipher table 82, and the definitive cipher ID 821 generated in the definitive cipher table 82 and the received definitive cipher A record including the sentence 822 is inserted, and the index value registration process of the database is executed with the generated deterministic cipher ID 821 and the received deterministic cipher text 822 as inputs, and the probabilistic cipher ID 811 generated in the application server 2 The definitive encryption ID 821 is transmitted and step 505 is executed.

ステップ505において、アプリケーションサーバ2が、データベースサーバ1から確率的暗号ID811と決定的暗号ID821を受信して、鍵付きセキュアハッシュ処理を、暗号鍵Kと決定的暗号文DCを入力として実行して、出力されたセキュアハッシュ値KH=H(K,DC)を取得して、決定的暗号化処理を、暗号鍵KHと受信した確率的暗号IDを入力として実行して、出力された確率的暗号ID暗号文DE(KH,確率的暗号ID)を取得して、決定的暗号化処理を、暗号鍵KHと受信した決定的暗号IDを入力として実行して、出力された決定的暗号ID暗号文DE(KH,決定的暗号ID)を取得して、データベースサーバ1に確率的暗号ID暗号文と決定的暗号ID暗号文を送信する。   In step 505, the application server 2 receives the stochastic cipher ID 811 and the deterministic cipher ID 821 from the database server 1, executes the keyed secure hash process with the cipher key K and the definitive ciphertext DC as inputs, The output secure hash value KH = H (K, DC) is acquired, the deterministic encryption process is executed with the encryption key KH and the received probabilistic encryption ID as inputs, and the output probabilistic encryption ID The ciphertext DE (KH, probabilistic cipher ID) is acquired, the deterministic encryption process is executed with the cipher key KH and the received deterministic cipher ID as inputs, and the output deterministic cipher ID cipher text DE (KH, deterministic cipher ID) is acquired, and the stochastic cipher ID ciphertext and the definitive cipher ID ciphertext are transmitted to the database server 1.

ステップ506において、データベースサーバ1が、
アプリケーションサーバ2から確率的暗号ID暗号文と決定的暗号ID暗号文を受信して、暗号文関係テーブル83に受信した確率的暗号ID暗号文と決定的暗号ID暗号文を含むレコードを挿入する。
データベースのインデックス値登録処理の一例について、図6を参照しながら説明する。
ただし、決定的暗号IDと決定的暗号文を入力とする。
In step 506, the database server 1
The probabilistic cipher ID ciphertext and deterministic cipher ID ciphertext are received from the application server 2 and a record including the received probabilistic cipher ID ciphertext and deterministic cipher ID ciphertext is inserted into the ciphertext relationship table 83.
An example of database index value registration processing will be described with reference to FIG.
However, a definitive cipher ID and a definitive ciphertext are input.

図6の例は、図5のステップ504において、決定的暗号ID= DIDC981と決定的暗号文= DE(K, 1111222222222222)を入力としてインデックス値登録処理を実行する場合である。
ステップ601において、データベースサーバ1が、データベースのインデックス値取得処理を、決定的暗号文を入力として実行して、出力された登録インデックス値を取得する。
The example of FIG. 6 is a case where the index value registration process is executed in step 504 of FIG. 5 with the definitive cipher ID = DIDC981 and the definitive ciphertext = DE (K, 1111222222222222) as inputs.
In step 601, the database server 1 executes the database index value acquisition process with deterministic ciphertext as input, and acquires the output registered index value.

ステップ602において、データベースサーバ1が、決定的暗号テーブル82からインデックス値が登録インデックス値以上であるレコードを選択して、選択したレコードのインデックス値をインクリメントして更新する。   In step 602, the database server 1 selects a record whose index value is equal to or greater than the registered index value from the deterministic encryption table 82, and increments and updates the index value of the selected record.

ステップ603において、データベースサーバ1が、決定的暗号テーブル82から決定的暗号ID821を含むレコードを選択して、選択したレコードのインデックス値を登録インデックス値に更新する。   In step 603, the database server 1 selects a record including the deterministic encryption ID 821 from the deterministic encryption table 82, and updates the index value of the selected record to the registered index value.

データベースのインデックス値取得処理の一例について、図7を参照しながら説明する。
ただし、決定的暗号文を入力として、インデックス値を出力とする。
ステップ701において、データベースサーバ1が、決定的暗号テーブル82にレコードが無いならば、出力インデックス値を1として、ステップ707を実行する。
ステップ702において、データベースサーバ1が、決定的暗号テーブル82から最大のインデックス値を取得して、下限インデックス値を1として、上限インデックス値を取得した最大インデックス値とする。
An example of database index value acquisition processing will be described with reference to FIG.
However, the definitive ciphertext is input and the index value is output.
In step 701, if there is no record in the definitive encryption table 82, the database server 1 sets the output index value to 1 and executes step 707.
In step 702, the database server 1 acquires the maximum index value from the deterministic encryption table 82, sets the lower limit index value to 1, and sets the upper limit index value as the maximum index value acquired.

ステップ703において、データベースサーバ1が、下限インデックス値が上限インデックス値以下ならば、中央インデックス値を下限インデックス値と上限インデックス値の平均の整数値として、下限インデックス値が上限インデックス値より大きいならば、出力インデックス値を下限インデックス値として、ステップ707を実行する。   In step 703, if the lower limit index value is less than or equal to the upper limit index value, the database server 1 sets the central index value as an average integer value of the lower limit index value and the upper limit index value, and if the lower limit index value is greater than the upper limit index value, Step 707 is executed with the output index value as the lower limit index value.

ステップ704において、データベースサーバ1が、決定的暗号テーブル82から中央インデックス値を含むレコードを選択して、選択したレコードから決定的暗号文822を射影して、アプリケーションサーバ2に入力決定的暗号文と射影した中央決定的暗号文を送信する。   In step 704, the database server 1 selects a record including the central index value from the deterministic cipher table 82, projects the definitive ciphertext 822 from the selected record, and inputs the deterministic ciphertext to the application server 2. Send the projected central definitive ciphertext.

ステップ705において、アプリケーションサーバ2が、データベースサーバ1から入力決定的暗号文と中央決定的暗号文を受信して、決定的復号処理を、暗号鍵Kと入力決定的暗号文を入力として実行して、出力された入力平文=DD(K,入力決定的暗号文)を取得して、決定的復号処理を、暗号鍵Kと中央決定的暗号文を入力として実行して、出力された中央平文=DD(K,中央決定的暗号文)を取得して、入力平文と中央平文のソート順番を比較して、ソート順番比較結果として「同一平文」または「昇順」または「降順」を取得して、データベースサーバ1にソート順番比較結果を送信する。
ここで、入力決定的暗号文とは、バイナリサーチにおける検索したい値の暗号文 ということであり、また中央決定的暗号文とはバイナリサーチにおける中央の値の暗号文 ということである。
In step 705, the application server 2 receives the input deterministic ciphertext and the central deterministic ciphertext from the database server 1, and executes the deterministic decryption process with the encryption key K and the input deterministic ciphertext as inputs. , The output input plaintext = DD (K, input deterministic ciphertext) is obtained, the deterministic decryption process is executed with the encryption key K and the central deterministic ciphertext as inputs, and the output central plaintext = DD (K, central deterministic ciphertext) is obtained, the sort order of the input plaintext and the central plaintext is compared, and “same plaintext” or “ascending order” or “descending order” is obtained as the sort order comparison result, The sort order comparison result is transmitted to the database server 1.
Here, the input deterministic ciphertext is a ciphertext of a value to be searched in the binary search, and the central deterministic ciphertext is a ciphertext of the central value in the binary search.

例えば、平文が文字列の場合で、
入力平文「ABC」と中央平文「ABC」のソート順番比較結果は「同一平文」であり、
入力平文「ABC」と中央平文「ACC」のソート順番比較結果は「昇順」であり、
入力平文「ABC」と中央平文「ABB」のソート順番比較結果は「降順」である。
例えば、平文が数値の場合で、
入力平文「1000」と中央平文「1000」のソート順番比較結果は「同一平文」であり、
入力平文「1000」と中央平文「1001」のソート順番比較結果は「昇順」であり、
入力平文「1000」と中央平文「999」のソート順番比較結果は「降順」である。
ステップ706において、データベースサーバ1が、アプリケーションサーバ2からソート順番比較結果を受信して、ソート順番比較結果が「同一平文」ならば、出力インデックス値を中央インデックス値として、ステップ707を実行してソート順番比較結果が「昇順」ならば、上限インデックス値を中央インデックス値−1として、ステップ703を実行して、ソート順番比較結果が「降順」ならば、下限インデックス値を中央インデックス値+1として、ステップ703を実行する。
For example, if the plain text is a string,
Sort order comparison result of input plaintext “ABC” and central plaintext “ABC” is “same plaintext”
Sort order comparison result of input plaintext “ABC” and central plaintext “ACC” is “ascending order”,
The sort order comparison result between the input plaintext “ABC” and the central plaintext “ABB” is “descending order”.
For example, if the plain text is numeric,
Sort order comparison result of input plaintext “1000” and central plaintext “1000” is “same plaintext”
The sort order comparison result of input plaintext “1000” and central plaintext “1001” is “ascending order”,
The sort order comparison result between the input plaintext “1000” and the central plaintext “999” is “descending order”.
In step 706, the database server 1 receives the sort order comparison result from the application server 2, and if the sort order comparison result is “same plaintext”, the output index value is set as the central index value and the sort is performed by executing step 707. If the order comparison result is “ascending order”, the upper limit index value is set to the central index value−1, and step 703 is executed. If the sort order comparison result is “descending order”, the lower limit index value is set to the central index value + 1. 703 is executed.

ステップ707において、データベースサーバ1が、出力インデックス値を出力する。
データベースのインデックス値取得処理の例を、図6のステップ601において、決定的暗号文= DE(K, 1111222222222222)を入力として実行する場合で説明する。
1ステップ目に、ステップ701において、決定的暗号テーブルにレコードが有る場合なので、何も実行しない。
In step 707, the database server 1 outputs the output index value.
An example of database index value acquisition processing will be described in the case of executing decipher ciphertext = DE (K, 1111222222222222) as input in step 601 of FIG.
In step 701, nothing is executed in step 701 because there is a record in the definitive encryption table.

2ステップ目に、ステップ702において、下限インデックス値=1、上限インデックス値=3。
3ステップ目に、ステップ703において、下限インデックス値1≦上限インデックス値3の場合なので、中央インデックス値=(下限インデックス値1+上限インデックス値3)/2=2。
4ステップ目に、ステップ704において、入力決定的暗号文=DE(K, 1111222222222222)と中央決定的暗号文=DE(K,1111333333333333)を送信。
In the second step, in step 702, the lower limit index value = 1 and the upper limit index value = 3.
In the third step, since the lower limit index value 1 ≦ the upper limit index value 3 in step 703, the central index value = (lower limit index value 1 + upper limit index value 3) / 2 = 2.
In step 704, the input deterministic ciphertext = DE (K, 1111222222222222) and the central deterministic ciphertext = DE (K, 1111333333333333) are transmitted in the fourth step.

5ステップ目に、ステップ705において、入力平文=1111222222222222と中央平文=1111333333333333のソート順番を比較して、ソート順番比較結果「昇順」を送信。
6ステップ目に、ステップ706において、ソート順番比較結果が「昇順」の場合なので、上限インデックス値=中央インデックス値2−1=1。
7ステップ目に、ステップ703において、下限インデックス値1≦上限インデックス値1の場合なので、中央インデックス値=(下限インデックス値1+上限インデックス値1)/2=1。
In step 705, the sort order of input plaintext = 111122222222222222 and central plaintext = 1111333333333333 is compared in step 705, and the sort order comparison result “ascending order” is transmitted.
In the sixth step, since the sorting order comparison result is “ascending order” in step 706, upper limit index value = center index value 2-1 = 1.
In the seventh step, in step 703, since lower limit index value 1 ≦ upper limit index value 1, the central index value = (lower limit index value 1 + upper limit index value 1) / 2 = 1.

8ステップ目に、ステップ704において、入力決定的暗号文=DE(K, 1111222222222222)と中央決定的暗号文=DE(K,1111111111111111)を送信。
9ステップ目に、ステップ705において、入力平文=1111222222222222と中央平文=1111111111111111のソート順番を比較して、ソート順番比較結果「降順」を送信。
10ステップ目に、ステップ706において、ソート順番比較結果が「降順」の場合なので、下限インデックス値=中央インデックス値1+1=2。
11ステップ目に、ステップ703において、下限インデックス値2>上限インデックス値1の場合なので、出力インデックス値=下限インデックス値2。
12ステップ目に、ステップ707において、出力インデックス値2を出力する。
In step 704, the input deterministic ciphertext = DE (K, 1111222222222222) and the central deterministic ciphertext = DE (K, 1111111111111111) are transmitted in the eighth step.
In step 705, the sort order of input plaintext = 1111222222222222 and central plaintext = 1111111111111111 is compared in step 705, and the sort order comparison result “descending order” is transmitted.
In the tenth step, since the sorting order comparison result is “descending order” in step 706, the lower limit index value = the central index value 1 + 1 = 2.
In the eleventh step, since the lower limit index value 2> the upper limit index value 1 in step 703, output index value = lower limit index value 2.
In the twelfth step, in step 707, the output index value 2 is output.

データベースのデータ完全一致検索処理の一例について、図8を参照しながら説明する。
ただし、アプリケーションサーバ2が、データM(例えば名前やカード番号に相当)を記憶しているものとする。
図8の例は、データベースサーバ1が記憶するテーブルが図2〜4の状態であり、データM(名前=”HITACHI TARO”)についてデータ完全一致検索処理を実行する場合である。
ステップ801において、アプリケーションサーバ2が、決定的暗号化処理を、暗号鍵KとデータMを入力として実行して、出力された決定的暗号文DC=DE(K,M)を取得して、データベースサーバ1に決定的暗号文を送信する。
An example of the database complete match search process will be described with reference to FIG.
However, it is assumed that the application server 2 stores data M (for example, corresponding to a name or a card number).
The example of FIG. 8 is a case where the table stored in the database server 1 is in the state of FIGS. 2 to 4 and the data exact match search process is executed for the data M (name = “HITACHI TARO”).
In step 801, the application server 2 executes the definitive encryption process with the encryption key K and the data M as inputs, obtains the output deterministic ciphertext DC = DE (K, M), and creates a database. A definitive ciphertext is transmitted to the server 1.

ステップ802において、データベースサーバ1が、アプリケーションサーバ2から決定的暗号文を受信して、決定的暗号テーブル82から受信した決定的暗号文を含むレコードを選択して、選択したレコードから決定的暗号ID821を射影して、アプリケーションサーバ2に射影した決定的暗号ID821を送信する。   In step 802, the database server 1 receives the definitive ciphertext from the application server 2, selects a record including the definitive ciphertext received from the deterministic cipher table 82, and determines the deterministic cipher ID 821 from the selected record. And the deterministic encryption ID 821 projected to the application server 2 is transmitted.

ステップ803において、アプリケーションサーバ2が、データベースサーバ1から決定的暗号ID821を受信して、鍵付きセキュアハッシュ処理を、暗号鍵Kと決定的暗号文DCを入力として実行して、出力されたセキュアハッシュ値KH=H(K,DC)を取得して、決定的暗号化処理を、暗号鍵KHと受信した決定的暗号ID821を入力として実行して、出力された決定的暗号ID暗号文DE(KH,決定的暗号ID)を取得して、
データベースサーバ1に決定的暗号ID暗号文822を送信する。
In step 803, the application server 2 receives the definitive cipher ID 821 from the database server 1, executes the keyed secure hash process with the cipher key K and the deterministic ciphertext DC as inputs, and outputs the output secure hash The value KH = H (K, DC) is acquired, and the deterministic encryption process is executed with the cipher key KH and the received deterministic cipher ID 821 as inputs, and the output deterministic cipher ID ciphertext DE (KH) , Deterministic encryption ID)
The definitive cipher ID ciphertext 822 is transmitted to the database server 1.

ステップ804において、データベースサーバ1が、アプリケーションサーバ2から決定的暗号ID暗号文を受信して、暗号文関係テーブル83から受信した決定的暗号ID暗号文を含むレコードを選択して、選択したレコードから確率的暗号ID暗号文を射影して、アプリケーションサーバ2に射影した確率的暗号ID暗号文を送信する。   In step 804, the database server 1 receives the definitive cipher ID ciphertext from the application server 2, selects a record including the definitive cipher ID ciphertext received from the ciphertext relationship table 83, and selects the record from the selected record. The probabilistic cipher ID ciphertext is projected and the projected probabilistic cipher ID ciphertext is transmitted to the application server 2.

ステップ805において、アプリケーションサーバ2が、データベースサーバ1から確率的暗号ID暗号文を受信して、鍵付きセキュアハッシュ処理を、暗号鍵Kと決定的暗号文DCを入力として実行して、出力されたセキュアハッシュ値KH=H(K,DC)を取得して、決定的復号処理を、暗号鍵KHと受信した確率的暗号ID暗号文を入力として実行して、出力された確率的暗号ID=DD(KH,確率的暗号ID暗号文)を取得して、データベースサーバ1に確率的暗号IDを送信する。   In step 805, the application server 2 receives the stochastic cipher ID ciphertext from the database server 1, executes the keyed secure hash process with the cipher key K and the deterministic ciphertext DC as inputs, and outputs The secure hash value KH = H (K, DC) is acquired, and the deterministic decryption process is executed with the encryption key KH and the received probabilistic cipher ID ciphertext as input, and the output probabilistic cipher ID = DD (KH, stochastic cipher ID ciphertext) is acquired, and the stochastic cipher ID is transmitted to the database server 1.

ステップ806において、データベースサーバ1が、アプリケーションサーバ2から確率的暗号IDを受信して、確率的暗号テーブル81から受信した確率的暗号ID811を含むレコードを選択して、アプリケーションサーバ2に選択したレコードを送信する。   In step 806, the database server 1 receives the stochastic encryption ID from the application server 2, selects a record including the stochastic encryption ID 811 received from the stochastic encryption table 81, and selects the record selected by the application server 2. Send.

ステップ807において、アプリケーションサーバ2が、データベースサーバ1からレコードを受信して、受信したレコードから確率的暗号文を射影して、確率的復号処理を、暗号鍵Kと射影した確率的暗号文を入力として実行して、出力された平文M=PD(K,確率的暗号文)を取得して、受信したレコードの確率的暗号文を平文Mに置換して、データ完全一致検索処理の検索結果としてレコードを取得する。   In step 807, the application server 2 receives the record from the database server 1, projects the probabilistic ciphertext from the received record, and inputs the stochastic ciphertext obtained by projecting the probabilistic decryption process with the encryption key K. Is executed, and the output plaintext M = PD (K, stochastic ciphertext) is obtained, the stochastic ciphertext of the received record is replaced with plaintext M, and the search result of the data exact match search process Get a record.

次に、データベースのデータ部分一致検索処理の一例について、図9を参照しながら説明する。ただし、アプリケーションサーバ2が、検索範囲開始データM1と検索範囲終端データM2(例えば名前やカード番号に相当)を記憶しているものとする。
図9の例は、データベースサーバ1が記憶するテーブルが図2〜4の状態であり、検索範囲開始データM1(カード番号=1000000000000000)と検索範囲終端データM2(カード番号=2000000000000000)についてデータ部分一致検索処理を実行する場合である。
データ部分一致検索とは、データが文字列の場合では文字列前方一致検索であり、データが数値の場合では数値範囲検索である。
Next, an example of the data partial match search process in the database will be described with reference to FIG. However, it is assumed that the application server 2 stores search range start data M1 and search range end data M2 (e.g., corresponding to a name and a card number).
In the example of FIG. 9, the table stored in the database server 1 is in the state shown in FIGS. 2 to 4, and the data partial match between the search range start data M1 (card number = 1000000000000000) and the search range end data M2 (card number = 2000000000000000) This is a case where search processing is executed.
The data partial match search is a character string forward match search when the data is a character string, and is a value range search when the data is a numerical value.

例えば、文字列「AAA」から始まるデータを検索する場合、検索範囲開始データM1は「AAA」、検索範囲終端データM2は「AAB」であり、数値「1000」以上「2000」未満のデータを検索する場合、検索範囲開始データM1は「1000」、検索範囲終端データM2は「2000」である。
ステップ901において、アプリケーションサーバ2が、決定的暗号化処理を、暗号鍵Kと検索範囲開始データM1を入力として実行して、出力された検索範囲開始データ暗号文DC1=DE(K,M1)を取得して、決定的暗号化処理を、暗号鍵Kと検索範囲終端データM2を入力として実行して、出力された検索範囲終端データ暗号文DC2=DE(K,M2)を取得して、データベースサーバ1に検索範囲開始データ暗号文と検索範囲終端データ暗号文を送信する。
For example, when searching for data starting from the character string “AAA”, the search range start data M1 is “AAA”, the search range end data M2 is “AAB”, and data with a numerical value “1000” or more and less than “2000” is searched. In this case, the search range start data M1 is “1000” and the search range end data M2 is “2000”.
In step 901, the application server 2 executes the definitive encryption process with the encryption key K and the search range start data M1 as inputs, and outputs the output search range start data ciphertext DC1 = DE (K, M1). Obtaining and executing the definitive encryption processing with the encryption key K and the search range end data M2 as inputs, and obtaining the output search range end data ciphertext DC2 = DE (K, M2) The search range start data ciphertext and the search range end data ciphertext are transmitted to the server 1.

ステップ902において、データベースサーバ1が、アプリケーションサーバ2から検索範囲開始データ暗号文と検索範囲終端データ暗号文を受信して、データベースのインデックス値取得処理を、検索範囲開始データ暗号文を入力として実行して、出力された検索範囲開始インデックス値を取得して、データベースのインデックス値取得処理を、検索範囲終端データ暗号文を入力として実行して、出力された検索範囲終端インデックス値を取得して、決定的暗号テーブルからインデックス値が検索範囲開始インデックス値以上かつ検索範囲終端インデックス値未満であるレコードを選択して、選択したレコード毎にステップ903以降を実行する。   In step 902, the database server 1 receives the search range start data ciphertext and the search range end data ciphertext from the application server 2, and executes the index value acquisition processing of the database with the search range start data ciphertext as input. Obtain the output search range start index value, execute the database index value acquisition process with the search range end data ciphertext as input, acquire the output search range end index value, and decide A record whose index value is greater than or equal to the search range start index value and less than the search range end index value is selected from the dynamic encryption table, and step 903 and subsequent steps are executed for each selected record.

ステップ903において、データベースサーバ1が、選択したレコードから決定的暗号ID821と決定的暗号文822を射影して、アプリケーションサーバ2に射影した決定的暗号ID821と決定的暗号文822を送信する。
ステップ904において、アプリケーションサーバ2が、データベースサーバ1から決定的暗号ID821と決定的暗号文DCを受信して、決定的復号処理を、暗号鍵Kと受信した決定的暗号文DCを入力として実行して、出力された平文M=PD(K,DC)を取得して、検索範囲開始データM1と平文Mのソート順番を比較して、ソート順番比較結果として「同一平文」または「昇順」を取得したならば、かつ、平文Mと検索範囲終端データM2のソート順番を比較して、ソート順番比較結果として「昇順」を取得したならば、鍵付きセキュアハッシュ処理を、暗号鍵Kと受信した決定的暗号文DCを入力として実行して、出力されたセキュアハッシュ値KH=H(K,DC)を取得して、決定的暗号化処理を、暗号鍵KHと受信した決定的暗号IDを入力として実行して、出力された決定的暗号ID暗号文DE(KH,決定的暗号ID)を取得して、データベースサーバ1に決定的暗号ID暗号文を送信する。
In step 903, the database server 1 projects the definitive cipher ID 821 and the definitive ciphertext 822 from the selected record, and transmits the definitive cipher ID 821 and the definitive ciphertext 822 projected to the application server 2.
In step 904, the application server 2 receives the deterministic cipher ID 821 and the definitive ciphertext DC from the database server 1, and executes the definitive decryption process with the cipher key K and the received definitive ciphertext DC as inputs. The output plaintext M = PD (K, DC) is acquired, the search range start data M1 is compared with the sort order of the plaintext M, and “same plaintext” or “ascending order” is acquired as the sort order comparison result. If the sort order of the plaintext M and the search range end data M2 is compared and “ascending order” is acquired as the sort order comparison result, the keyed secure hash process is received as the encryption key K. The encrypted ciphertext DC is executed as an input, the output secure hash value KH = H (K, DC) is obtained, and the definitive encryption process is received with the encryption key KH. Run the cryptography ID as input and output a deterministic cipher ID ciphertext DE (KH, deterministic cipher ID) to obtain the transmit deterministic cipher ID ciphertext database server 1.

ステップ905において、データベースサーバ1が、アプリケーションサーバ2から決定的暗号ID暗号文を受信して、暗号文関係テーブル83から受信した決定的暗号ID暗号文を含むレコードを選択して、選択したレコードから確率的暗号ID暗号文を射影して、アプリケーションサーバ2に射影した確率的暗号ID暗号文を送信する。   In step 905, the database server 1 receives the definitive cipher ID ciphertext from the application server 2, selects a record including the definitive cipher ID ciphertext received from the ciphertext relationship table 83, and selects the record from the selected record. The probabilistic cipher ID ciphertext is projected and the projected probabilistic cipher ID ciphertext is transmitted to the application server 2.

ステップ906において、アプリケーションサーバ2が、データベースサーバ1から確率的暗号ID暗号文を受信して、鍵付きセキュアハッシュ処理を、暗号鍵Kと決定的暗号文DCを入力として実行して、出力されたセキュアハッシュ値KH=H(K,DC)を取得して、決定的復号処理を、暗号鍵KHと受信した確率的暗号ID暗号文を入力として実行して、出力された確率的暗号ID=DD(KH,確率的暗号ID暗号文)を取得して、データベースサーバ1に確率的暗号IDを送信する。   In step 906, the application server 2 receives the probabilistic cipher ID ciphertext from the database server 1, executes the keyed secure hash process with the cipher key K and the deterministic ciphertext DC as inputs, and outputs the result. The secure hash value KH = H (K, DC) is acquired, and the deterministic decryption process is executed with the encryption key KH and the received probabilistic cipher ID ciphertext as input, and the output probabilistic cipher ID = DD (KH, stochastic cipher ID ciphertext) is acquired, and the stochastic cipher ID is transmitted to the database server 1.

ステップ907において、データベースサーバ1が、アプリケションサーバ2から確率的暗号IDを受信して、確率的暗号テーブル81から受信した確率的暗号ID811を含むレコードを選択して、アプリケーションサーバ2に選択したレコードを送信する。
ステップ908において、アプリケーションサーバ2が、データベースサーバ1からレコードを受信して、受信したレコードから確率的暗号文を射影して、確率的復号処理を、暗号鍵Kと射影した確率的暗号文を入力として実行して、出力された平文M=PD(K,確率的暗号文)を取得して、受信したレコードの確率的暗号文を平文Mに置換して、データ部分一致検索処理の検索結果としてレコードを取得する。
In step 907, the database server 1 receives the stochastic encryption ID from the application server 2, selects the record including the stochastic encryption ID 811 received from the stochastic encryption table 81, and selects the record selected by the application server 2. Send.
In step 908, the application server 2 receives the record from the database server 1, projects the probabilistic ciphertext from the received record, and inputs the probabilistic ciphertext obtained by projecting the probabilistic decryption process with the encryption key K. As the search result of the data partial match search process, the output plaintext M = PD (K, stochastic ciphertext) is obtained, the stochastic ciphertext of the received record is replaced with plaintext M, Get a record.

1 データベースサーバ
2 アプリケーションサーバ
3 ネットワーク
4、5 中央演算処理装置
6,7 主記憶装置
8,9 補助記憶装置
12,13 ネットワーク通信装置
10,11 データバス
81 確率的暗号テーブル
82 決定的暗号テーブル
83 暗号文関係テーブル
DESCRIPTION OF SYMBOLS 1 Database server 2 Application server 3 Network 4, 5 Central processing unit 6,7 Main storage unit 8,9 Auxiliary storage unit 12,13 Network communication unit 10,11 Data bus 81 Probabilistic encryption table 82 Deterministic encryption table 83 Encryption Sentence relation table

Claims (6)

データベースサーバとアプリケーションサーバがネットワークを介して接続して構成され、前記データベースサーバのデータベースが確率的暗号テーブルと決定的暗号テーブルと暗号文関係テーブルとを記憶し、前記アプリケーションサーバのデータベースが暗号鍵を記憶するデータベース暗号化システムであって、
前記データベースへのデータ登録処理を行うために、
前記アプリケーションサーバが、前記データベースへの登録対象データを確率的暗号化と決定的暗号化し、前記データベースサーバに確率的暗号文5と決定的暗号文とを送信する手段を備え、
前記データベースサーバが、前記確率的暗号テーブルに確率的暗号文と確率的暗号IDを含むレコードを挿入し、前記決定的暗号テーブルに決定的暗号文と決定的暗号IDを含むレコードを挿入した後、前記アプリケーションサーバに確率的暗号IDと決定的暗号IDを送信する手段を備え、
アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号IDと決定的暗号IDを決定的暗号化し、前記データベースサーバに確率的暗号ID暗号文と決定的暗号ID暗号文を送信する手段を備え、
前記データベースサーバが、前記暗号文関係テーブルに確率的暗号ID暗号文と決定的暗号ID暗号文を含むレコードを挿入する手段を備えることを特徴とするデータベース暗号化システム。
A database server and an application server are connected via a network, the database server database stores a stochastic encryption table, a deterministic encryption table, and a ciphertext relationship table, and the application server database stores an encryption key. A database encryption system for storing,
In order to perform data registration processing in the database,
The application server includes means for performing stochastic encryption and deterministic encryption on data to be registered in the database, and transmitting the stochastic ciphertext 5 and the deterministic ciphertext to the database server,
After the database server inserts a record including a stochastic ciphertext and a stochastic cipher ID into the stochastic cipher table, and inserts a record including a deterministic ciphertext and a deterministic cipher ID into the deterministic cipher table, Means for transmitting a stochastic cryptographic ID and a definitive cryptographic ID to the application server;
The application server deterministically encrypts the stochastic cipher ID and the deterministic cipher ID with the cipher key obtained from the deterministic cipher text, and transmits the stochastic cipher ID cipher text and the definitive cipher ID cipher text to the database server. With means,
The database encryption system, wherein the database server comprises means for inserting a record including a stochastic cipher ID ciphertext and a deterministic cipher ID ciphertext into the ciphertext relationship table.
前記データベースのデータ完全一致検索処理として、
前記アプリケーションサーバが、
データを決定的暗号化して前記データベースサーバに決定的暗号文を送信する手段を備え、
前記データベースサーバが、前記決定的暗号テーブルから決定的暗号文を含むレコードから決定的暗号IDを射影し、アプリケーションサーバに決定的暗号IDを送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化して前記データベースサーバに決定的暗号ID暗号文を送信する手段を備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信する手段を備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信する手段を備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得する手段を備えることを特徴とする請求項1に記載のデータベース暗号化システム。
As the data exact match search processing of the database,
The application server is
Means for deterministically encrypting data and transmitting deterministic ciphertext to the database server;
The database server comprises means for projecting a definitive cipher ID from a record including a definitive ciphertext from the deterministic cipher table and transmitting the definitive cipher ID to the application server;
The application server comprises means for deterministically encrypting a definitive cipher ID with an encryption key obtained from the deterministic ciphertext and transmitting the definitive cipher ID ciphertext to the database server,
The database server includes means for projecting a stochastic cipher ID ciphertext from a record including a deterministic cipher ID ciphertext from the ciphertext relationship table and transmitting the stochastic cipher ID ciphertext to the application server;
The application server comprises means for deterministically decrypting a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmitting a stochastic cipher ID to the database server;
The database server includes means for selecting a record including a probabilistic encryption ID from the probabilistic encryption table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result The database encryption system according to claim 1, further comprising means.
データベースのデータ登録処理として、
前記データベースサーバが、前記データベースのインデックス値登録処理を決定的暗号IDと決定的暗号文を入力として実行する手段を備え、
データベースのデータ部分一致検索処理として、
前記アプリケーションサーバが、検索範囲開始データと検索範囲終端データを決定的暗号化し、前記データベースサーバに検索範囲開始データ暗号文と検索範囲終端データ暗号文を送信する手段を備え、
前記データベースサーバが、前記データベースのインデックス値取得処理を検索範囲開始データ暗号文を入力として実行し、前記データベースのインデックス値取得処理を検索範囲終端データ暗号文を入力として実行し、前記決定的暗号テーブルからインデックス値が検索範囲開始インデックス値以上かつ検索範囲終端インデックス値未満であるレコードから決定的暗号IDと決定的暗号文を射影し、前記アプリケーションサーバに決定的暗号IDと決定的暗号文を送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文を決定的復号し、平文のソート順番が検索範囲開始データと検索範囲終端データの間ならば、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化し、前記データベースサーバに決定的暗号ID暗号文を送信する手段を備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信する手段を備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信する手段を備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信する手段を備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、前記レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得する手段を備えることを特徴とする請求項1に記載のデータベース暗号化システム。
As database data registration processing,
The database server comprises means for executing an index value registration process of the database with a definitive cipher ID and a definitive ciphertext as inputs,
Database partial match search processing of database,
The application server includes means for definitively encrypting search range start data and search range end data, and transmitting the search range start data ciphertext and search range end data ciphertext to the database server,
The database server executes index value acquisition processing of the database with a search range start data ciphertext as input, executes index value acquisition processing of the database with a search range end data ciphertext as input, and the deterministic encryption table Projecting the definitive cipher ID and the definitive ciphertext from the record whose index value is greater than or equal to the search range start index value and less than the search range end index value, and transmits the definitive cipher ID and definitive ciphertext to the application server With means,
If the application server deciphers the deterministic ciphertext and the plaintext sort order is between search range start data and search range end data, a deterministic cipher ID is obtained using the cipher key obtained from the deterministic ciphertext. Means for deterministically encrypting and transmitting a definitive cipher ID ciphertext to the database server,
The database server includes means for projecting a stochastic cipher ID ciphertext from a record including a deterministic cipher ID ciphertext from the ciphertext relationship table and transmitting the stochastic cipher ID ciphertext to the application server;
The application server comprises means for deterministically decrypting a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmitting a stochastic cipher ID to the database server;
The database server includes means for selecting a record including a probabilistic encryption ID from the probabilistic encryption table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result The database encryption system according to claim 1, further comprising:
データベースサーバとアプリケーションサーバがネットワークを介して接続して構成され、前記データベースサーバのデータベースが確率的暗号テーブルと決定的暗号テーブルと暗号文関係テーブルとを記憶し、前記アプリケーションサーバのデータベースが暗号鍵を記憶するデータベース暗号化方法であって、
前記データベースへのデータ登録処理を行うために、
前記アプリケーションサーバが、前記データベースへの登録対象データを確率的暗号化と決定的暗号化し、前記データベースサーバに確率的暗号文5と決定的暗号文とを送信するステップを備え、
前記データベースサーバが、前記確率的暗号テーブルに確率的暗号文と確率的暗号IDを含むレコードを挿入し、前記決定的暗号テーブルに決定的暗号文と決定的暗号IDを含むレコードを挿入した後、前記アプリケーションサーバに確率的暗号IDと決定的暗号IDを送信するステップを備え、
アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号IDと決定的暗号IDを決定的暗号化し、前記データベースサーバに確率的暗号ID暗号文と決定的暗号ID暗号文を送信するステップを備え、
前記データベースサーバが、前記暗号文関係テーブルに確率的暗号ID暗号文と決定的暗号ID暗号文を含むレコードを挿入する手ステップを備えることを特徴とするデータベース暗号化方法。
A database server and an application server are connected via a network, the database server database stores a stochastic encryption table, a deterministic encryption table, and a ciphertext relationship table, and the application server database stores an encryption key. A database encryption method for storing,
In order to perform data registration processing in the database,
The application server comprises the steps of probabilistic encryption and deterministic encryption of data to be registered in the database, and transmitting the stochastic ciphertext 5 and deterministic ciphertext to the database server,
After the database server inserts a record including a stochastic ciphertext and a stochastic cipher ID into the stochastic cipher table, and inserts a record including a deterministic ciphertext and a deterministic cipher ID into the deterministic cipher table, Transmitting a stochastic cryptographic ID and a definitive cryptographic ID to the application server,
The application server deterministically encrypts the stochastic cipher ID and the deterministic cipher ID with the cipher key obtained from the deterministic cipher text, and transmits the stochastic cipher ID cipher text and the definitive cipher ID cipher text to the database server. With steps,
The database encryption method, wherein the database server comprises a manual step of inserting a record including a stochastic cipher ID ciphertext and a definitive cipher ID ciphertext into the ciphertext relationship table.
前記データベースのデータ完全一致検索処理として、
前記アプリケーションサーバが、
データを決定的暗号化して前記データベースサーバに決定的暗号文を送信するステップを備え、
前記データベースサーバが、前記決定的暗号テーブルから決定的暗号文を含むレコードから決定的暗号IDを射影し、アプリケーションサーバに決定的暗号IDを送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化して前記データベースサーバに決定的暗号ID暗号文を送信するステップを備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信するステップを備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信するステップを備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得するステップを備えることを特徴とする請求項4に記載のデータベース暗号化方法。
As the data exact match search processing of the database,
The application server is
Deterministically encrypting data and sending definitive ciphertext to the database server,
The database server includes projecting a definitive cipher ID from a record including definitive ciphertext from the deterministic cipher table and transmitting the definitive cipher ID to the application server;
The application server includes a step of definitively encrypting a definitive cipher ID with an encryption key obtained from the deterministic ciphertext and transmitting the definitive cipher ID ciphertext to the database server,
The database server includes a step of projecting a stochastic cipher ID ciphertext from a record including a definitive cipher ID ciphertext from the ciphertext relationship table, and transmitting the stochastic cipher ID ciphertext to the application server,
The application server deterministically decrypts a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmits the stochastic cipher ID to the database server,
The database server comprises selecting a record including a stochastic cipher ID from the stochastic cipher table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result The database encryption method according to claim 4, further comprising a step.
データベースのデータ登録処理として、
前記データベースサーバが、前記データベースのインデックス値登録処理を決定的暗号IDと決定的暗号文を入力として実行するステップを備え、
データベースのデータ部分一致検索処理として、
前記アプリケーションサーバが、検索範囲開始データと検索範囲終端データを決定的暗号化し、前記データベースサーバに検索範囲開始データ暗号文と検索範囲終端データ暗号文を送信するステップを備え、
前記データベースサーバが、前記データベースのインデックス値取得処理を検索範囲開始データ暗号文を入力として実行し、前記データベースのインデックス値取得処理を検索範囲終端データ暗号文を入力として実行し、前記決定的暗号テーブルからインデックス値が検索範囲開始インデックス値以上かつ検索範囲終端インデックス値未満であるレコードから決定的暗号IDと決定的暗号文を射影し、前記アプリケーションサーバに決定的暗号IDと決定的暗号文を送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文を決定的復号し、平文のソート順番が検索範囲開始データと検索範囲終端データの間ならば、前記決定的暗号文から取得した暗号鍵で決定的暗号IDを決定的暗号化し、前記データベースサーバに決定的暗号ID暗号文を送信するステップを備え、
前記データベースサーバが、前記暗号文関係テーブルから決定的暗号ID暗号文を含むレコードから確率的暗号ID暗号文を射影し、前記アプリケーションサーバに確率的暗号ID暗号文を送信するステップを備え、
前記アプリケーションサーバが、前記決定的暗号文から取得した暗号鍵で確率的暗号ID暗号文を決定的復号し、前記データベースサーバに確率的暗号IDを送信するステップを備え、
前記データベースサーバが、前記確率的暗号テーブルから確率的暗号IDを含むレコードを選択し、前記アプリケーションサーバに当該レコードを送信するステップを備え、
前記アプリケーションサーバが、前記データベースサーバから受信したレコードから確率的暗号文を射影し、確率的暗号文を確率的復号し、前記レコードの確率的暗号文を平文に置換し、検索結果としてレコードを取得するステップを備えることを特徴とする請求項1に記載のデータベース暗号化方法。
As database data registration processing,
The database server includes a step of executing an index value registration process of the database with a definitive cipher ID and a definitive ciphertext as inputs,
Database partial match search processing of database,
The application server includes the step of definitively encrypting search range start data and search range end data, and transmitting the search range start data ciphertext and search range end data ciphertext to the database server,
The database server executes index value acquisition processing of the database with a search range start data ciphertext as input, executes index value acquisition processing of the database with a search range end data ciphertext as input, and the deterministic encryption table Projecting the definitive cipher ID and the definitive ciphertext from the record whose index value is greater than or equal to the search range start index value and less than the search range end index value, and transmits the definitive cipher ID and definitive ciphertext to the application server With steps,
If the application server deciphers the deterministic ciphertext and the plaintext sort order is between search range start data and search range end data, a deterministic cipher ID is obtained using the cipher key obtained from the deterministic ciphertext. Deciphering and sending a definitive cipher ID ciphertext to the database server,
The database server includes a step of projecting a stochastic cipher ID ciphertext from a record including a definitive cipher ID ciphertext from the ciphertext relationship table, and transmitting the stochastic cipher ID ciphertext to the application server,
The application server deterministically decrypts a stochastic cipher ID ciphertext with an encryption key obtained from the deterministic ciphertext, and transmits the stochastic cipher ID to the database server,
The database server comprises selecting a record including a stochastic cipher ID from the stochastic cipher table and transmitting the record to the application server;
The application server projects the stochastic ciphertext from the record received from the database server, probabilistically decrypts the stochastic ciphertext, replaces the stochastic ciphertext of the record with plaintext, and obtains a record as a search result The database encryption method according to claim 1, further comprising the step of:
JP2010064555A 2010-03-19 2010-03-19 Database encryption system and method Expired - Fee Related JP5411034B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010064555A JP5411034B2 (en) 2010-03-19 2010-03-19 Database encryption system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010064555A JP5411034B2 (en) 2010-03-19 2010-03-19 Database encryption system and method

Publications (2)

Publication Number Publication Date
JP2011198079A true JP2011198079A (en) 2011-10-06
JP5411034B2 JP5411034B2 (en) 2014-02-12

Family

ID=44876185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010064555A Expired - Fee Related JP5411034B2 (en) 2010-03-19 2010-03-19 Database encryption system and method

Country Status (1)

Country Link
JP (1) JP5411034B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014128958A1 (en) 2013-02-25 2014-08-28 三菱電機株式会社 Server device, private search program, recording medium, and private search system
WO2017168535A1 (en) * 2016-03-28 2017-10-05 株式会社日立製作所 Database system and data retrieval system
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method
USRE48146E1 (en) 2012-01-25 2020-08-04 Mitsubishi Electric Corporation Data search device, data search method, computer readable medium storing data search program, data registration device, data registration method, computer readable medium storing data registration program, and information processing device
US10769144B2 (en) 2014-06-16 2020-09-08 Nec Corporation Database search system, database search method, and non-transitory recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11143780A (en) * 1997-11-05 1999-05-28 Hitachi Ltd Method and device for managing secret information in database
JP2010503118A (en) * 2006-09-06 2010-01-28 マイクロソフト コーポレーション Search for encrypted data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11143780A (en) * 1997-11-05 1999-05-28 Hitachi Ltd Method and device for managing secret information in database
JP2010503118A (en) * 2006-09-06 2010-01-28 マイクロソフト コーポレーション Search for encrypted data

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48146E1 (en) 2012-01-25 2020-08-04 Mitsubishi Electric Corporation Data search device, data search method, computer readable medium storing data search program, data registration device, data registration method, computer readable medium storing data registration program, and information processing device
WO2014128958A1 (en) 2013-02-25 2014-08-28 三菱電機株式会社 Server device, private search program, recording medium, and private search system
CN104995621A (en) * 2013-02-25 2015-10-21 三菱电机株式会社 Server device, private search program, recording medium, and private search system
JP5963936B2 (en) * 2013-02-25 2016-08-03 三菱電機株式会社 Server device, secret search program, recording medium, and secret search system
CN104995621B (en) * 2013-02-25 2018-06-05 三菱电机株式会社 Server unit and confidential search system
US10235539B2 (en) 2013-02-25 2019-03-19 Mitsubishi Electric Corporation Server device, recording medium, and concealed search system
US10769144B2 (en) 2014-06-16 2020-09-08 Nec Corporation Database search system, database search method, and non-transitory recording medium
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method
WO2017168535A1 (en) * 2016-03-28 2017-10-05 株式会社日立製作所 Database system and data retrieval system
JPWO2017168535A1 (en) * 2016-03-28 2018-12-13 株式会社日立製作所 Database system and data search method

Also Published As

Publication number Publication date
JP5411034B2 (en) 2014-02-12

Similar Documents

Publication Publication Date Title
US8694467B2 (en) Random number based data integrity verification method and system for distributed cloud storage
JP6180177B2 (en) Encrypted data inquiry method and system capable of protecting privacy
US9275250B2 (en) Searchable encryption processing system
KR102219476B1 (en) A method for performing encryption of data and an apparatus therefor
CN106599723B (en) File encryption method and device and file decryption method and device
TWI489847B (en) Data encryption method, data verification method and electronic apparatus
CN106961427B (en) A kind of ciphertext data search method based on 5g communication standard
CA2754268A1 (en) Split key secure access system
Abusukhon et al. New direction of cryptography: A review on text-to-image encryption algorithms based on RGB color value
CN104243149A (en) Encrypting and decrypting method, device and server
JP5411034B2 (en) Database encryption system and method
US6941461B2 (en) System and method of uniquely authenticating each replication of a group of soft-copy documents
Joshy et al. Text to image encryption technique using RGB substitution and AES
CN115603907A (en) Method, device, equipment and storage medium for encrypting storage data
KR101217491B1 (en) A method for searching keyword based on public key
US8458452B1 (en) System and method for encryption and decryption of data transferred between computer systems
Kaushal Cryptography: A brief review
WO2008059475A1 (en) Secure communication
CN104486756A (en) Encryption and decryption method and system for secret letter short message
KR20140033824A (en) Encryption systems and methods using hash value as symmetric key in the smart device
Ahmad et al. Protection of the texts using Base64 and MD5
JP2012050075A (en) Encryption communication system and encryption communication method
JP2005114870A (en) Cryptocommunication system
Kadry et al. An improvement of RC4 cipher using vigenère cipher
Velioğlu et al. A New Approach to Cryptographic Hashing: Color Hidden Hash Algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130926

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131107

LAPS Cancellation because of no payment of annual fees