Search device, search method, program, and recording medium
阅读说明:本技术 检索装置、检索方法、程序以及记录介质 (Search device, search method, program, and recording medium ) 是由 五十岚大 于 2018-12-10 设计创作,主要内容包括:等号判定部通过使用了隐匿化检索对象词[x<Sub>i</Sub>]和隐匿化检索词[k]的秘密计算,得到e<Sub>i</Sub>=(e<Sub>i,1</Sub>,…,e<Sub>i,N</Sub>)被隐匿了的[e<Sub>i</Sub>],其中,在x<Sub>i,j</Sub>为k<Sub>j</Sub>的情况下,e<Sub>i,j</Sub>=a<Sub>1</Sub>;在x<Sub>i,j</Sub>不为k<Sub>j</Sub>的情况下,e<Sub>i,j</Sub>=a<Sub>0</Sub>。通配符判定部通过使用了[k]的秘密计算,得到w=(w<Sub>1</Sub>,…,w<Sub>N</Sub>)被隐匿了的[w],其中,在k<Sub>j</Sub>为通配符字符的情况下,w<Sub>j</Sub>=b<Sub>1</Sub>,否则,w<Sub>j</Sub>=b<Sub>0</Sub>。逻辑或运算部通过使用了[e<Sub>i</Sub>]和[w]的秘密计算,得到y<Sub>i</Sub>=(y<Sub>i,1</Sub>,…,y<Sub>i,N</Sub>)被隐匿了的[y<Sub>i</Sub>],其中,在满足e<Sub>i,j</Sub>=a<Sub>1</Sub>以及w<Sub>j</Sub>=b<Sub>1</Sub>中的至少一方的情况下,y<Sub>i,j</Sub>=d<Sub>1</Sub>,否则,y<Sub>i,j</Sub>=d<Sub>0</Sub>。(The equal sign determination unit uses the hidden search target word [ x ] i ]And a concealed search term [ k ]]To obtain e i =(e i,1 ,…,e i,N ) Concealed [ e ] i ]Wherein, in x i,j Is k j In the case of (e) i,j =a 1 (ii) a At x i,j Is not k j In the case of (e) i,j =a 0 . The wildcard character determination part uses [ k ]]Obtaining w ═ w (w) by secret calculation of (c) 1 ,…,w N ) Concealed w]Wherein, at k j In the case of wildcard characters, w j =b 1 Otherwise, w j =b 0 . The logical OR operation part uses [ e ] i ]And [ w]To obtain y i =(y i,1 ,…,y i,N ) Concealed y i ]Wherein, in the case of satisfying e i,j =a 1 And w j =b 1 In the case of at least one of (1), y i,j =d 1 Otherwise, y i,j =d 0 。)
1. A search device for performing a perfect match search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of the wildcard character, wj=b1At k, injIn the case where the character is not the wildcard character, wj=b0(ii) a And
a logical OR operation unit using the concealed operation result [ e ]i]And the result of the concealment operation [ w ]]To obtain a calculation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1And wj=b1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And wj=b0In both cases, yi,j=d0,
Wherein m, N, t (i), N is a positive integer, i is 1, …, m, j is 1, …, N is not more than N, t (i) is not more than N.
2. A search device for performing a perfect match search by secret calculation, comprising:
a storage part for storing the hidden numberDatabase [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of the wildcard character, wj=b1At k, injIn the case where the character is not the wildcard character, wj=b0;
A Null determination unit for determining the number of the search target words [ x ] by using the hidden search target wordsi]To obtain an operation result mui=(μi,1,…,μi,N) Concealed operation result [ mu ]i]Wherein, in xi,jIn the case of Null characters, μi,jAt x ═ thetai,jIn the case of characters other than Null, μi,j=θ1;
A logical AND operation unit using the concealed operation result [ w ]]And the result of the concealment operation [ mu ]i]To obtain a calculation result vi=(vi,1,…,vi,N) Concealed operation result [ vi]Wherein, when satisfying wj=b1And mui,j=θ1In both cases, vi,j=ρ1At the condition of satisfying wj=b0And mui,j=θ0V is at least one ofi,j=ρ0(ii) a And
a logical OR operation unit using the concealed operation result [ e ]i]And the result of the concealment operation [ v ]i]To obtain a calculation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1And vi,j=ρ1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And vi,j=ρ0In both cases, yi,j=d0,
Wherein m, N, t (i), N is a positive integer, i is 1, …, m, j is 1, …, N is not more than N, t (i) is not more than N.
3. A search device for performing a forward matching search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]Is calculated to obtainOperation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of the wildcard character, wj=b1At k, injIn the case where the character is not the wildcard character, wj=b0;
A 1 st Null determination unit for determining whether or not the search word [ k ] is a concealed search word by using the concealed search word]Obtaining the operation result u ═ u (u) by secret calculation of (2)1,…,uN) Concealed operation result u]Wherein, at kjIn the case of Null characters, uj=c1At k, injIn the case of characters other than Null, uj=c0(ii) a And
a logical OR operation unit using the concealed operation result [ e ]i]The result of the hiding operation [ w ]]And the result of the concealment operation [ u ]]To obtain a calculation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1、wj=b1And uj=c1In the case of at least one of (3), yi,j=d1At ei,j=a0And wj=b0And uj=c0In all cases, yi,j=d0,
Wherein m, N, t (i), N is a positive integer, i is 1, …, m, j is 1, …, N is not more than N, t (i) is not more than N.
4. A search device for performing a forward matching search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of the wildcard character, wj=b1At k, injIn the case where the character is not the wildcard character, wj=b0;
A 1 st Null determination unit for determining whether or not the search word [ k ] is a concealed search word by using the concealed search word]Obtaining the operation result u ═ u (u) by secret calculation of (2)1,…,uN) Concealed operation result u]Wherein, at kjIn the case of Null characters, uj=c1At k, injIn the case of characters other than Null, uj=c0;
A 2 nd Null determination unit for determining whether or not the search word [ x ] to be concealed is usedi]To obtain an operation result mui=(μi,1,…,μi,N) Concealed operation result [ mu ]i]Wherein, in xi,jIn the case of Null characters, μi,j=θ0At xi,jIn the case of characters other than Null, μi,j=θ1;
A logical AND operation unit using the concealed operation result [ w ]]And the result of the concealment operation [ mu ]i]To obtain a calculation result vi=(vi,1,…,vi,N) Concealed operation result [ vi]Wherein, when satisfying wj=b1And mui,j=θ1In both cases, vi,j=ρ1At the condition of satisfying wj=b0And mui,j=θ0V is at least one ofi,j=ρ0(ii) a And
a logical OR operation unit using the concealed operation result [ e ]i]The result of the hiding operation [ u ]]And the result of the concealment operation [ v ]i]To obtain a calculation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1、vi,j=ρ1And uj=c1In the case of at least one of (3), yi,j=d1At ei,j=a0And vi,j=ρ0And uj=c0In all cases, yi,j=d0,
Wherein m, N, t (i), N is a positive integer, i is 1, …, m, j is 1, …, N is not more than N, t (i) is not more than N.
5. The retrieval apparatus according to any one of claims 1 to 4, having:
a logical AND operation unit using the concealed operation result yi]Obtaining a coincidence determination result ziConcealed concealment match determination result [ zi]Wherein at yi,1=…=yi,N=d1In the case of (a), zi=g1In a case other than yi,1=…=yi,N=d1In the case of (a), zi=g0。
6. A search device for performing a perfect match search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N(i)) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N(i)) Concealed operation result [ ei]Wherein, in xi,j(i)Is kj(i)In the case of (e)i,j(i)=a1At xi,j(i)Is not kj(i)In the case of (e)i,j(i)=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN(i)) Concealed operation result [ w]Wherein, at kj(i)In the case of the wildcard character, wj(i)=d1At k, inj(i)In the case where the character is not the wildcard character, wj(i)=d0;
A 1 st Null determination unit for determining whether or not the search word [ k ] is a concealed search word by using the concealed search word]Obtaining a calculation result u 'by secret calculation of at least a part of'N(i)+1,…,u’NConcealed concealment calculation result [ u']Wherein, at kj”(i)U 'in the case of Null character'j”(i)=c1At k, inj”(i)U 'if not Null character'j”(i)=c0;
A logical OR operation unit using the concealed operation result [ e ]i]And the result of the concealment operation [ w ]]Obtaining a calculation result e'i=(e’i,1,…,e’i,N(i)) Concealed concealment calculation result [ e'i]Wherein, in the case of satisfying ei,j(i)=a1And wj(i)=b1E 'in the case of at least any one of (1)'i,j(i)=d1In the presence of a catalyst satisfying ei,j(i)=a0And wj(i)=b0In both cases, e'i,j(i)=d0(ii) a And
a connection unit using the concealed operation result [ u']And a concealment calculation result [ e'i]To obtain a calculation result yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’N) Concealed operation result [ yi],
Wherein m, N, t (i), N (i) are positive integers, N > N (i); 1, …,1, …, N, j (i) 1, …, N (i) +1, …, N ≦ N, and t (i) N ≦ N (i).
7. A search device for performing a perfect match search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N(i)) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of the wildcard character, wj=b1At k, injIn the case where the character is not the wildcard character, wj=b0;
A logical OR operation unit using the concealed operation result [ e ]i]And the result of the concealment operation [ w ]]Obtaining a calculation result e'i=(e’i,1,…,e’i,N) Concealed concealment calculation result [ e'i]Wherein, in the case of satisfying ei,j=a1And wj=b1E 'in the case of at least any one of (1)'i,j=d1In the presence of a catalyst satisfying ei,j=a0And wj=b0In both cases, e'i,j=d0;
A 2 nd Null determination unit for determining whether or not the word [ x ] to be concealed is usedi]Obtaining a calculation result mu 'by secret calculation of at least a part of'i=(μ’i,N+1,…,μ’i,N(i)) Concealed concealment calculation result [ mu'i]Wherein, in xi,j”(i)Is Null character,. mu. ')'i,j”(i)=d1At xi,j”(i)Is not Null wordMu 'in the case of symbol'i,j”(i)=d0(ii) a And
a connection unit using the concealed operation result [ e'i]And the result of concealment calculation [ mu'i]To obtain a calculation result yi=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i)) Concealed operation result [ yi],
Wherein m, N, t (i), N (i) are positive integers, N < N (i), i ═ 1, …, m, j ═ 1, …, N, j (i) ═ 1, …, N (i), N ≦ N, t (i) ≦ N (i), j ≦ N +1, …, N (i).
8. A search device for performing a forward matching search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N(i)) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of the wildcard character, wj=b1At k, injIn the case where the character is not the wildcard character, wj=b0;
A Null determination unit for determining the number of the search words [ k ] by using the concealed search word]The secret calculation of (a) is carried out to obtain a calculation result u ″ (u ″) "1,…,u”N) Concealed operation result u "]Wherein, at kjIn the case of Null characters, u "j=c1At k, injIn the case of characters other than Null, u "j=c0;
The 1 st logical OR operation unit uses the concealed operation result [ w ]]And the result of the concealment operation [ u ] "]Obtaining a calculation result w '(w)'1,…,w’N) Concealed concealment calculation result [ w']Wherein, in satisfying u "j=c1And wj=b1W 'in the case of at least any one of (1)'j=b’1In the case of satisfying u "j=c0And wj=b0In both cases, w'j=b’0(ii) a And
a 2 nd logical OR operation unit using the concealment operation result [ e ]i]And the concealed operation result [ w']To obtain a calculation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1And w'j=b’1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And w'j=b’0In both cases, yi,j=d0,
Wherein m, N, t (i), N (i) are positive integers, N < N (i), i ═ 1, …, m, j ═ 1, …, N, j (i) ═ 1, …, N (i), N is not more than N, and t (i) is not more than N (i).
9. A search device for performing a forward matching search by secret calculation, comprising:
a storage unit for storing a hidden database [ x ]1],…,[xm]The hiding database contains a search object word xi=(xi,1,…,xi,t(i),…,xi,N(i)) Concealed search target word [ x ]i]The search object word xiContaining t (i) characters xi,1,…,xi,t(i);
An input unit for receiving a search term k ═ k (k)1,…,kn,…,kN) Concealed search term [ k ]]The search term k comprises n characters k containing wildcard characters1,…,kn;
An equal sign determination unit for determining whether or not the word [ x ] to be concealed is usedi]And the concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N(i)) Concealed operation result [ ei]Wherein, in xi,j(i)Is kj(i)In the case of (e)i,j(i)=a1At xi,j(i)Is not kj(i)In the case of (e)i,j(i)=a0;
A wildcard character determination unit for determining the search word [ k ] by using the concealed search word]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN(i)) Concealed operation result [ w]Wherein, at kj(i)In the case of the wildcard character, wj(i)=b1At k, inj(i)In the case where the character is not the wildcard character, wj(i)=b0;
A Null determination unit for determining the number of the search words [ k ] by using the concealed search word]The secret calculation of (a) is carried out to obtain a calculation result u ″ (u ″) "1,…,u”N) Concealed operation result u "]Wherein, at kjIn the case of Null characters, u "j=c1At k, injIn the case of characters other than Null, u "j=c0;
1 st logical OR operationA section for performing a concealment operation using the result [ w ]]And the result of the concealment operation [ u ] "]Obtaining a calculation result w '═ w'1,…,w’N(i)) Concealed concealment calculation result [ w']Wherein, in satisfying u "j(i)=c1And wj(i)=b1W 'in the case of at least any one of (1)'j(i)=b’1In the case of satisfying u "j(i)=c0And wj(i)=b0In both cases, w'j(i)=b’0;
A 2 nd logical OR operation unit using the concealment operation result [ e ]i]And the concealed operation result [ w']Obtaining a calculation result e'i=(e’i,1,…,e’i,N(i)) Concealed concealment calculation result [ e'i]Wherein, in the formula, e'i,j(i)=a1And w'j(i)=b’1E 'in the case of at least any one of (1)'i,j(i)=d1In the presence of a catalyst satisfying ei,j(i)=a0And w'j(i)=b’0In both cases, e'i,j(i)=d0(ii) a And
a connection unit using the concealed operation result [ e'i]And the result of the concealment operation [ u ] "]To obtain an operation result yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”N) Concealed operation result [ yi],
Wherein m, N, t (i), N (i) are positive integers, N > N (i), i ═ 1, …, m, j ═ 1, …, N, j (i) ═ 1, …, N (i), j ═ N (i) +1, …, N ≦ N, t ≦ N (i).
10. The retrieval apparatus according to any one of claims 6 to 9, having:
a logical AND operation unit using the concealed operation result yi]Is calculated to obtainCoincidence determination result ziConcealed concealment match determination result [ zi]Wherein at yi,1=…=yi,Nmax=d1In the case of (a), zi=g1In a case other than yi,1=…=yi,Nmax=d1In the case of (a), zi=g0,
Wherein, when N is less than or equal to N (i), NmaxAt N (i)>When N (i), Nmax=N。
11. The retrieval method of the retrieval device according to any one of claims 1 to 10.
12. A program for causing a computer to function as the retrieval device according to any one of claims 1 to 10.
13. A computer-readable recording medium storing a program for causing a computer to function as the retrieval device according to any one of claims 1 to 10.
Technical Field
The present invention relates to a secret calculation technique, and more particularly to a technique for searching for confidential data.
Background
A secret calculation technique is known in which a matching search is directly performed with a search word and a search target phrase hidden (see, for example, non-patent document 1).
Disclosure of Invention
Problems to be solved by the invention
In the conventional method, although direct search is realized in a hidden state using a search word including wildcard characters, the communication efficiency is poor, and if both the length of the search target word to be hidden and the length of the search word to be hidden are set to N, the communication efficiency needs to be as high as O (N)2logN) traffic.
The object of the present invention is to efficiently and directly perform a matching search of a database in which search words including wildcard characters are hidden.
Means for solving the problems
The storage part stores a hidden database [ x ]1],…,[xm]. Hiding database [ x ]1],…,[xm]The contained search target word [ x ] with concealmenti]Is composed of t (i) characters xi,1,…,xi,t(i)Search target word xi=(xi,1,…,xi,t(i),…,xi,N) The search target word is concealed and concealed. The input unit accepts a concealed search term [ k ]]Is input. Hiding search term [ k ]]Is composed ofN characters k with wildcard characters1,…,knThe search term k ═ k1,…,kn,…,kN) The concealed search term. The equal sign determination unit uses the hidden search target word [ x ]i]And a concealed search term [ k ]]To obtain an operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1(ii) a At xi,jIs not kjIn the case of (e)i,j=a0. The wildcard character determination unit uses the concealed search word [ k ]]Obtaining the operation result w ═ w (w) by secret calculation of (c)1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. The logical OR operation unit uses the hiding operation result [ e ]i]And a result of the concealment operation [ w ]]To obtain a calculation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1And wj=b1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And wj=b0In both cases, yi,j=d0. Wherein m, N, t (i), N is a positive integer, i is 1, …, m, j is 1, …, N is not more than N, t (i) is not more than N.
Effects of the invention
According to the present invention, the matching search of the concealed database can be performed with less communication traffic than in the conventional art.
Brief description of the drawings
FIG. 1 is a block diagram of a retrieval system illustrating an embodiment.
Fig. 2 is a block diagram illustrating a retrieval apparatus of an embodiment.
Fig. 3 is a flowchart for explaining the search method according to
Fig. 4 is a conceptual diagram for explaining the search method according to
Fig. 5 is a conceptual diagram for explaining the search method according to
Fig. 6 is a conceptual diagram for explaining the search method according to
Fig. 7 is a conceptual diagram for explaining the search method according to
Fig. 8 is a conceptual diagram for explaining the search method according to
Fig. 9 is a conceptual diagram for explaining the search method according to
Fig. 10 is a flowchart for explaining the search method according to
Fig. 11 is a conceptual diagram for explaining the search method according to
Fig. 12 is a conceptual diagram for explaining the search method according to
Fig. 13 is a conceptual diagram for explaining the search method according to
Fig. 14 is a flowchart for explaining the search method according to
Fig. 15 is a conceptual diagram for explaining the search method according to
Fig. 16 is a conceptual diagram for explaining the search method according to
Fig. 17 is a flowchart for explaining the search method according to embodiment 4.
Fig. 18 is a conceptual diagram for explaining the search method according to embodiment 4.
Fig. 19 is a conceptual diagram for explaining the search method according to embodiment 4.
Fig. 20 is a flowchart for explaining the search method according to embodiment 5.
Fig. 21 is a conceptual diagram for explaining a search method according to the embodiment.
Fig. 22 is a conceptual diagram for explaining the search method according to embodiment 5.
Fig. 23 is a conceptual diagram for explaining the search method according to embodiment 5.
Fig. 24 is a conceptual diagram for explaining the search method according to embodiment 5.
Fig. 25 is a flowchart for explaining the search method according to embodiment 6.
Fig. 26 is a conceptual diagram for explaining the search method according to embodiment 6.
Fig. 27 is a conceptual diagram for explaining the search method according to embodiment 6.
Fig. 28 is a conceptual diagram for explaining the search method according to embodiment 6.
Detailed Description
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[ embodiment 1 ]
< Structure >
As shown in fig. 1, the
As shown in fig. 2, the search device 12-h of the present embodiment includes: a control unit 120-h, an equal sign determination unit 121-h, a wildcard determination unit 122-h, a logical or operation unit 123-h, a logical and operation unit 127-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h. The search device 12-h executes each process under the control of the control section 120-h. The data obtained by each unit is stored in the storage unit 128-h one by one, and is read out as necessary and used for other processing.
< pretreatment >
The storage unit 128-h stores a concealed database [ x ]1],…,[xm]The hiding database contains x characters containing t (i)i,1,…,xi,t(i)Search target word xi=(xi,1,…,xi,t(i),…,xi,N) A hidden search target word [ x ] (see, for example, DB in FIGS. 4 and 6) with being hiddeni]. Wherein m, t (i), N is a positive integer, i is 1, …, m, j is 1, …, N, t (i) is not more than N. Search object word xiT (i) characters x contained ini,1,…,xi,t(i)Is a normal character as a retrieval target. On the other hand, the word x is included in the search target wordiThe remaining N-t (i) characters of (a)i,t(i)+1,…,xi,NIs a special character (Null character) that represents the Null value. The Null character is set in advance (for example, "0") and cannot be used as a normal character. When t (i) ═ N, the search target word xiNo Null characters are included. Each character is represented by an element such as a finite field. When secret calculation is performed by a secret distribution method, a search target word [ x ] is suppressedi]Is a search object word xiThe secret scatter value of (1). When secret calculation based on a homomorphic encryption method is performed, a search target word [ x ] is concealedi]Is a search object word xiThe ciphertext of (1). Can convert the character xi,1,…,xi,t(i),…,xi,NRespectively, and a hidden value [ x ] obtained by hiding each of themi,1],…,[xi,t(i)],…,[xi,N]As a word [ x ] to be searched for in a hidden manneri]N characters x can also be combinedi,1,…,xi,t(i),…,xi,NCollectively concealed as a concealed search target word [ x ]i]. In addition, the suppressed value of the content information indicating the position of the content or the content on the network may be the same as the suppressed search target word [ x ]i]And performing association.
< search processing >
The search processing according to the present embodiment will be described with reference to fig. 3.
The requesting
The
First, the equal sign determination unit 121-h uses the word [ x ] read from the storage unit 128-h and subjected to the search with the hidden wordi]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]. Wherein, in xi,jIs kjIn the case of (x)i,j=kjIn the case of (b)), e)i,j=a1At xi,jIs not kjIn the case of (x)i,j≠kjIn the case of (b)), e)i,j=a0。ei,j∈{a0,a1}, e.g. a0=0,a11. Since wildcard characters are different from ordinary characters, at kjIs necessarily e in the case of wildcard charactersi,j=a0. Also, since Null characters are different from ordinary characters, at kjIs a Null character and xi,jIn the case of normal characters, and at kjIs a common character and xi,jIn the case of Null characters, it is inevitably ei,j=a0. Further, if kjAnd xi,jAre all Null characters, then ei,j=a1. For example, the equal sign determining unit 121-h performs [ k ] for j equal to 1, …, N by secret calculationj]And [ x ]i,j]Is equal sign determined (coincidence determination) to obtaini,jConcealed [ e ]i,j]And obtain [ e ]1,j],…,[e1,N]As a result of the concealment operation [ e ]i]. Alternatively, the equal sign determination unit 121-h may use the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]To obtain ei,1,…,ei,NCollectively concealed concealment operation result [ ei]. Hiding operation result [ e ]i]Is stored in the storage section 128-h (step S121-h).
The wildcard character determination unit 122-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]. Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0。wj∈{b0,b1}, e.g. b0=0,
The logical OR operation unit 123-h uses the concealment operation result [ e ] read from the storage unit 128-hi]And a result of the concealment operation [ w ]]Obtaining and outputting the operation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]. Wherein, when satisfying ei,j=a1And wj=b1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And wj=b0In both cases, yi,j=d0。yi,j∈{d0,d1}, e.g. d0=0,
The logical AND operation unit 127-h uses the concealment operation result [ y ] read from the storage unit 128-hi]Obtaining and outputting a coincidence determination result ziConcealed concealment match determination result [ zi]. Wherein at yi,1=…=yi,N=d1In the case of (a), zi=g1. In a value other than yi,1=…=yi,N=d1In the case of (a), zi=g0。zi∈{g0,g1}, e.g. g0=0,
The output units 1292-h output the concealment/coincidence determination result [ z ] for each of
< concrete example >
Is shown below as a0=0,a1=1,b0=0,b1=1,d0=0,d1=1,g0=0,g1A specific example in the case of 1.
As shown in fig. 4, N ═ t (i), krFor wildcard characters ". ltoreq.r.ltoreq.n, where j other than r is 1, …, n satisfies x1,j=kjIn the case of (e)1(1, …,1,0,1, …,1) and w ═ 0, …,0,1,0, …,0), y1(1, …,1,1,1, …, 1). Thus, z1=1。
As shown in fig. 5, N is t (i), and N satisfies x for
FIG. 6 to FIG. 9 are n<N and t (i)<Examples of N. As shown in FIG. 6, kn+1,…,kNAnd xi,t(i)+1,…,xi,NIs a Null character.
As shown in fig. 7, t (1) ═ n, krFor wildcard characters ". ltoreq.r.ltoreq.n, where j other than r is 1, …, n satisfies x1,j=kjIn the case of (e)1(1,1, …,0, …,1, …,1) and w ═ 0,0, …,1, …,0, …,0), y1(1,1, …,1, …,1, …, 1). Thus, z1=1。
As shown in fig. 8, t (2) ═ n +1, krFor wildcard characters ". ltoreq.r.ltoreq.n, where j other than r is 1, …, n satisfies x2,j=kjIn the case of (e)2(1,1, …,0, …,1,0,1, …,1) and w (0,0, …,1, …,0,0, …,0), y)2(1,1, …,1, …,1,0,1, …, 1). Thus, z2=0。
As shown in fig. 9, t (3) ═ n-1, krFor wildcard characters ". ltoreq.r.ltoreq.n-1, where x is satisfied for j other than
< feature of the present embodiment >
As described above, in the present embodiment, a complete match search of a database that is hidden can be directly performed with a search term including wildcard characters being hidden. Moreover, the matching search of the concealed database can be performed with less traffic (for example, o (n) traffic) than in the conventional art.
[ 2 nd embodiment ]
In the search object word xiCharacter x ofi,t(i)+1,…,xi,NIs a Null character, a character k of a search term kt(i)+1,…,kNWhen wildcard characters can be included, the method of
< Structure >
As shown in fig. 1, the
As shown in fig. 2, the search device 22-h of the present embodiment includes: a control unit 120-h, an equal sign determination unit 121-h, a wildcard determination unit 122-h, a logical OR operation unit 223-h, a Null determination unit 224-h, logical AND operation units 127-h and 226-h, a storage unit 128-h, input units 1291-h, and output units 1292-h. The search device 22-h executes each process under the control of the control section 120-h. The data obtained at each section is stored in the storage section 128-h one by one, and is read out as necessary and used for other processing.
< pretreatment >
The same as
< search processing >
The search processing according to the present embodiment will be described with reference to fig. 10. The requesting
The
First, the equal sign determination unit 121-h uses the word [ x ] read from the storage unit 128-h and subjected to the search with the hidden wordi]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed 1 st concealed operation result [ e ]i]. Wherein, in xi,jIs kjIn the case of (x)i,j=kjIn the case of (b)), e)i,j=a1At xi,jIs not kjIn the case of (x)i,j≠kjIn the case of (b)), e)i,j=a0. Hiding operation result [ e ]i]Is stored in the storage section 128-h (step S121-h).
The wildcard character determination unit 122-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]. Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. Hiding operation result [ w]Is stored in the storage section 128-h (step S122-h).
The Null determination unit 224-h uses the word [ x ] to be searched for in a hidden manner read from the storage unit 128-hi]Obtaining and outputting the operation result mui=(μi,1,…,μi,N) Concealed operation result [ mu ]i]. Wherein, in xi,jIn the case of Null characters, μi,j=θ0At xi,jIn the case of characters other than Null, μi,j=θ1。μi,j∈{θ0,θ1}, e.g. theta0=0,
The logical AND operation unit 226-h uses the concealment operation result [ w ] read from the storage unit 128-h]And the hiding operation result [ mu ]i]Obtaining and outputting the operation result vi=(vi,1,…,vi,N) Concealed operation result [ vi]. Wherein, when satisfying wj=b1And mui,j=θ1In both cases, vi,j=ρ1At the condition of satisfying wj=b0And mui,j=θ0V is at least one ofi,j=ρ0。vi,j∈{ρ0,ρ1}, e.g. p0=0,
The logical OR operation section 223-h uses the concealment operation result [ e ] read from the storage section 128-hi]And a result of the concealment operation [ v ]i]Obtaining and outputting the operation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]. Wherein, when satisfying ei,j=a1And vi,j=ρ1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And vi,j=ρ0In both cases, yi,j=d0。yi,j∈{d0,d1}, e.g. d0=0,
Thereafter, the processing of step S127-h and subsequent steps described in
< concrete example >
Is shown below as a0=0,a1=1,b0=0,b1=1,ρ0=0,ρ1=1,d0=0,d1=1,g0=0,g1A specific example in the case of 1.
FIG. 11 to FIG. 13 are n<N and t (i)<Examples of N. As shown in FIG. 11, knIs a wildcard character "+", kn+1,…,kNAnd xi,t(i)+1,…,xi,NIs a Null character.
As shown in fig. 12, t (1) ═ n, and n-1 satisfies x for j ═ 1, …1,j=kjIn the case of (e)1=(1,1,…,1,0,1,1,…,1),w=(0,0,…,0,1,0,0,…,0),μ1=(1,1,…,1,1,0,0,…,0),v1=(0,0,…,0,1,0,0,…,0),y1(1,1, …,1,1,1, …, 1). Thus, z1=1。
As shown in fig. 13, t (3) ═ n-1, and n-1 satisfies x for j ═ 1, …1,j=kjIn the case of (e)3=(1,1,…,1,0,1,1,…,1),w=(0,0,…,0,1,0,0,…,0),μ3=(1,1,…,1,0,0,0,…,0),v3=(0,0,…,0,0,0,0,…,0),y3(1,1, …,1,0,1,1, …, 1). Thus, z3=0。
< feature of the present embodiment >
As described above, in the present embodiment, the search target word x is also searchediCharacter x ofi,t(i)+1,…,xi,NIs a Null character, a character k of a search term kt(i)+1,…,kNWhen a search word including a wildcard character is included, a complete match search of the database which is hidden may be directly performed in a state where the search word including the wildcard character is hidden. Moreover, the database search can be performed with less communication traffic than in the past.
[ embodiment 3 ]
< Structure >
As shown in fig. 1, the
As shown in fig. 2, the search device 32-h of the present embodiment includes: a control unit 120-h, an equal sign determination unit 121-h, a wildcard determination unit 122-h, a logical OR operation unit 323-h, a Null determination unit 325-h, a logical AND operation unit 127-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h. The search device 32-h executes each process under the control of the control section 120-h. The data obtained at each section is stored in the storage section 128-h one by one, and is read out as necessary and used for other processing.
< pretreatment >
The same as
< search processing >
The search processing according to the present embodiment will be described with reference to fig. 14. The requesting
The
First, the equal sign determination unit 121-h uses the word [ x ] read from the storage unit 128-h and subjected to the search with the hidden wordi]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]. Wherein, in xi,jIs kjIn the case of (x)i,j=kjIn the case of (b)), e)i,j=a1At xi,jIs not kjIn the case of (x)i,j≠kjIn the case of (b)), e)i,j=a0. Hiding operation result [ e ]i]Is stored in the storage part128-h (steps S121-h).
The wildcard character determination unit 122-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]. Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. Hiding operation result [ w]Is stored in the storage section 128-h (step S122-h).
The Null determination unit 325-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result u ═ u (u) by secret calculation1,…,uN) Concealed operation result
[u]. Wherein, at kjIn the case of Null characters, uj=c1At k, injIn the case of characters other than Null, uj=c0。uj∈{c0,c1}, e.g. c0=0,
The logical OR operation unit 323-h uses the concealment operation result [ e ] read from the storage unit 128-hi]And a result of the concealment operation [ w ]]And the result of the concealment operation [ u ]]Obtaining and outputting the operation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]. Wherein, when satisfying ei,j=a1、wj=b1And uj=c1In the case of at least one of the above, yi,j=d1At ei,j=a0And wj=b0And uj=c0In all cases, yi,j=d0。yi,j∈{d0,d1}, e.g. d0=0,
Thereafter, the processing of step S127-h and subsequent steps described in
< concrete example >
Is shown below as a0=0,a1=1,b0=0,b1=1,c0=0,c1=1,d0=0,d1=1,g0=0,g1A specific example in the case of 1.
As shown in fig. 15, t (2) ═ n +1, and n satisfies x for j ═ 1, …1,j=kjIn the case of (e)2=(1,1,…,0,…,1,0,1,…,1),w=(0,0,…,1,…,0,0,0,…,0),u=(0,0,…,0,…,0,1,1,…,1),y2(1,1, …,1, …,1,1,1, …, 1). Thus, z2=1。
As shown in fig. 16, t (3) ═ n-1, and n-1 satisfies x for j ═ 1, …1,j=kjIn the case of (e)3=(1,1,…,0,…,0,1,1,…,1),w=(0,0,…,1,…,0,0,0,…,0),u=(0,0,…,0,…,0,1,1,…,1),y3(1,1, …,1, …,0,1,1, …, 1). Thus, z3=0。
< feature of the present embodiment >
As described above, in the present embodiment, the search term including the wildcard character can be directly searched for the front match of the database which is hidden in a state where the search term is hidden. Moreover, the database search can be performed with less communication traffic than in the past.
[ 4 th embodiment ]
Embodiment 4 is a modification of
< Structure >
As shown in fig. 1, the search system 4 of the present embodiment includes a
As shown in fig. 2, the search device 42-h of the present embodiment includes: control unit 120-h, equal sign determination unit 121-h, wildcard determination unit 122-h, logical OR operation unit 423-h, Null determination units 224-h, 325-h, logical AND operation units 127-h, 226-h, storage unit 128-h, input unit 1291-h, and output unit 1292-h. The search device 32-h executes each process under the control of the control section 120-h. The data obtained at each section is stored in the storage section 128-h one by one, and is read out as necessary and used for other processing.
< pretreatment >
The same as
< search processing >
The search processing according to the present embodiment will be described with reference to fig. 17. The requesting
The
First, the equal sign determination unit 121-h uses the word [ x ] read from the storage unit 128-h and subjected to the search with the hidden wordi]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]. Wherein, in xi,jIs kjIn the case of (x)i,j=kjIn the case of (b)), e)i,j=a1At xi,jIs not kjIn the case of (x)i,j≠kjIn the case of (b)), e)i,j=a0. Hiding operation result [ e ]i]Is stored in the storage section 128-h (step S121-h).
The wildcard character determination unit 122-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]. Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. Hiding operation result [ w]Is stored in the storage section 128-h (step S122-h).
The Null determination unit 325-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result u ═ u (u) by secret calculation1,…,uN) Concealed operation result u]. Wherein, at kjIn the case of Null characters, uj=c1At k, injIn the case of characters other than Null, uj=c0. For example, the Null determination unit 325-h uses the concealed search word [ k ]]And a concealed Null character obtained by concealing the Null character, and obtaining a concealed operation result [ u ] by secret calculation]. Hiding operation result u]Is stored in the storage section 128-h (step S325-h).
The Null determination unit 224-h uses the concealed search word [ x ] read from the storage unit 128-hi]Obtaining and outputting the operation result mui=(μi,1,…,μi,N) Concealed operation result [ mu ]i]. Wherein, in xi,jIn the case of Null characters, μi,j=θ0At xi,jIn the case of characters other than Null, μi,j=θ1. Hiding operation result [ mu ]i]Is stored in the storage section 128-h (step S224-h).
The logical OR operation unit 226-h uses the concealment operation result [ w ] read from the storage unit 128-h]And the hiding operation result [ mu ]i]Obtaining and outputting the operation result vi=(vi,1,…,vi,N) Concealed operation result [ vi]. Wherein, when satisfying wj=b1And mui,j=θ1In both cases, vi,j=ρ1At the condition of satisfying wj=b0And mui,j=θ0V is at least one ofi,j=ρ0. Hiding operation result [ v ]i]Is stored in the storage section 128-h (step S226-h).
The logical OR operation units 423-h use the concealment operation result [ e ] read from the storage unit 128-hi]And the result of the operation of hiding [ u ]]And a result of the concealment operation [ v ]i]Obtaining and outputting the operation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]. Wherein, when satisfying ei,j=a1、vi,j=ρ1And uj=c1In the case of at least one of the above, yi,j=d1At ei,j=a0And vi,j=ρ0And uj=c0In all cases, yi,j=d0。yi,j∈{d0,d1}, e.g. d0=0,
Thereafter, the processing of step S127-h and subsequent steps described in
< concrete example >
Is shown below as a0=0,a1=1,b0=0,b1=1,c0=0,c1=1,d0=0,d1=1,ρ0=0,ρ1=1,g0=0,g1A specific example in the case of 1. FIG. 18 and FIG. 19 show the symbol "n<N and t (i)<Examples of N. k is a radical ofnIs a wildcard character "+", kn+1,…,kNAnd xi,t(i)+1,…,xi,NIs a Null character.
As shown in fig. 18, t (1) ═ n, and n-1 satisfies x for j ═ 1, …1,j=kjIn the case of (e)1=(1,1,…,1,0,1,1,…,1),w=(0,0,…,0,1,0,0,…,0),u=(0,0,…,0,1,1,…,1),μ1=(1,1,…,1,1,0,0,…,0),v1=(0,0,…,0,1,0,0,…,0),y1(1,1, …,1,1,1, …, 1). Thus, z1=1。
As shown in fig. 19, t (3) ═ n-1, and n-1 satisfies x for j ═ 1, …1,j=kjIn the case of (e)3=(1,1,…,1,0,1,1,…,1),w=(0,0,…,0,1,0,0,…,0),u=(0,0,…,0,1,1,…,1),μ3=(1,1,…,1,0,0,0,…,0),v3=(0,0,…,0,0,0,0,…,0),y3(1,1, …,1,0,1,1, …, 1). Thus, z3=0。
< feature of the present embodiment >
As described above, in the present embodiment, the search target word x is also searchediCharacter x ofi,t(i)+1,…,xi,NIs a Null character, a character k of a search term kt(i)+1,…,kNWhen wildcard characters can be included, inclusion of wildcards can be suppressedIn the state of the search word of the character, the front matching search of the database which is concealed is directly performed. Moreover, the database search can be performed with less communication traffic than in the past.
[ 5 th embodiment ]
Embodiment 5 is a modification of
As shown in fig. 1, the search system 5 of the present embodiment includes a
As shown in fig. 2, the search device 52-h of the present embodiment includes: a control unit 120-h, an equal sign determination unit 521-h, a wildcard determination unit 522-h, a logical OR operation unit 523-h, Null determination units 524-h and 525-h, a logical AND operation unit 527-h, a connection unit 528-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h. The search device 52-h executes each process under the control of the control section 120-h. The data obtained at each section is stored in the storage section 128-h one by one, and is read out as necessary and used for other processing.
< pretreatment >
The storage unit 128-h stores a concealed database [ x ]1],…,[xm]The hiding database contains x characters containing t (i)i,1,…,xi,t(i)Search target word xi=(xi,1,…,xi,t(i),…,xi,N) A hidden search target word [ x ] (see, for example, DB in FIG. 21)i]. Wherein m, t (i), n (i) are positive integers, i is 1, …, m, j (i) is 1, …, n (i), and t (i) is not more than n (i). Search object word xiT (i) characters x contained ini,1,…,xi,t(i)Is a normal character as a retrieval target. On the other hand, the word x is included in the search target wordiThe remaining N (i) -t (i) characters x of (1)i,t(i)+1,…,xi,N(i)Is a Null character. Can convert the character xi,1,…,xi,t(i),…,xi,N(i)Respectively, and a hidden value [ x ] obtained by hiding each of themi,1],…,[xi,t(i)],…,[xi,N(i)]As a word [ x ] to be searched for in a hidden manneri]N (i) characters xi,1,…,xi,t(i),…,xi,N(i)Collectively suppressed as a suppressed search target word [ x ]i]. The others are the same as those described in
< search processing >
The search processing according to the present embodiment will be described with reference to fig. 20. The requesting
The
First, the equal sign determination unit 521-h uses the word [ x ] read from the storage unit 128-h and subjected to the search with the suppressed wordi]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,Nmin) Concealed operation result [ ei]. Wherein, for j' ═ 1, …, NminAt xi,j’Is kj’In the case of (e)i,j’=a1At xi,j’Is not kj’In the case of (e)i,j’=a0。ei,j’∈{a0,a1}, e.g. a0=0,a11. For example, the equal sign determination unit 521-h performs secret calculation on j' 1, …, NminTo proceed with [ k ]j’]And [ x ]i,j’]Is equal sign determined to obtaini,j’Concealed [ e ]i,j’]And obtain [ e ]1,j’],…,[e1,Nmin]As a result of the concealment operation [ e ]i]. Alternatively, the equal sign determination unit 521-h may use the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]To obtain ei,1,…,ei,NminCollectively concealed concealment operation result [ ei]. Hiding operation result [ e ]i]Is stored in the storage section 128-h (step S521-h).
The wildcard character determination unit 522-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]. It is composed ofIn the case of j' ═ 1, …, NminAt k, inj’In the case of wildcard characters, wj’=b1At k, inj’In the case of characters other than wildcard characters, wj’=b0. For example, the wildcard character determination unit 522-h uses the concealed search term [ k ]]And hiding the wildcard character to obtain a hidden wildcard character, and performing secret calculation to obtain a hidden operation result [ w]. For example, the wildcard determination unit 522-h performs secret calculation on j' 1, …, NminTo proceed with [ k ]j’]And the equal sign judgment of the concealed wildcard character to obtain the sum of wj’Concealed [ wj’]And obtaining [ w1],…,[wNmin]As a result of the concealment operation [ w ]]. Alternatively, the wildcard character determination unit 122-h may use the hidden search term [ k ]]And secret calculation of the suppressed wildcard character to obtain w1,…,wNminCollectively concealed concealment operation result [ w]. Hiding operation result [ w]Is stored in the storage section 128-h (step S522-h).
The Null determination unit 525-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting a calculation result u'Nmin+1,…,u’NConcealed concealment calculation result [ u']. Wherein for j ═ Mmin+1, …, N, at kj”U 'in the case of Null character'j”=c1At k, inj”U 'if not Null character'j”=c0。u’j”∈{c0,c1}, e.g. c0=0,
The logical OR operation unit 523-h uses the concealment operation result [ e ] read from the storage unit 128-hi]And a result of the concealment operation [ w ]]Obtaining and outputting a calculation result e'i=(e’i,1,…,e’i,Nmin) Concealed concealment calculation result [ e'i]. Wherein, for j' ═ 1, …, NminIn the presence of a catalyst satisfying ei,j’=a1And wj’=b1E 'in the case of at least any one of (1)'i,j’=d1In the presence of a catalyst satisfying ei,j’=a0And wj’=b0In both cases, e'i,j’=d0。e’i,j’∈{d0,d1}, e.g. d0=0,
The Null determination unit 524-h uses the concealed search word [ x ] read from the storage unit 128-hi]Obtaining and outputting a calculation result mu 'by secret calculation of at least a part of'i=(μ’i,Nmin+1,…,μ’i,N(i)) Concealed concealment calculation result [ mu'i]. Wherein for j "(i) ═ Mmin+1, …, N (i), at xi,j”(i)Is Null character,. mu. ')'i,j”(i)=d1At xi,j”(i)Not Null character,. mu.'i,j”(i)=d0。μ’i,j”(i)∈{d0,d1}, e.g. d0=0,
Connection portion 528-h uses at least the concealment calculation result [ e'i]Obtaining and outputting the operation result yiConcealed operation result [ yi]. When N ═ N (i), connection unit 528-h masks the calculation result [ e'i]As a result of the concealment operation [ y ]i]And (6) outputting. In N>In the case of N (i), the connection portion 528-h uses the concealment calculation result [ u']And a concealment calculation result [ e'i]Obtaining and outputting the operation result yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’N) Concealed operation result [ yi]. In N<In the case of N (i), the connection portion 528-h uses the concealment calculation result [ e'i]And a result of concealment calculation [ mu'i]Obtaining and outputting the operation result yi=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i)) Concealed operation result [ yi]。[yi]May be yiThe set of the concealment results obtained by concealing the elements may be yiIs collectively concealed. Hiding operation result [ yi]Is stored in the storage section 128-h (step S528-h).
The logical AND operation unit 527-h uses the concealment operation result [ y ] read from the storage unit 128-hi]By using the secret calculation result [ y ] of the concealment operationi]Obtaining and outputting a coincidence determination result ziConcealed concealment match determination result [ zi]. Wherein at yi,1=…=yi,Nmax=d1In the case of (a), zi=g1In the case of being different from yi,1=…=yi,Nmax=d1In case of zi=g0。zi∈{g0,g1}, e.g. g0=0,
Thereafter, the processing in and after step S1292-h described in
< concrete example >
The processing of the present embodiment is classified into a case where N ═ N (i), a case where N > N (i), and a case where N < N (i) are described below.
(cases of N ═ N (i))
m, N, t (i), N (i) are positive integers; i is 1, …, m; j is 1, …, N; j (i) ═ 1, …, n (i); n is less than or equal to N; t (i) is less than or equal to N. The equal sign determination unit 521-h uses the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0. The wildcard character determination unit 522-h uses the concealed search term [ k ]]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. The logical OR operation unit 523-h uses the concealment operation result [ e ]i]And a result of the concealment operation [ w ]]Obtaining and outputting the operation result yi=(yi,1,…,yi,N) Concealed operation result [ yi]=[e’i]Wherein, in the case of satisfying ei,j=a1And wj=b1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And wj=b0In both cases, yi,j=d0. For example, as shown in FIG. 23, a0=0,a1=1,b0=0,b1=1,d0=0,d1=1,g0=0,g1=1,kn-1For wildcard characters ". x", x is satisfied for j ═ 1, …, n-2, n2,j=kjIn the case of (e)2=(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). Thus, z2=0。
(cases of N > N (i))
m, N, t (i), N (i) are positive integers; i is 1, …, m; j is 1, …, N; j (i) ═ 1, …, n (i); j "(i) ═ N (i) +1, …, N; n is less than or equal to N; t (i) is less than or equal to N. The equal sign determination unit 521-h uses the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N(i)) Concealed operation result [ ei]Wherein, in xi,j(i)Is kj(i)In the case of (e)i,j(i)=a1At xi,j(i)Is not kj(i)In the case of (e)i,j(i)=a0. The wildcard character determination unit 522-h uses the concealed search term [ k ]]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN(i)) Concealed operation result [ w]Wherein, at kj(i)In the case of wildcard characters, wj(i)=d1At k, inj(i)In the case of characters other than wildcard characters, wj(i)=d0. The Null determination unit 525-h (1 st Null determination unit) uses the concealed search word [ k ]]Obtaining and outputting a calculation result u'N(i)+1,…,u’NConcealed concealment calculation result [ u']Wherein, at kj”(i)U 'in the case of Null character'j”(i)=c1At k, inj”(i)U 'if not Null character'j”(i)=c0. The logical OR operation unit 523-h uses the concealment operation result [ e ]i]And a result of the concealment operation [ w ]]Obtaining and outputting a calculation result e'i=(e’i,1,…,e’i,N(i)) Concealed concealment calculation result [ e'i]Wherein, in the case of satisfying ei,j(i)=a1And wj(i)=b1In the case of at least one of the above, e’i,j(i)=d1In the presence of a catalyst satisfying ei,j(i)=a0And wj(i)=b0In both cases, e'i,j(i)=d0. Connection portion 528-h uses the concealment calculation result [ u']And a concealment calculation result [ e'i]Obtaining and outputting the operation result yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’N) Concealed operation result [ yi]. For example, as shown in FIG. 22, a0=0,a1=1,b0=0,b1=1,d0=0,d1=1,g0=0,g1=1,kn-1For wildcard characters ". x", x is satisfied for j ═ 1, …, n-2, n1,j=kjIn the case of (e)1=(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). Thus, z1=1。
(cases of N < N (i))
m, N, t (i), N (i) are positive integers; n is a radical of<N (i); i is 1, …, m; j is 1, …, N; j (i) ═ 1, …, n (i); n is less than or equal to N; t (i) is less than or equal to N; j "(i) ═ N +1, …, N (i). The equal sign determination unit 521-h uses the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0. The wildcard character determination unit 522-h uses the concealed search term [ k ]]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. LogicThe OR operation unit 523-h uses the result of the concealment operation [ e ]i]And a result of the concealment operation [ w ]]Obtaining and outputting a calculation result e'i=(e’i,1,…,e’i,N) Concealed concealment calculation result [ e'i]Wherein, in the case of satisfying ei,j=a1And wj=b1E 'in the case of at least any one of (1)'i,j=d1In the presence of a catalyst satisfying ei,j=a0And wj=b0In both cases, e'i,j=d0. The Null determination unit 524-h (2 nd Null determination unit) uses the word [ x ] to be searched for with concealmenti]Obtaining and outputting a calculation result mu 'by secret calculation of at least a part of'i=(μ’i,N+1,…,μ’i,N(i)) Concealed concealment calculation result [ mu'i]Wherein, in xi,j”(i)Is Null character,. mu. ')'i,j”(i)=d1At xi,j”(i)Not Null character,. mu.'i,j”(i)=d0. Connection portion 528-h uses the concealment calculation result [ e'i]And a result of concealment calculation [ mu'i]Obtaining and outputting the operation result yi=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i)) Concealed operation result [ yi]. For example, as shown in FIG. 24, a0=0,a1=1,b0=0,b1=1,d0=0,d1=1,g0=0,g1=1,kn-1For wildcard characters ". x", x is satisfied for j ═ 1, …, n-2, n3,j=kjIn the case of (e)3=(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). Thus, z3=0。
< feature of the present embodiment >
As described above, in the present embodiment,even in the case where the search word k may contain wildcard characters, or in the case of the search word k and the search object word xiIn the case where at least one of the search words may include Null characters, the complete match search of the concealed database can be directly performed with the search word including wildcard characters concealed. Further, in the present embodiment, a perfect match search can be performed regardless of whether the lengths of the suppressed search target word and the suppressed search word are the same. Moreover, the database search can be performed with less communication traffic than in the past.
[ 6 th embodiment ]
Embodiment 6 is a modification of
As shown in fig. 1, the search system 6 of the present embodiment includes a
As shown in fig. 2, the search device 62-h of the present embodiment includes: a control unit 120-h, an equal sign determination unit 521-h, a wildcard determination unit 522-h, a logical OR operation unit 623-h, a Null determination unit 625-h, a logical AND operation unit 527-h, a connection unit 628-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h. The search device 62-h executes each process under the control of the control section 120-h. The data obtained at each section is stored in the storage section 128-h one by one, and is read out as necessary and used for other processing.
< pretreatment >
The same as embodiment 5.
The search processing according to the present embodiment will be described with reference to fig. 25. Requesting
First, the equal sign determination unit 521-h uses the word [ x ] read from the storage unit 128-h and subjected to the search with the suppressed wordi]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,Nmin) Concealed operation result [ ei]. Wherein, for j' ═ 1, …, NminAt xi,j’Is kj’In the case of (e)i,j’=a1At xi,j’Is not kj’In the case of (e)i,j’=a0. Hiding operation result [ e ]i]Is stored in the storage section 128-h (step S521-h).
The wildcard character determination unit 522-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]. Wherein, for j' ═ 1, …, NminAt k, inj’In the case of wildcard characters, wj’=b1At k, inj’In the case of characters other than wildcard characters, wj’=b0. Hiding operation result [ w]Is stored in the storage section 128-h (step S522-h).
The Null determination unit 625-h uses the concealed search word [ k ] read from the storage unit 128-h]Obtaining and outputting a calculation result u ″ - (u ″) "1,…,u”N) Concealed operation result u "]. Wherein, for j ═ 1, …, N, at kjIn the case of Null characters, u "j=c1At k, injIn the case of characters other than Null, u "j=c0。u”j∈{c0,c1}, e.g. c0=0,
The logical OR operation unit 623-h (1 st logical OR operation unit) uses the concealment operation result [ w ] read from the storage unit 128-h]And the result of the concealment operation [ u ] "]Obtaining and outputting a calculation result w '═ w'1,…,w’Nmin) Concealed concealment calculation result [ w']. Wherein, for j' ═ 1, …, NminIn the case of satisfying u "j’=c1And wj’=b1W 'in the case of at least any one of (1)'j’=b’1In the case of satisfying u "j’=c0And wj’=b0In both cases, w'j’=b’0。w’j∈{b’0,b’1}, e.g. b'0=0,b’11. For example, in b0=0,b1=1,c0=0,c1=1,b’0=0,b’1In case of 1, w'j’=u”j’∨wj’. For example, the logical or operation unit 623-h performs secret calculation on j' 1, …, NminCarry out [ u ] "j’]And [ wj’]Logical or ofTo obtain w'j’=u”j’∨wj’Concealed [ w'j’]And to give [ w'1],…,[w’Nmin]The set of (b) is a concealment calculation result [ w']. Alternatively, the logical OR operation units 623-h may use the concealment operation result [ w ]]And the result of the concealment operation [ u ] "]Is calculated to obtain w'1,…,w’NminCollectively concealed concealment calculation result [ w']. Hiding calculation result [ w']Is stored in the storage section 128-h (step S6231-h).
The logical OR operation unit 623-h (logical OR operation unit 2) uses the concealment operation result [ e ] read from the storage unit 128-hi]And a concealment calculation result [ w']Obtaining and outputting a calculation result e'i=(e’i,1,…,e’i,Nmin) Concealed concealment calculation result [ e'i]. Wherein, for j' ═ 1, …, NminIs when satisfy e'i,j’=a1And w'j’=b’1E 'in the case of at least any one of (1)'i,j’=d1In the presence of a catalyst satisfying ei,j’=a0And w'j’=b’0In both cases, e'i,j’=d0。e’i,j’∈{d0,d1}, e.g. d0=0,
The connection part 628-h uses at least the concealment calculation result [ e'i]Obtaining and outputting the operation result yiConcealed operation result [ yi]. When N is less than or equal to N (i), the connection unit 628-h suppresses the calculation result [ e'i]As a result of the concealment operation [ y ]i]And (6) outputting. In N>In the case of N (i), the connection unit 628-h uses the concealment calculation result [ e'i]And a result of the concealment operation [ u ] "]Obtaining and outputting the operation result yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”N) Concealed operation result [ yi]。[yi]May be yiThe set of the concealment results obtained by concealing the elements may be yiAll the elements of (1) are concealed together. Hiding operation result [ yi]Is stored in the storage section 128-h (step S628-h).
Thereafter, the processing of steps 527 to h and steps S1292 to h described in
< concrete example >
The processing region of the present embodiment is described as N > N (i) or N ≦ N (i) as follows.
(cases of N > N (i))
m, N, t (i), N (i) are positive integers; i is 1, …, m; j is 1, …, N; j (i) ═ 1, …, n (i); j "(i) ═ N (i) +1, …, N; n is less than or equal to N; t (i) is less than or equal to N (i). The equal sign determination unit 521-h uses the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N(i)) Concealed operation result [ ei]Wherein, in xi,j(i)Is kj(i)In the case ofDown, ei,j(i)=a1At xi,j(i)Is not kj(i)In the case of (e)i,j(i)=a0. The wildcard character determination unit 522-h uses the concealed search term [ k ]]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN(i)) Concealed operation result [ w]Wherein, at kj(i)In the case of wildcard characters, wj(i)=b1At k, inj(i)In the case of characters other than wildcard characters, wj(i)=b0. The Null determination unit 625-h uses the hidden search word [ k ]]Obtaining and outputting a calculation result u ″ - (u ″) "1,…,u”N) Concealed operation result u "]Wherein, at kjIn the case of Null characters, u "j=c1At k, injIn the case of characters other than Null, u "j=c0. The logical OR operation units 623-h use the concealment operation result [ w ]]And the result of the concealment operation [ u ] "]Obtaining and outputting a calculation result w '═ w'1,…,w’N(i)) Concealed concealment calculation result [ w']Wherein, in satisfying u "j(i)=c1And wj(i)=b1W 'in the case of at least any one of (1)'j(i)=b’1In the case of satisfying u "j(i)=c0And wj(i)=b0In both cases, w'j(i)=b’0. The logical OR operation units 623-h use the concealment operation result [ e ]i]And a concealment calculation result [ w']Obtaining and outputting a calculation result e'i=(e’i,1,…,e’i,N(i)) Concealed concealment calculation result [ e'i]Wherein, in the formula, e'i,j(i)=a1And w'j(i)=b’1E 'in the case of at least any one of (1)'i,j(i)=d1In the presence of a catalyst satisfying ei,j(i)=a0And w'j(i)=b’0In both cases, yi,j(i)=d0. The connecting part 628-h is formed by usingThe result of concealment of calculation [ e'i]And a result of the concealment operation [ u ] "]Obtaining and outputting the operation result yi=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”N) Concealed operation result [ yi]. For example, as shown in FIG. 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-1For wildcard characters ". x", x is satisfied for j ═ 1, …, n-2, n1,j=kjIn the case of (e)1=(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). Thus, z1=1。
(ii) case of N. ltoreq. N (i)
m, N, t (i), N (i) are positive integers; i is 1, …, m; j is 1, …, N; j (i) ═ 1, …, n (i); n is less than or equal to N; t (i) is less than or equal to N (i). The equal sign determination unit 521-h uses the word [ x ] to be searched for in a hidden manneri]And a concealed search term [ k ]]Obtaining and outputting the operation result ei=(ei,1,…,ei,N) Concealed operation result [ ei]Wherein, in xi,jIs kjIn the case of (e)i,j=a1At xi,jIs not kjIn the case of (e)i,j=a0. The wildcard character determination unit 522-h uses the concealed search term [ k ]]Obtaining and outputting the operation result w ═ w (w) by secret calculation1,…,wN) Concealed operation result [ w]Wherein, at kjIn the case of wildcard characters, wj=b1At k, injIn the case of characters other than wildcard characters, wj=b0. The Null determination unit 625-h uses the hidden search word [ k ]]Secret calculation ofObtaining and outputting an operation result u ═ u "1,…,u”N) Concealed operation result u "]Wherein, at kjIn the case of Null characters, u "j=c1At k, injIn the case of characters other than Null, u "j=c0. The logical OR operation units 623-h use the concealment operation result [ w ]]And the result of the concealment operation [ u ] "]Obtaining and outputting a calculation result w '═ w'1,…,w’N) Concealed concealment calculation result [ w']Wherein, in satisfying u "j=c1And wj=b1W 'in the case of at least any one of (1)'j=b’1In the case of satisfying u "j=c0And wj=b0In both cases, w'j=b’0. The logical OR operation units 623-h use the concealment operation result [ e ]i]And a concealment calculation result [ w']Obtaining and outputting a calculation result e'i=yi=(yi,1,…,yi,N) Concealed operation result [ yi]Wherein, in the case of satisfying ei,j=a1And w'j=b’1In the case of at least one of the above, yi,j=d1In the presence of a catalyst satisfying ei,j=a0And w'j=b’0In both cases, yi,j=d0. For example, as shown in FIG. 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-1For wildcard characters ". x", x is satisfied for j ═ 1, …, n-2, n1,j=kjAnd N is 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). Thus,
< feature of the present embodiment >
As described above, in the present embodiment, even when the search word k may include wildcard characters, the search word k and the search target word xiIn the case where at least one of the search words may include Null characters, the search word including wildcard characters can be concealed, and the front matching search of the concealed database can be performed directly. Further, in the present embodiment, a forward matching search can be performed regardless of whether or not the lengths of the suppressed search target word and the suppressed search word are the same. Moreover, the database search can be performed with less communication traffic than in the past.
[ modifications and the like ]
The present invention is not limited to the above embodiments. For example, the search device may directly output the concealment operation result [ yi]Alternatively, the result of the hiding operation [ y ] may be usedi]A different secret calculation is performed than in step S127-h and the result obtained thereby is output.
As described above, the secret calculation method is not limited. If the equal sign determination and the logical operation (logical or operation, logical and operation) by the secret calculation can be performed, the secret calculation by the secret distribution method may be used, or the secret calculation by the homomorphic encryption method may be used. For example, the secret calculation method described below can be used.
Reference 1: ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, Tomas touch, "Unconditionally Secure consistent-Rounds Multi-party computing for evaluation, Comparison, Bits and Exponentiation," TCC 2006, pp.285-304.
Reference 2: qiantanhaus, Bintanhaoqi, Isuamao, Gaoqianking, "re-discussion of 3-part verifiable lightweighting hidden Function calculation (Secure Database Operations Using An Improved 3-part verified Secure Function Evaluation)", In CSS, 2010.
Reference 3: takashi Nishide, Kazuo Ohta, "Multiparty computation for Interval, evaluation, and composition with bit-resolution protocol", PKC, pp.343-360,2007.
The various processes described above may be executed not only in time series as described, but also in parallel or individually as needed or depending on the processing capability of the apparatus that executes the processes. It is needless to say that appropriate modifications can be made without departing from the scope of the present invention.
Each of the devices is configured by a general-purpose or special-purpose computer having a processor (hardware processor) such as a cpu (central processing unit) and a memory such as a RAM (random-access memory) or a ROM (read-only memory) and executing a predetermined program.
Such a computer may include one processor and one memory, or may include multiple processors and multiple memories. Such a program may be installed in a computer or may be recorded in advance in a ROM or the like. Instead of an electronic circuit (circuit) that reads a program to realize a functional configuration as in the case of a CPU, a part or all of the processing unit may be configured using an electronic circuit that realizes a processing function without using a program. The electronic circuit constituting one device may include a plurality of CPUs.
When the above configuration is realized by a computer, the processing contents of the functions to be provided by the respective devices are described by a program. The processing functions described above are realized on a computer by executing the program on the computer. The program describing the contents of such processing may be recorded in advance on a computer-readable recording medium. An example of the computer-readable recording medium is a non-transitory (non-transitory) recording medium. Examples of such recording media include magnetic media devices, optical disks, magneto-optical recording media, and semiconductor memories.
Such a program is distributed by, for example, selling, transferring, and renting portable recording media such as DVDs and CD-ROMs on which such a program is recorded. Further, the configuration may be such that: such a program is stored in a storage device of a server computer in advance, and the program is distributed by being transferred from the server computer to another computer via a network.
A computer that executes such a program first temporarily stores a program recorded in a portable recording medium or a program transferred from a server computer in its own storage device, for example. When executing the processing, the computer reads the program stored in its own storage device and executes the processing according to the read program. As another execution mode of the program, the computer may directly read the program from the portable recording medium and execute the processing according to the program, and may sequentially execute the processing according to the received program each time the program is transferred from the server computer to the computer. The processing function may be realized by only the execution instruction and the result acquisition without transmitting the program from the server computer to the computer, that is, the processing may be executed by a so-called asp (application Service provider) type Service.
Instead of executing a predetermined program on a computer to realize the processing functions of the present apparatus, at least a part of the processing functions may be realized by hardware.
[ description of symbols ]
1-4 search system
12-1-H, 22-1-H, 32-1-H, 42-1-H search device