CN103718228B - 信息处理设备和信息处理方法 - Google Patents

信息处理设备和信息处理方法 Download PDF

Info

Publication number
CN103718228B
CN103718228B CN201280037657.4A CN201280037657A CN103718228B CN 103718228 B CN103718228 B CN 103718228B CN 201280037657 A CN201280037657 A CN 201280037657A CN 103718228 B CN103718228 B CN 103718228B
Authority
CN
China
Prior art keywords
algorithm
message
information
verifier
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.)
Active
Application number
CN201280037657.4A
Other languages
English (en)
Other versions
CN103718228A (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 CN103718228A publication Critical patent/CN103718228A/zh
Application granted granted Critical
Publication of CN103718228B publication Critical patent/CN103718228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/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

Landscapes

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

Abstract

[问题]实现高度安全的公开秘钥认证方案。[解决方案]提供了一种信息处理设备:基于在环(K)上定义的多阶多元多项式集合(F=(f1,…,fm))和向量s(s∈Kn)生成消息;将所述消息提供给验证者,验证者知道多阶多元多项式集合(F)和向量y(y=(y1,…,ym)=(f1(s),…,fm(s)));以及向所述验证者提供响应信息,响应信息对应于验证者从k(其中k≥3)个验证模式中选择的验证模式。向量s构成秘密密钥,多阶多元多项式集合(F)和向量y构成公开密钥,消息包括通过利用秘密密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,并且多元多项式集合(F)是使用针对每个用户而不同的信息生成的。

Description

信息处理设备和信息处理方法
技术领域
本技术涉及信息处理设备和信息处理方法。
背景技术
随着信息处理技术和通信技术的快速发展,文档被快速数字化,无论该文档是公开的还是私人的。随着这些文档的数字化,许多个人和公司对电子文档的安全性管理具有相当大的关注。响应于该关注的增加,在各个领域中已经积极研究了针对诸如窃取或伪造电子文档的篡改行为的措施。关于对电子文件的窃取,例如通过加密电子文档来确保安全性。另外,关于对电子文件的伪造,例如通过使用数字签名来确保安全性。然而,当要使用的加密或数字签名不具有高防篡改性时,不能确保足够的安全性。
数字签名用于指定电子文档的作者。因此,数字签名应仅能够由电子文档的作者生成。如果恶意第三方能够生成相同的数字签名,则这样的第三方可以模仿电子文档的作者。即,电子文档被恶意第三方伪造。关于防止这样的伪造的数字签名的安全性,已经表达了各种观点。作为目前广泛使用的数字签名方案,例如已知RSA签名方案和DSA签名方案。
RSA签名方案采用“大合数的质因数分解(下文中为质因数分解问题)的难度”作为安全性基础。另外,DSA签名方案采用“求解离散对数问题的难度”作为安全性的基础。这些基础基于不存在通过使用传统计算机高效地求解质因数分解问题和离散对数问题的算法。即,上述难度提出了传统计算机的计算难度。然而,据说当使用量子计算机时,可以高效地计算质因数分解问题和离散对数问题的解。
类似于RSA签名方案和DSA签名方案,目前采用的数字签名方案和公开密钥认证方案中的多种方案也采用质因数分解问题或离散对数问题的难度作为安全性基础。因此,如果量子计算机投入实际使用,则这样的数字签名方案和公开密钥认证方案的安全性将不能确保。从而,期望实现新的数字签名方案和公开密钥认证方案,其采用与可通过量子计算机容易求解的诸如质因数分解问题和离散对数问题的问题不同的问题作为安全性的基础。作为不能通过量子计算机容易求解的问题,例如存在关于多元多项式的问题。
例如,作为采用多元多项式问题作为安全性基础的数字签名方案,已知基于Matsumoto-Imai(MI)密码、隐藏域方程(HFE)密码、油醋(Oil-Vinegar,OV)签名方案、以及温顺变换方法(TamedTransformationMethod,TTM)密码的数字签名方案。例如,在下面的非专利文献1和2中公开了基于HFE的数字签名方案。
引用列表
非专利文献
非专利文献1:JacquesPatarin,AsymmetricCryptographywithaHiddenMonomial,CRYPTO1996,pp.45-60。
非专利文献2:Patarin,J.,Courtois,N.,andGoubin,L.,QUARTZ,128-BitLongDigitalSignatures,InNaccache,D.,Ed。TopicsinCryptology-CT-RSA2001(SanFrancisco,CA,USA,April2001),vol.2020ofLectureNotesinComputerScience,Springer-Verlag.,pp.282-297。
发明内容
技术问题
如上所述,多元多项式问题是即使在使用量子计算机时也难以求解的被称为NP困难问题的问题的示例。通常,使用以HFE等为代表的多元多项式问题的公开密钥认证方案使用具有特定陷门的多阶多元联立方程。例如,提供关于x1,…,xn的多阶多元联立方程F(x1,…,xn)=y和线性转换A和B,并秘密地管理线性转换A和B。在该情况下,多阶多元联立方程F和线性转换A和B为陷门。
知道陷门F、A和B的实体可以求解关于x1,…,xn的方程B(F(A(x1,…,xn)))=y’。另一方面,不知道陷门F、A和B的实体不能求解关于x1,…,xn的方程B(F(A(x1,…,xn)))=y’。通过使用该机制,可以实现采用求解多阶多元联立方程的难度作为安全性基础的公开密钥认证方案和数字签名方案。
如上所述,为了实现公开密钥认证方案或数字签名方案,需要准备满足B(F(A(x1,…,xn)))=y的特定多阶多元联立方程。另外,在签名生成时,需要求解多阶多元联立方程F。为此,可用的多阶多元联立方程F已经限于相对容易可解的方程。即,在过去的方案中,仅仅使用了可以相对容易求解的三个函数(陷门)B、F和A的组合形式的多阶多元联立方程B(F(A(x1,…,xn)))=y,因此难以确保足够的安全性。
期望提供一种新颖的和改善的信息处理设备和信息处理方法,并且能够使用高效求解方法(陷门)未知的多阶多元联立方程实现具有高安全性的公开密钥认证方案或数字签名方案。
解决问题的技术方案
根据本技术的一个方面,提供了一种信息处理设备,包括:消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;消息提供单元,将消息提供到验证者,所述验证者保存所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥3)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种信息处理设备,包括:信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s));消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;模式信息提供单元,向已提供了消息的证明者提供关于从k个(k≥3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及验证单元,基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种信息处理设备,包括:消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;消息提供单元,将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及中间信息生成单元,利用由验证者随机选择的第一信息和在生成消息时获得的第二信息来生成第三信息;中间信息提供单元,向所述验证者提供第三信息;以及响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥2)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种信息处理设备,包括:信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s));消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;信息提供单元,向已提供了消息的证明者提供随机选择的第一信息;中间信息获取单元,获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;模式信息提供单元,向证明者提供关于从k个(k≥3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及验证单元,基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种信息处理方法,包括:基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥3)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s)),所述信息处理方法包括:获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;向已提供了消息的证明者提供关于从k个(k≥3)验证模式中随机选择的单个验证模式的信息;从所述证明者获取对应于选择的验证模式的响应信息;以及基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种信息处理方法,包括:基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));利用由验证者随机选择的第一信息和在生成消息时获得的第二信息生成第三信息;向验证者提供第三信息;以及向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥2)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s)),所述信息处理方法包括:获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;向已提供了消息的证明者提供随机选择的第一信息;获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;向证明者提供从k个(k≥3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
根据本技术的另一方面,提供了一种用于使得计算机实现包括在所述信息处理设备中的每个单元的功能的程序。根据本技术的另一方面,提供了一种记录有程序的计算机可读记录介质。
发明的有益效果
根据上述本技术,可以利用高效求解方法(陷门)未知的多阶多元联立方程实现高安全性的公开密钥认证方案和数字签名方案。
附图说明
[图1]图1为用于描述公开密钥认证方案的算法结构的说明图;
[图2]图2为用于描述数字签名方案的算法结构的说明图;
[图3]图3为用于描述n通公开密钥认证方案的算法结构的说明图;
[图4]图4为用于描述根据本技术第一实施例(3通)的公开密钥认证方案的算法的说明图;
[图5]图5为用于描述根据相同实施例的公开密钥认证方案的扩展算法的说明图;
[图6]图6为用于描述根据相同实施例的公开密钥认证方案的并行算法的说明图;
[图7]图7为用于描述根据相同实施例的公开密钥认证方案的特定算法的说明图;
[图8]图8为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图9]图9为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图10]图10为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图11]图11为用于描述根据相同实施例的公开密钥认证方案的并行化的说明图;
[图12]图12为用于描述将根据相同实施例的公开密钥认证方案的高效算法转换为数字签名方案的算法的方法的说明图;
[图13]图13为用于描述将根据相同实施例的公开密钥认证方案的高效算法转换为高效数字签名方案的算法的方法的说明图;
[图14]图14为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行串行结构的说明图;
[图15]图15为用于描述根据相同实施例的公开密钥认证方案的高效算法的串行并行结构的说明图;
[图16]图16为用于描述根据本技术第二实施例(5通)的公开密钥认证方案的算法的说明图;
[图17]图17为用于描述根据相同实施例的公开密钥认证方案的扩展算法的说明图;
[图18]图18为用于描述根据相同实施例的公开密钥认证方案的并行算法的说明图;
[图19]图19为用于描述根据相同实施例的公开密钥认证方案的扩展算法的并行化的说明图;
[图20]图20为用于描述根据相同实施例的公开密钥认证方案的特定算法的说明图;
[图21]图21为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图22]图22为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图23]图23为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图24]图24为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图25]图25为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图26]图26为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图27]图27为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[图28]图28为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行化的说明图;
[图29]图29为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行化的说明图;
[图30]图30为用于描述根据相同实施例的公开密钥认证方案的高效算法的进一步高效化的说明图;
[图31]图31为用于描述根据相同实施例的公开密钥认证方案的高效算法的进一步高效化的说明图;
[图32]图32为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行串行结构的说明图;
[图33]图33为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行串行结构的说明图;
[图34]图34为用于描述根据相同实施例的公开密钥认证方案的高效算法的串行并行结构的说明图;
[图35]图35为用于描述根据相同实施例的公开密钥认证方案的高效算法的串行并行结构的说明图;
[图36]图36为用于描述提高根据第一和第二实施例的交互协议的鲁棒性的技术的说明图;
[图37]图37为用于描述提高根据第一和第二实施例的交互协议的鲁棒性的技术的说明图;
[图38]图38为用于描述能够执行根据本技术的每个实施例的算法的信息处理设备的硬件配置示例的说明图;
[图39]图39为示出根据本技术的第一和第二实施例的公开密钥认证方案的效率的比较的图表;以及
[图40]图40为用于描述对在根据本技术的第一和第二实施例的公开密钥认证方案中使用的参数进行设置的非常合适的方法和有益效果的说明图。
具体实施方式
下文中,将参照附图详细描述本发明的优选实施例。注意,在该说明书和附图中,用相同的附图标记表示具有基本相同的功能和结构的元件,并省略重复的说明。
[说明的流程]
这里,将简单描述要在以下说明本技术的实施例的流程。首先,将参考图1描述公开密钥认证方案的算法结构。接下来,将参考图2描述数字签名方案的算法结构。接下来,将参考图3描述n通公开密钥认证方案。
然后,将参考图4描述根据本技术第一实施例(3通)的公开密钥认证方案的算法。然后,将参考图5描述根据相同实施例的公开密钥认证方案的扩展算法。然后,将参考图6描述根据相同实施例的公开密钥认证方案的并行算法。然后,将参考图7描述根据相同实施例的公开密钥认证方案的特定算法。然后,将参考图8至图15描述根据相同实施例及其变型示例的公开密钥认证方案的高效算法。
然后,将参考图16描述根据本技术第二实施例(5通)的公开密钥认证方案的算法。然后,将参考图17描述根据相同实施例的公开密钥认证方案的扩展算法。然后,将参考图18和图19描述根据相同实施例的公开密钥认证方案的并行算法。然后,将参考图20描述根据相同实施例的公开密钥认证方案的特定算法。然后,将参考图21至图35描述根据相同实施例及其变型示例的公开密钥认证方案的高效算法。
然后,将描述用于将根据本技术第一和第二实施例的高效算法应用到二阶或更高阶多元多项式的扩展技术。然后,将描述增加根据本技术第一和第二实施例的交互协议的鲁棒性的机制。另外,将参考图36和图37描述防止由不规则挑战导致的秘密密钥泄露的机制和消除伪造风险的机制。然后,将参考图38描述能够实现根据本技术第一和第二实施例的算法的信息处理设备的硬件配置示例。
最后,将简要描述本实施例的技术精神的概要和根据该技术精神获得的有益操作效果。
(具体章节)
1:引言
1-1:公开密钥认证方案的算法
1-2:数字签名方案的算法
1-3:N通公开密钥认证方案
2:第一实施例
2-1:公开密钥认证方案的算法
2-2:扩展算法
2-3:并行算法
2-4:具体示例(当使用二阶多项式时)
2-5:高效算法
2-6:对数字签名方案的修改
2-6-1:变换方法
2-6-2:数字签名算法的高效化
2-7:多阶多元联立方程的形式
2-7-1:关于公用密钥块密码的形式
2-7-2:关于哈希函数的形式
2-7-3:关于流密码的形式
2-8:串行并行混合算法
3:第二实施例
3-1:公开密钥认证方案的算法
3-2:扩展算法
3-3:并行算法
3-4:具体示例(当使用二阶多项式时)
3-5:高效算法
3-6:串行并行混合算法
4:高效算法的扩展
4-1:多元高阶多项式
4-2:扩展方案(增加高阶项)
5:增强鲁棒性的机制
5-1:设置系统参数的方法
5-2:响应不规则挑战的方法
5-2-1:证明者的响应方法
5-2-2:验证者的响应方法
6:硬件配置
7:结论
<1:引言>
首先,在详细描述本技术的实施例前,将简要描述公开密钥认证方案的算法、数字签名方案的算法和n通公开密钥认证方案的概要。
[1-1:公开密钥认证方案的算法]
首先,将参考图1描述公开密钥认证方案的算法的概要。图1为用于描述公开密钥认证方案的算法结构的说明图。
当人(证明者)通过使用公开密钥pk和秘密密钥sk使另一个人(验证者)相信她是证明者本人时使用公开密钥认证。例如,使得验证者B知道证明者A的公开密钥pkA。另一方面,由证明者A秘密管理证明者A的秘密密钥skA。根据公开密钥认证方案,知道对应于公开密钥pkA的秘密密钥skA的人被认为是证明者本人。
为了使得证明者A利用公开密钥认证设置向验证者B证明她是证明者A本人,证明者A经由交互协议向验证者B呈现指示她知道对应于公开密钥pkA的秘密密钥skA的证据。然后向验证者B呈现指示证明者A知道秘密密钥skA的证据,并且在验证者B能够确认证据的情况下,证明者A的有效性(证明者A是她本人的事实)被证明。
然而,公开密钥认证设置要求以下条件以确保安全性。
第一条件为,“尽可能降低由没有秘密密钥sk的伪造者在执行交互协议时建立伪造的可能性”。将满足该第一条件称为“鲁棒性”。换句话说,鲁棒性表示,“由不具有秘密密钥sk的伪造者在执行交互协议期间以不可忽略的可能性未建立伪造”。第二条件为,“即使执行交互协议,关于证明者A的秘密密钥skA的信息完全未泄漏给验证者B”。将满足该第二条件称为“零知识”。
安全地进行公开密钥认证包括使用表现稳健性和零知识两者的交互协议。如果假设利用缺乏稳健性和零知识的交互协议进行认证处理,则将存在错误验证的明确几率和泄漏秘密密钥信息的明确几率,从而即使处理自身成功完成,仍不能证明证明者的有效性。从而,如何确保会话协议的稳健性和零知识的问题很重要。
(模型)
如图1所示,在公开密钥认证方案的模型中,存在两个实体,即证明者和验证者。证明者通过使用密钥生成算法Gen生成对于证明者唯一的一对公开密钥pk和秘密密钥sk。然后,证明者通过使用利用密钥生成算法Gen生成的一对秘密密钥sk和公开密钥pk执行与验证者的交互协议。此时,证明者通过使用证明者算法P执行交互协议。如上所述,在交互协议中,证明者通过使用证明者算法P向验证者证明她具有秘密密钥sk。
另一方面,验证者通过使用验证者算法V执行交互协议,并验证证明者是否具有与证明者已经公布的公开密钥对应的秘密密钥。即,验证者是验证证明者是否具有与公开密钥对应的秘密密钥的实体。如上所述,公开密钥认证方案的模型由两个实体,即证明者和验证者,以及三个算法,即密钥生成算法Gen、证明者算法P和验证者算法V构成。
另外,在下面的描述中使用“证明者”和“验证者”的表述,但是这些表述严格地表示实体。因此,执行密钥生成算法Gen和证明者算法P的主体是对应于实体“证明者”的信息处理设备。类似地,执行验证者算法V的主体是信息处理设备。例如,这些信息处理设备的硬件配置如图38所示。即,通过CPU902基于记录在ROM904、RAM906、存储单元920、可移除记录介质928等上的程序执行密钥生成算法Gen、证明者算法P和验证者算法V。
(密钥生成算法Gen)
由证明者使用密钥生成算法Gen。密钥生成算法Gen是用于生成对于证明者唯一的一对公开密钥pk和秘密密钥sk的算法。通过密钥生成算法Gen生成的公开密钥pk被公布。另外,由验证者使用公布的公开密钥pk。另一方面,由证明者秘密地管理通过密钥生成算法Gen生成的秘密密钥sk。由证明者秘密管理的秘密密钥sk用于向验证者证明证明者拥有对应于公开密钥pk的秘密密钥sk。形式上,将密钥生成算法Gen表示为下面的公式(1),以作为采用安全性参数1λ(λ为0以上的整数)作为输入、并且输出秘密密钥sk和公开密钥pk的算法。
[数学式1]
(Sk,pk)←Gen(lλ)
…(1)
(证明者算法P)
由证明者使用证明者算法P。证明者算法P是用于向验证者证明证明者拥有对应于公开密钥pk的秘密密钥sk的算法。换句话说,证明者算法P是采用公开密钥pk和秘密密钥sk作为输入并且执行交互协议的算法。
(验证者算法V)
由验证者使用验证者算法V。验证者算法V是在会话协议期间验证证明者是否拥有对应于公开密钥pk的秘密密钥sk的算法。验证者算法V是接收公开密钥pk作为输入并且根据会话协议的执行结果输出0或1(1比特)的算法。此时,验证者在验证者算法V输出0的情况下判定证明者无效,并且在验证者算法V输出1的情况下判定证明者有效。形式上,将验证者算法V表示为下面的公式(2)。
[数学式2]
0/1←V(pk)
…(2)
如上所述,实现有效的公开密钥认证包括使得交互协议满足稳健性和零知识两个条件。然而,证明证明者拥有秘密密钥sk包括:证明者执行依赖于秘密密钥sk的过程,并且在通知验证者结果之后,使得验证者基于通知的内容执行验证。执行依赖于秘密密钥sk的过程以确保稳健性。同时,不应向验证者泄漏任何关于秘密密钥sk的信息。为此,巧妙地设计上述密钥生成算法Gen、证明者算法P和验证者算法V以满足这些要求。
因此,前文总结了公开密钥认证方案中的算法。
[1-2:数字签名方案的算法]
下面,将参考图2概述数字签名方案的算法。图2为概述数字签名方案的算法的说明图。
与纸质文档不同,不可能对数字化数据物理地签名或粘贴封印。为此,证明数字化数据的创建者包括产生类似于对纸质文档物理签名或粘贴封印的效果的电子设置。该设置为数字签名。数字签名指的是将给定数据与仅数据创建者知道的签名数据关联、将签名数据提供给接收者、并且在接收者端验证签名数据的设置。
(模型)
如图2所示,在数字签名方案的模型中存在签名者和验证者两个身份。另外,数字签名方案的模型由三个算法构成:密钥生成算法Gen、签名生成算法Sig、和签名验证算法Ver。
签名者使用密钥生成算法Gen生成对于签名者唯一的成对的签名密钥sk和验证密钥pk。签名者还使用签名生成算法Sig生成附加到消息M的数字签名q。换句话说,签名者是将数字签名附加到消息M的实体。同时,验证者使用签名验证算法Ver验证附加到消息M的数字签名q。换句话说,验证者是验证数字签名q以确认消息M的创建者是否是签名者的实体。
注意,尽管在下文中使用术语“签名者”和“验证者”,但是这些术语最终表示实体。因此,执行密钥生成算法Gen和签名生成算法Sig的主体是对应于“签名者”实体的信息处理设备。类似地,执行签名验证算法Ver的主体是信息处理设备。例如,这些信息处理设备的硬件配置如图38所示。换句话说,通过诸如CPU902的装置基于记录在诸如ROM904、RAM906、存储单元920或可移除记录介质928的装置上的程序执行密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver。
(密钥生成算法Gen)
由签名者使用密钥生成算法Gen。密钥生成算法Gen是用于生成对于签名者唯一的成对的签名密钥sk和验证密钥pk的算法。通过密钥生成算法Gen生成的验证密钥pk被公布。同时,签名者将通过密钥生成算法Gen生成的签名密钥sk保密。然后使用签名密钥sk生成附加到消息M的数字签名q。例如,密钥生成算法Gen接受安全性参数1p(其中p为大于或等于0的整数)作为输入,并且输出签名密钥sk和验证密钥pk。在该情况下,密钥生成算法Gen在形式上可被表示为下面的公式(3)。
[数学式3]
(sk,pk)←Gen(1λ)
…(3)
(签名生成算法Sig)
由签名者使用签名生成算法Sig。签名生成算法Sig是生成要被附加到消息M的数字签名q的算法。签名生成算法Sig是接受签名密钥sk和消息M为输入并且输出数字签名q的算法。签名生成算法Sig在形式上可被表示以下面的公式(4)。
[数学式4]
σ←Sig(sk,M)
…(4)
(签名验证算法Ver)
由验证者使用签名验证算法Ver。签名验证算法Ver是验证数字签名q对于消息M是否是有效数字签名的算法。签名验证算法Ver是接受签名者的验证密钥pk、消息M和数字签名q作为输入并且输出0或1(1比特)的算法。签名验证算法Ver在形式上可被表示为下面的公式(5)。此时,验证者在签名验证算法Ver输出0的情况下(验证密钥pk拒绝消息M和数字签名q的情况)判定数字签名q无效,而在签名验证算法Ver输出1的情况下(验证密钥pk接收消息M和数字签名q的情况)确定数字签名q有效。
[数学式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发送给证明者。对于k=3至n(运算#k)连续进行该执行和处理以及信息Tk的发送,并且最后,执行处理(#n+1)。因此,以此方式n次发送和接收信息被称为“n通”公开密钥认证方案。
因此,前文描述了n通公开密钥认证方案。
<2:第一实施例>
下文将描述本技术的第一实施例。本文中的实施例涉及安全性基于求解多阶多元联立方程的难度的公开密钥认证方案和数字签名方案。然而,本文中的实施例不同于诸如HFE数字签名方案的现有技术的技术,并且涉及使用缺乏高效求解方法(陷门)的多阶多元联立方程的公开密钥认证方案和数字签名方案。
[2-1:公开密钥认证方案的算法]
首先,将参考图4描述根据本实施例的公开密钥认证方案(下文中为本技术)的算法。图4为用于描述根据本技术的算法的说明图。本技术由密钥生成算法Gen、证明者算法P和验证者算法V构成。下面将描述各个算法的结构。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k中定义的m个多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,生成算法Gen计算y=(y1,...,ym)<-(f1(s),...,fm(s))。另外,生成算法Gen将(f1(x1,...,xn),...,fm(x1,...,xn),y)设置为公开密钥pk,并且将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并且将一对多元多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图4描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
在前述交互协议期间,证明者一点也不将关于秘密密钥sk的信息泄漏给验证者,并对验证者表示“她本人知道s满足y=F(s)”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图4所示的流程图进行描述。
运算#1:
首先,证明者算法P选择任意数w。然后,证明者算法P通过将数w应用于伪随机数生成器G1生成作为集合Kn的元素的向量r和数wA。即,证明者算法P计算(r,wA)←G1(w)。随后,证明者算法P通过将数wA应用于伪随机数生成器G2生成多元多项式FA(x)=(fA 1(x),...,fA m(x))。即,证明者算法P计算FA←G2(wA)。
运算#1(继续):
随后,证明者算法P计算z←s-r。该计算等同于利用向量r掩蔽秘密密钥s。另外,证明者算法P计算FB(x)←F(x+r)+FA(x)。该计算等同于利用多元多项式FA(x)掩蔽关于x的多元多项式F(x+r)。
运算#1(继续):
随后,证明者算法P生成FA(z)和z的哈希值c1。即,证明者算法P计算c1←H1(FA(z),z)。另外,证明者算法P生成数wA的哈希值c2。即,证明者算法P计算c2←H2(wA)。另外,证明者算法P生成多元多项式FB的哈希值c3。即,证明者算法P计算c3←H3(FB(x))。注意,上述H1(...),H2(...),H3(...)为哈希函数。哈希值(c1,c2,c3)作为消息被发送给验证者算法V。此时,应注意,关于s的信息、关于r的信息、和关于z的信息完全未被泄漏给验证者。
运算#2:
在接收到消息(c1,c2,c3)时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#3:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应Rsp。在d=0的情况下,证明者算法P生成响应σ=w。在d=1的情况下,证明者算法P生成响应σ=(wA,z)。在d=2的情况下,证明者算法P生成响应σ=(FB (z),z)。在运算#3中生成的响应σ被发送给验证者算法V。此时,应注意,在d=0的情况下,关于z的信息完全未被泄漏给验证者,并且在d=1或2的情况下,关于r的信息完全未被泄漏给验证者。
运算#4:
已接收到响应σ的验证者算法V利用接收到的响应σ执行下面的验证处理。
在d=0的情况下,验证者算法V计算(rA,wB)←G1(σ)。另外,验证者算法V计算FC←G2(wB)。然后,验证者算法V验证等式c2=H2(wB)是否成立。另外,验证者算法V验证等式c3=H3(F(x+rA)+Fc(x))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在任一验证失败的情况下输出指示认证失败的值0。
在d=1的情况下,验证者算法V设置(wB,zA)←σ。另外,验证者算法V计算FC←G2(wB)。然后,验证者算法V验证等式c1=H1(FC(zA),zA)是否成立。另外,验证者算法V验证等式c2=H2(wB)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=2的情况下,验证者算法V设置(FD,zA)←σ。然后,验证者算法V验证等式c1=H1(FD(zA)-y,zA)是否成立。另外,验证者算法V验证等式c3=H3(FD)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
以上描述了涉及本技术的每个算法结构的示例。
(本技术的稳健性)
这里,将补充描述本技术的稳健性。基于如下的逻辑确保本技术的稳健性:当证明者算法P针对可由验证者算法V选择的全部挑战d=0、1和2返回适当的响应σ时,可以计算满足下面的公式(6)和公式(7)的FD、FC、rA、zA
[数学式6]
FD(x)=F(x+rA)+FC(x)
…(6)
FD(zA)-y=FC(zA
…(7)
通过确保上述稳健性,只要求解多阶多元联立方程的问题未被解出,就确保了不可能以高于2/3的概率成功伪造的事实。即,为了适当地对验证者的全部挑战d=0、1和2做出响应,伪造者必须计算满足前述公式(6)和公式(7)的FD、FC、rA和zA。换句话说,伪造者必须计算满足F(s)=y的s。然而,存在伪造者对验证者的挑战d=0、1、2中的两个较高挑战做出适当响应的可能性。因此,错误验证的成功概率变为2/3。另外,通过以足够大的次数重复执行上述交互协议,成功伪造的概率变得可忽略地小。
以上描述了本技术的稳健性。
(变型示例)
这里,将介绍上述算法的变型示例。密钥生成算法Gen计算y←F(s),并将(F,y)设置为公开密钥。然而,在本变型示例中,密钥生成算法Gen计算(y1,…,ym)←F(s)和(f1 *(x),…,fm *(x))←(f1(x)-y1,…,fm(x)-ym),并将(f1 *,…,fm *)设置为公开密钥。在该变型的情况下,可以在y=0处执行交互协议。
另外,证明者算法P基于FB(z)和z生成消息c1。然而,由于关系式FB(z)=FA(z),即使在进行修改使得基于FA(z)和z生成消息c1时,也实现了类似的交互协议。另外,可以修改证明者算法P的结构,使得分别计算FB(z)的哈希值和z的哈希值,然后作为消息发送给验证者算法V。
另外,证明者算法P通过将数w应用于伪随机数生成器G1生成矢量r和数wA。另外,证明者算法P通过将数wA应用于伪随机数生成器G2生成多元多项式FA(x)。然而,可以修改证明者算法P的结构,使得使用身份映射作为G1从开始计算w=(r,FA)。在该情况下,不需要将数w应用于G1。这对于G2是同样的。
另外,在交互协议中,使用(F,y)作为公开密钥。公开密钥中包括的多元多项式F是不依赖于秘密密钥sk的参数。为此,可以在整个系统中使用公用多元多项式F,而不对每个证明者设置多元多项式F。在该情况下,y足以作为对每个证明者设置的公开密钥,从而可用减小公开密钥的大小。然而,考虑到安全性,期望对每个证明者设置多元多项式F。下文将详细描述在该情况下设置多元多项式F的方法。
另外,在交互协议中,使用(f1,…,fm,y)作为公开密钥,并且F=(f1,…,fm)是可以适当选择的参数。为此,例如,证明者和验证者可以准备随机数的种子wpk,并利用伪随机数生成器G*计算F←G*(wpk)。在该情况下,即使公开密钥是(wpk,y)并且将(F,y)作为公开密钥公布,也可以减小公开密钥的大小。
在算法中,利用哈希函数H1、H2和H3计算c1、c2和c3,但是可以使用承诺函数COM代替哈希函数。承诺函数COM是以字符串S和随机数ρ为因子的函数。承诺函数的示例包括由ShaiHalevi和SilvioMicali在国际会议CRYPTO1996上公开的方案。
当使用承诺函数时,在计算c1、c2和c3前准备随机数ρ1、ρ2和ρ3,并通过应用承诺函数COM(·,ρ1)、COM(·,ρ2)和COM(·,ρ3)代替应用哈希函数H1(·)、H2(·)和H3(·)来生成c1、c2和c3。这里,将验证者生成ci所需的ρi设置为包括在响应σ中并发送。可以将该变型应用于将在下文描述的整个算法中。
以上描述了本技术的变型示例。
[2-2:扩展算法]
接下来,将参考图5描述从本技术扩展的公开密钥认证方案的算法(下文中被称为“扩展技术”)。图5为用于描述基于扩展技术的交互协议的流程的说明图。
在本文所述的扩展技术中,在第一通中发送的消息(c1,c2,c3)被转换为一个哈希值c并被发送给验证者。这里,利用在第三通发送的响应σ几乎不能恢复的消息与响应σ一起被发送给验证者。通过应用扩展技术,可以减少在交互协议期间发送给验证者的信息量。下面将详细描述与扩展技术相关的每个算法的结构。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的m个多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,生成算法Gen将(f1(x1,...,xn),...,fm(x1,...,xn),y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将一对多元多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P,验证者算法V)
接下来,将参考图5描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
在前述交互协议期间,证明者一点也不将关于秘密密钥sk的信息泄漏给验证者,并对验证者表示“她本人知道s满足y=F(s)”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图5所示的流程图进行描述。
运算#1:
首先,证明者算法P选择任意数w。然后,证明者算法P通过将数w应用于伪随机数生成器G1生成作为集合Kn的元素的向量r和数wA。即,证明者算法P计算(r,wA)←G1(w)。随后,证明者算法P通过将数wA应用于伪随机数生成器G2生成多元多项式FA(x)=(fA 1(x),...,fA m(x))。即,证明者算法P计算FA←G2(wA)。
运算#1(继续):
随后,证明者算法P计算z←s-r。该计算等同于利用向量r掩蔽秘密密钥s。另外,证明者算法P计算FB(x)←F(x+r)+FA(x)。该计算等同于利用多项式集合FA(x)掩蔽关于x的多项式集合F(x+r)。
运算#1(继续):
接下来,证明者算法P生成FB(z)和z的哈希值c1。换句话说,证明者算法P计算c1←H1(FB(z),z)。另外,证明者算法P生成数wA的哈希值c2。换句话说,证明者算法P计算c2←H2(wA)。另外,证明者算法P生成多项式集合FB的哈希值c3。换句话说,证明者算法P计算c3←H3(wB)。H1(…)、H2(…)和H3(…)是哈希函数。在扩展方案的情况下,证明者算法P将哈希值集合(c1、c2、c3)应用于哈希函数H以生成哈希值c,并将哈希值c发送给验证者算法V。
运算#2:
在接收到哈希值c时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#3:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应σ。在d=0的情况下,证明者算法P生成响应(σ,c*)=(w,c1)。在d=1的情况下,证明者算法P生成响应(σ,c*)=((wA,z),c3)。在d=2的情况下,证明者算法P生成响应(σ,c*)=((FB,z),c2)。在运算#3中生成的响应(σ,c*)被发送给验证者算法V。
运算#4:
在接收到响应σ时,验证者算法V利用接收到的响应(σ,c*)执行下面的验证处理。
当d=0时,验证者算法V计算(rA,wB)←G1(σ)。接下来,验证者算法V计算FC←G2(wB)。接下来,验证者算法V计算c2 A=H2(wB)。接下来,验证者算法V计算c3 A=H3(F(x+rA)+FC(x))。之后,验证者算法V验证等式c=H(c*,c2 A,c3 A)是否成立。然后,验证者算法V在验证成功时输出表示认证成功的值1,而在验证失败时输出表示认证失败的值0。
当d=1时,验证者算法V设置(wB,zA)←σ。接下来,验证者算法V计算FC←G2(wB)。接下来,验证者算法V计算c1 A=H1(FC(zA),zA)。接下来,验证者算法V计算c2 A=H2(wB)。之后,验证者算法V验证等式c=H(c1 A,c2 A,c*)是否成立。然后,验证者算法V在验证成功时输出表示认证成功的值1,而在验证失败时输出表示认证失败的值0。
当d=2时,验证者算法V设置(FD,zA)←σ。接下来,验证者算法V计算c1 A=H1(FD(zA)-y,zA)。接下来,验证者算法V计算c3 A=H3(FD)。之后,验证者算法V验证等式c=H(c1 A,c*,c3 A)是否成立。然后,验证者算法V在验证成功时输出表示认证成功的值1,而在验证失败时输出表示认证失败的值0。
以上描述了涉及扩展技术的每个算法的结构。通过应用扩展技术,可以减少在交互协议期间发送和接收的信息量。
[2-3:并行算法]
如上所述,应用根据本技术和扩展技术的会话协议使得可以将成功伪造的概率保持在2/3以下。因此,两次执行会话协议使得可以将成功伪造的概率保持在(2/3)2以下。另外,如果N次执行会话协议,则成功伪造的概率变为(2/3)N,并且,如果将N设置为足够大的数(例如,N=140),则成功伪造的概率变得可忽略地小。
例如,多次执行交互协议的可想到的方法包括:串行方法,其中多次顺序重复消息、挑战和响应的交换;以及并行方法,其中在单个交换中交换多个消息、挑战和响应。这里,将描述把根据本技术的交互协议扩展到关于并行方法的交互协议(下文中被称为“并行算法”)的方法。例如,图6示出并行算法。接下来,将参考图6描述并行算法的细节。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的m个多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,生成算法Gen将(f1(x1,...,xn),...,fm(x1,...,xn),y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将一对多元多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P,验证者算法V)
接下来,将参考图6描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
在前述交互协议期间,证明者一点也不将关于秘密密钥s的信息泄漏给验证者,并对验证者表示“她本人知道s满足y=F(s)”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图6所示的流程图进行描述。
运算#1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至(8)。
处理(1):证明者算法P任意选择数wi
处理(2):证明者算法P将数wi应用于伪随机数生成器G1,并生成作为集合Kn的元素的向量ri和数wi A。换句话说,证明者算法P计算(ri,wi A)←G1(wi)。
处理(3):证明者算法P将数wi A应用于伪随机数生成器G2并生成多元多项式集合Fi A(x)。换句话说,证明者算法P计算Fi A←G2(wi A)。
处理(4):证明者算法P计算zi←si-ri。该计算对应于利用向量ri掩蔽秘密密钥si的操作。
处理(5):证明者算法P计算Fi B(x)←F(x+ri)+Fi A(x)。该计算对应于利用多项式集合Fi A(x)掩蔽关于x的多项式集合F(x+ri)的操作。
处理(6):证明者算法P生成zi和Fi B(zi)的哈希值c1,i。换句话说,证明者算法P计算c1,i←H1(Fi B(zi),zi)。
处理(7):证明者算法P生成数wi A的哈希值c2,i。换句话说,证明者算法P计算c2,i←H2(wi A)。
处理(8):证明者算法P生成多项式集合Fi B的哈希值c3,i。换句话说,证明者算法P计算c3,i←H3(Fi B)。
H1(…)、H2(…)和H3(…)是哈希函数。另外,哈希值(c1,i,c2,i,c3,i)是消息。
针对i=1至N,在执行处理(1)至(8)之后,将在运算#1中生成的消息(c1,i,c2,i,c3,i)(i=1至N)发送给验证者算法V。
运算#2:
在接收到消息(c1,i,c2,i,c3,i)(i=1至N)时,验证者算法V针对i=1至N中的每个从三个验证模式中选择要使用的验证模式。例如,针对i=1至N中的每个,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战di中。挑战di被发送给证明者算法P。
运算#3:
已经接收到挑战di(i=1至N)的证明者算法P响应于挑战di生成要被发送给验证者算法V的响应σi。此时,证明者算法P针对i=1至N执行下面的处理(1)至(3)。
处理(1):当di为0时,证明者算法P生成响应σi=wi
处理(2):当di为1时,证明者算法P生成响应σi=(wi A,zi)。
处理(3):当di为2时,证明者算法P生成响应σi=(Fi B,zi)。
在执行处理(1)至(3)后,将响应σi(i=1至N)发送给验证者算法V。
运算#4:
已经接收到响应σi(i=1至N)的验证者算法V利用接收到的响应σi(i=1至N)执行下面的验证处理。针对i=1至N执行下面的处理。
在di=0的情况下,验证者算法V计算(ri A,wi B)←G1i)。另外,验证者算法V计算Fi C←G2(wi B)。然后,验证者算法V验证等式c2,i=H2(wi B)是否成立。另外,验证者算法V验证等式c3,i=H3(F(x+riA)+Fi C(x))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在di=1的情况下,验证者算法V设置(wi B,zi A)←σi。另外,验证者算法V计算Fi C←G2(wi B)。然后,验证者算法V验证等式c1,i=H1(Fi C(zi A),zi A)是否成立。另外,验证者算法V验证等式c2=H2(wi B)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况中输出指示认证失败的值0。
在di=2的情况下,验证者算法V设置(Fi D,zi A)←σi。然后,验证者算法V验证等式c1,i=H1(Fi D(zi A)-y,zi A)是否成立。另外,验证者算法V验证等式c3,i=H3(Fi D(x))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
以上描述了并行执行本技术的交互协议的方法。如上所述,由于重复执行本技术的交互协议,成功伪造的概率变得可忽略地小。
另外,可以进行修改,使得可以在运算#1之后向验证者发送哈希值c=H(c1,1,c1,2,c1,3,…,cN,1,cN,2,cN,3)而不是发送(c1,1,c1,2,c1,3,…,cN,1,cN,2,cN,3)。这里,考虑到存在几乎不能从响应恢复的消息,需要修改交互协议,使得将消息与响应一起从证明者发送给验证者。当应用该修改时,在第一通发送的消息是单个哈希值c,从而显著减少了通信量。例如,在N次并行重复结构的情况下,要发送的信息条数可以减少2N-1。
(合适的参数设置方法)
根据本实施例的交互协议确保针对被动攻击的安全性。然而,当应用上述并行重复执行交互协议的方法时,需要下述条件以保证可靠地保障针对主动攻击的安全性。
上述交互协议是用于通过使用一对密钥(公开密钥y和秘密密钥s)向验证者验证“证明者针对y知道满足y=F(s)的s”的算法。为此,当执行在验证中接受的交互时,指示验证者知道“证明者在交互时使用s”的信息的概率是不可否认的。另外,对于多元多项式F不能确保抗冲突性。为此,当并行重复执行上述交互协议时,难以无条件地保证可靠地确保针对主动攻击的安全性。
因此,本技术的发明人检查了即使当执行在验证中接受的交互时也使得指示“证明者在交互时使用s”的信息对于验证者未知的方法。另外,本技术的发明人提出了一种即使在并行重复执行上述交互协议时也使得能够确保针对主动攻击的安全性的方法。该方法是将用作公开密钥的多元多项式f1,...,fm的个数m设置为足够小于变量的个数n的值的方法。例如,将m和n设置为使得2m-n<<1(例如,当n=160且m=80时,2-80<<1)。
在安全性基于求解多阶多元联立方程的难度的方案中,即使在给定秘密密钥s1和对应于秘密密钥s1的公开密钥pk时,也难以生成对应于公开密钥pk的另一个秘密密钥s2。为此,当确保对于公开密钥pk存在两个或更多个秘密密钥s时,即使在执行在验证中接受的交互时,也可以使得指示“证明者在交互时使用s”的信息对于验证者未知。即,当建立该确保时,即使在并行重复执行交互协议时,也可以确保针对主动攻击的安全性。
当参考图40考虑包括m个具有n个变量的多阶多项式(其中n>m)的函数F:Kn→Km时,不具有第二预图像的定义域的元素的个数最多为|K|m–1。为此,当将|K|m-n设置为足够小时,可以使得不具有第二预图像的定义域的元素的选择概率可忽略地小。即,当将具有n个变量的多阶多项式f1,...,fm的个数m设置为足够小于变量的个数n的值时,可以确保对于公开密钥pk存在两个或更多个秘密密钥s。因此,即使在执行在验证中接受的交互时,也可以使得指示“证明者在交互时使用s”的信息对于验证者未知。因此,即使在并行重复执行交互协议时,也确保了针对主动攻击的安全性。
如上所述,通过施加将具有n个变量的多阶多项式f1,...,fm的个数m设置为足够小于变量的个数n的值的设置条件(其中n>m,优选2m-n<<1),可以在并行重复执行交互协议时确保安全性。
[2-4:具体示例(当使用二阶多项式时)]
接下来,将参考图7描述将具有n个变量的二阶多项式用作多元多项式F的示例。图7为用于描述本技术的具体示例的说明图。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的m个多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,生成算法Gen将(f1,…,fm,y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将多元多项式集合(f1(x),...,fm(x))表示为F(x)。这里,二阶多项式fi(x)被表示为下面的公式(8)。
[数学式7]
f i ( x 1 , . . . , x n ) = &Sigma; j , k a i , j , k x j x k + &Sigma; j b i , j x j . . . ( 8 )
(证明者算法P,验证者算法V)
接下来,将参考图7描述在交互协议期间通过证明者算法P和验证者算法V执行的处理。
运算#1:
首先,证明者算法P任意选择数w。接下来,证明者算法P将数w应用于伪随机数生成器G1,并生成作为集合Kn的元素的向量r和数wA。换句话说,证明者算法P计算(r,wA)←G1(w)。接下来,证明者算法P将数wA应用于伪随机数生成器G2,并生成线性多项式集合f1 A(x),…,fm A(x)。换句话说,证明者算法P计算(f1 A,…,fm A)←G2(wA)。这里,线性多项式fi A(x)被表示为下面的公式(9)。另外,通过FA(x)表示线性多项式集合(f1 A(x),…,fm A(x))。
[数学式8]
f i A ( x 1 , . . . , x n ) = &Sigma; j b i , j A x j . . . ( 9 )
运算#1(继续):
接下来,证明者算法P计算z←s-r。该计算对应于利用向量r掩蔽秘密密钥s的运算。另外,证明者算法P计算FB(x)←F(x+r)+FA(x)。该计算对应于使用线性多项式FA(x)掩蔽关于x的二阶多项式F(x+r)的运算。在F(x+r)中,仅通过x的一阶项表示关于r的信息。因此,通过FA(x)掩蔽关于r的全部信息。
运算#1(继续):
接下来,证明者算法P计算z和FA(z)的哈希值c1。换句话说,证明者算法P计算c1←H1(FA(z),z)。另外,证明者算法P生成数wA的哈希值c2。换句话说,证明者算法P计算c2←H2(wA)。另外,证明者算法P生成多元多项式FB的哈希值c3。换句话说,证明者算法P计算c3←H3(wB)。H1(…)、H2(…)和H3(…)是哈希函数。在运算#1中生成的消息(c1,c2,c3)被发送给验证者算法V。
运算#2:
在接收到消息(c1,c2,c3)时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#3:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应σ。在d=0的情况下,证明者算法P生成响应σ=w。在d=1的情况下,证明者算法P生成响应σ=(wA,z)。在d=2的情况下,证明者算法P生成响应σ=(FB(z),z)。在运算#3中生成的响应σ被发送到验证者算法V。
运算#6:
在接收到响应σ时,验证者算法V利用接收到的响应σ执行下面的验证处理。
在d=0的情况下,验证者算法V计算(rA,wB)←G1(σ)。另外,验证者算法V计算FC←G2(wB)。然后,验证者算法V验证等式c2=H2(wB)是否成立。另外,验证者算法V验证等式c3=H3(F(x+rA)+FC(x))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=1的情况下,验证者算法V设置(wB,zA)←σ。另外,验证者算法V计算Fc←G2(wB)。然后,验证者算法V验证等式c1=H1(Fc(zA),zA)是否成立。另外,验证者算法V验证等式c2=H2(wB)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=2的情况下,验证者算法V设置(FD,zA)←σ。然后,验证者算法V验证等式c1=H1(FD(zA)-y,zA)是否成立。另外,验证者算法V验证等式c3=H3(FD)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
以上描述了本技术的具体示例。
[2-5:高效算法]
接下来,将描述使根据本技术的算法高效化的方法。二阶多项式集合(f1(x),…,fm(x))可被表示为下面的公式(10)。这里,x为x1,…,xn。另外,A1,…,Am为n×n矩阵。另外,b1,…,bm中的每个为n×1向量。
[数学式9]
F ( x ) = f 1 ( x ) &CenterDot; &CenterDot; &CenterDot; f m ( x ) = x T A 1 x + b 1 T x . . . x T A m x + b m T x . . . ( 10 )
当使用该表达式时,多元多项式F可被表示为下面的公式(11)和公式(12)。根据下面的公式(13),可以容易地确认满足该表达式。
[数学式10]
F(x+y)=F(x)+F(y)+Fb(x,y)
…(11)
F b ( x , y ) = y T ( A 1 T + A 1 ) x . . . y T ( A m T + A m ) x . . . ( 12 )
f l ( x + y ) = ( x + y ) T A l ( x + y ) + b l T ( x + y ) = x T A l x + x T A l y + y T A l x + y T A l y + b l T x + b l T y = f l ( x ) + f l ( y ) + x T A l y + y T A l x = f l ( x ) + f l ( y ) + x T ( A l T ) T y + y T A l x = f l ( x ) + f l ( y ) + ( A l T x ) T y + y T A l x = f l ( x ) + f l ( y ) + y T ( A l T x ) + y T A l x = f l ( x ) + f l ( y ) + y T ( A l T + A l ) x . . . ( 13 )
当以此方式将F(x+y)划分为依赖于x的第一部分、依赖于y的第二部分、和依赖于x和y两者的第三部分时,对应于第三部分的项Fb(x,y)变为相对于x和y为双线性的。使用该特性使得能够构成高效算法。
例如,使用作为集合Kn的元素的向量t0和作为集合Km的元素的向量e0将用于掩蔽多元多项式F(x+r)的多元多项式FA(x)表示为FA(x)=Fb(x,t)+e。在该情况下,多元多项式F(x+r)和FA(x)的和被表示为下面的公式(14)。
这里,当tA=r+t、eA=F(r)+e时,可以通过作为集合Kn的元素的向量t1和作为集合Km的元素的向量e1表示多元多项式FB(x)=F(x+r)+FA(x)。为此,当设置“FA(x)=Fb(x,t)+e”时,可通过使用Kn中的向量和Km中的向量表示FA和FB,从而可以显著减小通信所需的数据大小。具体地,可以以数千至数万倍的程度提高通信效率。
[数学式11]
F(x+r)+FA(x)=F(x)+F(r)+Fb(x,r)+Fb(x,t)+e=F(x)+Fb(x,r+t)+F(r)+e
…(14)
根据该修改,完全未从FB(或FA)泄漏关于r的信息。例如,当给定e A和tA(或e和t)时,难以知道r的信息,除非知道e和t(或e A和tA)。因此,即使将该修改应用于本技术,也确保了零知识。接下来,将参照图8到图10描述关于本技术的高效算法。由于密钥生成算法Gen的结构未变,所以这里将省略对其的具体描述。
(高效算法的结构示例1:图8)
首先,将描述图8所示的高效算法的结构。
运算#1:
证明者算法P任意选择数w。接下来,证明者算法P将数w应用于伪随机数生成器G1,并生成作为集合Kn的元素的向量r和数wA。换句话说,证明者算法P计算(r,wA)←G1(w)。接下来,证明者算法P将数wA应用于伪随机数生成器G2,并生成两个向量:作为集合Kn的元素的向量t和作为集合Km的元素的向量e。换句话说,证明者算法P计算(t,e)←G2(wA)。接下来,证明者算法P计算z←s-r。该计算对应于利用向量r掩蔽秘密密钥s的运算。另外,证明者算法P计算tA←r+t。接下来,证明者算法P计算eA←F(r)+e。
运算#1(继续):
接下来,证明者算法P基于公式(14)计算Fb(z,t),并计算z和Fb(z,t)+e的哈希值c1。换句话说,证明者算法P计算c1←H1(Fb(z,t)+e,z)。另外,证明者算法P生成数wA的哈希值c2。换句话说,证明者算法P计算c2←H2(wA)。另外,证明者算法P生成两个向量tA和eA的哈希值c3。换句话说,证明者算法P计算c3←H3(tA,eA)。H1(…)、H2(…)和H3(…)是哈希函数。在运算#1中生成的消息(c1,c2,c3)被发送给验证者算法V。
运算#2:
在接收到消息(c1,c2,c3)时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#3:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应σ。在d=0的情况下,证明者算法P生成响应σ=w。在d=1的情况下,证明者算法P生成响应σ=(wA,z)。在d=2的情况下,证明者算法P生成响应σ=(tA,tA,z)。在运算#3中生成的响应σ被发送给验证者算法V。
运算#6:
在接收到响应σ时,验证者算法V利用接收到的响应σ执行下面的验证处理。
在d=0的情况下,验证者算法V计算(rA,rB)←G1(σ)。另外,验证者算法V计算(tB,eB←G2(wB)。然后,验证者算法V验证等式c2=H2(wB)是否成立。另外,验证者算法V验证等式c3=H3(rA+tB,F(rA)+eB)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=1的情况下,验证者算法V设置(wB,zA)←σ。另外,验证者算法V计算(tB,eB←G2(wB)。然后,验证者算法V验证等式c1=H1(Fb(zA,tB)+eB,zA)是否成立。另外,验证者算法V验证等式c2=H2(wB)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=2的情况下,验证者算法V设置(tC,eC,zA)←σ。然后,验证者算法V验证等式c1=H1(F(zA)+Fb(zA,tC)+eC-y,zA)是否成立。另外,验证者算法V验证等式c3=H3(tC,eC)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
以上描述了所述高效算法的结构示例1。通过使用高效算法,显著减小了通信所需的数据大小。另外,由于不需要计算F(x+r),所以还提高了计算效率。
(高效算法的结构示例2:图9)
接下来,将描述图9所示的高效算法的结构。即使当应用图9所示的结构时,类似于当应用图8所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图8所示的结构的不同。
在图8所示的算法的运算#3中,当d=0时,将σ设置为w,但是可通过(r,t,e)恢复的信息可被用作当d=0时设置的σ。例如,如图9所示,在运算#3中,(wA,tA)可被用作当d=0时设置的σ。这里,当执行该修改时,需要修改运算#4中通过验证者算法V执行的验证内容的部分。具体地,在运算#4中,当d=0时,在通过验证者算法V执行的验证内容中,用c3=H3(tA,F(tA-tB)+eB)的验证替换c3=H3(rA+tB,F(rA)+eB)的验证。
以上描述了高效算法的结构示例2。
(高效算法的结构示例3:图10)
接下来,将描述图10所示的高效算法的结构。
运算#1:
证明者算法P任意生成作为集合Kn的元素的向量r,t、以及作为集合Km的元素的向量e0。随后,证明者算法P计算rA←s-r。该计算等同于利用向量r掩蔽秘密密钥s。另外,证明者算法P计算tA←r-t。然后,证明者算法P计算eA←F(r)-e。
运算#1(继续):
随后,证明者算法P计算c1←H1(Fb(rA,t)+e,rA)。随后,证明者算法P计算c2←H2(t,e)。随后,证明者算法P计算c3←H3(tA,eA)。H1(…)、H2(…)和H3(…)是哈希函数。在运算#1中生成的消息(c1,c2,c3)被发送给验证者算法V。
运算#2:
在接收到消息(c1,c2,c3)时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#3:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应σ。在d=0的情况下,证明者算法P生成响应σ=(r,tA,eA)。在d=1的情况下,证明者算法P生成响应σ=(rA,t,e)。在d=2的情况下,证明者算法P生成响应σ=(rA,tA,eA)。在运算#3中生成的响应σ被发送给验证者算法V。
运算#4:
在接收到响应σ时,验证者算法V利用接收到的响应σ执行下面的验证处理。
在d=0的情况下,验证者算法V验证等式c2=H2(r-tA,F(r)-eA)是否成立。另外,验证者算法V验证等式c3=H3(tA,eA)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=1的情况下,验证者算法V验证等式c1=H1(Fb,(rA,t)+e,rA)是否成立。另外,验证者算法V验证等式c2=H2(t,e)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
在d=2的情况下,验证者算法V验证等式c1=H1(y–F(rA)–Fb(tA,rA)–eA,rA)是否成立。另外,验证者算法V验证等式c3=H3(tA,eA)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
以上描述了高效算法的结构示例3。通过使用高效算法,显著减小了通信所需的数据大小。另外,由于不需要计算F(x+r),所以还提高了计算效率。
(高效算法的并行化:图11)
接下来,将参考图11描述使高效算法并行化的方法。图11所示的结构(下文中被称为“并行算法”)是使关于结构示例3的高效算法并行化的结构。
运算#1:
证明者算法P针对i=1至N执行处理(1)至(6)。
处理(1):证明者算法P任意生成作为集合Kn的元素的向量ri,ti、以及作为集合Km的元素的向量ei
处理(2):证明者算法P计算ri A←s-ri。该计算等同于利用向量ri掩蔽秘密密钥s。另外,证明者算法P计算ti A←ri+ti
处理(3):另外,证明者算法P计算ei A←F(ri)-ei
处理(4):证明者算法P计算c1,i←H1(Fb(ri A,ti)+ei,ri A)。
处理(5):证明者算法P计算c2,i←H2(ti,ei)。
处理(6):证明者算法P计算c3,i←H3(ti A,ei A)。
运算#1(继续):
在针对i=1至N执行上述处理(1)至(6)之后,证明者算法P计算Cmt←H(c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N)。H(…),H1(…),H2(…)和H3(…)是哈希函数。在运算#1中生成的哈希值Cmt被发送给验证者算法V。以此方式,消息(c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N)在发送给验证者算法V之前被转换为哈希值,从而使得能够减少通信量。
运算#2:
在接收到哈希值Cmt时,验证者算法V针对i=1至N中的每个从三个验证模式中选择要使用的验证模式。例如,针对i=1至N中的每个,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战di中。挑战d1,...,dN被发送给证明者算法P。
运算#3:
在接收到挑战d1,...,dN时,证明者算法P响应于接收到的挑战d1,...,dN中的每个生成要发送给验证者算法V的响应Rsp1,...,RspN。在di=0的情况下,证明者算法P生成σi=(ri,ti A,ei A)。另外,证明者算法P生成Rspi=(σi,c1,i)。在di=1的情况下,证明者算法P生成σi=(ri A,ti,ei)。另外,证明者算法P生成Rspi=(σi,c3,i)。在Chi=2的情况下,证明者算法P生成σi=(ri A,ti A,ei A)。另外,证明者算法P生成Rspi=(σi,c2,i)。
在运算#3中生成的响应Rsp1,...,RspN被发送给验证者算法V。
运算#4:
在接收到响应Rsp1,...,RspN时,验证者算法V使用接收到的响应Rsp1,...,RspN针对i=1至N执行下面的处理(1)至(3)。这里,验证者算法V针对di=0的情况执行处理(1),在Chi=1的情况下执行处理(2),以及在di=2的情况下执行处理(3)。
处理(1):在di=0的情况下,验证者算法V从Rspi取回(ri,ti A,ei A,c1,i)。随后,验证者算法V计算c2,i=H2(ri-ti A,F(ri)-ei A)。另外,验证者算法V计算c3,i=H3(ti A,ei A)。然后,验证者算法V存储(c1,i,c2,i,c3,i)。
处理(2):在di=1的情况下,验证者算法V从Rspi取回(ri A,ti,ei,c3,i)。随后,验证者算法V计算c1,i=H1(Fb(ri A,ti)+ei,ri A)。另外,验证者算法V计算c2,i=H2(ti,ei)。然后,验证者算法V存储(c1,i,c2,i,c3,i)。
处理(3):在di=2的情况下,验证者算法V从Rspi取回(ri A,ti A,ei A,c2,i)。随后,验证者算法V计算c1,i=H1(y–F(ri A)–Fb(ti A,ri A)–ei A,ri A)。另外,验证者算法V计算c3,i=H3(ti A,ei A)。然后,验证者算法V存储(c1,i,c2,i,c3,i)。
在针对i=1至N执行上述处理(1)至(3)之后,验证者算法V验证等式Cmt=H(c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N)是否成立。验证者算法V在验证成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
以上描述了高效算法的并行化。图11所示的并行算法包括将消息在发送前转换为哈希值的设计。该设计提高了通信效率。
[2-6:数字签名方案的变型]
这里将介绍把根据本技术的公开密钥认证方案修改为数字签名方案的方法。当公开密钥认证方案的模型中的证明者与数字签名方案中的签名者匹配时,对数字签名方案的模型的近似可被容易地理解为,仅证明者可以说服验证者。基于该构思,将描述把根据本技术的公开密钥认证方案修改为数字签名方案的方法。
(2-6-1:变换方法)
这里,将通过示例描述把高效算法的结构示例3变换为数字签名方案的算法的方法。通过图12所示的下面四个运算#1至#4粗略地表示结构示例3的算法。
运算#1包括:处理(1),生成ai=(ri,ti,ei,ri A,ti A,ei A,c1,i,c2,i,c3,i),以及处理(2),计算Cmt←H(c1,1,c2,1,c3,1,...,c1,N,c2,N,c3, N)。通过证明者算法P在运算#1中生成的Cmt被发送给验证者算法V。
运算#2包括选择d1,...,dN的处理。通过验证者算法V在运算#2中选择的d1,...,dN被发送给证明者算法P。
运算#3包括利用d1,...,dN和a1...,aN生成Rsp1,...,RspN的处理。该处理被表示为Rspi←Select(di,ai)。通过证明者算法P在运算#3中生成的Rsp1,...,RspN被发送给验证者算法V。
运算#4包括:处理(1),利用d1,...,dN和Rsp1,...,RspN再现c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N;以及处理(2),利用再现的c1,1,c2,1,c3, 1,...,c1,N,c2,N,c3,N验证Cmt=H(c1,1,c2,2,c3,3,...,c1,N,c2,N,c3,N)。
由上述运算#1至运算#4表示的公开密钥认证方案的算法被修改为如图12所示的签名生成算法Sig和签名验证算法Ver。
(签名生成算法Sig)
首先,将描述签名生成算法Sig的结构。签名生成算法Sig包括下面的处理(1)至(5)。
处理(1):签名生成算法Sig生成ai=(ri,ti,ei,ri A,ti A,ei A,ei A,c1,i,c2,i,c3,i)。
处理(2):签名生成算法Sig计算Cmt←H(c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N)。这里,M为附加有签名的文档。
处理(3):签名生成算法Sig计算(d1,...,dN)←H(M,Cmt)。这里,M为附加有签名的文档。
处理(4):签名生成算法Sig计算Rspi←Select(di,ai)。
处理(5):签名生成算法Sig将(Cmt,Rsp1,...,RspN)设置为签名。
(签名验证算法Ver)
接下来,将描述签名验证算法Ver的结构。签名验证算法Ver包括下面的处理(1)至(3)。
处理(1):签名验证算法Ver计算(d1,...,dN)←H(M,Cmt)。
处理(2):签名验证算法Ver利用d1,...,dN和Rsp1,...,RspN生成c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N
处理(3):签名验证算法Ver利用再现的c1,1,c2,1,c3,1,...,c1,N,c2, N,c3,N验证Cmt=H(c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N)。
如上所述,通过将公开密钥认证方案的模型中的证明者与数字签名方案中的签名者匹配,可以将公开密钥认证方案的算法修改为数字签名方案的算法。
(2-6-2:数字签名算法的高效化)
这里,当关注图13所示的签名生成算法Sig的结构时,可以发现,已经在处理(2)和(3)中执行了哈希值的计算。另外,当关注签名验证算法Ver的结构时,可以发现,已经在处理(1)中执行了与签名生成算法Sig的处理(3)相同的哈希值的计算。如图13所示,当关注这些处理提高签名生成算法Sig和签名验证算法Ver的配置时,可以进一步提高计算效率。
(签名生成算法Sig)
首先,将描述签名生成算法Sig的改善结构。签名生成算法Sig包括下面的处理(1)至(4)。
处理(1):签名生成算法Sig生成ai=(ri,ti,ei,ri A,ti A,ei A,c1,i,c2,i,c3,i)。
处理(2):签名生成算法Sig计算(d1,...,dN)←H(M,c1,1,c2,2,c3, 3,...,c1,N,c2,N,c3,N)。这里,M为附加有签名的文档。
处理(3):签名生成算法Sig计算Rspi←Select(di,ai)。
处理(4):签名生成算法Sig将(d1,...,dN,Rsp1,...,RspN)设置为签名。
(签名验证算法Ver)
接下来,将描述改善的签名验证算法Ver的结构。签名验证算法Ver包括下面的处理(1)和(2)。
处理(1):签名验证算法Ver利用d1,...,dN和Rsp1,...,RspN生成c2,3,c2,1,c3,1,...,c1,N,c2,N,c3,N
处理(2):签名验证算法Ver利用再现的c1,1,c2,1,c3,1,...,c1,N,c2, N,c3,N验证(d1,...,dN)=H(M,c1,1,c2,1,c3,1,...,c1,N,c2,N,c3,N)。
如上所述,通过改善签名生成算法Sig和签名验证算法Ver的结构,将每个算法中的哈希值的计算减少一次。从而,可以进一步提高计算效率。
[2-7:多阶多元联立方程的形式]
如上所述,本技术为安全性基于求解多阶多元联立方程的难度的方案。另外,本技术的特征在于可以使用复杂的多阶多元联立方程。在以上描述中,对多阶多元联立方程的形式没有特定限制,但是期望使用包括加密元素技术的多阶多元联立方程,其中在表达式中充分补偿难度。下面将介绍可以应用本技术的多阶多元联立方程的特定示例。
(2-7-1:关于公用密钥块密码的形式)
公用密钥块密码技术(例如ES、DES或KATAN)是被频繁分析并具有高安全性和可靠性的元素技术。可通过以公用密钥块密码的密钥、明文和密文为变量的多阶多元联立方程来表示公用密钥块密码。在多阶多元联立方程中,当对表示明文和密文的变量赋值时,多阶多元联立方程变为仅具有表示密钥的变量作为变量的方程。
求解表示公用密钥块密码的多阶多元联立方程对应于从明文和密文恢复公用密钥块密码的密钥。换句话说,只要保持公用密钥块密码的安全性,就确保了求解表示公用密钥块密码的多阶多元联立方程的解的难度。为此,当对本技术应用表示特定公用密钥块密码的多阶多元联立方程时,实现具有与公用密钥块密码的安全性等同的安全性的公开密钥认证方案。
这里,当通过具有诸如密钥、明文和密文的变量的多阶多元联立方程表示公用密钥块密码时,由于多项式的阶数增加,从而用于表示联立方程的数据的大小增大。在这方面,除了密钥、明文和密文之外,还引入表示每轮中的内部状态的变量。通过引入该变量,可以减少表示公用密钥块密码的多阶多元联立方程的阶数。例如,以适当的值替换表示明文和密文的变量,并引入关于密钥和表示内部状态的变量的联立方程。当使用该方法时,变量数增加,但是阶数减少,从而联立方程的表示变得紧凑。
(2-7-2:关于哈希函数的形式)
类似地,可以将关于诸如SHA-1或SHA-256的哈希函数的多阶多元联立方程应用于本技术。可以通过这样的多阶多元联立方程表示哈希函数,该多阶多元联立方程具有作为哈希函数的输入的消息和作为哈希函数的输出的哈希值作为变量。在多阶多元联立方程中,当对表示哈希值的变量赋予适当的值时,获得与表示对应输入的变量有关的多阶多元联立方程。
求解多阶多元联立方程对应于从哈希值恢复用作基础的消息的值。换句话说,只要保持哈希函数的安全性(单向特征),就可保证求解表示哈希函数的多阶多元联立方程的难度。为此,当对本技术应用表示特定哈希函数的多阶多元联立方程时,实现了基于哈希函数的安全性的公开密钥认证方案。
这里,当通过以输入消息和哈希值为变量的多阶多元联立方程表示哈希函数时,由于多项式的阶数增加,从而表示联立方程的数据的大小增大。在这方面,除了输入消息和哈希值之外,还引入表示内部状态的变量。通过引入该变量,可以减少表示哈希函数的多阶多元联立方程的阶数。例如,以适当的值替换表示哈希值的变量,并引入关于输入消息和表示内部状态的变量的联立方程。当使用该方法时,变量数增加,但是阶数减少,从而联立方程的表示变得紧凑。
(2-7-3:关于流密码的形式)
类似地,可以将关于诸如Trivium的流密码的多阶多元联立方程应用于本技术。可通过关于表示流密码的初始内部状态的变量和表示要输出的流的变量的多阶多元联立方程来表示流密码。在该情况下,当对表示输出流的变量赋予适当的值时,获得与表示对应的初始内部状态的变量有关的多阶多元联立方程。
求解多阶多元联立方程对应于从输出流的值恢复表示用作基础的初始内部状态的变量。换句话说,只要保证流密码的安全性,就可确保求解表示流密码的多阶多元联立方程的难度。为此,当对本技术应用表示特定流密码的多阶多元联立方程时,实现了基于流密码的安全性的公开密钥认证方案。
这里,当通过以初始内部状态和输出流作为变量的多阶多元联立方程表示流密码时,多项式的阶数增加,从而用于表示联立方程的大小增大。在这方面,除了初始内部状态和输出流之外,还引入表示每轮中的内部状态的变量。通过引入该变量,可以减少表示流密码的多阶多元联立方程的阶数。例如,当以适当的值替换表示输出流的变量时,引入关于初始内部状态和表示一轮中的内部状态的变量的联立方程。当使用该方法时,变量数增加,但是阶数减少,从而联立方程的表示变得紧凑。
以上描述了可应用于本技术的多阶多元联立方程的具体示例。
[2-8:串行并行混合算法]
为了使得成功伪造的概率可忽略地小,如上所述,需要多次执行交互协议。另外,作为多次执行交互协议的方法,介绍了串行方法和并行方法。特别地,结合具体的并行算法描述了并行方法。这里,将介绍串行方法与并行方法相组合的混合型算法。
(混合结构1)
将参考图14描述混合型算法(下文中被称为“并行串行算法”)。图14示出本技术的基本结构、将基本结构串行化的串行算法、将基本结构并行化的并行算法、以及并行串行算法。
在基本结构中,在第一通,从证明者向验证者发送消息(c1,c2,c3)。在第二通,从验证者向证明者发送挑战d。在第三通,从证明者向验证者发送响应σ。
当将基本结构并行化时,在第一通,从证明者向验证者发送N次消息(c1,1,c2,1,c3,1,…,c1,N,c2,N,c3,N)。在第二通,从验证者向证明者发送N次挑战(d1,…,dN)。在第三通,从证明者向验证者发送N次响应(σ1,…,σN)。根据本技术的并行算法确保针对被动攻击的安全性。另外,交互数仅为三次。另外,由于利用一个哈希值收集在第一通发送的N次消息,从而可以提高通信效率。
同时,当将基本结构串行化时,在第一通,从证明者向验证者发送一次消息(c1,1,c2,1,c3,1)。在第二通,从验证者向证明者发送一次挑战d1。在第三通,从证明者向验证者发送一次响应σ1。在第四通,从证明者向验证者发送一次消息(c1,2,c2,2,c3,2)。在第五通,从验证者向证明者发送一次挑战d2。在第六通,从证明者向验证者发送一次响应σ2。类似地,重复执行交互直到从证明者向验证者发送响应σN。串行算法保证针对主动攻击的安全性。另外,可以证明可靠地降低了伪造可能性。
另外,并行串行算法是具有并行算法的特征和串行算法的特征的算法。在图14所示的并行串行算法中,在第一通,从证明者向验证者发送N次消息(c1,1,c2,1,c3,1,…,c1,N,c2,N,c3,N)。在第二通,从验证者向证明者发送一次挑战d1。在第三通,从证明者向验证者发送一次响应σ1。从而,在证明者与验证者之间交换挑战d2,…,dN和响应σ2,…,σN
基于本技术的并行串行算法确保针对被动攻击的安全性。另外,交互数仅为2N+1。另外,由于要在第一通中发送的N次消息被转换为一个哈希值,从而可以提高通信效率。
(混合结构2)
将参考图15描述另一种混合型算法(下文中被称为“串行并行算法”)。图15示出关于本技术的基本结构、将基本结构串行化的串行算法、将基本结构并行化的并行算法、以及串行并行算法。基本结构、串行算法和并行算法的结构和特征与上述相同。
图15所示的串行并行算法是具有并行算法的特征和串行算法的特征两者的算法。在图15所示的串行并行算法中,在第一通,从证明者向验证者发送一次消息(c1,1,c2,1,c3,1)。在第二通,从验证者向证明者发送一次挑战d1。之后,在证明者和验证者之间交换消息(c1,2,c2,2,c3,2),…,(c1,N,c2,N,c3,N)和挑战d2,…,dN。在从验证者向证明者发送挑战dN之后,从证明者向验证者发送N次响应σ1,…,σN
基于本技术的串行并行算法确保针对主动攻击的安全性。另外,交互数仅为2N+1。
以上描述了基于本技术的混合型算法。
以上描述了本技术的第一实施例。
<3:第二实施例>
下面将描述本发明的第二实施例。迄今为止已经描述了3通公开密钥认证方案。在本实施例中将描述5通公开密钥认证方案(下文中被称为“本技术”)。本技术为通过设置验证者的2q验证模式确保公开密钥认证方案的稳健性的方案。
在根据第一实施例的3通公开密钥认证方案中,每次交互协议的错误验证的概率为2/3,但是在本技术中,如下文所述,每次交互协议的错误验证的概率为1/2+1/q。这里,q为要使用的环(ring)的阶数。从而,当环的阶数足够大时,如图39所示,根据本技术,可以减小每次错误验证的概率,并且可以通过以小次数执行交互协议充分减小错误验证的概率。
可以认为关于5通公开密钥认证方案的交互协议的效率低于关于3通公开密钥认证方案的交互协议。然而,在5通公开密钥认证方案中,当环的阶数充分大时,每次交互协议的错误验证的概率接近1/2,从而为了实现相同的安全级别,需要小次数执行交互协议。
例如,当期待错误验证的概率小于或等于1/2n时,在3通公开密钥认证方案中必须执行交互协议n/(log3-1)=1.701n次以上。另一方面,在5通公开密钥认证方案中必须执行交互协议n/(1-log(1+1/q))次以上。从而,如图39所示,当q=24时,相比于3通公开密钥认证方案,在5通公开密钥认证方案中为实现相同的安全级别所需的通信量更少。
[3-1:公开密钥认证方案的算法]
接下来,将参考图16描述关于5通公开密钥认证方案(本技术)的算法结构。图16为用于描述根据本技术的算法结构的说明图。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的m个多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,密钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,密钥生成算法Gen将(f1,…,fm,y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将一组多元多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P,验证者算法V)
接下来,将参考图16描述在交互协议期间通过证明者算法P和验证者算法V执行的处理。在前述交互协议期间,证明者一点也不将关于秘密密钥s的信息泄漏给验证者并对验证者表示“她本人知道s满足y=F(s)”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图16所示的流程图进行描述。
运算#1:
首先,证明者算法P任意选择数w。接下来,证明者算法P通过将数w应用于伪随机数生成器G生成作为集合Kn的元素的向量r和一对n元多项式FA(x)=(f1 A(x),...,fm A(x))。即,证明者算法P计算(r,FA)←G(w)。随后,证明者算法P计算z←s–r。该计算等同于利用向量r掩蔽秘密密钥s。
运算#1(继续):
接下来,证明者算法P生成z和FA(z)的哈希值c1。换句话说,证明者算法P计算c1←H1(FA(z),z)。另外,证明者算法P生成数w的哈希值c2。换句话说,证明者算法P计算c2←H2(w)。H1(…)和H2(…)是哈希函数。在运算#1中生成的消息(c1,c2)被发送到验证者。此时,应注意,关于s的信息、关于r的信息和关于z的信息完全未被泄漏给验证者。
运算#2:
验证者算法V从q个环K的初始数中随机选择一个数α,并将选择的数α发送到证明者算法P。
运算#3:
当接收到数α时,证明者算法P计算FB(x)←αF(x+r)+FA(x)。该计算等同于利用多元多项式FA(x)掩蔽关于x的多元多项式F(x+r0)。在运算#3中生成的多元多项式FB被发送到验证者算法V。此时,应注意,在d=0的情况下,关于z的信息完全未被泄漏给验证者,并且在d=1的情况下,关于r的信息完全未被泄漏给验证者。
运算#4:
在接收到多元多项式FB时,验证者算法V从两个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的两个数值{0,1}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送到证明者算法P。
运算#5:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成发送给验证者算法V的响应σ。在d=0的情况下,证明者算法P生成响应σ=w。在d=1的情况下,证明者算法P生成响应σ=z。在运算#5中生成的响应σ被发送给验证者算法V。
运算#6:
在接收到响应σ时,验证者算法V利用接收到的响应σ执行下面的验证处理。
在d=0的情况下,验证者算法V计算(rA,FC)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式FB(x)=αF(x+rA)+FC(x)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
在d=1的情况下,验证者算法V设置zA←σ。另外,验证者算法V验证等式c1=H1(FC(zA)–αy,zA)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
以上描述了涉及本技术的每个算法结构的示例。
(根据本技术的稳健性)
基于如下的事实确保本技术的稳健性:可以根据当证明者算法P关于(c1,c2)和通过验证者算法V选择的两个(α1,α2)适当地对挑战d=0和1做出响应时的响应内容,计算满足下面的公式(15)至公式(17)的F1 D、F2 D、FC、rA和zA
[数学式12]
F1 D(x)=α1F(x+rA)+FC(x)
…(15)
F2 D(x)=α2F(x+rA)+FC(x)
…(16)
F1 D(zA)α1y=F2 D(zA)-α2y
…(17)
通过确保本技术的上述稳健性,只要求解多阶多元联立方程的问题未被求解出,就确保了不可能以高于1/2+1/q的概率进行伪造的事实。即,为了适当地对验证者的全部挑战d=0和1做出响应,伪造者必须计算满足前述公式(15)至公式(17)的F1 D,F2 D,FC,rA和zA。换句话说,伪造者必须计算满足F(s)=y的s。从而,只要求解多阶多元联立方程的问题未被求解出,伪造者便不可能以高于1/2+1/q的概率成功伪造。另外,通过以足够大的次数重复执行上述交互协议,成功伪造的概率变得可忽略地小。
(变型示例)
密钥生成算法Gen计算y←F(s),并将(F,y)设置为公开密钥。然而,密钥生成算法Gen可被配置为设置(y1,…,ym)←F(s),计算(f1 *(x),…,fm *(x))←(f1(x)-y1,…,fm(x)-ym),并将(f1 *,…,fm *)设置为公开密钥。在该变型的情况下,可以在证明者算法P和验证者算法V之间以y=0执行交互协议。
另外,证明者算法P可以分别计算FB(z)的哈希值和z的哈希值,并将每个哈希值作为消息发送给验证者。
另外,证明者算法P将数w应用于伪随机数生成器G1,并生成向量r和数wA。另外,证明者算法P将数wA应用于伪随机数生成器G2并生成多元多项式FA(x)。然而,证明者算法P可被配置为对G1执行身份映射,并从开始计算w=(r,FA)。在该情况下,不需要将w应用于G1。这对于G2是类似的。
以上描述了本技术的变型示例。
[3-2:扩展算法]
接下来,将参考图17描述从本技术扩展的公开密钥认证方案(下文中被称为“扩展技术”)的算法。图17为用于描述基于扩展技术的交互协议的流程的说明图。
这里描述的扩展技术是这样的方案,其中将要在第三通发送的多元多项式FB转换为单个哈希值c3,并将哈希值c3发送给验证者。通过该扩展,当在交互协议期间将具有大的表示大小的多元多项式FB发送给验证者算法V时可以将通信量减半,并且可以减小要交换的数据的平均大小。接下来,将详细描述扩展方案中的每个算法的结构。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,密钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,密钥生成算法Gen将(f1,…,fm,y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将一组多元多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P,验证者算法V)
接下来,将参考图17描述在交互协议期间通过证明者算法P和验证者算法V执行的处理。在前述交互协议期间,证明者一点也不将关于秘密密钥s的信息泄漏给验证者并对验证者表示“她本人知道满足y=F(s)的s”。另一方面,验证者验证证明者是否知道满足y=F(s)的s。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图17所示的流程图进行描述。
运算#1:
首先,证明者算法P任意选择数w。然后,证明者算法P通过将数w应用于伪随机数生成器G生成作为集合Kn的元素的向量r和多元多项式FA(x)。即,证明者算法P计算(r,FA)←G(w)。随后,证明者算法P计算z←s–r。该计算等同于利用向量r掩蔽秘密密钥s。
运算#1(继续):
随后,证明者算法P生成FA(z)和z的哈希值c1。即,证明者算法P计算c1←H1(FA(z),z)。另外,证明者算法P生成数w的哈希值c2。即,证明者算法P计算c2←H2(w)。上述H1(…)和H2(…)是哈希函数。在运算#1中生成的消息(c1,c2)被发送给验证者算法V。
运算#2:
当接收消息(c1,c2)时,验证者算法V从q个环K的初始数中随机选择一个数α,并将选择的数α发送给证明者算法P。
运算#3:
已经接收到数α的证明者算法P计算FB(x)←αF(x+r)+FA(x)。该计算对应于使用多元多项式FA(x)掩蔽关于x的多元多项式F(x+r)的运算。另外,证明者算法P生成多元多项式集合FB的哈希值c3。换句话说,证明者算法P计算c3←H3(FB(x))。H3(…)是哈希函数。在运算#3中生成的消息c3被发送给验证者。
运算#4:
在接收到多元多项式F2时,验证者算法V从两个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的两个数值{0,1}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#5:
在接收到挑战d时,证明者算法P响应于接收到的挑战d生成发送给验证者算法V的响应α。在d=0的情况下,证明者算法P生成响应σ=w。在d=1的情况下,证明者算法P生成响应σ=(z,FB)。在运算#5中生成的响应σ被发送给验证者算法V。
运算#6:
在接收到响应σ时,验证者算法V利用接收到的响应σ执行下面的验证处理。
在d=0的情况下,验证者算法V计算(rA,FC)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式c3=H3(αF(x+rA)+FC(x))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
在d=1的情况下,验证者算法V计算(zA,FC)←σ。然后,验证者算法V验证等式c1=H1(FC(zA)-αy,zA)是否成立。另外,验证者算法V验证等式c2=H2(FC(x))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
以上已经描述了在扩展方案的交互协议期间通过每个算法执行的处理。通过该扩展,当在交互协议期间将具有大的表示大小的多元多项式FB发送给验证者算法V时可以将通信量减半,并且可以减小要交换的数据的平均大小。
[3-3:并行算法]
如上所述,应用涉及本技术和扩展技术的交互协议使得可以将成功伪造的概率保持为(1/2+1/q)以下。从而,两次执行交互协议使得可以将成功伪造的概率保持在(1/2+1/q)2以下。另外,如果以N次执行交互协议,则成功伪造的概率变为(1/2+1/q)N,并且,如果将N设置为足够大的数(例如,N=80),则成功伪造的概率变得可忽略地小。
多次执行交互协议的可想到的方法包括:串行方法,其中多次顺序重复消息、挑战和响应的交换;以及并行方法,其中例如在单个交换中交换多个消息、挑战和响应。这里,将描述把根据本技术的交互协议扩展到关于并行方法的交互协议(下文中被称为“并行算法”)的方法。例如,图18示出并行算法。接下来,将参考图18描述并行算法的细节。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量(s1,...,sn)。接下来,密钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,密钥生成算法Gen将(f1,…,fm,y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将一组多元多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P,验证者算法V)
接下来,将参考图18描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
在前述交互协议期间,证明者一点也不将关于秘密密钥s的信息泄漏给验证者并对验证者表示“她本人知道满足y=F(s)的s”。另一方面,验证者验证证明者是否知道满足y=F(s)的s。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图18所示的流程图进行描述。
运算#1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至(5)。
处理(1):证明者算法P任意选择数wi
处理(2):证明者算法P将数wi应用于伪随机数生成器G,并生成作为集合Kn的元素的向量ri和多项式集合Fi A(x)。换句话说,证明者算法P计算(ri,Fi A)←G(wi)。
处理(3):证明者算法P计算zi←s-ri。该计算对应于利用向量ri掩蔽秘密密钥s的运算。
处理(4):证明者算法P计算zi和Fi A(zi)的哈希值c1,i。换句话说,证明者算法P计算c1,i←H1(Fi A(zi),zi)。
处理(5):证明者算法P生成数wi A的哈希值c2,i。换句话说,证明者算法P计算c2,i←H2(wi A)。
在针对i=1至N执行处理(1)至(5)之后,将在运算#1中生成的消息(c1,i,c2,i)(i=1至N)发送给验证者算法V。
运算#2:
已经接收到消息(c1,i,c2,i)(i=1至N)的验证者算法V从q个环K的初始数中随机选择N个数α1,…,αN。然后,验证者算法V将选定的数α1,…,αN发送给证明者算法P。
运算#3:
已经接收到数α1,…,αN的证明者算法P针对i=1至N计算Fi B(x)←αiF(x+ri)+Fi A(x)。该计算对应于使用多元多项式Fi A(x)掩蔽关于x的多元多项式F(x+ri)的运算。然后,证明者算法P将多元多项式F1 B,…,FN B发送给验证者算法V。
运算#4:
在接收到多元多项式F1 B,...,FN B时,验证者算法V针对i=1至N从两个验证模式中选择要使用的验证模式。例如,验证者算法V可以针对i=1至N从表示验证模式的两个数值{0,1}中选择数值,并将选择的数值设置在挑战di中。挑战di被发送给证明者算法P。
运算#5:
已经接收到挑战di(i=1至N)的证明者算法P响应于挑战di生成要被发送给验证者算法V的响应σi。这里,证明者算法P针对i=1至N执行下面的处理(1)和(2)。
处理(1):当di=0时,证明者算法P生成响应σi=wi
处理(2):当di=1时,证明者算法P生成响应σi=zi
在执行处理(1)和(2)后,将响应σi(i=1至N)发送给验证者算法V。
运算#6:
在接收到响应σi(i=1至N)时,验证者算法V利用接收到的响应σi执行验证处理。注意,针对i=1至N执行下面的处理。
在di=0的情况下,验证者算法V计算(ri A,Fi C)←G(σi)。然后,验证者算法V验证等式c2,i=H2i)是否成立。另外,验证者算法V验证等式Fi B(x)=αiF(x+ri A)+Fi C(x)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
在di=1的情况下,验证者算法V计算zi A←σi。另外,验证者算法V验证等式c1,i=H1(Fi C(zi A)–αiy,z1)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
以上描述了并行执行本技术的交互协议的方法。如上所述,由于重复执行本技术的交互协议,成功伪造的概率变得可忽略地小。另外,可以类似地将扩展方案并行化。
(变型示例)
另外,可以修改交互协议的结构,使得可以在运算#1之后向验证者算法V发送哈希值H(c1,1,c1,2,…,cN,1,cN,2)而不是发送(c1,1,c1,2,…,cN,1,cN,2)。在该变型的情况下,在第一通中发送单个哈希值作为消息,从而可以显著减少通信量。然而,由于存在即使使用从证明者算法P发送的信息仍难以通过验证者算法V恢复的消息,从而在发送响应时需要一起发送对应的消息。通过该结构,在n次并行重复结构的情况下,可以将要发送的信息条数减少N-1。
(关于扩展方案的并行算法)
这里,将参考图19描述关于扩展方案的并行算法的结构。密钥生成算法Gen的结构与关于本技术的并行算法相同,从而省略对其的详细描述。
运算#1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至(5)。
处理(1):证明者算法P任意选择数wi
处理(2):证明者算法P将数wi应用于伪随机数生成器G,并生成作为集合Kn的元素的向量ri和多元多项式集合Fi A(x)。换句话说,证明者算法P计算(ri,Fi A)←G(wi)。
处理(3):证明者算法P计算zi←s-ri。该计算对应于利用向量ri掩蔽秘密密钥s的运算。
处理(4):证明者算法P生成zi和Fi A(zi)的哈希值c1,i。换句话说,证明者算法P计算c1,i←H1(Fi A(zi),zi)。
处理(5):证明者算法P生成数wi的哈希值c2,i。换句话说,证明者算法P计算c2,i←H2(wi)。
在针对i=1至N执行处理(1)至(5)之后,将在运算#1中生成的消息(c1,i,c2,i)(i=1至N)发送给验证者算法V。
运算#2:
已经接收到消息(c1,i,c2,i)(i=1至N)的验证者算法V从q个环K的初始数中随机选择n个数α1,…,αN。然后,验证者算法V将选定的数α1,…,αN发送给证明者。
运算#3:
已经接收到数α1,…,αN的证明者算法P针对i=1至N计算Fi B(x)←αiF(x+ri)+Fi A(x)。该计算对应于使用多元多项式Fi A(x)掩蔽关于x的多元多项式F(x+ri)的运算。接下来,证明者算法P生成多元多项式F1 B,…,FN B的哈希值c3。换句话说,证明者算法P计算c3←H3(F1 B,…,FN B)。H3(…)是哈希函数。在运算#3中生成的消息c3被发送给验证者算法V。
运算#4:
在接收到消息c3时,验证者算法V针对i=1至N中的每个从两个验证模式中选择要使用的验证模式。例如,针对i=1至N中的每个,验证者算法V可以从表示验证模式的两个数值{0,1}中选择数值,并将选择的数值设置在挑战di中。挑战di被发送给证明者算法P。
运算#5:
已经接收到挑战di(i=1至N)的证明者算法P响应于挑战di生成要被发送给验证者算法V的响应σi。这里,证明者算法P针对i=1至N执行下面的处理(1)和(2)。
处理1:当di=0时,证明者算法P生成响应σi=wi
处理2:当di=1时,证明者算法P生成响应σi=(zi,Fi B)。
在执行处理(1)和(2)后,将响应σi(i=1至N)发送给验证者算法V。
运算#6:
在接收到响应σi(i=1至N)时,验证者算法V利用接收到的响应σ执行验证处理。注意,针对i=1至N执行下面的处理。
在di=0的情况下,验证者算法V计算(ri A,Fi C)←G(σi)。另外,验证者算法V计算Fi D←αiF(x+ri A)+Fi C(x)。然后,验证者算法V验证等式c2,i=H2i)是否成立。另外,验证者算法V验证等式c3=H3(F1 D,…,FN D)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
在di=1的情况下,验证者算法V设置(zi A,Fi D)←σi。然后,验证者算法V验证等式c1,i=H1(Fi D(zi A)-αiy,zi A)是否成立。另外,验证者算法V验证等式c3=H3(F1 D,…,FN D)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
以上描述了涉及扩展方案的并行算法的结构。
(合适的参数设置方法)
类似于根据第一实施例的交互协议,根据本实施例的交互协议保证针对被动攻击的安全级别。然而,当应用并行重复执行交互协议的方法时,需要下述条件以保证针对主动攻击的安全级别被保障。
交互协议是这样的协议,其中证明者通过利用一组密钥对(公开密钥y和秘密密钥s)的交互向验证者证明“证明者知道使得y=F(s)的s”,而不向验证者泄漏任何秘密密钥s的信息。为此,当执行通过验证接受的交互时,难以否定验证者知道表示“证明者在交互时使用了s”的信息的可能性。另外,在多元多项式F中没有保证抗冲突性。为此,当并行重复执行上述交互协议时,难以无条件地保证针对主动攻击的安全性被可靠地保障。
在这方面,本技术的发明人检查了使得即使在执行通过验证被接受的交互时仍防止验证者知道表示“证明者在交互时已经使用了s”的信息的方法。另外,本技术的发明人提出了一种即使在并行重复执行上述交互协议时仍保证针对主动攻击的安全性被保障的方法。该方法为设置条件提供方法,其中将用作公开密钥的多元多项式f1,...,fm的个数m设置为足够小于变量的个数n的值。例如,将m和n设置为使得2m-n<<1(例如,当n=160且m=80时,2-80<<1)。
在上述以求解多阶多元联立方程的难度作为安全性基础的方案中,即使在给定秘密密钥s1和对应的公开密钥pk时,也难以生成对应于公开密钥pk的另一个秘密密钥s2。为此,当保证存在用于公开密钥pk的两个或更多个秘密密钥s时,即使在执行通过验证被接受的交互时,仍可以防止验证者知道表示“证明者在交互时已经使用了s”的信息。换句话说,当可以给定这样的保证时,即使在并行重复执行交互协议时,仍可以确保针对主动攻击的安全性。
当参考图40考虑包括m个具有n个变量的多阶多项式(其中n>m)的函数F:Kn→Km时,不具有第二原像的定义域中的元素的个数最多为|K|m–1。为此,当将|K|m-n设置为足够小时,可以使得选择不具有第二原像的定义域中的元素的概率可忽略地小。换句话说,当将具有n个变量的多阶多项式f1,...,fm的个数m设置为充分小于变量数n的值时,可以确保针对公开密钥pk存在两个或更多个秘密密钥s。从而,即使当执行通过验证被接受的交互时,仍可以防止验证者知道表示“证明者在交互时已经使用了s”的信息,并且即使在并行重复执行交互协议时,仍保证针对主动攻击的安全性。
如上所述,作为用于将具有n个变量的多阶多项式f1,...,fm的个数m设置为充分小于变量数n的值(其中n>m,并且优选地2m-n<<1)的设置条件,当并行重复执行交互协议时可以确保安全性。
[3-4:具体示例(当使用二阶多项式时)]
接下来,将参考图20描述使用具有n个变量的二阶多项式作为多元多项式F的示例。图20为用于描述本技术的具体示例的说明图。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k上定义的m个二阶多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,密钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,密钥生成算法Gen将(f1,…,fm,y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(x1,...,xn)表示为x,并将一组二阶多项式(f1(x),...,fm(x))表示为F(x)。
(证明者算法P,验证者算法V)
接下来,将参考图20描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
运算#1:
首先,证明者算法P任意选择数w。接下来,证明者算法P将数w应用于伪随机数生成器G,并生成作为集合Kn的元素的向量r和多元多项式集合FA(x)=(f1 A(x),…,fm A(x))。换句话说,证明者算法P计算(r,FA)←G(w)。接下来,证明者算法P计算z←s-r。该计算对应于利用向量r掩蔽秘密密钥s的运算。这里,如下面的公式(18)表示二阶多项式fi A(x)。
[数学式13]
f i A ( X ) = &Sigma; J b i , j A x j . . . ( 18 )
运算#1(继续):
接下来,证明者算法P生成z和FA(z)的哈希值c1。换句话说,证明者算法P计算c1←H1(FA(z),z)。另外,证明者算法P生成数w的哈希值c2。换句话说,证明者算法P计算c2←H2(w)。H1(…)和H2(…)是哈希函数。在运算#1中生成的消息(c1,c2)被发送给验证者算法V。
运算#2:
已经接收到消息(c1,c2)的验证者算法V从q个环K的原始数中随机选择数α,并将选择的数α发送给证明者算法P。
运算#3:
已经接收到数α的证明者算法P计算FB(x)←αF(x+r)+FA(x)。该计算对应于使用多元多项式FA(x)掩蔽关于x的多元多项式F(x+r)的操作。在运算#3中生成的多元多项式FB被发送给验证者算法V。
运算#4:
已经接收到多元多项式FB的验证者算法V从两个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的类型的两个数值{0,1}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#5:
已经接收到挑战d的证明者算法P响应于接收到的挑战d生成要被发送给验证者算法V的响应σ。在d=0时,证明者算法P生成响应σ=w。当d=1时,证明者算法P生成响应σ=z。在运算#5中生成的响应σ被发送给验证者算法V。
运算#6:
已经接收到响应σ的验证者算法V利用接收到的响应σ执行下面的验证处理。
当d=0时,验证者算法V计算(rA,FC)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式FB(x)=αF(x+rA)+FC(x)是否成立。验证者算法V在验证成功时输出表示认证成功的值1,并在验证失败时输出表示认证失败的值0。
当d=1时,验证者算法V执行zA←σ。然后,验证者算法V验证等式c1=H1(FB(zA)-αy,zA)是否成立。验证者算法V在验证成功时输出表示认证成功的值1,并在验证失败时输出表示认证失败的值0。
以上描述了本技术的具体示例。
[3-5:高效算法]
接下来,将描述使根据本技术的算法高效化的方法。类似于第一实施例中描述的高效化方法,利用作为集合Kn的元素的向量t和作为集合Km的元素的向量e这两个向量通过FA(x)=Fb(x,t)+e表示用于掩蔽多元多项式F(x+r)的多元多项式FA(x)。利用该表达式,基于多元多项式F(x+r)获得由下面的公式(19)表示的关系。
[数学式14]
αF(x+r)+FA(x)
=αF(x)+αF(r)+αFb(x,r)+Fb(x,t)+e
=αF(x)+Fb(x,αr+t)+αF(r)+e
…(19)
从而,当tA=αr+t且eA=αF(r)+e时,可以通过作为集合Kn的元素的向量tA和作为集合Km的元素的向量eA这两个向量表示掩蔽的多元多项式FB(x)=αF(x+r)+FA(x)。为此,当设置“FA(x)=Fb(x,t)+e”时,可使用Kn中的向量和Km中的向量表示FA和FB,从而可以显著减小用于通信所需的数据大小。具体地,可以数千至数万倍地减少通信成本。
通过该变型,未从F2(或F1)泄漏任何关于r0的信息。例如,即使当给定eA和tA(或e和t)时,仍完全不知道r的信息,除非知道e和t(或eA和tA)。从而,即使执行该变型时,仍保证零知识。接下来,将参照图21到图27描述关于本技术的高效算法。由于密钥生成算法Gen的结构未变,从而将省略对其的具体描述。
(高效算法的结构示例1:图21)
首先,将描述图21所示的高效算法的结构。
运算#1:
首先,证明者算法P任意选择数w。接下来,证明者算法P将数w应用于伪随机数生成器G,并生成作为集合Kn的元素的向量r和t和作为集合Km的元素的向量e。换句话说,证明者算法P计算(r,t,e)←G(w)。接下来,证明者算法P计算z←s-r。该计算对应于利用向量r掩蔽秘密密钥s的运算。
运算#1(继续):
接下来,证明者算法P生成z和Fb(z,t)的哈希值c1。换句话说,证明者算法P计算c1←H1(Fb(z,t)+e,z)。另外,证明者算法P生成数w的哈希值c2。换句话说,证明者算法P计算c2←H2(w)。H1(…)和H2(…)是哈希函数。在运算#1中生成的消息(c1,c2)被发送给验证者算法V。
运算#2:
已经接收到消息(c1,c2)的验证者算法V从q个环K的原始数中随机选择数α,并将选择的数α发送给证明者算法P。
运算#3:
已经接收到数α的证明者算法P计算tA←αr+t。另外,证明者算法P计算eA←αF(r)+e。然后,证明者算法P将tA和eA发送给验证者算法V。
运算#4:
已经接收到tA和eA的验证者算法V从两个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的类型的两个数值{0,1}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
运算#5:
已经接收到挑战d的证明者算法P响应于接收到的挑战d生成要被发送给验证者算法V的响应σ。在d=0时,证明者算法P生成响应σ=w。当d=1时,证明者算法P生成响应σ=z。在运算#5中生成的响应σ被发送给验证者算法V。
运算#6:
接收到响应σ的验证者算法V利用接收到的响应σ执行下面的验证处理。
当d=0时,验证者算法V计算(rA,tB,eB)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。另外,验证者算法V验证等式tA=αrA+tB是否成立。另外,验证者算法V验证等式eA=αF(rA)+eB是否成立。验证者算法V在验证成功时输出表示认证成功的值1,并当验证失败时输出表示认证失败的值0。
当d=1时,验证者算法V执行zA←σ。然后,验证者算法V验证等式c1=H1(α(F(zA)-y)+Fb(zA,tA)+eA,zA)是否成立。验证者算法V在验证成功时输出表示认证成功的值1,并在验证失败时输出表示认证失败的值0。
以上描述了高效算法的结构示例1。使用该高效算法,显著减小了用于通信所需的数据大小。另外,由于不需要计算F(x+r),还提高了计算效率。
(高效算法的结构示例2:图22)
接下来,将描述图22所示的高效算法的结构。当应用图22所示的结构时,类似于应用图20所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图20所示的结构的不同。
在图20所示的算法的运算#5中,当d=0时,将σ设置为w,但是可以将可通过(r,t,e)恢复的信息用作当d=0时设置的σ。例如,如图22所示,在运算#5中,可以将r用作当d=0时设置的σ。这里,当执行该变型时,需要将运算#1中的计算c2←H2(w)修改为c2←H2(r,t,e)。具体地,在运算#6中,当d=0时,以c2=H2(r,tA-αr,eA-αF(r))的验证替换通过验证者算法V执行的验证内容。
以上描述了高效算法的结构示例2。
(高效算法的结构示例3:图23)
接下来,将描述图23所示的高效算法的结构。当应用图23所示的结构时,类似于应用图20所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图22所示的结构的不同。
在图22所示的算法的运算#3中,执行tA←αr+t的计算,但是如图23所示,可以将该计算修改为tA←α(r+t)的计算。例如,如图22所示,在运算#5中,可以将r用作当d=0时设置的σ。当执行该变型时,在运算#6中,当d=0时,以c2=H2(r,α-1tA-r,eA-αF(r))的验证替换通过验证者算法V执行的验证内容。
以上描述了高效算法的结构示例3。
(高效算法的结构示例4:图24)
接下来,将描述图24所示的高效算法的结构。当应用图24所示的结构时,类似于应用图20所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图22所示的结构的不同。
在图22所示的算法的运算#3中,执行eA←αF(r)+e的计算,但是如图24所示,可以将该计算修改为eA←α(F(r)+e)的计算。当执行该变型时,在运算#6中,当d=0时,以c2=H2(r,tA-αr,eA-1eA-F(r))的验证替换通过验证者算法V执行的验证内容。
以上描述了高效算法的结构示例4。
(高效算法的结构示例5:图25)
接下来,将描述图25所示的高效算法的结构。当应用图25所示的结构时,类似于应用图20所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图22所示的结构的不同。
在图22所示的算法的运算#5中,当d=0时,将σ设置为r,但是可以将可通过利用(tA,eB)的(r,t,e)恢复的信息用作当d=0时设置的σ。例如,如图25所示,在运算#5中,可以将t用作当d=0时设置的σ。这里,当执行该变型时,在运算#2中从作为集合RK\{0}的元素的α中选择α。具体地,在运算#6中,当d=0时,以c2=H2-1(tA-t),t,eA-αF(α-1(tA-t)))的验证替换通过验证者算法V执行的验证内容。
以上描述了高效算法的结构示例5。
(高效算法的结构示例6:图26)
接下来,将描述图26所示的高效算法的结构。当应用图26所示的结构时,类似于应用图20所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图25所示的结构的不同。
在图25所示的算法的运算#3中,执行tA←αr+t的计算,但是如图26所示,可以将该计算修改为tA←α(r+t)的计算。当执行该变型时,在运算#6中,当d=0时,以c2=H2-1tA-t,t,eA-αF(α-1tA-t))的验证替换通过验证者算法V执行的验证内容。
以上描述了高效算法的结构示例6。
(高效算法的结构示例7:图27)
接下来,将描述图27所示的高效算法的结构。当应用图27所示的结构时,类似于应用图20所示的结构时,获得提高通信效率和计算效率的效果。这里,将描述与图25所示的结构的不同。
在图25所示的算法的运算#3中,执行eA←αF(r)+e的计算,但是如图27所示,可以将该计算修改为eA←α(F(r)+e)的计算。当执行该变型时,在运算#6中,当d=0时,以c2=H2-1(tA-t),t,α-1eA-αF(α-1(tA-t)))的验证替换通过验证者算法V执行的验证内容。
以上描述了高效算法的结构示例7。
(高效算法的并行化:图29)
接下来,将参考图29描述将高效算法并行化的方法。图29所示的结构(下文中被称为“并行算法”)为将图28所示的高效算法并行化的结构。图28所示的高效算法具有与图22所示的高效算法基本相同的结构。下文将继续描述图29所示的流程图。
运算#1:
证明者算法P针对i=1至N执行下面的处理(1)至(4)。
处理(1):证明者算法P任意选择作为集合Kn的元素的向量ri和ti、以及作为集合Km的元素的向量ei
处理(2):证明者算法P计算ri A←s-ri。该计算对应于利用向量ri掩蔽秘密密钥s的运算。
处理(3):证明者算法P计算c1,i←H1(ri,ti,ei)。
处理(4):证明者算法P计算c2,i←H2(ri A,Fb(ri A,ti)+ei)。
在运算#1中生成的消息(c1,1,c2,1,…,c1,N,c2,N)被发送给验证者算法V。
运算#2:
在接收到消息(c1,1,c2,1,…,c1,N,c2,N)时,验证者算法V针对i=1至N中的每个从q个环K的初始数中随机选择一个数αi,并将选择的数αi发送给证明者算法P。
运算#3:
在接收到数αi(i=1至N)时,证明者算法P针对i=1至N计算ti A←αiri-ti。另外,证明者算法P针对i=1至N计算ei A←αiF(ri)-ei。然后,证明者算法P将t1 A,...,tN A和e1 A,...,eN A发送给验证者算法V。
运算#4:
在接收到t1 A,...,tN A和e1 A,...,eN A时,验证者算法V针对i=1至N从两个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的两个数值{0,1}中选择数值,并将选择的数值设置在挑战di中。该挑战di(i=1至N)被发送给证明者算法P。
运算#5:
在接收到挑战di(其中i=1至N)时,证明者算法P针对i=1至N响应于接收到的挑战di生成要发送给验证者算法V的响应di。在di=0的情况下,证明者算法P生成响应σi=ri。在di=1的情况下,证明者算法P生成响应σi=ri A。在运算#5中生成的响应σi被发送给验证者算法V。
运算#4:
已经接收到响应σi(i=1至N)的验证者算法V利用接收到的响应σi(i=1至N)执行下面的验证处理。针对i=1至N执行下面的处理。
在di=0的情况下,验证者算法V执行ri←σi。然后,验证者算法V验证等式c1,i=H1(riiri-ti AiF(r1)-ei A)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
在di=1的情况下,验证者算法V执行ri A←σi。然后,验证者算法V验证等式c2,i=H2(ri Ai(y-F(ri A))-Fb(ti A,ri A)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,并在验证失败的情况下输出指示认证失败的值0。
以上描述了高效算法的并行化。
(并行算法的高效化:图30)
可以如图30所示使图29所示的并行算法高效化。如图30所示,并行算法被配置为将消息(c1,1,c2,1,…,c1,N,c2,N)转换为哈希值c,并且在运算#1中在第一通将哈希值c从证明者算法P发送给验证者算法V。另外,并行算法被配置为在运算#5中当di=0时生成响应σi=(ri,c2,i),并且当di=1时生成响应σi=(ri A,c1,i)。另外,并行算法被配置为在运算#6中执行下面的处理。
运算#6:
首先,验证者算法V针对i=1至N执行处理(1)和(2)。实践中,当di=0时,执行处理(1),并且当di=1时,执行处理(2)。
处理(1):当di=0时,验证者算法V执行(ri,c2,i)←σi。另外,验证者算法V计算c1,i=H1(riiri-ti AiF(ri)-ei A)。然后,验证者算法V保存(c1,i,c2,i)。
处理(2):当di=1时,验证者算法V执行(ri A,c1,i)←σi。另外,验证者算法V计算c2,i=H2(ri Ai(y-F(ri A))-Fb(ti A,ri A)-ei A)。然后,验证者算法V保存(c1,i,c2,i)。
在针对i=1至N执行处理(1)和(2)后,验证者算法V验证等式c=H(c1,1,c2,1,…,c1,N,c2,N)是否成立。验证者算法V在验证成功时输出表示认证成功的值1,并且在验证失败时输出表示认证失败的值0。
以上描述了并行算法的高效化。
(并行算法的另一高效化:图31)
可以如图31所示进一步使图30所示的并行算法高效化。如图31所示,并行算法被配置为将(t1 A,e1 A,…,tN A,eN A)转换为哈希值v,并在运算#3中在第三通将哈希值v从证明者算法P发送给验证者算法V。另外,并行算法被配置为在运算#5中当di=0时生成响应σi=(ri,ti,ei,c2,i)、并且当di=1时生成响应σi=(ri A,ti A,ei A,c1,i)。另外,并行算法被配置为在运算#6中执行下面的处理。
运算#6:
首先,验证者算法V针对i=1至N执行处理(1)和(2)。实践中,当di=0时,执行处理(1),并且当di=1时,执行处理(2)。
处理(1):当di=0时,验证者算法V执行(ri,ti,ei,c2,i)←σi。然后,验证者算法V计算c1,i=H1(ri,ti,ei)。另外,验证者算法V计算ti A←αiri-ti和ei A←αiF(ri)-ei。然后,验证者算法V保存(c1,i,c2,i)和(ti A,ei A)。
处理(2):当di=1时,验证者算法V执行(ri A,ti A,ei A,c1,i)←σi。然后,验证者算法V计算c2,i=H2(ri Ai(y-F(ri A))-Fb(ri A,ti A)-ei A)。然后,验证者算法V保存(c1,i,c2,i)和(ti A,ei A)。
在针对i=1至N执行处理(1)和(2)后,验证者算法V验证等式c=H(c1,1,c2,1,…,c1,N,c2,N)是否成立。另外,验证者算法V验证等式v=H(t1 A,e1 A,…,tN A,eN A)是否成立。验证者算法V在验证成功时输出表示认证成功的值1,并且在验证失败时输出表示认证失败的值0。
以上描述了进一步使并行算法高效化的结构。如上所述,由于将在证明者算法P和验证者算法V之间交换的多条信息转换为哈希值,从而可以减少第三通的通信数据的大小。另外,由于修改算法的结构以从算法中的单个随机数种子生成ri、ti和ei,从而可以减小通信数据大小的期望值。另外,当设置限制使得被选择为挑战di的0的个数等于所选择的1的个数时,可以可靠地减小通信数据大小。
例如,当在图30所示的算法中将(q,n,m,N)设置为(24,45,30,88)时,公开密钥占120比特,秘密密钥占180比特,并且通信数据大小占42840比特。同时,当在图31所示的算法中将(q,n,m,N)设置为(24,45,30,88)时,公开密钥占120比特,秘密密钥占180比特,并且通信数据大小占27512比特。当如上所述进一步执行并行算法的高效化时,可以显著减小通信数据大小。
[3-6:串行并行混合算法]
为了使得成功伪造的概率可忽略地小,如上所述,需要多次执行交互协议。另外,作为多次执行交互协议的方法,介绍了串行方法和并行方法。特别地,结合具体的并行算法描述了并行方法。这里,将介绍串行方法与并行方法组合的混合型算法。
(混合结构1)
将参考图32描述混合型算法(下文中被称为“并行串行算法”)。图32示出关于本技术的基本结构、将基本结构串行化的串行算法、将基本结构并行化的并行算法、以及并行串行算法。
在基本结构中,在第一通,从证明者向验证者发送消息(c1,c2)。在第二通,从验证者向证明者发送数α。在第三通,从证明者向验证者发送向量tA和eA。在第四通,从验证者向证明者发送挑战d。在第五通,从证明者向验证者发送响应σ。
当将基本结构并行化时,在第一通,从证明者向验证者发送N次消息(c1,1,c2,1,…,c1,N,c2,N)。在第二通,从验证者向证明者发送N次数(α1,…,αN)。在第三通,从证明者向验证者发送N次向量(t1 A,…,tN A,e1 A,…,eN A)。在第四通,从验证者向证明者发送N次挑战(d1,…,dN)。在第五通,从证明者向验证者发送N次响应(σ1,…,σN)。
关于本技术的并行算法确保针对被动攻击的安全性。另外,交互数仅为5次。另外,由于将在第一通中要发送的N次消息或将在第三通中要发送的N次向量转换为一个哈希值,从而可以提高通信效率。
同时,当将基本结构串行化时,在第一通,从证明者向验证者发送一次消息(c1,1,c2,1)。在第二通,从验证者向证明者发送一次数α1。在第三通,从证明者向验证者发送一次向量(t1 A,e1 A)。在第四通,从验证者向证明者发送一次挑战d1。在第五通,从证明者向验证者发送一次响应σ1。类似地,重复执行交互直到从证明者向验证者发送响应σN。串行算法保证针对主动攻击的安全性。另外,可以保证可靠地降低错误验证的可能性。
并行串行算法是具有并行算法的特征和串行算法的特征两者的算法。在图32所示的并行串行算法中,在第一通,从证明者向验证者发送N次消息(c1,1,c2,1,…,c1,N,c2,N)。在第二通,从验证者向证明者发送一次数α1。在第三通,从证明者向验证者发送一次向量(t1 A,e1 A)。在第四通,从验证者向证明者发送一次挑战d1。在第五通,从证明者向验证者发送一次响应σ1。然后,在证明者和验证者之间交换α2,…,αN,t2 A,e2 A,…,tN A,eN A,d2,…,dN和σ2,…,σN
基于本技术的并行串行算法确保针对被动攻击的安全性。另外,交互数仅为4N+1次。另外,当利用一个哈希值收集在第一通发送的N次消息时,可以提高通信效率。
(混合结构2)
将参考图33描述另一并行串行算法。图33示出关于本技术的基本结构、将基本结构串行化的串行算法、将基本结构并行化的并行算法、以及并行串行算法。基本结构、串行算法和并行算法的结构和特征与上述相同。
图33所示的并行串行算法是具有并行算法的特征和串行算法的特征两者的算法。在该并行串行算法中,在第一通,从证明者向验证者发送N次消息(c1,1,c2,1,…,c1,N,c2,N)。在第二通,从验证者向证明者发送N次数(α1,…,αN)。在第三通,从证明者向验证者发送N次向量(t1 A,e1 A,…,tN A,eN A)。在第四通,从验证者向证明者发送一次挑战d1。在第五通,从证明者向验证者发送一次响应σ1。之后,在证明者与验证者之间交换d2,…,dN和σ2,…,σN
基于本技术的并行串行算法确保针对被动攻击的安全性。另外,交互数仅为2N+3次。另外,由于将在第一通中要发送的N次消息转换为一个哈希值,从而可以提高通信效率。
(混合结构3)
将参考图34描述另一种混合型算法(下文中被称为“串行并行算法”)。图34示出关于本技术的基本结构、将基本结构串行化的串行算法、将基本结构并行化的并行算法、以及串行并行算法。基本结构、串行算法和并行算法的结构和特征与上述相同。
图34所示的串行并行算法是具有并行算法的特征和串行算法的特征两者的算法。在该串行并行算法中,在第一通,从证明者向验证者发送一次消息(c1,1,c2,1)。在第二通,从验证者向证明者发送一次数α1。在第三通,从证明者向验证者发送一次向量(t1 A,e1 A)。在第四通,从验证者向证明者发送挑战d1。之后,在证明者和验证者之间交换c1,2,c2,2,…,c1,N,c2,N2,…,αN,t2 A,e2 A,…,tN A,eN A和d2,…,dN。最后,从证明者向验证者发送N次响应(σ1,…,σN)。
基于本技术的串行并行算法确保针对主动攻击的安全性。另外,交互数仅为4N+1次。
(混合结构4)
将参考图35描述另一并行串行算法。图35示出关于本技术的基本结构、将基本结构串行化的串行算法、将基本结构并行化的并行算法、以及串行并行算法。基本结构、串行算法和并行算法的结构和特征与上述相同。
图35所示的串行并行算法是具有并行算法的特征和串行算法的特征两者的算法。在该串行并行算法中,在第一通,从证明者向验证者发送一次消息(c1,1,c2,1)。在第二通,从验证者向证明者发送一次数α1。之后,在证明者和验证者之间交换c1,2,c2,2,…,c1,N,c2,N和α2,…,αN。在交换αN后,从证明者向验证者发送N次向量(t1 A,e1 A,…,tN A,eN A)。接下来,从验证者向证明者发送N次挑战(d1,…,dN)。最后,从证明者向验证者发送N次响应(σ1,…,σN)。
基于本技术的串行并行算法确保针对被动攻击的安全性。另外,交互数仅为2N+3次。
以上描述了基于本技术的混合型算法。
以上描述了本技术的第二实施例。多元联立方程的形式与第一实施例相同。
<4:高效算法的扩展>
同时,根据第一和第二实施例的高效算法具有这样的结构,其中将由下面的公式(20)表示的二阶多元多项式用作公开密钥(或系统参数)。然而,高效算法可以被扩展为具有这样的结构,其中将三阶或更高阶多元多项式用作公开密钥(或系统参数)。
[4-1:高阶多元多项式]
例如,将考虑这样的结构,其中将在pk阶的域中定义的三阶或更高阶多元多项式(参考下面的公式(21))用作公开密钥(或系统参数)。
[数学式15]
f l ( x 1 , . . . , x n ) = &Sigma; i = 1 n &Sigma; j = 1 n a 1 , i , j x i x j + &Sigma; i = 1 n b l , i x i . . . ( 20 )
f l ( x 1 , . . . , x n ) = &Sigma; i = 1 n &Sigma; j = 1 n &Sigma; s = 0 k - 1 &Sigma; t = 0 k - 1 a 1 , i , j , s , t x i p s x j p t + &Sigma; i = 1 n &Sigma; s = 0 k - 1 b l , i , s x i p s . . . ( 21 )
在根据第一和第二实施例的高效算法中,当下面的公式(22)关于(x1,…,xn)和(y1,…,yn)为双线性的时,多元多项式fl可用作公开密钥。在由公式(20)表示的多元多项式中,如下面的公式(23)所示,可以容易地发现双线性(下划线部分关于xi和yi中的每个为线性的)。另外,在由公式(21)表示的多元多项式中,如下面的公式(24)所示,可以类似地发现双线性。下面的公式(24)中的下划线部分表示p阶的域GF(p)中的双线性。从而,当将由公式(21)表示的多元多项式用作根据第二实施例的高效算法的公开密钥时,要在算法的运算#2之后发送给验证者的数α需要被限于GF(p)的元素。
[数学式16]
fl(x1+y1,…,xn+yn)-fl(x1,…,xn)-fl(y1,…,yn)
…(22)
f l ( x 1 + y 1 , . . . , x n + y n ) = &Sigma; i = 1 n &Sigma; j = 1 n a l , i , j ( x i + y i ) ( x j + y j ) + &Sigma; i = 1 n b l , i ( x i + y i ) = &Sigma; i = 1 n &Sigma; j = 1 n a l , i , j ( x i x j + x i y j + y i x j + y i y j ) + &Sigma; i = 1 n b l , i ( x i + y i ) = f l ( x 1 , . . . , x n ) + f l ( y 1 , . . . , y n ) + &Sigma; i = 1 n &Sigma; j = 1 n a l , i , j ( x i y j + y i x j ) &OverBar; . . . ( 23 )
f l ( x 1 + y 1 , . . . , x n + y n ) = &Sigma; i = 1 n &Sigma; j = 1 n &Sigma; s = 0 k - 1 &Sigma; t = 0 k - 1 a l , i , j , s , t ( x i + y i ) p s ( x j + y j ) p t + &Sigma; t = 1 n &Sigma; s = 0 k - 1 b l , i , s ( x i + y i ) p s = &Sigma; i = 1 n &Sigma; j = 1 n &Sigma; s = 0 k - 1 &Sigma; t = 0 k - 1 a l , i , j , s , t ( x i p s + y i p s ) ( x j p t + y j p t ) + &Sigma; i = 1 n &Sigma; s = 0 k - 1 b l . i . s ( x i p t + y i p s ) = &Sigma; i = 1 n &Sigma; j = 1 n &Sigma; s = 0 k - 1 &Sigma; t = 0 k - 1 a l , i , j , s , t ( x i p s x j p t + x i p t y j p t + y i p t x j p t + y i p t y j p t ) + &Sigma; i = 1 n &Sigma; s = 0 k - 1 b l , i , s ( x i p s + y i p s ) . . . ( 24 ) = f l ( x 1 , . . . , x n ) + f l ( y 1 , . . . , y n ) + &Sigma; i = 1 n &Sigma; j = 1 n &Sigma; s = 0 k - 1 &Sigma; t = 0 k - 1 a l , i , j , s , t ( x i p s y j p t + y i p t x j p t ) &OverBar;
由于上述原因,可以通过扩展根据第一和第二实施例的高效算法构成将通过公式(21)表示的三阶或更高阶多元多项式用作公开密钥的算法。
接下来,将检查由公式(20)表示的多元多项式(下文中被称为“二阶多项式”)与由公式(20)表示的多元多项式(下文中被称为“多阶多项式”)之间的关系。这里,考虑在q=p阶的域上定义的nk元二阶多项式和在q=pk阶的域上定义的n元多阶多项式。在该情况下,求解包括mk个二阶多项式的联立方程的难度等同于求解包括m个多阶多项式的联立方程的难度。例如,包括在2阶的域上定义的80个80元二阶多项式的联立方程在求解难度方面等同于在28阶的域上定义的10个10元多阶多项式。
换句话说,当通过同构映射考虑GF(pk)的元素与GF(p)k的元素相同时,存在通过在q=pk阶的域上定义的m个n元多阶多项式集合表示的函数,其等同于通过在q=p阶的域上定义的mk个nk元二阶多项式组表示的函数。例如,当通过同构映射考虑GF(p8)的元素与GF(p)8的元素相同时,存在通过在28阶的域上定义的10个10元多阶多项式集合表示的函数,其等同于通过在2阶的域上定义的80个80元二阶多项式集合表示的函数。从而,可以任意选择是使用二阶多项式还是多阶多项式。
这里,检查当使用二阶多项式时的计算效率作为当使用多阶多项式时的计算效率。
当使用在2阶的域上定义的nk元二阶多项式时,对nk个1比特变量执行算法中包括的运算。换句话说,运算单位为1比特。同时,当使用在2k阶的域上定义的n元多阶多项式时,对n个k比特变量执行算法中包括的运算。换句话说,运算单位为k比特。可以任意设置k(k=2,3,4,…)。从而,在实现时,通过将k设置为合适的值,可以提高计算效率。例如,当在32比特架构上实现算法时,相比于以一比特为单位执行运算的结构,以32比特为单位执行运算的结构的计算效率更高。
由于如上所述将根据第一和第二实施例的高效算法扩展为使得可以将多阶多项式用作公开密钥,从而可以根据所实施的架构调节运算单位。从而,可以提高计算效率。
[4-2:扩展方案(增加高阶项)]
同时,作为使用三阶或更高阶的多阶多项式的方法,还考虑对二阶多项式增加三阶或更高阶项的方法。例如,如下面的公式(25)所示,考虑对由公式(20)表示的二阶多项式增加四阶项的方法。当如下面的公式(25)定义多阶多项式fl时,如下面的公式(27)表示由下面的公式(26)定义的项gl(x,y)。在下文中,项gl(x,y)被称为“极坐标形式(polarform)”。
[数学式17]
f ; ( x 1 , . . . , x n ) = x 1 x 2 x 3 x 4 + &Sigma; i = 1 n &Sigma; j = 1 n a l , i , j x i x j + &Sigma; i = 1 n b l , i x i . . . ( 25 )
gl(x1,…,xn,y1,…,yn)=fl(x1+y1,…,xn+yn)-fl(y1,…,yn)-fl(x1,…,xn)
…(26)
g l ( x 1 , . . . , x n , y 1 , . . . , y n ) = ( x 1 + y 1 ) ( x 2 + y 2 ) ( x 3 + y 3 ) ( x 4 + y 4 ) - x 1 x 2 x 3 x 4 - y 1 y 2 y 3 y 4 + &Sigma; i = 1 n &Sigma; j = 1 n ( a l , i , j + a l , j , i ) x i y j . . . ( 27 )
如公式(27)所示,项gl(x,y)不是双线性的。在这方面,如下面公式(28)和(29)所示,通过四个变量tij、tij A、tijk和tijk A表示具有从四个变量x1、x2、x3和x4中选择的两个变量的6个项xixj、以及具有从四个变量x1、x2、x3和x4中选择的三个变量的3个项xixjxk。当使用该表达式时,可利用三阶或更高阶多元多项式实现高效算法。在公式(25)表示的示例中,对二阶多项式增加四阶项,可以增加三阶(例如,x1x2x3)或五阶或更高阶项(例如,x1x2x3x4x5)而不是四阶项。通过增加三阶或更高阶项,可以提高方程的鲁棒性。
[数学式18]
x i x j = t ij + t ij A . . . ( 28 )
x i x j x k = t ijk + t ijk A . . . ( 29 )
<5:用于增强鲁棒性的机制>
这里,将介绍用于进一步增加根据第一和第二实施例的算法的鲁棒性的机制。
[5-1:设置系统参数的方法]
上文未描述如何设置多元多项式的系数和用于生成系数的随机数种子(下文中被称为多元多项式的系数等)。多元多项式的系数等可以是系统共用的参数或者可以是针对每个用户不同的参数。
然而,当将多元多项式的系数等设置为系统共用的参数等时,如果发现多元多项式的弱点,则可能需要更新整个系统的设置。另外,针对具有随机选择的系数的多元多项式分析平均鲁棒性(求解难度),但是难以确保具有某些具体系数的多元多项式的足够的鲁棒性。
因此,本技术的发明人设计了一种结构,其中通过在伪随机数生成器的种子中使用由每个用户选择的字符串等并且生成多元多项式的系数来生成多元多项式的系数。例如,设想的方法包括在种子中使用用户的电子邮件地址的方法、以及在种子中使用组合有电子邮件地址、更新日期等的字符串的方法。当使用这样的方法时,即使在具有从给定字符串生成的系数的多元多项式中发现弱点,影响也仅限于使用具有所述系数的多元多项式的用户。从而,由于仅通过改变字符串改变多元多项式,从而可以容易地解决所述弱点。
以上描述了设置系统参数的方法。在前述描述中,已经给出字符串作为示例,但是针对每个用户可以使用不同的数字串或不同的符号串。
[5-2:响应不规则挑战的方法]
接下来,将描述响应于不规则挑战的方法。
(5-2-1:证明者的响应方法)
如图36所示,验证者在交互协议期间容易提供错误挑战。在图36所示的示例中,证明者向验证者发送消息(c1,c2,c3),验证者向证明者发送挑战d=0,然后从证明者向验证者发送对应于挑战d=0的响应σ。该处理为正常交互。
然而,在图36所示的示例中,验证者还请求证明者发送对应于挑战d=1的响应σ。如果证明者响应于该请求向验证者发送对应于挑战d=1的响应σ,则秘密密钥被泄漏给验证者。在实际中容易发生秘密密钥的泄漏。例如,验证者可以在第二通伪装发送了挑战d=0而不是挑战d=1,并且还可以挑战响应于挑战d=1的响应Rsp。另一方面,证明者可能由于通信误差而误解在第二通发送的挑战d的比特变为不同比特。
在这方面,本发明的发明人设计了避免秘密密钥的泄漏的方法。具体地,本技术的发明人设计了一种方法:当证明者对单个消息请求对应于两个或更多个挑战d的响应时,利用新随机数确定是结束交互还是从第一通恢复交互。当应用该方法时,即使在验证者错误地请求对应于两个或更多个挑战d的响应时,也不会泄漏秘密密钥。
已经描述了防止通过不规则挑战泄漏秘密密钥的技术。这里,已经描述了3通基本结构作为示例,但是相同的技术可以应用于串行方法、并行方法或混合型算法,并且在该情况下,可以提高安全性。当然,该技术甚至类似地应用于5通算法。
(5-2-2:验证者的响应方法)
另外,如图37所示,证明者可能错误地请求重发挑战d。在图37的示例中,证明者向验证者发送消息(c1,c2,c3),验证者向证明者发送挑战d=0,然后证明者请求重发挑战d。响应于该请求,当验证者再次随机选择挑战d时,容易选择与已经发送的挑战d=0不同的挑战d=1。在该情况下,从验证者向证明者发送挑战d=1。在图37所示的示例中,证明者向验证者发送对应于挑战d=1的响应σ。
然而,存在证明者能够响应于挑战d=1而不是响应于挑战d=0的可能性。换句话说,难以否定证明者提交伪造的风险。例如,证明者可能由于挑战d丢失而请求验证者重发挑战d。然而,验证者可能认为之前发送的挑战是由于通信误差而丢失的,并且响应于证明者的请求重发挑战d。然后,当重发的挑战d与之前发送的挑战d不同时,伪造成功。
从图37的示例可以理解,当随机选择挑战d时,证明者面对伪造的风险。在这方面,本技术的发明人设计了避免伪造的风险的方法。在该方法中,改善交互协议,使得当证明者在单个消息中再次请求发送挑战d时,验证者结束交互、或者重发与之前的挑战相同的挑战d,而不生成新的随机数。当应用该方法时,可以防止利用挑战d的重发请求而伪造的风险。
以上描述了防止通过不规则挑战成功伪造的方法。这里,已经描述了3通基本结构作为示例,但是相同的技术甚至可以应用于串行方法、并行方法或混合型算法,并且在该情况下,可以提高安全性。该技术类似地应用于5通算法。
<6:硬件配置>
可通过使用例如图38所示的信息处理设备的硬件配置来执行上述每个算法。即,可利用计算机程序控制图38所示的硬件来实现每个算法的处理。另外,该硬件的模式是任意的,并且可以是个人计算机、移动信息终端(例如移动电话、PHS或PDA)、游戏机、接触式或非接触式IC芯片、接触式或非接触式IC卡、或各种信息装置。另外,PHS是个人手持电话系统的缩写。另外,PDA是个人数字助理的缩写。
如图38所示,该硬件主要包括CPU902、ROM904、RAM906、主机总线908、以及桥910。另外,该硬件包括外部总线912、接口914、输入单元916、输出单元918、存储单元920、驱动器922、连接端口924以及通信单元926。另外,CPU是中央处理单元的缩写。另外,ROM是只读存储器的缩写。另外,RAM是随机存取存储器的缩写。
CPU902用作例如算术处理单元或控制单元,并基于记录在ROM904、RAM906、存储单元920或可移除记录介质928上的各个程序控制每个结构元件的全部操作或部分操作。ROM904为用于存储例如将被装载到CPU902上的程序或在算术运算中使用的数据等的装置。RAM906临时或永久存储例如将被装载到CPU902上的程序或在程序的执行中任意变化的各个参数等。
通过例如主机总线908将这些结构元件相互连接,该主机总线908能够执行高速数据传输。就其本身而言,主机总线908通过桥910连接到例如外部总线912,所述外部总线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是非对称数字用户线的缩写。
<7:总结>
最后,将简要描述根据本技术的实施例的技术内容。这里陈述的技术内容可应用于各种信息处理设备,诸如个人计算机、移动电话、游戏机、信息终端、信息装置、汽车导航系统等。另外,可通过使用单个信息处理设备或使用多个信息处理设备实现以下描述的信息处理设备的功能。另外,可以将用于执行通过以下描述的信息处理设备的处理的数据存储装置和算术处理装置安装在信息处理设备上、或者安装在经由网络连接的装置上。
如下实现信息处理设备的元件。例如,在下面(1)中描述的信息处理设备可以通过利用多阶多元多项式集合F作为公开密钥执行与验证者的交互协议,向验证者示出其知道秘密密钥s而完全不对验证者泄漏秘密密钥s的信息。换句话说,在下面(1)中描述的信息处理设备具有公开密钥认证方案的认证功能,所述公开密钥认证方案中的安全性基于求解多阶多元联立方程的难度。
另外,在下面(1)中描述的信息处理设备在生成多阶多元多项式集合F时不使用整个系统共用的信息,而是使用根据用户不同的信息。因此,即使多阶多元多项式集合F不可用,仍可以使得不利影响最小化。换句话说,提高了安全性。根据下面的(2)至(29)的技术的应用可以实现与通过使用在(1)中描述的信息处理设备实现的安全性相同或更高的安全性。
(1)一种信息处理设备,包括:
消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
消息提供单元,将消息提供到验证者,所述验证者保存所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及
响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥3)个验证模式中选择的验证模式,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(2)根据(1)所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
(3)根据(1)或(2)所述的信息处理设备,
其中,所述消息生成单元生成N次消息(其中N≥2),
其中,所述消息提供单元通过单次交互向验证者提供N次消息,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息,所述N次响应信息对应于由验证者关于各个N次消息而选择的验证模式。
(4)根据(1)或(2)所述的信息处理设备,
其中,所述消息生成单元生成N次消息(其中N≥2),并基于所述N次消息生成单个哈希值,
其中,所述消息提供单元将所述哈希值提供给验证者,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息和一部分消息,其中,N次响应信息对应于由验证者关于各个N次消息而选择的验证模式,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得。
(5)一种信息处理设备,包括:
信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s));
消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
模式信息提供单元,向已提供了消息的证明者提供关于从k个(k≥3)验证模式中随机选择的单个验证模式的信息;
响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及
验证单元,基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(6)根据(5)所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
(7)根据(5)或(6)所述的信息处理设备,
其中,所述消息获取单元通过单次交互获取所述N次消息(其中N≥2),
其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,
其中,所述响应获取单元通过单次交互从证明者获取对应于选择的N次验证模式的N次响应信息,以及
其中,当对全部N次消息的验证成功时,所述验证单元确定所述证明者保持所述向量s。
(8)根据(5)或(6)所述的信息处理设备,
其中,所述消息获取单元获取基于所述N次消息(其中N≥2)生成的单个哈希值,
其中,所述响应获取单元从所述证明者获取对应于选择的验证模式的响应信息和一部分消息,其中,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得,以及
其中,所述验证单元基于所述哈希值、一部分消息、所述公开密钥以及所述响应信息验证所述证明者是否保持所述向量s。
(9)一种信息处理设备,包括:
消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
消息提供单元,将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及
中间信息生成单元,利用由验证者随机选择的第一信息和在生成消息时获得的第二信息来生成第三信息;
中间信息提供单元,向所述验证者提供第三信息;以及
响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥2)个验证模式中选择的验证模式,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(10)根据(9)所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
(11)根据(9)或(10)所述的信息处理设备,
其中,所述消息生成单元生成N次消息(其中N≥2),
其中,所述消息提供单元通过单次交互向验证者提供N次消息,
其中,所述中间信息生成单元利用由验证者关于各个N次消息选择的第一信息和当生成消息时获得的N次第二信息来生成N次第三信息,
其中,所述中间信息提供单元通过单次交互向验证者提供N次第三信息,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息,所述N次响应信息对应于由验证者关于各个N次消息选择的验证模式。
(12)根据(9)或(10)所述的信息处理设备,
其中,所述消息生成单元生成N次消息(其中N≥2),并基于所述N次消息生成单个哈希值,
其中,所述消息提供单元将所述哈希值提供给验证者,
其中,所述中间信息生成单元利用由验证者关于各个N次消息选择的第一信息和当生成消息时获得的N次第二信息来生成N次第三信息,
其中,所述中间信息提供单元通过单次交互向验证者提供N次第三信息,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息和一部分消息,其中,N次响应信息对应于由验证者关于各个N次消息选择的验证模式,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得。
(13)一种信息处理设备,包括:
信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s));
消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
信息提供单元,向已提供了消息的证明者提供随机选择的第一信息;
中间信息获取单元,获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;
模式信息提供单元,向证明者提供关于从k个(k≥3)验证模式中随机选择的单个验证模式的信息;
响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及
验证单元,基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(14)根据(13)所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
(15)根据(13)或(14)所述的信息处理设备,
其中,所述消息获取单元通过单次交互获取所述N次消息(其中N≥2),
其中,所述信息提供单元随机选择关于各个N次消息的第一信息,并通过单次交互向证明者提供选择的N次第一信息,
其中,所述中间信息获取单元获取由证明者利用N次第一信息和当生成N次消息时获得的N次第二信息生成的N次第三信息,
其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,
其中,所述响应获取单元通过单次交互从证明者获取对应于选择的N次验证模式的N次响应信息,以及
其中,当对全部N次消息的验证成功时,所述验证单元确定所述证明者保持所述向量s。
(16)根据(13)或(14)所述的信息处理设备,
其中,所述消息获取单元获取基于所述N次消息(其中N≥2)生成的单个哈希值,
其中,所述信息提供单元随机选择关于各个N次消息的第一信息,并通过单次交互向证明者提供选择的N次第一信息,
其中,所述中间信息获取单元获取由证明者利用N次第一信息和当生成N次消息时获得的N次第二信息生成的N次第三信息,
其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,
其中,所述响应获取单元从所述证明者获取对应于选择的验证模式的响应信息和一部分消息,其中,一部分消息即使在利用所述公开密钥、第一信息、第三信息和所述响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得,以及
其中,所述验证单元基于所述哈希值、一部分消息、所述公开密钥以及所述响应信息验证所述证明者是否保持向量s,并在对全部N次消息的验证成功时确定所述证明者保持所述向量s。
(17)一种信息处理方法,包括:
基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及
向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥3)个验证模式中选择的验证模式,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(18)一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s)),所述信息处理方法包括:
获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
向已提供了消息的证明者提供关于从k个(k≥3)验证模式中随机选择的单个验证模式的信息;
从所述证明者获取对应于选择的验证模式的响应信息;以及
基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(19)一种信息处理方法,包括:
基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));
利用由验证者随机选择的第一信息和在生成消息时获得的第二信息生成第三信息;
向验证者提供第三信息;以及
向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥2)个验证模式中选择的验证模式,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(20)一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s)),所述信息处理方法包括:
获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
向已提供了消息的证明者提供随机选择的第一信息;
获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;
向证明者提供从k个(k≥3)验证模式中随机选择的单个验证模式的信息;
响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及
基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(21)根据(1)至(16)中任一项所述的信息处理设备,
其中,m和n具有m<n的关系。
(22)根据(21)所述的信息处理设备,
其中,m和n具有2m-n<<1的关系。
(23)一种信息处理设备(签名生成设备),包括:
消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
消息提供单元,将消息提供给验证者,所述验证者保存所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));
模式选择单元,基于通过向单向函数输入文档M和消息而获得的数值从k(其中k≥3)个验证模式选择一个验证模式;
响应生成单元,生成对应于选择的验证模式的响应信息;以及
签名提供单元,向验证者提供消息和响应信息作为签名,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的用户而不同的信息生成的。
(24)一种程序,使得计算机执行:
消息生成功能,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
消息提供功能,将消息提供给验证者,所述验证者保存所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及
响应提供功能,向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥3)个验证模式中选择的验证模式,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(25)一种程序,使得计算机执行:
信息保存功能,保存在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s));
消息获取功能,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
模式信息提供功能,向已经提供了消息的证明者提供从k个(k≥3)验证模式中随机选择的一个验证模式的信息;
响应获取功能,从所述证明者获取对应于选择的验证模式的响应信息;以及
验证功能,基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(27)一种程序,使得计算机执行:
消息生成功能,基于在环K上定义的多阶多元多项式集合F=(f1,…,fm)和作为集合Kn的元素的向量s生成消息;
消息提供功能,将消息提供给验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,…,ym)=(f1(s),…,fm(s));以及
信息生成功能,利用由验证者随机选择的第一信息和在生成消息时获得的第二信息生成第三信息;
中间信息提供功能,向所述验证者提供第三信息;以及
响应提供功能,向验证者提供响应信息,所述响应信息对应于由验证者从k(其中k≥3)个验证模式中选择的验证模式,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(28)一种程序,使得计算机执行:
信息保存功能,保存在环K上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y1,…,ym)=(f1(s),…,fm(s));
消息获取功能,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
信息提供单元,向已经提供了消息的证明者提供随机选择的第一信息;
中间信息获取功能,获取通过证明者利用在生成消息时获得的第一信息和第二信息生成的第三信息;
模式信息提供功能,向证明者提供从k个(k≥3)验证模式中随机选择的单个验证模式的信息;
响应获取功能,从所述证明者获取对应于选择的验证模式的响应信息;以及
验证功能,基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F和向量y为公开密钥,
其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
(29)提供了一种计算机可读记录介质,记录有根据(24)至(28)中任一项的程序。
(注释)
证明者算法P是消息生成单元、消息提供单元、响应提供单元、中间信息生成单元、以及中间信息提供单元的示例。另外,验证者算法V是信息保存单元、信息获取单元、模式信息提供单元、响应获取单元、验证单元、以及中间信息获取单元的示例。
已经参考附图描述了本发明的优选实施例,但是显然,本发明不限于上述示例。本领域技术人员可以在所附权利要求的范围内获得各种变型和修改,并且可以理解,其自然地落入本发明的技术范围内。
附图标记列表
Gen密钥生成算法
P证明者算法
V验证者算法
Sig签名生成算法
Ver签名验证算法

Claims (20)

1.一种信息处理设备,包括:
消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,...,fm)和作为集合Kn的元素的向量s生成消息;
消息提供单元,将消息提供到验证者,所述验证者保存所述多阶多元多项式集合F和向量y=(y1,...,ym)=(f1(s),...,fm(s));以及
响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k个验证模式中选择的验证模式,其中k≥3,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
2.根据权利要求1所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
3.根据权利要求1所述的信息处理设备,
其中,所述消息生成单元生成N次消息,其中N≥2,
其中,所述消息提供单元通过单次交互向验证者提供N次消息,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息,所述N次响应信息对应于由验证者关于各个N次消息而选择的验证模式。
4.根据权利要求1所述的信息处理设备,
其中,所述消息生成单元生成N次消息,并基于所述N次消息生成单个哈希值,其中N≥2,
其中,所述消息提供单元将所述哈希值提供给验证者,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息和一部分消息,其中,N次响应信息对应于由验证者关于各个N次消息而选择的验证模式,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得。
5.一种信息处理设备,包括:
信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
模式信息提供单元,向已提供了消息的证明者提供关于从k个验证模式中随机选择的单个验证模式的信息,其中k≥3;
响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及
验证单元,基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
6.根据权利要求5所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
7.根据权利要求5所述的信息处理设备,
其中,所述消息获取单元通过单次交互获取N次消息,其中N≥2,
其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,
其中,所述响应获取单元通过单次交互从证明者获取对应于选择的N次验证模式的N次响应信息,以及
其中,当对全部N次消息的验证成功时,所述验证单元确定所述证明者保持所述向量s。
8.根据权利要求5所述的信息处理设备,
其中,所述消息获取单元获取基于N次消息生成的单个哈希值,其中N≥2,
其中,所述响应获取单元从所述证明者获取对应于选择的验证模式的响应信息和一部分消息,其中,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得,以及
其中,所述验证单元基于所述哈希值、一部分消息、所述公开密钥以及所述响应信息验证所述证明者是否保持所述向量s。
9.一种信息处理设备,包括:
消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f1,...,fm)和作为集合Kn的元素的向量s生成消息;
消息提供单元,将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,...,ym)=(f1(s),...,fm(s));以及
中间信息生成单元,利用由验证者随机选择的第一信息和在生成消息时获得的第二信息来生成第三信息;
中间信息提供单元,向所述验证者提供第三信息;以及
响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k个验证模式中选择的验证模式,其中k≥2,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
10.根据权利要求9所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
11.根据权利要求9所述的信息处理设备,
其中,所述消息生成单元生成N次消息,其中N≥2,
其中,所述消息提供单元通过单次交互向验证者提供N次消息,
其中,所述中间信息生成单元利用由验证者关于各个N次消息选择的第一信息和当生成消息时获得的N次第二信息来生成N次第三信息,
其中,所述中间信息提供单元通过单次交互向验证者提供N次第三信息,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息,所述N次响应信息对应于由验证者关于各个N次消息选择的验证模式。
12.根据权利要求9所述的信息处理设备,
其中,所述消息生成单元生成N次消息,并基于所述N次消息生成单个哈希值,其中N≥2,
其中,所述消息提供单元将所述哈希值提供给验证者,
其中,所述中间信息生成单元利用由验证者关于各个N次消息选择的第一信息和当生成消息时获得的N次第二信息来生成N次第三信息,
其中,所述中间信息提供单元通过单次交互向验证者提供N次第三信息,以及
其中,所述响应提供单元通过单次交互向验证者提供N次响应信息和一部分消息,其中,N次响应信息对应于由验证者关于各个N次消息选择的验证模式,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得。
13.一种信息处理设备,包括:
信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
信息提供单元,向已提供了消息的证明者提供随机选择的第一信息;
中间信息获取单元,获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;
模式信息提供单元,向证明者提供关于从k个验证模式中随机选择的单个验证模式的信息,其中k≥3;
响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及
验证单元,基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘密是在不使用秘密信息的情况下生成的。
14.根据权利要求13所述的信息处理设备,
其中,所述多阶多元多项式集合F以被定义为Fb(x,y)=F(x+y)-F(x)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
15.根据权利要求13所述的信息处理设备,
其中,所述消息获取单元通过单次交互获取N次消息,其中N≥2,
其中,所述信息提供单元随机选择关于各个N次消息的第一信息,并通过单次交互向证明者提供选择的N次第一信息,
其中,所述中间信息获取单元获取由证明者利用N次第一信息和当生成N次消息时获得的N次第二信息生成的N次第三信息,
其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,
其中,所述响应获取单元通过单次交互从证明者获取对应于选择的N次验证模式的N次响应信息,以及
其中,当对全部N次消息的验证成功时,所述验证单元确定所述证明者保持所述向量s。
16.根据权利要求13所述的信息处理设备,
其中,所述消息获取单元获取基于N次消息生成的单个哈希值,其中N≥2,
其中,所述信息提供单元随机选择关于各个N次消息的第一信息,并通过单次交互向证明者提供选择的N次第一信息,
其中,所述中间信息获取单元获取由证明者利用N次第一信息和当生成N次消息时获得的N次第二信息生成的N次第三信息,
其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,
其中,所述响应获取单元从所述证明者获取对应于选择的验证模式的响应信息和一部分消息,其中,一部分消息即使在利用所述公开密钥、第一信息、第三信息和所述响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得,以及
其中,所述验证单元基于所述哈希值、一部分消息、所述公开密钥以及所述响应信息验证所述证明者是否保持向量s,并在对全部N次消息的验证成功时确定所述证明者保持所述向量s。
17.一种信息处理方法,包括:
基于在环K上定义的多阶多元多项式集合F=(f1,...,fm)和作为集合Kn的元素的向量s生成消息;
将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,...,ym)=(f1(s),...,fm(s));以及
向验证者提供响应信息,所述响应信息对应于由验证者从k个验证模式中选择的验证模式,其中k≥3,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
18.一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s)),所述信息处理方法包括:
获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
向已提供了消息的证明者提供关于从k个验证模式中随机选择的单个验证模式的信息,其中k≥3;
从所述证明者获取对应于选择的验证模式的响应信息;以及
基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
19.一种信息处理方法,包括:
基于在环K上定义的多阶多元多项式集合F=(f1,...,fm)和作为集合Kn的元素的向量s生成消息;
将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(y1,...,ym)=(f1(s),...,fm(s));
利用由验证者随机选择的第一信息和在生成消息时获得的第二信息生成第三信息;
向验证者提供第三信息;以及
向验证者提供响应信息,所述响应信息对应于由验证者从k个验证模式中选择的验证模式,其中k≥2,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
20.一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s)),所述信息处理方法包括:
获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;
向已提供了消息的证明者提供随机选择的第一信息;
获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;
向证明者提供从k个验证模式中随机选择的单个验证模式的信息,其中k≥3;
从所述证明者获取对应于选择的验证模式的响应信息;以及
基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,
其中,所述向量s为秘密密钥,
其中,所述多阶多元多项式集合F为公开密钥或系统参数,并且向量y为公开密钥,
其中所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及
其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的,公开秘钥是在不使用秘密信息的情况下生成的。
CN201280037657.4A 2011-08-12 2012-06-26 信息处理设备和信息处理方法 Active CN103718228B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-177332 2011-08-12
JP2011177332A JP5790288B2 (ja) 2011-08-12 2011-08-12 情報処理装置、及び情報処理方法
PCT/JP2012/066232 WO2013024630A1 (ja) 2011-08-12 2012-06-26 情報処理装置、及び情報処理方法

Publications (2)

Publication Number Publication Date
CN103718228A CN103718228A (zh) 2014-04-09
CN103718228B true CN103718228B (zh) 2016-05-11

Family

ID=47714959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280037657.4A Active CN103718228B (zh) 2011-08-12 2012-06-26 信息处理设备和信息处理方法

Country Status (10)

Country Link
US (1) US9490978B2 (zh)
EP (1) EP2743902B1 (zh)
JP (1) JP5790288B2 (zh)
CN (1) CN103718228B (zh)
AU (1) AU2012296045A1 (zh)
BR (1) BR112014002848A2 (zh)
CA (1) CA2838653A1 (zh)
MX (1) MX2014001450A (zh)
RU (1) RU2014104080A (zh)
WO (1) WO2013024630A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969189A (en) * 1988-06-25 1990-11-06 Nippon Telegraph & Telephone Corporation Authentication system and apparatus therefor
CN1643840A (zh) * 2002-03-13 2005-07-20 皇家飞利浦电子股份有限公司 基于多项式的多用户密钥生成验证方法和系统
CN1870499A (zh) * 2005-01-11 2006-11-29 丁津泰 产生新的多变量公钥密码系统的方法
JP2009533705A (ja) * 2006-04-10 2009-09-17 フランス テレコム ソシエテ アノニム 擬似ランダムストリングを生成するための方法及びデバイス

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2805493B2 (ja) * 1989-04-05 1998-09-30 日本電信電話株式会社 認証方法及びそれに用いる装置
US5263085A (en) 1992-11-13 1993-11-16 Yeda Research & Development Co. Ltd. Fast signature scheme based on sequentially linearized equations
US6910130B2 (en) * 2000-11-29 2005-06-21 Hideki Imai System for and method of unconditionally secure digital signature
US7961876B2 (en) * 2005-01-11 2011-06-14 Jintai Ding Method to produce new multivariate public key cryptosystems
JP4575251B2 (ja) * 2005-07-25 2010-11-04 株式会社東芝 デジタル署名生成装置、デジタル署名検証装置、デジタル署名生成方法、デジタル署名検証方法、デジタル署名生成プログラム及びデジタル署名検証プログラム
JP5736816B2 (ja) * 2010-05-31 2015-06-17 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP2013042315A (ja) * 2011-08-12 2013-02-28 Sony Corp 情報処理装置、及び情報処理方法
JP2013047727A (ja) * 2011-08-29 2013-03-07 Sony Corp 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP6069852B2 (ja) * 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP5790319B2 (ja) * 2011-08-29 2015-10-07 ソニー株式会社 署名検証装置、署名検証方法、プログラム、及び記録媒体
WO2013129084A1 (ja) * 2012-03-02 2013-09-06 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP2014052588A (ja) * 2012-09-10 2014-03-20 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム
JP2014056022A (ja) * 2012-09-11 2014-03-27 Sony Corp 情報処理装置、情報処理方法、およびプログラム
JP2014090235A (ja) * 2012-10-29 2014-05-15 Sony Corp 情報処理装置、情報処理方法、コンピュータプログラム及び情報処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969189A (en) * 1988-06-25 1990-11-06 Nippon Telegraph & Telephone Corporation Authentication system and apparatus therefor
CN1643840A (zh) * 2002-03-13 2005-07-20 皇家飞利浦电子股份有限公司 基于多项式的多用户密钥生成验证方法和系统
CN1870499A (zh) * 2005-01-11 2006-11-29 丁津泰 产生新的多变量公钥密码系统的方法
JP2009533705A (ja) * 2006-04-10 2009-09-17 フランス テレコム ソシエテ アノニム 擬似ランダムストリングを生成するための方法及びデバイス

Also Published As

Publication number Publication date
JP2013041072A (ja) 2013-02-28
JP5790288B2 (ja) 2015-10-07
CN103718228A (zh) 2014-04-09
WO2013024630A1 (ja) 2013-02-21
EP2743902B1 (en) 2017-02-01
CA2838653A1 (en) 2013-02-21
EP2743902A1 (en) 2014-06-18
US9490978B2 (en) 2016-11-08
AU2012296045A1 (en) 2014-01-09
US20140205088A1 (en) 2014-07-24
RU2014104080A (ru) 2015-08-10
MX2014001450A (es) 2014-02-27
EP2743902A4 (en) 2015-09-09
BR112014002848A2 (pt) 2017-03-01

Similar Documents

Publication Publication Date Title
CN102263638B (zh) 认证设备、认证方法和签名生成设备
US9129122B2 (en) Signature verification apparatus, signature verification method, program, and recording medium
CN104011781B (zh) 信息处理设备、信息处理方法
CN110086599B (zh) 基于同态变色龙哈希函数的哈希计算方法及签密方法
CN102957538A (zh) 信息处理设备和信息处理方法
CN103718501B (zh) 信息处理设备和信息处理方法
CN102263639A (zh) 认证装置、认证方法、程序和签名生成装置
CN103718502B (zh) 信息处理设备和信息处理方法
CN103931136A (zh) 信息处理设备、签名生成设备、信息处理方法、签名生成方法以及程序
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
CN103155480A (zh) 认证装置、认证方法和程序
CN104137471A (zh) 信息处理设备、信息处理方法以及程序
US20140189361A1 (en) Nformation processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
CN103718228B (zh) 信息处理设备和信息处理方法
CN103782331A (zh) 信息处理设备、签名产生设备、签名核查设备、信息处理方法、签名产生方法和签名核查方法
US9184914B2 (en) Information processing apparatus and information processing method
US20140211940A1 (en) Information processing apparatus, information processing method, program, and recording medium
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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1193232

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1193232

Country of ref document: HK