JP2011146895A - 情報処理システム及び管理装置及びサーバ装置及び情報処理装置 - Google Patents
情報処理システム及び管理装置及びサーバ装置及び情報処理装置 Download PDFInfo
- 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
Links
Images
Abstract
【解決手段】グループ管理装置401は、情報処理装置301のユーザごとに許可世代範囲が設定されている鍵を更新しながら発行し、情報処理装置は、ユーザに発行された鍵の世代値と暗号化データをサーバ装置201に登録し、また、ユーザに発行された鍵を用いて当該ユーザの許可世代範囲が反映されるn(n≧1)世代分のトラップドアを集約する集約トラップドアを生成してサーバ装置に送信し、サーバ装置では集約トラップドアからn個のトラップドアを導出し、各トラップドアを解析し、暗号化データの検索範囲を当該ユーザの許可世代範囲に限定して暗号化データの検索を行う。情報処理装置はn世代分のトラップドアを集約した集約トラップドアを送信するので、サーバ装置との間の通信量を削減できる。
【選択図】図1
Description
このような秘匿検索システムは、機密データ管理のアウトソーシングや、メールサーバにおける暗号化メールのフィルタリングへの応用が期待されており、種々の安全性要件を達成するための技術や、サーバや検索者のストレージ・通信オーバーヘッド・演算オーバーヘッドを削減するための様々な技術が提案されている。
非特許文献1では、ユーザが保持する秘密情報をハッシュチェーンで管理し、ユーザの加入・脱退に伴って世代が更新されるたびに新しい秘密情報を正当ユーザに配布し、正当ユーザは最新の秘密情報から過去の秘密情報を導出できるようにし、ユーザに必要なストレージを抑えつつ、世代更新に対応した秘匿検索を達成する方式が開示されている。
また、特許文献1では、時刻と役職に基づいた、二次元的な鍵管理を行う方式が開示されている。
これを実現するために、非特許文献1にて開示されている方式では、検索者が最新の秘密情報から過去全ての世代の秘密情報を導出し、これらとキーワードからトラップドア(検索用の情報)を世代数分計算し、全てのトラップドアをサーバに送信し、トラップドアを受け取ったサーバが検索処理を行っている。
このため、検索者にとって計算量・通信量が世代数に比例して増大するという課題がある。
また、非特許文献1の方式では、加入ユーザが加入前の情報を全て検索することができ、これを防ぐことができないという課題がある。
例えば、ある会社に属していたユーザが退職した場合、退職前にはアクセスできた情報にもアクセスできなくするというケースが考えられる。
これに対し、ある部署に属していたユーザが異動した場合、業務の関係上、異動前にアクセスできた情報には引き続きアクセスしたいというケースを考えることができる。
脱退ユーザを上記のような「退職ユーザ」「異動ユーザ」に分けた場合、これらの一方のみに対応することは、非特許文献1の方式を始めとする、既存の方式で可能である。
しかし、脱退ユーザとして「退職ユーザ」「異動ユーザ」の両方が混在するシステムの場合、既存方式ではこれに対応できないという課題がある。
また、ユーザごとに検索が許可されるデータの範囲を設定し、ユーザからの検索要求に対して当該ユーザに許可された範囲内でデータの検索を行うことを主な目的とする。
複数のユーザに利用される複数の情報処理装置と、
ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置を有し、
前記管理装置は、
利用が許可される世代範囲が許可世代範囲として設定される鍵を生成し、
ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定し、
鍵発行タイミングにおいて、ユーザごとに、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行し、
各情報処理装置は、
最新世代の鍵を受領する度に、受領した最新世代の鍵を記憶し、
ユーザから暗号化データの格納指示があった際に、暗号化データの検索に用いられるインデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザの検索指示時点での最新世代の鍵を用いて、許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代値が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データとを対応付けて記憶し、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象としているインデックス情報に対応付けられている暗号化データであって所定の条件を満たす暗号化データを抽出することを特徴とする。
また、管理装置において、ユーザごとに許可世代範囲が設定されている鍵を発行し、検索要求元のユーザの鍵を用いて生成された当該ユーザの許可世代範囲が反映される暗号化世代情報をサーバ装置で解析し、暗号化データの検索範囲をユーザの許可世代範囲に限定することができる。
また、新たにグループに加入した加入ユーザに加入前の情報を検索させない、脱退ユーザとして退職・異動ユーザの混在を許すなど、ユーザの加入・脱退に柔軟に対応することができる秘匿検索システム(情報処理システム)を説明する。
図1は、サーバ装置に保存されたデータを、複数のユーザがキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバ装置に対して秘匿する秘匿検索システムの構成例である。
図1に示すように、複数の情報処理装置301が、ネットワーク101を介してサーバ装置201とグループ管理装置401に接続している。
なお、グループ管理装置401は管理装置の例である。
各装置の詳細は後述するが、ここで、各装置の概要を説明する。
同じグループの情報処理装置301は、暗号鍵(以下、単に鍵ともいう)を共有するとともに、例えば、新規ユーザの追加、既存ユーザの脱退といった更新イベントの発生に伴って暗号鍵が更新されていく。
なお、グループに所属しているユーザを所属ユーザともいう。また、グループに新規に加入する者を加入ユーザともいう。また、グループから脱退した者を脱退ユーザともいう。
暗号鍵は、サーバ装置201に対しては秘密にされている。
暗号鍵は、グループ管理装置401により更新イベントの発生の度に更新され、また、更新イベント発生時を含む鍵発行タイミングにおいて同じグループに属するユーザの情報処理装置301に暗号鍵が配布される。
各情報処理装置301では、グループ管理装置401から新たな暗号鍵が配布される度に過去の暗号鍵に上書きして保存する。
なお、暗号鍵は世代数により管理される(更新により世代数の値が1つ増える)。
各ユーザには、グループへの加入時期や、グループに引き続き所属しているか脱退しているか等により、検索が許可される暗号化データの範囲が決められている。
この検索が許可される暗号化データの範囲は、暗号鍵の世代によって定義される。
より具体的には、グループ管理装置401は、ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定する。
そして、鍵発行タイミングにおいて、ユーザごとに(情報処理装置301ごとに)、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行する。
許可世代範囲とは、鍵の利用が許可される世代範囲であり、ユーザごとに異なっている。
鍵が更新される度に最新世代が改められるので、許可世代範囲は鍵の更新とともに拡大していく。
ユーザに検索が許可される暗号化データの範囲は、当該ユーザに発行された鍵に設定されている許可世代範囲に一致する。
後述するように、ユーザが暗号化データをサーバ装置201に格納する際に当該ユーザのその時点での最新世代の鍵の世代値と暗号化データが対応付けられて登録される。
また、暗号化データの検索の際に、ユーザは、その時点での当該ユーザの許可世代範囲が反映される情報(トラップドア)をその時点での最新世代の鍵を用いて生成し、情報処理装置301からサーバ装置201に送信する。
サーバ装置201では、検索要求に含まれる情報(トラップドア)を解析して、検索要求元ユーザの許可世代範囲に合致する世代値と対応付けられている暗号化データのみを検索の対象とする。
暗号化キーワードは、暗号化データとともにサーバ装置201で登録され、暗号化データの検索に用いられる。暗号化キーワードは、インデックス情報の例である。
なお、後述するように、暗号化キーワードではなく、トラップドア自体を暗号化データに対応付けて登録することも可能である。この場合は、トラップドアがインデックス情報の例となる。
より具体的には、情報処理装置301は、集約トラップドア(集約情報)を生成し、集約トラップドアをサーバ装置201に送信する。
集約トラップドアは、ユーザの許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代値と検索キーワードが暗号化されているn個のトラップドア(暗号化世代情報)が集約されている情報である。
また、導出したトラップドアごとに、トラップドアが対象としている世代値と共通する世代値を対象とする暗号化キーワードであってトラップドアにおいて暗号化されている検索キーワードに合致する暗号化キーワードを検索する。
そして、検索した暗号化キーワードに対応付けられている暗号化データを抽出する。
次に、図2〜図4を用いて、サーバ装置201、情報処理装置301及びグループ管理装置401の構成例を説明する。
図5は暗号化キーワード記憶領域211が記憶するデータの一例を表す。
前述のように、暗号化キーワードは、インデックス情報の例である。
図6は暗号化データ記憶領域212が記憶するデータの一例を表す。
図7は暗号鍵記憶領域311が記憶するデータの一例を表す。
図7の例において、暗号鍵k1,3は、1世代目から3世代目までの秘密情報を検索可能であることを意味する。
換言すれば、暗号鍵k1,3は、ユーザの利用開始世代が第1代目であり、また、許可世代範囲が第1世代目から第3世代目までであることを意味する。
前述したように、トラップドア生成部321は、n(n≧1)世代分のトラップドアが集約されている集約トラップドアを生成する。
図7の暗号鍵k1,3を用いる場合は、第1世代から第3世代までの3世代分の3つのトラップドアが1つのトラップドアに集約されている集約トラップドアを生成する。
図8は暗号鍵記憶領域411が記憶するデータの一例を表す。
図8の例において、暗号鍵ki,jは、i世代目からj世代目までの秘密情報を検索可能であることを意味する。
以下、それぞれの手続きについて説明する。
グループ管理装置401は、パラメータq、および互いに可換な三つの関数F1(x),F2(x),G(x、y)を決定し、公開情報とする。
ここで、F1およびF2としては一方向性関数を選び、またGとしては、関数の出力から実際の入力を推定することが困難である関数を選ぶ。
また、FとGの可換性とは、例えばF1(G(x,y))=G(F1(x),y)を意味するものとする。
qは世代数の最大値(最終世代)であり、世代の更新頻度やシステムの運用期間から適切に設定する。
さらに、適当な一方向性関数Hを選択し、公開情報とする。
本実施の形態では、F1,F2,Gの具体例として、以下に基づき決定したものを利用する。
p1,p2として十分大きな素数を選び、N=p1×p2とする。
e1,e2としてZN *から、(p1−1)(p2−1)と互いに素な数をランダムに選択する。
F1,F2,Gを以下で定める。
F1(x)=xe1 mod N
F2(x)=xe2 mod N
G(x,y)=xy mod N
なお、modはモジュロ演算子を表し、ZN *は0からN−1の整数の中でNと互いに素である整数の集合を表す。
また、F1(x)は第1の関数の例であり、F2(x)は第2の関数の例である。
暗号鍵生成部421は、情報処理装置301が利用する暗号鍵ki,j(1≦i≦j≦q)を生成する。
ここで、ki,jは、i世代目からj世代目までの秘密情報を検索可能な暗号鍵である。
そして、初期鍵である暗号鍵k1,qに対してF1及びF2を適用して新たな暗号鍵を生成し、以降、生成済みの鍵に対してF1及びF2を適用して新たな鍵を生成する動作を繰り返し、各鍵間に連続性を持たせながら、生成済みの鍵とは別の許可世代範囲が設定されている暗号鍵を生成する。
具体的には、暗号鍵k1,q以外の暗号鍵ki,j(1≦i≦j≦q)を、以下の式に従って順次計算する(暗号鍵の無矛盾性はF1,F2の可換性によって保証される)(S2602)。
ki,j−1=F1(ki,j)
ki+1,j=F2(ki,j)
また、同様に、暗号鍵生成部421は、初期鍵である暗号鍵k1,qに第2の関数(F2)を適用して、許可世代範囲の終了世代が暗号鍵k1,qの終了世代と共通し開始世代が暗号鍵k1,qの開始世代の1つ後の世代となる新たな暗号鍵k2,qを生成し、生成した暗号鍵k2,qに第2の関数を適用して、許可世代範囲の終了世代が当該生成済みの暗号鍵k2,qの終了世代と共通し開始世代が当該生成済みの暗号鍵k2,qの開始世代の1つ後の世代となる新たな暗号鍵k3,qを生成する。
更に、暗号鍵生成部421は、生成した鍵に第1の関数及び第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、許容世代範囲の全パターンに対応する複数の暗号鍵を生成する。
最後に、暗号鍵配布処理部451が1世代目の暗号鍵k1,1を暗号鍵記憶領域411から取得し、通信部431が全ての正当な情報処理装置301(グループに所属しているユーザが利用している情報処理装置301)に、1世代目の暗号鍵k1,1を送信する(S2604)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵k1,1を受信した情報処理装置301は、この暗号鍵k1,1を、世代情報とともに暗号鍵記憶領域311に格納する。
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)暗号鍵の世代更新」の処理が実行される。
暗号鍵配布処理部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)。
正当な情報処理装置301のグループに対し、ユーザの加入・脱退があった際に、暗号鍵の世代更新が必要となる場合がある。
このようなユーザの加入(上記のt世代目の秘密情報の検索を認めないユーザの加入)及びユーザの脱退が更新イベントとなる。
更新イベントが発生した場合には、以下のように世代更新を実施する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵ks,t+1を受信した情報処理装置301は、暗号鍵記憶領域311の内容を、新しい世代情報(検索開始世代s,検索終了世代t+1)と暗号鍵ks,t+1で置き換える。
このため、脱退者は、脱退前にサーバ装置201に登録されている暗号化データには、保持している暗号鍵を用いてアクセスすることができるが、脱退後にサーバ装置201に登録された暗号化データには、更新後の暗号鍵を保有していないのでアクセスできない。
なお、以前の暗号化データを含め一切の暗号化データに脱退者がアクセスできないようにすることもできる。
更新イベントが発生した場合、つまり、ユーザの脱退又は世代更新が必要なユーザの加入があった場合(S2801でYES)、暗号鍵配布処理部451は、世代範囲記憶領域441から各所属ユーザの許可世代範囲を読み出す(S2802)。
そして、暗号鍵配布処理部451は、所属ユーザごとに、s世代〜t+1世代に対応する暗号鍵ks,t+1を暗号鍵記憶領域411から取得する(S2803)。
そして、通信部431が各所属ユーザの情報処理装置301に暗号鍵ks,t+1を送信する(S2804)。
なお、S2802で、所属ユーザごとに許可世代範囲を読み出すのは、所属ユーザごとに利用開始世代が異なるからである。
つまり、例えば、あるユーザは、グループ初期から所属しているので1世代目が利用開始世代になっているが、別のユーザは途中からグループに加入したため、3世代目が利用開始世代となっているような場合が生じるからである。
正当な情報処理装置301がデータをサーバ装置201に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
t世代目における具体的な手順を図29及び図30を参照しながら以下に述べる。
さらに、情報処理装置301は、データの暗号化を行う(S2901)。
ここでは、正当な情報処理装置301だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する(暗号化データをdxとする)。
暗号化データdxに関連付けられる複数のキーワード(wxjとする)をユーザから入力する(S2902)。
次に、トラップドア生成部321が、データに関連付けられた複数のキーワード(wxj)に対し、それぞれトラップドアを生成する(S2903)。
具体的には、暗号鍵記憶領域311に格納されている暗号鍵ks,tを利用して、各キーワードwxjに対し、トラップドアtdxjを以下のように計算する(F2 t−sはF2をt−s回適用することを表す。以下においても同様)。
kt,t=F2 t−s(ks,t)
tdxj=G(kt,t,wxj)
その後、暗号化キーワード生成部322が、各トラップドアtdxjに対し、暗号化キーワードcxjを以下のように計算する(S2904)。
cxj=H(idx,tdxj)
最後に、通信部331が、世代、データID、暗号化データ、暗号化キーワードの組(t,idx,dx,cx1,cx2,...)を格納要求としてサーバ装置201に送信する(S2905)。
正当な情報処理装置301は、現在もしくは過去の世代にサーバ装置201に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
暗号鍵ks,tを持つ正当な情報処理装置301が、s世代目からt世代目までの検索を行う具体的な手順を図31及び図32を参照しながら以下に述べる。
次に、トラップドア生成部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)。
tdi,i=F1 t−i(F2 i−s(tds,t)) (s≦i≦t)
具体的には、暗号化キーワード記憶領域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に一致するか否かの照合を行う。
最後に、通信部231が情報処理装置301に、キーワードwに対応する暗号化データdを送信する。
なお、上記の等式が複数成立した場合は全て送信するようにしても、一部を送信するようにしても良い。
上記の等式が暗号化キーワード記憶領域211のどの行においても不成立であった場合は、情報処理装置301にその旨を送信する。
なお、存在しないキーワードを指定した場合の他、データ検索の要求元が正当なアクセス権限を有しない場合(正しい暗号鍵を有しないので、適切なトラップドアを作成できない)に、上記の等式が暗号化キーワード記憶領域211のどの行においても不成立となると考えられる。
ここでは、正当な情報処理装置301だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する。
また、実線の矢印が関数F1を示し、破線がF2を示し、鎖線が関数Gを示している。
暗号鍵k0,5からは、関数F1及び関数F2の実行により全世代の暗号鍵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世代目の範囲内で暗号化データを検索する。
暗号鍵k2,5からは、関数F1及び関数F2の実行により暗号鍵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は、
tdi,i=F1 t−i(F2 i−s(tds,t))
=F1 t−i(F2 i−s(G(ks,t,w)))
=F1 t−i(G(F2 i−s(ks,t),w))
=G(F1 t−i(F2 i−s(ks,t)),w)
=G(ki,i,w)
となり、これは情報処理装置301がi世代目に生成するトラップドアと一致する。
特に、本実施の形態にて示した具体例においては、RSA(登録商標)暗号の安全性に基づいている。
サーバ装置201が、受信したトラップドアから検索期間に対応する全てのトラップドアを生成できるため、検索時に情報処理装置301が送信すべきトラップドアが削減でき、情報処理装置301の計算量や通信量の削減を達成できる。
また、加入ユーザに対して検索可能期間を設定するという、柔軟性も達成している。
例えば、暗号化データは別の装置が保持し、そこへのアクセスを可能とするためにデータIDだけを返すようにしても良い。
この場合、検索時にサーバ装置201がidごとにHを適用する必要がなくなり、検索を高速化することができる。
この場合、世代数の最大値(q)という制限を設けることなく秘匿検索システムを運用することが可能となる。
つまり、グループ管理装置401は、予め、第1世代のみを許可世代範囲とする鍵k1,1を初期鍵として生成し、鍵発行時に、ユーザごとに、利用開始世代から鍵発行時における最新世代までの世代範囲に対応させて暗号鍵を生成するようにしてもよい。
この場合は、初期鍵又は初期鍵から派生する鍵を生成元鍵とし、生成元鍵に関数F1(第1の関数)を適用して許可世代範囲の開始世代が生成元鍵の開始世代と共通し終了世代が生成元鍵の終了世代の1つ後の世代となる新たな鍵を生成する。この場合は、生成元鍵は、終了世代が生成対象の鍵の1世代前の鍵である。
または、生成元鍵にF2(第2の関数)を適用して許可世代範囲の終了世代が生成元鍵の終了世代と共通し開始世代が前記生成元鍵の開始世代の1つ後の世代となる新たな鍵を生成するようにしてもよい。この場合は、生成元鍵は、開始世代が生成対象の鍵の1世代前の鍵である。
(1)サーバに保存されたデータを、ユーザがキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバに対して秘匿する秘匿検索システムで、検索の際に利用する秘密情報を世代ごとに更新するシステムにおいて、データ保存・検索時にユーザがサーバに送信するトラップドアを、サーバが最新のトラップドアから過去のトラップドアを導出できるようなものにすることで、検索時にユーザが送信すべきトラップドアの数を削減し、結果として計算量や通信量を削減する方式を説明した。
(2)上記(1)において、関数F1,F2,Gを利用することで、加入ユーザの検索権限を柔軟に設定できる方式を説明した。
(3)上記(2)において、RSA(登録商標)暗号の安全性をベースとする方式を説明した。
本実施の形態では、加入ユーザに加入前の情報を検索させないという目的を、実施の形態1で述べたものと異なる手段で達成する方式について述べる。
図22及び図23は、本実施の形態の動作概要を説明する図である。
図22において、αはいずれのユーザ及び情報処理装置1001(本実施の形態では、情報処理装置1001と表記する)に対しても秘密にしている秘密パラメータである。
秘密パラメータαは、グループ管理装置401からサーバ装置901(本実施の形態では、サーバ装置901と表記する)に通知される。
wは、ユーザが指定するキーワードである。
関数Fは、ある世代の暗号鍵から1つ前の世代の暗号鍵又はある世代のトラップドアから1つ前の世代のトラップドアを生成するための関数である。
関数Gは、暗号鍵からトラップドアを生成するための関数である。
グループ管理装置401は、まず、鍵k0をグループの初期からグループに所属している所属ユーザの情報処理装置1001に送信する。
更新イベントが発生し、鍵kiから鍵の世代を更新する場合は、グループ管理装置401は、次の世代の鍵ki+1を送信する。
情報処理装置1001では、鍵の更新がある度に、それまで保持している鍵に、新たな鍵を合成して合成鍵を生成する。具体的には、鍵の積算を行う。
例えば、新たな鍵として鍵k3が配布された場合は、情報処理装置1001は、その時点での最新世代の鍵としてk2を保持し、また、k0、k1、k2の積であるk0k1k2を保持している。
このため、情報処理装置1001は、最新世代の鍵をk3に置換するとともに、保持している鍵の積に新たな鍵k3を加えて、鍵k0k1k2k3に更新する。
また、各世代の鍵kiに対して関数Gを適用すると、トラップドアtdiが生成できる。
なお、関数Gには、wべき乗の演算が含まれている。
更に、トラップドアと暗号化データのデータIDに対して一方向性演算を行って暗号化キーワードを生成する。
そして、情報処理装置1001は、暗号化データ、暗号化キーワード、最新世代の鍵の世代値、データIDをサーバ装置901に送信し、サーバ装置901はこれらを対応付けて格納する。
ここでは、最新世代の鍵k3を保有し、鍵の積k0k1k2k3を保有しているユーザが暗号化データを検索する場合を例にして説明する。
情報処理装置では、最新世代の鍵k3とキーワードwに対して関数Gを適用してトラップドアtd3を生成する。
また、情報処理装置1001は、鍵の積k0k1k2k3とキーワードwに関数Gを適用して鍵の積に対応するトラップドアを生成する。ここでは、鍵k0〜k3に対応するトラップドアなのでtd0,3と表記する。
情報処理装置1001は、2つのトラップドアtd3とtd0,3をサーバ装置901に送信する。
なお、トラップドアtd3は暗号化最新世代情報に相当し、トラップドアtd0,3は、トラップドアtd0〜td3を集約した情報であるため、集約情報に相当する。
また、トラップドアtd0,3は、サーバ装置901において、情報処理装置1001が鍵k0〜k3の保持実績があるか否か、すなわち、第0世代〜第3世代に対応する暗号化データにアクセスする権限があるか否かを検証するためのトラップドアであり、検証用トラップドアという。
更に、サーバ装置901は、導出したトラップドアtd0〜td2と情報処理装置1001から受信したトラップドアtd3の積が、トラップドアtd0,3と一致するか否かを検証する。
一致する場合は、サーバ装置901は、情報処理装置1001が鍵k0〜k3の保持実績がある、すなわち、第0世代〜第3世代に対応する暗号化データにアクセスする権限があると判断し、第0世代〜第3世代の範囲で暗号化データの検索を行う。
図9において、暗号化キーワード記憶領域211、暗号化データ記憶領域212、トラップドア生成部221、比較部222、通信部231に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
関数パラメータ記憶領域913は、過去のトラップドア導出に必要な秘密パラメータを記憶するデータ記憶手段である。
ここには、グループ管理装置401から受信した単一の値が格納される。
トラップドア検証部923は、情報処理装置1001から受信したトラップドアが、正当な検索権限を持った情報処理装置1001が生成したものであるかを検証する手段である。
図10において、トラップドア生成部321、暗号化キーワード生成部322、通信部331に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域311は、データの暗号化・検索に用いる秘密情報を記憶するデータ記憶手段である。
図11は暗号鍵記憶領域311が記憶するデータの一例を表す。
図11の例において、検証用暗号鍵k1,3は、1世代目から3世代目までの秘密情報を検索する権限があることを、サーバ装置901に対して証明するための秘密情報である。
検証用トラップドア生成部1023は、情報処理装置1001が、ある期間についての秘密情報を検索する権限があることを、サーバ装置901に対して証明するための検証用トラップドアを生成する手段である。
なお、本実施の形態に係るグループ管理装置401の構成例の図示は省略している。
暗号鍵記憶領域411は、情報処理装置1001が利用する暗号鍵を記憶するデータ記憶手段である。
図13は暗号鍵記憶領域411が記憶するデータの一例を表す。
以下、それぞれの手続きについて説明する。
グループ管理装置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)=xy mod p
G(x,y)=xy mod p
このとき、Gは以下の準同型性を持つ。
G(x1x2,y)=G(x1,y)G(x2,y)
また、αを巡回群Zp *から、p−1と互いに素となるようランダムに選択する。
暗号鍵生成部421は、情報処理装置1001が利用する暗号鍵ki(1≦i≦q)を生成する。
そして、初期鍵である暗号鍵kqに対して所定の鍵生成関数を適用して、新たな暗号鍵を生成し、以降、生成済みの鍵に鍵生成関数を適用して、各鍵間に連続性を持たせながら、生成済みの鍵とは別の世代の鍵を生成する。
具体的には、暗号鍵kq以外の暗号鍵ki(1≦i<q)を、以下の式に従って順次計算する(S3302)。
ki−1=F(ki,α)
そして、暗号鍵配布処理部451が1世代目の暗号鍵k1を暗号鍵記憶領域411から取得し、通信部431が、全ての正当な情報処理装置1001に、1世代目の暗号鍵k1を送信する(S3304)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵k1を受信した情報処理装置1001は、この暗号鍵k1を、世代とともに暗号鍵記憶領域311に格納する。
また、検索開始世代(利用開始世代)として1を、検証用暗号鍵k1,1として暗号鍵k1と同じ値を格納する(図12)。
最後に、通信部431が、サーバ装置901に、秘密パラメータαを送信する(S3305)。
これは、安全性が保たれる方式であれば、オフラインで行っても良いし、既存技術を用いてオンラインで行っても良い。
秘密パラメータαを受信したサーバ装置901は、この秘密パラメータαを、関数パラメータ記憶領域913に格納する。
t世代目においてユーザの加入があった際、加入した情報処理装置1001に対して暗号鍵を配布する。
加入ユーザに対して、t世代目を含めた、s世代目からt世代目まで(s≦t)の秘密情報の検索を許す場合、グループ管理装置401の通信部431が、加入した情報処理装置1001に、暗号鍵kt、以下で導出される検証用暗号鍵ks,t、および世代情報s,tを送信する。なお、以下の式は、鍵の(巡回群における)積を表している。
ks,t=ksks+1…kt
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
これらを受信した情報処理装置1001は、暗号鍵記憶領域311に、世代としてtを、暗号鍵としてktを、検索開始世代として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)暗号鍵の世代更新」の処理が実行される。
暗号鍵配布処理部451は、例えば、グループ管理装置401のオペレータからの入力に基づき、新たに加入する加入ユーザに許容される世代範囲を判断する(S3401)。
加入ユーザにs世代〜t世代が認められる場合は、暗号鍵配布処理部451は、暗号鍵ks〜暗号鍵ktを暗号鍵記憶領域411から取得し、取得した暗号鍵ks〜暗号鍵ktを積算して検証用暗号鍵ks,tを生成し、暗号鍵kt、検証用暗号鍵ks,t、世代情報(s、t)を通信部431が当該ユーザの情報処理装置301に送信する(S3402)。
一方、S3401の判断において、新規に加入するユーザにt世代が許可されない場合は、暗号鍵配布処理部451は、暗号鍵kt+1を暗号鍵記憶領域411から取得し、通信部431が当該ユーザの情報処理装置301に暗号鍵kt+1と世代情報(t+1)を送信する(S3403)。
また、この後、図35に示す世代更新処理が行われる(S3404)。
正当な情報処理装置1001のグループに対し、ユーザの加入・脱退があった際に、暗号鍵の世代更新が必要となる場合がある。
このようなユーザの加入(上記のt世代目の秘密情報の検索を認めないユーザの加入)及びユーザの脱退が更新イベントとなる。
更新イベントが発生した場合には、以下のように世代更新を実施する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵kt+1を受信した情報処理装置1001は、暗号鍵記憶領域311の内容のうち、世代をt+1に、暗号鍵をkt+1に、検証用暗号鍵ks,tを以下で導出されるks,t+1に置き換える。
ks,t+1=ks,tkt+1(=ksks+1…ktkt+1)
このため、脱退者は、脱退前にサーバ装置901に登録されている暗号化データには、保持している暗号鍵を用いてアクセスすることができるが、脱退後にサーバ装置901に登録された暗号化データには、更新後の暗号鍵を保有していないのでアクセスできない。
なお、以前の暗号化データを含め一切の暗号化データに脱退者がアクセスできないようにすることもできる。
更新イベントが発生した場合、つまり、ユーザの脱退又は世代更新が必要なユーザの加入があった場合(S3501でYES)、暗号鍵配布処理部451は、t+1世代に対応する暗号鍵kt+1を暗号鍵記憶領域411から取得する(S3502)。
そして、通信部431が各所属ユーザの情報処理装置301に暗号鍵kt+1を送信する(S3503)。
正当な情報処理装置1001がデータをサーバ装置901に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
t世代目における具体的な手順を以下に述べる。
なお、動作のフローチャートは、図29及び図30と同様である。
さらに、情報処理装置1001は、データの暗号化を行う。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する(暗号化データをdxとする)。
次に、トラップドア生成部321が、データに関連付けられた複数のキーワード(wxjとする)に対し、それぞれトラップドアを生成する。
具体的には、暗号鍵記憶領域311に格納されている暗号鍵ktを利用して、各キーワードwxjに対し、トラップドアtdxjを以下のように計算する。
tdxj=G(kt,wxj)
その後、暗号化キーワード生成部322が、各トラップドアtdxjに対し、暗号化キーワードcxjを以下のように計算する。
cxj=H(idx,tdxj)
最後に、通信部331が、世代、データID、暗号化データ、暗号化キーワードの組(t,idx,dx,cx1,cx2,...)をサーバ装置901に送信する。
正当な情報処理装置1001は、現在もしくは過去の世代にサーバ装置901に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
暗号鍵kt、検証用暗号鍵ks,tを持つ正当な情報処理装置1001が、s世代目からt世代目までの検索を行う具体的な手順を図36及び図37を参照しながら以下に述べる。
次に、トラップドア生成部321が、検索したいキーワードwに対応するトラップドアを生成する(S3602)。
具体的には、キーワードwに対し、トラップドアtdtを以下のように計算する。
なお、ktは、ユーザの検索指示時点での最新世代の暗号鍵である。
tdt=G(kt,w)
このトラップドアtdtは、暗号化最新世代情報に相当する。
さらに、情報処理装置1001の検証用トラップドア生成部1023が、s世代目からt世代目までを検索する権限があることをサーバ装置901に対して証明するための検証用トラップドアtds,tを以下のように計算する(S3603)。
なお、ks,tは、鍵ks〜鍵ktの積である。
tds,t=G(ks,t,w)
次に、通信部331が、検索開始世代(s)、検索終了世代(t)、トラップドア、検証用トラップドアの組(s,t,tdt,tds,t)をサーバ装置901に送信する(S3604)。
tdi−1=F(tdi,α) (s<i≦t)
そして、トラップドア検証部923が、導出したトラップドアtds〜tdtと、受信した検証用トラップドアtds,tの整合性を確認する(S3703)。
具体的には、以下の等式が成立するか否かを確認する。
tdstds+1…tdt=tds,t
等式が成立した場合(S3704でYES)、実際の検索処理を実行する(S3705、S3706)。
すなわち、比較部222が、暗号化キーワード記憶領域211を参照し、トラップドアに対応する暗号化キーワードが存在するかを確認する。
具体的には、暗号化キーワード記憶領域211の各行の世代、データID、暗号化キーワードの組(j,id,c)に対し、以下の等式が成立するかを確認する。
c=H(id,tdj)
成立した場合はcが指定されたキーワードwに対応する暗号化キーワードとなるため、暗号化データ記憶領域212を参照してidから暗号化データdを取得する(S3707)。
そして、通信部231が情報処理装置1001に、キーワードwに対応する暗号化データdを送信する(S3708)。
等式が複数成立した場合は全て送信するようにしても、一部を送信するようにしても良い。
上記の等式が暗号化キーワード記憶領域211のどの行においても不成立であった場合は、その旨を送信する。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する。
サーバ装置901がトラップドアtdtから生成したi世代目のトラップドアtdiは、
tdi=Ft−i(tdt,α)
=Ft−i(G(kt,w),α)
=G(Ft−i(kt,α),w)
=G(ki,w)
となり、これは情報処理装置1001がi世代目に生成するトラップドアと一致する
(ここで、例えばF2(x,y)はF(F(x,y),y)を表す。以下においても同様)。
tdi=G(ki,w)
tdstds+1…tdt=G(ks,w)G(ks+1,w)…G(kt,w)
=G(ksks+1…kt,w)
=G(ks,t,w)
=tds,t
特に、本実施の形態にて示した具体例においては、離散対数問題の安全性に基づいている。
サーバ装置901が、受信したトラップドアから検索期間に対応する全てのトラップドアを生成できるため、検索時に情報処理装置1001が送信すべきトラップドアが削減でき、情報処理装置1001の計算量や通信量の削減を達成できる。また、加入ユーザに対して検索可能期間を設定するという、柔軟性も達成している。
例えば、本実施の形態では、グループ管理装置401は、最終世代から第1世代の鍵に遡って全世代の鍵を生成し、全世代の鍵を記憶し、鍵更新タイミングにおいて、記憶している鍵の中から該当する鍵を抽出して、情報処理装置1001に送信することとしている。
これに代えて、グループ管理装置401は、予め、第1世代の鍵を生成し、鍵発行時に、鍵発行時点での最新世代に対応させて、第1世代の鍵又は第1世代の鍵から派生する鍵を生成元鍵とし、生成元鍵と秘密パラメータαに対して鍵生成関数Fを適用して、生成元鍵の1つ後の世代の新たな鍵を最新世代の鍵として生成し、生成した最新世代の鍵をユーザに発行するようにしてもよい。
この場合、情報処理装置1001が検索期間の短い別の検証用暗号鍵ki,j(s≦i≦j≦t)を導出してトラップドアを作成することで、i世代目からj世代目までに限定した検索を行うことも可能である。
更に、本実施の形態では、巡回群における離散対数問題の安全性をベースとする方式を説明した。
本実施の形態では、脱退ユーザとして「異動ユーザ」「退職ユーザ」の、検索権限の異なるユーザが混在する場合に、秘匿検索を実現するという目的を達成する方式について述べる。
なお、本実施の形態において、「異動ユーザ」「退職ユーザ」の用語は以下の意味で用いる。
異動ユーザ:
グループからは脱退し、脱退以降の情報は検索できなくなるが、脱退以前の情報に関しては脱退以前と同じように検索できるユーザ。
つまり、グループから脱退したが脱退前にサーバ装置1401(本実施の形態では、サーバ装置1401と表記する)に格納された暗号化データに対しては検索が許容されるユーザである。
異動ユーザは、限定ユーザの例である。
退職ユーザ:
グループから脱退し、脱退以前に検索できた情報も含めた全ての情報が検索できなくなる者。
つまり、グループから脱退しサーバ装置1401の暗号化データに対する検索が禁止される者である。
退職ユーザは、禁止ユーザの例である。
所属ユーザは、サーバ装置1401の暗号化データに対する検索が許容される。
このため、本実施の形態に係るグループ管理装置401では、所属ユーザ、異動ユーザ、退職ユーザの3つのユーザカテゴリーが設けられている。
なお、本実施の形態では、説明の簡明化のため、グループに途中から加入する者がない形態(更新イベントはグループからの脱退のみ)を前提に説明を行う。
図24及び図25は、本実施の形態の動作概要を説明する図である。
本実施の形態では、暗号鍵はki,jという表記を用いる。値i及びjは、鍵の世代値を示す。iは、退職ユーザが発生した際に値が更新される退職ユーザ対応値(禁止ユーザ対応値)であり、jは、異動ユーザが発生した際に値が更新される異動ユーザ対応値(限定ユーザ対応値)である。
例えば、鍵k2,2は、退職ユーザ対応値が第2世代であり、異動ユーザ対応値が第2世代であり、退職及び異動がそれぞれ2回ずつ発生したことを意味している。
各暗号鍵ki,jには、サーバ装置1401においてトラップドアから退職ユーザ対応値i及び異動ユーザ対応値jが導出可能なように、退職ユーザ対応値i及び異動ユーザ対応値jが設定されている。
関数F1は、ある世代の異動ユーザ対応値が設定されている暗号鍵から1つ前の世代の異動ユーザ対応値の暗号鍵又はある世代の異動ユーザ対応値が設定されているトラップドアからの1つ前の世代の異動ユーザ対応値のトラップドアを生成するための関数である。
関数F2は、ある世代の退職ユーザ対応値が設定されている暗号鍵から1つ前の世代の退職ユーザ対応値の暗号鍵又はある世代の退職ユーザ対応値が設定されているトラップドアからの1つ前の世代の退職ユーザ対応値のトラップドアを生成するための関数である。
関数F1は第1の関数に相当し、関数F2は第2の関数に相当する。
また、最終世代の鍵kq1、q2に関数F2を適用して退職ユーザ対応値が1世代前の鍵kq1−1、q2を生成する。
関数F1及びF2の適用を繰り返して、各鍵間に連続性を持たせながら、退職ユーザ対応値の全世代及び異動ユーザ対応値の全世代が含まれる全ての組み合わせパターンに対応する鍵k0、0〜kq1、q2を生成し、生成した鍵k0、0〜kq1、q2を記憶する。
また、グループに所属している所属ユーザの情報処理装置1001に初回の鍵として鍵k0、0を送信する。
なお、この時点では、グループからの脱退は発生していない。
特別な暗号化キーワードc0は、公開値である特別なキーワードw0と鍵k0、0を用いているため、鍵k0、0を保有する正当な情報処理装置1001であれば、特別な暗号化キーワードc0を導出可能なトラップドアを生成することができる。
なお、特別な暗号化キーワードc0は、先頭世代暗号値に相当する。
最新世代の鍵が鍵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が配布される。
この例では、異動1の際に、最新世代の世代値として(0,1)が通知され、退職1の際に(1,1)が通知され、異動2の際に(2,1)が通知され、退職2の際に(2,2)が通知される。
サーバ装置1401は、都度、通知された世代値を記憶する。
また、情報処理装置1001は、暗号化データ、データID、暗号化キーワード、鍵の世代値をサーバ装置1401に送信し、サーバ装置1401では、これらを対応付けて記憶する。
なお、本実施の形態では、鍵の世代値は、(i,j)のようになる。
iは退職ユーザ対応値であり、jは異動ユーザ対応値である。
所属ユーザが利用している情報処理装置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と特別なキーワードw0に対して所定の関数Gを適用して検証用トラップドアtdvを生成する。
検証用トラップドアtdvは、照合用情報に相当する。
また、所属ユーザが利用している情報処理装置1001は、集約トラップドアtd(2、2)と検証用トラップドアtdvをサーバ装置1401に送信する。
サーバ装置1401では、検証用トラップドアtdvに対して関数F1及びF2を適用して、鍵k0、0に対応するトラップドアtd0、0を導出し、導出したトラップドアtd0、0に対して特別なIDであるid0を適用し、暗号化キーワードc0が得られるか否かを検証し、検証に成功した場合に、集約トラップドアtd(2、2)を用いた暗号化データの検索を行う。
具体的には、実施の形態1と同様に、集約トラップドアtd(2、2)に関数F1及びF2を適用して、トラップドアtd0、0、td0、1、td0、2、td1、0、td1、1、td1、2、td2、0、td2、1、td2、2を導出し、各トラップドアとインデックス情報との照合により当該ユーザに許可されている(0,0)〜(2,2)の世代範囲内で暗号化データを検索する。
このトラップドアは、実施の形態1と同様に、鍵k0、0〜鍵k2、0に含まれる鍵k0、0、k1、0、k2、0に対応するトラップドアtd0、0、td1、0、td2、0が集約されている集約トラップドアである。ここでは、集約トラップドアtd(2、0)と表記する。
また、異動ユーザ1が利用している情報処理装置1001は、最新世代の鍵k2、0と特別なキーワードw0に対して所定の関数Gを適用して検証用トラップドアtdvを生成する。
また、異動ユーザ1が利用している情報処理装置1001は、集約トラップドア(2、0)と検証用トラップドアtdvをサーバ装置1401に送信する。
サーバ装置1401では、検証用トラップドアtdvに対して関数F1及びF2を適用して、鍵k0、0に対応するトラップドアtd0、0を導出し、導出したトラップドアtd0、0に対して特別なIDであるid0を適用し、暗号化キーワードc0が得られるか否かを検証し、検証に成功した場合に、集約トラップドアtd(2、0)を用いた暗号化データの検索を行う。
具体的には、実施の形態1と同様に、集約トラップドアtd(2、0)に関数F1及びF2を適用して、トラップドア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)の世代範囲内で暗号化データが検索される。
図14において、暗号化データ記憶領域212、トラップドア生成部221、比較部222、トラップドア検証部923、通信部231に関しては、実施の形態1および2にて記述したものと同様であるため、説明は省略する。
暗号化キーワード記憶領域211は、暗号化されたキーワードを、対応するデータID、および世代と関連付けて記憶するデータ記憶手段である。
図15は暗号化キーワード記憶領域211が記憶するデータの一例を表す。
図15において、データID、および暗号化キーワードid0,c0は、情報処理装置1001の検索権限を検証するための特別な情報である。
世代遷移記憶領域1413は、二次元で管理された世代情報の遷移を記憶するデータ記憶手段である。
図16は世代遷移記憶領域1413が記憶するデータの一例を表す。
図10において、トラップドア生成部321、暗号化キーワード生成部322、検証用トラップドア生成部1023、通信部331に関しては、実施の形態2にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域311は、データの暗号化・検索に用いる秘密情報を記憶するデータ記憶手段である。
図17は暗号鍵記憶領域311が記憶するデータの一例を表す。
図4において、暗号鍵生成部421、通信部431に関しては、実施の形態1にて記述したものと同様であるため、説明は省略する。
暗号鍵記憶領域411は、情報処理装置1001が利用する暗号鍵を記憶するデータ記憶手段である。
図18は暗号鍵記憶領域411が記憶するデータの一例を表す。
以下、それぞれの手続きについて説明する。
グループ管理装置401は、パラメータq1,q2、および互いに可換な三つの関数F1(x),F2(x),G(x、y)を決定し、公開情報とする。
ここで、F1およびF2としては一方向性関数を選び、またGとしては、関数の出力から実際の入力を推定することが困難である関数を選ぶ。
また、FとGの可換性とは、例えばF1(G(x,y))=G(F1(x),y)を意味するものとする。
q1,q2は世代数の最大値(最終世代)であり、それぞれ退職ユーザ、異動ユーザの発生に伴う鍵更新の上限を表す。
これらは世代の更新頻度やシステムの運用期間から適切に設定する。
さらに、検索権限を検証するための特別なキーワードw0、および適当な一方向性関数Hを選択し、公開情報とする。
本実施の形態では、F1,F2,Gの具体例として、以下に基づき決定したものを利用する。
p1,p2として十分大きな素数を選び、N=p1×p2とする。
e1,e2としてZN *から、(p1−1)(p2−1)と互いに素な数をランダムに選択する。F1,F2,Gを以下で定める。
F1(x)=xe1 mod N
F2(x)=xe2 mod N
G(x,y)=xy mod N
なお、modはモジュロ演算子を表し、ZN *は0からN−1の整数の中でNと互いに素である整数の集合を表す。
また、F1(x)は第1の関数の例であり、F2(x)は第2の関数の例である。
暗号鍵生成部421は、情報処理装置1001が利用する暗号鍵ki,j(1≦i≦q1,1≦j≦q2)を生成する。
ここで、ki,jは、(i,j)世代目で利用する暗号鍵であり、退職ユーザ発生に伴う鍵更新がi−1回、異動ユーザ発生に伴う鍵更新がj−1回行われたものを意味する。
そして、初期鍵である暗号鍵kq1,q2に対してF1(x)及びF2(x)を適用して新たな暗号鍵を生成し、以降、生成済みの鍵に対してF1(x)及びF2(x)を適用して新たな鍵を生成する動作を繰り返し、各鍵間に連続性を持たせながら、生成済みの鍵とは別の退職ユーザ対応値又は異動ユーザ対応値が設定されている暗号鍵を生成する。
具体的には、暗号鍵kq1,q2以外の暗号鍵ki,j(1≦i≦q1,1≦j≦q2)を、以下の式に従って順次計算する(暗号鍵の無矛盾性はF1,F2の可換性によって保証される)(S3802)。
ki,j−1=F1(ki,j)
ki−1,j=F2(ki,j)
また、暗号鍵生成部421は、初期鍵である暗号鍵kq1,q2に第2の関数(F2)を適用して、異動ユーザ対応値が暗号鍵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の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、異動ユーザ対応値及び退職ユーザ対応値の組み合わせの全パターンに対応する複数の鍵を生成する。
そして、暗号鍵配布処理部451が(1,1)世代目の暗号鍵k1,1を暗号鍵記憶領域411から取得し、通信部431が、全ての正当な情報処理装置1001に、(1,1)世代目の暗号鍵k1,1を送信する(S3804)。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵k1,1を受信した情報処理装置1001は、この暗号鍵k1,1を、世代情報とともに暗号鍵記憶領域311に格納する。
c0=H(id0,G(k1,1,w0))
通信部431は、データID、暗号化キーワードの組(id0,c0)をサーバ装置1401に送信する(S3806)。
これらを受信したサーバ装置1401は、暗号化キーワード記憶領域211に、世代、データID、暗号化キーワードをそれぞれ(1,1),id0,c0としたデータを格納する(図19)。
また、世代遷移記憶領域1413に、世代情報(1,1)を格納する(図20)。
正当な情報処理装置1001のグループに対し、異動ユーザが発生した場合、以下のように世代更新を実施する。
以下、図39のフローチャートを参照して、説明する。
具体的には、グループ管理装置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)世代と書き込む。
これを受信したサーバ装置1401は、世代遷移記憶領域1413に、最新の世代情報(s,t+1)を追記する。
正当な情報処理装置1001のグループに対し、退職ユーザが発生した場合、以下のように世代更新を実施する。
以下、図40のフローチャートを参照して、説明する。
具体的には、グループ管理装置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)世代と書き込む。
これを受信したサーバ装置1401は、世代遷移記憶領域1413に、最新の世代情報(s+1,t)を追記する。
正当な情報処理装置1001がデータをサーバ装置1401に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
(s,t)世代目における具体的な手順を以下に述べる。
なお、動作のフローチャートは、図29及び図30と同様である。
さらに、情報処理装置1001は、データの暗号化を行う。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する(暗号化データをdxとする)。
次に、トラップドア生成部321が、データに関連付けられた複数のキーワード(wxjとする)に対し、それぞれトラップドアを生成する。
具体的には、暗号鍵記憶領域311に格納されている暗号鍵ks,tを利用して、各キーワードwxjに対し、トラップドアtdxjを以下のように計算する。
tdxj=G(ks,t,wxj)
その後、暗号化キーワード生成部322が、各トラップドアtdxjに対し、暗号化キーワードcxjを以下のように計算する。
cxj=H(idx,tdxj)
最後に、通信部331が、世代、データID、暗号化データ、暗号化キーワードの組(s,t,idx,dx,cx1,cx2,...)をサーバ装置1401に送信する。
正当な情報処理装置1001、もしくは(退職ユーザでない)異動ユーザに対応する情報処理装置1001は、現在もしくは過去の世代にサーバ装置1401に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
暗号鍵ks,tを持つ情報処理装置1001が、(s,t)世代目までの検索を行う具体的な手順を以下に述べる。
なお、情報処理装置1001の動作のフローチャートは図36と同様である。
サーバ装置1401の動作のフローチャートは図41に示す通りである。
tds,t=G(ks,t,w)
さらに、情報処理装置1001の検証用トラップドア生成部1023が、検索する権限があることをサーバ装置1401に対して証明するための検証用トラップドアtdvを以下のように計算する。
tdv=G(ks,t,w0)
次に、通信部331が、世代情報(退職ユーザ対応値(s)、異動ユーザ対応値(t))、トラップドア、検証用トラップドアの組(s,t,tds,t,tdv)を検索要求としてサーバ装置1401に送信する。
そして、比較部222が、まず、検索要求中の世代(s,t)と、世代遷移記憶領域1413に格納されている最新の世代について、第一要素(退職ユーザ対応値)が一致していることを確認する(S4102)。
一致しない場合、情報処理装置1001に正当な検索権限がないとみなし、処理を終了する。
次に、トラップドア検証部923が、受信した検証用トラップドアtdvと、暗号化キーワード記憶領域211に格納されている一行目の要素(1,1),id0,c0について、キーワードが一致すると判定されること、つまり、検証用トラップドアtdvから特別な暗号化キーワードc0が抽出できることを確認する(S4103)。
なお、特別なキーワードw0は公開値であり、検証用トラップドアtdvの生成は、ユーザが指定する検索キーワードwの代わりに、特別なキーワードw0を用いて通常のトラップドアを生成することに相当する。換言すれば、検証用トラップドアtdvにおいて特別なキーワードw0と対応付けられているレコードの検索を要求していることと同視できる。このため、確認方法は後述する検索処理と同様なので省略する。
S4103においてキーワードが一致しない場合、情報処理装置1001に正当な検索権限がないとみなし、処理を終了する。
S4103においてキーワードが一致した場合、実際の検索処理を実行する。
tdi,j−1=F1(tdi,j)
tdi−1,j=F2(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のどの行においても不成立であった場合は、その旨を送信する。
ここでは、正当な情報処理装置1001だけが復号できるような、既存の暗号技術(グループ暗号技術)を利用する。
サーバ装置1401がトラップドアtds,tから生成した(i,j)世代目のトラップドアtdi,jは、
tdi,j=F1 t−j(F2 s−i(tds,t))
=F1 t−j(F2 s−i(G(ks,t,w)))
=F1 t−j(G(F2 s−i(ks,t),w))
=G(F1 t−j(F2 s−i(ks,t)),w)
=G(ki,j,w)
となり、これは情報処理装置1001が(i,j)世代目に生成するトラップドアと一致する。
特に、本実施の形態にて示した具体例においては、RSA(登録商標)暗号の安全性に基づいている。
サーバ装置1401が、受信したトラップドアから検索期間に対応する全てのトラップドアを生成できるため、検索時に情報処理装置1001が送信すべきトラップドアが削減でき、情報処理装置1001の計算量や通信量の削減を達成できる。また、脱退ユーザとして、異動ユーザ、退職ユーザが混在できるという、柔軟性も達成している。
例えば、以下のようなバリエーションも可能である。
グループ管理装置401は、予め、異動ユーザ対応値及び退職ユーザ対応値のいずれもが先頭値となっている先頭世代の鍵k0,0を初期鍵として生成する。
そして、鍵発行時に、所属ユーザ又は異動ユーザごとに、対応する異動ユーザ対応値及び退職ユーザ対応値の組み合わせに基づき、初期鍵又は初期鍵から派生する鍵を生成元鍵とし、生成元鍵に第1の関数(F1)を適用して退職ユーザ対応値が生成元鍵の退職ユーザ対応値と共通し異動ユーザ対応値が生成元鍵の異動ユーザ対応値の1つ後の世代の値となる新たな鍵を生成する。
または、生成元鍵に第2の関数(F2)を適用して異動ユーザ対応値が生成元鍵の異動ユーザ対応値と共通し退職ユーザ対応値が生成元鍵の退職ユーザ対応値の1つ後の世代の値となる新たな鍵を生成する。
そして、生成した鍵を所属ユーザ又は異動ユーザに発行する。
この場合、サーバ装置1401は、c0のかわりに別途G(k1,1,w0)を検証用情報として記憶することになる。
また、退職ユーザの発生に伴う鍵更新が進むにつれて、サーバ装置1401はG(ki,1,w0)の値を得ることができるので、この値をキャッシュすることで、以降の検証を効率化することも可能である。
つまり、上記の説明では、検証用トラップドアtdvからトラップドアtd1,1(=G(k1,1,w0))まで遡って、特別な暗号化キーワードcoとの整合性を確認しているが、キャッシュしている値で代用することで検証作業を短縮することができる。
このため、このトラップドアtd2,1(=G(k2,1,w0))をキャッシュすることにより、次回の検証用トラップドアtdvに対する検証処理では、キャッシュ値まで遡って検証を行うのみで済む。
また、本実施の形態では、RSA(登録商標)暗号の安全性をベースとする方式を説明した。
図42は、実施の形態1〜3に示すサーバ装置201等のハードウェア資源の一例を示す図である。
なお、図42の構成は、あくまでもサーバ装置201等のハードウェア構成の一例を示すものであり、サーバ装置201等のハードウェア構成は図42に記載の構成に限らず、他の構成であってもよい。
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などは、出力装置の一例である。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
サーバ装置201等の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
Claims (36)
- 複数のユーザに利用される複数の情報処理装置と、
ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置を有し、
前記管理装置は、
利用が許可される世代範囲が許可世代範囲として設定される鍵を生成し、
ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定し、
鍵発行タイミングにおいて、ユーザごとに、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行し、
各情報処理装置は、
最新世代の鍵を受領する度に、受領した最新世代の鍵を記憶し、
ユーザから暗号化データの格納指示があった際に、暗号化データの検索に用いられるインデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザの検索指示時点での最新世代の鍵を用いて、許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代値が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データとを対応付けて記憶し、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象としているインデックス情報に対応付けられている暗号化データであって所定の条件を満たす暗号化データを抽出することを特徴とする情報処理システム。 - 各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化し、暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、許可世代範囲である利用開始世代から当該最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通し、暗号化世代情報と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項1に記載の情報処理システム。 - 各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件と格納対象の暗号化データの識別子を入力し、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化するとともに、暗号化された検索条件を前記暗号化データの識別子を用いて再暗号化し、再暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、許可世代範囲である利用開始世代から当該最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて記憶し、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、暗号化世代情報ごとに、各インデックス情報に対応付けられている識別子を用いて所定の演算を行い、暗号化世代情報が対象としている世代値と共通し、演算により得られた値と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項1に記載の情報処理システム。 - 前記管理装置は、
生成済みの鍵に対して第1の関数及び第2の関数のいずれかを適用して、各鍵間に連続性を持たせながら、前記生成済みの鍵とは別の許可世代範囲が設定されている鍵を生成し、
前記サーバ装置は、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して前記第1の関数と前記第2の関数を適用した所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出することを特徴とする請求項1〜3のいずれかに記載の情報処理システム。 - 前記管理装置は、
最終世代の世代値を決定し、第1世代から最終世代までを許可世代範囲とする鍵を初期鍵として生成し、
前記初期鍵に前記第1の関数を適用して、許可世代範囲の開始世代が前記初期鍵の開始世代と共通し終了世代が前記初期鍵の終了世代の1つ前の世代となる新たな鍵を生成し、生成した鍵に前記第1の関数を適用して、許可世代範囲の開始世代が当該生成済みの鍵の開始世代と共通し終了世代が当該生成済みの鍵の終了世代の1つ前の世代となる新たな鍵を生成し、
前記初期鍵に前記第2の関数を適用して、許可世代範囲の終了世代が前記初期鍵の終了世代と共通し開始世代が前記初期鍵の開始世代の1つ後の世代となる新たな鍵を生成し、生成した鍵に前記第2の関数を適用して、許可世代範囲の終了世代が当該生成済みの鍵の終了世代と共通し開始世代が当該生成済みの鍵の開始世代の1つ後の世代となる新たな鍵を生成し、
生成した鍵に前記第1の関数及び前記第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、許容世代範囲の全パターンに対応する複数の鍵を生成し、生成した複数の鍵を記憶し、
鍵発行時に、ユーザごとに、利用開始世代から鍵発行時における最新世代までの世代範囲に対応する鍵を、記憶している前記複数の鍵の中から抽出し、抽出した鍵を発行することを特徴とする請求項4に記載の情報処理システム。 - 前記管理装置は、
予め、第1世代のみを許可世代範囲とする鍵を初期鍵として生成し、
鍵発行時に、ユーザごとに、利用開始世代から鍵発行時における最新世代までの世代範囲に対応させて、初期鍵又は前記初期鍵から派生する鍵を生成元鍵とし、前記生成元鍵に前記第1の関数を適用して許可世代範囲の開始世代が前記生成元鍵の開始世代と共通し終了世代が前記生成元鍵の終了世代の1つ後の世代となる新たな鍵を生成し、または、前記生成元鍵に前記第2の関数を適用して許可世代範囲の終了世代が前記生成元鍵の終了世代と共通し開始世代が前記生成元鍵の開始世代の1つ後の世代となる新たな鍵を生成し、生成した鍵をユーザに発行することを特徴とする請求項4に記載の情報処理システム。 - 前記管理装置は、
十分大きな素数であるp1及びp2を選び、N=p1×p2とし、e1及びe2としてZN *から(p1−1)(p2−1)と互いに素な数をランダムに選択した場合に、
前記第1の関数を、F1(x)=xe1 mod N とし、
前記第2の関数を、F2(x)=xe2 mod N とし、
(modはモジュロ演算子を表し、ZN *は0からN−1の整数の中でNと互いに素である整数の集合を表す)(F1(x)とF2(x)は、互いに可換である)
最終世代の世代値をqとし、第1世代から最終世代までを許可世代範囲とする初期鍵をk1,qとし、初期鍵k1,qをZN *からランダムに選択し、許可世代範囲の開始世代がi世代であり終了世代がj世代である鍵をki,jとした場合に、
ki,j−1=F1(ki,j)
ki+1,j=F2(ki,j)
による演算を繰り返して、許容世代範囲の全パターンに対応する複数の鍵k1,1からkq,qを生成することを特徴とする請求項5に記載の情報処理システム。 - 前記管理装置は、
各情報処理装置において利用される関数を、
G(x,y)=xy mod N とし、
(G(x,y)は、F1(x)及びF2(x)と互いに可換である)
各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力し、
入力した検索条件をwとし、格納指示時点での最新世代の鍵であって利用開始世代がs世代であり当該最新世代がt世代である鍵をks,tとし、当該最新世代のみを許可世代範囲とする鍵をkt,tとし、当該最新世代の鍵の世代値と前記検索条件の暗号値をtdとした場合に、
kt,t=F2 t−s(ks,t)
td=G(kt,t,w)
(F2 t−sはF2をt−s回適用することを表す。以下においても同様)
により、暗号値tdを生成し、
ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力し、
入力した検索条件をwとし、検索指示時点での最新世代の鍵であって利用開始世代がs世代であり当該最新世代がt世代である鍵をks,tとし、s世代からt世代に対応する暗号化世代情報を集約する集約情報をtds,tとした場合に、
tds,t=G(ks,t,w)
により、集約情報tds,tを生成し、
前記サーバ装置は、
tdi,i=F1 t−i(F2 i−s(tds,t)) (s≦i≦t)
により、集約情報tds,tから、s世代からt世代までの暗号化世代情報tds,sからtdt,tを抽出することを特徴とする請求項7に記載の情報処理システム。 - 各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件とともに格納対象の暗号化データの識別子を入力し、
入力した識別子を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に記載の情報処理システム。 - 各情報処理装置は、
所定のグループに属するユーザに利用され、
前記管理装置は、
前記グループからのユーザの脱退及び所定の条件に合致する新たなユーザの前記グループへの加入を更新イベントとし、
ユーザの脱退又はユーザの加入により更新イベントが発生した場合に、前記グループに所属しているユーザごとに、現在利用されている鍵の次の世代の鍵であって、許可世代範囲を利用開始世代から当該次の世代までの範囲とする鍵を発行することを特徴とする請求項1〜9のいずれかに記載の情報処理システム。 - 前記管理装置は、
前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代である場合に、当該ユーザの加入を更新イベントとし、
当該ユーザの加入により、前記グループに所属しているユーザごとに、現在利用されている鍵の次の世代の鍵であって、許可世代範囲を利用開始世代から当該次の世代までの範囲とする鍵を発行し、前記グループに新たに加入するユーザには、当該次の世代のみを許可世代範囲とする鍵を発行し、
前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代よりも前の世代である場合は、当該ユーザの加入を更新イベントとせず、
前記グループに所属しているユーザには新たな鍵の発行を行わず、前記グループに新たに加入するユーザに、当該ユーザに指定される利用開始世代から現在の最新世代までを許可世代範囲とする鍵を発行することを特徴とする請求項10に記載の情報処理システム。 - 複数のユーザに利用される複数の情報処理装置と、
ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置とを有し、
前記管理装置は、
いずれのユーザ及び情報処理装置に対しても秘密にしている秘密パラメータを前記サーバ装置にのみ通知し、
各世代の鍵を、前記秘密パラメータを用いて生成し、
ユーザごとに鍵の利用が許可される最も前の世代を利用開始世代として指定し、
ユーザごとに、
初回の鍵発行時に、鍵発行時における最新世代の鍵と、利用開始世代から当該最新世代までの鍵を合成して生成した合成鍵を発行し、
2回目以降の鍵発行時は、各回時点での最新世代の鍵を発行し、
各情報処理装置は、
ユーザに対する初回の鍵発行時に、最新世代の鍵と合成鍵を受領し、受領した最新世代の鍵と合成鍵を記憶し、
ユーザに対する2回以降の鍵発行では、鍵発行の度に、最新世代の鍵を受領し、受領した最新世代の鍵と記憶している合成鍵を合成して新たな合成鍵を生成し、受領した最新世代の鍵と生成した新たな合成鍵を記憶し、
ユーザから暗号化データの格納指示があった際に、暗号化データの検索に用いられるインデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザの検索指示時点での最新世代の鍵を用いて、当該最新世代の世代値が暗号化されている暗号化最新世代情報を生成し、検索指示時点での合成鍵を用いて、前記ユーザに指定されている利用開始世代から検索指示時点での最新世代までのn(n≧1)世代の各世代値が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した暗号化最新世代情報と集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
前記管理装置から通知された前記秘密パラメータを記憶し、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データとを対応付けて記憶し、
情報処理装置から検索要求を受信した場合に、受信した検索要求に含まれる暗号化最新世代情報と前記秘密パラメータを用いて、1つ前の世代の世代値が暗号化されている暗号化世代情報を算出し、以降、算出された暗号化世代情報と前記秘密パラメータを用いて1つ前の世代値が暗号化されている暗号化世代情報を算出する処理を繰り返し、検索要求元ユーザの利用開始世代の世代値が暗号化されている暗号化世代情報を算出し、算出した利用開始世代から最新世代の1つ前の世代までの暗号化世代情報と前記暗号化最新世代情報と、前記集約情報において集約されているn個の暗号化世代情報が一致するか否かを判定し、暗号化世代情報が一致する場合に、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象としているインデックス情報に対応付けられている暗号化データであって所定の条件を満たす暗号化データを抽出することを特徴とする情報処理システム。 - 各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化し、暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵と、暗号化データとを対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、当該最新世代の世代値と前記検索条件が暗号化されている暗号化最新世代情報を生成し、検索指示時点での合成鍵と前記検索条件を用いて、前記ユーザに指定されている利用開始世代から検索指示時点での最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した暗号化最新世代情報と集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
暗号化世代情報が一致する場合に、暗号化世代情報ごとに、暗号化世代情報が対象としている世代値と共通する世代値を対象とし、暗号化世代情報と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項12に記載の情報処理システム。 - 各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件と格納対象の暗号化データの識別子を入力し、前記ユーザの格納指示時点での最新世代の鍵を用いて前記検索条件を暗号化するとともに、暗号化された検索条件を前記暗号化データの識別子を用いて再暗号化し、再暗号化により得られた値をインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵と、暗号化データと、前記暗号化データの識別子を対応付けて格納するよう前記サーバ装置に要求し、
ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力するとともに、前記ユーザの検索指示時点での最新世代の鍵と前記検索条件を用いて、当該最新世代の世代値と前記検索条件が暗号化されている暗号化最新世代情報を生成し、検索指示時点での合成鍵と前記検索条件を用いて、前記ユーザに指定されている利用開始世代から検索指示時点での最新世代までのn世代の各世代値と前記検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報を生成し、生成した暗号化最新世代情報と集約情報を含む検索要求を前記サーバ装置に送信し、
前記サーバ装置は、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子を対応付けて記憶し、
暗号化世代情報が一致する場合に、暗号化世代情報ごとに、各インデックス情報に対応付けられている識別子を用いて所定の演算を行い、暗号化世代情報が対象としている世代値と共通する世代値を対象とし、演算により得られた値と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項12に記載の情報処理システム。 - 前記管理装置は、
ユーザに対する初回の鍵発行時に、利用開始世代から当該最新世代までの鍵の積を計算し、計算した鍵の積を合成鍵として発行し、
各情報処理装置は、
ユーザに対する2回以降の鍵発行では、鍵発行の度に、最新世代の鍵を受領し、受領した最新世代の鍵と記憶している合成鍵との積を計算し、計算した鍵の積を新たな合成鍵とすることを特徴とする請求項12〜14のいずれかに記載の情報処理システム。 - 前記管理装置は、
生成済みの鍵に対して所定の鍵生成関数を適用して、各鍵間に連続性を持たせながら、前記生成済みの鍵とは別の世代の鍵を生成し、
前記サーバ装置は、
情報処理装置からの検索要求を受信した場合に、前記暗号化最新世代情報と前記秘密パラメータに対して前記鍵生成関数を適用して、1つ前の世代の世代値が暗号化されている暗号化世代情報を算出し、以降、算出された暗号化世代情報と前記秘密パラメータに対して前記鍵生成関数を適用して1つ前の世代値が暗号化されている暗号化世代情報を算出する処理を繰り返すことを特徴とする請求項12〜15のいずれかに記載の情報処理システム。 - 前記管理装置は、
最終世代の世代値を決定し、最終世代の鍵を初期鍵として生成し、最終世代の鍵と前記秘密パラメータに対して前記鍵生成関数を適用して、最終世代の1つ前の世代の新たな鍵を生成し、生成した鍵と前記秘密パラメータに対して前記鍵生成関数を適用して更に1つ前の世代の鍵を生成し、以降、新たに生成した鍵と前記秘密パラメータに対して前記鍵生成関数を適用する動作を繰り返して、第1世代から最終世代の鍵を生成し、生成した第1世代から最終世代の鍵を記憶し、
鍵発行時に、最新世代に該当する鍵を、記憶している鍵の中から抽出し、抽出した鍵を発行することを特徴とする請求項16に記載の情報処理システム。 - 前記管理装置は、
予め、第1世代の鍵を生成し、
鍵発行時に、鍵発行時点での最新世代に対応させて、前記第1世代の鍵又は前記第1世代の鍵から派生する鍵を生成元鍵とし、前記生成元鍵と前記秘密パラメータに対して前記鍵生成関数を適用して、前記生成元鍵の1つ後の世代の新たな鍵を最新世代の鍵として生成し、生成した最新世代の鍵をユーザに発行することを特徴とする請求項16に記載の情報処理システム - 前記管理装置は、
十分大きな素数であるpを選んだ場合に、
自装置及び前記サーバ装置が用いる関数を、F(x,y)=xy mod p とし、
各情報処理装置が用いる関数を、G(x,y)=xy mod p とし、
(modはモジュロ演算子を表す)(F1(x,y)とG(x,y)は、互いに可換である)
このとき、Gは以下の準同型性を持ち、
G(x1x2,y)=G(x1,y)G(x2,y)という関係を持ち、
秘密パラメータをαとし、秘密パラメータαを巡回群Zp *から、(p−1)と互いに素となるようランダムに選択し、
最終世代の世代値をqとし、最終世代の鍵である初期鍵をkqとし、初期鍵kqをZp *の生成元からランダムに選択し、i世代目の鍵をkiとした場合に、
ki−1=F(ki,α) (1≦i<q)
による演算を繰り返して、第1世代から最終世代までの鍵k1からkqを生成し、
各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件を入力し、
入力した検索条件をwとし、格納指示時点での最新世代の鍵をktとし、当該最新世代の鍵の世代値と前記検索条件の暗号値をtdとした場合に、
td=G(kt,w)
により、暗号値tdを生成し、
ユーザから暗号化データの検索指示があった際に、前記ユーザが指定する検索条件を入力し、
入力した検索条件をwとし、検索指示時点での最新世代の鍵をktとし、s世代目の鍵からt世代目の鍵までを合成した検索指示時点での合成鍵をks,tとし、暗号化最新世代情報をtdtとし、集約情報をtds,tとした場合に、
tdt=G(kt,w)
tds,t=G(ks,t,w)
により、暗号化最新世代情報をtdtと集約情報tds,tを生成し、
前記サーバ装置は、
tdi−1=F(tdi,α)
により、暗号化最新世代情報tdtから、s世代からt−1世代までを対象とする暗号化世代情報tdsからtdt−1を算出することを特徴とする請求項17に記載の情報処理システム。 - 各情報処理装置は、
ユーザから暗号化データの格納指示があった際に、前記ユーザが指定する検索条件とともに格納対象の暗号化データの識別子を入力し、
入力した識別子をidとし、H(x,y)を一方向性関数とし、cを暗号化値tdの再暗号化値とした場合に、
c=H(id,td)
により、再暗号化値cを生成し、生成した再暗号化値cをインデックス情報とし、インデックス情報と、前記ユーザの格納指示時点での最新世代の鍵の世代値と、前記暗号化データと、前記暗号化データの識別子とを対応付けて格納するよう前記サーバ装置に要求し、
前記サーバ装置は、
情報処理装置からの格納要求を受領した場合に、インデックス情報と、鍵の世代値と、暗号化データと、前記暗号化データの識別子とを対応付けて記憶し、
情報処理装置からの検索要求を受信した際に、暗号化世代情報が一致する場合に、
各インデックス情報に対応付けられている識別子をidとし、各暗号化世代情報をtdjとした場合に、暗号化世代情報tdjごとに、
c=H(id,tdj)
を計算し、
演算により得られた値cと共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項19に記載の情報処理システム。 - 各情報処理装置は、
所定のグループに属するユーザに利用され、
前記管理装置は、
前記グループからのユーザの脱退及び所定の条件に合致する新たなユーザの前記グループへの加入を更新イベントとし、
ユーザの脱退又はユーザの加入により更新イベントが発生した場合に、前記グループに所属しているユーザに、現在利用されている鍵の次の世代の鍵を最新世代の鍵として発行することを特徴とする請求項12〜20のいずれかに記載の情報処理システム。 - 前記管理装置は、
前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代である場合に、当該ユーザの加入を更新イベントとし、
当該ユーザの加入により、前記グループに所属しているユーザに、現在利用されている鍵の次の世代の鍵を最新世代の鍵として発行し、前記グループに新たに加入するユーザには、当該次の世代の鍵を最新世代の鍵及び合成鍵として発行し、
前記グループに新たに加入するユーザの利用開始世代が当該ユーザ加入後の最新世代よりも前の世代である場合は、当該ユーザの加入を更新イベントとせず、
前記グループに所属しているユーザには新たな鍵の発行を行わず、前記グループに新たに加入するユーザに、現在の最新世代の鍵を発行するとともに、当該ユーザに指定される利用開始世代の鍵から現在の最新世代の鍵までを合成した合成鍵を発行することを特徴とする請求項21に記載の情報処理システム。 - 複数のユーザに利用される複数の情報処理装置と通信可能であり、ユーザの要求に基づいて暗号化データを記憶し、ユーザの要求に基づいて記憶している暗号化データの検索を行うサーバ装置と、
前記サーバ装置に対して秘密にしている鍵を更新イベントの発生時に新たな世代値を設けて更新し、更新イベント発生時を含む所定の鍵発行タイミングにおいてユーザに鍵を発行する管理装置とを有し、
前記管理装置は、
ユーザのカテゴリーとして、所定のグループに所属し前記サーバ装置の暗号化データに対する検索が許容される所属ユーザと、前記グループから脱退し前記サーバ装置の暗号化データに対する検索が禁止される禁止ユーザと、前記グループから脱退したが脱退前に前記サーバ装置に格納された暗号化データに対しては検索が許容される限定ユーザが設けられ、
前記グループからのユーザの脱退を前記更新イベントの一つとし、
鍵の世代値は、前記禁止ユーザが発生した際に値が更新される禁止ユーザ対応値と前記限定ユーザが発生した際に値が更新される限定ユーザ対応値を構成要素とし、
いずれかのユーザが前記グループから脱退し、脱退したユーザが前記禁止ユーザに該当する場合に、前記所属ユーザに対しては所属ユーザ向けの最新世代の鍵を発行し、前記脱退ユーザに対しては脱退ユーザ向けの最新世代の鍵を発行し、前記所属ユーザ向けの最新世代の鍵は、前記禁止ユーザ対応値が更新された値となり前記限定ユーザ対応値が当該脱退前の値のままである世代値が設定されている鍵であり、前記限定ユーザ向けの最新世代の鍵は、前記禁止ユーザ対応値が更新された値となり前記限定ユーザ対応値が当該限定ユーザの脱退時点の値のままである世代値が設定されている鍵であり、
いずれかのユーザが前記グループから脱退し、脱退したユーザが前記限定ユーザに該当する場合に、前記所属ユーザに対して、前記限定ユーザ対応値が更新された値となり前記禁止ユーザ対応値が当該脱退前の値のままである世代値が設定されている最新世代の鍵を発行し、
前記サーバ装置は、
情報処理装置から、暗号化データの検索に用いられるインデックス情報と、前記情報処理装置のユーザの格納要求時点での最新世代の鍵に設定されている禁止ユーザ対応値及び限定ユーザ対応値と、暗号化データとが含まれる格納要求を受領した場合に、前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データとを対応付けて記憶し、
情報処理装置から、前記情報処理装置のユーザの検索要求時点での最新世代の鍵に設定されている禁止ユーザ対応値及び限定ユーザ対応値が暗号化されている暗号化世代情報を含む暗号化データの検索要求を受信した場合に、
前記暗号化世代情報より抽出される禁止ユーザ対応値が実際の最新世代の禁止ユーザ対応値と一致しない場合は暗号化データの検索が行われず、前記暗号化世代情報より抽出される禁止ユーザ対応値が実際の最新世代の禁止ユーザ対応値と一致する場合は、前記暗号化世代情報から抽出される限定ユーザ対応値以前の限定ユーザ対応値のインデックス情報が対応付けられている暗号化データに限定した検索が行われることを特徴とする情報処理システム。 - 前記管理装置は、
所属ユーザごとに、鍵の利用が許可される最も前の禁止ユーザ対応値と最も前の限定ユーザ対応値の組み合わせを利用開始世代として指定し、
鍵発行タイミングにおいて、所属ユーザ又は限定ユーザごとに、最新世代の鍵であって、ユーザに指定されている利用開始世代から当該最新世代までが許可世代範囲として設定されている鍵を発行し、
前記サーバ装置は、
情報処理装置から、前記情報処理装置のユーザの検索要求時点での最新世代の鍵を用いて生成され、前記ユーザの許可世代範囲である利用開始世代から当該最新世代までのn(n≧1)世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値が暗号化されているn個の暗号化世代情報が集約されている集約情報が含まれる検索要求を受信した場合に、
前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、
抽出した暗号化世代情報ごとにインデックス情報との照合を行って暗号化データの検索を行うことを特徴とする請求項23に記載の情報処理システム。 - 前記サーバ装置は、
情報処理装置から、前記ユーザにより指定された検索条件が暗号化されているインデックス情報が含まれる格納要求を受領した場合に、前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データとを対応付けて記憶し、
情報処理装置から、前記n世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値と前記ユーザにより指定された検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報が含まれる検索要求を受信した場合に、
前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、
抽出した暗号化世代情報ごとにインデックス情報との照合を行い、暗号化世代情報と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項24に記載の情報処理システム。 - 前記サーバ装置は、
情報処理装置から、前記ユーザにより指定された検索条件と格納対象の暗号化データの識別子が暗号化されているインデックス情報と前記識別子が含まれる格納要求を受領した場合に、前記インデックス情報と、前記禁止ユーザ対応値及び限定ユーザ対応値と、前記暗号化データと、前記識別子とを対応付けて記憶し、
情報処理装置から、前記n世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値と前記ユーザにより指定された検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報が含まれる検索要求を受信した場合に、
前記集約情報に対して所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出し、
抽出した暗号化世代情報ごとに、各インデックス情報に対応付けられている識別子を用いて所定の演算を行い、演算により得られた値と共通する値のインデックス情報を選択し、選択したインデックス情報に対応付けられている暗号化データを抽出することを特徴とする請求項24に記載の情報処理システム。 - 前記管理装置は、
生成済みの鍵に対して第1の関数及び第2の関数のいずれかを適用して、各鍵間に連続性を持たせながら、前記生成済みの鍵とは別の禁止ユーザ対応値又は限定ユーザ対応値が設定されている鍵を生成し、
前記サーバ装置は、
情報処理装置からの検索要求を受信した場合に、受信した検索要求に含まれる前記集約情報に対して前記第1の関数と前記第2の関数を適用した所定の演算を行い、前記集約情報からn個の暗号化世代情報を抽出することを特徴とする請求項24〜26のいずれかに記載の情報処理システム。 - 前記管理装置は、
禁止ユーザ対応値及び限定ユーザ対応値のいずれもが先頭値となっている先頭世代の鍵と各世代の鍵との間に連続性を持たせるようにして第1の関数及び第2の関数を用いて各世代の鍵を生成し、
前記先頭世代の鍵と、いずれのユーザ及び情報処理装置に対しても公開されている公開値とを用いて、先頭世代暗号値を生成し、生成した先頭世代暗号値を前記サーバ装置に通知し、
前記サーバ装置は、
情報処理装置から、前記先頭世代暗号値との照合に用いられる照合用情報が含まれる検索要求を受信した場合に、前記照合用情報に対して前記第1の関数と前記第2の関数を適用して、前記照合用情報から前記先頭世代暗号値に一致する値が検出できるか否かを判定し、前記照合用情報から前記先頭世代暗号値に一致する値が検出できない場合には暗号化データの検索を行わないことを特徴とする請求項23〜27のいずれかに記載の情報処理システム。 - 前記管理装置は、
限定ユーザ対応値の最終値及び禁止ユーザ対応値の最終値を決定し、限定ユーザ対応値が最終値となり禁止ユーザ対応値が最終値となる最終世代の鍵を初期鍵として生成し、
前記初期鍵に第1の関数を適用して、禁止ユーザ対応値が前記初期鍵の禁止ユーザ対応値と共通し限定ユーザ対応値が前記初期鍵の限定ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、生成した鍵に前記第1の関数を適用して、禁止ユーザ対応値が当該生成済みの鍵の禁止ユーザ対応値と共通し限定ユーザ対応値が当該生成済みの鍵の限定ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、
前記初期鍵に第2の関数を適用して、限定ユーザ対応値が前記初期鍵の限定ユーザ対応値と共通し禁止ユーザ対応値が前記初期鍵の禁止ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、生成した鍵に前記第2の関数を適用して、限定ユーザ対応値が当該生成済みの鍵の限定ユーザ対応値と共通し禁止ユーザ対応値が当該生成済みの鍵の禁止ユーザ対応値の1つ前の世代の値となる新たな鍵を生成し、
生成した鍵に第1の関数及び第2の関数のいずれかを適用して新たな鍵を生成する動作を繰り返して、限定ユーザ対応値及び禁止ユーザ対応値の組み合わせの全パターンに対応する複数の鍵を生成し、生成した複数の鍵を記憶し、
鍵発行時に、所属ユーザ又は限定ユーザごとに、対応する限定ユーザ対応値及び禁止ユーザ対応値の組み合わせの鍵を、記憶している前記複数の鍵の中から抽出し、抽出した鍵を発行することを特徴とする請求項27に記載の情報処理システム。 - 前記管理装置は、
予め、限定ユーザ対応値及び禁止ユーザ対応値のいずれもが先頭値となっている先頭世代の鍵を初期鍵として生成し、
鍵発行時に、所属ユーザ又は限定ユーザごとに、対応する限定ユーザ対応値及び禁止ユーザ対応値の組み合わせに基づき、初期鍵又は前記初期鍵から派生する鍵を生成元鍵とし、前記生成元鍵に前記第1の関数を適用して禁止ユーザ対応値が前記生成元鍵の禁止ユーザ対応値と共通し限定ユーザ対応値が前記生成元鍵の限定ユーザ対応値の1つ後の世代の値となる新たな鍵を生成し、または、前記生成元鍵に前記第2の関数を適用して限定ユーザ対応値が前記生成元鍵の限定ユーザ対応値と共通し禁止ユーザ対応値が前記生成元鍵の禁止ユーザ対応値の1つ後の世代の値となる新たな鍵を生成し、生成した鍵を所属ユーザ又は限定ユーザに発行することを特徴とする請求項27に記載の情報処理システム。 - 前記管理装置は、
十分大きな素数であるp1及びp2を選び、N=p1×p2とし、e1及びe2としてZN *から(p1−1)(p2−1)と互いに素な数をランダムに選択した場合に、
前記第1の関数を、F1(x)=xe1 mod N とし、
前記第2の関数を、F2(x)=xe2 mod N とし、
(modはモジュロ演算子を表し、ZN *は0からN−1の整数の中でNと互いに素である整数の集合を表す)(F1(x)とF2(x)は、互いに可換である)
前記禁止ユーザ対応値の最終値をq1とし、前記限定ユーザ対応値の最終値をq2とし、前記禁止ユーザ対応値が最終値となり前記限定ユーザ対応値が最終値となる最終世代の鍵である初期鍵をkq1,q2とし、初期鍵kq1,q2をZN *からランダムに選択し、前記禁止ユーザ対応値がi世代であり前記限定ユーザ対応値がj世代である鍵をki,jとした場合に、
ki,j−1=F1(ki,j)
ki−1,j=F2(ki,j)
による演算を繰り返して、前記禁止ユーザ対応値及び前記限定ユーザ対応値の組み合わせの全パターンに対応する複数の鍵k1,1からkq1,q2を生成することを特徴とする請求項29に記載の情報処理システム。 - 前記管理装置は、
各情報処理装置において利用される関数を、
G(x,y)=xy mod N とし、
(G(x,y)は、F1(x)及びF2(x)と互いに可換である)、
前記サーバ装置は、
情報処理装置から、前記情報処理装置のユーザの検索要求時点での最新世代の鍵に基づいて生成された、前記n世代の各世代における禁止ユーザ対応値及び限定ユーザ対応値と前記情報処理装置のユーザにより指定された検索条件が暗号化されているn個の暗号化世代情報が集約されている集約情報であって、
前記ユーザの検索要求時点での最新世代の鍵が、禁止ユーザ対応値がs世代であり限定ユーザ対応値がt世代である鍵ks,tであり、前記検索条件がwであり、
tds,t=G(ks,t,w)
により生成された集約情報tds,tが含まれる検索要求を受信した場合に、
tdi,j−1=F1(tdi,j)
tdi−1,j=F2(tdi,j)
により、集約情報tds,tから、j≦tを満たす範囲で暗号化世代情報tdi,jを抽出することを特徴とする請求項31に記載の情報処理システム。 - 前記サーバ装置は、
情報処理装置から、前記検索条件と格納対象の暗号化データの識別子が暗号化されているインデックス情報であって、
前記ユーザの格納要求時点での最新世代の鍵が、禁止ユーザ対応値が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に記載の情報処理システム。 - 請求項1〜33のいずれかに記載の管理装置。
- 請求項1〜33のいずれかに記載のサーバ装置。
- 請求項1〜22のいずれかに記載の情報処理装置。
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)
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)
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 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
-
2010
- 2010-01-14 JP JP2010005750A patent/JP5441726B2/ja not_active Expired - Fee Related
Patent Citations (3)
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)
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)
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 |