(57)【要約】  索引ビット列生成部（３１０）は、データセンタ装置（４０１）で保管される暗号化データの検索の際に索引として用いられるビット列を、暗号化データに関連付けて、索引ビット列として生成する。また、索引ビット列生成部（３１０）は、索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する。端末側データ送受信部（３０９）は、索引ビット列生成部（３１０）により複数のビット値が暗号化された後の索引ビット列である暗号化索引ビット列と、暗号化データとをデータセンタ装置（４０１）に送信する。
2019053788.tif 000002
【特許請求の範囲】
【請求項１】
データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成部と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化部と、
前記索引ビット列暗号化部により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信部とを有するデータ処理装置。
【請求項２】
前記索引ビット列生成部は、
前記索引ビット列の生成過程において確定的暗号方式による暗号化を行って前記索引ビット列を生成する請求項１に記載のデータ処理装置。
【請求項３】
前記索引ビット列暗号化部は、
前記索引ビット列の前記複数のビット値の各々を、異なる索引鍵を用いて暗号化する請求項１に記載のデータ処理装置。
【請求項４】
前記索引ビット列暗号化部は、
前記索引ビット列の前記複数のビット値を、前記索引ビット列のビット数よりも少ない個数の索引鍵を用いて暗号化する請求項１に記載のデータ処理装置。
【請求項５】
前記索引ビット列生成部は、
複数の暗号化データに関連付けて、複数の索引ビット列を生成し、
前記索引ビット列暗号化部は、
前記複数の索引ビット列の同じビット位置にあるビット値を同じ索引鍵を用いて暗号化する請求項１に記載のデータ処理装置。
【請求項６】
前記送信部は、
前記暗号化索引ビット列と、前記暗号化データと、前記暗号化データの検索の際に照合される暗号化されたタグである暗号化タグとを前記データ保管装置に送信する請求項１に記載のデータ処理装置。
【請求項７】
前記索引ビット列暗号化部は、
前記索引ビット列の複数のビット位置のうちビット値の開示が許可されるビット位置である許可ビット位置以外のビット位置にある暗号化されたビット値は、前記許可ビット位置のビット値の暗号化に用いられた索引鍵では復号されない暗号化方式にて、前記索引ビット列の前記複数のビット値を暗号化する請求項１に記載のデータ処理装置。
【請求項８】
前記データ処理装置は、更に、
前記送信部により前記データ保管装置に前記暗号化索引ビット列が送信され後に、前記許可ビット位置を指定する許可ビット位置指定部を有し、
前記送信部は、
前記許可ビット位置指定部により前記許可ビット位置が指定された後に、前記許可ビット位置のビット値の暗号化に用いられた索引鍵を前記データ保管装置に送信する請求項７に記載のデータ処理装置。
【請求項９】
コンピュータが、データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成し、
前記コンピュータが、前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化し、
前記コンピュータが、前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信するデータ処理方法。
【請求項１０】
データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成処理と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化処理と、
前記索引ビット列暗号化処理により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信処理とをコンピュータに実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿検索技術に関する。
【背景技術】
【０００２】
秘匿検索とは、暗号化データを暗号化したまま検索する技術である。
近年、秘匿検索は、クラウドサービスなどのインターネット上でデータを管理する際のサーバ管理者による盗聴からも機密情報を守るためのセキュリティ技術として注目されている。【０００３】
秘匿検索の基本的な流れは、下記の通りである。
まず、データを暗号化するユーザ（暗号化者）は、データを暗号化して暗号化データを生成する。また、ユーザ（暗号化者）は、生成した暗号化データを検索するためのキーワードを当該暗号化データに関連付ける。
関連付けたキーワードもデータに関する情報であるため、キーワードも暗号化される。暗号化されたキーワードは暗号化タグという。暗号化データと暗号化タグはデータセンタ装置に保管される。
暗号化タグは１個である必要はなく、複数の暗号化タグを暗号化データに関連付けることができる。
また、暗号化タグからキーワードが漏れることはない。【０００４】
検索を行うユーザ（検索者）は、検索したいキーワードを選び、そのキーワードと自身の持つ秘密鍵を用いて検索クエリを生成する。
検索クエリは、秘密鍵を用いてキーワードをランダム化したものであるため、検索クエリ自身から秘密鍵を類推するのは難しい。
そして、ユーザ（検索者）は、この検索クエリをデータセンタ装置に送信し、データセンタ装置に検索を要求する。【０００５】
データセンタ装置は、ユーザ（暗号化者）から保管を依頼された暗号化データと暗号化タグを相互に対応付けて保管している。
データセンタ装置は、ユーザ（検索者）から検索クエリを受け取ったら、データセンタ装置が保管する暗号化タグの中から、検索クエリの生成に用いられたキーワードと同一のキーワードを含む暗号化タグを検索する。
この時、データセンタ装置は秘匿検索のための特殊な演算を行うことによって、暗号化タグを復号してキーワードを取り出すことなく、暗号化タグのキーワードと、検索クエリのキーワードが同一かどうかを判定できる。
そして、データセンタ装置はキーワードが検索クエリと同一と判定された暗号化タグと関連付けられた暗号化データをユーザ（検索者）に返却する。【０００６】
なお、秘匿検索には、暗号化者と検索者が同一の秘密情報を保持しなくてはならない共通鍵方式と、暗号化者は誰でも良くて検索者のみが秘密情報を保持する特定ユーザに限定された公開鍵方式の２種類がある。【０００７】
また、秘匿検索を実現する手法は、確定的暗号を利用する方法と、確率的暗号を利用する方法の２種類がある。
確定的暗号とは、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号文が得られるという特徴を持つ暗号化方式である。
そのため、確定的暗号には、従来のデータベースで実現されている転置索引などの高速化手法を利用して、検索を高速に実施することができるという特徴がある。
その一方で、暗号化データの出現頻度をカウントする事ができるため、確定的暗号には、例えばキーワードが名字であった場合、一般的に知られている名字の人口比率の情報等を元にして、暗号化データの中身が推測できてしまうという欠点もある（例えば非特許文献２）。【０００８】
一方、確率的暗号とは、同一のキーワードを暗号化する場合でも、暗号化のたびに異なる暗号文となるという特徴を持つ暗号化方式である。
したがって、単純に暗号化データ同士を比較してもキーワードが同一かどうか分からない。このため、確定的暗号で問題となっていた出現頻度のカウントによるキーワードの推測ができない様になっており、その安全性が高い事が特徴である。
その一方で、キーワードの同一性すら分からないため、従来のデータベースで実現されていた高速化手法が使えず、検索が遅いという欠点がある（例えば非特許文献１、非特許文献３、非特許文献４、非特許文献５）。【０００９】
確率的暗号を用いた秘匿検索を高速化する手法として、検索結果をキャッシュすることによって平均応答時間を短縮するアイデアが提案されている。
これは、一般的な検索では同じキーワードで２回以上検索される事があるという特徴に着目したものである。この手法では、１回目の検索では時間がかかるものの、その結果をキャッシュして２回目以降はキャッシュした結果を返すだけにする事で、検索の高速化を図っている（例えば特許文献１）。【００１０】
また、確率的暗号を用いた秘匿検索方式において、キーワードの部分情報であるビット列を暗号化し、暗号化されたビット列をデータセンタ装置に送信することによって、秘匿検索を高速化する技術がある（例えば、特許文献２）。
特許文献２の技術では、暗号化されたビット列のうちの一部のビット値が開示されることで、データセンタ装置は当該ビット列を索引として用いることができる。この結果、特許文献２の技術により、秘匿検索を高速化することができる。更に、特許文献２の技術では、データセンタ装置に登録されている暗号化データの数が増加して検索速度が遅くなった場合に、ビット列内の秘匿されているビット値を追加でデータセンタ装置に開示することで、秘匿検索の検索速度を改善することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−１３４９９０号公報
【特許文献２】国際公開２０１２／０９５９７３号
【非特許文献】
【００１２】
【非特許文献１】Ｄ．Ｂｏｎｅｈ、Ｇ．Ｄ．Ｃｒｅｓｃｅｎｚｏ、Ｒ．Ｏｓｔｒｏｖｓｋｙ、Ｇ．ＰｅｒｓｉａｎｏＧ、“Ｐｕｂｌｉｃ  Ｋｅｙ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｋｅｙｗｏｒｄ  Ｓｅａｒｃｈ”、ＥＵＲＯＣＲＹＰＴ’２００４、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．３０２７、２００４．
【非特許文献２】Ｍ．Ｂｅｌｌａｒｅ、Ａ．Ｂｏｌｄｙｒｅｖａ、Ａ．Ｏ’Ｎｅｉｌｌ、“Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  ａｎｄ  Ｅｆｆｉｃｉｅｎｔｌｙ  Ｓｅａｒｃｈａｂｌｅ  Ｅｎｃｒｙｐｔｉｏｎ”、ＣＲＹＰＴＯ’２００７、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．４６２２、２００７．
【非特許文献３】Ｊ．Ｋａｔｚ、Ａ．Ｓａｈａｉ、Ｂ．Ｗａｔｅｒｓ、“Ｐｒｅｄｉｃａｔｅ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｕｐｐｏｒｔｉｎｇ  Ｄｉｓｊｕｎｃｔｉｏｎｓ，Ｐｏｌｙｎｏｍｉａｌ  Ｅｑｕａｔｉｏｎｓ，ａｎｄ  Ｉｎｎｅｒ  Ｐｒｏｄｕｃｔｓ”、ＥＵＲＯＣＲＹＰＴ  ２００８、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．４９６５、２００８．
【非特許文献４】服部  充洋、森  拓海、伊藤  隆、松田  規、米田  健、太田  和夫、“Ａｎｏｎｙｍｏｕｓ  ＨＩＢＥ  ｗｉｔｈ  Ｗｉｌｄｃａｒｄｓ  ａｎｄ  Ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  Ｓｅｃｕｒｅ  Ｋｅｙｗｏｒｄ  Ｓｅａｒｃｈ  ｆｏｒ  Ｇｒｏｕｐ−Ｏｒｉｅｎｔｅｄ  Ｍｕｌｔｉ−Ｕｓｅｒ  Ｓｙｓｔｅｍ”、ＳＣＩＳ’２０１０、３Ａ４−２、電子情報通信学会、２０１０．
【非特許文献５】Ｔａｔｓｕａｋｉ  Ｏｋａｍｏｔｏ、Ｋａｔｓｕｙｕｋｉ  Ｔａｋａｓｈｉｍａ、“Ｈｉｅｒａｒｃｈｉｃａｌ  Ｐｒｅｄｉｃａｔｅ  Ｅｎｃｒｙｐｔｉｏｎ  ｆｏｒ  Ｉｎｎｅｒ−Ｐｒｏｄｕｃｔｓ”、ＡＳＩＡＣＲＹＰＴ’２００９、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．５９１２、２００９．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献２では、データセンタ装置において索引として用いられるビット列は公開鍵方式を用いて暗号化されている。このため、データセンタ装置でビット列の一部のビット値の復号する際に、復号処理に時間を要するという課題がある。【００１４】
本発明は、このような課題を解決することを主な目的とする。より具体的には、本発明は、索引として用いられるビット列の復号処理を高速化することにより、検索処理を高速化することを主な目的とする。
【課題を解決するための手段】
【００１５】
本発明に係るデータ処理装置は、
データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成部と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化部と、
前記索引ビット列暗号化部により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信部とを有する。
【発明の効果】
【００１６】
本発明では、索引ビット列は、共通鍵方式の索引鍵を用いて暗号化される。このため、本発明によれば、索引ビット列の復号処理を高速化することができ、この結果、検索処理を高速化することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１に係る秘匿検索システムの構成例を示す図。
【図２】実施の形態１に係る秘匿検索システムを示す図。
【図３】実施の形態１に係る秘匿検索システムを示す図。
【図４】実施の形態１に係る秘匿検索システムを示す図。
【図５】実施の形態１に係る秘匿検索システムを示す図。
【図６】実施の形態１に係るアクセス端末装置の機能構成例を示す図。
【図７】実施の形態１に係るデータセンタ装置の機能構成例を示す図。
【図８】実施の形態１に係るアクセス端末装置の動作例を示すフローチャート図。
【図９】実施の形態１に係るアクセス端末装置の動作例を示すフローチャート図。
【図１０】実施の形態１に係るアクセス端末装置の動作例を示すフローチャート図。
【図１１】実施の形態１に係るデータセンタ装置の動作例を示すフローチャート図。
【図１２】実施の形態１に係るデータセンタ装置の動作例を示すフローチャート図。
【図１３】実施の形態１に係るデータセンタ装置の動作例を示すフローチャート図。
【図１４】実施の形態１に係るアクセス端末装置のハードウェア構成例を示す図。
【図１５】実施の形態１に係るデータセンタ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１８】
実施の形態１．
本実施の形態では、暗号化データの検索の際に索引として用いられるビット列（以下、索引ビット列）を暗号化し、暗号化により得られた索引ビット列（以下、暗号化索引ビット列という）を暗号化タグに付加して秘匿検索を高速化する方式を説明する。
更に、本実施の形態１では、データセンタ装置に登録された暗号化データの数が増加して検索処理が遅くなった場合に、暗号化索引ビット列の暗号化されているビット値を段階的に開示することで、秘匿検索を安全に高速化する方式を説明する。
【００１９】
図１は、秘匿検索システム１００の構成例を示す図である。
【００２０】
秘匿検索システム１００は、鍵管理サーバ装置２０１、アクセス端末装置３０１、データセンタ装置４０１を備える。
鍵管理サーバ装置２０１とアクセス端末装置３０１とは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０２に接続されている。
ＬＡＮ１０２は、ネットワーク１０１を介してデータセンタ装置４０１と接続されている。
なお、アクセス端末装置３０１はデータ処理装置の例であり、データセンタ装置４０１はデータ保管装置の例である。
図１では、１つのアクセス端末装置３０１のみが示されているが、秘匿検索システム１００に複数のアクセス端末装置３０１が含まれていてもよい。
【００２１】
鍵管理サーバ装置２０１は、データセンタ装置４０１での保管対象となる保管対象データの暗号化に用いる暗号鍵及びタグの暗号化に用いる暗号鍵を生成する。
また、鍵管理サーバ装置２０１は、索引ビット列の暗号化に用いる複数の索引鍵を生成してもよい。
【００２２】
アクセス端末装置３０１は、ユーザが利用するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。
アクセス端末装置３０１は、保管対象データを生成し、生成した保管対象データを暗号化する。また、アクセス端末装置３０１は、暗号化により得られた暗号化データをデータセンタ装置４０１に保管する。また、アクセス端末装置３０１は、データセンタ装置４０１に、暗号化データの検索を要求する。そして、アクセス端末装置３０１は、データセンタ装置４０１から、取得された暗号化データを受信し、受信した暗号化データの復号を行う。
【００２３】
データセンタ装置４０１は、暗号化データを保管する大容量の記憶装置を持つサーバ装置である。
保管対象データは暗号化された状態で保管されるため、データセンタ装置４０１では保管対象データの中身を閲覧することができない。
【００２４】
ネットワーク１０１は、ＬＡＮ１０２とデータセンタ装置４０１を接続する通信路である。
例えば、インターネットなどが代表的なネットワーク１０１の例である。
【００２５】
ここで、図２〜図５を参照して、本実施の形態における秘匿検索システム１００の概要を説明する。
【００２６】
図２に示すように、アクセス端末装置３０１は、保管対象データを暗号化して、暗号化データを生成する。
また、アクセス端末装置３０１は、保管対象データからキーワードを抽出し、抽出したキーワードを乱数と暗号鍵を用いて暗号化して暗号化タグを生成する。
暗号化タグは、暗号化データの検索の際に照合されるデータである。
また、アクセス端末装置３０１は、保管対象データのキーワードに対して規定の演算を行って索引ビット列を生成する。アクセス端末装置３０１は、例えば、キーワードに対してハッシュ演算を行って索引ビット列を生成する。また、アクセス端末装置３０１は、ハッシュ演算に加え暗号鍵を用いて確定的暗号方式による暗号化を行って索引ビット列を生成してもよい。
そして、アクセス端末装置３０１は、索引ビット列を暗号化する。より具体的には、アクセス端末装置３０１は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。
そして、アクセス端末装置３０１は、暗号化データと、暗号化タグと、索引ビット列を暗号化して得られた暗号化索引ビット列をデータセンタ装置４０１に送信する。
【００２７】
データセンタ装置４０１は、暗号化データと暗号化タグと暗号化索引ビット列を受信する。そして、データセンタ装置４０１は、暗号化データと暗号化タグと暗号化索引ビット列を相互に対応付けて記憶する。
【００２８】
図３に示すように、データセンタ装置４０１に保管されている暗号化データを検索する際には、アクセス端末装置３０１は、検索対象のキーワードを暗号化してトラップドアを生成する。
そして、アクセス端末装置３０１は、トラップドアが含まれる検索クエリをデータセンタ装置４０１に送信する。
なお、データセンタ装置４０１に暗号化データを登録するアクセス端末装置３０１と、データセンタ装置４０１に暗号化データの検索を要求するアクセス端末装置３０１は一致していなくてもよい。
【００２９】
データセンタ装置４０１は、アクセス端末装置３０１から検索クエリを受信した場合に、検索クエリに含まれているトラップドアを暗号化タグと照合する。
そして、データセンタ装置４０１は、照合の結果、トラップドアの生成に用いられたキーワードと同じキーワードで生成されている暗号化タグを特定し、特定したタグデータと対応付けられている暗号化データを抽出する。次に、データセンタ装置４０１は、抽出した暗号化データを検索クエリの送信元のアクセス端末装置３０１に送信する。
【００３０】
データセンタ装置４０１で保管されている暗号化データが増えてくると、検索効率が低下し、暗号化データの検索速度が遅くなる。
このような場合には、図４に示すように、暗号化データの保管を要求したアクセス端末装置３０１は、暗号化索引ビット列の一部のビット値をデータセンタ装置４０１に開示する。アクセス端末装置３０１は、１ビットずつ段階的にビット値を開示してもよいし、複数ビットずつ段階的にビット値を開示してもよい。また、アクセス端末装置３０１は、１度にすべてのビット値を開示してもよい。
ビット値の開示は、具体的には、アクセス端末装置３０１は、暗号化索引ビット列の生成に用いられた索引鍵をデータセンタ装置４０１に送信することで行われる。なお、この索引鍵の送信は暗号化通信により行われる。
【００３１】
データセンタ装置４０１は、アクセス端末装置３０１から送信された索引鍵を受信する。そして、データセンタ装置４０１は、受信した索引鍵を用いて暗号化索引ビット列の暗号化されているビット値の復号を行う。
例えば、図２に示すように、暗号化データと対応付けられている暗号化索引ビット列の暗号化前の値（つまり、索引ビット列の値）が「０１１」であるとする。
アクセス端末装置３０１が、最上位ビットのビット値を解除するための索引鍵をデータセンタ装置４０１に送信したと仮定する。
データセンタ装置４０１は、受信した索引鍵を用いて、上記「０１１」の索引ビット列のうち、最上位ビットのビット値である「０」を得る。
アクセス端末装置３０１は、図５に示すように、トラップドアと暗号化索引ビット列の最上位ビットのビット値である「０」を含む検索クエリをデータセンタ装置４０１に送信する。
データセンタ装置４０１は、最上位ビットのビット値が「０」である暗号化索引ビット列に対応付けられている暗号化タグを選択し、選択した暗号化タグのみをトラップドアと照合する。
更に検索効率が低下した場合には、アクセス端末装置３０１は、暗号化索引ビット列の下位のビット値をデータセンタ装置４０１に開示する。このようにすることで、検索効率が低下した場合にも、暗号化ビット列のビット値の開示により検索効率を改善することができる。
【００３２】
本実施の形態では、索引ビット列は共通鍵方式で暗号化される。このため、データセンタ装置４０１は、高速に索引ビット列のビット値の復号を行うことができる。
また、本実施の形態では、アクセス端末装置３０１は、索引ビット列の生成過程で確定的暗号方式による暗号化を行う。このため、暗号化索引ビット列の全てのビット値がデータセンタ装置４０１に開示された場合でも、データセンタ装置４０１にキーワードが漏洩するおそれがない。例えば、暗号鍵を用いずにキーワードにハッシュ演算を行って索引ビット列を生成する場合は、ハッシュ演算は誰でも実行できるため、索引ビット列を誰でも生成することができる。このため、手当り次第にキーワードのハッシュ値を計算することで、データセンタ装置４０１に保管されたハッシュ値と同じものが現れる可能性があり、その時索引ビット列の生成のもとになったキーワードを得ることができる。しかし、本実施の形態に係る索引ビット列は、確定的暗号方式の暗号が行われて生成された索引ビット列であるため、キーワードが漏洩する心配はない。
【００３３】
以上が、本実施の形態に係る秘匿検索システム１００における動作の概要であり、以下では、アクセス端末装置３０１及びデータセンタ装置４０１の内部構成を説明する。
【００３４】
図６は、アクセス端末装置３０１の機能構成例を示す。
また、図１４は、アクセス端末装置３０１のハードウェア構成例を示す。
【００３５】
図６に示すように、アクセス端末装置３０１は、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０を備える。
【００３６】
本実施の形態に係るアクセス端末装置３０１は、コンピュータである。
図１４に示すように、アクセス端末装置３０１は、ハードウェアとして、プロセッサ９３１、補助記憶装置９３２、メモリ９３３、通信インタフェース９３４及び入出力インタフェース９３５を備える。
補助記憶装置９３２には、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の機能を実現するプログラムが記憶されている。
これらプログラムは補助記憶装置９３２からメモリ９３３にロードされる。
そして、プロセッサ９３１がこれらプログラムを実行して、後述するデータ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の動作を行う。
図１４では、プロセッサ９３１がデータ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の機能を実現するプログラムを実行している状態を模式的に表している。
アクセス端末装置３０１が行う動作は、データ処理方法に相当する。また、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の機能を実現するプログラムは、データ処理プログラムに相当する。
通信インタフェース９３４は、外部装置と通信を行う。
入出力インタフェース９３５は、アクセス端末装置３０１のユーザからの指示を受け付け、また、アクセス端末装置３０１のユーザに情報を提示する。
【００３７】
次に、図６に示すアクセス端末装置３０１の機能構成の詳細を説明する。
【００３８】
データ暗号化部３０２は、ユーザ又はアプリケーションからデータセンタ装置４０１で保管する保管対象データを受領する。また、データ暗号化部３０２は、共通鍵暗号を用いて保管対象データを暗号化し、保管対象データの暗号化データを得る。
データ暗号化部３０２が保管対象データの暗号化に用いる暗号鍵を以下では暗号鍵ｅｋａという。
また、データ暗号化部３０２は、保管対象データから後で検索に利用されるキーワードを抽出する。また、データ暗号化部３０２は、ユーザからデータに関連付けるキーワードを受領してもよい。
【００３９】
暗号化タグ生成部３０３は、データ暗号化部３０２で保管対象データに関連付けられたキーワードを乱数と暗号鍵を用いて暗号化して暗号化タグを生成する。
暗号化タグ生成部３０３がキーワードの暗号化に用いる暗号鍵を以下では暗号鍵ｅｋｂという。
【００４０】
暗号化索引ビット列生成部３１０は、保管対象データのキーワードに対して規定の演算を行って索引ビット列を生成する。
また、暗号化索引ビット列生成部３１０は、索引鍵を用いて索引ビット列を暗号化する。
【００４１】
本実施の形態では、暗号化索引ビット列生成部３１０は、索引ビット列の複数のビット値の各々を、異なる索引鍵を用いて暗号化する。例えば、索引ビット列が３ビットであれば、暗号化索引ビット列生成部３１０は、３つの索引鍵を用いる。
暗号化索引ビット列生成部３１０が索引ビット列の暗号化に用いる索引鍵を以下では索引鍵ｉｋという。以下では、「ｉｋ」の後ろに索引鍵ｉｋが対応しているビット位置を表す数字を付加する。例えば、索引ビット列が３ビットであれば、最上位ビットのビット値の暗号化に用いられる索引鍵は索引鍵ｉｋ１と表記する。また、最下位ビットのビット値の暗号化に用いられる索引鍵は索引鍵ｉｋ３と表記する。なお、「ｉｋ」の後ろに数字が付加されない「索引鍵ｉｋ」との表記は、複数の索引鍵の全て又は複数の索引鍵のうちの一部の索引鍵を意味する。
【００４２】
また、暗号化索引ビット列生成部３１０は、複数の暗号化データがデータセンタ装置４０１に保管される場合は、複数の暗号化データに対応させて複数の索引ビット列を生成する。そして、暗号化索引ビット列生成部３１０は、複数の暗号化データの複数の索引ビット列の暗号化に共通する索引鍵のセットを用いることができる。
つまり、暗号化索引ビット列生成部３１０は、複数の索引ビット列の同じビット位置にあるビット値を同じ索引鍵を用いて暗号化する。例えば、全ての索引ビット列が３ビットであれば、暗号化索引ビット列生成部３１０は、全ての索引ビット列の最上位ビットのビット値を索引鍵ｉｋ１を用いて暗号化する。また、暗号化索引ビット列生成部３１０は、全ての索引ビット列の最下位ビットのビット値を索引鍵ｉｋ３を用いて暗号化する。
このようにすることで、後述する許可ビット位置指定部３０８が索引鍵ｉｋ１をデータセンタ装置４０１に送信するのみで、複数の暗号化データの複数の暗号化索引ビット列の最上位ビットのビット値を開示することができる。
なお、暗号化索引ビット列生成部３１０は、複数の索引ビット列の暗号化にそれぞれ異なる索引鍵のセットを用いてもよい。
【００４３】
また、本実施の形態では、暗号化索引ビット列生成部３１０は、索引ビット列の複数のビット値の各々を、異なる索引鍵を用いて暗号化するが、暗号化索引ビット列生成部３１０は、索引ビット列の複数のビット値を、索引ビット列のビット数よりも少ない個数の索引鍵を用いて暗号化してもよい。具体的には、索引ビット列が３ビットであれば、暗号化索引ビット列生成部３１０は、１つ又は２つの索引鍵を用いるようにしてもよい。
【００４４】
また、暗号化索引ビット列生成部３１０は、後述する許可ビット位置以外のビット位置にある暗号化されたビット値は、許可ビット位置のビット値の暗号化に用いられた索引鍵では復号されない暗号化方式にて、索引ビット列の複数のビット値を暗号化する。
【００４５】
暗号化索引ビット列生成部３１０は、索引ビット列生成部及び索引ビット列暗号化部に相当する。また、暗号化索引ビット列生成部３１０により行われる処理は、索引ビット列生成処理及び索引ビット列暗号化処理に相当する。
【００４６】
タグ付き暗号化データ生成部３０４は、データ暗号化部３０２で生成された暗号化データと、暗号化タグ生成部３０３で生成された暗号化タグと、暗号化索引ビット列生成部３１０で生成された暗号化索引ビット列を結合してタグ付き暗号化データを生成する。
そして、タグ付き暗号化データ生成部３０４は、タグ付き暗号化データを端末側データ送受信部３０９に出力する。
【００４７】
鍵管理部３０５は、暗号鍵ｅｋａ及び暗号鍵ｅｋｂを管理する。
より具体的には、鍵管理部３０５は、鍵管理サーバ装置２０１で生成された暗号鍵ｅｋａ及び暗号鍵ｅｋｂを補助記憶装置９３２に格納する。
また、鍵管理部３０５は、暗号鍵ｅｋａ又は暗号鍵ｅｋｂから複数の索引鍵ｉｋ（ｉｋ１，ｉｋ２，ｉｋ３…）を生成し、生成した複数の索引鍵ｉｋを補助記憶装置９３２に格納する。鍵管理部３０５は複数の索引鍵ｉｋを補助記憶装置９３２に格納する代わりに、索引鍵ｉｋが必要になる度に、暗号鍵ｅｋａ又は暗号鍵ｅｋｂから生成してもよい。
また、鍵管理部３０５は、鍵管理サーバ装置２０１で暗号鍵ｅｋａと暗号鍵ｅｋｂとは独立に生成された索引鍵ｉｋを補助記憶装置９３２に格納するようにしてもよい。
また、鍵管理部３０５は、検索クエリ生成部３０６の検索クエリの生成のために暗号鍵ｅｋｂを出力する。
また、鍵管理部３０５は、データ復号部３０７の暗号化データの復号のためにデータ復号部３０７に暗号鍵ｅｋａを出力する。
また、鍵管理部３０５は、暗号化索引ビット列内の特定のビット値の開示のために、開示対象のビット値に対応する索引鍵ｉｋを許可ビット位置指定部３０８に出力する。
【００４８】
検索クエリ生成部３０６は、ユーザから指定された検索キーワードを暗号鍵ｅｋｂで暗号化してトラップドアを生成する。そして、検索クエリ生成部３０６は、トラップドアが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部３０９に出力する。
また、開示済みビット値が存在する場合は、検索クエリ生成部３０６は、トラップドアと開示済みビット値とが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部３０９に出力する。
なお、開示済みビット値が存在する場合は、検索クエリ生成部３０６は、暗号化索引ビット列生成部３１０を用いて検索キーワードの暗号化索引ビット列を生成し、トラップドアと前記暗号化索引ビット列とが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部３０９に出力するようにしてもよい。この場合、データセンタ装置４０１は、既に開示された索引鍵ｉｋを使って、前記暗号化索引ビット列から開示済みビット値を取得することができる。
【００４９】
データ復号部３０７は、データセンタ装置４０１から受信された暗号化データを、暗号鍵ｅｋａを用いて復号する。
【００５０】
許可ビット位置指定部３０８は、許可ビット位置を指定する。
許可ビット位置は、暗号化索引ビット列の複数のビット位置のうち暗号化を解除してビット値を開示するビット位置である。
許可ビット位置指定部３０８は、ユーザからの指示に従って許可ビット位置を指定してもよいし、既定のアルゴリズムに従って許可ビット位置を指定してもよい。許可ビット位置指定部３０８は、１ビットずつ段階的に許可ビット位置を指定してもよいし、１度に２ビット以上を許可ビット位置に指定してもよい。また、許可ビット位置指定部３０８は、１度に暗号化索引ビット列の全ビットを許可ビット位置に指定してもよい。許可ビット位置指定部３０８は段階的に許可ビット位置を指定する場合は最上位ビットから順に許可ビット位置を指定する。
許可ビット位置指定部３０８は、許可ビット位置に対応する索引鍵ｉｋを鍵管理部３０５から取得する。つまり、許可ビット位置指定部３０８は、許可ビット位置のビット値の暗号化に用いられた索引鍵ｉｋを鍵管理部３０５から取得する。そして、取得した索引鍵ｉｋを端末側データ送受信部３０９に出力する。
【００５１】
端末側データ送受信部３０９は、鍵管理サーバ装置２０１から暗号鍵ｅｋａ及び暗号鍵ｅｋｂを受信する。端末側データ送受信部３０９は、鍵管理サーバ装置２０１から複数の索引鍵ｉｋを受信する場合もある。
また、端末側データ送受信部３０９は、タグ付き暗号化データをデータセンタ装置４０１に送信する。
また、端末側データ送受信部３０９は、検索結果である暗号化データをデータセンタ装置４０１から受信する。
また、端末側データ送受信部３０９は、許可ビット位置のビット値の開示のために、データセンタ装置４０１に索引鍵ｉｋを送信する。
端末側データ送受信部３０９は送信部に相当する。また、端末側データ送受信部３０９で行われる処理は送信処理に相当する。
【００５２】
図７は、データセンタ装置４０１の機能構成例を示す。
図１５は、データセンタ装置４０１のハードウェア構成例を示す。
【００５３】
図７に示すように、データセンタ装置４０１は、センタ側データ送受信部４０２、保管要求処理部４０３、データ記憶部４０４、開示ビット値復号部４０５、検索処理部４０６を備える。
【００５４】
本実施の形態に係るデータセンタ装置４０１は、コンピュータである。
図１５に示すように、データセンタ装置４０１は、ハードウェアとして、プロセッサ９４１、補助記憶装置９４２、メモリ９４３、通信インタフェース９４４及び入出力インタフェース９４５を備える。
補助記憶装置９４２には、センタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の機能を実現するプログラムが記憶されている。
これらプログラムは記憶装置９４２からメモリ９４３にロードされる。
そして、プロセッサ９４１がこれらプログラムを実行して、後述するセンタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の動作を行う。
図１４では、プロセッサ９４１がセンタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の機能を実現するプログラムを実行している状態を模式的に表している。
データ記憶部４０４は補助記憶装置９４２により実現される。
通信インタフェース９４４は、外部装置と通信を行う。
入出力インタフェース９４５は、データセンタ装置４０１のユーザからの指示を受け付け、また、データセンタ装置４０１のユーザに情報を提示する。
【００５５】
次に、図７に示すデータセンタ装置４０１の機能構成の詳細を説明する。
【００５６】
センタ側データ送受信部４０２は、アクセス端末装置３０１からタグ付き暗号化データを受信する。
また、センタ側データ送受信部４０２は、アクセス端末装置３０１から検索クエリを受信し、その応答として暗号化データを送信する。
また、センタ側データ送受信部４０２は、アクセス端末装置３０１から索引鍵ｉｋを受信する。
【００５７】
保管要求処理部４０３は、受信したタグ付き暗号化データを解析し、タグ付き暗号化データを暗号化データと暗号化タグと暗号化索引ビット列に分解する。そして、保管要求処理部４０３は、暗号化データと暗号化タグと暗号化索引ビット列を相互に対応付けてデータ記憶部４０４に格納する。
【００５８】
データ記憶部４０４は、暗号化データと暗号化タグと暗号化索引ビット列を相互に対応付けて記憶する。
【００５９】
開示ビット値復号部４０５は、受信した索引鍵ｉｋを用いて、暗号化索引ビット列の許可ビット位置のビット値の復号を行う。
【００６０】
検索処理部４０６は、アクセス端末装置３０１から受信した検索クエリと、データ記憶部４０４内の暗号化タグとの照合処理を行う。
検索処理部４０６は、この照合処理によって、タグに含まれるキーワードと、検索クエリに含まれるキーワードが一致するかどうかを判定する。
その後、検索処理部４０６は、検索にヒットしたタグと関連付けられた暗号化データをデータ記憶部４０４から取得する。そして、検索処理部４０６は、取得した暗号化データをセンタ側データ送受信部４０２を介してアクセス端末装置３０１に返送する。
【００６１】
＊＊＊動作の説明＊＊＊
次に、図８に基づき、アクセス端末装置３０１でのデータの暗号化処理を説明する。
【００６２】
最初に、ステップＳ８０１において、データ暗号化部３０２は、ユーザから保管対象データを受け取り、保管対象データと関連付けるキーワードを決定する。
データ暗号化部３０２が保管対象データからキーワードを抽出してもよいし、ユーザがキーワードを指定してもよい。
また、１つのキーワードが保管対象データに関連付けられてもよいし、複数のキーワードが保管対象データに関連付けられてもよい。以下では、説明の簡明のために、１つのキーワードが保管対象データに関連付けられるものとする。
【００６３】
次に、ステップＳ８０２において、データ暗号化部３０２は、保管対象データを暗号化して暗号化データを生成する。
より具体的には、データ暗号化部３０２は、鍵管理部３０５から暗号鍵ｅｋａを取得し、暗号鍵ｅｋａを用いて保管対象データを暗号化する。
データ暗号化部３０２は、キーワードを暗号化タグ生成部３０３に出力する。また、データ暗号化部３０２は、暗号化データをタグ付き暗号化データ生成部３０４に出力する。
【００６４】
次に、ステップＳ８０３において、暗号化タグ生成部３０３は、暗号化タグを生成する。
より具体的には、暗号化タグ生成部３０３は、鍵管理部３０５から暗号鍵ｅｋｂを取得し、キーワードを乱数と暗号鍵ｅｋｂを用いて暗号化して暗号化タグを生成する。
暗号化タグ生成部３０３は、キーワードを暗号化索引ビット列生成部３１０に出力する。また、暗号化タグ生成部３０３は、暗号化タグをタグ付き暗号化データ生成部３０４に出力する。
【００６５】
次に、ステップＳ８０４において、暗号化索引ビット列生成部３１０がキーワードに対して規定の演算を行って索引ビット列を生成する。
暗号化索引ビット列生成部３１０は、例えば、キーワードに対してハッシュ演算を行って索引ビット列を生成する。また、暗号化索引ビット列生成部３１０は、ハッシュ演算に加えて確定的暗号方式による暗号化を行って索引ビット列を生成してもよい。
【００６６】
次に、ステップＳ８０５において、暗号化索引ビット列生成部３１０が索引ビット列を暗号化して暗号化索引ビット列を生成する。
より具体的には、暗号化索引ビット列生成部３１０は、鍵管理部３０５から共通鍵方式の索引鍵ｉｋを取得し、索引鍵ｉｋを用いて索引ビット列を暗号化する。
暗号化索引ビット列生成部３１０は、暗号化索引ビット列をタグ付き暗号化データ生成部３０４に出力する。
【００６７】
次に、ステップＳ８０６において、タグ付き暗号化データ生成部３０４が、暗号化データと暗号化タグと暗号化索引ビット列とを結合してタグ付き暗号化データを生成する。
タグ付き暗号化データ生成部３０４は、生成したタグ付き暗号化データを端末側データ送受信部３０９に出力する。
【００６８】
次に、ステップＳ８０７において、端末側データ送受信部３０９が、タグ付き暗号化データをデータセンタ装置４０１に送信する。
【００６９】
次に、図１１に基づき、データセンタ装置４０１における暗号化データの保管処理を説明する。
【００７０】
まず、センタ側データ送受信部４０２がタグ付き暗号化データを受信すると（ステップＳ１１０１でＹＥＳ）、ステップＳ１１０２において、保管要求処理部４０３が、タグ付き暗号化データを暗号化データと暗号化タグと暗号化索引ビット列に分解する。
【００７１】
そして、ステップＳ１１０３において、保管要求処理部４０３が、暗号化データと暗号化タグと暗号化索引ビット列とを相互に対応付けてデータ記憶部４０４に格納する。
【００７２】
次に、図９に基づき、アクセス端末装置３０１での検索要求処理について説明する。
【００７３】
はじめにステップＳ９０１において、検索クエリ生成部３０６が、アクセス端末装置３０１を操作するユーザから、検索キーワードを取得する。
【００７４】
次に、ステップＳ９０２において、検索クエリ生成部３０６は、検索キーワードを暗号化して、検索クエリ生成する。
より具体的には、検索クエリ生成部３０６は、鍵管理部３０５から暗号鍵ｅｋｂを取得し、暗号鍵ｅｋｂを用いて検索キーワードを暗号化する。そして、検索クエリ生成部３０６は、暗号化により得られたトラップドアが含まれる検索クエリを生成する。
【００７５】
次に、ステップＳ９０３において、検索クエリ生成部３０６は、索引ビット列のいずれかのビット値が開示済みであるか否かを判定する。
【００７６】
索引ビット列のいずれかのビット値が開示済みであれば（ステップＳ９０３でＹＥＳ）は、ステップＳ９０４において、検索クエリ生成部３０６は、開示済みビット値を検索クエリに追加する。
【００７７】
次に、ステップＳ９０５にて、端末側データ送受信部３０９が検索クエリをデータセンタ装置４０１に送信する。
【００７８】
次に、ステップＳ９０６にて、端末側データ送受信部３０９が検索結果を受信した場合に（ステップＳ９０６でＹＥＳ）、データ復号部３０７が、鍵管理部３０５から暗号鍵ｅｋａを取得し、検索結果に含まれる暗号化データを暗号鍵ｅｋａを用いて復号する（ステップＳ９０７）。
【００７９】
次に、図１２に基づき、データセンタ装置４０１での暗号化データ検索処理を説明する。
【００８０】
センタ側データ送受信部４０２が検索クエリを受信すると（ステップＳ１２０１でＹＥＳ）、ステップＳ１２０２において、検索処理部４０６が、検索クエリに開示済みビット値が含まれているか否かを判定する。
【００８１】
検索クエリに開示済みビット値が含まれていない場合（ステップＳ１２０２でＮＯ）は、ステップＳ１２０４において、検索処理部４０６は、トラップドアを用いた検索を行う。つまり、検索処理部４０６は、トラップドアを暗号化タグと照合する。そして、検索処理部４０６は、トラップドアの生成に用いられたキーワードと同じキーワードで生成されている暗号化タグを特定し、特定したタグデータと対応付けられている暗号化データを抽出する。
【００８２】
一方、検索クエリに開示済みビット値が含まれている場合（ステップＳ１２０２でＹＥＳ）は、ステップＳ１２０３において、検索処理部４０６は、検索クエリに含まれる開示済みビット値と同じビット値が含まれる暗号化索引ビット列に対応付けられた暗号化タグに限定してトラップドアを用いた検索を行う。
【００８３】
最後に、センタ側データ送受信部４０２が、検索処理部４０６により抽出された暗号化データを検索クエリの送信元のアクセス端末装置３０１に送信する。
【００８４】
次に、図１０に基づき、アクセス端末装置３０１での索引ビット値開示処理を説明する。
【００８５】
まず、ステップＳ１００１において、許可ビット位置指定部３０８が許可ビット位置を指定する。
例えば、データセンタ装置４０１における検索効率が閾値以下になった場合に、許可ビット位置指定部３０８は許可ビット位置を指定する。前述したように、許可ビット位置指定部３０８は、ユーザからの指示に従って許可ビット位置を指定してもよいし、既定のアルゴリズムに従って許可ビット位置を指定してもよい。許可ビット位置指定部３０８は、１ビットずつ段階的に許可ビット位置を指定してもよいし、１度に２ビット以上を許可ビット位置に指定してもよい。
【００８６】
次に、ステップＳ１００２において、許可ビット位置指定部３０８は、許可ビット位置のビット値の暗号化に用いられた索引鍵ｉｋを鍵管理部３０５から取得する。
許可ビット位置指定部３０８は鍵管理部３０５から取得した索引鍵ｉｋを許可ビット位置の情報とともに端末側データ送受信部３０９に出力する。
【００８７】
次に、ステップＳ１００３において、端末側データ送受信部３０９が索引鍵ｉｋを許可ビット位置の情報とともにデータセンタ装置４０１に送信する。
【００８８】
次に、図１３に基づき、データセンタ装置４０１における暗号化索引ビット列のビット値の復号処理を説明する。
【００８９】
センタ側データ送受信部４０２が索引鍵ｉｋを受信した場合（ステップＳ１３０１でＹＥＳ）に、ステップＳ１３０２にて、開示ビット値復号部４０５が索引鍵ｉｋを用いて暗号化索引ビット列内の対応するビット値の復号を行う。
【００９０】
なお、暗号化開示ビット列内のいずれかのビット値の開示後に新たな暗号化データがデータセンタ装置４０１に登録された場合は、新たな暗号化データの登録時には、新たな暗号化データに対応する暗号化索引ビット列の全てのビット値は暗号化されている。アクセス端末装置３０１は、新たな暗号化データ対応する暗号化索引ビット列についても、対応するビット位置の索引鍵をデータセンタ装置４０１に送信し、データセンタ装置４０１は、暗号化索引ビット列内の対応するビット位置の復号を行う。
【００９１】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、アクセス端末装置３０１は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。このため、本実施の形態によれば、アクセス端末装置３０１は、索引ビット列の復号処理を高速化することができ、この結果、検索処理を高速化することができる。
本実施の形態では、アクセス端末装置３０１は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。このため、本実施の形態によれば、開示前の暗号化索引ビット列からは何も情報が漏れない。
本実施の形態では、アクセス端末装置３０１は、ハッシュ演算に加えて確定的暗号方式による暗号化を行って索引ビット列を生成する。このため、本実施の形態によれば、索引ビット列の全てのビット値が開示されてもキーワードが類推されるおそれが少ない。
【００９２】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、本実施の形態に係るアクセス端末装置３０１及びデータセンタ装置４０１のハードウェア構成例の補足説明を行う。
【００９３】
図１４及び図１５に示すプロセッサ９３１及びプロセッサ９４１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９３１及びプロセッサ９４１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図１４及び図１５に示す補助記憶装置９３２及び補助記憶装置９４２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
図１４及び図１５に示すメモリ９３３及びメモリ９４３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
図１４及び図１５に示す通信インタフェース９３４及び通信インタフェース９４４は、データの通信処理を実行する電子回路である。
通信インタフェース９３４及び通信インタフェース９４４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
図１４及び図１５に示す入出力インタフェース９３５及び入出力インタフェース９４５は、例えば、マウス、キーボード、ディスプレイ等である。
【００９４】
また、補助記憶装置９３２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ９３１により実行される。
プロセッサ９３１はＯＳの少なくとも一部を実行しながら、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の機能を実現するプログラムを実行する。
プロセッサ９３１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、補助記憶装置９３２、メモリ９３３、プロセッサ９３１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００９５】
また、補助記憶装置９４２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ９４１により実行される。
プロセッサ９４１はＯＳの少なくとも一部を実行しながら、センタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の機能を実現するプログラムを実行する。
プロセッサ９４１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、センタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、補助記憶装置９４２、メモリ９４３、プロセッサ９４１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、センタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００９６】
また、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。同様に、センタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、アクセス端末装置３０１及びデータセンタ装置４０１は、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
この場合は、データ暗号化部３０２、暗号化タグ生成部３０３、タグ付き暗号化データ生成部３０４、鍵管理部３０５、検索クエリ生成部３０６、データ復号部３０７、許可ビット位置指定部３０８、端末側データ送受信部３０９及び暗号化索引ビット列生成部３１０は、それぞれ処理回路の一部として実現される。また、センタ側データ送受信部４０２、保管要求処理部４０３、開示ビット値復号部４０５及び検索処理部４０６も、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【００９７】
１００  秘匿検索システム、１０１  ネットワーク、１０２  ＬＡＮ、２０１  鍵管理サーバ装置、３０１  アクセス端末装置、３０２  データ暗号化部、３０３  暗号化タグ生成部、３０４  タグ付き暗号化データ生成部、３０５  鍵管理部、３０６  検索クエリ生成部、３０７  データ復号部、３０８  許可ビット位置指定部、３０９  端末側データ送受信部、３１０  暗号化索引ビット列生成部、４０１  データセンタ装置、４０２  センタ側データ送受信部、４０３  保管要求処理部、４０４  データ記憶部、４０５  開示ビット値復号部、４０６  検索処理部。
【図１】
2019053788.tif 000003
【図２】
2019053788.tif 000004
【図３】
2019053788.tif 000005
【図４】
2019053788.tif 000006
【図５】
2019053788.tif 000007
【図６】
2019053788.tif 000008
【図７】
2019053788.tif 000009
【図８】
2019053788.tif 000010
【図９】
2019053788.tif 000011
【図１０】
2019053788.tif 000012
【図１１】
2019053788.tif 000013
【図１２】
2019053788.tif 000014
【図１３】
2019053788.tif 000015
【図１４】
2019053788.tif 000016
【図１５】
2019053788.tif 000017
【国際調査報告】
2019053788.tif 000018
2019053788.tif 000019
2019053788.tif 000020
2019053788.tif 000021