JP2013156675A - Ciphertext retrieval system, retrieval information generation device, retrieval execution device, retrieval request device, ciphertext retrieval method, retrieval information generation method, retrieval execution method, retrieval request method and program - Google Patents

Ciphertext retrieval system, retrieval information generation device, retrieval execution device, retrieval request device, ciphertext retrieval method, retrieval information generation method, retrieval execution method, retrieval request method and program Download PDF

Info

Publication number
JP2013156675A
JP2013156675A JP2012014281A JP2012014281A JP2013156675A JP 2013156675 A JP2013156675 A JP 2013156675A JP 2012014281 A JP2012014281 A JP 2012014281A JP 2012014281 A JP2012014281 A JP 2012014281A JP 2013156675 A JP2013156675 A JP 2013156675A
Authority
JP
Japan
Prior art keywords
search
information
ciphertext
index
retrieval
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
JP2012014281A
Other languages
Japanese (ja)
Other versions
JP5670365B2 (en
Inventor
Reisei Yoshida
麗生 吉田
Tetsutaro Kobayashi
鉄太郎 小林
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012014281A priority Critical patent/JP5670365B2/en
Publication of JP2013156675A publication Critical patent/JP2013156675A/en
Application granted granted Critical
Publication of JP5670365B2 publication Critical patent/JP5670365B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To prevent estimation of a retrieval keyword by dictionary attack and suppress increase of storage capacity which is added in response to increase of a retrieval processing amount.SOLUTION: In a ciphertext retrieval system 20, a retrieval information generation device 101 transmits a ciphertext Cobtained by encrypting a plaintext M to a cipher information storage device 500, and a retrieval index Cwhich is a set composed of information R, information Robtained by encrypting the information Rand information Rfor uniquely identifying the ciphertext Cto a retrieval information storage device 400. A retrieval request device 200 transmits a retrieval query kto a retrieval execution device 300. The retrieval execution device 300 acquires the retrieval index Cfrom the retrieval information storage device 400, determines whether or not a decryption result R obtained by decrypting the information Rmatches the information R, and transmits a matching retrieval index to the retrieval request device 200. The retrieval request device 200 acquires the ciphertext Cidentified by the information Rfrom the cipher information storage device 500.

Description

この発明は、例えばクラウドストレージなどに保存されている暗号化された情報に対し暗号学的に安全にキーワード検索を行うことができる暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラムに関する。   The present invention provides, for example, a ciphertext search system, a search information generation device, a search execution device, and a search request device capable of performing a keyword search cryptographically and safely with respect to encrypted information stored in a cloud storage or the like The present invention relates to a ciphertext search method, a search information generation method, a search execution method, a search request method, and a program.

近年、コンピュータの資源や機能(例えばネットワーク/サーバー/ストレージ/アプリケーション/サービスなど)を、例えばインターネットなどのネットワークを介してサービスとして利用する、クラウドコンピューティング(以下、クラウド)と呼ばれるコンピュータの利用形態が拡大している。特にクラウド上のストレージ資源を外部記憶域として情報の保存に利用するサービス提供形態は、クラウドストレージサービスやオンラインストレージサービスと呼ばれている。   2. Description of the Related Art In recent years, there has been a use form of a computer called cloud computing (hereinafter referred to as a cloud) that uses computer resources and functions (for example, a network / server / storage / application / service) as a service via a network such as the Internet. It is expanding. In particular, a service providing form that uses storage resources on the cloud as external storage for storing information is called a cloud storage service or an online storage service.

クラウド上のオンラインストレージサービスにおける情報保存を、暗号理論を適用することで安全に実現する暗号学的クラウドストレージが提案されている(非特許文献1参照)。非特許文献1に記載の暗号学的クラウドストレージは、クラウド上に保存されたメッセージからの情報漏洩を防ぐ技術、どの文書が検索されたかという情報を除いては漏洩することのない検索技術、文書が改ざんされることなく保存されていることを保証する技術から構成されている。   Cryptographic cloud storage that safely realizes information storage in an online storage service on the cloud by applying cryptography has been proposed (see Non-Patent Document 1). Cryptographic cloud storage described in Non-Patent Document 1 is a technology that prevents information leakage from messages stored on the cloud, a search technology that does not leak except for information on which documents have been searched, and documents Is composed of technology that guarantees that it is stored without being tampered with.

しかしながら、非特許文献1に記載の暗号学的クラウドストレージでは、共通鍵型の検索可能暗号を利用しているため、検索をするために文書作成者から直接検索クエリを入手しなければならない。したがって、文書作成者と通信することができなければ検索機能を利用することができなくなるという課題があった。   However, since the cryptographic cloud storage described in Non-Patent Document 1 uses a common-key searchable encryption, a search query must be obtained directly from the document creator in order to perform a search. Accordingly, there is a problem that the search function cannot be used unless communication with the document creator is possible.

文書作成者と直接通信することなく同等の安全性を確保した検索を実現する方式として、内積述語暗号(非特許文献2参照)を変換した公開鍵型の検索可能暗号である内積述語検索可能暗号が提案されている(非特許文献3、非特許文献4、非特許文献5参照)。公開鍵型の検索可能暗号は、内積述語暗号において、暗号文を検索インデックス、秘密鍵を検索クエリとし、属性を登録キーワード、述語を検索キーワードとした暗号文検索方法である。公開鍵型の検索可能暗号を用いると、文書作成者と通信しなくとも、第三者に何のキーワードで検索しているのかという情報を漏洩することなく暗号文の検索を行うことができる。非特許文献3は、非特許文献2に記載の階層型内積述語暗号を利用して部分一致検索を可能とした内積述語検索可能暗号である。非特許文献4は、非特許文献2に記載の階層型内積述語暗号を利用して複数ユーザでの利用を可能とした内積述語検索可能暗号である。非特許文献5は、非特許文献2に記載の階層型内積述語暗号においてバッチ検索を可能とすることで効率的な検索処理を実現した内積述語検索可能暗号である。   Inner product predicate searchable cipher, which is a public key searchable cipher converted from inner product predicate encryption (see Non-Patent Document 2), as a method for realizing search with equivalent security without directly communicating with the document creator Has been proposed (see Non-Patent Document 3, Non-Patent Document 4, and Non-Patent Document 5). The public key type searchable cipher is a ciphertext search method in the inner product predicate encryption using a ciphertext as a search index, a secret key as a search query, an attribute as a registered keyword, and a predicate as a search keyword. By using public key searchable encryption, it is possible to search for ciphertext without leaking information about what keyword is being searched to a third party without communicating with the document creator. Non-Patent Document 3 is an inner product predicate searchable cipher that enables partial matching search using the hierarchical inner product predicate encryption described in Non-Patent Document 2. Non-Patent Document 4 is an inner product predicate searchable cipher that can be used by a plurality of users by using the hierarchical inner product predicate cipher described in Non-Patent Document 2. Non-Patent Document 5 is an inner product predicate searchable cipher that realizes an efficient search process by enabling batch search in the hierarchical inner product predicate cipher described in Non-Patent Document 2.

S. Kamara and K. Lauter. “Cryptographic cloud storage.” In Financial Cryptography Workshops, pp. 136-149, 2010.S. Kamara and K. Lauter. “Cryptographic cloud storage.” In Financial Cryptography Workshops, pp. 136-149, 2010. T. Okamoto and K. Takashima. “Hierarchical predicate encryption for inner-products.” In ASIACRYPT, pp. 214-231, 2009.T. Okamoto and K. Takashima. “Hierarchical predicate encryption for inner-products.” In ASIACRYPT, pp. 214-231, 2009. R. Yoshida, S. Oda, and T. Kobayashi. “Public-key encryption with partial matching keyword search.” In Symp. on Cryptography and Information Security, 2010.R. Yoshida, S. Oda, and T. Kobayashi. “Public-key encryption with partial matching keyword search.” In Symp. On Cryptography and Information Security, 2010. R. Yoshida, A. Nagai, and T. Kobayashi. “Hierarchical predicate encryption with keyword search in multi-user setting.” In Computer Security Symposium, 2010.R. Yoshida, A. Nagai, and T. Kobayashi. “Hierarchical predicate encryption with keyword search in multi-user setting.” In Computer Security Symposium, 2010. R. Yoshida, A. Nagai, T. Kobayashi, and H. Fuji. “An algorithm for inner-product batch searchable encryption.” In Symp. on Cryptography and Information Security, 2011.R. Yoshida, A. Nagai, T. Kobayashi, and H. Fuji. “An algorithm for inner-product batch searchable encryption.” In Symp. On Cryptography and Information Security, 2011.

しかしながら、従来の暗号文検索システムは、公開情報のみから検索インデックスの生成が可能であるため、検索クエリに指定した検索キーワードが辞書攻撃により推測可能であることが知られている(詳しくは、「J. W. Byun, H. S. Rhee, H. Park, and D. H. Lee. “Off-line keyword guessing attacks on recent keyword search schemes over encrypted data.” In Secure Data Management, pp. 75-83, 2006.」参照)。   However, since a conventional ciphertext search system can generate a search index only from public information, it is known that a search keyword specified in a search query can be estimated by a dictionary attack (for details, see “ JW Byun, HS Rhee, H. Park, and DH Lee. See “Off-line keyword guessing attacks on recent keyword search schemes over encrypted data.” In Secure Data Management, pp. 75-83, 2006.).

また、従来の暗号文検索システムでは、検索インデックスと暗号文からなる暗号情報を保存する装置と、検索を実行する装置が同一の装置として構成されていた。このため、検索処理量の増大に対応するために検索代行装置を増設する際には、追加する検索代行装置それぞれにすべての暗号情報を記憶させる必要があり、システム全体として必要とするストレージの容量が増大するという課題があった。   In the conventional ciphertext search system, the device that stores the cipher information including the search index and the ciphertext and the device that executes the search are configured as the same device. For this reason, when adding a search agent device in order to cope with an increase in search processing amount, it is necessary to store all encryption information in each search agent device to be added, and the storage capacity required for the entire system There has been a problem of increasing.

この発明はこのような点に鑑みてなされたものであり、辞書攻撃による検索キーワードの推定を防止し、かつ検索処理量の増大に対して必要とするストレージ容量を抑制した暗号文検索システム、暗号文検索方法、検索情報生成装置、検索実行装置、検索要求装置、およびプログラムを提供することを目的とする。   The present invention has been made in view of these points, and prevents an estimation of a search keyword due to a dictionary attack and suppresses a storage capacity required for an increase in the amount of search processing, a ciphertext search system, a cipher An object is to provide a sentence search method, a search information generation device, a search execution device, a search request device, and a program.

この発明の暗号文検索システムは、検索情報生成装置と検索要求装置と検索実行装置を含む。この発明の暗号文検索システムは、検索情報保存装置に記憶された検索インデックスCを用いて、文字列を含む平文Mを暗号化して暗号情報保存装置に記憶された暗号文Cに対してキーワード検索を行う。検索情報生成装置は、検索インデックス生成部を備える。検索インデックス生成部は、任意のビット列からなる情報Rを生成する。情報Rを、あらかじめ生成された公開鍵pkと、平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成する。暗号文Cを一意に識別するための情報Rを生成する。情報Rと情報Rと情報Rを一組とした検索インデックスC:=(R,R,R)を検索情報保存装置へ送信する。検索要求装置は、検索クエリ生成部と暗号文取得部を備える。検索クエリ生成部は、検索キーワードWと、公開鍵pkと対になるマスタ秘密鍵skを用いて、情報Rを復号するための秘密鍵である検索クエリkを生成する。検索クエリkを検索実行装置へ送信する。暗号文取得部は、検索実行装置から受信した検索結果Cに含まれる情報Rにより識別される暗号文Cを暗号情報保存装置から取得する。検索実行装置は、検索インデックス取得部と検索結果判定部と検索結果送信部を備える。検索インデックス取得部は、検索インデックスCを検索情報保存装置から取得する。検索結果判定部は、検索インデックスCに含まれる情報Rを検索クエリkを用いて復号することで復号結果Rを生成する。復号結果Rと検索インデックスCに含まれる情報Rが一致するか否かを判定する。検索結果送信部は、検索結果判定部により一致すると判定された検索インデックスCから、少なくとも情報Rを抽出して検索結果Cを生成する。検索結果Cを検索要求装置へ送信する。 The ciphertext search system of the present invention includes a search information generation device, a search request device, and a search execution device. Ciphertext search system of the invention uses a search index C 2 stored in the search information storage unit, with respect to the ciphertext C 1 to the plaintext M is stored in the encryption information storage apparatus encrypts containing the string Perform a keyword search. The search information generation device includes a search index generation unit. Search index generation unit generates information R 1 comprising an arbitrary bit string. Information R 1, the public key pk that is previously generated by encrypting using the keywords W T is a keyword associated with the plaintext M, generates information R 2. Information R 3 for uniquely identifying the ciphertext C 1 is generated. A search index C 2 : = (R 1 , R 2 , R 3 ) including information R 1 , information R 2, and information R 3 as a set is transmitted to the search information storage device. The search request device includes a search query generation unit and a ciphertext acquisition unit. Search query generation unit includes a search keyword W Q, using the master secret key sk to be the public key pk paired to generate a search query k * is the private key for decrypting the information R 2. A search query k * is transmitted to the search execution device. Ciphertext acquisition unit acquires the ciphertext C 1 identified by information R 3 included in the search results C 3 received from the search execution unit from the encryption information storage unit. The search execution device includes a search index acquisition unit, a search result determination unit, and a search result transmission unit. Search index acquiring unit acquires a search index C 2 from the search information storage device. Search result determination unit generates the decryption result R by decrypting with the search index C 2 search information R 2 which are included in the query k *. It determines whether information R 1 contained the decryption result R in the search index C 2 coincide. The search result transmission unit extracts at least information R 3 from the search index C 2 determined to be matched by the search result determination unit, and generates a search result C 3 . It sends the search results C 3 to the search request unit.

この発明の暗号文検索システムによれば、検索クエリが暗号情報を保存する装置に漏洩しないため、辞書攻撃による検索キーワードの推定を防止できる。したがって、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する装置と検索を実行する装置を分けて構成するため、検索処理量の増大に対して追加するストレージ容量を抑制することができる。   According to the ciphertext search system of the present invention, since the search query does not leak to the device that stores the cipher information, it is possible to prevent the search keyword from being estimated by a dictionary attack. Therefore, security can be improved with respect to the conventional ciphertext search system. In addition, since the device that stores the encryption information and the device that executes the search are configured separately, the storage capacity to be added can be suppressed with respect to an increase in the search processing amount.

従来の暗号文検索システムの構成例を示すブロック図。The block diagram which shows the structural example of the conventional ciphertext search system. 従来の暗号文検索システムを構成する装置の構成例を示すブロック図。The block diagram which shows the structural example of the apparatus which comprises the conventional ciphertext search system. 従来の暗号文検索システムが暗号文を生成・保存する動作例を示す図。The figure which shows the operation example in which the conventional ciphertext search system produces | generates and preserve | saves a ciphertext. 従来の暗号文検索システムが暗号文を検索・復号する動作例を示す図。The figure which shows the operation example in which the conventional ciphertext search system searches and decodes a ciphertext. 実施例1の暗号文検索システムの構成例を示すブロック図。1 is a block diagram illustrating a configuration example of a ciphertext search system according to a first embodiment. 実施例1の暗号文検索システムを構成する装置の構成例を示すブロック図。1 is a block diagram illustrating a configuration example of an apparatus that configures a ciphertext search system according to a first embodiment. 実施例1の暗号文検索システムが暗号文を生成・保存する動作例を示す図。FIG. 5 is a diagram illustrating an operation example in which the ciphertext search system according to the first embodiment generates and stores a ciphertext. 実施例1の暗号文検索システムが暗号文を検索・復号する動作例を示す図。FIG. 6 is a diagram illustrating an operation example in which the ciphertext search system according to the first embodiment searches and decrypts ciphertext. 実施例1変形例の暗号文検索システムの構成例を示すブロック図。The block diagram which shows the structural example of the ciphertext search system of Example 1 modification. 実施例1変形例の暗号文検索システムを構成する装置の構成例を示すブロック図。The block diagram which shows the structural example of the apparatus which comprises the ciphertext search system of Example 1 modification. 実施例2の暗号文検索システムの構成例を示すブロック図。FIG. 3 is a block diagram illustrating a configuration example of a ciphertext search system according to a second embodiment. 実施例2の暗号文検索システムを構成する装置の構成例を示すブロック図。FIG. 6 is a block diagram illustrating a configuration example of an apparatus configuring the ciphertext search system according to the second embodiment. 実施例2の暗号文検索システムが暗号文を生成・保存する動作例を示す図。The figure which shows the operation example which the ciphertext search system of Example 2 produces | generates and preserve | saves a ciphertext. 実施例2の暗号文検索システムが暗号文を検索・復号する動作例を示す図。The figure which shows the operation example in which the ciphertext search system of Example 2 searches and decodes a ciphertext. 実施例3の暗号文検索システムの構成例を示すブロック図。FIG. 9 is a block diagram illustrating a configuration example of a ciphertext search system according to a third embodiment. 実施例3の暗号文検索システムを構成する装置の構成例を示すブロック図。FIG. 9 is a block diagram illustrating a configuration example of an apparatus configuring the ciphertext search system according to the third embodiment. 実施例3の暗号文検索システムが暗号文を検索・復号する動作例を示す図。FIG. 10 is a diagram illustrating an operation example in which the ciphertext search system according to the third embodiment searches and decrypts a ciphertext. 実施例3変形例の暗号文検索システムの構成例を示すブロック図。The block diagram which shows the structural example of the ciphertext search system of Example 3 modification. 実施例3変形例の暗号文検索システムを構成する装置の構成例を示すブロック図。The block diagram which shows the structural example of the apparatus which comprises the ciphertext search system of Example 3 modification. 実施例3変形例の暗号文検索システムが暗号文を検索・復号する動作例を示す図。The figure which shows the operation example in which the ciphertext search system of Example 3 modification searches and decrypts a ciphertext.

以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the component which has the same function in drawing, and duplication description is abbreviate | omitted.

[従来の暗号文検索システムの説明]
実施例の説明に先立ち、図1〜4を参照して、従来の内積述語検索可能暗号を利用した暗号文検索システム10の動作を詳細に説明する。図1は、従来の暗号文検索システム10の構成を示すブロック図である。図2は、従来の暗号文検索システム10を構成する各装置の構成を示すブロック図である。図3は、従来の暗号文検索システム10が暗号文を生成・保存する動作を示すフローチャートである。図4は、従来の暗号文検索システム10が暗号文を検索・復号する動作を示すフローチャートである。
[Description of conventional ciphertext search system]
Prior to the description of the embodiment, the operation of the ciphertext search system 10 using the conventional inner product predicate searchable cipher will be described in detail with reference to FIGS. FIG. 1 is a block diagram showing a configuration of a conventional ciphertext search system 10. FIG. 2 is a block diagram showing the configuration of each device constituting the conventional ciphertext search system 10. FIG. 3 is a flowchart showing an operation in which the conventional ciphertext search system 10 generates and stores ciphertext. FIG. 4 is a flowchart showing an operation in which the conventional ciphertext search system 10 searches and decrypts ciphertext.

図1,2を参照して、従来の暗号文検索システム10の構成を説明する。従来の暗号文検索システム10は、インターネット1とネットワーク2と検索情報生成装置100と検索要求装置200と検索代行装置800から構成される。検索代行装置800はインターネット1に接続される。検索情報生成装置100と検索要求装置200はネットワーク2に接続される。インターネット1とネットワーク2はルータやファイアウォールなどの各種のネットワーク機器によって接続されており、検索情報生成装置100と検索要求装置200と検索代行装置800が相互に通信可能なように構成される。検索情報生成装置100は、暗号文生成部110と検索インデックス生成部120を備える。検索要求装置200は、検索クエリ生成部210と復号部290を備える。検索代行装置800は、検索結果判定部810と検索結果送信部820と記憶部890を備える。   The configuration of a conventional ciphertext search system 10 will be described with reference to FIGS. A conventional ciphertext search system 10 includes the Internet 1, a network 2, a search information generation device 100, a search request device 200, and a search proxy device 800. The search proxy device 800 is connected to the Internet 1. The search information generation device 100 and the search request device 200 are connected to the network 2. The Internet 1 and the network 2 are connected by various network devices such as a router and a firewall, and the search information generating device 100, the search requesting device 200, and the search proxy device 800 are configured to be able to communicate with each other. The search information generation device 100 includes a ciphertext generation unit 110 and a search index generation unit 120. The search request device 200 includes a search query generation unit 210 and a decryption unit 290. The search proxy device 800 includes a search result determination unit 810, a search result transmission unit 820, and a storage unit 890.

図3を参照して、従来の暗号文検索システム10が暗号文を生成・保存する動作を実際に行われる手続きの順に従って説明する。   With reference to FIG. 3, the operation | movement in which the conventional ciphertext search system 10 produces | generates and preserve | saves a ciphertext is demonstrated according to the order of the procedure actually performed.

検索情報生成装置100の暗号文生成部110は、平文Mを暗号化して暗号文Cを生成する(S110)。検索情報生成装置100の検索インデックス生成部120は、任意のビット列を情報Rとして生成する(S1210)。続いて、検索情報生成装置100の検索インデックス生成部120は、情報Rを、あらかじめ生成された公開鍵pkと登録キーワードWを用いて、内積述語暗号方式により暗号化することにより、情報Rを生成する(S1220)。続いて、検索情報生成装置100の検索インデックス生成部120は、情報Rと情報Rを一組とした検索インデックスC:=(R,R)を生成し、検索インデックスCと暗号文Cを一組とした暗号情報C=(C,C)を検索代行装置800へ送信する。検索代行装置800は、検索情報生成装置100から受信した暗号情報Cを記憶部890へ記憶する(S890)。 Ciphertext generator 110 of the retrieval information generating apparatus 100 encrypts the plaintext M to generate a ciphertext C 1 (S110). Search index generator 120 of the information generating device 100 generates an arbitrary bit string as the information R 1 (S1210). Subsequently, the search index generation unit 120 of the retrieval information generating apparatus 100, the information R 1, using the keywords W T and the public key pk that is previously generated by encrypting the inner product predicate encryption scheme, information R 2 is generated (S1220). Subsequently, the search index generation unit 120 of the retrieval information generating apparatus 100, the information R 1 and information R 2 a pair with the search index C 2: = (R 1, R 2) generates a search index C 2 Cryptographic information C 0 = (C 2 , C 1 ) with ciphertext C 1 as a set is transmitted to search proxy device 800. The proxy search device 800 stores the encrypted information C 0 received from the search information generation device 100 in the storage unit 890 (S890).

図4を参照して、従来の暗号文検索システム10が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。検索要求装置200の検索クエリ生成部210は、検索キーワードWと、公開鍵pkと対になるマスタ秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリkを生成する(S210)。続いて、検索要求装置200の検索クエリ生成部210は、検索クエリkを検索代行装置800へ送信する。検索代行装置800の検索結果判定部810は、検索要求装置200から受信した検索クエリkを用いて、記憶部890へ記憶している暗号情報Cのそれぞれについて検索が当たりか否かを判定する(S810)。検索が当たりか否かの判定は、すべての暗号情報Cについて、検索インデックスCに含まれる情報Rを、検索クエリkを用いて、内積述語暗号方式により復号して復号結果Rを生成し、その検索インデックスCに含まれる情報Rと復号結果Rが一致するか否かにより行われる。次に、検索代行装置800の検索結果送信部820は、当たりと判定された暗号情報Cに含まれる暗号文Cをすべて抽出し、検索要求装置200へ送信する(S820)。検索要求装置200の復号部290は、検索代行装置800から受信した暗号文Cを復号して平文Mを取得する(S290)。 With reference to FIG. 4, the operation of the conventional ciphertext search system 10 for searching and decrypting ciphertext will be described according to the order of procedures actually performed. Search query generation unit 210 of the search request unit 200 uses the search keyword W Q, the master secret key sk to be the public key pk paired, it is a secret key for decoding information R 2 by the inner product predicate encryption scheme A search query k * is generated (S210). Subsequently, the search query generation unit 210 of the search request device 200 transmits the search query k * to the search proxy device 800. The search result determination unit 810 of the search proxy device 800 uses the search query k * received from the search request device 200 to determine whether or not the search is successful for each piece of encrypted information C 0 stored in the storage unit 890. (S810). Whether the search is successful or not is determined by decrypting the information R 2 included in the search index C 2 by the inner product predicate encryption method using the search query k * for all the encrypted information C 0. It is generated depending on whether or not the information R 1 included in the search index C 2 matches the decryption result R. Then, the search result transmitting unit 820 of the search proxy apparatus 800 extracts all the ciphertext C 1 included in the encrypted information C 0 which is determined per transmitted to the search request unit 200 (S820). Decoding unit 290 of the search request unit 200 acquires plaintext M by decrypting the ciphertext C 1 received from the search proxy device 800 (S290).

[従来の暗号文検索システムの課題]
検索代行装置800と検索要求装置200は、インターネット1を介して接続される。したがって、検索要求装置200で生成され検索代行装置800へ送信される検索クエリkは、インターネットを経由して送受信されることになる。また、検索代行装置800がクラウド上のオンラインストレージサービスとして構成される場合には、その検索代行装置800は外部の第三者であるサービス提供事業者により提供される。これは、内積述語暗号方式の秘密鍵である検索クエリkが外部の第三者に漏洩することを意味する。同様に検索クエリkにより当たりと判定された暗号文Cがいずれであるかという情報も外部の第三者に漏洩することを意味する。一方で、検索インデックスCは公開鍵pkと任意に指定する登録キーワードWを用いて生成されるため、検索代行装置800が任意のキーワードを指定して検索インデックスを生成することも可能である。したがって、検索代行装置800は、任意のキーワードによって生成した検索インデックスを、入手した検索クエリkで復号することで、その検索クエリkに指定された検索キーワードWを推定することが可能である。さらに、検索代行装置800は、検索によって当たりと判定された暗号文Cの内容を推測することが可能となる。このように、従来の暗号文検索システムにおいては、辞書攻撃に対する脆弱性が存在していた。
[Problems of conventional ciphertext search system]
The search agent device 800 and the search request device 200 are connected via the Internet 1. Therefore, the search query k * generated by the search request device 200 and transmitted to the search agent device 800 is transmitted / received via the Internet. When the search agent device 800 is configured as an online storage service on the cloud, the search agent device 800 is provided by a service provider that is an external third party. This means that the search query k *, which is a secret key of the inner product predicate encryption method, is leaked to an external third party. Information that same search query k * or ciphertext C 1 it is determined that the hit is either by also means that leakage to outside parties. On the other hand, the search index C 2 is to be generated using the keywords W T that specifies the public key pk and optionally, it is also possible to search proxy device 800 to generate a search index to specify any keywords . Therefore, the search proxy device 800, the search index generated by any keywords, by decoding a search query k *, obtained, it is possible to estimate the search keyword W Q specified in the search query k * is there. Further, the proxy search device 800 can infer the contents of the ciphertext C 1 determined to be a hit by the search. Thus, the conventional ciphertext search system is vulnerable to dictionary attacks.

また、検索代行装置800は、検索を実行する検索結果判定部810と暗号情報Cを記憶する記憶部890を備えており、記憶部890には検索インデックスCと暗号文Cの組である暗号情報Cがすべて記憶されている。したがって、システム全体として必要とするストレージの容量はすべての暗号情報Cを合わせた容量を検索代行装置800の台数倍した容量となる。このため、検索処理量の増大に対応するために検索代行装置800を増設する際には、追加する検索代行装置800それぞれにすべての暗号情報Cを記憶させる必要があり、必要とするストレージ容量が増大するという課題があった。 In addition, the search proxy device 800 includes a search result determination unit 810 that executes a search and a storage unit 890 that stores encryption information C 0. The storage unit 890 includes a combination of a search index C 2 and a ciphertext C 1 . All the encryption information C0 is stored. Therefore, the storage capacity required for the entire system is a capacity obtained by multiplying the combined capacity of all the encryption information C 0 by the number of search proxy devices 800. For this reason, when the search proxy device 800 is added to cope with the increase in the search processing amount, it is necessary to store all the encryption information C 0 in each search proxy device 800 to be added, and the required storage capacity There has been a problem of increasing.

本実施例は、部分一致検索が可能な内積述語検索可能暗号に対してこの発明を適用した実施例である。部分一致検索が可能な内積述語検索可能暗号についての詳細は、非特許文献3を参照されたい。   This embodiment is an embodiment in which the present invention is applied to an inner product predicate searchable cipher capable of partial match search. Refer to Non-Patent Document 3 for details of the inner product predicate searchable cipher capable of partial match search.

図5〜8を参照して、この発明の実施例1の暗号文検索システム20の動作を詳細に説明する。図5は、本実施例の暗号文検索システム20の構成を示すブロック図である。図6は、本実施例の暗号文検索システム20を構成する装置の構成を示すブロック図である。図7は、本実施例の暗号文検索システム20が暗号文を生成・保存する動作を示すフローチャートである。図8は、本実施例の暗号文検索システム20が暗号文を検索・復号する動作を示すフローチャートである。   With reference to FIGS. 5-8, operation | movement of the ciphertext search system 20 of Example 1 of this invention is demonstrated in detail. FIG. 5 is a block diagram showing the configuration of the ciphertext search system 20 of the present embodiment. FIG. 6 is a block diagram showing the configuration of the apparatus that constitutes the ciphertext search system 20 of the present embodiment. FIG. 7 is a flowchart showing an operation in which the ciphertext search system 20 of this embodiment generates and stores a ciphertext. FIG. 8 is a flowchart showing an operation in which the ciphertext search system 20 of this embodiment searches and decrypts a ciphertext.

図5,6を参照して、本実施例の暗号文検索システム20の構成を説明する。本実施例の暗号文検索システム20は、インターネット1とネットワーク2と検索情報生成装置101と検索要求装置201と検索実行装置300と検索情報保存装置400と暗号情報保存装置500から構成される。検索情報保存装置400と暗号情報保存装置500はインターネット1に接続される。検索情報生成装置101と検索要求装置201と検索実行装置300はネットワーク2に接続される。インターネット1とネットワーク2はルータやファイアウォールなどの各種のネットワーク機器によって接続されており、検索情報生成装置101と検索要求装置201と検索実行装置300と検索情報保存装置400と暗号情報保存装置500が相互に通信可能なように構成される。検索情報生成装置101は、暗号文生成部110と検索インデックス生成部121を備える。検索要求装置201は、検索クエリ生成部210と暗号文取得部220と復号部290を備える。検索実行装置300は、検索インデックス取得部310と検索結果判定部320と検索結果送信部330を備える。検索情報保存装置400は、検索インデックス記憶部490を備える。暗号情報保存装置500は、暗号文記憶部590を備える。   The configuration of the ciphertext search system 20 according to this embodiment will be described with reference to FIGS. The ciphertext search system 20 according to this embodiment includes the Internet 1, the network 2, a search information generation device 101, a search request device 201, a search execution device 300, a search information storage device 400, and a cipher information storage device 500. The search information storage device 400 and the encryption information storage device 500 are connected to the Internet 1. The search information generation device 101, the search request device 201, and the search execution device 300 are connected to the network 2. The Internet 1 and the network 2 are connected by various network devices such as a router and a firewall, and the search information generation device 101, the search request device 201, the search execution device 300, the search information storage device 400, and the encryption information storage device 500 are mutually connected. It is configured to be able to communicate with. The search information generation apparatus 101 includes a ciphertext generation unit 110 and a search index generation unit 121. The search request device 201 includes a search query generation unit 210, a ciphertext acquisition unit 220, and a decryption unit 290. The search execution device 300 includes a search index acquisition unit 310, a search result determination unit 320, and a search result transmission unit 330. The search information storage device 400 includes a search index storage unit 490. The cipher information storage device 500 includes a ciphertext storage unit 590.

検索情報保存装置400と暗号情報保存装置500は、ファイルサーバやNAS(Network Attached Storage)、SAN(Storage Area Network)などによるファイル共有サービスとして構成してもよいし、クラウド上のオンラインストレージサービスとして提供されてもよい。本実施例ではクラウド上のオンラインストレージサービスとして構成した場合の例を説明する。なお、検索情報保存装置400と暗号情報保存装置500がインターネット1に接続するものとしたのはクラウド上のオンラインストレージサービスとして構成したためであり、検索情報保存装置400と暗号情報保存装置500がファイル共有サービスとして構成した場合には、検索情報保存装置400と暗号情報保存装置500はネットワーク2に接続することができる。後述の実施例2,3についても同様である。   The search information storage device 400 and the encryption information storage device 500 may be configured as a file sharing service using a file server, NAS (Network Attached Storage), SAN (Storage Area Network), or provided as an online storage service on the cloud. May be. In the present embodiment, an example in the case of being configured as an online storage service on the cloud will be described. The search information storage device 400 and the encryption information storage device 500 are connected to the Internet 1 because they are configured as an online storage service on the cloud, and the search information storage device 400 and the encryption information storage device 500 share files. When configured as a service, the search information storage device 400 and the encryption information storage device 500 can be connected to the network 2. The same applies to Examples 2 and 3 described later.

図7を参照して、本実施例の暗号文検索システム20が暗号文を生成・保存する動作を実際に行われる手続きの順に従って説明する。   With reference to FIG. 7, the operation of the ciphertext search system 20 of the present embodiment for generating and storing a ciphertext will be described in the order of procedures actually performed.

まず、管理者は、初期化処理として、セキュリティパラメータ1λを入力として、Setupを実行し、公開鍵pkとマスタ秘密鍵skを生成する。マスタ秘密鍵skは検索要求装置201へ送信される。 First, as an initialization process, the administrator receives the security parameter 1 λ as input and executes Setup to generate a public key pk and a master secret key sk. The master secret key sk is transmitted to the search request device 201.

検索情報生成装置101の暗号文生成部110は、文字列を含む平文Mを暗号化して暗号文Cを生成する(S110)。ここでの暗号方式は限定されない。例えば、共通鍵暗号方式や公開鍵暗号方式が利用できる。共通鍵暗号方式の場合、平文Mは検索情報生成装置101と検索要求装置201の間で共有される共通鍵によって暗号化される。公開鍵暗号方式の場合、平文Mは、例えば公開鍵基盤(PKI)によって公開されている検索要求装置201の公開鍵によって暗号化される。続いて、検索情報生成装置101の暗号文生成部110は、暗号文Cを暗号情報保存装置500へ送信する。 Ciphertext generator 110 of the retrieval information generating apparatus 101 encrypts the plaintext M including a character string to generate a ciphertext C 1 (S110). The encryption method here is not limited. For example, a common key cryptosystem or a public key cryptosystem can be used. In the case of the common key cryptosystem, the plaintext M is encrypted with a common key shared between the search information generation device 101 and the search request device 201. In the case of the public key cryptosystem, the plaintext M is encrypted with the public key of the search request device 201 that is made public by, for example, the public key infrastructure (PKI). Subsequently, the ciphertext generation unit 110 of the search information generation apparatus 101 transmits the ciphertext C 1 to the cipher information storage apparatus 500.

暗号情報保存装置500は、検索情報生成装置101から受信した暗号文Cを暗号文記憶部590へ記憶する(S590)。 Encryption information storage unit 500, the ciphertext C 1 received from retrieval information generating apparatus 101 stores the ciphertext storage unit 590 (S590).

検索情報生成装置101の検索インデックス生成部121は、任意のビット列を情報Rとして生成する(S1210)。例えば、情報Rに数値としてゼロを設定する。続いて、検索情報生成装置101の検索インデックス生成部121は、情報Rを、あらかじめ生成された公開鍵pkと登録キーワードWを用いて、内積述語暗号方式により暗号化することにより、情報Rを生成する(S1220)。登録キーワードWは検索対象となるキーワードであり、ユーザにより任意に設定される。例えば、平文Mに含まれる文字列や平文Mの内容を示す単語などを設定することができる。 Search index generation unit 121 of the search information generating device 101 generates an arbitrary bit string as the information R 1 (S1210). For example, it sets to zero as the number in the information R 1. Subsequently, the search index generation unit 121 of the retrieval information generating apparatus 101, the information R 1, using the keywords W T and the public key pk that is previously generated by encrypting the inner product predicate encryption scheme, information R 2 is generated (S1220). Keywords W T is the keyword to be retrieved, it is arbitrarily set by the user. For example, a character string included in the plaintext M, a word indicating the content of the plaintext M, or the like can be set.

内積述語暗号方式は、属性ベクトルと述語ベクトルの内積が0であることを条件として暗号文を正しく復号できるという、内積を用いた述語暗号である。内積述語暗号についての詳細は、例えば「J. Katz, A. Sahai, and B. Waters. “Predicate encryption supporting disjunctions, polynomial equations, and inner products.” In EUROCRYPT, pp. 146-162, 2008.」や「A. B. Lewko, T. Okamoto, A. Sahai, K. Takashima, and B. Waters. “Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption.” In EUROCRYPT, pp. 62-91, 2010.」、もしくは非特許文献2を参照されたい。   The inner product predicate encryption method is a predicate encryption using an inner product in which the ciphertext can be correctly decrypted on the condition that the inner product of the attribute vector and the predicate vector is zero. For details on inner product predicate encryption, see “J. Katz, A. Sahai, and B. Waters.“ Predicate encryption supporting disjunctions, polynomial equations, and inner products. ”In EUROCRYPT, pp. 146-162, 2008.” “AB Lewko, T. Okamoto, A. Sahai, K. Takashima, and B. Waters.“ Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption. ”In EUROCRYPT, pp. 62-91, 2010 . ”Or Non-Patent Document 2.

内積述語検索可能暗号は、上述の内積述語暗号において、暗号文を検索インデックス、秘密鍵を検索クエリとし、属性を登録キーワード、述語を検索キーワードとした暗号文検索方法である。内積述語検索可能暗号では、登録キーワードWを用いて属性ベクトルxを生成し、検索キーワードWを用いて述語ベクトルvを生成する。属性ベクトルxと述語ベクトルvの内積が0であること、すなわち<x,v>=0が登録キーワードと検索キーワードのマッチングを意味する。 The inner product predicate searchable cipher is a cipher text search method using the ciphertext as a search index, a secret key as a search query, an attribute as a registered keyword, and a predicate as a search keyword in the inner product predicate cipher described above. In inner product predicate searchable encryption, using the registration keyword W T generates the attribute vector x →, to generate a predicate vector v using a search keyword W Q. The inner product of the attribute vector x and the predicate vector v is 0, that is, <x , v > = 0 means matching between the registered keyword and the search keyword.

属性ベクトルxは、具体的には以下のように生成する。r個の属性値変数X,…,Xに対してd回の論理和を扱うためには、X,…,Xからなる次数d次以下の単項式をすべて用意する。この単項式を、1を含めて辞書式順序で並べた順に各成分としたベクトルを、属性値変数X,…,Xに対するd次の変数ベクトルと呼ぶ。ここでは、変数ベクトルをX r,dと記述する。 Specifically, the attribute vector x is generated as follows. r number of attribute value variable X 1, ..., in order to handle the logical sum of d times for the X r, X 1, ..., to provide all of the degree d following the following monomials consisting of X r. A vector having each component in the order in which this monomial is included in a lexicographic order including 1 is called a d-th order variable vector for the attribute value variables X 1 ,..., X r . Here, the variable vector is described as X r, d .

r文字の登録キーワードWのi番目の文字をw(1≦i≦r)とする。属性変数Xについて、X=wとする。xが式(1)を満足する場合、属性ベクトルxを変数ベクトルX r,d上の属性ベクトルとも呼ぶ。 Let the i-th character of the r-letter registered keyword W T be w i (1 ≦ i ≦ r). For the attribute variable X i , X i = w i . When x satisfies the equation (1), the attribute vector x is also referred to as an attribute vector on the variable vector X r, d .

Figure 2013156675
Figure 2013156675

rは1≦rを満たす整数の固定値にシステム仕様として設定される。dは1≦d≦rを満たす整数の固定値にシステム仕様として設定される。この実施例では、d=rとする。つまり、述語多項式において登録キーワードの文字数相当の論理和を許容する。   r is set as a system specification to an integer fixed value satisfying 1 ≦ r. d is set as a system specification to an integer fixed value satisfying 1 ≦ d ≦ r. In this embodiment, d = r. That is, a logical sum corresponding to the number of characters of the registered keyword is allowed in the predicate polynomial.

続いて、検索情報生成装置101の検索インデックス生成部121は、暗号文Cを一意に識別するための情報Rを生成する(S1230)。情報Rは暗号文Cを一意に特定できる情報であればどのような情報でもよく、例えば暗号文Cを入力としたハッシュ関数の出力とすることができる。そして、検索情報生成装置101の検索インデックス生成部121は、情報Rと情報Rと情報Rを一組とした検索インデックスC:=(R,R,R)を生成し、検索情報保存装置400へ送信する。 Subsequently, the search index generation unit 121 of the search information generating device 101 generates information R 3 for uniquely identifying the ciphertext C 1 (S1230). The information R 3 may be any information as long as it can uniquely identify the ciphertext C 1 , and can be, for example, an output of a hash function using the ciphertext C 1 as an input. Then, the search index generation unit 121 of the search information generation apparatus 101 generates a search index C 2 : = (R 1 , R 2 , R 3 ) that includes the information R 1 , the information R 2, and the information R 3 as a set. And transmitted to the search information storage device 400.

検索情報保存装置400は、検索情報生成装置101から受信した検索インデックスCを検索インデックス記憶部490へ記憶する(S490)。 Search information storage device 400 stores the search index C 2 received from retrieval information generating apparatus 101 to the search index storage unit 490 (S490).

図8を参照して、本実施例の暗号文検索システム20が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。   With reference to FIG. 8, the ciphertext search system 20 according to the present embodiment will be described in accordance with the order of procedures in which ciphertext is retrieved and decrypted.

検索要求装置201の検索クエリ生成部210は、検索キーワードWから述語ベクトルvを生成する。その述語ベクトルvと公開鍵pkと対になるマスタ秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリkを生成する(S210)。検索キーワードWは検索条件として指定するキーワードであり、ユーザにより任意に指定される。続いて、検索要求装置201の検索クエリ生成部210は、検索クエリkを検索実行装置300へ送信する。 Search query generation unit 210 of the search request unit 201 generates a predicate vector v from the search keyword W Q. The master secret key sk becomes the predicate vector v and the public key pk paired with, generating a search query k * is the private key for decrypting the information R 2 by the inner product predicate encryption scheme (S210). The search keyword W Q is a keyword specified as a search condition, and is arbitrarily specified by the user. Subsequently, the search query generation unit 210 of the search request device 201 transmits the search query k * to the search execution device 300.

述語ベクトルvは、具体的には以下のように生成する。r個の属性値変数X,…,Xで最大d回の論理和が許されているとき、述語論理を表す属性変数からなる多変数多項式p(Xα,…,Xβ)(1≦α≦β≦r)を、変数ベクトルX r,d上の述語多項式と呼ぶ。変数ベクトルX r,d上の述語多項式p(Xα,…,Xβ)を、変数ベクトルX r,dと述語ベクトルvの内積<X r,d,v>と考えて、述語多項式p(Xα,…,Xβ)の係数を、変数ベクトルX r,dの成分に対応する順に述語ベクトルvの成分とする。これ以外の述語ベクトルvの成分は0とする。述語ベクトルvを変数ベクトルX r,d上の述語ベクトルとも呼ぶ。 Specifically, the predicate vector v is generated as follows. When r attribute value variables X 1 ,..., X r are allowed to be ORed up to d times, a multivariate polynomial p (X α ,..., X β ) (1 ≦ α ≦ β ≦ r) is called a predicate polynomial on the variable vector X r, d . Variable vector X r, predicate polynomial p on the d (X α, ..., X β) , and variable vector X r, d and a predicate vector v of the inner product <X → r, d, v →> and think The coefficients of the predicate polynomial p (X α ,..., X β ) are the components of the predicate vector v → in the order corresponding to the components of the variable vector X r, d . The other components of the predicate vector v are 0. The predicate vector v is also called a predicate vector on the variable vector X r, d .

t文字の検索キーワードWのi番目の文字をs(1≦i≦t≦r)とする。変数ベクトルX r,d上の述語多項式p(Xα,…,Xβ)は、検索時に指定される検索方式に対応して決定される。指定できる検索方式には、完全一致検索・前方一致検索・後方一致検索・部分一致検索がある。なお、rdi,j(1≦i,j≦r)は乱数である。 the search keyword W Q i-th character of the t character and s i (1 ≦ i ≦ t ≦ r). The predicate polynomial p (X α ,..., X β ) on the variable vector X r, d is determined corresponding to the search method specified at the time of search. Search methods that can be specified include complete match search, forward match search, backward match search, and partial match search. Note that rd i, j (1 ≦ i, j ≦ r) is a random number.

完全一致検索は、任意のi(1≦i≦r)に対してw=sが成立する場合である。完全一致検索における述語多項式p(Xα,…,Xβ)は、式(2)で与えられる。 The exact match search is a case where w i = s i holds for an arbitrary i (1 ≦ i ≦ r). The predicate polynomial p (X α ,..., X β ) in the exact match search is given by equation (2).

Figure 2013156675
Figure 2013156675

前方一致検索は、任意のi(1≦i≦t)に対してw=sが成立する場合である。前方一致検索における述語多項式p(Xα,…,Xβ)は、式(3)で与えられる。 The forward matching search is a case where w i = s i holds for an arbitrary i (1 ≦ i ≦ t). The predicate polynomial p (X α ,..., X β ) in the forward matching search is given by equation (3).

Figure 2013156675
Figure 2013156675

後方一致検索は、任意のi(r−t+1≦i≦r)に対してw=sが成立する場合である。後方一致検索における述語多項式p(Xα,…,Xβ)は、式(4)で与えられる。 The backward matching search is a case where w i = s i holds for an arbitrary i (r−t + 1 ≦ i ≦ r). The predicate polynomial p (X α ,..., X β ) in the backward matching search is given by equation (4).

Figure 2013156675
Figure 2013156675

部分一致検索は、任意のjに対してj≦i≦t+j−1≦rを満たすすべてのiに対してw=sが成立する場合である。部分一致検索における述語多項式p(Xα,…,Xβ)は、式(5)で与えられる。 The partial match search is a case where w i = s i holds for all i satisfying j ≦ i ≦ t + j−1 ≦ r for an arbitrary j. The predicate polynomial p (X α ,..., X β ) in the partial match search is given by equation (5).

Figure 2013156675
Figure 2013156675

検索実行装置300の検索インデックス取得部310は、検索情報保存装置400の検索インデックス記憶部490に記憶されている検索インデックスCをダウンロードする(S310)。常にすべての検索インデックスCをダウンロードしてもよいし、使用するネットワーク帯域を抑えるために、前回実行時に利用した検索インデックスCを保持しておき、差分のみをダウンロードしてもよい。 Search index acquiring unit 310 of the execution unit 300 downloads the search index C 2 stored in the search index storage unit 490 of the search information storage unit 400 (S310). Always all of the search index C 2 may be downloaded, in order to reduce the network bandwidth used, holds the search index C 2 that was used at the time of the last execution, it may be downloaded only the difference.

検索実行装置300の検索結果判定部320は、検索要求装置201から受信した検索クエリkを用いて、検索インデックスCそれぞれについて検索が当たりか否かを判定する(S320)。検索が当たりか否かの判定は、すべての検索インデックスCについて、その検索インデックスCに含まれる情報Rを、検索クエリkを用いて、内積述語暗号方式により復号して復号結果Rを生成し、その検索インデックスCに含まれる情報Rと復号結果Rが一致するか否かにより行われる。 Search result judging unit 320 of the execution unit 300 uses the search query k * received from the search request unit 201 determines whether per search Search index C 2, respectively (S320). Whether or not the search is successful is determined by decrypting the information R 2 included in the search index C 2 by the inner product predicate encryption method using the search query k * for all the search indexes C 2. generates, is performed by whether the search index C 2 to the information R 1 and decoding result included R match.

検索実行装置300の検索結果送信部330は、検索結果判定部320により当たりと判定された検索インデックスCから暗号文Cを一意に識別する情報Rを抽出して検索結果Cを生成し、検索要求装置201へ送信する(S330)。 The search result transmission unit 330 of the search execution device 300 extracts information R 3 that uniquely identifies the ciphertext C 1 from the search index C 2 determined to be a hit by the search result determination unit 320 and generates a search result C 3 . And it transmits to the search request | requirement apparatus 201 (S330).

検索要求装置201の暗号文取得部220は、受信した検索結果Cに含まれる情報Rを参照し、すべての情報Rについて、その情報Rにより一意に識別される暗号文Cを暗号情報保存装置500からダウンロードする(S220)。 Retrieval request device 201 ciphertext acquisition unit 220 of refers to the information R 3 included in the search results C 3 received, all the information R 3, the ciphertext C 1 that is uniquely identified by the information R 3 Downloaded from the encryption information storage device 500 (S220).

検索要求装置201の復号部290は、暗号情報保存装置500からダウンロードした暗号文Cを復号して平文Mを取得する(S290)。平文Mを復号する情報処理は、S110において検索情報生成装置100の暗号文生成部110が用いた暗号方式に対応する復号アルゴリズムである。例えば、共通鍵暗号方式で暗号化がされていた場合には、平文Mは検索情報生成装置101と検索要求装置201の間で共有される共通鍵によって復号される。公開鍵暗号方式で暗号化がされていた場合には、平文Mは、検索要求装置201の秘密鍵によって復号される。 Decoding unit 290 of the search request unit 201 acquires plaintext M by decrypting the ciphertext C 1 downloaded from the encryption information storage unit 500 (S290). The information processing for decrypting the plaintext M is a decryption algorithm corresponding to the encryption method used by the ciphertext generation unit 110 of the search information generation device 100 in S110. For example, when encryption is performed using a common key cryptosystem, the plaintext M is decrypted with a common key shared between the search information generation apparatus 101 and the search request apparatus 201. When the encryption is performed by the public key cryptosystem, the plaintext M is decrypted by the secret key of the search requesting device 201.

本実施例はこのような構成とすることにより、部分一致検索が可能な内積述語検索可能暗号において、検索クエリkがクラウドを構成する装置に漏洩することを防止でき、辞書攻撃による検索キーワードの推定を防止できる。そのため、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する暗号情報保存装置と検索を実行する検索実行装置が異なる装置として構成することができるため、システム全体としての検索処理量の増大に対応して検索実行装置を増設する場合に、追加するストレージ容量を抑制することができる。 With this configuration, the present embodiment can prevent the search query k * from leaking to the devices constituting the cloud in the inner product predicate searchable cipher capable of partial match search, Estimation can be prevented. Therefore, security can be improved with respect to the conventional ciphertext search system. In addition, since the encryption information storage device that stores the encryption information and the search execution device that executes the search can be configured as different devices, the search execution device is added in response to the increase in the search processing amount of the entire system. In addition, the storage capacity to be added can be suppressed.

[変形例]
図9,10を参照して、実施例1の変形例の暗号文検索システム20’の構成を説明する。図9は、本実施例の暗号文検索システム20’の構成を示すブロック図である。図10は、本実施例の暗号文検索システム20’を構成する装置の構成を示すブロック図である。
[Modification]
With reference to FIGS. 9 and 10, the configuration of a ciphertext search system 20 ′ according to a modification of the first embodiment will be described. FIG. 9 is a block diagram showing the configuration of the ciphertext search system 20 ′ of the present embodiment. FIG. 10 is a block diagram showing the configuration of the apparatus constituting the ciphertext search system 20 ′ of the present embodiment.

本実施例の暗号文検索システム20’は、インターネット1とネットワーク2と検索情報生成装置101と検索要求装置201’と検索情報保存装置400と暗号情報保存装置500から構成される。検索情報保存装置400と暗号情報保存装置500はインターネット1に接続される。検索情報生成装置101と検索要求装置201’はネットワーク2に接続される。インターネット1とネットワーク2はルータやファイアウォールなどの各種のネットワーク機器によって接続されており、検索情報生成装置101と検索要求装置201’と検索情報保存装置400と暗号情報保存装置500が相互に通信可能なように構成される。検索要求装置201’は、検索クエリ生成部210と暗号文取得部220と復号部290と検索インデックス取得部310と検索結果判定部320を備える。   The ciphertext search system 20 ′ of this embodiment includes the Internet 1, the network 2, a search information generation device 101, a search request device 201 ′, a search information storage device 400, and an encryption information storage device 500. The search information storage device 400 and the encryption information storage device 500 are connected to the Internet 1. The search information generation device 101 and the search request device 201 ′ are connected to the network 2. The Internet 1 and the network 2 are connected by various network devices such as a router and a firewall, and the search information generation device 101, the search request device 201 ′, the search information storage device 400, and the encryption information storage device 500 can communicate with each other. Configured as follows. The search request device 201 ′ includes a search query generation unit 210, a ciphertext acquisition unit 220, a decryption unit 290, a search index acquisition unit 310, and a search result determination unit 320.

したがって、本変形例の暗号文検索システム20’は実施例1の暗号文検索システム20と比較して、検索実行装置300の備えていた検索インデックス取得部310と検索結果判定部320を検索要求装置201’が備えるようにし、検索実行装置300を省略したことが相違点である。   Therefore, the ciphertext search system 20 ′ of the present modified example uses the search index acquisition unit 310 and the search result determination unit 320 provided in the search execution device 300 as a search request device, compared to the ciphertext search system 20 of the first embodiment. The difference is that 201 'is provided and the search execution device 300 is omitted.

暗号文検索システム全体として必要とされる検索処理量が多くなく、検索要求装置が少数である場合には、本変形例のように構成することでシステム全体の装置数を削減することができる。この変形例の考え方は、後述の実施例2,3にも適用することができる。   When the amount of search processing required for the entire ciphertext search system is not large and the number of search requesting devices is small, the number of devices in the entire system can be reduced by configuring as in this modification. The idea of this modification can also be applied to Examples 2 and 3 described later.

本実施例は、複数ユーザで利用が可能な内積述語検索可能暗号に対してこの発明を適用した実施例である。複数ユーザで利用が可能な内積述語検索可能暗号についての詳細は、非特許文献4を参照されたい。   The present embodiment is an embodiment in which the present invention is applied to an inner product predicate searchable cipher that can be used by a plurality of users. Refer to Non-Patent Document 4 for details of the inner product predicate searchable encryption that can be used by a plurality of users.

図11〜14を参照して、この発明の実施例2の暗号文検索システム30の動作を詳細に説明する。図11は、本実施例の暗号文検索システム30の構成を示すブロック図である。図12は、本実施例の暗号文検索システム30を構成する装置の構成を示すブロック図である。図13は、本実施例の暗号文検索システム30が暗号文を生成・保存する動作を示すフローチャートである。図14は、本実施例の暗号文検索システム30が暗号文を検索・復号する動作を示すフローチャートである。   The operation of the ciphertext search system 30 according to the second embodiment of the present invention will be described in detail with reference to FIGS. FIG. 11 is a block diagram illustrating the configuration of the ciphertext search system 30 according to the present embodiment. FIG. 12 is a block diagram illustrating a configuration of an apparatus that constitutes the ciphertext search system 30 according to the present embodiment. FIG. 13 is a flowchart illustrating an operation in which the ciphertext search system 30 according to the present embodiment generates and stores a ciphertext. FIG. 14 is a flowchart showing an operation in which the ciphertext search system 30 of the present embodiment searches and decrypts a ciphertext.

図11,12を参照して、本実施例の暗号文検索システム30の構成を説明する。本実施例の暗号文検索システム30は、インターネット1とネットワーク2と検索情報生成装置102と検索要求装置202と検索実行装置301と検索情報保存装置400と暗号情報保存装置500から構成される。検索情報保存装置400と暗号情報保存装置500はインターネット1に接続される。検索情報生成装置102と検索要求装置202と検索実行装置301はネットワーク2に接続される。インターネット1とネットワーク2はルータやファイアウォールなどの各種のネットワーク機器によって接続されており、検索情報生成装置102と検索要求装置202と検索実行装置301と検索情報保存装置400と暗号情報保存装置500が相互に通信可能なように構成される。検索情報生成装置102は、暗号文生成部111と検索インデックス生成部122とハッシュ値算出部130を備える。検索要求装置202は、検索クエリ生成部211と暗号文取得部220と復号部290を備える。検索実行装置301は、検索インデックス取得部310と検索結果判定部321と検索結果送信部330とユーザ登録部340と係数算出部350を備える。   The configuration of the ciphertext search system 30 according to this embodiment will be described with reference to FIGS. The ciphertext search system 30 of this embodiment includes the Internet 1, the network 2, a search information generation device 102, a search request device 202, a search execution device 301, a search information storage device 400, and a cipher information storage device 500. The search information storage device 400 and the encryption information storage device 500 are connected to the Internet 1. The search information generation device 102, the search request device 202, and the search execution device 301 are connected to the network 2. The Internet 1 and the network 2 are connected by various network devices such as a router and a firewall, and the search information generation device 102, the search request device 202, the search execution device 301, the search information storage device 400, and the encryption information storage device 500 are mutually connected. It is configured to be able to communicate with. The search information generation device 102 includes a ciphertext generation unit 111, a search index generation unit 122, and a hash value calculation unit 130. The search request device 202 includes a search query generation unit 211, a ciphertext acquisition unit 220, and a decryption unit 290. The search execution device 301 includes a search index acquisition unit 310, a search result determination unit 321, a search result transmission unit 330, a user registration unit 340, and a coefficient calculation unit 350.

したがって、本実施例の検索情報生成装置102と実施例1の検索情報生成装置101とは、ハッシュ値算出部130を備え、暗号文生成部と検索インデックス生成部の処理が異なることが相違点である。本実施例の検索要求装置202と実施例1の検索要求装置201とは、検索クエリ生成部の処理が異なることが相違点である。本実施例の検索実行装置301と実施例1の検索実行装置300とは、ユーザ登録部340と係数算出部350を備え、検索結果判定部の処理が異なることが相違点である。   Therefore, the search information generation apparatus 102 of the present embodiment and the search information generation apparatus 101 of the first embodiment include the hash value calculation unit 130, and the difference is that the processing of the ciphertext generation unit and the search index generation unit is different. is there. The difference between the search request device 202 of the present embodiment and the search request device 201 of the first embodiment is that the processing of the search query generation unit is different. The difference is that the search execution device 301 of the present embodiment and the search execution device 300 of the first embodiment include a user registration unit 340 and a coefficient calculation unit 350, and the processing of the search result determination unit is different.

以下の説明において、^はべき乗を表し、Sを鍵シード空間、Wをキーワード空間、G,Gを位数pの巡回群、gを巡回群Gの生成元、eをG×G→Gであるペアリング関数、hσをS×W→Gである鍵付きハッシュ関数、σを鍵付きハッシュ関数hσのランダムシード、x,ζを元の数がpである有限体F からあらかじめランダムに選択された整数であるものとする。ペアリング関数は、例えばWeilペアリングやTateペアリングなどである。鍵付きハッシュ関数は、例えばSHA-1やMD5などである。 In the following description, ^ represents a power, S is a key seed space, W is a keyword space, G 1 and G 2 are cyclic groups of order p, g is a generator of the cyclic group G 1 , and e is G 1 × G 1 → G 2 pairing function, h σ is S × W → G 1 keyed hash function, σ is keyed hash function h σ random seed, x and ζ are original numbers p It is assumed that the integer is randomly selected in advance from the finite field F p * . The pairing function is, for example, Weil pairing or Tate pairing. The keyed hash function is, for example, SHA-1 or MD5.

図13を参照して、本実施例の暗号文検索システム30が暗号文を生成・保存する動作を実際に行われる手続きの順に従って説明する。   With reference to FIG. 13, the operation of the ciphertext search system 30 according to the present embodiment for generating and storing a ciphertext will be described in the order of procedures actually performed.

まず、管理者は、初期化処理として、セキュリティパラメータ1λを入力として、Setupを2回実行し、それぞれの出力を(公開鍵pk,マスタ秘密鍵sk)、(暗号公開鍵pk,暗号マスタ秘密鍵sk)とする。続いて、管理者は、xとζを有限体F からランダムに選択する。続いて、管理者は、鍵付きハッシュ関数hσのランダムシードσを鍵シード空間Sからランダムに選択する。そして、マスタ秘密鍵skとxは検索実行装置301へ送信される。 First, as an initialization process, the administrator executes the setup twice with the security parameter 1 λ as an input, and outputs (public key pk, master secret key sk) and (cipher public key pk e , encryption master). The secret key sk e ). Subsequently, the administrator randomly selects x and ζ from the finite field F p * . Subsequently, the administrator randomly selects a random seed σ of the keyed hash function h σ from the key seed space S. Then, the master secret key sk and x are transmitted to the search execution device 301.

検索実行装置301のユーザ登録部340は、内積述語暗号方式により、登録対象であるユーザを一意に識別するユーザ識別子Uと、そのユーザ識別子Uに対応する属性情報AFLから述語ベクトルvを生成する。述語ベクトルvとあらかじめ生成された公開鍵pkとその公開鍵pkと対になるマスタ秘密鍵skを用いて、検索秘密鍵skを生成する。また、述語ベクトルvとあらかじめ生成された暗号公開鍵pkとその暗号公開鍵pkと対になるマスタ秘密鍵skを用いて、暗号秘密鍵ske,Uを生成する。続いて、乱数xを有限体F からランダムに選択して補完鍵ck=g^x/xを計算する。そして、検索秘密鍵skと暗号秘密鍵ske,Uと乱数xを検索情報生成装置102と検索要求装置202へ送信する(S340)。 The user registration unit 340 of the search execution device 301 generates a predicate vector v from a user identifier U for uniquely identifying a user to be registered and attribute information AFL U corresponding to the user identifier U by an inner product predicate encryption method. To do. The search secret key sk U is generated using the predicate vector v and the public key pk generated in advance and the master secret key sk paired with the public key pk. Also, the encryption secret keys sk e and U are generated using the predicate vector v and the previously generated encryption public key pk e and the master secret key sk e paired with the encryption public key pk e . Subsequently, a random number x U is randomly selected from the finite field F p * to calculate a complementary key ck U = g ^ x / x U. Then, the search secret key sk U , the encryption secret key sk e, U, and the random number x U are transmitted to the search information generation device 102 and the search request device 202 (S340).

検索情報生成装置102の暗号文生成部110は、文字列を含む平文Mを暗号化して暗号文Cを生成する(S110)。暗号文Cは、検索権限情報ACから属性ベクトルxを生成する。属性ベクトルxと暗号公開鍵pkを用いて、内積述語暗号方式により暗号化される。検索権限情報ACは、その暗号文Cを復号可能とするユーザのユーザ識別子Uと、そのユーザ識別子Uに対応する属性情報AFLからなる。続いて、検索情報生成装置102の暗号文生成部110は、暗号文Cを暗号情報保存装置500へ送信する。 Ciphertext generator 110 of the retrieval information generating apparatus 102 encrypts the plaintext M including a character string to generate a ciphertext C 1 (S110). Ciphertext C 1 is, to generate the attribute vector x from the search authority information AC. Encryption is performed by the inner product predicate encryption method using the attribute vector x and the encryption public key pk e . Search authority information AC includes a user identifier U of the user which allows decrypting the ciphertext C 1, consisting of the attribute information AFL U corresponding to the user identifier U. Subsequently, the ciphertext generation unit 110 of the search information generation apparatus 102 transmits the ciphertext C 1 to the cipher information storage apparatus 500.

暗号情報保存装置500は、検索情報生成装置102から受信した暗号文Cを暗号文記憶部590へ記憶する(S590)。 Encryption information storage unit 500, the ciphertext C 1 received from the search information generating apparatus 102 stores the ciphertext storage unit 590 (S590).

検索情報生成装置102のハッシュ値算出部130は、乱数rを有限体F からランダムに選択し、登録キーワードWを用いて、ハッシュ値H=(hσ(W))^rを計算することでハッシュ値Hを生成する(S130)。続いて、検索情報生成装置102のハッシュ値算出部130は、ハッシュ値Hを検索実行装置301へ送信する。 The hash value calculation unit 130 of the search information generation device 102 randomly selects the random number r w from the finite field F p * , and uses the registered keyword W T to generate a hash value H = (h σ (W T )) ^ r. A hash value H is generated by calculating w x U (S130). Subsequently, the hash value calculation unit 130 of the search information generation device 102 transmits the hash value H to the search execution device 301.

検索実行装置301の係数算出部350は、検索情報生成装置102から受信したハッシュ値Hを用いて、係数f=e(H,ck)を計算する(S350)。続いて、検索実行装置301の係数算出部350は、係数fを検索情報生成装置102へ送信する。 The coefficient calculation unit 350 of the search execution device 301 calculates the coefficient f = e (H, ck U ) using the hash value H received from the search information generation device 102 (S350). Subsequently, the coefficient calculation unit 350 of the search execution device 301 transmits the coefficient f to the search information generation device 102.

検索情報生成装置102の検索インデックス生成部122は、乱数rを巡回群Gからランダムに選択する。その乱数rと検索実行装置301から受信した係数fを用いて、係数r’=rfを計算する。そして、乱数rを情報Rとして生成する(S1210)。続いて、検索情報生成装置102の検索インデックス生成部122は、内積述語暗号方式により、登録キーワードWと、その登録キーワードWを利用した検索を可能とするユーザのユーザ識別子Uとそのユーザ識別子Uに対応する属性情報AFLを含む検索権限情報ACから属性ベクトルxを生成する。属性ベクトルxと公開鍵pkを用いて、情報Rを内積述語暗号方式により暗号化することにより(T,…,T)を生成する。続いて、巡回群Gの生成元gと有限体F からあらかじめランダムに選択されたζを用いてτ=gζを計算する。そして、(T,…,T)とτとハッシュ値Hを一組として情報R:=(T,…,T,τ,H)を生成する(S1220)。 Search index generation unit 122 of the search information generating device 102 randomly selects a random number r from the cyclic group G 2. The coefficient r ′ = rf is calculated using the random number r and the coefficient f received from the search execution device 301. Then, it generates a random number r as the information R 1 (S1210). Subsequently, the search index generation unit 122 of the retrieval information generating apparatus 102, the inner product predicate encryption scheme, and keywords W T, user identifier U and the user identifier of the user to allow search using the keywords W T The attribute vector x is generated from the search authority information AC including the attribute information AFL U corresponding to U. (T 1 ,..., T N ) is generated by encrypting information R 1 by the inner product predicate encryption method using the attribute vector x and the public key pk. Subsequently, τ = g ζ is calculated using ζ randomly selected in advance from the generator g of the cyclic group G 1 and the finite field F p * . Then, information R 2 : = (T 1 ,..., T N , τ, H) is generated with (T 1 ,..., T N ), τ, and hash value H as a set (S1220).

続いて、検索情報生成装置102の検索インデックス生成部122は、暗号文Cを一意に識別するための情報Rを生成する(S1230)。そして、検索情報生成装置102の検索インデックス生成部122は、情報Rと情報Rと情報Rを一組とした検索インデックスC:=(R,R,R)を生成し、検索情報保存装置400へ送信する。 Subsequently, the search index generation unit 122 of the search information generating device 102 generates information R 3 for uniquely identifying the ciphertext C 1 (S1230). Then, the search index generation unit 122 of the search information generation apparatus 102 generates a search index C 2 : = (R 1 , R 2 , R 3 ) that includes the information R 1 , the information R 2, and the information R 3 as a set. And transmitted to the search information storage device 400.

検索情報保存装置400は、検索情報生成装置101から受信した検索インデックスCを検索インデックス記憶部490へ記憶する(S490)。 Search information storage device 400 stores the search index C 2 received from retrieval information generating apparatus 101 to the search index storage unit 490 (S490).

図14を参照して、本実施例の暗号文検索システム30が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。   With reference to FIG. 14, the ciphertext search system 30 of the present embodiment will be described in the order of procedures actually performed for retrieving and decrypting ciphertext.

検索要求装置202の検索クエリ生成部211は、内積述語暗号方式により、検索キーワードWから述語ベクトルvを生成する。生成した述語ベクトルvと公開鍵pkと検索秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリk:=(Q,…,Q)を生成する(S211)。続いて、検索要求装置202の検索クエリ生成部211は、検索クエリkを検索実行装置301へ送信する。 Search query generation unit 211 of the search request unit 202, the inner product predicate encryption scheme, generates a predicate vector v from the search keyword W Q. Search query k * : = (Q 1 ,..., Q, which is a secret key for decrypting information R 2 by the inner product predicate encryption method using generated predicate vector v , public key pk, and search secret key sk U N ) is generated (S211). Subsequently, the search query generation unit 211 of the search request device 202 transmits the search query k * to the search execution device 301.

検索実行装置301の検索インデックス取得部310は、検索情報保存装置400の検索インデックス記憶部490に記憶されている検索インデックスCをダウンロードする(S310)。 Search index acquiring unit 310 of the execution apparatus 301 downloads the search index C 2 stored in the search index storage unit 490 of the search information storage unit 400 (S310).

検索実行装置301の検索結果判定部321は、検索要求装置202から受信した検索クエリk:=(Q,…,Q)を用いて、すべての検索インデックスCについて、その検索インデックスCに含まれる情報Rが式(6)を満たすか否かを判定する。式(6)を満たす場合には、その検索インデックスCは検索が当たりであると判定する(S321)。 The search result determination unit 321 of the search execution device 301 uses the search query k * : = (Q 1 ,..., Q N ) received from the search request device 202 to search the search index C 2 for all search indexes C 2. information R 2 contained in 2 determines whether satisfy equation (6). Determines that the case which satisfies the equation (6), the search index C 2 is per search (S321).

Figure 2013156675
Figure 2013156675

検索実行装置301の検索結果送信部330は、当たりと判定された検索インデックスCから暗号文Cを一意に識別する情報Rを抽出して検索結果Cを生成し、生成した検索結果Cを検索要求装置202へ送信する(S330)。 The search result transmission unit 330 of the search execution device 301 extracts the information R 3 that uniquely identifies the ciphertext C 1 from the search index C 2 determined to be successful, generates the search result C 3, and the generated search result sending a C 3 to the search request unit 202 (S330).

検索要求装置202の暗号文取得部220は、検索実行装置301から受信した検索結果Cに含まれる情報Rを参照し、すべての情報Rについて、その情報Rにより一意に識別される暗号文Cを暗号情報保存装置500からダウンロードする(S220)。 The ciphertext acquisition unit 220 of the search requesting device 202 refers to the information R 3 included in the search result C 3 received from the search execution device 301 and uniquely identifies all the information R 3 by the information R 3. Download the ciphertext C 1 from the encryption information storage unit 500 (S220).

検索要求装置202の復号部290は、暗号情報保存装置500からダウンロードした暗号文Cを復号して平文Mを取得する(S290)。 Decoding unit 290 of the search request unit 202 acquires plaintext M by decrypting the ciphertext C 1 downloaded from the encryption information storage unit 500 (S290).

本実施例はこのような構成とすることにより、複数ユーザで利用が可能な内積述語検索可能暗号において、検索クエリkがクラウドを構成する装置に漏洩することを防止でき、辞書攻撃による検索キーワードの推定を防止できる。そのため、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する暗号情報保存装置と検索を実行する検索実行装置が異なる装置として構成することができるため、システム全体としての検索処理量の増大に対応して検索実行装置を増設する場合に、追加するストレージ容量を抑制することができる。 With this configuration, this embodiment can prevent the search query k * from leaking to the devices constituting the cloud in the inner product predicate searchable cipher that can be used by a plurality of users. Can be prevented. Therefore, security can be improved with respect to the conventional ciphertext search system. In addition, since the encryption information storage device that stores the encryption information and the search execution device that executes the search can be configured as different devices, the search execution device is added in response to the increase in the search processing amount of the entire system. In addition, the storage capacity to be added can be suppressed.

本実施例は、バッチ検索が可能な内積述語検索可能暗号に対してこの発明を適用した実施例である。バッチ検索が可能な内積述語検索可能暗号についての詳細は、非特許文献5を参照されたい。   The present embodiment is an embodiment in which the present invention is applied to an inner product predicate searchable cipher capable of batch search. Refer to Non-Patent Document 5 for details of the inner product predicate searchable cipher capable of batch search.

図15〜17を参照して、この発明の実施例3の暗号文検索システム40の動作を詳細に説明する。図15は、本実施例の暗号文検索システム40の構成を示すブロック図である。図16は、本実施例の暗号文検索システム40を構成する装置の構成を示すブロック図である。図17は、本実施例の暗号文検索システム40が暗号文を検索・復号する動作を示すフローチャートである。   With reference to FIGS. 15-17, the operation | movement of the ciphertext search system 40 of Example 3 of this invention is demonstrated in detail. FIG. 15 is a block diagram showing the configuration of the ciphertext search system 40 of this embodiment. FIG. 16 is a block diagram illustrating a configuration of an apparatus that constitutes the ciphertext search system 40 of the present embodiment. FIG. 17 is a flowchart showing an operation in which the ciphertext search system 40 of this embodiment searches and decrypts a ciphertext.

図15,16を参照して、本実施例の暗号文検索システム40の構成を説明する。本実施例の暗号文検索システム40は、インターネット1とネットワーク2と検索情報生成装置102と検索要求装置203と検索実行装置302と検索情報保存装置400と暗号情報保存装置500から構成される。検索情報保存装置400と暗号情報保存装置500はインターネット1に接続される。検索情報生成装置102と検索要求装置203と検索実行装置302はネットワーク2に接続される。インターネット1とネットワーク2はルータやファイアウォールなどの各種のネットワーク機器によって接続されており、検索情報生成装置102と検索要求装置203と検索実行装置302と検索情報保存装置400と暗号情報保存装置500が相互に通信可能なように構成される。検索要求装置203は、検索クエリ生成部212と暗号文取得部220と復号部290を備える。検索実行装置302は、検索インデックス取得部310と検索結果判定部322と検索結果送信部330とユーザ登録部340と係数算出部350とバッチタグ生成部360を備える。   The configuration of the ciphertext search system 40 of this embodiment will be described with reference to FIGS. The ciphertext search system 40 of this embodiment includes the Internet 1, the network 2, a search information generation device 102, a search request device 203, a search execution device 302, a search information storage device 400, and a cipher information storage device 500. The search information storage device 400 and the encryption information storage device 500 are connected to the Internet 1. The search information generation device 102, the search request device 203, and the search execution device 302 are connected to the network 2. The Internet 1 and the network 2 are connected by various network devices such as a router and a firewall. It is configured to be able to communicate with. The search request device 203 includes a search query generation unit 212, a ciphertext acquisition unit 220, and a decryption unit 290. The search execution device 302 includes a search index acquisition unit 310, a search result determination unit 322, a search result transmission unit 330, a user registration unit 340, a coefficient calculation unit 350, and a batch tag generation unit 360.

したがって、本実施例の検索要求装置203と実施例2の検索要求装置202とは、検索クエリ生成部の処理が異なることが相違点である。本実施例の検索実行装置302と実施例2の検索実行装置301とは、バッチタグ生成部360を備え、検索結果判定部の処理が異なることが相違点である。   Therefore, the search request device 203 of the present embodiment and the search request device 202 of the second embodiment are different in the processing of the search query generation unit. The difference is that the search execution device 302 according to the present embodiment and the search execution device 301 according to the second embodiment include a batch tag generation unit 360 and the processing of the search result determination unit is different.

以下の説明において、^はべき乗を表し、tを検索インデックスCの総数、jを検索インデックスCの番号、K(=logt+1)をバッチタグBTagの階層数、k(0≦k≦K−1)をバッチタグBTagの階層の番号、M(=2^(logt−k))をバッチタグBTagの各階層における要素数、m(1≦m≦M)をバッチタグBTagの各階層における要素の番号であるものとする。 In the following description, ^ represents a power, t is the total number of search indexes C 2 , j is the number of the search index C 2 , K (= log 2 t + 1) is the number of hierarchies of the batch tag BTag, and k (0 ≦ k ≦ K -1) is the number of the layer of the batch tag BTag, M (= 2 ^ (log 2 tk)) is the number of elements in each layer of the batch tag BTag, and m (1 ≦ m ≦ M) is an element in each layer of the batch tag BTag Number.

本実施例の暗号文検索システム40が暗号文を生成・保存する動作は、実施例2の暗号検索システム30が暗号文を生成・保存する動作と同様であるため、説明は省略する。   The operation of the ciphertext search system 40 according to the present embodiment for generating and storing a ciphertext is the same as the operation of the ciphertext search system 30 according to the second embodiment generating and storing a ciphertext, and thus description thereof is omitted.

図17を参照して、本実施例の暗号文検索システム40が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。   With reference to FIG. 17, the ciphertext search system 40 according to the present embodiment will be described in accordance with the order of procedures in which ciphertext is retrieved and decrypted.

検索要求装置203の検索クエリ生成部212は、内積述語暗号方式により、キーワード空間Wから検索キーワードWを除いた集合である否定キーワードW ̄から述語ベクトルvを生成する。生成した述語ベクトルvと公開鍵pkと検索秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリk:=(Q ̄,…,Q ̄)を生成する(S212)。続いて、検索要求装置202の検索クエリ生成部212は、検索クエリkを検索実行装置300へ送信する。 The search query generating unit 212 of the search requesting device 203 generates a predicate vector v from a negative keyword W Qあ る that is a set obtained by removing the search keyword W Q from the keyword space W by the inner product predicate encryption method. Using the generated predicate vector v , public key pk, and search secret key sk U , a search query k * : = (Q 1  ̄,..., Which is a secret key for decrypting information R 2 by the inner product predicate encryption method Q N  ̄) is generated (S212). Subsequently, the search query generation unit 212 of the search request device 202 transmits the search query k * to the search execution device 300.

検索キーワードWの否定キーワードW ̄から述語ベクトルvを生成する方法は、例えば以下のように行うことができる。まず、登録キーワードXが検索キーワードYである、あるいは登録キーワードXが検索キーワードYである、…、あるいは登録キーワードXが検索キーワードYである、という条件は式(7)にように表すことができる。 A method of generating the predicate vector v from the negative keyword W Q  ̄ of the search keyword W Q can be performed as follows, for example. First, keywords X 1 is a search keyword Y 1, or keywords X 2 is a search keyword Y 2, ..., or keywords X m is a search keyword Y m, that conditions in the formula (7) Can be expressed as:

Figure 2013156675
Figure 2013156675

式(7)の否定表現は、キーワード空間Wから検索キーワードYを除いた集合W\{Y,…,Y}:={Vi}(1≦i≦K,K=|W\{Y,…,Y}|)と乱数r(1≦j≦m)を用いて、式(8)のように表すことができる。 The negative expression of Equation (7) is a set W \ {Y 1 ,..., Y m }: = {Vi} (1 ≦ i ≦ K, K = | W \ {) obtained by removing the search keyword Y i from the keyword space W. Y 1 ,..., Y m } |) and a random number r j (1 ≦ j ≦ m) can be used to express the equation (8).

Figure 2013156675
Figure 2013156675

以上より、登録キーワードベクトルW =(X ,X K−1,…,X,1,…,X ,1)を属性ベクトルとし、否定キーワードベクトルW=(r,rK−1,…,r,r,…,r,r)を述語ベクトルとすればよい。 From the above, the registered keyword vector W T = (X 1 K , X 1 K−1 ,..., X 1 , 1,..., X m K , 1) is used as the attribute vector, and the negative keyword vector W Q = ( r 1 s K , r 1 s K−1 ,..., r 1 s 1 , r 1 s 0 ,..., r m s K , r m s 0 ) may be used as predicate vectors.

検索実行装置302の検索インデックス取得部310は、検索情報保存装置400の検索インデックス記憶部490に記憶されている検索インデックスCをダウンロードする(S310)。 Search index acquiring unit 310 of the execution apparatus 302 downloads the search index C 2 stored in the search index storage unit 490 of the search information storage unit 400 (S310).

検索実行装置302のバッチタグ生成部360は、検索インデックスC2(j):=(T(j,1),…,T(j,N),τ(j),H(j),r(j))(1≦j≦t)から、K階層の2分木構造であるバッチタグBTag(k,m):=(BT(k,m,1),…,BT(k,m,N),Bτ(k,m),BH(k,m),Br(k,m))を生成する(S360)。階層0のバッチタグBTag(0,m)は、各要素の成分を式(9)のように設定することで生成する。 The batch tag generation unit 360 of the search execution device 302 searches the search index C 2 (j) : = (T (j, 1) ,..., T (j, N) , τ (j) , H (j) , r (j ) ) From (1 ≦ j ≦ t), a batch tag BTag (k, m) : = (BT (k, m, 1) ,..., BT (k, m, N)(k, m) , BH (k, m) , Br (k, m) ) are generated (S360). The batch tag BTag (0, m) of the hierarchy 0 is generated by setting the component of each element as shown in Expression (9).

BT(0,m,i)=T(j,i)
Bτ(0,m)=τ(j)
BH(0,m)=H(j)
Br(0,m)=r(j) (9)
(ただし、1≦i≦N)
その他のバッチタグBTag(k,m)は、各要素の成分を式(10)のように設定することで生成する。
BT (0, m, i) = T (j, i) ,
(0, m) = τ (j) ,
BH (0, m) = H (j) ,
Br (0, m) = r (j) (9)
(However, 1 ≦ i ≦ N)
Other batch tags BTag (k, m) are generated by setting the components of each element as shown in Expression (10).

BT(k,m,i)=BT(k−1,2m−1,i)+BT(k−1,2m,i)
Bτ(k,m)=Bτ(k−1,2m−1)Bτ(k−1,2m)
BH(k,m)=BH(k−1,2m−1)+BH(k−1,2m)
Br(k,m)=Br(k−1,2m−1)Br(k−1,2m) (10)
(ただし、1≦i≦N)
BT (k, m, i) = BT (k-1,2m-1, i) + BT (k-1,2m, i) ,
(k, m) = Bτ (k−1,2m−1)(k−1,2m) ,
BH (k, m) = BH (k-1, 2m-1) + BH (k-1, 2m) ,
Br (k, m) = Br (k-1, 2m-1) Br (k- 1, 2m) (10)
(However, 1 ≦ i ≦ N)

検索実行装置302の検索結果判定部322は、検索要求装置203から受信した検索クエリk:=(Q ̄,…,Q ̄)を用いて、階層(K−1)から階層1までのバッチタグBTag(k,m)それぞれについて、そのバッチタグBTag(k,m)が式(11)を満たすか否かを判定する。ただし、階層kのバッチタグBTag(k,m)について式(11)を満たす場合には、次の階層(k−1)の検証において、バッチタグBTag(k−1,2m−1)とバッチタグBTag(k−1,2m)は判定を行わない。そして、階層0のバッチタグBTag(0,m)それぞれについて、式(11)を満たすか否かを判定する。式(11)を満たさない場合には、その階層0のバッチタグBTag(0,m)に対応する検索インデックスCは検索が当たりであると判定する(S322)。 The search result determination unit 322 of the search execution device 302 uses the search query k * : = (Q 1  ̄,..., Q N  ̄) received from the search request device 203 to the hierarchy (K−1) to the hierarchy 1. of Batchitagu BTag (k, m) for each, and determines whether the Batchitagu BTag (k, m) satisfies the formula (11). However, when the expression (11) is satisfied for the batch tag BTag (k, m) of the hierarchy k, the batch tag BTag (k-1, 2m-1) and the batch tag BTag ( k-1 and 2m) are not judged. Then, it is determined whether or not Expression (11) is satisfied for each of the batch tag BTag (0, m) of the hierarchy 0. If the expression (11) is not satisfied, it is determined that the search index C 2 corresponding to the batch tag BTag (0, m) of the hierarchy 0 is successful (S322).

Figure 2013156675
Figure 2013156675

検索実行装置302の検索結果送信部330は、当たりと判定された検索インデックスCから暗号文Cを一意に識別する情報Rを抽出して検索結果Cを生成し、生成した検索結果Cを検索要求装置203へ送信する(S330)。 The search result transmission unit 330 of the search execution device 302 generates the search result C 3 by extracting the information R 3 that uniquely identifies the ciphertext C 1 from the search index C 2 determined to be a hit, and the generated search result sending a C 3 to the search request unit 203 (S330).

検索要求装置203の暗号文取得部220は、検索実行装置302から受信した検索結果Cに含まれる情報Rを参照し、すべての情報Rについて、その情報Rにより一意に識別される暗号文Cを暗号情報保存装置500からダウンロードする(S220)。 Ciphertext acquisition unit 220 of the search request unit 203 refers to the information R 3 included in the search results C 3 received from the search execution unit 302, all the information R 3, it is uniquely identified by the information R 3 Download the ciphertext C 1 from the encryption information storage unit 500 (S220).

検索要求装置203の復号部290は、暗号情報保存装置500からダウンロードした暗号文Cを復号して平文Mを取得する(S290)。 Decoding unit 290 of the search request unit 203 acquires plaintext M by decrypting the ciphertext C 1 downloaded from the encryption information storage unit 500 (S290).

本実施例はこのような構成とすることにより、バッチ検索が可能な内積述語検索可能暗号において、検索クエリkがクラウドを構成する装置に漏洩することを防止でき、辞書攻撃による検索キーワードの推定を防止できる。そのため、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する暗号情報保存装置と検索を実行する検索実行装置が異なる装置として構成することができるため、システム全体としての検索処理量の増大に対応して検索実行装置を増設する場合に、追加するストレージ容量を抑制することができる。 By adopting such a configuration in the present embodiment, in the inner product predicate searchable cipher capable of batch search, it is possible to prevent the search query k * from leaking to the devices constituting the cloud, and to estimate the search keyword due to the dictionary attack Can be prevented. Therefore, security can be improved with respect to the conventional ciphertext search system. In addition, since the encryption information storage device that stores the encryption information and the search execution device that executes the search can be configured as different devices, the search execution device is added in response to the increase in the search processing amount of the entire system. In addition, the storage capacity to be added can be suppressed.

[変形例]
実施例3では、検索実行装置がバッチタグの生成を行うように構成したが、検索情報保存装置がバッチタグの生成を行うように構成してもよい。
[Modification]
In the third embodiment, the search execution device is configured to generate a batch tag. However, the search information storage device may be configured to generate a batch tag.

図18〜20を参照して、この変形例の暗号文検索システム40’の動作を詳細に説明する。図18は、本変形例の暗号文検索システム40’の構成を示すブロック図である。図19は、本変形例の暗号文検索システム40’を構成する装置の構成を示すブロック図である。図20は、本変形例の暗号文検索システム40’が暗号文を検索・復号する動作を示すフローチャートである。   With reference to FIGS. 18 to 20, the operation of the ciphertext search system 40 ′ of this modification will be described in detail. FIG. 18 is a block diagram showing a configuration of a ciphertext search system 40 ′ according to this modification. FIG. 19 is a block diagram illustrating a configuration of an apparatus constituting the ciphertext search system 40 ′ according to the present modification. FIG. 20 is a flowchart showing an operation in which the ciphertext search system 40 ′ according to the present modification searches and decrypts a ciphertext.

図18,19を参照して、本変形例の暗号文検索システム40’の構成を説明する。本変形例の暗号文検索システム40’は、インターネット1とネットワーク2と検索情報生成装置102と検索要求装置203と検索実行装置302’と検索情報保存装置400’と暗号情報保存装置500から構成される。検索情報保存装置400’と暗号情報保存装置500はインターネット1に接続される。検索情報生成装置102と検索要求装置203と検索実行装置302’はネットワーク2に接続される。インターネット1とネットワーク2はルータやファイアウォールなどの各種のネットワーク機器によって接続されており、検索情報生成装置102と検索要求装置203と検索実行装置302’と検索情報保存装置400’と暗号情報保存装置500が相互に通信可能なように構成される。検索実行装置302’は、検索インデックス取得部310’と検索結果判定部322と検索結果送信部330とユーザ登録部340と係数算出部350を備える。検索情報保存装置400’は、バッチタグ生成部360と検索インデックス記憶部495と検索インデックス記憶部490を備える。   The configuration of the ciphertext search system 40 'according to the present modification will be described with reference to FIGS. The ciphertext search system 40 ′ according to the present modification includes the Internet 1, the network 2, the search information generation device 102, the search request device 203, the search execution device 302 ′, the search information storage device 400 ′, and the encryption information storage device 500. The The search information storage device 400 ′ and the encryption information storage device 500 are connected to the Internet 1. The search information generation device 102, the search request device 203, and the search execution device 302 'are connected to the network 2. The Internet 1 and the network 2 are connected by various network devices such as a router and a firewall, and the search information generation device 102, the search request device 203, the search execution device 302 ′, the search information storage device 400 ′, and the encryption information storage device 500. Are configured to communicate with each other. The search execution device 302 ′ includes a search index acquisition unit 310 ′, a search result determination unit 322, a search result transmission unit 330, a user registration unit 340, and a coefficient calculation unit 350. The search information storage device 400 ′ includes a batch tag generation unit 360, a search index storage unit 495, and a search index storage unit 490.

したがって、本変形例の暗号文検索システム40’と実施例3の暗号文検索システム40とは、バッチタグ生成部360を検索実行装置の替わりに検索情報保存装置が備えており、検索情報保存装置がバッチタグ記憶部495を備えており、検索実行装置の検索インデックス取得部の動作が異なることが相違点である。   Therefore, the ciphertext search system 40 ′ according to the present modification and the ciphertext search system 40 according to the third embodiment include the batch tag generation unit 360 in the search information storage device instead of the search execution device. The difference is that the batch tag storage unit 495 is provided and the operation of the search index acquisition unit of the search execution device is different.

検索情報保存装置400’のバッチタグ生成部360は、検索インデックス記憶部490に記憶されている検索インデックスCを用いてバッチタグBTag(k,m)を生成する(S360)。生成したバッチタグBTag(k,m)は、バッチタグ記憶部495へ記憶する。バッチタグBTag(k,m)の生成は、検索情報生成装置102から検索インデックスCを受信するたびに実行してもよいし、定期的に実行されるようにしてもよい。また、バッチタグ生成の処理速度が十分であれば、検索実行装置302’がバッチタグBTag(k,m)のダウンロードを要求するたびに実行するようにしてもよい。バッチタグBTag(k,m)の生成方法は実施例3と同様であるため、説明は省略する。 Batchitagu generator 360 of the retrieval information storage apparatus 400 ', Batchitagu BTag (k, m) to produce a using the search index C 2 stored in the search index storage unit 490 (S360). The generated batch tag BTag (k, m) is stored in the batch tag storage unit 495. Generation of Batchitagu BTag (k, m) may be executed each time it receives a search index C 2 from the search information generating device 102, may be executed periodically. Further, if the processing speed of batch tag generation is sufficient, the search execution device 302 ′ may execute it every time it requests download of the batch tag BTag (k, m) . Since the method for generating the batch tag BTag (k, m) is the same as that in the third embodiment, the description thereof is omitted.

検索実行装置302’の検索インデックス取得部310’は、検索情報保存装置400’のバッチタグ記憶部495に記憶されているバッチタグBTag(k,m)をダウンロードする(S310’)。常にすべてのバッチタグBTag(k,m)をダウンロードしてもよいし、使用するネットワーク帯域を抑えるために、前回実行時に利用したバッチタグBTag(k,m)を保持しておき、差分のみをダウンロードしてもよい。 The search index acquisition unit 310 ′ of the search execution device 302 ′ downloads the batch tag BTag (k, m) stored in the batch tag storage unit 495 of the search information storage device 400 ′ (S310 ′). Always all Batchitagu BTag (k, m) may be downloaded, in order to reduce the network bandwidth used, Batchitagu BTag (k, m), which was used at the time of the previous execution holds the, to download the difference only May be.

[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Program, recording medium]
The present invention is not limited to the above-described embodiment, and it goes without saying that modifications can be made as appropriate without departing from the spirit of the present invention. The various processes described in the above-described embodiments are not only executed in time series according to the order described, but may be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes.

また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。   When various processing functions in each device described in the above embodiment are realized by a computer, the processing contents of the functions that each device should have are described by a program. Then, by executing this program on a computer, various processing functions in each of the above devices are realized on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

この発明は、クラウドストレージに保存されている暗号化された情報に対し暗号学的に安全にキーワード検索を行う暗号文検索システムに利用することができる。   The present invention can be used in a ciphertext search system that performs keyword search for encrypted information stored in a cloud storage in a cryptographically safe manner.

10−40 暗号文検索システム
1 インターネット
2 ネットワーク
100−102 検索情報生成装置
110,111 暗号文生成部
120−122 検索インデックス生成部
130 ハッシュ値算出部
200−203 検索要求装置
210−212 検索クエリ生成部
220 暗号文取得部
290 復号部
300−302 検索実行装置
310 検索インデックス取得部
320−322 検索結果判定部
330 検索結果送信部
340 ユーザ登録部
350 係数算出部
360 バッチタグ生成部
400 検索情報保存装置
490 検索インデックス記憶部
495 バッチタグ記憶部
500 暗号情報保存装置
590 暗号文記憶部
800 検索代行装置
810 検索結果判定部
820 検索結果送信部
890 記憶部
10-40 Ciphertext Search System 1 Internet 2 Network 100-102 Search Information Generation Device 110, 111 Ciphertext Generation Unit 120-122 Search Index Generation Unit 130 Hash Value Calculation Unit 200-203 Search Request Device 210-212 Search Query Generation Unit 220 Ciphertext Acquisition Unit 290 Decryption Unit 300-302 Search Execution Device 310 Search Index Acquisition Unit 320-322 Search Result Determination Unit 330 Search Result Transmission Unit 340 User Registration Unit 350 Coefficient Calculation Unit 360 Batch Tag Generation Unit 400 Search Information Storage Device 490 Search Index storage unit 495 Batch tag storage unit 500 Encryption information storage device 590 Ciphertext storage unit 800 Search proxy device 810 Search result determination unit 820 Search result transmission unit 890 Storage unit

Claims (14)

検索情報生成装置と検索要求装置と検索実行装置を含み、検索情報保存装置に記憶された検索インデックスCを用いて、文字列を含む平文Mを暗号化して暗号情報保存装置に記憶された暗号文Cに対してキーワード検索を行う暗号文検索システムであって、
前記検索情報生成装置は、
任意のビット列からなる情報Rを生成し、当該情報Rを、あらかじめ生成された公開鍵pkと、前記平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成し、前記暗号文Cを一意に識別するための情報Rを生成し、当該情報Rと当該情報Rと当該情報Rを一組とした前記検索インデックスC:=(R,R,R)を前記検索情報保存装置へ送信する検索インデックス生成部を備え、
前記検索要求装置は、
検索キーワードWと、前記公開鍵pkと対になるマスタ秘密鍵skを用いて、前記情報Rを復号するための秘密鍵である検索クエリkを生成し、前記検索実行装置へ送信する検索クエリ生成部と、
前記検索実行装置から受信した検索結果Cに含まれる前記情報Rにより識別される前記暗号文Cを前記暗号情報保存装置から取得する暗号文取得部を備え、
前記検索実行装置は、
前記検索インデックスCを前記検索情報保存装置から取得する検索インデックス取得部と、
前記検索インデックスCに含まれる前記情報Rを前記検索クエリkを用いて復号することで復号結果Rを生成し、当該復号結果Rと当該検索インデックスCに含まれる前記情報Rが一致するか否かを判定する検索結果判定部と、
前記検索結果判定部により一致すると判定された検索インデックスCから、少なくとも前記情報Rを抽出して前記検索結果Cを生成し、当該検索結果Cを前記検索要求装置へ送信する検索結果送信部を備える
ことを特徴とする暗号文検索システム。
A cipher that includes a search information generation device, a search request device, and a search execution device, encrypts plaintext M including a character string using a search index C 2 stored in the search information storage device, and stores it in the encryption information storage device a cipher text search system to perform a keyword search for the statement C 1,
The search information generation device includes:
It generates information R 1 comprising an arbitrary bit string, the information R 1, the public key pk that is previously generated by encrypting using the keywords W T is a keyword associated with the plaintext M, information R 2 is generated, information R 3 for uniquely identifying the ciphertext C 1 is generated, and the search index C 2 including the information R 1 , the information R 2, and the information R 3 as a set: = A search index generation unit that transmits (R 1 , R 2 , R 3 ) to the search information storage device,
The search request device includes:
A search keyword W Q, using the master secret key sk to be the public key pk paired with the information R 2 generates a search query k * is the private key for decrypting, and sends to the search execution device A search query generator,
A ciphertext acquisition unit that acquires the ciphertext C 1 identified by the information R 3 included in the search result C 3 received from the search execution device from the cipher information storage device;
The search execution device includes:
A search index acquiring unit that acquires the search index C 2 from said search information storage device,
The information R 2 included in the search index C 2 is decoded using the search query k * to generate a decoding result R, and the decoding result R and the information R 1 included in the search index C 2 are A search result determination unit for determining whether or not they match,
The search from the search index C 2 that is determined to match the result judging unit, to generate the search results C 3 to extract at least the information R 3, search results and transmits the search result C 3 to the retrieval request device A ciphertext search system comprising a transmission unit.
請求項1に記載の暗号文検索システムであって、
前記検索情報保存装置と前記暗号情報保存装置は、前記検索情報生成装置と前記検索情報保存装置と前記検索要求装置と前記検索実行装置それぞれと、インターネットを介して接続されるオンラインストレージサービスである
ことを特徴とする暗号文検索システム。
The ciphertext search system according to claim 1,
The search information storage device and the encrypted information storage device are online storage services connected to the search information generation device, the search information storage device, the search request device, and the search execution device via the Internet. Ciphertext search system characterized by
請求項1または2に記載の暗号文検索システムであって、
rを前記登録キーワードWの最大文字数、wを前記登録キーワードWのi番目の文字、tを前記検索キーワードWの最大文字数、sを前記検索キーワードWのi番目の文字、rdi,j(1≦i,j≦r)を乱数として、
前記検索インデックス生成部は、属性ベクトルxと述語ベクトルvの内積が0であることを条件として暗号文を復号する内積述語暗号方式により、前記登録キーワードWから前記属性ベクトルxを生成し、当該属性ベクトルxと前記公開鍵pkを用いて、前記情報Rを暗号化することで前記情報Rを生成し、
前記検索クエリ生成部は、前記内積述語暗号方式により、前記検索キーワードWから前記述語ベクトルvを生成し、当該述語ベクトルvと前記マスタ秘密鍵skを用いて、前記検索クエリkを生成し、
前記検索結果判定部は、前記内積述語暗号方式により、前記検索クエリkを用いて、前記情報Rを復号することで前記復号結果Rを生成し、
前記属性ベクトルxは、r個の属性値変数X,…,Xからなる次数r次以下の単項式をすべて辞書式順序で並べた順に各成分とした変数ベクトルX r,rに、前記登録キーワードの各文字wを、
Figure 2013156675

と設定することで生成され、
前記述語ベクトルvは、前記内積述語暗号方式の述語論理を表す述語多項式の係数を、前記変数ベクトルX r,rの成分に対応する順に設定することで生成され、
前記述語多項式は、検索方式が完全一致検索の場合には、
Figure 2013156675

で表され、
前記述語多項式は、検索方式が前方一致検索の場合には、
Figure 2013156675

で表され、
前記述語多項式は、検索方式が後方一致検索の場合には、
Figure 2013156675

で表され、
前記述語多項式は、検索方式が部分一致検索の場合には、
Figure 2013156675

で表される
ことを特徴とする暗号文検索システム。
The ciphertext search system according to claim 1 or 2,
r is the maximum number of characters of the registered keyword W T , w i is the i th character of the registered keyword W T , t is the maximum number of characters of the search keyword W Q , and s i is the i th character of the search keyword W Q , Let rd i, j (1 ≦ i, j ≦ r) be a random number,
The search index generation unit, the inner product predicate encryption scheme to decrypt the ciphertext condition that the attribute vector x and the predicate vector v of the inner product is 0, generating the attribute vectors x from the keywords W T And generating the information R 2 by encrypting the information R 1 using the attribute vector x and the public key pk,
The search query generation unit generates a previous description word vector v from the search keyword W Q by the inner product predicate encryption method, and uses the predicate vector v and the master secret key sk to search the search query k *. Produces
The search result determination unit generates the decryption result R by decrypting the information R 2 using the search query k * by the inner product predicate encryption method,
The attribute vector x is a variable vector X r, r having components as components in the order in which all mononomials of the order r order or less composed of r attribute value variables X 1 ,..., X r are arranged in lexicographic order. Each character w i of the registered keyword is
Figure 2013156675

Is generated by setting
The predescription vector v is generated by setting the coefficients of the predicate polynomial representing the predicate logic of the inner product predicate cryptosystem in the order corresponding to the components of the variable vector X r, r ,
The predescriptor polynomial is used when the search method is exact match search.
Figure 2013156675

Represented by
The predescriptor polynomial is used when the search method is a prefix search.
Figure 2013156675

Represented by
When the search method is a backward match search,
Figure 2013156675

Represented by
The predescriptor polynomial is used when the search method is partial match search.
Figure 2013156675

A ciphertext search system characterized by the following:
請求項1または2に記載の暗号文検索システムであって、
^はべき乗を表し、Sを鍵シード空間、Wをキーワード空間、G,Gを位数pの巡回群、gを巡回群Gの生成元、eをG×G→Gであるペアリング関数、hσをS×W→Gである鍵付きハッシュ関数、σを鍵付きハッシュ関数hσのランダムシード、x,ζを元の数がpである有限体F からあらかじめランダムに選択された整数であるとして、
前記検索実行装置は、
属性ベクトルxと述語ベクトルvの内積が0であることを条件として暗号文を復号する内積述語暗号方式により、ユーザ識別子Uと当該ユーザ識別子Uに対応する属性情報AFLから前記述語ベクトルvを生成し、当該述語ベクトルvと前記公開鍵pkと前記マスタ秘密鍵skを用いて、検索秘密鍵skを生成し、乱数xを前記有限体F からランダムに選択して補完鍵ck=g^x/xを計算し、当該検索秘密鍵skと乱数xを前記検索情報生成装置と前記検索要求装置へ送信するユーザ登録部と、
前記検索情報生成装置から受信したハッシュ値Hを用いて、係数f=e(H,ck)を計算し、当該係数fを当該検索情報生成装置へ送信する係数算出部と、
をさらに備え、
前記検索情報生成装置は、
前記登録キーワードWと前記有限体F からランダムに選択した乱数rを用いて、前記ハッシュ値H=(hσ(W))^rを計算し、当該ハッシュ値Hを前記検索実行装置へ送信するハッシュ値算出部と、
をさらに備え、
前記検索インデックス生成部は、前記検索実行装置から受信した係数fと前記巡回群Gからランダムに選択した乱数rを用いて係数r’=rfを計算し、前記乱数rを前記情報Rとして設定し、前記内積述語暗号方式により、前記登録キーワードWと当該登録キーワードWを利用した検索を可能とするユーザの情報を含む検索権限情報ACから前記属性ベクトルxを生成し、当該属性ベクトルxと前記公開鍵pkを用いて、前記情報Rを暗号化することで(T,…,T)を生成し、前記gと前記ζを用いてτ=gζを計算し、当該(T,…,T)と当該τと前記ハッシュ値Hを一組として前記情報R:=(T,…,T,τ,H)を生成し、
前記検索クエリ生成部は、前記内積述語暗号方式により、前記検索キーワードWから前記述語ベクトルvを生成し、当該述語ベクトルvと前記公開鍵pkと前記検索秘密鍵skを用いて、前記検索クエリk:=(Q,…,Q)を生成し、
前記検索結果判定部は、前記検索クエリk:=(Q,…,Q)を用いて、すべての検索インデックスCそれぞれについて、当該検索インデックスCに含まれる前記情報R:=(T,…,T,τ,H)が、
Figure 2013156675

を満たすか否かを判定する
ことを特徴とする暗号文検索システム。
The ciphertext search system according to claim 1 or 2,
^ Represents a power, S is a key seed space, W is a keyword space, G 1 and G 2 are cyclic groups of order p, g is a generator of the cyclic group G 1 , and e is G 1 × G 1 → G 2 A pairing function, h σ is a keyed hash function of S × W → G 1 , σ is a random seed of the keyed hash function h σ , and x, ζ are finite fields F p * whose original number is p As an integer selected in advance from
The search execution device includes:
The inner product predicate encryption scheme attribute vector x and the predicate vector v inner product to decrypt the ciphertext the proviso that 0, said predicate vector from attribute information AFL U corresponding to the user identifier U and the user identifier U v is generated, a search secret key sk U is generated using the predicate vector v , the public key pk and the master secret key sk, and a random number x U is randomly selected from the finite field F p *. A user registration unit that calculates a complementary key ck U = g ^ x / x U and transmits the search secret key sk U and the random number x U to the search information generation device and the search request device;
A coefficient calculation unit that calculates a coefficient f = e (H, ck U ) using the hash value H received from the search information generation apparatus, and transmits the coefficient f to the search information generation apparatus;
Further comprising
The search information generation device includes:
Using the random number r w randomly selected from the registered keyword W T and the finite field F p * , the hash value H = (h σ (W T )) ^ r w x U is calculated, and the hash value H A hash value calculation unit for transmitting to the search execution device;
Further comprising
The search index generation unit, the search execution device coefficient f received from from the cyclic group G 2 by using the random number r randomly selected to calculate the coefficients r '= rf, the random number r as the information R 1 set, the by inner product predicate encryption scheme to generate the keywords W T and the keywords W from said search authority information AC including information of a user to allow search using the T attribute vector x →, the attribute (T 1 ,..., T N ) is generated by encrypting the information R 1 using the vector x and the public key pk, and τ = g ζ is calculated using the g and the ζ. , (T 1 ,..., T N ), τ and the hash value H as a set to generate the information R 2 : = (T 1 ,..., T N , τ, H),
The search query generation unit generates a previous description word vector v from the search keyword W Q by the inner product predicate encryption method, and uses the predicate vector v , the public key pk, and the search secret key sk U. , The search query k * : = (Q 1 ,..., Q N )
The search result determination unit, the search query k *: = (Q 1, ..., Q N) using, for all the search index C 2 respectively, the information R 2 contained in the search index C 2: = (T 1 ,..., T N , τ, H) is
Figure 2013156675

A ciphertext search system characterized by determining whether or not the above is satisfied.
請求項4に記載の暗号文検索システムであって、
^はべき乗を表し、tを検索インデックスCの総数、jを検索インデックスCの番号、K(=logt+1)をバッチタグBTagの階層数、k(0≦k≦K−1)をバッチタグBTagの階層の番号、M(=2^(logt−k))をバッチタグBTagの各階層における要素数、m(1≦m≦M)をバッチタグBTagの各階層における要素の番号であるとして、
前記検索実行装置は、
前記検索インデックスC2(j):=(T(j,1),…,T(j,N),τ(j),H(j),r(j))から、K階層の2分木構造であるバッチタグBTag(k,m):=(BT(k,m,1),…,BT(k,m,N),Bτ(k,m),BH(k,m),Br(k,m))を、
階層0のバッチタグBTag(0,m)であれば、
BT(0,m,i)=T(j,i)
Bτ(0,m)=τ(j)
BH(0,m)=H(j)
Br(0,m)=r(j)
(ただし、1≦i≦N)
として生成し、
その他のバッチタグBTag(k,m)であれば、
BT(k,m,i)=BT(k−1,2m−1,i)+BT(k−1,2m,i)
Bτ(k,m)=Bτ(k−1,2m−1)Bτ(k−1,2m)
BH(k,m)=BH(k−1,2m−1)+BH(k−1,2m)
Br(k,m)=Br(k−1,2m−1)Br(k−1,2m)
(ただし、1≦i≦N)
として生成するバッチタグ生成部
をさらに備え、
前記検索クエリ生成部は、前記内積述語暗号方式により、前記キーワード空間Wから前記検索キーワードWを除いた集合である否定キーワードW ̄から前記述語ベクトルvを生成し、当該述語ベクトルvと前記公開鍵pkと前記検索秘密鍵skを用いて、前記検索クエリk:=(Q ̄,…,Q ̄)を生成し、
前記検索結果判定部は、前記検索クエリk:=(Q ̄,…,Q ̄)を用いて、階層(K−1)から階層0までの階層ごとに、前記バッチタグBTag(k,m)それぞれについて、
Figure 2013156675

を満たすか否かを判定する
ことを特徴とする暗号文検索システム。
The ciphertext search system according to claim 4,
^ Represents a power, t is the total number of search indexes C 2 , j is the number of the search index C 2 , K (= log 2 t + 1) is the number of layers of the batch tag BTag, and k (0 ≦ k ≦ K−1) is the batch tag BTag hierarchy number, M (= 2 ^ (log 2 tk)) is the number of elements in each layer of the batch tag BTag, and m (1 ≦ m ≦ M) is the element number in each layer of the batch tag BTag. ,
The search execution device includes:
From the search index C 2 (j) : = (T (j, 1) ,..., T (j, N) , τ (j) , H (j) , r (j) ), a binary tree of the K hierarchy Batch tag BTag (k, m) : = (BT (k, m, 1) ,..., BT (k, m, N) , Bτ (k, m) , BH (k, m) , Br (k , M) )
If it is a batch tag BTag (0, m) of level 0,
BT (0, m, i) = T (j, i) ,
(0, m) = τ (j) ,
BH (0, m) = H (j) ,
Br (0, m) = r (j)
(However, 1 ≦ i ≦ N)
Produces as
For other batch tags BTag (k, m)
BT (k, m, i) = BT (k-1,2m-1, i) + BT (k-1,2m, i) ,
(k, m) = Bτ (k−1,2m−1)(k−1,2m) ,
BH (k, m) = BH (k-1, 2m-1) + BH (k-1, 2m) ,
Br (k, m) = Br (k-1, 2m-1) Br (k- 1, 2m)
(However, 1 ≦ i ≦ N)
It further includes a batch tag generator that generates as
The search query generation unit generates a predescription vector v from a negative keyword W Qあ る that is a set obtained by removing the search keyword W Q from the keyword space W by the inner product predicate encryption method, and the predicate vector v and the public key pk and the search secret key sk U are used to generate the search query k * : = (Q 1  ̄,..., Q N  ̄)
The search result determination unit uses the search query k * : = (Q 1  ̄,..., Q N  ̄) and uses the batch tag BTag (k, m) For each
Figure 2013156675

A ciphertext search system characterized by determining whether or not the above is satisfied.
請求項4に記載の暗号文検索システムであって、
^はべき乗を表し、tを検索インデックスCの総数、jを検索インデックスCの番号、K(=logt+1)をバッチタグBTagの階層数、k(0≦k≦K−1)をバッチタグBTagの階層の番号、M(=2^(logt−k))をバッチタグBTagの各階層における要素数、m(1≦m≦M)をバッチタグBTagの各階層における要素の番号であるとして、
前記検索情報保存装置は、
前記検索インデックスC2(j):=(T(j,1),…,T(j,N),τ(j),H(j),r(j))から生成したK階層の2分木構造であるバッチタグBTag(k,m):=(BT(k,m,1),…,BT(k,m,N),Bτ(k,m),BH(k,m),Br(k,m))を、さらに記憶しており、
前記バッチタグBTag(k,m):=(BT(k,m,1),…,BT(k,m,N),Bτ(k,m),BH(k,m),Br(k,m))は、
階層0のバッチタグBTag(0,m)であれば、
BT(0,m,i)=T(j,i)
Bτ(0,m)=τ(j)
BH(0,m)=H(j)
Br(0,m)=r(j)
(ただし、1≦i≦N)
として生成され、
その他のバッチタグBTag(k,m)であれば、
BT(k,m,i)=BT(k−1,2m−1,i)+BT(k−1,2m,i)
Bτ(k,m)=Bτ(k−1,2m−1)Bτ(k−1,2m)
BH(k,m)=BH(k−1,2m−1)+BH(k−1,2m)
Br(k,m)=Br(k−1,2m−1)Br(k−1,2m)
(ただし、1≦i≦N)
として生成され、
前記検索インデックス取得部は、前記バッチタグBTag(k,m)を前記検索情報保存装置から取得し、
前記検索クエリ生成部は、前記内積述語暗号方式により、前記キーワード空間Wから前記検索キーワードWを除いた集合である否定キーワードW ̄から前記述語ベクトルvを生成し、当該述語ベクトルvと前記公開鍵pkと前記検索秘密鍵skを用いて、前記検索クエリk:=(Q ̄,…,Q ̄)を生成し、
前記検索結果判定部は、前記検索クエリk:=(Q ̄,…,Q ̄)を用いて、階層(K−1)から階層0までの階層ごとに、前記バッチタグBTag(k,m)それぞれについて、
Figure 2013156675

を満たすか否かを判定する
ことを特徴とする暗号文検索システム。
The ciphertext search system according to claim 4,
^ Represents a power, t is the total number of search indexes C 2 , j is the number of the search index C 2 , K (= log 2 t + 1) is the number of layers of the batch tag BTag, and k (0 ≦ k ≦ K−1) is the batch tag BTag hierarchy number, M (= 2 ^ (log 2 tk)) is the number of elements in each layer of the batch tag BTag, and m (1 ≦ m ≦ M) is the element number in each layer of the batch tag BTag. ,
The search information storage device includes:
Bisect of the K hierarchy generated from the search index C 2 (j) : = (T (j, 1) ,..., T (j, N) , τ (j) , H (j) , r (j) ) Batch tag BTag (k, m) : = (BT (k, m, 1) ,..., BT (k, m, N) , Bτ (k, m) , BH (k, m) , Br ( k, m) )
The batch tags BTag (k, m) : = (BT (k, m, 1) ,..., BT (k, m, N) , Bτ (k, m) , BH (k, m) , Br (k, m ) )
If it is a batch tag BTag (0, m) of level 0,
BT (0, m, i) = T (j, i) ,
(0, m) = τ (j) ,
BH (0, m) = H (j) ,
Br (0, m) = r (j)
(However, 1 ≦ i ≦ N)
Is generated as
For other batch tags BTag (k, m)
BT (k, m, i) = BT (k-1,2m-1, i) + BT (k-1,2m, i) ,
(k, m) = Bτ (k−1,2m−1)(k−1,2m) ,
BH (k, m) = BH (k-1, 2m-1) + BH (k-1, 2m) ,
Br (k, m) = Br (k-1, 2m-1) Br (k- 1, 2m)
(However, 1 ≦ i ≦ N)
Is generated as
The search index acquisition unit acquires the batch tag BTag (k, m) from the search information storage device,
The search query generation unit generates a predescription vector v from a negative keyword W Qあ る that is a set obtained by removing the search keyword W Q from the keyword space W by the inner product predicate encryption method, and the predicate vector v and the public key pk and the search secret key sk U are used to generate the search query k * : = (Q 1  ̄,..., Q N  ̄)
The search result determination unit uses the search query k * : = (Q 1  ̄,..., Q N  ̄) and uses the batch tag BTag (k, m) For each
Figure 2013156675

A ciphertext search system characterized by determining whether or not the above is satisfied.
検索インデックスCを記憶する検索情報保存装置と、文字列を含む平文Mを暗号化した暗号文Cを記憶する暗号情報保存装置と、ネットワークを介して接続された検索情報生成装置であって、
任意のビット列からなる情報Rを生成し、当該情報Rを、あらかじめ生成された公開鍵pkと、前記平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成し、前記暗号文Cを一意に識別するための情報Rを生成し、当該情報Rと当該情報Rと当該情報Rを一組とした前記検索インデックスC:=(R,R,R)を前記検索情報保存装置へ送信する検索インデックス生成部を備える
ことを特徴とする検索情報生成装置。
Search and index C 2 stores retrieval information storage apparatus, a retrieval information generating apparatus connected via the encryption information storage unit that stores a ciphertext C 1 encrypted, the network plaintext M containing the string ,
It generates information R 1 comprising an arbitrary bit string, the information R 1, the public key pk that is previously generated by encrypting using the keywords W T is a keyword associated with the plaintext M, information R 2 is generated, information R 3 for uniquely identifying the ciphertext C 1 is generated, and the search index C 2 including the information R 1 , the information R 2, and the information R 3 as a set: A search information generation device comprising: a search index generation unit that transmits = (R 1 , R 2 , R 3 ) to the search information storage device.
検索要求装置と、検索インデックスCを記憶する検索情報保存装置と、ネットワークを介して接続された検索実行装置であって、
前記検索インデックスCを前記検索情報保存装置から取得する検索インデックス取得部と、
前記検索インデックスCに含まれる情報Rを検索クエリkを用いて復号することで復号結果Rを生成し、当該復号結果Rと当該検索インデックスCに含まれる情報Rが一致するか否かを判定する検索結果判定部と、
前記検索結果判定部により一致すると判定された検索インデックスCから、少なくとも前記情報Rを抽出して検索結果Cを生成し、当該検索結果Cを前記検索要求装置へ送信する検索結果送信部と、
を備えることを特徴とする検索実行装置。
A retrieval request unit, a retrieval information storage device for storing search index C 2, a connected search execution device via the network,
A search index acquiring unit that acquires the search index C 2 from said search information storage device,
Or the search information R 2 included in the index C 2 search query k * was used to generate a decryption result R by decrypting the information R 1 included in the decryption result R and the search index C 2 matches A search result determination unit for determining whether or not,
The search result determination unit from the search index C 2 that is determined to match with, generates a search result C 3 to extract at least the information R 3, search result transmission for transmitting the search result C 3 to the retrieval request device And
A search execution device comprising:
検索実行装置と、検索インデックスCを記憶する検索情報保存装置と、文字列を含む平文Mを暗号化した暗号文Cを記憶する暗号情報保存装置と、ネットワークを介して接続された検索要求装置であって、
検索キーワードWと、あらかじめ生成されたマスタ秘密鍵skを用いて、前記検索インデックスCに含まれる情報Rを復号するための秘密鍵である検索クエリkを生成し、前記検索実行装置へ送信する検索クエリ生成部と、
前記検索実行装置から受信した検索結果Cに含まれる情報Rにより識別される前記暗号文Cを前記暗号情報保存装置から取得する暗号文取得部と、
を備えることを特徴とする検索要求装置。
A retrieval execution unit, a search information storage device for storing search index C 2, and the encryption information storage unit that stores a ciphertext C 1 obtained by encrypting plaintext M containing the string, search requests that are connected via a network A device,
A search keyword W Q, using the master secret key sk that is previously generated, the generating the search index C 2 is a secret key for decoding the information R 2 included in the search query k *, the search execution device A search query generator to send to
A ciphertext acquisition unit that acquires the ciphertext C 1 identified by the information R 3 included in the search result C 3 received from the search execution device, from the cipher information storage device;
A search requesting device comprising:
任意のビット列からなる情報Rを生成し、当該情報Rを、あらかじめ生成された公開鍵pkと、文字列を含む平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成し、前記平文Mを暗号化した暗号文Cを一意に識別するための情報Rを生成し、当該情報Rと当該情報Rと当該情報Rを一組とした検索インデックスC:=(R,R,R)を検索情報保存装置へ送信する検索インデックス生成ステップと、
検索キーワードWと、前記公開鍵pkと対になるマスタ秘密鍵skを用いて、前記情報Rを復号するための秘密鍵である検索クエリkを生成する検索クエリ生成ステップと、
前記検索インデックスCを前記検索情報保存装置から取得する検索インデックス取得ステップと、
前記検索インデックスCに含まれる前記情報Rを前記検索クエリkを用いて復号することで復号結果Rを生成し、当該復号結果Rと当該検索インデックスCに含まれる前記情報Rが一致するか否かを判定する検索結果判定ステップと、
前記検索結果判定ステップにより一致すると判定された検索インデックスCから、少なくとも前記情報Rを抽出して検索結果Cを生成する検索結果送信ステップと、
前記検索結果Cに含まれる前記情報Rにより識別される前記暗号文Cを前記暗号情報保存装置から取得する暗号文取得ステップと、
を含む暗号文検索方法。
Generates information R 1 comprising an arbitrary bit string, the information R 1, the public key pk that are generated in advance, be encrypted with the keywords W T is a keyword associated with the plaintext M containing the string Then, information R 2 is generated, information R 3 for uniquely identifying the ciphertext C 1 obtained by encrypting the plaintext M is generated, and the information R 1 , the information R 2, and the information R 3 are combined. A search index generation step of transmitting a set search index C 2 : = (R 1 , R 2 , R 3 ) to the search information storage device;
A search keyword W Q, using the master secret key sk to be the public key pk paired with the search query generation step of generating a search query k * is the private key for decrypting the information R 2,
A search index acquiring step of acquiring the search index C 2 from said search information storage device,
The information R 2 included in the search index C 2 is decoded using the search query k * to generate a decoding result R, and the decoding result R and the information R 1 included in the search index C 2 are A search result determination step for determining whether or not they match,
A search result transmission step of extracting at least the information R 3 from the search index C 2 determined to match by the search result determination step and generating the search result C 3 ;
A ciphertext acquisition step of acquiring the ciphertext C 1 identified by the information R 3 included in the search result C 3 from the cipher information storage device;
Ciphertext search method including
任意のビット列からなる情報Rを生成し、当該情報Rを、あらかじめ生成された公開鍵pkと、文字列を含む平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成し、前記平文Mを暗号化した暗号文Cを一意に識別するための情報Rを生成し、当該情報Rと当該情報Rと当該情報Rを一組とした検索インデックスC:=(R,R,R)を検索情報保存装置へ送信する検索インデックス生成ステップ
を含む検索情報生成方法。
Generates information R 1 comprising an arbitrary bit string, the information R 1, the public key pk that are generated in advance, be encrypted with the keywords W T is a keyword associated with the plaintext M containing the string Then, information R 2 is generated, information R 3 for uniquely identifying the ciphertext C 1 obtained by encrypting the plaintext M is generated, and the information R 1 , the information R 2, and the information R 3 are combined. A search information generation method including a search index generation step of transmitting a set search index C 2 : = (R 1 , R 2 , R 3 ) to a search information storage device.
検索インデックスCを検索情報保存装置から取得する検索インデックス取得ステップと、
前記検索インデックスCに含まれる情報Rを検索クエリkを用いて復号することで復号結果Rを生成し、当該復号結果Rと当該検索インデックスCに含まれる情報Rが一致するか否かを判定する検索結果判定ステップと、
前記検索結果判定ステップにより一致すると判定された検索インデックスCから、少なくとも前記情報Rを抽出して検索結果Cを生成する検索結果送信ステップと、
を含む検索実行方法。
A search index obtaining step of obtaining search index C 2 from the search information storage device,
Or the search information R 2 included in the index C 2 search query k * was used to generate a decryption result R by decrypting the information R 1 included in the decryption result R and the search index C 2 matches A search result determination step for determining whether or not,
A search result transmission step of extracting at least the information R 3 from the search index C 2 determined to match by the search result determination step and generating the search result C 3 ;
Search execution method including
検索キーワードWと、あらかじめ生成されたマスタ秘密鍵skを用いて、検索インデックスCに含まれる情報Rを復号するための秘密鍵である検索クエリkを生成する検索クエリ生成ステップと、
検索結果Cに含まれる情報Rにより識別される暗号文Cを暗号情報保存装置から取得する暗号文取得ステップと、
を含む検索要求方法。
A search query generation step for generating a search query k * , which is a secret key for decrypting the information R 2 included in the search index C 2 , using the search keyword W Q and the master secret key sk generated in advance;
A ciphertext acquisition step of acquiring the ciphertext C 1 identified by the information R 3 included in the search result C 3 from the cipher information storage device;
Search request method including
請求項7に記載の検索情報生成装置、請求項8に記載の検索実行装置、または請求項9に記載の検索要求装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the search information generation device according to claim 7, the search execution device according to claim 8, or the search request device according to claim 9.
JP2012014281A 2012-01-26 2012-01-26 Ciphertext search system, search information generation device, search execution device, search request device, ciphertext search method, search information generation method, search execution method, search request method, and program Active JP5670365B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012014281A JP5670365B2 (en) 2012-01-26 2012-01-26 Ciphertext search system, search information generation device, search execution device, search request device, ciphertext search method, search information generation method, search execution method, search request method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012014281A JP5670365B2 (en) 2012-01-26 2012-01-26 Ciphertext search system, search information generation device, search execution device, search request device, ciphertext search method, search information generation method, search execution method, search request method, and program

Publications (2)

Publication Number Publication Date
JP2013156675A true JP2013156675A (en) 2013-08-15
JP5670365B2 JP5670365B2 (en) 2015-02-18

Family

ID=49051828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012014281A Active JP5670365B2 (en) 2012-01-26 2012-01-26 Ciphertext search system, search information generation device, search execution device, search request device, ciphertext search method, search information generation method, search execution method, search request method, and program

Country Status (1)

Country Link
JP (1) JP5670365B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015108052A1 (en) * 2014-01-16 2015-07-23 株式会社日立ソリューションズ Retrievable cryptograph processing system and retrievable cryptograph processing method
JP5969681B1 (en) * 2015-10-30 2016-08-17 株式会社第一コンピュータサービス Confidential information management system
CN106302449A (en) * 2016-08-15 2017-01-04 中国科学院信息工程研究所 A kind of ciphertext storage cloud service method open with searching ciphertext and system
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method
CN111858826A (en) * 2020-07-30 2020-10-30 深圳前海微众银行股份有限公司 Retrieval method, system, terminal device and storage medium of space-time trajectory
CN112042150A (en) * 2018-05-08 2020-12-04 三菱电机株式会社 Registration device, server device, confidential search system, confidential search method, registration program, and server program
CN114826575A (en) * 2022-04-19 2022-07-29 西安电子科技大学 Single keyword searchable encryption method based on inner product predicates in cloud

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030123671A1 (en) * 2001-12-28 2003-07-03 International Business Machines Corporation Relational database management encryption system
US20110004607A1 (en) * 2009-05-28 2011-01-06 Microsoft Corporation Techniques for representing keywords in an encrypted search index to prevent histogram-based attacks
JP2011147074A (en) * 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Keyword search system for encrypted information, keyword search method, search requesting device, search proxy device, program, and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030123671A1 (en) * 2001-12-28 2003-07-03 International Business Machines Corporation Relational database management encryption system
US20110004607A1 (en) * 2009-05-28 2011-01-06 Microsoft Corporation Techniques for representing keywords in an encrypted search index to prevent histogram-based attacks
JP2011147074A (en) * 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Keyword search system for encrypted information, keyword search method, search requesting device, search proxy device, program, and recording medium

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSNG201001087035; 吉田麗生,外2名: '複数ユーザーで利用可能な内積述語検索可能暗号' コンピュータセキュリティシンポジウム2010 論文集 [第二分冊] 第2010巻,第9号, 20101012, p.687-692, 一般社団法人情報処理学会 *
CSNJ201010083147; 吉田麗生,外2名: '部分一致検索可能暗号' 2010年 暗号と情報セキュリティシンポジウム SCIS2010 [CD-ROM] , 20100119, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
CSNJ201110015310; 吉田麗生,外3名: '内積述語検索可能暗号のためのバッチ検索アルゴリズム' 2011年 暗号と情報セキュリティシンポジウム SCIS2011 [CD-ROM] 4C2 検索可能暗号, 20110128, 4C2-4, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN6013050993; 吉田麗生,外2名: '部分一致検索可能暗号' 2010年 暗号と情報セキュリティシンポジウム SCIS2010 [CD-ROM] , 20100119, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN6013051261; 吉田麗生,外2名: '複数ユーザーで利用可能な内積述語検索可能暗号' コンピュータセキュリティシンポジウム2010 論文集 [第二分冊] 第2010巻,第9号, 20101012, p.687-692, 一般社団法人情報処理学会 *
JPN6014012245; 吉田麗生,外3名: '内積述語検索可能暗号のためのバッチ検索アルゴリズム' 2011年 暗号と情報セキュリティシンポジウム SCIS2011 [CD-ROM] 4C2 検索可能暗号, 20110128, 4C2-4, 電子情報通信学会情報セキュリティ研究専門委員会 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015108052A1 (en) * 2014-01-16 2015-07-23 株式会社日立ソリューションズ Retrievable cryptograph processing system and retrievable cryptograph processing method
JP2015135541A (en) * 2014-01-16 2015-07-27 株式会社日立ソリューションズ Retrievable encryption processing system and retrievable encryption processing method
US10489604B2 (en) 2014-01-16 2019-11-26 Hitachi, Ltd. Searchable encryption processing system and searchable encryption processing method
JP5969681B1 (en) * 2015-10-30 2016-08-17 株式会社第一コンピュータサービス Confidential information management system
JP2017085521A (en) * 2015-10-30 2017-05-18 株式会社第一コンピュータサービス Secret information management system
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method
CN106302449A (en) * 2016-08-15 2017-01-04 中国科学院信息工程研究所 A kind of ciphertext storage cloud service method open with searching ciphertext and system
CN106302449B (en) * 2016-08-15 2019-10-11 中国科学院信息工程研究所 A kind of storage of ciphertext and the open cloud service method of searching ciphertext and system
CN112042150A (en) * 2018-05-08 2020-12-04 三菱电机株式会社 Registration device, server device, confidential search system, confidential search method, registration program, and server program
CN112042150B (en) * 2018-05-08 2024-02-23 三菱电机株式会社 Registration device, server device, concealment search system, concealment search method, and computer-readable recording medium
CN111858826A (en) * 2020-07-30 2020-10-30 深圳前海微众银行股份有限公司 Retrieval method, system, terminal device and storage medium of space-time trajectory
CN114826575A (en) * 2022-04-19 2022-07-29 西安电子科技大学 Single keyword searchable encryption method based on inner product predicates in cloud

Also Published As

Publication number Publication date
JP5670365B2 (en) 2015-02-18

Similar Documents

Publication Publication Date Title
US9111106B2 (en) Data processing apparatus and data storage apparatus
JP5670365B2 (en) Ciphertext search system, search information generation device, search execution device, search request device, ciphertext search method, search information generation method, search execution method, search request method, and program
JP5562687B2 (en) Securing communications sent by a first user to a second user
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
JP6770075B2 (en) Encrypted message search method, message sending / receiving system, terminal, program
JP6363032B2 (en) Key change direction control system and key change direction control method
JP5432736B2 (en) Keyword search system for encrypted information, keyword search method, search request device, search agent device, program, recording medium
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
JP6556955B2 (en) Communication terminal, server device, program
Modi et al. Securing healthcare information over cloud using hybrid approach
Cheng et al. Public key authenticated encryption with keyword search from LWE
JP6632780B2 (en) Data processing device, data processing method, and data processing program
Chen et al. Password-authenticated searchable encryption
CN114142996B (en) Searchable encryption method based on SM9 cryptographic algorithm
KR101140576B1 (en) Multi?user search system and method of encrypted document
Yan et al. Secure and efficient big data deduplication in fog computing
KR20100003093A (en) Method of producing searchable keyword encryption based on public key for minimizing data size of searchable keyword encryption and method of searching data based on public key through that
JP2019125956A (en) Key exchange method, key exchange system, key exchange server device, communication device, and program
WO2022153394A1 (en) Secret search system and secret search method
JP6320943B2 (en) Key sharing device, key sharing system, key sharing method, and program
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program
WO2015107561A1 (en) Search system, search method, and search program
Kuchta et al. Public key encryption with distributed keyword search
JP6381861B2 (en) Registration destination determination device, registration device, secret search system, registration destination determination method, and registration destination determination program
JP7217836B1 (en) Data management device, confidential search system, confidential search method, and confidential search program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140926

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: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141217

R150 Certificate of patent or registration of utility model

Ref document number: 5670365

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150