JP2013148822A - 検索可能暗号システム、検索装置、計算装置、及びプログラム - Google Patents

検索可能暗号システム、検索装置、計算装置、及びプログラム Download PDF

Info

Publication number
JP2013148822A
JP2013148822A JP2012011113A JP2012011113A JP2013148822A JP 2013148822 A JP2013148822 A JP 2013148822A JP 2012011113 A JP2012011113 A JP 2012011113A JP 2012011113 A JP2012011113 A JP 2012011113A JP 2013148822 A JP2013148822 A JP 2013148822A
Authority
JP
Japan
Prior art keywords
dimensional vector
ciphertext
decryption key
key
map
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
JP2012011113A
Other languages
English (en)
Other versions
JP5651609B2 (ja
Inventor
Reisei Yoshida
麗生 吉田
Tetsutaro Kobayashi
鉄太郎 小林
Hiroyuki Makino
浩之 牧野
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012011113A priority Critical patent/JP5651609B2/ja
Publication of JP2013148822A publication Critical patent/JP2013148822A/ja
Application granted granted Critical
Publication of JP5651609B2 publication Critical patent/JP5651609B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】検索可能暗号方式での演算効率及び安全性が向上する。
【解決手段】検索装置が、i∈{1,...,P}のそれぞれに対応する暗号文C(i)とインデックス(IND(i), T(i), r(i))とを含む暗号化データベースを用い、復号鍵Qと、t(j)∈SUB(j)のそれぞれに対応するIND(t(j)), MAP(T(t(j)),r(t(j)))と、を計算装置CM(j)に対して出力する。ただし、j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)である。計算装置CM(j)が、復号鍵Qを用いて暗号文IND(t(j))を復号することで像MAP(T(t(j)),r(t(j)))が得られるかを検証する。
【選択図】図3

Description

本発明は、暗号文検索技術に関し、特に、暗号文に対応する情報と復号鍵に対応する情報とが特定の関係を満たす場合に暗号文が復号鍵で復号可能となる暗号化方式を用いた暗号文検索技術に関する。
述語暗号方式(「関数暗号方式」ともいう)は、暗号文に対応する情報と復号鍵に対応する情報とが特定の関係を満たす場合に、当該暗号文が当該復号鍵で復号可能となる暗号化方式である(例えば、非特許文献1,2,4等参照)。例えば、述語暗号方式の一つである内積述語暗号方式では、命題論理が属性ベクトルと述語ベクトルの二つのベクトルで表現され、それらの内積が0であるか否かが命題論理の真偽値に対応する。これら二つのベクトルの一方に暗号文が対応し、他方に復号鍵が対応し、暗号文に対応するベクトルと復号鍵に対応するベクトルとの内積が0の場合に、当該暗号文が当該復号鍵で復号できる。
これまで述語暗号方式を応用した様々な方式が提案されており、その一つに、述語暗号方式を応用した公開鍵型の検索可能暗号方式がある(例えば、非特許文献3,5,6,7等参照)。検索可能暗号方式は、検索対象の平文(テキスト等)が暗号化することで得られた暗号文(以下「検索対象の暗号文」)を検索するための技術である。検索可能暗号方式では、検索対象暗号文を復号することなく、検索対象の平文が検索キーワードにヒットするものかそうでないかを判定する。
従来の検索可能暗号方式では、検索対象の平文の検索ヒット条件に対応する属性ベクトルを埋め込んだインデックスと当該検索対象の暗号文とが対応つけられた暗号化データベースが生成される。この例のインデックスは内積述語暗号方式に則った暗号文である。暗号化データベースは、検索キーワードに対応する述語ベクトルを埋め込んだクエリを用いて検索される。この例のクエリは内積述語暗号方式に則った復号鍵である。内積述語暗号方式に則ってインデックスをクエリで正しく復号できるか否か(真偽値が真であるか否か)の結果に基づき、検索キーワードが検索条件にヒットするか否かを判定する。
J. Katz, A. Sahai, and B. Waters. Predicate encryption supporting disjunctions, polynomial equations, and inner products. In EUROCRYPT, pp. 146-162, 2008. A. B. Lewko, T. Okamoto, A. Sahai, K. Takashima, and B. Waters, "Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption," In EUROCRYPT, pp. 62-91, 2010. N. Matsuda, M. Hattori, T. Ito, and T. Yoneda, "Secure datacenter systems with hierarchical predicate encryption," In Symp. on Cryptography and Information Security, 2010. T. Okamoto and K. Takashima, "Hierarchical predicate encryption for inner-products," In ASIACRYPT, pp. 214-231, 2009. R. Yoshida, A. Nagai, and T. Kobayashi, "Hierarchical predicate encryption with keyword search in multi-user setting," In Computer Security Symposium, 2010. R. Yoshida, A. Nagai, T. Kobayashi, and H. Fuji, "An algorithm for inner-product batch searchable encryption," In Symp. on Cryptography and Information Security, 2011. R. Yoshida, S. Oda, and T. Kobayashi, "Public-key encryption with partial matching keyword search," In Symp. on Cryptography and Information Security, 2010.
本発明は、検索可能暗号方式での演算効率及び安全性を向上させることを目的とする。
第1の本発明では、暗号文に対応する情報と復号鍵に対応する情報とが特定の関係を満たす場合に暗号文が復号鍵で復号可能となる暗号方式を用い、Pが1以上の整数であり、Uが2以上の整数であり、i∈{1,...,P}であり、情報W(i)に対応する暗号文がIND(i)であり、情報Vに対応する復号鍵がQであり、暗号文IND(i)及び復号鍵Qが当該暗号方式に則って得られるものであり、暗号文IND(i)を正しく復号して得られる値がKEY(i)であり、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が値KEY(i)である。第1の本発明の検索装置は、i∈{1,...,P}のそれぞれに対応する暗号文C(i)とインデックス(IND(i), T(i), r(i))とを含む暗号化データベースを用い、復号鍵Qと、集合SUB(j)のすべての元t(j)についてのt(j)∈SUB(j)のそれぞれに対応するIND(t(j)), MAP(T(t(j)),r(t(j)))と、を計算装置CM(j)に対して出力する。ただし、j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)である。第1の本発明の計算装置CM(j)は、復号鍵Qを用いて上記暗号方式に則って暗号文IND(t(j))を復号することで像MAP(T(t(j)),r(t(j)))が得られるかを検証する。このように検証を並列処理することによって演算効率が向上する。さらに検索装置がT(t(j))そのものではなくMAP(T(t(j)),r(t(j)))を出力するため、T(t(j))から「暗号文IND(t(j))に対応する情報」を得るための情報が漏洩する可能性を低減できる。
第2の本発明では、Pが1以上の整数であり、BU, Nが2以上の整数であり、i∈{1,...,P}であり、ベクトルW(i)に対応する暗号文がN次元ベクトル(T(i,1),...,T(i,N))であり、ベクトルVに対応する復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、eが双線形写像であり、復号鍵(Q(1),...,Q(N))を用いて暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 Ne(T(i,n),Q(n))を計算する処理であり、ベクトルW(i)とベクトルVとの内積が0のときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が値KEY(i)である。第2の本発明の検索装置は、((T(i,1),...,T(i,N)), MAP(T(i),r(i))),(Q(1),...,Q(N))を用い、集合BSUB(y)のすべての元bt(y)について、bt(y)∈BSUB(y)のそれぞれに対応するT(i, bt(y)),Q(bt(y))を計算装置BM(y)に対して出力する。ただし、y∈{1,...,BU}, y’∈{1,...,BU-1}, BS(1)={1,...,N}, BS(y’+1)=BS(y’)-BSUB(y’), BSUB(y’)⊂BS(y’), BSUB(BU)=BS(BU)である。第2の本発明の計算装置BM(y)はe(T(i, bt(y)),Q(bt(y)))を計算し、第2の本発明の検索装置は、y∈{1,...,BU}のそれぞれに対応する計算装置BM(y)で計算されたe(T(i, bt(y)),Q(bt(y)))を用いてΠn=1 N e(T(i,n),Q(n))を計算し、それによって像MAP(T(i),r(i))が得られるかを検証する。このように双線形写像の計算を並列処理することによって演算効率が向上する。さらに、検索装置がT(i)そのものではなくMAP(T(i),r(i))を用いるため、T(t(j))からベクトルW(i)を得るための情報が漏洩する可能性を低減できる。
第3の本発明では、Pが1以上の整数であり、EU, QU, U, N, K, K’が2以上の整数であり、i∈{1,...,P}, k∈{1,...,K}, k’∈{1,...,K’}であり、(b1,k,...,bN,k)がN次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、(W(i,1),...,W(i,K))がK次元ベクトルであり、暗号文であるN次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、(V(1),...,V(K’))がK’次元ベクトルであり、復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、eが双線形写像であり、復号鍵(Q(1),...,Q(N))を用いて暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 Ne(T(i,n),Q(n))を計算する処理であり、暗号文(T(i,1),...,T(i,N))が復号鍵(Q(1),...,Q(N))で正しく復号できたときにKEY(i)=Πn=1 Ne(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が値KEY(i)であり、ERND及びQRNDがERND・QRND=1を満たす。計算装置EM(f)が、集合ESUB(f)のすべての元et(f)について、et(f)∈ESUB(f)のそれぞれに対応するERND・T(i, et(f))=ERND・Σk=1 K W(i,k)・bet(f),kを生成し、計算装置QM(g)が、集合QSUB(g)のすべての元qt(g)について、qt(g)∈QSUB(g)のそれぞれに対応するQRND・Q(qt(g))=QRND・Σk’=1 K’ V(k’)・bqt(g),k’ *を計算し、計算装置CM(j)が、集合SUB(j)のすべての元t(j)について、t(j)∈SUB(j)のそれぞれに対応するΠn=1 N e(ERND・T(t(j),n), QRND・Q(n))を計算し、それによって像MAP(T(t(j)),r(t(j)))が得られるかを検証する。ただし、f∈{1,...,EU}, f’∈{1,...,EU-1},ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)であり、g∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)であり、j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)である。このような並列処理によって演算効率が向上する。さらに、T(i, et(f))ではなくERND・T(i, et(f))を用い、Q(n)ではなくQRND・Q(n)を用いることで安全性が向上する。
本発明では、検索可能暗号方式での演算効率及び安全性が向上する。
図1は、実施形態の検索可能暗号システムの構成を説明するためのブロック図である。 図2Aは、実施形態の鍵生成装置の構成を説明するためのブロック図である。図2Bは、実施形態の登録装置の構成を説明するためのブロック図である。図2Cは、検索要求装置の構成を説明するためのブロック図である。 図3Aは、実施形態の検索装置の構成を説明するためのブロック図である。図3Bは、実施形態の計算装置の構成を説明するためのブロック図である。 図4Aは、実施形態の検索処理を説明するための図である。図4Bは、実施形態の並列処理を説明するための図である。 図5Aは、実施形態の検索装置の構成を説明するためのブロック図である。図5Bは、実施形態の計算装置の構成を説明するためのブロック図である。 図6Aは、実施形態の検索処理を説明するための図である。図6Bは、実施形態の並列処理を説明するための図である。 図7は、実施形態の検索可能暗号システムの構成を説明するためのブロック図である。 図8Aは、実施形態の鍵生成装置の構成を説明するためのブロック図である。図8Bは、実施形態の計算装置の構成を説明するためのブロック図である。 図9Aは、実施形態の登録装置の構成を説明するためのブロック図である。図9Bは、実施形態の計算装置の構成を説明するためのブロック図である。 図10Aは、実施形態の登録処理を説明するための図である。図10Bは、実施形態の並列処理を説明するための図である。 図11Aは、実施形態のクエリ生成処理を説明するための図である。図11Bは、実施形態の並列処理を説明するための図である。
〔概要〕
実施形態の概要を説明する。以下に説明する各実施形態では、暗号文に対応する情報と復号鍵に対応する情報とが特定の関係を満たす場合に暗号文が復号鍵で復号可能となる暗号方式(以下「特定の暗号方式」という)を用いて検索可能暗号方式を構成する。「特定の暗号方式」の例は、非特許文献1,2,4などに開示されている内積述語暗号方式や関数暗号方式などである。「特定の暗号方式」が内積述語暗号方式の例では、暗号文に対応するベクトルと復号鍵に対応するベクトルとの内積が0であるときに当該暗号文が当該復号鍵で復号できる。
第1実施形態では、Pが1以上の整数であり、Uが2以上の整数であり、i∈{1,...,P}であり、情報W(i)に対応する暗号文がIND(i)であり、情報Vに対応する復号鍵がQであり、暗号文IND(i)及び復号鍵Qが上記特定の暗号方式に則って得られるものであり、暗号文IND(i)を正しく復号して得られる値がKEY(i)であり、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が値KEY(i)である。第1実施形態の検索可能暗号システムは検索装置とU個の計算装置CM(1),...,CM(U)とを有する。第1実施形態の検索装置は、i∈{1,...,P}のそれぞれに対応する暗号文C(i)とインデックス(IND(i), T(i), r(i))とを含む暗号化データベースを格納し、復号鍵(クエリ)Qの入力を受け付け、復号鍵Qと、集合SUB(j)のすべての元t(j)についてのt(j)∈SUB(j)のそれぞれに対応するIND(t(j)), MAP(T(t(j)),r(t(j)))と、を計算装置CM(j)に対して出力する。ただし、j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)である。第1実施形態の計算装置CM(j)は、復号鍵Qを用いて上記特定の暗号方式に則って暗号文IND(t(j))を復号することで像MAP(T(t(j)),r(t(j)))が得られるかを検証する。像MAP(T(i),r(i))の例はT(i)/r(i)であり、値r(i)の例は乱数である。内積述語暗号方式が特定の暗号方式として用いられる場合、復号鍵Qを用いて暗号方式に則って暗号文IND(t(j))を復号する処理はΠn=1 N e(T(i,n),Q(n))を計算する処理であり、情報W(i)と情報Vとの内積が0のときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たす。ただし、Nが2以上の整数であり、情報W(i)及び情報Vがベクトルであり、暗号文IND(i)が情報W(i)に対応するN次元ベクトル(T(i,1),...,T(i,N))であり、復号鍵Qが情報Vに対応するN次元ベクトル(Q(1),...,Q(N))であり、eが双線形写像である。
第1実施形態では、jのそれぞれに対応する計算装置CM(j)がt(j)∈SUB(j)のそれぞれに対応するIND(t(j)), MAP(T(t(j)),r(t(j)))の検証をそれぞれ実行するため、検証処理の演算効率が向上する。さらに検索装置は、T(t(j))そのものではなく、MAP(T(t(j)),r(t(j))を出力する。そのため、計算装置CM(j)がT(t(j))を攻撃者に漏洩し、T(t(j))から「暗号文IND(t(j))に対応する情報」を得るための情報が攻撃者に漏洩する可能性を低減できる。特に、像MAP(T(i),r(i))がT(i)/r(i)であり、r(i)が乱数である場合、攻撃者はT(i)の情報を全く得ることができず、より高い安全性を実現できる。
第2実施形態では、Pが1以上の整数であり、BU, Nが2以上の整数であり、i∈{1,...,P}であり、ベクトルW(i)に対応する暗号文がN次元ベクトル(T(i,1),...,T(i,N))であり、ベクトルVに対応する復号鍵(クエリ)がN次元ベクトル(Q(1),...,Q(N))であり、eが双線形写像であり、復号鍵(Q(1),...,Q(N))を用いて暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 Ne(T(i,n),Q(n))を計算する処理であり、ベクトルW(i)とベクトルVとの内積が0のときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が値KEY(i)である。第2実施形態の検索可能暗号システムは、検索装置とBU個の計算装置BM(1),...,BM(BU)とを有する。第2実施形態の検索装置は、((T(i,1),...,T(i,N)), MAP(T(i),r(i))),(Q(1),...,Q(N))を用い、集合BSUB(y)のすべての元bt(y)について、bt(y)∈BSUB(y)のそれぞれに対応するT(i, bt(y)),Q(bt(y))を計算装置BM(y)に対して出力する。ただし、y∈{1,...,BU}, y’∈{1,...,BU-1}, BS(1)={1,...,N}, BS(y’+1)=BS(y’)-BSUB(y’), BSUB(y’)⊂BS(y’), BSUB(BU)=BS(BU)である。第2実施形態の計算装置BM(y)は、e(T(i, bt(y)),Q(bt(y)))を計算し、第2実施形態の検索装置は、y∈{1,...,BU}のそれぞれに対応する計算装置BM(y)で計算されたe(T(i, bt(y)),Q(bt(y)))を用いてΠn=1 N e(T(i,n),Q(n))を計算し、それによって像MAP(T(i),r(i))が得られるかを検証する。なお、像MAP(T(i),r(i))の例はT(i)/r(i)であり、値r(i)の例は乱数である。
第2実施形態では、yのそれぞれに対応する計算装置BM(y)がe(T(i, bt(y)),Q(bt(y)))をそれぞれ計算するため、検証処理の演算効率が向上する。さらに、検索装置はMAP(T(t(j)),r(t(j))を用いるため、検索装置がT(t(j))を攻撃者に漏洩し、T(t(j))からベクトルW(i)を得るための情報が攻撃者に漏洩する可能性を低減できる。特に、像MAP(T(i),r(i))がT(i)/r(i)であり、r(i)が乱数である場合、攻撃者はT(i)の情報を全く得ることができず、より高い安全性を実現できる。
第3実施形態は、第1,2実施形態の変形例である。第3実施形態では、EU, QUが2以上の整数であり、K, K’が2以上の整数であり、k∈{1,...,K}, k’∈{1,...,K’}であり、(W(i,1),...,W(i,K))がK次元ベクトルであり、(b1,k,...,bN,k)がN次元ベクトルであり、N次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たす。(V(1),...,V(K’))がK’次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たす。第3実施形態の検索可能暗号システムは、EU個の計算装置EM(1),...,EM(EU)とQU個の計算装置QM(1),...,QM(QU)をさらに有する。計算装置EM(f)は、集合ESUB(f)のすべての元et(f)について、et(f)∈ESUB(f)のそれぞれに対応するT(i, et(f))=Σk=1 K W(i,k)・bet(f),kを計算し、計算装置QM(g)はqt(g)∈QSUB(g)のそれぞれに対応するQ(qt(g))=Σk’=1 K’ V(k’)・bqt(g),k’ *を計算する。ただし、f∈{1,...,EU}, f’∈{1,...,EU-1}, ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)である。またg∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)である。
第3実施形態では、インデックスを構成するN次元ベクトル(T(i,1),...,T(i,N))の要素や、クエリであるN次元ベクトル(Q(1),...,Q(N))の要素を複数の計算装置で並列に計算できるため、演算効率が向上する。
第4実施形態では、Pが1以上の整数であり、EU, QU, U, N, K, K’が2以上の整数であり、i∈{1,...,P}, k∈{1,...,K}, k’∈{1,...,K’}であり、(b1,k,...,bN,k)がN次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、(W(i,1),...,W(i,K))がK次元ベクトルであり、暗号文であるN次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、(V(1),...,V(K’))がK’次元ベクトルであり、復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、eが双線形写像であり、復号鍵(Q(1),...,Q(N))を用いて暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 Ne(T(i,n),Q(n))を計算する処理であり、暗号文(T(i,1),...,T(i,N))が復号鍵(Q(1),...,Q(N))で正しく復号できたときにKEY(i)=Πn=1 Ne(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が値KEY(i)であり、ERND及びQRNDがERND・QRND=1を満たす。ERND及びQRNDの例は乱数である。第4実施形態の検索可能暗号システムは、EU個の計算装置EM(1),...,EM(EU)とQU個の計算装置QM(1),...,QM(QU)とU個の計算装置CM(1),...,CM(U)とを有する。計算装置EM(f)が、集合ESUB(f)のすべての元et(f)について、et(f)∈ESUB(f)のそれぞれに対応するERND・T(i, et(f))=ERND・Σk=1 K W(i,k)・bet(f),kを生成し、計算装置QM(g)が、集合QSUB(g)のすべての元qt(g)について、qt(g)∈QSUB(g)のそれぞれに対応するQRND・Q(qt(g))=QRND・Σk’=1 K’ V(k’)・bqt(g),k’ *を計算し、計算装置CM(j)が、集合SUB(j)のすべての元t(j)について、t(j)∈SUB(j)のそれぞれに対応するΠn=1 N e(ERND・T(t(j),n), QRND・Q(n))を計算し、それによって像MAP(T(t(j)),r(t(j)))が得られるかを検証する。ただし、f∈{1,...,EU}, f’∈{1,...,EU-1},ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)であり、g∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)であり、j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)である。なお、像MAP(T(i),r(i))の例はT(i)/r(i)であり、値r(i)の例は乱数である。
第4実施形態では、このような並列処理を行うため、演算効率が向上する。さらに、T(i, et(f))ではなくERND・T(i, et(f))を用い、Q(n)ではなくQRND・Q(n)を用いることで安全性が向上する。特に、ERND及びQRNDが乱数である場合には攻撃者はT(i, et(f))やQ(n)の情報を全く得ることができず、より高い安全性を実現できる。また、像MAP(T(i),r(i))がT(i)/r(i)であり、r(i)が乱数である場合、攻撃者はT(i)の情報を全く得ることができず、より高い安全性を実現できる。
〔詳細〕
各実施形態の詳細を説明する。
<定義>
各実施形態で使用される用語や記号を定義する。
(・)T:(・)Tは・の転置行列を表す。
(・)-1:(・)-1は・の逆行列を表す。
Fq:Fqは位数qの有限体を表す。位数qは1以上の整数であり、例えば、素数や素数のべき乗値を位数qとする。
0:0は有限体Fqの加法単位元(零元)を表す。
1:1は有限体Fqの乗法単位元を表す。
δ(ν,ξ):δ(ν,ξ)はクロネッカーのデルタ関数を表す。ν=ξの場合にδ(ν,ξ)=1を満たし、ν≠ξの場合にδ(ν,ξ)=0を満たす。
1/α:1/αはαの逆元を表す。
α∈β:αがβの元であることを表す。
α⊂β:αがβの真部分集合であることを表す。
E:Eは有限体Fq上で定義された楕円曲線を表す。
G1, G2,GT:G1, G2, GTは位数qの群を表す。G1=G2であってもよいしG1≠G2であってもよい。群G1, G2,GTの具体例は巡回群である。群G1, G2上で定義された演算を加法的に表現し、群GT上で定義された演算を乗法的に表現する。
η:ηは1以上の整数を表す。
ζ:ζは1以上の整数を表す。ζの一例は2又は3である。
N:NはN=η+ζを満たす2以上の整数である。
G1 η+ζ:G1 η+ζはη+ζ個の群G1の直積を表す。
G2 η+ζ:G2 η+ζはη+ζ個の群G2の直積を表す。
g1, g2,gT:g1, g2, gTは群G, G1, G2, GTの生成元を表す。
e:eは群G1と群G2との直積G1×G2を群GTに写す非退化な双線形写像(bilinear map)を表す。双線形写像eは双線形性、非退化性及び計算可能性を有する。双線形写像eの具体例は、WeilペアリングやTateペアリングなどのペアリングである。
e:G1×G2→GT …(1)
ME:MEは直積G1 η+ζと直積G2 η+ζとの直積G1 η+ζ×G2 η+ζを群GTに写す非退化な双線形写像を表す。双線形写像MEは、双線形性、非退化性及び計算可能性を有する。
ME:G1 η+ζ×G2 η+ζ→GT …(2)
双線形写像MEは、群G1のη+ζ個の元γβ (β=1,...,η+ζ)からなるη+ζ次元ベクトル(γ1,...,γη+ζ)と、群G2のη+ζ個の元γβ *(β=1,...,η+ζ)からなるη+ζ次元ベクトル(γ1 *,...,γη+ζ *)とについて以下を満たす。
ME=Πβ=1 η+ζ e(γβ, γβ *) …(3)
aν(ν=1,...,η+ζ):aνは群G1のη+ζ個の元を要素とするη+ζ次元の基底ベクトルを表す。基底ベクトルaνの一例は、κ1・g1∈G1をν次元目の要素とし、残りのη個の要素を群G1の単位元(加法的に「0」と表現)とするη+ζ次元の基底ベクトルである。この場合、η+ζ次元の基底ベクトルaν(ν=1,...,η+ζ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1=(κ1・g1,0,0,...,0)
a2=(0,κ1・g1,0,...,0) …(4)
...
aη+ζ=(0,0,0,...,κ1・g1)
κ1は加法単位元0以外の有限体Fqの元からなる定数であり、κ1∈Fqの具体例はκ1=1である。
aν *(ν=1,...,η+ζ):群G2のη+ζ個の元を要素とするη+ζ次元の基底ベクトルを表す。基底ベクトルaν *の一例は、κ2・g2∈G2をν次元目の要素とし、残りのη個の要素を群G2の単位元(加法的に「0」と表現)とするη+ζ次元の基底ベクトルである。この場合、基底ベクトルaν *(ν=1,...,η+ζ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1 *=(κ2・g2,0,0,...,0)
a2 *=(0,κ2・g2,0,...,0) …(5)
...
aη+ζ *=(0,0,0,...,κ2・g2)
κ2は加法単位元0以外の有限体Fqの元からなる定数であり、κ2∈Fqの具体例はκ2=1である。
基底ベクトルaνと基底ベクトルaν *とは、0を除く有限体Fqの元τ=κ1・κ2について以下を満たす。
ME(aν, aξ *)=gT τ・δ(ν,ξ) …(6)
特にτ=κ1・κ2=1である場合(例えば、κ12=1の場合)、以下を満たす。
ME(aν, aξ *)=gT δ(ν,ξ) …(7)
gT 0=1は群GTの単位元であり、gT 1=gTは群GTの生成元である。
A:基底ベクトルaν(ν=1,...,η+ζ)を要素とするη+ζ行η+ζ列の行列を表す。例えば、基底ベクトルaν(ν=1,...,η+ζ)が式(4)によって表現される場合、行列Aは以下のようになる。
Figure 2013148822
A*:基底ベクトルaν *(ν=1,...,η+ζ)を要素とするη+ζ行η+ζ列の行列を表す。例えば、基底ベクトルaν *(ν=1,...,η+ζ)が式(5)によって表現される場合、行列A*は以下のようになる。
Figure 2013148822
X:有限体Fqの元を要素とするη+ζ行η+ζ列の行列を表す。行列Xは基底ベクトルaνの座標変換に用いられる。行列Xのν行ξ列(ν=1,...,η+ζ,ξ=1,...,η+ζ)の要素をχν,ξ∈Fqとすると、行列Xは以下のようになる。
Figure 2013148822
X *:X *は行列Xの逆行列の転置行列X*=(X-1)T=(XT)-1を表す。行列X*のν行ξ列の要素をχν,ξ *∈Fqとすると、行列X*は以下のようになる。
Figure 2013148822
η+ζ行η+ζ列の単位行列をIとするとX・(X*)T=Iを満たす。
bν:bνは群G1のη+ζ個の元を要素とするη+ζ次元の基底ベクトルを表す。行列Xを用いて基底ベクトルaν(ν=1,...,η+ζ)を座標変換することで得られる。具体的には、基底ベクトルbνは、
bνξ=1 η+ζχν,ξ・aξ …(12)
の演算によって得られる。例えば、基底ベクトルaξ(ξ=1,...,η+ζ)が式(4)によって表現される場合、基底ベクトルbνの各要素をそれぞれ列挙して表現すると、以下のようになる。
bν=(χν,1・κ1・g1ν,2・κ1・g1 ,...,χν,η+ζ・κ1・g1) …(13)
bν *:bν *は群G2のη+ζ個の元を要素とするη+ζ次元の基底ベクトルを表す。行列X*を用いて基底ベクトルaν *(ν=1,...,η+ζ)を座標変換することで得られる。具体的には、基底ベクトルbν *は以下の演算によって得られる。
bν *ξ=1 η+ζχν,ξ *・aξ * …(14)
例えば、基底ベクトルaξ *(ξ=1,...,η+ζ)が式(5)によって表現される場合、基底ベクトルbν *の各要素をそれぞれ列挙して表現すると、以下のようになる。
bν *=(χν,1 *・κ2・g2ν,2 *・κ2・g2 ,...,χν,η+ζ *・κ2・g2) …(15)
基底ベクトルbνと基底ベクトルbν *とは、0を除く有限体Fqの元τ=κ1・κ2について以下を満たす。
ME(bν, bξ *)=gT τ・δ(ν,ξ) …(16)
特に、τ=κ1・κ2=1である場合(例えば、κ12=1の場合)、以下を満たす。
ME(bν, bξ *)=gT δ(ν,ξ) …(17)
式(16)の関係を満たすのであれば、式(4)(5)で例示したもの以外の基底ベクトルaν及びaν *や、式(12)(14)で例示したもの以外の基底ベクトルbν及びbν *を用いてもよい。
B:Bは基底ベクトルbν(ν=1,...,η+ζ)を要素とするη+ζ行η+ζ列の行列。B=X・Aを満たす。例えば、基底ベクトルbνが式(13)によって表現される場合、行列Bは以下のようになる。
Figure 2013148822
B*:B*は基底ベクトルbν *(ν=1,...,η+ζ)を要素とするη+ζ行η+ζ列の行列を表す。B*=X*・A*を満たす。例えば、基底ベクトルbν *(ν=1,...,η+ζ)が式(15)によって表現される場合、行列B*は以下のようになる。
Figure 2013148822
〔内積述語暗号方式〕
内積述語暗号方式で鍵カプセル化メカニズムKEM (Key Encapsulation Mechanisms)を構成する例を示す。この構成はSetup,GenKey,Enc,Decを含む。
《Setup:セットアップ》
−入力:セキュリティパラメータsec
−出力:マスタ鍵情報MSK,公開パラメータPK
Setupの一例では、セキュリティパラメータsecに対して行列A, A*, X, X*が選択され、前述の座標変換によって行列B, B*が生成される。行列B*がマスタ鍵情報MSKとして出力され、行列B、有限体Fq、楕円曲線E、群G1, G2, GT、生成元g1, g2, gT、双線形写像eなどが公開パラメータPKとして出力される。
《GenKey:復号鍵生成》
−入力:マスタ鍵情報MSK,ベクトルv=(v1,...,vη)
−出力:ベクトルvに対応する復号鍵D*
GenKeyの一例では、有限体Fqから元σ,σι-η∈Fqが選択される。そして、マスタ鍵情報MSKである行列B*を用い、ベクトルvに対応する復号鍵
D*=σ・(Σμ=1 ηvμ・bμ *)+Σι=η+1 η+ζ'σι-η・bι *∈G2 η+ζ' …(20)
が生成され、出力される。ただし、σ,σι-ηは乱数などの変数や定数などであり、ζ'≦ζである(例えばζ=3, ζ'=2)。またΣι=η+1 η+ζ'σι-ηはシステムで共有される定数値とされる。以下では
Σι=η+1 η+ζ'σι-η=1 …(21)
とされた例を説明する。
《Enc:暗号化》
−入力:公開パラメータPK,ベクトルw=(w1,...,wη),平文mes
−出力:暗号文(C1,C2)
Encの一例では、行列Bなどの公開パラメータPKと、有限体Fqの元である乱数υ01,...,υζと、ベクトルwとを用い、暗号文
C10・(Σμ=1 ηwμ・bμ)+Σμ=η+1 η+ζυμ-η・bμ∈G1 η+ζ …(22)
が生成される。ただし、
υ1=...=υζ' …(23)
を満たす(例えばζ'=2のときにはυ12)。また、gT τ・υ1を共通鍵KEYとし、所定の共通鍵暗号方式に則って平文mesの暗号文C2が生成される。暗号文C2は或る写像MAPに対してgT τ・υ1=MAP(C2, mes)を満たす。暗号文C2の一例は、
C2=gT τ・υ1・mes …(24)
である。添え字のυ1はυ1を意味する。定数τの一例はτ=1である。式(24)の例ではMAP(C2, mes)=C2/mesを満たす。生成された暗号文(C1,C2)は出力される。
《Dec:復号》
−入力:ベクトルvに対応する復号鍵D*,暗号文(C1,C2)
−出力:復号値mes'
Decの一例では、暗号文C1と復号鍵D*とが双線形写像MEに入力され、その演算結果を共通鍵KEY=ME(C1,D*)とし、前記所定の共通鍵暗号方式に則って暗号文C2を共通鍵KEY=ME(C1,D*)で復号し、復号値mes'が得られる。式(24)のように暗号文C2が生成される場合には、以下のように復号値mes'が求められる。
mes'=C2/ME(C1,D*)∈GT …(25)
内積w・v=0であれば、ME(C1,D*)=gT τ・υ1を満たしてmes'=mesとなり、正しく復号される。
〔第1実施形態〕
第1実施形態の詳細を説明する。本形態では「特定の暗号方式」として内積述語暗号方式を用いる例を示すが、これは本発明を限定するものではない(第2〜4の実施形態も同様)。
<構成>
図1に例示するように、本形態の検索可能暗号システム1は、鍵生成装置110と登録装置120と検索要求装置130と検索装置140とU個(U≧2)の計算装置150−1〜Uを有し、これらはネットワークを通じて通信可能である。
図2Aに例示するように、本形態の鍵生成装置110は、入力部111と出力部112とマスタ鍵情報記憶部113と制御部114と鍵情報生成部115とメモリ116とを有する。図2Bに例示するように、本形態の登録装置120は、入力部121と出力部122と制御部124とベクトル設定部125aと乱数生成部125bと暗号化部125cとインデックス生成部125dとメモリ126とを有する。図2Cに例示するように、本形態の検索要求装置130は、入力部131と出力部132と制御部134とベクトル設定部135とメモリ136とを有する。
図3Aに例示するように、本形態の検索装置140は、入力部141と出力部142とデータベース(DB)記憶部143と制御部144と並列処理依頼部145aと抽出部145bとメモリ146とを有する。なお、記載の便宜上、図3Aには2個の入力部141が記載されているが、これは実際の入力部141の個数と無関係である(以降引用する図面についても同様)。図3Bに例示するように、本形態の計算装置150−j(j∈{1,...,U})は、入力部151−jと出力部152−jと制御部154−jと検証部155−jとメモリ156−jとを有する。
なお、鍵生成装置110、登録装置120、検索要求装置130、検索装置140、及び計算装置150−1〜Uのそれぞれは、例えば、CPU(central processing unit),RAM(random-access memory),ROM(read-only memory)などを有する公知のコンピュータ又は専用コンピュータに特別なプログラムが読み込まれて構成される特別な装置である。鍵生成装置110、登録装置120、検索要求装置130、検索装置140、及び計算装置150−1〜Uのそれぞれは、それぞれが有する制御部114、124、134、144、及び制御部154−1〜Uの制御のもと各処理を実行する。鍵生成装置110、登録装置120、検索要求装置130、検索装置140、及び計算装置150−1〜Uのそれぞれでの演算結果は、それぞれが有するメモリ116、126、136、146、及び156−1〜Uに格納され、必要に応じて読み出されて他の演算に使用される。
<事前処理>
前述したSetupが実行され、マスタ鍵情報MSK,公開パラメータPKが定められる。マスタ鍵情報MSKは、鍵生成装置110(図2A)のマスタ鍵情報記憶部113に格納され、公開パラメータPKは、鍵生成装置110、登録装置120、検索要求装置130、検索装置140、及び計算装置150−1〜Uのそれぞれで利用可能なように設定される。
<データベース登録処理>
登録装置120(図2B)の入力部121には、検索装置のDB記憶部143に登録するP個の検索対象情報Text(i)(i∈{1,...,P},P≧1)と当該検索対象情報Text(i)にそれぞれ対応する登録用のキーワードKWT(i)が入力される。登録用のキーワードKWT(i)はベクトル設定部125aに入力される。ベクトル設定部125aは、システム内で定められた規則に従って、登録用のキーワードKWT(i)に対応するη次元ベクトルW(i)=(w1,i,...,wη,i)(i∈{1,...,P})を設定する。システム内で定められた規則に従って検索方式(完全一致検索、前方一致検索、後方一致検索、部分一致検索など)と検索用のキーワードKWQとの組に対してη次元ベクトルV=(v1,...,vη)が定まり、当該検索方式と検索用のキーワードKWQとの組に対して登録用のキーワードKWTがヒットする場合に内積(w1,i,...,wη,i)・(v1,...,vη)=0となるのであれば、ベクトルW(i)=(w1,i,...,wη,i)をどのように定めてもよい。例えば、ベクトル設定部125aは、非特許文献7に記載された登録用のキーワードから属性ベクトルを生成する技術を用いてベクトルW(i)=(w1,i,...,wη,i)を生成する。P個の検索対象情報Text(i)及びベクトルW(i)=(w1,i,...,wη,i)(i∈{1,...,P})は暗号化部125cに送られる。乱数生成部125bはP個の乱数r(i)(i∈{1,...,P})を生成し、P個の乱数r(i)(i∈{1,...,P})は暗号化部125cに送られる。
暗号化部125cは、有限体Fqの元である乱数υ0,i1,i,...,υζ,iを生成する。暗号化部125cは、乱数υ0,i1,i,...,υζ,iとベクトルW(i)=(w1,i,...,wη,i)を用い、式(22)の(w1,...,wη)に(w1,i,...,wη,i)を代入し、式(22)の(υ01,...,υζ)に(υ0,i1,i,...,υζ,i)を代入し、i(i∈{1,...,P})のそれぞれに対応するN次元ベクトル(N=η+ζ)である暗号文IND(i)=(T(i,1),...,T(i,N))を得る。
また暗号化部125cは、gT τ・υ1,iを共通鍵KEY(i)とし、所定の共通鍵暗号方式に則って乱数r(i)の暗号文T(i)を生成する。暗号文T(i)はgT τ・υ1,i=MAP(T(i), r(i))を満たす。添え字のυ1,iはυ1,iを意味する。なお、暗号文IND(i)=(T(i,1),...,T(i,N))を正しく復号することでKEY(i)=gT τ・υ1,iが得られる。例えば暗号化部125cは、乱数r(i)と乱数υ1,iとを用い、式(24)のmesにr(i)を代入し、式(24)のυ1に乱数υ1,iを代入し、i(i∈{1,...,P})のそれぞれに対応する暗号文T(i)を得る。
さらに暗号化部125cは、システム内で定められた任意の暗号化方式(共通鍵暗号方式や公開鍵暗号方式等)に則って検索対象情報Text(i)を暗号化して暗号文C(i)を生成する。
i(i∈{1,...,P})のそれぞれに対応するC(i),(T(i,1),...,T(i,N)), T(i), r(i)はインデックス生成部125dに入力される。インデックス生成部125dは、(T(i,1),...,T(i,N)), T(i), r(i)の組み合わせを暗号文C(i)に対応するインデックスとして対応付ける。i(i∈{1,...,P})のそれぞれに対応する暗号文C(i)とそれに対応付けられたインデックス(T(i,1),...,T(i,N)), T(i), r(i)とは出力部122に入力される。出力部122はこれらを出力する。暗号文C(i)とインデックス(T(i,1),...,T(i,N)), T(i), r(i)とは、例えば可搬型記憶媒体又は安全な通信路を経由し、検索装置140(図3A)に送られる。
暗号文C(i)とインデックス(T(i,1),...,T(i,N)), T(i), r(i)とは検索装置140の入力部141に入力され、DB記憶部143に格納される。これにより、DB記憶部143には、以下のような暗号化データベースが格納される。
C(1), I1=((T(1,1),...,T(1,N)), T(1), r(1))
C(2), I2=((T(2,1),...,T(2,N)), T(2), r(2)) …(26)
...
C(P), IP=((T(P,1),...,T(P,N)), T(P), r(P))
<検索処理>
検索用のキーワードKWQが検索要求装置130(図2C)の入力部131に入力される。検索用のキーワードKWQはベクトル設定部135に送られる。ベクトル設定部135は、システム内で定められた規則に従い、検索方式と検索用のキーワードKWQとに対応するη次元ベクトルV=(v1,...,vη)を設定する。ベクトルV=(v1,...,vη)は、検索方式と検索用のキーワードKWQとの組に対し、ベクトルW(i)=(w1,i,...,wη,i)に対応する登録用のキーワードKWT(i)がヒットする場合に内積(w1,i,...,wη,i)・(v1,...,vη)=0となるものである。例えば、ベクトル設定部135は、非特許文献7に記載された検索用のキーワードから述語ベクトルを生成する技術を用いてベクトルV=(v1,...,vη)を生成する。
ベクトルV=(v1,...,vη)は出力部132に入力される。出力部132は、ネットワーク経由でベクトルV=(v1,...,vη)を鍵生成装置110(図2A)に送信する。ベクトルV=(v1,...,vη)は、鍵生成装置110の入力部111に入力され、鍵情報生成部115に送られる。鍵情報生成部115は、有限体Fqの元である乱数σ,σι-η∈Fqを生成する。鍵情報生成部115は、乱数σ,σι-η∈FqとベクトルV=(v1,...,vη)とマスタ鍵情報記憶部113に格納された行列B*とを用い、式(20)に従って、N次元ベクトル(N=η+ζ)である復号鍵D*=(Q(1),...,Q(N))をクエリQとして生成する。クエリQ=(Q(1),...,Q(N))は出力部112に入力される。出力部112は、ネットワーク経由でクエリQを検索要求装置130(図2C)に送信する。検索要求装置130は、入力部131でクエリQを受信し、さらに出力部132からネットワーク経由で検索装置140(図3A)にクエリQを送信する。
図4Aに例示するように、クエリQ=(Q(1),...,Q(N))は、検索装置140の入力部141に入力され(ステップS101)、並列処理依頼部145aに入力される。並列処理依頼部145aは、記憶部143に格納されている式(26)の暗号化データベースを用い、集合SUB(j)のすべての元t(j)について、t(j)∈SUB(j)のそれぞれに対応するMAP(T(t(j)),r(t(j)))を生成する。例えば、式(24)に従って暗号文T(t(j))が生成される場合、MAP(T(t(j)),r(t(j)))としてT(t(j))/r(t(j))が生成される。また、j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)であり、t(j)∈SUB(j)である。一例を挙げるとU=Pかつt(j)=jである。並列処理依頼部145aは、クエリQ=(Q(1),...,Q(N))と、集合SUB(j)のすべての元t(j)について、t(j)∈SUB(j)のそれぞれに対応するIND(t(j))=(T(t(j),1),...,T(t(j),N))、MAP(T(t(j)),r(t(j)))及び識別子ID(t(j))を含む並列処理情報を生成し、出力部142に送る(ステップS102)。出力部142は、クエリQ=(Q(1),...,Q(N))とIND(t(j))=(T(t(j),1),...,T(t(j),N))とMAP(T(t(j)),r(t(j)))と識別子ID(t(j))とを含む並列処理情報のそれぞれを、ネットワーク経由で、j∈{1,...,U}のそれぞれに対応する計算装置150−j(図3B)に送信する(ステップS103)。
図4Aに例示するように、j∈{1,...,U}のそれぞれに対応する並列処理情報は、計算装置150−jの入力部151−jに入力され、検証部155−jに送られる(ステップS111)。検証部155−jは、クエリQ=(Q(1),...,Q(N))を用いて内積述語暗号方式に則って暗号文IND(t(j))=(T(t(j),1),...,T(t(j),N))を復号することで像MAP(T(t(j)),r(t(j)))が得られるかを検証する。すなわち、検証部155−jは、(T(t(j),1),...,T(t(j),N))と(Q(1),...,Q(N))とを双線形写像MEに入力し、その演算結果MEt(j)がMAP(T(t(j)),r(t(j)))となるかを検証する。例えば、式(24)に従って暗号文T(t(j))が生成される場合、検証部155−jは、
MEt(j)n=1 N e(T(t(j),n), Q(n)) …(27)
を計算し、
MEt(j)=T(t(j))/r(t(j)) …(28)
を満たすかを判定する(ステップS111)。
MEt’(j)=MAP(T(t’(j)),r(t’(j)))を満たすt’(j)が存在した場合(真)、検証部155−jは、MEt’(j)=MAP(T(t’(j)),r(t’(j)))を満たすt’(j)に対応する識別子ID(t’(j))を出力部152−jに送る。出力部152−jは、ネットワーク経由で識別子ID(t’(j))を検証装置140に送信し(ステップS113)、処理を終了する。一方、MEt’(j)=MAP(T(t’(j)),r(t’(j)))を満たすt’(j)が存在しなかった場合(偽)、計算装置150−jは識別子を出力することなく処理を終了する。
計算装置150−jのそれぞれから送信された識別子ID(t’(j))は、検索装置140(図3A)の入力部141に入力され、抽出部145bに送られる(ステップS104)。抽出部145bは識別子ID(t’(j))が表すt’(j)に対応する暗号文C(t’(j))をDB記憶部143から抽出し、出力部142に送る(ステップS105)。出力部142は、暗号文C(t’(j))をネットワーク経由で検索要求装置130に送信する(ステップS106)。
〔第2実施形態〕
第2実施形態の詳細を説明する。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する処理部・ステップについては、第1実施形態と同じ参照番号を用いて説明を簡略化する。
<構成>
図1に例示するように、本形態の検索可能暗号システム2は、鍵生成装置110と登録装置220と検索要求装置130と検索装置240とBU個(BU≧2)の計算装置250−1〜BUを有し、これらはネットワークを通じて通信可能である。
図2Bに例示するように、本形態の登録装置220は、入力部121と出力部122と制御部224とベクトル設定部125aと乱数生成部125bと暗号化部125cとインデックス生成部225dとメモリ126とを有する。図5Aに例示するように、本形態の検索装置240は、入力部241と出力部242とデータベース(DB)記憶部243と制御部244と並列処理依頼部145aと抽出部245bとメモリ236とを有する。図5Bに例示するように、本形態の計算装置250−y(y∈{1,...,BU})は、入力部251−yと出力部252−yと制御部254−yと双線形写像計算部255−yとメモリ256−yとを有する。
なお、登録装置220、検索装置240、及び計算装置250−1〜BUのそれぞれは、例えば、公知のコンピュータ又は専用コンピュータに特別なプログラムが読み込まれて構成される特別な装置である。登録装置220、検索装置240、及び計算装置250−1〜BUのそれぞれは、それぞれが有する制御部224、244、及び制御部254−1〜BUの制御のもと各処理を実行する。登録装置220、検索装置240、及び計算装置250−1〜BUのそれぞれでの演算結果は、それぞれが有するメモリ126、246、及び256−1〜Uに格納され、必要に応じて読み出されて他の演算に使用される。
<事前処理>
登録装置120、検索装置140、及び計算装置150−1〜Uが登録装置220、検索装置240、及び計算装置250−1〜BUに置換される以外、第1実施形態と同じである。
<データベース登録処理>
第1実施形態との相違点は、登録装置220(図2B)のインデックス生成部225dが、((T(i,1),...,T(i,N)), MAP(T(i), r(i)))を暗号文C(i)に対応するインデックスとして生成し、検索装置240のDB記憶部243に以下のような暗号化データベースが格納される点である。なお、MAP(T(i), r(i)))の例はT(i)/r(i)である。
C(1), I1=((T(1,1),...,T(1,N)), MAP(T(1), r(1)))
C(2), I2=((T(2,1),...,T(2,N)), MAP(T(2), r(2))) …(29)
...
C(P), IP=((T(P,1),...,T(P,N)), MAP(T(P), r(P)))
<検索処理>
第1実施形態と同様に検索要求装置130(図2C)から出力されたクエリQ=(Q(1),...,Q(N))は、図6Aに例示するように、検索装置240(図5A)の入力部241に入力され(ステップS101)、並列処理依頼部245aに入力される。並列処理依頼部245aは、DB記憶部243に格納されている式(29)の暗号化データベースとクエリQ=(Q(1),...,Q(N))を用い、集合BSUB(y)のすべての元bt(y)について、bt(y)∈BSUB(y)のそれぞれに対応する並列処理依頼情報T(i, bt(y)),Q(bt(y))を生成し、出力部242に送る(ステップS202)。ただし、y∈{1,...,BU}, y’∈{1,...,BU-1}, BS(1)={1,...,N}, BS(y’+1)=BS(y’)-BSUB(y’), BSUB(y’)⊂BS(y’), BSUB(BU)=BS(BU)であり、bt(y)∈BSUB(y)である。一例を挙げるとBU=Nかつbt(y)=yである。出力部242は、集合BSUB(y)のすべての元bt(y)について、bt(y)∈BSUB(y)のそれぞれに対応するT(i, bt(y)),Q(bt(y))を、ネットワーク経由で計算装置250−y(図5B)に送信する(ステップS203)。
図6Bに例示するように、bt(y)∈BSUB(y)のそれぞれに対応するT(i, bt(y)),Q(bt(y))は、計算装置250−yの入力部251−yに入力され、双線形写像計算部255−yに送られる(ステップS211)。双線形写像計算部255−yは、双線形写像e(T(i, bt(y)),Q(bt(y)))を計算し、その計算結果(双線形写像計算結果)e(T(i, bt(y)),Q(bt(y)))を出力部252−yに送る(ステップS212)。出力部252−yは、双線形写像計算結果e(T(i, bt(y)),Q(bt(y)))を、ネットワーク経由で検索装置240に送信する(ステップS213)。
図6Aに例示するように、計算装置250−yのそれぞれから送信された双線形写像計算結果e(T(i, bt(y)),Q(bt(y)))は、検索装置240(図5A)の入力部241に入力され、検証部245cに送られる(ステップS204)。検証部245cは、DB記憶部243に格納されている式(29)の暗号化データベースと双線形写像計算結果e(T(i, bt(y)),Q(bt(y)))とを用い、i∈{1,...,P}のそれぞれについて、MEin=1 N e(T(i,n),Q(n))を計算し、MEi=MAP(T(i),r(i))を満たすか検証する。例えば、式(24)に従って暗号文T(t(j))が生成される場合、検証部245cは、MEi=T(i)/r(i)を満たすかを検証する(ステップS214)。
MEi=MAP(T(i),r(i))を満たすiを表す識別子ID(i)は抽出部145bに送られる。抽出部145bは識別子ID(i)が表すiに対応する暗号文C(i)をDB記憶部143から抽出し、出力部142に送る(ステップS205)。出力部142は、暗号文C(i)をネットワーク経由で検索要求装置130に送信する(ステップS206)。
〔第3実施形態〕
第3実施形態の詳細を説明する。本形態は第1の実施形態の変形例であり、インデックスやクエリの生成を複数の計算装置で並列に実行する。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する処理部・ステップについては、第1実施形態と同じ参照番号を用いて説明を簡略化する。
<構成>
図7に例示するように、本形態の検索可能暗号システム3は、鍵生成装置310と登録装置320と検索要求装置130と検索装置140とU個(U≧2)の計算装置150−1〜UとEU個(EU≧2)の計算装置350−1〜EUとQU個(QU≧2)の計算装置360−1〜QUとを有し、これらはネットワークを通じて通信可能である。
図8Aに例示するように、本形態の鍵生成装置310は、入力部311と出力部312とマスタ鍵情報記憶部113と制御部314と並列処理依頼部315aとクエリ生成部315bとメモリ316とを有する。図8Bに例示するように、本形態の計算装置360−g(g∈{1,...,QU})は、入力部361−gと出力部362−gと制御部364−gとクエリ計算部365−gとメモリ366−gとを有する。
図9Aに例示するように、本形態の登録装置320は、入力部321と出力部322と制御部324とベクトル設定部125aと乱数生成部125bと暗号化部325cとインデックス生成部325dとメモリ326とを有する。なお、記載の便宜上、図9Aには2個の出力部322が記載されているが、これは実際の出力部322の個数と無関係である。図9Bに例示するように、本形態の計算装置350−f(f∈{1,...,EU})は、入力部351−fと出力部352−fと制御部354−fとインデックス計算部355−fとメモリ356−fとを有する。
なお、鍵生成装置310、登録装置320及び計算装置350−1〜EU,360−1〜QUのそれぞれは、例えば、公知のコンピュータ又は専用コンピュータに特別なプログラムが読み込まれて構成される特別な装置である。鍵生成装置310、登録装置320及び計算装置350−1〜EU,360−1〜QUのそれぞれは、それぞれが有する制御部314、324、364−1〜QU及び354−1〜EUの制御のもと各処理を実行する。鍵生成装置310、登録装置320及び計算装置350−1〜EU、360−1〜QUのそれぞれでの演算結果は、それぞれが有するメモリ316、326、356−1〜EU、366−1〜QUに格納され、必要に応じて読み出されて他の演算に使用される。
<事前処理>
前述したSetupが実行され、マスタ鍵情報MSK,公開パラメータPKが定められる。マスタ鍵情報MSKは、鍵生成装置310(図8A)のマスタ鍵情報記憶部113に格納され、公開パラメータPKは、鍵生成装置310、登録装置320、検索要求装置130、検索装置140、U個(U≧2)の計算装置150−1〜U、EU個(EU≧2)の計算装置350−1〜EU、及びQU個(QU≧2)の計算装置350−1〜QUのそれぞれで利用可能なように設定される。
<データベース登録処理>
インデックスを構成するN次元ベクトルIND(i)=(T(i,1),...,T(i,N))は以下の関係を満たす。ただし、Kが2以上の整数であり、k∈{1,...,K}であり、(W(i,1),...,W(i,K))がK次元ベクトルであり、bk=(b1,k,...,bN,k)が基底ベクトルである(式(12))。
IND(i)=Σk=1 K W(i,k)・bk
=(W(i,1)・b1,1,...,W(i,1)・bN,1)+(W(i,2)・b1,2,...,W(i,2)・bN,2)
+...+(W(i,K)・b1,K,...,W(i,K)・bN,K)
=(Σk=1 K W(i,k)・b1,k, Σk=1 K W(i,k)・b2,k,..., Σk=1 K W(i,k)・bN,k) …(30)
すなわち、暗号文である(T(i,1),...,T(i,N))の各要素T(i,n)(n∈{1,...,N})は、T(i,n)=Σk=1 K W(i,k)・bn,kを満たす。本形態では、(T(i,1),...,T(i,N))の各要素T(i,n)の計算を複数の計算装置350−1〜EUで実行する。以下では式(22)に従って(T(i,1),...,T(i,N))が生成される例を説明する。式(22)はK=Nの場合の例であり、以下ではK=Nの場合の例を示す。
図10Aに例示するように、登録装置320(図9A)の入力部321に、検索装置のDB記憶部143に登録するP個の検索対象情報Text(i)(i∈{1,...,P},P≧1)と当該検索対象情報Text(i)にそれぞれ対応する登録用のキーワードKWT(i)が入力される(ステップS301)。登録用のキーワードKWT(i)はベクトル設定部125aに入力される。ベクトル設定部125aは、第1実施形態と同様にシステム内で定められた規則に従って、登録用のキーワードKWT(i)に対応するη次元ベクトルW(i)=(w1,i,...,wη,i)(i∈{1,...,P})を設定する(ステップS302)。
P個の検索対象情報Text(i)及びベクトルW(i)=(w1,i,...,wη,i)(i∈{1,...,P})は並列処理依頼部325eに送られる。本形態の並列処理依頼部325eは、有限体Fqの元である乱数υ0,i1,i,...,υζ,iを生成し、ベクトル(w1,i,...,wη,i)と乱数υ0,i1,i,...,υζ,iとを用い、以下のように(W(i,1),...,W(i,K)) (K=N)を生成する。
(W(i,1),...,W(i,K))=(υ0,i・w1,i,...,υ0,i・wη,i, υ1,i,...,υζ,i) …(31)
(W(i,1),...,W(i,K))及びbk=(b1,k,...,bN,k)は並列処理情報として出力部322に送られる。出力部322は、計算装置350−f(f∈{1,...,EU})のそれぞれに対し、集合ESUB(f)のすべての元et(f)について、et(f)∈ESUB(f)のそれぞれに対応する(bet(f),1,...,bet(f),K)及び(W(i,1),...,W(i,K))を出力する。ただし、f∈{1,...,EU}, f’∈{1,...,EU-1}, ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)であり、et(f)∈ESUB(f)である。例えば、EU=Nかつet(f)=fである(ステップS303)。
et(f)∈ESUB(f)のそれぞれに対応する(bet(f),1,...,bet(f),K)及び(W(i,1),...,W(i,K))は、ネットワークを経由して計算装置350−f(f∈{1,...,EU})に送信される。図10Bに例示するように、(bet(f),1,...,bet(f),K)及び(W(i,1),...,W(i,K))は、計算装置350−f(図9B)の入力部351−fに入力され(ステップS311)、インデックス計算部355−fに入力される。インデックス計算部355−fは、これらを用いてインデックスの要素T(i, et(f))=Σk=1 K W(i,k)・bet(f),kを計算する(ステップS312)。インデックスの要素T(i, et(f))は出力部352−fに入力され、そこからネットワーク経由で登録装置320(図9A)に送信される(ステップS313)。
図10Aに例示するように、計算装置350−f(f∈{1,...,EU})のそれぞれから送信されたインデックスの要素T(i, et(f))は、登録装置320の入力部321に入力され、暗号化部325cに送られる(ステップS304)。暗号化部325cは、送られたインデックスの要素T(i, et(f))からIND(i)=(T(i,1),...,T(i,N))を生成する(ステップS304)。
乱数生成部125bはP個の乱数r(i)(i∈{1,...,P})を生成し、P個の乱数r(i)(i∈{1,...,P})は暗号化部325cに送られる(ステップS305)。暗号化部125cには、さらにステップS303で並列処理依頼部325eが生成した乱数υ1,iが入力される。暗号化部125cは、gT τ・υ1,iを共通鍵KEY(i)とし、所定の共通鍵暗号方式に則って乱数r(i)の暗号文T(i)を生成する。暗号文T(i)はgT τ・υ1,i=MAP(T(i), r(i))を満たす。例えば暗号化部325cは、乱数r(i)と乱数υ1,iとを用い、式(24)のmesにr(i)を代入し、式(24)のυ1に乱数υ1,iを代入し、i(i∈{1,...,P})のそれぞれに対応する暗号文T(i)を得る。さらに暗号化部125cに検索対象情報Text(i)が入力され、暗号化部125cは、システム内で定められた任意の暗号化方式に則って検索対象情報Text(i)を暗号化して暗号文C(i)を生成する(ステップS306)。
i(i∈{1,...,P})のそれぞれに対応するC(i),(T(i,1),...,T(i,N)), T(i), r(i)はインデックス生成部325dに入力される。インデックス生成部325dは、(T(i,1),...,T(i,N)), T(i), r(i)の組み合わせを暗号文C(i)に対応するインデックスとして対応付ける(ステップS307)。i(i∈{1,...,P})のそれぞれに対応する暗号文C(i)とそれに対応付けられたインデックス(T(i,1),...,T(i,N)), T(i), r(i)とは出力部322に入力される。出力部322はこれらを出力する。暗号文C(i)とインデックス(T(i,1),...,T(i,N)), T(i), r(i)とは、例えば可搬型記憶媒体又は安全な通信路を経由し、検索装置140(図3A)に送られ、式(26)のように検索装置140のDB記憶部143に格納される(ステップS308)。
<検索処理>
クエリであるN次元ベクトルQ=(Q(1),...,Q(N))は以下の関係を満たす。ただし、(V(1),...,V(K’))がK’次元ベクトルであり、bk’ *=(b1,k’ *,...,bN,k’ *)が基底ベクトルである(式(14))。
Q=Σk’=1 K’ V(k’)・bk’ *
=(V(1)・b1,1 *,...,V(1)・bN,1 *)
+(V(2)・b1,2 *,...,V(2)・bN,2 *)+...+(V(K’)・b1,K’ *,...,V(K’)・bN,K’ *)
=(Σk’=1 K’ V(k’)・b1,k’ *, Σk’=1 K’ V(k’)・b2,k’ *,..., Σk’=1 K’ V(k’)・bN,k’ *)
…(32)
すなわち、復号鍵である(Q(1),...,Q(N))の各要素Q(n)(n∈{1,...,N})はQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たす。本形態では、(Q(1),...,Q(N))の各要素Q(n)の計算を複数の計算装置360−1〜QUで実行する。なお、式(20)はK’=η+ζ'≦Nの場合の例であり、以下ではK’=η+ζ'の場合の例を示す。
第1実施形態と同様に検索要求装置130(図2C)から送信されたベクトルV=(v1,...,vη)は、鍵生成装置310(図8A)の入力部311に入力され(ステップS321)、並列処理依頼部315aに入力される。本形態の並列処理依頼部315aは、有限体Fqの元である乱数σ,σι-η∈Fqを生成し、ベクトル(v1,...,vη)と乱数σ,σι-η∈Fqとを用い、以下のように(V(1),...,W(K’)) (K’=η+ζ')を生成する。
(V(1),...,V(K’))=(σ・v1,...,σ・vη, σ1,...,σζ’) …(33)
(V(1),...,V(K’))及びマスタ鍵情報記憶部113から読み出された行列B*を構成する基底ベクトルbk’ *=(b1,k’ *,...,bN,k’ *)は並列処理情報として出力部312に送られる。出力部322は、計算装置360−g(g∈{1,...,QU})のそれぞれに対し、集合QSUB(g)のすべての元qt(g)について、qt(g)∈QSUB(g)のそれぞれに対応する(b1,k’ *,...,bN,k’ *)及び(V(1),...,V(K’))を出力する。ただし、g∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)であり、qt(g)∈QSUB(g)である。例えば、QU=Nかつqt(f)=gである(ステップS322)。
qt(g)∈QSUB(g)のそれぞれに対応する(b1,k’ *,...,bN,k’ *)及び(V(1),...,V(K’))は、ネットワークを経由して計算装置360−g(g∈{1,...,QU})に送信される。図11Bに例示するように、(b1,k’ *,...,bN,k’ *)及び(V(1),...,V(K’))は、計算装置360−g(図8B)の入力部361−gに入力され(ステップS331)、クエリ計算部365−gに入力される。クエリ計算部365−gは、これらを用いてクエリの要素Q(qt(g))=Σk’=1 K’ V(k’)・bqt(g),k’ *を計算する(ステップS332)。クエリの要素Q(qt(g))は出力部362−gに入力され、そこからネットワーク経由で鍵生成装置310(図8A)に送信される(ステップS333)。
図11Aに例示するように、計算装置360−g(g∈{1,...,QU})のそれぞれから送信されたクエリの要素Q(qt(g))は、鍵生成装置310の入力部311に入力され、クエリ生成部315bに送られる(ステップS323)。クエリ生成部315bは、送られたクエリの要素Q(qt(g))からインデックスQ=(Q(1),...,Q(N))を生成する(ステップS324)。クエリQ=(Q(1),...,Q(N))は出力部312に入力される。出力部312は、ネットワーク経由でクエリQを検索要求装置130(図2C)に送信する(ステップS325)。検索要求装置130は、入力部131でクエリQを受信し、さらに出力部132からネットワーク経由で検索装置140(図3A)にクエリQを送信する。その後、第1実施形態のステップS101以降の処理が実行される。
〔第3実施形態の変形例〕
第3実施形態では、第1実施形態のインデックスの生成及びクエリの生成を複数の計算装置で実行する例を示した。しかしながら、第2実施形態のインデックスの生成及びクエリの生成を複数の計算装置で実行してもよい。この場合、ステップS308で、式(26)のように暗号化データベースが検索装置140のDB記憶部143に格納されるのではなく、式(29)のように暗号化データベースが検索装置240のDB記憶部243に格納される。また、ステップS325以降、第1実施形態のステップS101以降の処理が実行される代わりに、第2実施形態のステップS101以降の処理が実行される。
〔第4実施形態〕
第4実施形態の詳細を説明する。本形態は第1,3の実施形態の変形例である。以下では、第1,3実施形態との相違点を中心に説明し、第1,3実施形態と共通する処理部・ステップについては、第1,3実施形態と同じ参照番号を用いて説明を簡略化する。
<構成>
図7に例示するように、本形態の検索可能暗号システム4は、鍵生成装置310と登録装置320と検索要求装置130と検索装置140とU個(U≧2)の計算装置150−1〜UとEU個(EU≧2)の計算装置450−1〜EUとQU個(QU≧2)の計算装置460−1〜QUとを有し、これらはネットワークを通じて通信可能である。
図8Bに例示するように、本形態の計算装置460−g(g∈{1,...,QU})は、入力部361−gと出力部362−gと制御部464−gとクエリ計算部465−gとメモリ366−gとを有する。図9Bに例示するように、本形態の計算装置450−f(f∈{1,...,EU})は、入力部351−fと出力部352−fと制御部454−fとインデックス計算部455−fとメモリ356−fとを有する。
なお、計算装置450−1〜EU,460−1〜QUのそれぞれは、例えば、公知のコンピュータ又は専用コンピュータに特別なプログラムが読み込まれて構成される特別な装置である。計算装置450−1〜EU,460−1〜QUのそれぞれは、それぞれが有する制御部464−1〜QU及び454−1〜EUの制御のもと各処理を実行する。計算装置350−1〜EU、360−1〜QUのそれぞれでの演算結果は、それぞれが有するメモリ356−1〜EU、366−1〜QUに格納され、必要に応じて読み出されて他の演算に使用される。
<事前処理>
計算装置350−1〜EU及び計算装置350−1〜QUが計算装置450−1〜EU及び計算装置450−1〜QUに置換される以外、第3実施形態と同様である。
<データベース登録処理>
図10Aに例示するように、第3実施形態のステップS301〜S303の処理が実行される。図10Bに例示するように、(bet(f),1,...,bet(f),K)及び(W(i,1),...,W(i,K))は、計算装置450−f(図9B)の入力部351−fに入力され(ステップS311)、インデックス計算部455−fに入力される。インデックス計算部455−fは、これらを用いてインデックスの要素ERND・T(i, et(f))=ERND・Σk=1 K W(i,k)・bet(f),kを計算する(ステップS412)。なお、ERNDは例えば乱数であり、前述のようにERND及びQRNDがERND・QRND=1を満たす。インデックスの要素ERND・T(i, et(f))は出力部452−fに入力され、そこからネットワーク経由で登録装置320(図9A)に送信される(ステップS413)。その後、T(i, et(f))をERND・T(i, et(f))として、第3実施形態のステップS304〜S308の処理が実行される。
<検索処理>
図11Aに例示するように、第3実施形態のステップS321及びS322の処理が実行される。qt(g)∈QSUB(g)のそれぞれに対応する(b1,k’ *,...,bN,k’ *)及び(V(1),...,V(K’))は、ネットワークを経由して計算装置460−g(g∈{1,...,QU})に送信される。図11Bに例示するように、(b1,k’ *,...,bN,k’ *)及び(V(1),...,V(K’))は、計算装置460−g(図8B)の入力部361−gに入力され(ステップS331)、クエリ計算部465−gに入力される。クエリ計算部465−gは、これらを用いてクエリの要素QRND・Q(qt(g))=QRND・Σk’=1 K’ V(k’)・bqt(g),k’ *を計算する(ステップS432)。クエリの要素QRND・Q(qt(g))は出力部362−gに入力され、そこからネットワーク経由で鍵生成装置310(図8A)に送信される(ステップS433)。その後、Q(qt(g))をQRND・Q(qt(g))として、第3実施形態のステップS323〜S325の処理が実行される。その後、Q(qt(g))をQRND・Q(qt(g))とし、T(i, et(f))をERND・T(i, et(f))として、第1実施形態のステップS101以降の処理が実行される。
〔第4実施形態の変形例1〕
第4実施形態では、Q(qt(g))をQRND・Q(qt(g))とし、T(i, et(f))をERND・T(i, et(f))とし、第1実施形態のインデックスの生成及びクエリの生成を複数の計算装置で実行する例を示した。しかしながら、Q(qt(g))をQRND・Q(qt(g))とし、T(i, et(f))をERND・T(i, et(f))とし、第2実施形態のインデックスの生成及びクエリの生成を複数の計算装置で実行してもよい。
〔第4実施形態の変形例2〕
その他、計算装置350−1〜EUで生成されたインデックスの要素と、計算装置360−1〜QUで生成されたクエリの要素とが、登録装置320や検索要求装置130を経由せずに、計算装置150−1〜Uに直接送信され、計算装置150−1〜Uが検証処理を実行してもよい。
〔その他の変形例〕
本発明は上述の実施の形態に限定されるものではない。例えば、上記の各実施形態で説明した有限体上の元や演算が群上での元や演算に置換されてもよいし、環上での元や演算に置換されてもよい。登録装置と検索装置とが一体であってもよいし、検索要求装置と検索装置とが一体であってもよい。装置間の情報がネットワークを通じて行われる代わりに、可搬型記録媒体を介して行われてもよい。非特許文献5〜7の検索可能暗号方式に本発明を適用してもよいし、その他の検索可能暗号方式に本発明を適用してもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
〔プログラム〕
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部がハードウェアで実現されてもよい。
1〜4 検索可能暗号システム
110,310 鍵生成装置
120,220,320 登録装置
130 検索要求装置
140,240 検索装置
150,350,360,450,460 計算装置

Claims (16)

  1. 暗号文に対応する情報と復号鍵に対応する情報とが特定の関係を満たす場合に前記暗号文が前記復号鍵で復号可能となる暗号方式を用いた検索可能暗号システムであって、
    Pが1以上の整数であり、Uが2以上の整数であり、i∈{1,...,P}であり、情報W(i)に対応する暗号文がIND(i)であり、情報Vに対応する復号鍵がQであり、前記暗号文IND(i)及び前記復号鍵Qが前記暗号方式に則って得られるものであり、前記暗号文IND(i)を正しく復号して得られる値がKEY(i)であり、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、
    検索装置とU個の計算装置CM(1),...,CM(U)とを有し、
    前記検索装置は、
    i∈{1,...,P}のそれぞれに対応する暗号文C(i)とインデックス(IND(i), T(i), r(i))とを含む暗号化データベースが格納された記憶部と、
    前記復号鍵Qの入力を受け付ける入力部と、
    j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)であり、前記復号鍵Qと、集合SUB(j)のすべての元t(j)についてのt(j)∈SUB(j)のそれぞれに対応するIND(t(j)), MAP(T(t(j)),r(t(j)))と、を計算装置CM(j)に対して出力する出力部と、を含み、
    前記計算装置CM(j)は、
    前記復号鍵Qを用いて前記暗号方式に則って前記暗号文IND(t(j))を復号することで前記像MAP(T(t(j)),r(t(j)))が得られるかを検証する検証部を含む、
    検索可能暗号システム。
  2. 請求項1の検索可能暗号システムであって、
    Nが2以上の整数であり、前記情報W(i)及び前記情報Vがベクトルであり、前記暗号文IND(i)が前記情報W(i)に対応するN次元ベクトル(T(i,1),...,T(i,N))であり、前記復号鍵Qが前記情報Vに対応するN次元ベクトル(Q(1),...,Q(N))であり、eが双線形写像であり、前記復号鍵Qを用いて前記暗号方式に則って前記暗号文IND(t(j))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記情報W(i)と前記情報Vとの内積が0のときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たす、検索可能暗号システム。
  3. Pが1以上の整数であり、BU, Nが2以上の整数であり、i∈{1,...,P}であり、ベクトルW(i)に対応する暗号文がN次元ベクトル(T(i,1),...,T(i,N))であり、ベクトルVに対応する復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、eが双線形写像であり、前記復号鍵(Q(1),...,Q(N))を用いて前記暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記ベクトルW(i)と前記ベクトルVとの内積が0のときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、
    検索装置とBU個の計算装置BM(1),...,BM(BU)とを有し、
    前記検索装置は、
    y∈{1,...,BU}, y’∈{1,...,BU-1}, BS(1)={1,...,N}, BS(y’+1)=BS(y’)-BSUB(y’), BSUB(y’)⊂BS(y’), BSUB(BU)=BS(BU)であり、((T(i,1),...,T(i,N)), MAP(T(i),r(i))),(Q(1),...,Q(N))を用い、集合BSUB(y)のすべての元bt(y)について、bt(y)∈BSUB(y)のそれぞれに対応するT(i, bt(y)),Q(bt(y))を計算装置BM(y)に対して出力する出力部を含み、
    前記計算装置BM(y)は、e(T(i,bt(y)),Q(bt(y)))を計算する双線形写像計算部を含み、
    前記検索装置は、y∈{1,...,BU}のそれぞれに対応する前記計算装置BM(y)で計算されたe(T(i, bt(y)),Q(bt(y)))を用いてΠn=1 N e(T(i,n),Q(n))を計算し、それによって前記像MAP(T(i),r(i))が得られるかを検証する検証部を含む、
    検索可能暗号システム。
  4. 請求項2又は3の検索可能暗号システムであって、
    EUが2以上の整数であり、Kが2以上の整数であり、k∈{1,...,K}であり、(W(i,1),...,W(i,K))がK次元ベクトルであり、(b1,k,...,bN,k)がN次元ベクトルであり、前記N次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、
    EU個の計算装置EM(1),...,EM(EU)をさらに有し、f∈{1,...,EU}, f’∈{1,...,EU-1},ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)であり、計算装置EM(f)が、集合ESUB(f)のすべての元et(f)についてet(f)∈ESUB(f)のそれぞれに対応するT(i, et(f))=Σk=1 K W(i,k)・bet(f),kを計算する、検索可能暗号システム。
  5. 請求項2から4の何れかの検索可能暗号システムであって、
    QUが2以上の整数であり、K’が2以上の整数であり、k’∈{1,...,K’}であり、(V(1),...,V(K’))がK’次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、前記N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、
    QU個の計算装置QM(1),...,QM(QU)をさらに有し、g∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)であり、計算装置QM(g)が、集合QSUB(g)のすべての元qt(g)についてqt(g)∈QSUB(g)のそれぞれに対応するQ(qt(g))=Σk’=1 K’ V(k’)・bqt(g),k’ *を計算する、検索可能暗号システム。
  6. Pが1以上の整数であり、EU, QU, U, N, K, K’が2以上の整数であり、i∈{1,...,P}, k∈{1,...,K}, k’∈{1,...,K’}であり、(b1,k,...,bN,k)がN次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、(W(i,1),...,W(i,K))がK次元ベクトルであり、暗号文であるN次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、(V(1),...,V(K’))がK'次元ベクトルであり、復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、前記N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、eが双線形写像であり、前記復号鍵(Q(1),...,Q(N))を用いて前記暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記暗号文(T(i,1),...,T(i,N))が前記復号鍵(Q(1),...,Q(N))で正しく復号できたときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、ERND及びQRNDがERND・QRND=1を満たし、
    EU個の計算装置EM(1),...,EM(EU)とQU個の計算装置QM(1),...,QM(QU)とU個の計算装置CM(1),...,CM(U)とを有し、
    f∈{1,...,EU}, f’∈{1,...,EU-1}, ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)であり、計算装置EM(f)が、集合ESUB(f)のすべての元et(f)について、et(f)∈ESUB(f)のそれぞれに対応するERND・T(i, et(f))=ERND・Σk=1 K W(i,k)・bet(f),kを生成し、
    g∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)であり、計算装置QM(g)が、集合QSUB(g)のすべての元qt(g)について、qt(g)∈QSUB(g)のそれぞれに対応するQRND・Q(qt(g))=QRND・Σk’=1 K’ V(k’)・bqt(g),k’ *を計算し、
    j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)であり、計算装置CM(j)が、集合SUB(j)のすべての元t(j)についての、t(j)∈SUB(j)のそれぞれに対応するΠn=1 N e(ERND・T(t(j),n), QRND・Q(n))を計算し、それによって前記像MAP(T(t(j)),r(t(j)))が得られるかを検証する、検索可能暗号システム。
  7. 請求項6の検索可能暗号システムであって、
    ERND及びQRNDが乱数である、検索可能暗号システム。
  8. 請求項1から7の何れかの検索可能暗号システムであって、
    前記値r(i)が乱数である、検索可能暗号システム。
  9. 請求項1から8の何れかの検索可能暗号システムであって、
    前記像MAP(T(i),r(i))がT(i)/r(i)である、検索可能暗号システム。
  10. 暗号文に対応する情報と復号鍵に対応する情報とが特定の関係を満たす場合に前記暗号文が前記復号鍵で復号可能となる暗号方式を用いた検索可能暗号システムに用いられる検索装置であって、
    Pが1以上の整数であり、Uが2以上の整数であり、i∈{1,...,P}であり、情報W(i)に対応する暗号文がIND(i)であり、情報Vに対応する復号鍵がQであり、前記暗号文IND(i)及び前記復号鍵Qが前記暗号方式に則って得られるものであり、前記暗号文IND(i)を正しく復号して得られる値がKEY(i)であり、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、
    i∈{1,...,P}のそれぞれに対応する暗号文C(i)とインデックス(IND(i), T(i), r(i))とを含む暗号化データベースが格納された記憶部と、
    前記復号鍵Qの入力を受け付ける入力部と、
    j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)であり、前記復号鍵Qと、集合SUB(j)のすべての元t(j)についてのt(j)∈SUB(j)のそれぞれに対応するIND(t(j)), MAP(T(t(j)),r(t(j)))と、を計算装置CM(j)に対して出力する出力部と、
    を有する検索装置。
  11. Pが1以上の整数であり、BU, Nが2以上の整数であり、i∈{1,...,P}であり、ベクトルW(i)に対応する暗号文がN次元ベクトル(T(i,1),...,T(i,N))であり、ベクトルVに対応する復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、eが双線形写像であり、前記復号鍵(Q(1),...,Q(N))を用いて前記暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記ベクトルW(i)と前記ベクトルVとの内積が0のときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、
    y∈{1,...,BU}, y’∈{1,...,BU-1}, BS(1)={1,...,N}, BS(y’+1)=BS(y’)-BSUB(y’), BSUB(y’)⊂BS(y’), BSUB(BU)=BS(BU)であり、((T(i,1),...,T(i,N)), MAP(T(i),r(i))),(Q(1),...,Q(N))を用い、集合BSUB(y)のすべての元bt(y)について、bt(y)∈BSUB(y)のそれぞれに対応するT(i, bt(y)),Q(bt(y))を計算装置BM(y)に対して出力する出力部と、
    y∈{1,...,BU}のそれぞれに対応する前記計算装置BM(y)で計算されたe(T(i, bt(y)),Q(bt(y)))を用いてΠn=1 N e(T(i,n),Q(n))を計算し、それによって前記像MAP(T(i),r(i))が得られるかを検証する検証部と、
    を有する検索装置。
  12. Pが1以上の整数であり、EU, QU, U, N, K, K’が2以上の整数であり、i∈{1,...,P}, k∈{1,...,K}, k’∈{1,...,K’}であり、(b1,k,...,bN,k)がN次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、(W(i,1),...,W(i,K))がK次元ベクトルであり、暗号文であるN次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、(V(1),...,V(K’))がK’次元ベクトルであり、復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、前記N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、eが双線形写像であり、前記復号鍵(Q(1),...,Q(N))を用いて前記暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記暗号文(T(i,1),...,T(i,N))が前記復号鍵(Q(1),...,Q(N))で正しく復号できたときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、ERND及びQRNDがERND・QRND=1を満たし、
    f∈{1,...,EU}, f’∈{1,...,EU-1}, ES(1)={1,...,N}, ES(f’+1)=ES(f’)-ESUB(f’), ESUB(f’)⊂ES(f’), ESUB(EU)=ES(EU)であり、集合ESUB(f)のすべての元et(f)について、et(f)∈ESUB(f)のそれぞれに対応するERND・T(i, et(f))=ERND・Σk=1 K W(i,k)・bet(f),kを生成する暗号化部と、
    ERND・T(i, et(f))を出力する出力部と、
    を有する計算装置。
  13. Pが1以上の整数であり、EU, QU, U, N, K, K’が2以上の整数であり、i∈{1,...,P}, k∈{1,...,K}, k’∈{1,...,K’}であり、(b1,k,...,bN,k)がN次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、(W(i,1),...,W(i,K))がK次元ベクトルであり、暗号文であるN次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、(V(1),...,V(K’))がK’次元ベクトルであり、復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、前記N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、eが双線形写像であり、前記復号鍵(Q(1),...,Q(N))を用いて前記暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記暗号文(T(i,1),...,T(i,N))が前記復号鍵(Q(1),...,Q(N))で正しく復号できたときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、ERND及びQRNDがERND・QRND=1を満たし、
    g∈{1,...,QU}, g’∈{1,...,QU-1}, QS(1)={1,...,N}, QS(g’+1)=QS(g’)-QSUB(g’), QSUB(g’)⊂QS(g’), QSUB(QU)=QS(QU)であり、計算装置QM(g)が、集合QSUB(g)のすべての元qt(g)について、qt(g)∈QSUB(g)のそれぞれに対応するQRND・Q(qt(g))=QRND・Σk’=1 K’ V(k’)・bqt(g),k’ *を計算する復号鍵生成部と、
    QRND・Q(qt(g))を出力する出力部と、
    を有する計算装置。
  14. Pが1以上の整数であり、EU, QU, U, N, K, K’が2以上の整数であり、i∈{1,...,P}, k∈{1,...,K}, k’∈{1,...,K’}であり、(b1,k,...,bN,k)がN次元ベクトルであり、(b1,k’ *,...,bN,k’ *)がN次元ベクトルであり、(W(i,1),...,W(i,K))がK次元ベクトルであり、暗号文であるN次元ベクトル(T(i,1),...,T(i,N))の各要素T(i,n) (n∈{1,...,N})がT(i,n)=Σk=1 K W(i,k)・bn,kを満たし、(V(1),...,V(K’))がK’次元ベクトルであり、復号鍵がN次元ベクトル(Q(1),...,Q(N))であり、前記N次元ベクトル(Q(1),...,Q(N))の各要素Q(n) (n∈{1,...,N})がQ(n)=Σk’=1 K’ V(k’)・bn,k’ *を満たし、eが双線形写像であり、前記復号鍵(Q(1),...,Q(N))を用いて前記暗号文(T(i,1),...,T(i,N))を復号する処理がΠn=1 N e(T(i,n),Q(n))を計算する処理であり、前記暗号文(T(i,1),...,T(i,N))が前記復号鍵(Q(1),...,Q(N))で正しく復号できたときにKEY(i)=Πn=1 N e(T(i,n),Q(n))を満たし、或る値T(i)及びr(i)からなる組の像MAP(T(i),r(i))が前記値KEY(i)であり、ERND及びQRNDがERND・QRND=1を満たし、
    j∈{1,...,U}, j’∈{1,...,U-1}, S(1)={1,...,P}, S(j’+1)=S(j’)-SUB(j’), SUB(j’)⊂S(j’), SUB(U)=S(U)であり、計算装置CM(j)が、集合SUB(j)のすべての元t(j)についてt(j)∈SUB(j)のそれぞれに対応するΠn=1 N e(ERND・T(t(j),n),QRND・Q(n))を計算し、それによって前記像MAP(T(t(j)),r(t(j)))が得られるかを検証する検証部を有する計算装置。
  15. 請求項10又は11の検索装置としてコンピュータを機能させるためのプログラム。
  16. 請求項12から14の何れかの計算装置としてコンピュータを機能させるためのプログラム。
JP2012011113A 2012-01-23 2012-01-23 検索可能暗号システム、検索装置、計算装置、及びプログラム Active JP5651609B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012011113A JP5651609B2 (ja) 2012-01-23 2012-01-23 検索可能暗号システム、検索装置、計算装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012011113A JP5651609B2 (ja) 2012-01-23 2012-01-23 検索可能暗号システム、検索装置、計算装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2013148822A true JP2013148822A (ja) 2013-08-01
JP5651609B2 JP5651609B2 (ja) 2015-01-14

Family

ID=49046359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012011113A Active JP5651609B2 (ja) 2012-01-23 2012-01-23 検索可能暗号システム、検索装置、計算装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP5651609B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640090B2 (en) 2014-02-24 2017-05-02 Mitsubishi Electric Corporation Cryptographic system and computer readable medium
US10516534B2 (en) 2015-04-07 2019-12-24 Mitsubishi Electric Corporation Cryptographic system and key generation apparatus
US11831769B2 (en) 2018-05-08 2023-11-28 Mitsubishi Electric Corporation Registration device, server device, searchable encryption system, and searchable encryption method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061103A (ja) * 2008-05-30 2010-03-18 Nec (China) Co Ltd 高速検索可能な暗号化のための方法、装置およびシステム
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061103A (ja) * 2008-05-30 2010-03-18 Nec (China) Co Ltd 高速検索可能な暗号化のための方法、装置およびシステム
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHAY, A. ET AL.: "Encrypted Keyword Search in a Distributed Storage System", CSAIL TECHNICAL REPORTS, vol. MIT-CSAIL-TR-2006-010, JPN6014046985, 23 February 2006 (2006-02-23), ISSN: 0002934621 *
吉田麗生 他: "内積述語検索可能暗号のためのバッチ検索アルゴリズム", 2011年暗号と情報セキュリティシンポジウム講演論文集, JPN6014046981, 25 January 2011 (2011-01-25), ISSN: 0002934620 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640090B2 (en) 2014-02-24 2017-05-02 Mitsubishi Electric Corporation Cryptographic system and computer readable medium
US10516534B2 (en) 2015-04-07 2019-12-24 Mitsubishi Electric Corporation Cryptographic system and key generation apparatus
US11831769B2 (en) 2018-05-08 2023-11-28 Mitsubishi Electric Corporation Registration device, server device, searchable encryption system, and searchable encryption method

Also Published As

Publication number Publication date
JP5651609B2 (ja) 2015-01-14

Similar Documents

Publication Publication Date Title
CN112019591B (zh) 一种基于区块链的云数据共享方法
CN109639677B (zh) 一种可限制访问次数的云存储外包解密属性基加密方法
JP6083234B2 (ja) 暗号処理装置
US9100185B2 (en) Encryption processing apparatus and method
CN109831430B (zh) 一种云计算环境下的安全可控高效的数据共享方法及系统
EP2228942B1 (en) Securing communications sent by a first user to a second user
WO2011052056A1 (ja) データ処理装置
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
JP2016012111A (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
JPWO2016203762A1 (ja) 暗号情報作成装置、暗号情報作成方法、記録媒体、及び、照合システム
CN104871477A (zh) 加密系统、重加密密钥生成装置、重加密装置、加密方法和加密程序
JP5852551B2 (ja) 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム
JP5400740B2 (ja) 検索可能暗号システム、検索可能暗号方法、ストレージ装置、検索装置、及び登録者装置
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
US10484182B2 (en) Encrypted text verification system, method, and recording medium
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
JP5651609B2 (ja) 検索可能暗号システム、検索装置、計算装置、及びプログラム
JP5730805B2 (ja) 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP7233265B2 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
JP7117964B2 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
Salman et al. A homomorphic cloud framework for big data analytics based on elliptic curve cryptography
JP5486519B2 (ja) 検索システム、判定装置、ベクトル構成装置、その方法及びプログラム
JP5931795B2 (ja) 鍵交換システム、鍵生成装置、通信装置、鍵交換方法及びプログラム
JP5400809B2 (ja) 検索可能暗号システム、ストレージ装置、それを検索する装置、検索可能暗号方法、及びプログラム
KR101865703B1 (ko) 키 생성 방법 및 장치, 암호화 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141022

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141117

R150 Certificate of patent or registration of utility model

Ref document number: 5651609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150