JP2011146895A - 情報処理システム及び管理装置及びサーバ装置及び情報処理装置 - Google Patents

情報処理システム及び管理装置及びサーバ装置及び情報処理装置 Download PDF

Info

Publication number
JP2011146895A
JP2011146895A JP2010005750A JP2010005750A JP2011146895A JP 2011146895 A JP2011146895 A JP 2011146895A JP 2010005750 A JP2010005750 A JP 2010005750A JP 2010005750 A JP2010005750 A JP 2010005750A JP 2011146895 A JP2011146895 A JP 2011146895A
Authority
JP
Japan
Prior art keywords
generation
key
user
value
information
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
JP2010005750A
Other languages
English (en)
Other versions
JP5441726B2 (ja
Inventor
Takashi Ito
伊藤  隆
Mitsuhiro Hattori
充洋 服部
Tadashi Matsuda
規 松田
Takeshi Yoneda
健 米田
Takaaki Ando
隆朗 安藤
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.)
Mitsubishi Electric Corp
Mitsubishi Electric Information Technology Corp
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Electric Information Technology 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 Mitsubishi Electric Corp, Mitsubishi Electric Information Technology Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010005750A priority Critical patent/JP5441726B2/ja
Publication of JP2011146895A publication Critical patent/JP2011146895A/ja
Application granted granted Critical
Publication of JP5441726B2 publication Critical patent/JP5441726B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】情報処理装置からサーバ装置へのトラップドア送信数を削減し、ユーザからの検索要求に対して当該ユーザに許可された範囲内でデータ検索を行う。
【解決手段】グループ管理装置401は、情報処理装置301のユーザごとに許可世代範囲が設定されている鍵を更新しながら発行し、情報処理装置は、ユーザに発行された鍵の世代値と暗号化データをサーバ装置201に登録し、また、ユーザに発行された鍵を用いて当該ユーザの許可世代範囲が反映されるn(n≧1)世代分のトラップドアを集約する集約トラップドアを生成してサーバ装置に送信し、サーバ装置では集約トラップドアからn個のトラップドアを導出し、各トラップドアを解析し、暗号化データの検索範囲を当該ユーザの許可世代範囲に限定して暗号化データの検索を行う。情報処理装置はn世代分のトラップドアを集約した集約トラップドアを送信するので、サーバ装置との間の通信量を削減できる。
【選択図】図1

Description

本発明は、複数の情報処理装置とサーバ装置とが含まれる情報処理システムに関し、特に、情報処理装置が、検索のためのキーワードをサーバ装置に秘匿した状態でサーバ装置に蓄積されているデータを検索する秘匿検索システムに関する。
サーバ装置(以下、単にサーバともいう)に保存されたデータを、検索者がキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバに対して秘匿する秘匿検索システムがある。
このような秘匿検索システムは、機密データ管理のアウトソーシングや、メールサーバにおける暗号化メールのフィルタリングへの応用が期待されており、種々の安全性要件を達成するための技術や、サーバや検索者のストレージ・通信オーバーヘッド・演算オーバーヘッドを削減するための様々な技術が提案されている。
さらに、複数のユーザによる検索を可能とする場合には、ユーザの加入・脱退に柔軟に対処するための技術が必要とされる。
非特許文献1では、ユーザが保持する秘密情報をハッシュチェーンで管理し、ユーザの加入・脱退に伴って世代が更新されるたびに新しい秘密情報を正当ユーザに配布し、正当ユーザは最新の秘密情報から過去の秘密情報を導出できるようにし、ユーザに必要なストレージを抑えつつ、世代更新に対応した秘匿検索を達成する方式が開示されている。
また、特許文献1では、時刻と役職に基づいた、二次元的な鍵管理を行う方式が開示されている。
特開2000−244474号公報
H.Park, J.W.Byun, and D.H.Lee, "Secure Index Search for Groups," TrustBus 2005, LNCS 3592, pp.128−140, 2005.
世代更新を伴う秘匿検索システムでは、正当ユーザが、過去の世代で登録された情報を検索できるようにしたいという要求がある。
これを実現するために、非特許文献1にて開示されている方式では、検索者が最新の秘密情報から過去全ての世代の秘密情報を導出し、これらとキーワードからトラップドア(検索用の情報)を世代数分計算し、全てのトラップドアをサーバに送信し、トラップドアを受け取ったサーバが検索処理を行っている。
このため、検索者にとって計算量・通信量が世代数に比例して増大するという課題がある。
また、非特許文献1の方式では、加入ユーザが加入前の情報を全て検索することができ、これを防ぐことができないという課題がある。
一方、脱退ユーザに関しては、脱退後の情報を検索できないことは当然として、脱退前の情報を検索できるか否かについては実際のシステムに依存する。
例えば、ある会社に属していたユーザが退職した場合、退職前にはアクセスできた情報にもアクセスできなくするというケースが考えられる。
これに対し、ある部署に属していたユーザが異動した場合、業務の関係上、異動前にアクセスできた情報には引き続きアクセスしたいというケースを考えることができる。
脱退ユーザを上記のような「退職ユーザ」「異動ユーザ」に分けた場合、これらの一方のみに対応することは、非特許文献1の方式を始めとする、既存の方式で可能である。
しかし、脱退ユーザとして「退職ユーザ」「異動ユーザ」の両方が混在するシステムの場合、既存方式ではこれに対応できないという課題がある。
本発明は上記の課題を解決することを主な目的の一つとしており、検索者が送信すべきトラップドアの数を削減して、結果として検索者の計算量・通信量を削減することを主な目的とする。
また、ユーザごとに検索が許可されるデータの範囲を設定し、ユーザからの検索要求に対して当該ユーザに許可された範囲内でデータの検索を行うことを主な目的とする。
本発明に係る情報処理システムは、
複数のユーザに利用される複数の情報処理装置と、
ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置を有し、
前記管理装置は、
利用が許可される世代範囲が許可世代範囲として設定される鍵を生成し、
ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定し、
鍵発行タイミングにおいて、ユーザごとに、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行し、
各情報処理装置は、
最新世代の鍵を受領する度に、受領した最新世代の鍵を記憶し、
ユーザから暗号化データの格納指示があった際に、暗号化データの検索に用いられるインデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザの検索指示時点での最新世代の鍵を用いて、許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代値が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データとを対応付けて記憶し、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象としているインデックス情報に対応付けられている暗号化データであって所定の条件を満たす暗号化データを抽出することを特徴とする。
本発明によれば、情報処理装置はn個の暗号化世代情報を集約した集約情報を送信するので、情報処理装置とサーバ装置との間の通信量を削減することができる。
また、管理装置において、ユーザごとに許可世代範囲が設定されている鍵を発行し、検索要求元のユーザの鍵を用いて生成された当該ユーザの許可世代範囲が反映される暗号化世代情報をサーバ装置で解析し、暗号化データの検索範囲をユーザの許可世代範囲に限定することができる。
実施の形態1に係るシステム構成例を示す図。 実施の形態1に係るサーバ装置の構成例を示す図。 実施の形態1に係る情報処理装置の構成例を示す図。 実施の形態1に係るグループ管理装置の構成例を示す図。 実施の形態1に係る暗号化キーワード記憶領域における記憶内容の例を示す図。 実施の形態1に係る暗号化データ記憶領域における記憶内容の例を示す図。 実施の形態1に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態1に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態2に係るサーバ装置の構成例を示す図。 実施の形態2に係る情報処理装置の構成例を示す図。 実施の形態2に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態2に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態2に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態3に係るサーバ装置の構成例を示す図。 実施の形態3に係る暗号化キーワード記憶領域における記憶内容の例を示す図。 実施の形態3に係る世代遷移記憶領域における記憶内容の例を示す図。 実施の形態3に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態3に係る暗号鍵記憶領域における記憶内容の例を示す図。 実施の形態3に係る暗号化キーワード記憶領域における記憶内容の例を示す図。 実施の形態3に係る世代遷移記憶領域における記憶内容の例を示す図。 実施の形態1に係る鍵生成手順を説明する図。 実施の形態2に係る鍵生成手順を説明する図。 実施の形態2に係るデータ検索手順を説明する図。 実施の形態3に係る鍵生成手順を説明する図。 実施の形態3に係る鍵更新手順を説明する図。 実施の形態1に係るグループ管理装置の鍵生成動作の概要を示すフローチャート図。 実施の形態1に係るグループ管理装置の鍵発行動作の概要を示すフローチャート図。 実施の形態1に係るグループ管理装置の鍵更新動作の概要を示すフローチャート図。 実施の形態1に係る情報処理装置の暗号化データの格納要求時における動作の概要を示すフローチャート図。 実施の形態1に係るサーバ装置の暗号化データの格納動作の概要を示すフローチャート図。 実施の形態1に係る情報処理装置の暗号化データの検索要求時における動作の概要を示すフローチャート図。 実施の形態1に係るサーバ装置の暗号化データの検索動作の概要を示すフローチャート図。 実施の形態2に係るグループ管理装置の鍵生成動作の概要を示すフローチャート図。 実施の形態2に係るグループ管理装置の鍵発行動作の概要を示すフローチャート図。 実施の形態2に係るグループ管理装置の鍵更新動作の概要を示すフローチャート図。 実施の形態2に係る情報処理装置の暗号化データの検索要求時における動作の概要を示すフローチャート図。 実施の形態2に係るサーバ装置の暗号化データの検索動作の概要を示すフローチャート図。 実施の形態3に係るグループ管理装置の鍵生成動作の概要を示すフローチャート図。 実施の形態3に係るグループ管理装置の異動ユーザ発生時の動作の概要を示すフローチャート図。 実施の形態3に係るグループ管理装置の退職ユーザ発生時の動作の概要を示すフローチャート図。 実施の形態3に係るサーバ装置の暗号化データの検索動作の概要を示すフローチャート図。 実施の形態1〜3に係るサーバ装置等のハードウェア構成例を示す図。
以下の実施の形態1〜3では、秘密情報やトラップドアの導出方法を工夫することで、サーバが最新のトラップドアから過去のトラップドアを導出できるようにし、検索者が送信すべきトラップドアの数を削減して、結果として検索者の計算量・通信量を削減することができる秘匿検索システム(情報処理システム)を説明する。
また、新たにグループに加入した加入ユーザに加入前の情報を検索させない、脱退ユーザとして退職・異動ユーザの混在を許すなど、ユーザの加入・脱退に柔軟に対応することができる秘匿検索システム(情報処理システム)を説明する。
実施の形態1.
図1は、サーバ装置に保存されたデータを、複数のユーザがキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバ装置に対して秘匿する秘匿検索システムの構成例である。
図1に示すように、複数の情報処理装置301が、ネットワーク101を介してサーバ装置201とグループ管理装置401に接続している。
なお、グループ管理装置401は管理装置の例である。
各装置の詳細は後述するが、ここで、各装置の概要を説明する。
各情報処理装置301を利用するユーザは企業における部署等の所定のグループに属しており、グループ内でデータを共用することができる。例えば、情報処理装置301を利用するユーザの属性(帰属組織、職務等)により、情報処理装置301のグループの分類が行われる。
同じグループの情報処理装置301は、暗号鍵(以下、単に鍵ともいう)を共有するとともに、例えば、新規ユーザの追加、既存ユーザの脱退といった更新イベントの発生に伴って暗号鍵が更新されていく。
なお、グループに所属しているユーザを所属ユーザともいう。また、グループに新規に加入する者を加入ユーザともいう。また、グループから脱退した者を脱退ユーザともいう。
暗号鍵は、サーバ装置201に対しては秘密にされている。
暗号鍵は、グループ管理装置401により更新イベントの発生の度に更新され、また、更新イベント発生時を含む鍵発行タイミングにおいて同じグループに属するユーザの情報処理装置301に暗号鍵が配布される。
各情報処理装置301では、グループ管理装置401から新たな暗号鍵が配布される度に過去の暗号鍵に上書きして保存する。
なお、暗号鍵は世代数により管理される(更新により世代数の値が1つ増える)。
本実施の形態では、暗号化データを各情報処理装置301からサーバ装置201に格納し、また、各情報処理装置301はサーバ装置201に暗号化データの検索を要求する。
各ユーザには、グループへの加入時期や、グループに引き続き所属しているか脱退しているか等により、検索が許可される暗号化データの範囲が決められている。
この検索が許可される暗号化データの範囲は、暗号鍵の世代によって定義される。
より具体的には、グループ管理装置401は、ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定する。
そして、鍵発行タイミングにおいて、ユーザごとに(情報処理装置301ごとに)、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行する。
許可世代範囲とは、鍵の利用が許可される世代範囲であり、ユーザごとに異なっている。
鍵が更新される度に最新世代が改められるので、許可世代範囲は鍵の更新とともに拡大していく。
ユーザに検索が許可される暗号化データの範囲は、当該ユーザに発行された鍵に設定されている許可世代範囲に一致する。
後述するように、ユーザが暗号化データをサーバ装置201に格納する際に当該ユーザのその時点での最新世代の鍵の世代値と暗号化データが対応付けられて登録される。
また、暗号化データの検索の際に、ユーザは、その時点での当該ユーザの許可世代範囲が反映される情報(トラップドア)をその時点での最新世代の鍵を用いて生成し、情報処理装置301からサーバ装置201に送信する。
サーバ装置201では、検索要求に含まれる情報(トラップドア)を解析して、検索要求元ユーザの許可世代範囲に合致する世代値と対応付けられている暗号化データのみを検索の対象とする。
暗号化データの登録段階では、各情報処理装置301は、ユーザから暗号化データの格納を指示する格納指示を入力した際に、データ格納指示時点の最新世代の鍵を用いて、暗号化データとともに登録するキーワード(平文)(検索条件)に対して暗号化を行ってトラップドアを生成し、更に、暗号化データのID(識別子)を用いてトラップドアを再暗号化して暗号化キーワードを生成する。暗号化キーワードは、サーバ装置201に対してキーワードの内容を秘匿化できる。
暗号化キーワードは、暗号化データとともにサーバ装置201で登録され、暗号化データの検索に用いられる。暗号化キーワードは、インデックス情報の例である。
なお、後述するように、暗号化キーワードではなく、トラップドア自体を暗号化データに対応付けて登録することも可能である。この場合は、トラップドアがインデックス情報の例となる。
トラップドアは、データ検索段階で、データ検索要求元のユーザの許可世代範囲をサーバ装置201において導出可能にする情報であり、また、検索対象のキーワードの内容を秘匿化したままサーバ装置201において検索対象のキーワードを特定可能にするためのデータである。
情報処理装置301は、登録対象の暗号化データと、当該暗号化データのデータID(Identification)、暗号化キーワード、当該暗号化キーワードの生成に用いた鍵の世代値をサーバ装置201に送信し、サーバ装置201では、これらを関連付けて記憶する。
そして、情報処理装置301では、ユーザから暗号化データの検索指示を入力した際に、データ検索指示の入力時点で最新世代の暗号鍵を用いて当該ユーザの許可世代範囲と検索キーワードが暗号化されたトラップドアを生成する。
より具体的には、情報処理装置301は、集約トラップドア(集約情報)を生成し、集約トラップドアをサーバ装置201に送信する。
集約トラップドアは、ユーザの許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代値と検索キーワードが暗号化されているn個のトラップドア(暗号化世代情報)が集約されている情報である。
サーバ装置201では、集約トラップドアを受信し、集約トラップドアからn個のトラップドアを導出する。
また、導出したトラップドアごとに、トラップドアが対象としている世代値と共通する世代値を対象とする暗号化キーワードであってトラップドアにおいて暗号化されている検索キーワードに合致する暗号化キーワードを検索する。
そして、検索した暗号化キーワードに対応付けられている暗号化データを抽出する。
以上が、各装置の概要である。
次に、図2〜図4を用いて、サーバ装置201、情報処理装置301及びグループ管理装置401の構成例を説明する。
図2は、本秘匿検索システム(図1)において、データ・キーワードを保持し、検索を行うサーバ装置201の構成例を表すブロック図である。
図2において、暗号化キーワード記憶領域211は、暗号化されたキーワードを、対応するデータID、および世代値と関連付けて記憶するデータ記憶手段である。
図5は暗号化キーワード記憶領域211が記憶するデータの一例を表す。
前述のように、暗号化キーワードは、インデックス情報の例である。
暗号化データ記憶領域212は、暗号化されたデータを、対応するデータIDと関連付けて記憶するデータ記憶手段である。
図6は暗号化データ記憶領域212が記憶するデータの一例を表す。
トラップドア生成部221は、情報処理装置301から受信したトラップドア(集約トラップドア)から、n世代分のトラップドアを順次生成する手段である。
比較部222は、トラップドア生成部221が生成したn世代分のトラップドアと、暗号化キーワード記憶領域211に記憶されているデータを比較し、情報処理装置301の指定したキーワードに合致するデータを暗号化キーワード記憶領域211から検索する手段である。
通信部231は、情報処理装置301やグループ管理装置401と通信を行う手段である。
図3は、本秘匿検索システム(図1)において、サーバ装置201への暗号化データの登録・サーバ装置201からの暗号化データの検索を行う情報処理装置301の構成例を表すブロック図である。
図3において、暗号鍵記憶領域311は、データの暗号化・検索に用いる秘密情報を記憶するデータ記憶手段である。
図7は暗号鍵記憶領域311が記憶するデータの一例を表す。
図7の例において、暗号鍵k1,3は、1世代目から3世代目までの秘密情報を検索可能であることを意味する。
換言すれば、暗号鍵k1,3は、ユーザの利用開始世代が第1代目であり、また、許可世代範囲が第1世代目から第3世代目までであることを意味する。
トラップドア生成部321は、暗号鍵とキーワードから、対応するトラップドアを生成する手段である。
前述したように、トラップドア生成部321は、n(n≧1)世代分のトラップドアが集約されている集約トラップドアを生成する。
図7の暗号鍵k1,3を用いる場合は、第1世代から第3世代までの3世代分の3つのトラップドアが1つのトラップドアに集約されている集約トラップドアを生成する。
暗号化キーワード生成部322は、あるキーワードに対応したトラップドアとデータIDから、暗号化キーワードを生成する手段である。
通信部331は、サーバ装置201やグループ管理装置401と通信を行う手段である。
図4は、本秘匿検索システム(図1)において、初期設定や、情報処理装置301が保持する暗号鍵の生成・管理などを行うグループ管理装置401の構成例を表すブロック図である。
図4において、暗号鍵記憶領域411は、情報処理装置301が利用する暗号鍵を記憶するデータ記憶手段である。
図8は暗号鍵記憶領域411が記憶するデータの一例を表す。
図8の例において、暗号鍵ki,jは、i世代目からj世代目までの秘密情報を検索可能であることを意味する。
暗号鍵生成部421は、情報処理装置301が利用する暗号鍵を生成する手段である。
通信部431は、サーバ装置201や情報処理装置301と通信を行う手段である。
世代範囲記憶領域441は、ユーザごとに許可開始世代を記憶するデータ記憶手段である。
暗号鍵配布処理部451は、ユーザに配布する暗号鍵を暗号鍵記憶領域411から抽出する。
本秘匿検索システムにおける手続きは、(1)グループ管理装置401が初期設定を行う部分、(2)グループ管理装置401が、加入した情報処理装置301に暗号鍵を配布する部分、(3)グループ管理装置401が情報処理装置301が保持する暗号鍵の世代更新を行う部分、(4)情報処理装置301が暗号化データをサーバ装置201に送信・格納する部分、(5)情報処理装置301が暗号化データをサーバ装置201から検索・取得する部分に大別される。
以下、それぞれの手続きについて説明する。
(1)グループ管理装置の初期設定
グループ管理装置401は、パラメータq、および互いに可換な三つの関数F(x),F(x),G(x、y)を決定し、公開情報とする。
ここで、FおよびFとしては一方向性関数を選び、またGとしては、関数の出力から実際の入力を推定することが困難である関数を選ぶ。
また、FとGの可換性とは、例えばF(G(x,y))=G(F(x),y)を意味するものとする。
qは世代数の最大値(最終世代)であり、世代の更新頻度やシステムの運用期間から適切に設定する。
さらに、適当な一方向性関数Hを選択し、公開情報とする。
本実施の形態では、F,F,Gの具体例として、以下に基づき決定したものを利用する。
,pとして十分大きな素数を選び、N=p×pとする。
,eとしてZ から、(p−1)(p−1)と互いに素な数をランダムに選択する。
,F,Gを以下で定める。
(x)=xe1 mod N
(x)=xe2 mod N
G(x,y)=x mod N
なお、modはモジュロ演算子を表し、Z は0からN−1の整数の中でNと互いに素である整数の集合を表す。
また、F(x)は第1の関数の例であり、F(x)は第2の関数の例である。
次に、暗号鍵生成部421による鍵生成動作の詳細を図26のフローチャートを参照しながら説明する。
暗号鍵生成部421は、情報処理装置301が利用する暗号鍵ki,j(1≦i≦j≦q)を生成する。
ここで、ki,jは、i世代目からj世代目までの秘密情報を検索可能な暗号鍵である。
まず、暗号鍵生成部421は、暗号鍵k1,q(第1世代から最終世代までを許可世代範囲とする暗号鍵)を、Z からランダムに選択する(S2601)。
そして、初期鍵である暗号鍵k1,qに対してF及びFを適用して新たな暗号鍵を生成し、以降、生成済みの鍵に対してF及びFを適用して新たな鍵を生成する動作を繰り返し、各鍵間に連続性を持たせながら、生成済みの鍵とは別の許可世代範囲が設定されている暗号鍵を生成する。
具体的には、暗号鍵k1,q以外の暗号鍵ki,j(1≦i≦j≦q)を、以下の式に従って順次計算する(暗号鍵の無矛盾性はF,Fの可換性によって保証される)(S2602)。
i,j−1=F(ki,j
i+1,j=F(ki,j
このように、暗号鍵生成部421は、初期鍵である暗号鍵k1,qに第1の関数(F)を適用して、許可世代範囲の開始世代が暗号鍵k1,qの開始世代と共通し終了世代が暗号鍵k1,qの終了世代の1つ前の世代となる新たな暗号鍵k1,q−1を生成し、生成した暗号鍵k1,q−1に第1の関数を適用して、許可世代範囲の開始世代が当該生成済みの暗号鍵k1,q−1の開始世代と共通し終了世代が当該生成済みのk1,q−1の終了世代の1つ前の世代となる新たな暗号鍵k1,q−2を生成する。
また、同様に、暗号鍵生成部421は、初期鍵である暗号鍵k1,qに第2の関数(F)を適用して、許可世代範囲の終了世代が暗号鍵k1,qの終了世代と共通し開始世代が暗号鍵k1,qの開始世代の1つ後の世代となる新たな暗号鍵k2,qを生成し、生成した暗号鍵k2,qに第2の関数を適用して、許可世代範囲の終了世代が当該生成済みの暗号鍵k2,qの終了世代と共通し開始世代が当該生成済みの暗号鍵k2,qの開始世代の1つ後の世代となる新たな暗号鍵k3,qを生成する。
更に、暗号鍵生成部421は、生成した鍵に第1の関数及び第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、許容世代範囲の全パターンに対応する複数の暗号鍵を生成する。
こうして得られた全ての暗号鍵k1,1〜kq,qを、暗号鍵生成部421は、暗号鍵記憶領域411に格納する(S2603)。
最後に、暗号鍵配布処理部451が1世代目の暗号鍵k1,1を暗号鍵記憶領域411から取得し、通信部431が全ての正当な情報処理装置301(グループに所属しているユーザが利用している情報処理装置301)に、1世代目の暗号鍵k1,1を送信する(S2604)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵k1,1を受信した情報処理装置301は、この暗号鍵k1,1を、世代情報とともに暗号鍵記憶領域311に格納する。
(2)加入ユーザへの暗号鍵配布
t世代目においてユーザの加入があった際、グループ管理装置401は、加入した情報処理装置301に対して暗号鍵を配布する。
加入ユーザに対して、t世代目を含めた、s世代目からt世代目まで(s≦t)の秘密情報の検索を許す場合、グループ管理装置401の通信部431が、加入した情報処理装置301に、暗号鍵ks,tを送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵ks,tを受信した情報処理装置301は、受信した暗号鍵ks,tを、世代情報とともに暗号鍵記憶領域311に格納する。
この場合、次で述べる「(3)暗号鍵の世代更新」の処理は不要である(行っても良い)。
一方、加入ユーザに対して、t世代目の秘密情報の検索を許さない場合、グループ管理装置401の通信部431が、加入した情報処理装置301に、暗号鍵kt+1,t+1を送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵kt+1,t+1を受信した情報処理装置301は、受信した暗号鍵kt+1,t+1を、世代情報とともに暗号鍵記憶領域311に格納する。
その後、t世代目からt+1世代目に更新するために、次で述べる「(3)暗号鍵の世代更新」の処理が実行される。
図27は、以上の(2)加入ユーザへの暗号鍵配布における動作を示すフローチャートである。
暗号鍵配布処理部451は、例えば、グループ管理装置401のオペレータからの入力に基づき、新たに加入する加入ユーザに許容される世代範囲を判断する(S2701)。
加入ユーザにs世代〜t世代が認められる場合は、暗号鍵配布処理部451は、暗号鍵ks,tを暗号鍵記憶領域411から取得し、通信部431が当該ユーザの情報処理装置301に暗号鍵ks,tを送信する(S2702)。
また、世代範囲記憶領域441が、当該加入ユーザの許可世代範囲(s世代からt世代)を記憶する(S2703)。
一方、S2701の判断において、新規に加入するユーザにt世代が許可されない場合は、暗号鍵配布処理部451は、暗号鍵kt+1,t+1を暗号鍵記憶領域411から取得し、通信部431が当該ユーザの情報処理装置301に暗号鍵kt+1,t+1を送信する(S2704)。
また、世代範囲記憶領域441が、当該加入ユーザの許可世代範囲(t+1世代)を記憶する(S2705)。
また、この後、図28に示す世代更新処理が行われる(S2706)。
(3)暗号鍵の世代更新
正当な情報処理装置301のグループに対し、ユーザの加入・脱退があった際に、暗号鍵の世代更新が必要となる場合がある。
このようなユーザの加入(上記のt世代目の秘密情報の検索を認めないユーザの加入)及びユーザの脱退が更新イベントとなる。
更新イベントが発生した場合には、以下のように世代更新を実施する。
t世代目からt+1世代目に更新する場合(ただしt+1≦q)、グループ管理装置401の通信部431が、(加入ユーザを除く)全ての正当な情報処理装置301(所属ユーザが利用している情報処理装置301)と通信を行い、各情報処理装置301が保持する暗号鍵ks,tを、t+1世代目の検索も可能である暗号鍵ks,t+1に更新する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵ks,t+1を受信した情報処理装置301は、暗号鍵記憶領域311の内容を、新しい世代情報(検索開始世代s,検索終了世代t+1)と暗号鍵ks,t+1で置き換える。
なお、グループを脱退した者がいる場合には、当該脱退者には、更新後の最新世代の鍵が配布されない。
このため、脱退者は、脱退前にサーバ装置201に登録されている暗号化データには、保持している暗号鍵を用いてアクセスすることができるが、脱退後にサーバ装置201に登録された暗号化データには、更新後の暗号鍵を保有していないのでアクセスできない。
なお、以前の暗号化データを含め一切の暗号化データに脱退者がアクセスできないようにすることもできる。
図28は、以上の(3)暗号鍵の世代更新における動作を説明するフローチャートである。
更新イベントが発生した場合、つまり、ユーザの脱退又は世代更新が必要なユーザの加入があった場合(S2801でYES)、暗号鍵配布処理部451は、世代範囲記憶領域441から各所属ユーザの許可世代範囲を読み出す(S2802)。
そして、暗号鍵配布処理部451は、所属ユーザごとに、s世代〜t+1世代に対応する暗号鍵ks,t+1を暗号鍵記憶領域411から取得する(S2803)。
そして、通信部431が各所属ユーザの情報処理装置301に暗号鍵ks,t+1を送信する(S2804)。
なお、S2802で、所属ユーザごとに許可世代範囲を読み出すのは、所属ユーザごとに利用開始世代が異なるからである。
つまり、例えば、あるユーザは、グループ初期から所属しているので1世代目が利用開始世代になっているが、別のユーザは途中からグループに加入したため、3世代目が利用開始世代となっているような場合が生じるからである。
(4)暗号化データの送信・格納
正当な情報処理装置301がデータをサーバ装置201に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
t世代目における具体的な手順を図29及び図30を参照しながら以下に述べる。
まず、情報処理装置301は、データに対し、ユニークなデータIDを割り当てる(idとする)。
さらに、情報処理装置301は、データの暗号化を行う(S2901)。
ここでは、正当な情報処理装置301だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する(暗号化データをdとする)。
暗号化データdに関連付けられる複数のキーワード(wxjとする)をユーザから入力する(S2902)。
次に、トラップドア生成部321が、データに関連付けられた複数のキーワード(wxj)に対し、それぞれトラップドアを生成する(S2903)。
具体的には、暗号鍵記憶領域311に格納されている暗号鍵ks,tを利用して、各キーワードwxjに対し、トラップドアtdxjを以下のように計算する(F t−sはFをt−s回適用することを表す。以下においても同様)。
t,t=F t−s(ks,t
tdxj=G(kt,t,wxj
その後、暗号化キーワード生成部322が、各トラップドアtdxjに対し、暗号化キーワードcxjを以下のように計算する(S2904)。
xj=H(id,tdxj
最後に、通信部331が、世代、データID、暗号化データ、暗号化キーワードの組(t,id,d,cx1,cx2,...)を格納要求としてサーバ装置201に送信する(S2905)。
サーバ装置201では、通信部231が格納要求を受信し(S3001)、暗号化データdをデータIDと関連付けて暗号化データ記憶領域212に格納し、各暗号化キーワードcxjを世代、データIDと関連付けて暗号化キーワード記憶領域211に格納する(S3002)。
(5)暗号化データの検索・取得
正当な情報処理装置301は、現在もしくは過去の世代にサーバ装置201に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
暗号鍵ks,tを持つ正当な情報処理装置301が、s世代目からt世代目までの検索を行う具体的な手順を図31及び図32を参照しながら以下に述べる。
まず、情報処理装置301は、暗号化データの検索指示として、ユーザから検索対象のキーワードwを入力する(S3101)。
次に、トラップドア生成部321が、検索したいキーワードwに対応するトラップドアを生成する(S3102)。
具体的には、キーワードwに対し、集約トラップドアtds,t(s世代目からt世代目までが検索可能なトラップドア)を以下のように計算する。なお、ks,tは、ユーザの検索指示時点での最新世代の暗号鍵である。
tds,t=G(ks,t,w)
集約トラップドアtds,t(集約情報)は、世代値sとキーワードwが暗号化されているトラップドアtds,sから世代値tとキーワードwが暗号化されているトラップドアtdt,tまでのn個のトラップドアを集約している。また、各トラップドアtds,s〜tdt,tは、暗号化世代情報に相当する。
次に、通信部331が、検索開始世代、検索終了世代、トラップドアの組(s,t,tds,t)を検索要求としてサーバ装置201に送信する(S3103)。
サーバ装置201では、通信部231が検索要求を受信し(S3201)、トラップドア生成部221が、s世代目からt世代目までのそれぞれに対応するトラップドアtds,s〜tdt,tを以下のように順次計算する(S3202)。
tdi,i=F t−i(F i−s(tds,t)) (s≦i≦t)
その後、比較部222が、暗号化キーワード記憶領域211を参照し、トラップドアに対応する暗号化キーワードが存在するかを確認する(S3203)。
具体的には、暗号化キーワード記憶領域211の各行の世代、データID、暗号化キーワードの組(j,id,c)に対し、以下の等式が成立するかを確認する。
c=H(id,tdj,j
つまり、比較部222は、前述のS3202で生成されたトラップドアごとに、暗号化キーワード記憶領域211のデータIDのうち対応付けられている世代値jが当該トラップドアの世代値jと一致しているデータIDを抽出し、抽出したデータIDとトラップドアに一方向性関数Hを適用して暗号化キーワード候補(H(id,tdj,j))を算出し、算出した暗号化キーワード候補(H(id,tdj,j))が、暗号化キーワード記憶領域211の対応する行の暗号化キーワードcに一致するか否かの照合を行う。
上記の等式が成立した場合はcが指定されたキーワードwに対応する暗号化キーワードとなるため、比較部222は、暗号化キーワード記憶領域211から対応するデータID(id)を抽出し(S3204)、抽出したデータID(id)をキーに暗号化データ記憶領域212を検索して暗号化データdを取得する(S3205)。
最後に、通信部231が情報処理装置301に、キーワードwに対応する暗号化データdを送信する。
なお、上記の等式が複数成立した場合は全て送信するようにしても、一部を送信するようにしても良い。
上記の等式が暗号化キーワード記憶領域211のどの行においても不成立であった場合は、情報処理装置301にその旨を送信する。
なお、存在しないキーワードを指定した場合の他、データ検索の要求元が正当なアクセス権限を有しない場合(正しい暗号鍵を有しないので、適切なトラップドアを作成できない)に、上記の等式が暗号化キーワード記憶領域211のどの行においても不成立となると考えられる。
暗号化データdを受信した情報処理装置301では、暗号化データdの復号を行う。
ここでは、正当な情報処理装置301だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する。
ここで、図21を参照して、具体例を用いて鍵生成手順及び各鍵とトラップドアの関係を説明する。
図21の例では、0世代目が先頭世代であり、5世代目が最新世代である。
また、実線の矢印が関数Fを示し、破線がFを示し、鎖線が関数Gを示している。
グループの初期からグループに所属している所属ユーザには、最新世代が5世代目であるときには、最新世代の暗号鍵として暗号鍵k0,5が配布されている。
暗号鍵k0,5からは、関数F及び関数Fの実行により全世代の暗号鍵k0,0〜k5,5が導出可能であり、また、暗号鍵k0,0〜k5,5の各々から関数Gよりトラップドアtd0,0〜td5,5が導出可能である。
このため、グループの初期からグループに所属している所属ユーザの情報処理装置301では、暗号鍵k0,5からトラップドアtd0,0〜td5,5が集約されている集約トラップドアtd0,5を生成することができる。
また、サーバ装置201では、集約トラップドアtd0,5からトラップドアtd0,0〜td5,5の各々を導出することができ、検索要求元のユーザが暗号鍵k0,5を所持していることを検証することができる。
この結果、サーバ装置201では、暗号鍵に設定されている許可世代範囲である0世代目〜5世代目の範囲内で暗号化データを検索する。
一方、暗号鍵が2度更新された後にグループに加入したユーザ(加入時に配布される暗号鍵が暗号鍵k2,2)には、最新世代が5世代目であるときには、最新世代の暗号鍵として暗号鍵k2,5が配布されている。
暗号鍵k2,5からは、関数F及び関数Fの実行により暗号鍵k2,2〜k5,5のみ導出可能であり、また、暗号鍵k2,2〜k5,5の各々から関数Gよりトラップドア暗号鍵td2,2〜td5,5が導出可能である。
このため、途中からグループに加入した所属ユーザの情報処理装置301では、暗号鍵k2,5からトラップドアtd2,2〜td5,5が集約されている集約トラップドアtd2,5のみが生成可能である。
また、サーバ装置201では、集約トラップドアtd2,5からトラップドアtd2,2〜td5,5の各々を導出することができ、検索要求元のユーザが暗号鍵k2,5を所持していることを検証することができる。
この結果、サーバ装置201では、暗号鍵に設定されている許可世代範囲である2世代目〜5世代目の範囲内で暗号化データを検索する。
なお、サーバ装置201が受信したトラップドアtds,tから生成したi世代目のトラップドアtdi,iと、情報処理装置301が暗号化データ送信の際に、暗号鍵ki,iから生成したトラップドアが一致し、本秘匿検索システムが正常に機能することは、例えば以下のように確認される。
サーバ装置201がトラップドアtds,tから生成したi世代目のトラップドアtdi,iは、
tdi,i=F t−i(F i−s(tds,t))
=F t−i(F i−s(G(ks,t,w)))
=F t−i(G(F i−s(ks,t),w))
=G(F t−i(F i−s(ks,t)),w)
=G(ki,i,w)
となり、これは情報処理装置301がi世代目に生成するトラップドアと一致する。
また、システムの安全性、すなわちサーバ装置201がトラップドアや暗号化キーワードからキーワードを類推できないことや、ある期間の暗号鍵を持つ情報処理装置301が期間外の暗号鍵を類推できず、検索も行えないことは、F,F,Hの一方向性、Gの入力推定困難性に基づいている。
特に、本実施の形態にて示した具体例においては、RSA(登録商標)暗号の安全性に基づいている。
以上によって、情報処理装置301がデータ・キーワードをサーバ装置201に対して秘匿したまま検索できる秘匿検索システムが実現できる。
サーバ装置201が、受信したトラップドアから検索期間に対応する全てのトラップドアを生成できるため、検索時に情報処理装置301が送信すべきトラップドアが削減でき、情報処理装置301の計算量や通信量の削減を達成できる。
また、加入ユーザに対して検索可能期間を設定するという、柔軟性も達成している。
なお、本実施の形態では、キーワードwをそのまま関数Gへの入力としているが、一方向性関数を適用するなどして、適当に変換したものを関数Gへの入力としても良い。
また、本実施の形態では、検索結果として暗号化データを返すために暗号化データ記憶領域212を利用しているが、暗号化データを返す必要がない場合、サーバ装置201が暗号化データ記憶領域212を持たなくても良い。
例えば、暗号化データは別の装置が保持し、そこへのアクセスを可能とするためにデータIDだけを返すようにしても良い。
また、本実施の形態では、異なるデータに関連付けられた同一のキーワードが別の暗号化キーワードとなるようにするため、暗号化キーワードをc=H(id,td)のように生成しているが、この区別をつける必要がない場合、本処理を省略し、トラップドアを暗号化キーワードとして使うことも可能である。
この場合、検索時にサーバ装置201がidごとにHを適用する必要がなくなり、検索を高速化することができる。
また、本実施の形態では、グループ管理装置401が初期設定の際に、全ての暗号鍵k1,1〜kq,qを生成し、暗号鍵記憶領域411に格納しているが、k1,qのみを格納し、その他の暗号鍵は必要なときに随時導出するようにしても良い。
また、本実施の形態では、グループ管理装置401が初期設定の際に、全ての暗号鍵k1,1〜kq,qを生成し、暗号鍵記憶領域411に格納しているが、Nの素因数分解p×pを知るグループ管理装置401はFおよびFの逆関数を計算できるため、暗号鍵記憶領域411には最新の暗号鍵(例えばt世代目ではk1,t)のみを格納し、世代更新のたびに次の暗号鍵(例えばk1,t+1)を導出するようにしても良い。
この場合、世代数の最大値(q)という制限を設けることなく秘匿検索システムを運用することが可能となる。
つまり、グループ管理装置401は、予め、第1世代のみを許可世代範囲とする鍵k1,1を初期鍵として生成し、鍵発行時に、ユーザごとに、利用開始世代から鍵発行時における最新世代までの世代範囲に対応させて暗号鍵を生成するようにしてもよい。
この場合は、初期鍵又は初期鍵から派生する鍵を生成元鍵とし、生成元鍵に関数F(第1の関数)を適用して許可世代範囲の開始世代が生成元鍵の開始世代と共通し終了世代が生成元鍵の終了世代の1つ後の世代となる新たな鍵を生成する。この場合は、生成元鍵は、終了世代が生成対象の鍵の1世代前の鍵である。
または、生成元鍵にF(第2の関数)を適用して許可世代範囲の終了世代が生成元鍵の終了世代と共通し開始世代が前記生成元鍵の開始世代の1つ後の世代となる新たな鍵を生成するようにしてもよい。この場合は、生成元鍵は、開始世代が生成対象の鍵の1世代前の鍵である。
また、本実施の形態では、情報処理装置301が暗号化データを送信する際に、トラップドアtdxjを計算するためにkt,tを導出しているが、暗号鍵記憶領域311にks,tだけでなくkt,tも格納しておくことで、暗号化ごとの計算量を削減することも可能である。
また、本実施の形態では、情報処理装置301が暗号化データを検索する際に、暗号鍵記憶領域311に格納されている暗号鍵ks,tを利用してトラップドアを作成することで、s世代目からt世代目までの検索を行っているが、情報処理装置301が検索期間の短い別の暗号鍵ki,j(s≦i≦j≦t)を導出してトラップドアを作成することで、i世代目からj世代目までに限定した検索を行うことも可能である。
また、本実施の形態では、データに複数のキーワードが関連付けられている場合、各キーワードに対し暗号化キーワードを送信し、これらを暗号化キーワード記憶領域211の複数行に格納しているが、複数キーワードを効率的に処理するBloom Filterなどの既存技術と組み合わせて、複数キーワードを1行でまとめて処理できるようにしても良い。
以上、本実施の形態では、
(1)サーバに保存されたデータを、ユーザがキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバに対して秘匿する秘匿検索システムで、検索の際に利用する秘密情報を世代ごとに更新するシステムにおいて、データ保存・検索時にユーザがサーバに送信するトラップドアを、サーバが最新のトラップドアから過去のトラップドアを導出できるようなものにすることで、検索時にユーザが送信すべきトラップドアの数を削減し、結果として計算量や通信量を削減する方式を説明した。
また、本実施の形態では、
(2)上記(1)において、関数F,F,Gを利用することで、加入ユーザの検索権限を柔軟に設定できる方式を説明した。
また、本実施の形態では、
(3)上記(2)において、RSA(登録商標)暗号の安全性をベースとする方式を説明した。
実施の形態2.
本実施の形態では、加入ユーザに加入前の情報を検索させないという目的を、実施の形態1で述べたものと異なる手段で達成する方式について述べる。
まず、本実施の形態に係る装置構成等の詳細を説明する前に、本実施の形態の動作概要を説明する。
図22及び図23は、本実施の形態の動作概要を説明する図である。
まず、図22を用いて鍵の生成手順、更新手順及び暗号化データの格納手順を概説する。
図22において、αはいずれのユーザ及び情報処理装置1001(本実施の形態では、情報処理装置1001と表記する)に対しても秘密にしている秘密パラメータである。
秘密パラメータαは、グループ管理装置401からサーバ装置901(本実施の形態では、サーバ装置901と表記する)に通知される。
wは、ユーザが指定するキーワードである。
関数Fは、ある世代の暗号鍵から1つ前の世代の暗号鍵又はある世代のトラップドアから1つ前の世代のトラップドアを生成するための関数である。
関数Gは、暗号鍵からトラップドアを生成するための関数である。
グループ管理装置401では、最終世代の鍵kを生成するとともに、当該鍵kに関数Fを適用して1世代前の鍵kM−1を生成し、以降、新たに生成された鍵に関数Fを適用し、先頭世代の鍵である鍵kを生成する。なお、関数Fには、αべき乗の演算が含まれる。
グループ管理装置401は、まず、鍵kをグループの初期からグループに所属している所属ユーザの情報処理装置1001に送信する。
更新イベントが発生し、鍵kから鍵の世代を更新する場合は、グループ管理装置401は、次の世代の鍵ki+1を送信する。
情報処理装置1001では、鍵の更新がある度に、それまで保持している鍵に、新たな鍵を合成して合成鍵を生成する。具体的には、鍵の積算を行う。
例えば、新たな鍵として鍵kが配布された場合は、情報処理装置1001は、その時点での最新世代の鍵としてkを保持し、また、k、k、kの積であるkを保持している。
このため、情報処理装置1001は、最新世代の鍵をkに置換するとともに、保持している鍵の積に新たな鍵kを加えて、鍵kに更新する。
また、各世代の鍵kに対して関数Gを適用すると、トラップドアtdが生成できる。
なお、関数Gには、wべき乗の演算が含まれている。
暗号化データの格納の際には、情報処理装置1001において、ユーザから格納指示があった時点での最新世代の鍵とキーワードwに対して関数Gを適用してトラップドアを生成する。
更に、トラップドアと暗号化データのデータIDに対して一方向性演算を行って暗号化キーワードを生成する。
そして、情報処理装置1001は、暗号化データ、暗号化キーワード、最新世代の鍵の世代値、データIDをサーバ装置901に送信し、サーバ装置901はこれらを対応付けて格納する。
次に、図23を用いて、暗号化データの検索手順を説明する。
ここでは、最新世代の鍵kを保有し、鍵の積kを保有しているユーザが暗号化データを検索する場合を例にして説明する。
情報処理装置では、最新世代の鍵kとキーワードwに対して関数Gを適用してトラップドアtdを生成する。
また、情報処理装置1001は、鍵の積kとキーワードwに関数Gを適用して鍵の積に対応するトラップドアを生成する。ここでは、鍵k〜kに対応するトラップドアなのでtd0,3と表記する。
情報処理装置1001は、2つのトラップドアtdとtd0,3をサーバ装置901に送信する。
なお、トラップドアtdは暗号化最新世代情報に相当し、トラップドアtd0,3は、トラップドアtd〜tdを集約した情報であるため、集約情報に相当する。
また、トラップドアtd0,3は、サーバ装置901において、情報処理装置1001が鍵k〜kの保持実績があるか否か、すなわち、第0世代〜第3世代に対応する暗号化データにアクセスする権限があるか否かを検証するためのトラップドアであり、検証用トラップドアという。
サーバ装置901では、トラップドアtdに、秘密パラメータαが含まれる関数Fを用いて、トラップドアtdを導出し、更に、トラップドアtdに関数Fを適用してトラップドアtdを導出し、最終的にトラップドアtd〜tdを導出する。
更に、サーバ装置901は、導出したトラップドアtd〜tdと情報処理装置1001から受信したトラップドアtdの積がトラップドアtd0,3と一致するか否かを検証する。
一致する場合は、サーバ装置901は、情報処理装置1001が鍵k〜kの保持実績がある、すなわち、第0世代〜第3世代に対応する暗号化データにアクセスする権限があると判断し、第0世代〜第3世代の範囲で暗号化データの検索を行う。
本実施の形態に係る方式の概要は以上であり、以下では、本実施の形態に係る方式を詳細に説明する。
秘匿検索システムの構成例は実施の形態1で述べたものと同様である。
図9は、本秘匿検索システム(図1)において、データ・キーワードを保持し、検索を行うサーバ装置901の構成例を表すブロック図である。
図9において、暗号化キーワード記憶領域211、暗号化データ記憶領域212、トラップドア生成部221、比較部222、通信部231に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
関数パラメータ記憶領域913は、過去のトラップドア導出に必要な秘密パラメータを記憶するデータ記憶手段である。
ここには、グループ管理装置401から受信した単一の値が格納される。
トラップドア検証部923は、情報処理装置1001から受信したトラップドアが、正当な検索権限を持った情報処理装置1001が生成したものであるかを検証する手段である。
図10は、本秘匿検索システム(図1)において、サーバ装置901への暗号化データの登録・サーバ装置901からの暗号化データの検索を行う情報処理装置1001の構成例を表すブロック図である。
図10において、トラップドア生成部321、暗号化キーワード生成部322、通信部331に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域311は、データの暗号化・検索に用いる秘密情報を記憶するデータ記憶手段である。
図11は暗号鍵記憶領域311が記憶するデータの一例を表す。
図11の例において、検証用暗号鍵k1,3は、1世代目から3世代目までの秘密情報を検索する権限があることを、サーバ装置901に対して証明するための秘密情報である。
検証用トラップドア生成部1023は、情報処理装置1001が、ある期間についての秘密情報を検索する権限があることを、サーバ装置901に対して証明するための検証用トラップドアを生成する手段である。
また、本実施の形態に係るグループ管理装置401の構成例は、実施の形態1で述べた図4から世代範囲記憶領域441を除いたものに相当する。
なお、本実施の形態に係るグループ管理装置401の構成例の図示は省略している。
図4において、暗号鍵生成部421、通信部431及び暗号鍵配布処理部451に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域411は、情報処理装置1001が利用する暗号鍵を記憶するデータ記憶手段である。
図13は暗号鍵記憶領域411が記憶するデータの一例を表す。
本実施の形態においても、本秘匿検索システムにおける手続きは、実施の形態1にて記述した五つの手続きに大別される。
以下、それぞれの手続きについて説明する。
(1)グループ管理装置の初期設定
グループ管理装置401は、パラメータq、および可換な二つの関数F(x,y),G(x,y)を決定し、公開情報とする。
ここで、FとしてはxとF(x,y)からyを推定することが困難な関数を選び、またGとしては、関数の出力から実際の入力を推定することが困難であり、かつxに関して準同型性を持つ関数を選ぶ。
また、FとGの可換性とは、F(G(x,y),z)=G(F(x,z),y)を意味するものとする。
qは世代数の最大値(最終世代)であり、世代の更新頻度やシステムの運用期間から適切に設定する。
また、関数Fのパラメータとなる秘密パラメータαを決定する。
さらに、適当な一方向性関数Hを選択し、公開情報とする。
本実施の形態では、F,Gの具体例として、以下に基づき決定したものを利用する。
pとして十分大きな素数を選び、F,Gを以下で定める。
F(x,y)=x mod p
G(x,y)=x mod p
このとき、Gは以下の準同型性を持つ。
G(x,y)=G(x,y)G(x,y)
また、αを巡回群Z から、p−1と互いに素となるようランダムに選択する。
次に、暗号鍵生成部421による鍵生成動作の詳細を図33のフローチャートを参照しながら説明する。
暗号鍵生成部421は、情報処理装置1001が利用する暗号鍵k(1≦i≦q)を生成する。
まず、暗号鍵生成部421は、暗号鍵k(最終世代の鍵)を、巡回群Z の生成元からランダムに選択する(S3301)。
そして、初期鍵である暗号鍵kに対して所定の鍵生成関数を適用して、新たな暗号鍵を生成し、以降、生成済みの鍵に鍵生成関数を適用して、各鍵間に連続性を持たせながら、生成済みの鍵とは別の世代の鍵を生成する。
具体的には、暗号鍵k以外の暗号鍵k(1≦i<q)を、以下の式に従って順次計算する(S3302)。
i−1=F(k,α)
このように、暗号鍵生成部421は、初期鍵である暗号鍵kと秘密パラメータαに対して鍵生成関数Fを適用して、最終世代の1つ前の世代の新たな暗号鍵kq−1を生成し、生成した暗号鍵kq−1と秘密パラメータαに対して鍵生成関数Fを適用して更に1つ前の世代の暗号鍵kq−2を生成し、以降、新たに生成した鍵と秘密パラメータαに対して鍵生成関数Fを適用する動作を繰り返して、第1世代から最終世代の暗号鍵k〜kを生成する。
こうして得られた全ての暗号鍵k〜kを、暗号鍵生成部421は、暗号鍵記憶領域411に格納する(S3303)。
そして、暗号鍵配布処理部451が1世代目の暗号鍵kを暗号鍵記憶領域411から取得し、通信部431が、全ての正当な情報処理装置1001に、1世代目の暗号鍵kを送信する(S3304)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵kを受信した情報処理装置1001は、この暗号鍵kを、世代とともに暗号鍵記憶領域311に格納する。
また、検索開始世代(利用開始世代)として1を、検証用暗号鍵k1,1として暗号鍵kと同じ値を格納する(図12)。
最後に、通信部431が、サーバ装置901に、秘密パラメータαを送信する(S3305)。
これは、安全性が保たれる方式であれば、オフラインで行っても良いし、既存技術を用いてオンラインで行っても良い。
秘密パラメータαを受信したサーバ装置901は、この秘密パラメータαを、関数パラメータ記憶領域913に格納する。
(2)加入ユーザへの暗号鍵配布
t世代目においてユーザの加入があった際、加入した情報処理装置1001に対して暗号鍵を配布する。
加入ユーザに対して、t世代目を含めた、s世代目からt世代目まで(s≦t)の秘密情報の検索を許す場合、グループ管理装置401の通信部431が、加入した情報処理装置1001に、暗号鍵k、以下で導出される検証用暗号鍵ks,t、および世代情報s,tを送信する。なお、以下の式は、鍵の(巡回群における)積を表している。
s,t=ks+1…k
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
これらを受信した情報処理装置1001は、暗号鍵記憶領域311に、世代としてtを、暗号鍵としてkを、検索開始世代としてsを、検証用暗号鍵としてks,tを格納する。
この場合、次で述べる「(3)暗号鍵の世代更新」の処理は不要である(行っても良い)。
一方、加入ユーザに対して、t世代目の秘密情報の検索を許さない場合、グループ管理装置401の通信部431が、加入した情報処理装置1001に、暗号鍵および検証用暗号鍵としてkt+1を、世代および検索開始世代としてt+1を送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
これらを受信した情報処理装置1001は、暗号鍵記憶領域311に、世代としてt+1を、暗号鍵としてkt+1を、検索開始世代としてt+1を、検証用暗号鍵kt+1,t+1としてkt+1を格納する。
その後、t世代目からt+1世代目に更新するために、次で述べる「(3)暗号鍵の世代更新」の処理が実行される。
図34は、以上の(2)加入ユーザへの暗号鍵配布における動作を示すフローチャートである。
暗号鍵配布処理部451は、例えば、グループ管理装置401のオペレータからの入力に基づき、新たに加入する加入ユーザに許容される世代範囲を判断する(S3401)。
加入ユーザにs世代〜t世代が認められる場合は、暗号鍵配布処理部451は、暗号鍵k〜暗号鍵kを暗号鍵記憶領域411から取得し、取得した暗号鍵k〜暗号鍵kを積算して検証用暗号鍵ks,tを生成し、暗号鍵k、検証用暗号鍵ks,t、世代情報(s、t)を通信部431が当該ユーザの情報処理装置301に送信する(S3402)。
一方、S3401の判断において、新規に加入するユーザにt世代が許可されない場合は、暗号鍵配布処理部451は、暗号鍵kt+1を暗号鍵記憶領域411から取得し、通信部431が当該ユーザの情報処理装置301に暗号鍵kt+1と世代情報(t+1)を送信する(S3403)。
また、この後、図35に示す世代更新処理が行われる(S3404)。
(3)暗号鍵の世代更新
正当な情報処理装置1001のグループに対し、ユーザの加入・脱退があった際に、暗号鍵の世代更新が必要となる場合がある。
このようなユーザの加入(上記のt世代目の秘密情報の検索を認めないユーザの加入)及びユーザの脱退が更新イベントとなる。
更新イベントが発生した場合には、以下のように世代更新を実施する。
t世代目からt+1世代目に更新する場合(ただしt+1≦q)、グループ管理装置401の通信部431が、(加入ユーザを除く)全ての正当な情報処理装置1001(所属ユーザが利用している情報処理装置1001)に、t+1世代目の暗号鍵kt+1を送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵kt+1を受信した情報処理装置1001は、暗号鍵記憶領域311の内容のうち、世代をt+1に、暗号鍵をkt+1に、検証用暗号鍵ks,tを以下で導出されるks,t+1に置き換える。
s,t+1=ks,tt+1(=ks+1…kt+1
なお、グループを脱退した者がいる場合には、当該脱退者には、更新後の最新世代の鍵が配布されない。
このため、脱退者は、脱退前にサーバ装置901に登録されている暗号化データには、保持している暗号鍵を用いてアクセスすることができるが、脱退後にサーバ装置901に登録された暗号化データには、更新後の暗号鍵を保有していないのでアクセスできない。
なお、以前の暗号化データを含め一切の暗号化データに脱退者がアクセスできないようにすることもできる。
図35は、以上の(3)暗号鍵の世代更新における動作を説明するフローチャートである。
更新イベントが発生した場合、つまり、ユーザの脱退又は世代更新が必要なユーザの加入があった場合(S3501でYES)、暗号鍵配布処理部451は、t+1世代に対応する暗号鍵kt+1を暗号鍵記憶領域411から取得する(S3502)。
そして、通信部431が各所属ユーザの情報処理装置301に暗号鍵kt+1を送信する(S3503)。
(4)暗号化データの送信・格納
正当な情報処理装置1001がデータをサーバ装置901に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
t世代目における具体的な手順を以下に述べる。
なお、動作のフローチャートは、図29及び図30と同様である。
まず、情報処理装置1001は、データに対し、ユニークなデータIDを割り当てる(idとする)。
さらに、情報処理装置1001は、データの暗号化を行う。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する(暗号化データをdとする)。
次に、トラップドア生成部321が、データに関連付けられた複数のキーワード(wxjとする)に対し、それぞれトラップドアを生成する。
具体的には、暗号鍵記憶領域311に格納されている暗号鍵kを利用して、各キーワードwxjに対し、トラップドアtdxjを以下のように計算する。
tdxj=G(k,wxj
その後、暗号化キーワード生成部322が、各トラップドアtdxjに対し、暗号化キーワードcxjを以下のように計算する。
xj=H(id,tdxj
最後に、通信部331が、世代、データID、暗号化データ、暗号化キーワードの組(t,id,d,cx1,cx2,...)をサーバ装置901に送信する。
これらを受信したサーバ装置901は、暗号化データdをデータIDと関連付けて暗号化データ記憶領域212に格納し、各暗号化キーワードcxjを世代、データIDと関連付けて暗号化キーワード記憶領域211に格納する。
(5)暗号化データの検索・取得
正当な情報処理装置1001は、現在もしくは過去の世代にサーバ装置901に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
暗号鍵k、検証用暗号鍵ks,tを持つ正当な情報処理装置1001が、s世代目からt世代目までの検索を行う具体的な手順を図36及び図37を参照しながら以下に述べる。
まず、情報処理装置1001は、暗号化データの検索指示として、ユーザから検索対象のキーワードwを入力する(S3601)。
次に、トラップドア生成部321が、検索したいキーワードwに対応するトラップドアを生成する(S3602)。
具体的には、キーワードwに対し、トラップドアtdを以下のように計算する。
なお、kは、ユーザの検索指示時点での最新世代の暗号鍵である。
td=G(k,w)
このトラップドアtdは、暗号化最新世代情報に相当する。
さらに、情報処理装置1001の検証用トラップドア生成部1023が、s世代目からt世代目までを検索する権限があることをサーバ装置901に対して証明するための検証用トラップドアtds,tを以下のように計算する(S3603)。
なお、ks,tは、鍵k〜鍵kの積である。
tds,t=G(ks,t,w)
次に、通信部331が、検索開始世代(s)、検索終了世代(t)、トラップドア、検証用トラップドアの組(s,t,td,tds,t)をサーバ装置901に送信する(S3604)。
サーバ装置901では、通信部231が検索要求を受信し(S3701)、トラップドア生成部221が、s世代目からt−1世代目までのそれぞれに対応するトラップドアtd〜tdt−1を以下のように順次計算する(S3702)。
tdi−1=F(td,α) (s<i≦t)
そして、トラップドア検証部923が、導出したトラップドアtd〜tdと、受信した検証用トラップドアtds,tの整合性を確認する(S3703)。
具体的には、以下の等式が成立するか否かを確認する。
tdtds+1…td=tds,t
この等式が成立しなかった場合(S3704でNO)、情報処理装置1001に正当な検索権限がないとみなし、処理を終了する。
等式が成立した場合(S3704でYES)、実際の検索処理を実行する(S3705、S3706)。
すなわち、比較部222が、暗号化キーワード記憶領域211を参照し、トラップドアに対応する暗号化キーワードが存在するかを確認する。
具体的には、暗号化キーワード記憶領域211の各行の世代、データID、暗号化キーワードの組(j,id,c)に対し、以下の等式が成立するかを確認する。
c=H(id,td
成立した場合はcが指定されたキーワードwに対応する暗号化キーワードとなるため、暗号化データ記憶領域212を参照してidから暗号化データdを取得する(S3707)。
そして、通信部231が情報処理装置1001に、キーワードwに対応する暗号化データdを送信する(S3708)。
等式が複数成立した場合は全て送信するようにしても、一部を送信するようにしても良い。
上記の等式が暗号化キーワード記憶領域211のどの行においても不成立であった場合は、その旨を送信する。
暗号化データdを受信した情報処理装置1001は、dの復号を行う。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する。
なお、サーバ装置901が受信したトラップドアtdから生成したi世代目のトラップドアtdと、情報処理装置1001が暗号化データ送信の際に、暗号鍵kから生成したトラップドアが一致し、本秘匿検索システムが正常に機能することは、例えば以下のように確認される。
サーバ装置901がトラップドアtdから生成したi世代目のトラップドアtdは、
td=Ft−i(td,α)
=Ft−i(G(k,w),α)
=G(Ft−i(k,α),w)
=G(k,w)
となり、これは情報処理装置1001がi世代目に生成するトラップドアと一致する
(ここで、例えばF(x,y)はF(F(x,y),y)を表す。以下においても同様)。
さらに、サーバ装置901が受信したトラップドアtdから導出したトラップドアtd〜tdと、受信した検証用トラップドアtds,tの間に整合性があり、検索権限の確認が正常に機能することは、例えば以下のように確認される。
td=G(k,w)
tdtds+1…td=G(k,w)G(ks+1,w)…G(k,w)
=G(ks+1…k,w)
=G(ks,t,w)
=tds,t
また、システムの安全性、すなわちサーバ装置901がトラップドアや暗号化キーワードからキーワードを類推できないことや、ある期間の暗号鍵を持つ情報処理装置1001が期間外の暗号鍵を類推できず、検索も行えないことは、F,Gの入力推定困難性、Hの一方向性に基づいている。
特に、本実施の形態にて示した具体例においては、離散対数問題の安全性に基づいている。
以上によって、情報処理装置1001がデータ・キーワードをサーバ装置901に対して秘匿したまま検索できる秘匿検索システムが実現できる。
サーバ装置901が、受信したトラップドアから検索期間に対応する全てのトラップドアを生成できるため、検索時に情報処理装置1001が送信すべきトラップドアが削減でき、情報処理装置1001の計算量や通信量の削減を達成できる。また、加入ユーザに対して検索可能期間を設定するという、柔軟性も達成している。
なお、実施の形態1にて記述したバリエーションは、本実施の形態においても同様に適用可能である。
例えば、本実施の形態では、グループ管理装置401は、最終世代から第1世代の鍵に遡って全世代の鍵を生成し、全世代の鍵を記憶し、鍵更新タイミングにおいて、記憶している鍵の中から該当する鍵を抽出して、情報処理装置1001に送信することとしている。
これに代えて、グループ管理装置401は、予め、第1世代の鍵を生成し、鍵発行時に、鍵発行時点での最新世代に対応させて、第1世代の鍵又は第1世代の鍵から派生する鍵を生成元鍵とし、生成元鍵と秘密パラメータαに対して鍵生成関数Fを適用して、生成元鍵の1つ後の世代の新たな鍵を最新世代の鍵として生成し、生成した最新世代の鍵をユーザに発行するようにしてもよい。
また、本実施の形態では、情報処理装置1001の暗号鍵記憶領域311に記憶する秘密情報を削減するために、秘密情報としては最新世代の暗号鍵と検証用暗号鍵のみを格納しているが、全ての世代の暗号鍵を格納するようにしても良い。
この場合、情報処理装置1001が検索期間の短い別の検証用暗号鍵ki,j(s≦i≦j≦t)を導出してトラップドアを作成することで、i世代目からj世代目までに限定した検索を行うことも可能である。
以上、本実施の形態では、関数F,Gを利用することで、加入ユーザの検索権限を柔軟に設定できる方式を説明した。
更に、本実施の形態では、巡回群における離散対数問題の安全性をベースとする方式を説明した。
実施の形態3.
本実施の形態では、脱退ユーザとして「異動ユーザ」「退職ユーザ」の、検索権限の異なるユーザが混在する場合に、秘匿検索を実現するという目的を達成する方式について述べる。
なお、本実施の形態において、「異動ユーザ」「退職ユーザ」の用語は以下の意味で用いる。
異動ユーザ:
グループからは脱退し、脱退以降の情報は検索できなくなるが、脱退以前の情報に関しては脱退以前と同じように検索できるユーザ。
つまり、グループから脱退したが脱退前にサーバ装置1401(本実施の形態では、サーバ装置1401と表記する)に格納された暗号化データに対しては検索が許容されるユーザである。
異動ユーザは、限定ユーザの例である。
退職ユーザ:
グループから脱退し、脱退以前に検索できた情報も含めた全ての情報が検索できなくなる者。
つまり、グループから脱退しサーバ装置1401の暗号化データに対する検索が禁止される者である。
退職ユーザは、禁止ユーザの例である。
また、グループに所属しているユーザ(異動ユーザでも、退職ユーザでもないユーザ)は、所属ユーザという。
所属ユーザは、サーバ装置1401の暗号化データに対する検索が許容される。
このため、本実施の形態に係るグループ管理装置401では、所属ユーザ、異動ユーザ、退職ユーザの3つのユーザカテゴリーが設けられている。
なお、本実施の形態では、説明の簡明化のため、グループに途中から加入する者がない形態(更新イベントはグループからの脱退のみ)を前提に説明を行う。
まず、本実施の形態に係る装置構成等の詳細を説明する前に、本実施の形態の動作概要を説明する。
図24及び図25は、本実施の形態の動作概要を説明する図である。
まず、図24を用いて鍵の生成手順を概説する。
本実施の形態では、暗号鍵はki,jという表記を用いる。値i及びjは、鍵の世代値を示す。iは、退職ユーザが発生した際に値が更新される退職ユーザ対応値(禁止ユーザ対応値)であり、jは、異動ユーザが発生した際に値が更新される異動ユーザ対応値(限定ユーザ対応値)である。
例えば、鍵k2,2は、退職ユーザ対応値が第2世代であり、異動ユーザ対応値が第2世代であり、退職及び異動がそれぞれ2回ずつ発生したことを意味している。
各暗号鍵ki,jには、サーバ装置1401においてトラップドアから退職ユーザ対応値i及び異動ユーザ対応値jが導出可能なように、退職ユーザ対応値i及び異動ユーザ対応値jが設定されている。
関数Fは、ある世代の異動ユーザ対応値が設定されている暗号鍵から1つ前の世代の異動ユーザ対応値の暗号鍵又はある世代の異動ユーザ対応値が設定されているトラップドアからの1つ前の世代の異動ユーザ対応値のトラップドアを生成するための関数である。
関数Fは、ある世代の退職ユーザ対応値が設定されている暗号鍵から1つ前の世代の退職ユーザ対応値の暗号鍵又はある世代の退職ユーザ対応値が設定されているトラップドアからの1つ前の世代の退職ユーザ対応値のトラップドアを生成するための関数である。
関数Fは第1の関数に相当し、関数Fは第2の関数に相当する。
グループ管理装置401では、最終世代の鍵kq1、q2を生成するとともに、当該鍵kq1、q2に関数Fを適用して異動ユーザ対応値が1世代前の鍵kq1、q2−1を生成する。
また、最終世代の鍵kq1、q2に関数Fを適用して退職ユーザ対応値が1世代前の鍵kq1−1、q2を生成する。
関数F1及びF2の適用を繰り返して、各鍵間に連続性を持たせながら、退職ユーザ対応値の全世代及び異動ユーザ対応値の全世代が含まれる全ての組み合わせパターンに対応する鍵k0、0〜kq1、q2を生成し、生成した鍵k0、0〜kq1、q2を記憶する。
また、グループに所属している所属ユーザの情報処理装置1001に初回の鍵として鍵k0、0を送信する。
なお、この時点では、グループからの脱退は発生していない。
また、グループ管理装置401は、先頭世代の鍵である鍵k0、0と、いずれのユーザ及び情報処理装置1001にも公開されている公開値である特別なキーワードwを用いて特別な暗号化キーワードcを生成し、サーバ装置1401に特別な暗号化キーワードcを送信する。サーバ装置1401では、特別な暗号化キーワードcを記憶する。
特別な暗号化キーワードcは、公開値である特別なキーワードwと鍵k0、0を用いているため、鍵k0、0を保有する正当な情報処理装置1001であれば特別な暗号化キーワードcを導出可能なトラップドアを生成することができる。
なお、特別な暗号化キーワードcは、先頭世代暗号値に相当する。
次に、図25を用いて鍵の更新手順及び暗号化データの検索手順を概説する。
最新世代の鍵が鍵k0、0であるときに、異動1が発生すると、所属ユーザには、異動ユーザ対応値が更新された新たな鍵k0、1が配布される。一方、異動1で異動した異動ユーザ1には、新たな鍵は配布されない。
次に、最新世代の鍵が鍵k0、1であるときに、退職1が発生すると、所属ユーザには、所属ユーザ向け鍵k1、1が配布される。所属ユーザ向け鍵k1、1は、退職ユーザ対応値が更新された値となっている。
また、異動1で異動した異動ユーザ1には、異動ユーザ向け鍵k1、0が配布される。異動ユーザ向け鍵k1、0は、退職ユーザ対応値が更新された値(1)となり異動ユーザ対応値は当該異動ユーザの異動前の値(0)のままである。
同様に、最新世代の鍵が鍵k1、1であるときに、異動2が発生すると、所属ユーザには、異動ユーザ対応値が更新された新たな鍵k1、2が配布される。
異動2で異動した異動ユーザ2には、新たな鍵は配布されない(鍵k1、1のまま)。
また、異動1で異動した異動ユーザ1にも新たな鍵は配布されない(鍵k1、0のまま)。
最新世代の鍵が鍵k1、2であるときに、退職2が発生すると、所属ユーザには、所属ユーザ向け鍵k2、2が配布される。
鍵k1、0を保持している異動ユーザ1には異動ユーザ鍵k2、0が配布され、鍵k1、1を保持している異動ユーザ2には異動ユーザ鍵k2、1が配布される。
なお、鍵の更新がある度に、グループ管理装置401からサーバ装置1401に最新世代の鍵の世代値が通知される。
この例では、異動1の際に、最新世代の世代値として(0,1)が通知され、退職1の際に(1,1)が通知され、異動2の際に(2,1)が通知され、退職2の際に(2,2)が通知される。
サーバ装置1401は、都度、通知された世代値を記憶する。
また、暗号化データの格納手順は、実施の形態1と同様であり、情報処理装置1001は、保持している最新世代の鍵とキーワードに所定の関数Gを適用してトラップドアを生成し、また、トラップドアとデータIDに所定の関数Hを適用して、暗号化キーワードを生成する。
また、情報処理装置1001は、暗号化データ、データID、暗号化キーワード、鍵の世代値をサーバ装置1401に送信し、サーバ装置1401では、これらを対応付けて記憶する。
なお、本実施の形態では、鍵の世代値は、(i,j)のようになる。
iは退職ユーザ対応値であり、jは異動ユーザ対応値である。
ここで、所属ユーザが鍵k2、2を保持し、異動ユーザ1が鍵k2、0を保持し、異動ユーザ2が鍵k2、1を保持している状況での暗号化データの検索手順を説明する。
所属ユーザが利用している情報処理装置1001は、最新世代の鍵k2、2とキーワードwに対して所定の関数Gを適用してトラップドアを生成する。
このトラップドアは、実施の形態1と同様に、鍵k0、0〜鍵k2、2に含まれる鍵k0、0、k0、1、k0、2、k1、0、k1、1、k1、2、k2、0、k2、1、k2、2に対応するトラップドアtd0、0、td0、1、td0、2、td1、0、td1、1、td1、2、td2、0、td2、1、td2、2が集約されている集約トラップドアである。ここでは、集約トラップドアtd(2、2)と表記する。
また、所属ユーザが利用している情報処理装置1001は、最新世代の鍵k2、2と特別なキーワードwに対して所定の関数Gを適用して検証用トラップドアtdを生成する。
検証用トラップドアtdは、照合用情報に相当する。
また、所属ユーザが利用している情報処理装置1001は、集約トラップドアtd(2、2)と検証用トラップドアtdをサーバ装置1401に送信する。
サーバ装置1401では、検証用トラップドアtdに対して関数F及びFを適用して、鍵k0、0に対応するトラップドアtd0、0を導出し、導出したトラップドアtd0、0に対して特別なIDであるidを適用し、暗号化キーワードcが得られるか否かを検証し、検証に成功した場合に、集約トラップドアtd(2、2)を用いた暗号化データの検索を行う。
具体的には、実施の形態1と同様に、集約トラップドアtd(2、2)に関数F及びFを適用して、トラップドアtd0、0、td0、1、td0、2、td1、0、td1、1、td1、2、td2、0、td2、1、td2、2を導出し、各トラップドアとインデックス情報との照合により当該ユーザに許可されている(0,0)〜(2,2)の世代範囲内で暗号化データを検索する。
異動ユーザ1が利用している情報処理装置1001は、保持している鍵k2、0とキーワードwに対して所定の関数Gを適用してトラップドアを生成する。
このトラップドアは、実施の形態1と同様に、鍵k0、0〜鍵k2、0に含まれる鍵k0、0、k1、0、k2、0に対応するトラップドアtd0、0、td1、0、td2、0が集約されている集約トラップドアである。ここでは、集約トラップドアtd(2、0)と表記する。
また、異動ユーザ1が利用している情報処理装置1001は、最新世代の鍵k2、0と特別なキーワードwに対して所定の関数Gを適用して検証用トラップドアtdを生成する。
また、異動ユーザ1が利用している情報処理装置1001は、集約トラップドア(2、0)と検証用トラップドアtdをサーバ装置1401に送信する。
サーバ装置1401では、検証用トラップドアtdに対して関数F及びFを適用して、鍵k0、0に対応するトラップドアtd0、0を導出し、導出したトラップドアtd0、0に対して特別なIDであるidを適用し、暗号化キーワードcが得られるか否かを検証し、検証に成功した場合に、集約トラップドアtd(2、0)を用いた暗号化データの検索を行う。
具体的には、実施の形態1と同様に、集約トラップドアtd(2、0)に関数F及びFを適用して、トラップドアtd0、0、td1、0、td2、0を導出し、各トラップドアとインデックス情報との照合により当該ユーザに許可されている(0,0)、(1,0)、(2,0)の世代範囲内で暗号化データを検索する。
また、異動ユーザ2の場合も、使用する鍵の世代、トラップドアの種類・個数が異なるのみであり、異動ユーザ1の場合と同様である。
異動ユーザ2の場合は、(0,0)、(1,0)、(2,0)、(0,1)、(1,1)、(2,1)の世代範囲内で暗号化データが検索される。
このように、本実施の形態では、鍵ki,jに関して、最新の鍵k2,jを持つユーザのみが、jの範囲内でi=0〜2の世代範囲に合致する暗号化データの検索が可能である。
本実施の形態に係る方式の概要は以上であり、以下では、本実施の形態に係る方式を詳細に説明する。
秘匿検索システムの構成例は実施の形態1で述べたものと同様である。
図14は、本秘匿検索システム(図1)において、データ・キーワードを保持し、検索を行うサーバ装置1401の構成例を表すブロック図である。
図14において、暗号化データ記憶領域212、トラップドア生成部221、比較部222、トラップドア検証部923、通信部231に関しては、実施の形態1および2にて記述したものと同様であるため、説明は省略する。
暗号化キーワード記憶領域211は、暗号化されたキーワードを、対応するデータID、および世代と関連付けて記憶するデータ記憶手段である。
図15は暗号化キーワード記憶領域211が記憶するデータの一例を表す。
図15において、データID、および暗号化キーワードid,cは、情報処理装置1001の検索権限を検証するための特別な情報である。
世代遷移記憶領域1413は、二次元で管理された世代情報の遷移を記憶するデータ記憶手段である。
図16は世代遷移記憶領域1413が記憶するデータの一例を表す。
情報処理装置の構成例は実施の形態2で述べたものと同様(図10)である。
図10において、トラップドア生成部321、暗号化キーワード生成部322、検証用トラップドア生成部1023、通信部331に関しては、実施の形態2にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域311は、データの暗号化・検索に用いる秘密情報を記憶するデータ記憶手段である。
図17は暗号鍵記憶領域311が記憶するデータの一例を表す。
グループ管理装置の構成例は実施の形態1で述べたものと同様(図4)である。
図4において、暗号鍵生成部421、通信部431に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域411は、情報処理装置1001が利用する暗号鍵を記憶するデータ記憶手段である。
図18は暗号鍵記憶領域411が記憶するデータの一例を表す。
本実施の形態においては、本秘匿検索システムにおける手続きは、(1)グループ管理装置401が初期設定を行う部分、(2)異動ユーザの発生に伴い、グループ管理装置401が、情報処理装置1001が保持する暗号鍵の世代更新を行う部分、(3)退職ユーザの発生に伴い、グループ管理装置401が、情報処理装置1001が保持する暗号鍵の世代更新を行う部分、(4)情報処理装置1001が暗号化データをサーバ装置1401に送信・格納する部分、(5)情報処理装置1001が暗号化データをサーバ装置1401から検索・取得する部分に大別される。
以下、それぞれの手続きについて説明する。
(1)グループ管理装置の初期設定
グループ管理装置401は、パラメータq,q、および互いに可換な三つの関数F(x),F(x),G(x、y)を決定し、公開情報とする。
ここで、FおよびFとしては一方向性関数を選び、またGとしては、関数の出力から実際の入力を推定することが困難である関数を選ぶ。
また、FとGの可換性とは、例えばF(G(x,y))=G(F(x),y)を意味するものとする。
,qは世代数の最大値(最終世代)であり、それぞれ退職ユーザ、異動ユーザの発生に伴う鍵更新の上限を表す。
これらは世代の更新頻度やシステムの運用期間から適切に設定する。
さらに、検索権限を検証するための特別なキーワードw、および適当な一方向性関数Hを選択し、公開情報とする。
本実施の形態では、F,F,Gの具体例として、以下に基づき決定したものを利用する。
,pとして十分大きな素数を選び、N=p×pとする。
,eとしてZ から、(p−1)(p−1)と互いに素な数をランダムに選択する。F,F,Gを以下で定める。
(x)=xe1 mod N
(x)=xe2 mod N
G(x,y)=x mod N
なお、modはモジュロ演算子を表し、Z は0からN−1の整数の中でNと互いに素である整数の集合を表す。
また、F(x)は第1の関数の例であり、F(x)は第2の関数の例である。
次に、暗号鍵生成部421による鍵生成動作の詳細を図38のフローチャートを参照しながら説明する。
暗号鍵生成部421は、情報処理装置1001が利用する暗号鍵ki,j(1≦i≦q,1≦j≦q)を生成する。
ここで、ki,jは、(i,j)世代目で利用する暗号鍵であり、退職ユーザ発生に伴う鍵更新がi−1回、異動ユーザ発生に伴う鍵更新がj−1回行われたものを意味する。
まず、暗号鍵生成部421は、暗号鍵kq1,q2(退職ユーザ対応値及び異動ユーザ対応値のいずれもが最終値である暗号鍵)を、Z からランダムに選択する(S3801)。
そして、初期鍵である暗号鍵kq1,q2に対してF(x)及びF(x)を適用して新たな暗号鍵を生成し、以降、生成済みの鍵に対してF(x)及びF(x)を適用して新たな鍵を生成する動作を繰り返し、各鍵間に連続性を持たせながら、生成済みの鍵とは別の退職ユーザ対応値又は異動ユーザ対応値が設定されている暗号鍵を生成する。
具体的には、暗号鍵kq1,q2以外の暗号鍵ki,j(1≦i≦q,1≦j≦q)を、以下の式に従って順次計算する(暗号鍵の無矛盾性はF,Fの可換性によって保証される)(S3802)。
i,j−1=F(ki,j
i−1,j=F(ki,j
このように、暗号鍵生成部421は、初期鍵である暗号鍵kq1,q2に第1の関数(F)を適用して、退職ユーザ対応値が暗号鍵kq1,q2の退職ユーザ対応値と共通し異動ユーザ対応値が暗号鍵kq1,q2の異動ユーザ対応値の1つ前の世代の値となる新たな暗号鍵kq1,q2−1を生成する。また、生成した暗号鍵kq1,q2−1に第1の関数を適用して、退職ユーザ対応値が暗号鍵kq1,q2−1の退職ユーザ対応値と共通し異動ユーザ対応値が暗号鍵kq1,q2−1の異動ユーザ対応値の1つ前の世代の値となる暗号鍵kq1,q2−2を生成する。
また、暗号鍵生成部421は、初期鍵である暗号鍵kq1,q2に第2の関数(F)を適用して、異動ユーザ対応値が暗号鍵kq1,q2の異動ユーザ対応値と共通し退職ユーザ対応値が暗号鍵kq1,q2の退職ユーザ対応値の1つ前の世代の値となる新たな暗号鍵kq1−1,q2を生成する。また、生成した暗号鍵kq1−1,q2に第2の関数を適用して、異動ユーザ対応値が暗号鍵kq1−1,q2の異動ユーザ対応値と共通し退職ユーザ対応値が暗号鍵kq1−1,q2の退職ユーザ対応値の1つ前の世代の値となる新たな暗号鍵kq1−2,q2を生成する。
このように、暗号鍵生成部421は、生成した鍵に第1の関数及び第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、異動ユーザ対応値及び退職ユーザ対応値の組み合わせの全パターンに対応する複数の鍵を生成する。
こうして得られた全ての暗号鍵k1,1〜kq1,q2を、暗号鍵生成部421は、暗号鍵記憶領域411に格納する(S3803)。
そして、暗号鍵配布処理部451が(1,1)世代目の暗号鍵k1,1を暗号鍵記憶領域411から取得し、通信部431が、全ての正当な情報処理装置1001に、(1,1)世代目の暗号鍵k1,1を送信する(S3804)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵k1,1を受信した情報処理装置1001は、この暗号鍵k1,1を、世代情報とともに暗号鍵記憶領域311に格納する。
その後、グループ管理装置401は、特別なIDとしてidを適当に選択し、特別な暗号化キーワードcを以下のように計算する(S3805)。
=H(id,G(k1,1,w))
通信部431は、データID、暗号化キーワードの組(id,c)をサーバ装置1401に送信する(S3806)。
これらを受信したサーバ装置1401は、暗号化キーワード記憶領域211に、世代、データID、暗号化キーワードをそれぞれ(1,1),id,cとしたデータを格納する(図19)。
また、世代遷移記憶領域1413に、世代情報(1,1)を格納する(図20)。
(2)異動ユーザの発生に伴う暗号鍵の世代更新
正当な情報処理装置1001のグループに対し、異動ユーザが発生した場合、以下のように世代更新を実施する。
以下、図39のフローチャートを参照して、説明する。
異動ユーザが発生した場合(S3901でYES)、世代は(s,t)から(s,t+1)に更新される(ただしt+1≦q)。
具体的には、グループ管理装置401の暗号鍵配布処理部451が、所属ユーザ用に(s,t+1)世代目の暗号鍵ks,t+1を暗号鍵記憶領域411から取得する(S3902)。
また、通信部431が、全ての正当な情報処理装置1001(所属ユーザが利用している情報処理装置1001)に、(s,t+1)世代目の暗号鍵ks,t+1を送信する(S3903)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵ks,t+1を受信した情報処理装置1001は、暗号鍵記憶領域311の内容のうち、世代を(s,t+1)に、暗号鍵をks,t+1に置き換える。
また、グループ管理装置401の暗号鍵配布処理部451は、鍵更新の原因となった異動ユーザの許容世代範囲の情報を世代範囲記憶領域441に書き込む。具体的には、異動ユーザのユーザIDに対して、許容世代範囲として(s、t)世代と書き込む。
更に、グループ管理装置401の通信部431は、最新の世代情報(s,t+1)をサーバ装置1401に送信する(S3904)。
これを受信したサーバ装置1401は、世代遷移記憶領域1413に、最新の世代情報(s,t+1)を追記する。
(3)退職ユーザの発生に伴う暗号鍵の世代更新
正当な情報処理装置1001のグループに対し、退職ユーザが発生した場合、以下のように世代更新を実施する。
以下、図40のフローチャートを参照して、説明する。
退職ユーザが発生した場合(S4001でYES)、世代は(s,t)から(s+1,t)に更新される(ただしs+1≦q)。
具体的には、グループ管理装置401の暗号鍵配布処理部451が、所属ユーザ用に(s+1,t)世代目の暗号鍵ks+1,tを暗号鍵記憶領域411から取得する(S4002)。
また、通信部431が、全ての正当な情報処理装置1001(所属ユーザが利用している情報処理装置1001)に、(s+1,t)世代目の暗号鍵ks+1,tを送信する(S4003)。
さらに、暗号鍵配布処理部451は、全ての(退職ユーザでない)異動ユーザの各々について、世代範囲記憶領域441から世代範囲情報を読み出す(S4004)。
次に、暗号鍵配布処理部451は、現在の暗号鍵ks,j(j<t)を有している異動ユーザに対して、(s+1,j)世代目の検索が可能である暗号鍵ks+1,jを取得する(S4005)。S4005の処理は、異動ユーザごとに行われる。
そして、通信部431が、異動ユーザが利用している情報処理装置1001に、対応する暗号鍵ks+1,jを送信する(S4006)。
通信部431による暗号鍵の送信は、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵を受信した情報処理装置1001は、暗号鍵記憶領域311の世代および暗号鍵を、受信した内容で置き換える。
また、グループ管理装置401の暗号鍵配布処理部451は、S4006で新たな暗号鍵を送信した異動ユーザの新たな許容世代範囲の情報を世代範囲記憶領域441に書き込む。具体的には、異動ユーザのユーザIDに対して、許容世代範囲として(s+1、j)世代と書き込む。
更に、グループ管理装置401の通信部431は、最新の世代情報(s+1,t)をサーバ装置1401に送信する(S4007)。
これを受信したサーバ装置1401は、世代遷移記憶領域1413に、最新の世代情報(s+1,t)を追記する。
(4)暗号化データの送信・格納
正当な情報処理装置1001がデータをサーバ装置1401に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
(s,t)世代目における具体的な手順を以下に述べる。
なお、動作のフローチャートは、図29及び図30と同様である。
まず、情報処理装置1001は、データに対し、ユニークなデータIDを割り当てる(idとする)。
さらに、情報処理装置1001は、データの暗号化を行う。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する(暗号化データをdとする)。
次に、トラップドア生成部321が、データに関連付けられた複数のキーワード(wxjとする)に対し、それぞれトラップドアを生成する。
具体的には、暗号鍵記憶領域311に格納されている暗号鍵ks,tを利用して、各キーワードwxjに対し、トラップドアtdxjを以下のように計算する。
tdxj=G(ks,t,wxj
その後、暗号化キーワード生成部322が、各トラップドアtdxjに対し、暗号化キーワードcxjを以下のように計算する。
xj=H(id,tdxj
最後に、通信部331が、世代、データID、暗号化データ、暗号化キーワードの組(s,t,id,d,cx1,cx2,...)をサーバ装置1401に送信する。
これらを受信したサーバ装置1401は、暗号化データdをデータIDと関連付けて暗号化データ記憶領域212に格納し、各暗号化キーワードcxjを世代、データIDと関連付けて暗号化キーワード記憶領域211に格納する。
(5)暗号化データの検索・取得
正当な情報処理装置1001、もしくは(退職ユーザでない)異動ユーザに対応する情報処理装置1001は、現在もしくは過去の世代にサーバ装置1401に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
暗号鍵ks,tを持つ情報処理装置1001が、(s,t)世代目までの検索を行う具体的な手順を以下に述べる。
なお、情報処理装置1001の動作のフローチャートは図36と同様である。
サーバ装置1401の動作のフローチャートは図41に示す通りである。
まず、情報処理装置1001のトラップドア生成部321が、検索したいキーワードに対応するトラップドアを生成する。具体的には、キーワードwに対し、トラップドアtds,tを以下のように計算する。
tds,t=G(ks,t,w)
さらに、情報処理装置1001の検証用トラップドア生成部1023が、検索する権限があることをサーバ装置1401に対して証明するための検証用トラップドアtdを以下のように計算する。
td=G(ks,t,w
次に、通信部331が、世代情報(退職ユーザ対応値(s)、異動ユーザ対応値(t))、トラップドア、検証用トラップドアの組(s,t,tds,t,td)を検索要求としてサーバ装置1401に送信する。
サーバ装置1401では、通信部231が検索要求を受信する(S4101)。
そして、比較部222が、まず、検索要求中の世代(s,t)と、世代遷移記憶領域1413に格納されている最新の世代について、第一要素(退職ユーザ対応値)が一致していることを確認する(S4102)。
一致しない場合、情報処理装置1001に正当な検索権限がないとみなし、処理を終了する。
次に、トラップドア検証部923が、受信した検証用トラップドアtdと、暗号化キーワード記憶領域211に格納されている一行目の要素(1,1),id,cについて、キーワードが一致すると判定されること、つまり、検証用トラップドアtdから特別な暗号化キーワードcが抽出できることを確認する(S4103)。
なお、特別なキーワードwは公開値であり、検証用トラップドアtdの生成は、ユーザが指定する検索キーワードwの代わりに、特別なキーワードwを用いて通常のトラップドアを生成することに相当する。換言すれば、検証用トラップドアtdにおいて特別なキーワードwと対応付けられているレコードの検索を要求していることと同視できる。このため、確認方法は後述する検索処理と同様なので省略する。
S4103においてキーワードが一致しない場合、情報処理装置1001に正当な検索権限がないとみなし、処理を終了する。
S4103においてキーワードが一致した場合、実際の検索処理を実行する。
サーバ装置1401のトラップドア生成部221は、受信したトラップドアtds,tを用い、世代遷移記憶領域1413に格納されている世代(i,j)のうちj≦tを満たすもの全てについて、対応するトラップドアtdi,jを以下のように順次計算する(S4104)。
tdi,j−1=F(tdi,j
tdi−1,j=F(tdi,j
その後、比較部222が、暗号化キーワード記憶領域211を参照し、トラップドアに対応する暗号化キーワードが存在するかを確認する(S4105、4106)。
具体的には、暗号化キーワード記憶領域211の各行の世代、データID、暗号化キーワードの組(i,j,id,c)に対し、以下の等式が成立するかを確認する。
c=H(id,tdi,j
成立した場合はcが指定されたキーワードwに対応する暗号化キーワードとなるため、暗号化データ記憶領域212を参照してidから暗号化データdを取得する(S4107)。
そして、通信部231が情報処理装置1001に、キーワードwに対応する暗号化データdを送信する(S4108)。
等式が複数成立した場合は全て送信するようにしても、一部を送信するようにしても良い。
上記の等式が暗号化キーワード記憶領域211のどの行においても不成立であった場合は、その旨を送信する。
暗号化データdを受信した情報処理装置1001は、dの復号を行う。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する。
なお、サーバ装置1401が受信したトラップドアtds,tから生成した(i,j)世代目のトラップドアtdi,jと、情報処理装置1001が暗号化データ送信の際に、暗号鍵ki,jから生成したトラップドアが一致し、本秘匿検索システムが正常に機能することは、例えば以下のように確認される。
サーバ装置1401がトラップドアtds,tから生成した(i,j)世代目のトラップドアtdi,jは、
tdi,j=F t−j(F s−i(tds,t))
=F t−j(F s−i(G(ks,t,w)))
=F t−j(G(F s−i(ks,t),w))
=G(F t−j(F s−i(ks,t)),w)
=G(ki,j,w)
となり、これは情報処理装置1001が(i,j)世代目に生成するトラップドアと一致する。
また、システムの安全性、すなわちサーバ装置1401がトラップドアや暗号化キーワードからキーワードを類推できないことや、ある期間の暗号鍵を持つ情報処理装置1001が期間外の暗号鍵を類推できず、検索も行えないことは、F,F,Hの一方向性、Gの入力推定困難性に基づいている。
特に、本実施の形態にて示した具体例においては、RSA(登録商標)暗号の安全性に基づいている。
以上によって、情報処理装置1001がデータ・キーワードをサーバ装置1401に対して秘匿したまま検索できる秘匿検索システムが実現できる。
サーバ装置1401が、受信したトラップドアから検索期間に対応する全てのトラップドアを生成できるため、検索時に情報処理装置1001が送信すべきトラップドアが削減でき、情報処理装置1001の計算量や通信量の削減を達成できる。また、脱退ユーザとして、異動ユーザ、退職ユーザが混在できるという、柔軟性も達成している。
なお、実施の形態1にて記述したバリエーションは、本実施の形態においても同様に適用可能である。
例えば、以下のようなバリエーションも可能である。
グループ管理装置401は、予め、異動ユーザ対応値及び退職ユーザ対応値のいずれもが先頭値となっている先頭世代の鍵k0,0を初期鍵として生成する。
そして、鍵発行時に、所属ユーザ又は異動ユーザごとに、対応する異動ユーザ対応値及び退職ユーザ対応値の組み合わせに基づき、初期鍵又は初期鍵から派生する鍵を生成元鍵とし、生成元鍵に第1の関数(F)を適用して退職ユーザ対応値が生成元鍵の退職ユーザ対応値と共通し異動ユーザ対応値が生成元鍵の異動ユーザ対応値の1つ後の世代の値となる新たな鍵を生成する。
または、生成元鍵に第2の関数(F)を適用して異動ユーザ対応値が生成元鍵の異動ユーザ対応値と共通し退職ユーザ対応値が生成元鍵の退職ユーザ対応値の1つ後の世代の値となる新たな鍵を生成する。
そして、生成した鍵を所属ユーザ又は異動ユーザに発行する。
また、本実施の形態に記述した内容と、実施の形態1、2にて記述した内容を組み合わせることで、加入ユーザの検索権限を柔軟に設定することも可能である。
また、本実施の形態では、特別なキーワードwに対する暗号化キーワードcを利用して検索権限の検証を行っているが、トラップドアG(k1,1,w)を利用して検証を行っても良い。
この場合、サーバ装置1401は、cのかわりに別途G(k1,1,w)を検証用情報として記憶することになる。
また、退職ユーザの発生に伴う鍵更新が進むにつれて、サーバ装置1401はG(ki,1,w)の値を得ることができるので、この値をキャッシュすることで、以降の検証を効率化することも可能である。
つまり、上記の説明では、検証用トラップドアtdからトラップドアtd1,1(=G(k1,1,w))まで遡って、特別な暗号化キーワードcとの整合性を確認しているが、キャッシュしている値で代用することで検証作業を短縮することができる。
例えば、図25に示す鍵k2,2に基づく検証用トラップドアtdv(2,2)に対する検証処理において、鍵k0,0に対応するトラップドアtd0,0(=G(k0,0,w))(上記のtd1,1(=G(k1,1,w))に相当)を導出するためには、鍵k2,1に対応するトラップドアtd2,1(=G(k2,1,w))を導出する必要がある。
このため、このトラップドアtd2,1(=G(k2,1,w))をキャッシュすることにより、次回の検証用トラップドアtdに対する検証処理では、キャッシュ値まで遡って検証を行うのみで済む。
以上、本実施の形態では、関数F,F,Gを利用することで、脱退ユーザの検索権限を柔軟に設定できる方式を説明した。
また、本実施の形態では、RSA(登録商標)暗号の安全性をベースとする方式を説明した。
最後に、実施の形態1〜3に示したサーバ装置201、情報処理装置301及びグループ管理装置401(以下、三者をまとめてサーバ装置201等と表記する)のハードウェア構成例について説明する。
図42は、実施の形態1〜3に示すサーバ装置201等のハードウェア資源の一例を示す図である。
なお、図42の構成は、あくまでもサーバ装置201等のハードウェア構成の一例を示すものであり、サーバ装置201等のハードウェア構成は図42に記載の構成に限らず、他の構成であってもよい。
図42において、サーバ装置201等は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜3で説明した「〜記憶領域」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、図1に示すように、ネットワークに接続されている。例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
サーバ装置201等の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1〜3の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の判定」、「〜の計算」、「〜の演算」、「〜の生成」、「〜の比較」、「〜の照合」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の格納」、「〜の検索」、「〜の検証」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜3の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1〜3に示すサーバ装置201等は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
101 ネットワーク、201 サーバ装置、211 暗号化キーワード記憶領域、212 暗号化データ記憶領域、221 トラップドア生成部、222 比較部、231 通信部、301 情報処理装置、311 暗号鍵記憶領域、321 トラップドア生成部、322 暗号化キーワード生成部、331 通信部、401 グループ管理装置、411 暗号鍵記憶領域、421 暗号鍵生成部、431 通信部、441 世代範囲記憶領域、451 暗号鍵配布処理部、913 関数パラメータ記憶領域、923 トラップドア検証部、1023 検証用トラップドア生成部、1413 世代遷移記憶領域。

Claims (36)

  1. 複数のユーザに利用される複数の情報処理装置と、
    ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
    前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置を有し、
    前記管理装置は、
    利用が許可される世代範囲が許可世代範囲として設定される鍵を生成し、
    ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定し、
    鍵発行タイミングにおいて、ユーザごとに、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行し、
    各情報処理装置は、
    最新世代の鍵を受領する度に、受領した最新世代の鍵を記憶し、
    ユーザから暗号化データの格納指示があった際に、暗号化データの検索に用いられるインデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザの検索指示時点での最新世代の鍵を用いて、許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代値が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
    前記サーバ装置は、
    情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データとを対応付けて記憶し、
    情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象としているインデックス情報に対応付けられている暗号化データであって所定の条件を満たす暗号化データを抽出することを特徴とする情報処理システム。
  2. 各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化し、暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、許可世代範囲である利用開始世代から当該最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
    前記サーバ装置は、
    情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通し、暗号化世代情報と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項1に記載の情報処理システム。
  3. 各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件と格納対象の暗号化データの識別子を入力し、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化するとともに、暗号化された検索条件を前記暗号化データの識別子を用いて再暗号化し、再暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて格納するよう前記サーバ装置に要求し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、許可世代範囲である利用開始世代から当該最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
    前記サーバ装置は、
    情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて記憶し、
    情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、各インデックス情報に対応付けられている識別子を用いて所定の演算を行い、暗号化世代情報が対象としている世代値と共通し、演算により得られた値と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項1に記載の情報処理システム。
  4. 前記管理装置は、
    生成済みの鍵に対して第1の関数及び第2の関数のいずれかを適用して、各鍵間に連続性を持たせながら、前記生成済みの鍵とは別の許可世代範囲が設定されている鍵を生成し、
    前記サーバ装置は、
    情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して前記第1の関数と前記第2の関数を適用した所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出することを特徴とする請求項1〜3のいずれかに記載の情報処理システム。
  5. 前記管理装置は、
    最終世代の世代値を決定し、第1世代から最終世代までを許可世代範囲とする鍵を初期鍵として生成し、
    前記初期鍵に前記第1の関数を適用して、許可世代範囲の開始世代が前記初期鍵の開始世代と共通し終了世代が前記初期鍵の終了世代の1つ前の世代となる新たな鍵を生成し、生成した鍵に前記第1の関数を適用して、許可世代範囲の開始世代が当該生成済みの鍵の開始世代と共通し終了世代が当該生成済みの鍵の終了世代の1つ前の世代となる新たな鍵を生成し、
    前記初期鍵に前記第2の関数を適用して、許可世代範囲の終了世代が前記初期鍵の終了世代と共通し開始世代が前記初期鍵の開始世代の1つ後の世代となる新たな鍵を生成し、生成した鍵に前記第2の関数を適用して、許可世代範囲の終了世代が当該生成済みの鍵の終了世代と共通し開始世代が当該生成済みの鍵の開始世代の1つ後の世代となる新たな鍵を生成し、
    生成した鍵に前記第1の関数及び前記第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、許容世代範囲の全パターンに対応する複数の鍵を生成し、生成した複数の鍵を記憶し、
    鍵発行時に、ユーザごとに、利用開始世代から鍵発行時における最新世代までの世代範囲に対応する鍵を、記憶している前記複数の鍵の中から抽出し、抽出した鍵を発行することを特徴とする請求項4に記載の情報処理システム。
  6. 前記管理装置は、
    予め、第1世代のみを許可世代範囲とする鍵を初期鍵として生成し、
    鍵発行時に、ユーザごとに、利用開始世代から鍵発行時における最新世代までの世代範囲に対応させて、初期鍵又は前記初期鍵から派生する鍵を生成元鍵とし、前記生成元鍵に前記第1の関数を適用して許可世代範囲の開始世代が前記生成元鍵の開始世代と共通し終了世代が前記生成元鍵の終了世代の1つ後の世代となる新たな鍵を生成し、または、前記生成元鍵に前記第2の関数を適用して許可世代範囲の終了世代が前記生成元鍵の終了世代と共通し開始世代が前記生成元鍵の開始世代の1つ後の世代となる新たな鍵を生成し、生成した鍵をユーザに発行することを特徴とする請求項4に記載の情報処理システム。
  7. 前記管理装置は、
    十分大きな素数であるp及びpを選び、N=p×pとし、e及びeとしてZ から(p−1)(p−1)と互いに素な数をランダムに選択した場合に、
    前記第1の関数を、F(x)=xe1 mod N とし、
    前記第2の関数を、F(x)=xe2 mod N とし、
    (modはモジュロ演算子を表し、Z は0からN−1の整数の中でNと互いに素である整数の集合を表す)(F(x)とF(x)は、互いに可換である)
    最終世代の世代値をqとし、第1世代から最終世代までを許可世代範囲とする初期鍵をk1,qとし、初期鍵k1,qをZ からランダムに選択し、許可世代範囲の開始世代がi世代であり終了世代がj世代である鍵をki,jとした場合に、
    i,j−1=F(ki,j
    i+1,j=F(ki,j
    による演算を繰り返して、許容世代範囲の全パターンに対応する複数の鍵k1,1からkq,qを生成することを特徴とする請求項5に記載の情報処理システム。
  8. 前記管理装置は、
    各情報処理装置において利用される関数を、
    G(x,y)=x mod N とし、
    (G(x,y)は、F(x)及びF(x)と互いに可換である)
    各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力し、
    入力した検索条件をwとし、格納指示時点での最新世代の鍵であって利用開始世代がs世代であり当該最新世代がt世代である鍵をks,tとし、当該最新世代のみを許可世代範囲とする鍵をkt,tとし、当該最新世代の鍵の世代値と前記検索条件の暗号値をtdとした場合に、
    t,t=F t−s(ks,t
    td=G(kt,t,w)
    (F t−sはFをt−s回適用することを表す。以下においても同様)
    により、暗号値tdを生成し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力し、
    入力した検索条件をwとし、検索指示時点での最新世代の鍵であって利用開始世代がs世代であり当該最新世代がt世代である鍵をks,tとし、s世代からt世代に対応する暗号化世代情報を集約する集約情報をtds,tとした場合に、
    tds,t=G(ks,t,w)
    により、集約情報tds,tを生成し、
    前記サーバ装置は、
    tdi,i=F t−i(F i−s(tds,t)) (s≦i≦t)
    により、集約情報tds,tから、s世代からt世代までの暗号化世代情報tds,sからtdt,tを抽出することを特徴とする請求項7に記載の情報処理システム。
  9. 各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件とともに格納対象の暗号化データの識別子を入力し、
    入力した識別子をidとし、H(x,y)を一方向性関数とし、cを暗号化値tdの再暗号化値とした場合に、
    c=H(id,td)
    により、再暗号化値cを生成し、生成した再暗号化値cをインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、前記暗号化データと、前記暗号化データの識別子を対応付けて格納するよう前記サーバ装置に要求し、
    前記サーバ装置は、
    情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて記憶し、
    情報処理装置からの検索要求を受信した際に、集約情報tds,tからs世代からt世代に対応する暗号化世代情報tds,sからtdt,tを抽出し、
    各インデックス情報に対応付けられている識別子をidとし、各暗号化世代情報をtdj,jとした場合に、暗号化世代情報tdj,jごとに、
    c=H(id,tdj,j
    を計算し、
    演算により得られた値cと共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項8に記載の情報処理システム。
  10. 各情報処理装置は、
    所定のグループに属するユーザに利用され、
    前記管理装置は、
    前記グループからのユーザの脱退及び所定の条件に合致する新たなユーザの前記グループへの加入を更新イベントとし、
    ユーザの脱退又はユーザの加入により更新イベントが発生した場合に、前記グループに所属しているユーザごとに、現在利用されている鍵の次の世代の鍵であって、許可世代範囲を利用開始世代から当該次の世代までの範囲とする鍵を発行することを特徴とする請求項1〜9のいずれかに記載の情報処理システム。
  11. 前記管理装置は、
    前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代である場合に、当該ユーザの加入を更新イベントとし、
    当該ユーザの加入により、前記グループに所属しているユーザごとに、現在利用されている鍵の次の世代の鍵であって、許可世代範囲を利用開始世代から当該次の世代までの範囲とする鍵を発行し、前記グループに新たに加入するユーザには、当該次の世代のみを許可世代範囲とする鍵を発行し、
    前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代よりも前の世代である場合は、当該ユーザの加入を更新イベントとせず、
    前記グループに所属しているユーザには新たな鍵の発行を行わず、前記グループに新たに加入するユーザに、当該ユーザに指定される利用開始世代から現在の最新世代までを許可世代範囲とする鍵を発行することを特徴とする請求項10に記載の情報処理システム。
  12. 複数のユーザに利用される複数の情報処理装置と、
    ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
    前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置とを有し、
    前記管理装置は、
    いずれのユーザ及び情報処理装置に対しても秘密にしている秘密パラメータを前記サーバ装置にのみ通知し、
    各世代の鍵を、前記秘密パラメータを用いて生成し、
    ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定し、
    ユーザごとに、
    初回の鍵発行時に、鍵発行時における最新世代の鍵と、利用開始世代から当該最新世代までの鍵を合成して生成した合成鍵を発行し、
    2回目以降の鍵発行時は、各回時点での最新世代の鍵を発行し、
    各情報処理装置は、
    ユーザに対する初回の鍵発行時に、最新世代の鍵と合成鍵を受領し、受領した最新世代の鍵と合成鍵を記憶し、
    ユーザに対する2回以降の鍵発行では、鍵発行の度に、最新世代の鍵を受領し、受領した最新世代の鍵と記憶している合成鍵を合成して新たな合成鍵を生成し、受領した最新世代の鍵と生成した新たな合成鍵を記憶し、
    ユーザから暗号化データの格納指示があった際に、暗号化データの検索に用いられるインデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザの検索指示時点での最新世代の鍵を用いて、当該最新世代の世代値が暗号化されている暗号化最新世代情報を生成し、検索指示時点での合成鍵を用いて、前記ユーザに指定されている利用開始世代から検索指示時点での最新世代までのn(n≧1)世代の各世代値が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した暗号化最新世代情報と集約情報を含む検索要求を前記サーバ装置に送信し、
    前記サーバ装置は、
    前記管理装置から通知された前記秘密パラメータを記憶し、
    情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データとを対応付けて記憶し、
    情報処理装置から検索要求を受信した場合に、受信した検索要求に含まれる暗号化最新世代情報と前記秘密パラメータを用いて、1つ前の世代の世代値が暗号化されている暗号化世代情報を算出し、以降、算出された暗号化世代情報と前記秘密パラメータを用いて1つ前の世代値が暗号化されている暗号化世代情報を算出する処理を繰り返し、検索要求元ユーザの利用開始世代の世代値が暗号化されている暗号化世代情報を算出し、算出した利用開始世代から最新世代の1つ前の世代までの暗号化世代情報と前記暗号化最新世代情報と、前記集約情報において集約されているn個の暗号化世代情報が一致するか否かを判定し、暗号化世代情報が一致する場合に、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象としているインデックス情報に対応付けられている暗号化データであって所定の条件を満たす暗号化データを抽出することを特徴とする情報処理システム。
  13. 各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化し、暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、当該最新世代の世代値と前記検索条件が暗号化されている暗号化最新世代情報を生成し、検索指示時点での合成鍵と前記検索条件を用いて、前記ユーザに指定されている利用開始世代から検索指示時点での最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した暗号化最新世代情報と集約情報を含む検索要求を前記サーバ装置に送信し、
    前記サーバ装置は、
    暗号化世代情報が一致する場合に、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象とし、暗号化世代情報と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項12に記載の情報処理システム。
  14. 各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件と格納対象の暗号化データの識別子を入力し、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化するとともに、暗号化された検索条件を前記暗号化データの識別子を用いて再暗号化し、再暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵と、暗号化データと、前記暗号化データの識別子を対応付けて格納するよう前記サーバ装置に要求し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、当該最新世代の世代値と前記検索条件が暗号化されている暗号化最新世代情報を生成し、検索指示時点での合成鍵と前記検索条件を用いて、前記ユーザに指定されている利用開始世代から検索指示時点での最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した暗号化最新世代情報と集約情報を含む検索要求を前記サーバ装置に送信し、
    前記サーバ装置は、
    情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子を対応付けて記憶し、
    暗号化世代情報が一致する場合に、暗号化世代情報ごとに、各インデックス情報に対応付けられている識別子を用いて所定の演算を行い、暗号化世代情報が対象としている世代値と共通する世代値を対象とし、演算により得られた値と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項12に記載の情報処理システム。
  15. 前記管理装置は、
    ユーザに対する初回の鍵発行時に、利用開始世代から当該最新世代までの鍵の積を計算し、計算した鍵の積を合成鍵として発行し、
    各情報処理装置は、
    ユーザに対する2回以降の鍵発行では、鍵発行の度に、最新世代の鍵を受領し、受領した最新世代の鍵と記憶している合成鍵との積を計算し、計算した鍵の積を新たな合成鍵とすることを特徴とする請求項12〜14のいずれかに記載の情報処理システム。
  16. 前記管理装置は、
    生成済みの鍵に対して所定の鍵生成関数を適用して、各鍵間に連続性を持たせながら、前記生成済みの鍵とは別の世代の鍵を生成し、
    前記サーバ装置は、
    情報処理装置からの検索要求を受信した場合に、前記暗号化最新世代情報と前記秘密パラメータに対して前記鍵生成関数を適用して、1つ前の世代の世代値が暗号化されている暗号化世代情報を算出し、以降、算出された暗号化世代情報と前記秘密パラメータに対して前記鍵生成関数を適用して1つ前の世代値が暗号化されている暗号化世代情報を算出する処理を繰り返すことを特徴とする請求項12〜15のいずれかに記載の情報処理システム。
  17. 前記管理装置は、
    最終世代の世代値を決定し、最終世代の鍵を初期鍵として生成し、最終世代の鍵と前記秘密パラメータに対して前記鍵生成関数を適用して、最終世代の1つ前の世代の新たな鍵を生成し、生成した鍵と前記秘密パラメータに対して前記鍵生成関数を適用して更に1つ前の世代の鍵を生成し、以降、新たに生成した鍵と前記秘密パラメータに対して前記鍵生成関数を適用する動作を繰り返して、第1世代から最終世代の鍵を生成し、生成した第1世代から最終世代の鍵を記憶し、
    鍵発行時に、最新世代に該当する鍵を、記憶している鍵の中から抽出し、抽出した鍵を発行することを特徴とする請求項16に記載の情報処理システム。
  18. 前記管理装置は、
    予め、第1世代の鍵を生成し、
    鍵発行時に、鍵発行時点での最新世代に対応させて、前記第1世代の鍵又は前記第1世代の鍵から派生する鍵を生成元鍵とし、前記生成元鍵と前記秘密パラメータに対して前記鍵生成関数を適用して、前記生成元鍵の1つ後の世代の新たな鍵を最新世代の鍵として生成し、生成した最新世代の鍵をユーザに発行することを特徴とする請求項16に記載の情報処理システム
  19. 前記管理装置は、
    十分大きな素数であるpを選んだ場合に、
    自装置及び前記サーバ装置が用いる関数を、F(x,y)=x mod p とし、
    各情報処理装置が用いる関数を、G(x,y)=x mod p とし、
    (modはモジュロ演算子を表す)(F(x,y)とG(x,y)は、互いに可換である)
    このとき、Gは以下の準同型性を持ち、
    G(x,y)=G(x,y)G(x,y)という関係を持ち、
    秘密パラメータをαとし、秘密パラメータαを巡回群Z から、(p−1)と互いに素となるようランダムに選択し、
    最終世代の世代値をqとし、最終世代の鍵である初期鍵をkとし、初期鍵kをZ の生成元からランダムに選択し、i世代目の鍵をkとした場合に、
    i−1=F(k,α) (1≦i<q)
    による演算を繰り返して、第1世代から最終世代までの鍵kからkを生成し、
    各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力し、
    入力した検索条件をwとし、格納指示時点での最新世代の鍵をkとし、当該最新世代の鍵の世代値と前記検索条件の暗号値をtdとした場合に、
    td=G(k,w)
    により、暗号値tdを生成し、
    ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力し、
    入力した検索条件をwとし、検索指示時点での最新世代の鍵をkとし、s世代目の鍵からt世代目の鍵までを合成した検索指示時点での合成鍵をks,tとし、暗号化最新世代情報をtdとし、集約情報をtds,tとした場合に、
    td=G(k,w)
    tds,t=G(ks,t,w)
    により、暗号化最新世代情報をtdと集約情報tds,tを生成し、
    前記サーバ装置は、
    tdi−1=F(td,α)
    により、暗号化最新世代情報tdから、s世代からt−1世代までを対象とする暗号化世代情報tdからtdt−1を算出することを特徴とする請求項17に記載の情報処理システム。
  20. 各情報処理装置は、
    ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件とともに格納対象の暗号化データの識別子を入力し、
    入力した識別子をidとし、H(x,y)を一方向性関数とし、cを暗号化値tdの再暗号化値とした場合に、
    c=H(id,td)
    により、再暗号化値cを生成し、生成した再暗号化値cをインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、前記暗号化データと、前記暗号化データの識別子とを対応付けて格納するよう前記サーバ装置に要求し、
    前記サーバ装置は、
    情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて記憶し、
    情報処理装置からの検索要求を受信した際に、暗号化世代情報が一致する場合に、
    各インデックス情報に対応付けられている識別子をidとし、各暗号化世代情報をtdとした場合に、暗号化世代情報tdごとに、
    c=H(id,td
    を計算し、
    演算により得られた値cと共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項19に記載の情報処理システム。
  21. 各情報処理装置は、
    所定のグループに属するユーザに利用され、
    前記管理装置は、
    前記グループからのユーザの脱退及び所定の条件に合致する新たなユーザの前記グループへの加入を更新イベントとし、
    ユーザの脱退又はユーザの加入により更新イベントが発生した場合に、前記グループに所属しているユーザに、現在利用されている鍵の次の世代の鍵を最新世代の鍵として発行することを特徴とする請求項12〜20のいずれかに記載の情報処理システム。
  22. 前記管理装置は、
    前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代である場合に、当該ユーザの加入を更新イベントとし、
    当該ユーザの加入により、前記グループに所属しているユーザに、現在利用されている鍵の次の世代の鍵を最新世代の鍵として発行し、前記グループに新たに加入するユーザには、当該次の世代の鍵を最新世代の鍵及び合成鍵として発行し、
    前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代よりも前の世代である場合は、当該ユーザの加入を更新イベントとせず、
    前記グループに所属しているユーザには新たな鍵の発行を行わず、前記グループに新たに加入するユーザに、現在の最新世代の鍵を発行するとともに、当該ユーザに指定される利用開始世代の鍵から現在の最新世代の鍵までを合成した合成鍵を発行することを特徴とする請求項21に記載の情報処理システム。
  23. 複数のユーザに利用される複数の情報処理装置と通信可能であり、ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
    前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置とを有し、
    前記管理装置は、
    ユーザのカテゴリーとして、所定のグループに所属し前記サーバ装置の暗号化データに対する検索が許容される所属ユーザと、前記グループから脱退し前記サーバ装置の暗号化データに対する検索が禁止される禁止ユーザと、前記グループから脱退したが脱退前に前記サーバ装置に格納された暗号化データに対しては検索が許容される限定ユーザが設けられ、
    前記グループからのユーザの脱退を前記更新イベントの一つとし、
    鍵の世代値は、前記禁止ユーザが発生した際に値が更新される禁止ユーザ対応値と前記限定ユーザが発生した際に値が更新される限定ユーザ対応値を構成要素とし、
    いずれかのユーザが前記グループから脱退し、脱退したユーザが前記禁止ユーザに該当する場合に、前記所属ユーザに対しては所属ユーザ向けの最新世代の鍵を発行し、前記脱退ユーザに対しては脱退ユーザ向けの最新世代の鍵を発行し、前記所属ユーザ向けの最新世代の鍵は、前記禁止ユーザ対応値が更新された値となり前記限定ユーザ対応値が当該脱退前の値のままである世代値が設定されている鍵であり、前記限定ユーザ向けの最新世代の鍵は、前記禁止ユーザ対応値が更新された値となり前記限定ユーザ対応値が当該限定ユーザの脱退時点の値のままである世代値が設定されている鍵であり、
    いずれかのユーザが前記グループから脱退し、脱退したユーザが前記限定ユーザに該当する場合に、前記所属ユーザに対して、前記限定ユーザ対応値が更新された値となり前記禁止ユーザ対応値が当該脱退前の値のままである世代値が設定されている最新世代の鍵を発行し、
    前記サーバ装置は、
    情報処理装置から、暗号化データの検索に用いられるインデックス情報と、前記情報処理装置のユーザの格納要求時点での最新世代の鍵に設定されている禁止ユーザ対応値及び限定ユーザ対応値と、暗号化データとが含まれる格納要求を受領した場合に、前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データとを対応付けて記憶し、
    情報処理装置から、前記情報処理装置のユーザの検索要求時点での最新世代の鍵に設定されている禁止ユーザ対応値及び限定ユーザ対応値が暗号化されている暗号化世代情報を含む暗号化データの検索要求を受信した場合に、
    前記暗号化世代情報より抽出される禁止ユーザ対応値が実際の最新世代の禁止ユーザ対応値と一致しない場合は暗号化データの検索が行われず、前記暗号化世代情報より抽出される禁止ユーザ対応値が実際の最新世代の禁止ユーザ対応値と一致する場合は、前記暗号化世代情報から抽出される限定ユーザ対応値以前の限定ユーザ対応値のインデックス情報が対応付けられている暗号化データに限定した検索が行われることを特徴とする情報処理システム。
  24. 前記管理装置は、
    所属ユーザごとに、鍵の利用が許可される最も前の禁止ユーザ対応値と最も前の限定ユーザ対応値の組み合わせを利用開始世代として指定し、
    鍵発行タイミングにおいて、所属ユーザ又は限定ユーザごとに、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行し、
    前記サーバ装置は、
    情報処理装置から、前記情報処理装置のユーザの検索要求時点での最新世代の鍵を用いて生成され、前記ユーザの許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値が暗号化されているn個の暗号化世代情報が集約されている集約情報が含まれる検索要求を受信した場合に、
    前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、
    抽出した暗号化世代情報ごとにインデックス情報との照合を行って暗号化データの検索を行うことを特徴とする請求項23に記載の情報処理システム。
  25. 前記サーバ装置は、
    情報処理装置から、前記ユーザにより指定された検索条件が暗号化されているインデックス情報が含まれる格納要求を受領した場合に、前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データとを対応付けて記憶し、
    情報処理装置から、前記n世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値と前記ユーザにより指定された検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報が含まれる検索要求を受信した場合に、
    前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、
    抽出した暗号化世代情報ごとにインデックス情報との照合を行い、暗号化世代情報と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項24に記載の情報処理システム。
  26. 前記サーバ装置は、
    情報処理装置から、前記ユーザにより指定された検索条件と格納対象の暗号化データの識別子が暗号化されているインデックス情報と前記識別子が含まれる格納要求を受領した場合に、前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データと、前記識別子とを対応付けて記憶し、
    情報処理装置から、前記n世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値と前記ユーザにより指定された検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報が含まれる検索要求を受信した場合に、
    前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、
    抽出した暗号化世代情報ごとに、各インデックス情報に対応付けられている識別子を用いて所定の演算を行い、演算により得られた値と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項24に記載の情報処理システム。
  27. 前記管理装置は、
    生成済みの鍵に対して第1の関数及び第2の関数のいずれかを適用して、各鍵間に連続性を持たせながら、前記生成済みの鍵とは別の禁止ユーザ対応値又は限定ユーザ対応値が設定されている鍵を生成し、
    前記サーバ装置は、
    情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して前記第1の関数と前記第2の関数を適用した所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出することを特徴とする請求項24〜26のいずれかに記載の情報処理システム。
  28. 前記管理装置は、
    禁止ユーザ対応値及び限定ユーザ対応値のいずれもが先頭値となっている先頭世代の鍵と各世代の鍵との間に連続性を持たせるようにして第1の関数及び第2の関数を用いて各世代の鍵を生成し、
    前記先頭世代の鍵と、いずれのユーザ及び情報処理装置に対しても公開されている公開値とを用いて、先頭世代暗号値を生成し、生成した先頭世代暗号値を前記サーバ装置に通知し、
    前記サーバ装置は、
    情報処理装置から、前記先頭世代暗号値との照合に用いられる照合用情報が含まれる検索要求を受信した場合に、前記照合用情報に対して前記第1の関数と前記第2の関数を適用して、前記照合用情報から前記先頭世代暗号値に一致する値が検出できるか否かを判定し、前記照合用情報から前記先頭世代暗号値に一致する値が検出できない場合には暗号化データの検索を行わないことを特徴とする請求項23〜27のいずれかに記載の情報処理システム。
  29. 前記管理装置は、
    限定ユーザ対応値の最終値及び禁止ユーザ対応値の最終値を決定し、限定ユーザ対応値が最終値となり禁止ユーザ対応値が最終値となる最終世代の鍵を初期鍵として生成し、
    前記初期鍵に第1の関数を適用して、禁止ユーザ対応値が前記初期鍵の禁止ユーザ対応値と共通し限定ユーザ対応値が前記初期鍵の限定ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、生成した鍵に前記第1の関数を適用して、禁止ユーザ対応値が当該生成済みの鍵の禁止ユーザ対応値と共通し限定ユーザ対応値が当該生成済みの鍵の限定ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、
    前記初期鍵に第2の関数を適用して、限定ユーザ対応値が前記初期鍵の限定ユーザ対応値と共通し禁止ユーザ対応値が前記初期鍵の禁止ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、生成した鍵に前記第2の関数を適用して、限定ユーザ対応値が当該生成済みの鍵の限定ユーザ対応値と共通し禁止ユーザ対応値が当該生成済みの鍵の禁止ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、
    生成した鍵に第1の関数及び第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、限定ユーザ対応値及び禁止ユーザ対応値の組み合わせの全パターンに対応する複数の鍵を生成し、生成した複数の鍵を記憶し、
    鍵発行時に、所属ユーザ又は限定ユーザごとに、対応する限定ユーザ対応値及び禁止ユーザ対応値の組み合わせの鍵を、記憶している前記複数の鍵の中から抽出し、抽出した鍵を発行することを特徴とする請求項27に記載の情報処理システム。
  30. 前記管理装置は、
    予め、限定ユーザ対応値及び禁止ユーザ対応値のいずれもが先頭値となっている先頭世代の鍵を初期鍵として生成し、
    鍵発行時に、所属ユーザ又は限定ユーザごとに、対応する限定ユーザ対応値及び禁止ユーザ対応値の組み合わせに基づき、初期鍵又は前記初期鍵から派生する鍵を生成元鍵とし、前記生成元鍵に前記第1の関数を適用して禁止ユーザ対応値が前記生成元鍵の禁止ユーザ対応値と共通し限定ユーザ対応値が前記生成元鍵の限定ユーザ対応値の1つ後の世代の値となる新たな鍵を生成し、または、前記生成元鍵に前記第2の関数を適用して限定ユーザ対応値が前記生成元鍵の限定ユーザ対応値と共通し禁止ユーザ対応値が前記生成元鍵の禁止ユーザ対応値の1つ後の世代の値となる新たな鍵を生成し、生成した鍵を所属ユーザ又は限定ユーザに発行することを特徴とする請求項27に記載の情報処理システム。
  31. 前記管理装置は、
    十分大きな素数であるp及びpを選び、N=p×pとし、e及びeとしてZ から(p−1)(p−1)と互いに素な数をランダムに選択した場合に、
    前記第1の関数を、F(x)=xe1 mod N とし、
    前記第2の関数を、F(x)=xe2 mod N とし、
    (modはモジュロ演算子を表し、Z は0からN−1の整数の中でNと互いに素である整数の集合を表す)(F(x)とF(x)は、互いに可換である)
    前記禁止ユーザ対応値の最終値をqとし、前記限定ユーザ対応値の最終値をqとし、前記禁止ユーザ対応値が最終値となり前記限定ユーザ対応値が最終値となる最終世代の鍵である初期鍵をkq1,q2とし、初期鍵kq1,q2をZ からランダムに選択し、前記禁止ユーザ対応値がi世代であり前記限定ユーザ対応値がj世代である鍵をki,jとした場合に、
    i,j−1=F(ki,j
    i−1,j=F(ki,j
    による演算を繰り返して、前記禁止ユーザ対応値及び前記限定ユーザ対応値の組み合わせの全パターンに対応する複数の鍵k1,1からkq1,q2を生成することを特徴とする請求項29に記載の情報処理システム。
  32. 前記管理装置は、
    各情報処理装置において利用される関数を、
    G(x,y)=x mod N とし、
    (G(x,y)は、F(x)及びF(x)と互いに可換である)、
    前記サーバ装置は、
    情報処理装置から、前記情報処理装置のユーザの検索要求時点での最新世代の鍵に基づいて生成された、前記n世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値と前記情報処理装置のユーザにより指定された検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報であって、
    前記ユーザの検索要求時点での最新世代の鍵が、禁止ユーザ対応値がs世代であり限定ユーザ対応値がt世代である鍵ks,tであり、前記検索条件がwであり、
    tds,t=G(ks,t,w)
    により生成された集約情報tds,tが含まれる検索要求を受信した場合に、
    tdi,j−1=F(tdi,j
    tdi−1,j=F(tdi,j
    により、集約情報tds,tから、j≦tを満たす範囲で暗号化世代情報tdi,jを抽出することを特徴とする請求項31に記載の情報処理システム。
  33. 前記サーバ装置は、
    情報処理装置から、前記検索条件と格納対象の暗号化データの識別子が暗号化されているインデックス情報であって、
    前記ユーザの格納要求時点での最新世代の鍵が、禁止ユーザ対応値がs世代であり限定ユーザ対応値がt世代である鍵ks,tであり、前記検索条件がwであり、前記識別子がidであり、H(x,y)を一方向性関数であり、
    td=G(ks,t,w)
    c=H(id,td)
    により生成された暗号値cであるインデックス情報と、前記情報処理装置のユーザの格納要求時点での最新世代の鍵に設定されている禁止ユーザ対応値及び限定ユーザ対応値と、格納対象の暗号化データと、前記識別子とを受領した場合に、
    前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データと、前記識別子とを対応付けて記憶し、
    情報処理装置からの検索要求を受信した際に、集約情報tds,tから暗号化世代情報tdi,jを抽出し、
    各インデックス情報に対応付けられている識別子をidとした場合に、暗号化世代情報tdi,jごとに、
    c=H(id,tdi,j
    を計算し、
    演算により得られた値cと共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項32に記載の情報処理システム。
  34. 請求項1〜33のいずれかに記載の管理装置。
  35. 請求項1〜33のいずれかに記載のサーバ装置。
  36. 請求項1〜22のいずれかに記載の情報処理装置。
JP2010005750A 2010-01-14 2010-01-14 情報処理システム及び管理装置及びサーバ装置及び情報処理装置 Expired - Fee Related JP5441726B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010005750A JP5441726B2 (ja) 2010-01-14 2010-01-14 情報処理システム及び管理装置及びサーバ装置及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010005750A JP5441726B2 (ja) 2010-01-14 2010-01-14 情報処理システム及び管理装置及びサーバ装置及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2011146895A true JP2011146895A (ja) 2011-07-28
JP5441726B2 JP5441726B2 (ja) 2014-03-12

Family

ID=44461364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010005750A Expired - Fee Related JP5441726B2 (ja) 2010-01-14 2010-01-14 情報処理システム及び管理装置及びサーバ装置及び情報処理装置

Country Status (1)

Country Link
JP (1) JP5441726B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013018683A1 (ja) * 2011-07-29 2015-03-05 日本電気株式会社 情報漏えいに耐性を持つインデックス生成システム及びインデックス生成装置並びにその方法
WO2018047698A1 (ja) * 2016-09-12 2018-03-15 日本電信電話株式会社 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム
JP6462968B1 (ja) * 2018-01-17 2019-01-30 三菱電機株式会社 データ管理装置、データ管理方法及びデータ管理プログラム
CN110062941A (zh) * 2016-12-20 2019-07-26 日本电信电话株式会社 消息发送系统、通信终端、服务器装置、消息发送方法以及程序

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009271584A (ja) * 2008-04-30 2009-11-19 Tokyo Metropolitan Univ 類似情報検索システムおよび類似情報検索プログラム
JP2011018976A (ja) * 2009-07-07 2011-01-27 Mitsubishi Electric Corp 情報処理システム及び情報処理装置及びサーバ装置及び情報処理方法及びプログラム
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009271584A (ja) * 2008-04-30 2009-11-19 Tokyo Metropolitan Univ 類似情報検索システムおよび類似情報検索プログラム
JP2011018976A (ja) * 2009-07-07 2011-01-27 Mitsubishi Electric Corp 情報処理システム及び情報処理装置及びサーバ装置及び情報処理方法及びプログラム
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSNJ201010083167; 伊藤 隆,服部 充洋,松田 規,米田 健: '"トラップドアサイズを削減したグループ共有型秘匿検索方式"' 2010年 暗号と情報セキュリティシンポジウム SCIS2010 [CD-ROM] 2F4-3, 20100122, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN6013033980; Hyun-A Park, Doag Hoon Lee, Justin Zhan, Gary Blosser: '"Efficient Keyword Index Search over Encrypted Documents of Groups"' 2008 IEEE International Conference on Intelligence and Security Informatics , 2008, p.225-229 *
JPN6013033981; Peishun Wang, Huaxiong Wang, and Josef Pieprzyk: '"Keyword Field-Free Conjunctive Keyword Searches on Encrypted Data and Extension for Dynamic Groups' Lecture Notes in Computer Science Vol.5339, 2008, p.178-195 *
JPN6013033982; Peishun Wang, Huaxiong Wang, Josef Pieprzyk: '"Improvement of a Dynamic Accumulator at ICICS 07 and its Application in Multi-User Keyword-based R' 2008 IEEE Asia-Pacific Services Computing Conference , 2008, p.1381-1386 *
JPN6013056762; 伊藤 隆,服部 充洋,松田 規,米田 健: '"トラップドアサイズを削減したグループ共有型秘匿検索方式"' 2010年 暗号と情報セキュリティシンポジウム SCIS2010 [CD-ROM] 2F4-3, 20100122, p.1-6, 電子情報通信学会情報セキュリティ研究専門委員会 *
JPN7013004180; 野島 良,楫 勇一: '"一方向性関数による木構造鍵管理方式の効率化"' 2004年暗号と情報セキュリティシンポジウム(SCIS2004)予稿集CD-ROM 1C5-2, 20040127, 電子情報通信学会情報セキュリティ研究専門委員会 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013018683A1 (ja) * 2011-07-29 2015-03-05 日本電気株式会社 情報漏えいに耐性を持つインデックス生成システム及びインデックス生成装置並びにその方法
WO2018047698A1 (ja) * 2016-09-12 2018-03-15 日本電信電話株式会社 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム
CN110062941A (zh) * 2016-12-20 2019-07-26 日本电信电话株式会社 消息发送系统、通信终端、服务器装置、消息发送方法以及程序
JP6462968B1 (ja) * 2018-01-17 2019-01-30 三菱電機株式会社 データ管理装置、データ管理方法及びデータ管理プログラム
WO2019142265A1 (ja) * 2018-01-17 2019-07-25 三菱電機株式会社 データ管理装置、検索装置、登録装置、データ管理方法及びデータ管理プログラム

Also Published As

Publication number Publication date
JP5441726B2 (ja) 2014-03-12

Similar Documents

Publication Publication Date Title
Ding et al. Privacy-preserving multi-keyword top-$ k $ k similarity search over encrypted data
JP6941183B2 (ja) データのトークン化
JP5420085B2 (ja) データ処理装置及びデータ保管装置
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
CN109120639A (zh) 一种基于区块链的数据云存储加密方法及系统
CN110352413B (zh) 一种基于策略的实时数据文件访问控制方法与系统
Pandiaraja et al. A novel data privacy-preserving protocol for multi-data users by using genetic algorithm
EP3794487B1 (en) Obfuscation and deletion of personal data in a loosely-coupled distributed system
Somu et al. Authentication service in hadoop using one time pad
CN104584509A (zh) 一种共享数据的访问控制方法、装置及系统
CN111274599A (zh) 一种基于区块链的数据共享方法及相关装置
Huang et al. Research on privacy-preserving cloud storage framework supporting ciphertext retrieval
CN113407627A (zh) 一种基于区块链的智能医疗网络系统及医疗数据共享方法
Zhang et al. Inference attack-resistant e-healthcare cloud system with fine-grained access control
CN112000632B (zh) 密文的分享方法、介质、分享客户端及系统
US11588631B2 (en) Systems and methods for blockchain-based automatic key generation
Sun et al. Research on logistics information blockchain data query algorithm based on searchable encryption
JP5388727B2 (ja) 情報処理システム及び情報処理装置及びサーバ装置及び情報処理方法及びプログラム
JP5441726B2 (ja) 情報処理システム及び管理装置及びサーバ装置及び情報処理装置
CN112685753B (zh) 一种用于加密数据存储的方法及设备
RuWei et al. Study of privacy-preserving framework for cloud storage
CN115422570A (zh) 一种分布式存储的数据处理方法及系统
Almutairi et al. Survey of centralized and decentralized access control models in cloud computing
WO2014141802A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
US8995665B1 (en) Role based encryption without key management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120913

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131217

R150 Certificate of patent or registration of utility model

Ref document number: 5441726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees