JPWO2019124134A1 - 検索装置、検索方法、プログラム、および記録媒体 - Google Patents
検索装置、検索方法、プログラム、および記録媒体 Download PDFInfo
- Publication number
- JPWO2019124134A1 JPWO2019124134A1 JP2019560978A JP2019560978A JPWO2019124134A1 JP WO2019124134 A1 JPWO2019124134 A1 JP WO2019124134A1 JP 2019560978 A JP2019560978 A JP 2019560978A JP 2019560978 A JP2019560978 A JP 2019560978A JP WO2019124134 A1 JPWO2019124134 A1 JP WO2019124134A1
- Authority
- JP
- Japan
- Prior art keywords
- concealed
- operation result
- search
- concealment
- word
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
Description
[第1実施形態]
第1実施形態を説明する。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行う。
図1に例示するように、本実施形態の検索システム1は、検索を依頼する依頼装置11、および検索を行う検索装置12−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
記憶部128−hには、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N)(例えば、図4および図6のDB参照)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]が格納されている。ただし、m,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、t(i)≦Nである。検索対象ワードxiに含まれるt(i)個の文字xi,1,…,xi,t(i)は検索対象となる通常文字である。一方、検索対象ワードxiに含まれる残りのN−t(i)個の文字xi,t(i)+1,…,xi,Nはヌル値を表す特殊文字(ヌル文字)である。ヌル文字は予め定められており(例えば、“0”)、通常文字として利用されない。t(i)=Nの場合、検索対象ワードxiはヌル文字を含まない。各文字は例えば有限体の元で表現される。秘密分散方式に基づく秘密計算が行われる場合、秘匿化検索対象ワード[xi]は検索対象ワードxiの秘密分散値である。準同型性暗号方式に基づく秘密計算が行われる場合、秘匿化検索対象ワード[xi]は検索対象ワードxiの暗号文である。文字xi,1,…,xi,t(i),…,xi,Nのそれぞれを別々に秘匿化して得られた秘匿値[xi,1],…,[xi,t(i)],…,[xi,N]の集合を秘匿化検索対象ワード[xi]としてもよいし、N個の文字xi,1,…,xi,t(i),…,xi,Nをまとめて秘匿化したものを秘匿化検索対象ワード[xi]としてもよい。また、各秘匿化検索対象ワード[xi]には、コンテンツまたはネットワーク上のコンテンツの位置を表すコンテンツ情報の秘匿値が対応付けられていてもよい。
図3を用いて本実施形態の検索処理を説明する。
依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)(例えば、図4および図6参照)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knは1個以上のワイルドカード文字を含んでもよい。文字k1,…,knのうちワイルドカード以外の文字は通常文字である。ワイルドカード文字は予め定められており(例えば、「*」)、通常文字として利用されない。また、1個のワイルド文字は1個の通常文字または1個のヌル文字に対応する(以下の各実施形態でも同じである)。上述の検索対象ワードxi(ただしi=1,…,m)がヌル文字を含まない場合、文字k1,…,knのどの文字がワイルドカード文字であってもよい。一方、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含む場合、本実施形態ではkt(i)+1,…,kNがワイルドカード文字を含まないことにする。検索ワードkに含まれるN−n個の文字kn+1,…,kNはヌル文字である。ただし、n=Nの場合、検索ワードkはヌル文字を含まない(例えば、図4参照)。検索ワードkに含まれたヌル文字は、上述の検索対象ワードxi含まれたヌル文字と同一である。検索装置12−hで秘密分散方式に基づく秘密計算が行われるのであれば、秘匿化検索ワード[k]は検索ワードkの秘密分散値である。一方、検索装置12−hで準同型性暗号方式に基づく秘密計算が行われるのであれば、秘匿化検索ワード[k]は検索ワードkの暗号文である。文字k1,…,kn,…,kNのそれぞれを別々に秘匿化して得られた秘匿値[k1],…,[kn],…,[kN]の集合を秘匿化検索ワード[k]としてもよいし、N個の文字k1,…,kn,…,kNをまとめて秘匿化したものを秘匿化検索ワード[k]としてもよい。
以下に、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1である場合の具体例を示す。
上述のように、本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量(例えば、O(N)の通信量)で行うことができる。
検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合、第1実施形態の方法では正しく完全一致検索を行うことができないことがある。例えば、図11の例の場合、検索対象ワードx3の文字x3,n,…,xi,Nがヌル文字であり、検索ワードkの文字knがワイルドカード文字である。ワイルドカード文字はどのような通常文字にも一致すると判定しなければならないが、ワイルドカード文字はヌル文字とは一致しないと判定しなければならない。しかし、j=1,…,n‐1についてx3,j=kjを満たす場合、第1実施形態の方法ではy3=(1,1,…,1,…,1,1,1,…,1)となり、z3=1となる。本実施形態では、このような場合にも正しく完全一致検索を行う方式を説明する。なお、以下ではこれまで説明した事項との相違点を中心に説明し、共通する事項については同じ参照番号を引用して説明を簡略化する。
図1に例示するように、本実施形態の検索システム2は、検索を依頼する依頼装置11、および検索を行う検索装置22−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。
第1実施形態と同じである。
図10を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。第1実施形態と異なり、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kNがワイルドカード文字を含んでいてもよい。
以下にa0=0、a1=1、b0=0、b1=1、ρ0=0、ρ1=1、d0=0、d1=1、g0=0、g1=1である場合の具体例を示す。
上述のように、本実施形態では、検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第3実施形態は第1実施形態の変形例である。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行う。
図1に例示するように、本実施形態の検索システム3は、検索を依頼する依頼装置11、および検索を行う検索装置32−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
第1実施形態と同一である。
図14を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。検索対象ワードxi(ただしi=1,…,m)がヌル文字を含まない場合、文字k1,…,knのどの文字がワイルドカード文字であってもよい。一方、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含む場合、本実施形態ではkt(i)+1,…,kNがワイルドカード文字を含まないことにする。
以下に、a0=0、a1=1、b0=0、b1=1、c0=0、c1=1、d0=0、d1=1、g0=0、g1=1である場合の具体例を示す。
上述のように、本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第4実施形態は第2,3実施形態の変形例である。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行う。完全一致検索の場合と同様、検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合、第3実施形態の方法では正しく前方一致検索を行うことができないことがある。本実施形態では、このような場合にも正しく前方一致検索を行う方式を説明する。
図1に例示するように、本実施形態の検索システム4は、検索を依頼する依頼装置11、および検索を行う検索装置42−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
第1実施形態と同じである。
図17を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。第3実施形態と異なり、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kNがワイルドカード文字を含んでいてもよい。
以下に、a0=0、a1=1、b0=0、b1=1、c0=0、c1=1、d0=0、d1=1、ρ0=0、ρ1=1、g0=0、g1=1である場合の具体例を示す。図18および図19はn<Nおよびt(i)<Nの例である。knがワイルドカード文字「*」であり、kn+1,…,kNおよびxi,t(i)+1,…,xi,Nがヌル文字である。
上述のように、本実施形態では、検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第5実施形態は第1,2実施形態の変形例である。第1,2実施形態では秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であることが前提であった。これに対し、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず、完全一致検索を行うことができる。
記憶部128−hには、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N(i))(例えば、図21のDB参照)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]が格納されている。ただし、m,t(i),N(i)が正整数であり、i=1,…,mであり、j(i)=1,…,N(i)であり、t(i)≦N(i)である。検索対象ワードxiに含まれるt(i)個の文字xi,1,…,xi,t(i)は検索対象となる通常文字である。一方、検索対象ワードxiに含まれる残りのN(i)−t(i)個の文字xi,t(i)+1,…,xi,N(i)はヌル文字である。文字xi,1,…,xi,t(i),…,xi,N(i)のそれぞれを別々に秘匿化して得られた秘匿値[xi,1],…,[xi,t(i)],…,[xi,N(i)]の集合を秘匿化検索対象ワード[xi]としてもよいし、N(i)個の文字xi,1,…,xi,t(i),…,xi,N(i)をまとめて秘匿化したものを秘匿化検索対象ワード[xi]としてもよい。その他は第1実施形態で述べた通りである。
図20を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、j=1,…,Nであり、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kNがワイルドカード文字を含んでいてもよい。n,Nが正整数であり、n≦Nである。N≦N(i)のときMmin=Nであり、N>N(i)のときMmin=N(i)である。このようなMminをMmin=min(N(i),N)と表記する。また、N≦N(i)のときNmax=N(i)であり、N>N(i)のときNmax=Nである。このようなMmaxをMmax=max(N(i),N)と表記する。記載表記の制約上、Nminを「Nmin」と表記し、Nmaxを「Nmax」と表記する場合がある。j”=Mmin+1,…,Nであり、j”(i)=Mmin+1,…,N(i)である。ただし、Mmin+1≧Nのときj”は空であり、Mmin+1≧N(i)のときj”(i)は空である。前述のように、文字k1,…,kn,…,kNのそれぞれを別々に秘匿化して得られた秘匿値[k1],…,[kn],…,[kN]の集合を秘匿化検索ワード[k]としてもよいし、N個の文字k1,…,kn,…,kNをまとめて秘匿化したものを秘匿化検索ワード[k]としてもよい。
本実施形態の処理をN=N(i)の場合、N>N(i)の場合、N<N(i)の場合に区分して記載すると以下のようになる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがワイルドカード文字の場合にwj=b1であり、kjがワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得て出力する。論理和演算部523−hは、秘匿化演算結果[ei]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびwj=b0の両方を満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]=[e’i]を得て出力する。例えば、図23に例示するように、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx2,j=kjを満たす場合、e2=(1,1,…,1,0,1,0,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、y2=e’2=(1,1,…,1,1,1,0,1,…,1)となる。そのため、z2=0となる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=a1であり、xi,j(i)がkj(i)でない場合にei,j(i)=a0である、演算結果ei=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)がワイルドカード文字の場合にwj(i)=d1であり、kj(i)がワイルドカード文字でない場合にwj(i)=d0である、演算結果w=(w1,…,wN(i))が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部525−h(第1ヌル判定部)は、秘匿化検索ワード[k]の少なくとも一部を用いた秘密計算によって、kj”(i)がヌル文字の場合にu’j”(i)=c1であり、kj”(i)がヌル文字でない場合にu’j”(i)=c0である、演算結果u’N(i)+1,…,u’Nが秘匿された秘匿化演算結果[u’]を得て出力する。論理和演算部523−hは、秘匿化演算結果[ei]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j(i)=a1およびwj(i)=b1の少なくとも一方を満たす場合にe’i,j(i)=d1であり、ei,j(i)=a0およびwj(i)=b0の両方を満たす場合にe’i,j(i)=d0である、演算結果e’i=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’i]を得て出力する。連結部528−hは、秘匿化演算結果[u’]および秘匿化演算結果[e’i]を用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’N)が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図22に例示するように、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx1,j=kjを満たす場合、e1=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、e’1=(1,1,…,1,1,1,1,1,…,1)となり、y1=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z1=1となる。
m,n,t(i),N,N(i)が正整数であり、N<N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、j”(i)=N+1,…,N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがワイルドカード文字の場合にwj=b1であり、kjがワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得て出力する。論理和演算部523−hは、秘匿化演算結果[ei]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にe’i,j=d1であり、ei,j=a0およびwj=b0の両方を満たす場合にe’i,j=d0である、演算結果e’i=(e’i,1,…,e’i,N)が秘匿された秘匿化演算結果[e’i]を得て出力する。ヌル判定部524−h(第2ヌル判定部)は、秘匿化検索対象ワード[xi]の少なくとも一部を用いた秘密計算によって、xi,j”(i)がヌル文字の場合にμ’i,j”(i)=d1であり、xi,j”(i)がヌル文字でない場合にμ’i,j”(i)=d0である、演算結果μ’i=(μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[μ’i]を得て出力する。連結部528−hは、秘匿化演算結果[e’i]と秘匿化演算結果[μ’i]とを用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図24に例示するように、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx3,j=kjを満たす場合、e3=(1,1,…,1,0,0,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、e’3=(1,1,…,1,1,0,1,1,…,1)となり、y3=(1,1,…,1,1,0,1,1,…,1,1)となる。そのため、z3=0となる。
上述のように、本実施形態では、検索ワードkがワイルドカード文字を含み得る場合であっても、検索ワードkおよび検索対象ワードxiの少なくとも一方がヌル文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。さらに、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第6実施形態は第3,4実施形態の変形例である。第3,4実施形態では秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であることが前提であった。これに対し、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず、前方一致検索を行うことができる。
第5実施形態と同じである。
本実施形態の処理をN>N(i)の場合、N≦N(i)の場合に区分して記載すると以下のようになる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=a1であり、xi,j(i)がkj(i)でない場合にei,j(i)=a0である、演算結果ei=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)がワイルドカード文字の場合にwj(i)=b1であり、kj(i)がワイルドカード文字でない場合にwj(i)=b0である、演算結果w=(w1,…,wN(i))が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部625−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にu”j=c1であり、kjがヌル文字でない場合にu”j=c0である、演算結果u”=(u”1,…,u”N)が秘匿された秘匿化演算結果[u”]を得て出力する。論理和演算部623−hは、秘匿化演算結果[w]と秘匿化演算結果[u”]の少なくとも一部を用いた秘密計算によって、u”j(i)=c1およびwj(i)=b1の少なくとも一方を満たす場合にw’j(i)=b’1であり、u”j(i)=c0およびwj(i)=b0の両方を満たす場合にw’j(i)=b’0である、演算結果w’=(w’1,…,w’N(i))が秘匿された秘匿化演算結果[w’]を得て出力する。論理和演算部623−hは、秘匿化演算結果[ei]と秘匿化演算結果[w’]とを用いた秘密計算によって、e’i,j(i)=a1およびw’j(i)=b’1の少なくとも一方を満たす場合にe’i,j(i)=d1であり、ei,j(i)=a0およびw’j(i)=b’0の両方を満たす場合にyi,j(i)=d0である、演算結果e’i=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’i]を得て出力する。連結部628−hは秘匿化演算結果[e’i]と秘匿化演算結果[u”]の少なくとも一部とを用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”N)が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図26に例示するように、a0=0、a1=1、b0=0、b1=1、b’0=0、b’1=1、c0=0、c1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx1,j=kjを満たす場合、e1=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’1=(1,1,…,1,1,1,1,1,…,1)となり、y1=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z1=1となる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがワイルドカード文字の場合にwj=b1であり、kjがワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部625−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にu”j=c1であり、kjがヌル文字でない場合にu”j=c0である、演算結果u”=(u”1,…,u”N)が秘匿された秘匿化演算結果[u”]を得て出力する。論理和演算部623−hは、秘匿化演算結果[w]と秘匿化演算結果[u”]を用いた秘密計算によって、u”j=c1およびwj=b1の少なくとも一方を満たす場合にw’j=b’1であり、u”j=c0およびwj=b0の両方を満たす場合にw’j=b’0である、演算結果w’=(w’1,…,w’N)が秘匿された秘匿化演算結果[w’]を得て出力する。論理和演算部623−hは、秘匿化演算結果[ei]と秘匿化演算結果[w’]とを用いた秘密計算によって、ei,j=a1およびw’j=b’1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびw’j=b’0の両方を満たす場合にyi,j=d0である、演算結果e’i=yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図27に例示するように、a0=0、a1=1、b0=0、b1=1、b’0=0、b’1=1、c0=0、c1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx1,j=kjを満たし、N=N(2)の場合、e2=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’2=(1,1,…,1,1,1,1,1,…,1)となり、y2=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z1=1となる。例えば、図28に例示するように、N<N(3)の場合、e3=(1,1,…,1,0,0,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’3=(1,1,…,1,1,0,1,1,…,1)となり、y3=(1,1,…,1,1,0,1,1,…,1,1)となる。そのため、z3=0となる。
上述のように、本実施形態では、検索ワードkがワイルドカード文字を含み得る場合であっても、検索ワードkおよび検索対象ワードxiの少なくとも一方がヌル文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。さらに、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
なお、本発明は上述の実施形態に限定されるものではない。例えば、検索装置が秘匿化演算結果[yi]をそのまま出力してもよいし、秘匿化演算結果[yi]に対してステップS127−hとは異なる秘密計算を施し、それによって得られた結果を出力してもよい。
参考文献1: Ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, Tomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation”, TCC 2006, pp. 285-304.
参考文献2:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考(Secure Database Operations Using An Improved 3-party Verifiable Secure Function Evaluation)”, In CSS, 2010.
参考文献3:Takashi Nishide, Kazuo Ohta, “Multiparty computation for interval, equality, and comparison without bit-decomposition protocol”, PKC, pp. 343-360, 2007.
12−1〜H,22−1〜H,32−1〜H,42−1〜H 検索装置
[第1実施形態]
第1実施形態を説明する。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行う。
図1に例示するように、本実施形態の検索システム1は、検索を依頼する依頼装置11、および検索を行う検索装置12−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
記憶部128−hには、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N)(例えば、図4および図6のDB参照)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]が格納されている。ただし、m,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、t(i)≦Nである。検索対象ワードxiに含まれるt(i)個の文字xi,1,…,xi,t(i)は検索対象となる通常文字である。一方、検索対象ワードxiに含まれる残りのN−t(i)個の文字xi,t(i)+1,…,xi,Nはヌル値を表す特殊文字(ヌル文字)である。ヌル文字は予め定められており(例えば、“0”)、通常文字として利用されない。t(i)=Nの場合、検索対象ワードxiはヌル文字を含まない。各文字は例えば有限体の元で表現される。秘密分散方式に基づく秘密計算が行われる場合、秘匿化検索対象ワード[xi]は検索対象ワードxiの秘密分散値である。準同型性暗号方式に基づく秘密計算が行われる場合、秘匿化検索対象ワード[xi]は検索対象ワードxiの暗号文である。文字xi,1,…,xi,t(i),…,xi,Nのそれぞれを別々に秘匿化して得られた秘匿値[xi,1],…,[xi,t(i)],…,[xi,N]の集合を秘匿化検索対象ワード[xi]としてもよいし、N個の文字xi,1,…,xi,t(i),…,xi,Nをまとめて秘匿化したものを秘匿化検索対象ワード[xi]としてもよい。また、各秘匿化検索対象ワード[xi]には、コンテンツまたはネットワーク上のコンテンツの位置を表すコンテンツ情報の秘匿値が対応付けられていてもよい。
図3を用いて本実施形態の検索処理を説明する。
依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)(例えば、図4および図6参照)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knは1個以上のワイルドカード文字を含んでもよい。文字k1,…,knのうちワイルドカード文字以外の文字は通常文字である。ワイルドカード文字は予め定められており(例えば、「*」)、通常文字として利用されない。また、1個のワイルド文字は1個の通常文字または1個のヌル文字に対応する(以下の各実施形態でも同じである)。上述の検索対象ワードxi(ただしi=1,…,m)がヌル文字を含まない場合、文字k1,…,knのどの文字がワイルドカード文字であってもよい。一方、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含む場合、本実施形態ではkt(i)+1,…,kNがワイルドカード文字を含まないことにする。検索ワードkに含まれるN−n個の文字kn+1,…,kNはヌル文字である。ただし、n=Nの場合、検索ワードkはヌル文字を含まない(例えば、図4参照)。検索ワードkに含まれたヌル文字は、上述の検索対象ワードxi に含まれたヌル文字と同一である。検索装置12−hで秘密分散方式に基づく秘密計算が行われるのであれば、秘匿化検索ワード[k]は検索ワードkの秘密分散値である。一方、検索装置12−hで準同型性暗号方式に基づく秘密計算が行われるのであれば、秘匿化検索ワード[k]は検索ワードkの暗号文である。文字k1,…,kn,…,kNのそれぞれを別々に秘匿化して得られた秘匿値[k1],…,[kn],…,[kN]の集合を秘匿化検索ワード[k]としてもよいし、N個の文字k1,…,kn,…,kNをまとめて秘匿化したものを秘匿化検索ワード[k]としてもよい。
以下に、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1である場合の具体例を示す。
上述のように、本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量(例えば、O(N)の通信量)で行うことができる。
検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合、第1実施形態の方法では正しく完全一致検索を行うことができないことがある。例えば、図11の例の場合、検索対象ワードx3の文字x3,n,…,xi,Nがヌル文字であり、検索ワードkの文字knがワイルドカード文字である。ワイルドカード文字はどのような通常文字にも一致すると判定しなければならないが、ワイルドカード文字はヌル文字とは一致しないと判定しなければならない。しかし、j=1,…,n‐1についてx3,j=kjを満たす場合、第1実施形態の方法ではy3=(1,1,…,1,…,1,1,1,…,1)となり、z3=1となる。本実施形態では、このような場合にも正しく完全一致検索を行う方式を説明する。なお、以下ではこれまで説明した事項との相違点を中心に説明し、共通する事項については同じ参照番号を引用して説明を簡略化する。
図1に例示するように、本実施形態の検索システム2は、検索を依頼する依頼装置11、および検索を行う検索装置22−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。
第1実施形態と同じである。
図10を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。第1実施形態と異なり、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kNがワイルドカード文字を含んでいてもよい。
以下にa0=0、a1=1、b0=0、b1=1、ρ0=0、ρ1=1、d0=0、d1=1、g0=0、g1=1である場合の具体例を示す。
上述のように、本実施形態では、検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第3実施形態は第1実施形態の変形例である。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行う。
図1に例示するように、本実施形態の検索システム3は、検索を依頼する依頼装置11、および検索を行う検索装置32−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
第1実施形態と同一である。
図14を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。検索対象ワードxi(ただしi=1,…,m)がヌル文字を含まない場合、文字k1,…,knのどの文字がワイルドカード文字であってもよい。一方、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含む場合、本実施形態ではkt(i)+1,…,kNがワイルドカード文字を含まないことにする。
以下に、a0=0、a1=1、b0=0、b1=1、c0=0、c1=1、d0=0、d1=1、g0=0、g1=1である場合の具体例を示す。
上述のように、本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第4実施形態は第2,3実施形態の変形例である。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行う。完全一致検索の場合と同様、検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合、第3実施形態の方法では正しく前方一致検索を行うことができないことがある。本実施形態では、このような場合にも正しく前方一致検索を行う方式を説明する。
図1に例示するように、本実施形態の検索システム4は、検索を依頼する依頼装置11、および検索を行う検索装置42−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
第1実施形態と同じである。
図17を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。第3実施形態と異なり、検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kNがワイルドカード文字を含んでいてもよい。
以下に、a0=0、a1=1、b0=0、b1=1、c0=0、c1=1、d0=0、d1=1、ρ0=0、ρ1=1、g0=0、g1=1である場合の具体例を示す。図18および図19はn<Nおよびt(i)<Nの例である。knがワイルドカード文字「*」であり、kn+1,…,kNおよびxi,t(i)+1,…,xi,Nがヌル文字である。
上述のように、本実施形態では、検索対象ワードxiの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kNがワイルドカード文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第5実施形態は第1,2実施形態の変形例である。第1,2実施形態では秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であることが前提であった。これに対し、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず、完全一致検索を行うことができる。
図1に例示するように、本実施形態の検索システム5は、検索を依頼する依頼装置11、および検索を行う検索装置52−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
記憶部128−hには、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N(i))(例えば、図21のDB参照)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]が格納されている。ただし、m,t(i),N(i)が正整数であり、i=1,…,mであり、j(i)=1,…,N(i)であり、t(i)≦N(i)である。検索対象ワードxiに含まれるt(i)個の文字xi,1,…,xi,t(i)は検索対象となる通常文字である。一方、検索対象ワードxiに含まれる残りのN(i)−t(i)個の文字xi,t(i)+1,…,xi,N(i)はヌル文字である。文字xi,1,…,xi,t(i),…,xi,N(i)のそれぞれを別々に秘匿化して得られた秘匿値[xi,1],…,[xi,t(i)],…,[xi,N(i)]の集合を秘匿化検索対象ワード[xi]としてもよいし、N(i)個の文字xi,1,…,xi,t(i),…,xi,N(i)をまとめて秘匿化したものを秘匿化検索対象ワード[xi]としてもよい。その他は第1実施形態で述べた通りである。
図20を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。ただし、j=1,…,Nであり、nは正整数であり、n≦Nである。文字k1,…,knはワイルドカード文字を含んでもよい。検索対象ワードxiがヌル文字xi,t(i)+1,…,xi,N(i) を含んでいる場合に、kt(i)+1,…,kNがワイルドカード文字を含んでいてもよい。n,Nが正整数であり、n≦Nである。N≦N(i)のときMmin=Nであり、N>N(i)のときMmin=N(i)である。このようなMminをMmin=min(N(i),N)と表記する。また、N≦N(i)のときNmax=N(i)であり、N>N(i)のときNmax=Nである。このようなMmaxをMmax=max(N(i),N)と表記する。記載表記の制約上、Nminを「Nmin」と表記し、Nmaxを「Nmax」と表記する場合がある。j”=Mmin+1,…,Nであり、j”(i)=Mmin+1,…,N(i)である。ただし、Mmin+1≧Nのときj”は空であり、Mmin+1≧N(i)のときj”(i)は空である。前述のように、文字k1,…,kn,…,kNのそれぞれを別々に秘匿化して得られた秘匿値[k1],…,[kn],…,[kN]の集合を秘匿化検索ワード[k]としてもよいし、N個の文字k1,…,kn,…,kNをまとめて秘匿化したものを秘匿化検索ワード[k]としてもよい。
本実施形態の処理をN=N(i)の場合、N>N(i)の場合、N<N(i)の場合に区分して記載すると以下のようになる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがワイルドカード文字の場合にwj=b1であり、kjがワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得て出力する。論理和演算部523−hは、秘匿化演算結果[ei]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびwj=b0の両方を満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]=[e’i]を得て出力する。例えば、図23に例示するように、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx2,j=kjを満たす場合、e2=(1,1,…,1,0,1,0,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、y2=e’2=(1,1,…,1,1,1,0,1,…,1)となる。そのため、z2=0となる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=a1であり、xi,j(i)がkj(i)でない場合にei,j(i)=a0である、演算結果ei=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)がワイルドカード文字の場合にwj(i)=b 1 であり、kj(i)がワイルドカード文字でない場合にwj(i)=b 0 である、演算結果w=(w1,…,wN(i))が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部525−h(第1ヌル判定部)は、秘匿化検索ワード[k]の少なくとも一部を用いた秘密計算によって、kj”(i)がヌル文字の場合にu’j”(i)=c1であり、kj”(i)がヌル文字でない場合にu’j”(i)=c0である、演算結果u’N(i)+1,…,u’Nが秘匿された秘匿化演算結果[u’]を得て出力する。論理和演算部523−hは、秘匿化演算結果[ei]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j(i)=a1およびwj(i)=b1の少なくとも一方を満たす場合にe’i,j(i)=d1であり、ei,j(i)=a0およびwj(i)=b0の両方を満たす場合にe’i,j(i)=d0である、演算結果e’i=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’i]を得て出力する。連結部528−hは、秘匿化演算結果[u’]および秘匿化演算結果[e’i]を用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’N)が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図22に例示するように、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx1,j=kjを満たす場合、e1=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、e’1=(1,1,…,1,1,1,1,1,…,1)となり、y1=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z1=1となる。
m,n,t(i),N,N(i)が正整数であり、N<N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、j”(i)=N+1,…,N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがワイルドカード文字の場合にwj=b1であり、kjがワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得て出力する。論理和演算部523−hは、秘匿化演算結果[ei]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にe’i,j=d1であり、ei,j=a0およびwj=b0の両方を満たす場合にe’i,j=d0である、演算結果e’i=(e’i,1,…,e’i,N)が秘匿された秘匿化演算結果[e’i]を得て出力する。ヌル判定部524−h(第2ヌル判定部)は、秘匿化検索対象ワード[xi]の少なくとも一部を用いた秘密計算によって、xi,j”(i)がヌル文字の場合にμ’i,j”(i)=d1であり、xi,j”(i)がヌル文字でない場合にμ’i,j”(i)=d0である、演算結果μ’i=(μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[μ’i]を得て出力する。連結部528−hは、秘匿化演算結果[e’i]と秘匿化演算結果[μ’i]とを用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図24に例示するように、a0=0、a1=1、b0=0、b1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx3,j=kjを満たす場合、e3=(1,1,…,1,0,0,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、e’3=(1,1,…,1,1,0,1,1,…,1)となり、y3=(1,1,…,1,1,0,1,1,…,1,1)となる。そのため、z3=0となる。
上述のように、本実施形態では、検索ワードkがワイルドカード文字を含み得る場合であっても、検索ワードkおよび検索対象ワードxiの少なくとも一方がヌル文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。さらに、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
第6実施形態は第3,4実施形態の変形例である。第3,4実施形態では秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であることが前提であった。これに対し、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず、前方一致検索を行うことができる。
図1に例示するように、本実施形態の検索システム6は、検索を依頼する依頼装置11、および検索を行う検索装置62−hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
第5実施形態と同じである。
図25を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)を秘匿化して秘匿化検索ワード[k]を得る。依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置62−hに送られる。秘匿化検索ワード[k]は、検索装置62−hの入力部1291−hに入力されて記憶部128−hに格納される(ステップS1291−h)。その後、各i=1,…,mについて以下の処理が実行される。
本実施形態の処理をN>N(i)の場合、N≦N(i)の場合に区分して記載すると以下のようになる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=a1であり、xi,j(i)がkj(i)でない場合にei,j(i)=a0である、演算結果ei=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)がワイルドカード文字の場合にwj(i)=b1であり、kj(i)がワイルドカード文字でない場合にwj(i)=b0である、演算結果w=(w1,…,wN(i))が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部625−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にu”j=c1であり、kjがヌル文字でない場合にu”j=c0である、演算結果u”=(u”1,…,u”N)が秘匿された秘匿化演算結果[u”]を得て出力する。論理和演算部623−hは、秘匿化演算結果[w]と秘匿化演算結果[u”]の少なくとも一部を用いた秘密計算によって、u”j(i)=c1およびwj(i)=b1の少なくとも一方を満たす場合にw’j(i)=b’1であり、u”j(i)=c0およびwj(i)=b0の両方を満たす場合にw’j(i)=b’0である、演算結果w’=(w’1,…,w’N(i))が秘匿された秘匿化演算結果[w’]を得て出力する。論理和演算部623−hは、秘匿化演算結果[ei]と秘匿化演算結果[w’]とを用いた秘密計算によって、e i,j(i)=a1およびw’j(i)=b’1の少なくとも一方を満たす場合にe’i,j(i)=d1であり、ei,j(i)=a0およびw’j(i)=b’0の両方を満たす場合にe’ i,j(i)=d0である、演算結果e’i=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’i]を得て出力する。連結部628−hは秘匿化演算結果[e’i]と秘匿化演算結果[u”]の少なくとも一部とを用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”N)が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図26に例示するように、a0=0、a1=1、b0=0、b1=1、b’0=0、b’1=1、c0=0、c1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx1,j=kjを満たす場合、e1=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’1=(1,1,…,1,1,1,1,1,…,1)となり、y1=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z1=1となる。
m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)である。等号判定部521−hは、秘匿化検索対象ワード[xi]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得て出力する。ワイルドカード判定部522−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがワイルドカード文字の場合にwj=b1であり、kjがワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部625−hは、秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にu”j=c1であり、kjがヌル文字でない場合にu”j=c0である、演算結果u”=(u”1,…,u”N)が秘匿された秘匿化演算結果[u”]を得て出力する。論理和演算部623−hは、秘匿化演算結果[w]と秘匿化演算結果[u”]を用いた秘密計算によって、u”j=c1およびwj=b1の少なくとも一方を満たす場合にw’j=b’1であり、u”j=c0およびwj=b0の両方を満たす場合にw’j=b’0である、演算結果w’=(w’1,…,w’N)が秘匿された秘匿化演算結果[w’]を得て出力する。論理和演算部623−hは、秘匿化演算結果[ei]と秘匿化演算結果[w’]とを用いた秘密計算によって、ei,j=a1およびw’j=b’1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびw’j=b’0の両方を満たす場合にyi,j=d0である、演算結果e’i=yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得て出力する。例えば、図27に例示するように、a0=0、a1=1、b0=0、b1=1、b’0=0、b’1=1、c0=0、c1=1、d0=0、d1=1、g0=0、g1=1であり、kn−1がワイルドカード文字「*」であり、j=1,…,n−2,nについてx1,j=kjを満たし、N=N(2)の場合、e2=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’2=(1,1,…,1,1,1,1,1,…,1)となり、y2=(1,1,…,1,1,1,1,1,…,1)となる。そのため、z1=1となる。例えば、図28に例示するように、N<N(3)の場合、e3=(1,1,…,1,0,0,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’3=(1,1,…,1,1,0,1,1,…,1)となり、y3=(1,1,…,1,1,0,1,1,…,1)となる。そのため、z3=0となる。
上述のように、本実施形態では、検索ワードkがワイルドカード文字を含み得る場合であっても、検索ワードkおよび検索対象ワードxiの少なくとも一方がヌル文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。さらに、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
なお、本発明は上述の実施形態に限定されるものではない。例えば、検索装置が秘匿化演算結果[yi]をそのまま出力してもよいし、秘匿化演算結果[yi]に対してステップS127−hとは異なる秘密計算を施し、それによって得られた結果を出力してもよい。
参考文献1: Ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, Tomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation”, TCC 2006, pp. 285-304.
参考文献2:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考( A Three-party Secure Function Evaluation with Lightweight Verifiability Revisited)”, In CSS, 2010.
参考文献3:Takashi Nishide, Kazuo Ohta, “Multiparty computation for interval, equality, and comparison without bit-decomposition protocol”, PKC, pp. 343-360, 2007.
12−1〜H,22−1〜H,32−1〜H,42−1〜H 検索装置
Claims (13)
- 秘密計算によって完全一致検索を行う検索装置であって、
m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjが前記ワイルドカード文字の場合にwj=b1であり、kjが前記ワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびwj=b0の両方を満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得る論理和演算部と、
を有する検索装置。 - 秘密計算によって完全一致検索を行う検索装置であって、
m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjが前記ワイルドカード文字の場合にwj=b1であり、kjが前記ワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化検索対象ワード[xi]を用いた秘密計算によって、xi,jがヌル文字の場合にμi,j=θ0であり、xi,jがヌル文字でない場合にμi,j=θ1である、演算結果μi=(μi,1,…,μi,N)が秘匿された秘匿化演算結果[μi]を得るヌル判定部と、
前記秘匿化演算結果[w]と前記秘匿化演算結果[μi]とを用いた秘密計算によって、wj=b1およびμi,j=θ1の両方を満たす場合にvi,j=ρ1であり、wj=b0およびμi,j=θ0の少なくとも一方を満たす場合にvi,j=ρ0である、演算結果vi=(vi,1,…,vi,N)が秘匿された秘匿化演算結果[vi]を得る論理積演算部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[vi]とを用いた秘密計算によって、ei,j=a1およびvi,j=ρ1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびvi,j=ρ0の両方を満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得る論理和演算部と、
を有する検索装置。 - 秘密計算によって前方一致検索を行う検索装置であって、
m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjが前記ワイルドカード文字の場合にwj=b1であり、kjが前記ワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にuj=c1であり、kjがヌル文字でない場合にuj=c0である、演算結果u=(u1,…,uN)が秘匿された秘匿化演算結果[u]を得る第1ヌル判定部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[w]と前記秘匿化演算結果[u]とを用いた秘密計算によって、ei,j=a1、wj=b1、およびuj=c1の少なくとも何れかを満たす場合にyi,j=d1であり、ei,j=a0およびwj=b0およびuj=c0のすべての満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得る論理和演算部と、
を有する検索装置。 - 秘密計算によって前方一致検索を行う検索装置であって、
m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjが前記ワイルドカード文字の場合にwj=b1であり、kjが前記ワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にuj=c1であり、kjがヌル文字でない場合にuj=c0である、演算結果u=(u1,…,uN)が秘匿された秘匿化演算結果[u]を得る第1ヌル判定部と、
前記秘匿化検索対象ワード[xi]を用いた秘密計算によって、xi,jがヌル文字の場合にμi,j=θ0であり、xi,jがヌル文字でない場合にμi,j=θ1である、演算結果μi=(μi,1,…,μi,N)が秘匿された秘匿化演算結果[μi]を得る第2ヌル判定部と、
前記秘匿化演算結果[w]と前記秘匿化演算結果[μi]とを用いた秘密計算によって、wj=b1およびμi,j=θ1の両方を満たす場合にvi,j=ρ1であり、wj=b0およびμi,j=θ0の少なくとも一方を満たす場合にvi,j=ρ0である、演算結果vi=(vi,1,…,vi,N)が秘匿された秘匿化演算結果[vi]を得る論理積演算部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[u]と前記秘匿化演算結果[vi]とを用いた秘密計算によって、ei,j=a1、vi,j=ρ1、およびuj=c1の少なくとも何れかを満たす場合にyi,j=d1であり、ei,j=a0およびvi,j=ρ0およびuj=c0のすべての満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得る論理和演算部と、
を有する検索装置。 - 請求項1から4の何れかの検索装置であって、
前記秘匿化演算結果[yi]を用いた秘密計算によって、yi,1=…=yi,N=d1の場合にzi=g1であり、yi,1=…=yi,N=d1でない場合にzi=g0である一致判定結果ziが秘匿された秘匿化一致判定結果[zi]を得る論理積演算部を有する、検索装置。 - 秘密計算によって完全一致検索を行う検索装置であって、
m,n,t(i),N,N(i)が正整数であり、N>N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)であり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=a1であり、xi,j(i)がkj(i)でない場合にei,j(i)=a0である、演算結果ei=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)が前記ワイルドカード文字の場合にwj(i)=d1であり、kj(i)が前記ワイルドカード文字でない場合にwj(i)=d0である、演算結果w=(w1,…,wN(i))が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化検索ワード[k]の少なくとも一部を用いた秘密計算によって、kj”(i)がヌル文字の場合にu’j”(i)=c1であり、kj”(i)がヌル文字でない場合にu’j”(i)=c0である、演算結果u’N(i)+1,…,u’Nが秘匿された秘匿化演算結果[u’]を得る第1ヌル判定部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[w]とを用いた秘密計算によって、ei,j(i)=a1およびwj(i)=b1の少なくとも一方を満たす場合にe’i,j(i)=d1であり、ei,j(i)=a0およびwj(i)=b0の両方を満たす場合にe’i,j(i)=d0である、演算結果e’i=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’i]を得る論理和演算部と、
前記秘匿化演算結果[u’]および秘匿化演算結果[e’i]を用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’N)が秘匿された秘匿化演算結果[yi]を得る連結部と、
を有する検索装置。 - 秘密計算によって完全一致検索を行う検索装置であって、
m,n,t(i),N,N(i)が正整数であり、N<N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、j”(i)=N+1,…,N(i)であり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjが前記ワイルドカード文字の場合にwj=b1であり、kjが前記ワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にe’i,j=d1であり、ei,j=a0およびwj=b0の両方を満たす場合にe’i,j=d0である、演算結果e’i=(e’i,1,…,e’i,N)が秘匿された秘匿化演算結果[e’i]を得る論理和演算部と、
前記秘匿化検索対象ワード[xi]の少なくとも一部を用いた秘密計算によって、xi,j”(i)がヌル文字の場合にμ’i,j”(i)=d1であり、xi,j”(i)がヌル文字でない場合にμ’i,j”(i)=d0である、演算結果μ’i=(μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[μ’i]を得る第2ヌル判定部と、
前記秘匿化演算結果[e’i]と前記秘匿化演算結果[μ’i]とを用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[yi]を得る連結部と、
を有する検索装置。 - 秘密計算によって前方一致検索を行う検索装置であって、
m,n,t(i),N,N(i)が正整数であり、N≦N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkjの場合にei,j=a1であり、xi,jがkjでない場合にei,j=a0である、演算結果ei=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjが前記ワイルドカード文字の場合にwj=b1であり、kjが前記ワイルドカード文字でない場合にwj=b0である、演算結果w=(w1,…,wN)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にu”j=c1であり、kjがヌル文字でない場合にu”j=c0である、演算結果u”=(u”1,…,u”N)が秘匿された秘匿化演算結果[u”]を得るヌル判定部と、
前記秘匿化演算結果[w]と前記秘匿化演算結果[u”]とを用いた秘密計算によって、u”j=c1およびwj=b1の少なくとも一方を満たす場合にw’j=b’1であり、u”j=c0およびwj=b0の両方を満たす場合にw’j=b’0である、演算結果w’=(w’1,…,w’N)が秘匿された秘匿化演算結果[w’]を得る第1論理和演算部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[w’]とを用いた秘密計算によって、ei,j=a1およびw’j=b’1の少なくとも一方を満たす場合にyi,j=d1であり、ei,j=a0およびw’j=b’0の両方を満たす場合にyi,j=d0である、演算結果yi=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[yi]を得る第2論理和演算部と、
を有する検索装置。 - 秘密計算によって前方一致検索を行う検索装置であって、
m,n,t(i),N,N(i)が正整数であり、N>N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)であり、
t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードxi=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[xi]を含む秘匿化データベース[x1],…,[xm]を格納する記憶部と、
ワイルドカード文字を含むn個の文字k1,…,knを含む検索ワードk=(k1,…,kn,…,kN)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
前記秘匿化検索対象ワード[xi]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=a1であり、xi,j(i)がkj(i)でない場合にei,j(i)=a0である、演算結果ei=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[ei]を得る等号判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)が前記ワイルドカード文字の場合にwj(i)=b1であり、kj(i)が前記ワイルドカード文字でない場合にwj(i)=b0である、演算結果w=(w1,…,wN(i))が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
前記秘匿化検索ワード[k]を用いた秘密計算によって、kjがヌル文字の場合にu”j=c1であり、kjがヌル文字でない場合にu”j=c0である、演算結果u”=(u”1,…,u”N)が秘匿された秘匿化演算結果[u”]を得るヌル判定部と、
前記秘匿化演算結果[w]と前記秘匿化演算結果[u”]の少なくとも一部を用いた秘密計算によって、u”j(i)=c1およびwj(i)=b1の少なくとも一方を満たす場合にw’j(i)=b’1であり、u”j(i)=c0およびwj(i)=b0の両方を満たす場合にw’j(i)=b’0である、演算結果w’=(w’1,…,w’N(i))が秘匿された秘匿化演算結果[w’]を得る第1論理和演算部と、
前記秘匿化演算結果[ei]と前記秘匿化演算結果[w’]とを用いた秘密計算によって、e’i,j(i)=a1およびw’j(i)=b’1の少なくとも一方を満たす場合にe’i,j(i)=d1であり、ei,j(i)=a0およびw’j(i)=b’0の両方を満たす場合にe’i,j(i)=d0である、演算結果e’i=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’i]を得る第2論理和演算部と、
前記秘匿化演算結果[e’i]と前記秘匿化演算結果[u”]の少なくとも一部とを用いた秘密計算によって、演算結果yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”N)が秘匿された秘匿化演算結果[yi]を得る連結部と、
を有する検索装置。 - 請求項6から9の何れかの検索装置であって、
N≦N(i)のときNmax=N(i)であり、N>N(i)のときNmax=Nであり、
前記秘匿化演算結果[yi]を用いた秘密計算によって、yi,1=…=yi,Nmax=d1の場合にzi=g1であり、yi,1=…=yi,Nmax=d1でない場合にzi=g0である一致判定結果ziが秘匿された秘匿化一致判定結果[zi]を得る論理積演算部を有する、検索装置。 - 請求項1から10の何れかの検索装置の検索方法。
- 請求項1から10の何れかの検索装置としてコンピュータを機能させるためのプログラム。
- 請求項1から10の何れかの検索装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017242830 | 2017-12-19 | ||
JP2017242830 | 2017-12-19 | ||
PCT/JP2018/045254 WO2019124134A1 (ja) | 2017-12-19 | 2018-12-10 | 検索装置、検索方法、プログラム、および記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019124134A1 true JPWO2019124134A1 (ja) | 2020-12-03 |
JP6927332B2 JP6927332B2 (ja) | 2021-08-25 |
Family
ID=66993387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019560978A Active JP6927332B2 (ja) | 2017-12-19 | 2018-12-10 | 検索装置、検索方法、プログラム、および記録媒体 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11675847B2 (ja) |
EP (1) | EP3731215B1 (ja) |
JP (1) | JP6927332B2 (ja) |
CN (1) | CN111712868B (ja) |
AU (1) | AU2018389418B2 (ja) |
WO (1) | WO2019124134A1 (ja) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7500111B2 (en) * | 2003-05-30 | 2009-03-03 | International Business Machines Corporation | Querying encrypted data in a relational database system |
KR100903599B1 (ko) * | 2007-11-22 | 2009-06-18 | 한국전자통신연구원 | 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버 |
WO2011086687A1 (ja) * | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
US9613292B1 (en) * | 2012-01-26 | 2017-04-04 | Hrl Laboratories, Llc | Secure multi-dimensional pattern matching for secure search and recognition |
US9009089B1 (en) * | 2011-06-27 | 2015-04-14 | Hrl Laboratories, Llc | Secure pattern matching |
US20130238646A1 (en) * | 2012-03-06 | 2013-09-12 | Evrichart, Inc. | Partial-Match Searches of Encrypted Data Sets |
US10235539B2 (en) * | 2013-02-25 | 2019-03-19 | Mitsubishi Electric Corporation | Server device, recording medium, and concealed search system |
US9652511B2 (en) * | 2013-03-13 | 2017-05-16 | International Business Machines Corporation | Secure matching supporting fuzzy data |
WO2016056503A1 (ja) * | 2014-10-08 | 2016-04-14 | 日本電信電話株式会社 | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム |
JP7020780B2 (ja) * | 2015-02-09 | 2022-02-16 | 日本電気株式会社 | サーバ装置、データ検索システム、検索方法および検索プログラム |
JP6274669B2 (ja) * | 2015-02-10 | 2018-02-07 | 日本電信電話株式会社 | 秘匿パターンマッチング装置、端末装置、それらの方法、およびプログラム |
JP6305946B2 (ja) * | 2015-02-10 | 2018-04-04 | 日本電信電話株式会社 | 秘匿パターンマッチング装置、その方法、およびプログラム |
CN106209761A (zh) * | 2015-05-29 | 2016-12-07 | 松下电器(美国)知识产权公司 | 相似信息检索方法、终端装置以及相似信息检索系统 |
US10404669B2 (en) * | 2015-06-09 | 2019-09-03 | Skyhigh Networks, Llc | Wildcard search in encrypted text |
US9894042B2 (en) * | 2015-07-24 | 2018-02-13 | Skyhigh Networks, Inc. | Searchable encryption enabling encrypted search based on document type |
US9760637B2 (en) * | 2015-09-11 | 2017-09-12 | Skyhigh Networks, Inc. | Wildcard search in encrypted text using order preserving encryption |
-
2018
- 2018-12-10 US US16/954,247 patent/US11675847B2/en active Active
- 2018-12-10 JP JP2019560978A patent/JP6927332B2/ja active Active
- 2018-12-10 WO PCT/JP2018/045254 patent/WO2019124134A1/ja unknown
- 2018-12-10 CN CN201880081581.2A patent/CN111712868B/zh active Active
- 2018-12-10 EP EP18892647.1A patent/EP3731215B1/en active Active
- 2018-12-10 AU AU2018389418A patent/AU2018389418B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3731215A4 (en) | 2021-08-04 |
US20210011953A1 (en) | 2021-01-14 |
JP6927332B2 (ja) | 2021-08-25 |
EP3731215B1 (en) | 2024-02-07 |
EP3731215A1 (en) | 2020-10-28 |
AU2018389418B2 (en) | 2021-11-04 |
CN111712868A (zh) | 2020-09-25 |
WO2019124134A1 (ja) | 2019-06-27 |
CN111712868B (zh) | 2023-08-08 |
US11675847B2 (en) | 2023-06-13 |
AU2018389418A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7552970B2 (ja) | ブロックチェーンを用いてデータ記録を分配するシステム及び方法 | |
US10467389B2 (en) | Secret shared random access machine | |
JP6034927B1 (ja) | 秘密計算システム、秘密計算装置、およびプログラム | |
US11764940B2 (en) | Secure search of secret data in a semi-trusted environment using homomorphic encryption | |
US10341103B2 (en) | Data analytics on encrypted data elements | |
US9917820B1 (en) | Secure information sharing | |
US20160182222A1 (en) | Computer-Implemented System And Method For Multi-Party Data Function Computing Using Discriminative Dimensionality-Reducing Mappings | |
CN111126628B (zh) | 在可信执行环境中训练gbdt模型的方法、装置及设备 | |
CN112000632B (zh) | 密文的分享方法、介质、分享客户端及系统 | |
JP6534778B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
Mahdi et al. | Secure similar patients query on encrypted genomic data | |
CN115905633A (en) | A privacy-preserving graph similarity retrieval method and system | |
US20220413807A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
Balmany et al. | Dynamic proof of retrievability based on public auditing for coded secure cloud storage | |
US11200346B2 (en) | Secure computation for reading multiple elements from a secure text array | |
CN117421771A (zh) | 一种面向结构化数据的可搜索加密方法、装置及电子设备 | |
JP6927332B2 (ja) | 検索装置、検索方法、プログラム、および記録媒体 | |
JP6933290B2 (ja) | 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム | |
CN115098893A (zh) | 基于区块链的数据存储方法及装置 | |
US20210367774A1 (en) | Systems and methods for generating tokens using secure multiparty computation engines | |
Yalame et al. | Secure two-party computation using an efficient garbled circuit by reducing data transfer | |
US11962562B2 (en) | Anonymous message board server verification | |
JP7359225B2 (ja) | 秘密最大値計算装置、方法及びプログラム | |
Madane et al. | Comparison of privacy preserving single-keyword search and multi-keyword ranked search techniques over encrypted cloud data | |
WO2023281693A1 (ja) | 秘密計算システム、装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200612 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200612 |
|
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: 20210706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210719 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6927332 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |