CN102263638B - 认证设备、认证方法和签名生成设备 - Google Patents

认证设备、认证方法和签名生成设备 Download PDF

Info

Publication number
CN102263638B
CN102263638B CN201110145023.8A CN201110145023A CN102263638B CN 102263638 B CN102263638 B CN 102263638B CN 201110145023 A CN201110145023 A CN 201110145023A CN 102263638 B CN102263638 B CN 102263638B
Authority
CN
China
Prior art keywords
message
algorithm
verifier
polynomial
validation mode
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
CN201110145023.8A
Other languages
English (en)
Other versions
CN102263638A (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 CN102263638A publication Critical patent/CN102263638A/zh
Application granted granted Critical
Publication of CN102263638B publication Critical patent/CN102263638B/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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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

Abstract

本发明公开了认证设备、认证方法和签名生成设备。提供了一种认证设备,包括:密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)(i=1至m)以及yi=fi(s)设置为公钥;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收与验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式有关的信息;以及响应发送单元,用于向验证者发送k种响应信息中的与由验证模式接收单元接收到的验证模式有关的信息所对应的响应信息,其中,响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。

Description

认证设备、认证方法和签名生成设备
技术领域
本发明涉及认证设备、认证方法、程序和签名生成设备。
背景技术
随着信息处理技术和通信技术的快速发展,公务和私人文档的数字化正在快速推进。因此,许多个人和公司对电子文档的安全管理非常感兴趣。随着兴趣的增加,在许多场合已开始热烈地讨论针对电子文档的诸如窃听和伪造之类的篡改的安全性。例如通过对电子文档加密来确保针对电子文档的窃听的安全性。此外,例如通过利用数字签名来确保针对电子文档的伪造的安全性。然而,加密和数字签名必须是能充分地防篡改的。
数字签名用来指定电子文档的作者。因此,数字签名应当能够仅由该电子文档的作者来生成。如果恶意第三方能够生成相同的数字签名,则这样的第三方可以冒充电子文档的作者。即,电子文档会被恶意第三方伪造。对于防止这样的伪造的数字签名安全性,已经提出了各种意见。作为当前广泛使用的数字签名方案,例如已知了使用RSA签名方案和DSA签名方案的方案。
RSA签名方案取用“对大的合成数进行质因数分解的难度(以下称为质因数分解问题)”作为安全性的基础。此外,DSA签名方案取用“求解离散对数问题的难度”作为安全性的基础。这些基础是基于通过利用典型计算机来高效地求解质因数问题和离散对数问题的算法并不存在。即,上面提到的难度意味着典型计算机的计算难度。然而,据说,当使用量子计算机时,可以高效地计算出质因数分解问题和离散对数问题的解。
与RSA签名方案和DSA签名方案类似地,当前使用的许多数字签名方案和公钥认证方案也取用了质因数分解问题或离散对数问题的难度作为安全性的基础。因此,如果量子计算机投入实用,则将不再确保这些数字签名方案和公钥认证方案的安全性。因此,希望具有新的数字签名方案和公钥认证方案,其采用与诸如可被量子计算机容易求解出的质因数分解问题和离散对数问题之类的问题不同的问题作为安全性的基础。作为不容易被量子计算机求解出的问题,例如,在求解多元多项式上存在难度(以下称为多元多项式问题)。
例如,作为采用多元多项式问题作为安全性基础的数字签名方案,已知了基于Matsumoto-Imai(MI)密码术、Hidden Field Equation(HFE)密码术、Oil-Vinegar(OV)签名方案以及Tamed Transformation法(TTM)密码术的这些方案。例如,基于HFE的数字签名方案在Jacques Patarin的Asymmetric Cryptography with a Hidden Monomial,CRYPTO1996,pp.45-60以及Patarin,J.,Courtois,N.和Goubin,L.的QUARTZ,128-Bit LongDigital Signatures,In Naccache,D.,Ed.Topics in Cryptology-CT-RSA 2001(SanFrancisco,CA,USA,April 2001),vol.2020 of Lecture Notes in Computer Science,Springer-Verlag,pp.282-297中被公开。
发明内容
如上,多元多项式问题是称为NP难题的、即使利用量子计算机也难以求解出的问题的示例。通常,利用由HFE代表的多元多项式问题的公钥认证方案使用具有特殊陷门(trapdoor)的多次多元联立方程式。例如,与x1,…,xn有关的多次多元联立方程式F(x1,…,xn)=y以及线性变换A和B被提供,并且线性变换A和B秘密地被管理。在此情况中,多次多元联立方程式F以及线性变换A和B是陷门。
知道陷门F、A和B的实体可以求解与x1,…,xn有关的方程式B(F(A(x1,…,xn)))=y’。另一方面,与x1,…,xn有关的方程式B(F(A(x1,…,xn)))=y’不能由不知道陷门F、A和B的实体求解出。通过利用该机制,可以实现采用多次多元联立方程式作为安全性基础的公钥认证方案和数字签名方案。
如上,为了实现这样的公钥认证方案和数字签名方案,需要使用满足B(F(A(x1,…,xn)))=y的特殊多次多元联立方程式。然而,根据现有方案, 需要在签名生成时求解多次多元联立方程式F,因此仅那些可被容易求解出的方程式可被用作F。即,根据这些现有方案,仅可以使用通过组合可以较容易地求解出的三个函数(陷门)B、F和A而形成的多次多元联立方程式B(F(A(x1,…,xn)))=y,因此难以确保足够的安全性。结果,对于使用存在高效求解手段(陷门)的多次多元联立方程式的公钥认证方案和数字签名方案,提出了大量的攻击方法,因此希望设法使得没有高效求解手段(陷门)的多次多元联立方程式被用于公钥认证方案和数字签名方案。
鉴于前面的状况,希望提供能够实现通过利用没有高效求解手段(陷门)的多次多元联立方程式而增强其安全性的公钥认证方案或数字签名方案的、新颖的经改进的认证设备、认证方法、程序和签名生成设备。
根据本发明的一个实施例,提供了一种认证设备,该设备包括:密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)设置为公钥,i=1至m;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收关于验证者从针对一个消息c的k个验证模式中选择的一个验证模式的信息,k≥3;响应发送单元,用于向验证者发送k种响应信息中的与由验证模式接收单元接收到的验证模式有关的信息所对应的响应信息。响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。
该认证设备可被配置为使得:在执行以下步骤时:由消息发送单元发送一个或多个消息c的第一步、由验证模式接收单元针对每个消息c从验证者接收与验证模式有关的信息的第二步、以及由响应发送单元针对与验证模式有关的每个信息发送响应信息的第三步,如果验证者针对所有响应信息成功地执行了验证,则认证成功。
该认证设备可被配置为使得:执行以下步骤的处理被重复:由消息发送单元发送一个或多个消息c的第一步、由验证模式接收单元针对每个消息c从验证者接收与验证模式有关的信息的第二步、以及由响应发送单元针对与验证模式有关的每个信息来发送响应信息的第三步,并且当执行了第一步至第三步预定次数时,如果验证者针对所有响应信息每次都成功地 执行了验证,则认证成功。
在消息c=(c1,…,cm)的情况中,消息发送单元可以通过利用单向函数H来计算新的消息c’=H(c),并且将消息c’发送给验证者,并且响应发送单元可以将验证者即使利用响应信息也不能恢复出来的消息c的元素与响应信息一起发送。
根据本发明另一实施例,提供了一种认证设备,包括:消息接收单元,用于从证明者接收消息c;验证模式选择单元,用于从针对一个消息c的k个验证模式中选择一个验证模式,k≥3;验证模式发送单元,用于将与验证模式选择单元所选择的验证模式有关的信息发送给证明者;响应接收单元,用于从证明者接收k种响应信息中的与由验证模式发送单元所发送的验证模式有关的信息所对应的响应信息;以及验证单元,用于利用由消息接收单元接收的消息c以及由响应接收单元接收的响应信息来验证证明者的合法性。s∈Kn被设置为私钥并且环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)被设置为公钥,i=1至m。响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。
根据本发明另一实施例,提供了一种认证设备,包括:密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)设置为公钥,i=1至m;消息发送单元,用于将消息c发送给验证者;答复接收单元,用于从验证者接收答复α;多项式生成单元,用于利用答复接收单元所接收的答复α来生成将用于验证消息c的多项式f”;多项式发送单元,用于将由多项式生成单元生成的多项式f”发送给验证者;验证模式接收单元,用于接收与验证者从针对一个消息c的k个验证模式中选择的一个验证模式有关的信息,k≥2;响应发送单元,用于向验证者发送k种响应信息中的与由验证模式接收单元接收到的验证模式有关的信息所对应的响应信息。响应信息是这样的信息,该信息使得在通过利用两种答复α、多项式f”以及k种响应信息执行的针对消息c的答复与验证模式的所有总计2k种组合都成功的情况中,能够计算出私钥s。
该认证设备可被配置为使得:在执行以下步骤时:由消息发送单元发 送一个或多个消息c的第一步、由答复接收单元接收针对每个消息c的答复α的第二步、由多项式生成单元利用在第二步中接收的答复α来生成多项式并且由多项式发送单元发送多项式f”的第三步,由验证模式接收单元针对每个消息c从验证者接收与验证模式有关的信息的第四步、以及由响应发送单元针对与验证模式有关的每个信息来发送响应信息的第五步,如果验证者针对所有响应信息成功地执行了验证,则认证成功。
该认证设备可被配置为使得:执行以下步骤的处理被重复:由消息发送单元发送一个或多个消息c的第一步、由答复接收单元接收针对每个消息c的答复α的第二步、由多项式生成单元利用在第二步中接收的答复α来生成多项式并且由多项式发送单元发送多项式f”的第三步,由验证模式接收单元针对每个消息c从验证者接收与验证模式有关的信息的第四步、以及由响应发送单元针对与验证模式有关的每个信息来发送响应信息的第五步,并且当执行了第一步至第五步预定次数时,如果验证者针对所有响应信息每次都成功地执行了验证,则认证成功。
根据本发明另一实施例,提供了一种认证设备,包括:消息接收单元,用于从证明者接收消息c;答复发送单元,用于向证明者发送答复α;多项式接收单元,用于接收多项式f”,多项式f”是由证明者利用由答复发送单元发送的答复α生成的并被用于验证消息c;验证模式选择单元,用于从针对一个消息c的k个验证模式中选择一个验证模式,k≥2;验证模式发送单元,用于将与验证模式选择单元所选择的验证模式有关的信息发送给证明者;响应接收单元,用于从证明者接收k种响应信息中的与由验证模式发送单元所发送的验证模式有关的信息所对应的响应信息;以及验证单元,用于利用由消息接收单元接收的消息c、由多项式接收单元接收的多项式f”以及由响应接收单元接收的响应信息来验证证明者的合法性。s∈Kn被设置为私钥并且环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)被设置为公钥,i=1至m。响应信息是这样的信息,该信息使得在通过利用两种答复α、多项式f”以及k种响应信息执行的针对消息c的答复与验证模式的所有总计2k种组合都成功的情况中,能够计算出私钥s。
根据本发明另一实施例,提供了一种认证方法,包括以下步骤:将 s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)设置为公钥,i=1至m;将消息c发送给验证者;接收与验证者从针对一个消息c的k个验证模式中选择的一个验证模式有关的信息,k≥3;向验证者发送k种响应信息中的与在接收步骤中接收到的验证模式有关的信息所对应的响应信息。响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。
根据本发明另一实施例,提供了一种认证方法,包括以下步骤:从证明者接收消息c;从针对一个消息c的k个验证模式中选择一个验证模式,k≥3;将与在选择步骤中所选择的验证模式有关的信息发送给证明者;从证明者接收k种响应信息中的与在发送步骤中所发送的验证模式有关的信息所对应的响应信息;以及利用在接收消息c的步骤中所接收的消息c以及在接收响应信息的步骤中所接收的响应信息来验证证明者的合法性。s∈Kn被设置为私钥并且环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)被设置为公钥,i=1至m。响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。
根据本发明另一实施例,提供了一种认证方法,包括以下步骤:将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)设置为公钥,i=1至m;将消息c发送给验证者;从验证者接收答复α;利用在接收答复α的步骤中所接收的答复α来生成将用于验证消息c的多项式f”;将在生成步骤中生成的多项式f”发送给验证者;接收与验证者从针对一个消息c的k个验证模式中选择的一个验证模式有关的信息,k≥2;向验证者发送k种响应信息中的与在接收与验证模式有关的信息的步骤中接收到的与验证模式有关的信息相对应的响应信息。响应信息是这样的信息,该信息使得在通过利用两种答复α、多项式f”以及k种响应信息执行的针对消息c的答复与验证模式的所有总计2k种组合都成功的情况中,能够计算出私钥s。
根据本发明另一实施例,提供了一种认证方法,包括以下步骤:从证 明者接收消息c;向证明者发送答复α;接收多项式f”,多项式f”是由证明者利用在发送答复α的步骤中所发送的答复α生成的并被用于验证消息c;从针对一个消息c的k个验证模式中选择一个验证模式,k≥2;将与在选择验证模式的步骤中所选择的验证模式有关的信息发送给证明者;从证明者接收k种响应信息中的与在发送与验证模式有关的信息的步骤中所发送的与验证模式有关的信息相对应的响应信息;以及利用在接收消息c的步骤中所接收的消息c、在接收多项式f”的步骤中所接收的多项式f”以及在接收响应信息的步骤中所接收的响应信息来验证证明者的合法性。s∈Kn被设置为私钥并且环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)被设置为公钥,i=1至m。响应信息是这样的信息,该信息使得在通过利用两种答复α、多项式f”以及k种响应信息执行的针对消息c的答复与验证模式的所有总计2k种组合都成功的情况中,能够计算出私钥s。
根据本发明另一实施例,提供了一种使得计算机实现如下功能的程序:密钥设置功能,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)设置为公钥,i=1至m;消息发送功能,用于将消息c发送给验证者;验证模式接收功能,用于接收与验证者从针对一个消息c的k个验证模式中选择的一个验证模式有关的信息,k≥3;响应发送功能,用于向验证者发送k种响应信息中的与由验证模式接收功能接收到的验证模式有关的信息所对应的响应信息。响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。
根据本发明另一实施例,提供了一种记录有该程序的计算机可读记录介质。
根据本发明另一实施例,提供了一种签名生成设备,包括:密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)以及yi=fi(s)设置为公钥,i=1至m;消息生成单元,用于基于多次多项式fi(x1,…,xn)以及私钥s来生成N个消息c;验证模式选择单元,用于基于通过将文档M和消息c应用于单向函数H而获得的信息,来从kN个验证模式中选择验证模式,k≥3;签名生成单元,用于根据由验证模式选择单 元所选择的验证模式,来生成将通过使用消息c和文档M的验证的数字签名σ。数字签名σ是这样的信息,该信息使得在利用与(k-1)N+1个验证模式相对应的数字签名σ执行的验证都成功的情况下,能够计算出私钥s。
对于m和n,可以m<n。对于m和n还可以2m-n<<1。
根据上述本发明的实施例,可以实现通过利用不存在高效求解手段(陷门)的多次多元联立方程式增强了其安全性的公钥认证方案或数字签名方案。
附图说明
图1是用于描述一般的公钥认证方案的算法结构的说明图;
图2是用于描述数字签名方案的算法结构的说明图;
图3是用于描述n次传递公钥认证方案的说明图;
图4是用于描述本发明第一实施例(3次传递)的公钥认证方案的算法的说明图;
图5是用于描述根据本实施例的公钥认证方案的扩展算法的说明图;
图6是用于描述根据本实施例的公钥认证方案的并行算法的说明图;
图7是用于描述根据本实施例的公钥认证方案的非交互式算法的说明图;
图8是用于描述根据本实施例的公钥认证方案的具体算法的说明图;
图9是用于描述根据本实施例的公钥认证方案的高效算法的说明图;
图10是用于描述根据本实施例的公钥认证方案的高效算法(修改A)的说明图;
图11是用于描述根据本实施例的公钥认证方案的高效算法(修改B)的说明图;
图12是用于描述本发明第二实施例(5次传递)的公钥认证方案的算法的说明图;
图13是用于描述根据本实施例的公钥认证方案的扩展算法的说明图;
图14是用于描述根据本实施例的公钥认证方案的并行算法的说明 图;
图15是用于描述根据本实施例的公钥认证方案的扩展算法的并行化的说明图;
图16是用于描述根据本实施例的公钥认证方案的非交互式算法的说明图;
图17是用于描述根据本实施例的公钥认证方案的具体算法的说明图;
图18是用于描述根据本实施例的公钥认证方案的高效算法的说明图;
图19是用于描述根据本实施例的公钥认证方案的高效算法(修改A)的说明图;
图20是用于描述根据本实施例的公钥认证方案的高效算法(修改B)的说明图;
图21是用于描述根据本实施例的公钥认证方案的高效算法(修改C)的说明图;
图22是用于描述根据本实施例的公钥认证方案的高效算法(修改D)的说明图;
图23是用于描述根据本实施例的公钥认证方案的高效算法(修改E)的说明图;
图24是用于描述根据本实施例的公钥认证方案的高效算法(修改F)的说明图;
图25是用于描述根据本实施例的公钥认证方案的高效算法(修改G)的说明图;
图26是用于描述能够执行根据本发明每个实施例的算法的信息处理装置的示例硬件配置的说明图;
图27是比较根据本发明第一和第二实施例的公钥认证方案的效率的图表;以及
图28是用于描述设置参数的合适方法、根据本发明第一和第二实施例的公钥认证方案所使用的方法,及其效果。
具体实施方式
下面,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,用相同的标号来表示具有基本上相同的功能和结构的结构元件,并且省略对这些结构元件的重复描述。
[描述的流程]
这里将简要提及与后面描述的本发明的实施例有关的描述的流程。首先,将参考图1描述公钥认证方案的算法结构。接下来,将参考图2描述数字签名方案的算法结构。然后,将参考图3描述n次传递(n-pass)公钥认证方案。另外,在描述本发明的实施例之前,还要简要描述一般的HFE签名方案。
接下来,参考图4描述根据本发明第一实施例(3次传递)的公钥认证方案的算法。然后,参考图5描述用于根据本实施例的公钥认证方案的扩展算法。然后,参考图6描述用于根据本实施例的公钥认证方案的并行算法。接下来,参考图7描述用于根据本实施例的公钥认证方案的非交互式算法。然后,参考图8描述用于根据本实施例的公钥认证方案的具体算法。然后,参考图9至11描述用于根据本实施例的公钥认证方案的高效算法。
接下来,参考图12描述根据本发第二实施例(5次传递)的钥认证方案的算法。然后,参考图13描述用于根据本实施例的公钥认证方案的扩展算法。然后,参考图14和15描述用于根据本实施例的公钥认证方案的并行算法。接下来,参考图16描述用于根据本实施例的公钥认证方案的非交互式算法。然后,参考图17描述用于根据本实施例的公钥认证方案的具体算法。然后,参考图18至25描述用于根据本实施例的公钥认证方案的高效算法。
接下来,描述将根据本发明第一和第二实施例的高效算法应用于二次或更高次的多元多项式的扩展方法。然后,参考图26描述能够实现本发明第一和第二实施例中的每个算法的信息处理装置的示例硬件配置。最 后,将总结实施例的技术思想并且简要描述这些技术思想获得的效果。
(描述项目)
1:介绍
1-1:公钥认证方案的算法结构
1-2:数字签名方案的算法结构
1-3:N次传递公钥认证方案
1-4:HFE数字签名方案
1-4-1:HFE函数的性质
1-4-2:HFE数字签名方案的算法
2:第一实施例
2-1:用于公钥认证方案的算法
2-2:扩展算法
2-3:并行算法
2-4:非交互式算法
2-5:修改为数字签名方案
2-6:具体示例
2-7:高效算法
2-8:多次多元联立方程式的形式
2-8-1:与共同密钥块密码有关的形式
2-8-2:与哈希函数有关的形式
2-8-3:与流密码有关的形式
3:第二实施例
3-1:用于公钥认证方案的算法
3-2:扩展算法
3-3:并行算法
3-4:非交互式算法
3-5:修改为数字签名方案
3-6:具体示例
3-7:高效算法
4:高效算法的一般化
5:示例硬件配置
6:总结
<1:介绍>
首先,在详细描述本发明的实施例之前,将简要描述一般的公钥认证方案的算法结构、一般的数字签名方案的算法结构以及n次传递公钥认证方案。
[1-1:公钥认证方案的算法结构]
首先,参考图1描述一般的公钥认证方案的算法结构。图1是用于描述一般的公钥认证方案的算法结构的说明图。
(概述)
公钥认证方案是这样的认证方案,其中,一人(证明者)利用公钥pk和私钥sk来使另一人(验证者)相信其是证明者本身。例如,使得证明者A的公钥pkA为验证者所知。另一方面,证明者A的私钥skA由证明者秘密地管理。根据公钥认证方案,知道与公钥pkA相对应的私钥skA的人被认为是证明者A本身。
在证明者A试图向验证者B证明其是证明者本身的情况中,证明者A可以与验证者B执行交互式协议,并且证明其知道与公钥pkA相对应的私钥skA。然后,在验证者B通过该交互式协议证实了证明者A知道私钥skA的情况中,则证明者A的合法性(其是证明者本身)得到证实。
另外,为了确保公钥认证方案的安全性,要满足下面阐述的两个条件。
第一条件是尽可能降低在交互式协议被执行时没有私钥skA的伪造者使伪造成立的概率。满足该第一条件被称为“合理性”(soundness)。换言之,通过合理的交互式协议,没有私钥skA的伪造者不会以不可忽略的概率来使伪造成立。第二条件是即使交互式协议被执行,与证明者A的私 钥skA有关的信息一点儿也不会被泄露给验证者B。满足该第二条件被称为“零知识”。
通过利用具有如上所述的合理性和零知识的交互式协议来确保公钥认证方案的安全性。
(模型)
在公钥认证方案的模型中,存在如图1所示的两个实体,即证明者和验证者。证明者通过利用密钥生成算法Gen来生成该证明者独有的公钥pk和私钥sk对。然后,证明者通过利用使用密钥生成算法Gen生成的该公钥pk和私钥sk对来与验证者执行交互式协议。此时,证明者通过利用证明者算法P来执行交互式协议。如上所述,在交互式协议中,证明者通过利用证明者算法P来向验证者证明其拥有私钥sk。
另一方面,验证者通过利用验证者算法V来执行交互式协议,并且验证该证明者是否拥有与该证明者已公开的公钥相对应的私钥。即,验证者是验证证明者是否用于与公钥相对应的私钥的实体。如上所述,公钥认证方案的模型由两个实体构成,即,由证明者和验证者,以及三个算法,即密钥生成算法Gen、证明者算法P和验证者算法V构成。
另外,表述“证明者”和“验证者”将被用在下面的描述中,但是这些表述严格来说是指实体。因此,执行密钥生成算法Gen和证明者算法P的主体是与实体“证明者”相对应的信息处理装置。类似地,执行验证者算法V的主体是信息处理装置。这些信息处理装置的硬件配置例如如图26所示。即,密钥生成算法Gen、证明者算法P和验证者算法V是由CPU 902基于记录在ROM 904、RAM 906、存储单元920、可移除记录介质928等上的程序来执行的。
(密钥生成算法Gen)
密钥生成算法Gen由证明者使用。密钥生成算法Gen是用于生成证明者独有的公钥pk和私钥sk对的算法。通过密钥生成算法Gen生成的公钥pk被公开。此外,所公开的公钥pk由验证者使用。另一方面,通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。被秘密地管理的私钥 sk用来向验证者证明对与公钥pk相对应的私钥sk的拥有。形式上,密钥生成算法Gen被表示为下面的公式(1),作为获取安全性参数1λ(λ是等于或大于0的整数)作为输入并输出私钥sk和公钥pk的算法。
[表达式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的过程是必要的,以保证合理性。另一方面,即使在过程的结果被通知给验证者时,也需要与私钥skA有关的信息一点儿也不会被泄露给验证者。因此,需要将密钥生成算法Gen、证明者算法P和验证者算法V设计为满足这些项。
在前面,已描述了一般的公钥认证方案的算法结构。
[1-2:数字签名方案的算法结构]
接下来,将参考图2描述数字签名方案的算法结构。图2是用于描述一般的数字签名方案的算法结构的说明图。
(概述)
与纸质文档不同,无法对数字化数据进行密封或签名。因此,为了证明数字化数据的作者的合法性,产生与对纸质文档进行密封或签名相同效果的电子机制成为必要。该机制就是数字签名。例如,将仅数据的作者知道的签名数据提供给与该数据相关联的接收者并且在接收者侧验证该签名数据的机制被称为数字签名方案。
(模型)
在数字签名方案的模型中,存在如图2所示的两个实体,即签名者和验证者。此外,数字签名方案的模型还由三个算法,即密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver构成。
签名者通过利用密钥生成算法Gen来生成该签名者独有的验证密钥pk和签名密钥sk对。此外,签名者通过利用签名生成算法Sig来生成将被添加到文档M的数字签名σ。即,签名者是向文档M添加数字签名的实体。另一方面,验证者通过利用签名验证算法Ver来验证添加到文档M的数字签名σ。即,验证者是验证该数字签名σ以检查文档M的作者是否是该签名者的实体。
另外,表述“签名者”和“验证者”将被用在下面的描述中,但是这些表述严格来说是指实体。因此,执行密钥生成算法Gen和签名生成算法Sig的主体是与实体“签名者”相对应的信息处理装置。类似地,执行签名验证算法Ver的主体也是信息处理装置。这些信息处理装置的硬件配置例如如图26所示。即,密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver是由CPU 902基于记录在ROM 904、RAM 906、存储单元920、可移除记录介质928等上的程序来执行的。
(密钥生成算法Gen)
密钥生成算法Gen由签名者使用。密钥生成算法Gen是用于生成签名 者独有的验证密钥pk和签名密钥sk对的算法。通过密钥生成算法Gen生成的验证密钥pk被公开。另一方面,通过密钥生成算法Gen生成的签名密钥sk由签名者秘密地管理。由签名者秘密地管理的签名密钥sk被用来生成添加到文档M的数字签名σ。形式上,该密钥生成算法Gen被表示为如下的公式(3),作为获取安全性参数1λ(λ是等于或大于0的整数)作为输入并输出私钥sk和公钥pk的算法。
[表达式3]
(sk,pk)←Gen(1λ) …(3)
(签名生成算法Sig)
签名生成算法Sig由签名者使用。签名生成算法Sig是用于生成将被添加到文档M的数字签名σ的算法。形式上,签名生成算法Sig被标识为如下的公式(4),作为获取文档M和签名者的签名密钥sk作为输入并输出数字签名σ的算法。
[表达式4]
σ←Sig(sk,M) …(4)
(签名验证算法Ver)
签名验证算法Ver由验证者使用。签名验证算法Ver是用于验证数字鉴名σ是否是文档M的有效数字签名的算法。形式上,签名验证算法Ver被表示为如下的公式(5),作为获取验证密钥pk、文档M和签名者的数字签名σ作为输入并输出0或1(1比特)的算法。此外,在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:HFE数字签名方案]
这里,将简要描述HFE数字签名方案作为使用多次多元联立方程式的数字签名方案的示例。
(1-4-1:HFE函数的性质)
首先,将简要描述HFE函数Ft的定义和HFE函数Ft的性质。
《符号的定义》
K:由包括q个数的元素形成的有限环
Kn:K的N次直积
Ft:Kn→Kn
A:有限环K的N次扩展(元素数qn)
B:有限环K的M次扩展(元素数qm)
:线性映射A→Kn(参见下面的公式(6))
S:对Kn的逆仿射变换
T:对Kn的逆仿射变换
f:中心映射(参见下面的公式(7))
陷门:S,T,aij,bi,c
[表达式6]
φ(x0+x1X+…+xn-1Xn-1)=(x0,…,xn-1) …(6)
[表达式7]
另外,当d为不太大的整数时,则aij,bi,c∈A,“如果qi+qj>d,则aij=0”并且“如果qi>d,则bj=0”。
《HFE函数Ft的结构》
HFE函数Ft通过如下的合成映射Ft=T*F*S来表达,该合成映射是通过变换S的映射、中心映射F以及通过变换T的映射(*是映射的合成)。用于计算y=Ft(x)的算法如下。
(步骤1)通过变换S将给定的x=(x0,…,xn-1)∈Kn变换为x’=(x0’,…,xn-1’)∈Kn
(步骤2)通过将x’∈Kn变换为X’∈A。
(步骤3)通过中心映射f将X’∈A变换为Y’=f(X’)∈A。
(步骤4)通过将Y’∈A变换为y’=(y0’,…,yn-1’)∈Kn
(步骤5)通过变换T将y’∈Kn变换为y=(y0,…,yn-1)∈Kn
(步骤6)输出y∈Kn
如上面的公式(7)所示,HFE函数Ft包括基于一个变量的非线性多项式的中心映射f。因此,存在这样的可能性:存在与上域(codomain)A的元素Y’的单变量多项式的根的集合相对应的前像(preimage){Z∈A|f(Z)=Y’}的不同数目的元素。在此情况中,与HFE函数Ft有关的前像的元素个数对于值域的元素y来说是多个。
还存在这样的可能性:对于上域A的元素Y’,前像{Z∈A|f(Z)=Y’}的元素不存在。在此情况中,上域的该元素(对于其来说前像{Z∈A|f(Z)=Y’}的元素不存在)不被包括在值域中,并且因此上域和值域是不同的。
在下面,将更详细描述针对HFE函数Ft的计算算法。
《前向计算算法》
用于HFE函数Ft的前向计算算法由这样的步骤形成:将给定的x∈Kn代入HFE函数Ft(x)中并获得y=Ft(x)∈Kn。当定义域的一个元素x被输入到前向计算算法中时,则值域的一个元素y被输出。
《后向计算算法》
与HFE函数Ft有关的后向计算算法由下面的步骤1至步骤7形成。
(步骤1)通过将给定的y=(y0,…,yn-1)∈Kn应用于变换T的逆变换T-1来获得y’=(y0’,…,yn-1’)∈Kn
(步骤2)将y’=(y0’,…,yn-1’)∈Kn变换为
(步骤3)利用Y’来计算X’∈{Z∈A|f(Z)=Y’}的集合。这里,在X’∈{Z∈A|f(Z)=Y’}为空集的情况中,例外值err被输出。另外,X’∈{Z∈A|f(Z)=Y’}例如是通过对多项式f(X)-Y’进行因数分解而获得的。此外,当上域的元素Y’随机地被选择时,针对元素Y’的前像{Z∈A|f(Z)=Y’}具有m个元素的概率大约为1/(m!e)(这里,e是Napier常数)。
(步骤4)从X’∈{Z∈A|f(Z)=Y’}的集合中选择一个元素X’。
(步骤5)在步骤4中选出的一个元素X’∈A通过被变换为x’=(x0’,…,xn-1’)∈Kn
(步骤6)通过变换S的逆变换S-1将x’∈Kn变换为x=(x0,…,xn-1)∈Kn
(步骤7)输出x∈Kn
注意,在上面的步骤3中,存在这样的可能性:X’∈{Z∈A|f(Z)=Y’}的元素数目α=|{Z∈A|f(Z)=Y’}|为α=0或α≥2。
(1-4-2:HFE数字签名方案的算法)
上面已描述了HFE函数Ft。接下来,将描述利用HFE函数Ft的数字签名方案(以下称为HFE签名方案)的具体算法。此外,使用HFE函数的PFDH签名方案(下面称为HFE+PFDH签名方案)在这里被描述为HFE签名方案的一个示例。
《PFDH签名方案》
首先,将描述PFDH签名方案的密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver。PFDH签名方案的这些算法使用陷门单向函数Ft:A→B和哈希函数H:{0,1}*→B。
(密钥生成算法Gen)
密钥生成算法Gen以安全性参数1λ作为输入,以签名密钥sk作为Ft的陷门t,以验证密钥pk作为Ft,并且计算(sk,pk)((sk,pk)←Gen(1λ))。
(签名生成算法Sig)
签名生成算法Sig以消息M和签名密钥sk作为输入,并且通过下面的步骤1至步骤4来计算数字签名σ(σ←Sig(sk,M))。
(步骤1)生成随机数r。
(步骤2)计算y=H(M,r)∈B。
(步骤3)利用陷门t来执行Ft的后向计算算法,并且计算满足y=Ft(x)的x。另外,当满足y=Ft(x)的x不存在时,返回步骤1。
(步骤4)输出数字签名σ=(x,r)。
(签名验证算法Ver)
签名验证算法Ver以验证密钥pk=Ft、消息M和数字签名σ=(x,r)作为输入,并且通过下面的步骤1和步骤2来验证消息M的数字签名σ(0/1←Ver(pk,M,σ))。
(步骤1)判断Ft(x)是否等于H(M,r)。
(步骤2)在Ft(x)=H(M,r)的情况中,输出1;在Ft(x)≠H(M,r)的情况中,输出0。
《HFE+PFDH签名方案》
接下来,将描述HFE+PFDH签名方案的签名生成算法Sig和签名验证算法Ver。HFE+PFDH签名方案是使用HFE函数Ft的PFDH签名方案。另外,在HFE+PFDH签名方案中,签名密钥sk、HFE函数Ft的陷门S,T,aij,bi和c以及验证密钥pk被设置为Ft
(签名生成算法Sig)
签名生成算法Sig以消息M和签名密钥sk作为输入,并且通过下面的步骤1至步骤9来计算数字签名σ(σ←Sig(sk,M))。
(步骤1)生成随机数r。
(步骤2)利用随机数r和消息M来计算哈希值y∈Kn←H(M,r)。
(步骤3)通过将y=(y0,…,yn-1)∈Kn应用于变换T的逆变换T-1来获得y’=(y0’,…,yn-1’)∈Kn
(步骤4)通过将y’=(y0’,…,yn-1’)∈Kn变换为Y’∈A。
(步骤5)计算X’∈{Z∈A|f(Z)=Y’}的集合。
(步骤6)从集合{Z∈A|f(Z)=Y’}中选择一个元素X’。这里,在集合{Z∈A|f(Z)=Y’}为空集的情况中,返回步骤1的处理。
(步骤7)通过将X’∈A变换为x’=(x0’,…,xn-1’)∈Kn
(步骤8)通过变换S将x’∈Kn变换为x=(x0,…,xn-1)∈Kn
(步骤9)输出数字签名σ=(x,r)。
(签名验证算法Ver)
签名验证算法Ver以验证密钥pk=Ft、消息M和数字签名σ=(x,r)作为输入,并且通过下面的步骤1至步骤3来验证消息M的数字签名σ的有效性(0/1←Ver(pk,M,σ))。
(步骤1)通过利用包括在数字签名σ中的r和消息M来计算哈希值y←H(M,r)。
(步骤2)通过将包括在数字签名σ中的x∈Kn代入HFE函数Ft(x)中来计算y”=Ft(x)∈Kn
(步骤3)当y=y”时输出1,并且当y≠y”时输出0。
在前面,已描述了HFE数字签名方案(HFE+PFDH签名方案已在这里进行了说明)的每个算法的结构。如从上述算法结构可推测到的,根据HFE数字签名方案,如果与H(M,r)有关的Ft=T*F*S的前像被计算出,则数字签名σ将被伪造。即,HFE数字签名方案是依赖于求解由H(M,r)=Ft(x)表示的特殊多次多元联立方程式的难度的方案。难以评估求解这样的特殊多次多元联立方程式的难度。在实际中,据说在HFE数字签名方案中使用的多次多元联立方程式可以在准多项式时间或更少的时间中被求解出。
<2:第一实施例>
这里,将描述本发明的第一实施例。与HFE数字签名方案一样,本实施例涉及采用求解多次多元联立方程式的难度作为安全性基础的公钥认证方案和数字签名方案。然而,与HFE数字签名方案等不同的是,本实施例提供了能够利用没有高效求解手段(陷门)的多次多元联立方程式来确保足够的安全性的公钥认证方案和数字签名方案。
[2-1:公钥认证方案的算法]
首先,将参考图4描述本实施例的公钥认证方案(以下称为本方案)的算法。图4是用于描述本方案的算法的说明图。另外,本方案由密钥生成算法Gen、证明者算法P和验证者算法V构成。下面,将描述每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图4描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G1来生成向量r∈Kn和数w’。即,证明者算法P计算(r,w’)←G1(w)。接下来,证明者算法P通过将数w’应用于伪随 机数生成器G2来生成n个变量的多项式F’(x)=(f’1(x),…,f’m(x))。即,证明者算法P计算F’←G2(w’)。
步骤1(续):
接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽(mask)私钥s的操作。此外,证明者算法P计算F”(x)←F(x+r)+F’(x)。该计算对应于通过多项式的集合F’(x)来掩蔽针对x的多项式的集合F(x+r)的操作。
步骤1(续):
接下来,证明者算法P生成F”(z)和z的哈希值c1。即,证明者算法P计算c1←H1(F”(z),z)。此外,证明者算法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’,z)。此外,如果d=2,则证明者算法P生成信息σ=(F”(x),z)。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤4:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,w”)←G1(σ)。此外,验证者算法V计算F″′←G2(w”)。然后,验证者算法V验证等式c2=H2(w”)是否成立。此外,验证者算法V验证等式c3=H3(F(x+r’)+F″′(x))是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验 证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’)←σ。此外,验证者算法V计算F″′←G2(w”)。然后,验证者算法V验证等式c1=H1(F″′(z’),z’)是否成立。此外,验证者算法V验证等式c2=H2(w”)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=2,则验证者算法V计算(F″″,z’)←σ。然后,验证者算法V验证等式c1=H1(F″″(z’)-y,z’))是否成立。此外,验证者算法V验证等式c3=H3(F″″)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
(补充)
此外,注意,在将上述步骤1中生成的消息(c1,c2,c3)发送给验证者时,与私钥sk有关的信息、与r有关的信息以及与z有关的信息根本不会被泄露给验证者。还注意,在将上述步骤3中生成的信息σ发送给验证者时,与z有关的信息在d=0的情况中根本不会被泄露给验证者,并且与r有关的信息在d=1,2的情况中根本不会被泄露给验证者。
(本方案中的合理性)
本方案的合理性通过如下方式来得到保证:如果证明者对来自验证者的所有要求d=0,1,2响应以针对消息(c1,c2,c3)的正确信息σ,则满足以下公式(8)和(9)的F″″,F″′,r’和z’可从响应中被计算出。
[表达式7]
F″″(x)=F(x+r′)+F″′(x) …(8)
F″″(z′)-y=F″′(z′) …(9)
在这样的逻辑被保证的情况下,可以保证只要多次多元联立方程式不被求解出,就无法以高于2/3的概率执行伪造。即,为了正确地对验证者的所有要求d=0,1,2作出响应,伪造者必须能够计算出满足上面公式(8)和(9)的F″″,F″′,r’和z’。换言之,伪造者必须能够计算出满足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从F”(z)和z生成消息c1,但是由于具有关系F”(z)=F’(z),因此当从F’(z)和z生成消息c1时也可以配置类似的交互式协议。此外,证明者算法P可以分开计算F”(z)的哈希值和z的哈希值,并且可以将每个作为消息发送给验证者。
此外,上述证明者算法P通过将伪随机数生成器G1应用于数w来生成向量r和数w’。然后,证明者算法P通过将数w’应用于伪随机数生成器G2.来生成n个变量的多项式F’(x)。然而,证明者算法P可以在最初计算出w=(r,F’),并且可以对G1进行恒等映射。此外,在此情况中,数w不必被应用于G1。另外,这也同样适用于G2
此外,上述交互式协议采取(F,y)作为公钥。该F是不依赖于私钥sk的参数。因此,也可以使得该参数F成为整个系统共有的参数,而不是被提供给每个证明者。在此情况中,为各个证明者设置的公钥可以仅为y,并且公钥的大小可被减小。
此外,上述交互式协议采取(f1,…,fm,y)作为公钥,但是F=(f1,…,fm,)是可被适当选择的参数。因此,证明者和验证者可以不是使(f1,…,fm,)保持原样,而是准备随机数的种子wpk并且可以利用伪随机数生成器G*来计算F←G*(wpk)。在此情况中,公钥将为(wpk,y),并且可以使公钥的大小比将(F,y)公开作为公钥时小。
在上述方案中,c1,c2和c3是利用哈希函数H1,H2和H3计算的,但是还可以使用承诺方案COM来取代哈希函数。承诺函数COM是以字符串S和随机数ρ作为自变数的函数。承诺函数的示例包括由Shai Halevi和 Silvio Micali在1996年的国际会议CRYPTO中介绍的方案等。
在使用该承诺函数的情况中,在计算c1,c2和c3之前准备随机数ρ1,ρ2和ρ3,并且通过应用承诺函数COM(·,ρ1),COM(·,ρ2)和COM(·,ρ3)取代哈希函数H1(·),H2(·)和H3(·)来生成c1,c2和c3。此外,在此修改中,用于生成将由验证单元计算出Ci所需的ρ1被包括在响应信息中。另外,该修改方案可以应用于下面描述的所有方案。
在前面,已描述了根据本方案的基本算法结构。
[2-2:扩展算法]
接下来,将参考图5描述作为本方案的扩展(下面称为扩展方案)的公钥认证方案的算法。图5是用于描述基于扩展方案的交互式协议的流程的说明图。该扩展方案是用于将在第一次传递中被发送的消息(c1,c2和c3)变换为一个哈希值c并将其发送给验证者的方案。此外,根据该扩展方案,交互式协议被配置为在第一次传递中发送哈希值c,并且因此未从在第三次传递中发送的信息σ中被恢复的消息与信息σ一起被发送给验证者。通过这样的扩展,将在交互式协议中被发送给验证者的哈希值的数目可被减少,并且将被传输的数据的大小可被减小。下面,将详细描述扩展方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图5描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通 过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G1来生成向量r∈Kn和数w’。即,证明者算法P计算(r,w’)←G1(w)。接下来,证明者算法P通过将数w’应用于伪随机数生成器G2来生成n个变量的多项式F’(x)=(f’1(x),…,f’m(x))。即,证明者算法P计算F’←G2(w’)。
步骤1(续):
接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。此外,证明者算法P计算F”(x)←F(x+r)+F’(x)。该计算对应于通过多项式的集合F’(x)来掩蔽针对x的多项式的集合F(x+r)的操作。
步骤1(续):
接下来,证明者算法P生成F”(z)和z的哈希值c1。即,证明者算法P计算c1←H1(F”(z),z)。此外,证明者算法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’,z),c3)。此外,如果d= 2,则证明者算法P生成信息(σ,c*)=((F”,z),c2)。以这种方式生成的信息(σ,c*)通过证明者算法P发送给验证者。
步骤4:
验证者算法V利用从证明者接收的信息(σ,c*)来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,w”)←G1(σ)。此外,验证者算法V计算F″′←G2(w”)。然后,验证者算法V计算c’2=H2(w”)。然后,验证者算法V计算c’3=H3(F(x+r’)+F″′(x))。然后,验证者算法V验证等式c=H(c*,c’2,c’3)是否成立。验证者算法V在验证已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’)←σ。接下来,验证者算法V计算F″′←G2(w”)。然后,验证者算法V计算c’1=H1(F″′(z’),z’)。然后,验证者算法V计算c’2=H2(w”)。然后,验证者算法V验证等式c=H(c’1,c’2,c*)是否成立。验证者算法V在验证已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=2,则验证者算法V计算(F″″,z’)←σ。然后,验证者算法V计算c’1=H1(F″″(z’)-y,z’)。然后,验证者算法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次的算法在图6中示出。下面,将参考图6描述将交互式协议并行地执行N次的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图6描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至处理(8)。(处理1)证明者算法P任意地选择一个数wi。(处理2)证明者算法P通过将该数wi应用于伪随机数生成器G1来生成向量ri∈Kn和数w’i。即,证明者算法P计算(ri,w’i)←G1(wi)。(处理3)证明者算法P通过将数w’i应用于伪随机数生成器G2来生成n个变量的多项式的集合F’i(x)。即,证明者算法P计算F’i←G2(w’i)。
步骤1(续):
(处理4)证明者算法P计算zi←s-ri。该计算对应于通过向量ri来掩蔽私钥s的操作。(处理5)证明者算法P计算F”i(x)←F(x+ri)+F’i(x)。该计算对应于通过多项式的集合F’i(x)来掩蔽针对x的多项式的集合F(x+ri)的操作。
步骤1(续):
(处理6)证明者算法P生成F”i(zi)和zi的哈希值c1,i。即,证明者算法P计算c1,i←H1(F”i(zi),zi)。(处理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,zi)。(处理3)如果di=2,则证明者算法P生成信息σi=(F”i,zi)。当上述(处理1)至(处理3)的决定和处理已被执行之后,信息σi(i=1至N)通过证明者算法P被发送给验证者。
步骤4:
验证者算法V利用从证明者接收的信息σi(i=1至N)来执行下面的验证处理。另外,下面的处理针对i=1至N被执行。
如果di=0,则验证者算法V计算(r’i,w”i)←G1i)。此外,验证者算法V计算F″′i←G2(w”i)。然后,验证者算法V验证等式c2,i=H2(w”i)是否成立。此外,验证者算法V验证等式c3,i=H3(F(x+r’i)+F″′i(x))是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果di=1,则验证者算法V计算(w”i,z’i)←σi。此外,验证者算法V计算F″′i←G2(w”i)。然后,验证者算法V验证等式c1,i=H1(F″′i(z’i),z’i)是否成立。此外,验证者算法V验证等式c2,i=H2(w”i)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果di=2,则验证者算法V计算(F″″i,z’i)←σi。然后,验证者算法V验证等式c1,i=H1(F″″i(z’i)-y,z’i)是否成立。此外,验证者算法V验证等式c3,i=H3(F″″i(x))是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了并行地执行本方案的交互式协议的方法。如上所述,通过重复地执行本方案的交互式协议,伪造成功的概率可被减小到可忽略的水平。
另外,在上述步骤1之后,取代发送(c1,1,c1,2,c1,3,…,cN,1,cN,2,cN,3)给验证者,它们的哈希值H(c1,1,c1,2,c1,3,…,cN,1,cN,2,cN,3)可以总体地被发送。当采用这种配置时,在第一次传递中发送的消息将仅是一个哈希值,并且通信量可被大幅减少。此外,该哈希值以及未从发送自证明者的响应中被恢复为挑战的哈希值将与该响应一起从证明者被发送。根据这种配置,在并行重复N次的情况中,将被发送的信息的个数可被减少2N-1个。
(参数设置的合适方法)
现在,根据本实施例的交互式协议保证了针对被动攻击的安全性。然而,在采用并行地重复执行该交互式协议的上述方法的情况中,为了保证针对主动攻击的安全性得到绝对保证,必须满足如下所述的条件。
上述交互式协议是证明者利用一对密钥(公钥y、私钥s)向验证者证明“对于y,该证明者知道满足y=F(s)的s”的方案。因此,如果通过验证而被接受的交互被执行,则不能否认这样的可能性,即“证明者在交互时使用了该s”的信息将被验证者所知。此外,对于上面的F,抗冲突能力(collision resistance)得不到保证。因此,对于在无条件的情形下并行 地重复执行上述交互式协议的情况,难以证明针对主动攻击的安全性将得到绝对保证。
因此,本申请的发明人已调研出了一种方法,该方法即使在通过验证而被接受的交互被执行时也可防止“证明者在交互时使用了该s”的信息被验证者所知。于是,本申请的发明人已想出了即使在并行地重复执行上述交互式协议的情况中也能够保证针对主动攻击的安全性的方法。该方法用于将用作公钥的n个变量的多次多项式f1,…,fm的数目m设置为充分小于变量的数目n的值。例如,m和n被设置为使得2m-n<<1(例如,当n=160并且m=80时,2-80<<1)。
在采取求解多次多元方程式的难度作为安全性基础的上述方案中,即使私钥s1和与该私钥相对应的公钥pk被给出,也难以生成与该公钥pk相对应的另一私钥s2。因此,如果保证了对于公钥pk存在两个以上的私钥s,则即使当通过验证而被接受的交换被执行时,也可以防止“证明者在交互时使用了该s”的信息被验证者所知。即,如果该保证成立,则即使在并行地重复执行交互式协议的情况中,针对主动攻击的安全性也可以得到保证。
参考图28,考虑由n个变量的m个多次多项式形成的函数F:Kn→Km(其中,n>m),不具有第二前像的定义域中的元素数目最大仅为|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:非交互式算法]
在前面,已描述了3次传递公钥认证方案。然而,由于根据本方案,在第二次传递中从验证者发送给证明者的信息仅是指示验证模式的要求d(实际上,在许多情况中,仅随机数被使用),因此可以修改为1次传递公钥认证方案(下面称为非交互式方案)。另外,根据非交互式方案的每个算法的内容在图7中示出。下面,将参考图7描述根据非交互式方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图7描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至处理(8)。(处理1)证明者算法P任意地选择一个数wi。(处理2)证明者算法P通过将该数wi应用于伪随机数生成器G1来生成向量ri∈Kn和数w’i。即,证明者算法P计算(ri,w’i)←G1(wi)。(处理3)证明者算法P通过将数w’i应用于伪随机数生成器G2来生成n个变量的多项式的集合F’i(x)。即,证明者算法P计算F’i←G2(w’i)。
步骤1(续):
(处理4)证明者算法P计算zi←s-ri。该计算对应于通过向量ri来掩 蔽私钥s的操作。(处理5)证明者算法P计算F”i(x)←F(x+ri)+F’i(x)。该计算对应于通过多项式的集合F’i(x)来掩蔽针对x的多项式的集合F(x+ri)的操作。
步骤1(续):
(处理6)证明者算法P生成F”i(zi)和zi的哈希值c1,i。即,证明者算法P计算c1,i←H1(F”i(zi),zi)。(处理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,zi)。(处理3)如果di=2,则证明者算法P生成信息σi=(F”i,zi)。当上述(处理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’i,w”i)←G1i)。此外,验证者算法V计算F″′i←G2(w”i)。然后,验证者算法V验证等式c2,i=H2(w”i)是否 成立。此外,验证者算法V验证等式c3,i=H3(F(x+r’i)+F″′i(x))是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果di=1,则验证者算法V计算(w”i,z’i)←σi。此外,验证者算法V计算F″′i←G2(w”i)。然后,验证者算法V验证等式c1,i=H1(F″′i(z’i),z’i)是否成立。此外,验证者算法V验证等式c2,i=H2(w”i)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果di=2,则验证者算法V计算(F″″i,z’i)←σi。然后,验证者算法V验证等式c1,i=H1(F″″i(z’i)-y,z’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个变量的m个多次多项 式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(签名生成算法Sig)
该签名生成算法Sig针对i=1至N来执行下面的(处理1)至(处理15)。另外,假设签名密钥sk=(s1,…,sN)和文档M被输入签名生成算法Sig中。
(处理1)签名生成算法Sig任意地选择数wi。(处理2)签名生成算法Sig通过将该数wi应用于伪随机数生成器G1来生成向量ri∈Kn和数w’i。即,签名生成算法Sig计算(ri,w’i)←G1(wi)。(处理3)签名生成算法Sig通过将数w’i应用于伪随机数生成器G2来生成n个变量的m个多项式F’i(x)=(f’1,i(x),…,f’m,i(x)))。即,签名生成算法Sig计算F’i←G2(w’i)。
(处理4)签名生成算法Sig计算zi←si-ri。该计算对应于通过向量ri来掩蔽私钥si的操作。(处理5)签名生成算法Sig计算F”i(x)←F(x+ri)+F’i(x)。该计算对应于通过多项式的集合F’i(x)来掩蔽针对x的多项式的集合F(x+ri)的操作。
(处理6)签名生成算法Sig生成F”i(zi)和zi的哈希值c1,i。即,签名生成算法Sig计算c1,i←H1(F”i(zi),zi)。(处理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,zi)。(处理14)如果di=2,则签名生成算法Sig生成信息σi=(F”i,zi)。
(处理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也否决该数字签名σ。另外,假设数字签名σ和文档M被输入签名验证算法Ver中。首先,该签名验证算法Ver计算d=(d1,…,dN)←H(R,M,c1,1,…,c3,N)。接下来,该签名验证算法Ver针对i=1至N来执行下面的(验证1)至(验证3)。
(验证1)如果di=0,则签名验证算法Ver计算(r’i,w”i)←G1i)。接下来,签名验证算法Ver计算F″′i←G2(w”i)。然后,签名验证算法Ver验证等式c2,i=H2(w”i)是否成立。此外,签名验证算法Ver验证等式c3,i=H3(F(x+r’i)+F″′i(x))是否成立。签名验证算法Ver在所有验证都已成功的情况中输出指示接受该数字签名σ的值1,并且在在验证中出现了失败的情况中输出指示否决该数字签名σ的值0。
(验证2)如果di=1,则签名验证算法Ver计算(w”i,z’i)←σi。接下来,签名验证算法Ver计算F″′i←G2(w”i)。然后,签名验证算法Ver验证等式c1,i=H1(F″′i(z’i),z’i)是否成立。此外,签名验证算法Ver验证等式c2,i=H2(w”i)是否成立。签名验证算法Ver在所有验证都已成功的情况中输出指示接受该数字签名σ的值1,并且在在验证中出现了失败的情况中输出指示否决该数字签名σ的值0。
(验证3)如果di=2,则签名验证算法Ver计算(F″″i,z’i)←σi。然后,签名验证算法Ver验证等式c1,i=H1(F″″i(z’i)-y,z’i)是否成立。此外,签名验证算法Ver验证等式c3,i=H3(F″″i)是否成立。签名验证算法Ver在所有验证都已成功的情况中输出指示接受该数字签名σ的值1,并且在在验 证中出现了失败的情况中输出指示否决该数字签名σ的值0。
在前面,已描述了基于本方案的数字签名方案的每个算法结构。基于上述扩展方案的数字签名方案可以同样地被构成。
[2-6:具体示例]
接下来,将参考图8描述在执行本方案时可假定的具体算法结构。图8是用于描述本方案的具体示例的说明图。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个二次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个二次多项式(f1(x),…,fm(x))将被表达为F(x)。此外,n个变量的二次多项式fi(x1,…,xn)被表示为如下的公式(10)。
[表达式8]
f i ( x 1 , &CenterDot; &CenterDot; &CenterDot; , x n ) = &Sigma; j , k a i , j , k x j x k + &Sigma; j b i , j x j + c i . . . ( 10 )
(证明者算法P、验证者算法V)
接下来,将参考图8描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G1来生成向量r∈Kn和数w’。即,证明者算法P计算(r,w’)←G1(w)。接下来,证明者算法P通过将数w’应用于伪随 机数生成器G2来生成m个一次多项式的集合f’1(x1,…,xn),…,f’m(x1,…,xn)。即,证明者算法P计算(f’1,…,f’m)←G2(w’)。另外,一次多项式f’1(x1,…,xn)被表示为如下的公式(11)。此外,m个一次多项式的集合(f’1(x),…,f’m(x))将被表达为F’(x)。
[表达式9]
f &prime; i ( x 1 , &CenterDot; &CenterDot; &CenterDot; , x n ) = &Sigma; j b &prime; i , j x j + c &prime; i . . . ( 11 )
步骤1(续):
接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。此外,证明者算法P计算F”(x)←F(x+r)+F’(x)。该计算对应于通过多项式F’(x)来掩蔽针对x的多项式F(x+r)的操作。应注意,在F(x+r)中,与r有关的信息仅出现在x的一次项中,因此与r有关的所有信息被F’(x)掩蔽。
步骤1(续):
接下来,证明者算法P生成F’(z)和z的哈希值c1。即,证明者算法P计算c1←H1(F’(z),z)。此外,证明者算法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’,z)。此外,如果d=2,则证明者算法P生成信息σ=(F”,z)。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤4:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,w”)←G1(σ)。此外,验证者算法V计算F″′←G2(w”)。然后,验证者算法V验证等式c2=H2(w”)是否成立。此外,验证者算法V验证等式c3=H3(F(x+r’)+F″′(x))是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’)←σ。此外,验证者算法V计算F″′←G2(w”)。然后,验证者算法V验证等式c1=H1(F″′(z’),z’)是否成立。此外,验证者算法V验证等式c2=H2(w”)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=2,则验证者算法V计算(F″″,z’)←σ。然后,验证者算法V验证等式c1=H1(F″′(z’)-y,z’)是否成立。此外,验证者算法V验证等式c3=H3(F″′)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了在执行本方案时可假定的具体算法结构。
[2-7:高效算法]
n个变量的m个二次多项式的集合(f1(x),…,fm(x))可被标识为如下的公式(12)。此外,x=(x1,…,xn)是指示n个变量的向量。而且,A1,…,Am是n×n矩阵。而且,b1,…,bm是n×1向量。此外,c是m×1向量。
[表达式10]
F ( x ) = f 1 ( x ) &CenterDot; &CenterDot; &CenterDot; f m ( x ) = x T A 1 x + b 1 T x &CenterDot; &CenterDot; &CenterDot; x T A m x + b m T x + c . . . ( 12 )
利用该表示,多项式的集合F可被标识为如下的公式(13)和公式(14)。可以从下面的公式(15)容易地确认该表示成立。
[表达式11]
F(x1+x2)=F(x1)+F(x2)+Fb(x1,x2)-c …(13)
F b ( x 1 , x 2 ) = x 2 T ( A 1 T + A 1 ) x 1 &CenterDot; &CenterDot; &CenterDot; x 2 T ( A m T + A m ) x 1 . . . ( 14 )
f l ( x 1 + x 2 ) = ( x 1 + x 2 ) T A l ( x 1 + x 2 ) + b l T ( x 1 + x 2 ) + c l
= x 1 T A l x 1 + x 1 T A l x 2 + x 2 T A l x 1 + x 2 T A l x 2 + b l T x 1 + b l T x 2 + c l
= f l ( x 1 ) + f l ( x 2 ) - c l + x 1 T A l x 2 + x 2 T A l x 1
= f l ( x 1 ) + f l ( x 2 ) - c l + x 1 T ( A l T ) T x 2 + x 2 T A l x 1
= f l ( x 1 ) + f l ( x 2 ) - c l + ( A l T x 1 ) T x 2 + x 2 T A l x 1
= f l ( x 1 ) + f l ( x 2 ) - c l + x 2 T ( A l T x 1 ) + x 2 T A l x 1
= f l ( x 1 ) + x 2 T ( A l T + A l ) x 1 + f l ( x 2 ) - c l . . . ( 15 )
当将F(x1+x2)划分为三个部分时,即,取决于x1的部分、取决于x2的部分以及取决于x1和x2两者的部分,以这种方式,取决于x1和x2两者的部分Fb(x1,x2)将是相对于x1和x2的双线性映射。当利用该性质时,可以实现高效方案。
例如,考虑本方案中的这样的修改:通过利用向量t∈Kn和e∈Km来将多项式的集合F’(x)用于掩蔽与F’(x)=Fb(x,t)+e有关的多项式的集合F(x+r)。当这样的修改被执行时,与x有关的多项式的集合F(x+r)和F’(x)之和可被表示为如下的公式(16)。这里,当t’=r+t并且e’=F(r)-c+e时,与x有关的多项式F”(x)可以通过向量t’∈Kn和e’∈Km来表示。出于这些原因,通过设置F’(x)=Fb(x,t)+e,F’和F”可由Kn上的向量以及Km上的向量来表示,并且需要传输的数据的大小可被大幅减小。
[表达式12]
F(x+r)+F′(x)
=F(x)+F(r)+Fb(x,r)-c+Fb(x,t)+e
…(16)
=F(x)+Fb(x,r+t)+F(r)-c+e
此外,通过上面的修改,与r有关的信息未从F”(或F’)被泄露。例如,即使e’和t’(或者e和t)被给出,只要e和t(或者e’和t’)不被知道,就无法知道与r有关的任何信息。因此,以上述方式进行了修改的本方案是保证了零知识的公钥认证方案。下面,将参考图9至11更详细地描述以上述方式被修改的根据本方案的高效算法。另外,密钥生成算法Gen的结构与上面所述的本方案的基本相同,因此将省略其详细说明。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G1来生成向量r∈Kn和数w’。即,证明者算法P计算(r,w’)←G1(w)。接下来,证明者算法P通过将数w’应用于伪随机数生成器G2来生成两个向量t∈Kn和e∈Km。即,证明者算法P计算(t,e)←G2(w’)。接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。此外,证明者算法P计算t’←r+t。接下来,证明者算法P计算e’←F(r)-c+e。
步骤1(续):
接下来,证明者算法P基于上面的公式(16)生成Fb(z,t),并且生成Fb(z,t)+e和z的哈希值c1。即,证明者算法P计算c1←H1(Fb(z,t)+e,z)。此外,证明者算法P生成数w’的哈希值c2。即,证明者算法P计算c2←H2(w’)。此外,证明者算法P生成两个向量t’和e’的哈希值c3。即,证明者算法P计算c3←H3(t’,e’)。另外,所描述的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’,z)。此外,如果d=2,则证明者算法P生成信息σ=(t’,e’,z)。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤4:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,w”)←G1(σ)。此外,验证者算法V计算(t”,e”)←G2(w”)。然后,验证者算法V验证等式c2=H2(w”)是否成立。此外,验证者算法V验证等式c3=H3(r’+t”,F(r’)-c+e”)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算(w”,z’)←σ。此外,验证者算法V计算(t”,e”)←G2(w”)。然后,验证者算法V验证等式c1=H1(Fb(z’,t”)+e”,z’)是否成立。此外,验证者算法V验证等式c2=H2(w”)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=2,则验证者算法V计算(t″′,e″′,z’)←σ。然后,验证者算法V验证等式c1=H1(F(z’)+Fb(z’,t″′)+e″′-y,z’)是否成立。此外,验证者算法V验证等式c3=H3(t″′,e″′)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了本方案的高效算法。通过利用该高效算法,需要传输的数据的大小可被大幅减小。此外,由于将x+r代入多项式F并且关于x来重组多项式F的计算(F(x+r)的计算)在该交互式协议中成为不必要的,因此计算效率提高。
(高效算法的修改)
现在,图9所示的本方案的高效算法可在维持计算效率的同时被修改 为如图10和11所示的算法。
(修改A:图10所示的算法)
例如,计算e’←F(r)-c+e在图9所示的高效算法的步骤1中被执行,然而该计算可被修改为如图10所示的计算e’←F(r)+e。然而,在执行这样的修改的情况中,将在步骤4中由验证者执行的验证的内容的一部分必须被修改。具体地,在d=0的情况中将由验证者在步骤4执行的验证的内容中,对c3=H3(r’+t”,F(r’)-c+e”)的验证必须由对c3=H3(r’+t”,F(r’)+e”)的验证来取代。此外,在d=1的情况中将由验证者在步骤4执行的验证的内容中,对c1=H1(F(z’)+Fb(z’,t”’)+e”’-y,z’)的验证必须由对c1=H1(F(z’)+Fb(z’,t”’)-c+e”’-y,z’)的验证来取代。
(修改B:图11所示的算法)
此外,在图10所示的算法的步骤3中,在d=0的情况中σ被设置为w,然而在d=0的情况中被设置的该σ可以为任何信息,只要该信息是可从其恢复(r,t,e)的信息即可。例如,如图11所示,在d=0的情况中将在步骤3被设置的σ的内容可以为(w’,t’)。然而,在执行这样的修改的情况中,将在步骤4中由验证者执行的验证的内容的一部分必须被修改。具体地,在d=0的情况中将由验证者在步骤4执行的验证的内容中,对c3=H3(r’+t”,F(r’)+e”)的验证必须由对c3=H3(t’,F(t’-t)+e”)的验证来取代。
如上所述,将在步骤1中由证明者执行的计算e’←F(r)-c+e可被改变为计算e’←F(r)+e(修改A)。此外,在d=0的情况中将由证明者在步骤3设置的σ的内容可被改变为(w’,t’)等(修改B)。图11示出了应用了根据修改A的修改和根据修改B的修改两者的图9的高效算法,然而,也可以仅向图9的高效算法应用根据修改B的修改。即,修改A的修改内容和修改B的修改内容可以分离地被应用于图9的算法,或者这两者可以组合地被应用于图9的算法。
[2-8:多次多元联立方程式的形式]
如上所述,本方案是采取求解多次多元联立方程式的难度作为安全性基础的方案。此外,本方案具有其特征:复杂的多次多元联立方程式可被 使用。在上面的说明中,未向多次多元联立方程式的形式施加任何特殊限制,然而优选地,例如使用体现了充分地保证其难度的元素加密技术的多次多元联立方程式。下面,将介绍可被应用于本方案的多次多元联立方程式的具体示例。
(2-8-1:与共同密钥块密码有关的形式)
诸如AES、DES和KATAN之类的共同密钥块密码技术是得到良好地解析并且安全性和可靠性高的基本技术。这些共同密钥块密码可以通过以共同密钥块密码的密钥、明文和密文作为变量的多次多元联立方程式来表示。当值被赋予该多次多元联立方程式中的表示明文和密文的变量时,该多次多元联立方程式将成为仅以表示密钥的变量作为变量的方程式。
求解表示该共同密钥块密码的这样的多次多元联立方程式对应于从明文和密文中恢复该共同密钥块密码的密钥。即,只要维持该共同密钥块密码的安全性,则求解表示该共同密钥块密码的多次多元联立方程式的难度就会得到保证。因此,如果表示共同密钥块密码的多次多元联立方程式被应用于本方案,则将实现具有与共同密钥块密码方案的安全性相同的安全性的公钥认证方案。
然而,如果共同密钥块密码通过以密钥、明文和密文作为变量的多次多元联立方程式来表示,则多项式的次数将较高,因此,用于表示联立方程式的数据的大小将增加。因此,除了密钥、明文和密文以外,还将引入表示每轮(round)的内部状态的变量。通过引入该变量,可以使表示共同密钥块密码的多次多元联立方程式的次数变低。例如,适当的值被代入表示明文和密文的变量中,并且与表示密钥和内部状态的变量有关的联立方程式被引入。通过采用这样的方法,变量的数目将增加,然而次数将降低,因此,联立方程式的表示将是紧凑的。
(2-8-2:与哈希函数有关的形式)
类似地,与诸如SHA-1、SHA-256等哈希函数有关的多次多元联立方程式可被应用于本方案。这些哈希函数可以通过以消息(其是哈希函数的输入)和哈希值(其是输出)作为变量的多次多元联立方程式来表示。利用该多次多元联立方程式,当适当值被赋予表示哈希值的变量时,与表示 对应输入的变量有关的多次多元联立方程式被获得。
求解这样的多次多元联立方程式对应于从哈希值恢复原始消息的值。即,只要维持哈希函数的安全性(单方向性),求解表示该哈希函数的多次多元联立方程式的难度就会得到保证。因此,如果表示哈希函数的多次多元联立方程式被应用于本方案,则将实现基于哈希函数的安全性的公钥认证方案。
然而,如果哈希函数通过以输入消息和哈希值作为变量的多次多元联立方程式来表示,则多项式的次数将较高,因此表示联立方程式的数据的大小将增加。因此,除了输入消息和哈希值以外,还将引入表示内部状态的变量。通过引入该变量,可以使表示哈希函数的多次多元联立方程式的次数变低。例如,适当的值被代入表示哈希值的变量中,并且与表示密钥和内部状态的变量有关的联立方程式被引入。通过采用这样的方法,变量的数目将增加,然而次数将降低,因此,联立方程式的表示将是紧凑的。
(2-8-3:与流密码有关的形式)
类似地,与诸如Trivium之类的流密码有关的多次多元联立方程式可被应用于本方案。这些流密码可以通过与表示流密码的初始内部状态的变量以及表示作为输出的流的变量有关的多次多元联立方程式来表示。在此情况中,当适当值被赋予表示输出流的变量时,与表示对应初始内部状态的变量有关的多次多元联立方程式被获得。
求解这样的多次多元联立方程式对应于从输出流的值中恢复表示原始的初始内部状态的变量。即,只要维持流密码的安全性,则求解表示该流密码的多次多元联立方程式的难度就会得到保证。因此,如果表示流密码的多次多元联立方程式被应用于本方案,则将实现基于流密码的安全性的公钥认证方案。
然而,如果流密码通过以初始内部状态和输出流作为变量的多次多元联立方程式来表示,则多项式的次数将较高,因此表示联立方程式的数据的大小将增加。因此,除了初始内部状态和输出流以外,还将引入表示每轮的内部状态的变量。通过引入该变量,可以使表示流密码的多次多元联立方程式的次数变低。例如,适当的值被代入表示输出流的变量中,则与 表示初始内部状态和一轮的内部状态的变量有关的联立方程式被引入。通过采用这样的方法,变量的数目将增加,然而次数将降低,因此,联立方程式的表示将是紧凑的。
在前面,已描述了本发明的第一实施例。
<3:第二实施例>
接下来,将描述本发明的第二实施例。在前面,已描述了3次传递公钥认证方案。在本实施例中,将描述5次传递公钥认证方案(下面称为本方案)。本方案是用于通过使验证者的验证模式的数目为2q来确保公钥认证方案的合理性的方案。
另外,在根据上述第一实施例的3次传递公钥认证方案中,每次交互式协议时的伪造概率为2/3。然而,在本方案中,每次交互式协议时的伪造概率将为1/2+1/q,如后面将描述的。此外,q是将被使用的环的阶数。因此,如图27所示,如果环的阶数足够大,则本方案能够进一步减小每次交互式协议时的伪造概率,并且可以通过较小数目的交互式协议执行次数来充分地减小伪造概率。
根据5次传递公钥认证方案的交互式协议可能看起来比根据3次传递公钥认证方案的交互式协议的效率低。然而,根据5次传递公钥认证方案,如果使环的阶数足够大,则每次交互式协议时的伪造概率将接近1/2,因此实现相同安全性等级所需的交互式协议的执行次数可以较少。
例如,在3次传递公钥认证方案中,为了使伪造概率为1/2n或更小,交互式协议必须被执行n/(log3-1)=1.701n次或更多次。另一方面,在5次传递公钥认证方案中,交互式协议必须被执行n/(1-log(1+1/q))次或更多次。如图27所示,例如,当q=24时,对于5次传递公钥认证方案来说,实现相同安全性等级所需的通信量将比3次传递公钥认证方案少。
[3-1:公钥认证方案的算法]
下面,将参考图12描述根据5次传递公钥认证方案(本方案)的算法结构。图12是用于描述根据本方案的算法的内容的说明图。
(密钥生成算法Gen)
该密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图12描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G来生成向量r∈Kn以及n个变量的多项式的集合F’(x)=(f’1(x),…,f’m(x))。即,证明者算法P计算(r,F’)←G(w)。接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。
步骤1(续):
接下来,证明者算法P生成F’(z)和z的哈希值c1。即,证明者算法P计算c1←H1(F’(z),z)。此外,证明者算法P生成数w的哈希值c2。即,证明者算法P计算c2←H2(w)。另外,所描述的H1(…)和H2(…)是哈希函数。此外,哈希值(c1,c2)是消息。
在步骤1中生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择一个随机数α。然后,验证者算法V将所选随机数α发送给证明者。
步骤3:
证明者算法P计算F”(x)←αF(x+r)+F’(x)。该计算对应于通过多项式的集合F’(x)来掩蔽针对x的多项式的集合F(x+r)的操作。
在步骤3中生成的多项式F”被发送给验证者。
步骤4:
验证者算法V从两种验证模式中选择将要使用的验证模式。然后,验证者算法V向证明者发送指示所选验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d来生成将被发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。此外,如果d=1,则证明者算法P生成信息σ=z。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤6:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,F″′)←G(σ)。此外,验证者算法V验证等式c2=H2(σ)是否成立。此外,验证者算法V验证等式F”(x)=αF(x+r’)+F″′(x)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算z’←σ。此外,验证者算法V验证等式c1=H1(F″′(z’)-αy,z’)是否成立。验证者算法V在验证已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
(补充)
此外,注意,在将上述步骤1和步骤3中生成的消息(c1,c2)以及多项式的集合F”发送给验证者时,与私钥sk有关的信息、与r有关的信息以及与z有关的信息根本不会被泄露给验证者。还注意,在将上述步骤5中生成的信息σ发送给验证者时,与z有关的信息在d=0的情况中根本不会被泄露给验证者,并且与r有关的信息在d=1的情况中根本不会被泄露给验证者。
(本方案中的合理性)
本方案的合理性通过如下方式来得到保证:如果证明者算法P针对由验证者算法V选择的两种类型(α1,α2)以及集合(c1,c2),对要求d=0,1作出正确的响应,则满足以下公式(17)至(19)的F″″1,F″″2,F″′,r’和z’可从响应中被计算出。
[表达式13]
F″″1(x)=α1F(x+r′)+F″′(x) …(17)
F″″2(x)=α2F(x+r′)+F″′(x) …(18)
F″″1(z′)-α1y=F″″2(z′)-α2y …(19)
在这样的逻辑被保证的情况下,可以保证只要多次多元联立方程式不被求解出,就无法以高于1/2+1/q的概率执行伪造。即,为了正确地对验证者的所有要求d=0,1作出响应,伪造者必须能够计算出满足上面公式(17)至(19)的F″″1,F″″2,F″′,r’和z’。换言之,伪造者必须能够计算出满足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 *)。通过该修改,使得交互式协议能够在取y=0的情况下在证明者与验证者之间被执行。
此外,证明者算法P可以分开计算F”(z)的哈希值和z的哈希值,并且可以分开地将每个作为消息发送给验证者。
此外,上述证明者算法P通过将伪随机数生成器G1应用于数w来生成向量r和数w’。然后,证明者算法P通过将数w’应用于伪随机数生成器G2.来生成n个变量的多项式F’(x)。然而,证明者算法P可以在最初计算出w=(r,F’),并且可以对G1进行恒等映射。此外,在此情况中,数w不必被应用于G1。另外,这也同样适用于G2
在前面,已描述了根据本方案的基本算法结构。
[3-2:扩展算法]
接下来,将参考图13描述作为本方案的扩展(下面称为扩展方案)的公钥认证方案的算法。图13是用于描述基于扩展方案的交互式协议的流程的说明图。该扩展方案是用于将在第三次传递中被发送的多项式的集合F”变换为一个哈希值c3并将其发送给验证者的方案。通过这样的扩展,在交互式协议中其表示大小较大的多项式的集合F”被发送给验证者的概率可被减少为一半,并且将被传输的数据的大小可被减小。下面,将详细描述扩展方案的每个算法的内容。
(密钥生成算法Gen)
该密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图13描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G来生成向量r∈Kn和n个变量的多项式的集合F’(x)。即,证明者算法P计算(r,F’)←G(w)。接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。
步骤1(续):
接下来,证明者算法P生成F’(z)和z的哈希值c1。即,证明者算法P计算c1←H1(F’(z),z)。此外,证明者算法P生成数w的哈希值c2。即,证明者算法P计算c2←H2(w)。另外,所描述的H1(…)和H2(…)是哈希函数。此外,哈希值(c1,c2)是消息。
在步骤1生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择一个随机数α。然后,验证者算法V将所选随机数α发送给证明者。
步骤3:
证明者算法P计算F”(x)←αF(x+r)+F’(x)。该计算对应于通过多项式的集合F’(x)来掩蔽针对x的多项式的集合F(x+r)的操作。此外,证明者算法P生成多项式的集合F”的哈希值c3。即,证明者算法计算c3=H3(F”(x))。另外,所描述的H3(…)是哈希函数。此外,哈希值c3是消息。
在步骤3中生成的消息c3被发送给验证者。
步骤4:
验证者算法V从两种验证模式中选择将要使用的验证模式。然后,验证者算法V向证明者发送指示所选验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d来生成将被发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。此外,如果d=1,则证明者算法P生成信息σ=(z,F”)。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤6:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,F″′)←G(σ)。此外,验证者算法V验证等式c2=H2(σ)是否成立。此外,验证者算法V验证等式c3=H3(αF(x+r’)+F″′(x))是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算(z’,F″′)←σ。此外,验证者算法V验证等式c1=H1(F″′(z’)-αy,z’)是否成立。此外,验证者算法V验证等式c2=H2(F″′(x))是否成立。验证者算法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次的算法在图14中示出。下面,将参考图14描述将交互式协议并行地执行N次的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图14描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设 通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至处理(5)。(处理1)证明者算法P任意地选择一个数wi。(处理2)证明者算法P通过将该数wi应用于伪随机数生成器G来生成向量ri∈Kn和多项式的集合F’i(x)。即,证明者算法P计算(ri,F’i)←G(wi)。(处理3)证明者算法P计算zi←s-ri。该计算对应于通过向量ri来掩蔽私钥s的操作。
步骤1(续):
(处理4)证明者算法P生成F’i(zi)和zi的哈希值c1,i。即,证明者算法P计算c1,i←H1(F’i(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)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择N个随机数α1,…,αN。然后,验证者算法V将所选随机数α1,…,αN发送给证明者。
步骤3:
证明者算法P针对i=1至N来计算F”i(x)←αiF(x+ri)+F’i(x)。该计算对应于通过多项式的集合F’i(x)来掩蔽针对x的多项式的集合F(x+ri)的操作。然后,证明者算法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=zi。当上述(处理1)或(处理2)的决定和处理已被执行之后,信息σi(i=1至N)通过证明者算法P被发送给验证者。
步骤6:
验证者算法V利用从证明者接收的信息σi(i=1至N)来执行下面的验证处理。另外,下面的处理针对i=1至N被执行。
如果di=0,则验证者算法V计算(r’i,F″′i)←G(σi)。然后,验证者算法V验证等式c2,i=H2i)是否成立。此外,验证者算法V验证等式F”i(x)=αiF(x+r’i)+F″′i(x)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果di=1,则验证者算法V计算z’i←σi。然后,验证者算法V验证等式c1,i=H1(F″′i(z’i),z’i)是否成立。此外,验证者算法V验证等式c1,i=H1(F″′i(z’i)-αiy,zi)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了并行地执行本方案的交互式协议的方法。如上所述,通过重复地执行本方案的交互式协议,伪造成功的概率可被减小到可忽略的水平。另外,可以同样地对扩展方案进行并行化。扩展方案的并行交互式协议的算法结构在图15中示出。
另外,在上述步骤1之后,取代发送(c1,1,c1,2,…,cN,1,cN,2)给验证者,它们的哈希值H(c1,1,c1,2,…,cN,1,cN,2)可以总体地被发送。当采用这种配置时,在第一次传递中发送的消息将仅是一个哈希值,并且通信量可被大幅减少。此外,该哈希值以及未从发送自证明者的响应中被恢复为挑战的哈希值将与该响应一起从证明者被发送。根据这种配置,在并行重复N次的情况中,将被发送的信息的个数可被减少N-1个。
(根据扩展方案的并行算法)
接下来,将参考图15描述根据扩展方案的并行算法的内容。另外,密钥生成算法Gen的结构与根据上面描述的本方案的并行算法的基本上相 同,因此将省略其详细说明。
步骤1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至处理(5)。(处理1)证明者算法P任意地选择一个数wi。(处理2)证明者算法P通过将该数wi应用于伪随机数生成器G来生成向量ri∈Kn和多项式的集合F’i(x)。即,证明者算法P计算(ri,F’i)←G(wi)。(处理3)证明者算法P计算zi←s-ri。该计算对应于通过向量ri来掩蔽私钥s的操作。
步骤1(续):
(处理4)证明者算法P生成F’i(zi)和zi的哈希值c1,i。即,证明者算法P计算c1,i←H1(F’i(zi),zi)。(处理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(x)←αiF(x+ri)+F’i(x)。该计算对应于通过多项式的集合F’i(x)来掩蔽针对x的多项式的集合F(x+ri)的操作。然后,证明者算法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=(zi,F”i)。当上述(处理1)或(处理2)的决定和处理已被执行之后,信息σi(i=1至N)通过证明者算法P被发送给验证者。
步骤6:
验证者算法V利用从证明者接收的信息σi(i=1至N)来执行下面的验证处理。另外,下面的处理针对i=1至N被执行。
如果di=0,则验证者算法V计算(r’i,F″′i)←G(σi)。此外,验证者算法V计算F″″i←αiF(x+r’i)+F″′i(x)。然后,验证者算法V验证等式c2,i=H2i)是否成立。然后,验证者算法V验证等式c3=H3(F″″1,…,F″″N)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果di=1,则验证者算法V计算(z’i,F″″i)←σi。然后,验证者算法V验证等式c1,i=H1(F″″i(z’i)-αiy,z’i)是否成立。此外,验证者算法V验证等式c3=H3(F″″1,…,F″″N)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了根据扩展方案的并行算法的内容。
(参数设置的合适方法)
现在,与根据上述第一实施例的交互式协议一样,根据本实施例的交互式协议保证了针对被动攻击的安全性。然而,在采用并行地重复执行该交互式协议的上述方法的情况中,为了保证针对主动攻击的安全性得到绝对保证,必须满足如下所述的条件。
上述交互式协议是证明者利用一对密钥(公钥y、私钥s)向验证者证明“对于y,该证明者知道满足y=F(s)的s”的方案。因此,如果通过验证而被接受的交互被执行,则不能否认这样的可能性,即“证明者在交互时使用了该s”的信息将被验证者所知。此外,对于上面的F,抗冲突能力得不到保证。因此,对于在无条件的情形下并行地重复执行上述交互式协议的情况,难以证明针对主动攻击的安全性将得到绝对保证。
因此,本申请的发明人已调研出了一种方法,该方法即使在通过验证而被接受的交互被执行时也可防止“证明者在交互时使用了该s”的信息被验证者所知。于是,本申请的发明人已想出了即使在并行地重复执行上述交互式协议的情况中也能够保证针对主动攻击的安全性的方法。该方法用于将用作公钥的n个变量的多次多项式f1,…,fm的数目m设置为充分小于变量的数目n的值。例如,m和n被设置为使得2m-n<<1(例如,当n=160并且m=80时,2-80<<1)。
在采取求解多次多元方程式的难度作为安全性基础的上述方案中,即使私钥s1和与该私钥相对应的公钥pk被给出,也难以生成与该公钥pk相对应的另一私钥s2。因此,如果保证了对于公钥pk存在两个以上的私钥s,则即使当通过验证而被接受的交换被执行时,也可以防止“证明者在交互时使用了该s”的信息被验证者所知。即,如果该保证成立,则即使在并行地重复执行交互式协议的情况中,针对主动攻击的安全性也可以得到保证。
参考图28,考虑由n个变量的m个多次多项式形成的函数F:Kn→Km(其中,n>m),不具有第二前像的定义域中的元素数目最大仅为|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:非交互式算法]
在前面,已描述了5次传递公钥认证方案。然而,在根据本方案中,从验证者发送给证明者的信息实际上仅仅是随机数,因此可以修改为1次传递公钥认证方案(下面称为非交互式方案)。另外,根据非交互式方案的每个算法的内容在图16中示出。下面,将参考图16描述根据非交互式方案的每个算法的内容。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图16描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P针对i=1至N执行下面的处理(1)至处理(5)。(处理1)证明者算法P任意地选择一个数wi。(处理2)证明者算法P通过将该数wi应用于伪随机数生成器G来生成向量ri∈Kn和多项式的集合F’i(x)。即,证明者算法P计算(ri,F’i)←G(wi)。(处理3)证明者算法P计算zi←s-ri。该计算对应于通过向量ri来掩蔽私钥s的操作。
步骤1(续):
(处理4)证明者算法P生成Fi(zi)和zi的哈希值c1,i。即,证明者算法P计算c1,i←H1(Fi(zi),zi)。(处理5)证明者算法P生成数wi的哈希值c2,i。即,证明者算法P计算c2,i←H2(wi)。
步骤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(x)←αiF(x+ri)+F’i(x)。该计算对应于通过多项式的集合F’i(x)来掩蔽针对x的多项式的集合F(x+ri)的操作。(处理2)证明者算法P针对i=1至N,通过将随机数RA和RB、哈希值(c1,1和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=zi。当上述(处理1)或(处理2)的决定和处理已被执行之后,RA,RB,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’i,F″′i)←G(σi)。然后,验证者算法V验证等式c2,i=H2i)是否成立。此外,验证者算法V验证等式F”i(x)=αiF(x+r’i)+F″′i(x)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认 证失败的值0。
如果di=1,则验证者算法V计算z’i←σi。然后,验证者算法V验证等式c1,i=H1(F″′i(z’i)-αiy,z’i)是否成立。验证者算法V在该验证成功的情况中输出指示认证成功的值1,并且在在该验证出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了根据非交互式方案的每个算法的内容。另外,如果理想的哈希函数HA和HB被假定,则哈希值αi和di将随机地表现,因此,方便于证明者的哈希值αi和di将不会出现。因此,即使在如上所述的修改被执行时,也将确保足够的安全性。另外,这样的修改同样可以应用于扩展方案等。
[3-5:修改为数字签名方案]
这里,将描述将本方案修改为数字签名方案的方法。另外,出于简化考虑,这里将描述将上述非交互式方案修改为数字签名方案的方法。可以明白,当上述非交互式方案的证明者和验证者对应于数字签名方案的签名者和验证者时,对于数字签名方案的模型来说存在的类似性在于只有证明者可以取信验证者。考虑到该概念,将详细描述基于非交互式方案的数字签名方案的算法结构。
(密钥生成算法Gen)
该密钥生成算法Gen生成在环K上定义的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个多次多项式(f1(x),…,fm(x))将被表达为F(x)。
(签名生成算法Sig)
该签名生成算法Sig针对i=1至N来执行下面的(处理1)至(处理11)。另外,假设签名密钥sk=s和文档M被输入签名生成算法Sig中。
(处理1)签名生成算法Sig任意地选择一个数wi。(处理2)签名 生成算法Sig通过将该数wi应用于伪随机数生成器G来生成向量ri∈Kn和n个变量的多项式的集合F’i(x)=(f1,1’(x),…,fm,i’(x))。即,签名生成算法Sig计算(ri,F’i)←G(wi)。(处理2)签名生成算法Sig计算zi←si-ri。该计算对应于通过向量ri来掩蔽私钥s的操作。
(处理3)签名生成算法Sig生成F”i(zi)和zi的哈希值c1,i。即,签名生成算法Sig计算c1,i←H1(F”i(zi),zi)。(处理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(x)=αiF(x+r’i)+F’i(x)。(处理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←zi
(处理11)在针对i=1至N执行了上面的(处理9)或(处理10)的决定和处理之后,签名生成算法Sig输出数字签名σ=(RA,RB,c1,1,…,c2,N,α1,…,αN,F”1,…,F”N,σ1,…,σN)。
(签名验证算法Ver)
如果对于i=1至N下面的验证都通过了,则签名验证算法Ver接受该数字签名σ,并且如果即使一个验证未通过,则签名验证算法Ver也否决该数字签名σ。另外,假设数字签名σ和文档M被输入签名验证算法Ver中。首先,该签名验证算法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’i,F”i)←G(σi)。然后,签名验证算法Ver验证等式c2,i=H2i)是否成立。此外,签名验证算 法Ver验证等式F”i(x)=αiF(x+r’i)+F’i(x1,…,xn)是否成立。签名验证算法Ver在所有验证都已成功的情况中输出指示接受该数字签名σ的值1,并且在在验证中出现了失败的情况中输出指示否决该数字签名σ的值0。
(验证2)如果di=1,则签名验证算法Ver计算(z’i,F″′i)←σi。然后,签名验证算法Ver验证等式c1,i=H1(F″′i(z’i),z’i)是否成立。签名验证算法Ver在该验证成功的情况中输出指示接受该数字签名σ的值1,并且在在验证中出现了失败的情况中输出指示否决该数字签名σ的值0。
在前面,已描述了基于本方案的数字签名方案的每个算法结构。基于上述扩展方案的数字签名方案可以同样地被构成。
[3-6:具体示例]
接下来,将参考图17描述在执行本方案时可假定的具体算法结构。图17是用于描述本方案的具体示例的说明图。
(密钥生成算法Gen)
该密钥生成算法Gen生成在环K上定义的n个变量的m个二次多项式f1(x1,…,xn),…,fm(x1,…,xn)以及向量s=(s1,…,sn)∈Kn。接下来,该密钥生成算法Gen计算y=(y1,…,ym)←(f1(s),…,fm(s))。然后,该密钥生成算法Gen设置(f1,…,fm,y)作为公钥pk,并且设置s作为私钥。另外,在下面,n个变量的向量(x1,…,xn)将被表达为x,并且n个变量的m个二次多项式(f1(x),…,fm(x))将被表达为F(x)。
(证明者算法P、验证者算法V)
接下来,将参考图17描述在交互式协议中通过证明者算法P和验证者算法V进行的处理。该交互式协议用于使得验证者证明“证明者知道满足y=F(s)的s”,而根本不会将关于s的信息泄露给验证者。另外,假设通过密钥生成算法Gen生成的公钥pk在证明者与验证者之间被共享。此外,假设通过密钥生成算法Gen生成的私钥sk由证明者秘密地管理。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G来生成向量r∈Kn和n个变量的多项式 的集合F’(x)=(f’1(x),…,f’m(x))。即,证明者算法P计算(r,F’)←G(w)。接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。另外,多项式被表示为如下的公式(20)。
f &prime; i ( x ) = &Sigma; j b &prime; i , j x j + c &prime; i . . . ( 20 )
步骤1(续):
接下来,证明者算法P生成F’(z)和z的哈希值c1。即,证明者算法P计算c1←H1(F’(z),z)。此外,证明者算法P生成数w的哈希值c2。即,证明者算法P计算c2←H2(w)。另外,所描述的H1(…)和H2(…)是哈希函数。此外,哈希值(c1,c2)是消息。
在步骤1中生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择一个随机数α。然后,验证者算法V将所选随机数α发送给证明者。
步骤3:
证明者算法P计算F”(x)←αF(x+r)+F’(x)。该计算对应于通过多项式的集合F’(x)来掩蔽针对x的多项式的集合F(x+r)的操作。
在步骤3中生成的多项式F”被发送给验证者。
步骤4:
验证者算法V从两种验证模式中选择将要使用的验证模式。然后,验证者算法V向证明者发送指示所选验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d来生成将被发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。此外,如果d=1,则证明者算法P生成信息σ=z。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤6:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,F″′)←G(σ)。此外,验证者算法V验证等式c2=H2(σ)是否成立。此外,验证者算法V验证等式F”(x)= αF(x+r’)+F″′(x)是否成立。验证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算z’←σ。此外,验证者算法V验证等式c1=H1(F”(z’)-αy,z’)是否成立。验证者算法V在该验证成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
前面,已描述了在执行本方案时可假定的具体算法结构。
[3-7:高效算法]
这里,与上述第一实施例一样,将考虑高效算法。例如,将考虑这样的方法:通过利用两个向量t∈Kn和e∈Km来将用于掩蔽针对x的多项式的集合F(x+r)的多项式集合F’(x)表示为F’(x)=Fb(x,t)+e。当使用该方法时,针对x的多项式的集合F(x+r)被表示为如下的公式(21)。
[表达式15]
αF(x+r)+F′(x)
=αF(x)+αF(r)+αFb(x,r)-αc+Fb(x,t)+e
…(21)
=αF(x)+Fb(x,αr+t)+α(F(r)-c)+e
因此,当t’=αr+t并且e’=α(F(r)-c)+e时,掩蔽之后的与x有关的多项式的集合F”(x)也可以通过两个向量t’∈Kn和e∈Km来表示。出于这些原因,当F’被设置为F’(x)=Fb(x,t)+e时,F’和F”将由Kn上的向量以及Km上的向量来表示,并且需要传输的数据的大小可以大幅减小。
此外,通过上面的修改,与r有关的信息未从F”(或F’)被泄露。例如,即使e’和t’(或者e和t)被给出,只要e和t(或者e’和t’)不被知道,就无法知道与r有关的任何信息。因此,以上述方式进行了修改的本方案是保证了零知识的公钥认证方案。下面,将参考图18至25更详细地描述以上述方式被修改的根据本方案的高效算法。另外,密钥生成算法Gen的结构与上面所述的本方案的基本相同,因此将省略其详细说明。
步骤1:
首先,证明者算法P任意地选择一个数w。然后,证明者算法P通过将该数w应用于伪随机数生成器G来生成向量r∈Kn,t∈Kn和e∈Km。即,证明者算法P计算(r,t,e)←G(w)。接下来,证明者算法P计算z←s-r。该计算对应于通过向量r来掩蔽私钥s的操作。
步骤1(续):
接下来,证明者算法P生成Fb(z,t)+e和z的哈希值c1。即,证明者算法P计算c1←H1(Fb(z,t)+e,z)。此外,证明者算法P生成数w的哈希值c2。即,证明者算法P计算c2←H2(w)。另外,所描述的H1(…)和H2(…)是哈希函数。此外,哈希值(c1,c2)是消息。
在步骤1中生成的消息(c1,c2)被发送给验证者。
步骤2:
验证者算法V从环K的q类元素中选择一个随机数α。然后,验证者算法V将所选随机数α发送给证明者。
步骤3:
证明者算法P计算t’←αr+t。此外,证明者算法P计算e’←α(F(r)-c)+e。然后,证明者算法P将t’和e’发送给验证者。
步骤4:
验证者算法V从两种验证模式中选择将要使用的验证模式。然后,验证者算法V向证明者发送指示所选验证模式的要求d∈{0,1}。
步骤5:
证明者算法P响应于从验证者接收的要求d来生成将被发送回验证者的信息σ。如果d=0,则证明者算法P生成信息σ=w。此外,如果d=1,则证明者算法P生成信息σ=z。以这种方式生成的信息σ通过证明者算法P被发送给验证者。
步骤6:
验证者算法V利用从证明者接收的信息σ来执行下面的验证处理。
如果d=0,则验证者算法V计算(r’,t”,e”)←G(σ)。然后,验证者算法V验证等式c2=H2(σ)是否成立。此外,验证者算法V验证等式t’=αr’+t”是否成立。此外,验证者算法V验证等式e’=α(F(r’)-c)+e”是否成立。验 证者算法V在所有验证都已成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
如果d=1,则验证者算法V计算z’←σ。然后,验证者算法V验证等式c1=H1(αF(z’)-y+Fb(z’,t’)+e’,z’)是否成立。验证者算法V在该验证成功的情况中输出指示认证成功的值1,并且在在验证中出现了失败的情况中输出指示认证失败的值0。
在前面,已描述了本方案的高效算法的结构。通过利用该高效算法,需要用于传输的数据的大小可被大幅减小。此外,由于将x+r代入多项式F并且关于x来重组多项式F的计算(F(x+r)的计算)在该交互式协议中成为不必要的,因此计算效率提高。
(高效算法的修改)
现在,图18所示的本方案的高效算法可在维持计算效率的同时被修改为如图19至25所示的算法。
(修改A:图19所示的算法)
例如,计算e’←α(F(r)-c)+e在图18所示的高效算法的步骤3中被执行,然而该计算可被修改为如图19所示的计算e’←αF(r)+e。然而,在执行这样的修改的情况中,将在步骤6中由验证者执行的验证的内容的一部分必须被修改。具体地,在d=0的情况中将由验证者在步骤6执行的验证的内容中,对e’=α(F(r’)-c)+e”的验证必须由对e’=αF(r’)+e”的验证来取代。此外,在d=2的情况中将由验证者在步骤6执行的验证的内容中,对c1=H1(α(F(z’)-y)+Fb(z’,t”’)+e”’,z’)的验证必须由对c1=H1(α(F(z’)-c-y)+Fb(z’,t”’)+e”’,z’)的验证来取代。
(修改B:图20所示的算法)
此外,在图19所示的算法的步骤5中,在d=0的情况中σ被设置为w,然而在d=0的情况中被设置的该σ可以为任何信息,只要该信息是当与(t’,e”)一起使用时可从其恢复(r,t,e)的信息即可。例如,如图20所示,在d=0的情况中将在步骤5被设置的σ的内容可以为r。然而,在执行这样的修改的情况中,图19所示的算法的步骤1中的计算c2←H2(w)必须被修改为c2←H2(r,t,e)。此外,在d=0的情况中将由验证者在步骤6执行的 验证的内容中必须由对c2=H2(r,t’-αr,e’-αF(r))的验证取代。
(修改C:图21所示的算法)
例如,计算t’←αr+t在图20所示的算法的步骤3中被执行,然而该计算可被修改为如图21所示的计算t’←α(r+t)。然而,在执行这样的修改的情况中,在d=0的情况下在图20所示的算法的步骤6中由验证者执行的验证的内容必须由对c2=H2(r,α-1t’-r,e’-αF(r))的验证来取代。
(修改D:图22所示的算法)
例如,计算e’←αF(r)+e在图20所示的算法的步骤3中被执行,然而该计算可被修改为如图22所示的计算e’←α(F(r)+e)。然而,在执行这样的修改的情况中,在d=0的情况下在图20所示的算法的步骤6中由验证者执行的验证的内容必须由对c2=H2(r,t’-αr,e’-α-1e’-F(r))的验证来取代。
(修改E:图23所示的算法)
此外,在图20所示的算法的步骤5中,在d=0的情况中σ被设置为r,然而在d=0的情况中被设置的该σ可以为任何信息,只要该信息是当与(t’,e”)一起使用时可从其恢复(r,t,e)的信息即可。例如,如图23所示,在d=0的情况中将在步骤5被设置的σ的内容可以为t。然而,在执行这样的修改的情况中,必须从步骤2的α∈RK\{0}中来选择α,并且此外,在d=0的情况中将由验证者在步骤6执行的验证的内容必须由对c2=H2-1(t’-t),t,e’-αF(α-1(t’-t)))的验证来取代。
(修改F:图24所示的算法)
例如,计算t’←αr+t在图23所示的算法的步骤3中被执行,然而该计算可被修改为如图24所示的计算t’←α(r+t)。然而,在执行这样的修改的情况中,在d=0的情况下在图23所示的算法的步骤6中由验证者执行的验证的内容必须由对c2=H2-1t’-t,t,e’-αF(α- 1t’-t))的验证来取代。
(修改G:图25所示的算法)
例如,计算e’←αF(r)+e在图23所示的算法的步骤3中被执行,然而该计算可被修改为如图25所示的计算e’←α(F(r)+e)。然而,在执行这样的修改的情况中,在d=0的情况下在图23所示的算法的步骤6中由验证者执行的验证的内容必须由对c2=H2-1(t’-t),t,α-1e’-αF(α-1(t’-t)))的验证来 取代。
如上所述,将在步骤3中由证明者执行的计算e’←α(F(r)-c)+e可被改变为计算e’←αF(r)+e(修改A)。此外,在d=0的情况中将由证明者在步骤5设置的σ的内容可被改变为r,t等(修改B、E)。此外,将在步骤3中由证明者执行的计算t’←αr+t可被改变为计算t’←α(r+t)(修改C、F)。此外,将在步骤3中由证明者执行的计算e’←αF(r)+e可被改变为计算e’←α(F(r)+e)(修改D、G)。根据修改A的修改、根据修改B和E的修改、根据修改C和F的修改以及根据修改D和G的修改可以分离地被应用于图18所示的高效算法,或者多个修改可以组合地被应用于图18所示的高效算法。
在前面,已描述了本发明的第二实施例。另外,多元联立方程式的形式与上述第一实施例的相同。
<4:高效算法的一般化>
现在,根据上述第一和第二实施例的高效算法具有将由以下公式(22)表示的二次多元多项式用作公钥(或系统参数)的结构。然而,上述高效算法可被扩展为具有将在阶q=pk的域上定义的三次或更多次的多次多元多项式(参见下面的公式(23))用作公钥(或系统参数)的结构。
[表达式16]
f l ( x 1 , &CenterDot; &CenterDot; &CenterDot; , x n ) = &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 + c l . . . ( 22 )
f l ( x 1 , &CenterDot; &CenterDot; &CenterDot; , x 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 x j p t + &Sigma; i = 1 n &Sigma; s = 0 k - 1 b l , i , s x i p s + c l . . . ( 23 )
允许在根据上述第一和第二实施例的高效算法中将多元多项式f1用作公钥的条件是下面的公式(24)相对于(x1,…,xn)和(y1,…,yn)是双线性的。在由上面的公式(22)表示的多元多项式的情况中,双线性性可以容易地被确认,如下面的公式(25)所示(加下划线的部分分别针对x1和y1 是线性的)。此外,与由上面公式(23)表示的多元多项式的情况类似地,双线性性可以如下面的公式(26)所示那样被确认。此外,下面的公式(26)的下划线部分示出了阶p的GF(p)域上的双线性性。因此,在将由上面公式(23)表示的多元多项式用作根据上述第二实施例的高效算法的公钥的情况中,挑战在于在该算法的步骤2之后将由验证者发送的α必须局限于GF(p)的元素。
[表达式17]
fl(x1+y1,…,xn+yn)-fl(x1,…,xn)-fl(y1,…,yn)+fl(0,…,0)
…(24)
f l ( x 1 + y 1 , &CenterDot; &CenterDot; &CenterDot; , 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 ) + c l
= &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 ) + c l
= f l ( x 1 , &CenterDot; &CenterDot; &CenterDot; , x n ) + f l ( y 1 , &CenterDot; &CenterDot; &CenterDot; , y n ) + &Sigma; i = 1 n &Sigma; j = 1 n a l , i , j ( x i y j + y i x j ) &OverBar; - f l ( 0 , &CenterDot; &CenterDot; &CenterDot; , 0 ) . . . ( 25 )
f l ( x 1 + y 1 , &CenterDot; &CenterDot; &CenterDot; , 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; i = 1 n &Sigma; s = 0 k - 1 b l , i , s ( x i + y i ) p s + c l
= &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 s + y i p s ) + c l
= &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 s y j p t + y i p s x j p t + y i p s 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 ) + c l
= f l ( x 1 , &CenterDot; &CenterDot; &CenterDot; x n ) + f l ( y 1 , &CenterDot; &CenterDot; &CenterDot; , 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 s x j p t ) &OverBar; - f l ( 0 , &CenterDot; &CenterDot; &CenterDot; , 0 ) . . . ( 26 )
出于这样的原因,可以说,可以通过扩展根据上述第一和第二实施例的高效算法来构成将由上面公式(23)表示的三次或更多次的多元多项式 用作公钥的算法。
这里让我们考虑由上面的公式(22)表示的多元多项式(下面称为二次多项式)与由上面的公式(23)表示的多元多项式(下面称为多次多项式)之间的关系。这里将考虑在阶q=p的域上定义的nk个变量的二次多项式以及在阶q=pk的域上定义的n个变量的多次多项式的考虑。在此情况中,求解由mk个二次多项式形成的联立方程式的难度与求解由m个多次多项式形成的联立方程式的难度是相等的。例如,对于由在阶2的域上定义的80个变量的80个二次多项式形成的联立方程式以及由在阶28的域上定义的10个变量的10个多次多项式形成的联立方程式来说,求解难度是相等的。
即,如果GF(pk)的元素和GF(p)k的元素通过同构性(isomorphism)来标识,则将存在由在阶q=pk的域上定义的n个变量的m个多次多项式的集合表示的函数,其等同于由在阶q=p的域上定义的nk个变量的mk个二次多项式的集合表示的函数。例如,如果GF(28)的元素和GF(2)8的元素通过同构性来标识,则将存在由在阶28的域上定义的10个变量的10个多次多项式的集合表示的函数,其等同于由在阶2的域上定义的80个变量的80个二次多项式的集合表示的函数。因此,可以任意地选择上述二次多项式与上述多次多项式中的哪个将被使用。
这里让我们考虑使用二次多项式的情况中的计算效率以及使用上述的多次多项式的情况中的计算效率。
在使用在阶2的域上定义的nk个变量的二次多项式的情况中,将针对nk个1比特的变量来执行算法中的操作。即,该操作的单位将为1比特。另一方面,在使用在阶2k的域上定义的n个变量的多次多项式的情况中,将针对n个k比特的变量来执行算法中的操作。即,该操作的单位为k比特。该k(k=2,3,4,…)可以任意设置。因此,在实现时,可以通过将k设置为方便的值来提高计算效率。例如,在32比特体系结构上实现算法的情况中,相比于执行基于1比特的操作的配置而言,利用执行基于32比特的操作的配置可以获得更高的计算效率。
通过按照使得多次多项式可被用作公钥的以上方式来扩展根据上述第 一和第二实施例的高效算法,可以使操作单位与实现体系结构相匹配。结果,可以提高计算效率。
<5:示例硬件配置>
上述的每个算法例如可以通过利用图26所示的信息处理装置的硬件配置来执行。即,可以通过利用计算机程序控制图26所示的硬件来实现每个算法的处理。另外,该硬件的模式是任意的,并且可以是个人计算机、诸如移动电话、PHS或PDA之类的移动信息终端、游戏机、接触式或非接触式IC芯片、接触式或非接触式IC卡或者各种类型的信息设备。此外,PHS是是个人手持系统的缩写。此外,PDA是个人数字助理的缩写。
如图26所示,该硬件主要包括CPU 902、ROM 904、RAM 906、主机总线908以及桥接器910。此外,该硬件包括外部总线912、接口914、输入单元916、输出单元918、存储单元920、驱动器922、连接端口924以及通信单元926。此外,CPU是中央处理单元的缩写。而且,ROM是只读存储器的缩写。此外,RAM是随机存取存储器的缩写。
CPU 902例如用作算术处理单元或控制单元,并且基于记录在ROM 904、RAM 906、存储单元920或可移除记录介质928中的各种程序来控制各个构成元件的整体操作或操作的一部分。ROM 904是用于例如存储将被载入到CPU 902上的程序或者在算术运算中使用的数据等的装置。RAM 906例如临时地或永久地存储将被载入到CPU 902上的程序,或者在程序执行时任意改变的各种参数等。
这些构成元件例如通过能够执行高速数据传输的主机总线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是非对称数字订户线的缩写。
<6:总结>
最后,将简要描述根据本发明实施例的技术内容。这里陈述的技术内容可被应用于各种信息处理装置,例如个人计算机、移动电话、便携式游戏机、便携式信息终端、信息设备、汽车导航系统等。
上面的信息处理装置的功能配置可被表述为如下。该信息处理装置包括如下的密钥设置单元、消息发送单元、验证模式接收单元以及响应发送 单元。密钥设置单元用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)(i=1至m)以及yi=fi(s)设置为公钥。针对i=1至m来找出yi=fi(s)的问题正是求解多次多元联立方程式的问题。即,上述信息处理装置用于提供将求解多次多元联立方程式的问题当作安全性的基础的认证机制。
并且,消息发送单元用于将消息c发送给验证者。此外,验证模式接收单元用于接收与验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式有关的信息。此外,响应发送单元用于向验证者发送k种响应信息中的与由验证模式接收单元接收到的验证模式有关的信息所对应的响应信息。此外,响应信息是这样的信息,该信息使得在通过利用k种响应信息执行的针对消息c的所有k个验证模式都成功的情况中能够计算出私钥s。
消息c例如包括三种消息c1,c2和c3。此外,针对c1,c2和c3中的任意两者的验证通过每种验证模式来执行。此外,响应信息是根据每种验证模式执行针对两种消息的验证所需的信息。此外,一个条件是:即使消息c被传递给验证者,与私钥有关的信息也不会被泄露。另一条件是:即使消息c和响应信息两者被提供,与私钥有关的信息也不会被泄露。满足这些条件的消息c的结构和响应信息的结构已经参考图4等进行了具体描述。
(注释)
密钥生成算法Gen是密钥设置单元的一个示例。证明者算法P是消息发送单元、验证模式接收单元、响应发送单元、答复接收单元、多项式生成单元以及多项式发送单元的示例。信息σ是响应信息的示例。验证者算法V是消息接收单元、验证模式选择单元、验证模式发送单元、响应接收单元、验证单元、答复发送单元和多项式接收单元的示例。签名生成算法Sig是消息生成单元、验证模式选择单元以及签名生成单元的示例。
本领域的技术人员应当明白,可以根据设计要求和其它因素进行各种修改、组合、子组合和变更,只要它们在所附权利要求或其等同物的范围之内。
本申请包含与分别于2010年5月31日、2010年10月4日和2011年 2月9日向日本专利局提交的日本优先专利申请2010-125026、JP 2010-224753和JP 2011-026401中公开的主题有关的主题,该申请的全部内容通过引用结合于此。

Claims (46)

1.一种认证设备,包括:
密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)设置为公钥或系统参数,并将yi=fi(s)设置为所述公钥,i=1至m,其中,Kn表示K的n次直积;
消息发送单元,用于将消息c发送给验证者,其中,所述认证设备试图向所述验证者证明合法性;
验证模式接收单元,用于接收由所述验证者从针对一个消息c的多个验证模式中选择的一个验证模式的信息;以及
响应发送单元,用于向所述验证者发送所述多个验证模式的响应信息中的与由所述验证模式接收单元接收到的验证模式的信息相对应的响应信息。
2.根据权利要求1所述的认证设备,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用所述多个验证模式的响应信息执行的针对消息c的所述多个验证模式的全部已成功。
3.根据权利要求2所述的认证设备,
其中,如果在执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述验证模式接收单元针对每个消息c从所述验证者接收验证模式的信息的第二步骤、以及由所述响应发送单元针对每个验证模式的信息发送响应信息的第三步骤时,所述验证者利用所有响应信息都成功地执行了验证,则认证成功。
4.根据权利要求3所述的认证设备,
其中,执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述验证模式接收单元针对每个消息c从所述验证者接收验证模式的信息的第二步骤、以及由所述响应发送单元针对每个验证模式的信息发送响应信息的第三步骤的处理被重复,并且
其中,如果当将所述第一步骤至第三步骤执行了预定次数时,所述验证者利用所有响应信息每次都成功地执行了验证,则所述认证成功。
5.根据权利要求3或4所述的认证设备,
其中,在所述消息c=(c1,…,cm)的情况中,
所述消息发送单元通过利用单向函数H来计算新的消息c’=H(c),并且将所述消息c’发送给所述验证者,并且
所述响应发送单元将所述验证者即使利用所述响应信息也不能恢复出来的所述消息c的元素与所述响应信息一起发送。
6.根据权利要求5所述的认证设备,其中,所述单向函数是哈希函数或承诺函数。
7.根据权利要求1所述的认证设备,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
8.根据权利要求1所述的认证设备,其中,所述多次多项式fi是二次多项式。
9.根据权利要求1所述的认证设备,
其中,所述m和所述n具有m<n的关系。
10.根据权利要求9所述的认证设备,
其中,所述m和所述n具有2m-n<<1的关系。
11.一种认证设备,包括:
消息接收单元,用于从证明者接收消息c;
验证模式选择单元,用于从针对一个消息c的多个验证模式中选择一个验证模式;
验证模式发送单元,用于将由所述验证模式选择单元选择的验证模式的信息发送给所述证明者;
响应接收单元,用于从所述证明者接收所述多个验证模式的响应信息中的与由所述验证模式发送单元发送的验证模式的信息相对应的响应信息;以及
验证单元,用于利用由所述消息接收单元接收的所述消息c和由所述响应接收单元接收的所述响应信息来验证所述证明者的合法性,
其中,s∈Kn被设置为私钥,并且环K上的多次多项式fi(x1,…,xn)被设置为公钥或系统参数,并且yi=fi(s)被设置为所述公钥,i=1至m,其中,Kn表示K的n次直积。
12.根据权利要求11所述的认证设备,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用所述多个验证模式的响应信息执行的针对消息c的所述多个验证模式的全部已成功。
13.根据权利要求11所述的认证设备,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
14.根据权利要求11所述的认证设备,其中,所述多次多项式fi是二次多项式。
15.一种认证设备,包括:
密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)设置为公钥或系统参数,并将yi=fi(s)设置为所述公钥,i=1至m,其中,Kn表示K的n次直积;
消息发送单元,用于将消息c发送给验证者;
答复接收单元,用于从所述验证者接收答复α;
多项式生成单元,用于利用所述答复接收单元接收的所述答复α来生成要用于验证所述消息c的多项式f”;
多项式发送单元,用于将由所述多项式生成单元生成的所述多项式f”发送给所述验证者;
验证模式接收单元,用于接收由所述验证者从针对一个消息c的k个验证模式中选择的一个验证模式的信息,k≥2;
响应发送单元,用于向所述验证者发送k种响应信息中的与由所述验证模式接收单元接收的验证模式的信息相对应的响应信息。
16.根据权利要求15所述的认证设备,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用两种答复α、所述多项式f”以及k种响应信息执行的针对所述消息c的答复与验证模式的总计2k种组合的全部已成功。
17.根据权利要求16所述的认证设备,
其中,如果在执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述答复接收单元接收针对每个消息c的所述答复α的第二步骤、由所述多项式生成单元利用在所述第二步骤中接收的所述答复α来生成多项式f”并且由所述多项式发送单元发送所述多项式f”的第三步骤、由所述验证模式接收单元针对每个消息c从所述验证者接收验证模式的信息的第四步骤、以及由所述响应发送单元针对每个验证模式的信息发送响应信息的第五步骤时,如果所述验证者利用所有响应信息都成功地执行了验证,则认证成功。
18.根据权利要求17所述的认证设备,
其中,执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述答复接收单元接收针对每个消息c的所述答复α的第二步骤、由所述多项式生成单元利用在所述第二步中接收的所述答复α来生成多项式f”并且由所述多项式发送单元发送所述多项式f”的第三步骤、由所述验证模式接收单元针对每个消息c从所述验证者接收验证模式的信息的第四步骤、以及由所述响应发送单元针对每个验证模式的信息发送响应信息的第五步骤的处理被重复,并且
其中,如果当将所述第一步骤至第五步骤执行了预定次数时,所述验证者利用所有响应信息每次都成功地执行了验证,则所述认证成功。
19.根据权利要求15所述的认证设备,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
20.根据权利要求15所述的认证设备,其中,所述多次多项式fi是二次多项式。
21.一种认证设备,包括:
消息接收单元,用于从证明者接收消息c;
答复发送单元,用于向所述证明者发送答复α;
多项式接收单元,用于接收多项式f”,所述多项式f”是由所述证明者利用由所述答复发送单元发送的所述答复α生成的并被用于验证所述消息c;
验证模式选择单元,用于从针对一个消息c的k个验证模式中选择一个验证模式,k≥2;
验证模式发送单元,用于将由所述验证模式选择单元选择的验证模式的信息发送给所述证明者;
响应接收单元,用于从所述证明者接收k种响应信息中的与由所述验证模式发送单元发送的验证模式的信息相对应的响应信息;以及
验证单元,用于利用由所述消息接收单元接收的所述消息c、由所述多项式接收单元接收的所述多项式f”以及由所述响应接收单元接收的所述响应信息,验证所述证明者的合法性,
其中,s∈Kn被设置为私钥,并且环K上的多次多项式fi(x1,…,xn)被设置为公钥或系统参数,并且yi=fi(s)被设置为所述公钥,i=1至m,其中,Kn表示K的n次直积。
22.根据权利要求21所述的认证设备,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用两种答复α、所述多项式f”以及k种响应信息执行的针对所述消息c的答复与验证模式的总计2k种组合的全部已成功。
23.根据权利要求21所述的认证设备,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
24.根据权利要求21所述的认证设备,其中,所述多次多项式fi是二次多项式。
25.一种认证方法,包括以下步骤:
将s∈Kn设置为私钥,并且将环K上的多次多项式fi(x1,…,xn)设置为公钥或系统参数,并将yi=fi(s)设置为所述公钥,i=1至m,其中,Kn表示K的n次直积;
将消息c发送给验证者;
接收由所述验证者从针对一个消息c的多个验证模式中选择的一个验证模式的信息;
向所述验证者发送所述多个验证模式的响应信息中的与在接收步骤中接收到的验证模式的信息相对应的响应信息。
26.根据权利要求25所述的认证方法,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用所述多个验证模式的响应信息执行的针对消息c的所述多个验证模式的全部已成功。
27.根据权利要求25所述的认证方法,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
28.根据权利要求25所述的认证方法,其中,所述多次多项式fi是二次多项式。
29.一种认证方法,包括以下步骤:
从证明者接收消息c;
从针对一个消息c的多个验证模式中选择一个验证模式;
将在选择步骤中所选择的验证模式的信息发送给所述证明者;
从所述证明者接收所述多个验证模式的响应信息中的与在发送步骤中发送的验证模式的信息相对应的响应信息;以及
利用在接收消息c的步骤中所接收的所述消息c以及在接收响应信息的步骤中所接收的所述响应信息来验证所述证明者的合法性,
其中,s∈Kn被设置为私钥,并且环K上的多次多项式fi(x1,…,xn)被设置为公钥或系统参数,并且yi=fi(s)被设置为所述公钥,i=1至m,其中,Kn表示K的n次直积。
30.根据权利要求29所述的认证方法,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用所述多个验证模式的响应信息执行的针对消息c的所述多个验证模式的全部已成功。
31.根据权利要求29所述的认证方法,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
32.根据权利要求29所述的认证方法,其中,所述多次多项式fi是二次多项式。
33.一种认证方法,包括以下步骤:
将s∈Kn设置为私钥,并且将环K上的多次多项式fi(x1,…,xn)设置为公钥或系统参数,并且将yi=fi(s)设置为所述公钥,i=1至m,其中,Kn表示K的n次直积;
将消息c发送给验证者;
从所述验证者接收答复α;
利用在接收答复α的步骤中所接收的所述答复α来生成要用于验证所述消息c的多项式f”;
将在生成步骤中生成的所述多项式f”发送给所述验证者;
接收由所述验证者从针对一个消息c的k个验证模式中选择的一个验证模式的信息,k≥2;
向所述验证者发送k种响应信息中的与在接收验证模式的信息的步骤中接收的验证模式的信息相对应的响应信息。
34.根据权利要求33所述的认证方法,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用两种答复α、所述多项式f”以及k种响应信息执行的针对所述消息c的答复与验证模式的总计2k种组合的全部或已成功。
35.根据权利要求33所述的认证方法,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
36.根据权利要求33所述的认证方法,其中,所述多次多项式fi是二次多项式。
37.一种认证方法,包括以下步骤:
从证明者接收消息c;
向所述证明者发送答复α;
接收多项式f”,所述多项式f”是由所述证明者利用在发送答复α的步骤中所发送的所述答复α生成的并被用于验证所述消息c;
从针对一个消息c的k个验证模式中选择一个验证模式,k≥2;
将在选择验证模式的步骤中选择的验证模式的信息发送给所述证明者;
从所述证明者接收k种响应信息中的与在发送验证模式的信息的步骤中所发送的验证模式的信息相对应的响应信息;以及
利用在接收消息c的步骤中所接收的所述消息c、在接收多项式f”的步骤中所接收的所述多项式f”以及在接收响应信息的步骤中所接收的所述响应信息来验证所述证明者的合法性,
其中,s∈Kn被设置为私钥,并且环K上的多次多项式fi(x1,…,xn)被设置为公钥或系统参数,并且yi=fi(s)被设置为所述公钥,i=1至m,其中,Kn表示K的n次直积。
38.根据权利要求37所述的认证方法,其中,所述响应信息是使得在如下情况中能够计算出所述私钥s的信息:通过利用两种答复α、所述多项式f”以及k种响应信息执行的针对所述消息c的答复与验证模式的总计2k种组合的全部已成功。
39.根据权利要求37所述的认证方法,其中,所述响应信息是使用基于所述私钥s和向量r∈Kn算出的z∈Kn、基于所述向量r和t∈Kn算出的t’∈Kn和基于将所述向量r代入所述多次多项式fi的fi(r)和ei∈K算出的ei’∈K而计算出的。
40.根据权利要求37所述的认证方法,其中,所述多次多项式fi是二次多项式。
41.一种签名生成设备,包括:
密钥设置单元,用于将s∈Kn设置为私钥并且将环K上的多次多项式fi(x1,…,xn)设置为公钥或系统参数,并将yi=fi(s)设置为所述公钥,i=1至m,其中,Kn表示K的n次直积;
消息生成单元,用于基于所述多次多项式fi(x1,…,xn)以及所述私钥s来生成N个消息c;
验证模式选择单元,用于基于通过将文档M和所述消息c应用于单向函数而获得的信息,来从kN个验证模式中选择验证模式,k≥3;
签名生成单元,用于根据由所述验证模式选择单元所选择的验证模式,来生成数字签名σ,所述数字签名σ将通过使用所述消息c和所述文档M的验证。
42.根据权利要求41所示的签名生成设备,其中,所述数字签名σ是使得在如下情况中能够计算出所述私钥s的信息:利用与(k-1)N+1个验证模式相对应的数字签名σ执行的验证都已成功。
43.根据权利要求41所述的签名生成设备,其中,所述多次多项式fi是二次多项式。
44.一种签名验证设备,包括:
文档接收单元,用于接收文档M;
数字签名接收单元,用于接收数字签名σ;
消息获取单元,用于从所述数字签名σ获取N个消息c;以及
数字签名验证单元,用于使用所述消息c和所述文档M,根据基于通过将所述文档M和所述消息c应用于单向函数而获得的信息从kN个验证模式中所选择的验证模式,对所述数字签名σ进行验证,k≥3,
其中,s∈Kn被设置为私钥,并且环K上的多次多项式fi(x1,…,xn)被设置为公钥或系统参数,并且yi=fi(s)被设置为所述公钥,i=1至m,其中,Kn表示K的n次直积。
45.根据权利要求44所述的签名验证设备,其中,所述数字签名σ是使得在如下情况中能够计算出所述私钥s的信息:利用与(k-1)N+1个验证模式相对应的数字签名σ执行的验证都已成功。
46.根据权利要求44所述的签名验证设备,其中,所述多次多项式fi是二次多项式。
CN201110145023.8A 2010-05-31 2011-05-24 认证设备、认证方法和签名生成设备 Active CN102263638B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2010125026 2010-05-31
JP2010-125026 2010-05-31
JP2010224753 2010-10-04
JP2010-224753 2010-10-04
JP2011-026401 2011-02-09
JP2011026401A JP5736816B2 (ja) 2010-05-31 2011-02-09 認証装置、認証方法、プログラム、及び署名生成装置

Publications (2)

Publication Number Publication Date
CN102263638A CN102263638A (zh) 2011-11-30
CN102263638B true CN102263638B (zh) 2016-08-10

Family

ID=45010112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110145023.8A Active CN102263638B (zh) 2010-05-31 2011-05-24 认证设备、认证方法和签名生成设备

Country Status (3)

Country Link
US (2) US8522033B2 (zh)
JP (1) JP5736816B2 (zh)
CN (1) CN102263638B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790288B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、及び情報処理方法
JP2014048414A (ja) * 2012-08-30 2014-03-17 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2014050064A (ja) * 2012-09-04 2014-03-17 Sony Corp 情報処理装置、情報処理システム、情報処理方法、プログラム及びクライアント端末
JP2014090372A (ja) 2012-10-31 2014-05-15 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
EP2930880A4 (en) * 2012-12-05 2016-08-03 Sony Corp INFORMATION PROCESSOR, VERIFICATION PROCESSOR, INFORMATION PROCESSING METHOD, VERIFICATION PROCESSING METHOD, AND PROGRAM
CN103888256B (zh) * 2012-12-24 2018-01-05 国民技术股份有限公司 一种密码钥匙的认证方法及系统
JPWO2015019821A1 (ja) 2013-08-05 2017-03-02 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP2015033038A (ja) 2013-08-05 2015-02-16 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
CN104348624B (zh) * 2013-08-09 2018-02-02 阿里巴巴集团控股有限公司 一种哈希认证可信度的方法和装置
CN103780383B (zh) 2014-01-13 2017-05-31 华南理工大学 一种基于超球面的多变量公钥签名/验证系统及方法
JP2015194947A (ja) 2014-03-31 2015-11-05 ソニー株式会社 情報処理装置及びコンピュータプログラム
CN105100034B (zh) * 2014-05-23 2018-09-11 阿里巴巴集团控股有限公司 一种网络应用中访问功能的方法和设备
CN105701392B (zh) * 2015-12-31 2020-10-27 联想(北京)有限公司 信息处理方法及电子设备
CN105515754B (zh) * 2016-01-06 2018-10-30 飞天诚信科技股份有限公司 一种rsa-crt签名方法及装置
WO2018076377A1 (zh) * 2016-10-31 2018-05-03 华为技术有限公司 一种数据传输方法、终端、节点设备以及系统
JP6629466B2 (ja) * 2017-01-20 2020-01-15 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP7101031B2 (ja) * 2018-04-13 2022-07-14 株式会社bitFlyer Blockchain ブロックチェーン・ネットワーク及びそのための確定方法
CZ308885B6 (cs) * 2019-09-26 2021-08-04 Univerzita Tomáše Bati ve Zlíně Systém ověření identity a licencí pro práci s vysoce citlivými daty
KR102364047B1 (ko) * 2019-11-19 2022-02-16 기초과학연구원 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101277186A (zh) * 2007-03-30 2008-10-01 北京握奇数据系统有限公司 利用非对称密钥算法实现外部认证的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3484069B2 (ja) * 1998-02-27 2004-01-06 日本電信電話株式会社 秘密情報認証方法及び合同多項式認証方法並びに当該認証プログラムを記録した記録媒体
EP1451967A1 (en) * 2001-12-07 2004-09-01 NTRU Cryptosystems, Inc. Digital signature and authentication method and apparatus
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101277186A (zh) * 2007-03-30 2008-10-01 北京握奇数据系统有限公司 利用非对称密钥算法实现外部认证的方法

Also Published As

Publication number Publication date
US8522033B2 (en) 2013-08-27
JP2012098690A (ja) 2012-05-24
US20110296188A1 (en) 2011-12-01
US20130297930A1 (en) 2013-11-07
CN102263638A (zh) 2011-11-30
US8959355B2 (en) 2015-02-17
JP5736816B2 (ja) 2015-06-17

Similar Documents

Publication Publication Date Title
CN102263638B (zh) 认证设备、认证方法和签名生成设备
Menezes et al. Handbook of applied cryptography
CN103414569B (zh) 一种建立抗攻击的公钥密码的方法
CN102263639B (zh) 认证装置、认证方法和签名生成装置
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN102957538A (zh) 信息处理设备和信息处理方法
US9276735B2 (en) Information processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
CN103718501B (zh) 信息处理设备和信息处理方法
KR101986392B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기록 매체
CN103155480A (zh) 认证装置、认证方法和程序
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
CN111245615B (zh) 一种基于身份的数字签名密码逆向防火墙方法
US20140189361A1 (en) Nformation processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
US9184914B2 (en) Information processing apparatus and information processing method
Xin et al. Identity-based quantum signature based on Bell states
US20140208110A1 (en) Information processing apparatus, signature generation apparatus, signature verification apparatus, information processing method, signature generation method, and signature verification method
Wang Signer‐admissible strong designated verifier signature from bilinear pairings
CN103718228B (zh) 信息处理设备和信息处理方法
Datta Zero knowledge one time digital signature scheme
Iraklis et al. Secure and collusion-resistant data aggregation from convertible tags
Leontiadis et al. Collusion Resistant Aggregation from Convertible Tags
Zou et al. Designated verifier signature scheme based on braid groups
McCurley et al. Advances in Cryptology 1981-1997: Electronic Proceedings and Index of the CRYPTO and EUROCRYPT Conference, 1981-1997
Kunang Reviewer Invitation for EQRC: A Secure QR Code-based E-coupon Framework Supporting Online and Offline Transactions

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