JP5799635B2 - ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM - Google Patents

ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM Download PDF

Info

Publication number
JP5799635B2
JP5799635B2 JP2011161850A JP2011161850A JP5799635B2 JP 5799635 B2 JP5799635 B2 JP 5799635B2 JP 2011161850 A JP2011161850 A JP 2011161850A JP 2011161850 A JP2011161850 A JP 2011161850A JP 5799635 B2 JP5799635 B2 JP 5799635B2
Authority
JP
Japan
Prior art keywords
user
data
key
search
proxy
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.)
Active
Application number
JP2011161850A
Other languages
Japanese (ja)
Other versions
JP2013026954A (en
Inventor
寿幸 一色
寿幸 一色
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011161850A priority Critical patent/JP5799635B2/en
Publication of JP2013026954A publication Critical patent/JP2013026954A/en
Application granted granted Critical
Publication of JP5799635B2 publication Critical patent/JP5799635B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、暗号データ検索システム、暗号データ検索装置、暗号データ検索方法及び暗号データ検索プログラムに関する。   The present invention relates to an encrypted data search system, an encrypted data search device, an encrypted data search method, and an encrypted data search program.

近年、クラウドサービスにおけるセキュリティの重要性が広く認識されている。例えば、クラウドネットワーク上のデータベースに暗号化されたデータを保存し、必要な時にデータベースからデータを取り出すサービスが存在する。このとき、ユーザがどの暗号データを必要としているかを確認する必要がある。例えば、データベースに保存されているすべての暗号データを取り出して復号し、必要なデータを見つけることが考えられる。しかしこの方法では、データベースからデータを取り出そうとするたびにすべての暗号データをユーザ側にダウンロードしなくてはならず、利便性や通信コストの観点で望ましくない。そのため、暗号データに対して、暗号化されたまま検索を行う検索可能暗号方式を利用したサービスが提案されている。関連する技術として、例えば、非特許文献1には、検索可能暗号方式が記載されている。   In recent years, the importance of security in cloud services has been widely recognized. For example, there is a service for storing encrypted data in a database on a cloud network and retrieving the data from the database when necessary. At this time, it is necessary to confirm which encryption data the user needs. For example, it is conceivable to extract all the encrypted data stored in the database and decrypt it to find the necessary data. However, with this method, every time data is to be extracted from the database, all the encrypted data must be downloaded to the user side, which is undesirable from the viewpoint of convenience and communication cost. Therefore, a service using a searchable encryption method that searches encrypted data while being encrypted has been proposed. As a related technique, for example, Non-Patent Document 1 describes a searchable encryption method.

D. Boneh, G. Di Crescenzo, R. Ostrovsky, and G. Persiano, "Public Key Encryption with Keyword Search", EUROCRYPT2004, LNCS3027, pp.506--522, 2004.D. Boneh, G. Di Crescenzo, R. Ostrovsky, and G. Persiano, "Public Key Encryption with Keyword Search", EUROCRYPT2004, LNCS3027, pp.506--522, 2004.

一般的な検索可能暗号方式の多くは、あるユーザの公開鍵を用いてデータを暗号化することにより暗号データを生成し、そのユーザの秘密鍵を用いて検索クエリを生成することで暗号化したまま検索を可能としている。したがって、1つの暗号データに対して、検索可能なユーザは秘密鍵を有するユーザのみに限定される。   Many of the common searchable encryption methods generate encrypted data by encrypting the data using a public key of a certain user, and encrypt it by generating a search query using the secret key of the user. Search is possible as it is. Therefore, the user who can search for one encryption data is limited to only a user having a secret key.

ところが、企業での文書管理などを考慮すると、1つのデータに対して複数人がアクセスする権限を持ち、権限を持つ複数人のみが検索可能であることが望まれる場合がある。上記の一般的な検索可能暗号方式を利用した場合、1つのデータに対して権限を持つ複数人による検索を許可するためには、権限を持つ複数人で秘密鍵を共有するなどの方法を用いて実現する必要がある。しかし、この方法は、秘密鍵漏洩の危険性を高めるため、一般に望ましくない。   However, in consideration of document management in a company, there are cases where it is desired that a plurality of persons have the authority to access one data, and that only a plurality of persons having the authority can search. When using the above general searchable encryption method, a method such as sharing a secret key between authorized persons is used in order to allow retrieval by authorized persons with respect to one data. Need to be realized. However, this method is generally undesirable because it increases the risk of secret key leakage.

また、秘密鍵を保有するサーバを設置し、そのサーバへのアクセス権を管理することで複数人に対して暗号データの検索を許可することを実現することも可能である。しかし、この方法では、サーバが秘密鍵を保有するため、サーバを乗っ取ることにより、すべての暗号データの検索が可能になる。そのため、サーバが攻撃の標的とされやすく、セキュリティ対策が重要となり、コスト増につながる。また、この方法では、サーバの管理者はサーバへの任意のアクセスが可能であるため、管理者が悪意を持ってアクセスした場合には、安全性を担保できない。   It is also possible to set up a server holding a secret key and manage the access right to the server to permit a plurality of people to search for encrypted data. However, in this method, since the server holds the secret key, all encrypted data can be retrieved by taking over the server. For this reason, the server is likely to be the target of the attack, and security measures are important, leading to an increase in cost. Further, in this method, the server administrator can arbitrarily access the server, and therefore, when the administrator accesses the server maliciously, safety cannot be ensured.

非特許文献1には、サービスプロバイダとユーザの秘密鍵からなるプロキシ鍵を用いて、1つのデータに対して複数人に検索を許可する検索可能暗号システムが記載されている。しかしながら、非特許文献1に記載された方式では、データベースにアクセスできるすべてのユーザが検索を行うことが可能である。そのため、データベースに記憶されているデータが漏洩した場合には、そのデータを入手できた人は誰でも検索を行うことができてしまうこととなり、甚大な被害が生ずる可能性がある。   Non-Patent Document 1 describes a searchable cryptographic system that allows a plurality of people to search for one data using a proxy key composed of a service provider and a user's private key. However, with the method described in Non-Patent Document 1, all users who can access the database can perform a search. Therefore, when the data stored in the database is leaked, anyone who can obtain the data can perform a search, which may cause enormous damage.

そこで、本発明は、異なる公開鍵・秘密鍵を有する複数ユーザからの検索要求に対し検索結果を回答でき、かつデータ漏洩による被害を低減することができる暗号データ検索システム、暗号データ検索装置、暗号データ検索方法及び暗号データ検索プログラムを提供することを目的とする。   Therefore, the present invention provides an encrypted data search system, an encrypted data search apparatus, an encryption data search system, which can answer a search result to a search request from a plurality of users having different public / private keys and can reduce damage caused by data leakage. An object of the present invention is to provide a data search method and an encrypted data search program.

本発明による暗号データ検索システムは、サービス提供装置と、データ登録装置と、データベース装置と、ユーザ装置と、プロキシ装置とを備え、サービス提供装置は、データを暗号化するためのサービス公開鍵およびサービス公開鍵に対応したサービス秘密鍵を生成し、データの検索を要求するユーザ装置が生成したユーザ秘密鍵とサービス秘密鍵とを入力として、ユーザ装置ごとのプロキシ鍵を生成し、プロキシ装置に送信し、データ登録装置は、サービス公開鍵およびデータを入力として、検索可能暗号データを生成し、データベース装置は、検索可能暗号データを記憶し、ユーザ装置は、データベース装置に記憶された検索可能暗号データに対して、データの検索を要求するためのユーザクエリを生成し、プロキシ装置に送信し、プロキシ装置は、ユーザ装置から受信したユーザクエリとサービス提供装置から受信したユーザ装置ごとのプロキシ鍵とを入力として、データベース装置に記憶されている検索可能暗号データの検索を要求するための検索クエリを生成し、ユーザ装置は、さらに、ユーザ秘密鍵を用いてユーザクエリを生成することを特徴とする。   An encrypted data search system according to the present invention includes a service providing device, a data registration device, a database device, a user device, and a proxy device. The service providing device includes a service public key and a service for encrypting data. Generate a service secret key corresponding to the public key, generate a proxy key for each user device, using the user secret key and service secret key generated by the user device requesting data search as inputs, and send to the proxy device The data registration device receives the service public key and data as input, and generates searchable encryption data. The database device stores searchable encryption data. The user device stores the searchable encryption data stored in the database device. On the other hand, a user query for requesting a data search is generated and transmitted to the proxy device. The proxy device receives a user query received from the user device and a proxy key for each user device received from the service providing device, and inputs a search query for requesting a search for searchable encrypted data stored in the database device. The user device is further characterized by generating a user query using the user secret key.

本発明による暗号データ検索装置は、データを暗号化するためのサービス公開鍵を用いて生成された検索可能暗号データからデータを検索する暗号データ検索装置であって、ユーザ装置が生成したユーザ秘密鍵とサービス公開鍵に対応したサービス秘密鍵とを用いて生成されたプロキシ鍵と、ユーザ装置がユーザ秘密鍵を用いて生成したデータの検索を要求するユーザクエリとを入力として、データベース装置に記憶されている検索可能暗号データからデータを検索るための検索クエリを生成する手段を備えたことを特徴とする。 An encrypted data search apparatus according to the present invention is an encrypted data search apparatus for searching for data from searchable encrypted data generated using a service public key for encrypting data, wherein the user secret key generated by the user apparatus And the proxy key generated using the service secret key corresponding to the service public key and the user query requesting the search of the data generated by the user device using the user secret key are stored in the database device. characterized by comprising means for generating a search query order to retrieve data from the searchable encrypted data are.

本発明による暗号データ検索方法は、サービス提供装置が、データを暗号化するためのサービス公開鍵および該サービス公開鍵に対応したサービス秘密鍵を生成し、ーザ装置が生成したユーザ秘密鍵とサービス秘密鍵とを入力として、ユーザ装置ごとプロキシ鍵を生成し、データ登録装置が、サービス公開鍵およびデータを入力として、検索可能暗号データを生成し、生成した検索可能暗号データをデータベース装置に記憶させユーザ装置が、データベース装置に記憶された検索可能暗号データに対して、ユーザ秘密鍵を用いてデータの検索を要求するためのユーザクエリを生成し、プロキシ装置が、ユーザクエリとユーザ装置ごとに生成されたプロキシ鍵とを入力として、データベース装置に記憶されている検索可能暗号データからデータを検索るための検索クエリを生成することを特徴とする。 Encrypted data search method according to the present invention, the service providing apparatus, generates a service public key and service secret key corresponding to the service's public key to encrypt the data, and user private key User chromatography The device has generated as input and service secret key to generate a proxy key for each user device, the data registration apparatus, as an input the service's public key and data to generate a searchable encrypted data, the generated searchable encrypted data in the database system It was stored, the user equipment, for the search cryptographic data stored in the database system to generate a user query for requesting retrieval of data using the user private key, the proxy device, the user query and the user equipment as inputs and proxy key generated every from searchable encrypted data stored in the database unit And generating a search query order to find the chromatography data.

本発明による暗号データ検索プログラムは、データを暗号化するためのサービス公開鍵を用いて生成された検索可能暗号データからデータを検索するための暗号データ検索プログラムであって、コンピュータに、ユーザ装置が生成したユーザ秘密鍵とサービス公開鍵に対応したサービス秘密鍵とを用いて生成されたプロキシ鍵と、ユーザ装置がユーザ秘密鍵を用いて生成したデータの検索を要求するユーザクエリとを入力として、データベース装置に記憶されている検索可能暗号データからデータを検索るための検索クエリを生成する処理実行させることを特徴とする。 Encrypted data retrieval program according to the present invention is a cryptographic data retrieval program for retrieving data from a searchable encrypted data generated by using the service's public key to encrypt the data, to a computer, the user equipment As an input, a proxy key generated using the generated user secret key and a service secret key corresponding to the service public key, and a user query requesting a search for data generated by the user device using the user secret key , characterized in that to execute a process of generating a search query order to retrieve data from the searchable encrypted data stored in the database system.

本発明によれば、異なる公開鍵・秘密鍵を有する複数ユーザからの検索要求に対し検索結果を回答でき、かつデータ漏洩による被害を低減することができる。   According to the present invention, a search result can be answered in response to a search request from a plurality of users having different public keys / private keys, and damage caused by data leakage can be reduced.

本発明による暗号データ検索システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the encryption data search system by this invention. サービスプロバイダ装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of a service provider apparatus. プロキシサーバ装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of a proxy server apparatus. ユーザ装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of a user apparatus. データ登録装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of a data registration apparatus. サービスプロバイダ鍵生成処理の一例を示す流れ図である。It is a flowchart which shows an example of a service provider key generation process. ユーザ登録処理の一例を示す流れ図である。It is a flowchart which shows an example of a user registration process. データ登録処理の一例を示す流れ図である。It is a flowchart which shows an example of a data registration process. 検索処理の一例を示す流れ図である。It is a flowchart which shows an example of a search process. サービスプロバイダ鍵生成処理の具体例を示す流れ図である。It is a flowchart which shows the specific example of a service provider key generation process. ユーザ登録処理の具体例を示す流れ図である。It is a flowchart which shows the specific example of a user registration process. データ登録処理の具体例を示す流れ図である。It is a flowchart which shows the specific example of a data registration process. 検索処理の具体例を示す流れ図である。It is a flowchart which shows the specific example of a search process. 第2の実施形態のデータ登録装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the data registration apparatus of 2nd Embodiment. 暗号データ検索システムの最小の構成例を示すブロック図である。It is a block diagram which shows the minimum structural example of an encryption data search system.

実施形態1.
以下、本発明の実施形態について図面を参照して説明する。図1は、本発明による暗号データ検索システムの構成例を示すブロック図である。本実施形態の暗号データ検索システムは、図1に示すように、暗号データを登録するデータ登録装置10と、暗号データを記憶するデータベース装置50と、サービスプロバイダ装置20と、1つ以上のユーザ装置40-1,40-2,…,40-Nと、プロキシサーバ装置30とを含む。また、各装置は、LANやインターネット等の通信ネットワークを介して相互に接続されている。
Embodiment 1. FIG.
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing a configuration example of an encrypted data retrieval system according to the present invention. As shown in FIG. 1, the encrypted data retrieval system of the present embodiment includes a data registration device 10 for registering encrypted data, a database device 50 for storing encrypted data, a service provider device 20, and one or more user devices. 40-1, 40-2,..., 40-N and the proxy server device 30 are included. Each device is connected to each other via a communication network such as a LAN or the Internet.

サービスプロバイダ装置20は、暗号データを生成するために用いる公開鍵pk_sおよびそれに対応する秘密鍵sk_sを生成する。サービスプロバイダ装置20は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。   The service provider device 20 generates a public key pk_s used for generating encrypted data and a secret key sk_s corresponding thereto. Specifically, the service provider device 20 is realized by an information processing device such as a personal computer that operates according to a program.

図2は、サービスプロバイダ装置の構成例を示すブロック図である。サービスプロバイダ装置20は、図2に示すように、鍵生成部201と、プロキシ鍵生成部202と、データ登録部203とを含む。   FIG. 2 is a block diagram illustrating a configuration example of the service provider device. As shown in FIG. 2, the service provider device 20 includes a key generation unit 201, a proxy key generation unit 202, and a data registration unit 203.

鍵生成部201は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。鍵生成部201は、データを暗号化するために用いるサービスプロバイダの公開鍵pk_sおよびそれに対応する秘密鍵sk_sを生成する機能を備えている。   Specifically, the key generation unit 201 is realized by a CPU of an information processing apparatus that operates according to a program. The key generation unit 201 has a function of generating a public key pk_s of a service provider used for encrypting data and a secret key sk_s corresponding thereto.

プロキシ鍵生成部202は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。プロキシ鍵生成部202は、秘密鍵sk_sと、ユーザiの秘密鍵sk_iとを入力として、暗号化したまま暗号データの検索を可能とするプロキシ鍵rk_iを生成する機能を備えている。   Specifically, the proxy key generation unit 202 is realized by a CPU of an information processing apparatus that operates according to a program. The proxy key generation unit 202 has a function of generating a proxy key rk_i that allows a search for encrypted data while being encrypted, using the secret key sk_s and the secret key sk_i of the user i as inputs.

データ登録部203は、具体的には、プログラムに従って動作する情報処理装置のCPUおよびネットワークインタフェース部によって実現される。データ登録部203は、プロキシ鍵rk_iをプロキシサーバ装置30に登録する機能を備えている。   Specifically, the data registration unit 203 is realized by a CPU and a network interface unit of an information processing apparatus that operates according to a program. The data registration unit 203 has a function of registering the proxy key rk_i in the proxy server device 30.

プロキシサーバ装置30は、ユーザ装置40-i(ユーザ装置40-1〜40-3を包括的に表現したものであって、i=1〜3である)から受信した検索要求に対して、サービスプロバイダの秘密鍵およびユーザiの秘密鍵から生成されたユーザiに対応するプロキシ鍵を用いて、暗号化したまま検索を可能とする検索クエリを生成する。また、プロキシサーバ装置30は、データベース装置50から検索クエリに対応した暗号データを検索する。プロキシサーバ装置30は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。   The proxy server device 30 responds to a search request received from the user device 40-i (a comprehensive representation of the user devices 40-1 to 40-3, i = 1 to 3). Using a proxy key corresponding to user i generated from the provider's private key and user i's private key, a search query that enables a search while being encrypted is generated. In addition, the proxy server device 30 searches the database device 50 for encrypted data corresponding to the search query. Specifically, the proxy server device 30 is realized by an information processing device such as a personal computer that operates according to a program.

図3は、プロキシサーバ装置の構成例を示すブロック図である。プロキシサーバ装置30は、図3に示すように、クエリ変換部301と、検索要求部302と、検索結果送信部303とを含む。   FIG. 3 is a block diagram illustrating a configuration example of the proxy server apparatus. As illustrated in FIG. 3, the proxy server device 30 includes a query conversion unit 301, a search request unit 302, and a search result transmission unit 303.

クエリ変換部301は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。クエリ変換部301は、ユーザ装置40-iから受信したユーザクエリQ_iと、記憶しているプロキシ鍵rk_iとを入力として、データベース装置50が記憶する暗号データに対して暗号化したまま検索を行うための検索クエリQ_sを生成する機能を備えている。   Specifically, the query conversion unit 301 is realized by a CPU of an information processing apparatus that operates according to a program. The query conversion unit 301 receives the user query Q_i received from the user device 40-i and the stored proxy key rk_i as input, and performs a search while encrypting the encrypted data stored in the database device 50 It has a function to generate search query Q_s.

検索要求部302は、具体的には、プログラムに従って動作する情報処理装置のCPUおよびネットワークインタフェース部によって実現される。検索要求部302は、検索クエリQ_sを用いてデータベース装置50に検索要求を行う機能を備えている。   Specifically, the search request unit 302 is realized by a CPU and a network interface unit of an information processing apparatus that operates according to a program. The search request unit 302 has a function of making a search request to the database device 50 using the search query Q_s.

検索結果送信部303は、具体的には、プログラムに従って動作する情報処理装置のCPUおよびネットワークインタフェース部によって実現される。検索結果送信部303は、検索要求に応じてデータベース装置50から抽出された検索結果をユーザ装置40-iに送信する機能を備えている。   Specifically, the search result transmission unit 303 is realized by a CPU and a network interface unit of an information processing apparatus that operates according to a program. The search result transmission unit 303 has a function of transmitting a search result extracted from the database device 50 in response to a search request to the user device 40-i.

ユーザ装置40-iは、暗号データに対して暗号化したまま検索を行う検索要求を発行する。ユーザ装置40-iは、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。   The user device 40-i issues a search request for performing a search while encrypting the encrypted data. Specifically, the user device 40-i is realized by an information processing device such as a personal computer that operates according to a program.

図4は、ユーザ装置の構成例を示すブロック図である。ユーザ装置40-iは、図4に示すように、登録要求部401-iと、鍵生成部402-iと、プロキシ鍵生成部403-iと、クエリ生成部404-iとを含む。   FIG. 4 is a block diagram illustrating a configuration example of the user apparatus. As shown in FIG. 4, the user device 40-i includes a registration request unit 401-i, a key generation unit 402-i, a proxy key generation unit 403-i, and a query generation unit 404-i.

登録要求部401-iは、具体的には、プログラムに従って動作する情報処理装置のCPUおよびネットワークインタフェース部によって実現される。登録要求部401-iは、サービスへの登録を要求する機能を備えている。   Specifically, the registration request unit 401-i is realized by a CPU and a network interface unit of an information processing apparatus that operates according to a program. The registration request unit 401-i has a function of requesting registration for a service.

鍵生成部402-iは、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。鍵生成部402-iは、ユーザiの公開鍵pk_iおよびそれに対応する秘密鍵sk_iを生成する機能を備えている。   Specifically, the key generation unit 402-i is realized by a CPU of an information processing apparatus that operates according to a program. The key generation unit 402-i has a function of generating the public key pk_i of user i and the corresponding private key sk_i.

プロキシ鍵生成部403-iは、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。プロキシ鍵生成部403-iは、サービスプロバイダの秘密鍵sk_sと、ユーザiの秘密鍵sk_iとを入力として、暗号化したまま暗号データの検索を可能とするプロキシ鍵rk_iを生成する機能を備えている。   Specifically, the proxy key generation unit 403-i is realized by a CPU of an information processing device that operates according to a program. The proxy key generation unit 403-i has a function of generating a proxy key rk_i that allows the search of encrypted data while being encrypted, with the service provider secret key sk_s and the user i secret key sk_i as inputs. Yes.

クエリ生成部404-iは、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。クエリ生成部404-iは、データを検索するためのユーザクエリQ_iを生成する機能を備えている。   Specifically, the query generation unit 404-i is realized by a CPU of an information processing apparatus that operates according to a program. The query generation unit 404-i has a function of generating a user query Q_i for searching for data.

図5は、データ登録装置10の構成例を示すブロック図である。データ登録装置10は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。   FIG. 5 is a block diagram illustrating a configuration example of the data registration device 10. Specifically, the data registration device 10 is realized by an information processing device such as a personal computer that operates according to a program.

データ登録装置10は、図5に示すように、サービスプロバイダの公開鍵pk_sおよびデータM(以下、メッセージMともいう)を入力として、暗号データ(以下、検索可能暗号データともいう)を生成する検索可能暗号データ生成部101を含む。検索可能暗号データ生成部101は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。なお、本実施形態では、検索可能暗号データとは、所定の条件下で検索可能な暗号化されたデータである。ただし、検索可能暗号データは、所定の条件下で検索可能であり、無条件に検索可能であるわけではない。   As shown in FIG. 5, the data registration device 10 receives the service provider's public key pk_s and data M (hereinafter also referred to as a message M), and generates encrypted data (hereinafter also referred to as searchable encrypted data). A possible encryption data generation unit 101 is included. Specifically, the searchable encryption data generation unit 101 is realized by a CPU of an information processing apparatus that operates according to a program. In this embodiment, searchable encrypted data is encrypted data that can be searched under a predetermined condition. However, the searchable encryption data can be searched under a predetermined condition and is not searchable unconditionally.

データベース装置50は、光ディスク装置や磁気ディスク装置等の記憶装置を備えている。データベース装置50の記憶装置は、検索可能暗号化データを含むデータベースを記憶している。データベース装置50は、例えば、データベースサーバであり、パーソナルコンピュータ等の情報処理装置によって実現される。データベース装置50は、データの検索や登録などの要求を受信して処理を行い、結果を返信する機能を備えている。   The database device 50 includes a storage device such as an optical disk device or a magnetic disk device. The storage device of the database device 50 stores a database including searchable encrypted data. The database device 50 is a database server, for example, and is realized by an information processing device such as a personal computer. The database device 50 has a function of receiving and processing a request for data search and registration, and returning a result.

次に、暗号データ検索システムの動作について説明する。本実施形態の暗号データ検索システムは、サービスプロバイダ鍵生成処理、ユーザ登録処理、データ登録処理および検索処理を実行する。以下、各処理について説明する。   Next, the operation of the encrypted data search system will be described. The encrypted data search system according to the present embodiment executes service provider key generation processing, user registration processing, data registration processing, and search processing. Hereinafter, each process will be described.

(サービスプロバイダ鍵生成処理)
サービスプロバイダ鍵生成処理について説明する。図6は、サービスプロバイダ鍵生成処理の一例を示す流れ図である。
(Service provider key generation process)
The service provider key generation process will be described. FIG. 6 is a flowchart illustrating an example of the service provider key generation process.

サービス管理者が入力操作を行うと、サービスプロバイダ装置20は、サービス管理者の入力操作に従って、セキュリティパラメータを入力とし、サービスプロバイダの公開鍵pk_sおよび秘密鍵sk_sを生成する(図6のKEYGEN1)。   When the service administrator performs an input operation, the service provider device 20 generates a service provider public key pk_s and a secret key sk_s according to the input operation of the service administrator, and generates a public key pk_s and a secret key sk_s of the service provider (KEYGEN1 in FIG. 6).

次いで、サービスプロバイダ装置20は、公開鍵pk_sを公開し(すなわち、ネットワークを介したアクセスに応じて配信可能とする)、秘密鍵sk_sを秘密裏に(すなわち、公開せずに)管理する(図6のKEYGEN2)。   Next, the service provider device 20 publishes the public key pk_s (that is, enables distribution according to access via the network), and manages the secret key sk_s secretly (that is, without publishing) (FIG. 6 KEYGEN2).

(ユーザ登録処理)
次に、ユーザ登録処理について説明する。図7は、ユーザ登録処理の一例を示す流れ図である。
(User registration process)
Next, user registration processing will be described. FIG. 7 is a flowchart showing an example of the user registration process.

ユーザiが入力操作を行うと、ユーザ装置40-iは、ユーザiの入力操作に従って、セキュリティパラメータを入力し、ユーザiの公開鍵pk_iおよび秘密鍵sk_iを生成する。図7に示す例では、ユーザ装置40-Aは、ユーザAの入力操作に従って、セキュリティパラメータを入力し、ユーザAの公開鍵pk_Aおよび秘密鍵sk_Aを生成する(図7のUREG1)。   When the user i performs an input operation, the user device 40-i inputs the security parameter according to the input operation of the user i, and generates the public key pk_i and the secret key sk_i of the user i. In the example illustrated in FIG. 7, the user device 40-A inputs the security parameters according to the input operation of the user A, and generates the public key pk_A and the secret key sk_A of the user A (UREG1 in FIG. 7).

次いで、ユーザ装置40-iは、サービスプロバイダ装置20に対して、ユーザ登録要求を送信する。図7に示す例では、ユーザ装置40-Aは、サービスプロバイダ装置20に対して、ユーザ登録要求を送信する(図7のUREG2)。   Next, the user device 40-i transmits a user registration request to the service provider device 20. In the example shown in FIG. 7, the user device 40-A transmits a user registration request to the service provider device 20 (UREG2 in FIG. 7).

ユーザ登録要求を受信したサービスプロバイダ装置20と、ユーザ装置40-iとは、対話しながら(具体的には、相互に通信を行いながら)プロキシ鍵rk_iを生成する。このとき、ユーザ登録要求にユーザiの秘密鍵sk_iを含めて送信することにより、サービスプロバイダ装置20は、単独でプロキシ鍵rk_iを生成することができる。その場合には、サービスプロバイダ装置20とユーザ装置40-iとは、特に対話を行わない。図7に示す例では、サービスプロバイダ装置20とユーザ装置40-Aとは、対話しながらプロキシ鍵rk_Aを生成する(図7のUREG3)。   The service provider device 20 that has received the user registration request and the user device 40-i generate a proxy key rk_i while interacting (specifically, communicating with each other). At this time, the service provider device 20 can independently generate the proxy key rk_i by transmitting the user registration request including the secret key sk_i of the user i. In that case, the service provider device 20 and the user device 40-i do not particularly interact. In the example shown in FIG. 7, the service provider device 20 and the user device 40-A generate the proxy key rk_A while interacting (UREG3 in FIG. 7).

次いで、サービスプロバイダ装置20は、プロキシサーバ装置30に、ユーザを識別するデータと生成したプロキシ鍵rk_iとを対応付けたデータ(ユーザi,rk_i)を送信し、記憶させる。図7に示す例では、サービスプロバイダ装置20は、プロキシサーバ装置30に、ユーザを識別するデータと生成したプロキシ鍵rk_Aとを対応付けたデータ(ユーザA,rk_A)を送信し、記憶させる(図7のUREG4)。   Next, the service provider device 20 transmits to the proxy server device 30 data (user i, rk_i) that associates the data for identifying the user with the generated proxy key rk_i and stores the data. In the example shown in FIG. 7, the service provider device 20 transmits to the proxy server device 30 data (user A, rk_A) in which the data for identifying the user and the generated proxy key rk_A are associated with each other (FIG. 7). 7 UEG4).

(データ登録処理)
次に、データ登録処理について説明する。図8は、データ登録処理の一例を示す流れ図である。
(Data registration process)
Next, the data registration process will be described. FIG. 8 is a flowchart showing an example of the data registration process.

データ登録者が登録操作を行うと、データ登録装置10は、データ登録者の登録操作に従って、サービスプロバイダの公開鍵pk_sと、登録したいメッセージMとを入力として、検索可能暗号文E(pk_s,M)を生成する(図8のDREG1)。   When the data registrant performs a registration operation, the data registration device 10 receives the service provider's public key pk_s and the message M to be registered in accordance with the data registrant's registration operation, and uses the searchable ciphertext E (pk_s, M ) Is generated (DREG1 in FIG. 8).

次いで、データ登録装置10は、検索可能暗号文E(pk_s,M)をデータベース装置50に送信し、記憶させる(図8のDREG2)。   Next, the data registration device 10 transmits the searchable ciphertext E (pk_s, M) to the database device 50 and stores it (DREG2 in FIG. 8).

(検索処理)
次に、検索処理について説明する。図9は、検索処理の一例を示す流れ図である。
(Search process)
Next, the search process will be described. FIG. 9 is a flowchart illustrating an example of the search process.

ユーザiが入力操作を行うと、ユーザ装置40-iは、ユーザiの入力操作に従って、ユーザiの秘密鍵sk_iと、検索対象キーワードKWとを入力し、ユーザクエリTR(sk_i,KW)を生成する。そして、ユーザ装置40-iは、生成したユーザクエリTR(sk_i,KW)をプロキシサーバ装置30に送信する。   When the user i performs an input operation, the user device 40-i inputs the secret key sk_i of the user i and the search target keyword KW according to the input operation of the user i, and generates a user query TR (sk_i, KW) To do. Then, the user device 40-i transmits the generated user query TR (sk_i, KW) to the proxy server device 30.

図9に示す例では、ユーザAが入力操作を行うと、ユーザ装置40-Aは、ユーザAの入力操作に従って、ユーザAの秘密鍵sk_Aと、検索対象キーワードKWとを入力し、ユーザクエリTR(sk_A,KW)を生成する(図9のSRC1)。そして、ユーザ装置40-Aは、生成したユーザクエリTR(sk_A,KW)をプロキシサーバ装置30に送信する。   In the example shown in FIG. 9, when the user A performs an input operation, the user device 40-A inputs the user A's secret key sk_A and the search target keyword KW according to the user A's input operation, and the user query TR (sk_A, KW) is generated (SRC1 in FIG. 9). Then, the user device 40-A transmits the generated user query TR (sk_A, KW) to the proxy server device 30.

次いで、プロキシサーバ装置30は、受信したユーザクエリTR(sk_i,KW)と、記憶しているプロキシ鍵rk_iとを入力として、検索クエリTR(sk_s,KW)を生成し、データベース装置50に送信する。例えば、プロキシサーバ装置30は、受信したユーザクエリTR(sk_i,KW)と、記憶しているユーザを識別するデータと生成したプロキシ鍵rk_iとを対応付けたデータ(ユーザi,rk_i)とに基づいて、プロキシ鍵を特定する。そして、プロキシサーバ装置30は、受信したユーザクエリTR(sk_i,KW)と、特定したプロキシ鍵rk_iとを入力として、検索クエリTR(sk_s,KW)を生成する。   Next, the proxy server device 30 receives the received user query TR (sk_i, KW) and the stored proxy key rk_i as input, generates a search query TR (sk_s, KW), and transmits it to the database device 50. . For example, the proxy server device 30 is based on the received user query TR (sk_i, KW) and data (user i, rk_i) that associates the stored user identification data with the generated proxy key rk_i. Specify the proxy key. Then, the proxy server device 30 receives the received user query TR (sk_i, KW) and the specified proxy key rk_i as input, and generates a search query TR (sk_s, KW).

図9に示す例では、プロキシサーバ装置30は、受信したユーザクエリTR(sk_A,KW)と、記憶しているプロキシ鍵rk_Aとを入力として、検索クエリTR(sk_s,KW)を生成し、データベース装置50に送信する(図9のSRC2)。   In the example shown in FIG. 9, the proxy server device 30 receives the received user query TR (sk_A, KW) and the stored proxy key rk_A as input, generates a search query TR (sk_s, KW), and creates a database. The data is transmitted to the device 50 (SRC2 in FIG. 9).

次いで、データベース装置50は、内部に記憶した暗号文の集合および検索クエリTR(sk_s,KW)を入力として、検索結果Resultを生成し、検索結果Resultをプロキシサーバ装置30に送信する(図9のSRC3)。具体的には、データベース50装置は、記憶している検索可能暗号化データから受信した検索クエリTR(sk_s,KW)に基づいてデータを検索して抽出し、検索結果としてプロキシサーバ装置30に送信する。   Next, the database device 50 receives the set of ciphertexts stored therein and the search query TR (sk_s, KW) as input, generates a search result Result, and transmits the search result Result to the proxy server device 30 (FIG. 9). SRC3). Specifically, the database 50 device searches and extracts data based on the received search query TR (sk_s, KW) from the stored searchable encrypted data, and transmits it to the proxy server device 30 as a search result. To do.

次いで、プロキシサーバ装置30は、検索結果Resultをユーザ装置40-iに送信する。図9に示す例では、プロキシサーバ装置30は、検索結果Resultをユーザ装置40-Aに送信する(図9のSRC4)。   Next, the proxy server device 30 transmits the search result Result to the user device 40-i. In the example illustrated in FIG. 9, the proxy server device 30 transmits the search result Result to the user device 40-A (SRC4 in FIG. 9).

次に、具体例を用いて暗号データ検索システムの動作を説明する。なお、以降、a^bと記載することでaのb乗を表す。   Next, the operation of the encrypted data search system will be described using a specific example. In the following, a ^ b represents the bth power of a.

まず、ペアリング関数について説明する。G,G_Tを位数qを持つ巡回群とし、g_1,g_2をそれぞれGの生成元としたとき、ペアリング関数e:G×G→G_Tは、任意のZ_qの元a,bに対して以下の性質を満たす2入力1出力の関数である。
・e(g_1^a,g_2^b)=e(g_1,g_2)^{ab}
・e(g_1,g_2)≠1
First, the pairing function will be described. When G and G_T are cyclic groups with order q and g_1 and g_2 are G generators, respectively, the pairing function e: G × G → G_T is the following for any Z_q elements a and b: Is a 2-input 1-output function that satisfies the properties of
・ E (g_1 ^ a, g_2 ^ b) = e (g_1, g_2) ^ {ab}
・ E (g_1, g_2) ≠ 1

次に、非特許文献1に記載された検索可能暗号方式について説明する。非特許文献1に記載された方式は、秘密鍵を持つユーザのみが検索可能な検索可能暗号方式である。各エンティティに対してシステムパラメータとしてq,G,G_T,Gの生成元g,ペアリング関数e:G×G→G_T、任意のビット列からGへのハッシュ関数H_1、G_Tの元からkビットのビット列へのハッシュ関数H_2が与えられている。   Next, the searchable encryption method described in Non-Patent Document 1 will be described. The method described in Non-Patent Document 1 is a searchable encryption method that can be searched only by a user having a secret key. For each entity, q, G, G_T, G generator g, pairing function e: G × G → G_T, arbitrary bit string to G hash function H_1, k_bit bit string from G_T element for each entity A hash function H_2 to is given.

(非特許文献1に記載された鍵生成処理)
ユーザは、Z_qからランダムにxを選択する。次いで、ユーザは、g^xを計算する。そして、ユーザは、秘密鍵をx、公開鍵をg^xとし、公開鍵を公開する。なお、具体的には、情報処理装置がユーザの操作に従ってこれらの処理を実行する。
(Key generation process described in Non-Patent Document 1)
The user randomly selects x from Z_q. The user then calculates g ^ x. Then, the user makes the secret key x, the public key g ^ x, and makes the public key public. Specifically, the information processing apparatus executes these processes in accordance with user operations.

(非特許文献1に記載された検索可能暗号データ生成処理)
データ登録者は、公開鍵g^xと、登録したいデータMとを入力として、Z_qからランダムにrを選択し、検索可能暗号データ(C_1,C_2)=(H_2(e(H_1(M),(g^x)^r)),g^r)を生成し、データベースに送信して記憶させる。なお、具体的には、情報処理装置がデータ登録者の操作に従ってこれらの処理を実行する。
(Searchable encryption data generation process described in Non-Patent Document 1)
The data registrant inputs the public key g ^ x and the data M to be registered, selects r at random from Z_q, and the searchable encrypted data (C_1, C_2) = (H_2 (e (H_1 (M), (g ^ x) ^ r)), g ^ r) is generated and sent to the database for storage. Specifically, the information processing apparatus executes these processes according to the operation of the data registrant.

(非特許文献1に記載された検索処理)
ユーザは、検索キーワードKWと、秘密鍵xとを入力として、Q=H_1(KW)^sを生成し、検索クエリとしてデータベースに送信する。なお、具体的には、情報処理装置がユーザの操作に従ってこれらの処理を実行する。データベースは、自身が記憶している検索可能暗号データの集合{(C_1,C_2)}の各要素に対して、C_1=H_2(e(Q,C_2))が成立するか否かを確認する。そして、データベースは、等号が成立した検索可能暗号データ(C_1,C_2)を検索結果として出力する。なお、具体的には、データベースを記憶する記憶装置を備えた情報処理装置が検索クエリを受信し、これらの処理を実行する。
(Search process described in Non-Patent Document 1)
The user receives the search keyword KW and the secret key x, generates Q = H_1 (KW) ^ s, and transmits it to the database as a search query. Specifically, the information processing apparatus executes these processes in accordance with user operations. The database confirms whether or not C_1 = H_2 (e (Q, C_2)) holds for each element of the set of searchable encrypted data {(C_1, C_2)} stored in itself. Then, the database outputs searchable encryption data (C_1, C_2) for which the equal sign is established as a search result. Specifically, an information processing apparatus including a storage device that stores a database receives a search query and executes these processes.

次に、本実施形態の暗号データ検索システムが実行するサービスプロバイダ鍵生成、ユーザ登録、データ登録および検索の各処理について説明する。各エンティティに対して、システムパラメータとして、q,G,G_T,Gの生成元g,ペアリング関数e:G×G→G_T、任意のビット列からGへのハッシュ関数H_1、G_Tの元からkビットのビット列へのハッシュ関数H_2が与えられている。   Next, service provider key generation, user registration, data registration, and search processes executed by the encrypted data search system of this embodiment will be described. For each entity, q, G, G_T, G generator g, pairing function e: G × G → G_T, hash function H_1 from arbitrary bit string to G, k bits from G_T element as system parameters The hash function H_2 for the bit string of is given.

(サービスプロバイダ鍵生成処理)
サービスプロバイダ鍵生成処理の具体例について説明する。図10は、サービスプロバイダ鍵生成処理の具体例を示す流れ図である。
(Service provider key generation process)
A specific example of service provider key generation processing will be described. FIG. 10 is a flowchart showing a specific example of service provider key generation processing.

図10に示すように、サービスプロバイダ装置20は、非特許文献1に記載された鍵生成処理と同様の処理を実行する(図10のKEYGEN1)。   As shown in FIG. 10, the service provider device 20 executes a process similar to the key generation process described in Non-Patent Document 1 (KEYGEN1 in FIG. 10).

次いで、サービスプロバイダ装置20は、生成したサービスプロバイダの公開鍵をpk_s=g^sとして公開し、秘密鍵をsk_s=sとして保管する(図10のKEYGEN2)。   Next, the service provider device 20 publishes the generated public key of the service provider as pk_s = g ^ s and stores the secret key as sk_s = s (KEYGEN2 in FIG. 10).

(ユーザ登録処理)
次に、ユーザ登録処理の具体例について説明する。図11は、ユーザ登録処理の具体例を示す流れ図である。
(User registration process)
Next, a specific example of user registration processing will be described. FIG. 11 is a flowchart showing a specific example of the user registration process.

ユーザ装置40-iは、ユーザiの操作に従って、非特許文献1の鍵生成処理と同様の処理を実行し、公開鍵pk_i=g^{x_i}と、秘密鍵(x_i)とを生成する(図11のUREG1)。   The user device 40-i executes a process similar to the key generation process of Non-Patent Document 1 according to the operation of the user i, and generates a public key pk_i = g ^ {x_i} and a secret key (x_i) ( UEG1 in FIG. 11).

次いで、ユーザ装置40-iは、ユーザ登録要求をサービスプロバイダ装置20に送信する(図11のUREG2)。   Next, the user device 40-i transmits a user registration request to the service provider device 20 (UREG2 in FIG. 11).

さらに、ユーザ装置40-iは、秘密鍵x_iをサービスプロバイダ装置20に送信する。すると、サービスプロバイダ装置20は、プロキシ鍵rk_i=s/x_iを生成し、プロキシサーバ装置30にユーザを識別するデータと生成したプロキシ鍵とを対応付けたデータ(ユーザi,rk_i)を送信する(図11のUREG3)。   Further, the user device 40-i transmits the secret key x_i to the service provider device 20. Then, the service provider device 20 generates a proxy key rk_i = s / x_i, and transmits data (user i, rk_i) in which the data for identifying the user and the generated proxy key are associated with each other to the proxy server device 30 ( UREG3 in FIG. 11).

次いで、プロキシサーバ装置30は、ユーザを識別するデータとプロキシ鍵とを対応付けたデータ(ユーザi,rk_i)を記憶部に記憶する(図11のUREG4)。   Next, the proxy server device 30 stores data (user i, rk_i) in which the data for identifying the user and the proxy key are associated with each other in the storage unit (UREG4 in FIG. 11).

(データ登録処理)
次に、データ登録処理の具体例について説明する。図12は、データ登録処理の具体例を示す流れ図である。
(Data registration process)
Next, a specific example of the data registration process will be described. FIG. 12 is a flowchart showing a specific example of the data registration process.

データ登録装置10は、データ登録者の登録操作に従って、サービスプロバイダの公開鍵pk_sおよび登録するデータMを入力として、非特許文献1の検索可能暗号データ生成処理を実行する(図12のDREG1)。具体的には、データ登録装置10は、検索可暗号データとして(C_1,C_2)=(H_2(e(H_1(M),pk_s^r)),g^r)を生成する。   The data registration device 10 executes the searchable encryption data generation process of Non-Patent Document 1 with the service provider's public key pk_s and the data M to be registered as input in accordance with the registration operation of the data registrant (DREG1 in FIG. 12). Specifically, the data registration device 10 generates (C_1, C_2) = (H_2 (e (H_1 (M), pk_s ^ r)), g ^ r) as searchable encryption data.

次いで、データ登録装置10は、検索可能暗号データ(C_1,C_2)をデータベース装置50に送信し、記憶させる(図12のDREG2)。   Next, the data registration device 10 transmits the searchable encrypted data (C_1, C_2) to the database device 50 and stores it (DREG2 in FIG. 12).

(検索処理)
次に、検索処理の具体例について説明する。図13は、検索処理の具体例を示す流れ図である。ここでは、データベース装置50は、データ登録処理によってN個の検索可能暗号データ{(C_1,C_2)_i}を記憶しているとする。
(Search process)
Next, a specific example of search processing will be described. FIG. 13 is a flowchart showing a specific example of the search process. Here, it is assumed that the database device 50 stores N pieces of searchable encrypted data {(C_1, C_2) _i} by data registration processing.

ユーザ装置40-iは、ユーザiの入力操作に従って、秘密鍵sk_iと、検索対象キーワードKWとを入力として、ユーザクエリTR(sk_i,KW)=H_1(KW)^{x_i}を生成し、プロキシサーバ装置30に送信する(図13のSRC1)。   The user device 40-i generates a user query TR (sk_i, KW) = H_1 (KW) ^ {x_i} by inputting the secret key sk_i and the search target keyword KW according to the input operation of the user i, and generates a proxy The data is transmitted to the server device 30 (SRC1 in FIG. 13).

次いで、プロキシサーバ装置30は、受信したユーザクエリTR(sk_i,KW)と、プロキシ鍵rk_iとを入力として、検索クエリTR(sk_s,KW)=TR(sk_i,KW)^{rk_i}=H_1(KW)^{s}を生成し、データベース装置50に送信する(図13のSRC2)。   Next, the proxy server device 30 receives the received user query TR (sk_i, KW) and the proxy key rk_i as input, and uses the search query TR (sk_s, KW) = TR (sk_i, KW) ^ {rk_i} = H_1 ( KW) ^ {s} is generated and transmitted to the database device 50 (SRC2 in FIG. 13).

次いで、データベース装置50は、自身が記憶している検索可能暗号データの集合{(C_1,C_2)}の各要素に対して、C_1=H_2(e(TR(sk_i,KW),C_2))が成立するか否かを確認する。そして、データベース装置50は、等号が成立した検索可能暗号データ(C_1,C_2)を検索結果としてプロキシサーバ装置30に送信する(図13のSRC3)。   Next, the database device 50 stores C_1 = H_2 (e (TR (sk_i, KW), C_2)) for each element of the set {(C_1, C_2)} of searchable encryption data stored in itself. Check if it is true. Then, the database device 50 transmits the searchable encryption data (C_1, C_2) for which the equal sign is established to the proxy server device 30 as a search result (SRC3 in FIG. 13).

次いで、プロキシサーバ装置30は、受信した検索結果をユーザ装置40-iに送信する(図13のSRC4)。   Next, the proxy server device 30 transmits the received search result to the user device 40-i (SRC4 in FIG. 13).

なお、プロキシサーバ装置30は、安全のために、検索を行う前にユーザ認証を行うことが望ましい。ユーザ認証の方法として、例えば、既存のID/Passwordを用いた方法や、電子署名を用いた方法などを用いることができる。   Note that it is desirable for the proxy server device 30 to perform user authentication before performing a search for safety. As a user authentication method, for example, a method using an existing ID / Password or a method using an electronic signature can be used.

また、プロキシ鍵生成処理に関しては、マルチパーティ計算を行うことにより、サービスプロバイダの秘密鍵s、ユーザiの秘密鍵x_iを互いに秘密にしたままs/x_iを計算できることが知られている。本システムにおいても、マルチパーティ計算を利用してs/x_iを計算してもよい。   Regarding proxy key generation processing, it is known that s / x_i can be calculated by performing multi-party calculation while keeping the secret key s of the service provider and the secret key x_i of the user i secret. Also in this system, s / x_i may be calculated using multi-party calculation.

さらに、本実施形態では、検索可能暗号データのデータサイズを小さくするためにハッシュ関数H_2を用いているが、H_2を省略しても構わない。   Furthermore, in the present embodiment, the hash function H_2 is used to reduce the data size of the searchable encrypted data, but H_2 may be omitted.

本実施形態では、検索可能暗号データは(C_1,C_2)=(H_2(e(H_1(M),pk_s^r)),g^r)となる。秘密鍵sk_sまたはユーザiの秘密鍵sk_iおよびプロキシ鍵rk_iを用いずに、サービスプロバイダの公開鍵および(C_1,C_2)だけを用いて、検索処理を行うことは難しい。また、プロキシサーバ装置はs/aを保持するが、sまたはa(すなわち、サービスプロバイダの秘密鍵またはユーザの秘密鍵)が分からない限り、検索クエリを生成することもできない。したがって、プロキシサーバ装置の管理者が悪意を持って行動した場合でも、データベースに記憶された検索可能暗号データの集合に対して、任意のキーワードに対する検索を行うことができない。   In the present embodiment, the searchable encryption data is (C_1, C_2) = (H_2 (e (H_1 (M), pk_s ^ r)), g ^ r). It is difficult to perform the search process using only the public key of the service provider and (C_1, C_2) without using the secret key sk_s or the secret key sk_i of the user i and the proxy key rk_i. Further, the proxy server device holds s / a, but it is also impossible to generate a search query unless s or a (that is, the service provider private key or the user private key) is known. Therefore, even when the administrator of the proxy server device acts maliciously, it is not possible to perform a search for an arbitrary keyword with respect to a set of searchable encrypted data stored in the database.

以上に説明したように、本実施形態の第1の効果は、異なる公開鍵・秘密鍵を有する複数ユーザからの検索要求に対し検索結果を回答できることにある。これにより、1つのデータに対して複数ユーザが暗号化したまま検索を行うことが可能となる。   As described above, the first effect of the present embodiment is that a search result can be answered in response to a search request from a plurality of users having different public / private keys. As a result, it becomes possible for a plurality of users to perform a search with respect to one piece of data.

また、本実施形態の第2の効果は、データベース内に記憶された検索可能暗号データが漏洩した場合であっても、サービスプロバイダの秘密鍵が漏洩しなければ、データの内容に関するいかなる情報も漏えいしないことにある。これにより、万が一データベース内のデータが漏洩した場合にも、情報漏えいの被害を軽減できる。   In addition, the second effect of the present embodiment is that even if searchable encrypted data stored in the database is leaked, any information regarding the contents of the data is leaked if the secret key of the service provider is not leaked. There is to not. As a result, even if the data in the database is leaked, the damage of information leakage can be reduced.

したがって、本実施形態の暗号データ検索システムは、異なる公開鍵・秘密鍵を有する複数ユーザからの検索要求に対し検索結果を回答でき、かつデータ漏洩による被害を低減することができる。   Therefore, the encrypted data search system of this embodiment can answer search results to search requests from a plurality of users having different public keys and secret keys, and can reduce damage caused by data leakage.

実施形態2.
次に、本発明の第2の実施形態について説明する。本実施形態の暗号データ検索システムは、第1の実施形態と同様の構成を備えている。また、本実施形態では、ユーザ装置は、図14に示すように、第1の実施形態の構成に加えて、署名・検証鍵生成部405-iと、署名データ生成部406-iとを含む。署名・検証鍵生成部405-iおよび署名データ生成部406-iは、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。
Embodiment 2. FIG.
Next, a second embodiment of the present invention will be described. The encrypted data search system of this embodiment has the same configuration as that of the first embodiment. In the present embodiment, as shown in FIG. 14, the user apparatus includes a signature / verification key generation unit 405-i and a signature data generation unit 406-i in addition to the configuration of the first embodiment. . Specifically, the signature / verification key generation unit 405-i and the signature data generation unit 406-i are realized by a CPU of an information processing apparatus that operates according to a program.

本実施形態では、電子署名を利用する。まず、電子署名について説明する。電子署名には、鍵生成、署名生成および署名検証の3つのアルゴリズムがある。   In this embodiment, an electronic signature is used. First, the electronic signature will be described. There are three algorithms for electronic signature: key generation, signature generation, and signature verification.

鍵生成アルゴリズムは、セキュリティパラメータを入力とし、署名を生成するための鍵である署名鍵skと、署名を検証するための鍵である検証鍵vkとを生成する。例えば、本実施形態では、署名・検証鍵生成部405-iが、セキュリティパラメータを入力とし、署名鍵skと検証鍵vkとを生成する。   The key generation algorithm receives a security parameter and generates a signature key sk that is a key for generating a signature and a verification key vk that is a key for verifying the signature. For example, in this embodiment, the signature / verification key generation unit 405-i receives a security parameter and generates a signature key sk and a verification key vk.

署名生成アルゴリズムは、署名対象メッセージMと、署名者の署名鍵skとを入力とし、署名データ(M,σ)を出力する。例えば、本実施形態では、署名データ生成部406-iが、署名対象メッセージMと署名者の署名鍵skとを入力とし、署名データ(M,σ)を生成して出力する。   The signature generation algorithm receives the signature target message M and the signer's signature key sk, and outputs signature data (M, σ). For example, in the present embodiment, the signature data generation unit 406-i receives the signature target message M and the signature key sk of the signer, and generates and outputs signature data (M, σ).

署名検証アルゴリズムは、署名データ(M,σ)と、署名者の検証鍵vkとを入力とし、受理または不受理を示す検証結果を出力する。例えば、本実施形態では、データベース装置50が、署名データ(M,σ)と、署名者の検証鍵vkとを入力とし、受理または不受理を示す検証結果を出力する。   The signature verification algorithm receives signature data (M, σ) and the signer's verification key vk, and outputs a verification result indicating acceptance or non-acceptance. For example, in this embodiment, the database device 50 receives the signature data (M, σ) and the signer's verification key vk, and outputs a verification result indicating acceptance or non-acceptance.

次に、本実施形態の暗号データ検索システムのサービスプロバイダ鍵生成、ユーザ登録、データ登録、検索の各処理について説明する。ここでは、各エンティティに対してシステムパラメータとして、q,G,G_T,Gの生成元g,ペアリング関数e:G×G→G_T、任意のビット列からGへのハッシュ関数H_1、G_Tの元からkビットのビット列へのハッシュ関数H_2が与えられている。   Next, each process of service provider key generation, user registration, data registration, and search of the encrypted data search system of this embodiment will be described. Here, as a system parameter for each entity, q, G, G_T, G generator g, pairing function e: G × G → G_T, from any bit string to G hash function H_1, G_T A hash function H_2 for a bit string of k bits is given.

(サービスプロバイダ鍵生成処理)
本実施形態のサービスプロバイダ鍵生成処理について説明する。サービスプロバイダ装置20は、非特許文献1に記載された鍵生成処理と同様の処理を実行する。次いで、サービスプロバイダ装置20は、生成したサービスプロバイダの公開鍵をpk_s=g^sとして公開し、秘密鍵をsk_s=sとして保管する。
(Service provider key generation process)
The service provider key generation process of this embodiment will be described. The service provider device 20 executes a process similar to the key generation process described in Non-Patent Document 1. Next, the service provider device 20 discloses the generated public key of the service provider as pk_s = g ^ s, and stores the secret key as sk_s = s.

(ユーザ登録処理)
次に、ユーザ登録処理について説明する。ユーザ装置40-iは、ユーザiの操作に従って、署名生成の鍵生成を行い、検証鍵vk_iと秘密鍵sk_iとを生成する。
(User registration process)
Next, user registration processing will be described. The user device 40-i generates a signature generation key according to the operation of the user i, and generates a verification key vk_i and a secret key sk_i.

次いで、ユーザ装置40-iは、ユーザ登録要求をサービスプロバイダ装置20に送信する。さらに、ユーザ装置40-iは、検証鍵vk_iをサービスプロバイダ装置20に送信する。   Next, the user device 40-i transmits a user registration request to the service provider device 20. Further, the user device 40-i transmits the verification key vk_i to the service provider device 20.

次いで、サービスプロバイダ装置20は、サービスプロバイダの秘密鍵sk_sおよびユーザの検証鍵vk_iを、プロキシサーバ装置30に送信する。   Next, the service provider device 20 transmits the service provider secret key sk_s and the user verification key vk_i to the proxy server device 30.

次いで、プロキシサーバ装置30は、ユーザを識別する情報と検証鍵とを対応付けたデータ(ユーザi,vk_i)およびサービスプロバイダの秘密鍵sk_sを記憶部に記憶する。   Next, the proxy server device 30 stores data (user i, vk_i) in which the information for identifying the user and the verification key are associated with each other and the secret key sk_s of the service provider in the storage unit.

(データ登録処理)
次に、データ登録処理について説明する。本実施形態のデータ登録処理は、第1の実施形態のデータ登録処理と同様である。
(Data registration process)
Next, the data registration process will be described. The data registration process of this embodiment is the same as the data registration process of the first embodiment.

データ登録装置10は、データ登録者の登録操作に従って、サービスプロバイダの公開鍵pk_sおよび登録するデータMを入力として、非特許文献1の検索可能暗号データ生成処理を実行する。具体的には、データ登録装置10は、検索可能暗号データとして(C_1,C_2)=(H_2(e(H_1(M),pk_s^r)),g^r)を生成する。   The data registration device 10 executes the searchable encrypted data generation process of Non-Patent Document 1 with the public key pk_s of the service provider and the data M to be registered as input according to the registration operation of the data registrant. Specifically, the data registration device 10 generates (C_1, C_2) = (H_2 (e (H_1 (M), pk_s ^ r)), g ^ r) as searchable encryption data.

次いで、データ登録装置10は、検索可能暗号データ(C_1,C_2)をデータベース装置50に送信し、記憶させる。   Next, the data registration device 10 transmits the searchable encrypted data (C_1, C_2) to the database device 50 and stores it.

(検索処理)
次に、検索処理について説明する。ここでは、データベース装置50は、データ登録処理によってN個の検索可能暗号データ{(C_1,C_2)_i}を記憶しているとする。
(Search process)
Next, the search process will be described. Here, it is assumed that the database device 50 stores N pieces of searchable encrypted data {(C_1, C_2) _i} by data registration processing.

ユーザ装置40-iは、ユーザiの入力操作に従って、検索対象キーワードKWを入力として、ユーザクエリH_1(KW)を生成し、プロキシサーバ装置30に送信する。   The user device 40-i generates a user query H_1 (KW) using the search target keyword KW as an input in accordance with the input operation of the user i, and transmits it to the proxy server device 30.

次いで、プロキシサーバ装置30は、受信したユーザクエリH_1(KW)と、サービスプロバイダの秘密鍵sk_sとを入力として、検索クエリTR(sk_s,KW)=H_1(KW)^{s}を生成し、ユーザ装置40-iに送信する。   Next, the proxy server device 30 receives the received user query H_1 (KW) and the service provider's private key sk_s as input, and generates a search query TR (sk_s, KW) = H_1 (KW) ^ {s} Transmit to user device 40-i.

次いで、ユーザ装置40-iは、受信した検索クエリTR(sk_s,KW)と、署名鍵sk_iとを入力として、検索クエリTR(sk_s,KW)に対して署名データ(TR(sk_s,KW),σ)を生成し、データベース装置50に送信する。   Next, the user device 40-i receives the received search query TR (sk_s, KW) and the signature key sk_i as input, and the signature data (TR (sk_s, KW), σ) is generated and transmitted to the database device 50.

次いで、データベース装置50は、ユーザ装置40-iから受信した署名データ(TR(sk_s,KW),σ)と、ユーザiの検証鍵vk_iとを入力として、署名検証を行う。   Next, the database device 50 performs signature verification using the signature data (TR (sk_s, KW), σ) received from the user device 40-i and the verification key vk_i of the user i as inputs.

署名検証結果が拒否であった場合、データベース装置50は、ユーザiに署名が拒否であった旨を通知し、動作を停止する。一方、署名検証結果が受理であった場合、データベース装置50は、自身が記憶している検索可能暗号データの集合{(C_1,C_2)}の各要素に対して、C_1=H_2(e(TR(sk_i,KW),C_2))が成立するか否かを確認する。そして、データベース装置50は、等号が成立した検索可能暗号データ(C_1,C_2)を検索結果としてユーザ装置40-iに送信する。   When the signature verification result is rejected, the database device 50 notifies the user i that the signature is rejected and stops the operation. On the other hand, if the signature verification result is accepted, the database device 50 performs C_1 = H_2 (e (TR ()) for each element of the set of searchable encrypted data {(C_1, C_2)} stored in itself. Check whether (sk_i, KW), C_2)) holds. Then, the database device 50 transmits the searchable encryption data (C_1, C_2) for which the equal sign is established to the user device 40-i as a search result.

プロキシサーバ装置30は、安全のために、検索を行う前にユーザ認証を行うことが望ましい。ユーザ認証の方法として、例えば、既存のID/Passwordを用いた方法や、電子署名を用いた方法などを用いることができる。   The proxy server device 30 desirably performs user authentication before performing a search for safety. As a user authentication method, for example, a method using an existing ID / Password or a method using an electronic signature can be used.

本実施形態では、データベースが検索を行う際に、検索クエリに付与された電子署名の検証を行う。また、プロキシサーバ装置はs(すなわち、サービスプロバイダの秘密鍵)を保持するため、任意のキーワードに対する検索クエリを生成できるが、ユーザの電子署名を生成することができない。そのため、プロキシサーバ装置の管理者が悪意を持って行動した場合であっても、データベースに記憶された検索可能暗号データの集合に対して、任意のキーワードに対する検索を行うことができない。   In the present embodiment, when the database performs a search, the electronic signature given to the search query is verified. Further, since the proxy server device holds s (that is, the service provider's private key), it can generate a search query for an arbitrary keyword, but cannot generate a user's electronic signature. Therefore, even if the administrator of the proxy server device acts maliciously, it is not possible to perform a search for an arbitrary keyword with respect to a set of searchable encrypted data stored in the database.

したがって、本実施形態の暗号データ検索システムは、異なる公開鍵・秘密鍵を有する複数ユーザからの検索要求に対し検索結果を回答でき、かつデータ漏洩による被害を低減することができる。   Therefore, the encrypted data search system of this embodiment can answer search results to search requests from a plurality of users having different public keys and secret keys, and can reduce damage caused by data leakage.

なお、本発明は、上記に示した実施形態に限定されるものではなく、本発明の技術思想の範囲内において、実施例を適宜変更して実施可能である。   The present invention is not limited to the embodiment described above, and can be implemented by appropriately changing the examples within the scope of the technical idea of the present invention.

次に、本発明による暗号データ検索システムの最小構成について説明する。図15は、暗号データ検索システムの最小の構成例を示すブロック図である。図15に示すように、暗号データ検索システムは、最小の構成要素として、サービス提供装置2と、データ登録装置1と、データベース装置5と、ユーザ装置4と、プロキシ装置3とを備えている。   Next, the minimum configuration of the encrypted data retrieval system according to the present invention will be described. FIG. 15 is a block diagram illustrating a minimum configuration example of the encrypted data search system. As shown in FIG. 15, the encrypted data search system includes a service providing device 2, a data registration device 1, a database device 5, a user device 4, and a proxy device 3 as minimum components.

図15に示す最小構成の暗号データ検索システムでは、サービス提供装置2は、データを暗号化するためのサービス公開鍵およびサービス公開鍵に対応したサービス秘密鍵を生成する。また、サービス提供装置2は、データの検索を要求するユーザ装置4が生成したユーザ秘密鍵とサービス秘密鍵とを入力として、ユーザ装置4ごとのプロキシ鍵を生成し、プロキシ装置3に送信する。また、データベース装置5は、データ登録装置1がサービス公開鍵およびデータを入力として生成した検索可能暗号データを記憶する。   In the encryption data search system with the minimum configuration shown in FIG. 15, the service providing apparatus 2 generates a service public key for encrypting data and a service secret key corresponding to the service public key. Further, the service providing device 2 receives the user secret key and the service secret key generated by the user device 4 requesting the data search, generates a proxy key for each user device 4, and transmits the proxy key to the proxy device 3. Further, the database device 5 stores searchable encryption data generated by the data registration device 1 using the service public key and data as inputs.

ユーザ装置4は、データベース装置5に記憶された検索可能暗号データに対して、データの検索を要求するためのユーザクエリを、ユーザ秘密鍵を用いて生成し、プロキシ装置3に送信する。すると、プロキシ装置3は、ユーザ装置4から受信したユーザクエリとサービス提供装置2から受信したユーザ装置4ごとのプロキシ鍵とを入力として、データベース装置5に記憶されている検索可能暗号データの検索を要求するための検索クエリを生成する。   The user device 4 generates a user query for requesting data search for the searchable encrypted data stored in the database device 5 using the user secret key, and transmits the user query to the proxy device 3. Then, the proxy device 3 receives the user query received from the user device 4 and the proxy key for each user device 4 received from the service providing device 2 and searches for searchable encrypted data stored in the database device 5. Generate a search query to request.

従って、最小構成の暗号データ検索システムによれば、異なる公開鍵・秘密鍵を有する複数ユーザからの検索要求に対し検索結果を回答でき、かつデータ漏洩による被害を低減することができる。   Therefore, according to the encryption data search system having the minimum configuration, the search result can be answered in response to a search request from a plurality of users having different public keys and secret keys, and damage caused by data leakage can be reduced.

なお、本実施形態では、以下の(1)〜(5)に示すような暗号データ検索システムの特徴的構成が示されている。   In this embodiment, the characteristic configuration of the encrypted data retrieval system as shown in the following (1) to (5) is shown.

(1)暗号データ検索システムは、サービス提供装置(例えば、サービスプロバイダ装置20によって実現される)と、データ登録装置(例えば、データ登録装置10によって実現される)と、データベース装置(例えば、データベース装置50によって実現される)と、ユーザ装置(例えば、ユーザ装置40-iによって実現される)と、プロキシ装置(例えば、プロキシサーバ装置30によって実現される)とを備え、サービス提供装置は、データを暗号化するためのサービス公開鍵(例えば、pk_s)およびサービス公開鍵に対応したサービス秘密鍵(例えば、sk_s)を生成し(例えば、鍵生成部201によって実現される)、データの検索を要求するユーザ装置が生成したユーザ秘密鍵(例えば、pk_i)とサービス秘密鍵とを入力として、ユーザ装置ごとのプロキシ鍵(例えば、rk_i)を生成し、プロキシ装置に送信し(例えば、プロキシ鍵生成部202によって実現される)、データ登録装置は、サービス公開鍵およびデータ(例えば、データM)を入力として、検索可能暗号データを生成し(例えば、検索可能暗号データ生成部101によって実現される)、データベース装置は、検索可能暗号データを記憶し、ユーザ装置は、データベース装置に記憶された検索可能暗号データに対して、データの検索を要求するためのユーザクエリ(例えば、Q_i)を生成し、プロキシ装置に送信し(例えば、クエリ生成部404-iによって実現される)、プロキシ装置は、ユーザ装置から受信したユーザクエリとサービス提供装置から受信したユーザ装置ごとのプロキシ鍵とを入力として、データベース装置に記憶されている検索可能暗号データの検索を要求するための検索クエリ(例えば、Q_s)を生成し(例えば、クエリ変換部301によって実現される)、ユーザ装置は、さらに、ユーザ秘密鍵を用いてユーザクエリを生成することを特徴とする。   (1) The encrypted data search system includes a service providing device (for example, realized by the service provider device 20), a data registration device (for example, realized by the data registration device 10), and a database device (for example, a database device). 50), a user device (for example, realized by the user device 40-i), and a proxy device (for example, realized by the proxy server device 30). A service public key (for example, pk_s) for encryption and a service secret key (for example, sk_s) corresponding to the service public key are generated (for example, realized by the key generation unit 201), and a data search is requested. The user secret key (for example, pk_i) generated by the user device and the service secret key are input to A data key (for example, rk_i) is generated and transmitted to the proxy device (for example, realized by the proxy key generation unit 202), and the data registration device receives the service public key and data (for example, data M) as inputs, Searchable encryption data is generated (for example, realized by the searchable encryption data generation unit 101), the database device stores the searchable encryption data, and the user device stores the searchable encryption data stored in the database device. On the other hand, a user query (for example, Q_i) for requesting data search is generated and transmitted to the proxy device (for example, realized by the query generation unit 404-i), and the proxy device receives from the user device. The user query and the proxy key for each user device received from the service providing device are input, and the data stored in the database device is detected. A search query (for example, Q_s) for requesting a search for possible encryption data is generated (for example, realized by the query conversion unit 301), and the user device further generates a user query using the user secret key It is characterized by that.

(2)暗号データ検索システムにおいて、サービス提供装置は、サービス秘密鍵とユーザ秘密鍵とを入力として、ユーザ装置ごとのプロキシ鍵を生成し、プロキシ装置は、ユーザクエリおよびプロキシ鍵を入力として、検索クエリを生成し、データベース装置は、検索クエリとデータベース装置が記憶する検索可能暗号データとを入力として、検索結果を生成するように構成されていてもよい。   (2) In the cryptographic data search system, the service providing device generates a proxy key for each user device by inputting the service secret key and the user secret key, and the proxy device performs a search by inputting the user query and the proxy key. The query may be generated, and the database device may be configured to generate a search result with the search query and searchable encrypted data stored in the database device as inputs.

(3)暗号データ検索システムにおいて、データ登録装置は、素数位数qを持つ群G,G_T、e()をGの元2つを入力としてG_Tの群への写像であるペアリング関数、gを群Gの生成元、H_1を任意のビット列からG上へのハッシュ関数、H_2をG_Tからkビットのビット列上へのハッシュ関数、Mをメッセージ、Z_qの乱数r、sをサービス秘密鍵、gsをサービス公開鍵としたとき、H_2(e(H_1(M),gs)r),grを含む検索可能暗号データを生成し、ユーザ装置は、aをユーザ秘密鍵、gaをユーザ公開鍵とし、検索キーワードをKWとしたとき、H_1(KW)aを含むユーザクエリを生成するように構成されていてもよい。 (3) In the cryptographic data retrieval system, the data registration apparatus includes a pairing function g that is a mapping of groups G, G_T, e () having a prime number q to G_T groups with two elements G as inputs. Is the generator of the group G, H_1 is a hash function from any bit string to G, H_2 is a hash function from G_T to a k-bit bit string, M is a message, Z_q random numbers r and s are service secret keys, g When s is a service public key, searchable encrypted data including H_2 (e (H_1 (M), g s ) r ), g r is generated, and the user device generates a as a user private key and g as a user. When the public key is used and the search keyword is KW, a user query including H_1 (KW) a may be generated.

(4)暗号データ検索システムにおいて、プロキシ装置は、ユーザ装置のプロキシ鍵がs/aを含み、検索キーワードをKWとしたとき、H_1(KW)sを含む検索クエリを生成するように構成されていてもよい。 (4) In the encrypted data search system, the proxy device is configured to generate a search query including H_1 (KW) s when the proxy key of the user device includes s / a and the search keyword is KW. May be.

(5)暗号データ検索システムにおいて、ユーザ装置は、検証鍵と署名鍵とを生成し(例えば、検証・署名鍵生成405-iによって実現される)、プロキシ装置が生成した検索クエリと署名鍵とを入力として、署名データを生成し(例えば、署名データ生成406-iによって実現される)、データベース装置は、署名データと検証鍵とを入力として、署名検証を行うように構成されていてもよい。   (5) In the encrypted data search system, the user device generates a verification key and a signature key (for example, realized by the verification / signature key generation 405-i), and the search query and signature key generated by the proxy device The signature data is generated (for example, realized by the signature data generation 406-i), and the database device may be configured to perform signature verification using the signature data and the verification key as inputs. .

本発明は、通信ネットワークを介して、ユーザのIDを秘匿にして認証を行う匿名認証に好適に適用できる。   The present invention can be suitably applied to anonymous authentication in which authentication is performed while concealing a user ID via a communication network.

1 データ登録装置
2 サービス提供装置
3 プロキシ装置
4 ユーザ装置
5 データベース装置
DESCRIPTION OF SYMBOLS 1 Data registration apparatus 2 Service provision apparatus 3 Proxy apparatus 4 User apparatus 5 Database apparatus

Claims (8)

サービス提供装置と、データ登録装置と、データベース装置と、ユーザ装置と、プロキシ装置とを備え、
前記サービス提供装置は、
データを暗号化するためのサービス公開鍵および該サービス公開鍵に対応したサービス秘密鍵を生成し、
データの検索を要求する前記ユーザ装置が生成したユーザ秘密鍵と前記サービス秘密鍵とを入力として、前記ユーザ装置ごとのプロキシ鍵を生成し、前記プロキシ装置に送信し、
前記データ登録装置は、前記サービス公開鍵およびデータを入力として、検索可能暗号データを生成し、
前記データベース装置は、前記検索可能暗号データを記憶し、
前記ユーザ装置は、前記データベース装置に記憶された前記検索可能暗号データに対して、データの検索を要求するためのユーザクエリを生成し、前記プロキシ装置に送信し、
前記プロキシ装置は、前記ユーザ装置から受信した前記ユーザクエリと前記サービス提供装置から受信した前記ユーザ装置ごとのプロキシ鍵とを入力として、前記データベース装置に記憶されている前記検索可能暗号データの検索を要求するための検索クエリを生成し、
前記ユーザ装置は、さらに、前記ユーザ秘密鍵を用いて前記ユーザクエリを生成する
ことを特徴とする暗号データ検索システム。
A service providing device, a data registration device, a database device, a user device, and a proxy device;
The service providing apparatus includes:
Generating a service public key for encrypting data and a service secret key corresponding to the service public key;
Using the user secret key generated by the user device that requests data search and the service secret key as input, a proxy key for each user device is generated, and transmitted to the proxy device.
The data registration device receives the service public key and data, generates searchable encrypted data,
The database device stores the searchable encryption data,
The user device generates a user query for requesting data search for the searchable encrypted data stored in the database device, and transmits the user query to the proxy device.
The proxy device inputs the user query received from the user device and the proxy key for each user device received from the service providing device, and searches for the searchable encrypted data stored in the database device. Generate a search query to request,
The user device further generates the user query using the user secret key. An encrypted data search system, wherein:
サービス提供装置は、サービス秘密鍵とユーザ秘密鍵とを入力として、ユーザ装置ごとのプロキシ鍵を生成し、
プロキシ装置は、ユーザクエリおよび前記プロキシ鍵を入力として、検索クエリを生成し、
データベース装置は、前記検索クエリと当該データベース装置が記憶する検索可能暗号データとを入力として、検索結果を生成する
請求項1記載の暗号データ検索システム。
The service providing device receives the service secret key and the user secret key, generates a proxy key for each user device,
The proxy device receives the user query and the proxy key as input, generates a search query,
The encrypted data search system according to claim 1, wherein the database device receives the search query and searchable encrypted data stored in the database device as input, and generates a search result.
データ登録装置は、
素数位数qを持つ群G,G_T、
e()をGの元2つを入力としてG_Tの群への写像であるペアリング関数、
gを群Gの生成元、
H_1を任意のビット列からG上へのハッシュ関数、
H_2をG_Tからkビットのビット列上へのハッシュ関数、
Mをメッセージ、
Z_qの乱数r、
sをサービス秘密鍵、gsをサービス公開鍵としたとき、H_2(e(H_1(M),gs)r),grを含む検索可能暗号データを生成し、
ユーザ装置は、
aをユーザ秘密鍵、gaをユーザ公開鍵とし、検索キーワードをKWとしたとき、H_1(KW)aを含むユーザクエリを生成する
請求項1記載の暗号データ検索システム。
The data registration device
Groups G, G_T with prime order q,
A pairing function that is a mapping to a group of G_T with e () as the input of the two G elements,
g is the generator of group G,
H_1 is a hash function from G to G
A hash function of H_2 from G_T onto a bit string of k bits,
Message M,
Z_q random number r,
When s is a service secret key and g s is a service public key, searchable encrypted data including H_2 (e (H_1 (M), g s ) r ), g r is generated,
User equipment
The encrypted data search system according to claim 1, wherein a user query including H_1 (KW) a is generated when a is a user secret key, g a is a user public key, and a search keyword is KW.
プロキシ装置は、ユーザ装置のプロキシ鍵がs/aを含み、検索キーワードをKWとしたとき、H_1(KW)sを含む検索クエリを生成する
請求項3記載の暗号データ検索システム。
The encrypted data search system according to claim 3, wherein the proxy device generates a search query including H_1 (KW) s when the proxy key of the user device includes s / a and the search keyword is KW.
ユーザ装置は、
検証鍵と署名鍵とを生成し、
プロキシ装置が生成した検索クエリと前記署名鍵とを入力として、署名データを生成し、
データベース装置は、前記署名データと前記検証鍵とを入力として、署名検証を行う
請求項1から請求項4のうちのいずれか1項に記載の暗号データ検索システム。
User equipment
Generate a verification key and a signing key,
Using the search query generated by the proxy device and the signature key as input, generate signature data,
The encryption data search system according to any one of claims 1 to 4, wherein the database device performs signature verification using the signature data and the verification key as inputs.
データを暗号化するためのサービス公開鍵を用いて生成された検索可能暗号データからデータを検索する暗号データ検索装置であって、
ユーザ装置が生成したユーザ秘密鍵と前記サービス公開鍵に対応したサービス秘密鍵とを用いて生成されたプロキシ鍵と、前記ユーザ装置が前記ユーザ秘密鍵を用いて生成したデータの検索を要求するユーザクエリとを入力として、データベース装置に記憶されている前記検索可能暗号データからデータを検索るための検索クエリを生成する手段を備えた
ことを特徴とする暗号データ検索装置。
An encrypted data search device for searching for data from searchable encrypted data generated using a service public key for encrypting data,
A proxy key generated using a user secret key generated by a user device and a service secret key corresponding to the service public key, and a user requesting a search for data generated by the user device using the user secret key as input and query, encrypted data retrieval apparatus characterized by comprising means for generating a search query order to retrieve data from the searchable encrypted data stored in the database system.
サービス提供装置が、
データを暗号化するためのサービス公開鍵および該サービス公開鍵に対応したサービス秘密鍵を生成し、
ーザ装置が生成したユーザ秘密鍵と前記サービス秘密鍵とを入力として、前記ユーザ装置ごとプロキシ鍵を生成し、
データ登録装置が、前記サービス公開鍵およびデータを入力として、検索可能暗号データを生成し、生成した前記検索可能暗号データをデータベース装置に記憶させ
前記ユーザ装置が、前記データベース装置に記憶された前記検索可能暗号データに対して、前記ユーザ秘密鍵を用いてデータの検索を要求するためのユーザクエリを生成し、
プロキシ装置が、前記ユーザクエリと前記ユーザ装置ごとに生成されたプロキシ鍵とを入力として、前記データベース装置に記憶されている前記検索可能暗号データからデータを検索るための検索クエリを生成する
ことを特徴とする暗号データ検索方法。
Service providing device
Generating a service public key for encrypting data and a service secret key corresponding to the service public key;
As input user private key Yoo over The device has generated and with said service private key to generate the proxy key for each said user device,
Data registration apparatus, as an input the service public key and data, searchable encrypted data to generate, stores generated the searchable encrypted data in a database system,
The user device generates a user query for requesting data search using the user secret key for the searchable encrypted data stored in the database device ,
The proxy device, as input and proxy key generated for each of the user device and the user query, generating a search query order to retrieve data from the searchable encrypted data stored in said database device A method for retrieving encrypted data.
データを暗号化するためのサービス公開鍵を用いて生成された検索可能暗号データからデータを検索するための暗号データ検索プログラムであって、
コンピュータに、
ユーザ装置が生成したユーザ秘密鍵と前記サービス公開鍵に対応したサービス秘密鍵とを用いて生成されたプロキシ鍵と、前記ユーザ装置が前記ユーザ秘密鍵を用いて生成したデータの検索を要求するユーザクエリとを入力として、データベース装置に記憶されている前記検索可能暗号データからデータを検索るための検索クエリを生成する処理
実行させるための暗号データ検索プログラム。
An encryption data search program for searching data from searchable encryption data generated using a service public key for encrypting data,
On the computer,
A proxy key generated using a user secret key generated by a user device and a service secret key corresponding to the service public key, and a user requesting a search for data generated by the user device using the user secret key as input and query, encrypted data retrieval program for executing a process of generating a search query order to retrieve data from the searchable encrypted data stored in the database system.
JP2011161850A 2011-07-25 2011-07-25 ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM Active JP5799635B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011161850A JP5799635B2 (en) 2011-07-25 2011-07-25 ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011161850A JP5799635B2 (en) 2011-07-25 2011-07-25 ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2013026954A JP2013026954A (en) 2013-02-04
JP5799635B2 true JP5799635B2 (en) 2015-10-28

Family

ID=47784789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011161850A Active JP5799635B2 (en) 2011-07-25 2011-07-25 ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP5799635B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3185234B1 (en) * 2014-10-07 2019-01-30 Nippon Telegraph and Telephone Corporation Secure computation system and relay device, and method, program, and recording medium thereof
JP6186387B2 (en) * 2015-03-19 2017-08-23 株式会社日立製作所 Confidential data processing system
CN112567441A (en) * 2018-06-29 2021-03-26 索尼公司 Information processing system, information processing method, and information processing apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2898747A1 (en) * 2006-03-15 2007-09-21 Gemplus Sa DECHIFFRABLE CHERCHABLE ENCRYPTION PROCESS, SYSTEM FOR SUCH ENCRYPTION
KR101302137B1 (en) * 2009-12-16 2013-09-16 한국전자통신연구원 Method for Searchable Symmetric Encryption
CN102713996A (en) * 2010-01-13 2012-10-03 三菱电机株式会社 Secret retrieval system, public parameter generation device, encryption device, user secret key generation device, query issue device, retrieval device, computer program, secret retrieval method, public parameter generation method, encryption method, user secret key generation method, query issue method, and retrieval method

Also Published As

Publication number Publication date
JP2013026954A (en) 2013-02-04

Similar Documents

Publication Publication Date Title
Miao et al. Multi-authority attribute-based keyword search over encrypted cloud data
Li et al. Full verifiability for outsourced decryption in attribute based encryption
CN109614818B (en) Authorized identity-based keyword search encryption method
JP7127543B2 (en) Matching system, method, device and program
JP4981072B2 (en) Method and system for decryptable and searchable encryption
Yang et al. Provable data possession of resource-constrained mobile devices in cloud computing
KR102219277B1 (en) System and method for controlling the delivery of authenticated content
CN112543187B (en) Industrial Internet of things safety data sharing method based on edge block chain
CN104158827B (en) Ciphertext data sharing method, device, inquiry server and upload data client
US20140115321A1 (en) Encrypted statistical processing system, device, method, and program
CN107359998A (en) A kind of foundation of portable intelligent password management system and operating method
CN104967693A (en) Document similarity calculation method facing cloud storage based on fully homomorphic password technology
Gao et al. LIP-PA: A logistics information privacy protection scheme with position and attribute-based access control on mobile devices
JP6738061B2 (en) Ciphertext verification system, method, and recording medium
Chidambaram et al. Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique
WO2018043573A1 (en) Key exchange method and key exchange system
JP6368047B2 (en) Key exchange method, key exchange system, key distribution device, representative communication device, general communication device, and program
JP5799635B2 (en) ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM
Fukumitsu et al. A proposal of a password manager satisfying security and usability by using the secret sharing and a personal server
KR101217491B1 (en) A method for searching keyword based on public key
CN108259172B (en) Ciphertext searching method in cloud storage system
WO2018174063A1 (en) Collating system, method, device, and program
Salvakkam et al. An improved lattice based certificateless data integrity verification techniques for cloud computing
CN103916372A (en) Third-party login information hosting method and system
Cao et al. Multiuser access control searchable privacy‐preserving scheme in cloud storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150810

R150 Certificate of patent or registration of utility model

Ref document number: 5799635

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150