CN104067556B - 用于确定自动机是否已经接受了字符串的系统 - Google Patents

用于确定自动机是否已经接受了字符串的系统 Download PDF

Info

Publication number
CN104067556B
CN104067556B CN201380006069.9A CN201380006069A CN104067556B CN 104067556 B CN104067556 B CN 104067556B CN 201380006069 A CN201380006069 A CN 201380006069A CN 104067556 B CN104067556 B CN 104067556B
Authority
CN
China
Prior art keywords
character
key
index
client computer
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201380006069.9A
Other languages
English (en)
Other versions
CN104067556A (zh
Inventor
立石孝彰
渡边裕治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104067556A publication Critical patent/CN104067556A/zh
Application granted granted Critical
Publication of CN104067556B publication Critical patent/CN104067556B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

为了确定字符串是否已经被自动机接受,提供了一种服务器,所述服务器能够连接到用于输入字符串的客户机,并且具有自动机,对于所述自动机,对于每一个前一个状态和每一个字符已经定义了要转换到的后一个状态。所述服务器具有:密钥链产生单元,用于产生用于字符、状态和用于表达在字符串中的每一个字符的位置的索引的每一个组合的密钥链,所述密钥链是通过使用与所述状态对应的密钥来根据字符对与要从当前状态转换到的后一个状态对应的下一个索引加密该密钥;以及提供单元,用于与客户机进行通信,并且在对所述客户机隐藏输入字符的同时向所述客户机提供在用于每一个索引的密钥链集合组中的密钥链中的与每一个输入的字符对应的密钥链。

Description

用于确定自动机是否已经接受了字符串的系统
技术领域
本发明涉及一种用于认证自动机是否已经接受了字符串的服务器、客户机、方法和程序。
背景技术
已知用于认证由服务器拥有的自动机是否已经接受了由客户机拥有的字符串的系统(参见例如,专利文件1)。
引用列表
专利文献
专利文献1特开专利公布No.2009-151757
非专利文献
非专利文献1
Michael J.Freedman,Kobbi Nissim and Benny Pinkas,"Efficient PrivateMatching and Set Intersection",Advances in Cryptology EUROCRYPT2004,LectureNotes in Computer Science,2004
非专利文献2
Even,O.Goldreich,and A.Lempel,"A Randomized Protocol for SigningContracts",Communications of the ACM,Volume28,Issue6,pg.637-647,1985
发明内容
技术问题
然而,在不向服务器公开由客户机拥有的字符串并且不向客户机公开由服务器拥有的自动机的情况下,很难认证自动机是否已经接受了该字符串。
解决方案
本发明的第一方面提供了一种服务器,所述服务器能够连接到用于字符串的输入的客户机,并且具有用于限定每一个状态和字符的随后转换状态的自动机。所述服务器包括:密钥链产生单元,用于产生用于索引、字符和用于表达在字符串中的每一个字符的位置的状态的每一个组合的密钥链,所述密钥链具有用于下一个索引的加密密钥,所述下一个索引对应于基于与当前状态对应的密钥根据字符从当前状态起的随后转换状态;以及提供单元,用于与客户机进行通信,并且在对所述客户机隐藏输入字符的状态中向所述客户机提供在用于每一个索引的密钥链集合中的与每一个输入的密钥对应的密钥链。也提供了一种用于由这个服务器执行的信息处理的方法和程序。
本发明的第二方面提供了一种用于输入字符串的客户机,所述客户机能够与服务器进行通信,所述服务器具有用于限定每一个状态和每一个字符的随后转换状态的自动机。所述客户机包括:接收单元,用于与服务器进行通信,并且从所述服务器接收与用于每一个索引的输入字符对应的多个密钥链;以及,解密单元,用于通过使用通过与所述索引的顺序中的前一个索引对应的解密处理获得的密钥来对于多个接收的密钥链执行解密处理而获得与下一个索引对应的密钥。也提供了一种用于由这个客户机执行的信息处理的方法和程序。
应当注意,本发明的上面的发明内容不意欲枚举本发明所需的所有特征。另外,这些组的特性的子组合也构成本发明。
附图说明
图1示出在本实施例中的认证系统10的配置。
图2示出在本实施例中的服务器20和客户机30的功能方框配置。
图3示出在本实施例中的由服务器20和客户机30执行的处理的流程图。
图4示出用于产生密钥链集合的处理的流程图。
图5示出用于对于每一个索引产生的各个状态的密钥的示例。
图6示出用于自动机的转换表格以及密钥表格的示例,该密钥表格用于为第一索引、第二索引和第三索引向与每一个状态和每一个字符对应的随后状态中的下一个索引分配密钥。
图7示出了对于索引、字符和状态的每个组合产生的密钥链集合的示例。
图8示出最后状态信息的示例。
图9示出当输入二进制字符“0”或“1”时从第一索引向第三索引的索引化的状态转换值的示例。
图10示出与索引化的状态转换值相关联的密钥链集合的示例。
图11示出在本实施例的认证系统10中使用隐私保护集合交叉协议执行的通信处理的示例。
图12示出在本实施例中的、由客户机30接收的多个响应密文和通过解密该多个响应密文而获得的多个密钥链的示例。
图13示出用于在客户机30中多个密钥链的顺序解密处理的流程图。
图14示出使用用于在客户机30中的多个密钥链的顺序解密处理获得的密钥的示例。
图15示出变型的认证系统10的配置。
图16示出在所述变型中的由服务器20和客户机30执行的处理的流程图。
图17示出用于第一索引的密钥链集合的示例。
图18示出用于第二索引的密钥链集合的示例。
图19示出用于第三索引的密钥链集合的示例。
图20示出从用于每一个索引的密钥链的子集起顺序解密的密钥的示例。
图21示出在所述变型中用于在服务器20和客户机30之间的密钥链子集的不经意传输的传递处理的流程。
图22示出从图21继续的流程。
图23示出从图22继续的流程。
图24示出在本实施例中的计算机1900的硬件配置的示例。
具体实施方式
下面是参考本发明的实施例的本发明的说明。然而,本实施例不在权利要求的范围中限制本发明。而且,在本发明的技术方案中不必要要求在该实施例中说明的特性的所有组合。
图1示出在本实施例中的认证系统10的配置。在本实施例中的认证系统10包括服务器20和客户机30。服务器20和客户机30经由网络彼此连接。在本实施例中的认证系统10基于向客户机30输入的字符串来确定由服务器20拥有的自动机是否已经转换到适当的最后状态。
客户机30从外部单元输入字符串,在该字符串中包括的字符可以是任何类型的字符。例如,它们可以是具有“0”和“1”的二进制值或由单个字节表示的字符。
服务器20具有自动机,该自动机根据接收的字符而进行状态转换。该自动机限定了每一个状态或每一个字符的随后转换状态。由自动机接收的字符是向客户机30输入的字符。该自动机表示预先注册的字符串集合(字符串组)的正则表达式。该自动机从首部起顺序接收在字符串中的每一个字符,并且以从在首部的字符起的每一个字符顺序转换到状态。在接收最后字符并且进行了转换后,如果自动机转换到了适当的最后状态则该自动机输出“接受”。它如果它未转换到适当的最后状态则输出“不接受”。
在这样的服务器20和客户机30中,对服务器20隐藏由客户机30输入的字符串,并且对客户机30隐藏由服务器20拥有的自动机。在此,由服务器20拥有的自动机基于向客户机30输入的字符串来确定是否已经存在向适当的最后状态的转换。
图2示出在本实施例中的服务器20和客户机30的功能方框配置。服务器20具有自动机存储单元42、密钥产生单元44、密钥链产生单元46、索引化状态转换值产生单元48、合成单元50和提供单元52。客户机30具有输入单元60、索引化字符产生单元62、接收单元64和解密单元66。
客户机30的输入单元60一次一个地输入在字符串中的每个字符。输入单元60向索引化字符产生单元62传递每一个输入的字符。
索引化字符产生单元62对于在字符串中的每一个字符产生索引化字符。在此,索引表示在字符串中的字符的位置。换句话说,它表示向自动机提供字符的顺序。
而且,索引字符是表示一组字符和索引的值。它是例如通过下述方式被获得的:向单向函数分配表示字符的值和表示索引的值。索引化字符也可以是从这个值加密或被隐藏的值使得难以检测该字符和索引。索引化字符产生单元62向接收单元64传递从在字符串中的每一个字符产生的索引化字符。
服务器20的自动机存储单元42存储用于确定向客户机30输入的字符串是否可接受的自动机。自动机存储单元42可以包括例如用于表示状态转换的转换表格、一组可输入字符、一组状态以及初始状态和最后状态。
在此,自动机根据转换表格来进行密钥索引的状态转换。换句话说,它在每次从首部起提供在字符串中的字符时经历状态转换。自动机响应于字符的应用而从前一个状态向随后的状态的转换被称为状态转换。在状态转换中的状态、字符和随后状态的组合被称为状态转换关系。
服务器20的密钥产生单元44产生与在自动机中包括的多个状态对应的每一个索引的密钥。密钥产生单元44也产生与作为最后状态的每一个状态对应的密钥(该最后状态源自自动机对于在字符串中的最后字符的接收)。下面将参考图5和其他附图来描述由密钥产生单元44产生的密钥的示例。
服务器20的密钥链产生单元46产生密钥链,其中,对于索引、字符和状态的每一个组合,使用与状态对应的密钥,基于来自当前状态的字符,根据转换的最后状态来加密下一个索引的密钥。密钥链产生单元46产生密钥链,其中,使用与在对应于字符串的最后字符的索引中的当前状态对应的密钥,基于字符来加密与从当前状态起的转换的最后状态对应的密钥。这些密钥被密钥产生单元44产生。
另外,密钥链产生单元46产生最后状态信息,其中,加密一个值,该值表达基于与转换的最后状态对应的密钥的转换的最后状态是否是由自动机预先确定的最后状态。下面将参考图4、图7和图8来详细描述密钥链集合和最后状态信息的示例。
服务器20的索引化状态转换值产生单元48产生用于每一个状态转换关系的索引化状态转换值。在此,索引化状态转换值是用于表示被用于每一个状态转换的自动机可接受的一组字符和索引的值。它例如是通过下述方式被获得的:向单向函数分配表示字符的值和表示索引的值。在该情况下,该单向函数是相同的用于产生索引化字符的相同单向函数。索引化状态转换值也可以是从这个值加密或被隐藏的值使得难以检测字符和索引。下面将参考图9和其他附图来描述索引化状态转换值的示例。
服务器20的合成单元50将由索引化状态转换值产生单元48对于每一个索引产生的索引化状态转换值与在由密钥链产生单元46产生的密钥链集合中的每一个密钥链相关联。合成单元50产生与索引化状态转换值相关联的密钥链集合。下面将参考图10和其他附图来描述与索引化状态转换值相关联的密钥链集合的示例。
服务器20的提供单元52与客户机30的接收单元64进行通信。客户机30的接收单元64也与服务器20的提供单元52进行通信。
更具体地,服务器20的提供单元52与客户机30的接收单元64进行通信,并且对于每一个索引向客户机30以隐藏输入字符的方式提供与来自密钥链集合的每一个输入字符对应的密钥链。换句话说,提供单元52仅向接收单元64提供与由输入单元60输入的字符串对应的密钥链。它不向接收单元64提供与未由输入单元60输入的字符串对应的密钥链。
客户机30的接收单元64也与服务器20的提供单元52进行通信,并且对于每一个索引从服务器20以隐藏自动机的方式接收与输入字符串对应的密钥链。换句话说,接收单元64仅从提供单元52接收与由输入单元60输入的字符串对应的密钥链。它不从提供单元52接收与未被输入单元60输入的字符串对应的密钥链。
在此,提供单元52和接收单元64在检测在彼此的集合中的共享元素的存在的同时使用隐藏彼此的集的元素的隐私保护集合交叉协议来传递与输入的字符串对应的密钥链。以这种方式,提供单元52可以在对客户机30隐藏自动机的同时向接收单元64提供与输入的字符对应的密钥链。另外,接收单元64在对服务器20隐藏输入的字符序列的同时从提供单元52接收与输入字符对应的密钥链。
在非专利文献1中描述了隐私保护集合交叉协议的示例。下面将参考图11和其他附图来描述使用隐私保护集合交叉协议执行的处理的示例。
服务器20的提供单元52也向客户机30的接收单元64提供了与由密钥链产生单元46产生的初始状态(即,用于与初始状态对应的第一索引的密钥)和最后状态信息对应的密钥。而且,客户机30的接收单元64从服务器20的提供单元52接收与该初始状态和最后状态信息对应的密钥。
解密单元66通过下述方式来获得与下一个索引对应的密钥:使用通过对于在索引的顺序的前一个索引执行解密处理而获得的密钥来解密由接收单元64接收的所有密钥链。解密单元66使用从服务器20分离地获取的用于初始状态的密钥来执行用于第一索引的解密处理。解密单元66可以通过下述方式来解密与转换的最后状态对应的密钥:执行与对应于在字符串中的最后字符的最后索引对应的解密处理。
在获得与最后状态对应的密钥后,解密单元66使用解密密钥来获得最后状态信息。当已经获取了最后状态信息解密的结果和表示最后状态的值时解密单元66确定是否存在向适当的最后状态的转换。当已经获取了用于表示最后状态的值时,解密单元66输出用于指示已经通过自动机接受了字符串的信息。当不能接收用于表示最后状态的值时,它输出用于指示自动机尚未接受字符串的信息。
图3示出了在本实施例中由服务器20和客户机30执行的处理的流程图。
首先,在步骤S11中,客户机30输入字符串。客户机30可以输入具有预定数量的字符的字符串,或者可以使用可变长度的字符串。当输入可变长度的字符串时,客户机30向服务器20通知输入字符的数量(即,索引的数量)。
接下来,在步骤S12中,客户机30产生索引化字符,该索引化字符表示由在输入字符串中的每个字符的索引和输入字符构成的组。索引化字符例如是通过向单向函数分配表示索引的值和表示输入字符的值而获得的值。服务器20和客户机30预先确定该单向函数的内容。
例如,如下面的方程1所示,客户机30输入包括N个字符的字符串(其中,N是等于或大于2的整数)。
方程1
X1 X2 X3 …XN
在该情况下,例如,客户机30对于在字符串中的每一个字符向单向函数g()分配字符的索引(即,从在字符串中的字符首部起的顺序)和表示该字符的值,如下面的方程2中所示。以这种方式,客户机30可以计算用于表示由索引和输入字符(索引化字符)构成的组的值。
方程2
客户机30对于在字符串中的所有字符执行该操作,并且产生如下面的方程3所示的索引化字符集合。接下来,客户机30在存储器中存储该索引化字符集合。
方程3
g(1,X1)
g(2,X2)
g(3,X3)
·
·
·
g(N,XN)
同时。在步骤S13中,服务器20产生密钥链,其中,对于每一个索引、字符和状态,使用与状态对应的密钥,基于来自当前状态的字符,根据下一个转换状态来加密用于下一个索引的密钥。而且,服务器20使用与在对应于在字符串中的最后字符的索引中的当前状态对应的密钥来产生密钥链,该密钥链包括与由字符引起的下一个转换状态对应的加密密钥。下面参考在图4中的流程图来详细描述密钥链产生处理。
接下来,在步骤S14中,服务器20基于状态转换关系来产生索引化状态转换值。索引化状态转换值的示例是通过在单向函数中分配表示索引的值和表示字符的值而获得的值,如在下面的方程4中所示。以这种方式,服务器20可以计算表示由索引和字符构成的组的值(索引化状态转换值)。用于产生索引化状态转换值的单向函数是由客户机30使用来产生索引化字符的相同的单向函数。
方程4
在步骤S14中,服务器20关于每一个索引为自动机可输入的每一个字符生成索引化状态转换值,如下面的方程5所示。在下面的方程5中,σ表示由自动机可输入的字符的数量。
方程5
接下来,在步骤S15中,服务器20将对应的索引化状态转换值与多个产生的密钥链的每一个相关联。然后,服务器20产生具有相关联的索引化状态转换值的密钥链集合。下面参考图10和其他附图来描述具有相关联的索引化状态转换值的密钥链集合的示例。
接下来,在步骤S16中,服务器20和客户机30使用隐私保护集合交叉协议来传递与输入字符对应的密钥链。
更具体地,客户机30向服务器20发送已发送密文,其中,对于在输入字符串中的每一个字符加密索引化字符集合。接下来,服务器20基于发送的密钥而产生具有加密值的响应密文,该加密值当在用于表达一组对应的索引和对应的字符的索引化字符集合中包括索引化状态转换值时变为在密钥链集合中包括的每个密钥链,并且当在该组索引化字符中未包括索引化状态转换值时不变为密钥链。服务器然后向客户机30发送所产生的响应密文。
客户机30从服务器20接收响应密文,并且解密所接收的响应密文。以这种方式,客户机30可以接收与用于每一个索引的输入字符对应的密钥链。
通过执行该处理,服务器20可以在对客户机30隐藏自动机的同时向客户机30提供与输入字符对应的密钥链。而且,客户机30可以对服务器20隐藏输入字符串的同时从服务器20接收与输入字符对应的密钥链。下面将参考在图11中的流程图来描述使用隐私保护集合交叉协议执行的处理的示例。
接下来,在步骤S17中,服务器20向客户机30发送与初始状态(即,用于对应于初始状态的第一索引的密钥)和最后状态信息对应的密钥。
接下来,在步骤S18中,客户机30使用通过对应于索引的顺序的前一个索引的解密处理获得的密钥来对于从服务器20接收的每一个密钥链执行解密处理,并且顺序解密与下一个索引对应的密钥。在该情况下,客户机30使用从服务器20分离地接收的用于初始状态的密钥来执行与第一索引对应的解密。而且,在与对应于在字符序列中的最后字符的最后索引对应的处理中,客户机30可以通过解密由接收单元64接收的密钥链的每一个来解密与转换的最后状态对应的密钥。
在获得与转换的最后状态对应的密钥后,客户机30使用解密的密钥来获得最后状态信息。作为获得最后状态信息的结果,客户机30确定当已经获取了用于表示最后状态的值时已经存在向适当的最后状态的转换。当已经获取了用于表示最后状态的值时,客户机30输出用于指示自动机已经接受了字符串的信息。当还没有获取表示最后状态的值时,输出用于指示自动机还没有接受字符串的信息。
通过执行该处理,服务器20和客户机30可以使用向客户机30输入的字符串来确定由服务器20拥有的自动机是否已经在对服务器20隐藏由客户机30输入的字符串的同时并且在对客户机30隐藏由服务器20拥有的自动机的同时进行了向适当的最后状态的转换。
图4示出用于产生密钥链集合的处理的流程图。图5示出用于对于每一个索引产生的各种状态的密钥的示例。图6示出用于自动机的转换表格和用于向在对应于用于第一索引、第二索引和第三索引的每个状态和每个字符的随后状态中的下一个索引分配密钥的密钥表格的示例。
服务器20执行作为在图3的步骤S13中的密钥链集合产生处理的、下面的从步骤S31至步骤S42的处理。
首先,在步骤S31中,服务器20对于每一个索引产生与在自动机中包括的多个状态的每一个对应的密钥。服务器20也产生与转换的每一个最后状态对应的密钥。
在该情况下,服务器20产生具有不同值的随机数来作为密钥。例如,当自动机具有三个状态(状态a、状态b、状态c)并且在字符串中包括三个密钥时,服务器20产生如图5中所示的密钥。
换句话说,如图5中所示,服务器20对于第一索引产生作为对应于状态(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。
接下来,在从步骤S32至步骤S41的循环处理中,服务器20对于每一个索引重复从步骤S33至步骤S40的处理。而且,在从步骤S33至步骤S40的循环处理中,服务器20对于每一个字符重复从步骤S34至步骤S39的处理。而且,在从步骤S34至步骤S39的循环处理中,服务器20对于每一个状态重复从步骤S35至步骤S38的处理。
换句话说,服务器20对于每一个索引、每一个字符和每一个状态重复地执行从步骤S35至步骤S38的处理。
在步骤S35中,服务器20从在步骤S31中产生的密钥读取与作为执行对象的索引和状态对应的密钥。
接下来,在步骤S36中,服务器20读取自动机的转换表格,并且响应于在待处理的状态中待处理的字符的输入来识别随后转换状态。
例如,在图6中所示的转换表格的示例中,当在状态(a)中输入字符“0”时随后状态是“a”,并且当在状态(a)中输入字符“1”时随后状态是“b”。而且,当在状态(b)中输入字符“0”时随后状态是“a”,并且当在状态(b)中输入字符“1”时随后状态是“c”。而且,当在状态(c)中输入字符“0”时随后状态是“c”,并且当在状态(c)中输入字符“1”时随后状态是“c”。
接下来,在步骤S37中,服务器20从对于待处理的下一个索引在步骤S31中产生的密钥读取与在步骤S36中识别的随后状态对应的密钥。
例如,服务器20读取用于第一索引的密钥,如在图6(A)中的密钥表格中所示。换句话说,服务器20读取当在状态(a)中输入字符“0”时的密钥“ra1”、当在状态(a)中输入字符“1”时的密钥“rb1”、当在状态(b)中输入字符“0”时的密钥“ra1”、当在状态(b)中输入字符“1”时的密钥“rc1”、当在状态(c)中输入字符“0”时的密钥“rc1”和当在状态(c)中输入字符“1”时的密钥“rc1”。
而且,例如,服务器20读取用于第二索引的密钥,如在图6(B)中的密钥表格中所示。换句话说,服务器20读取当在状态(a)中输入字符“0”时的密钥“ra2”、当在状态(a)中输入字符“1”时的密钥“rb2”、当在状态(b)中输入字符“0”时的密钥“ra2”、当在状态(b)中输入字符“1”时的密钥“rc2”、当在状态(c)中输入字符“0”时的密钥“rc2”和当在状态(c)中输入字符“1”时的密钥“rc2”。
而且,例如,服务器20读取用于第三索引的密钥,如在图6(C)中的密钥表格中所示。换句话说,服务器20读取当在状态(a)中输入字符“0”时的密钥“ra3”、当在状态(a)中输入字符“1”时的密钥“rb3”、当在状态(b)中输入字符“0”时的密钥“ra3”、当在状态(b)中输入字符“1”时的密钥“rc3”、当在状态(c)中输入字符“0”时的密钥“rc3”和当在状态(c)中输入字符“1”时的密钥“rc3”。
接下来,在步骤S38中,服务器20产生密钥改变,其中,使用与在步骤S35中读取的状态对应的索引的密钥来加密与在步骤S37中读取的下一个状态对应的下一个索引的密钥。用于密钥链的加密方案可以例如是Diffie-Hellman加密方案,它是具有消息认证码(MAC)的密钥加密方案。
当服务器20已经对于所有的索引、所有的字符和所有的状态执行了从步骤S35至步骤S38的处理,并且密钥链产生已经结束时,处理进行到步骤S42。
接下来,在步骤S42中,服务器20产生最后状态信息,其中,使用对应于转换的最后状态的密钥来加密用于指示转换的最后状态是否是由自动机确定的最后状态的值。当服务器20已经完成在步骤S42中的处理时,退出该流程,并且该处理结束。
图7示出了对于索引、字符和状态的每一个组合产生的密钥链集合的示例。服务器20可以产生密钥链集合作为执行在图4中的从步骤S31至步骤S41的处理的结果。
例如,当已经如图6中所示产生了用于自动机的转换表格和密钥时,服务器20可以产生与索引、字符和状态的每一个组合对应的密钥链集合,如图7中所示。
Enc(x,y)表示使用公用密钥(common key)加密方案的通过密钥x来加密数据y。公用密钥加密方案是对于加密和解密使用相同的密钥的加密方案。示例包括数据加密标准(DES)和高级加密标准(AES)。
图8示出最后状态信息的示例。服务器20可以产生最后状态信息作为执行在图4中的步骤S42中的处理的结果。例如,当已经如图6中所示产生了用于自动机的转换表格和密钥并且由自动机确定的适当的最后状态是“a”时,服务器20可以产生如图8中所示的最后状态信息。
换句话说,服务器20产生最后状态信息,其中,使用与转换的最后状态“a”对应的密钥“ra3”来加密适当的最后转换状态。而且,产生最后状态信息,其中,使用与转换的最后状态“b”对应的密钥“rb3”来加密用于指示不适当的最后转换状态的值(在本示例中为“0”)。而且,产生最后状态信息,其中,使用与转换的最后状态“c”对应的密钥“rc3”来加密用于指示不适当的最后转换状态的值(在本示例中为“0”)。
图9示出当输入“0”或“1”的二进制字符时从第一索引至第三索引的索引化状态转换值的示例。服务器20可以作为执行在图3中的步骤S14中的处理的结果产生索引化状态转换值。
例如,当自动机可以接受具有“0”或“1”的二进制字符并且在字符串中包括的字符的数量是3时,服务器20产生索引化状态转换值,如图9中所示。换句话说,服务器20对于第一至第三索引的每一个和对于每一个可接受的字符“0”和“1”产生索引化状态转换值。
图10示出与索引化状态转换值相关联的密钥链集合的示例。服务器20可以将索引化状态转换值与作为执行在图3中的步骤S15中的处理的结果对于每一个索引、字符和状态产生的多个密钥链的每一个相关联。
例如,如图10中所示,服务器20将用于表示第一索引和字符“0”的一组的索引化状态转换值f(1,0)与对应于在第一索引中的字符“0”的每一个密钥链相关联。而且,服务器20将用于表示包括第一索引和字符“1”的一组的索引化状态转换值f(1,1)与对应于在第一索引中的字符“1”的每一个密钥链相关联。
另外,例如,如图10中所示,服务器20将用于表示第二索引和字符“0”的一组的索引化状态转换值f(2,0)与对应于在第二索引中的字符“0”的每一个密钥链相关联。而且,服务器20将用于表示包括第二索引和字符“1”的一组的索引化状态转换值f(2,1)与对应于在第二索引中的字符“1”的每一个密钥链相关联。
另外,例如,如图10中所示,服务器20将用于表示第三索引和字符“0”的一组的索引化状态转换值f(3,0)与对应于在第三索引中的字符“0”的每一个密钥链相关联。而且,服务器20将用于表示包括第三索引和字符“1”的一组的索引化状态转换值f(3,1)与对应于在第三索引中的字符“1”的每一个密钥链相关联。
图11示出在本实施例的认证系统10中使用隐私保护集合交叉协议执行的通信处理的示例。服务器20和客户机30使用下面从步骤S51至步骤S58所示的隐私保护集合交叉协议来从服务器20向客户机30发送在多组产生的密钥链中的与对于每一个索引输入的字符对应的密钥链。
首先,在步骤S51中,客户机30获取多组索引化字符。在本示例中,客户机30获取与第一至第N字符X1-XN对应的N主索引化字符g1-gN,如在下面的方程6中所示。
方程6
g(1,X1)=g1
g(2,X2)=g2
g(3,X3)=g3
·
·
·
g(N,XN)=gN
接下来,在步骤S52中,客户机30产生多项式P(x)。多项式P(x)是下述函数:其当在索引化字符集合g1-gN中包括的任何索引化字符被分配到变量x时变为零,并且当分配除了这些索引化字符之一的值时变为非零。换句话说,客户机30产生多项式P(x),该多项式使用在索引化字符集合g1-gN中包括的任何索引化字符来求解变量x。
方程7
P(x)=(x-g1)(x-g2)(x-g3)…(x-gN)=lN·xN+lN-1·xN-1+…+l1x+l0
接下来,在步骤S53中,客户机30如在下面的方程8中所示产生多个密文,其中,使用具有同态(homomorphism)(例如,加法同态)的加密方案来加密在多项式中的系数的全部和预定常数的每一个(例如,“1”)。例如,客户机30使用增强ElGamal加密来加密每一个系数和预定常数。E(m)表示密文,其中,使用具有加法同态的加密方案来加密明文。
方程8
E(lN)
E(lN-1)
·
·
·
E(l1)
E(l0)
E(1)
在此,使用具有加法同态的加密方案来加密的密文具有在下面的方程9中所示的特性。在该方程中,m1、m2和m表示明文。
方程9
E(m1)+E(m2)=E(m1+m2)
k·E(m)=E(k·m)
当在具有加法同态的加密方案中提供了两个密文E(m1)、E(m2)时,将密文相加在一起的结果(E(m1)+E(m2))与在已经将明文相加在一起(E(m1+m2))后加密的密文相同。而且,将密文相加k次的结果(k·E(m))与在将明文乘以给定的数值k后加密的密文(E(k·m))相同。在此,将密文相加在一起和将明文相加在一起是不同的,但是为了方便,使用相同的运算符号“+”来描述它们。
接下来,在步骤S54中,客户机30向服务器20发送多个所产生的发送密文。在该情况下,客户机30发送每个已发送密文,因此服务器20可以将它们识别为对应于系数之一。
同时,在步骤S55中,服务器20获取与索引化状态转换值相关联的密钥链集合。在本示例中,服务器20对于每一个索引获取与索引化状态转换值相关联的密钥链集合,如下面的方程10中所示。在此,j表示索引的值。
方程10
接下来,在步骤S56中,服务器20基于从客户机30发送的多个已发送密文来产生对于在密钥链集合中(即,对于每一个索引、每个字符和每一个状态)包括的密钥链的每一个的响应密文。更具体地,服务器20产生密文,其中,基于已发送密文来对于在密钥链集合中包括的每一个密钥链加密值(例如,随机数),该组密钥链当在索引化字符集合中包括对应的索引化状态转换值时变为密钥链,并且当在索引化字符集合冷凝不包括对应的索引化状态转换值时不变为密钥链。
换句话说,当与第j个索引和字符xσ对应的索引化状态转换值是f并且密钥链是S时,服务器20使用准同构(quasi-isomorphic)的密文的特性来产生如在下面的方程11中所示的响应密文。在此,在方程11中所示的响应密文是加密的文本E,其中,使用具有加法同态的加密方案来加密通过将用于表示向在多项式P(x)中的变量x分配索引化状态转换值f的结果的值P(f)乘以随机数(r)而获得的值和通过加上密钥链S而获得的值。
方程11
响应密文=E(r·P(f)+S)
因为在响应密文中P(f)=lN·fN+lN-1·fN-1+…+l0·f0并且函数E()是准同构的,所以它们可以被转换为P(f)=r·{E(lN)·fN+E(lN-1)·fN-1+…+E(l0)·f0+E(S)}。换句话说,服务器20计算通过下述方式获得的值(fN,fN-1,…,f1,f0):将索引化状态转换值f乘以在多项式P(x)中的变量x的数字的每个的幂。接下来,服务器20计算值,其中,其中使用具有加法同态的加密方案已经加密了多项式的每一个系数的、已发送密文(E(lN),E(lN-1)…,E(l1),E(l0))的每一个被加上索引化状态转换值(fN,fN-1,…,f1,f0)的数量乘以(在密文中的)对应的数的幂,并且将这些相加和组合。在将(在密文中的)所相加和组合的值r相加r次后,(在密文中)相加其中已经使用加密方案E来加密了密钥链S的密文E(S)。以这种方式,服务器20可以产生如在上面的方程11中所示的响应密文。
服务器20对于在密钥链集合中包括的多个密钥链的每一个产生该类型的密文。例如,当对于在图10中所示的与索引化状态转换值相关联的密钥链集合产生响应密文时,对于每一个索引产生与字符“0”对应的三个响应密文和与字符“1”对应的三个响应密文,如下面的方程12中所示。
方程12
接下来,在步骤S57中,服务器20向客户机30发送所产生的密文的每一个。
同时,在步骤S58中,客户机30使用对应于在步骤S53中使用的加密密钥的解密密钥来解密多个响应密文的每一个。
在此,对于多项式P(x)的解是索引化字符g1、g2、g3、…、gN。因此,当向多项式P(x)分配的索引化状态转换值f匹配索引化字符g1、g2、g3、…、gN的任何一个时,多项式P(x)的运算结果是零。因此,在该情况下,从响应密文的解密获得的解密结果是密钥链S。
相反,当向多项式P(x)分配的索引化状态转换值f不匹配索引化字符g1、g2、g3、…、gN的任何一个时,多项式P(x)的运算结果是非零(例如,随机数)。因此,在该情况下,从响应密文的解密获得的解密结果不是密钥链S。以这种方式,客户机30可以通过解密多个响应密文的每一个来获取与密钥索引的输入字符对应的密钥链。
以这种方式,服务器20和客户机30可以执行隐藏的交通信协议,以在对服务器20隐藏字符串并且对客户机30隐藏与除了输入字符之外的字符对应的密钥链的同时从服务器20向客户机30传递与每一个索引的输入字符对应的密钥链。
图12示出在本实施例中的、由客户机30接收的多个响应密文和通过解密多个响应密文而获得的多个密钥链的示例。在本示例中,客户机30从服务器20接收多个密文,诸如在图12中所示的那些。
当输入字符串是“010”时,客户机30解密与在第一索引中的字符“0”对应的多个响应密文、与在第二索引中的字符“1”对应的多个响应密文和与在第三索引中的字符“0”对应的多个响应密文。结果,可以获取对应的密钥链。然而,客户机30获取未知值(X)作为解密其他响应密文的结果。
作为解密多个响应密文的每一个的结果,客户机30不在密钥链和未知值之间区分。这些例如被存储在存储器中。
图13示出在客户机30中的多个密钥链的顺序解密处理的流程图。客户机30在图3中所示的步骤S18中连续地解密密钥链,并且执行下面的从步骤S61至步骤S65的处理。
首先,客户机30以索引的顺序来执行在步骤S62中的处理(在步骤S61和步骤S63之间的循环处理)。
更具体地,在步骤S62中,客户机30通过下述方式来解密对应于下一个索引的密钥:使用对于前一个索引解密的密钥来解密由接收单元64接收的密钥链的每一个。在此,客户机30可以对于由接收单元64接收的多个密文的全部解密结果的执行对于所有索引的解密处理。换句话说,客户机30获得所有的解密结果,而不在密钥链和未知值之间区分。
而且,在步骤S62中,客户机30通过下述方式来获得对应于第二索引的密钥:使用在对应于第一索引的解密中的用于初始状态的密钥来解密由接收单元64接收的所有密钥链。而且,在步骤S62中,客户机30可以通过在与对应于在字符串中的最后字符的最后索引对应的解密中解密由接收单元64接收的全部密钥链来解密与转换的最后状态对应的密钥。
通过执行该解密处理,客户机30可以在每次与每一个索引对应地执行解密处理时从在由接收单元64接收的所有密钥链中的任何一个密钥链解密与下一个索引的最后转换状态对应的密钥。而且,在对应于下一个索引的解密处理中,客户机30可以使用对应于下一个索引的密钥来解密与下一个索引的转换状态对应的密钥。然后,客户机30可以通过执行与字符串的最后索引对应的解密处理来解密与转换的最后状态对应的密钥。
接下来,在步骤S64中,客户机30使用密钥来获得最后状态信息,该密钥对应于通过执行对应于最后索引的解密处理而获得的转换的最后状态。作为获得最后状态信息的结果,客户机30可以获得指示最后状态的值或不指示最后状态的值。
接下来,在步骤S65中,客户机30从在步骤S64中的处理的结果确定是否已经解密了指示最后状态的值。当已经解密了指示最后状态的值时,客户机30输出自动机已经接受了字符串,并且,结束在流程图中的处理。当已经解密了不指示最后状态的之后时,客户机30输出自动机未接受客户机字符串,并且结束在流程图中的处理。
图14示出使用在客户机30中对于多个密钥链的顺序解密处理解密的密钥的示例。在本示例中,当输入字符串是“010”时,例如如图14中所示的客户机可以从通过下述方式解密多个响应密文的每一个的结果获取用于下一个索引的转换状态的密钥:对于对应于每一个索引的密钥链顺序执行解密处理(结果包括密钥链或未知值)。
换句话说,客户机30使用在对应于第一索引(初始索引)的解密处理中的初始状态的密钥ra0来解密多个响应密文的解密结果的每一个(在此,结果包括密钥链和未知值)。以这种方式,客户机30可以从在多个响应密文的解密结果中的与在第二索引中的自动机状态(状态a)对应的响应密文Enc(ra0,ra1)获取对应于第二索引的密钥ra1。
接下来,客户机30在对应于第二索引的解密处理中使用在与前一个索引对应的解密处理期间解密的密钥ra1来解密多个响应密文的解密结果的每一个。以这种方式,客户机30可以从在多个响应密文的解密结果中的与在第三索引中的自动机状态(状态b)对应的响应密文Enc(ra1,rb2)获取对应于第三索引的密钥ra2。
接下来,客户机30在对应于第三索引的解密处理中使用在对应于前一个索引的解密处理期间解密的密钥rb2来解密多个响应密文的解密结果的每一个。以这种方式,客户机30可以从在多个响应密文的解密结果中的、与转换的最后状态的自动机状态(状态a)对应的响应密文Enc(rb2,ra3)获取对应于转换的最后状态的密钥ra3。
接下来,在执行对应于第三索引(最后索引)的解密处理后,客户机30使用对应于转换的最后状态的密钥ra3来解密最后状态信息Enc(ra3,1)。以这种方式,客户机30可以从最后状态信息Enc(ra3,1)获取用于指示适当的最后状态的值(例如,“1”)。
图15示出变型的认证系统10的配置。在该变型中的认证系统10具有与在参考图1至图14上述的实施例中的认证系统10大体相同的配置元件和功能。因此,在该变型中,已经省略了与在参考图1至图14上述的认证系统10中的那些大体相同的配置元件和功能的说明。将仅描述不同点。
服务器20具有自动机存储单元42、密钥产生单元44、密钥链产生单元46和提供单元52。客户机30具有输入单元60、接收单元64和解密单元66。
服务器20的提供单元52与客户机30进行通信,并且使用不经意传输向客户机30发送在用于每一个索引的密钥链集合中的与由客户机30输入的字符对应的子集。而且,客户机30的接收单元64与服务器20的提供单元52进行通信,并且使用不经意传输从服务器20选择性地接收对应于用于每一个索引的输入字符串的密钥链的子集。
在此,提供单元52和接收单元64使用不经意传输协议来传递对应于输入字符串的密钥链的子集。不经意传输是一种协议,用于从发送装置向接收装置传送在由发送装置拥有的M个消息中的具有由接收装置指示的标识号的消息,而不接收具有其他标识号的消息,并且不向发送装置识别所示的标识号。在上面列出的非专利文献2中描述了不经意传输的示例。
因此,通过使用不经意传输,提供单元52可以在对客户机30隐藏除了由客户机30输入的字符串的密钥链之外的密钥链的子集的同时,向客户机30提供对应于输入字符的密钥链的子集。而且,通过使用不经意传输,接收单元64可以在对服务器20隐藏输入字符的同时从服务器20接收与输入字符对应的密钥链的子集。
客户机30的提供单元52根据索引来排序在密钥链的子集中的多个密钥链,并且将它们发送到客户机30。以这种方式,服务器20不能从解密结果估计自动机的状态。
服务器20的解密单元66对于在根据索引接收的密钥链的子集中包括的每一个密钥链执行解密处理,以使用在对应于索引的顺序的前一个索引的解密处理中解密的密钥来解密对应于下一个索引的密钥。
图16示出在所述变型中的由服务器20和客户机30执行的处理的流程图。
首先,在步骤S71中,客户机30输入字符串。在步骤S71中的处理与在图3中所示的步骤S11中的处理相同。
同时,在步骤S72中,服务器20对每个索引产生密钥链集合。在步骤S72中执行的处理与在图3中所示的步骤S13中的处理不同在:对于每个索引执行它。在所有其他方面中,处理与在图3中所示的步骤S13中的处理相同。
接下来,在步骤S73至步骤S75中,服务器20和客户机30使用不经意传输协议来对于每一个索引从服务器20向客户机30传递在对于索引产生的密钥链集合中的、与对于索引输入的字符对应的密钥链的子集。换句话说,在用于第一索引的处理中(步骤S73),服务器20和客户机30使用不经意传输来从服务器20向客户机30传递在对于在第一索引中的密钥链集合产生的密钥链集合中的、与对于第一索引输入的字符(即,第一字符)对应的密钥链的子集。
在用于第二索引的处理中(步骤S74),服务器20和客户机30使用不经意传输来从服务器20向客户机30传递在对于在第二索引中的多个密钥链集合产生的密钥链集合中的、对应于对于第二索引输入的字符(即,第二字符)的密钥链的子集。
其后,服务器20和客户机30对于从第三索引至第N-1索引的每个索引执行相同的处理。然后,在用于第N索引的处理中(步骤S75),服务器20和客户机30使用不经意传输来从服务器20向客户机30传递在对于在第N索引中的多个密钥链集合产生的密钥链集合中的、与对于第N索引输入的字符(即,第N字符)对应的密钥链的子集。
下面参考在图21至图23中的流程图来说明使用不经意传输来从服务器20向客户机30传递与输入字符对应的密钥链的子集的处理的示例的说明。
接下来,在步骤S76中,服务器20向客户机30发送与初始状态和最后状态信息对应的密钥。
接下来,在步骤S77中,客户机30使用在对于在索引的顺序的前一个索引的解密处理中解密的密钥来解密与在从服务器20接收的当前索引中的输入字符对应的密钥链的每一个子集,并且顺序解密与下一个索引对应的密钥。
在步骤S77中的处理与在图3的步骤S18中的处理不同在:解密在与在当前索引中输入的字符对应的密钥链的子集中包括的多个密钥链。在所有其他方面中,处理与在图3中的步骤S18中的处理相同。
通过执行该处理,服务器20和客户机30可以在对服务器20隐藏由客户机30输入的字符串的同时,并且在对客户机30隐藏由服务器20拥有的自动机的同时,基于向客户机30输入的字符串来确定由服务器20拥有的自动机是否已经转换到适当的最后状态。
图17示出用于对于第一索引的密钥链集合的示例。图18示出用于第二索引的密钥链集合的示例。图19示出用于第三索引的密钥链集合的示例。
作为执行在图16的步骤S72中的处理的结果,服务器20可以产生用于每一个索引的密钥链集合。例如,当如在图5和图6中所示产生用于自动机的转换表格和用于每一个索引的密钥时,服务器20可以产生用于第一索引的密钥链集合,如例如在图17中所示。
Enc(x,y)表示使用公用密钥加密方案的、通过密钥x来加密数据y。公用密钥加密方案是对于加密和解密使用相同的密钥的加密方案。示例包括DES和AES。
类似地,服务器20也可以产生例如用于第二索引的密钥链集合,如图18中所示。类似地,服务器20也可以产生例如用于第三索引的密钥链集合,如图19中所示。
用于每一个索引的密钥链集合被划分为用于每一个字符的子集。例如,如图17、图18和图19中所示,用于第一索引、第二索引和第三索引的密钥链集合包括对应于字符“0”的密钥链的子集和对应于字符“1”的密钥链的子集。
在向客户机30的发送期间,服务器20根据索引来任意地排序在每一个子集中的密钥链的顺序。以这种方式,客户机30不能从密钥链的顺序估计对应于自动机的状态。
图20示出从用于每一个索引的密钥链的子集顺序加密的密钥的示例。客户机30使用不经意通信协议来选择性地接收与在与每个索引对应的输入字符中的用于当前索引的输入字符对应的密钥链的子集。
例如,当作为字符串输入三个字符“010”时,客户机30接收与在第一索引中的第一字符“0”对应的密钥链的子集,并且不接收与其他字符对应的密钥链的子集。而且,客户机30接收与在第二索引中的第二字符“1”对应的密钥链的子集,并且不接收与其他字符对应的密钥链的子集。而且,客户机30接收与在第三索引中的第三字符“0”对应的密钥链的子集,并且不接收与其他字符对应的密钥链的子集。
接下来,客户机30通过下述方式来获得与从当前状态起的转换的状态对应的下一个索引的密钥:解密与对于在从初始状态起的顺序的每一个索引中的当前索引接收的输入字符对应的密钥链的子集中包括的每一个密钥链。
首先,客户机30使用与初始状态对应的密钥(对应于初始状态的第一索引的密钥)来解密在与在第一索引中的输入字符对应的密钥链的子集中包括的多个密钥链的每一个。以这种方式,客户机30可以通过解密来自与输入字符对应的密钥链的子集的、与初始状态对应的密钥链而获得密钥。
例如,在图20中所示的示例中,客户机30使用与初始状态对应的第一索引的密钥ra0对于与在第一索引中的字符“0”对应的密钥链的每一个子集执行解密处理。以这种方式,客户机30可以从对应于字符“0”的初始状态“1”的密钥链Enc(rao,ra1)解密第二索引的密钥ra1
而且,客户机30使用在对应于前一个索引的解密处理中解密的密钥来解密与在第二索引和随后的索引中的输入字符对应的密钥链的子集中包括的多个密钥链的每一个。以这种方式,客户机30可以通过解密在当前索引中与自动机已经转换到的状态对应的密钥链来获得下一个索引的密钥。
例如,在图20中所示的示例中,客户机30使用在对应于第一索引的解密处理中解密的密钥ra1来解密与在第二索引中的字符“1”对应的密钥链的每一个子集。以这种方式,客户机30可以从对应于字符“1”的状态“a”的Enc(ra1,rb2)解密第三索引的密钥rb2
而且,例如,在图20中所示的示例中,客户机30使用在第二索引的解密处理中解密的密钥rb2来解密与在第三索引中的字符“0”对应的密钥链的每一个子集。以这种方式,客户机30可以从对应于字符“0”的状态“b”的Enc(rb2,ra3)解密与转换的最后状态对应的密钥ra3
然后,在解密与转换的最后状态对应的密钥后,客户机30使用解密的密钥来解密最后状态信息。作为解密该最后状态信息的结果,客户机30确定当已经获取了用于表示最后状态的值时是否已经有向适当的最后状态的转换。
例如,在图20中所示的示例中,客户机30使用在第三索引中解密的密钥ra3对于最后状态信息Enc(ra3,1)执行解密处理。以这种方式,客户机30可以解密用于表示最后状态的值(例如,“1”),并且输出用于指示自动机已经接受了该字符串的信息。
因此,在本实施例中的服务器20和客户机30可以在对服务器隐藏由客户机30输入的字符串的同时和在对客户机30隐藏由服务器20拥有的自动机的同时确定自动机是否已经接受了字符串。
图21示出在所述变型中的用于在服务器20和客户机30之间的密钥链子集的不经意传输的传递处理的流程。图22示出从图21继续的流程。图23示出从图22继续的流程。
下面是参考图21的、在步骤S73至步骤S75中对于用于每一个索引的处理执行的、使用不经意传输的通信处理的示例的说明。在本实施例中执行的不经意传输不限于下面描述的处理。它们可以使用另一个处理被实现。
在该示例中,存在由自动机可接收的M个字符(其中,M是等于或大于2的整数)。而且,在当前索引中的由客户机30输入的字符是在M个字符中的具有标识号i的(第i个)字符。
首先,在步骤S81中,服务器20产生“r”。接下来,在步骤S82中,服务器20将“g”乘以幂“r”以产生“gr”。
在此,“g”表示阶“q”的始发者。注意,“q”是任何素数。而且,“g”是由服务器20和客户机30两者确定的值。
而且,“r”是从阶“q”的循环组“Zq”随机选择的值。而且,下面描述的“r1”和“r2”是从阶“q”的循环组“Zq”随机选择的值。
接下来,在步骤S83中,客户机30产生“T2、T3、T4、…、TM”。T2、T3、T4、…、TM是(M-1)个整数,并且分配从2至M的标识号。接下来,在步骤S84中,服务器20向客户机30发送“gr”和“T2、T3、T4、…、TM”。
因为离散对数的特性,客户机30很难从“gr”计算“r”。因此,对客户机30隐藏了“r”。
接下来,在步骤S85中,客户机30接收标识号,以从M个字符识别在当前索引中输入的字符。在本示例中,客户机30接收作为标识号的“i”。在此,“i”是在1和M之间的任何数,并且包含1和M。
接下来,在步骤S86中,客户机30从“T2、T3、T4、…、TM”选择与第i个标识号对应的“Ti”。当标识号i是1时(当i=1时),客户机30不在步骤S86中选择值。
接下来,在步骤S87中,客户机30产生“r2”。接下来,在步骤S88中,客户机30将“g”乘以幂“r2”,并且产生“gr2”。
接下来,在步骤S89中,客户机30计算“PK1”。更具体地,当i=1时,客户机30使用“gr2”作为“PK1”(PK1=gr2)。当i≠1时,客户机30计算“Ti/gr2”,并且使用所计算的“Ti/gr2”作为“PK1”(PK1=Ti/gr2)。
接下来,在步骤S90中,客户机30向服务器20发送“PK1”。因为离散对数的特性,服务器20很难从“gr2”计算“r2”。因此,对服务器20隐藏“r2”。
接下来,在步骤S91中,服务器20基于“r”、“T2、T3、T4、…、TM”和所接收的“PK1”计算(PK1)r、(PK2)r、…、(PKi)r、…、(PKM)r,如在下面的方程(11)中所示。
方程13
(PK1)r=(PK1)r
(PK2)r=T2 r/(PK1)r
·
·
·
(PKi)r=Ti r/(PK1)r=(gr2)r
·
·
·
(PKM)r=TM r/(PK1)r
…(11)
在此,(PKi)r变为g(r2·r),如在下面的方程(12)中所示。
方程14
(PKi)r=Ti r/(PK1)r=Ti r/(Ti/gr2)r=(gr2)r=g(r2·r) …(12)
接下来,在步骤S92中,服务器20产生“r1”。
接下来,在步骤S93中,服务器20产生M个加密密钥“S1、S2、…、Si、…、SM”,如在下面的方程(13)中所示。
方程15
S1=H((PK1)r,r1,1)
S2=H((PK2)r,r1,2)···
Si=H((PKi)r,r1,i)··
SN=H((PKM)r,r1,M)
…(13)
接着,在步骤S94中,服务器20输入用于索引的M个密钥链的子集“Y1、Y2、…、YM”。换句话说,服务器20输入从对应于标识号i=1的字符的子集Y1至对应于与索引对应于的标识号i=M的字符的子集YM
接下来,在步骤S95中,服务器20使用在步骤S93中产生的对应的M个加密密钥“S1、S2、…、Si、…、SM”来加密每一个密钥链的子集“Y1、Y2、…、YM”的每一个。换句话说,服务器20使用第一加密密钥“S1”来加密与在索引中的第一字符对应的密钥链的子集Y1。
而且,服务器20使用第二加密密钥“S2”来加密与在索引中的第一字符对应的密钥链的子集Y2。而且,服务器20使用第i加密密钥“Si”来加密与在索引中的第i字符对应的密钥链的子集Yi。而且,服务器20使用第M加密密钥“SM”来加密与在索引中的第M字符对应的密钥链的子集YM。以这种方式,服务器20可以产生M个密文,如在下面的方程(14)中所示。
方程16
Enc(S1,Y1)
Enc(S2,Y2)
·
·
·
Enc(Si,Yi)
·
·
·
Enc(SM,YM)
…(14)
接下来,在步骤S96中,服务器20向客户机30发送所产生的M个密文。接下来,在步骤S97中,服务器20向客户机30发送“r1”。
同时,在步骤S98中,客户机30计算“(gr)r2”,它是具有“r2”幂的“gr”。在此,(PKi)r变为g(r2·r),如在方程(12)中所示。换句话说,由客户机30在步骤S98中计算的“(gr)r2”表示“(PKi)r”。
接下来,在步骤S99中,客户机30使用“(PKi)r”、“r1”和“i”来产生与标识号i对应的加密密钥“Si”。因为客户机30不能产生除了(PKi)r之外的值(例如,(PK1)r、(PK2)r和(PKM)r等),所以不能产生除了与标识号i对应的加密密钥“Si”之外的加密密钥。因此,客户机30不能获取除了与具有标识号i的字符对应的密钥链的子集Yj之外的密钥链的子集。
接下来,在步骤S100中,客户机30使用在步骤S99中产生的加密密钥“Si”来从密文E(Si,Yj)解密密钥链的子集Yj。以这种方式,客户机30可以获取与具有标识符i的字符对应的密钥链的子集Yj
以这种方式,在客户机30不获取除了与具有用于索引的具有标识号i的输入字符对应的密钥链的子集Yj之外的密钥链的子集的情况下,服务器20和客户机30可以交换与具有标识号i的字符对应的密钥链的子集Yj,并且同时向服务器20识别具有标识号i的字符。
图24示出在本实施例中的计算机1900的硬件配置的示例。在本实施例中的计算机1900配备了:CPU外围部分,其具有通过主控制器2082彼此连接的CPU2000、RAM2020、图形控制器2075和显示器2080;输入/输出部分,其具有通过输入/输出控制器2084连接到主控制器2082的通信接口2030、硬盘驱动器2040和CD-ROM2060;以及,传统输入/输出部分,其具有连接到输入/输出控制器2084的ROM2010、软盘驱动器2050和输入/输出芯片2070。
主控制器2082连接到RAM2020、以高的传输率访问RAM2020的CPU2000和图形控制器2075。基于在ROM2010和RAM2020中存储的程序来操作CPU2000,并且CPU2000控制各个单元。图形控制器2075获取由CPU2000和其他单元在RAM2020的帧缓冲器中产生的图像数据,并且显示装置2080上显示该图像数据。替代地,图形控制器2075可以包括帧缓冲器,用于存储由CPU2000和其他单元产生的图像数据。
输入/输出控制器2084连接到主控制器2082、作为较高速度输入/输出装置的通信接口2030、硬盘驱动器2040和CD-ROM2060。通信接口2030经由网络与其他装置进行通信。硬盘驱动器2040在计算机1900中存储由CPU2000使用的程序和数据。CD-ROM2060从CD-ROM2095读出程序和数据,并且经由RAM2020向硬盘驱动器2040提供它们。
输入/输出控制器2084连接到ROM2010、软盘驱动器2050和输入/输出芯片2070的较低速度输入/输出装置。ROM2010在计算机1900中存储在启动时由计算机1900执行的引导程序和/或依赖于硬件的程序。软盘驱动器2050从软盘驱动器2090读取程序或数据,并且经由RAM2020向硬盘驱动器2040提供该程序和数据。输入/输出芯片2070将软盘驱动器2050连接到输入/输出控制器2084。各种类型的输入/输出装置经由并行端口、字符串行端口、键盘端口、鼠标端口等连接到输入/输出控制器2084。
经由RAM2020向硬盘驱动器2040提供的程序被存储在诸如软盘驱动器2090、CD-ROM2095或IC卡的记录介质上,并且被用户提供。经由RAM2020从在计算机1900内的硬盘驱动器2040中安装的记录介质读取程序,并且CPU2000执行该程序。
在计算机1900中安装以使得计算机1900能够作为服务器20的程序包括自动机存储模块、密钥产生模块、密钥链产生模块、索引化状态转换值产生模块、合成模块和提供模块。该程序或模块被CPU2000和其他单元启动,以使得计算机1900能够作为自动机存储单元42、密钥产生单元44、密钥链产生单元46、索引化状态转换值产生单元48、合成单元50和提供单元52。
在这些程序中描述的信息处理是通过向计算机1900读取该程序使得软件与如上所述的各种类型的硬件资源合作而被启动的特定手段。该信息处理作为自动机存储单元42、密钥产生单元44、密钥链产生单元46、索引化状态转换值产生单元48、合成单元50和提供单元52。这些特定特定手段根据在本实施例中的计算机1900的意欲目的来实现操作和信息的处理,以构造用于该意欲目的的专用服务器20。
在计算机1900中安装以使得计算机1900能够作为客户机30的程序包括输入模块、索引化字符产生模块、接收模块和解密模块。该程序或模块被CPU2000和其他单元启动以使得计算机1900能够作为输入单元60、索引化字符产生单元62、接收单元64和解密单元66。
在这些程序中描述的信息处理是通过向计算机1900读取该程序使得软件与如上所述的各种类型的硬件资源合作而被启动的特定手段。该信息处理作为输入单元60、索引化字符产生单元62、接收单元64和解密单元66。这些特定特定手段根据在本实施例中的计算机1900的意欲目的来实现操作和信息的处理,以构造用于该意欲目的的专用客户机30。
例如,当计算机1900与外部装置进行通信时,CPU2000执行在RAM2020中安装的通信程序,并且基于在通信程序中描述的处理内容来在通信处理中指令通信接口2030。通信接口2030被CPU2000控制,并且读取在诸如RAM2020、硬盘驱动器2040、软盘驱动器2090或CD-ROM2095的存储器装置的发送缓冲区域中存储的已发送数据,或者向该存储装置的接收缓冲区域写入从网络接收的接收数据。以这种方式,通信接口2030使用直接存储器访问(DMA)方法来向存储装置传送所发送和接收的数据。替代地,CPU2000通过下述方式来传送所发送和接收的数据:从源存储装置或通信接口2030读取数据,并且向目的地通信接口2030或存储装置传送和写入数据。
而且,CPU2000经由例如DMA传送从在诸如硬盘驱动器2040、CD-ROM2060(CD-ROM2095)或软盘驱动器2050(软盘驱动器2090)之类的外部存储装置中存储的文件或数据库向RAM2020写入全部数据或必要数据,并且对于在RAM2020中的数据执行各种类型的处理。CPU2000然后经由例如DMA传送向外部存储装置写入所处理的数据。因为RAM2020在该处理期间展暂时存储外部存储装置的内容,所以RAM2020和外部存储装置在本实施例中一般被称为存储器、存储单元或存储装置。在本实施例的各种类型的程序、数据、表格和数据库中的各种类型的信息被存储在这些存储器装置中,并且是信息处理的目标。CPU2000可以在高速缓存中拥有RAM2020的一些、并且向高速缓存读取和写入数据。在此,高速缓存执行RAM2020的功能的一些。因此,在本实施例中排除该划分。在RAM2020、存储器和/或存储装置中包括高速缓存。
CPU2000也对于从RAM2020读取的数据执行各种类型的处理,包括在本实施例中描述并且通过在程序中的指令序列指示的操作、处理、条件确定与信息检索和替换,并且向RAM2020写入结果。例如,当执行条件确定时,CPU2000将在本实施例中的描述的各种类型的变量与其他变量或常数作比较,以确定是否已经满足了诸如大、笑、大于、小于或等于的条件。当已经满足(或未满足)条件时,处理分支到指令的不同序列或调用子例程。
CPU2000也可以检索在存储器装置内的文件数据库中存储的信息。例如,当多个条目将第二属性的属性值关联到第一属性的属性值时,CPU2000可以在存储装置中存储的多个条目中检索与第一属性的属性值指示的条件匹配的条目,然后通过读取在该条目中存储的第二属性的属性值来获得与满足预定条件的第一值相关联的第二值的属性值。
如上所述的程序或模块可以被存储在外部单元的记录介质中。取代软盘驱动器2090或CD-ROM2095,记录介质可以是诸如DVD或CD的光记录介质、诸如MO的磁光记录介质、带介质或诸如IC卡的半导体存储器。该记录介质也可以是存储装置,诸如在连接到专用通信网络或因特网的服务器系统中设置的硬盘或RAM,并且该程序可以经由网络被提供到计算机1900。
使用实施例描述了本发明,但是本发明的技术范围不限于如上所述的实施例。对于该实施例的许多改变和改善的可能应当对于本领域内的技术人员显然。将从权利要求的说明清楚,包括这些改变和改善的实施例在本发明的技术范围内。
使用诸如“前一个”和“先前”的词语描述了在权利要求、说明书和附图中描述的装置、系统、程序和方法中的操作、步骤和处理的执行顺序。然而,可以以任何顺序来实现这些操作、步骤和处理,只要前一个处理的输出被随后的处理使用。为了方便,使用诸如“第一”和“下一个”的词语描述了在权利要求、说明书和附图中的操作流程。然而,不必然必须以该顺序执行该操作流程。
附图标记列表
10:认证系统
20:服务器
30:客户机
42:自动机存储单元
44:密钥产生单元
46:密钥链产生单元
48:索引化状态转换值产生单元
50:合成单元
52:提供单元
60:输入单元
62:索引化字符产生单元
64:接收单元
66:解密单元
1900:计算机
2000:CPU
2010:ROM
2020:RAM
2030:通信接口
2040:硬盘驱动器
2050:软盘驱动器
2060:CD_ROM驱动器
2070:输入/输出芯片
2075:图形控制器
2080:显示装置
2082:主控制器
2084:输入/输出控制器
2090:软盘
2095:CD ROM

Claims (14)

1.一种服务器,所述服务器能够连接到用于字符串的输入的客户机,并且所述服务器具有用于限定从字符串中的每一个字符的当前状态起的随后转换状态的自动机,其中所述字符串中的每一个字符与代表该字符在所述字符串中的位置的索引相关联,所述服务器包括:
密钥产生单元,用于为每个索引产生对应于所述自动机中所包括的多个状态中的每个状态的密钥;
密钥链产生单元,用于产生用于索引、字符和用于表达在字符串中的每一个字符的位置的状态的每一个组合的密钥链,每个密钥链具有用于下一个索引中的字符串中的字符的从当前状态起的随后转换状态的加密密钥,所述下一个索引是使用对应于所述字符串中的字符的当前状态和当前索引的密钥来加密的;以及,
提供单元,用于与客户机进行通信,并且向所述客户机提供在用于每一个索引的密钥链集合中的与所述字符串中的每一个字符对应的密钥链,其中,密钥链对应于没有在对所述客户机隐藏的字符串中的字符。
2.根据权利要求1所述的服务器,其中,所述客户机包括:
接收单元,用于与所述提供单元进行通信,并且从所述服务器接收与用于每一个索引的输入字符对应的多个密钥链,以及
解密单元,用于通过下述方式来解密与下一个索引对应的密钥:使用通过与所述索引的顺序的前一个索引对应的解密处理获得的密钥来对于所述多个接收的密钥链执行解密处理。
3.根据权利要求2所述的服务器,其中,所述提供单元从所述客户机接收已发送密文,所述已发送密文加密用于表达在所述输入字符串中的每一个字符的索引和输入字符的组,并且所述提供单元基于所述已发送密文来使用加密值向所述客户机产生和发送响应密文,其中,加密值当在用于表达一组对应的索引和对应的字符的所述索引化字符集合中包括所述索引化的状态转换值时变为在所述密钥链集合中包括的每一个密钥链,并且当在所述一组索引化的字符中未包括所述索引化的转换值时不变为密钥链。
4.根据权利要求3所述的服务器,其中,所述接收单元对于每一个响应密文执行解密处理,以获取多个密钥链,并且其中,所述解密单元使用与所述索引的顺序的前一个索引对应的、在解密处理中解密的密钥来对于所述多个密钥链执行解密处理,以解密与下一个索引对应的密钥。
5.根据权利要求4所述的服务器,其中,所述提供单元从所述客户机接收已发送密文,所述已发送密文使用同态加密方案来加密多项式的各个系数,所述多项式的各个系数当分配索引化字符时变为零,并且当分配不是索引化字符的值时变为非零,并且所述提供单元向所述客户机产生和发送响应密文,所述响应密文使用相同的加密方案来加密在所述密钥链集合中包括的每一个密钥链的值和通过将所述索引化状态转换值乘以在多项式中分配的值而获得的值的和。
6.根据权利要求2所述的服务器,其中,所述提供单元与所述客户机进行通信,并且经由不经意传输选择性地向所述客户机发送用于与从所述客户机输入的字符对应的每个索引的密钥链集合的子集。
7.根据权利要求6所述的服务器,其中,所述接收单元与所述提供单元进行通信,并且按照索引经由不经意传输从所述服务器选择性地接收与输入字符对应的密钥链的子集,并且所述解密单元通过下述方式来解密与下一个索引对应的密钥:使用通过与索引的顺序的前一个索引对应的解密处理获得的密钥来对于与前一个索引对应的、在所述接收的密钥链的子集中包括的每一个密钥链执行解密处理。
8.根据权利要求7所述的服务器,其中,所述提供单元使用与每一个字符对应的加密密钥来按照索引加密与在密钥链集合中的每一个字符对应的多个子集,并且预先向所述客户机提供所述加密的子集,并且与所述客户机进行通信,并且向所述客户机提供在索引中的每一个字符的加密密钥中的、与由所述客户机输入的字符对应的每一个索引加密密钥,在对所述客户机隐藏输入字符的同时提供了所述加密密钥。
9.根据权利要求8所述的服务器,其中,所述客户机对于与由所述服务器发送并且由所述客户机输入的字符对应的每一个索引使用与该字符对应的加密密钥来解密多个先前接收的子集之一。
10.根据权利要求6所述的服务器,其中,所述提供单元按照索引排序并且发送多个密钥链。
11.根据权利要求1所述的服务器,其中,所述密钥链产生单元产生密钥链,所述密钥链使用与在对应于所述字符串的最后字符的索引中的当前状态对应的密钥来加密与最后的传送状态对应的密钥,并且所述密钥链产生单元产生最后状态信息,所述最后状态信息加密用于指示使用对应于所述转换的最后状态的所述密钥的最后转换状态是否是通过所述自动机预先确定的最后状态的值。
12.一种用于输入字符串的客户机,所述客户机能够与服务器进行通信,所述服务器具有用于限定从字符串中的每一个字符的当前状态起的随后转换状态的自动机,其中所述字符串中的每一个字符与代表该字符在所述字符串中的位置的索引相关联,所述客户机包括:
接收单元,用于与服务器进行通信,并且从所述服务器接收用于每一个索引的与所述字符串中的字符对应的多个密钥链;以及,
解密单元,用于通过下述方式而解密与下一个索引对应的密钥:使用通过与按照所述索引的顺序的前一个索引对应的密钥链的解密处理获得的密钥来对于所述多个接收的密钥链执行解密处理。
13.一种在服务器中执行的信息处理方法,所述服务器能够连接到用于字符串的输入的客户机,并且所述服务器具有用于限定从字符串中的每一个字符的当前状态起的随后转换状态的自动机,所述信息处理方法包括:
为每个索引产生对应于所述自动机中所包括的多个状态中的每个状态的密钥;
产生用于索引、字符和用于表达在字符串中的每一个字符的位置的状态的每一个组合的密钥链,每个密钥链具有用于下一个索引中的字符串中的字符的从当前状态起的随后转换状态的加密密钥,所述下一个索引是使用对应于所述字符串中的字符的当前状态和当前索引的密钥来加密的;以及,
通过与客户机进行通信向所述客户机提供在用于每一个索引的密钥链集合中的、与所述字符串中的每一个字符对应的密钥链,其中,密钥链对应于没有在对所述客户机隐藏的字符串中的字符。
14.一种在用于字符串的输入的客户机中的信息处理方法,所述客户机能够与服务器进行通信,所述服务器具有用于限定从字符串中的每一个字符的当前状态起的随后转换状态的自动机,其中所述字符串中的每一个字符与代表该字符在所述字符串中的位置的索引相关联,所述信息处理方法包括:
通过与所述服务器进行通信来从所述服务器接收用于每一个索引的与所述字符串中的字符对应的多个密钥链;并且
通过下述方式而解密与下一个索引对应的密钥:使用通过与按照所述索引的顺序的前一个索引对应的密钥链的解密处理获得的密钥来对于所述多个接收的密钥链执行解密处理。
CN201380006069.9A 2012-01-19 2013-01-10 用于确定自动机是否已经接受了字符串的系统 Expired - Fee Related CN104067556B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012-009281 2012-01-19
JP2012009281 2012-01-19
PCT/JP2013/050263 WO2013108698A1 (ja) 2012-01-19 2013-01-10 文字列がオートマトンに受理されるか否かを認証するシステム

Publications (2)

Publication Number Publication Date
CN104067556A CN104067556A (zh) 2014-09-24
CN104067556B true CN104067556B (zh) 2017-05-24

Family

ID=48799124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380006069.9A Expired - Fee Related CN104067556B (zh) 2012-01-19 2013-01-10 用于确定自动机是否已经接受了字符串的系统

Country Status (6)

Country Link
US (1) US9397986B2 (zh)
JP (1) JP5593458B2 (zh)
CN (1) CN104067556B (zh)
DE (1) DE112013000357B4 (zh)
GB (1) GB2512513B (zh)
WO (1) WO2013108698A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013108698A1 (ja) 2012-01-19 2013-07-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字列がオートマトンに受理されるか否かを認証するシステム
US9281941B2 (en) 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
HUP1300501A1 (hu) * 2013-08-26 2015-03-02 Pannon Szoftver Kft Automataelméleti alapú kriptográfiai berendezés és eljárás információk titkosítására és visszafejtésére
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
JP6763378B2 (ja) * 2015-06-18 2020-09-30 日本電気株式会社 暗号情報作成装置、暗号情報作成方法、暗号情報作成プログラム、及び、照合システム
CN105721140B (zh) * 2016-01-27 2019-03-15 北京航空航天大学 n取k的不经意传输方法和系统
US10812252B2 (en) 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
HUE054442T2 (hu) * 2017-06-15 2021-09-28 Intelligens Tech Kft Szimmetrikus kulcsú folyamtitkosító kriptográfiai eljárás és eszköz
US11196539B2 (en) 2017-06-22 2021-12-07 Microsoft Technology Licensing, Llc Multiplication operations on homomorphic encrypted data
US10541805B2 (en) 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10749665B2 (en) * 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
US11924348B2 (en) * 2021-02-27 2024-03-05 International Business Machines Corporation Honest behavior enforcement via blockchain

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102164369A (zh) * 2011-05-13 2011-08-24 南京邮电大学 基于自动机和生命游戏的无线传感器网络广播认证方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1302022A2 (en) * 2000-03-31 2003-04-16 VDG Inc. Authentication method and schemes for data integrity protection
US20050149739A1 (en) * 2003-12-31 2005-07-07 Hewlett-Packard Development Company, L.P. PIN verification using cipher block chaining
AU2006324920B2 (en) * 2005-12-14 2010-08-12 Nds Limited Method and system for usage of block cipher encryption
EP2056221A1 (en) 2007-10-30 2009-05-06 Mitsubishi Electric Corporation Split state machines for matching
WO2009104260A1 (ja) * 2008-02-20 2009-08-27 三菱電機株式会社 検証装置
US8903090B2 (en) * 2008-04-29 2014-12-02 International Business Machines Corporation Securely classifying data
FR2952778B1 (fr) * 2009-11-17 2011-12-23 Thales Sa Procede de transmission de donnees securise et systeme de chiffrement et de dechiffrement permettant une telle transmission
US8311213B2 (en) * 2009-12-07 2012-11-13 Mitsubishi Electric Research Laboratories, Inc. Method for determining functions applied to signals
US8862895B2 (en) * 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data
JP5198539B2 (ja) * 2010-11-05 2013-05-15 株式会社東芝 記憶装置、アクセス装置およびプログラム
KR101216995B1 (ko) * 2010-12-03 2012-12-31 충남대학교산학협력단 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
TW201243643A (en) * 2011-04-22 2012-11-01 Inst Information Industry Hierarchical encryption/decryption device and method thereof
WO2013108698A1 (ja) 2012-01-19 2013-07-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字列がオートマトンに受理されるか否かを認証するシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102164369A (zh) * 2011-05-13 2011-08-24 南京邮电大学 基于自动机和生命游戏的无线传感器网络广播认证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Practical Private DNA String Searching and Matching through Efficient Oblivious Automata Evaluation;Keith B. Frikken;《Data and Applications Security 2009,LNCS》;20090731;81-94 *
Privacy Preserving Error Resilient DNA Searching through Oblivious Automata;Juan Ramón,Troncoso-Pastoriza,Stefan Katzenbeisser,Mehmet Celik;《the 14th ACM conference on Computer and Communications security》;20071102;519-528 *

Also Published As

Publication number Publication date
US9397986B2 (en) 2016-07-19
CN104067556A (zh) 2014-09-24
US20150033018A1 (en) 2015-01-29
GB2512513B (en) 2015-01-07
GB201409577D0 (en) 2014-07-16
JPWO2013108698A1 (ja) 2015-05-11
JP5593458B2 (ja) 2014-09-24
DE112013000357B4 (de) 2018-02-15
DE112013000357T5 (de) 2014-08-28
WO2013108698A1 (ja) 2013-07-25
GB2512513A (en) 2014-10-01

Similar Documents

Publication Publication Date Title
CN104067556B (zh) 用于确定自动机是否已经接受了字符串的系统
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
CN101447870B (zh) 一种基于分布式口令技术的私钥安全存储方法
CN104011781B (zh) 信息处理设备、信息处理方法
CN101617351A (zh) 密文生成装置、密码通信系统以及群参数生成装置
WO2009143713A1 (zh) 双因子组合公钥生成和认证方法
CN107078906A (zh) 公钥加密系统
CN107425968A (zh) 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统
CN109831297A (zh) 一种支持门限解密的多身份全同态加密方法
CN107005408A (zh) 公共密钥加密系统
CN108718231A (zh) 一种全同态加密方法、装置和计算机可读存储介质
Abusukhon et al. New direction of cryptography: A review on text-to-image encryption algorithms based on RGB color value
CN112183767A (zh) 一种多密钥下模型聚合的联邦学习方法及相关设备
CN111143471A (zh) 一种基于区块链的密文检索方法
JP2013127665A (ja) クライアントの状態が予め定められた状態に一致するかを検出するシステム
JP5198539B2 (ja) 記憶装置、アクセス装置およびプログラム
CN105339995B (zh) 解密装置、解密能力提供装置、其方法、以及记录介质
CN109688143A (zh) 一种面向云环境中隐私保护的聚类数据挖掘方法
CN109565440A (zh) 密钥交换方法,密钥交换系统
CN109936458A (zh) 一种基于多重证据纠错的格基数字签名方法
Santoso Message security using a combination of hill cipher and RSA algorithms
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
Kumar et al. Overview of information security using genetic algorithm and chaos
JP2001211154A (ja) 秘密鍵生成方法,暗号化方法及び暗号通信方法
CN110225028A (zh) 一种分布式防伪系统及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171127

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171127

Address after: American New York

Patentee after: Core USA second LLC

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170524

Termination date: 20190110

CF01 Termination of patent right due to non-payment of annual fee