説明

暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体

【課題】例えば部分一致検索が可能な検索可能暗号技術を提供する。
【解決手段】暗号情報Cに、当たりか否かを識別可能な情報Rと、情報Rを登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、検索要求側で、検索用キーワードを用いて、情報Rを述語暗号方式により復号するための復号鍵kを生成し、検索代行側で、述語暗号方式に従って情報Rを復号鍵kで復号し、得られた情報が情報Rに一致するか否かを判定する。述語暗号方式における述語論理は、部分一致検索方式に対応して構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化された情報(以下、暗号情報という)に対するキーワード検索を行うことができる検索可能暗号技術に関し、より詳しくは、完全一致検索以外のキーワード検索(例えば部分一致検索)も可能な検索可能暗号技術に関する。
【背景技術】
【0002】
暗号情報に対して当該暗号情報を復号することなくキーワード検索を行い、この検索結果を得る検索可能暗号技術としてPEKS(Public-key Encryption with Keyword Search)が知られている(非特許文献1、2参照)。例えば非特許文献2に開示されるPEKSは、暗号情報からはどのID(identification)で暗号化したかを知ることのできないIDベース暗号(anonymouse IBE)を利用することでPEKSを実現している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】D. Boneh, G. Di Crescenzo, R. Ostrovsky, and G. Persiano, "Public key encryption with keyword search", in proceedings of Eurocrypt 2004, LNCS 3027, pp. 506-522, 2004. [平成22年1月12日検索], インターネット <URL : http://crypto.stanford.edu/~dabo/papers/encsearch.pdf>
【非特許文献2】M. Abdalla, M. Bellare, D. Catalano, E. Kiltz, T. Kohno, T. Lange, J. Malone-Lee, G. Neven, P. Paillier, and H. Shi, "Searchable encryption revisited: Consistency properties, relation to anonymous IBE, and extensions", Journal of Cryptology, 21(3), July 2008. [平成22年1月12日検索], インターネット<URL : http://www.cs.washington.edu/homes/yoshi/papers/PEKS/PEKS.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では、暗号情報を例えばサーチエンジンに登録する際に予め指定されたキーワードと、検索の際に用いる検索用キーワードとが最初から最後まで完全に一致していることが検索のマッチングを意味するため、完全一致検索しかできなかった。
【0005】
そこで本発明は、キーワードの完全一致検索に加えて完全一致検索以外のキーワード検索(例えば部分一致検索)も可能な検索可能暗号技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のキーワード検索システムは、少なくとも検索要求装置と検索代行装置を含み、文字列を含む情報を暗号化して得られた暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムであって、検索対象となるキーワードを登録用キーワードとして、暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、検索要求装置は、検索用キーワードを用いて、情報Rを述語暗号方式により復号するための復号鍵kを生成する鍵生成部と、復号鍵kを検索代行装置へ送信する送信部とを含み、検索代行装置は、復号鍵kを受信する受信部と、述語暗号方式に従って情報Rを復号鍵kで復号し、得られた情報が情報Rに一致するか否かを判定する復号判定部とを含む。
【0007】
具体例として、情報Rは、登録用キーワードから生成される述語暗号方式の属性で情報Rを暗号化して得られ、復号鍵kは、検索用キーワードから生成される述語暗号方式の述語から生成される。
【0008】
例えば、述語暗号方式は、属性ベクトルと述語ベクトルとの標準内積により述語論理の真偽が与えられる内積型述語暗号方式であるとし、この場合、属性は、登録用キーワードの最大文字数をrとして、述語論理に最大d−1回の論理和が許される場合に、r個の属性変数X,…,Xからなる次数d以下の単項式をすべて辞書式順序で並べた順に各成分とした変数ベクトルXr,dに登録用キーワードに含まれる文字を設定して得られる属性ベクトルであり、述語は、述語論理を属性変数と検索用キーワードに含まれる文字を用いて多項式で表現した述語多項式の係数を、変数ベクトルXr,dの成分に対応する順に並べたものを成分として持つ述語ベクトルである。
【0009】
述語多項式は検索方式に依存して決定され、rdi,j(1≦i,j≦r)を乱数、r文字の登録用キーワードWのi文字目の文字をw(1≦i≦r)、t文字の検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)として、
《1》検索方式が完全一致検索方式である場合、述語多項式は、
【数1】


で与えられ、
《2》検索方式が前方一致検索方式である場合、述語多項式は、
【数2】


で与えられ、
《3》検索方式が後方一致検索方式である場合、述語多項式は、
【数3】


で与えられ、
《4》検索方式が部分一致検索方式である場合、述語多項式は、
【数4】


で与えられる。
【0010】
あるいは、r文字の登録用キーワードWのi文字目の文字をw(1≦i≦r)、ただし、1文字目wを文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目wmax+1を文字列終端記号EDとし、部分キーワードW(1≦i≦r)をW=wi+1…w‖nullとし、ただし、nullはi−1個のnullを表し、Wのj番目の文字をwi,jと表すこととし、t文字の検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)とし、ただし、1文字目sを文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目smax+1を文字列終端記号EDとして、属性ベクトルは、r個の部分キーワードWに対応してr個生成され、暗号情報Cには、当たりか否かを識別可能なr個の情報R(以下、R[i](1≦i≦r)とする)と、当該情報R[i]を部分キーワードWで暗号化して得られるr個の情報R(以下、R[i](1≦i≦r)とする)との組である検索用情報C(以下、C[i]=(R[i],R[i])(1≦i≦r)とする)が添付されており、述語多項式は検索方式に依存して決定され、rdi,j(1≦i,j≦r)を乱数とし、
《1》検索方式が完全一致検索方式である場合、述語多項式は、
【数5】


で与えられ、
《2》検索方式が前方一致検索方式である場合、述語多項式は、
【数6】


で与えられ、
《3》検索方式が後方一致検索方式である場合、述語多項式は、
【数7】


で与えられ、
《4》検索方式が部分一致検索方式である場合、述語多項式は、
【数8】


で与えられ、
復号判定部は、1≦i≦rの各iについて、情報R[i]を復号鍵kで復号し、得られた情報が情報R[i]に一致するか否かを判定する。
【0011】
あるいは、r文字の登録用キーワードWのi文字目の文字をw(1≦i≦r)、ただし、1文字目wを文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目wmax+1を文字列終端記号EDとし、部分キーワードW(1≦i≦r)をW=wi+1…w‖nullとし、ただし、nullはi−1個のnullを表し、Wのj番目の文字をwi,jと表すこととし、t文字の検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)とし、ただし、1文字目sを文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目smax+1を文字列終端記号EDとして、述語多項式は検索方式に依存して決定され、rdi,j(1≦i,j≦r)を乱数とし、
《1》検索方式が完全一致検索方式である場合、述語多項式は、u個(u=1)の述語多項式
【数9】


で与えられ、
《2》検索方式が前方一致検索方式である場合、述語多項式は、u個(u=1)の述語多項式
【数10】


で与えられ、
《3》検索方式が後方一致検索方式である場合、述語多項式は、u個(u=r−t+2)の述語多項式
【数11】


で与えられ、
《4》検索方式が部分一致検索方式である場合、述語多項式は、u個(u=r−t+3)の述語多項式
【数12】


で与えられ、
復号鍵kは、u個の述語多項式に対応してu個生成され(以下、これをk[c](1≦c≦u)とする)、復号判定部は、1≦c≦uの各cについて、情報Rを復号鍵k[c]で復号し、得られた情報が情報Rに一致するか否かを判定する。
【0012】
本発明のキーワード検索方法は、少なくとも検索要求装置と検索代行装置を含み、文字列を含む情報を暗号化して得られた暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムおけるキーワード検索方法であって、検索対象となるキーワードを登録用キーワードとして、暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、検索要求装置の鍵生成部が、検索用キーワードを用いて、情報Rを述語暗号方式により復号するための復号鍵kを生成する鍵生成ステップと、検索要求装置の送信部が、復号鍵kを検索代行装置へ送信する送信ステップと、検索代行装置の受信部が、復号鍵kを受信する受信ステップと、検索代行装置の復号判定部が、述語暗号方式に従って情報Rを復号鍵kで復号し、得られた情報が情報Rに一致するか否かを判定する復号判定ステップとを有する。
【0013】
また本発明の検索要求装置は、検索対象となるキーワードを登録用キーワードとして、文字列を含む情報を暗号化して得られた暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、少なくとも検索要求装置と検索代行装置を含み、暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムに含まれる検索要求装置であって、検索用キーワードを用いて、情報Rを述語暗号方式により復号するための復号鍵kを生成する鍵生成部と、復号鍵kを検索代行装置へ送信する送信部とを含む。
【0014】
また本発明の検索代行装置は、検索対象となるキーワードを登録用キーワードとして、文字列を含む情報を暗号化して得られた暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、少なくとも検索要求装置と検索代行装置を含み、暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムに含まれる検索代行装置であって、検索用キーワードを用いて生成された、情報Rを述語暗号方式により復号するための復号鍵kを、検索要求装置から受信する受信部と、述語暗号方式に従って情報Rを復号鍵kで復号し、得られた情報が情報Rに一致するか否かを判定する復号判定部とを含む。
【0015】
また、本発明の検索要求装置としてコンピュータを機能させるプログラムによって、コンピュータを検索要求装置として作動処理させることができるところ、このようなプログラムを記録した、コンピュータによって読み取り可能なプログラム記録媒体によって、他のコンピュータを検索要求装置として機能させることや、プログラムを流通させることなどが可能になる。同様に、本発明の検索代行装置としてコンピュータを機能させるプログラムによって、コンピュータを検索代行装置として作動処理させることができるところ、このようなプログラムを記録した、コンピュータによって読み取り可能なプログラム記録媒体によって、他のコンピュータを検索代行装置として機能させることや、プログラムを流通させることなどが可能になる。
【発明の効果】
【0016】
本発明に拠れば、暗号情報Cに、当たりか否かを識別可能な情報Rと、当該情報Rを登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、検索要求側で、検索用キーワードを用いて、情報Rを述語暗号方式により復号するための復号鍵kを生成し、検索代行側で、述語暗号方式に従って情報Rを復号鍵kで復号し、得られた情報が情報Rに一致するか否かを判定するところ、検索方式に対応した述語論理の構成により、キーワードの完全一致検索に加えて完全一致検索以外のキーワード検索(例えば部分一致検索)も可能となっている。
【図面の簡単な説明】
【0017】
【図1】実施形態に関るキーワード検索システムの構成図。
【図2】実施形態に関るキーワード検索方法の処理手順を示す図。
【図3】変形例1に関るキーワード検索方法の処理手順を示す図。
【図4】変形例2に関るキーワード検索方法の処理手順を示す図。
【図5】実施形態に関る暗号情報生成装置、検索要求装置、検索代行装置、保管装置の機能ブロック図。
【発明を実施するための形態】
【0018】
図面を参照して本発明の実施形態を説明する。
なお、以下に説明する情報処理では、文字列を含む情報が暗号化の対象となるが、暗号処理の実際では、人間が意味内容を認識可能なテキスト情報である文字そのものが暗号化されるのではなく、例えば当該文字に割り当てられている文字コード情報(EUC-JP、Shift_JIS、UTF-8などのバイト表現)が暗号化の対象となる。従って、後述の説明において例えば変数Xに文字wを代入ないし設定する(X=w)とは、テキスト情報としての文字wを変数Xに代入ないし設定することではなく、文字コード情報としての文字wを変数Xに代入ないし設定することと理解するべきである。このことは暗号処理の常套手段であるから、その詳細な説明を省略する。また、この明細書では、ベクトルの表記として慣用的にベクトルであることを示す記号“→”を省略している場合がある。従って、或る記号がベクトルであるか否かは明細書全体の記載から合理的に理解されたい。
【0019】
[キーワード検索システム]
この実施形態のキーワード検索システム1は、図1に示すように、暗号情報生成装置100と、検索要求装置200と、検索代行装置300と、保管装置400とを少なくとも含んで構成される。これらの各装置は、例えばインターネットである通信網5を介して相互に通信可能とされている。
【0020】
キーワード検索システム1におけるキーワード検索処理を、図2を参照しながら叙述する。各装置の機能構成については、図5を参照されたい。
【0021】
《暗号情報生成プロセス》
暗号情報生成装置100の暗号情報生成部101は、文字列を含む情報Mを暗号化して暗号情報Cを得る(ステップS1)。この暗号方式(Enc,Dec)に限定はない。この暗号方式として、例えば共通鍵暗号方式や公開鍵暗号方式を利用できる。共通鍵暗号方式の場合、情報Mは、暗号情報生成装置100と検索装置200との間で共有される共通鍵で暗号化される。また、公開鍵暗号方式の場合、情報Mは検索装置200の公開鍵で暗号化される。つまり、暗号情報Cを得るための情報処理は、暗号化アルゴリズムEncに従い、C=Enc(M)である。
【0022】
暗号情報生成装置100の検索用情報生成部102は、検索が当たりか否かを識別可能な情報Rを任意に設定し(例えば情報Rに数値としてのゼロを設定する)、この情報Rを登録用キーワードWで述語暗号方式により暗号化して情報Rを得る(ステップS2)。登録用キーワードは、例えばユーザによって予め設定される、検索対象となるキーワードである。検索用情報CはC=(R,R)である。情報Rを得る暗号化処理は例えば内積型述語暗号方式によって実現される。内積型述語暗号方式の詳細について、例えば参考文献Aを参照されたい。
(参考文献A)T. Okamoto and K. Takashima, "Hierarchical predicate encryption for inner-products", In ASIACRYPT, pp.214-231, 2009.
【0023】
ここでは、内積型述語暗号方式を用いた暗号化処理の一例を説明する。
述語暗号は、送信者による暗号化の過程で暗号メッセージに或る情報Gが組み込まれ、当該情報Gと特定の関係を満たす情報Hを持つ受信者が、暗号メッセージの復号や、メッセージを知ることなくメッセージに関する情報を取得することができる方式である。送信者は、暗号化の際に、必ずしも受信者の持つ情報Hを知っている必要はない。また、送信者は、必ずしも、暗号化する前に受信者を特定している必要もない。送信者は、自由に、能動的に、主導権を持って、情報Gを決めることができる。講学的に、情報Gは属性I(変数)として、情報Hは述語論理f(命題関数、ブール関数)として表される。復号に際し、情報Gと情報Hとが満たすべき特定の関係は、例えばf(I)=1である。内積型述語暗号方式では、属性ベクトルと述語ベクトルとの標準内積により述語論理の真偽が与えられる。ここでは、述語論理を多変数多項式によって表現する。この多変数多項式を述語多項式とも呼ぶ。属性を表す変数を属性変数と呼ぶ。
【0024】
例えば3個の属性変数X,X,Xが、(X=wまたはX=w、かつX=w)の場合にのみ1を返す述語多項式p(X,X,X)は乱数rdを用いて式(1)で表される。式(1)では論理和ORは積の演算で論理積ANDは和の演算で表されている。
p(X,X,X)=(X−w)(X−w)+rd(X−w) (1)
【0025】
r個の属性変数X,X,…,Xに対してd−1回の論理和を扱うためには、X,X,…,Xからなる次数d以下の単項式をすべて用意する必要がある。この単項式を1を含めて辞書式順序で並べた順に各成分としたベクトルを、属性変数X,X,…,Xに対するd次の変数ベクトルと呼び、Xr,dと表す。辞書式順序とは、d個の同一の順序集合{1,X,X,…,X}の直積集合に順序を導入したものである。辞書式順序は例えば素朴集合論において論じられ公知であるから、これ以上の詳細な説明は行わない。
【0026】
r文字の登録用キーワードWのi文字目の文字をw(1≦i≦r)とする。属性変数X(1≦i≦r)について、X=wとする。このとき、ベクトルxが変数ベクトルXr,d上の属性ベクトルxであるとは、式(2)を満足する場合をいう。なお、この実施形態ではrはシステム仕様として固定値(1≦rを満たす整数)に設定される。登録用キーワードWの長さ(文字数)がrに満たない場合は、rに達するまでnull文字でパディングする。具体例として、r=2,d=2,Xr,d=(1,X,X,X,X,X)の場合、属性ベクトルxはx=(1,w,w,w,w,w)となる。
【数13】

【0027】
r個の属性変数X,X,…,Xで最大d回の論理和が許されているとき、述語論理を表す属性変数からなる多変数多項式p(Xα,…,Xβ)(1≦α≦β≦r)を、変数ベクトルXr,d上の述語多項式と呼ぶ。
【0028】
この変数ベクトルXr,d上の述語多項式p(Xα,…,Xβ)を、変数ベクトルXr,dと述語ベクトルvとの標準内積<Xr,d,v>と考えて、p(Xα,…,Xβ)の係数を、変数ベクトルXr,dの成分に対応する順に述語ベクトルvの成分とする。述語ベクトルvのこれら以外の成分を0とする。この述語ベクトルを変数ベクトルXr,d上の述語ベクトルとも呼ぶ。
【0029】
dは1≦d≦rを満たす固定値にシステム仕様として設定されるが、この実施形態では、d=rとする。つまり、述語多項式において登録用キーワードの最大文字数相当の論理和を許容する。
【0030】
さて、内積型述語暗号方式を用いた暗号化処理の一例は次のとおりである。検索用情報生成部102は、式(3)に従って登録用キーワードWから属性ベクトルxを生成する。この式(3)は、変数ベクトルXr,rにおいてX=w(1≦i≦r)とすることを意味する。
【数14】

【0031】
x=(x,x,…,x)∈Fqnとする。つまり、x(1≦i≦n)はn次元直積Fqnの元とする。Fqは有限体であり、qは素数または素数の冪乗値である。検索用情報生成部102は、δ,δ,ζをFqからランダムに選択し、式(4)を計算することにより、情報Rを得る。情報RはR=(cipher1,cipher2)である。
【数15】

【0032】
公開パラメータは、例えば位数qの巡回群G1,G2,GTの生成元g1,g2,gT、非退化性を持つ双線形写像e:G1×G2→GT(但し、e(g1,g2)=gT)、位数q、(n+3)次元のベクトル空間Vの直交基底Bを含む。秘密鍵は、双対ベクトル空間Vの直交基底Bを含む。代数構造を有限体Fqとする場合、qは素数または素数の冪乗値である。双線形写像eは例えばTateペアリングやWeilペアリングである。
【0033】
直交基底Bおよび直交基底Bについて説明を加える。
(n+3)次元のベクトル空間Vの任意の元が、式(5)のように巡回群G1の(n+3)次元直積G1n+3の元として表されるとする。(n+3)次元のベクトル空間Vの任意の元は、(n+3)次元のベクトル空間Vの標準基底Aを用いて式(6)のように表すこともできる。ただし、aiは(n+3)次元直積G1n+3の元、ziは(n+3)次元直積Fqn+3の元とする。また、1は加法単位元とする。
【数16】

【0034】
直交基底Bは、式(7)のように、標準基底Aに(n+3)次正方行列Xを作用させたものとして得られる。記号Tは転置を表す。なお、行列Xは秘密鍵と同様に秘密とされる。
【数17】

【0035】
同様に、ベクトル空間Vと双対な双対ベクトル空間Vの任意の元が、式(8)のように巡回群G2の(n+3)次元直積G2n+3の元として表されるとする。双対ベクトル空間Vの任意の元は、双対ベクトル空間Vの標準基底Aを用いて式(9)のように表すこともできる。ただし、aiは(n+3)次元直積G2n+3の元、yiは(n+3)次元直積Fqn+3の元とする。また、1は加法単位元とする。
【数18】

【0036】
直交基底Bは、式(10)のように、標準基底Aに(n+3)次正方行列T(X-1)を作用させたものとして得られる。記号Eは単位行列を表す。
【数19】

【0037】
暗号情報生成装置100の送信部108は、暗号情報Cと検索用情報Cとを一組として保管装置400へ送信する(ステップS3)。保管装置400の受信部409は、暗号情報と検索用情報との組(C,C)を受信する(ステップS4)。保管装置400の記憶部401には、通常、暗号情報生成装置100から受信した複数の(C,C)が記憶されている。さらに言えば、保管装置400の記憶部401には、一般的に、複数の暗号情報生成装置から受信した複数の(C,C)が記憶されている。各組(C,C)には固有のインデックスが割り当てられている。
【0038】
《検索要求プロセス》
検索要求装置200の鍵生成部201は、上記秘密鍵(直交基底B)と、例えばユーザによって入力された検索用キーワードSおよびユーザによって指定された検索方式$の述語論理とを用いて、検索用情報Cに含まれる情報Rを復号するための復号鍵kを生成する(ステップS5)。上記秘密鍵(直交基底B)は検索要求装置200の秘密鍵である。
【0039】
復号鍵kを得るための情報処理は、暗号情報生成装置100の検索用情報生成部102が実施した述語暗号方式に対応する鍵生成アルゴリズムに従う。この実施形態では、復号鍵kを得るための情報処理は、内積型述語暗号方式によって実現される。具体的には、鍵生成部201は、まず、変数ベクトルXr,r上の述語ベクトルvを生成する。
【0040】
t文字の検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)とする。もし、t<rならば、s=0(t<i≦r)とする。鍵生成部201は、後述するように検索方式$に対応するXr,r上の述語多項式p(Xα,…,Xβ)を決定して、Xr,r上の述語ベクトルvを求める。Xr,r上の述語多項式p(Xα,…,Xβ)からXr,r上の述語ベクトルvを求める方法は既述のとおりである。
【0041】
ここで各検索方式$の述語多項式について説明を加える。rdi,j(1≦i,j≦r)は乱数である。
【0042】
《1》完全一致検索方式(cm)
完全一致検索方式は、任意のi(1≦i≦r)についてw=sが成立する場合を検索する検索方式である。
完全一致検索方式における述語多項式p(Xα,…,Xβ)は、式(11)で与えられる。
【数20】

【0043】
《2》前方一致検索方式(fm)
前方一致検索方式は、任意のi(1≦i≦t)についてw=sが成立する場合を検索する検索方式である。
前方一致検索方式における述語多項式p(Xα,…,Xβ)は、式(12)で与えられる。
【数21】

【0044】
《3》後方一致検索方式(bm)
後方一致検索方式は、任意のi(r−t+1≦i≦r)についてw=sが成立する場合を検索する検索方式である。
後方一致検索方式における述語多項式p(Xα,…,Xβ)は、式(13)で与えられる。
【数22】

【0045】
《4》部分一致検索方式(pm)
部分一致検索方式は、或るjが存在して(j≦i≦t+j−1≦r)を満たすすべてのiについてw=sが成立する場合を検索する検索方式である。
部分一致検索方式における述語多項式p(Xα,…,Xβ)は、式(14)で与えられる。
【数23】

【0046】
《5》完全不一致検索方式(ncm)
完全不一致検索方式は、すべてのi(1≦i≦r)についてw=sが成立しない場合を検索する検索方式である。これは完全一致検索方式でヒットした検索結果の補集合として得られる。
【0047】
《6》「含まない」検索方式(npm)
「含まない」検索方式は、j≦i≦t+j−1≦rを満たすすべてのiについてw=sが成立するようなjが存在しない場合を検索する検索方式である。これは部分一致検索方式でヒットした検索結果の補集合として得られる。
【0048】
次に、鍵生成部201は、述語ベクトルv=(v,v,…,v)∈Fqnに対して、σ,ηをFqからランダムに選択し、式(15)を計算することにより、復号鍵kを得る。
【数24】

【0049】
検索要求装置200の送信部208は、復号鍵kを検索代行装置300へ送信する(ステップS6)。
【0050】
《検索代行プロセス》
検索代行装置300の受信部309は、復号鍵kを受信する(ステップS7)。
【0051】
検索代行装置300の制御部305は、送信部308を制御して、保管装置400に対して保管装置400の記憶部401に記憶されているすべての検索用情報を検索代行装置300へ送信するように要求し、これを受けて保管装置400の送信部408は記憶部401に記憶されているすべての検索用情報をインデックスとともに検索代行装置300へ送信し、検索代行装置300の受信部309がこれらを受信する(ステップS8)。
【0052】
検索代行装置300の復号判定部301は、すべての検索用情報を復号判定処理の対象とし、復号鍵kを用いて検索用情報を個別に復号して検索が当たりか否かを判定する(ステップS9)。具体的には、復号判定部302は、すべての検索用情報について、式(16)に従って情報Rを求め(復号処理)、R=Rの成否を判定する(判定処理)。
【数25】

【0053】
検索代行装置300の送信部308は、R=Rが成立した検索用情報のインデックスを検索要求装置200へ送信する(ステップS10)。
【0054】
《検索結果受信プロセス》
検索要求装置200の受信部209は、R=Rが成立した検索用情報のインデックスを受信する(ステップS11)。
【0055】
検索要求装置200の制御部205は、送信部208を制御して、保管装置400に対して、保管装置400の記憶部401に記憶されている、検索代行装置300から受信したインデックスに対応する暗号情報を検索要求装置200へ送信するように要求し、これを受けて保管装置400の送信部408は当該インデックスに対応する暗号情報を検索要求装置200へ送信し、検索要求装置200の受信部209がこれらを受信する(ステップS12)。
【0056】
検索要求装置200の復号部206は、必要に応じて、保管装置400から受信した暗号情報Cを復号して情報Mを得る(ステップS13)。情報Mを得るための情報処理は、暗号情報生成装置100の暗号情報生成部101が実施した暗号方式(Enc,Dec)に対応する復号アルゴリズムDecに従う。つまり、M=Dec(C)である。
【0057】
<変形例>
上記実施形態では、変数ベクトルXr,dの次元nは、i次以下の単項式の総和がr文字からq文字(1≦q≦i)を選ぶ組み合わせの和になるので、式(17)で表される。
【数26】

【0058】
式(17)によると、変数ベクトルXr,dの次元nは、登録用キーワードの文字数rと論理和の数dの階乗のオーダーで増加する。そこで、各変形例では、論理和を用いる検索でありながら論理和を用いない変数ベクトルXr,1を構成する。このため各変形例では、登録用キーワードと検索用キーワードに、文字列開始記号としてST、文字列終端記号としてEDを導入する。なお、説明の便宜からこれらの記号をST、EDというように2文字で表現したが、変形例では、文字列開始記号として1文字の長さの記号、文字列終端記号として1文字の長さの記号が設定されることに留意されたい。もちろん、これらの記号の長さを任意に設定してよいが、この場合、述語多項式の表現やそこに現れる添え字が変わるものの、実用上格別の意義を有しないので、通常、1文字分の長さの記号を設定すれば足りる。なお、変形例1については図3を、変形例2については図4を参照のこと。
【0059】
[変形例1]
登録用キーワードWの1文字目wをSTとする。また、nullでない文字の最大の添え字をmaxとしたとき、(max+1)文字目wmax+1をEDとする。登録用キーワードWについて、部分キーワードW(1≦i≦r)をW=wi+1…w‖nullと定義する。ここでnullはi−1個のnullを表す。Wのj番目の文字をwi,jと表すことにする。
【0060】
変形例1では、実施形態のステップS2の処理は、次のように変更される。暗号情報生成装置100の検索用情報生成部102は、検索が当たりか否かを識別可能なr個の情報R[i](1≦i≦r)を任意に設定し(例えばすべて数値としてのゼロとする)、この情報R[i]を部分キーワードWで暗号化して情報R[i]を得る(ステップS2a)。具体的には、検索用情報生成部102は、式(18)に従って、r個の部分キーワードWからr個の属性ベクトルx(1≦i≦r)を生成する。x=(x[i],x[i],…,x[i])∈Fqnとする。
【数27】

【0061】
そして、検索用情報生成部102は、δ,δ,ζをFqからランダムに選択し、式(19)を計算することにより、情報R[i]を得る(1≦i≦r)。情報R[i]はR[i]=(cipher1[i],cipher2[i])である(1≦i≦r)。
【数28】

【0062】
変形例1では、述語ベクトルは実施形態と同じように構成される。なお、検索用キーワードSの1文字目sをSTとする。また、nullでない文字の最大の添え字をmaxとしたとき、(max+1)文字目smax+1をEDとする。
【0063】
変形例1では、実施形態のステップS3、S4の各処理は、次のように変更される。暗号情報生成装置100の送信部108は、暗号情報Cとr個の検索用情報C[i]=(R[i],R[i])とを一組として保管装置400へ送信する(ステップS3a)。保管装置400の受信部409は、暗号情報と検索用情報との組(C,C[1],C[2],…,C[r])を受信する(ステップS4a)。保管装置400の記憶部401には、通常、暗号情報生成装置100から受信した複数の(C,C[1],C[2],…,C[r])が記憶されている。さらに言えば、保管装置400の記憶部401には、一般的に、複数の暗号情報生成装置から受信した複数の(C,C[1],C[2],…,C[r])が記憶されている。各組(C,C[1],C[2],…,C[r])には固有のインデックスが対応付けられている。
【0064】
変形例1では、実施形態のステップS5の処理自体に変更はないが、各検索方式に対応する述語多項式p(Xα,…,Xβ)が次のとおりに変更される。
【0065】
《1》完全一致検索方式(cm)
変形例1では、完全一致検索方式における述語多項式p(Xα,…,Xβ)は、式(20)で与えられる。
【数29】

【0066】
《2》前方一致検索方式(fm)
変形例1では、前方一致検索方式における述語多項式p(Xα,…,Xβ)は、式(21)で与えられる。
【数30】

【0067】
《3》後方一致検索方式(bm)
変形例1では、後方一致検索方式における述語多項式p(Xα,…,Xβ)は、式(22)で与えられる。
【数31】

【0068】
《4》部分一致検索方式(pm)
変形例1では、部分一致検索方式における述語多項式p(Xα,…,Xβ)は、式(23)で与えられる。
【数32】

【0069】
《5》完全不一致検索方式(ncm)と《6》「含まない」検索方式(npm)は実施形態と同じである。
【0070】
変形例1では、実施形態のステップS6以降の各処理について、1個の暗号情報にr個の検索用情報が添付されていることを注意すれば、実質的な変更はない。なお、実施形態におけるステップS9の処理は、次のように変更される。検索代行装置300の復号判定部301は、すべての検索用情報を復号判定処理の対象とし、復号鍵kを用いて検索用情報を個別に復号して検索が当たりか否かを判定する(ステップS9a)。具体的には、復号判定部301は、すべての検索用情報について、式(23a)に従って情報R[i]を求め(復号処理)、R[i]=R[i]の成否を判定する(判定処理)。
【数33】

【0071】
変形例1によると、復号判定処理の回数は上述の実施形態と比較して一つの暗号情報につきr倍になるが、論理和の使用により変数ベクトルの次元が階乗オーダーで大きくなってしまうことに比べ定数倍の処理の増加で済むので、論理和を使用する検索の場合において上述の実施形態と比較してメリットが大きい。
【0072】
[変形例2]
論理和を用いる検索でありながら論理和を用いない変数ベクトルXr,1を構成するために、変形例2では、一つの検索用キーワードから複数の述語ベクトルを生成する(なお、諸条件により必ず複数の述語ベクトルが生成されるわけではない。ここでは、特徴的な場合を説明する観点から、生成される述語ベクトルは“複数”であるとして説明する)。各述語ベクトルに対応する復号鍵kが生成される。つまり、特徴的な場合には複数の復号鍵kが生成される。
【0073】
登録用キーワードWの1文字目wをSTとする。また、nullでない文字の最大の添え字をmaxとしたとき、(max+1)文字目wmax+1をEDとする。登録用キーワードWについて、部分キーワードW(1≦i≦r)をW=wi+1…w‖nullと定義する。ここでnullはi−1個のnullを表す。Wのj番目の文字をwi,jと表すことにする。また、検索用キーワードSの1文字目sをSTとする。また、nullでない文字の最大の添え字をmaxとしたとき、(max+1)文字目smax+1をEDとする。
【0074】
変形例2では、実施形態のステップS2、S5、S6、S7、S9の各処理は、次のように変更される。
【0075】
暗号情報生成装置100の検索用情報生成部102は、検索が当たりか否かを識別可能な情報Rを任意に設定し(例えば数値としてのゼロ)、この情報Rを登録用キーワードWで暗号化して情報Rを得る(ステップS2b)。具体的には、検索用情報生成部102は、式(23b)に従って、登録用キーワードWから属性ベクトルxを生成する。x=(x,x,…,x)∈Fqnとする。
【数34】

【0076】
そして、検索用情報生成部102は、δ,δ,ζをFqからランダムに選択し、式(23c)を計算することにより、情報Rを得る。情報RはR=(cipher1,cipher2)である。
【数35】

【0077】
検索要求装置200の鍵生成部201は、上記秘密鍵(直交基底B)と、例えばユーザによって入力された検索用キーワードSおよびユーザによって指定された検索方式$の述語論理とを用いて、検索用情報Cに含まれる情報Rを復号するための複数の復号鍵kを生成する(ステップS5b)。
【0078】
t文字の検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)とする。もし、t<rならば、s=0(t<i≦r)とする。鍵生成部201は、後述するように検索方式$に対応するXr,r上の述語多項式p(Xα,…,Xβ)を決定して、Xr,r上の述語ベクトルvを求める。Xr,r上の述語多項式p(Xα,…,Xβ)からXr,r上の述語ベクトルvを求める方法は既述のとおりである。
【0079】
変形例2では、実施形態と異なり、各検索方式に対応する述語多項式p(Xα,…,Xβ)が次のとおりに変更される。
【0080】
《1》完全一致検索方式(cm)
変形例2では、完全一致検索方式における述語多項式p(Xα,…,Xβ)は、式(24)で与えられる。
【数36】

【0081】
《2》前方一致検索方式(fm)
変形例2では、前方一致検索方式における述語多項式p(Xα,…,Xβ)は、式(25)で与えられる。
【数37】

【0082】
《3》後方一致検索方式(bm)
変形例2では、後方一致検索方式における述語多項式p(Xα,…,Xβ)は、式(26)で与えられる。なお、この場合、r−t+2個の述語多項式が得られる。
【数38】

【0083】
《4》部分一致検索方式(pm)
変形例2では、部分一致検索方式における述語多項式p(Xα,…,Xβ)は、式(27)で与えられる。なお、この場合、r−t+3個の述語多項式が得られる。
【数39】

【0084】
《5》完全不一致検索方式(ncm)と《6》「含まない」検索方式(npm)は実施形態と同じである。
【0085】
次に、鍵生成部201は、u個の述語ベクトルv[c]=(v[c],v[c],…,v[c])∈Fqnに対して、σ,ηをFqからランダムに選択し、式(28)を計算することにより、u個の復号鍵k[c]を得る(1≦c≦u)。《1》と《2》と《5》の場合はu=1である。《3》の場合はu=r−t+2である。《4》と《6》の場合はu=r−t+3である。
【数40】

【0086】
検索要求装置200の送信部208は、u個の復号鍵k[c]を検索代行装置300へ送信する(ステップS6b)。検索代行装置300の受信部309は、u個の復号鍵k[c]を受信する(ステップS7b)。
【0087】
検索代行装置300の復号判定部301は、すべての検索用情報を復号判定処理の対象とし、u個の復号鍵k[c]を用いて検索用情報を個別に復号して検索が当たりか否かを判定する(ステップS9b)。具体的には、復号判定部301は、すべての検索用情報について、式(29)に従って情報R[c]を求め(復号処理)、R[c]=R(1≦c≦u)の成否を判定する(判定処理)。
【数41】

【0088】
変形例2では、1個の暗号情報に1個の検索用情報が添付されているものの、1個の検索用キーワードからu個の復号鍵k[c]を生成するため、復号判定処理の回数は上述の実施形態と比較して一つの暗号情報につきu倍になるが、論理和の使用により変数ベクトルの次元が階乗オーダーで大きくなってしまうことに比べ定数倍の処理の増加で済むので、論理和を使用する検索の場合において上述の実施形態と比較してメリットが大きい。
【0089】
上述の実施形態と各変形例では、検索代行装置300は、複合判定処理において検索用情報と暗号情報との結びつきのみを把握できるだけなので、暗号情報の中身(情報M)や検索用キーワードSが何であるのかということが検索代行装置300に漏れることがない。
【0090】
なお、上述の実施形態と各変形例では、暗号情報生成装置100と検索要求装置200を同一のエンティティとして実施することも可能である。この場合、上述の実施形態と各変形例において、暗号情報生成装置100を検索要求装置200に読み替えればよい。また、上述の実施形態と各変形例では、検索代行装置300と保管装置400を同一のエンティティとして実施することも可能である。この場合、上述の実施形態と各変形例において、保管装置400を検索代行装置300に読み替えればよい。これら両者の形態を組み合わせた変形例としてもよい。これらの場合、上述の実施形態と各変形例で説明した、暗号情報生成装置100と検索要求装置200との間の通信、検索代行装置300と保管装置400との間の通信がそれぞれ不要になる。
【0091】
キーワード検索システムに含まれるハードウェアエンティティ(暗号情報生成装置、検索要求装置、検索代行装置、保管装置)は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit)〔キャッシュメモリやレジスタなどを備えていてもよい。〕、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0092】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するRAMやレジスタなどの記憶装置を単に「記憶部」とした。
【0093】
ハードウェアエンティティでは、外部記憶装置〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(例えば、暗号情報生成部、検索用情報生成部、鍵生成部、復号部、復号判定部、制御部など)を実現する。
【0094】
各実施形態で説明したハードウェアエンティティの細部においては、数論における数値計算処理が必要となる場合があるが、数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略した(この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成22年1月13日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成22年1月13日検索]を参照のこと。)。
また、この点に関する文献として、参考文献Bを挙げることができる。
(参考文献B) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
【0095】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0096】
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0097】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0098】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0099】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0100】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

【特許請求の範囲】
【請求項1】
少なくとも検索要求装置と検索代行装置を含み、文字列を含む情報を暗号化して得られた暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムであって、
検索対象となるキーワードを登録用キーワードとして、前記暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを前記登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、
前記検索要求装置は、
前記検索用キーワードを用いて、前記情報Rを前記述語暗号方式により復号するための復号鍵kを生成する鍵生成部と、
前記復号鍵kを前記検索代行装置へ送信する送信部と
を含み、
前記検索代行装置は、
前記復号鍵kを受信する受信部と、
前記述語暗号方式に従って前記情報Rを前記復号鍵kで復号し、得られた情報が前記情報Rに一致するか否かを判定する復号判定部と
を含む、キーワード検索システム。
【請求項2】
請求項1に記載のキーワード検索システムにおいて、
前記情報Rは、前記登録用キーワードから生成される前記述語暗号方式の属性で前記情報Rを暗号化して得られ、
前記復号鍵kは、前記検索用キーワードから生成される前記述語暗号方式の述語から生成される
ことを特徴とするキーワード検索システム。
【請求項3】
請求項2に記載のキーワード検索システムにおいて、
前記述語暗号方式は、属性ベクトルと述語ベクトルとの標準内積により述語論理の真偽が与えられる内積型述語暗号方式であり、
前記属性は、前記登録用キーワードの最大文字数をrとして、前記述語論理に最大d−1回の論理和が許される場合に、r個の属性変数X,…,Xからなる次数d以下の単項式をすべて辞書式順序で並べた順に各成分とした変数ベクトルXr,dに前記登録用キーワードに含まれる文字を設定して得られる属性ベクトルであり、
前記述語は、述語論理を前記属性変数と前記検索用キーワードに含まれる文字を用いて多項式で表現した述語多項式の係数を、前記変数ベクトルXr,dの成分に対応する順に並べたものを成分として持つ述語ベクトルである
ことを特徴とするキーワード検索システム。
【請求項4】
請求項3に記載のキーワード検索システムにおいて、
前記述語多項式は検索方式に依存して決定され、rdi,j(1≦i,j≦r)を乱数、r文字の前記登録用キーワードWのi文字目の文字をw(1≦i≦r)、t文字の前記検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)として、
《1》前記検索方式が完全一致検索方式である場合、前記述語多項式は、
【数42】


で与えられ、
《2》前記検索方式が前方一致検索方式である場合、前記述語多項式は、
【数43】


で与えられ、
《3》前記検索方式が後方一致検索方式である場合、前記述語多項式は、
【数44】


で与えられ、
《4》前記検索方式が部分一致検索方式である場合、前記述語多項式は、
【数45】


で与えられる
ことを特徴とするキーワード検索システム。
【請求項5】
請求項3に記載のキーワード検索システムにおいて、
r文字の前記登録用キーワードWのi文字目の文字をw(1≦i≦r)、ただし、1文字目wを文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目wmax+1を文字列終端記号EDとし、部分キーワードW(1≦i≦r)をW=wi+1…w‖nullとし、ただし、nullはi−1個のnullを表し、Wのj番目の文字をwi,jと表すこととし、
t文字の前記検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)とし、ただし、1文字目sを前記文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目smax+1を前記文字列終端記号EDとして、
前記属性ベクトルは、r個の部分キーワードWに対応してr個生成され、
前記暗号情報Cには、当たりか否かを識別可能なr個の前記情報R(以下、R[i](1≦i≦r)とする)と、当該情報R[i]を前記部分キーワードWで暗号化して得られるr個の前記情報R(以下、R[i](1≦i≦r)とする)との組である前記検索用情報C(以下、C[i]=(R[i],R[i])(1≦i≦r)とする)が添付されており、
前記述語多項式は検索方式に依存して決定され、rdi,j(1≦i,j≦r)を乱数とし、
《1》前記検索方式が完全一致検索方式である場合、前記述語多項式は、
【数46】


で与えられ、
《2》前記検索方式が前方一致検索方式である場合、前記述語多項式は、
【数47】


で与えられ、
《3》前記検索方式が後方一致検索方式である場合、前記述語多項式は、
【数48】


で与えられ、
《4》前記検索方式が部分一致検索方式である場合、前記述語多項式は、
【数49】


で与えられ、
前記復号判定部は、1≦i≦rの各iについて、前記情報R[i]を前記復号鍵kで復号し、得られた情報が前記情報R[i]に一致するか否かを判定する
ことを特徴とするキーワード検索システム。
【請求項6】
請求項3に記載のキーワード検索システムにおいて、
r文字の前記登録用キーワードWのi文字目の文字をw(1≦i≦r)、ただし、1文字目wを文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目wmax+1を文字列終端記号EDとし、部分キーワードW(1≦i≦r)をW=wi+1…w‖nullとし、ただし、nullはi−1個のnullを表し、Wのj番目の文字をwi,jと表すこととし、
t文字の前記検索用キーワードSのi文字目の文字をs(1≦i≦t≦r)とし、ただし、1文字目sを前記文字列開始記号STとし、nullでない文字の最大の添え字をmaxとしたときに(max+1)文字目smax+1を前記文字列終端記号EDとして、
前記述語多項式は検索方式に依存して決定され、rdi,j(1≦i,j≦r)を乱数とし、
《1》前記検索方式が完全一致検索方式である場合、前記述語多項式は、u個(u=1)の述語多項式
【数50】


で与えられ、
《2》前記検索方式が前方一致検索方式である場合、前記述語多項式は、u個(u=1)の述語多項式
【数51】


で与えられ、
《3》前記検索方式が後方一致検索方式である場合、前記述語多項式は、u個(u=r−t+2)の述語多項式
【数52】


で与えられ、
《4》前記検索方式が部分一致検索方式である場合、前記述語多項式は、u個(u=r−t+3)の述語多項式
【数53】


で与えられ、
前記復号鍵kは、u個の述語多項式に対応してu個生成され(以下、これをk[c](1≦c≦u)とする)、
前記復号判定部は、1≦c≦uの各cについて、前記情報Rを前記復号鍵k[c]で復号し、得られた情報が前記情報Rに一致するか否かを判定する
ことを特徴とするキーワード検索システム。
【請求項7】
少なくとも検索要求装置と検索代行装置を含み、文字列を含む情報を暗号化して得られた暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムおけるキーワード検索方法であって、
検索対象となるキーワードを登録用キーワードとして、前記暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを前記登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、
前記検索要求装置の鍵生成部が、前記検索用キーワードを用いて、前記情報Rを前記述語暗号方式により復号するための復号鍵kを生成する鍵生成ステップと、
前記検索要求装置の送信部が、前記復号鍵kを前記検索代行装置へ送信する送信ステップと、
前記検索代行装置の受信部が、前記復号鍵kを受信する受信ステップと、
前記検索代行装置の復号判定部が、前記述語暗号方式に従って前記情報Rを前記復号鍵kで復号し、得られた情報が前記情報Rに一致するか否かを判定する復号判定ステップと
を有するキーワード検索方法。
【請求項8】
検索対象となるキーワードを登録用キーワードとして、文字列を含む情報を暗号化して得られた暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを前記登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、少なくとも検索要求装置と検索代行装置を含み、前記暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムに含まれる前記検索要求装置であって、
前記検索用キーワードを用いて、前記情報Rを前記述語暗号方式により復号するための復号鍵kを生成する鍵生成部と、
前記復号鍵kを前記検索代行装置へ送信する送信部と
を含む検索要求装置。
【請求項9】
検索対象となるキーワードを登録用キーワードとして、文字列を含む情報を暗号化して得られた暗号情報Cには、当たりか否かを識別可能な情報Rと、当該情報Rを前記登録用キーワードを用いて述語暗号方式により暗号化して得られる情報Rとの組である検索用情報C=(R,R)が添付されており、少なくとも検索要求装置と検索代行装置を含み、前記暗号情報Cに対して検索用キーワードによりキーワード検索を行うキーワード検索システムに含まれる前記検索代行装置であって、
前記検索用キーワードを用いて生成された、前記情報Rを前記述語暗号方式により復号するための復号鍵kを、前記検索要求装置から受信する受信部と、
前記述語暗号方式に従って前記情報Rを前記復号鍵kで復号し、得られた情報が前記情報Rに一致するか否かを判定する復号判定部と
を含む検索代行装置。
【請求項10】
請求項8に記載の検索要求装置として、または、請求項9に記載の検索代行装置として、コンピュータを機能させるためのプログラム。
【請求項11】
請求項10に記載のプログラムを記録した、コンピュータに読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−147074(P2011−147074A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−8241(P2010−8241)
【出願日】平成22年1月18日(2010.1.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】