CN103164660A - 认证字符串是否被自动机受理的系统 - Google Patents

认证字符串是否被自动机受理的系统 Download PDF

Info

Publication number
CN103164660A
CN103164660A CN2012104793060A CN201210479306A CN103164660A CN 103164660 A CN103164660 A CN 103164660A CN 2012104793060 A CN2012104793060 A CN 2012104793060A CN 201210479306 A CN201210479306 A CN 201210479306A CN 103164660 A CN103164660 A CN 103164660A
Authority
CN
China
Prior art keywords
mentioned
character
server
state
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012104793060A
Other languages
English (en)
Other versions
CN103164660B (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.)
International Business Machines Corp
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 CN103164660A publication Critical patent/CN103164660A/zh
Application granted granted Critical
Publication of CN103164660B publication Critical patent/CN103164660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/193Formal grammars, e.g. finite state automata, context free grammars or word networks
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明的课题在于认证字符串是否被自动机受理。本发明提供了一种服务器,其能够连接至接受字符串的输入的客户端,具有按照接收的字符进行状态迁移的自动机,用于判定自动机是否根据字符串迁移至最终状态;关于字符串中包括的各字符,从客户端接收与字符相对应的要素由具有同构性的第1加密方式加密非单位元的值、与字符相对应的要素以外的要素由第1加密方式加密单位元的值这样的密码排列;按照密码排列的接收,与自动机的多个前状态的各个对应,基于密码排列生成由第1加密方式加密后状态密钥的交换数据;用对应的前状态密钥加密交换数据,向客户端发送。

Description

认证字符串是否被自动机受理的系统
技术领域
本发明涉及认证字符串是否被自动机受理的系统、服务器、客户端、方法及程序。
背景技术
已知认证客户端持有的字符串是否被服务器持有的自动机受理的系统(例如,参照专利文献1。)。
现有技术文献
专利文献
专利文献1:特开2009-151757号公报
发明内容
因此,在服务器中不公开客户端持有的字符串,并且,在客户端中不公开服务器持有的自动机,而认证字符串是否被自动机受理是非常难的。
在本发明的第1方面,提供一种服务器,其特征在于,上述服务器能够连接至接受字符串的输入的客户端,上述服务器具有按照接收的字符进行状态迁移的自动机,用于判定上述自动机是否根据上述字符串迁移至最终状态;关于上述字符串中包括的各字符,从上述客户端接收与上述字符相对应的要素由具有同构性的第1加密方式加密非单位元的值、与上述字符相对应的要素以外的要素由上述第1加密方式加密单位元的值这样的密码排列;按照上述密码排列的接收,与上述自动机的多个前状态的各个对应,基于上述密码排列生成由上述第1加密方式加密后状态密钥的交换数据;用对应的前状态密钥加密交换数据,向上述客户端发送。
在本发明的第2方面,提供一种客户端,其特征在于,能够连接至具有按照接收的字符进行状态迁移的自动机的服务器,上述客户端用于接受字符串的输入,判定上述自动机是否根据上述字符串迁移至最终状态;关于上述字符串中包括的各字符,向上述服务器发送与上述字符相对应的要素由具有同构性的第1加密方式加密非单位元的值、与上述字符相对应的要素以外的要素由具有上述第1加密方式加密单位元的值这样的密码排列;按照上述密码排列的接收,上述自动机的多个前状态的各个对应,基于上述密码排列生成由上述第1加密方式加密后状态密钥的交换数据;从上述服务器接收用对应的前状态密钥加密交换数据的密码文。
再者,上述的发明的概要不是列举本发明需要的特征的全部。还有,这些特征群的辅助组合也属于本发明。
附图说明
图1表示本实施方式涉及的认证系统10的构成。
图2表示本实施方式涉及的客户端20及服务器30的各个的功能块的构成。
图3表示本实施方式涉及的客户端20的发送时的处理的流程图。
图4表示由第1加密方式生成的密码文的一例。
图5表示本实施方式涉及的由服务器30进行的处理的流程图。
图6表示本实施方式涉及的服务器30具有的自动机的迁移表的一例。
图7表示与输入某字符的场合的多个前状态的各个对应的前状态密钥的密钥表。
图8表示与输入某字符的场合的多个后状态的各个对应的后状态密钥的密钥表。
图9表示本实施方式涉及的服务器30的交换数据的生成处理的流程图。
图10表示本实施方式涉及的客户端20的解密处理的流程图。
图11表示在并排与多个字符相对应的密码排列并从客户端20向服务器30发送的场合的数据传送例。
图12表示向客户端20输入的字符串、和服务器30持有的自动机的一例。
图13表示在输入字符串"010"的场合的密码排列的一例。
图14表示自动机的迁移表的一例、和第1个字符、第2个字符及第3个字符的后状态密钥的表的一例。
图15表示从第1个字符的密码排列生成每个前状态的交换数据的处理例。
图16表示从第2个字的密码排列生成每个前状态的交换数据的处理例。
图17表示从第3个字符的密码排列生成每个前状态的交换数据的处理例。
图18表示与从服务器30向客户端20发送的第1个字符到第3个字符的各个对应加密的交换数据、和加密的最终状态数据的一例。
图19表示在客户端20实行的解密处理的顺序的一例。
图20表示本实施方式涉及的计算机1900的硬件构成的一例。
具体实施方式
以下,通过发明的实施方式说明本发明,但是,以下的实施方式不限定权利要求的范围涉及的发明。还有,在实施方式中说明的特征的组合的全部未必一定是发明的技术手段。
图1表示本实施方式涉及的认证系统10的构成。本实施方式涉及的认证系统10包括:客户端20、和服务器30。本实施方式涉及的认证系统10,通过向客户端20输入的字符串,判定服务器30持有的自动机是否正确地迁移至最终状态。
客户端20从外部输入字符串。字符串中包括的字符也可以任何的字符。例如字符可以是"0","1″的2值的字符,可以是以1字节表示的字符。
服务器30具有按照接收的字符进行状态迁移的自动机。自动机接收的字符是向客户端20输入的字符。自动机表示预先登记的字符串的集合(字符串群)的正则表达式。自动机从前端依次接收字符串中包括的各字符,从前端的字符对每1个字符依次进行状态迁移。并且,自动机,在接收最后的字符并迁移之后,若正确地迁移至最终状态则输出"受理",若没正确地迁移至最终状态则输出"不受理"。
客户端20,对输入的字符串的每个字符,生成与输入的字符相对应的密码排列,向服务器30发送。再者,密码排列的细节后述。
服务器30,对应于从客户端20接收密码排列,生成加密的多个交换数据并向客户端20返回。再者,交换数据的细节后述。客户端20及服务器30按输入的字符串的字符数量反复进行密码排列及加密的多个交换数据的交换。
并且,客户端20,将与多个字符的各个对应接收的加密的多个交换数据,从前端的字符依次解密。客户端20,在能解密直到与最后的字符相对应的交换数据且能解密从与最后的字符相对应的交换数据表示受理的值的场合,根据输入的字符串判定自动机正确地迁移至最终状态。这样,本实施方式涉及的认证系统10,通过向客户端20输入的字符串,能判定服务器30持有的自动机是否正确地迁移至最终状态。
图2表示本实施方式涉及的客户端20及服务器30的各个的功能块的构成。客户端20包括:字符输入部32、排列化部34、第1加密部36、客户端侧发送部38、客户端侧接收部40、客户端侧密钥存储部42、第2解密部44、第1解密部46、和判定部48。还有,服务器30包括:服务器侧接收部52、自动机存储部54、密钥生成部56、服务器侧密钥存储部58、交换数据生成部60、第2加密部62、和服务器侧发送部64。
字符输入部32从前端逐一输入字符串中包括的各字符。排列化部34,与字符输入部32与输入的字符相对应,生成指定该字符的1个要素为非单位元,指定字符的要素以外的要素为是单位元的排列。再者,关于排列参照图3等进一步说明细节。
第1加密部36,将由排列化部34生成的排列中包括的多个要素的各个,按具有同构性的第1加密方式加密,生成密码排列。再者,关于第1加密方式及密码排列,参照图3等进一步说明细节。客户端侧发送部38,与各个的字符对应附加,并向服务器30发送由第1加密部36生成的密码排列。
这样,客户端20,与字符对应,向服务器30发送指定字符的要素由具有同构性的第1加密方式加密非单位元的值、指定字符的要素以外的要素由第1加密方式加密单位元的值这样的密码排列。
服务器侧接收部52从客户端20接收密码排列。自动机存储部54存储用于判定是否受理向客户端20输入的字符串的自动机。
密钥生成部56,与向客户端20输入的字符串的各字符对应,生成与自动机的多个后状态的各个对应的后状态密钥。再者,关于后状态密钥,参照图5等进一步说明细节。
服务器侧密钥存储部58,将与自动机的多个后状态的各个对应附加的后状态密钥,作为输入随后的字符的场合的多个前状态的各个对应的多个前状态密钥存储。再者,关于前状态密钥,参照图5等进一步说明细节。
交换数据生成部60,按照密码排列的接收,与自动机的多个前状态的各个对应,对接收的密码排列的各要素的各个,乘幂从该前状态按照输入该要素指定的字符而迁移的后状态相对应的后状态密钥。并且,交换数据生成部60,通过由与第1加密方式相对应的演算结合乘幂了后状态密钥的多个要素,生成由第1加密方式加密后状态密钥的交换数据。并且,交换数据生成部60,与自动机的多个状态的各个对应,生成表示在该状态是正确的最终状态的场合表示"受理"的值、和不是正确的最终状态的场合表示"不受理"的值的最终状态数据。再者,关于交换数据的生成方法,参照图9等进一步说明细节。
第2加密部62,与自动机的多个前状态的各个对应,将生成的多个交换数据的各个,由对应的前状态密钥加密。并且,第2加密部62,关于自动机的多个状态的各个,由对应字符串的最后的字符的后状态密钥加密最终状态数据。再者,关于多个交换数据的各个的加密处理,参照图5等进一步说明细节。服务器侧发送部64,按照密码排列的接收,向客户端20发送加密的多个交换数据。
这样,服务器30,按照密码排列的接收,与自动机的多个前状态的各个对应,基于密码排列生成由第1加密方式加密后状态密钥的交换数据,用对应的前状态密钥加密交换数据并向客户端20发送。
客户端侧接收部40,按照与字符对应的密码排列的发送,从服务器30接收加密的多个交换数据。还有,客户端侧接收部40,关于自动机的多个状态的各个,接收加密的最终状态数据。客户端侧密钥存储部42,对应于字符串的各字符,存储1个前状态密钥。更详细地,客户端侧密钥存储部42,对应于字符串的前端的字符,预先取得1个前状态密钥并存储。还有,客户端侧密钥存储部42,与字符串的前端以外的各字符的各个对应,将与第1解密部46解密的前字符对应的后状态密钥,作为前状态密钥存储。
第2解密部44,对于由客户端侧接收部40接收的加密的多个交换数据的各个,由在客户端侧密钥存储部42存储的对应的字符的前状态密钥实行解密处理。第2解密部44,在该字符正确的场合,能解密多个交换数据中的1个交换数据。
第1解密部46,从多个交换数据中第2解密部44能解密的1个交换数据,由第1加密方式解密后状态密钥。即,第1解密部46,从第2解密部44能解密的1个交换数据,使用由第1加密部36以第1加密方式加密与该字符相对应的排列的各要素的场合使用的密码密钥相对应的解密密钥,解密后状态密钥。
再者,第1解密部46,在实行与字符串中包括的最后的字符相对应的解密处理之后,由解密的后状态密钥解密最终状态数据。第1解密部46,在实行与字符串中最后以外的字符相对应的解密处理的场合,将解密的1个后状态密钥,作为随后的字符的前状态密钥写入客户端侧密钥存储部42。第1解密部46,在解密最终状态数据并能解密表示受理或不受理的值的场合,向判定部48交付表示受理的值或表示不受理的值。
判定部48,在字符串的中间的阶段第2解密部44不能解密多个交换数据的任一个的场合,或,第1解密部46解密表示不受理的值的场合,通过输入的字符串,判定服务器30持有的自动机没正确地迁移至最终状态。还有,判定部48,在第1解密部46解密表示受理的值的场合,通过输入的字符串,判定服务器30持有的自动机正确地迁移至最终状态。
这样,客户端20,将与多个字符的各个对应接收的加密的多个交换数据,从前端的字符依次解密。并且,客户端20,在能解密直到与最后的字符相对应的交换数据且接收表示受理的数据的场合,按照输入的字符串判定自动机正确地迁移至最终状态。由此,认证系统10,通过向客户端20输入的字符串,能判定服务器30持有的自动机是否正确地迁移至最终状态。
图3表示本实施方式涉及的客户端20的发送时的处理的流程图。图4表示由第1加密方式生成的密码文的一例。
客户端20,在输入字符串时,逐一地依次选择输入的字符串中包括的字符,关于各个的字符实行步骤S11至步骤S14的处理。
首先,在步骤S11,客户端20输入字符。在本实施方式,输入以可以输入的字符的集合Σ中的第σ(索引σ)指定的字符Xσ。例如,如果是以1字节表示的字符,则客户端20输入从第0到第255的任意1个字符。
继续,在步骤S12,客户端20将输入的字符变换为排列V′。更具体地,客户端20准备包含可以输入的字符的集合Σ中包括的多个字符的数|Σ|的要素的排列。例如,在输入以1字节表示的字符的场合,准备包含256个要素的排列。
准备的排列中,多个要素的各个,与集合Σ包括的多个字符的各个一一对应。例如,如果是以1比特表示的字符("0"或"1"表示的字符),则在排列中包括2个要素,第一个的要素与"0"相对应,第二个的要素与"1″相对应。
并且,客户端20,使用准备的排列,与字符输入部32输入的字符相对应,生成指定该字符的1个要素为非单位元,指定字符的要素以外的要素为单位元的排列。在这里,所谓单位元是指与后述的第1加密方式相对应的二元运算的单位元。细节后述,但是如果第1加密方式是具有加法同构性的加密方式,则这个单位元成为,加法演算的单位元为"0",非单位元为"0"以外的预先确定的数值(例如,"1″)。还有,如果第1加密方式是具有乘法同构性的加密方式,则这个单位元成为,乘法演算的单位元为"1",非单位元成为"1"以外的预先确定的数值。
在本实施方式,采用第1加密方式具有加法同构性的加密方式。在那里,客户端20,如下列的式(11)所示,生成指定字符Xσ的1个要素(索引σ的要素bσ)为"1″,指定字符的要素以外的要素(索引σ以外的要素)为"0"的排列V'。
【数1】
Figure BDA00002450004400081
再者,bx表示排列包括的索引x的要素的值。x是0≤x≤(|Σ|-1)的范围的整数。还有,σ是指定字符的集合Σ的字符Xσ的索引,是0≤σ≤(|Σ|-1)的范围的整数。
继续,在步骤S13,客户端20由第1加密方式加密排列化部34生成的排列包括的多个要素的各个,生成密码排列V。由此,客户端20,对应于字符,能生成指定该字符的要素是由第1加密方式加密非单位元的值,指定字符的要素以外的要素是由第1加密方式加密单位元的值的密码排列。
第1加密方式是对选择明文攻击满足识别困难性(IND-CPA),且,具有同构性(加法同构性或乘法同构性)的公钥密码术。例如,具有加法同构性的加密方式的密码文具有如下列的式(12)所示的特征。再者,m1、m2、m表示明文。
【数2】
E(m1)·E(m2)=E(m1+m2)
(E(m))k=E(k·m)…(12)
即,具有加法同构性的加密方式中,在给予2个密码文E(m1),E(m2)时,这些密码文的加和结果(E(m1)·E(m2))成为与加和这些明文之后加密的密码文(E(m1+m2))相同。还有,以任意的数值k乘幂密码文的结果((E(m))k)成为与以任意的数值k相乘明文之后加密的密码文(E(k·m))相同。
还有,并且,第1加密方式是,例如,如图4所示,即使在加密相同的明文的场合对每个加密处理来说密码文不同的方式。即,第1加密方式中,用某密码密钥第1次加密某明文的密码文和用相同的密码密钥第2次加密相同的明文的密码文不同,但是从第1次和第2次的2个密码文的各个能解密相同的明文。由此,客户端20不能辨别排列内的各要素是加密单位元的密码文,还是加密非单位元的密码文。
作为具有这样的特征的加密方式,已知扩展变量(エルガマル)密码方式。在本实施方式,客户端20采用扩展变量密码方式作为第1加密方式,生成如下列的式(13)所示的密码排列。
【数3】
V=[E(b0),E(b1),E(b2),…,E(bσ),…,E(b|∑|-1)]…(13)
=[E(O),E(O),E(O),…,E(1),…,E(0)]
即,在本实施方式,客户端20生成指定字符Xσ的1个要素(索引σ的要素)用扩展变量方式加密"1″的密码文,指定字符的要素以外的要素(索引σ以外的要素)用扩展变量方式加密"0"的密码文的密码排列V。
继续,在步骤S14,客户端20向服务器30发送生成的密码排列。在这个场合,客户端20,以知晓字符串中对应的字符的顺序的方式,发送密码排列。例如,客户端20依据字符顺序发送各密码排列。还有,客户端20也可以与表示字符顺序的索引一起发送密码排列。
图5表示本实施方式涉及的由服务器30进行的处理的流程图。图6表示本实施方式涉及的服务器30具有的自动机的迁移表的一例。图7表示与输入某字符的场合的多个前状态的各个对应的前状态密钥的密钥表。图8表示与输入某字符的场合的多个后状态的各个对应的后状态密钥的密钥表。
首先,在步骤S21,服务器30从客户端20接收与多个字符的各个对应的密码排列。服务器30,对接收的1个密码排列,实行步骤S22至步骤S30的处理。在这个场合,服务器30,从与前端的字符相对应的密码排列逐一字符顺序地实行步骤S22至步骤S30的处理。
例如,在从客户端20按字符顺序发送多个密码排列的场合,服务器30按接收顺序实行对密码排列的步骤S22至S30的处理。还有,在与表示字符顺序的索引一起从客户端20发送密码排列的场合,服务器30按索引顺序实行对密码排列的步骤S22至S30的处理。
继续,在步骤S22,服务器30读出自动机。在自动机中,包含表示状态的迁移的迁移表、状态群、初期状态及正确的最终状态。自动机的状态的迁移,例如,由图6所示的迁移表来表示。通过参照这个迁移表,在给予任意的字符的场合,服务器30能指定从当前的状态(前状态)迁移的随后的状态(后状态)。
在本实施方式,自动机,例如,具有由q0~q|Q|-1表示的(|Q|)个状态。还有,在本实施方式,自动机能接收从x0到x|Σ|-1的(|Σ|)个字符。并且,在本实施方式,自动机,在第i的前状态qi下,与给予第σ的字符xσ对应,迁移至第j的后状态qj。再者,i、j是0到状态数(|Q|-1)之间的整数。
继续,在步骤S23,服务器30读出与多个前状态的各个对应的多个前状态密钥。在本实施方式,服务器30,如图7所示,与多个前状态q0~q|Q|-1的各个对应,存储前状态密钥S0~S|Q|-1,读出他们。再者,这些前状态密钥与对应于之前的字符的后状态密钥相同,成为每个输入字符不同的值。还有,与最初的字符相对应的前状态密钥,预先来生成。在本实施方式,在输入某字符的场合,服务器30对应于第i的前状态qi读出前状态密钥Sj
继续,在步骤S24,服务器30生成与多个后状态的各个对应的多个后状态密钥。在这里,后状态密钥是向自动机的多个后状态的各个对应附加的随机数。在本实施方式,服务器30,如图8所示,生成与多个后状态q0~q|Q|-1的各个对应的后生成状态密钥r0~r|Q|-1。再者,这些后状态密钥,成为每个输入字符不同的值。在本实施方式,例如,在输入某字符的场合,服务器30对应于第j的后状态qj读出后状态密钥rj
继续,在步骤S25至步骤S28,服务器30对每个前状态实行循环处理。在本实施方式,服务器30,对多个前状态q0~q|Q|-1的各个,分别实行步骤S26及步骤S27的处理。
在步骤S26,服务器30生成由第1加密方式加密从该前状态按照输入与该密码排列对应的字符而迁移的后状态所对应的后状态密钥的交换数据。例如,前状态是qi,与接收的密码排列相对应的字符为Xσ(即,从字符Xσ生成接收的密码排列)。在这个场合,与在前状态qi下按照输入字符Xσ迁移的后状态,如图6所示,是qj。还有,与后状态qj对应的后状态密钥,如图8所示,是rj
因此,如下列的式(14)所示,在前状态是qi,与接收的密码排列相对应的字符为Xσ的场合,服务器30生成由第1加密方式加密rj的密码文,作为交换数据Ci。再者,关于交换数据的生成方法的细节,参照图9进一步说明。
【数4】
后状态qi(后状态密钥rj)的场合的交换数据=E(rj)=Ci…(14)
继续,在步骤S27,服务器30用对应的前状态密钥加密生成的交换数据。在这个场合,服务器30,用附带消息认证编码(MAC)的密钥加密方式,加密交换数据。在本实施方式,服务器30,作为一例,采用Diffie-Hellman密钥加密交换数据。
在步骤S28,服务器30,若关于全部的前状态判定步骤S26及步骤S27的处理结束,则退出循环,将处理向步骤S29推进。
继续,服务器30,在接收与字符串的最后的字符相对应的密码排列的场合,实行步骤S29的处理。再者,服务器30,在接收与字符串的最后的字符以外的字符相对应的密码排列的场合,跳过该步骤S29的处理,将处理向步骤S30推进。
在步骤S29,服务器30,在接收与字符串的最后的字符对应的密码排列的场合,与自动机的多个状态的各个对应,生成该状态为正确的最终状态的场合时表示"受理"的值,在不正确的最终状态的场合时表示"不受理"的值的最终状态数据。并且,服务器30,将与自动机的多个状态的各个对应生成的最终状态数据,用与字符串的最后的字符对应生成的对应状态的后状态密钥来加密。
继续,在步骤S30,服务器30,向客户端20发送关于全部前状态的各个生成的加密的多个交换数据。还有,服务器30,在接收与最后的字符相对应的密码排列的场合,向客户端20也发送关于多个状态的各个生成的加密的最终状态数据。在这个场合,服务器30,将与自动机的多个前状态的各个对应加密的多个交换数据,对每个密码排列,例如进行随机地排序发送。还有,在这个场合,服务器30,以知晓对应附加接收的密码排列的字符顺序的方式,向客户端20发送加密的多个交换数据。服务器30,作为一例,附加表示字符顺序的索引或指定对应的密码排列的信息,向客户端20发送加密的多个交换数据。
在本实施方式,与前状态q0~q|Q|-1的各个对应,生成多个交换数据C0~C|Q|-1。这个场合,服务器30,如下列的式(15)所示,通过前状态密钥S0~S|Q|-1的各个加密多个交换数据C0~C|Q|-1的各个。再者,Enc(x,y),表示用Diffie-Hellman密钥x加密数据y。
【数5】
Enc(S0,C0)
Enc(S1,C1)
    .
    .
    .
Enc(Si,Ci)…(15)
    .
    .
.
Enc(S|Q|-1,C|Q|-1)
服务器30,若关于字符串的最后的字符结束处理,则结束该流程。在关于字符串的最后的字符以外的字符结束处理的场合,在这个步骤S30,服务器30,将与多个后状态q0~q|Q|-1的各个对应的多个后状态密钥r0~r|Q|-1,作为与随后的字符相对应的多个前状态密钥来存储。并且,服务器30,返回最初处理,实行对与随后的字符对应附加的密码排列的处理。
图9表示本实施方式涉及的服务器30的交换数据的生成处理的流程图。服务器30,作为图5的步骤S26的交换数据的生成处理,实行以下的步骤S31至步骤S37的处理。
首先,在步骤S31至步骤S36,服务器30,对接收的密码排列包括的多个要素的各个分别实行循环处理。在本实施方式,服务器30,关于第0至第(|Σ|-1)的多个要素的各个,实行步骤S32至步骤S35的处理。
在步骤S32,服务器30指定与成为处理对象的要素相对应的字符。例如,在输入以1比特表示的字符的场合,在密码排列内包括2个要素。这个场合,例如,服务器30,在关于密码排列的第一个的要素进行处理时,作为与该要素相对应的字符指定"0",在关于第二个的要素进行处理时,作为与该要素相对应的字符指定"1″。在这里,服务器30指定了与第σ的要素相对应的字符Xσ
继续,在步骤S33,服务器30,给予成为处理对象的前状态及指定的字符,指定从该前状态按照输入该要素指定的字符而迁移的后状态。在这里,服务器30中,成为处理对象的前状态是qi。这个场合,服务器30,作为从前状态qi按照字符Xσ的输入而迁移的后状态,参照自动机的迁移表(例如图6的迁移表)指定qj
继续,在步骤S34,服务器30,从在步骤S24生成的多个后状态密钥中选择指定之后与状态qj相对应之后状态密钥。在这里,服务器30,从生成的多个后状态密钥表(例如图8的表)中选择rj,作为与后状态qj对应的后状态密钥。
继续,在步骤S35,服务器30,对于对象的要素,乘幂选择的后状态密钥rj。在这里,服务器30,如式(16)所示,对第σ的要素E(bσ)乘幂后状态密钥rj
【数6】
E(bσ)rj=E(bσ×rj)…(16)
其结果是,从第1加密方式的特征(加法同构性),对由该要素的第1加密方式加密的之前的值(bσ)乘的后状态密钥rj的值(bσ×rj),与由第1加密方式加密的密码文相同。
继续,在步骤S36,服务器30,若关于密码排列包括的全部的要素判定结束了步骤S32~步骤S35处理,则退出循环,将处理向步骤S37推进。
在步骤S37,服务器30,通过与第1加密方式相对应的演算结合乘幂后状态密钥的要素的各个。服务器30,将这样结合的结果,作为与该前状态相对应的交换数据。
在本实施方式,因为第1加密方式具有加法同构性的加密方式,所以服务器30通过加法演算将乘幂后状态密钥的要素的各个结合。再者,如果第1加密方式是具有乘法同构性的加密方式,则服务器30通过乘法演算结合。
在这里,如式(17)所示,关于第0至第(|Σ|-1)的各要素,进行演算加法结合而生成交换数据。再者,b0、b1、...、bσ、...、b(|Σ|-1)表示由第1加密方式加密的之前的要素的值。还有,rΔ(qi,x0)、rΔ(qi,x1)、...、rΔ(qi,xσ)、...、rΔ(qi,x|Σ|-1)表示对多个要素的各个乘幂的后状态密钥。
【数7】
交换数据=E(b0×rΔ(qi,x0))
·E(b1×rΔ(qi,x1))
.…(17)
    .
    .
·E(bσ×rΔ(qi,xσ))
.
    .
    .
·E(b|Σ|-1×rΔ(qi,x|Σ|-1))
在这里,密码排列是,指定字符的要素由第1加密方式加密非单位元的值,指定字符的要素以外的要素由第1加密方式加密单位元的值。例如,密码排列V,如下列的式(18)所示,第1加密方式具有加法同构性,与字符Xσ相对应的要素bσ是加法演算的非单位元的"1″,与字符Xσ相对应的要素bσ以外的要素是加法演算的单位元的"0"。
【数8】
Figure BDA00002450004400151
Figure BDA00002450004400152
Figure BDA00002450004400153
因此,若在式(17)中代入式(18)的要素,则交换数据如下列的式(19)所示来变换。即,与字符Xσ相对应的要素以外的要素全部成为0,与字符Xσ相对应的要素成为后状态密钥的值。其结果是,交换数据成为由第1加密方式加密从前状态qi按照输入与密码排列相对应的字符Xσ而迁移的后状态qj所对应的后状态密钥rj的密码文(E(rj))。
【数9】
交换数据=E(O)·E(O)·…·E(rΔ(qi,xσ))·…·E(O)
=E(rΔ(qi,xσ))…(19)
=E(rj)
如以上,服务器30,通过实行步骤S31~步骤S37的处理,能生成由第1加密方式加密从该前状态按照与该密码排列相对应的字符的输入而迁移的后状态所对应的后状态密钥的交换数据。
图10表示本实施方式涉及的客户端20的解密处理的流程图。
首先,在步骤S41,客户端20,按照与字符串中包括的字符相对应的密码排列的发送,从服务器30接收加密的多个交换数据。还有,客户端20,在与字符串中包括的最后的字符对应发送密码排列的场合,与加密的多个交换数据一起,接收加密的多个最终状态数据。客户端20,对接收的加密的多个交换数据,实行步骤S42至步骤S51的处理。在这个场合,客户端20,依据对应字符的字符顺序,实行对加密的多个交换数据的处理。
继续,在步骤S42,客户端20读出为对应的字符对应附加而存储的1个前状态密钥。再者,客户端20,对应于字符串的前端的字符,例如从服务器30预先接收1个前状态密钥并存储。还有,客户端20,与字符串的前端以外的各字符的各个对应,存储对应于之前的字符的1个后状态密钥作为1个前状态密钥。
继续,在步骤S43至步骤S46,客户端20,对多个交换数据的各个分别实行循环处理。在步骤S44,客户端20,通过读出的1个前状态密钥,对处理对象的加密的交换数据,实行解密处理。
在这里,如果在输入对应的字符的场合自动机能正确地迁移至其他的状态,则客户端20能解密加密的多个交换数据中的任意1个。还有,在输入对应的字符的场合自动机没正确地迁移至其他的状态时,客户端20不能解密加密的多个交换数据的任意一个。
继续,在步骤S45,客户端20判断是否能解密交换数据(步骤S45)。客户端20,在能解密的场合,将处理向步骤S47推进(步骤S45为是)。客户端20,在不能解密的场合,将处理向步骤S46推进(步骤S45的否)。
在步骤S46,客户端20,关于多个交换数据的全部,判断步骤S44及步骤S45的处理是否结束了。客户端20,在关于多个交换数据的任意一个处理没结束的场合,将处理返回到步骤S43,关于随后的交换数据实行步骤S44及步骤S45的处理。如果关于多个交换数据的全部处理结束了,即,多个交换数据的任意一个都不能解密的场合,客户端20通过输入的字符串判定服务器30持有的自动机没迁移至正确的最终状态(不受理),结束本流程。
另一方面,在能解密交换数据的场合(步骤S45为是),在步骤S47,客户端20用第1加密方式对能解密的1个交换数据进行解密处理,解密后状态密钥。即,客户端20,对能解密的1个交换数据,使用在由第1加密方式加密与该字符相对应的排列的各要素的场合使用的密码密钥相对应的解密密钥,来解密后状态密钥。
继续,在步骤S48,客户端20判断是否为与最后的字符相对应的处理(步骤S48)。客户端20,在判断不是与最后的字符相对应的场合(步骤S48为否),将处理向步骤S49推进。在步骤S49,客户端20,将解密的后状态密钥,作为与随后的字符相对应的前状态密钥保存。并且,客户端20,若结束步骤S49的处理,则从步骤S41的处理重复,以进行与随后的字符相对应的处理。
还有,客户端20,在判断是最后的字符相对应的处理的场合(步骤S48为是),将处理向步骤S50推进。在步骤S50,客户端20,通过解密的后状态密钥,解密多个最终状态数据的各个。这个场合,客户端20能解密多个最终状态数据中的任意1个。继续,在步骤S51,客户端20从能解密的最终状态数据判定是否解密了表示受理的值。
客户端20,在判定没解密表示受理的值的场合(步骤S51为否),通过输入的字符串,判定服务器30持有的自动机没迁移至正确的最终状态(不受理),结束本流程。还有,客户端20,在判定解密表示受理的值的场合(步骤S51为是),通过输入的字符串,判定服务器30持有的自动机迁移至正确的最终状态(受理),结束该流程。
如以上,根据本实施方式涉及的认证系统10,在服务器30中不公开向客户端20输入的字符串,并且,在客户端20不公开服务器30持有的自动机,能认证字符串是否被自动机受理。因此,根据本实施方式涉及的认证系统10,例如,在服务器30中不用公开向客户端20输入的信息(密码及个人信息等),能交付仅从服务器30向客户端20指定的信息。
图11表示在并排与多个字符相对应的密码排列并从客户端20向服务器30发送的场合的数据传送例。客户端20及服务器30也可关于多个字符的各个集中实行发送处理及接收处理。
即,客户端20,将与输入的字符串中包括的多个字符(例如N个的字符)的各个对应的多个密码排列(例如N个的密码排列)集中并排,向服务器30发送。服务器30,按照多个密码排列(例如N个的密码排列)的接收,集中生成与多个字符(N个的字符)对应的加密的多个交换数据。服务器30,关于多个字符的各个,将加密的多个交换数据集中并排,向客户端20发送。
并且,客户端20,从与前端的字符相对应的加密的多个交换数据依次解密关于多个字符的各个的加密的多个交换数据。由此,客户端20及服务器30,能一并实行发送处理及接收处理。
图12表示向客户端20输入的字符串、和服务器30持有的自动机的一例。以下,采用具体例,说明客户端20及服务器30的动作。
在本例,客户端20输入"010"的字符串长(N)为"3"的字符串。还有,服务器30持有的自动机具有"a"、"b"、"c"的3个状态,输入"0"或"1"的字符。还有,自动机的是初期状态Q0是"a",正确的结束状态是"a"。
还有,在本例,自动机,若在状态"a"输入字符"0",则向状态"a"迁移,若在状态"a"输入字符"1″,则向状态"b"迁移。还有,自动机,若在状态"b"输入字符"0"则向状态"a"迁移,若在状态"b"输入字符"1"则向状态"c"迁移。还有,自动机,如在状态"c"输入字符"0"则向状态"c"迁移,若在状态"c"输入字符"1"则向状态"c"迁移。
图13表示在输入字符串"010"的场合的密码排列的一例。客户端20,按照第1个字符的字符"0",生成在第1要素中配置非单位元的预先确定的值的"1″,在第2要素中配置单位元的"0"的排列V1'。继续,客户端20,由扩展变量加密方式加密这个排列V1'的2个要素的各个,生成密码排列(V1=[E(1),E(0)])。
还有,客户端20,按照第2个字符的字符"1",生成在第1要素中配置单位元的"0",在第2要素中配置非单位元的预先确定的值的"1"的排列V2'。继续,客户端20,由扩展变量加密方式加密这个排列V2'的2个要素的各个,生成密码排列(V2=[E(0),E(1)])。
客户端20,按照第3个字符的字符"0",生成在第1要素中配置非单位元的预先确定的值的"1″,在第2要素中配置单位元的"0"的排列V3'。继续,客户端20,由扩展变量加密方式加密这个排列V3'的2个要素的各个,生成密码排列(V3=[E(1),E(0)])。
图14表示自动机的迁移表的一例、和第1个字符、第2个字符及第3个字符的后状态密钥的表的一例。服务器30,作为第1个字符的后状态密钥,如图14(A)所示,生成与状态"a"相对应的后状态密钥ra1、与状态"b"相对应的后状态密钥rb1、与状态"c"相对应的后状态密钥rc1。其结果是,在自动机的迁移表中分配第1个字符的后状态密钥的密钥表为,分别在状态"a"对字符"0"分配ra1,在状态"a"对字符"1″分配rb1,在状态"b"对字符"0"分配ra1,在状态"b "对字符"1"分配rc1,在状态"c"对字符"0"分配rc1,在状态"c"对字符"1″分配rc1
还有,服务器30,作为第2个字符的后状态密钥,如图14(B)所示,生成与状态"a"相对应的后状态密钥ra2、与状态"b"相对应的后状态密钥rb2、与状态"c"相对应的后状态密钥rc2。其结果是,在自动机的迁移表中分配第2个字符的后状态密钥的密钥表为,分别在状态"a"对字符"0"分配ra2,在状态"a"对字符"1"分配rb2,在状态"b"对字符"0"分配ra2,在状态"b"对字符"1"分配rc2,在状态"c"对字符"0"分配rc2,在状态"c"对字符"1"分配rc2
还有,服务器30,对第3个字符,如图14(C)所示,生成与状态"a"相对应的后状态密钥ra3、与状态"b"相对应的后状态密钥rb3、与状态"c"相对应的后状态密钥rc3。其结果是,对自动机的迁移表分配第3个字符的受理及不受理的密钥表为,分别在状态"a "对字符"0"分配ra3,在状态"a"对字符"1″分配rb3,在状态"b"对字符"0"分配ra3,在状态"b"对字符"1″分配rc3,在状态"c"对字符"0"分配rc3,在状态"c"对字符"1"分配rc3
图15表示从第1个字符的密码排列生成每个前状态的交换数据的处理例。服务器30,在从第1个字符的密码排列生成每个前状态的交换数据的场合,实行如下列表示的处理。
如图15(A)所示,在生成第1个字符的前状态"a"的交换数据的场合,服务器30,对第1个字符的密码排列V1的第1要素E(1),乘幂在第1个字符的密钥表的状态"a"和字符"0"分配的后状态密钥"ra1"。还有,服务器30,对第1个字符的密码排列V1的第2要素E(0),乘幂在第1个字符的密钥表的状态"a"和字符"1"分配的后状态密钥"rb1"。继续,服务器30,将乘幂后状态密钥的那些要素加法演算并合成。由此,服务器30,能从具有加法同构性的加密方式的特质,生成用扩展变量加密方式加密后状态密钥ra1的、前状态"a"相对应的交换数据。
如图15(B)所示,在生成第1个字符的前状态"b"的交换数据的场合,服务器30,对第1个字符的密码排列V1的第1要素E(1),乘幂后状态密钥"ra1"。还有,服务器30,对第1个字符的密码排列V1的第2要素E(0),乘幂后状态密钥"rc1"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥ra1的、前状态"b"相对应的交换数据。
如图15(C)所示,在生成第1个字符的前状态"c"的交换数据的场合,服务器30,对第1个字符的密码排列V1的第1要素E(1),乘幂后状态密钥"rc1"。还有,服务器30,对第1个字符的密码排列V1的第2要素E(0),乘幂后状态密钥"rc1"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥rc1的、前状态"c"相对应的交换数据。
再者,服务器30,对第1个字符的交换数据来说,也可以生成仅与初期状态"a"相对应的交换数据。
图16表示从第2个字的密码排列生成每个前状态的交换数据的处理例。服务器30,在从第2个字的密码排列生成每个状态的交换数据的场合,实行下列表示的处理。
如图16(A)所示,在生成在第2个字符的前状态"a"的交换数据的场合,服务器30,对第2个字的密码排列V2的第1要素E(0),乘幂后状态密钥"ra2"。还有,服务器30,对第2个字的密码排列V2的第2要素E(1),乘幂后状态密钥"rb2"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥rb2的、前状态"a"相对应的交换数据。
如图16(B)所示,在生成第2个字符的前状态"b"的交换数据的场合,服务器30,对第2个字的密码排列V2的第1要素E(0),乘幂后状态密钥"ra2"。还有,服务器30,对第2个字的密码排列V2的第2要素E(1),乘幂后状态密钥"rc2"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥rc2的、前状态"b"相对应的交换数据。
如图16(C)所示,在生成第2个字符的前状态"c"的交换数据的场合,服务器30,对第2个字的密码排列V2的第1要素E(0),乘幂后状态密钥"rc2"。还有,服务器30,对第2个字的密码排列V2的第2要素E(1),乘幂后状态密钥"rc2"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥rc2的、前状态"c"相对应的交换数据。
图17表示从第3个字符的密码排列生成每个前状态的交换数据的处理例。服务器30,在从第3个字符的密码排列生成每个状态的交换数据的场合,实行下列表示的处理。
如图17(A)所示,在生成第3个字符的前状态"a"的交换数据的场合,服务器30,对第3个字符的密码排列V1的第1要素E(1),乘幂后状态密钥"ra3"。还有,服务器30,对第3个字符的密码排列V1的第2要素E(0),乘幂后状态密钥"rb3"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥"ra3"的、前状态"a"相对应的交换数据。
如图17(B)所示,在生成第3个字符的前状态"b "的交换数据的场合,服务器30,对第3个字符的密码排列V1的第1要素E(1),乘幂后状态密钥"ra3"。还有,服务器30,对第3个字符的密码排列V1的第2要素E(0),乘幂后状态密钥"rc3"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成用扩展变量加密方式加密后状态密钥"ra3"的、前状态"b"相对应的交换数据。
如图17(C)所示,在生成第3个字符的前状态"c"的交换数据的场合,服务器30,对第3个字符的密码排列V1的第1要素E(1),乘幂后状态密钥"rc3"。还有,服务器30,对第3个字符的密码排列V1的第2要素E(0),乘幂后状态密钥"rc3"。继续,服务器30,将他们加法演算并合成。由此,服务器30,能生成与用扩展变量加密方式加密后状态密钥"rc3"的、前状态"c"相对应的交换数据。
图18表示与从服务器30向客户端20发送的第1个字符到第3个字符的各个对应加密的交换数据、和加密的最终状态数据的一例。
服务器30生成通过与第1个字符的前状态a相对应的前状态密钥"ra0"加密第1个字符的前状态"a"的交换数据的密码文(Enc(ra0,E(ra1))。还有,服务器30生成通过与第1个字符的前状态"b"相对应的前状态密钥"rb0"加密第1个字符的前状态"b "的交换数据的密码文(Enc(rb0,E(ra1))。还有,服务器30生成通过与第1个字符的前状态"c"相对应的前状态密钥"rc0"加密第1个字符的前状态"c"的交换数据的密码文(Enc(rc0,E(rc1))。
并且,服务器30,向客户端20发送这样的密码文。在这个场合,服务器30,将与各个前状态相对应的加密的多个交换数据例如随机地排序,向客户端20发送。再者,服务器30预先生成第1个字符的前状态密钥ra0、rb0、rc0。还有,服务器30,也可在第1个字符的处理中,生成仅与初期状态"a"相对应的交换数据。
服务器30生成通过与第2个字符的前状态a相对应的前状态密钥"ra1"加密第2个字符的前状态"a"的交换数据的密码文(Enc(ra1,E(rb2))。还有,服务器30生成通过与第2个字符的前状态"b "相对应的前状态密钥"rb1"加密第2个字符的前状态"b "的交换数据的密码文(Enc(rb1,E(rc2))。还有,服务器30生成通过与第2个字符的前状态"c"相对应的前状态密钥"rc1"加密第2个字符的前状态"c"的交换数据的密码文(Enc(rc1,E(rc2))。
并且,服务器30,向客户端20发送这样的密码文。在这个场合,服务器30,将与各个前状态相对应的加密的多个交换数据例如随机地排列,向客户端20发送。再者,服务器30的第2个字符的前状态密钥ra1、rb1、rc1是在第1个字符中生成的后状态密钥。
服务器30生成通过与第3个字符的前状态a相对应的前状态密钥"ra2"加密第3个字符的前状态"a"的交换数据的密码文(Enc(ra2,E(ra3))。还有,服务器30生成通过与第3个字符的前状态"b"相对应的前状态密钥"rb2"加密第3个字符的前状态"b"的交换数据的密码文(Enc(rb2,E(ra3))。还有,服务器30生成通过与第3个字符的前状态"c"相对应的前状态密钥"rc2"加密第3个字符的前状态"c"的交换数据的密码文(Enc(rc2,E(rc3))。
并且,服务器30,向客户端20发送这样的密码文。在这个场合,服务器30,将与各个前状态相对应的加密的多个交换数据例如随机地排列,向客户端20发送。再者,服务器30的第3个字符的前状态密钥ra2、rb2、rc2是在第2个字符中生成的后状态密钥。
还有,服务器30生成通过与状态"a"相对应第3个字符的后状态密钥"ra3"加密表示状态"a"是正确的最终状态的值(accept)的密码(Enc(ra3,accept))。还有,服务器30生成通过与状态"b "相对应第3个字符的后状态密钥"rb3"加密表示状态"b"不是正确的最终状态的值(reject)的密码(Enc(rb3,reject))。还有,服务器30生成通过与状态"c"相对应第3个字符的后状态密钥"rc3"加密表示状态"c"不是正确的最终状态的值(reject)的密码(Enc(rc3,reject))。
并且,服务器30,向客户端20发送这样的密码。在这个场合,服务器30,将与各状态相对应的加密的最终状态数据例如随机地排列,向客户端20发送。
图19表示在客户端20实行的解码处理的顺序的一例。
首先,客户端20,通过与第1个字符相对应的前状态密钥解密与第1个字符相对应的加密的多个交换数据的各个。再者,客户端20,作为与第1个字符相对应的前状态密钥,从服务器30预先接收与初期状态"a"相对应的1个前状态密钥ra0。因此,客户端20,通过对与第1个字符相对应的加密的多个交换数据的各个进行解码处理,能解码与状态"a"相对应的交换数据(E(ra1))。再者,客户端20,在仅从服务器30发送与初期状态相对应的加密的交换数据的场合,仅对这样的1个交换数据实行解码处理。
继续,客户端20,通过使用按照在第1个字符的密码排列的生成中使用密码密钥的密钥解密能解密的交换数据(E(ra1))。由此,客户端20,能解密在初期状态"a"输入字符"0"的场合迁移的后状态"a"相对应的后状态密钥"ra1"。
继续,客户端20,通过使用与第2个字相对应的前状态密钥解密与第2个字相对应的加密的多个交换数据的各个。再者,与第2个字相对应的前状态密钥是从第1个字符的交换数据解密的后状态密钥"ra1"。因此,客户端20,通过对与第2个字相对应的加密的多个交换数据的各个进行解密处理,能解密与状态"a"相对应的交换数据(E(rb2))。
继续,客户端20,通过使用按照在第2个字的密码排列的生成中使用的密码密钥的密钥解密能解密的交换数据(E(rb2))。由此,客户端20,在第2个字符中,能解密在状态"a"输入字符"1″的场合迁移的后状态"b"相对应的后状态密钥"rb2"。
继续,客户端20,通过与第3个字符相对应的前状态密钥解密与第3个字符相对应的加密的多个交换数据的各个。再者,与第3个字符相对应的前状态密钥是从第2个字的交换数据解密的后状态密钥"rb2"。因此,客户端20,通过对与第3个字符相对应的加密的多个交换数据的各个进行解密处理,能解密与状态"b"相对应的交换数据(E(ra3))。
继续,客户端20,通过使用按照在第3个字符的密码排列的生成的密码密钥的密钥能解密的交换数据(E(ra3))。由此,客户端20,在第3个字符中,能解密在状态"b"输入字符"0"的场合迁移的后状态"a"相对应的后状态密钥"ra3"。
继续,客户端20,通过与第3个字符相对应解密的后状态密钥"rc3"解密与多个状态的各个对应的加密的最终状态数据的各个。由此,客户端20,能从与状态"a"相对应的最终状态数据,解密表示受理的值"accept"。
客户端20及服务器30,通过如以上地实行处理,在服务器30中不公开向客户端20输入的字符串,并且,在客户端20中不公开服务器30持有的自动机,能认证字符串是否被自动机受理。
图20表示本实施方式涉及的计算机1900的硬件构成的一例。本实施方式涉及的计算机1900包括:通过主机控制器2082互相连接的CPU2000、RAM2020、图形控制器2075、及具有显示装置2080的CPU外围部、通过输入输出控制器2084与主机控制器2082连接的通信接口2030、硬盘驱动器2040、及具有CD-ROM驱动器2060的输入输出部、与输入输出控制器2084连接的ROM2010、软盘驱动器2050、和具有有输入输出芯片2070的遗留输入输出部。
主机控制器2082连接至RAM2020、以高传输速率访问RAM2020的CPU2000及图形控制器2075。CPU2000基于在ROM2010及RAM2020容纳的程序工作,进行各部分的控制。图形控制器2075取得CPU2000等在RAM2020中设置的帧缓冲上生成的图像数据,在显示装置2080上显示。代替这个,图形控制器2075也可以在内部包括容纳CPU2000等生成的图像数据的帧缓冲。
输入输出控制器2084连接主机控制器2082、作为相对快的输入输出设备的通信接口2030、硬盘驱动器2040、CD-ROM驱动器2060。通信接口2030经由网络与其他的装置通信。硬盘驱动器2040容纳计算机1900中的CPU2000使用的程序及数据。CD-ROM驱动器2060从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起作用的程序包括:字符输入模块、字符输入模块、排列化模块、第1加密模块、客户端侧发送模块、客户端侧接收模块、客户端侧密钥存储模块、第2解密模块、第1解密模块和判断模块。这些程序或模块由CPU2000等运行,使计算机1900分别作为字符输入部32、排列化部34、第1加密部36、客户端侧发送部38、客户端侧接收部40、客户端侧密钥存储部42、第2解密部44、第1解密部46、和判定部48。
这些程序中记述的信息处理作为,通过向计算机1900读入,使软件和上述的各种的硬件资源协作的具体的部件的字符输入部32、排列化部34、第1加密部36、客户端侧发送部38、客户端侧接收部40、客户端侧密钥存储部42、第2解密部44、第1解密部46、和判定部48起作用。并且,通过这些具体的部件,根据本实施方式的计算机1900的使用目的实现信息的演算或加工,构建按照使用目的的特有的客户端20。
计算机1900中安装的使计算机1900作为服务器30起作用的程序包括:服务器侧接收模块、自动机存储模块、密钥生成模块、服务器侧密钥存储模块、交换数据生成模块、第2加密模块、和服务器侧发送模块。这些程序或模块使CPU2000等运行,使计算机1900作为服务器侧接收部52、自动机存储部54、密钥生成部56、服务器侧密钥存储部58、交换数据生成部60、第2加密部62、和服务器侧发送部64分别起作用。
这些程序中记述的信息处理作为,通过向计算机1900读入,使软件和上述的各种的硬件资源协作的具体的部件的服务器侧接收部52、自动机存储部54、密钥生成部56、服务器侧密钥存储部58、交换数据生成部60、第2加密部62、和服务器侧发送部64起作用。并且,通过这些具体的部件,根据本实施方式的计算机1900的使用目的实现消息的演算或加工,构建按照使用目的的特有的服务器30。
作为一例,在计算机1900和外部的装置等之间进行通信的场合,CPU2000执行在RAM2020上装载的通信程序,基于在通信程序中记述的处理内容,对通信接口2030指示通信处理。通信接口2030接受CPU2000的控制,读出在RAM2020、硬盘驱动器2040、软盘2090、或CD-ROM2095等的存储装置上设置的发送缓冲区域等中存储的发送数据,并向网络发送,或,向存储装置上设置的接收缓冲区域等写入从网络接收的接收数据。这样,通信接口2030也可以通过DMA(直接存储器访问)方式在存储装置之间转送接收数据,取而代之,也可以通过CPU2000从转送源的存储装置或通信接口2030读出数据,向转送目的地的通信接口2030或存储装置写入数据来转送接收数据。
还有,CPU2000从硬盘驱动器2040、CD-ROM驱动器2060(CD-ROM2095)、软盘驱动器2050(软盘2090)等的外部存储器容纳的文件或数据库等中通过DMA转送等向RAM2020读入全部或需要的部分,对RAM2020上的数据进行各种的处理。并且,CPU2000通过DMA转送等向外部存储器写回结束处理的数据。在这样的处理中,由于RAM2020看作临时地保持外部存储器的内容,所以在本实施方式中将RAM2020及外部存储器等统称为存储器、存储部、或存储装置等。本实施方式的各种的程序、数据、表、数据库等的各种的消息容纳在这样的存储装置上,成为消息处理的对象。再者,CPU2000在缓存中保持RAM2020的一部分,在缓存上也能进行读写。在这样的方式中,由于缓存承担RAM2020的功能的一部分,所以在本实施方式中,除了区别示出的场合,缓存还包括在RAM2020、存储器、和/或存储装置中。
还有,CPU2000对从RAM2020读出的数据进行各种处理,包括:根据程序的命令列进行指定,本实施方式中记载的各种的演算、信息的加工、条件判断、信息的检索/置换等,并向RAM2020写回。例如,CPU2000,在进行条件判断的场合,判断本实施方式表示的各种的变量相比于其他的变量或常数,是否满足大、小、以上、以下、相等等的条件,在条件成立的场合(或是不成立的场合),向不同的命令列进入分支,或调用不同子程序。
还有,CPU2000能检索存储装置内的文件或数据库等中容纳的信息。例如,在对于第1属性的属性值来说,第2属性的属性值分别对应附加的多个项目容纳于存储装置的场合,CPU2000能检索从存储装置容纳的多个项目中与第1属性的属性值指定的条件一致的项目,通过读出在那个项目容纳的第2属性的属性值,能得到与满足预定的条件的第1属性对应附加的第2属性的属性值。
以上所示的程序或模块也可以在外部的记录介质中容纳。作为记录介质,除了软盘2090、CD-ROM2095之外,能采用DVD或CD等的光学记录介质、MO等的光磁记录介质、带介质、IC卡等的半导体存储器等。还有,也可以将与专用通信网络或因特网连接的服务器系统中设置的硬盘或RAM等的存储装置作为记录介质来使用,经由网络向计算机1900提供程序。
以上,用实施方式说明了本发明,但是,本发明的技术的范围不限于上述实施方式记载的范围。本领域技术人员可以理解,可以对上述实施方式进行多种变更或改进。进行这样的变更或改进的方式同样包含于本发明的技术范围内,从权利要求的范围的记载中是明显的。
应注意,权利要求的范围、说明书、和附图中表示的装置、系统、程序、和方法的工作、次序、步骤、和阶段等的各处理的执行顺序,除非明确指出“更前”,“之前”等,否则,不限于在随后的处理中使用前面的处理的输出,能以任意的顺序实现。关于权利要求的范围、说明书、和附图中的工作流程,方便地采用“首先、”、“其次”等说明了,但并非意味这必需按这个顺序实施。
【符号的说明】
10  认证系统
20  客户端
30  服务器
32  字符输入部
34  排列化部
36  第1加密部
38  客户端侧发送部
40  客户端侧接收部
42  客户端侧密钥存储部
44  第2解密部
46  第1解密部
48  判定部
52  服务器侧接收部
54  自动机存储部
56  密钥生成部
58  服务器侧密钥存储部
60    交换数据生成部
62    第2加密部
64    服务器侧发送部
1900  计算机
2000  CPU
2010  ROM
2020  RAM
2030  通信接口
2040  硬盘驱动器
2050  软盘驱动器
2060  CD-ROM驱动器
2070  输入输出芯片
2075  图形控制器
2080  显示装置
2082  主机控制器
2084  输入输出控制器
2090  软盘
2095  CD-ROM

Claims (18)

1.一种服务器,其特征在于,上述服务器能够连接至接受字符串的输入的客户端,上述服务器具有按照接收的字符进行状态迁移的自动机,用于判定上述自动机是否根据上述字符串迁移至最终状态;
关于上述字符串中包括的各字符,
从上述客户端接收与上述字符相对应的要素由具有同构性的第1加密方式加密非单位元的值、与上述字符相对应的要素以外的要素由上述第1加密方式加密单位元的值这样的密码排列;
按照上述密码排列的接收,与上述自动机的多个前状态的各个对应,基于上述密码排列生成由上述第1加密方式加密后状态密钥的交换数据;
用对应的前状态密钥加密交换数据,向上述客户端发送。
2.如权利要求1所述的服务器,其特征在于,
上述客户端从上述服务器接收与上述自动机的多个前状态的各个对应的加密的多个上述交换数据,由该客户端存储的前状态密钥及上述第1加密方式解密加密的上述多个交换数据的各个,将能解密的1个后状态密钥作为用于解密与随后的字符对应从上述服务器接收的交换数据的前状态密钥。
3.如权利要求2所述的服务器,其特征在于,
上述第1加密方式是即使在加密相同的明文的场合对每个加密处理来说密码文不同的方式。
4.如权利要求3所述的服务器,其特征在于,
上述第1加密方式是具有加法同构性的加密方式。
5.如权利要求4所述的服务器,其特征在于,
上述第1加密方式是扩展变量方式。
6.如权利要求3所述的服务器,其特征在于,
上述第1加密方式是具有乘法同构性的加密方式。
7.如权利要求3所述的服务器,其特征在于,
上述后状态密钥是向上述自动机的多个后状态的各个对应附加的随机数。
8.如权利要求7所述的服务器,其特征在于,
上述服务器包括:
从上述客户端上述密码排列的接收部;
交换数据生成部,与上述自动机的多个前状态的各个对应,对接收的上述密码排列的各要素的各个,乘幂从该前状态按照输入该要素指定的字符而迁移的后状态相对应的上述后状态密钥,通过由与上述第1加密方式相对应的演算结合乘幂了上述后状态密钥的多个要素,生成由上述第1加密方式加密后状态密钥的交换数据。
9.如权利要求8所述的服务器,其特征在于,
上述服务器包括:
密钥生成部,与上述字符串的各字符对应,生成与上述自动机的多个后状态的各个对应的后状态密钥;
服务器侧密钥存储部,将与多个后状态的各个对应附加的上述后状态密钥,作为输入随后的字符的场合的多个前状态的各个对应的多个前状态密钥存储;
加密部,将与上述自动机的多个前状态的各个对应生成的交换数据的各个,由对应的前状态密钥加密。
10.如权利要求8所述的服务器,其特征在于,
上述客户端还包括:
客户端侧密钥存储部,将解密的上述后状态密钥,作为与随后的字符对应用于解密从上述服务器接收的上述多个交换数据的上述前状态密钥存储。
11.如权利要求8所述的服务器,其特征在于,
上述交换数据生成部,在从前状态迁移的后状态是上述自动机的正确的最终状态的场合,对上述密码排列的各要素的各个,代替上述后状态密钥乘幂意味着受理的值;
上述客户端还包括:
判定部,在从上述交换数据解密意味着上述受理的值的场合,通过上述字符串判定上述自动机迁移至正确的最终状态。
12.如权利要求1所述的服务器,其特征在于,
上述客户端将与上述字符串中包括的多个字符的各个对应的多个上述密码排列并排,向上述服务器发送。
13.如权利要求12所述的服务器,其特征在于,
上述服务器,将与上述自动机的多个前状态的各个对应的多个交换数据,关于上述多个字符的各个并排,向上述客户端发送;
上述客户端,将关于上述多个字符的各个的上述多个交换数据,从与前端的字符相对应的上述多个交换数据依次解密。
14.如权利要求1所述的服务器,其特征在于,
上述服务器,按照上述密码排列的接收,将与上述自动机的多个前状态的各个对应加密的多个交换数据,对每个上述密码排列排序发送。
15.一种客户端,其特征在于,能够连接至具有按照接收的字符进行状态迁移的自动机的服务器,上述客户端用于接受字符串的输入,判定上述自动机是否根据上述字符串迁移至最终状态;
关于上述字符串中包括的各字符,
向上述服务器发送与上述字符相对应的要素由具有同构性的第1加密方式加密非单位元的值、与上述字符相对应的要素以外的要素由具有上述第1加密方式加密单位元的值这样的密码排列;
按照上述密码排列的接收,上述自动机的多个前状态的各个对应,基于上述密码排列生成由上述第1加密方式加密后状态密钥的交换数据;
从上述服务器接收用对应的前状态密钥加密交换数据的密码文。
16.一种信息处理方法,其特征在于,用于能够连接至接受字符串的输入的客户端的服务器,上述服务器具有按照接收的字符进行状态迁移的自动机,用于判定上述自动机是否根据上述字符串迁移至最终状态;
关于上述字符串中包括的各字符,
从上述客户端接收与上述字符相对应的要素由具有同构性的第1加密方式加密非单位元的值、与上述字符相对应的要素以外的要素由上述第1加密方式加密单位元的值这样的密码排列;
按照上述密码排列的接收,与上述自动机的多个前状态的各个对应,基于上述密码排列生成由上述第1加密方式加密后状态密钥的交换数据;
用对应的前状态密钥加密交换数据,向上述客户端发送。
17.一种程序,其特征在于,用于使计算机作为如权利要求1所述的服务器起作用。
18.一种程序,其特征在于,用于使计算机作为如权利要求15所述的客户端起作用。
CN201210479306.0A 2011-12-16 2012-11-22 认证字符串是否被自动机受理的系统 Active CN103164660B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011276303A JP5843261B2 (ja) 2011-12-16 2011-12-16 文字列がオートマトンに受理されるか否かを認証するシステム
JP276303/2011 2011-12-16

Publications (2)

Publication Number Publication Date
CN103164660A true CN103164660A (zh) 2013-06-19
CN103164660B CN103164660B (zh) 2016-05-18

Family

ID=48522284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210479306.0A Active CN103164660B (zh) 2011-12-16 2012-11-22 认证字符串是否被自动机受理的系统

Country Status (5)

Country Link
US (1) US8891760B2 (zh)
JP (1) JP5843261B2 (zh)
CN (1) CN103164660B (zh)
DE (1) DE102012222034A1 (zh)
GB (1) GB2498063B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6244728B2 (ja) * 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム
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
JP6349841B2 (ja) * 2014-03-25 2018-07-04 富士通株式会社 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
WO2016038665A1 (ja) * 2014-09-08 2016-03-17 パスロジ株式会社 認証システム、ならびに、リマインダ端末
CN105763525A (zh) * 2014-12-19 2016-07-13 北大方正集团有限公司 一种识别码生成方法和识别码解密方法及装置
US11165563B2 (en) 2017-06-15 2021-11-02 Intelligens Technologiak Kft. Symmetric key stream cipher cryptographic method and device
CN112637233B (zh) * 2020-12-29 2022-12-13 深圳大学 一种基于多用户数据的安全求均值方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1287665A (zh) * 1998-11-09 2001-03-14 松下电器产业株式会社 版权保护系统中的数据转换装置和方法
WO2008135951A1 (en) * 2007-05-08 2008-11-13 Koninklijke Philips Electronics N.V. Method and a system for performing an oblivious query issued by a first party on a string provided by a second party
CN102231181A (zh) * 2009-10-22 2011-11-02 鸿富锦精密工业(深圳)有限公司 用于文件加密的计算机系统及文件加密方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2892847B1 (fr) * 2005-11-03 2007-12-21 St Microelectronics Sa Procede de memorisation de donnees dans un circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et citcuit de memorisation correspondant.
US7953895B1 (en) * 2007-03-07 2011-05-31 Juniper Networks, Inc. Application identification
EP2056221A1 (en) 2007-10-30 2009-05-06 Mitsubishi Electric Corporation Split state machines for matching
US8433892B2 (en) * 2011-03-30 2013-04-30 Mitsubishi Electric Research Laboratories, Inc. Privacy-preserving probabilistic inference based on hidden Markov models

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1287665A (zh) * 1998-11-09 2001-03-14 松下电器产业株式会社 版权保护系统中的数据转换装置和方法
WO2008135951A1 (en) * 2007-05-08 2008-11-13 Koninklijke Philips Electronics N.V. Method and a system for performing an oblivious query issued by a first party on a string provided by a second party
CN102231181A (zh) * 2009-10-22 2011-11-02 鸿富锦精密工业(深圳)有限公司 用于文件加密的计算机系统及文件加密方法

Also Published As

Publication number Publication date
US8891760B2 (en) 2014-11-18
GB2498063A (en) 2013-07-03
JP2013128175A (ja) 2013-06-27
GB2498063B (en) 2013-11-13
US20130170638A1 (en) 2013-07-04
DE102012222034A1 (de) 2013-06-20
JP5843261B2 (ja) 2016-01-13
CN103164660B (zh) 2016-05-18

Similar Documents

Publication Publication Date Title
CN103164660A (zh) 认证字符串是否被自动机受理的系统
CN112929172B (zh) 基于密钥库动态加密数据的系统、方法及装置
JP5846577B2 (ja) クライアントの状態が予め定められた状態に一致するかを検出するシステム
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
CN102224704A (zh) 内容解密处理装置、内容解密处理方法及集成电路
CN1734475B (zh) 半导体集成电路和信息处理设备
US20090141889A1 (en) Data processing apparatus
CN103345609A (zh) 一种文本加解密方法和加解密设备
CN104471581A (zh) 利用媒体安全控制器保护媒体项目
CN108898005A (zh) 一种硬盘识别的方法、系统、设备及计算机可读存储介质
CN102123027A (zh) 信息安全处理方法和移动终端
US20100061550A1 (en) Data processing apparatus
CN109522758B (zh) 硬盘数据管理方法及硬盘
CN104067556A (zh) 用于确定自动机是否已经接受了字符串的系统
CN110312054B (zh) 图像的加解密方法、及相关装置、存储介质
CN103780608A (zh) 一种基于可编程门阵列芯片的sm4算法控制方法
CN101729242A (zh) 对称分组密码的生成方法及其装置
CN103346878A (zh) 一种基于fpga高速串行io的保密通信方法
CN100589378C (zh) 一种为身份认证提供数据加密的装置和方法
CN101539890B (zh) 数据处理系统、密码管理方法及数据读取与写入方法
CN101536401B (zh) 信息处理设备
CN117171202A (zh) 一种数据查询方法及装置
CN101883357A (zh) 一种终端与智能卡之间的相互认证方法、装置及系统
CN103166951A (zh) 通过遗失通信发送消息的系统
CN101630371A (zh) 远程实现ic卡业务控制的方法及系统和ic卡读写器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant