检索装置、检索方法、以及记录介质 |
|||||||
申请号 | CN201880081581.2 | 申请日 | 2018-12-10 | 公开(公告)号 | CN111712868B | 公开(公告)日 | 2023-08-08 |
申请人 | 日本电信电话株式会社; | 发明人 | 五十岚大; | ||||
摘要 | 等号判定部通过使用了隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到ei=(ei,1,…,ei,N)被隐匿了的[ei],其中,在xi,j为kj的情况下,ei,j=a1;在xi,j不为kj的情况下,ei,j=a0。 通配符 判定部通过使用了[k]的秘密计算,得到w=(w1,…,wN)被隐匿了的[w],其中,在kj为通配符字符的情况下,wj=b1,否则,wj=b0。逻辑或运算部通过使用了[ei]和[w]的秘密计算,得到yi=(yi,1,…,yi,N)被隐匿了的[yi],其中,在满足ei,j=a1以及wj=b1中的至少一方的情况下,yi,j=d1,否则,yi,j=d0。 | ||||||
权利要求 | 1.一种通过秘密计算进行完全一致检索的检索装置,具有: |
||||||
说明书全文 | 检索装置、检索方法、以及记录介质技术领域[0001] 本发明涉及秘密计算技术,尤其涉及在隐匿数据上进行检索的技术。 背景技术[0003] 现有技术文献 [0004] 非专利文献 [0005] 非专利文献1:滨田浩气,桐渊直人,五十岚大,“一轮高效的秘密计算模式匹配(ARound‑Efficient Pattern Matching Algorithm for Secure Multi‑Party Computation)”计算机安全研讨会(CSS)2014。 发明内容[0006] 发明所要解决的课题 [0008] 本发明的目的在于,在隐匿了包含通配符字符的检索词的状态下,直接高效地进行被隐匿了的数据库的一致检索。 [0009] 用于解决课题的手段 [0010] 存储部储存有隐匿化数据库[x1],…,[xm]。隐匿化数据库[x1],…,[xm]所包含的隐匿化检索对象词[xi]是包含t(i)个字符xi,1,…,xi,t(i)的检索对象词xi=(xi,1,…, xi,t(i),…,xi,N)被隐匿了的隐匿化检索对象词。输入部受理隐匿化检索词[k]的输入。隐匿化检索词[k]是包含含有通配符字符的n个字符k1,…,kn的检索词k=(k1,…,kn,…,kN)被隐匿了的隐匿化检索词。等号判定部通过使用了隐匿化检索对象词[xi]和隐匿化检索词[k] 的秘密计算,得到运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei],其中,在xi,j为kj的情况下,ei,j=a1;在xi,j不为kj的情况下,ei,j=a0。通配符判定部通过使用了隐匿化检索词[k]的秘密计算,得到运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w],其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。逻辑或运算部通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到运算结果yi= (yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi],其中,在满足ei,j=a1以及wj=b1中的至少任一方的情况下,yi,j=d1,在满足ei,j=a0以及wj=b0双方的情况下,yi,j=d0。其中,m,n,t(i),N为正整数,i=1,…,m,j=1,…,N,n≤N,t(i)≤N。 [0011] 发明效果 [0012] 根据本发明,能够以比以往少的通信量进行被隐匿数据库的一致检索。 [0014] 图1是例示实施方式的检索系统的框图。 [0015] 图2是例示实施方式的检索装置的框图。 [0016] 图3是用于说明第1实施方式的检索方法的流程图。 [0017] 图4是用于说明第1实施方式的检索方法的概念图。 [0018] 图5是用于说明第1实施方式的检索方法的概念图。 [0019] 图6是用于说明第1实施方式的检索方法的概念图。 [0020] 图7是用于说明第1实施方式的检索方法的概念图。 [0021] 图8是用于说明第1实施方式的检索方法的概念图。 [0022] 图9是用于说明第1实施方式的检索方法的概念图。 [0023] 图10是用于说明第2实施方式的检索方法的流程图。 [0024] 图11是用于说明第2实施方式的检索方法的概念图。 [0025] 图12是用于说明第2实施方式的检索方法的概念图。 [0026] 图13是用于说明第2实施方式的检索方法的概念图。 [0027] 图14是用于说明第3实施方式的检索方法的流程图。 [0028] 图15是用于说明第3实施方式的检索方法的概念图。 [0029] 图16是用于说明第3实施方式的检索方法的概念图。 [0030] 图17是用于说明第4实施方式的检索方法的流程图。 [0031] 图18是用于说明第4实施方式的检索方法的概念图。 [0032] 图19是用于说明第4实施方式的检索方法的概念图。 [0033] 图20是用于说明第5实施方式的检索方法的流程图。 [0034] 图21是用于说明第5实施方式的检索方法的概念图。 [0035] 图22是用于说明第5实施方式的检索方法的概念图。 [0036] 图23是用于说明第5实施方式的检索方法的概念图。 [0037] 图24是用于说明第5实施方式的检索方法的概念图。 [0038] 图25是用于说明第6实施方式的检索方法的流程图。 [0039] 图26是用于说明第6实施方式的检索方法的概念图。 [0040] 图27是用于说明第6实施方式的检索方法的概念图。 [0041] 图28是用于说明第6实施方式的检索方法的概念图。 具体实施方式[0042] 以下,参照附图对本发明的实施方式进行说明。 [0043] [第1实施方式] [0044] 对第1实施方式进行说明。在本实施方式中,在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿了的数据库的完全一致检索。 [0045] <结构> [0046] 如图1所示,本实施方式的检索系统1具有请求检索的请求装置11和进行检索的检索装置12‑h,进行基于秘密计算的检索处理。其中,h=1,…,H,H是1以上的整数。在进行基于秘密分散方式的秘密计算的情况下,H≧2,在进行基于同态加密方式的秘密计算的情况 下,H=1。 [0047] 如图2所示,本实施方式的检索装置12‑h具有:控制部120‑h、等号判定部121‑h、通配符判定部122‑h、逻辑或运算部123‑h、逻辑与运算部127‑h、存储部128‑h、输入部1291‑h以及输出部1292‑h。检索装置12‑h在控制部120‑h的控制下执行各处理。此外,各部得到的数据逐一被储存在存储部128‑h中,根据需要被读出而用于其他处理。 [0048] <预处理> [0049] 存储部128‑h储存隐匿化数据库[x1],…,[xm],所述隐匿化数据库包含含有t(i)个字符xi,1,…,xi,t(i)的检索对象词xi=(xi,1,…,xi,t(i),…,xi,N)(例如,参照图4和图6的DB)被隐匿了的隐匿化检索对象词[xi]。其中,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是表示Null值的特殊字符(Null字符)。Null字符是预先设定的(例如,“0”),不能作为普通字符使用。在t(i)=N的情况下,检索对象词xi不含Null字符。各字符由例如有限域的元素表示。在进行基于秘密分散方式的秘密计算的情况下,隐匿化检索对象词[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]进行关联。 [0050] <检索处理> [0051] 使用图3说明本实施方式的检索处理。 [0052] 请求装置11隐匿化了包含n个字符k1,…,kn的检索词k=(k1,…,kn,…,kN)(例如,参照图4和图6)得到隐匿化检索词[k]。其中,n是正整数,n≤N。字符k1,…,kn也可以包含1个以上的通配符字符。字符k1,…,kn中通配符字符以外的字符是普通字符。通配符字符是预先设定的(例如,“*”),不作为普通字符使用。此外,1个通配符字符对应1个普通字符或者1个Null字符(在以下的各实施方式中也是相同的)。在上述的检索对象词xi(其中i=1,…,m) 不包含Null字符的情况下,字符k1,…,kn中的任何字符都可以是通配符字符。另一方面,在检索对象词xi不包含Null字符xi,t(i)+1,…,xi,N的情况下,在本实施方式中使kt(i)+1,…,kN不包含通配符字符。包含在检索词k里的N‑n个字符kn+1,…,kN是Null字符。其中,在n=N的情况下,检索词k不包含Null字符(例如,参照图4)。检索词k中包含的Null字符与上述检索对象词xi中包含的Null字符相同。如果在检索装置12‑h中进行基于秘密分散方式的秘密计 算,则隐匿化检索词[k]是检索词k的秘密分散值。另一方面,如果在检索装置12‑h中进行基于同态加密方式的秘密计算,则隐匿化检索词[k]是检索词k的密文。可以将字符k1,…, kn…,kN中的每一个分别隐匿化而得到的隐匿值[k1],…,[kn],…,[kN]的集合作为隐匿化检索词[k],也可以将N个字符k1,…,kn,…,kN一并隐匿化而作为隐匿化检索词[k]。 [0053] 请求装置11输出隐匿化检索词[k]。所输出的隐匿化检索词[k]经由网络等被发送给检索装置12‑h。隐匿化检索词[k]被输入至检索装置12‑h的输入部1291‑h,并被储存在存储部128‑h中(步骤S1291‑h)。之后,针对各i=1,…,m执行以下处理。 [0054] 首先,等号判定部121‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei]。其中,在xi,j为kj的情况下(xi,j=kj的情况下),ei,j=a1,在xi,j不为kj的情况下(xi,j≠kj的情况下),ei,j=a0。ei,j∈{a0,a1},例如,a0=0,a1=1。由于通配符字符与普通字符不同,因而在kj为通配符字符的情况下必然为ei,j=a0。同样,由于Null字符和普通字符不同,因而在kj为Null字符且xi,j为普通字符的情况下,以及在kj为普通字符且xi,j为Null字符的情况下,必然为ei,j=a0。此外,如果kj以及xi,j均为Null字符,则ei,j=a1。例如,等号判定部121‑h通过秘密计算,针对j=1,…,N进行[kj]和[xi,j]的等号判定(一致判定),得到将ei,j隐匿化了的[ei,j],并得到[ei,1],…,[ei,N]的集合作为隐匿化运算结果[ei]。或者,等号判定部121‑h也可以通过使用了隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到ei,1,…,ei,N被一并隐匿了的隐匿化运算结果[ei]。隐匿化运算结果[ei]被储存在存储部128‑h中(步骤S121‑h)。 [0055] 通配符判定部122‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w]。其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。wj∈{b0,b1},例如,b0= 0,b1=1。例如,通配符判定部122‑h使用隐匿化检索词[k]和将通配符字符隐匿化而得到的隐匿化通配符字符,并通过秘密计算,得到隐匿化运算结果[w]。举一个例子,通配符判定部 122‑h通过秘密计算,针对j=1,…,N进行[kj]和隐匿化通配符字符的等号判定,得到将wj隐匿化了的[wj],并得到[w1],…,[wN]的集合作为隐匿化运算结果[w]。或者,通配符判定部 122‑h也可以通过使用了隐匿化检索词[k]和隐匿化通配符字符的秘密计算,得到w1,…,wN被一并隐匿了的隐匿化运算结果[w]。隐匿化运算结果[w]被储存在存储部128‑h中(步骤 S122‑h)。 [0056] 逻辑或运算部123‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到并输出运算结果yi=(yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi]。其中,在满足ei,j=a1以及wj=b1中的至少任一方的情况下,yi,j=d1,在满足ei,j=a0以及wj=b0双方的情况下,yi,j=d0。yi,j∈ [0057] {d0,d1},例如,d0=0,d1=1。例如,在a0=0,a1=1,b0=0,b1=1,d0=0,d1=1的情况下,yi,j=ei,j∨wj。其中,“∨”表示逻辑或(OR)。例如,逻辑或运算部123‑h通过秘密计算,针对j=1,…,N进行[ei,j]和[wj]的逻辑或,得到将yi,j=ei,j∨wj隐匿化的[yi,j],并得到[yi,1],…,[yi,N]的集合作为隐匿化运算结果[yi]。或者,逻辑或运算部123‑h也可以通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到yi,1,…,yi,N被一并隐匿了的隐匿化运算结果[yi]。隐匿化运算结果[yi]被储存在存储部128‑h中(步骤S123‑h)。 [0058] 逻辑与运算部127‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[yi]的秘密计算,得到并输出一致判定结果zi被隐匿了的隐匿化一致判定结果[zi]。其中,在yi,1=…=yi,N=d1的情况下,zi=g1。在不为yi,1=…=yi,N=d1的情况下,zi=g0。zi∈{g0,g1},例如,g0=0,g1=1。例如,在d0=0,d1=1,g0=0,g1=1的情况下,zi=yi,1∧…∧yi,N。其中,“∧”表示逻辑与。zi=g1表示检索对象词xi与检索词k一致,zi=g0表示检索对象词xi与检索词k不一致。隐匿化一致判定结果[zi]被储存在存储部128‑h中(步骤S127‑h)。 [0059] 输出部1292‑h输出针对各i=1,…,m的隐匿化一致判定结果[zi](步骤S1292‑h)。隐匿化一致判定结果[zi]经由网络等被发送给请求装置11。请求装置11针对各i=1,…,m 复原隐匿化一致判定结果[zi]并得到zi。例如,在进行基于秘密分散方式的秘密计算的情况下,请求装置11根据从规定数目以上的检索装置12‑h发送的[zi]复原zi。另一方面,在进行基于同态加密方式的秘密计算的情况下,复原被发送的[zi]并得到zi。由此得到针对各i的检索结果。然后,执行使用了这些检索结果的处理(例如,与一致的隐匿化检索对象词[xi]对应的内容信息的隐匿值的要求等)。 [0060] <具体例子> [0061] 以下,表示在a0=0,a1=1,b0=0,b1=1,d0=0,d1=1,g0=0,g1=1的情况下的具体例子。 [0062] 如图4所示,N=n=t(i),kr为通配符字符“*”,1≤r≤n,在针对r以外的j=1,…,n满足x1,j=kj的情况下,e1=(1,…,1,0,1,…,1)以及w=(0,…,0,1,0,…,0),y1=(1,…,1,1,1,…,1)。因此,z1=1。 [0063] 如图5所示,N=n=t(i),在仅针对1以及r以外的j=2,…,n满足x2,j=kj的情况下,e2=(0,1,…,1,0,1,…,1)以及w=(0,0,…,0,1,0,…,0),y2=(0,1,…,1,1,1,…,1)。 因此,z2=0。 [0064] 图6至图9是n [0065] 如图7所示,t(1)=n,kr为通配符字符“*”,1≤r≤n,在针对r以外的j=1,…,n满足x1,j=kj的情况下,e1=(1,1,…,0,…,1,…,1)以及 [0066] w=(0,0,…,1,…,0,…,0),y1=(1,1,…,1,…,1,…,1)。因此,z1=1。 [0067] 如图8所示,t(2)=n+1,kr为通配符字符“*”,1≤r≤n,在针对r以外的j=1,…,n满足x2,j=kj的情况下,e2=(1,1,…,0,…,1,0,1,…,1)以及w=(0,0,…,1,…,0,0,0,…,0),y2=(1,1,…,1,…,1,0,1,…,1)。因此,z2=0。 [0068] 如图9所示,t(3)=n‑1,kr为通配符字符“*”,1≤r≤n‑1,在仅针对r以外的j=1,…,n‑1满足x3,j=kj的情况下,e3=(1,1,…,0,…,0,1,1,…,1)以及w=(0,0,…,1,…,0, 0,0,…,0),y3=(1,1,…,1,…,0,1,1,…,1)。 [0069] <本实施方式的特征> [0070] 如上所述,在本实施方式中,能够在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的完全一致检索。此外,能够以比以往少的通信量(例如,O(N)的通信量)进行被隐匿的数据库的一致检索。 [0071] [第2实施方式] [0072] 在检索对象词xi的字符xi,t(i)+1,…,xi,N是Null字符,检索词k的字符kt(i)+1,…,kN可以包含通配符字符的情况下,第1实施方式的方法有时不能正确地进行完全一致检索。例如,在图11的例子的情况下,检索对象词x3的字符x3,n,…,xi,N是Null字符,检索词k的字符kn是通配符字符。必须判定为通配符字符与任何普通字符一致,但必须判定为通配符字符与Null字符不一致。然而,在针对j=1,…,n‑1满足x3,j=kj的情况下,第1实施方式的方法中y3=(1,1,…,1,…,1,1,1,…,1),z3=1。在本实施方式中,说明在这样的情况下也正确地进行完全一致检索的方式。另外,以下以与目前为止说明的事项的不同点为中心进行说明,对于共同的事项则引用相同的参照编号简化说明。 [0073] <结构> [0074] 如图1所示,本实施方式的检索系统2具有请求检索的请求装置11以及进行检索的检索装置22‑h,进行基于秘密计算的检索处理。其中,h=1,…,H,H是1以上的整数。 [0075] 如图2所示,本实施方式的检索装置22‑h具有:控制部120‑h、等号判定部121‑h、通配符判定部122‑h、逻辑或运算部223‑h、Null判定部224‑h、逻辑与运算部127‑h、226‑h、存储部128‑h、输入部1291‑h、以及输出部1292‑h。检索装置22‑h在控制部120‑h的控制下执行各处理。此外,在各部得到的数据逐一被储存在存储部128‑h中,根据需要被读出而用于其他处理。 [0076] <预处理> [0077] 与第1实施方式相同。 [0078] <检索处理> [0079] 使用图10说明本实施方式的检索处理。请求装置11隐匿化了包含n个字符k1,…,kn的检索词k=(k1,…,kn,…,kN)而得到隐匿化检索词[k]。其中,n是正整数,n≤N。字符 k1,…,kn也可以包含通配符字符。与第1实施方式不同,在检索对象词xi包含Null字符 xi,t(i)+1,…,xi,N的情况下,kt(i)+1,…,kN可以包含通配符字符。 [0080] 请求装置11输出隐匿化检索词[k]。所输出的隐匿化检索词[k]经由网络等被发送给检索装置22‑h。隐匿化检索词[k]被输入至检索装置22‑h的输入部1291‑h,并被储存在存储部128‑h中(步骤S1291‑h)。之后,针对各i=1,…,m执行以下处理。 [0081] 首先,等号判定部121‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei]。其中,在xi,j为kj的情况下(xi,j=kj的情况下),ei,j=a1,在xi,j不为kj的情况下(xi,j≠kj的情况下),ei,j=a0。隐匿化运算结果[ei]被储存在存储部128‑h中(步骤S121‑h)。 [0082] 通配符判定部122‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w]。其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。隐匿化运算结果[w]被储存在存储部128‑h中(步骤S122‑h)。 [0083] Null判定部224‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]的秘密计算,得到并输出运算结果μi=(μi,1,…,μi,N)被隐匿了的隐匿化运算结果[μi]。其中,在xi,j为Null字符的情况下,μi,j=θ0,在xi,j不为Null字符的情况下,μi,j=θ1。μi,j∈{θ0,θ1},例如,θ0=0,θ1=1。例如,Null判定部224‑h使用隐匿化检索对象词[xi]和将Null字符隐匿化而得到的隐匿化Null字符,并通过秘密计算,得到隐匿化运算结果[μi]。举一个例子,Null判定部224‑h通过秘密计算,针对j=1,…,N进行[xi,j]和隐匿化Null字符的等号判定,得到将μi,j隐匿化了的[μi,j],并得到[μi,1],…,[μi,N]的集合作为隐匿化运算结果[μi]。 或者,Null判定部224‑h也可以通过使用了隐匿化检索对象词[xi]和隐匿化Null字符的秘 密计算,得到μi,1,…,μi,N被一并隐匿了的隐匿化运算结果[μi]。隐匿化运算结果[μi]被储存在存储部128‑h中(步骤S224‑h)。 [0084] 逻辑与运算部226‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[w]和隐匿化运算结果[μi]的秘密计算,得到并输出运算结果vi=(vi,1,…,vi,N)被隐匿了的隐匿化运算结果[vi]。其中,在满足wj=b1以及μi,j=θ1双方的情况下,vi,j=ρ1,在满足wj=b0以及μi,j=θ0中的至少任一方的情况下,vi,j=ρ0。vi,j∈{ρ0,ρ1},例如,ρ0=0,ρ1=1。例如,在b0= 0,b1=1,ρ0=0,ρ1=1的情况下,vi,j=wj∧μi,j。例如,逻辑与运算部226‑h通过秘密计算,针对j=1,…,N进行[wj]和[μi,j]的逻辑与,得到将vi,j=wj∧μi,j隐匿化的[vi,j],并得到[vi,1],…,[vi,N]的集合作为隐匿化运算结果[vi]。或者,逻辑与运算部226‑h也可以通过使用了隐匿化运算结果[w]和隐匿化运算结果[μi]的秘密计算,得到vi,1,…,vi,N被一并隐匿了的隐匿化运算结果[vi]。隐匿化运算结果[vi]被储存在存储部128‑h中(步骤S226‑h)。 [0085] 逻辑或运算部223‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[ei]和隐匿化运算结果[vi]的秘密计算,得到并输出运算结果yi=(yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi]。其中,在满足ei,j=a1以及vi,j=ρ1中的至少任一方的情况下,yi,j=d1,在满足ei,j=a0以及vi,j=ρ0双方的情况下,yi,j=d0。yi,j∈{d0,d1},例如,d0=0,d1=1。例如,在a0=0,a1=1,ρ0=0,ρ1=1,d0=0,d1=1的情况下,yi,j=ei,j∨vi,j。例如,逻辑或运算部 223‑h通过秘密计算,针对j=1,…,N进行[ei,j]和[vi,j]的逻辑或,得到将yi,j=ei,j∨wi,j隐匿化的[yi,j],并得到[yi,1],…,[yi,N]的集合作为隐匿化运算结果[yi]。或者,逻辑或运算部223‑h也可以通过使用了隐匿化运算结果[ei]和隐匿化运算结果[vi]的秘密计算,得到 yi,1,…,yi,N被一并隐匿了的隐匿化运算结果[yi]。隐匿化运算结果[yi]被储存在存储部 128‑h中(步骤S223‑h)。 [0086] 之后,执行在第1实施方式中说明了的步骤S127‑h以后的处理。 [0087] <具体例子> [0088] 以下,表示在a0=0,a1=1,b0=0,b1=1,ρ0=0,ρ1=1,d0=0,d1=1,g0=0,g1=1的情况下的具体例子。 [0089] 图11至图13是n [0090] 如图12所示,t(1)=n,在针对j=1,…,n‑1满足x1,j=kj的情况下,e1=(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,…,1)。因此,z1=1。 [0091] 如图13所示,t(3)=n‑1,在针对j=1,…,n‑1满足x1,j=kj的情况下,e3=(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)。因此,z3=0。 [0092] <本实施方式的特征> [0093] 如上所述,在本实施方式中,即使在检索对象词xi的字符xi,t(i)+1,…,xi,N是Null字符,检索词k的字符kt(i)+1,…,kN可以包含通配符字符的情况下,也可以在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的完全一致检索。此外,能够以比以往少的通信量进行被隐匿的数据库的一致检索。 [0094] [第3实施方式] [0095] 第3实施方式是第1实施方式的变形例。在本实施方式中,在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的前方一致检索。 [0096] <结构> [0097] 如图1所示,本实施方式的检索系统3具有请求检索的请求装置11以及进行检索的检索装置32‑h,进行基于秘密计算的检索处理。其中,h=1,…,H,H是1以上的整数。在进行基于秘密分散方式的秘密计算的情况下,H≧2,在进行基于同态加密方式的秘密计算的情 况下,H=1。 [0098] 如图2所示,本实施方式的检索装置32‑h具有:控制部120‑h、等号判定部121‑h、通配符判定部122‑h、逻辑或运算部323‑h、Null判定部325‑h、逻辑与运算部127‑h、存储部128‑h,输入部1291‑h、以及输出部1292‑h。检索装置32‑h在控制部120‑h的控制下执行各处理。此外,在各部得到的数据逐一被储存在存储部128‑h中,根据需要被读出而用于其他处理。 [0099] <预处理> [0100] 与第1实施方式相同。 [0101] <检索处理> [0102] 使用图14说明本实施方式的检索处理。请求装置11隐匿化了包含n个字符k1,…,kn的检索词k=(k1,…,kn,…,kN)而得到隐匿化检索词[k]。其中,n是正整数,n≤N。字符 k1,…,kn也可以包含通配符字符。在检索对象词xi(其中i=1,…,m)不包含Null字符的情况下,字符k1,…,kn中的任何字符都可以是通配符字符。另一方面,在检索对象词xi包含Null字符xi,t(i)+1,…,xi,N的情况下,在本实施方式中使kt(i)+1,…,kN不包含通配符字符。 [0103] 请求装置11输出隐匿化检索词[k]。所输出的隐匿化检索词[k]经由网络等被发送给检索装置32‑h。隐匿化检索词[k]被输入至检索装置32‑h的输入部1291‑h,并被储存在存储部128‑h中(步骤S1291‑h)。之后,针对各i=1,…,m执行以下处理。 [0104] 首先,等号判定部121‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei]。其中,在xi,j为kj的情况下(xi,j=kj的情况下),ei,j=a1,在xi,j不为kj的情况下(xi,j≠kj的情况下),ei,j=a0。隐匿化运算结果[ei]被储存在存储部128‑h中(步骤S121‑h)。 [0105] 通配符判定部122‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w]。其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。隐匿化运算结果[w]被储存在存储部128‑h中(步骤S122‑h)。 [0106] Null判定部325‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果u=(u1,…,uN)被隐匿了的隐匿化运算结果[u]。其中,在kj为Null字符的情况下,uj=c1,在kj不为Null字符的情况下,uj=c0。uj∈{c0,c1},例如,c0=0,c1= 1。例如,Null判定部325‑h使用隐匿化检索词[k]和将Null字符隐匿化而得到的隐匿化Null字符,并通过秘密计算,得到隐匿化运算结果[u]。举一个例子,Null判定部325‑h通过秘密计算,针对j=1,…,N进行[kj]和隐匿化Null字符的等号判定,得到将uj隐匿化了的[uj],并得到[u1],…,[uN]的集合作为隐匿化运算结果[u]。或者,Null判定部325‑h也可以通过使用了隐匿化检索词[k]和隐匿化Null字符的秘密计算,得到u1,…,uN被一并隐匿了的隐匿化运算结果[u]。隐匿化运算结果[u]被储存在存储部128‑h中(步骤S325‑h)。 [0107] 逻辑或运算部323‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[ei]和隐匿化运算结果[w]以及隐匿化运算结果[u]的秘密计算,得到并输出运算结果yi= (yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi]。其中,在满足ei,j=a1、wj=b1以及uj=c1中的至少任一方的情况下,yi,j=d1,在ei,j=a0以及wj=b0以及uj=c0全部满足的情况下,yi,j=d0。yi,j∈{d0,d1},例如,d0=0,d1=1。例如,在a0=0,a1=1,b0=0,b1=1,c0=0,c1=1,d0=0,d1=1的情况下,yi,j=ei,j∨wj∨uj。例如,逻辑或运算部323‑h通过秘密计算,针对j= 1,…,N进行[ei,j]和[wj]以及[uj]的逻辑或,得到将yi,j=ei,j∨wj∨uj隐匿化的[yi,j],并得到[yi,1],…,[yi,N]的集合作为隐匿化运算结果[yi]。或者,逻辑或运算部323‑h也可以通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w]以及隐匿化运算结果[u]的秘密计算,得 到yi,1,…,yi,N被一并隐匿了的隐匿化运算结果[yi]。隐匿化运算结果[yi]被储存在存储部 128‑h中(步骤S323‑h)。 [0108] 之后,执行在第1实施方式中说明了的步骤S127‑h以后的处理。 [0109] <具体例子> [0110] 以下,表示在a0=0,a1=1,b0=0,b1=1,c0=0,c1=1,d0=0,d1=1,g0=0,g1=1的情况下的具体例子。 [0111] 如图15所示,t(2)=n+1,在针对j=1,…,n满足x1,j=kj的情况下,e2=(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)。因此,z2=1。 [0112] 如图16所示,t(3)=n‑1,在针对j=1,…,n‑1满足x1,j=kj的情况下,e3=(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)。因此,z3=0。 [0113] <本实施方式的特征> [0114] 如上所述,在本实施方式中,可以在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的前方一致检索。此外,能够以比以往少的通信量进行被隐匿的数据库的一致检索。 [0115] [第4实施方式] [0116] 第4实施方式是第2、3实施方式的变形例。在本实施方式中,在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的前方一致检索。与完全一致检索的情 况同样,在检索对象词xi的字符xi,t(i)+1,…,xi,N是Null字符,检索词k的字符kt(i)+1,…,kN可以包含通配符字符的情况下,第3实施方式的方法有时不能正确地进行前方一致检索。在本实施方式中,说明在这样的情况下也正确地进行前方一致检索的方式。 [0117] <结构> [0118] 如图1所示,本实施方式的检索系统4具有请求检索的请求装置11以及进行检索的检索装置42‑h,进行基于秘密计算的检索处理。其中,h=1,…,H,H是1以上的整数。在进行基于秘密分散方式的秘密计算的情况下,H≧2,在进行基于同态加密方式的秘密计算的情 况下,H=1。 [0119] 如图2所示,本实施方式的检索装置42‑h具有:控制部120‑h、等号判定部121‑h、通配符判定部122‑h、逻辑或运算部423‑h、Null判定部224‑h、325‑h、逻辑与运算部127‑h、226‑h、存储部128‑h、输入部1291‑h、以及输出部1292‑h。检索装置42‑h在控制部120‑h的控制下执行各处理。此外,在各部得到的数据逐一被储存在存储部128‑h中,根据需要被读出而用于其他处理。 [0120] <预处理> [0121] 与第1实施方式相同。 [0122] <检索处理> [0123] 使用图17说明本实施方式的检索处理。请求装置11隐匿化了包含n个字符k1,…,kn的检索词k=(k1,…,kn,…,kN)而得到隐匿化检索词[k]。其中,n是正整数,n≤N。字符 k1,…,kn也可以包含通配符字符。与第3实施方式不同,在检索对象词xi包含Null字符 xi,t(i)+1,…,xi,N的情况下,kt(i)+1,…,kN可以包含通配符字符。 [0124] 请求装置11输出隐匿化检索词[k]。所输出的隐匿化检索词[k]经由网络等被发送给检索装置42‑h。隐匿化检索词[k]被输入至检索装置42‑h的输入部1291‑h,并被储存在存储部128‑h中(步骤S1291‑h)。之后,针对各i=1,…,m执行以下处理。 [0125] 首先,等号判定部121‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei]。其中,在xi,j为kj的情况下(xi,j=kj的情况下),ei,j=a1,在xi,j不为kj的情况下(xi,j≠kj的情况下),ei,j=a0。隐匿化运算结果[ei]被储存在存储部128‑h中(步骤S121‑h)。 [0126] 通配符判定部122‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w]。其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。隐匿化运算结果[w]被储存在存储部128‑h中(步骤S122‑h)。 [0127] Null判定部325‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果u=(u1,…,uN)被隐匿了的隐匿化运算结果[u]。其中,在kj为Null字符的情况下,uj=c1,在kj不为Null字符的情况下,uj=c0。例如,Null判定部325‑h使用隐匿化检索词[k]和将Null字符隐匿化而得到的隐匿化Null字符,并通过秘密计算,得到隐匿化运算结果[u]。隐匿化运算结果[u]被储存在存储部128‑h中(步骤S325‑h)。 [0128] Null判定部224‑h通过使用了从存储部128‑h中读出的隐匿化检索词[xi]的秘密计算,得到并输出运算结果μi=(μi,1,…,μi,N)被隐匿了的隐匿化运算结果[μi]。其中,在xi,j为Null字符的情况下,μi,j=θ0,在xi,j不为Null字符的情况下,μi,j=θ1。隐匿化运算结果[μi]被储存在存储部128‑h中(步骤S224‑h)。 [0129] 逻辑或运算部226‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[w]和隐匿化运算结果[μi]的秘密计算,得到并输出运算结果vi=(vi,1,…,vi,N)被隐匿了的隐匿化运算结果[vi]。其中,在满足wj=b1以及μi,j=θ1双方的情况下,vi,j=ρ1,在满足wj=b0以及μi,j=θ0中的至少任一方的情况下,vi,j=ρ0。隐匿化运算结果[vi]被储存在存储部128‑h中(步骤S226‑h)。 [0130] 逻辑或运算部423‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[ei]和隐匿化运算结果[u]以及隐匿化运算结果[vi]的秘密计算,得到并输出运算结果yi= (yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi]。其中,在满足ei,j=a1、vi,j=ρ1以及uj=c1中的至少任一方的情况下,yi,j=d1,在ei,j=a0以及vi,j=ρ0以及uj=c0全部满足的情况下,yi,j=d0。yi,j∈{d0,d1},例如,d0=0,d1=1。例如,在a0=0,a1=1,ρ0=0,ρ1=1,c0=0,c1=1,d0=0,d1=1的情况下,yi,j=ei,j∨vi,j∨uj。例如,逻辑或运算部423‑h通过秘密计算,针对j= 1,…,N进行[ei,j]和[vi,j]以及[uj]的逻辑或,得到将yi,j=ei,j∨vi,j∨uj隐匿化的[yi,j],并得到[yi,1],…,[yi,N]的集合作为隐匿化运算结果[yi]。或者,逻辑或运算部423‑h也可以通过使用了隐匿化运算结果[ei]和隐匿化运算结果[vi]以及隐匿化运算结果[u]的秘密计算,得到yi,1,…,yi,N被一并隐匿了的隐匿化运算结果[yi]。隐匿化运算结果[yi]被储存在存储部128‑h中(步骤S423‑h)。 [0131] 之后,执行在第1实施方式中说明了的步骤S127‑h以后的处理。 [0132] <具体例子> [0133] 以下,表示在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 [0134] 如图18所示,t(1)=n,在针对j=1,…,n‑1满足x1,j=kj的情况下,e1=(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,…,1)。因此,z1=1。 [0135] 如图19所示,t(3)=n‑1,在针对j=1,…,n‑1满足x1,j=kj的情况下,e3=(1,1,…,1,0,1,1,…,1),w=(0,0,…,0,1,0,0,…,0),u=(0,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)。因此,z3=0。 [0136] <本实施方式的特征> [0137] 如上所述,在本实施方式中,即使在检索对象词xi的字符xi,t(i)+1,…,xi,N是Null字符,检索词k的字符kt(i)+1,…,kN可以包含通配符字符的情况下,也能够在隐匿了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的前方一致检索。此外,能够以比以往少的通信量进行被隐匿的数据库的一致检索。 [0138] [第5实施方式] [0139] 第5实施方式是第1、2实施方式的变形例。在第1、2实施方式中,以隐匿化检索对象词和隐匿化检索词的长度彼此相同为前提。与此相对,在本实施方式中,不论隐匿化检索对象词和隐匿化检索词的长度是否彼此相同,都能够进行完全一致检索。 [0140] <结构> [0141] 如图1所示,本实施方式的检索系统5具有请求检索的请求装置11以及进行检索的检索装置52‑h,进行基于秘密计算的检索处理。其中,h=1,…,H,H是1以上的整数。在进行基于秘密分散方式的秘密计算的情况下,H≧2,在进行基于同态加密方式的秘密计算的情 况下,H=1。 [0142] 如图2所示,本实施方式的检索装置52‑h具有:控制部120‑h、等号判定部521‑h、通配符判定部522‑h、逻辑或运算部523‑h、Null判定部524‑h、525‑h、逻辑与运算部527‑h、连接部528‑h、存储部128‑h、输入部1291‑h、以及输出部1292‑h。检索装置52‑h在控制部120‑h的控制下执行各处理。此外,在各部得到的数据逐一被储存在存储部128‑h中,根据需要被读出而用于其他处理。 [0143] <预处理> [0144] 存储部128‑h储存有隐匿化数据库[x1],…,[xm],所述隐匿化数据库包含含有t(i)个字符xi,1,…,xi,t(i)的检索对象词xi=(xi,1,…,xi,t(i),…,xi,N)(例如,参照图21的DB)被隐匿了的隐匿化检索对象词[xi]。其中,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)是Null字符。可以将字符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实施方式中所述的相同。 [0145] <检索处理> [0146] 使用图20说明本实施方式的检索处理。请求装置11隐匿化了包含n个字符k1,…,kn的检索词k=(k1,…,kn,…,kN)而得到隐匿化检索词[k]。其中,j=1,…,N,n是正整数,n≤N。字符k1,…,kn也可以包含通配符字符。在检索对象词xi包含Null字符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]。 [0147] 请求装置11输出隐匿化检索词[k]。所输出的隐匿化检索词[k]经由网络等被发送给检索装置52‑h。隐匿化检索词[k]被输入至检索装置52‑h的输入部1291‑h,并被储存在存储部128‑h中(步骤S1291‑h)。之后,针对各i=1,…,m执行以下处理。 [0148] 首先,等号判定部521‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,Nmin)被隐匿了的隐匿化运算结果[ei]。其中,针对j’=1,…,Nmin,在xi,j’为kj’的情况下,ei,j’=a1,在xi,j’不为kj’的情况下,ei,j’=a0。ei,j’∈{a0,a1},例如,a0=0,a1=1。例如,等号判定部521‑h通过秘密计算,针对j’=1,…,Nmin进行[kj’]和[xi,j’]的等号判定,得到将ei,j’隐匿化了的[ei,j’],并得到[ei,1],…,[ei,Nmin]的集合作为隐匿化运算结果[ei]。或者,等号判定部521‑h也可以通过使用了隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到ei,1,…,ei,Nmin被一并隐匿了的隐匿化运算结果[ei]。隐匿化运算结果[ei]被储存在存储部128‑h中(步骤 S521‑h)。 [0149] 通配符判定部522‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wNmin)被隐匿了的隐匿化运算结果[w]。其中,针对j’=1,…,Nmin,在kj’为通配符字符的情况下,wj’=b1,在kj’不为通配符字符的情况下,wj’=b0。例如,通配符判定部522‑h使用隐匿化检索词[k]和将通配符字符隐匿化而得到的隐匿化通配符字符,并通过秘密计算,得到隐匿化运算结果[w]。举一个例子,通配符判定部522‑h通过秘密计算,针对j’=1,…,Nmin进行[kj’]和隐匿化通配符字符的等号判定,得到将wj’隐匿化了的[wj’],并得到[w1],…,[wNmin]的集合作为隐匿化运算结果[w]。或者,通配符判定部522‑h也可以通过使用了隐匿化检索词[k]和隐匿化通配符字符的秘密计算,得到 w1,…,wNmin被一并隐匿了的隐匿化运算结果[w]。隐匿化运算结果[w]被储存在存储部128‑h中(步骤S522‑h)。 [0150] Null判定部525‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的至少一部分的秘密计算,得到并输出运算结果u’Mmin+1,…,u’N被隐匿了的隐匿化运算结果[u’]。其中,针对j”=Mmin+1,…,N,在kj”为Null字符的情况下,u’j”=c1,在kj”不为Null字符的情况下,u’j”=c0。u’j”∈{c0,c1},例如,c0=0,c1=1。例如,Null判定部525‑h使用隐匿化检索词[k]的至少一部分和将Null字符隐匿化而得到的隐匿化Null字符,并通过秘密计算,得到隐匿化运算结果[u’]。举一个例子,Null判定部525‑h通过秘密计算,针对j”=Mmin+1,…,N进行[kj”]和隐匿化Null字符的等号判定,得到将u’j”隐匿化了的[u’j”],并得到[u’Mmin+1],…,[u’N]的集合作为隐匿化运算结果[u’]。或者,Null判定部525‑h也可以通过使用了隐匿化检索词[k]和隐匿化Null字符的秘密计算,得到u’Mmin+1,…,u’N被一并隐匿了的隐匿化运算结果[u’]。隐匿化运算结果[u’]被储存在存储部128‑h中(步骤S525‑h)。另外,Mmin+1≧N时,不实行步骤S525‑h的处理。 [0151] 逻辑或运算部523‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到并输出运算结果e’i=(e’i,1,…,e’i,Nmin)被隐匿了的隐匿化运算结果[e’i]。其中,针对j’=1,…,Nmin,在满足ei,j’=a1以及wj’=b1中的至少任一方的情况下,e’i,j’=d1,在满足ei,j’=a0以及wj’=b0双方的情况下,e’i,j’=d0。e’i,j’∈{d0,d1},例如,d0=0,d1=1。例如,在a0=0,a1=1,b0=0,b1=1,d0=0,d1=1的情况下,e’i,j’=ei,j’∨wj’。例如,逻辑或运算部523‑h通过秘密计算,针对j’=1,…,Nmin进行[ei,j’]和[wj’]的逻辑或,得到将e’i,j’=ei,j’∨wj’隐匿化的[e’i,j’],并得到[e’i,1],…,[e’i,Nmin]的集合作为隐匿化运算结果[e’i]。或者,逻辑或运算部523‑h也可以通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到e’i,1,…,e’i,Nmin被一并隐匿了的隐匿化运算结果[e’i]。隐匿化运算结果[e’i]被储存在存储部128‑h中(步骤S5231‑h)。 [0152] Null判定部524‑h通过使用了从存储部128‑h中读出的隐匿化检索词[xi]的至少一部分的秘密计算,得到并输出运算结果μ’i=(μ’i,Mmin+1,…,μ’i,N(i))被隐匿了的隐匿化运算结果[μ’i]。其中,针对j”(i)=Mmin+1,…,N(i),在xi,j”(i)为Nul l字符的情况下,μ’i,j”(i)=d1,在xi,j”(i)不为Null字符的情况下,μ’i,j”(i)=d0。μ’i,j”(i)∈{d0,d1},例如,d0=0,d1=1。 例如,Null判定部524‑h使用隐匿化检索对象词[xi]的至少一部分和将Null字符隐匿化而 得到的隐匿化Null字符,并通过秘密计算,得到隐匿化运算结果[μ’i]。举一个例子,Null判定部524‑h通过秘密计算,针对j”(i)=Mmin+1,…,N(i)进行[xi,j”(i)]和隐匿化Null字符的等号判定,得到将μ’i,j”(i)隐匿化了的[μ’i,j”(i)],并得到[μ’i,Mmin+1],…,[μ’i,N(i)]的集合作为隐匿化运算结果[μ’i]。或者,Null判定部524‑h也可以通过使用了隐匿化检索对象词[xi]和隐匿化Null字符的秘密计算,得到μ’i,Mmin+1,…,μ’i,N(i)被一并隐匿了的隐匿化运算结果[μ’i]。隐匿化运算结果[μ’i]被储存在存储部128‑h中(步骤S524‑h)。另外,Mmin+1≧N(i)时,不实行步骤S524‑h的处理。 [0153] 连接部528‑h至少通过使用了隐匿化运算结果[e’i]的秘密计算,得到并输出运算结果yi被隐匿了的隐匿化运算结果[yi]。在N=N(i)的情况下,连接部528‑h将隐匿化运算结果[e’i]作为隐匿化运算结果[yi]输出。在N>N(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]。在N [0154] 逻辑与运算部527‑h通过使用了从存储部128‑h中读出的隐匿化运算结果[yi]的秘密计算,得到并输出一致判定结果zi被隐匿了的隐匿化一致判定结果[zi]。其中,在yi,1=…=yi,Nmax=d1的情况下,zi=g1,在不为yi,1=…=yi,Nmax=d1情况下,zi=g0。zi∈{g0,g1},例如,g0=0,g1=1。例如,在d0=0,d1=1,g0=0,g1=1的情况下,zi=yi,1∧…∧yi,Nmax。 隐匿化一致判定结果[zi]被储存在存储部128‑h中(步骤S527‑h)。 [0155] 之后,执行在第1实施方式中说明了的步骤S1292‑h以后的处理。 [0156] <具体例子> [0157] 将本实施方式的处理区分为N=N(i)的情况、N>N(i)的情况、N [0158] 《N=N(i)的情况》 [0159] m,n,t(i),N,N(i)为正整数;i=1,…,m;j=1,…,N;j(i)=1,…,N(i);n≤N;t(i)≤N。等号判定部521‑h通过使用了隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei],其中,在xi,j为kj的情况下,ei,j=a1,在xi,j不为kj的情况下,ei,j=a0。通配符判定部522‑h通过使用了隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w],其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。逻辑或运算部523‑h通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到并输出运算结果yi=(yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi]=[e’i],其中,在满足ei,j=a1以及wj=b1中的至少任一方的情况下,yi,j=d1,在满足ei,j=a0以及wj=b0双方的情况下,yi,j=d0。例如,如图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。 [0160] 《N>N(i)的情况》 [0161] 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。等号判定部521‑h通过使用了隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N(i))被隐匿了的隐匿化运算结果[ei],其中,在xi,j(i)为kj(i)的情况下,ei,j(i)=a1,在xi,j(i)不为kj(i)的情况下,ei,j(i)=a0。通配符判定部522‑h通过使用了隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN(i))被隐匿了的隐匿化运算结果[w],其中,在kj(i)为通配符字符的情况下,wj(i)=b1,在kj(i)不为通配符字符的情况下,wj(i)=b0。Null判定部525‑h(第1Null判定部)通过使用了隐匿化检索词[k]的至少一部分的秘密计算,得到并输出运算结果u’N(i)+1,…,u’N被隐匿了的隐匿化运算结果[u’],其中,在kj”(i)为Null字符的情况下,u’j”(i)=c1,在kj”(i)不为Null字符的情况下,u’j”(i)=c0。逻辑或运算部523‑h通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w]的秘密计算,得到并输出运算结果e’i=(e’i,1,…,e’i,N(i))被隐匿了的隐匿化运算结果[e’i],其中,在满足ei,j(i)=a1以及wj(i)=b1中的至少任一方的情况下,e’i,j(i)=d1,在满足ei,j(i)=a0以及wj(i)=b0双方的情况下,e’i,j(i)=d0。连接部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。 [0162] 《N [0163] m,n,t(i),N,N(i)为正整数;N 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。 [0164] <本实施方式的特征> [0165] 如上所述,在本实施方式中,即使在检索词k可以包含通配符字符的情况下,或者在检索词k以及检索对象词xi中的至少任一方可以包含Null字符的情况下,都能够在隐匿 了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的完全一致检索。进一步 地,在本实施方式中,不论隐匿化检索对象词和隐匿化检索词的长度是否彼此相同,都能够进行完全一致检索。此外,能够以比以往少的通信量进行被隐匿的数据库的一致检索。 [0166] [第6实施方式] [0167] 第6实施方式是第3、4实施方式的变形例。在第3、4实施方式中,以隐匿化检索对象词和隐匿化检索词的长度彼此相同为前提。与此相对,在本实施方式中,不论隐匿化检索对象词和隐匿化检索词的长度是否彼此相同,都能够进行前方一致检索。 [0168] <结构> [0169] 如图1所示,本实施方式的检索系统6具有请求检索的请求装置11以及进行检索的检索装置62‑h,进行基于秘密计算的检索处理。其中,h=1,…,H,H是1以上的整数。在进行基于秘密分散方式的秘密计算的情况下,H≧2,在进行基于同态加密方式的秘密计算的情 况下,H=1。 [0170] 如图2所示,本实施方式的检索装置62‑h具有:控制部120‑h、等号判定部521‑h、通配符判定部522‑h、逻辑或运算部623‑h、Null判定部625‑h、逻辑与运算部527‑h、连接部628‑h、存储部128‑h、输入部1291‑h、以及输出部1292‑h。检索装置62‑h在控制部120‑h的控制下执行各处理。此外,在各部得到的数据逐一被储存在存储部128‑h中,根据需要被读出而用于其他处理。 [0171] <预处理> [0172] 与第5实施方式相同。 [0173] <检索处理> [0174] 使用图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执行以下处理。 [0175] 首先,等号判定部521‑h通过使用了从存储部128‑h中读出的隐匿化检索对象词[xi]和隐匿化检索词[k]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,Nmin)被隐匿了的隐匿化运算结果[ei]。其中,针对j’=1,…,Nmin,在xi,j’为kj’的情况下,ei,j’=a1,在xi,j’不为kj’的情况下,ei,j’=a0。隐匿化运算结果[ei]被储存在存储部128‑h中(步骤S521‑h)。 [0176] 通配符判定部522‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w]。其中,针对j’= 1,…,Nmin,在kj’为通配符字符的情况下,wj’=b1,在kj’ [0177] 不为通配符字符的情况下,wj’=b0。隐匿化运算结果[w]被储存在存储部128‑h中(步骤S522‑h)。 [0178] Null判定部625‑h通过使用了从存储部128‑h中读出的隐匿化检索词[k]的秘密计算,得到并输出运算结果u”=(u”1,…,u”N)被隐匿了的隐匿化运算结果[u”]。其中,针对j= 1,…,N,在kj为Null字符的情况下,u”j=c1,在kj不为Null字符的情况下,u”j=c0。u”j∈{c0,c1},例如,c0=0,c1=1。例如,Null判定部625‑h使用隐匿化检索[k]的至少一部分和将Null字符隐匿化而得到的隐匿化Null字符,并通过秘密计算,得到隐匿化运算结果[u”]。举一个例子,Nul l判定部625‑h通过秘密计算,针对j=1,…,N进行[kj]和隐匿化Null字符的等号判定,得到将u”j隐匿化了的[u”j],并得到[u”1],…,[u”N]的集合作为隐匿化运算结果[u”]。或者,Null判定部625‑h也可以通过使用了隐匿化检索对象词[k]和隐匿化Null字符的秘密计算,得到u”1,…,u”N被一并隐匿了的隐匿化运算结果[u”]。隐匿化运算结果[u”]被储存在存储部128‑h中(步骤S6251‑h)。 [0179] 逻辑或运算部623‑h(第1逻辑或运算部)通过使用了从存储部128‑h中读出的隐匿化运算结果[w]和隐匿化运算结果[u”]的至少一部分的秘密计算,得到并输出运算结果w’=(w’1,…,w’Nmin)被隐匿了的隐匿化运算结果[w’]。其中,针对j’=1,…,Nmin,在满足u”j’=c1以及wj’=b1中的至少任一方的情况下,w’j’=b’1,在满足u”j’=c0以及wj’=b0双方的情况下,w’j’=b’0。w’j∈{b’0,b’1},例如,b’0=0,b’1=1。例如,在b0=0,b1=1,c0=0,c1=1,b’0=0,b’1=1的情况下,w’j’=u”j’∨wj’。例如,逻辑或运算部623‑h通过秘密计算,针对j’=1,…,Nmin进行[u”j’]和[wj’]的逻辑或,得到将w’j’=u”j’∨wj’隐匿化的[w’j’],并得到[w’1],…,[w’Nmin]的集合作为隐匿化运算结果[w’]。或者,逻辑或运算部623‑h也可以通过使用了隐匿化运算结果[w]和隐匿化运算结果[u”]的秘密计算,得到w’1,…,w’Nmin被一并隐匿了的隐匿化运算结果[w’]。隐匿化运算结果[w’]被储存在存储部128‑h中(步骤S6231‑h)。 [0180] 逻辑或运算部623‑h(第2逻辑或运算部)通过使用了从存储部128‑h中读出的隐匿化运算结果[ei]和隐匿化运算结果[w’]的秘密计算,得到并输出运算结果e’i=(e’i,1,…,e’i,Nmin)被隐匿了的隐匿化运算结果[e’i]。其中,针对j’=1,…,Nmin,在满足ei,j’=a1以及w’j’=b’1中的至少任一方的情况下,e’i,j’=d1,在满足ei,j’=a0以及w’j’=b’0双方的情况下,e’i,j’=d0。e’i,j’∈{d0,d1},例如,d0=0,d1=1。例如,在a0=0,a1=1,b’0=0,b’1=1,d0=0,d1=1的情况下,e’i,j’=ei,j’∨w’j’。例如,逻辑或运算部623‑h通过秘密计算,针对j’= 1,…,Nmin进行[ei,j’]和[w’j’]的逻辑或,得到将e’i,j’=ei,j’∨w’j’隐匿化的[e’i,j’],并得到[e’i,1],…,[e’i,Nmin]的集合作为隐匿化运算结果[e’i]。或者,逻辑或运算部623‑h也可以通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w’]的秘密计算,得到e’i,1,…,e’i,Nmin被一并隐匿了的隐匿化运算结果[e’i]。隐匿化运算结果[e’i]被储存在存储部128‑h中(步骤S6232‑h)。 [0181] 连接部628‑h至少通过使用了隐匿化运算结果[e’i]的秘密计算,得到并输出运算结果yi被隐匿了的隐匿化运算结果[yi]。在N≤N(i)的情况下,连接部628‑h将隐匿化运算结果[e’i]作为隐匿化运算结果[yi]输出。在N>N(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]。[yi]可以是yi的要素分别被隐匿化的隐匿化结果的集合,也可以是将yi的所有要素一并隐 匿化的结果。隐匿化运算结果[yi]被储存在存储部128‑h中(步骤S628‑h)。 [0182] 之后,执行步骤527‑h以及在第1实施方式中说明了的步骤S1292‑h以后的处理。 [0183] <具体例子> [0184] 将本实施方式的处理区分为N>N(i)的情况、N≤N(i)的情况记载如下。 [0185] 《N>N(i)的情况》 [0186] 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]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N(i))被隐匿了的隐匿化运算结果[ei],其中,在xi,j(i)为kj(i)的情况下,ei,j(i)=a1,在xi,j(i)不为kj(i)的情况下,ei,j(i)=a0。通配符判定部522‑h通过使用了隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN(i))被隐匿了的隐匿化运算结果[w],其中,在kj(i)为通配符字符的情况下,wj(i)=b1,在kj(i)不为通配符字符的情况下,wj(i)=b0。Null判定部625‑h通过使用了隐匿化检索词[k]的秘密计算,得到并输出运算结果u”=(u”1,…,u”N)被隐匿了的隐匿化运算结果[u”],其中,在kj为Null字符的情况下,u”j=c1,在kj不为Null字符的情况下,u”j=c0。逻辑或运算部623‑h通过使用了隐匿化运算结果[w]和隐匿化运算结果[u”]的至少一部分的秘密计算,得到并输出运算结果w’=(w’1,…,w’N(i))被隐匿了的隐匿化运算结果[w’],其中,在满足u”j(i)=c1以及wj(i)=b1中的至少任一方的情况下,w’j(i)=b’1,在满足u”j(i)=c0以及wj(i)=b0双方的情况下,w’j(i)=b’0。逻辑或运算部623‑h通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w’]的秘密计算,得到并输出运算结果e’i=(e’i,1,…,e’i,N(i))被隐匿了的隐匿化运算结果[e’i],其中,在满足ei,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。连接部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。 [0187] 《N≤N(i)的情况》 [0188] 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]的秘密计算,得到并输出运算结果ei=(ei,1,…,ei,N)被隐匿了的隐匿化运算结果[ei],其中,在xi,j为kj的情况下,ei,j=a1,在xi,j不为kj的情况下,ei,j=a0。通配符判定部522‑h通过使用了隐匿化检索词[k]的秘密计算,得到并输出运算结果w=(w1,…,wN)被隐匿了的隐匿化运算结果[w],其中,在kj为通配符字符的情况下,wj=b1,在kj不为通配符字符的情况下,wj=b0。Null判定部625‑h通过使用了隐匿化检索词[k]的秘密计算,得到并输出运算结果u”=(u”1,…,u”N)被隐匿了的隐匿化运算结果[u”],其中,在kj为Null字符的情况下,u”j=c1,在kj不为Null字符的情况下,u”j=c0。逻辑或运算部623‑h通过使用了隐匿化运算结果[w]和隐匿化运算结果[u”]的秘密计算,得到并输出运算结果w’=(w’1,…,w’N)被隐匿了的隐匿化运算结果[w’],其中,在满足u”j=c1以及wj=b1中的至少任一方的情况下,w’j=b’1,在满足u”j=c0以及wj=b0双方的情况下,w’j=b’0。逻辑或运算部623‑h通过使用了隐匿化运算结果[ei]和隐匿化运算结果[w’]的秘密计算,得到并输出运算结果e’i=yi=(yi,1,…,yi,N)被隐匿了的隐匿化运算结果[yi],其中,在满足ei,j=a1以及w’j=b’1中的至少任一方的情况下,yi,j=d1,在满足ei,j=a0以及w’j=b’0双方的情况下,yi,j=d0。例如,如图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 [0189] <本实施方式的特征> [0190] 如上所述,在本实施方式中,即使在检索词k可以包含通配符字符的情况下,或者在检索词k以及检索对象词xi中的至少任一方可以包含Null字符的情况下,都能够在隐匿 了包含通配符字符的检索词的状态下,直接进行被隐匿的数据库的前方一致检索。进一步 地,在本实施方式中,不论隐匿化检索对象词和隐匿化检索词的长度是否彼此相同,都能够进行前方一致检索。此外,能够以比以往少的通信量进行被隐匿的数据库的一致检索。 [0191] [变形例等] [0192] 另外,本发明并不限定于上述实施方式。例如,检索装置可以直接输出隐匿化运算结果[yi],也可以对隐匿化运算结果[yi]实施与步骤S127‑h不同的秘密计算,并输出由此得到的结果。 [0193] 如上所述,秘密计算方式没有限定。如果能够进行基于秘密计算的等号判定以及逻辑运算(逻辑或运算、逻辑与运算),则可以使用基于秘密分散方式的秘密计算,也可以使用基于同态加密方式的秘密计算。例如,可以使用以下记载的秘密计算方式。 [0194] 参考文献1:Ivan Damgard,Matthias Fitzi,Eike Kiltz,Jesper Buus Ni elsen,Tomas Toft,“Unconditionally Secure Constant‑Rounds Multi‑party Co mputation for Equality,Comparison,Bits and Exponentiation”,TCC 2006,pp.285‑ 304。 [0195] 参考文献2:千田浩司,滨田浩气,五十岚大,高桥克己,“轻量化可验证3方隐匿函数计算的再探讨(AThree‑party Secure Function Evaluation with Lightweight Verifiability Revisited)”,In CSS,2010。 [0196] 参考文献3:Takashi Nishide,Kazuo Ohta,“Multiparty computation forinterval,equality,and comparison without bit‑decomposition protocol”,PKC, pp.343‑360,2007。 [0197] 上述的各种处理不仅按照记载以时间序列执行,也可以根据执行处理的装置的处理能力或根据需要并行或个别地执行。另外,在不脱离本发明主旨的范围内,当然可以进行适当的变更。 [0198] 上述各装置,例如,由具有CPU(central processing unit)等处理器(硬件处理器)以及RAM(random‑access memory)、ROM(read‑only memory)等存储器等的通用或专用的计算机执行规定的程序而构成。 [0199] 这种计算机可以包括一个处理器和一个存储器,也可以包括多个处理器和多个存储器。这种程序可以安装在计算机中,也可以预先记录在ROM等中。此外,也可以不是如CPU那样通过读入程序来实现功能结构的电子电路(circuitry),而是使用不使用程序来实现 处理功能的电子电路来构成一部分或全部的处理部。构成一个装置的电子电路也可以包含 多个CPU。 [0200] 在通过计算机实现上述结构的情况下,各装置应该具有的功能的处理内容通过程序记述。通过在计算机上执行该程序,在计算机上实现上述处理功能。记述这种处理内容的程序可以事先记录在计算机可读取的记录介质上。计算机可读取的记录介质的例子是非临 时的(non‑transitory)记录介质。这样的记录介质的例子有磁介质装置、光盘、光磁记录介质、半导体存储器等。 [0201] 这种程序的流通,例如,通过销售、转让、租借记录有这种程序的DVD、CD‑ROM等便携式记录介质来进行。进一步地,也可以构成为:事先将这种程序储存在服务器计算机的存储装置中,通过网络从服务器计算机向其他计算机传送该程序,从而使该程序流通。 [0202] 执行这种程序的计算机,例如,首先,将记录在便携型记录介质中的程序或从服务器计算机传送来的程序暂时储存在自己的存储装置中。当执行处理时,计算机读取储存在自己的存储装置中的程序,并根据读取的程序执行处理。作为该程序的其他执行方式,计算机可以从便携式记录介质直接读取程序,根据该程序执行处理,进一步地,每当从服务器计算机向该计算机传送程序时,也可以依次执行根据接收到的程序的处理。也可以构成为,不进行从服务器计算机向该计算机的程序的传送,仅通过其执行指示和结果取得来实现处理 功能,即通过所谓的ASP(Application Service Provider)型的服务来执行上述处理。 [0203] 不是在计算机上执行规定的程序来实现本装置的处理功能,也可以通过硬件来实现至少一部分的这些处理功能。 [0204] [符号说明] [0205] 1~4 检索系统 [0206] 12-1~H,22-1~H,32-1~H,42-1~H 检索装置 |