(57)【要約】  トラップドア取得部（３１４）は、識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得する。検索暗号文生成部（３１５）は、トラップドア取得部（３１４）によって取得されたトラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する。同一の識別子に割り当てられた写像ｓｋと写像ｆとは、合成写像が識別子に共通の写像ｍｋになる。
2019142265.tif 000002
【特許請求の範囲】
【請求項１】
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得部と、
前記トラップドア取得部によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成部と
を備えるデータ管理装置。
【請求項２】
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになる
請求項１に記載のデータ管理装置。
【請求項３】
データ管理装置は、さらに、
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得部と、
前記データ取得部によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成部と
を備える請求項１又は２に記載のデータ管理装置。
【請求項４】
前記保管タグｃ’は、データ記憶部に書き込まれ、
前記データ管理装置は、さらに、
前記データ記憶部に記憶された保管タグｃ’から、前記検索暗号文生成部によって生成された前記検索暗号文ｃ（ｓ）に対応する保管タグｃ’を検索する検索部
を備える請求項３に記載のデータ管理装置。
【請求項５】
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得部と、
前記データ取得部によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成部と
を備えるデータ管理装置。
【請求項６】
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになる
請求項１に記載のデータ管理装置。
【請求項７】
データを検索するための検索ワードｓを、識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって変換して、トラップドアｔ（ｓ）を生成するトラップドア生成部と、
前記トラップドア生成部によって生成された前記トラップドアｔ（ｓ）をデータ管理装置に送信する検索依頼部と
を備える検索装置。
【請求項８】
前記写像ｓｋ＿Ｕ’は、識別子毎に異なる写像ｆのうちの前記識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’との合成が識別子に共通の写像ｍｋになる
請求項７に記載の検索装置。
【請求項９】
データＤを暗号化して暗号化データＢ（Ｄ）を生成する暗号化部と、
前記データＤを検索するためのキーワードｗを、識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによって変換して、暗号化タグｃを生成する暗号化タグ生成部と、
前記暗号化部によって生成された暗号化データＢ（Ｄ）と、前記暗号化タグ生成部によって生成された暗号化タグｃとの組を登録データとしてデータ管理装置に送信するデータ登録部と
を備える登録装置。
【請求項１０】
前記写像ｓｋ＿Ｕは、識別子毎に異なる写像ｆのうちの前記識別子Ｕに割り当てられた写像ｆ＿Ｕとの合成が識別子に共通の写像ｍｋになる
請求項９に記載の登録装置。
【請求項１１】
トラップドア取得部が、識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得し、
検索暗号文生成部が、前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成するデータ管理方法。
【請求項１２】
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得処理と、
前記トラップドア取得処理によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成処理と
をコンピュータに実行させるデータ管理プログラム。
【請求項１３】
データ取得部が、識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得し、
保管タグ生成部が、前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成するデータ管理方法。
【請求項１４】
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得処理と、
前記データ取得処理によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成処理と
をコンピュータに実行させるデータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号化したままデータを検索する秘匿検索技術に関する。
【背景技術】
【０００２】
秘匿検索は、暗号化したままデータを検索することができる技術である。クラウドサービスが普及し始めている現在において、安価かつ手間なく利用開始可能なクラウドストレージが一般的になりつつある。一方で、機密情報を含むデータをクラウドで管理する場合、情報漏洩のリスクを回避するため、データを暗号化して保管する必要がある。秘匿検索は、暗号化されているデータに対して、復号することなく検索できるため、安全性と機能性とを両立することが可能な技術である。【０００３】
秘匿検索では、２つの暗号化されたキーワードを用いて検索を実現する。１つ目は、データに関連付けるキーワードの暗号文で、暗号化タグという。２つ目は、検索するキーワードの暗号文で、トラップドアという。
データを登録するときは、暗号化したデータと暗号化タグとをストレージサーバに登録する。暗号化タグは、関連付けられているデータ又はデータの識別子と紐づけられて、暗号化索引として保管される。秘匿検索は、検索者が送信するトラップドアに対して、復号することなく一致する暗号化タグを暗号化索引から見つけることで、データやキーワードの情報を露出することなく検索を実現する。【０００４】
秘匿検索は大きく共通鍵型秘匿検索と公開鍵型秘匿検索とに大別できる。共通鍵型秘匿検索と公開鍵型秘匿検索とは、以下のような異なる特徴を持つ。
公開鍵型秘匿検索は、暗号化タグとトラップドアとの生成に異なる鍵が使用されるのに対して、共通鍵型秘匿検索は、暗号化タグとトラップドアとの生成に同一の鍵が使用される。また、共通鍵型秘匿検索は、公開鍵型秘匿検索よりも検索処理を高速に行うことが可能である。【０００５】
特許文献１には、暗号文を変換してユーザに送信することが記載されている。特許文献１では、同じ鍵によって暗号化索引とトラップドアを生成する共通鍵型秘匿検索が使用されている。【０００６】
特許文献２には、異なる秘密鍵で暗号化された暗号文であっても比較が可能な技術が記載されている。特許文献２では、比較に使用する暗号文の一部分は秘密鍵に依存しないように暗号化されている。【０００７】
非特許文献１には、複数の検索者による共通鍵型秘匿検索技術が記載されている。非特許文献１では、全てのユーザが同じ乱数ｒを用いてキーワードを暗号化して検索を行っている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１６−０１２８９７号公報
【特許文献２】特開２０１５−０２２３１８号公報
【非特許文献】
【０００９】
【非特許文献１】Ｒｅｚａ  Ｃｕｒｔｍｏｌａ，  Ｊｕａｎ  Ａ．  Ｇａｒａｙ，  Ｓｅｎｙ  Ｋａｍａｒａ，  Ｒａｆａｉｌ  Ｏｓｔｒｏｖｓｋｙ，  “Ｓｅａｒｃｈａｂｌｅ  ｓｙｍｍｅｔｒｉｃ  ｅｎｃｒｙｐｔｉｏｎ：  ｉｍｐｒｏｖｅｄ  ｄｅｆｉｎｉｔｉｏｎｓ  ａｎｄ  ｅｆｆｉｃｉｅｎｔ  ｃｏｎｓｔｒｕｃｔｉｏｎｓ”，  ＡＣＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｅｃｕｒｉｔｙ  ２００６，  ｐｐ．７９−８８，  ２００６．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の共通鍵型秘匿検索では、暗号化タグとトラップドアとの生成に同じ鍵が使用される。そのため、共通鍵型秘匿検索が複数のユーザによって利用される場合、暗号化タグ及びトラップドアの解読と、鍵の偽造によるなりすましとが可能であるという課題がある。
この発明は、解読及びなりすましを防止可能にすることを目的とする。
【課題を解決するための手段】
【００１１】
この発明に係るデータ管理装置は、
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得部と、
前記トラップドア取得部によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成部と
を備える。
【発明の効果】
【００１２】
この発明では、識別子毎に異なる写像ｓｋを用いて変換されたトラップドアｔ（ｓ）が用いられる。そのため、解読及びなりすましを防止可能である。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る秘匿検索システム１０の構成図。
【図２】実施の形態１に係る鍵生成装置２０の構成図。
【図３】実施の形態１に係るデータ管理装置３０の構成図。
【図４】実施の形態１に係る登録装置４０の構成図。
【図５】実施の形態１に係る検索装置５０の構成図。
【図６】実施の形態１に係る共通鍵生成処理のフローチャート。
【図７】実施の形態１に係る個別鍵生成処理のフローチャート。
【図８】実施の形態１に係るデータ登録処理のフローチャート。
【図９】実施の形態１に係るデータ検索処理のフローチャート。
【図１０】実施の形態１に係るデータ削除処理のフローチャート。
【図１１】変形例４に係る鍵生成装置２０の構成図。
【図１２】変形例４に係るデータ管理装置３０の構成図。
【図１３】変形例４に係る登録装置４０の構成図。
【図１４】変形例４に係る検索装置５０の構成図。
【発明を実施するための形態】
【００１４】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係る秘匿検索システム１０の構成を説明する。
秘匿検索システム１０は、鍵生成装置２０と、データ管理装置３０と、１台以上の登録装置４０と、１台以上の検索装置５０とを備える。
鍵生成装置２０と、データ管理装置３０と、登録装置４０と、検索装置５０とは、伝送路９０を介して接続される。伝送路９０は、具体例としては、インターネット又はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
各登録装置４０と各検索装置５０とには、識別子が割り当てられている。
【００１５】
図２を参照して、実施の形態１に係る鍵生成装置２０の構成を説明する。
鍵生成装置２０は、プロセッサ２１と、メモリ２２と、ストレージ２３と、通信インタフェース２４とのハードウェアを備える。プロセッサ２１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１６】
鍵生成装置２０は、機能構成要素として、パラメータ取得部２１１と、鍵生成部２１２と、鍵送信部２１３とを備える。鍵生成装置２０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ２３には、鍵生成装置２０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ２１によりメモリ２２に読み込まれ、プロセッサ２１によって実行される。これにより、鍵生成装置２０の各機能構成要素の機能が実現される。
また、ストレージ２３は、鍵記憶部２３１の機能を実現する。
【００１７】
図３を参照して、実施の形態１に係るデータ管理装置３０の構成を説明する。
データ管理装置３０は、プロセッサ３１と、メモリ３２と、ストレージ３３と、通信インタフェース３４とのハードウェアを備える。プロセッサ３１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１８】
データ管理装置３０は、機能構成要素として、鍵取得部３１１と、データ取得部３１２と、保管タグ生成部３１３と、トラップドア取得部３１４と、検索暗号文生成部３１５と、検索部３１６と、削除部３１７とを備える。データ管理装置３０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ３３には、データ管理装置３０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ３１によりメモリ３２に読み込まれ、プロセッサ３１によって実行される。これにより、データ管理装置３０の各機能構成要素の機能が実現される。
また、ストレージ３３は、鍵記憶部３３１と、データ記憶部３３２との機能を実現する。
【００１９】
図４を参照して、実施の形態１に係る登録装置４０の構成を説明する。
登録装置４０は、プロセッサ４１と、メモリ４２と、ストレージ４３と、通信インタフェース４４とのハードウェアを備える。プロセッサ４１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２０】
登録装置４０は、機能構成要素として、鍵取得部４１１と、データ取得部４１２と、暗号化タグ生成部４１３と、暗号化部４１４と、データ送信部４１５とを備える。登録装置４０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ４３には、登録装置４０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ４１によりメモリ４２に読み込まれ、プロセッサ４１によって実行される。これにより、登録装置４０の各機能構成要素の機能が実現される。
また、ストレージ４３は、鍵記憶部４３１の機能を実現する。
【００２１】
図５を参照して、実施の形態１に係る検索装置５０の構成を説明する。
検索装置５０は、プロセッサ５１と、メモリ５２と、ストレージ５３と、通信インタフェース５４とのハードウェアを備える。プロセッサ５１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２２】
検索装置５０は、機能構成要素として、鍵取得部５１１と、検索ワード取得部５１２と、トラップドア生成部５１３と、検索依頼部５１４とを備える。検索装置５０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ５３には、検索装置５０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ５１によりメモリ５２に読み込まれ、プロセッサ５１によって実行される。これにより、検索装置５０の各機能構成要素の機能が実現される。
また、ストレージ５３は、鍵記憶部５３１の機能を実現する。
【００２３】
プロセッサ２１，３１，４１，５１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ２１，３１，４１，５１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００２４】
メモリ２２，３２，４２，５２は、データを一時的に記憶する記憶装置である。メモリ２２，３２，４２，５２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２５】
ストレージ２３，３３，４３，５３は、データを保管する記憶装置である。ストレージ２３，３３，４３，５３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ２３，３３，４３，５３は、ＳＤ（登録商標，Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ，登録商標）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００２６】
通信インタフェース２４，３４，４４，５４は、外部の装置と通信するためのインタフェースである。通信インタフェース２４，３４，４４，５４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
【００２７】
図２では、プロセッサ２１は、１つだけ示されている。しかし、鍵生成装置２０は、プロセッサ２１を代替する複数のプロセッサを備えていてもよい。同様に、データ管理装置３０は、プロセッサ３１を代替する複数のプロセッサを備えていてもよい。登録装置４０は、プロセッサ４１を代替する複数のプロセッサを備えていてもよい。検索装置５０は、プロセッサ５１を代替する複数のプロセッサを備えていてもよい。
これら複数のプロセッサは、各機能構成要素の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ２１，３１，４１，５１と同じように、演算処理を行うＩＣである。
【００２８】
＊＊＊動作の説明＊＊＊
図６から図１０を参照して、実施の形態１に係る秘匿検索システム１０の動作を説明する。
実施の形態１に係る秘匿検索システム１０の動作における鍵生成装置２０の動作は、実施の形態１に係る鍵生成方法に相当する。また、鍵生成装置２０の動作は、実施の形態１に係る鍵生成プログラムの処理に相当する。
実施の形態１に係る秘匿検索システム１０の動作におけるデータ管理装置３０の動作は、実施の形態１に係るデータ管理方法に相当する。また、データ管理装置３０の動作は、実施の形態１に係るデータ管理プログラムの処理に相当する。
実施の形態１に係る秘匿検索システム１０の動作における登録装置４０の動作は、実施の形態１に係る登録方法に相当する。また、登録装置４０の動作は、実施の形態１に係る登録プログラムの処理に相当する。
実施の形態１に係る秘匿検索システム１０の動作における検索装置５０の動作は、実施の形態１に係る検索方法に相当する。また、検索装置５０の動作は、実施の形態１に係る検索プログラムの処理に相当する。
【００２９】
図６を参照して、実施の形態１に係る共通鍵生成処理を説明する。
共通鍵生成処理は、鍵生成装置２０によって実行される。
【００３０】
（ステップＳ１１：パラメータ取得処理）
パラメータ取得部２１１は、パラメータλを取得する。
具体的には、パラメータ取得部２１１は、通信インタフェース２４を介して、外部の装置から送信されたパラメータλを取得する。あるいは、パラメータ取得部２１１は、通信インタフェース２４を介して接続された入力装置によって入力されたパラメータλを取得する。パラメータ取得部２１１は、パラメータλをメモリ２２に書き込む。
【００３１】
（ステップＳ１２：共通鍵生成処理）
鍵生成部２１２は、鍵Ｋ２と、写像ｍｋとを生成する。
具体的には、鍵生成部２１２は、メモリ２２からパラメータλを読み出す。鍵生成部２１２は、パラメータλを入力として、乱数生成器により、ランダムな鍵Ｋ２を生成する。鍵生成部２１２は、任意に写像ｍｋを生成する。鍵生成部２１２は、鍵Ｋ２及び写像ｍｋをメモリ２２に書き込む。
【００３２】
鍵Ｋ２は、全ての登録装置４０及び検索装置５０に共通の鍵である。つまり、鍵Ｋ２は、登録装置４０及び検索装置５０に割り当てられた全ての識別子に共通の鍵である。
写像ｍｋは、全ての登録装置４０及び検索装置５０に共通の写像である。つまり、写像ｍｋは、登録装置４０及び検索装置５０に割り当てられた全ての識別子に共通の写像である。
【００３３】
（ステップＳ１３：鍵記憶処理）
鍵生成部２１２は、ステップＳ１１で取得されたパラメータλと、ステップＳ１２で生成された鍵Ｋ２及び写像ｍｋとを、メモリ２２から読み出す。鍵生成部２１２は、パラメータλと鍵Ｋ２と写像ｍｋとを鍵記憶部２３１に書き込む。鍵Ｋ２と写像ｍｋとは、秘密情報であるため、外部に漏えいしないように厳重に保管される。
【００３４】
図７を参照して、実施の形態１に係る個別鍵生成処理を説明する。
個別鍵生成処理は、鍵生成装置２０とデータ管理装置３０と登録装置４０又は検索装置５０とによって実行される。具体的には、ステップＳ２１からステップＳ２３の処理は、鍵生成装置２０によって実行される。ステップＳ２４の処理は、データ管理装置３０によって実行される。ステップＳ２５の処理は、登録装置４０又は検索装置５０によって実行される。
【００３５】
個別鍵生成処理は、登録装置４０又は検索装置５０から鍵生成装置２０に個別鍵の生成要求が送信された場合に実行されてもよい。あるいは、個別鍵生成処理は、任意のタイミングで実行されてもよい。
【００３６】
（ステップＳ２１：識別子取得処理）
鍵生成装置２０のパラメータ取得部２１１は、処理対象とする装置の識別子を取得する。
具体的には、パラメータ取得部２１１は、通信インタフェース２４を介して、外部の装置から送信された識別子を取得する。あるいは、パラメータ取得部２１１は、通信インタフェース２４を介して接続された入力装置によって入力された識別子を取得する。パラメータ取得部２１１は、識別子をメモリ２２に書き込む。
ここでは、識別子として“Ｕ”が取得されたものとする。
【００３７】
（ステップＳ２２：個別鍵生成処理）
鍵生成部２１２は、鍵Ｋ１と、写像ｓｋと、写像ｆとを生成する。ここでは、鍵生成部２１２は、ステップＳ２１で取得された識別子Ｕに対応する、鍵Ｋ１＿Ｕと、写像ｓｋ＿Ｕと、写像ｆ＿Ｕとを生成する。
具体的には、鍵生成部２１２は、ステップＳ２１で取得された識別子Ｕをメモリ２２から読み出す。鍵生成部２１２は、共通鍵生成処理で記憶されたパラメータλと写像ｍｋとを鍵記憶部２３１から読み出す。鍵生成部２１２は、識別子Ｕと、パラメータλとを入力として、乱数生成器により、ランダムな鍵Ｋ１＿Ｕを生成する。鍵生成部２１２は、写像ｍｋを入力として、写像ｓｋ＿Ｕと、写像ｆ＿Ｕとを生成する。この際、鍵生成部２１２は、写像ｓｋ＿Ｕと、写像ｆ＿Ｕとを合成した合成写像が写像ｍｋになるように、写像ｓｋ＿Ｕと、写像ｆ＿Ｕとを生成する。つまり、ｍｋ＝ｆ＿Ｕ・ｓｋ＿Ｕである。鍵生成部２１２は、鍵Ｋ１＿Ｕと、写像ｓｋ＿Ｕと、写像ｆ＿Ｕとをメモリ２２に書き込む。
【００３８】
写像ｓｋ＿Ｕ及び写像ｆ＿Ｕの生成方法の一例を説明する。
鍵生成部２１２は、位数がｎである群の元ｘに対して、写像ｍｋをｍｋ（ｘ）＝ｘｃとする。鍵生成部２１２は、ａｂ＝ｃ（ｍｏｄ  ｎ）を満たす整数ａ，ｂをランダムに選択する。鍵生成部２１２は、写像ｓｋ＿Ｕ＝ｘａとし、写像ｆ＿Ｕ＝ｘｂとする。
【００３９】
鍵Ｋ１は、登録装置４０毎、検索装置５０毎に異なる鍵である。つまり、鍵Ｋ１は、登録装置４０及び検索装置５０に割り当てられた識別子毎に異なる鍵である。
写像ｓｋ及び写像ｆは、登録装置４０毎、検索装置５０毎に異なる写像である。つまり、写像ｓｋ及び写像ｆは、登録装置４０及び検索装置５０に割り当てられた識別子毎に異なる写像である。また、同じ識別子に割り当てられた写像ｓｋと写像ｆとは、合成写像が識別子に共通の写像ｍｋになる。
【００４０】
（ステップＳ２３：鍵送信処理）
鍵送信部２１３は、共通鍵生成処理で記憶された鍵Ｋ２をメモリ２２から読み出す。ステップＳ２２で生成された鍵Ｋ１＿Ｕと写像ｓｋ＿Ｕと写像ｆ＿Ｕとメモリ２２から読み出す。
鍵送信部２１３は、通信インタフェース２４を介して、写像ｆ＿Ｕを、データ管理装置３０に送信する。また、鍵送信部２１３は、通信インタフェース２４を介して、鍵Ｋ１＿Ｕと鍵Ｋ２と写像ｓｋ＿Ｕとを識別子Ｕに対応する登録装置４０又は検索装置５０に送信する。
【００４１】
（ステップＳ２４：第１鍵取得処理）
データ管理装置３０の鍵取得部３１１は、通信インタフェース３４を介して、ステップＳ２３で送信された鍵ｆ＿Ｕを受信する。データ取得部３１１は、受信された鍵ｆ＿Ｕを鍵記憶部３３１に書き込む。鍵ｆ＿Ｕは、秘密情報であるため、外部に漏えいしないように厳重に保管される。
【００４２】
（ステップＳ２５：第２鍵取得処理）
識別子Ｕに対応する登録装置４０又は検索装置５０が動作する。
登録装置４０が識別子Ｕに対応する場合には、鍵取得部４１１は、通信インタフェース４４を介して、ステップＳ２３で送信された鍵Ｋ１＿Ｕと鍵Ｋ２と写像ｓｋ＿Ｕとを受信する。鍵取得部４１１は、受信された鍵Ｋ１＿Ｕと鍵Ｋ２と写像ｓｋ＿Ｕとを鍵記憶部４３１に書き込む。
検索装置５０が識別子Ｕに対応する場合には、鍵取得部５１１は、通信インタフェース５４を介して、ステップＳ２３で送信された鍵Ｋ１＿Ｕと鍵Ｋ２と写像ｓｋ＿Ｕとを受信する。鍵取得部５１１は、受信された鍵Ｋ１＿Ｕと鍵Ｋ２と写像ｓｋ＿Ｕとを鍵記憶部５３１に書き込む。
鍵Ｋ１＿Ｕと鍵Ｋ２と写像ｓｋ＿Ｕとは、秘密情報であるため、外部に漏えいしないように厳重に保管される。なお、検索装置５０が識別子Ｕに対応する場合には、鍵Ｋ１＿Ｕは送信されなくてもよい。
【００４３】
図８を参照して、実施の形態１に係るデータ登録処理を説明する。
データ登録処理は、データ管理装置３０と登録装置４０とによって実行される。具体的には、ステップＳ３１からステップＳ３４の処理は、登録装置４０によって実行される。ステップＳ３５からステップＳ３７の処理は、データ管理装置３０によって実行される。
ここでは、識別子Ｕの登録装置４０によってデータ登録処理が実行されるとする。
【００４４】
（ステップＳ３１：データ取得処理）
登録装置４０のデータ取得部４１２は、登録対象のデータＤと、データＤを識別可能な名称であるデータ名ＩＤ（Ｄ）と、データＤを検索するためのキーワードｗの集合Ｗ（Ｄ）とを取得する。
具体的には、データ取得部４１２は、通信インタフェース４４を介して、外部の装置から送信されたデータＤとデータ名ＩＤ（Ｄ）と集合Ｗ（Ｄ）とを取得する。あるいは、データ取得部４１２は、通信インタフェース２４を介して接続された入力装置によって入力されたデータＤとデータ名ＩＤ（Ｄ）と集合Ｗ（Ｄ）とを取得する。データ取得部４１２は、データＤとデータ名ＩＤ（Ｄ）と集合Ｗ（Ｄ）とをメモリ４２に書き込む。
【００４５】
（ステップＳ３２：暗号化タグ生成処理）
暗号化タグ生成部４１３は、ステップＳ３１で取得された集合Ｗ（Ｄ）に含まれる各キーワードｗについての暗号化タグｃを生成する。
具体的には、暗号化タグ生成部４１３は、データ名ＩＤ（Ｄ）と集合Ｗ（Ｄ）とをメモリ４２から読み出す。また、暗号化タグ生成部４１３は、鍵Ｋ２と写像ｓｋ＿Ｕとを鍵記憶部４３１から読み出す。暗号化タグ生成部４１３は、集合Ｗ（Ｄ）に含まれる各キーワードｗを対象として、対象のキーワードｗを暗号化して、暗号化タグｃを生成する。ここでは、暗号化タグ生成部４１３は、ｃ＝ｓｋ＿Ｕ（Ｅ（Ｋ２，ｗ））を計算して、暗号化タグｃを生成する。ここで、Ｅは、暗号化関数である。暗号化関数としては、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）といった共通鍵暗号方式の暗号化関数と、ＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）といったメッセージ認証関数と、ＳＨＡ−２５６（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ−２５６）といったハッシュ関数といった関数を用いることが可能である。つまり、暗号化タグ生成部４１３は、暗号化関数Ｅを用いて、鍵Ｋ２により対象のキーワードｗを暗号化し、写像ｓｋ＿Ｕで変換して、暗号化タグｃを生成する。
暗号化タグ生成部４１３は、データ名ＩＤ（Ｄ）と、暗号化タグｃの集合Ｃ（Ｄ）との組を登録暗号化データＲ（Ｄ）としてメモリ４２に書き込む。
なお、Ｅ（Ｋ２，ｗ）が写像ｓｋ＿Ｕに対する入力可能な値でない場合には、何らかのエンコードを行い写像ｓｋ＿Ｕに対する入力可能な値に変換する。
【００４６】
（ステップＳ３３：暗号化処理）
暗号化部４１４は、ステップＳ３１で取得されたデータＤを暗号化して暗号化データＢ（Ｄ）を生成する。
具体的には、暗号化部４１４は、データＤとデータ名ＩＤ（Ｄ）とをメモリ４２から読み出す。また、暗号化部４１４は、鍵Ｋ１＿Ｕを鍵記憶部４３１から読み出す。暗号化部４１４は、データＤを暗号化して、暗号化データＢ（Ｄ）を生成する。ここでは、暗号化部４１４は、Ｂ（Ｄ）＝Ｅ（Ｋ１＿Ｕ，Ｄ）を計算して、暗号化データＢ（Ｄ）を生成する。ここで、Ｅは、暗号化関数である。暗号化関数としては、ステップＳ３２と同様に、ＡＥＳといった共通鍵暗号方式の暗号化関数と、ＨＭＡＣといったメッセージ認証関数と、ＳＨＡ−２５６といったハッシュ関数といった関数を用いることが可能である。また、暗号化関数としては、ＩＤベース暗号と属性ベース暗号といった暗号化関数であってもよい。つまり、暗号化部４１４は、暗号化関数Ｅを用いて、鍵Ｋ１＿ＵによりデータＤを暗号化して、暗号化データＢ（Ｄ）を生成する。暗号化部４１４は、暗号化データＢ（Ｄ）をメモリ４２に書き込む。
【００４７】
（ステップＳ３４：データ送信処理）
データ送信部４１５は、ステップＳ３２で生成された登録暗号化データＲ（Ｄ）と、ステップＳ３３で生成された暗号化データＢ（Ｄ）とをメモリ４２から読み出す。データ送信部４１５は、通信インタフェース４４を介して、登録暗号化データＲ（Ｄ）と暗号化データＢ（Ｄ）とをデータ管理装置３０に送信する。
【００４８】
（ステップＳ３５：データ受信処理）
データ管理装置３０のデータ取得部３１２は、通信インタフェース３４を介して、ステップＳ３４で送信された登録暗号化データＲ（Ｄ）と暗号化データＢ（Ｄ）とを受信する。データ取得部３１２は、登録暗号化データＲ（Ｄ）と暗号化データＢ（Ｄ）とをメモリ３２に書き込む。
【００４９】
（ステップＳ３６：保管タグ生成処理）
保管タグ生成部３１３は、ステップＳ３５で受信された登録暗号化データＲ（Ｄ）の集合Ｃ（Ｄ）に含まれる各暗号化タグｃについての保管タグｃ’を生成する。
具体的には、保管タグ生成部３１３は、登録暗号化データＲ（Ｄ）をメモリ３２から読み出す。また、保管タグ生成部３１３は、写像ｆ＿Ｕを鍵記憶部３３１から読み出す。保管タグ生成部３１３は、登録暗号化データＲ（Ｄ）の集合Ｃ（Ｄ）に含まれる各暗号化タグｃを対象として、対象の暗号化タグｃを写像ｆ＿Ｕで変換して、保管タグｃ’を生成する。つまり、保管タグ生成部３１３は、ｃ’＝ｆ＿Ｕ（ｃ）を計算して、保管タグｃ’を生成する。
保管タグ生成部３１３は、データ名ＩＤ（Ｄ）と、保管タグｃ’の集合Ｃ’（Ｄ）との組を保管暗号化データＩ（Ｄ）としてメモリ３２に書き込む。
【００５０】
保管タグｃ’は、暗号化されたキーワードｗが写像ｓｋ＿Ｕで変換され、さらに写像ｆ＿Ｕで変換されて生成される。同一の識別子に割り当てられた写像ｓｋと写像ｆとは、合成写像が識別子に共通の写像ｍｋになる。したがって、どの登録装置４０によってデータ登録処理が実行された場合であっても、保管タグｃ’は、暗号化されたキーワードｗが写像ｍｋで変換されて生成されることになる。
【００５１】
（ステップＳ３７：索引追加処理）
保管タグ生成部３１３は、ステップＳ３６で生成された保管暗号化データＩ（Ｄ）を暗号化索引Ｉに追加する。暗号化索引Ｉは、データ記憶部３３２に記憶されている。また、保管タグ生成部３１３は、ステップＳ３５で受信された暗号化データＢ（Ｄ）をデータ記憶部３３２に書き込む。
【００５２】
図９を参照して、実施の形態１に係るデータ検索処理を説明する。
データ検索処理は、データ管理装置３０と検索装置５０とによって実行される。具体的には、ステップＳ４１からステップＳ４３と、ステップＳ４８との処理は、検索装置５０によって実行される。ステップＳ４４からステップＳ４７の処理は、データ管理装置３０によって実行される。
ここでは、識別子Ｕ’の検索装置５０によってデータ検索処理が実行されるとする。
【００５３】
（ステップＳ４１：検索ワード取得処理）
検索装置５０の検索ワード取得部５１２は、データＤを検索するためのキーワードである検索ワードｓを取得する。
具体的には、検索ワード取得部５１２は、通信インタフェース４４を介して、外部の装置から送信された検索ワードｓを取得する。あるいは、検索ワード取得部５１２は、通信インタフェース２４を介して接続された入力装置によって入力された検索ワードｓを取得する。検索ワード取得部５１２は、検索ワードｓをメモリ５２に書き込む。
【００５４】
（ステップＳ４２：トラップドア生成処理）
トラップドア生成部５１３は、ステップＳ４１で取得された検索ワードｓのトラップドアｔ（ｓ）を生成する。
具体的には、トラップドア生成部５１３は、検索ワードｓをメモリ５２から読み出す。また、トラップドア生成部５１３は、鍵Ｋ２と写像ｓｋ＿Ｕ’とを鍵記憶部５３１から読み出す。トラップドア生成部５１３は、検索ワードｓを暗号化して、トラップドアｔ（ｓ）を生成する。ここでは、トラップドア生成部５１３は、ｔ（ｓ）＝ｓｋ＿Ｕ’（Ｅ（Ｋ２，ｓ））を計算して、トラップドアｔ（ｓ）を生成する。ここで、Ｅは、ステップＳ３２で使用された暗号化関数と同一の暗号化関数である。つまり、トラップドア生成部５１３は、暗号化関数Ｅを用いて、鍵Ｋ２により検索ワードｓを暗号化し、写像ｓｋ＿Ｕで変換して、トラップドアｔ（ｓ）を生成する。トラップドア生成部５１３は、トラップドアｔ（ｓ）をメモリ５２に書き込む。
なお、Ｅ（Ｋ２，ｓ）が写像ｓｋ＿Ｕに対する入力可能な値でない場合には、図８のステップＳ３２と同じエンコードを行い写像ｓｋ＿Ｕに対する入力可能な値に変換する。
【００５５】
（ステップＳ４３：検索依頼処理）
検索依頼部５１４は、ステップＳ４２で生成されたトラップドアｔ（ｓ）をメモリ５２から読み出す。検索依頼部５１４は、通信インタフェース５４を介して、トラップドアｔ（ｓ）をデータ管理装置３０に送信する。
【００５６】
（ステップＳ４４：検索依頼受信処理）
データ管理装置３０のトラップドア取得部３１４は、通信インタフェース３４を介して、ステップＳ４３で送信されたトラップドアｔ（ｓ）を受信する。トラップドア取得部３１４は、トラップドアｔ（ｓ）をメモリ３２に書き込む。
【００５７】
（ステップＳ４５：検索暗号文生成処理）
検索暗号文生成部３１５は、ステップＳ４４で取得されたトラップドアｔ（ｓ）から検索暗号文ｃ（ｓ）を生成する。
具体的には、検索暗号文生成部３１５は、トラップドアｔ（ｓ）をメモリ３２から読み出す。また、検索暗号文生成部３１５は、写像ｆ＿Ｕ’を鍵記憶部３３１から読み出す。検索暗号文生成部３１５は、トラップドアｔ（ｓ）を写像ｆ＿Ｕ’  変換して、検索暗号文ｃ（ｓ）を生成する。つまり、検索暗号文生成部３１５は、ｃ（ｓ）＝ｆ＿Ｕ（ｔ（ｓ））を計算して、検索暗号文ｃ（ｓ）を生成する。検索暗号文生成部３１５は、検索暗号文ｃ（ｓ）をメモリ３２に書き込む。
【００５８】
検索暗号文ｃ（ｓ）は、暗号化された検索ワードｓが写像ｓｋ＿Ｕで変換され、さらに写像ｆ＿Ｕで変換されて生成される。同一の識別子に割り当てられた写像ｓｋと写像ｆとは、合成写像が識別子に共通の写像ｍｋになる。したがって、どの検索装置５０によってデータ検索処理が実行された場合であっても、検索暗号文ｃ（ｓ）は、暗号化された検索ワードｓが写像ｍｋで変換されて生成されることになる。
【００５９】
（ステップＳ４６：検索処理）
検索部３１６は、ステップＳ４５で生成された検索暗号文ｃ（ｓ）を保管タグｃ’として含む保管暗号化データＩ（Ｄ）を暗号化索引Ｉから抽出する。
具体的には、検索部３１６は、検索暗号文ｃ（ｓ）をメモリ３２から読み出す。検索部３１６は、データ記憶部３３２に記憶された保管暗号化データＩ（Ｄ）のうち、二分探索とハッシュテーブルといった技術を用いて、検索暗号文ｃ（ｓ）を保管タグｃ’として含む保管暗号化データＩ（Ｄ）を抽出する。検索部３１６は、抽出された保管暗号化データＩ（Ｄ）に含まれるデータ名ＩＤ（Ｄ）が示す暗号化データＢ（Ｄ）を特定する。検索部３１６は、特定された暗号化データＢ（Ｄ）の集合を検索結果Ｓ（ｓ）としてメモリ３２に書き込む。
なお、抽出された保管暗号化データＩ（Ｄ）に含まれるデータ名ＩＤ（Ｄ）の集合を検索結果Ｓ（ｓ）としてもよい。
【００６０】
上述した通り、どの登録装置４０によってデータ登録処理が実行された場合であっても、保管タグｃ’は、暗号化されたキーワードｗが写像ｍｋで変換されて生成される。どの検索装置５０によってデータ検索処理が実行された場合であっても、検索暗号文ｃ（ｓ）は、暗号化された検索ワードｓが写像ｍｋで変換されて生成される。そのため、どの検索装置５０によって実行されたデータ検索処理においても、全ての登録装置４０によって登録されたデータを対象として検索を行うことが可能である。
【００６１】
（ステップＳ４７：結果送信処理）
検索部３１６は、ステップＳ４６で書き込まれた検索結果Ｓ（ｓ）をメモリ３２から読み出す。検索部３１６は、通信インタフェース３４を介して、検索結果Ｓ（ｓ）を検索装置５０に送信する。
【００６２】
（ステップＳ４８：結果受信処理）
検索装置５０の検索依頼部５１４は、通信インタフェース５４を介して、ステップＳ４７で送信された検索結果Ｓ（ｓ）を受信する。検索依頼部５１４は、通信インタフェース５４を介して、検索結果Ｓ（ｓ）を表示装置等に出力する。
【００６３】
図１０を参照して、実施の形態１に係るデータ削除処理を説明する。
データ削除処理は、データ管理装置３０と登録装置４０とによって実行される。具体的には、ステップＳ５１及びステップＳ５２の処理は、登録装置４０によって実行される。ステップＳ５３及びステップＳ５４の処理は、データ管理装置３０によって実行される。
【００６４】
（ステップＳ５１：削除名称取得処理）
データ取得部４１２は、削除対象のデータ名ＩＤ（Ｄ）を取得する。
具体的には、データ取得部４１２は、通信インタフェース４４を介して、外部の装置から送信されたデータ名ＩＤ（Ｄ）を取得する。あるいは、データ取得部４１２は、通信インタフェース２４を介して接続された入力装置によって入力されたデータ名ＩＤ（Ｄ）を取得する。データ取得部４１２は、データ名ＩＤ（Ｄ）をメモリ４２に書き込む。
【００６５】
（ステップＳ５２：削除依頼処理）
データ送信部４１５は、ステップＳ５１で書き込まれたデータ名ＩＤ（Ｄ）をメモリ４２から読み出す。データ送信部４１５は、通信インタフェース４４を介して、データ名ＩＤ（Ｄ）をデータ管理装置３０に送信する。
【００６６】
（ステップＳ５３：削除依頼受信処理）
データ管理装置３０の削除部３１７は、通信インタフェース３４を介して、ステップＳ５２で送信されたデータ名ＩＤ（Ｄ）を受信する。削除部３１７は、データ名ＩＤ（Ｄ）をメモリ３２に書き込む。
【００６７】
（ステップＳ５４：削除処理）
削除部３１７は、ステップＳ５３で書き込まれたデータ名ＩＤ（Ｄ）をメモリ３２から読み出す。削除部３１７は、データ名ＩＤ（Ｄ）が示す暗号化データＢ（Ｄ）をデータ記憶部３３２から削除する。また、削除部３１７は、データ名ＩＤ（Ｄ）を含む保管暗号化データＩ（Ｄ）を暗号化索引Ｉから削除する。
【００６８】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係る秘匿検索システム１０は、各登録装置４０及び各検索装置５０が異なる鍵Ｋ１及び異なる写像ｓｋを用いる。そのため、暗号化タグとトラップドアとの解読と、なりすましとを防止することが可能である。
【００６９】
また、実施の形態１に係る秘匿検索システム１０は、データ登録処理及びデータ検索処理において、写像ｆを用いて変換を行う。そのため、データ管理装置３０が鍵記憶部３３１から対象とする識別子Ｕ＊についての写像ｆ＿Ｕ＊を削除することにより、対象とする識別子Ｕ＊が割り当てられた登録装置４０又は検索装置５０の権限を失効させることができる。
【００７０】
また、実施の形態１に係る秘匿検索システム１０は、図９のステップＳ４６の検索処理は、従来の共通鍵型秘匿検索と同様に高速に実行可能である。トラップドアｔ（ｓ）の変換に処理時間が必要ではあるが、トラップドアｔ（ｓ）の変換は１回あるいは定数回の計算量である。そのため、従来の公開鍵型秘匿検索よりも高速にデータの検索が可能である。
【００７１】
また、実施の形態１に係る秘匿検索システム１０は、どの検索装置５０によって実行されたデータ検索処理においても、全ての登録装置４０によって登録されたデータを対象として検索を行うことが可能である。つまり、登録装置４０及び検索装置５０によらず、暗号化索引Ｉを共通化できる。そのため、暗号化索引Ｉを記憶するストレージ３３の容量が少なくて済む。
【００７２】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、鍵生成装置２０が鍵Ｋ２と写像ｍｋと鍵Ｋ１と写像ｓｋと写像ｆとを生成した。しかし、鍵Ｋ２と写像ｍｋと鍵Ｋ１と写像ｓｋと写像ｆとを生成する装置を複数の装置に分けてもよい。
【００７３】
＜変形例２＞
実施の形態１では、鍵生成装置２０は、登録装置４０及び検索装置５０に写像ｓｋ＿Ｕを送信した。これに代えて、鍵生成装置２０は、登録装置４０及び検索装置５０のいずれか一方に、写像ｓｋ＿Ｕに代えて写像ｍｋを送信してもよい。
鍵生成装置２０が登録装置４０に写像ｍｋを送信する場合には、図８のステップＳ３２において、暗号化タグ生成部４１３は、写像ｓｋ＿Ｕに代えて写像ｍｋを用いて暗号化タグｃを生成する。そして、図８のステップＳ３６の処理は省略される。
鍵生成装置２０が検索装置５０に写像ｍｋを送信する場合には、図９のステップＳ４２において、トラップドア生成部５１３は、写像ｓｋ＿Ｕに代えて写像ｍｋを用いてトラップドアｔ（ｓ）を生成する。そして、図９のステップＳ４５は省略される。
【００７４】
＜変形例３＞
実施の形態１では、暗号化データＢ（Ｄ）及び暗号化索引Ｉは、データ管理装置３０のストレージ３３によって実現されるデータ記憶部３３２に記憶された。しかし、暗号化データＢ（Ｄ）及び暗号化索引Ｉは、データ管理装置３０の外部の記憶装置に記憶されてもよい。言い換えると、データ記憶部３３２は、データ管理装置３０の外部の記憶装置に設けられてもよい。
【００７５】
＜変形例４＞
実施の形態１では、各機能構成要素がソフトウェアで実現された。しかし、変形例４として、各機能構成要素はハードウェアで実現されてもよい。この変形例４について、実施の形態１と異なる点を説明する。
【００７６】
図１１を参照して、変形例４に係る鍵生成装置２０の構成を説明する。
機能がハードウェアで実現される場合、鍵生成装置２０は、プロセッサ２１とメモリ２２とストレージ２３とに代えて、電子回路２５を備える。電子回路２５は、共通パラメータ生成装置２０の機能構成要素と、メモリ２２とストレージ２３との機能とを実現する専用の回路である。
【００７７】
図１２を参照して、変形例４に係るデータ管理装置３０の構成を説明する。
機能がハードウェアで実現される場合、データ管理装置３０は、プロセッサ３１とメモリ３２とストレージ３３とに代えて、電子回路３５を備える。電子回路３５は、鍵生成装置３０の機能構成要素と、メモリ３２とストレージ３３との機能とを実現する専用の回路である。
【００７８】
図１３を参照して、変形例４に係る登録装置４０の構成を説明する。
機能がハードウェアで実現される場合、登録装置４０は、プロセッサ４１とメモリ４２とストレージ４３とに代えて、電子回路４５を備える。電子回路４５は、変換鍵生成装置４０の機能構成要素と、メモリ４２とストレージ４３との機能とを実現する専用の回路である。
【００７９】
図１４を参照して、変形例４に係る検索装置５０の構成を説明する。
機能がハードウェアで実現される場合、検索装置５０は、プロセッサ５１とメモリ５２とストレージ５３とに代えて、電子回路５５を備える。電子回路５５は、暗号化装置５０の機能構成要素と、メモリ５２とストレージ５３との機能とを実現する専用の回路である。
【００８０】
電子回路２５，３５，４５，５５は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
鍵生成装置２０の各機能構成要素の機能を１つの電子回路２５で実現してもよいし、各機能構成要素の機能を複数の電子回路２５に分散させて実現してもよい。同様に、データ管理装置３０と登録装置４０と検索装置５０とのそれぞれについて、各機能構成要素の機能を１つの電子回路３５，４５，５５で実現してもよいし、各機能構成要素の機能を複数の電子回路３５，４５，５５に分散させて実現してもよい。
【００８１】
＜変形例５＞
変形例５として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００８２】
プロセッサ２１，３１，４１，５１とメモリ２２，３２，４２，５２とストレージ２３，３３，４３，５３と電子回路２５，３５，４５，５５とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【符号の説明】
【００８３】
１０  秘匿検索システム、２０  鍵生成装置、２１  プロセッサ、２２  メモリ、２３  ストレージ、２４  通信インタフェース、２５  電子回路、２１１  パラメータ取得部、２１２  鍵生成部、２１３  鍵送信部、２３１  鍵記憶部、３０  データ管理装置、３１  プロセッサ、３２  メモリ、３３  ストレージ、３４  通信インタフェース、３５  電子回路、３１１  鍵取得部、３１２  データ取得部、３１３  保管タグ生成部、３１４  トラップドア取得部、３１５  検索暗号文生成部、３１６  検索部、３１７  削除部、３３１  鍵記憶部、３３２  データ記憶部、４０  登録装置、４１  プロセッサ、４２  メモリ、４３  ストレージ、４４  通信インタフェース、４５  電子回路、４１１  鍵取得部、４１２  データ取得部、４１３  暗号化タグ生成部、４１４  暗号化部、４１５  データ送信部、４３１  鍵記憶部、５０  検索装置、５１  プロセッサ、５２  メモリ、５３  ストレージ、５４  通信インタフェース、５５  電子回路、５１１  鍵取得部、５１２  検索ワード取得部、５１３  トラップドア生成部、５１４  検索依頼部、５３１  鍵記憶部、９０  伝送路。
【図１】
2019142265.tif 000003
【図２】
2019142265.tif 000004
【図３】
2019142265.tif 000005
【図４】
2019142265.tif 000006
【図５】
2019142265.tif 000007
【図６】
2019142265.tif 000008
【図７】
2019142265.tif 000009
【図８】
2019142265.tif 000010
【図９】
2019142265.tif 000011
【図１０】
2019142265.tif 000012
【図１１】
2019142265.tif 000013
【図１２】
2019142265.tif 000014
【図１３】
2019142265.tif 000015
【図１４】
2019142265.tif 000016
【手続補正書】
【提出日】平成30年8月17日(2018.8.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得部と、
前記トラップドア取得部によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成部と
を備え、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理装置。
【請求項２】
データ管理装置は、さらに、
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得部と、
前記データ取得部によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成部と
を備える請求項１に記載のデータ管理装置。
【請求項３】
前記保管タグｃ’は、データ記憶部に書き込まれ、
前記データ管理装置は、さらに、
前記データ記憶部に記憶された保管タグｃ’から、前記検索暗号文生成部によって生成された前記検索暗号文ｃ（ｓ）に対応する保管タグｃ’を検索する検索部
を備える請求項２に記載のデータ管理装置。
【請求項４】
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得部と、
前記データ取得部によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成部と
を備え、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理装置。
【請求項５】
データを検索するための検索ワードｓを、識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって変換して、トラップドアｔ（ｓ）を生成するトラップドア生成部と、
前記トラップドア生成部によって生成された前記トラップドアｔ（ｓ）をデータ管理装置に送信して、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって前記トラップドアｔ（ｓ）を変換した検索暗号文ｃ（ｓ）により検索させる検索依頼部と
を備え、
前記写像ｓｋ＿Ｕ’は、識別子毎に異なる写像ｆのうちの前記識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’との合成が識別子に共通の写像ｍｋになる検索装置。
【請求項６】
データＤを暗号化して暗号化データＢ（Ｄ）を生成する暗号化部と、
前記データＤを検索するためのキーワードｗを、識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによって変換して、暗号化タグｃを生成する暗号化タグ生成部と、
前記暗号化部によって生成された暗号化データＢ（Ｄ）と、前記暗号化タグ生成部によって生成された暗号化タグｃとの組を登録データとしてデータ管理装置に送信して、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって前記暗号化タグｃを変換した保管タグｃ’と、暗号化データＢ（Ｄ）との組を保管させるデータ登録部と
を備え、
前記写像ｓｋ＿Ｕは、識別子毎に異なる写像ｆのうちの前記識別子Ｕに割り当てられた写像ｆ＿Ｕとの合成が識別子に共通の写像ｍｋになる登録装置。
【請求項７】
トラップドア取得部が、識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得し、
検索暗号文生成部が、前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成し、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理方法。
【請求項８】
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得処理と、
前記トラップドア取得処理によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成処理と
をコンピュータに実行させ、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理プログラム。
【請求項９】
データ取得部が、識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得し、
保管タグ生成部が、前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成し、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理方法。
【請求項１０】
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得処理と、
前記データ取得処理によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成処理と
をコンピュータに実行させ、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理プログラム。
【手続補正書】
【提出日】平成30年11月21日(2018.11.21)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得部と、
前記トラップドア取得部によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成部と、
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得部と、
前記データ取得部によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成部と、
前記検索暗号文ｃ（ｓ）と一致する前記保管タグｃ’を特定する検索部と
を備え、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理装置。
【請求項２】
前記保管タグｃ’は、データ記憶部に書き込まれ、
前記検索部は、前記データ記憶部に記憶された保管タグｃ’から、前記検索暗号文生成部によって生成された前記検索暗号文ｃ（ｓ）に対応する保管タグｃ’を検索する
請求項１に記載のデータ管理装置。
【請求項３】
データ管理装置のトラップドア取得部が、識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得し、
前記データ管理装置の検索暗号文生成部が、前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成し、
前記データ管理装置のデータ取得部が、識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得し、
前記データ管理装置の保管タグ生成部が、前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成し、
前記データ管理装置の検索部が、前記検索暗号文ｃ（ｓ）と一致する前記保管タグｃ’を特定し、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理方法。
【請求項４】
識別子毎に異なる写像ｓｋのうちの識別子Ｕ’に割り当てられた写像ｓｋ＿Ｕ’によって検索ワードｓが変換されたトラップドアｔ（ｓ）を取得するトラップドア取得処理と、
前記トラップドア取得処理によって取得された前記トラップドアｔ（ｓ）を、識別子毎に異なる写像ｆのうちの識別子Ｕ’に割り当てられた写像ｆ＿Ｕ’によって変換して、検索暗号文ｃ（ｓ）を生成する検索暗号文生成処理と、
識別子毎に異なる写像ｓｋのうちの識別子Ｕに割り当てられた写像ｓｋ＿Ｕによってキーワードｗが変換された暗号化タグｃを取得するデータ取得処理と、
前記データ取得処理によって取得された前記暗号化タグｃを、識別子毎に異なる写像ｆのうちの識別子Ｕに割り当てられた写像ｆ＿Ｕによって変換して、保管タグｃ’を生成する保管タグ生成処理と、
前記検索暗号文ｃ（ｓ）と一致する前記保管タグｃ’を特定する検索処理と
を実行するデータ管理装置としてコンピュータを機能させ、
同一の識別子に割り当てられた前記写像ｓｋと前記写像ｆとは、合成写像が識別子に共通の写像ｍｋになるデータ管理プログラム。
【国際調査報告】
2019142265.tif 000017
2019142265.tif 000018
2019142265.tif 000019
2019142265.tif 000020