《用于确定自动机是否已经接受了字符串的系统.pdf》由会员分享,可在线阅读,更多相关《用于确定自动机是否已经接受了字符串的系统.pdf(48页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104067556A43申请公布日20140924CN104067556A21申请号201380006069922申请日20130110201200928120120119JPH04L9/32200601H04L9/1020060171申请人国际商业机器公司地址美国纽约阿芒克72发明人立石孝彰渡边裕治74专利代理机构北京市柳沈律师事务所11105代理人郭定辉54发明名称用于确定自动机是否已经接受了字符串的系统57摘要为了确定字符串是否已经被自动机接受,提供了一种服务器,所述服务器能够连接到用于输入字符串的客户机,并且具有自动机,对于所述自动机,对于每一个前一个状态和每一个字符。
2、已经定义了要转换到的后一个状态。所述服务器具有密钥链产生单元,用于产生用于字符、状态和用于表达在字符串中的每一个字符的位置的索引的每一个组合的密钥链,所述密钥链是通过使用与所述状态对应的密钥来根据字符对与要从当前状态转换到的后一个状态对应的下一个索引加密该密钥;以及提供单元,用于与客户机进行通信,并且在对所述客户机隐藏输入字符的同时向所述客户机提供在用于每一个索引的密钥链集合组中的密钥链中的与每一个输入的字符对应的密钥链。30优先权数据85PCT国际申请进入国家阶段日2014071886PCT国际申请的申请数据PCT/JP2013/0502632013011087PCT国际申请的公布数据WO2。
3、013/108698JA2013072551INTCL权利要求书2页说明书23页附图22页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书23页附图22页10申请公布号CN104067556ACN104067556A1/2页21一种服务器,所述服务器能够连接到用于字符串的输入的客户机,并且具有用于限定每一个状态和字符的随后转换状态的自动机。所述服务器包括密钥链产生单元,用于产生用于索引、字符和用于表达在字符串中的每一个字符的位置的状态的每一个组合的密钥链,所述密钥链具有用于下一个索引的加密密钥,所述下一个索引对应于基于与当前状态对应的密钥根据字符从当前状态起的随后转换状态;。
4、以及,提供单元,用于与客户机进行通信,并且在对所述客户机隐藏输入字符的状态中向所述客户机提供在用于每一个索引的密钥链集合中的与每一个输入的密钥对应的密钥链。2根据权利要求1所述的服务器,其中,所述客户机包括接收单元,用于与所述提供单元进行通信,并且从所述服务器接收与用于每一个索引的输入字符对应的多个密钥链,以及解密单元,用于通过下述方式来解密与下一个索引对应的密钥使用通过与所述索引的顺序的前一个索引对应的解密处理获得的密钥来对于所述多个接收的密钥链执行解密处理。3根据权利要求2所述的服务器,其中,所述提供单元从所述客户机接收已发送密文,所述已发送密文加密用于表达在所述输入字符串中的每一个字符的。
5、索引和输入字符的组,并且所述提供单元基于所述已发送密文来使用加密值向所述客户机产生和发送响应密文,其中,加密值当在用于表达一组对应的索引和对应的字符的所述索引化字符集合中包括所述索引化的状态转换值时变为在所述密钥链集合中包括的每一个密钥链,并且当在所述一组索引化的字符中未包括所述索引化的转换值时不变为密钥链。4根据权利要求3所述的服务器,其中,所述接收单元对于每一个响应密文执行解密处理,以获取多个密钥链,并且其中,所述解密单元使用与所述索引的顺序的前一个索引对应的、在解密处理中解密的密钥来对于所述多个密钥链执行解密处理,以解密与下一个索引对应的密钥。5根据权利要求4所述的服务器,其中,所述提供。
6、单元从所述客户机接收已发送密文,所述已发送密文使用同态加密方案来加密多项式的各个系数,所述多项式的各个系数当分配索引化字符时变为零,并且当分配不是索引化字符的值时变为非零,并且所述提供单元向所述客户机产生和发送响应密文,所述响应密文使用相同的加密方案来加密在所述密钥链集合中包括的每一个密钥链的值和通过将所述索引化状态转换值乘以在多项式中分配的值而获得的值的和。6根据权利要求2所述的服务器,其中,所述提供单元与所述客户机进行通信,并且经由不经意传输选择性地向所述客户机发送用于与从所述客户机输入的字符对应的每个索引的密钥链集合的子集。7根据权利要求6所述的服务器,其中,所述接收单元与所述提供单元进。
7、行通信,并且按照索引经由不经意传输从所述服务器选择性地接收与输入字符对应的密钥链的子集,并且所述解密单元通过下述方式来解密与下一个索引对应的密钥使用通过与索引的顺序的前一个索引对应的解密处理获得的密钥来对于与前一个索引对应的、在所述接收的密钥链的子集中包括的每一个密钥链执行解密处理。8根据权利要求7所述的服务器,其中,所述提供单元使用与每一个字符对应的加密密钥来按照索引加密与在密钥链集合中的每一个字符对应的多个子集,并且预先向所述客权利要求书CN104067556A2/2页3户机提供所述加密的子集,并且与所述客户机进行通信,并且向所述客户机提供在索引中的每一个字符的加密密钥中的、与由所述客户机。
8、输入的字符对应的每一个索引加密密钥,在对所述客户机隐藏输入字符的同时提供了所述加密密钥。9根据权利要求8所述的服务器,其中,所述客户机对于与由所述服务器发送并且由所述客户机输入的字符对应的每一个索引使用与该字符对应的加密密钥来解密多个先前接收的子集之一。10根据权利要求6所述的服务器,其中,所述提供单元按照索引排序并且发送多个密钥链。11根据权利要求1所述的服务器,其中,所述密钥链产生单元产生密钥链,所述密钥链使用与在对应于所述字符串的最后字符的索引中的当前状态对应的密钥来加密与最后的传送状态对应的密钥,并且所述密钥链产生单元产生最后状态信息,所述最后状态信息加密用于指示使用对应于所述转换的最。
9、后状态的所述密钥的最后转换状态是否是通过所述自动机预先确定的最后状态的值。12一种用于输入字符串的客户机,所述客户机能够与服务器进行通信,所述服务器具有用于限定每一个状态和每一个字符的随后转换状态的自动机,所述客户机包括接收单元,用于与服务器进行通信,并且从所述服务器接收与用于每一个索引的输入字符对应的多个密钥链;以及,解密单元,用于通过下述方式而解密与下一个索引对应的密钥使用通过与所述索引的顺序的前一个索引对应的解密处理获得的密钥来对于所述多个接收的密钥链执行解密处理。13一种在服务器中的信息处理方法,所述服务器能够连接到用于字符串的输入的客户机,并且具有用于限定每一个状态和每一个字符的随后。
10、转换状态的自动机,所述信息处理方法包括产生用于索引、字符和用于表达在字符串中的每一个字符的位置的状态的每一个组合的密钥链,所述密钥链具有用于下一个索引的加密密钥,所述下一个索引对应于基于与当前状态对应的密钥根据字符从当前状态起的随后转换状态;以及,通过与客户机进行通信来在对所述客户机隐藏输入字符的状态中向所述客户机提供在用于每一个索引的密钥链集合中的、与每一个输入的密钥对应的密钥链。14一种在用于字符串的输入的客户机中的信息处理方法,所述客户机能够与服务器进行通信,所述服务器具有用于限定每一个状态和每一个字符的随后转换状态的自动机,所述信息处理方法包括通过与所述服务器进行通信来从所述服务器接收。
11、与用于每一个索引的输入字符对应的多个密钥链;并且通过下述方式而解密与下一个索引对应的密钥使用通过与所述索引的顺序的前一个索引对应的解密处理获得的密钥来对于所述多个接收的密钥链执行解密处理。15一种程序,用于使得计算机能够作为权利要求1的服务器。16一种程序,用于使得计算机能够作为权利要求12的客户机。权利要求书CN104067556A1/23页4用于确定自动机是否已经接受了字符串的系统技术领域0001本发明涉及一种用于认证自动机是否已经接受了字符串的服务器、客户机、方法和程序。背景技术0002已知用于认证由服务器拥有的自动机是否已经接受了由客户机拥有的字符串的系统参见例如,专利文件1。0003。
12、引用列表0004专利文献0005专利文献1特开专利公布NO20091517570006非专利文献0007非专利文献10008MICHAELJFREEDMAN,KOBBINISSIMANDBENNYPINKAS,“EFFICIENTPRIVATEMATCHINGANDSETINTERSECTION“,ADVANCESINCRYPTOLOGYEUROCRYPT2004,LECTURENOTESINCOMPUTERSCIENCE,20040009非专利文献20010EVEN,OGOLDREICH,ANDALEMPEL,“ARANDOMIZEDPROTOCOLFORSIGNINGCONTRACTS“,。
13、COMMUNICATIONSOFTHEACM,VOLUME28,ISSUE6,PG637647,1985发明内容0011技术问题0012然而,在不向服务器公开由客户机拥有的字符串并且不向客户机公开由服务器拥有的自动机的情况下,很难认证自动机是否已经接受了该字符串。0013解决方案0014本发明的第一方面提供了一种服务器,所述服务器能够连接到用于字符串的输入的客户机,并且具有用于限定每一个状态和字符的随后转换状态的自动机。所述服务器包括密钥链产生单元,用于产生用于索引、字符和用于表达在字符串中的每一个字符的位置的状态的每一个组合的密钥链,所述密钥链具有用于下一个索引的加密密钥,所述下一个索引对应。
14、于基于与当前状态对应的密钥根据字符从当前状态起的随后转换状态;以及提供单元,用于与客户机进行通信,并且在对所述客户机隐藏输入字符的状态中向所述客户机提供在用于每一个索引的密钥链集合中的与每一个输入的密钥对应的密钥链。也提供了一种用于由这个服务器执行的信息处理的方法和程序。0015本发明的第二方面提供了一种用于输入字符串的客户机,所述客户机能够与服务器进行通信,所述服务器具有用于限定每一个状态和每一个字符的随后转换状态的自动机。所述客户机包括接收单元,用于与服务器进行通信,并且从所述服务器接收与用于每一个索引的输入字符对应的多个密钥链;以及,解密单元,用于通过使用通过与所述索引的说明书CN104。
15、067556A2/23页5顺序中的前一个索引对应的解密处理获得的密钥来对于多个接收的密钥链执行解密处理而获得与下一个索引对应的密钥。也提供了一种用于由这个客户机执行的信息处理的方法和程序。0016应当注意,本发明的上面的发明内容不意欲枚举本发明所需的所有特征。另外,这些组的特性的子组合也构成本发明。附图说明0017图1示出在本实施例中的认证系统10的配置。0018图2示出在本实施例中的服务器20和客户机30的功能方框配置。0019图3示出在本实施例中的由服务器20和客户机30执行的处理的流程图。0020图4示出用于产生密钥链集合的处理的流程图。0021图5示出用于对于每一个索引产生的各个状态的。
16、密钥的示例。0022图6示出用于自动机的转换表格以及密钥表格的示例,该密钥表格用于为第一索引、第二索引和第三索引向与每一个状态和每一个字符对应的随后状态中的下一个索引分配密钥。0023图7示出了对于索引、字符和状态的每个组合产生的密钥链集合的示例。0024图8示出最后状态信息的示例。0025图9示出当输入二进制字符“0”或“1”时从第一索引向第三索引的索引化的状态转换值的示例。0026图10示出与索引化的状态转换值相关联的密钥链集合的示例。0027图11示出在本实施例的认证系统10中使用隐私保护集合交叉协议执行的通信处理的示例。0028图12示出在本实施例中的、由客户机30接收的多个响应密文和。
17、通过解密该多个响应密文而获得的多个密钥链的示例。0029图13示出用于在客户机30中多个密钥链的顺序解密处理的流程图。0030图14示出使用用于在客户机30中的多个密钥链的顺序解密处理获得的密钥的示例。0031图15示出变型的认证系统10的配置。0032图16示出在所述变型中的由服务器20和客户机30执行的处理的流程图。0033图17示出用于第一索引的密钥链集合的示例。0034图18示出用于第二索引的密钥链集合的示例。0035图19示出用于第三索引的密钥链集合的示例。0036图20示出从用于每一个索引的密钥链的子集起顺序解密的密钥的示例。0037图21示出在所述变型中用于在服务器20和客户机3。
18、0之间的密钥链子集的不经意传输的传递处理的流程。0038图22示出从图21继续的流程。0039图23示出从图22继续的流程。0040图24示出在本实施例中的计算机1900的硬件配置的示例。说明书CN104067556A3/23页6具体实施方式0041下面是参考本发明的实施例的本发明的说明。然而,本实施例不在权利要求的范围中限制本发明。而且,在本发明的技术方案中不必要要求在该实施例中说明的特性的所有组合。0042图1示出在本实施例中的认证系统10的配置。在本实施例中的认证系统10包括服务器20和客户机30。服务器20和客户机30经由网络彼此连接。在本实施例中的认证系统10基于向客户机30输入的字。
19、符串来确定由服务器20拥有的自动机是否已经转换到适当的最后状态。0043客户机30从外部单元输入字符串,在该字符串中包括的字符可以是任何类型的字符。例如,它们可以是具有“0”和“1”的二进制值或由单个字节表示的字符。0044服务器20具有自动机,该自动机根据接收的字符而进行状态转换。该自动机限定了每一个状态或每一个字符的随后转换状态。由自动机接收的字符是向客户机30输入的字符。该自动机表示预先注册的字符串集合字符串组的正则表达式。该自动机从首部起顺序接收在字符串中的每一个字符,并且以从在首部的字符起的每一个字符顺序转换到状态。在接收最后字符并且进行了转换后,如果自动机转换到了适当的最后状态则该。
20、自动机输出“接受”。它如果它未转换到适当的最后状态则输出“不接受”。0045在这样的服务器20和客户机30中,对服务器20隐藏由客户机30输入的字符串,并且对客户机30隐藏由服务器20拥有的自动机。在此,由服务器20拥有的自动机基于向客户机30输入的字符串来确定是否已经存在向适当的最后状态的转换。0046图2示出在本实施例中的服务器20和客户机30的功能方框配置。服务器20具有自动机存储单元42、密钥产生单元44、密钥链产生单元46、索引化状态转换值产生单元48、合成单元50和提供单元52。客户机30具有输入单元60、索引化字符产生单元62、接收单元64和解密单元66。0047客户机30的输入。
21、单元60一次一个地输入在字符串中的每个字符。输入单元60向索引化字符产生单元62传递每一个输入的字符。0048索引化字符产生单元62对于在字符串中的每一个字符产生索引化字符。在此,索引表示在字符串中的字符的位置。换句话说,它表示向自动机提供字符的顺序。0049而且,索引字符是表示一组字符和索引的值。它是例如通过下述方式被获得的向单向函数分配表示字符的值和表示索引的值。索引化字符也可以是从这个值加密或被隐藏的值使得难以检测该字符和索引。索引化字符产生单元62向接收单元64传递从在字符串中的每一个字符产生的索引化字符。0050服务器20的自动机存储单元42存储用于确定向客户机30输入的字符串是否可。
22、接受的自动机。自动机存储单元42可以包括例如用于表示状态转换的转换表格、一组可输入字符、一组状态以及初始状态和最后状态。0051在此,自动机根据转换表格来进行密钥索引的状态转换。换句话说,它在每次从首部起提供在字符串中的字符时经历状态转换。自动机响应于字符的应用而从前一个状态向随后的状态的转换被称为状态转换。在状态转换中的状态、字符和随后状态的组合被称为状态转换关系。0052服务器20的密钥产生单元44产生与在自动机中包括的多个状态对应的每一个索说明书CN104067556A4/23页7引的密钥。密钥产生单元44也产生与作为最后状态的每一个状态对应的密钥该最后状态源自自动机对于在字符串中的最后。
23、字符的接收。下面将参考图5和其他附图来描述由密钥产生单元44产生的密钥的示例。0053服务器20的密钥链产生单元46产生密钥链,其中,对于索引、字符和状态的每一个组合,使用与状态对应的密钥,基于来自当前状态的字符,根据转换的最后状态来加密下一个索引的密钥。密钥链产生单元46产生密钥链,其中,使用与在对应于字符串的最后字符的索引中的当前状态对应的密钥,基于字符来加密与从当前状态起的转换的最后状态对应的密钥。这些密钥被密钥产生单元44产生。0054另外,密钥链产生单元46产生最后状态信息,其中,加密一个值,该值表达基于与转换的最后状态对应的密钥的转换的最后状态是否是由自动机预先确定的最后状态。下面。
24、将参考图4、图7和图8来详细描述密钥链集合和最后状态信息的示例。0055服务器20的索引化状态转换值产生单元48产生用于每一个状态转换关系的索引化状态转换值。在此,索引化状态转换值是用于表示被用于每一个状态转换的自动机可接受的一组字符和索引的值。它例如是通过下述方式被获得的向单向函数分配表示字符的值和表示索引的值。在该情况下,该单向函数是相同的用于产生索引化字符的相同单向函数。索引化状态转换值也可以是从这个值加密或被隐藏的值使得难以检测字符和索引。下面将参考图9和其他附图来描述索引化状态转换值的示例。0056服务器20的合成单元50将由索引化状态转换值产生单元48对于每一个索引产生的索引化状态。
25、转换值与在由密钥链产生单元46产生的密钥链集合中的每一个密钥链相关联。合成单元50产生与索引化状态转换值相关联的密钥链集合。下面将参考图10和其他附图来描述与索引化状态转换值相关联的密钥链集合的示例。0057服务器20的提供单元52与客户机30的接收单元64进行通信。客户机30的接收单元64也与服务器20的提供单元52进行通信。0058更具体地,服务器20的提供单元52与客户机30的接收单元64进行通信,并且对于每一个索引向客户机30以隐藏输入字符的方式提供与来自密钥链集合的每一个输入字符对应的密钥链。换句话说,提供单元52仅向接收单元64提供与由输入单元60输入的字符串对应的密钥链。它不向接。
26、收单元64提供与未由输入单元60输入的字符串对应的密钥链。0059客户机30的接收单元64也与服务器20的提供单元52进行通信,并且对于每一个索引从服务器20以隐藏自动机的方式接收与输入字符串对应的密钥链。换句话说,接收单元64仅从提供单元52接收与由输入单元60输入的字符串对应的密钥链。它不从提供单元52接收与未被输入单元60输入的字符串对应的密钥链。0060在此,提供单元52和接收单元64在检测在彼此的集合中的共享元素的存在的同时使用隐藏彼此的集的元素的隐私保护集合交叉协议来传递与输入的字符串对应的密钥链。以这种方式,提供单元52可以在对客户机30隐藏自动机的同时向接收单元64提供与输入的。
27、字符对应的密钥链。另外,接收单元64在对服务器20隐藏输入的字符序列的同时从提供单元52接收与输入字符对应的密钥链。0061在非专利文献1中描述了隐私保护集合交叉协议的示例。下面将参考图11和其他附图来描述使用隐私保护集合交叉协议执行的处理的示例。说明书CN104067556A5/23页80062服务器20的提供单元52也向客户机30的接收单元64提供了与由密钥链产生单元46产生的初始状态即,用于与初始状态对应的第一索引的密钥和最后状态信息对应的密钥。而且,客户机30的接收单元64从服务器20的提供单元52接收与该初始状态和最后状态信息对应的密钥。0063解密单元66通过下述方式来获得与下一个。
28、索引对应的密钥使用通过对于在索引的顺序的前一个索引执行解密处理而获得的密钥来解密由接收单元64接收的所有密钥链。解密单元66使用从服务器20分离地获取的用于初始状态的密钥来执行用于第一索引的解密处理。解密单元66可以通过下述方式来解密与转换的最后状态对应的密钥执行与对应于在字符串中的最后字符的最后索引对应的解密处理。0064在获得与最后状态对应的密钥后,解密单元66使用解密密钥来获得最后状态信息。当已经获取了最后状态信息解密的结果和表示最后状态的值时解密单元66确定是否存在向适当的最后状态的转换。当已经获取了用于表示最后状态的值时,解密单元66输出用于指示已经通过自动机接受了字符串的信息。当不。
29、能接收用于表示最后状态的值时,它输出用于指示自动机尚未接受字符串的信息。0065图3示出了在本实施例中由服务器20和客户机30执行的处理的流程图。0066首先,在步骤S11中,客户机30输入字符串。客户机30可以输入具有预定数量的字符的字符串,或者可以使用可变长度的字符串。当输入可变长度的字符串时,客户机30向服务器20通知输入字符的数量即,索引的数量。0067接下来,在步骤S12中,客户机30产生索引化字符,该索引化字符表示由在输入字符串中的每个字符的索引和输入字符构成的组。索引化字符例如是通过向单向函数分配表示索引的值和表示输入字符的值而获得的值。服务器20和客户机30预先确定该单向函数的。
30、内容。0068例如,如下面的方程1所示,客户机30输入包括N个字符的字符串其中,N是等于或大于2的整数。0069方程10070X1X2X3XN0071在该情况下,例如,客户机30对于在字符串中的每一个字符向单向函数G分配字符的索引即,从在字符串中的字符首部起的顺序和表示该字符的值,如下面的方程2中所示。以这种方式,客户机30可以计算用于表示由索引和输入字符索引化字符构成的组的值。0072方程200730074客户机30对于在字符串中的所有字符执行该操作,并且产生如下面的方程3所示说明书CN104067556A6/23页9的索引化字符集合。接下来,客户机30在存储器中存储该索引化字符集合。007。
31、5方程30076G1,X10077G2,X20078G3,X30079008000810082GN,XN0083同时。在步骤S13中,服务器20产生密钥链,其中,对于每一个索引、字符和状态,使用与状态对应的密钥,基于来自当前状态的字符,根据下一个转换状态来加密用于下一个索引的密钥。而且,服务器20使用与在对应于在字符串中的最后字符的索引中的当前状态对应的密钥来产生密钥链,该密钥链包括与由字符引起的下一个转换状态对应的加密密钥。下面参考在图4中的流程图来详细描述密钥链产生处理。0084接下来,在步骤S14中,服务器20基于状态转换关系来产生索引化状态转换值。索引化状态转换值的示例是通过在单向函数。
32、中分配表示索引的值和表示字符的值而获得的值,如在下面的方程4中所示。以这种方式,服务器20可以计算表示由索引和字符构成的组的值索引化状态转换值。用于产生索引化状态转换值的单向函数是由客户机30使用来产生索引化字符的相同的单向函数。0085方程400860087在步骤S14中,服务器20关于每一个索引为自动机可输入的每一个字符生成索引化状态转换值,如下面的方程5所示。在下面的方程5中,表示由自动机可输入的字符的数量。0088方程50089说明书CN104067556A7/23页100090接下来,在步骤S15中,服务器20将对应的索引化状态转换值与多个产生的密钥链的每一个相关联。然后,服务器20。
33、产生具有相关联的索引化状态转换值的密钥链集合。下面参考图10和其他附图来描述具有相关联的索引化状态转换值的密钥链集合的示例。0091接下来,在步骤S16中,服务器20和客户机30使用隐私保护集合交叉协议来传递与输入字符对应的密钥链。0092更具体地,客户机30向服务器20发送已发送密文,其中,对于在输入字符串中的每一个字符加密索引化字符集合。接下来,服务器20基于发送的密钥而产生具有加密值的响应密文,该加密值当在用于表达一组对应的索引和对应的字符的索引化字符集合中包括索引化状态转换值时变为在密钥链集合中包括的每个密钥链,并且当在该组索引化字符中未包括索引化状态转换值时不变为密钥链。服务器然后向。
34、客户机30发送所产生的响应密文。0093客户机30从服务器20接收响应密文,并且解密所接收的响应密文。以这种方式,客户机30可以接收与用于每一个索引的输入字符对应的密钥链。0094通过执行该处理,服务器20可以在对客户机30隐藏自动机的同时向客户机30提供与输入字符对应的密钥链。而且,客户机30可以对服务器20隐藏输入字符串的同时从服务器20接收与输入字符对应的密钥链。下面将参考在图11中的流程图来描述使用隐私保护集合交叉协议执行的处理的示例。0095接下来,在步骤S17中,服务器20向客户机30发送与初始状态即,用于对应于初始状态的第一索引的密钥和最后状态信息对应的密钥。0096接下来,在步。
35、骤S18中,客户机30使用通过对应于索引的顺序的前一个索引的解密处理获得的密钥来对于从服务器20接收的每一个密钥链执行解密处理,并且顺序解密说明书CN104067556A108/23页11与下一个索引对应的密钥。在该情况下,客户机30使用从服务器20分离地接收的用于初始状态的密钥来执行与第一索引对应的解密。而且,在与对应于在字符序列中的最后字符的最后索引对应的处理中,客户机30可以通过解密由接收单元64接收的密钥链的每一个来解密与转换的最后状态对应的密钥。0097在获得与转换的最后状态对应的密钥后,客户机30使用解密的密钥来获得最后状态信息。作为获得最后状态信息的结果,客户机30确定当已经获取。
36、了用于表示最后状态的值时已经存在向适当的最后状态的转换。当已经获取了用于表示最后状态的值时,客户机30输出用于指示自动机已经接受了字符串的信息。当还没有获取表示最后状态的值时,输出用于指示自动机还没有接受字符串的信息。0098通过执行该处理,服务器20和客户机30可以使用向客户机30输入的字符串来确定由服务器20拥有的自动机是否已经在对服务器20隐藏由客户机30输入的字符串的同时并且在对客户机30隐藏由服务器20拥有的自动机的同时进行了向适当的最后状态的转换。0099图4示出用于产生密钥链集合的处理的流程图。图5示出用于对于每一个索引产生的各种状态的密钥的示例。图6示出用于自动机的转换表格和用。
37、于向在对应于用于第一索引、第二索引和第三索引的每个状态和每个字符的随后状态中的下一个索引分配密钥的密钥表格的示例。0100服务器20执行作为在图3的步骤S13中的密钥链集合产生处理的、下面的从步骤S31至步骤S42的处理。0101首先,在步骤S31中,服务器20对于每一个索引产生与在自动机中包括的多个状态的每一个对应的密钥。服务器20也产生与转换的每一个最后状态对应的密钥。0102在该情况下,服务器20产生具有不同值的随机数来作为密钥。例如,当自动机具有三个状态状态A、状态B、状态C并且在字符串中包括三个密钥时,服务器20产生如图5中所示的密钥。0103换句话说,如图5中所示,服务器20对于第。
38、一索引产生作为对应于状态A的密钥的RA0、作为对应于状态B的密钥的RB0和作为对应于状态C的密钥的RC0。而且,服务器20对于第二索引产生作为对应于状态A的密钥的RA1、作为对应于状态B的密钥的RB1和作为对应于状态C的密钥的RC1。另外,服务器20对于第三索引产生作为对应于状态A的密钥的RA2、作为对应于状态B的密钥的RB2和作为对应于状态C的密钥的RC2。而且,服务器20对于转换的最后状态产生作为对应于状态A的密钥的RA3、作为对应于状态B的密钥的RB3和作为对应于状态C的密钥的RC3。0104接下来,在从步骤S32至步骤S41的循环处理中,服务器20对于每一个索引重复从步骤S33至步骤S。
39、40的处理。而且,在从步骤S33至步骤S40的循环处理中,服务器20对于每一个字符重复从步骤S34至步骤S39的处理。而且,在从步骤S34至步骤S39的循环处理中,服务器20对于每一个状态重复从步骤S35至步骤S38的处理。0105换句话说,服务器20对于每一个索引、每一个字符和每一个状态重复地执行从步骤S35至步骤S38的处理。0106在步骤S35中,服务器20从在步骤S31中产生的密钥读取与作为执行对象的索引和状态对应的密钥。说明书CN104067556A119/23页120107接下来,在步骤S36中,服务器20读取自动机的转换表格,并且响应于在待处理的状态中待处理的字符的输入来识别随后。
40、转换状态。0108例如,在图6中所示的转换表格的示例中,当在状态A中输入字符“0”时随后状态是“A”,并且当在状态A中输入字符“1”时随后状态是“B”。而且,当在状态B中输入字符“0”时随后状态是“A”,并且当在状态B中输入字符“1”时随后状态是“C”。而且,当在状态C中输入字符“0”时随后状态是“C”,并且当在状态C中输入字符“1”时随后状态是“C”。0109接下来,在步骤S37中,服务器20从对于待处理的下一个索引在步骤S31中产生的密钥读取与在步骤S36中识别的随后状态对应的密钥。0110例如,服务器20读取用于第一索引的密钥,如在图6A中的密钥表格中所示。换句话说,服务器20读取当在状。
41、态A中输入字符“0”时的密钥“RA1”、当在状态A中输入字符“1”时的密钥“RB1”、当在状态B中输入字符“0”时的密钥“RA1”、当在状态B中输入字符“1”时的密钥“RC1”、当在状态C中输入字符“0”时的密钥“RC1”和当在状态C中输入字符“1”时的密钥“RC1”。0111而且,例如,服务器20读取用于第二索引的密钥,如在图6B中的密钥表格中所示。换句话说,服务器20读取当在状态A中输入字符“0”时的密钥“RA2”、当在状态A中输入字符“1”时的密钥“RB2”、当在状态B中输入字符“0”时的密钥“RA2”、当在状态B中输入字符“1”时的密钥“RC2”、当在状态C中输入字符“0”时的密钥“R。
42、C2”和当在状态C中输入字符“1”时的密钥“RC2”。0112而且,例如,服务器20读取用于第三索引的密钥,如在图6C中的密钥表格中所示。换句话说,服务器20读取当在状态A中输入字符“0”时的密钥“RA3”、当在状态A中输入字符“1”时的密钥“RB3”、当在状态B中输入字符“0”时的密钥“RA3”、当在状态B中输入字符“1”时的密钥“RC3”、当在状态C中输入字符“0”时的密钥“RC3”和当在状态C中输入字符“1”时的密钥“RC3”。0113接下来,在步骤S38中,服务器20产生密钥改变,其中,使用与在步骤S35中读取的状态对应的索引的密钥来加密与在步骤S37中读取的下一个状态对应的下一个索引。
43、的密钥。用于密钥链的加密方案可以例如是DIFEHELLMAN加密方案,它是具有消息认证码MAC的密钥加密方案。0114当服务器20已经对于所有的索引、所有的字符和所有的状态执行了从步骤S35至步骤S38的处理,并且密钥链产生已经结束时,处理进行到步骤S42。0115接下来,在步骤S42中,服务器20产生最后状态信息,其中,使用对应于转换的最后状态的密钥来加密用于指示转换的最后状态是否是由自动机确定的最后状态的值。当服务器20已经完成在步骤S42中的处理时,退出该流程,并且该处理结束。0116图7示出了对于索引、字符和状态的每一个组合产生的密钥链集合的示例。服务器20可以产生密钥链集合作为执行在。
44、图4中的从步骤S31至步骤S41的处理的结果。0117例如,当已经如图6中所示产生了用于自动机的转换表格和密钥时,服务器20可以产生与索引、字符和状态的每一个组合对应的密钥链集合,如图7中所示。0118ENCX,Y表示使用公用密钥COMMONKEY加密方案的通过密钥X来加密数据Y。公用密钥加密方案是对于加密和解密使用相同的密钥的加密方案。示例包括数据加密标准说明书CN104067556A1210/23页13DES和高级加密标准AES。0119图8示出最后状态信息的示例。服务器20可以产生最后状态信息作为执行在图4中的步骤S42中的处理的结果。例如,当已经如图6中所示产生了用于自动机的转换表格和。
45、密钥并且由自动机确定的适当的最后状态是“A”时,服务器20可以产生如图8中所示的最后状态信息。0120换句话说,服务器20产生最后状态信息,其中,使用与转换的最后状态“A”对应的密钥“RA3”来加密适当的最后转换状态。而且,产生最后状态信息,其中,使用与转换的最后状态“B”对应的密钥“RB3”来加密用于指示不适当的最后转换状态的值在本示例中为“0”。而且,产生最后状态信息,其中,使用与转换的最后状态“C”对应的密钥“RC3”来加密用于指示不适当的最后转换状态的值在本示例中为“0”。0121图9示出当输入“0”或“1”的二进制字符时从第一索引至第三索引的索引化状态转换值的示例。服务器20可以作为。
46、执行在图3中的步骤S14中的处理的结果产生索引化状态转换值。0122例如,当自动机可以接受具有“0”或“1”的二进制字符并且在字符串中包括的字符的数量是3时,服务器20产生索引化状态转换值,如图9中所示。换句话说,服务器20对于第一至第三索引的每一个和对于每一个可接受的字符“0”和“1”产生索引化状态转换值。0123图10示出与索引化状态转换值相关联的密钥链集合的示例。服务器20可以将索引化状态转换值与作为执行在图3中的步骤S15中的处理的结果对于每一个索引、字符和状态产生的多个密钥链的每一个相关联。0124例如,如图10中所示,服务器20将用于表示第一索引和字符“0”的一组的索引化状态转换值。
47、F1,0与对应于在第一索引中的字符“0”的每一个密钥链相关联。而且,服务器20将用于表示包括第一索引和字符“1”的一组的索引化状态转换值F1,1与对应于在第一索引中的字符“1”的每一个密钥链相关联。0125另外,例如,如图10中所示,服务器20将用于表示第二索引和字符“0”的一组的索引化状态转换值F2,0与对应于在第二索引中的字符“0”的每一个密钥链相关联。而且,服务器20将用于表示包括第二索引和字符“1”的一组的索引化状态转换值F2,1与对应于在第二索引中的字符“1”的每一个密钥链相关联。0126另外,例如,如图10中所示,服务器20将用于表示第三索引和字符“0”的一组的索引化状态转换值F3。
48、,0与对应于在第三索引中的字符“0”的每一个密钥链相关联。而且,服务器20将用于表示包括第三索引和字符“1”的一组的索引化状态转换值F3,1与对应于在第三索引中的字符“1”的每一个密钥链相关联。0127图11示出在本实施例的认证系统10中使用隐私保护集合交叉协议执行的通信处理的示例。服务器20和客户机30使用下面从步骤S51至步骤S58所示的隐私保护集合交叉协议来从服务器20向客户机30发送在多组产生的密钥链中的与对于每一个索引输入的字符对应的密钥链。0128首先,在步骤S51中,客户机30获取多组索引化字符。在本示例中,客户机30获取与第一至第N字符X1XN对应的N主索引化字符G1GN,如在。
49、下面的方程6中所示。0129方程6说明书CN104067556A1311/23页140130G1,X1G10131G2,X2G20132G3,X3G30133013401350136GN,XNGN0137接下来,在步骤S52中,客户机30产生多项式PX。多项式PX是下述函数其当在索引化字符集合G1GN中包括的任何索引化字符被分配到变量X时变为零,并且当分配除了这些索引化字符之一的值时变为非零。换句话说,客户机30产生多项式PX,该多项式使用在索引化字符集合G1GN中包括的任何索引化字符来求解变量X。0138方程70139PXXG1XG2XG3XGNLNXNLN1XN1L1XL00140接下来,在步骤S53中,客户机30如在下面的方程8中所示产生多个密文,其中,使用具有同态HOMOMORPHISM例如,加法同态的加密方案来加密在多项式中的系数的全部和预定常数的每一个例如,“1”。例如,客户机30使用增强ELGAMAL加密来加密每一个系数和预定常数。EM表示密文,其中,使用具有加法同态的加密方案来加密明文。0141方程80142ELN0143ELN10144014501460147EL10148EL00149E10150在此,使用具有加法同态的加密方案来加密的密文具有在下面的方程9中所示的特性。在该方程中,M1、M2和M表示明文。0151方程90152EM1EM2EM。