CN102263639B - 认证装置、认证方法和签名生成装置 - Google Patents

认证装置、认证方法和签名生成装置 Download PDF

Info

Publication number
CN102263639B
CN102263639B CN201110145045.4A CN201110145045A CN102263639B CN 102263639 B CN102263639 B CN 102263639B CN 201110145045 A CN201110145045 A CN 201110145045A CN 102263639 B CN102263639 B CN 102263639B
Authority
CN
China
Prior art keywords
message
algorithm
verifier
validation mode
certifier
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
CN201110145045.4A
Other languages
English (en)
Other versions
CN102263639A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN102263639A publication Critical patent/CN102263639A/zh
Application granted granted Critical
Publication of CN102263639B publication Critical patent/CN102263639B/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
    • 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
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • 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/3247Cryptographic 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 involving digital signatures
    • H04L9/3255Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了认证装置、认证方法、程序和签名生成装置。认证装置包括:密钥设定单元,用于将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收关于由验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式的信息;以及响应发送单元,用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。

Description

认证装置、认证方法和签名生成装置
技术领域
本发明涉及认证装置、认证方法、程序和签名生成装置。
背景技术
随着信息处理技术和通信技术的迅速发展,官方和私人文档的数字化正在迅速进步。因此,许多个人和公司对于电子文档的安全管理很感兴趣。随着该兴趣的增长,对抗诸如电子文档的窃听和伪造之类的破坏行为的安全性已在许多领域中被热烈地讨论。对抗对电子文档的窃听的安全性例如是通过对电子文档加密来确保的。另外,对抗对电子文档的伪造的安全性例如是通过使用数字签名来确保的。然而,加密和数字签名必须是充分抗破坏的。
数字签名用于指定电子文档的作者。因此,数字签名应当只能够由电子文档的作者生成。如果恶意的第三方能够生成相同的数字签名,则这种第三方就能够假扮电子文档的作者。即,电子文档被该恶意第三方伪造。关于防止这种伪造的数字签名的安全性,已经表达了各种意见。作为当前广泛使用的数字签名方案,例如已知使用RSA签名方案和DSA签名方案的方案。
RSA签名方案以“大合数的素因数分解(prime factorisation)的困难性(以下称为素因数分解问题)”作为安全性的基础。另外,DSA签名方案以“解答离散对数问题的困难性”作为安全性的基础。这些基础基于的是利用经典计算机高效地解答素因数分解问题和离散对数问题的算法不存在。即,上述困难性意味着经典计算机的计算上的困难性。然而,据说当使用量子计算机时,可以高效地计算素因数分解问题和离散对数问题的解答。
与RSA签名方案和DSA签名方案类似,许多当前使用的数字签名方案和公开密钥认证方案也以素因数分解问题或离散对数问题的困难性作为安全性的基础。从而,如果量子计算机被投入实际使用,则这种数字签名方案和公开密钥认证方案的安全性将得不到确保。因此,需要新的数字签名方案和公开密钥认证方案,这些新的方案以与诸如素因数分解问题和离散对数问题之类的能够容易地用量子计算机解答的问题不同的问题作为安全性的基础。作为不容易用量子计算机解答的问题,例如有代数曲面上的片段找出(section-finding)问题。以代数曲面上的片段找出问题为安全性基础的数字签名(以下称之为ASS-CC方案)在Yuichi Komano,Koichiro Akiyama,Yochikazu Hanatani,and HideyukiMiyake,ASS-CC:Provably Secure Algebraic Surface Signature Scheme,The 2010Symposium on Cryptography and Information Security Miyazaki,Japan,Jan.19-22,2010中公开。
发明内容
然而,作为本申请的发明人的考查结果,已经发现ASS-CC方案的安全性存在缺陷。因此,基于ASS-CC方案的数字签名方案和采用此方案的公开密钥认证方案由于安全性问题而没有被实际使用。考虑到上述情况,希望提供一种新颖且改进的认证装置、认证方法、程序和签名生成装置,它们能够实现以代数曲面上的片段找出问题为安全性基础并且安全性得到确认的公开密钥认证方案。另外,作为一个应用版本,也可以实现数字签名方案。
根据本发明的一个实施例,提供了一种认证装置,其包括:密钥设定单元,用于将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收关于由验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式的信息;以及响应发送单元,用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使 能计算私密密钥ui的信息。
认证装置可被配置成使得,如果当执行由消息发送单元发送一个或多个消息c的第一步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第二步骤和由响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤时,验证者对于所有的响应信息都成功执行了验证,则认证成功。
认证装置可被配置成使得,执行由消息发送单元发送一个或多个消息c的第一步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第二步骤和由响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤的处理被重复,并且如果当执行第一步骤至第三步骤预定次数时,验证者每次对于所有的响应信息都成功执行了验证,则认证成功。
在消息c=(c1,...,cm)的情况下,消息发送单元可利用单向函数H来计算新的消息c’=H(c),并将消息c’发送给验证者,并且响应发送单元可将消息c的一元素与响应信息一起发送,其中验证者即使使用该响应信息也不能恢复该元素。
根据本发明的另一实施例,提供了一种认证装置,其包括:消息接收单元,用于从证明者接收消息c;验证模式选择单元,用于针对一个消息c,从k(k≥3)个验证模式中选择一个验证模式;验证模式发送单元,用于把关于由验证模式选择单元选择的验证模式的信息发送给证明者;响应接收单元,用于从证明者接收k类响应信息之中的与由验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及验证单元,用于利用由消息接收单元接收的消息c和由响应接收单元接收的响应信息来验证证明者的合法性。多次多项式ui(t)(i=1至n-1)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多项式f被设定成公开密钥。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。
根据本发明的另一实施例,提供了一种认证装置,其包括:密钥设定单元,用于将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满 足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;消息发送单元,用于将消息c发送给验证者;答复接收单元,用于从验证者接收答复α;多项式生成单元,用于利用由答复接收单元接收的答复α来生成要用于对消息c的验证的多项式f”;多项式发送单元,用于把由多项式生成单元生成的多项式f”发送给验证者;验证模式接收单元,用于接收关于由验证者针对一个消息c从k(k≥2)个验证模式中选择的一个验证模式的信息;以及响应发送单元,用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui的信息。
认证装置可被配置成使得,如果当执行由消息发送单元发送一个或多个消息c的第一步骤、由答复接收单元对于每个消息c接收答复α的第二步骤、由多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f”并且由多项式发送单元发送该多项式f”的第三步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第四步骤以及由响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤时,验证者对于所有的响应信息都成功执行了验证,则认证成功。
认证装置可被配置成使得,执行由消息发送单元发送一个或多个消息c的第一步骤、由答复接收单元对于每个消息c接收答复α的第二步骤、由多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f”并且由多项式发送单元发送该多项式f”的第三步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第四步骤以及由响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤的处理被重复,并且如果当执行第一步骤至第五步骤预定次数时,验证者每次对于所有的响应信息都成功执行了验证,则认证成功。
根据本发明的另一实施例,提供了一种认证装置,其包括:消息接收单元,用于从证明者接收消息c;答复发送单元,用于将答复α发送给证明者;多项式接收单元,用于接收多项式f”,该多项式f”是由证明者利用由答复发送单元发送的答复α生成的并且用于对消息c的验证;验证模式 选择单元,用于针对一个消息c,从k(k≥2)个验证模式中选择一个验证模式;验证模式发送单元,用于向证明者发送关于由验证模式选择单元选择的验证模式的信息;响应接收单元,用于从证明者接收k类响应信息之中的与由验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及验证单元,用于利用由消息接收单元接收的消息c、由多项式接收单元接收的多项式f”以及由响应接收单元接收的响应信息来验证证明者的合法性。多次多项式ui(t)(i=1至n-1)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多项式f被设定成公开密钥。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui的信息。
根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤:将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;将消息c发送给验证者;接收关于由验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式的信息;以及向验证者发送k类响应信息之中的与在接收步骤中接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。
根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤:从证明者接收消息c;针对一个消息c,从k(k≥3)个验证模式中选择一个验证模式;把关于在选择步骤中选择的验证模式的信息发送给证明者;从证明者接收k类响应信息之中的与在发送步骤中发送的关于验证模式的信息相对应的响应信息;以及利用在接收消息c的步骤中接收的消息c和在接收响应信息的步骤中接收的响应信息来验证证明者的合法性。多次多项式ui(t)(i=1至n-1)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多项式f被设定成公开密钥。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。
根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤: 将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;将消息c发送给验证者;从验证者接收答复α;利用在接收答复α的步骤中接收的答复α来生成要用于对消息c的验证的多项式f”;把在生成步骤中生成的多项式f”发送给验证者;接收关于由验证者针对一个消息c从k(k≥2)个验证模式中选择的一个验证模式的信息;以及向验证者发送k类响应信息之中的与在接收关于验证模式的信息的步骤中接收的关于验证模式的信息相对应的响应信息。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui的信息。
根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤:从证明者接收消息c;将答复α发送给证明者;接收多项式f”,该多项式f”是由证明者利用在发送答复α的步骤中发送的答复α生成的并且用于对消息c的验证;针对一个消息c,从k(k≥2)个验证模式中选择一个验证模式;向证明者发送关于在选择步骤中选择的验证模式的信息;从证明者接收k类响应信息之中的与在发送关于验证模式的信息的步骤中发送的关于验证模式的信息相对应的响应信息;以及利用在接收消息c的步骤中接收的消息c、在接收多项式f”的步骤中接收的多项式f”以及在接收响应信息的步骤中接收的响应信息来验证证明者的合法性。多次多项式ui(t)(i=1至n-1)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多项式f被设定成公开密钥。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui的信息。
根据本发明的另一实施例,提供了一种程序,用于使得计算机实现:密钥设定功能,将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;消息发送功能,将消息c发送给验证者;验证模式接收功能,接收关于由验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式的信息;以及响应发送功能,向验证者发送k类响应信息之中的与由验证模式接收功能 接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。根据本发明的另一实施例,提供了一种记录该程序的计算机可读记录介质。
根据本发明的另一实施例,提供了一种签名生成装置,其包括:密钥设定单元,用于将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;消息生成单元,用于基于多次多项式ui(t)生成N个消息c;验证模式选择单元,用于基于通过将文档M和消息c应用到单向函数而获得的信息来从kN(k≥3)个验证模式中选择验证模式;以及签名生成单元,用于根据由验证模式选择单元选择的验证模式,生成将通过使用消息c和文档M的验证的数字签名σ。数字签名σ是在利用与(k-1)N+1个验证模式相对应的数字签名σ执行的所有验证都成功的情况下使能计算私密密钥ui的信息。
根据以上所述的本发明的实施例,可以实现以代数曲面上的片段找出问题作为安全性基础并且安全性得到确认的公开密钥认证方案。另外,作为一种应用版本,也可以实现以代数曲面上的片段找出问题作为安全性基础并且安全性得到确认的数字签名方案。
附图说明
图1是用于描述公开密钥认证方案的算法结构的说明图;
图2是用于描述数字签名方案的算法结构的说明图;
图3是用于描述n遍公开密钥认证方案的说明图;
图4是用于描述用于ASS-CC-IP公开密钥认证方案的算法的说明图;
图5是用于描述对抗用于ASS-CC-IP公开密钥认证方案的算法的伪造算法的说明图;
图6是用于描述根据本发明第一实施例(3遍)的用于公开密钥认证方案的算法的说明图;
图7是用于描述根据该实施例的用于公开密钥认证方案的扩展算法的说明图;
图8是用于描述根据该实施例的用于公开密钥认证方案的并行算法的说明图;
图9是用于描述根据该实施例的用于公开密钥认证方案的非交互型算法的说明图;
图10是用于描述根据该实施例的用于公开密钥认证方案的具体算法的说明图;
图11是用于描述根据本发明第二实施例(5遍)的用于公开密钥认证方案的算法的说明图;
图12是用于描述根据该实施例的用于公开密钥认证方案的扩展算法的说明图;
图13是用于描述根据该实施例的用于公开密钥认证方案的并行算法的说明图;
图14是用于描述根据该实施例的用于公开密钥认证方案的扩展算法的并行化的说明图;
图15是用于描述根据该实施例的用于公开密钥认证方案的非交互型算法的说明图;
图16是用于描述根据该实施例的用于公开密钥认证方案的具体算法的说明图;
图17是用于描述能够执行根据本发明每个实施例的算法的信息处理装置的示例性硬件配置的说明图;并且
图18是比较根据本发明第一和第二实施例的公开密钥认证方案的效率的图表。
具体实施方式
下面,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,用相同的标号来标示具有基本相同的功能和结构的结构元件,并且省略对这些结构元件的重复说明。
[描述的流程]
这里将简要介绍与下文中描述的本发明的实施例有关的描述的流程。首先,将参考图1描述公开密钥认证方案的算法结构。接下来,将参考图2描述数字签名方案的算法结构。然后,将参考图3描述n遍(n-pass)公开密钥认证方案。然后,将参考图4描述ASS-CC-IP公开密钥认证方案的算法。另外,将参考图5描述对抗用于ASS-CC-IP公开密钥认证方案的算法的伪造算法。
接下来,将参考图6描述根据本发明第一实施例(3遍)的用于公开密钥认证方案的算法。然后,将参考图7描述根据该实施例的用于公开密钥认证方案的扩展算法。然后,将参考图8描述根据该实施例的用于公开密钥认证方案的并行算法。然后,将参考图9描述根据该实施例的用于公开密钥认证方案的非交互型算法。然后,将参考图10描述根据该实施例的用于公开密钥认证方案的具体算法。
接下来,将参考图11描述根据本发明第二实施例(5遍)的用于公开密钥认证方案的算法。然后,将参考图12描述根据该实施例的用于公开密钥认证方案的扩展算法。然后,将参考图13和14描述根据该实施例的用于公开密钥认证方案的并行算法。然后,将参考图15描述根据该实施例的用于公开密钥认证方案的非交互型算法。然后,将参考图16描述根据该实施例的用于公开密钥认证方案的具体算法。
接下来,将参考图17描述能够执行本发明的第一和第二实施例的每个算法的信息处理装置的示例性硬件配置。最后,将总结本发明的技术思想并且简要描述这些技术思想所获得的效果。
(描述项目)
1:介绍
1-1:公开密钥认证方案的算法结构
1-2:数字签名方案的算法结构
1-3:n遍公开密钥认证方案
1-4:ASS-CC-IP公开密钥认证方案
1-4-1:ASS-CC数字签名方案
1-4-2:ASS-CC-IP公开密钥认证方案
2:第一实施例
2-1:用于公开密钥认证方案的算法
2-2:扩展算法
2-3:并行算法
2-4:非交互型算法
2-5:修改成数字签名方案
2-6:具体示例
3:第二实施例
3-1:用于公开密钥认证方案的算法
3-2:扩展算法
3-3:并行算法
3-4:非交互型算法
3-5:修改成数字签名方案
3-6:具体示例
4:示例性硬件配置
5:总结
<1:介绍>
首先,在详细描述本发明的实施例之前,将简要描述一般的公开密钥认证方案的算法结构、一般的数字签名方案的算法结构、n遍公开密钥认证方案以及ASS-CC-IP公开密钥认证方案。
[1-1:公开密钥认证方案的算法结构]
首先,将参考图1来描述一般的公开密钥认证方案的算法结构。图1是用于描述一般的公开密钥认证方案的算法结构的说明图。
(概述)
公开密钥认证方案是这样一种认证方案,其中一个人(证明者)通过 使用公开密钥pk和私密密钥sk来使另一个人(验证者)相信其是证明者本人。例如,使证明者A的公开密钥pkA为验证者所知。另一方面,证明者A的私密密钥skA由证明者秘密地管理。根据公开密钥认证方案,知道与公开密钥pkA相对应的私密密钥skA的人被认为是证明者A本人。
在证明者A尝试向验证者B证明其是证明者本人的情况下,证明者A可以与验证者B执行交互协议,并且证明其知道与公开密钥pkA相对应的私密密钥skA。然后,在验证者B通过交互协议证明证明者A知道私密密钥skA的情况下,证明者A的合法性(即其是证明者本人)得到了证明。
此外,为了确保公开密钥认证方案的安全性,要满足以下所述的两个条件。
第一个条件是尽可能地降低在交互协议被执行时不具有私密密钥sk的伪造者使伪造成立的概率。满足此第一条件被称为“健全性”(soundness)。换言之,对于健全的交互协议,不具有私密密钥sk的伪造者使伪造成立的概率是可忽略的。第二条件是,即使交互协议被执行,关于证明者A的私密密钥skA的信息也完全不会泄漏给验证者B。满足此第二条件被称为“零知识性”(zero knowledge)。
通过使用具有上述健全性和零知识性的交互协议来确保公开密钥认证方案的安全性。
(模型)
在公开密钥认证方案的模型中,存在两个实体,即证明者和验证者,如图1所示。证明者通过使用密钥生成算法Gen来生成证明者所特有的一对公开密钥pk和私密密钥sk。然后,证明者通过使用利用密钥生成算法Gen生成的该对私密密钥sk和公开密钥pk来与验证者执行交互协议。此时,证明者通过使用证明者算法P来执行交互协议。如上所述,在交互协议中,证明者通过使用证明者算法P来向验证者证明其拥有私密密钥sk。
另一方面,验证者通过使用验证者算法V来执行交互协议,并且验证证明者是否拥有与证明者所公开的公开密钥相对应的私密密钥。即,验证者是验证证明者是否拥有与公开密钥相对应的私密密钥的实体。如上所 述,公开密钥认证方案的模型是由两个实体和三个算法构成的,这两个实体是证明者和验证者,这三个算法是密钥生成算法Gen、证明者算法P和验证者算法V。
此外,在以下描述中使用了表述“证明者”和“验证者”,但这些表述严格来说指的是实体。因此,执行密钥生成算法Gen和证明者算法P的主体是与实体“证明者”相对应的信息处理装置。类似地,执行验证者算法V的主体是信息处理装置。例如,这些信息处理装置的硬件配置如图17所示。即,密钥生成算法Gen、证明者算法P和验证者算法V由CPU902基于记录在ROM 904、RAM 906、存储单元920、可移除记录介质928等等上的程序来执行。
(密钥生成算法Gen)
密钥生成算法Gen被证明者使用。密钥生成算法Gen是用于生成证明者所特有的一对公开密钥pk和私密密钥sk的算法。用密钥生成算法Gen生成的公开密钥pk被公开。另外,公开的公开密钥pk被验证者使用。另一方面,用密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。被秘密管理的私密密钥sk被用于向验证者证明对与公开密钥pk相对应的私密密钥sk的拥有。在形式上,作为以安全性参数1λ(λ是0或0以上的整数)为输入并且输出私密密钥sk和公开密钥pk的算法,密钥生成算法Gen被表示为以下的式(1):
[表达式1]
(sk,pk)←Gen(1λ) …(1)
(证明者算法P)
证明者算法P被证明者使用。证明者算法P是用于证明对与公开密钥pk相对应的私密密钥sk的拥有的算法。证明者算法P被定义为以证明者的公开密钥pk和私密密钥sk为输入并且与验证者执行交互协议的算法。
(验证者算法V)
验证者算法V被验证者使用。验证者算法V是用于在交互协议中验证证明者是否拥有与公开密钥pk相对应的私密密钥sk的算法。验证者算法V被定义为以证明者的公开密钥pk为输入并且在与证明者执行交互协议后输出0或1(1比特)的算法。而且,在输出0的情况下,认为证明者是非法的,而在输出1的情况下,认为证明者是合法的。在形式上,验证者算法V被表示为以下的式(2)。
[表达式2]
0/1←V(pk,m,σ) …(2)
(补充)
如上所述,公开密钥认证方案为了确保安全性必须满足两个条件,即健全性和零知识性。然而,为了使证明者证明其拥有私密密钥sk,证明者必须执行依赖于私密密钥sk的过程,将结果通知给验证者,并且让验证者基于通知的内容来执行验证。为了保证健全性,必须执行依赖于私密密钥sk的过程。另一方面,即使当该过程的结果被通知给验证者时,关于私密密钥sk的信息也必须完全不泄漏给验证者。因此,密钥生成算法Gen、证明者算法P和验证者算法V必须被设计成满足这些要件。
以上,已经描述了一般的公开密钥认证方案的算法结构。
[1-2:数字签名方案的算法结构]
接下来,将参考图2描述的一般的数字签名方案的算法结构。图2是用于描述一般的数字签名方案的算法结构的说明图。
(概述)
与纸质文档不同,不可能对数字化的数据盖印或签名。从而,为了证明数字化数据的作者的合法性,必须有一种产生相当于对纸质文档盖印或签名的效果的电子机制。此机制是数字签名。例如,将只有数据的作者知道的签名数据与该数据相关联地提供给接收者并且在接收者方验证该签名 数据的机制被称为数字签名方案。
(模型)
在数字签名方案的模型中,存在两个实体,即签名者和验证者,如图2所示。另外,数字签名方案的模型是由三个算法构成的,即密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver。
签名者通过使用密钥生成算法Gen生成签名者所特有的一对验证密钥pk和签名密钥sk。另外,签名者通过使用签名生成算法Sig生成要被添加到文档M的数字签名σ。即,签名者是向文档M添加数字签名的实体。另一方面,验证者通过使用签名验证算法Ver来验证添加到文档M的数字签名σ。即,验证者是验证数字签名σ以确认文档M的作者是否是签名者的实体。
此外,在以下描述中使用了表述“签名者”和“验证者”,但这些表述严格来说指的是实体。因此,执行密钥生成算法Gen和签名生成算法Sig的主体是与实体“签名者”相对应的信息处理装置。类似地,执行签名验证算法Ver的主体是信息处理装置。例如,这些信息处理装置的硬件配置如图17所示。即,密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver由CPU 902基于记录在ROM 904、RAM 906、存储单元920、可移除记录介质928等等上的程序来执行。
(密钥生成算法Gen)
密钥生成算法Gen被签名者使用。密钥生成算法Gen是用于生成签名者所特有的一对验证密钥pk和签名密钥sk的算法。用密钥生成算法Gen生成的验证密钥pk被公开。另一方面,用密钥生成算法Gen生成的签名密钥sk被签名者秘密地管理。被签名者秘密管理的签名密钥sk被用于生成要添加到文档M的数字签名σ。在形式上,作为以安全性参数1λ(λ是0或0以上的整数)为输入并且输出签名密钥sk和验证密钥pk的算法,密钥生成算法Gen被表示为以下的式(3)。
[表达式3]
(sk,pk)←Gen(1λ) …(3)
(签名生成算法Sig)
签名生成算法Sig被签名者使用。签名生成算法Sig是用于生成要添加到文档M的数字签名σ的算法。在形式上,作为以文档M和签名者的签名密钥sk为输入并且输出数字签名σ的算法,签名生成算法Sig被表示为以下的式(4)。
[表达式4]
σ←Sig(sk,M) …(4)
(签名验证算法Ver)
签名验证算法Ver被验证者使用。签名验证算法Ver是用于验证数字签名σ是否是文档M的有效数字签名的算法。在形式上,作为以签名者的验证密钥pk、文档M和数字签名σ为输入并且输出0或1(1比特)的算法,签名验证算法Ver被表示为以下的式(5)。而且,在输出为0的情况下(在公开密钥pk拒绝文档M和数字签名σ的情况下),文档M的数字签名σ是无效的。在输出为1的情况下(在公开密钥pk接受文档M和数字签名σ的情况下),文档M的数字签名σ是有效的。
[表达式5]
0/1←Ver(pk,M,σ) …(5)
以上,已经描述了一般的数字签名方案的算法结构。
[1-3:n遍公开密钥认证方案]
接下来,将参考图3描述n遍公开密钥认证方案。图3是用于描述n遍公开密钥认证方案的说明图。
如上所述,公开密钥认证方案是用于在交互协议中向验证者证明证明者拥有与公开密钥pk相对应的私密密钥sk的认证方案。而且,为了保证公开密钥认证方案的安全性,必须满足两个条件,即健全性和零知识性。因此,如图3所示,在交互协议中,在证明者和验证者双方执行处理的同 时,在证明者与验证者之间执行n次信息交换。
在n遍公开密钥认证方案的情况下,证明者利用证明者算法P执行处理(步骤1),并且信息T1被发送给验证者。接下来,验证者利用验证者算法V执行处理(步骤2),并且信息T2被发送到证明者。以类似的方式执行处理(步骤3,...,n)并发送多条信息T3,...,Tn,然后执行处理(步骤n+1)。这种信息被发送/接收n次的基于交互协议的公开密钥认证方案被称为“n遍”公开密钥认证方案。
以上,已经描述了n遍公开密钥认证方案。
[1-4:ASS-CC-IP公开密钥认证方案]
接下来,将描述以代数曲面上的片段找出问题为安全性基础的公开密钥认证方案的示例。片段找出问题是这样一个问题,即,当给出在环K上定义的n个变量的多次多项式f(x1,...,xn)时,找出环K上的一个变量的多次多项式s1(t),...,sn-1(t),满足f(s1(t),...,sn-1(t),t)=0。
(1-4-1:ASS-CC数字签名方案)
作为以代数曲面上的片段找出问题为安全性基础的数字签名方案,ASS-CC数字签名方案是已知的(参见Komano等人的文章)。ASS-CC数字签名方案不是公开密钥认证方案,但是考虑到数字签名方案和公开密钥认证方案的相关性,可如下文中所述从ASS-CC数字签名方案来构造以代数曲面上的片段找出问题为安全性基础的公开密钥认证方案。因此,首先,将描述ASS-CC数字签名方案。
ASS-CC数字签名方案是由以下所述的密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver构成的。
(密钥生成算法Gen)
密钥生成算法Gen执行以下的步骤1和步骤2,并且生成签名密钥(ux(t),uy(t),t)和验证密钥X(x,y,t)。
步骤1:
密钥生成算法Gen生成函数ux(t),uy(t)和ci,j(t)(其中(i,j)∈Λ\{0,0})。这里Λ是正整数的索引集合。
步骤2:
密钥生成算法Gen计算c0,0←∑(i,j)∈Λ\{0,0}ci,j(t)ux(t)iuy(t)j。然后,密钥生成算法Gen生成签名密钥(ux(t),uy(t),t)和验证密钥X(x,y,t)=∑(i,j)∈Λci,j(t)x(t)iy(t)j。这里,满足X(ux(t),uy(t),t)=∑(i,j)∈Λ\{0,0}ci,j(t)ux(t)iuy(t)j=0。
(签名生成算法Sig)
签名生成算法Sig首先以签名密钥(ux(t),uy(t),t)和文档M为输入并且对于i=1至n执行以下的步骤1至步骤4。
步骤1:
签名生成算法Sig选择SiR{0,1}λ,并且计算Xi’(x,y,t)←H(Si)。这里的H(...)是散列函数。散列函数H是用于根据比特串s∈{0,1}*生成特定范围内的数值的函数。通过将任意比特串输入到散列函数H中获得的值被称为散列值(以下同样)。
步骤2:
签名生成算法Sig选择片段(ri,x(t),ri,y(t)),并且计算Xi”(x,y,t)←Xi(x-ri,x(t),y-ri,y(t),t)+Xi’(x,y,t)。
步骤3:
签名生成算法Sig计算(zi,x(t),zi,y(t))←(ui,x(t)+ri,x(t),ui,y(t)+ri,y(t))。
步骤4:
签名生成算法Sig计算vi(t)←H(Xi’(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))。
步骤5:
在针对i=1至n执行了以上的步骤1至4之后,签名生成算法Sig计算d=(d1,...,dn)←H(M,X1”(x,y,t),v1(t),...,Xn”(x,y,t),vn(t))。
接下来,签名生成算法Sig对i=1至n执行以下的步骤6。
步骤6:
如果di=0,则签名生成算法Sig计算σi←(Si,ri,x(t),ri,y(t))。另一方面, 如果di=1,则签名生成算法Sig计算σi←(0,zi,x(t),zi,y(t))。
步骤7:
然后,签名生成算法Sig输出数字签名σ=(X1”(x,y,t),v1(t),...,Xn”(x,y,t),vn(t),σ1,...,σn)。
(签名验证算法Ver)
签名验证算法Ver以数字签名σ和文档M为输入,并且执行以下的步骤1至步骤3。
步骤1:
签名验证算法Ver计算d=(d1,...,dn)←H(M,X1”(x,y,t),...,Xn”(x,y,t),vn(t))。
接下来,签名验证算法Ver对i=1至n执行以下的步骤2。
步骤2:
如果di=0,则签名验证算法Ver将σi分割成(Si,ri,x(t),r1,y(t))。接下来,签名验证算法Ver计算Xi’(x,y,t)←H(Si)。然后,签名验证算法Ver验证等式Xi”(x,y,t)=Xi(x-ri,x(t),y-ri,y(t),t)+Xi’(x,y,t)是否成立。另一方面,如果di=1,则签名验证算法Ver将σi分割成(0,zi,x(t),zi,y(t))。然后,签名验证算法验证等式vi=H(Xi”(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))是否成立。
步骤3:
在针对i=1至n执行以上的步骤2之后,签名验证算法Ver确认步骤2的验证是否对于所有i=1至n都已通过。然后,签名验证算法Ver在步骤2的验证对于所有的i=1至n都已通过的情况下接受数字签名σ(输出1),而在验证即使对于其中一个没有通过的情况下拒绝数字签名σ(输出0)。
(伪造数字签名的可能性)
ASS-CC数字签名方案由上述的密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver构成。ASS-CC数字签名方案是对于使用量子计算机的破坏行为有很高抵抗性的数字签名方案,因为其以代数曲面上的片段找 出问题为安全性的基础。然而,本申请的发明人发现了对于ASS-CC数字签名方案的数字签名的伪造算法(以下称为签名伪造算法)。
(ASS-CC数字签名方案的数字签名的伪造算法)
签名伪造算法是仅以文档M作为输入并且伪造数字签名σ的算法。首先,签名伪造算法对于i=1至n执行以下的步骤1至步骤3。
步骤1:
签名伪造算法选择Si∈R{0,1}λ,并且计算Xi’(x,y,t)←H(Si)。
步骤2:
签名伪造算法选择片段(ri,x(t),ri,y(t)),并且计算Xi”(x,y,t)←Xi(x-ri,x(t),y-ri,y(t),t)+Xi’(x,y,t)。
步骤3:
签名伪造算法选择片段(zi,x(t),zi,y(t)),并且计算vi←H(Xi”(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))。
步骤4:
在针对i=1至n执行以上的步骤1至3之后,签名伪造算法计算d=(d1,...,dn)←H(M,X1”(x,y,t),v1(t),...,Xn”(x,y,t),vn(t))。
接下来,签名伪造算法对i=1至n执行以下的步骤5。
步骤5:
如果di=0,则签名伪造算法计算σi←(Si,ri,x(t),ri,y(t))。另一方面,如果di=1,则签名伪造算法计算σi←(0,zi,x(t),zi,y(t))。
步骤6:
然后,签名伪造算法输出数字签名σ=(X1”(x,y,t),v1(t),...,Xn”(x,y,t),vn(t),σ1,...,σn)。
以上是签名伪造算法的内容。签名伪造算法与ASS-CC数字签名方案的签名生成算法Sig之间的一个不同之处在于(zi,x(t),zi,y(t))的生成方法。签名生成算法Sig根据签名密钥(ux(t),uy(t),t)生成(zi,x(t),zi,y(t)),而签名伪造算法则不使用签名密钥(ux(t),uy(t),t)。
另外,签名伪造算法与ASS-CC数字签名方案的签名生成算法Sig之 间的另一个不同之处在于vi的计算方法。签名生成算法Sig使用Xi’(zi,x(t),zi,y(t),t),而签名伪造算法使用Xi”(zi,x(t),zi,y(t),t)。即,如果像上述签名伪造算法中那样设定vi,则有可能在不使用签名密钥(ux(t),uy(t),t)的情况下生成通过验证的数字签名σ。
以上,已经描述了针对ASS-CC数字签名方案的签名伪造算法。由于存在这种签名伪造算法,所以可以说ASS-CC数字签名方案的操作并不安全。这种关于安全性的问题在将ASS-CC数字签名方案修改成公开密钥认证方案的情况下将继续存在。
(1-4-2:ASS-CC-IP公开密钥认证方案)
ASS-CC数字签名方案的算法可被修改成如图4所示的公开密钥认证方案的交互协议(以下称为ASS-CC-IP公开密钥认证方案)。此外,在Komano等人的文章中没有公开图4所示的ASS-CC-IP公开密钥认证方案。这里将描述图4所示的ASS-CC-IP公开密钥认证方案的交互协议。图4是用于描述ASS-CC-IP公开密钥认证方案的交互协议的说明图。
如图4所示,在证明者与验证者之间共享公开密钥pk=X(x,y,z)。另外,证明者保有私密密钥sk=(ux(y),uy(y),t)。此外,私密密钥sk和公开密钥pk的生成方法与ASS-CC数字签名方案的签名密钥sk和验证密钥pk的生成方法相同。
步骤1:
首先,证明者算法P计算(rx(t),ry(t))∈RST。这里的ST是表达代数曲面上的片段的多项式的全体集合的群组。接下来,证明者算法P计算zx(t)←ux(t)+rx(t)和zy(t)←uy(t)+ry(t)。然后,证明者算法P选择S∈R{0,1}λ,并且计算X’(x,y,t)←H1(S)。
步骤1(继续):
接下来,证明者算法P计算X”(x,y,t)←X(x-rx(t),y-ry(t),t)+X’(x,y,t)。然后,证明者算法P计算v ←H2(X’(zx(t),zy(t),t),zx(t),zy(t))。此外,H1和H2是散列函数。然后,证明者算法P将(X”(x,y,t),v)发送给验证者。
步骤2:
验证者算法V选择d∈R{0,1}。然后,验证者算法V将d发送给证明者。
步骤3:
如果d=0,则证明者算法P计算数字签名σ=(S,rx(t),ry(t))。另一方面,如果d=1,则证明者算法P计算数字签名σ=(ε,zx(t),zy(t))。然后,证明者算法P将数字签名σ发送给验证者。此外,σ将被表示为(a,b(t),c(t))。即,如果d=0,则a=S,b(t)=rx(t)并且c(t)=ry(t);而如果d=1,则a=ε,b(t)=zx(t),c(t)=zy(t)。
步骤4:
如果d=0,则验证者算法V计算a’(x,y,t)←H1(a)。然后,验证者算法V验证等式X”(x,y,t)=X(x-b(t),y-c(t),t)+a’(x,y,t)是否成立。另一方面,如果d=1,则验证者算法V验证等式v=H2(X”(b(t),c(t),t),b(t),c(t))是否成立。
步骤5:
验证者算法V在步骤4的验证成功的情况下输出表明认证成功的1,而在验证失败的情况下输出表明认证失败的0。
如上所述,ASS-CC数字签名方案可被修改成公开密钥认证方案。然而,ASS-CC-IP公开密钥认证方案包含与ASS-CC数字签名方案相同的安全性问题。即,在ASS-CC-IP公开密钥认证方案中,不保有私密密钥sk的伪造者有可能伪造。因此,将参考图5来描述ASS-CC-IP公开密钥认证方案的伪造方法。
(ASS-CC-IP公开密钥认证方案的伪造方法)
ASS-CC-IP公开密钥认证方案的伪造方法具有图5的步骤1的下划线部分(*1,*2)中的特征。在ASS-CC-IP公开密钥认证方案中,zx(t)和zy(t)是利用私密密钥sk生成的。然而,在图5所示的伪造方法中,zx(t)和zy(t)是任意选择的(*1)。另外,在ASS-CC-IP公开密钥认证方案中,v是利用X’(zx(t),zy(t),y)生成的。然而,在图5所示的伪造方法中,v是利用X”(zx(t),zy(t),y)(*2)生成的。
即,如果使用图5所示的伪造方法,则不知道ux(t)和uy(t)的伪造者可以容易地执行伪造。更具体而言,ASS-CC-IP公开密钥认证方案不满足健全性。如上所述,只要没有同时满足健全性和零知识性这两个条件,就不能保证公开密钥认证方案的安全性。ASS-CC-IP公开密钥认证方案满足零知识性,但不满足健全性。因此,在ASS-CC-IP公开密钥认证方案中不保证安全性。
从而,将考虑用于确保ASS-CC-IP公开密钥认证方案中的健全性的修改方法。作为用于确保ASS-CC-IP公开密钥认证方案中的健全性的方法,可以考虑一种使验证者额外验证v=H(X’(zx(t),zy(t),t),zx(t),zy(t))的方法。然而,为了实现此方法,必须把关于X’的信息和关于(zx(t),zy(t))的信息交付给验证者。
如果在d=0的情况下将关于(zx(t),zy(t))的信息交付给验证者,则已经有关于(rx(t),ry(t))的信息的验证者将能够计算私密密钥sk。另一方面,如果在d=1的情况下将关于X’的信息交付给验证者,则已经有关于X”的信息的验证者将能够计算关于(rx(t),ry(t))的信息。结果,验证者将能够根据计算出的关于(rx(t),ry(t))的信息和关于(zx(t),zy(t))信息来计算私密密钥sk。
因此,如果采用使验证者额外验证v=H(X’(zx(t),zy(t),t),zx(t),zy(t))的方法,则确保了健全性,但却丧失了零知识性。这样,难以通过修改ASS-CC-IP公开密钥认证方案来构造同时满足健全性和零知识性这两个条件的公开密钥认证方案。因此,本申请的发明人设计了一种新的公开密钥认证方案,其以代数曲面上的片段找出问题作为安全性的基础并且满足健全性和零知识性这两个条件。以下将给出详细说明。
<2:第一实施例>
将描述根据本发明的第一实施例。本实施例涉及以代数曲面上的片段找出问题作为安全性基础的3遍公开密钥认证方案(以下称为本方案)。此外,这里将以3遍公开密钥认证方案作为示例,但也可针对n遍(n≥4)公开密钥认证方案来扩展和一般化本实施例的交互协议。
[2-1:用于公开密钥认证方案的算法]
首先,将参考图6来描述根据本方案的用于公开密钥认证方案的算法。图6是用于描述根据本方案的用于公开密钥认证方案的算法的说明图。此外,本方案由密钥生成算法Gen、证明者算法P和验证者算法V构成。以下,将描述每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。注意这里满足f0(u1(t),...,un-1(t),t)=0。
(证明者算法P、验证者算法V)
接下来,将参考图6来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P任意选择数字w。然后,证明者算法P通过将数字w应用到伪随机数生成器G1来生成一个变量的多项式r1(t),...,rn-1(t)和数字w’。即,证明者算法P计算(r1,...,rn-1,w’)←G1(w)。接下来,证明者算法P通过将数字w’应用到伪随机数生成器G2来生成n个变量的多项式f’(x1,...,xn)。即,证明者算法P计算f’←G2(w’)。
步骤1(继续):
接下来,证明者算法P计算 (z1(t),...,zn-1(t))←(u1(t)-r1(t),...,un-1(t)-rn-1(t))。此计算相当于用一个变量的多项式(r1,...,rn-1)来掩蔽私密密钥(u1,...,un-1)的操作。另外,证明者算法P计算f”(x1,...,xn)←f(x1+r1(xn),...,xn-1+rn-1(xn),xn)+f’(x1,...,xn)。此计算相当于用多项式f’(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1(xn),...,xn-1+rn-1(xn),xn)的操作。
步骤1(继续):
接下来,证明者算法P生成f”(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值c1。即,证明者算法P计算c1←H1(f”(z1(t),...,zn-1(t),t),z1,...,zn-1)。另外,证明者算法P生成数字w’的散列值c2。即,证明者算法P计算c2←H2(w’)。另外,证明者算法P生成多项式f”的散列值c3。即,证明者算法P计算c3←H3(f”)。此外,所述的H1(...)、H2(...)和H3(...)是散列函数。另外,散列值(c1,c2,c3)是消息。
在步骤1中生成的消息(c1,c2,c3)被发送给验证者。
步骤2:
验证者算法V从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d∈{0,1,2}。
步骤3:
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。另外,如果d=1,则证明者算法P生成信息σ=(w’,z1,...,zn-1)。另外,如果d=2,则证明者算法P生成信息σ=(f”,z1,...,zn-1)。这样生成的信息σ被证明者算法P发送给验证者。
步骤4:
验证者算法V通过使用从证明者接收的信息σ来执行以下验证处理。
如果d=0,则验证者算法V计算(r’1,...,r’n-1,w”)←G1(经σ)。另外,验证者算法V计算f′″←G2(w”)。然后,验证者算法V验证等式c2=H2(w”)是否成立。另外,验证者算法V验证等式c3=H3(f(x1+r’1(xn),...,xn-1+r’n-1(xn),xn)+f′″(x1,...,xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失 败的情况下输出表明认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’1,...,z’n-1)←σ。另外,验证者算法V计算f′″←G2(w”)。然后,验证者算法V验证等式c1=H1(f′″(z’1(t),...,z’n-1(t),t),z’1,...,z’n-1))是否成立。另外,验证者算法V验证等式c2=H2(w”)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果d=2,则验证者算法V计算(f″″,z’1,...,z’n-1)←σ。然后,验证者算法V验证等式c1=H1(f′″(z’1(t),...,z’n-1(t),t),z’1,...,z’n-1))是否成立。另外,验证者算法V验证等式c3=H3(f″″)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
(补充)
而且,注意,在把上述步骤1中生成的消息(c1,c2,c3)发送给验证者时,与私密密钥sk有关的信息、与(r1,...,rn-1)有关的信息和与(z1,...,zn-1)有关的信息完全不被泄漏给验证者。还要注意,在把上述步骤3中生成的信息σ发送给验证者时,在d=0的情况下与z1,...,zn-1有关的信息完全不被泄漏给验证者,并且在d=1,2的情况下与r1,...,rn-1有关的信息完全不被泄漏给验证者。
(本方案与ASS-CC-IP公开密钥认证方案之间的主要差异)
如上所述,在ASS-CC-IP公开密钥认证方案中,验证者只要求两类验证模式。另一方面,在本方案的情况下,验证者可能要求三类验证模式。一个具体的差异在于,在ASS-CC-IP公开密钥认证方案的情况下,不执行本方案的与d=1相对应的使用f’(z1(t),...,zn-1(t),t)的验证。
在本方案的情况下,在d=1的验证模式和d=2的验证模式中,执行c1=H1(f’(z1(t),...,zn-1(t),t),z1,...,zn-1)的验证和c1=H1(f”(z1(t),...,zn-1(t),t),z1,...,zn-1)的验证,并且在两个验证都通过的情况下保证了 f’(z1(t),...,zn-1(t),t)=f”(z1(t),...,zn-1(t),t)。这是本方案与ASS-CC-IP公开密钥认证方案之间的主要差异。
此外,单纯将本方案的d=1所对应的验证模式添加到ASS-CC-IP公开密钥认证方案不会解决ASS-CC-IP公开密钥认证方案的安全性的问题。例如,即使在ASS-CC-IP公开密钥认证方案中添加了v=H2(X’(zx(t),zy(t),t),zx(t),zy(t))的验证,也不会解决安全性的问题。如图4所示,在ASS-CC-IP公开密钥认证方案的情况下,由于已经在第一遍中发送了关于X”的信息,所以如果将关于X’的信息给予验证者以执行额外验证,则关于rx(t)和ry(t)的信息将被泄漏,从而导致零知识性丧失。
另一方面,在本方案的情况下,在第一遍中关于f’,f”,r1,...,rn-1,和z1,...,zn-1的信息不被发送给验证者,而只有其散列值被发送给验证者。证明者算法P被设计为在第三遍中将验证所必需的最低限度信息发送给验证者,从而在本方案的交互协议保证了零知识性。另外,本方案提供了一种机制,其通过在第一遍中发送散列值,防止了在第一遍中证明者算法P使用的随机数在第三遍被当成另一随机数。另一方面,在ASS-CC-IP公开密钥认证方案中,在第一遍中不发送与X’有关的信息或散列值,从而有可能执行伪造,以使得看起来好像在第三遍中使用了另一X’一样。在本方案与ASS-CC-IP公开密钥认证方案之间也存在这种差异。
(本方案中的健全性)
本方案的健全性是通过如下方式来保证的:如果证明者利用针对消息(c1,c2,c3)的正确信息σ对来自验证者的所有要求d=0,1,2作出了响应,则可以根据这些响应来计算满足以下的式(6)和(7)的f″″,f′″,r’1,...,r’n-1和z’1,...,z’n-1。此外,这在ASS-CC-IP公开密钥认证方案中得不到保证。
[表达式6]
f″″(x1,...,xn)=f(x1+r′1(xn),...,xn-1+r′n-1(xn),xn)
+f′″(x1,...,xn)
...(6)
f″″(z′1(t),...,z′n-1(t),t)=f′″(z′1(t),...,z′n-1(t),t)
...(7)
如果保证了这种逻辑,就保证了只要没有解答代数曲面上的片段找出问题,则不可能以高于2/3的概率执行伪造。即,为了对验证者的所有要求d=0,1,2正确地作出响应,伪造者必须能够计算出满足以上的式(6)和(7)的f″″,f′″,r’1,...,r’n-1和z’1,...,z’n-1。换言之,伪造者必须能够计算出满足f(u1(t),...,un-1(t),t)=0的(u1,...,un-1)。而且,伪造者可能能够对验证者的要求d=0,1,2中的最多两个正确地作出响应。因此,伪造成功的概率将是2/3。上述交互协议被执行足够多次。因此,伪造成功的概率可被降低到可忽略的水平。
(修改)
另外,上述证明者算法P使用f”(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值作为消息c3。然而,由于f”(z1(t),...,zn-1(t),t)=f’(z1(t),...,zn-1(t),t),所以证明者算法P可以使用f’(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值作为消息c3。另外,证明者算法P可以分开计算f”(z1(t),...,zn-1(t),t)的散列值和z1,...,zn-1的散列值,并且将其每一个作为消息发送给验证者。
另外,上述证明者算法P通过向数字w应用伪随机数生成器G1来生成一个变量的多项式r1(t),...,rn-1(t)和数字w’。另外,上述证明者算法P通过将数字w’应用到伪随机数生成器G2来生成n个变量的多项式f’(x1,...,xn)。然而,证明者算法P可以从开始计算w=(r1(t),...,rn-1(t),w’),并且可以使G1是恒等映射。另外,在此情况下,数字w不一定要被应用到G1。此外,对于G2也同样如此。
在上述方案中,c1、c2和c3是利用散列函数H1、H2和H3来计算的,但是取代散列函数也可使用承诺方案(commitment scheme)COM。承诺函数COM是以字符串S和随机数ρ作为参量的函数。承诺函数的示例包括由Shai Halevi和S ilvio Micali在InternationalConference CRYPTO 1996展示的方案,等等。
在使用此承诺函数的情况下,在计算c1、c2和c3之前准备随机数ρ1、 ρ2和ρ3,并且通过应用承诺函数COM(·,ρ1)、COM(·,ρ2)和COM(·,ρ3)而不是散列函数H1(·)、H2(·)和H3(·)来生成c1、c2和c3。另外,在此修改中,生成验证单元要计算的Ci所必需的ρ1被包括在响应信息中。此外,此修改的方案可应用到所有以下所述的方案。
以上,已经描述了根据本方案的基本算法结构。
[2-2:扩展算法]
接下来,将参考图7来描述作为本方案的扩展(以下称为扩展方案)的公开密钥认证方案的算法。图7是用于描述基于扩展方案的交互协议的流程的说明图。此扩展方案是把在第一遍中要发送的消息(c1、c2和c3)变换成一个散列值c并且将其发送给验证者的方案。另外,根据此扩展方案,交互协议被配置为在第一遍中发送散列值c,从而不从在第三遍中发送的信息σ恢复的消息与信息σ一起被发送给验证者。利用这种扩展,在交互协议中要发送给验证者的散列值的数目可得以减少,并且要传输的数据的大小可得以减小。以下,将详细描述扩展方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。注意这里满足f0(u1(t),...,un-1(t),t)=0。
(证明者算法P、验证者算法V)
接下来,将参考图7来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的 公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P任意选择数字w。然后,证明者算法P通过将数字w应用到伪随机数生成器G1来生成一个变量的多项式r1(t),...,rn-1(t)和数字w’。即,证明者算法P计算(r1,...,rn-1,w’)←G1(w)。接下来,证明者算法P通过将数字w’应用到伪随机数生成器G2来生成n个变量的多项式f’(x1,...,xn)。即,证明者算法P计算f’←G2(w’)。
步骤1(继续):
接下来,证明者算法P计算(z1(t),...,zn-1(t))←(u1(t)-r1(t),...,un-1(t)-rn-1(t))。此计算相当于用一个变量的多项式(r1,...,rn-1)来掩蔽私密密钥(u1,...,un-1)的操作。另外,证明者算法P计算f”(x1,...,xn)←f(x1+r1(xn),...,xn-1+rn-1(xn),xn)+f’(x1,...,xn)。此计算相当于用多项式f’(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1(xn),...,xn-1+rn-1(xn),xn)的操作。
步骤1(继续):
接下来,证明者算法P生成f”(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值c1。即,证明者算法P计算c1←H1(f”(z1(t),...,zn-1(t),t),z1,...,zn-1)。另外,证明者算法P生成数字w’的散列值c2。即,证明者算法P计算c2←H2(w’)。另外,证明者算法P生成多项式f”的散列值c3。即,证明者算法P计算c3←H3(f”)。此外,所述的H1(...)、H2(...)和H3(...)是散列函数。另外,散列值(c1,c2,c3)是消息。
步骤1(继续):
在扩展方案的情况下,证明者算法P通过将消息(c1,c2,c3)应用到散列函数H来生成散列值c。然后,证明者算法P将所生成的散列值c发送给验证者。
步骤2:
验证者算法V从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d∈{0,1,2}。
步骤3:
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d=0,则证明者算法P生成信息(σ,c*)=(w,c1)。另外,如果d=1,则证明者算法P生成信息(σ,c*)=(w’,z1,...,zn-1,c3)。另外,如果d=2,则证明者算法P生成信息(σ,c*)=(f”,z1,...,zn-1,c2)。这样生成的信息(σ,c*)被证明者算法P发送给验证者。
步骤4:
验证者算法V通过使用从证明者接收的信息(σ,c*)来执行以下验证处理。
如果d=0,则验证者算法V计算(r’1,...,r’n-1,w”)←G1(σ)。接下来,验证者算法V计算f′″←G2(w”)。然后,验证者算法V计算c’2=H2(w”)。然后,验证者算法V计算c’3=H3(f(x1+r’1(xn),...,xn-1+r’n-1(xn),xn)+f′″(x1,...,xn))。然后,验证者算法V验证等式c=H(c*,c’2,c’3)是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证失败的情况下输出表明认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’1,...,z’n-1)←σ。接下来,验证者算法V计算f′″←G2(w”)。然后,验证者算法V计算c’1=H1(f′″(z’1(t),...,z’n-1(t),t),z’1,...,z’n-1))。然后,验证者算法V计算c’2=H2(w”)。然后,验证者算法V验证等式c=H(c’1,c’2,c*)是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证失败的情况下输出表明认证失败的值0。
如果d=2,则验证者算法V计算(f′″,z’1,...,z’n-1)←σ。然后,验证者算法V计算c’1=H1(f′″(z’1(t),...,z’n-1(t),t),z’1,...,z’n-1))。然后,验证者算法V计算c’3=H3(f″″)。然后,验证者算法V验证等式c=H(c’1,c*,c’3)是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证失败的情况下输出表明认证失败的值0。
以上,已经描述了扩展方案的交互协议的每个算法的处理。利用这种扩展,在交互协议中要发送给验证者的散列值的数目可得以减少,并且要传输的数据的大小可得以减小。
[2-3:并行算法]
现在,如上所述,当采用根据本方案或扩展方案的交互协议时,伪造成功的概率可被降低到2/3以下。因此,如果此交互协议被执行两次,则伪造成功的概率可被降低到(2/3)2以下。以相同的方式,如果此交互协议被执行N次,则伪造成功的概率变成(2/3)N,而如果N是足够大的数字(例如,N=140),则伪造成功的概率被降低到可忽略的水平。例如,将根据本方案的交互协议并行执行N次的算法在图8中示出。以下,将参考图8描述并行执行交互协议N次的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。注意这里满足f0(u1(t),...,un-1(t),t)=0。
(证明者算法P、验证者算法V)
接下来,将参考图8来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P对于i=1至N执行以下的处理(1)至处理(8)。(处理1)证明者算法P任意选择数字wi。(处理2)证明者算法P通过将数字wi应用到伪随机数生成器G1来生成一个变量的多项式 r1,i(t),...,rn-1,i(t)和数字w’i。即,证明者算法P计算(r1,i,...,rn-1,i,w’i)←G1(wi)。(处理3)证明者算法P通过将数字w’i应用到伪随机数生成器G2来生成n个变量的多项式f’i(x1,...,xn)。即,证明者算法P计算f’i←G2(w’i)。
步骤1(继续):
(处理4)证明者算法P计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽私密密钥(u1,i,...,un-1,i)的操作。(处理5)证明者算法P计算f”i(x1,...,xn)←f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)+f’i(x1,...,xn)。此计算相当于用多项式f’i(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)的操作。
步骤1(继续):
(处理6)证明者算法P生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,证明者算法P计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理7)证明者算法P生成数字w’i的散列值c2,i。即,证明者算法P计算c2,i←H2(w’i)。(处理8)证明者算法P生成多项式f”i的散列值c3,i。即,证明者算法P计算c3,i←H3(f”i)。此外,所述的H1(...)、H2(...)和H3(...)是散列函数。另外,散列值(c1,i,c2,i,c3,i)是消息。
在针对i=1至N执行了上述的(处理1)至(处理8)之后,在步骤1中生成的消息(c1,i,c2,i,c3,i)(i=1至N)被发送给验证者。
步骤2:
验证者算法V对于i=1至N中的每一个,从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求di∈{0,1,2}(i=1至N)。
步骤3:
证明者算法P响应于从验证者接收的要求di生成要发送回验证者的信息σi。这里,证明者算法P针对i=1至N执行以下的(处理1)至(处理3)。(处理1)如果di=0,则证明者算法P生成信息σi=wi。(处理2)如果di=1,则证明者算法P生成信息σi=(w’i,z1,i,...,zn-1,i)。(处理3) 如果di=2,则证明者算法P生成信息σi=(f”i,z1,i,...,zn-1,i)。在执行了以上的(处理1)至(处理3)的判决和处理之后,信息σi(i=1至N)被证明者算法P发送给验证者。
步骤4:
验证者算法V通过使用从证明者接收的信息σi(i=1至N)来执行以下验证处理。此外,以下处理是针对i=1至N执行的。
如果di=0,则验证者算法V计算(r’1,i,...,r’n-1,i,w”i)←G1i)。另外,验证者算法V计算f′″i←G2(w”i)。然后,验证者算法V验证等式c2,i=H2(w”i)是否成立。另外,验证者算法V验证等式c3,i=H3(f(x1+r’1,i(xn),...,xn-1+r’n-1,i(xn),xn)+f′″i(x1,...,xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=1,则验证者算法V计算(w”i,z’1,i,...,z’n-1,i)←σi。另外,验证者算法V计算f′″i←G2(w”i)。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,验证者算法V验证等式c2,i=H2(w”i)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=2,则验证者算法V计算(f″″i,z’1,i,...,z’n-1,i)←σi。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,验证者算法V验证等式c3,i=H3(f″″i)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了并行执行本方案的交互协议的方法。如上所述,通过反复执行本方案的交互协议,可以将伪造成功的概率降低到可忽略的水平。
[2-4:非交互型算法]
以上,已经描述了3遍公开密钥认证方案。然而,由于根据本方案, 在第二遍中从验证者发送到证明者的信息只是表明验证模式的要求d(实际上只是一随机数),所以有可能修改到1遍公开密钥认证方案(以下称为非交互型方案)。此外,根据非交互型方案的每个算法的内容在图9中示出。以下,将参考图9来描述根据非交互型方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。注意这里满足f0(u1(t),...,un-1(t),t)=0。
(证明者算法P、验证者算法V)
接下来,将参考图9来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P对于i=1至N执行以下的处理(1)至处理(8)。(处理1)证明者算法P任意选择数字wi。(处理2)证明者算法P通过将数字wi应用到伪随机数生成器G1来生成一个变量的多项式r1,i(t),...,rn-1,i(t)和数字w’i。即,证明者算法P计算(r1,i,...,rn-1,i,w’i)←G1(wi)。(处理3)证明者算法P通过将数字w’i应用到伪随机数生成器G2来生成n个变量的多项式f’i(x1,...,xn)。即,证明者算法P计算f’i←G2(w’i)。
步骤1(继续):
(处理4)证明者算法P计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽私密密钥(u1,i,...,un-1,i)的操作。(处理5)证明者算法P计算f”i(x1,...,xn)←f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)+f’i(x1,...,xn)。此计算相当于用多项式f’i(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)的操作。
步骤1(继续):
(处理6)证明者算法P生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,证明者算法P计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理7)证明者算法P生成数字w’i的散列值c2,i。即,证明者算法P计算c2,i←H2(w’i)。(处理8)证明者算法P生成多项式f”i的散列值c3,i。即,证明者算法P计算c3,i←H3(f”i)。此外,所述的H1(...)、H2(...)和H3(...)是散列函数。另外,散列值(c1,i,c2,i,c3,i)是消息。
步骤2:
接下来,证明者算法P选择随机数R。然后,证明者算法P对于i=1至N,通过将随机数R和在步骤1中生成的消息(c1,i,c2,i,c3,i)应用到散列函数H来生成d=(d1,...,dN)。
步骤3:
接下来,证明者算法P根据所生成的di来生成要发送给验证者的信息σi。这里,证明者算法P针对i=1至N执行以下的(处理1)至(处理3)。(处理1)如果di=0,则证明者算法P生成信息σi=wi。(处理2)如果di=1,则证明者算法P生成信息σi=(w’i,z1,i,...,zn-1,i)。(处理3)如果di=2,则证明者算法P生成信息σi=(f”i,z1,i,...,zn-1,i)。在执行了以上的(处理1)至(处理3)的判决和处理之后,随机数R、消息(c1,i,c2,i,c3,i)和信息σi(i=1至N)被证明者算法P发送给验证者。
步骤4:
验证者算法V首先通过把从证明者接收的随机数R、消息(c1,i,c2,i,c3,i)和信息σi(i=1至N)应用到散列函数H来生成d=(d1,...,dN)。然后,验证者算法V通过使用信息σi(i=1至N)来执行以下验证处理。此外,以下处 理是针对i=1至N执行的。
如果di=0,则验证者算法V计算(r’1,i,...,r’n-1,i,w”i)←G1i)。另外,验证者算法V计算f′″i←G2(w”i)。然后,验证者算法V验证等式c2,i=H2(w”i)是否成立。另外,验证者算法V验证等式c3,i=H3(f(x1+r’1,i(xn),...,xn-1+r’n-1,i(xn),xn)+f′″i(x1,...,xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=1,则验证者算法V计算(w”i,z’1,i,...,z’n-1,i)←σi。另外,验证者算法V计算f′″i←G2(w”i)。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,验证者算法V验证等式c2,i=H2(w”i)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=2,则验证者算法V计算(f″″i,z’1,i,...,z’n-1,i)←σi。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,验证者算法V验证等式c3,i=H3(f″″i)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了根据非交互型方案的每个算法的内容。如上所述,根据非交互型方案,不是验证者向证明者发送随机数d来选择验证模式,而是证明者算法P通过使用消息(c1,i,c2,i,c3,i)来生成d。如果假定理想的散列函数H,则散列值d将表现为随机的,从而不会出现对证明者来说方便的散列值d。因此,即使在执行上述修改时,也确保了充分的安全性。此外,这种修改可类似地应用到扩展方案等等。
[2-5:修改成数字签名方案]
这里,将描述将本方案修改成数字签名方案的方法。此外,为了简单起见,这里将描述将上述非交互型方案修改成数字签名方案的方法。可以理解,当上述非交互型方案的证明者和验证者对应于数字签名方案的签名 者和验证者时,与数字签名方案的模型有类似之处,即单是证明者就能够使验证者确信。考虑到这个概念,将详细描述基于非交互型方案的数字签名方案的算法结构。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为验证密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为签名密钥sk。注意这里满足f0(u1(t),...,un-1(t),t)=0。
(签名生成算法Sig)
签名生成算法Sig对于i=1至N执行以下的(处理1)至(处理15)。此外,假定在签名生成算法Sig中输入签名密钥sk=(u1,...,un-1)和文档M。
(处理1)签名生成算法Sig任意选择数字wi。(处理2)签名生成算法Sig通过将数字wi应用到伪随机数生成器G1来生成一个变量的多项式r1,i(t),...,rn-1,i(t)和数字w’i。即,签名生成算法Sig计算(r1,i,...,rn-1,i,w’i)←G1(wi)。(处理3)签名生成算法Sig通过将数字w’i应用到伪随机数生成器G2来生成n个变量的多项式f’i(x1,...,xn)。即,签名生成算法Sig计算f’i←G2(w’i)。
(处理4)签名生成算法Sig计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽签名密钥(u1,i,...,un-1,i)的操作。(处理5)签名生成算法Sig计算f”i(x1,...,xn)←f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)+f’i(x1,...,xn)。此计算相当于用多项式f’i(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)的操作。
(处理6)签名生成算法Sig生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,签名生成算法Sig计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理7)签名生成算法Sig生成数字w’i的散列值c2,i。即,签名生成算法Sig计算c2,i←H2(w’i)。(处理8)签名生成算法Sig生成多项式f”i的散列值c3,i。即,签名生成算法Sig计算c3,i←H3(f”i)。此外,所述的H1(...)、H2(...)和H3(...)是散列函数。
(处理9)签名生成算法Sig选择随机数R。(处理10)签名生成算法Sig对于i=1至N,通过将文档M、随机数R和散列值(c1,i,c2,i,c3,i)应用到散列函数H来生成d=(d1,...,dN)。即,签名生成算法Sig计算d=(d1,...,dN)←H(R,M,c1,1,...,c3,N)。(处理11)签名生成算法Sig根据所生成的di来生成信息σ1
然后,签名生成算法Sig对于i=1至N执行以下的(处理12)至(处理14)。(处理12)如果di=0,则签名生成算法Sig生成信息σi=wi。(处理13)如果di=1,则签名生成算法Sig生成信息σi=(w’i,z1,i,...,zn-1,i)。(处理14)如果di=2,则签名生成算法Sig生成信息σi=(f”i,z1,i,...,zn-1,i)。
(处理15)在针对i=1至N执行了以上的(处理12)至(处理14)的判决和处理之后,签名生成算法Sig输出包括随机数R、消息(c1,i,c2,i,c3,i)和信息σi(i=1至N)的数字签名σ=(R,c1,i,c2,i,c3,i,σ1,...,σN)。
(签名验证算法Ver)
如果对于i=1至N,以下的所有验证都通过,则签名验证算法Ver接受数字签名σ,但即使一个验证没有通过,签名验证算法Ver也会拒绝数字签名σ。此外,假定在签名验证算法Ver中输入数字签名σ和文档M。首先,签名验证算法Ver计算d=(d1,...,dN)←H(R,M,c1,1,...,c3,N)。接下来,签名验证算法Ver对于i=1至N执行以下的(验证1)至(验证3)。
(验证1)如果di=0,则签名验证算法Ver计算(r’1,i,...,r’n-1,i,w”i)←G1i)。接下来,签名验证算法Ver计算f′″i←G2(w”i)。然后,签名验证算法Ver验证等式c2,i=H2(w”i)是否成立。另外,签名验 证算法Ver验证等式c3,i=H3(f(x1+r’1,i(xn),...,xn-1,i+r’n-1,i(xn),xn)+f′″i(x1,...,xn))是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名σ的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值0。
(验证2)如果di=1,则签名验证算法Ver计算(w”i,z’1,i,...,z’n-1,i)←σi。接下来,签名验证算法Ver计算f′″i←G2(w”i)。然后,签名验证算法Ver 验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,签名验证算法Ver验证等式c2,i=H2(w”i)是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名σ的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值0。
(验证3)如果di=2,则签名验证算法Ver计算(f″″i,z’1,i,...,z’n-1,i)←σi。然后,签名验证算法Ver验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,签名验证算法Ver验证等式c3,i=H3(f″″i)是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名σ的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值0。
以上,已经描述了基于本方案的数字签名方案的每个算法结构。该数字签名方案以代数曲面上的片段找出问题作为安全性的基础,但是不包含像ASS-CC数字签名方案那样的安全性问题。此外,可以类似地构造基于上述的扩展方案的数字签名方案。
[2-6:具体示例]
接下来,将参考图10来描述在执行本方案时可以设想的具体算法结构。图10是用于描述本方案的具体示例的说明图。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的三个变量的D次多项式f0(x,y,t)和一个变量的多次多项式ux(t)和uy(t)。D次多项式f0(x,y,t)由以下的式 (8)表示。另外,一个变量的多次多项式ux(t)由以下的式(9)表示。另外,一个变量的多次多项式uy(t)由以下的式(10)表示。
[表达式7]
f 0 ( x , y , t ) = &Sigma; i + j + k &le; D a &prime; i , j , k x i y j t k . . . ( 8 )
u x ( t ) = &Sigma; i &le; D s u x , i t i . . . ( 9 )
u y ( t ) = &Sigma; i &le; D s u y , i t i . . . ( 10 )
接下来,密钥生成算法Gen计算c(t)←f0(ux(t),uy(t),t)。然后,密钥生成算法Gen计算f(x,y,t)=f0(x,y,t)-c(t),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(ux,uy)设定为私密密钥sk。此外,密钥生成算法Gen要生成的f对于除x0y0tk以外的项将是最大D次的,而对于x0y0tk项将是最大D+Ds次的。
(证明者算法P、验证者算法V)
接下来,将参考图10来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足(ux,uy)的f(ux(t),uy(t),t)”,而完全不向验证者泄漏关于(ux,uy)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P任意选择数字w。然后,证明者算法P通过将数字w应用到伪随机数生成器G1来生成一个变量的多项式rx(t),ry(t)和数字w’。即,证明者算法P计算(rx,ry,w’)←G1(w)。接下来,证明者算法P通过将数字w’应用到伪随机数生成器G2来生成三个变量的多项式f’(x,y,t)。即,证明者算法P计算f’←G2(w’)。此外,使得多项式f’的次数与多项式f的次数是相同的。即,其对于除x0y0tk以外的项将是最大D次的,而对于x0y0tk项将是最大D+Ds次的。
步骤1(继续):
接下来,证明者算法P计算(zx(t),zy(t))←(ux(t)-rx(t),uy(t)-ry(t))。此计算相当于用一个变量的多项式(rx,ry)来掩蔽私密密钥(ux,uy)的操作。另外,证明者算法P计算f”(x,y,t)←f(x+rx(t),y+ry(t),t)+f’(x,y,t)。此计算相当于用多项式f’(x,y,t)来掩蔽关于x,y和z的多项式f(x+rx(t),y+ry(t),t)的操作。应当注意,在f(x+rx(t),y+ry(t),t)中出现的与rx(t)和ry(t)有关的项全都被f’(x,y,t)掩蔽。
步骤1(继续):
接下来,证明者算法P生成f”(zx(t),zy(t),t)和zx,zy的散列值c1。即,证明者算法P计算c1←H1(f”(zx(t),zy(t),t),zx,zy)。另外,证明者算法P生成数字w’的散列值c2。即,证明者算法P计算c2←H2(w’)。另外,证明者算法P生成多项式f”的散列值c3。即,证明者算法P计算c3←H3(f”)。此外,所述的H1(...)、H2(...)和H3(...)是散列函数。另外,散列值(c1,c2,c3)是消息。
在步骤1中生成的消息(c1,c2,c3)被发送给验证者。
步骤2:
验证者算法V从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d∈{0,1,2}。
步骤3:
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。另外,如果d=1,则证明者算法P生成信息σ=(w’,zx,zy)。另外,如果d=2,则证明者算法P生成信息σ=(f”,zx,zy)。这样生成的信息σ被证明者算法P发送给验证者。
步骤4:
验证者算法V通过使用从证明者接收的信息σ来执行以下验证处理。
如果d=0,则验证者算法V计算(r’x,r’y,w”)←G1(σ)。另外,验证者算法V计算f′″←G2(w”)。然后,验证者算法V验证等式c2=H2(w”)是否成立。另外,验证者算法V验证等式c3=H3(f(x+r’x(t),y+r’y(t),t)+f′″(x,y,t))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值 1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’x,z’y)←σ。另外,验证者算法V计算f′″←G2(w”)。然后,验证者算法V验证等式c1=H1(f′″(z’x(t),z’y(t),t),z’x,z’y))是否成立。另外,验证者算法V验证等式c2=H2(w”)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果d=2,则验证者算法V计算(f″″,z’x,z’y)←σ。然后,验证者算法V验证等式c1=H1(f′″(z’x(t),z’y(t),t),z’x,z’y))是否成立。另外,验证者算法V验证等式c3=H3(f″″)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了在执行本方案时可以设想的具体算法结构。
<3:第二实施例>
接下来,将描述本发明的第二实施例。以上,已经描述了3遍公开密钥认证方案。在本实施例中,将描述5遍公开密钥认证方案(以下称为本方案)。本方案是通过使验证者的验证模式的数目为2q来确保公开密钥认证方案的健全性的方案。
此外,在根据上述第一实施例的3遍公开密钥认证方案中,每次交互协议的伪造概率为2/3。然而,在本方案中,每次交互协议的伪造概率将为1/2+1/q,如下所述。而且,q是要使用的环的阶数。因此,如图18所示,如果环的阶数足够大,则本方案更能够降低每次交互协议的伪造概率,并且通过执行少量次数的交互协议就可充分地降低伪造的概率。
根据5遍公开密钥认证方案的交互协议可能看起来没有根据3遍公开密钥认证方案的交互协议那么高效。然而,根据5遍公开密钥认证方案,如果使环的阶数足够大,那么每次交互协议的伪造概率将接近1/2,从而实现相同的安全性水平所需的交互协议执行次数将更少。
例如,在3遍公开密钥认证方案中,为了使伪造概率为1/2n以下,交互协议必须被执行n/(log3-1)=1.701n次以上。另一方面,在5遍公开密 钥认证方案中,交互协议必须被执行n/(1-log(1+1/q))次以上。如图18所示,例如,当q=24时,就实现相同的安全性水平所需的通信量而言,5遍公开密钥认证方案将少于3遍公开密钥认证方案。
[3-1:用于公开密钥认证方案的算法]
以下,将参考图11来描述根据5遍公开密钥认证方案(本方案)的算法结构。图11是用于描述根据本方案的算法的内容的说明图。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。
(证明者算法P、验证者算法V)
接下来,将参考图11来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P任意选择数字w。然后,证明者算法P通过将数字w应用到伪随机数生成器G来生成一个变量的多项式r1(t),...,rn-1(t)和n个变量的多项式f’(x1,...,xn)。即,证明者算法P计算(r1,...,rn-1,f’)←G(w)。接下来,证明者算法P计算(z1(t),...,zn-1(t))←(u1(t)-r1(t),...,un-1(t)-rn-1(t))。此计算相当于用一个变量的多项式(r1,...,rn-1)来掩蔽私密密钥(u1,...,un-1)的操作。
步骤1(继续):
接下来,证明者算法P生成f”(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值c1。即,证明者算法P计算c1←H1(f”(z1(t),...,zn-1(t),t),z1,...,zn-1)。另外,证明者算法P生成数字w的散列值c2。即,证明者算法P计算c2←H2(w)。此外,所述的H1(...)和H2(...)是散列函数。另外,散列值(c1,c2)是消息。
在步骤1中生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择一个随机数α。然后,验证者算法V将所选择的随机数α发送给证明者。
步骤3:
证明者算法P计算f”(x1,...,xn)←αf(x1+r1(xn),...,xn-1+rn-1(xn),xn)+f’(x1,...,xn)。此计算相当于用多项式f’(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1(xn),...,xn-1+rn-1(xn),xn)的操作。
在步骤3中生成的多项式f”被发送给验证者。
步骤4:
验证者算法V从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。另外,如果d=1,则证明者算法P生成信息σ=(z1,...,zn-1)。这样生成的信息σ被证明者算法P发送给验证者。
步骤6:
验证者算法V通过使用从证明者接收的信息σ来执行以下验证处理。
如果d=0,则验证者算法V计算(r’1,...,r’n-1,f′″)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式f”(x1,...,xn)=αf(x1+r’1(xn),...,xn-1+r’n-1(xn),xn)+f′″(x1,...,xn)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中 发生了失败的情况下输出表明认证失败的值0。
如果d=1,则验证者算法V计算(z’1,...,z’n-1)←σ。然后,验证者算法V验证等式c1=H1(f′″(z’1(t),...,z’n-1(t),t),z’1,...,z’n-1))是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
(补充)
而且,注意,在把上述步骤1和步骤3中生成的消息(c1,c2)和f”发送给验证者时,与私密密钥sk有关的信息、与(r1,...,rn-1)有关的信息和与(z1,...,zn-1)有关的信息完全不被泄漏给验证者。还要注意,在把上述步骤5中生成的信息σ发送给验证者时,在d=0的情况下与z1,...,zn-1有关的信息完全不被泄漏给验证者,并且在d=1的情况下与r1,...,rn-1有关的信息完全不被泄漏给验证者。
(本方案中的健全性)
本方案的健全性是通过如下方式来保证的:如果证明者算法P对于一组(c1,c2)和由验证者算法V选择的两类(α1,α2),正确地对要求d=0,1作出了响应,则可以根据这些响应来计算满足以下的式(11)至(13)的f″″1,f″″2,f′″,r’1,...,r’n-1,和z’1,...,z’n-1
[表达式8]
f1″″(x1,...,xn)=α1f(x1+r′1(xn),...,xn-1+r′n-1(xn),xn)
+f′″(x1,...,xn)
...(11)
f2″″(x1,...,xn)=α2f(x1+r′1(xn),...,xn-1+r′n-1(xn),xn)
+f′″(x1,...,xn)
...(12)
f1″″(z1(t),...,zn-1(t),t)=f2″″(z1(t),...,zn-1(t),t)
...(13)
如果保证了这种逻辑,就保证了只要没有解答代数曲面上的片段找出问题,则不可能以高于1/2+1/q的概率执行伪造。即,为了对验证者的所有要求d=0,1正确地作出响应,伪造者必须能够计算出满足以上的式(11)至(13)的f″″1,f″″2,f′″,r’1,...,r’n-1和z’1,...,z’n-1。换言之,伪造者必须能够计算出满足f(u1(t),...,un-1(t),t)=0的(u1,...,un-1)。因此,只要没有解答代数曲面上的片段找出问题,伪造者就不能够以高于1/2+1/q的概率成功执行伪造。此外,通过执行上述交互协议足够多次,伪造成功的概率可被降低到可忽略的水平。
(修改)
证明者算法P使用了f”(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值作为消息c1。但证明者算法P可以分开计算f”(z1(t),...,zn-1(t),t)的散列值和z1,...,zn-1的散列值,并且可以将其每一个作为消息分开发送给验证者。另外,上述证明者算法P通过向数字w应用伪随机数生成器G来生成一个变量的多项式r1(t),...,rn-1(t)和n个变量的多项式f’(x1,...,xn)。然而,证明者算法P可以从开始计算w=(r1(t),...,rn-1(t),f’),并且可以使G是恒等映射。另外,在此情况下,数字w不一定要被应用到G。
以上,已经描述了根据本方案的基本算法结构。
[3-2:扩展算法]
接下来,将参考图12来描述作为本方案的扩展(以下称为扩展方案)的公开密钥认证方案的算法。图12是用于描述基于扩展方案的交互协议的流程的说明图。此扩展方案是把在第三遍中要发送的多项式f”变换成一个散列值c3并且将其发送给验证者的方案。利用这种扩展,在交互协议中向验证者发送表示大小(representation size)较大的多项式f”的概率被降低到一半,并且要传输的数据的平均大小可得以减小。以下,将详细描述扩展方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。
(证明者算法P、验证者算法V)
接下来,将参考图12来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P任意选择数字w。然后,证明者算法P通过将数字w应用到伪随机数生成器G来生成一个变量的多项式r1(t),...,rn-1(t)和n个变量的多项式f’(x1,...,xn)。即,证明者算法P计算(r1,...,rn-1,f’)←G(w)。接下来,证明者算法P计算(z1(t),...,zn-1(t))←(u1(t)-r1(t),...,un-1(t)-rn-1(t))。此计算相当于用一个变量的多项式(r1,...,rn-1)来掩蔽私密密钥(u1,...,un-1)的操作。
步骤1(继续):
接下来,证明者算法P生成f”(z1(t),...,zn-1(t),t)和z1,...,zn-1的散列值c1。即,证明者算法P计算c1←H1(f”(z1(t),...,zn-1(t),t),z1,...,zn-1)。另外,证明者算法P生成数字w的散列值c2。即,证明者算法P计算c2←H2(w)。此外,所述的H1(...)和H2(...)是散列函数。另外,散列值(c1,c2)是消息。
在步骤1中生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择一个随机数α。然后,验证者算法V将所选择的随机数α发送给证明者。
步骤3:
证明者算法P计算f”(x1,...,xn)←αf(x1+r1(xn),...,xn-1+rn-1(xn),xn)+f’(x1,...,xn)。此计算相当于用多项式f’(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1(xn),...,xn-1+rn-1(xn),xn)的操作。另外,证明者算法P生成多项式f”的散列值c3。即,证明者算法P计算c3←H3(f”)。此外,所述的H3(...)是散列函数。另外,散列值c3是消息。
在步骤3中生成的消息c3被发送给验证者。
步骤4:
验证者算法V从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。另外,如果d=1,则证明者算法P生成信息σ=(z1,...,zn-1,f”)。这样生成的信息σ被证明者算法P发送给验证者。
步骤6:
验证者算法V通过使用从证明者接收的信息σ来执行以下验证处理。
如果d=0,则验证者算法V计算(r’1,...,r’n-1,f′″)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式c3=H3(αf(x1+r’1(xn),...,xn-1+r’n-1(xn),xn)+f′″(x1,...,xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果d=1,则验证者算法V计算(z’1,...,z’n-1,f′″)←σ。然后,验证者算法V验证等式c1=H1(f′″(z’1(t),...,z’n-1(t),t),z’1,...,z’n-1))是否成立。另外,验证者算法V验证等式c2=H2(f′″)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了扩展方案的交互协议的每个算法的处理。利用这种 扩展,在交互协议中向验证者发送表示大小较大的多项式f”的概率可被降低到一半,并且要传输的数据的平均大小可得以减小。
[3-3:并行算法]
现在,如上所述,当采用根据本方案或扩展方案的交互协议时,伪造成功的概率可被降低到1/2+1/q以下。因此,如果此交互协议被执行两次,则伪造成功的概率可被降低到(1/2+1/q)2以下。以相同的方式,如果此交互协议被执行N次,则伪造成功的概率变成(1/2+1/q)N,而如果N是足够大的数字(例如,N=80),则伪造成功的概率被降低到可忽略的水平。例如,将根据本方案的交互协议并行执行N次的算法在图13中示出。以下,将参考图13描述并行执行交互协议N次的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。注意,这里满足f0(u1(t),...,un-1(t),t)=0。
(证明者算法P、验证者算法V)
接下来,将参考图13来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P对于i=1至N执行以下的处理(1)至处理 (5)。(处理1)证明者算法P任意选择数字wi。(处理2)证明者算法P通过将数字wi应用到伪随机数生成器G来生成一个变量的多项式r1,i(t),...,rn-1,i(t)和多项式f’i(x1,...,xn)。即,证明者算法P计算(r1,i,...,rn-1,i,f’i)←G(wi)。(处理3)证明者算法P计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽私密密钥(u1,i,...,un-1,i)的操作。
步骤1(继续):
(处理4)证明者算法P生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,证明者算法P计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理5)证明者算法P生成数字w’i的散列值c2,i。即,证明者算法P计算c2,i←H2(w’i)。
在针对i=1至N执行了上述的(处理1)至(处理5)之后,在步骤1中生成的消息(c1,i,c2,i)(i=1至N)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择N个随机数α1,...,αN。然后,验证者算法V将所选择的随机数α1,...,αN发送给证明者。
步骤3:
证明者算法P对于i=1至N计算f”i(x1,...,xn)←αif(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)+f’i(x1,...,xn)。此计算相当于用多项式f’i(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)的操作。然后,证明者算法P将多项式f”1,...,f”N发送给验证者。
步骤4:
验证者算法V对于i=1至N中的每一个,从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求di∈{0,1}(i=1至N)。
步骤5:
证明者算法P响应于从验证者接收的要求di生成要发送回验证者的信息σi。这里证明者算法P对于i=1至N执行以下的(处理1)或(处理 2)。(处理1)如果di=0,则证明者算法P生成信息σi=wi。(处理2)如果di=1,则证明者算法P生成信息σi=(w’i,z1,i,...,zn-1,i)。在执行了以上的(处理1)或(处理2)的判决和处理之后,信息σi(i=1至N)被证明者算法P发送给验证者。
步骤6:
验证者算法V通过使用从证明者接收的信息σi(i=1至N)来执行以下验证处理。此外,以下处理是针对i=1至N执行的。
如果di=0,则验证者算法V计算(r’1,i,...,r’n-1,i,f′″i)←G1i)。然后,验证者算法V验证等式c2,i=H2i)是否成立。另外,验证者算法V验证等式f”i(x1,...,xn)=f(x1+r’1,i(xn),...,xn-1,i+r’n-1,i(xn),xn)+f′″i(x1,...,xn)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=1,则验证者算法V计算(z’1,i,...,z’n-1,i)←σi。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了并行执行本方案的交互协议的方法。如上所述,通过反复执行本方案的交互协议,可以将伪造成功的概率降低到可忽略的水平。此外,对于扩展方案,也可以类似地进行并行化。用于扩展方案的并行交互协议的算法结构在图14中示出。
(根据扩展方案的并行算法)
接下来,将参考图14来描述根据扩展方案的并行算法的内容。此外,密钥生成算法Gen的结构与根据本方案的并行算法的基本相同,对其的详细说明将被省略。
步骤1:
首先,证明者算法P对于i=1至N执行以下的处理(1)至处理(5)。(处理1)证明者算法P任意选择数字wi。(处理2)证明者算法P通过将数字wi应用到伪随机数生成器G来生成一个变量的多项式 r1,i(t),...,rn-1,i(t)和多项式f’i(x1,...,xn)。即,证明者算法P计算(r1,i,...,rn-1,i,f’i)←G(wi)。(处理3)证明者算法P计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽私密密钥(u1,i,...,un-1,i)的操作。
步骤1(继续):
(处理4)证明者算法P生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,证明者算法P计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理5)证明者算法P生成数字w’i的散列值c2,i。即,证明者算法P计算c2,i←H2(w’i)。
在针对i=1至N执行了上述的(处理1)至(处理5)之后,在步骤1中生成的消息(c1,i,c2,i)(i=1至N)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择N个随机数α1,...,αN。然后,验证者算法V将所选择的随机数α1,...,αN发送给证明者。
步骤3:
证明者算法P对于i=1至N计算f”i(x1,...,xn)←αif(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)+f’i(x1,...,xn)。此计算相当于用多项式f’i(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)的操作。然后,证明者算法P生成多项式f”1,...,f”N的散列值c3。即,证明者算法P计算c3←H3(f”1,...,f”N)。此外,所述的H3(...)是散列函数。另外,散列值c3是消息。
在步骤3中生成的消息c3被发送给验证者。
步骤4:
验证者算法V对于i=1至N中的每一个,从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求di∈{0,1}(i=1至N)。
步骤5:
证明者算法P响应于从验证者接收的要求di生成要发送回验证者的信息σi。这里,证明者算法P对于i=1至N执行以下的(处理1)或(处理 2)。(处理1)如果di=0,则证明者算法P生成信息σi=wi。(处理2)如果di=1,则证明者算法P生成信息σi=(w’i,z1,i,...,zn-1,i,f”i)。在执行了以上的(处理1)或(处理2)的判决和处理之后,信息σi(i=1至N)被证明者算法P发送给验证者。
步骤6:
验证者算法V通过使用从证明者接收的信息σi(i=1至N)来执行以下验证处理。此外,以下处理是针对i=1至N执行的。
如果di=0,则验证者算法V计算(r’1,i,...,r’n-1,i,f′″i)←G1i)。另外,验证者算法V计算f″″i←αif(x1+r’1,i(xn),...,xn-1+r’n-1,i(xn),xn)+f′″i(x1,...,xn)。然后,验证者算法V验证等式c2,i=H2i)是否成立。另外,验证者算法V验证等式c3=H3(f″″1,...,f″″N)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=1,则验证者算法V计算(z’1,i,...,z’n-1,i,f″″i)←σi。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。另外,验证者算法V验证等式c3=H3(f″″1,...,f″″N)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了根据扩展方案的并行算法的内容。
[3-4:非交互型算法]
以上,已经描述了5遍公开密钥认证方案。然而,在本方案中,从验证者发送到证明者的信息实际上只是一随机数,从而有可能修改到1遍公开密钥认证方案(以下称为非交互型方案)。此外,根据非交互型方案的每个算法的内容在图15中示出。以下,将参考图15来描述根据非交互型方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式 f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为私密密钥sk。注意,这里满足f0(u1(t),...,un-1(t),t)=0。
(证明者算法P、验证者算法V)
接下来,将参考图15来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(u1(t),...,un-1(t),t)的(u1,...,un-1)”,而完全不向验证者泄漏关于(u1,...,un-1)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P对于i=1至N执行以下的处理(1)至处理(5)。(处理1)证明者算法P任意选择数字wi。(处理2)证明者算法P通过将数字wi应用到伪随机数生成器G来生成一个变量的多项式r1,i(t),...,rn-1,i(t)和多项式f’i(x1,...,xn)。即,证明者算法P计算(r1,i,...,rn-1,i,f’i)←G(wi)。(处理3)证明者算法P计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽私密密钥(u1,i,...,un-1,i)的操作。
步骤1(继续):
(处理4)证明者算法P生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,证明者算法P计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理5)证明者算法P生成数字w’i的散列值c2,i。即,证明者算法P计算c2,i←H2(w’i)。
步骤1(继续):
接下来,证明者算法P选择随机数RA和RB。然后,证明者算法P通过将随机数RA和由以上的(处理4)和(处理5)计算出的散列值c1,i和 c2,i应用到散列函数HA来生成散列值α1,...,αN。即,证明者算法P计算(α1,...,αN)←HA(RA,c1,1,...,c2,N)。
步骤1(继续):
接下来,证明者算法P对于i=1至N执行以下的(处理1)和(处理2)。(处理1)证明者算法P计算f”i(x1,...,xn)←αif(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)+f’i(x1,...,xn)。此计算相当于用多项式f’i(x1,...,xn)来掩蔽关于x1,...,xn的多项式f(x1+r1,i(xn),...,xn-1+rn-1,i(xn),xn)的操作。(处理2)证明者算法P对于i=1至N,通过将随机数RA和RB、散列值(c1,i和c2,i)、αi和f”i应用到散列函数HB来生成d=(d1,...,dN)。即,证明者算法P计算(d1,...,dN)←HB(RA,RB,c1,1,...,c2,N,α1,...,αN,f”1,...,f”N)。
步骤1(继续):
接下来,证明者算法P根据所生成的di来生成要发送给验证者的信息σi。这里,证明者算法P对于i=1至N执行以下的(处理1)或(处理2)。(处理1)如果di=0,则证明者算法P生成信息σi=wi。(处理2)如果di=1,则证明者算法P生成信息σi=(z1,i,...,zn-1,i)。在执行了以上的(处理1)或(处理2)的判决和处理之后,RA、RB、αi、c1,i、c2,i、σi(i=1至N)被证明者算法P发送给验证者。
步骤2:
验证者算法V首先通过把从证明者接收RA、c1,i和c2,i应用到散列函数HA来生成αi。即,验证者算法V计算(α1,...,αN)←HA(RA,c1,1,...,c2,N)。接下来,验证者算法V计算d=(d1,...,dN)←HB(RA,RB,c1,1,...,c2,N,α1,...,αN,f”1,...,f”N)。然后,验证者算法V通过使用信息σi(i=1至N)来执行以下验证处理。此外,以下处理是针对i=1至N执行的。
如果di=0,则验证者算法V计算(r’1,i,...,r’n-1,i,f′″i)←G1i)。然后,验证者算法V验证等式c2,i=H2i)是否成立。另外,验证者算法V验证等式f”i(x1,...,xn)=αif(x1+r’1,i(xn),...,xn-1,i+r’n-1,i(xn),xn)+f′″i(x1,...,xn)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果di=1,则验证者算法V计算(z’1,i,...,z’n-1,i,f′″i)←σi。然后,验证者算法V验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了根据非交互型方案的每个算法的内容。此外,如果假定理想的散列函数HA和HB,则散列值αi和di将表现为随机的,从而不会出现对证明者来说方便的散列值αi和di。因此,即使在执行上述修改时,也确保了充分的安全性。此外,这种修改可类似地应用到扩展方案等等。
[3-5:修改成数字签名方案]
这里,将描述将本方案修改成数字签名方案的方法。此外,为了简单起见,这里将描述将上述非交互型方案修改成数字签名方案的方法。可以理解,当上述非交互型方案的证明者和验证者对应于数字签名方案的签名者和验证者时,与数字签名方案的模型有类似之处,即单是证明者就能够使验证者确信。考虑到这个概念,将详细描述基于非交互型方案的数字签名方案的算法结构。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的多次多项式f0(x1,...,xn)和一个变量的多次多项式u1(t),...,un-1(t)。接下来,密钥生成算法Gen计算c(t)←f0(u1(t),...,un-1(t),t)。然后,密钥生成算法Gen计算f(x1,...,xn)=f0(x1,...,xn)-c(xn),并将f设定为验证密钥pk。另外,密钥生成算法Gen将(u1,...,un-1)设定为签名密钥sk。注意,这里满足f0(u1(t),...,un-1(t),t)=0。
(签名生成算法Sig)
签名生成算法Sig对于i=1至N执行以下的处理(1)至处理(11)。此外,假定在签名生成算法Sig中输入签名密钥sk=(u1,...,un-1) 和文档M。
(处理1)签名生成算法Sig任意选择数字wi。(处理2)签名生成算法Sig通过将数字wi应用到伪随机数生成器G来生成一个变量的多项式r1,i(t),...,rn-1,i(t)和n个变量的多项式f’i(x1,...,xn)。即,签名生成算法Sig计算(r1,i,...,rn-1,i,f’i)←G(wi)。(处理2)签名生成算法Sig计算(z1,i(t),...,zn-1,i(t))←(u1,i(t)-r1,i(t),...,un-1,i(t)-rn-1,i(t))。此计算相当于用一个变量的多项式(r1,i,...,rn-1,i)来掩蔽签名密钥(u1,i,...,un-1,i)的操作。
(处理3)签名生成算法Sig生成f”i(z1,i(t),...,zn-1,i(t),t)和z1,i,...,zn-1,i的散列值c1,i。即,签名生成算法Sig计算c1,i←H1(f”i(z1,i(t),...,zn-1,i(t),t),z1,i,...,zn-1,i)。(处理4)签名生成算法Sig生成数字w’i的散列值c2,i。即,签名生成算法Sig计算c2,i←H2(w’i)。此外,所述的H1(...)和H2(...)是散列函数。
(处理4)签名生成算法Sig任意选择随机数RA。(处理5)签名生成算法Sig计算α=(α1,...,αN)←HA(RA,M,c1,1,...,c2,N)。(处理6)签名生成算法Sig对于i=1至N计算f”i(x1,...,xn)=αif(x1+r’1,i(xn),...,xn-1,i+r’n-1,i(xn),xn)+f’i(x1,...,xn)。(处理7)签名生成算法Sig任意选择随机数RB。(处理8)签名生成算法Sig计算d=(d1,...,dN)←HB(RB,M,c1,1,...,c2,N,α,f”1,...,f”N)。
接下来,签名生成算法Sig对于i=1至N,根据di来执行以下的接下来的(处理9)或(处理10)。(处理9)如果di=0,则签名生成算法Sig计算σi←wi。(处理10)如果di=1,则签名生成算法Sig计算σi←(z1,i,...,zn-1,i)。
(处理11)在对于i=1至N执行了以上的(处理9)或(处理10)的判决和处理之后,签名生成算法Sig输出数字签名σ=(RA,RB,c1,1,...,c2,N,α1,...,αN,f”1,...,f”N)。
(签名验证算法Ver)
如果对于i=1至N,以下的所有验证都通过,则签名验证算法Ver接受数字签名σ,但即使一个验证没有通过,签名验证算法Ver也会拒绝数 字签名σ。此外,假定在签名验证算法Ver中输入数字签名σ和文档M。首先,签名验证算法Ver计算α=(α1,...,αN)←HA(RA,M,c1,1,...,c3,N)。接下来,签名验证算法Ver计算d=(d1,...,dN)←H(R,M,c1,1,...,c3,N,α,f”1,...,f”N)。然后,签名验证算法Ver对于i=1至N执行以下的(验证1)和(验证2)。
(验证1)如果di=0,则签名验证算法Ver计算(r’1,i,...,r’n-1,i,f”i)←G(σi)。然后,签名验证算法Ver验证等式c2,i=H2i)是否成立。另外,签名验证算法Ver验证等式f”i(x1,...,xn)=αif(x1+r’1,i(xn),...,xn-1,i+r’n-1,i(xn),xn)+f’i(x1,...,xn)是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名σ的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值0。
(验证2)如果di=1,则签名验证算法Ver计算(z’1,i,...,z’n-1,i,f′″i)←σi。然后,签名验证算法Ver验证等式c1,i=H1(f′″i(z’1,i(t),...,z’n-1,i(t),t),z’1,i,...,z’n-1,i))是否成立。签名验证算法Ver在验证成功的情况下输出表明接受数字签名σ的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值0。
以上,已经描述了基于本方案的数字签名方案的每个算法结构。上述数字签名方案以代数曲面上的片段找出问题作为安全性的基础,但是不包含像ASS-CC数字签名方案那样的安全性问题。此外,可以类似地构造基于上述的扩展方案的数字签名方案。
[3-6:具体示例]
接下来,将参考图16来描述在执行本方案时可以设想的具体算法结构。图16是用于描述本方案的具体示例的说明图。
(密钥生成算法Gen)
钥生成算法Gen生成在环K上定义的三个变量的D次多项式f0(x,y,t)和一个变量的多次多项式ux(t)和uy(t)。此外,D次多项式f0(x,y,t)被表示为由以下的式(14)。另外,一个变量的多次多项式ux(t)被表示为以下的式 (15)。另外,一个变量的多次多项式uy(t)被表示为以下的式(16)。
[表达式9]
f 0 ( x , y , t ) = &Sigma; i + j + k &le; D a &prime; i , j , k x i y j t k . . . ( 14 )
u x ( t ) = &Sigma; i &le; D s u x , i t i . . . ( 15 )
u y ( t ) = &Sigma; i &le; D s u y , i t i . . . ( 16 )
接下来,密钥生成算法Gen计算c(t)←f0(ux(t),uy(t),t)。然后,密钥生成算法Gen计算f(x,y,t)=f0(x,y,t)-c(t),并将f设定为公开密钥pk。另外,密钥生成算法Gen将(ux,uy)设定为私密密钥sk。此外,密钥生成算法Gen要生成的f对于除x0y0tk以外的项将是最大D次的,而对于x0y0tk项将是最大D+Ds次的。
(证明者算法P、验证者算法V)
接下来,将参考图16来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(ux(t),uy(t),t)的(ux,uy)”,而完全不向验证者泄漏关于(ux,uy)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:
首先,证明者算法P任意选择数字w。然后,证明者算法P通过将数字w应用到伪随机数生成器G来生成一个变量的多项式rx(t)和ry(t)和三个变量的多项式f’(x,y,t)。即,证明者算法P计算(rx,ry,f’)←G(w)。接下来,证明者算法P计算(zx(t),zy(t))←(ux(t)-rx(t),uy(t)-ry(t))。此计算相当于用一个变量的多项式(rx,ry)来掩蔽私密密钥(ux,uy)的操作。
步骤1(继续):
接下来,证明者算法P生成f”(zx(t),zy(t),t)和zx,zy的散列值c1。即,证明者算法P计算c1←H1(f”(zx(t),zy(t),t),zx,zy)。另外,证明者算法P生成数字w的散列值c2。即,证明者算法P计算c2←H2(w)。此外,所述的H1(...) 和H2(...)是散列函数。另外,散列值(c1,c2)是消息。
在步骤1中生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的元素中选择一个随机数α。然后,验证者算法V将所选择的随机数α发送给证明者。
步骤3:
证明者算法P计算f”(x,y,t)←αf(x+rx(t),y+ry(t),t)+f’(x,y,t)。此计算相当于用多项式f’(x,y,t)来掩蔽关于x,y,t的多项式f(x+rx(t),...,y+ry(t),t)的操作。
在步骤3中生成的消息f”被发送给验证者。
步骤4:
验证者算法V从两种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。另外,如果d=1,则证明者算法P生成信息σ=(zx,zy)。这样生成的信息σ被证明者算法P发送给验证者。
步骤6:
验证者算法V通过使用从证明者接收的信息σ来执行以下验证处理。
如果d=0,则验证者算法V计算(r’x,r’y,f′″)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式f”(x,y,t)=αf(x+r’x(t),y+r’y(t),t)+f′″(x,y,t)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
如果d=1,则验证者算法V计算(z’x,z’y)←σ。然后,验证者算法V验证等式c1=H1(f′″(z’x(t),z’y(t),t),z’x,z’y))是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。
以上,已经描述了在执行本方案时可以设想的具体算法结构。
<4:硬件配置的示例>
上述每个算法可利用例如图17所示的信息处理装置的硬件配置来执行。即,每个算法的处理可通过利用计算机程序控制图17所示的硬件来实现。此外,此硬件的模式是任意的,并且可以是个人计算机、移动信息终端(比如移动电话、PHS或PDA)、游戏机、接触式或非接触式IC芯片、接触式或非接触式IC卡、或者各类信息家电。而且,PHS是个人手持电话系统的缩写。另外,PDA是个人数字助理的缩写。
如图17所示,此硬件主要包括CPU 902、ROM 904、RAM 906、主机总线908、以及桥接器910。另外,此硬件包括外部总线912、接口914、输入单元916、输出单元918、存储单元920、驱动器922、连接端口924、以及通信单元926。而且,CPU是中央处理单元的缩写。另外,ROM是只读存储器的缩写。此外,RAM是随机访问存储器的缩写。
CPU 902例如充当运算处理单元或控制单元,并且基于记录在ROM904、RAM 906、存储单元920或可移除记录介质928上的各种程序来控制每个结构元件的全部操作或一部分操作。ROM 904是用于存储例如要加载到CPU 902上的程序或者在运算操作中要使用的数据等等的装置。RAM 906临时或永久地存储例如要加载到CPU 902上的程序或者程序执行中任意改变的各种参数等等。
这些结构元件例如通过能够执行高速数据传输的主机总线908相互连接。就其本身而言,主机总线908例如通过桥接器910连接到数据传输速度相对较低的外部总线912。另外,输入单元916例如是鼠标、键盘、触摸面板、按钮、开关或控制杆。另外,输入单元916可以是能够利用红外线或其他无线电波来发送控制信号的遥控器。
输出单元918例如是能够从视觉上或听觉上将所获取的信息通知给用户的显示装置(比如CRT、LCD、PDP或ELD)、音频输出装置(比如扬声器或耳机)、打印机、移动电话、或者传真机。而且,CRT是阴极射线管的缩写。LCD是液晶显示器的缩写。PDP是等离子显示面板的缩写。 另外,ELD是电致发光显示器的缩写。
存储单元920是用于存储各种数据的装置。存储单元920例如是磁存储装置(比如硬盘驱动器(HDD))、半导体存储装置、光存储装置、或磁光存储装置。HDD是硬盘驱动器的缩写。
驱动器922是读取可移除记录介质928(例如磁盘、光盘、磁光盘或半导体存储器)上记录的信息或者在可移除记录介质928中写入信息的装置。可移除记录介质928例如是DVD介质、蓝光介质、HD-DVD介质、各类半导体存储介质,等等。当然,可移除记录介质928例如可以是其上安装有非接触式IC芯片的IC卡或电子装置。IC是集成电路的缩写。
连接端口924是一个端口,例如USB端口、IEEE1394端口、SCSI、RS-232C端口、或者用于连接外部连接装置930的端口(比如光音频端子)。外部连接装置930例如是打印机、移动音乐播放器、数码相机、数码摄像机、或者IC记录器。而且,USB是通用串行总线的缩写。另外,SCSI是小型计算机系统接口的缩写。
通信单元926是要连接到网络932的通信装置,并且例如是用于有线或无线LAN、蓝牙(注册商标)或WUSB的通信卡、光通信路由器、ADSL路由器、或者用于接触式或非接触式通信的装置。连接到通信单元926的网络932是由有线连接的或无线连接的网络构成的,并且例如是因特网、家用LAN、红外通信、可见光通信、广播、或者卫星通信。而且,LAN是局域网的缩写。另外,WUSB是无线USB的缩写。此外,ADSL是非对称数字订户线的缩写。
<5:总结>
最后,将简要描述根据本发明实施例的技术内容。这里所述的技术内容可应用到各种信息处理装置,例如个人计算机、移动电话、便携式游戏机、便携式信息终端、信息家电、车辆导航系统,等等。
上述信息处理装置的功能配置可如下来表述。此信息处理装置包括如下的密钥设定单元、消息发送单元、验证模式接收单元、以及响应发送单元。密钥设定单元用于将多次多项式ui(t)(i=1至n-1)设定成私密密 钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥。找出满足f(u1(t),...,un-1(t),t)的多次多项式ui(t)的问题就是代数曲面上的片段找出问题。即,上述信息处理装置用于提供以代数曲面上的片段找出问题作为安全性基础的认证的机制。
另外,消息发送单元用于将消息c发送给验证者。另外,验证模式接收单元用于接收关于由验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式的信息。另外,响应发送单元用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。而且,响应信息是在通过利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。
消息c例如包括三个消息c1、c2和c3。另外,通过每个验证模式执行针对c1、c2和c3中的任何两个的验证。另外,响应信息是根据验证模式对任何两个消息执行验证所必需的信息。而且,一个条件是,即使将消息c交付给验证者,也不泄漏关于私密密钥的信息。另一个条件是,即使提供了消息c和响应信息两者,也不泄漏关于私密密钥的信息。已参考图6等等具体描述了满足这些条件的消息c的结构和响应信息的结构。
(注意)
密钥生成算法Gen是密钥设定单元的示例。证明者算法P是消息发送单元、验证模式接收单元、响应发送单元、答复接收单元、多项式生成单元和多项式发送单元的示例。信息σ是响应信息的示例。验证者算法V是消息接收单元、验证模式选择单元、验证模式发送单元、响应接收单元、验证单元、答复送单元和多项式接收单元的示例。签名生成算法Sig是消息生成单元、验证模式选择单元和签名生成单元的示例。
本领域的技术人员应当理解,取决于设计要求和其他因素,可以进行各种修改、组合、子组合和变更,只要它们处于所附权利要求或其等同物的范围之内即可。
本申请包含与2010年5月31日向日本专利局提交的日本优先权专利申请JP 2010-125021中公开的主题相关的主题,特此通过引用将该申请的全部内容并入。

Claims (13)

1.一种认证装置,包括:
密钥设定单元,被配置成针对公开密钥认证方案,将多次多项式ui(t)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f设定成公开密钥,其中i=1至n-l;
消息发送单元,被配置成将消息c发送给验证者;
验证模式接收单元,被配置成接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k≥3;以及
响应发送单元,被配置成向所述验证者发送k类响应信息之中的与由所述验证模式接收单元接收的关于验证模式的信息相对应的响应信息,
其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui(t)的信息,
其中,在所述消息c=(cl,...,cm)的情况下,
所述消息发送单元利用单向函数H来计算新的消息c’=H(c),并将所述消息c’发送给所述验证者,并且
所述响应发送单元将所述消息c的一元素与所述响应信息一起发送,其中所述元素是即使所述验证者使用该响应信息也不能恢复的元素。
2.根据权利要求1所述的认证装置,
其中,如果当执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第二步骤和由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤时,所述验证者对于所有的响应信息都成功执行了验证,则认证成功。
3.根据权利要求2所述的认证装置,
其中,执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第二步骤和由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤的处理被重复,并且
其中,如果当执行所述第一步骤至第三步骤预定次数时,所述验证者每次对于所有的响应信息都成功执行了验证,则认证成功。
4.一种认证装置,包括:
消息接收单元,被配置成从证明者接收消息c;
验证模式选择单元,被配置成针对一个消息c,从k个验证模式中选择一个验证模式,其中k≥3:
验证模式发送单元,被配置成把关于由所述验证模式选择单元选择的验证模式的信息发送给所述证明者;
响应接收单元,被配置成从所述证明者接收k类响应信息之中的与由所述验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及
验证单元,被配置成利用由所述消息接收单元接收的消息c和由所述响应接收单元接收的响应信息来验证所述证明者的合法性,
其中,针对公开密钥认证方案,多次多项式ui(t)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f被设定成公开密钥,其中i=1至n-l,并且
其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui(t)的信息,
其中,在所述消息c=(cl,...,cm)的情况下,利用单向函数H来计算新的消息c’=H(c),且所述消息接收单元被配置成从证明者接收消息c’=H(c),并且
所述响应接收单元一起接收所述消息c的一元素与所述响应信息,其中所述元素是即使所述认证装置使用该响应信息也不能恢复的元素。
5.一种认证装置,包括:
密钥设定单元,被配置成针对公开密钥认证方案,将多次多项式ui(t)设定成私密密钥,并且将满足f(u1(t),un-1(t),t)=0的多次多变量多项式f设定成公开密钥,其中i=1至n-l;
消息发送单元,被配置成将采用单向函数H基于任意数字w、多次多变量多项式f和多次多项式ui(t)生成散列值得到的消息c发送给验证者;
答复接收单元,被配置成从所述验证者接收答复α;
多项式生成单元,被配置成利用由所述答复接收单元接收的答复α来生成要用于对所述消息c的验证的多项式f″;
多项式发送单元,被配置成把由所述多项式生成单元生成的多项式f″发送给所述验证者;
验证模式接收单元,被配置成接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k≥2;以及
响应发送单元,被配置成向所述验证者发送k类响应信息之中的与由所述验证模式接收单元接收的关于验证模式的信息相对应的响应信息,
其中,所述响应信息是在利用两类答复α、所述多项式f″以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui(t)的信息。
6.根据权利要求5所述的认证装置,
其中,如果当执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述答复接收单元对于每个消息c接收答复α的第二步骤、由所述多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f″并且由所述多项式发送单元发送该多项式f″的第三步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第四步骤以及由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤时,所述验证者对于所有的响应信息都成功执行了验证,则认证成功。
7.根据权利要求6所述的认证装置,
其中,执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述答复接收单元对于每个消息c接收答复α的第二步骤、由所述多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f″并且由所述多项式发送单元发送该多项式f″的第三步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第四步骤以及由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤的处理被重复,并且
其中,如果当执行所述第一步骤至第五步骤预定次数时,所述验证者每次对于所有的响应信息都成功执行了验证,则认证成功。
8.一种认证装置,包括:
消息接收单元,被配置成从证明者接收消息c;
答复发送单元,被配置成将答复α发送给所述证明者;
多项式接收单元,被配置成接收多项式f″,该多项式f″是由所述证明者利用由所述答复发送单元发送的答复α生成的并且用于对所述消息c的验证;
验证模式选择单元,被配置成针对一个消息c,从k个验证模式中选择一个验证模式,其中k≥2;
验证模式发送单元,被配置成向所述证明者发送关于由所述验证模式选择单元选择的验证模式的信息;
响应接收单元,被配置成从所述证明者接收k类响应信息之中的与由所述验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及
验证单元,被配置成利用由所述消息接收单元接收的消息c、由所述多项式接收单元接收的多项式f″以及由所述响应接收单元接收的响应信息来验证所述证明者的合法性,
其中,针对公开密钥认证方案,多次多项式ui(t)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f被设定成公开密钥,其中i=1至n-l,并且
其中,所述响应信息是在利用两类答复α、所述多项式f″以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui(t)的信息,
消息c是采用单向函数H基于任意数字w、多次多变量多项式f和多次多项式ui(t)生成散列值得到的。
9.一种认证方法,包括以下步骤:
针对公开密钥认证方案,将多次多项式ui(t)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f设定成公开密钥,其中i=1至n-1;
将消息c发送给验证者;
接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k≥3;以及
向所述验证者发送k类响应信息之中的与在接收步骤中接收的关于验证模式的信息相对应的响应信息,
其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui(t)的信息,
其中,在所述消息c=(cl,...,cm)的情况下,利用单向函数H来计算新的消息c’=H(c),并将所述消息c’发送给所述验证者,并且
将所述消息c的一元素与所述响应信息一起发送,其中所述元素是即使所述验证者使用该响应信息也不能恢复的元素。
10.一种认证方法,包括以下步骤:
从证明者接收消息c;
针对一个消息c,从k个验证模式中选择一个验证模式,其中k≥3;
把关于在选择步骤中选择的验证模式的信息发送给所述证明者;
从所述证明者接收k类响应信息之中的与在发送步骤中发送的关于验证模式的信息相对应的响应信息;以及
利用在接收消息c的步骤中接收的消息c和在接收响应信息的步骤中接收的响应信息来验证所述证明者的合法性,
其中,针对公开密钥认证方案,多次多项式ui(t)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f被设定成公开密钥,其中i=1至n-l,并且
其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui(t)的信息,
其中,在所述消息c=(cl,...,cm)的情况下,利用单向函数H来计算新的消息c’=H(c),并从证明者接收所述消息c’,并且
一起接收所述消息c的一元素与所述响应信息,其中所述元素是即使使用该响应信息也不能恢复的元素。
11.一种认证方法,包括以下步骤:
针对公开密钥认证方案,将多次多项式ui(t)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f设定成公开密钥,其中i=1至n-1;
将采用单向函数H基于任意数字w、多次多变量多项式f和多次多项式ui(t)生成散列值得到的消息c发送给验证者;
从所述验证者接收答复α;
利用在接收答复α的步骤中接收的答复α来生成要用于对所述消息c的验证的多项式f″;
把在生成步骤中生成的多项式f″发送给所述验证者;
接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k≥2;以及
向所述验证者发送k类响应信息之中的与在接收关于验证模式的信息的步骤中接收的关于验证模式的信息相对应的响应信息,
其中,所述响应信息是在利用两类答复α、所述多项式f″以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui(t)的信息。
12.一种认证方法,包括以下步骤:
从证明者接收消息c;
将答复α发送给所述证明者;
接收多项式f″,该多项式f″是由所述证明者利用在发送答复α的步骤中发送的答复α生成的并且用于对所述消息c的验证;
针对一个消息c,从k个验证模式中选择一个验证模式,其中k≥2;
向所述证明者发送关于在选择步骤中选择的验证模式的信息;
从所述证明者接收k类响应信息之中的与在发送关于验证模式的信息的步骤中发送的关于验证模式的信息相对应的响应信息;以及
利用在接收消息c的步骤中接收的消息c、在接收多项式f″的步骤中接收的多项式f″以及在接收响应信息的步骤中接收的响应信息来验证所述证明者的合法性,
其中,针对公开密钥认证方案,多次多项式ui(t)被设定成私密密钥,并且满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f被设定成公开密钥,其中i=1至n-l,并且
其中,所述响应信息是在利用两类答复α、所述多项式f″以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共2k个组合全都成功的情况下使能计算私密密钥ui(t)的信息,
消息c是采用单向函数H基于任意数字w、多次多变量多项式f和多次多项式ui(t)生成散列值得到的。
13.一种签名生成装置,包括:
密钥设定单元,被配置成针对公开密钥认证方案,将多次多项式ui(t)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多变量多项式f设定成公开密钥,其中i=1至n-1;
消息生成单元,被配置成采用单向函数H基于任意数字w、多次多变量多项式f和所述多次多项式ui(t)生成散列值得到N个消息c;
验证模式选择单元,被配置成基于通过将文档M和所述消息c应用到单向函数而获得的信息来从kN个验证模式中选择验证模式,其中k≥3;以及
签名生成单元,被配置成根据由所述验证模式选择单元选择的验证模式,生成将通过使用所述消息c和所述文档M的验证的数字签名σ,
其中,所述数字签名σ是在利用与(k-1)N+1个验证模式相对应的数字签名σ执行的所有验证都成功的情况下使能计算私密密钥ui(t)的信息。
CN201110145045.4A 2010-05-31 2011-05-24 认证装置、认证方法和签名生成装置 Expired - Fee Related CN102263639B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-125021 2010-05-31
JP2010125021A JP5593850B2 (ja) 2010-05-31 2010-05-31 認証装置、認証方法、プログラム、及び署名生成装置

Publications (2)

Publication Number Publication Date
CN102263639A CN102263639A (zh) 2011-11-30
CN102263639B true CN102263639B (zh) 2016-08-24

Family

ID=45010113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110145045.4A Expired - Fee Related CN102263639B (zh) 2010-05-31 2011-05-24 认证装置、认证方法和签名生成装置

Country Status (3)

Country Link
US (2) US8433912B2 (zh)
JP (1) JP5593850B2 (zh)
CN (1) CN102263639B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790286B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP5790287B2 (ja) 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP6069852B2 (ja) * 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP2014090372A (ja) 2012-10-31 2014-05-15 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
US9516007B2 (en) * 2012-12-05 2016-12-06 Sony Corporation Verifier and prover have an authentication protocol with challenge-response with the challenge from prover having identification of the verifier
US9054800B2 (en) 2013-09-11 2015-06-09 Symbol Technologies, Llc Staging a mobile device with visible light communication
CN104009848B (zh) * 2014-05-26 2017-09-29 华南理工大学 一种混合型的多变量数字签名系统及方法
US10021075B1 (en) * 2016-06-23 2018-07-10 EMC IP Holding Company LLC Multiple data center data security
PL3497522T3 (pl) * 2016-08-09 2021-11-08 Innogy Innovation Gmbh System automatyzacji budynku
US10623384B2 (en) 2017-06-12 2020-04-14 Daniel Maurice Lerner Combined hidden dynamic random-access devices utilizing selectable keys and key locators for communicating randomized data together with sub-channels and coded encryption keys
CN107566125A (zh) * 2017-09-01 2018-01-09 捷德(中国)信息科技有限公司 一种多算法结合的安全认证方法
CN108282470B (zh) * 2018-01-09 2020-11-10 安庆师范大学 一种网络图形验证方法及验证系统
CN109245897B (zh) * 2018-08-23 2020-06-19 北京邮电大学 一种基于非交互的零知识证明的节点认证方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954548A (zh) * 2005-04-18 2007-04-25 松下电器产业株式会社 签名生成装置及签名验证装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE518327T1 (de) * 1999-10-01 2011-08-15 Phentam Dire Nv Llc Verfahren, system und vorrichtung zum beweis der authentizität einer einheit oder der integrität einer nachricht
EP1451967A1 (en) * 2001-12-07 2004-09-01 NTRU Cryptosystems, Inc. Digital signature and authentication method and apparatus
US8046832B2 (en) * 2002-06-26 2011-10-25 Microsoft Corporation Spam detector with challenges
FR2865590A1 (fr) * 2004-01-23 2005-07-29 France Telecom Procede pour etablir, a partir d'un jeu de grands nombres premiers, un jeu de cles destine a prouver l'authenticite d'une entite ou l'integrite d'un message
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
FR2899702A1 (fr) * 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
CN101410847B (zh) * 2006-06-30 2011-11-09 国际商业机器公司 在移动设备处的消息处理方法以及移动设备和智能卡
JP4834650B2 (ja) * 2007-11-22 2011-12-14 パナソニック株式会社 情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954548A (zh) * 2005-04-18 2007-04-25 松下电器产业株式会社 签名生成装置及签名验证装置

Also Published As

Publication number Publication date
JP2011254155A (ja) 2011-12-15
US8433912B2 (en) 2013-04-30
US20130219185A1 (en) 2013-08-22
CN102263639A (zh) 2011-11-30
JP5593850B2 (ja) 2014-09-24
US8826025B2 (en) 2014-09-02
US20110296189A1 (en) 2011-12-01

Similar Documents

Publication Publication Date Title
CN102263639B (zh) 认证装置、认证方法和签名生成装置
CN102263638B (zh) 认证设备、认证方法和签名生成设备
CN105577368B (zh) 双向隐私保护的医疗诊断服务查询系统及方法
CN104011781B (zh) 信息处理设备、信息处理方法
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
US9276735B2 (en) Information processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
CN102957538A (zh) 信息处理设备和信息处理方法
CN103718501B (zh) 信息处理设备和信息处理方法
CN103155480B (zh) 认证装置和认证方法
TWI511517B (zh) Information processing apparatus, information processing method, program and recording medium
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
WO2013129084A1 (ja) 情報処理装置、情報処理方法、及びプログラム
US20140208110A1 (en) Information processing apparatus, signature generation apparatus, signature verification apparatus, information processing method, signature generation method, and signature verification method
Tang et al. Efficient non-interactive verifiable outsourced computation for arbitrary functions
WO2013024627A1 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
US9184914B2 (en) Information processing apparatus and information processing method
JP2012019327A (ja) 本人性証明システム、検証装置、本人性証明方法
US9490978B2 (en) Information processing apparatus and information processing method
Shao et al. Practical verifiably encrypted signature based on Waters signatures
Iraklis et al. Secure and collusion-resistant data aggregation from convertible tags
Leontiadis et al. Collusion Resistant Aggregation from Convertible Tags

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160824

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