JP5670365B2 - 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム - Google Patents

暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム Download PDF

Info

Publication number
JP5670365B2
JP5670365B2 JP2012014281A JP2012014281A JP5670365B2 JP 5670365 B2 JP5670365 B2 JP 5670365B2 JP 2012014281 A JP2012014281 A JP 2012014281A JP 2012014281 A JP2012014281 A JP 2012014281A JP 5670365 B2 JP5670365 B2 JP 5670365B2
Authority
JP
Japan
Prior art keywords
search
information
ciphertext
index
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012014281A
Other languages
English (en)
Other versions
JP2013156675A (ja
Inventor
麗生 吉田
麗生 吉田
鉄太郎 小林
鉄太郎 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2013156675A publication Critical patent/JP2013156675A/ja
Application granted granted Critical
Publication of JP5670365B2 publication Critical patent/JP5670365B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

この発明は、例えばクラウドストレージなどに保存されている暗号化された情報に対し暗号学的に安全にキーワード検索を行うことができる暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラムに関する。
近年、コンピュータの資源や機能(例えばネットワーク/サーバー/ストレージ/アプリケーション/サービスなど)を、例えばインターネットなどのネットワークを介してサービスとして利用する、クラウドコンピューティング(以下、クラウド)と呼ばれるコンピュータの利用形態が拡大している。特にクラウド上のストレージ資源を外部記憶域として情報の保存に利用するサービス提供形態は、クラウドストレージサービスやオンラインストレージサービスと呼ばれている。
クラウド上のオンラインストレージサービスにおける情報保存を、暗号理論を適用することで安全に実現する暗号学的クラウドストレージが提案されている(非特許文献1参照)。非特許文献1に記載の暗号学的クラウドストレージは、クラウド上に保存されたメッセージからの情報漏洩を防ぐ技術、どの文書が検索されたかという情報を除いては漏洩することのない検索技術、文書が改ざんされることなく保存されていることを保証する技術から構成されている。
しかしながら、非特許文献1に記載の暗号学的クラウドストレージでは、共通鍵型の検索可能暗号を利用しているため、検索をするために文書作成者から直接検索クエリを入手しなければならない。したがって、文書作成者と通信することができなければ検索機能を利用することができなくなるという課題があった。
文書作成者と直接通信することなく同等の安全性を確保した検索を実現する方式として、内積述語暗号(非特許文献2参照)を変換した公開鍵型の検索可能暗号である内積述語検索可能暗号が提案されている(非特許文献3、非特許文献4、非特許文献5参照)。公開鍵型の検索可能暗号は、内積述語暗号において、暗号文を検索インデックス、秘密鍵を検索クエリとし、属性を登録キーワード、述語を検索キーワードとした暗号文検索方法である。公開鍵型の検索可能暗号を用いると、文書作成者と通信しなくとも、第三者に何のキーワードで検索しているのかという情報を漏洩することなく暗号文の検索を行うことができる。非特許文献3は、非特許文献2に記載の階層型内積述語暗号を利用して部分一致検索を可能とした内積述語検索可能暗号である。非特許文献4は、非特許文献2に記載の階層型内積述語暗号を利用して複数ユーザでの利用を可能とした内積述語検索可能暗号である。非特許文献5は、非特許文献2に記載の階層型内積述語暗号においてバッチ検索を可能とすることで効率的な検索処理を実現した内積述語検索可能暗号である。
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. 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, 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.」参照)。
また、従来の暗号文検索システムでは、検索インデックスと暗号文からなる暗号情報を保存する装置と、検索を実行する装置が同一の装置として構成されていた。このため、検索処理量の増大に対応するために検索代行装置を増設する際には、追加する検索代行装置それぞれにすべての暗号情報を記憶させる必要があり、システム全体として必要とするストレージの容量が増大するという課題があった。
この発明はこのような点に鑑みてなされたものであり、辞書攻撃による検索キーワードの推定を防止し、かつ検索処理量の増大に対して必要とするストレージ容量を抑制した暗号文検索システム、暗号文検索方法、検索情報生成装置、検索実行装置、検索要求装置、およびプログラムを提供することを目的とする。
この発明の暗号文検索システムは、検索情報生成装置と検索要求装置と検索実行装置を含む。この発明の暗号文検索システムは、検索情報保存装置に記憶された検索インデックス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を検索要求装置へ送信する。
この発明の暗号文検索システムによれば、検索クエリが暗号情報を保存する装置に漏洩しないため、辞書攻撃による検索キーワードの推定を防止できる。したがって、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する装置と検索を実行する装置を分けて構成するため、検索処理量の増大に対して追加するストレージ容量を抑制することができる。
従来の暗号文検索システムの構成例を示すブロック図。 従来の暗号文検索システムを構成する装置の構成例を示すブロック図。 従来の暗号文検索システムが暗号文を生成・保存する動作例を示す図。 従来の暗号文検索システムが暗号文を検索・復号する動作例を示す図。 実施例1の暗号文検索システムの構成例を示すブロック図。 実施例1の暗号文検索システムを構成する装置の構成例を示すブロック図。 実施例1の暗号文検索システムが暗号文を生成・保存する動作例を示す図。 実施例1の暗号文検索システムが暗号文を検索・復号する動作例を示す図。 実施例1変形例の暗号文検索システムの構成例を示すブロック図。 実施例1変形例の暗号文検索システムを構成する装置の構成例を示すブロック図。 実施例2の暗号文検索システムの構成例を示すブロック図。 実施例2の暗号文検索システムを構成する装置の構成例を示すブロック図。 実施例2の暗号文検索システムが暗号文を生成・保存する動作例を示す図。 実施例2の暗号文検索システムが暗号文を検索・復号する動作例を示す図。 実施例3の暗号文検索システムの構成例を示すブロック図。 実施例3の暗号文検索システムを構成する装置の構成例を示すブロック図。 実施例3の暗号文検索システムが暗号文を検索・復号する動作例を示す図。 実施例3変形例の暗号文検索システムの構成例を示すブロック図。 実施例3変形例の暗号文検索システムを構成する装置の構成例を示すブロック図。 実施例3変形例の暗号文検索システムが暗号文を検索・復号する動作例を示す図。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[従来の暗号文検索システムの説明]
実施例の説明に先立ち、図1〜4を参照して、従来の内積述語検索可能暗号を利用した暗号文検索システム10の動作を詳細に説明する。図1は、従来の暗号文検索システム10の構成を示すブロック図である。図2は、従来の暗号文検索システム10を構成する各装置の構成を示すブロック図である。図3は、従来の暗号文検索システム10が暗号文を生成・保存する動作を示すフローチャートである。図4は、従来の暗号文検索システム10が暗号文を検索・復号する動作を示すフローチャートである。
図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を備える。
図3を参照して、従来の暗号文検索システム10が暗号文を生成・保存する動作を実際に行われる手続きの順に従って説明する。
検索情報生成装置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)。
図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)。
[従来の暗号文検索システムの課題]
検索代行装置800と検索要求装置200は、インターネット1を介して接続される。したがって、検索要求装置200で生成され検索代行装置800へ送信される検索クエリkは、インターネットを経由して送受信されることになる。また、検索代行装置800がクラウド上のオンラインストレージサービスとして構成される場合には、その検索代行装置800は外部の第三者であるサービス提供事業者により提供される。これは、内積述語暗号方式の秘密鍵である検索クエリkが外部の第三者に漏洩することを意味する。同様に検索クエリkにより当たりと判定された暗号文Cがいずれであるかという情報も外部の第三者に漏洩することを意味する。一方で、検索インデックスCは公開鍵pkと任意に指定する登録キーワードWを用いて生成されるため、検索代行装置800が任意のキーワードを指定して検索インデックスを生成することも可能である。したがって、検索代行装置800は、任意のキーワードによって生成した検索インデックスを、入手した検索クエリkで復号することで、その検索クエリkに指定された検索キーワードWを推定することが可能である。さらに、検索代行装置800は、検索によって当たりと判定された暗号文Cの内容を推測することが可能となる。このように、従来の暗号文検索システムにおいては、辞書攻撃に対する脆弱性が存在していた。
また、検索代行装置800は、検索を実行する検索結果判定部810と暗号情報Cを記憶する記憶部890を備えており、記憶部890には検索インデックスCと暗号文Cの組である暗号情報Cがすべて記憶されている。したがって、システム全体として必要とするストレージの容量はすべての暗号情報Cを合わせた容量を検索代行装置800の台数倍した容量となる。このため、検索処理量の増大に対応するために検索代行装置800を増設する際には、追加する検索代行装置800それぞれにすべての暗号情報Cを記憶させる必要があり、必要とするストレージ容量が増大するという課題があった。
本実施例は、部分一致検索が可能な内積述語検索可能暗号に対してこの発明を適用した実施例である。部分一致検索が可能な内積述語検索可能暗号についての詳細は、非特許文献3を参照されたい。
図5〜8を参照して、この発明の実施例1の暗号文検索システム20の動作を詳細に説明する。図5は、本実施例の暗号文検索システム20の構成を示すブロック図である。図6は、本実施例の暗号文検索システム20を構成する装置の構成を示すブロック図である。図7は、本実施例の暗号文検索システム20が暗号文を生成・保存する動作を示すフローチャートである。図8は、本実施例の暗号文検索システム20が暗号文を検索・復号する動作を示すフローチャートである。
図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を備える。
検索情報保存装置400と暗号情報保存装置500は、ファイルサーバやNAS(Network Attached Storage)、SAN(Storage Area Network)などによるファイル共有サービスとして構成してもよいし、クラウド上のオンラインストレージサービスとして提供されてもよい。本実施例ではクラウド上のオンラインストレージサービスとして構成した場合の例を説明する。なお、検索情報保存装置400と暗号情報保存装置500がインターネット1に接続するものとしたのはクラウド上のオンラインストレージサービスとして構成したためであり、検索情報保存装置400と暗号情報保存装置500がファイル共有サービスとして構成した場合には、検索情報保存装置400と暗号情報保存装置500はネットワーク2に接続することができる。後述の実施例2,3についても同様である。
図7を参照して、本実施例の暗号文検索システム20が暗号文を生成・保存する動作を実際に行われる手続きの順に従って説明する。
まず、管理者は、初期化処理として、セキュリティパラメータ1λを入力として、Setupを実行し、公開鍵pkとマスタ秘密鍵skを生成する。マスタ秘密鍵skは検索要求装置201へ送信される。
検索情報生成装置101の暗号文生成部110は、文字列を含む平文Mを暗号化して暗号文Cを生成する(S110)。ここでの暗号方式は限定されない。例えば、共通鍵暗号方式や公開鍵暗号方式が利用できる。共通鍵暗号方式の場合、平文Mは検索情報生成装置101と検索要求装置201の間で共有される共通鍵によって暗号化される。公開鍵暗号方式の場合、平文Mは、例えば公開鍵基盤(PKI)によって公開されている検索要求装置201の公開鍵によって暗号化される。続いて、検索情報生成装置101の暗号文生成部110は、暗号文Cを暗号情報保存装置500へ送信する。
暗号情報保存装置500は、検索情報生成装置101から受信した暗号文Cを暗号文記憶部590へ記憶する(S590)。
検索情報生成装置101の検索インデックス生成部121は、任意のビット列を情報Rとして生成する(S1210)。例えば、情報Rに数値としてゼロを設定する。続いて、検索情報生成装置101の検索インデックス生成部121は、情報Rを、あらかじめ生成された公開鍵pkと登録キーワードWを用いて、内積述語暗号方式により暗号化することにより、情報Rを生成する(S1220)。登録キーワードWは検索対象となるキーワードであり、ユーザにより任意に設定される。例えば、平文Mに含まれる文字列や平文Mの内容を示す単語などを設定することができる。
内積述語暗号方式は、属性ベクトルと述語ベクトルの内積が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を参照されたい。
内積述語検索可能暗号は、上述の内積述語暗号において、暗号文を検索インデックス、秘密鍵を検索クエリとし、属性を登録キーワード、述語を検索キーワードとした暗号文検索方法である。内積述語検索可能暗号では、登録キーワードWを用いて属性ベクトルxを生成し、検索キーワードWを用いて述語ベクトルvを生成する。属性ベクトルxと述語ベクトルvの内積が0であること、すなわち<x,v>=0が登録キーワードと検索キーワードのマッチングを意味する。
属性ベクトルxは、具体的には以下のように生成する。r個の属性値変数X,…,Xに対してd回の論理和を扱うためには、X,…,Xからなる次数d次以下の単項式をすべて用意する。この単項式を、1を含めて辞書式順序で並べた順に各成分としたベクトルを、属性値変数X,…,Xに対するd次の変数ベクトルと呼ぶ。ここでは、変数ベクトルをX r,dと記述する。
r文字の登録キーワードWのi番目の文字をw(1≦i≦r)とする。属性変数Xについて、X=wとする。xが式(1)を満足する場合、属性ベクトルxを変数ベクトルX r,d上の属性ベクトルとも呼ぶ。
Figure 0005670365
rは1≦rを満たす整数の固定値にシステム仕様として設定される。dは1≦d≦rを満たす整数の固定値にシステム仕様として設定される。この実施例では、d=rとする。つまり、述語多項式において登録キーワードの文字数相当の論理和を許容する。
続いて、検索情報生成装置101の検索インデックス生成部121は、暗号文Cを一意に識別するための情報Rを生成する(S1230)。情報Rは暗号文Cを一意に特定できる情報であればどのような情報でもよく、例えば暗号文Cを入力としたハッシュ関数の出力とすることができる。そして、検索情報生成装置101の検索インデックス生成部121は、情報Rと情報Rと情報Rを一組とした検索インデックスC:=(R,R,R)を生成し、検索情報保存装置400へ送信する。
検索情報保存装置400は、検索情報生成装置101から受信した検索インデックスCを検索インデックス記憶部490へ記憶する(S490)。
図8を参照して、本実施例の暗号文検索システム20が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。
検索要求装置201の検索クエリ生成部210は、検索キーワードWから述語ベクトルvを生成する。その述語ベクトルvと公開鍵pkと対になるマスタ秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリkを生成する(S210)。検索キーワードWは検索条件として指定するキーワードであり、ユーザにより任意に指定される。続いて、検索要求装置201の検索クエリ生成部210は、検索クエリkを検索実行装置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上の述語ベクトルとも呼ぶ。
t文字の検索キーワードWのi番目の文字をs(1≦i≦t≦r)とする。変数ベクトルX r,d上の述語多項式p(Xα,…,Xβ)は、検索時に指定される検索方式に対応して決定される。指定できる検索方式には、完全一致検索・前方一致検索・後方一致検索・部分一致検索がある。なお、rdi,j(1≦i,j≦r)は乱数である。
完全一致検索は、任意のi(1≦i≦r)に対してw=sが成立する場合である。完全一致検索における述語多項式p(Xα,…,Xβ)は、式(2)で与えられる。
Figure 0005670365
前方一致検索は、任意のi(1≦i≦t)に対してw=sが成立する場合である。前方一致検索における述語多項式p(Xα,…,Xβ)は、式(3)で与えられる。
Figure 0005670365
後方一致検索は、任意のi(r−t+1≦i≦r)に対してw=sが成立する場合である。後方一致検索における述語多項式p(Xα,…,Xβ)は、式(4)で与えられる。
Figure 0005670365
部分一致検索は、任意のjに対してj≦i≦t+j−1≦rを満たすすべてのiに対してw=sが成立する場合である。部分一致検索における述語多項式p(Xα,…,Xβ)は、式(5)で与えられる。
Figure 0005670365
検索実行装置300の検索インデックス取得部310は、検索情報保存装置400の検索インデックス記憶部490に記憶されている検索インデックスCをダウンロードする(S310)。常にすべての検索インデックスCをダウンロードしてもよいし、使用するネットワーク帯域を抑えるために、前回実行時に利用した検索インデックスCを保持しておき、差分のみをダウンロードしてもよい。
検索実行装置300の検索結果判定部320は、検索要求装置201から受信した検索クエリkを用いて、検索インデックスCそれぞれについて検索が当たりか否かを判定する(S320)。検索が当たりか否かの判定は、すべての検索インデックスCについて、その検索インデックスCに含まれる情報Rを、検索クエリkを用いて、内積述語暗号方式により復号して復号結果Rを生成し、その検索インデックスCに含まれる情報Rと復号結果Rが一致するか否かにより行われる。
検索実行装置300の検索結果送信部330は、検索結果判定部320により当たりと判定された検索インデックスCから暗号文Cを一意に識別する情報Rを抽出して検索結果Cを生成し、検索要求装置201へ送信する(S330)。
検索要求装置201の暗号文取得部220は、受信した検索結果Cに含まれる情報Rを参照し、すべての情報Rについて、その情報Rにより一意に識別される暗号文Cを暗号情報保存装置500からダウンロードする(S220)。
検索要求装置201の復号部290は、暗号情報保存装置500からダウンロードした暗号文Cを復号して平文Mを取得する(S290)。平文Mを復号する情報処理は、S110において検索情報生成装置100の暗号文生成部110が用いた暗号方式に対応する復号アルゴリズムである。例えば、共通鍵暗号方式で暗号化がされていた場合には、平文Mは検索情報生成装置101と検索要求装置201の間で共有される共通鍵によって復号される。公開鍵暗号方式で暗号化がされていた場合には、平文Mは、検索要求装置201の秘密鍵によって復号される。
本実施例はこのような構成とすることにより、部分一致検索が可能な内積述語検索可能暗号において、検索クエリkがクラウドを構成する装置に漏洩することを防止でき、辞書攻撃による検索キーワードの推定を防止できる。そのため、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する暗号情報保存装置と検索を実行する検索実行装置が異なる装置として構成することができるため、システム全体としての検索処理量の増大に対応して検索実行装置を増設する場合に、追加するストレージ容量を抑制することができる。
[変形例]
図9,10を参照して、実施例1の変形例の暗号文検索システム20’の構成を説明する。図9は、本実施例の暗号文検索システム20’の構成を示すブロック図である。図10は、本実施例の暗号文検索システム20’を構成する装置の構成を示すブロック図である。
本実施例の暗号文検索システム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を備える。
したがって、本変形例の暗号文検索システム20’は実施例1の暗号文検索システム20と比較して、検索実行装置300の備えていた検索インデックス取得部310と検索結果判定部320を検索要求装置201’が備えるようにし、検索実行装置300を省略したことが相違点である。
暗号文検索システム全体として必要とされる検索処理量が多くなく、検索要求装置が少数である場合には、本変形例のように構成することでシステム全体の装置数を削減することができる。この変形例の考え方は、後述の実施例2,3にも適用することができる。
本実施例は、複数ユーザで利用が可能な内積述語検索可能暗号に対してこの発明を適用した実施例である。複数ユーザで利用が可能な内積述語検索可能暗号についての詳細は、非特許文献4を参照されたい。
図11〜14を参照して、この発明の実施例2の暗号文検索システム30の動作を詳細に説明する。図11は、本実施例の暗号文検索システム30の構成を示すブロック図である。図12は、本実施例の暗号文検索システム30を構成する装置の構成を示すブロック図である。図13は、本実施例の暗号文検索システム30が暗号文を生成・保存する動作を示すフローチャートである。図14は、本実施例の暗号文検索システム30が暗号文を検索・復号する動作を示すフローチャートである。
図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を備える。
したがって、本実施例の検索情報生成装置102と実施例1の検索情報生成装置101とは、ハッシュ値算出部130を備え、暗号文生成部と検索インデックス生成部の処理が異なることが相違点である。本実施例の検索要求装置202と実施例1の検索要求装置201とは、検索クエリ生成部の処理が異なることが相違点である。本実施例の検索実行装置301と実施例1の検索実行装置300とは、ユーザ登録部340と係数算出部350を備え、検索結果判定部の処理が異なることが相違点である。
以下の説明において、^はべき乗を表し、Sを鍵シード空間、Wをキーワード空間、G,Gを位数pの巡回群、gを巡回群Gの生成元、eをG×G→Gであるペアリング関数、hσをS×W→Gである鍵付きハッシュ関数、σを鍵付きハッシュ関数hσのランダムシード、x,ζを元の数がpである有限体F からあらかじめランダムに選択された整数であるものとする。ペアリング関数は、例えばWeilペアリングやTateペアリングなどである。鍵付きハッシュ関数は、例えばSHA-1やMD5などである。
図13を参照して、本実施例の暗号文検索システム30が暗号文を生成・保存する動作を実際に行われる手続きの順に従って説明する。
まず、管理者は、初期化処理として、セキュリティパラメータ1λを入力として、Setupを2回実行し、それぞれの出力を(公開鍵pk,マスタ秘密鍵sk)、(暗号公開鍵pk,暗号マスタ秘密鍵sk)とする。続いて、管理者は、xとζを有限体F からランダムに選択する。続いて、管理者は、鍵付きハッシュ関数hσのランダムシードσを鍵シード空間Sからランダムに選択する。そして、マスタ秘密鍵skとxは検索実行装置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)。
検索情報生成装置102の暗号文生成部110は、文字列を含む平文Mを暗号化して暗号文Cを生成する(S110)。暗号文Cは、検索権限情報ACから属性ベクトルxを生成する。属性ベクトルxと暗号公開鍵pkを用いて、内積述語暗号方式により暗号化される。検索権限情報ACは、その暗号文Cを復号可能とするユーザのユーザ識別子Uと、そのユーザ識別子Uに対応する属性情報AFLからなる。続いて、検索情報生成装置102の暗号文生成部110は、暗号文Cを暗号情報保存装置500へ送信する。
暗号情報保存装置500は、検索情報生成装置102から受信した暗号文Cを暗号文記憶部590へ記憶する(S590)。
検索情報生成装置102のハッシュ値算出部130は、乱数rを有限体F からランダムに選択し、登録キーワードWを用いて、ハッシュ値H=(hσ(W))^rを計算することでハッシュ値Hを生成する(S130)。続いて、検索情報生成装置102のハッシュ値算出部130は、ハッシュ値Hを検索実行装置301へ送信する。
検索実行装置301の係数算出部350は、検索情報生成装置102から受信したハッシュ値Hを用いて、係数f=e(H,ck)を計算する(S350)。続いて、検索実行装置301の係数算出部350は、係数fを検索情報生成装置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)。
続いて、検索情報生成装置102の検索インデックス生成部122は、暗号文Cを一意に識別するための情報Rを生成する(S1230)。そして、検索情報生成装置102の検索インデックス生成部122は、情報Rと情報Rと情報Rを一組とした検索インデックスC:=(R,R,R)を生成し、検索情報保存装置400へ送信する。
検索情報保存装置400は、検索情報生成装置101から受信した検索インデックスCを検索インデックス記憶部490へ記憶する(S490)。
図14を参照して、本実施例の暗号文検索システム30が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。
検索要求装置202の検索クエリ生成部211は、内積述語暗号方式により、検索キーワードWから述語ベクトルvを生成する。生成した述語ベクトルvと公開鍵pkと検索秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリk:=(Q,…,Q)を生成する(S211)。続いて、検索要求装置202の検索クエリ生成部211は、検索クエリkを検索実行装置301へ送信する。
検索実行装置301の検索インデックス取得部310は、検索情報保存装置400の検索インデックス記憶部490に記憶されている検索インデックスCをダウンロードする(S310)。
検索実行装置301の検索結果判定部321は、検索要求装置202から受信した検索クエリk:=(Q,…,Q)を用いて、すべての検索インデックスCについて、その検索インデックスCに含まれる情報Rが式(6)を満たすか否かを判定する。式(6)を満たす場合には、その検索インデックスCは検索が当たりであると判定する(S321)。
Figure 0005670365
検索実行装置301の検索結果送信部330は、当たりと判定された検索インデックスCから暗号文Cを一意に識別する情報Rを抽出して検索結果Cを生成し、生成した検索結果Cを検索要求装置202へ送信する(S330)。
検索要求装置202の暗号文取得部220は、検索実行装置301から受信した検索結果Cに含まれる情報Rを参照し、すべての情報Rについて、その情報Rにより一意に識別される暗号文Cを暗号情報保存装置500からダウンロードする(S220)。
検索要求装置202の復号部290は、暗号情報保存装置500からダウンロードした暗号文Cを復号して平文Mを取得する(S290)。
本実施例はこのような構成とすることにより、複数ユーザで利用が可能な内積述語検索可能暗号において、検索クエリkがクラウドを構成する装置に漏洩することを防止でき、辞書攻撃による検索キーワードの推定を防止できる。そのため、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する暗号情報保存装置と検索を実行する検索実行装置が異なる装置として構成することができるため、システム全体としての検索処理量の増大に対応して検索実行装置を増設する場合に、追加するストレージ容量を抑制することができる。
本実施例は、バッチ検索が可能な内積述語検索可能暗号に対してこの発明を適用した実施例である。バッチ検索が可能な内積述語検索可能暗号についての詳細は、非特許文献5を参照されたい。
図15〜17を参照して、この発明の実施例3の暗号文検索システム40の動作を詳細に説明する。図15は、本実施例の暗号文検索システム40の構成を示すブロック図である。図16は、本実施例の暗号文検索システム40を構成する装置の構成を示すブロック図である。図17は、本実施例の暗号文検索システム40が暗号文を検索・復号する動作を示すフローチャートである。
図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を備える。
したがって、本実施例の検索要求装置203と実施例2の検索要求装置202とは、検索クエリ生成部の処理が異なることが相違点である。本実施例の検索実行装置302と実施例2の検索実行装置301とは、バッチタグ生成部360を備え、検索結果判定部の処理が異なることが相違点である。
以下の説明において、^はべき乗を表し、tを検索インデックスCの総数、jを検索インデックスCの番号、K(=logt+1)をバッチタグBTagの階層数、k(0≦k≦K−1)をバッチタグBTagの階層の番号、M(=2^(logt−k))をバッチタグBTagの各階層における要素数、m(1≦m≦M)をバッチタグBTagの各階層における要素の番号であるものとする。
本実施例の暗号文検索システム40が暗号文を生成・保存する動作は、実施例2の暗号検索システム30が暗号文を生成・保存する動作と同様であるため、説明は省略する。
図17を参照して、本実施例の暗号文検索システム40が暗号文を検索・復号する動作を実際に行われる手続きの順に従って説明する。
検索要求装置203の検索クエリ生成部212は、内積述語暗号方式により、キーワード空間Wから検索キーワードWを除いた集合である否定キーワードW ̄から述語ベクトルvを生成する。生成した述語ベクトルvと公開鍵pkと検索秘密鍵skを用いて、内積述語暗号方式により情報Rを復号するための秘密鍵である検索クエリk:=(Q ̄,…,Q ̄)を生成する(S212)。続いて、検索要求装置202の検索クエリ生成部212は、検索クエリkを検索実行装置300へ送信する。
検索キーワードWの否定キーワードW ̄から述語ベクトルvを生成する方法は、例えば以下のように行うことができる。まず、登録キーワードXが検索キーワードYである、あるいは登録キーワードXが検索キーワードYである、…、あるいは登録キーワードXが検索キーワードYである、という条件は式(7)にように表すことができる。
Figure 0005670365
式(7)の否定表現は、キーワード空間Wから検索キーワードYを除いた集合W\{Y,…,Y}:={Vi}(1≦i≦K,K=|W\{Y,…,Y}|)と乱数r(1≦j≦m)を用いて、式(8)のように表すことができる。
Figure 0005670365
以上より、登録キーワードベクトルW =(X ,X K−1,…,X,1,…,X ,1)を属性ベクトルとし、否定キーワードベクトルW=(r,rK−1,…,r,r,…,r,r)を述語ベクトルとすればよい。
検索実行装置302の検索インデックス取得部310は、検索情報保存装置400の検索インデックス記憶部490に記憶されている検索インデックスCをダウンロードする(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)のように設定することで生成する。
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(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)
検索実行装置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)。
Figure 0005670365
検索実行装置302の検索結果送信部330は、当たりと判定された検索インデックスCから暗号文Cを一意に識別する情報Rを抽出して検索結果Cを生成し、生成した検索結果Cを検索要求装置203へ送信する(S330)。
検索要求装置203の暗号文取得部220は、検索実行装置302から受信した検索結果Cに含まれる情報Rを参照し、すべての情報Rについて、その情報Rにより一意に識別される暗号文Cを暗号情報保存装置500からダウンロードする(S220)。
検索要求装置203の復号部290は、暗号情報保存装置500からダウンロードした暗号文Cを復号して平文Mを取得する(S290)。
本実施例はこのような構成とすることにより、バッチ検索が可能な内積述語検索可能暗号において、検索クエリkがクラウドを構成する装置に漏洩することを防止でき、辞書攻撃による検索キーワードの推定を防止できる。そのため、従来の暗号文検索システムに対してセキュリティを向上することができる。また、暗号情報を保存する暗号情報保存装置と検索を実行する検索実行装置が異なる装置として構成することができるため、システム全体としての検索処理量の増大に対応して検索実行装置を増設する場合に、追加するストレージ容量を抑制することができる。
[変形例]
実施例3では、検索実行装置がバッチタグの生成を行うように構成したが、検索情報保存装置がバッチタグの生成を行うように構成してもよい。
図18〜20を参照して、この変形例の暗号文検索システム40’の動作を詳細に説明する。図18は、本変形例の暗号文検索システム40’の構成を示すブロック図である。図19は、本変形例の暗号文検索システム40’を構成する装置の構成を示すブロック図である。図20は、本変形例の暗号文検索システム40’が暗号文を検索・復号する動作を示すフローチャートである。
図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を備える。
したがって、本変形例の暗号文検索システム40’と実施例3の暗号文検索システム40とは、バッチタグ生成部360を検索実行装置の替わりに検索情報保存装置が備えており、検索情報保存装置がバッチタグ記憶部495を備えており、検索実行装置の検索インデックス取得部の動作が異なることが相違点である。
検索情報保存装置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と同様であるため、説明は省略する。
検索実行装置302’の検索インデックス取得部310’は、検索情報保存装置400’のバッチタグ記憶部495に記憶されているバッチタグBTag(k,m)をダウンロードする(S310’)。常にすべてのバッチタグBTag(k,m)をダウンロードしてもよいし、使用するネットワーク帯域を抑えるために、前回実行時に利用したバッチタグBTag(k,m)を保持しておき、差分のみをダウンロードしてもよい。
[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
この発明は、クラウドストレージに保存されている暗号化された情報に対し暗号学的に安全にキーワード検索を行う暗号文検索システムに利用することができる。
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 記憶部

Claims (14)

  1. 検索情報生成装置と検索要求装置と検索実行装置を含み、検索情報保存装置に記憶された検索インデックス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を前記検索要求装置へ送信する検索結果送信部を備える
    ことを特徴とする暗号文検索システム。
  2. 請求項1に記載の暗号文検索システムであって、
    前記検索情報保存装置と前記暗号情報保存装置は、前記検索情報生成装置と前記検索要求装置と前記検索実行装置それぞれと、インターネットを介して接続されるオンラインストレージサービスである
    ことを特徴とする暗号文検索システム。
  3. 請求項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 0005670365

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

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

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

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

    で表される
    ことを特徴とする暗号文検索システム。
  4. 請求項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 0005670365

    を満たすか否かを判定する
    ことを特徴とする暗号文検索システム。
  5. 請求項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 0005670365

    を満たすか否かを判定する
    ことを特徴とする暗号文検索システム。
  6. 請求項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 0005670365

    を満たすか否かを判定する
    ことを特徴とする暗号文検索システム。
  7. 検索インデックスCを記憶する検索情報保存装置と、文字列を含む平文Mを暗号化した暗号文Cを記憶する暗号情報保存装置と、ネットワークを介して接続された検索情報生成装置であって、
    任意のビット列からなる情報Rを生成し、当該情報Rを、あらかじめ生成された公開鍵pkと、前記平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成し、前記暗号文Cを一意に識別するための情報Rを生成し、当該情報Rと当該情報Rと当該情報Rを一組とした前記検索インデックスC:=(R,R,R)を前記検索情報保存装置へ送信する検索インデックス生成部を備える
    ことを特徴とする検索情報生成装置。
  8. 検索要求装置と、検索インデックスCを記憶する検索情報保存装置と、ネットワークを介して接続された検索実行装置であって、
    前記検索インデックスCを前記検索情報保存装置から取得する検索インデックス取得部と、
    前記検索インデックスCに含まれる情報Rを検索クエリkを用いて復号することで復号結果Rを生成し、当該復号結果Rと当該検索インデックスCに含まれる情報Rが一致するか否かを判定する検索結果判定部と、
    前記検索結果判定部により一致すると判定された検索インデックスCから、少なくとも情報Rを抽出して検索結果Cを生成し、当該検索結果Cを前記検索要求装置へ送信する検索結果送信部と、
    を備えることを特徴とする検索実行装置。
  9. 検索実行装置と、検索インデックスCを記憶する検索情報保存装置と、文字列を含む平文Mを暗号化した暗号文Cを記憶する暗号情報保存装置と、ネットワークを介して接続された検索要求装置であって、
    検索キーワードWと、あらかじめ生成されたマスタ秘密鍵skを用いて、前記検索インデックスCに含まれる情報Rを復号するための秘密鍵である検索クエリkを生成し、前記検索実行装置へ送信する検索クエリ生成部と、
    前記検索実行装置から受信した検索結果Cに含まれる情報Rにより識別される前記暗号文Cを前記暗号情報保存装置から取得する暗号文取得部と、
    を備えることを特徴とする検索要求装置。
  10. 検索インデックス生成部が、任意のビット列からなる情報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を前記暗号情報保存装置から取得する暗号文取得ステップと、
    を含む暗号文検索方法。
  11. 検索インデックス生成部が、任意のビット列からなる情報Rを生成し、当該情報Rを、あらかじめ生成された公開鍵pkと、文字列を含む平文Mと関連するキーワードである登録キーワードWを用いて暗号化することで、情報Rを生成し、前記平文Mを暗号化した暗号文Cを一意に識別するための情報Rを生成し、当該情報Rと当該情報Rと当該情報Rを一組とした検索インデックスC:=(R,R,R)を検索情報保存装置へ送信する検索インデックス生成ステップ
    を含む検索情報生成方法。
  12. 検索インデックス取得部が、検索インデックスCを検索情報保存装置から取得する検索インデックス取得ステップと、
    検索結果判定部が、前記検索インデックスCに含まれる情報Rを検索クエリkを用いて復号することで復号結果Rを生成し、当該復号結果Rと当該検索インデックスCに含まれる情報Rが一致するか否かを判定する検索結果判定ステップと、
    検索結果送信部が、前記検索結果判定ステップにより一致すると判定された検索インデックスCから、少なくとも情報Rを抽出して検索結果Cを生成する検索結果送信ステップと、
    を含む検索実行方法。
  13. 検索クエリ生成部が、検索キーワードWと、あらかじめ生成されたマスタ秘密鍵skを用いて、検索インデックスCに含まれる情報Rを復号するための秘密鍵である検索クエリkを生成する検索クエリ生成ステップと、
    暗号文取得部が、検索結果Cに含まれる情報Rにより識別される暗号文Cを暗号情報保存装置から取得する暗号文取得ステップと、
    を含む検索要求方法。
  14. 請求項7に記載の検索情報生成装置、請求項8に記載の検索実行装置、または請求項9に記載の検索要求装置としてコンピュータを機能させるためのプログラム。
JP2012014281A 2012-01-26 2012-01-26 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム Active JP5670365B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012014281A JP5670365B2 (ja) 2012-01-26 2012-01-26 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012014281A JP5670365B2 (ja) 2012-01-26 2012-01-26 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム

Publications (2)

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

Family

ID=49051828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012014281A Active JP5670365B2 (ja) 2012-01-26 2012-01-26 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP5670365B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6208586B2 (ja) * 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
JP5969681B1 (ja) * 2015-10-30 2016-08-17 株式会社第一コンピュータサービス 秘密情報管理システム
US10673627B2 (en) 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method
CN106302449B (zh) * 2016-08-15 2019-10-11 中国科学院信息工程研究所 一种密文存储与密文检索开放云服务方法和系统
WO2019215818A1 (ja) * 2018-05-08 2019-11-14 三菱電機株式会社 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
CN111858826A (zh) * 2020-07-30 2020-10-30 深圳前海微众银行股份有限公司 时空轨迹的检索方法、系统、终端设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269729B2 (en) * 2001-12-28 2007-09-11 International Business Machines Corporation Relational database management encryption system
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
JP5432736B2 (ja) * 2010-01-18 2014-03-05 日本電信電話株式会社 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体

Also Published As

Publication number Publication date
JP2013156675A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
JP5420085B2 (ja) データ処理装置及びデータ保管装置
Xhafa et al. An efficient PHR service system supporting fuzzy keyword search and fine-grained access control
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
WO2017061024A1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
JP5670365B2 (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
WO2017097344A1 (en) Method for re-keying an encrypted data file
JP2010220212A (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
JP6556955B2 (ja) 通信端末、サーバ装置、プログラム
Michalas et al. MicroSCOPE: enabling access control in searchable encryption with the use of attribute-based encryption and SGX
Cheng et al. Public key authenticated encryption with keyword search from LWE
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
Chen et al. Password-authenticated searchable encryption
KR101140576B1 (ko) 암호화 문서에 대한 다자간 검색 시스템 및 그 방법
Hoang et al. A multi-server oblivious dynamic searchable encryption framework
CN115865348B (zh) 数据加密方法、同态计算方法及设备
Yan et al. Secure and efficient big data deduplication in fog computing
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
KR101232385B1 (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
JP2019125956A (ja) 鍵交換方法、鍵交換システム、鍵交換サーバ装置、通信装置、プログラム
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム

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