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

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

Info

Publication number
CN103718502B
CN103718502B CN201280038070.5A CN201280038070A CN103718502B CN 103718502 B CN103718502 B CN 103718502B CN 201280038070 A CN201280038070 A CN 201280038070A CN 103718502 B CN103718502 B CN 103718502B
Authority
CN
China
Prior art keywords
information
message
algorithm
verification
person
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
CN201280038070.5A
Other languages
English (en)
Other versions
CN103718502A (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 CN103718502A publication Critical patent/CN103718502A/zh
Application granted granted Critical
Publication of CN103718502B publication Critical patent/CN103718502B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/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
    • 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/3271Cryptographic 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 challenge-response

Landscapes

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

Abstract

[问题]为了实现高效、高度安全的公钥验证方案。[解决方案]提供一种信息处理设备,该信息处理设备:基于多元多项式的数组(F=(f1,...,fm))和向量s产生消息;把所述消息提供给知道多元多项式的数组(F)和向量y(y=(f1(s),...,fm(s)))的核查者;以及向所述核查者提供与核查者从k种核查模式之中选择的核查模式对应的响应信息。多元多项式的数组(F)包括在具有特征q和阶次qk的环(R)上定义的多项式(f1,...,fm)。此外,针对向量x1(x1=(xl1,...,xln))定义为G(x1,x2)=F(x1+x2)‑F(x1)‑F(x2)的多项式G(x1,x2)包括与(xli)q(z)成比例的项,其中1≤i≤n,q(z)=qz,并且1≤z≤k。

Description

信息处理设备和信息处理方法
技术领域
本技术涉及一种信息处理设备、信息处理方法、程序和记录介质。
背景技术
随着信息处理技术和通信技术的迅速发展,文档已被迅速数字化而不管文档是公共的还是私人的。随着这种文档的数字化,许多个人和公司对电子文档的安全管理具有很大的兴趣。响应于这种兴趣的增加,已在各种领域中积极研究针对篡改行为(诸如,电子文档的窃取或伪造)的对策。关于电子文档的窃取,例如通过加密电子文档来确保安全性。另外,关于电子文档的伪造,例如通过使用数字签名来确保安全性。然而,当将要使用的加密或数字签名不具有较高的篡改抵抗能力时,无法确保足够的安全性。
数字签名被用于指定电子文档的作者。因此,数字签名应该能够仅由电子文档的作者产生。如果恶意第三方能够产生相同的数字签名,则这种第三方能够冒充电子文档的作者。也就是说,由恶意第三方伪造电子文档。关于用于防止这种伪造的数字签名的安全性,各种意见已表达。作为当前广泛使用的数字签名方案,已知例如RSA签名方案和DSA签名方案。
RSA签名方案采用“大的合数的素因式分解的难度(以下,素因式分解问题)”作为安全的基础。此外,DSA签名方案采用“解决离散对数问题的难度”作为安全的基础。这些基础基于:通过使用经典计算机高效地解决素因式分解问题和离散对数问题的算法不存在。也就是说,上述难度暗示了经典计算机的计算难度。然而,据称:当使用量子计算机时,能够高效地计算素因式分解问题和离散对数问题的解决方案。
类似于RSA签名方案和DSA签名方案,当前使用的许多数字签名方案和公钥验证方案也采用素因式分解问题或离散对数问题的难度作为安全的基础。因此,如果量子计算机被投入实际使用,则将会无法确保这种数字签名方案和公钥验证方案的安全性。因此,希望实现采用与能够由量子计算机容易地解决的问题(诸如,素因式分解问题和离散对数问题)不同的问题作为安全的基础的新的数字签名方案和公钥验证方案。作为无法由量子计算机容易地解决的问题,例如,存在与多元多项式相关的问题。
例如,作为采用多元多项式问题作为安全的基础的数字签名方案,已知基于Matsumoto-Imai(MI)密码术、隐藏域方程(HFE)密码术、Oil-Vinegar(OV)签名方案和训练变换方法(TTM)密码术的数字签名方案。例如,在下面的非专利文献1和2中公开了基于HFE的数字签名方案。
引用列表
非专利文献
非专利文献1:Jacques Patarin,Asymmetric Cryptography with a HiddenMonomial,CRYPTO 1996,pp.45-60
非专利文献2:Patarin,J.,Courtois,N.,and Goubin,L.,QUARTZ,128-Bit LongDigital Signatures,In Naccache,D.,Ed.Topics in Cryptology-CT-RSA2001(SanFrancisco,CA,USA,April2001),vol.2020 of Lecture Notes in Computer Science,Springer-Verlag.,pp.282-297
发明内容
技术问题
如上所述,多元多项式问题是即使当使用量子计算机时也难以解决的问题(称为NP-hard问题)的例子。通常,使用由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′。另一方面,不知道陷门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,因此,难以确保足够的安全性。
考虑到上述情况而提出本技术,并且本技术旨在提供这样一种新的改进的信息处理设备、新的改进的信息处理方法、新的改进的程序和新的改进的记录介质:能够使用其高效求解方式(陷门)未知的多阶多元联立方程实现高效并且具有高安全性的公钥验证方案和数字签名方案。
问题的解决方案
根据本技术的实施例,提供一种信息处理设备,包括:消息产生单元,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;消息提供单元,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;中间信息产生单元,基于由核查者随机选择的第一信息和在产生消息时获 得的第二信息产生第三信息;中间信息提供单元,把第三信息提供给核查者;以及响应提供单元,向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种信息处理设备,包括:信息存储单元,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));消息获取单元,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;信息提供单元,向提供消息的证明者提供随机选择的第一信息;中间信息获取单元,获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;模式信息提供单元,向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及核查单元,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种信息处理方法,包括下述步骤:基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;把第三信息提供给核查者;以及向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种信息处理方法,包括下述步骤:由信息处理设备存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;向提供消息的证明者提供随机选择的第一信息;获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;从证明者获取与选择的核查模式对应的响应信息;以及基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli) q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种程序,使计算机实现:消息产生功能,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;消息提供功能,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;中间信息产生功能,基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;中间信息提供功能,把第三信息提供给核查者;以及响应提供功能,向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种程序,使计算机实现:信息存储功能,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));消息获取功能,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;信息提供功能,向提供消息的证明者提供随机选择的第一信息;中间信息获取功能,获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;模式信息提供功能,向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及核查功能,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s。所述向量s是秘密密钥。所述一组多阶多元 多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种存储有程序的计算机可读记录介质,该程序使计算机实现:消息产生功能,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;消息提供功能,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;中间信息产生功能,基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;中间信息提供功能,把第三信息提供给核查者;以及响应提供功能,向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
根据本技术的实施例,提供一种存储有程序的计算机可读记录介质,该程序使计算机实现:信息存储功能,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));消息获取功能,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;信息提供功能,向提供消息的证明者提供随机选择的第一信息;中间信息获取功能,获取由证明者基于第一信息和在产 生消息时获得的第二信息产生的第三信息;模式信息提供功能,向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及核查功能,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s。所述向量s是秘密密钥。所述一组多阶多元多项式F和向量y是公钥。消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息。所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
发明的有益效果
根据上述本技术,可使用其高效求解方式(陷门)未知的多阶多元联立方程实现高效并且具有高安全性的公钥验证方案和数字签名方案。
附图说明
图1是用于描述与公钥验证方案相关的算法结构的解释示图。
图2是用于描述与数字签名方案相关的算法结构的解释示图。
图3是用于描述与n遍(pass)公钥验证方案相关的算法结构的解释示图。
图4是用于描述与3遍公钥验证方案相关的特定算法结构的例子的解释示图。
图5是用于描述与3遍公钥验证方案相关的高效算法的解释示图。
图6是用于描述与3遍公钥验证方案相关的高效算法的并行化的 解释示图。
图7是用于描述使用3遍高阶多元多项式的公钥验证方案(方案#1)的算法的例子的解释示图。
图8是用于描述使用3遍高阶多元多项式的公钥验证方案(方案#1)的并行化算法的例子的解释示图。
图9是用于描述与5遍公钥验证方案相关的特定算法结构的例子的解释示图。
图10是用于描述与5遍公钥验证方案相关的高效算法的例子的解释示图。
图11是用于描述与5遍公钥验证方案相关的高效算法的并行化的解释示图。
图12是用于描述使用5遍高阶多元多项式的公钥验证方案(方案#1)的算法的例子的解释示图。
图13是用于描述使用5遍高阶多元多项式的公钥验证方案(方案#1)的并行化算法的例子的解释示图。
图14是用于描述使用5遍高阶多元多项式的公钥验证方案(方案#2)的算法的例子的解释示图。
图15是用于描述使用5遍高阶多元多项式的公钥验证方案(方案#2)的并行化算法的例子的解释示图。
图16是用于描述使用5遍高阶多元多项式的公钥验证方案(方案#2)的高效并行化算法的例子的解释示图。
图17是用于描述使用5遍高阶多元多项式的公钥验证方案(方案#2)的另一高效并行化算法的例子的解释示图。
图18是用于描述把与3遍公钥验证方案相关的高效算法修改为数字签名方案的算法的方法的解释示图。
图19是用于描述把与3遍公钥验证方案相关的另一高效算法修改为数字签名方案的算法的方法的解释示图。
图20是用于描述把与5遍公钥验证方案相关的高效算法修改为数字签名方案的算法的方法的解释示图。
图21是用于描述把与5遍公钥验证方案相关的另一高效算法修改为数字签名方案的算法的方法的解释示图。
图22是用于描述与3遍公钥验证方案相关的高效算法的并行串行结构的解释示图。
图23是用于描述与3遍公钥验证方案相关的高效算法的串行并行结构的解释示图。
图24是用于描述与5遍公钥验证方案相关的高效算法的并行串行结构(并行串行结构#1)的解释示图。
图25是用于描述与5遍公钥验证方案相关的高效算法的并行串行结构(并行串行结构#2)的解释示图。
图26是用于描述与5遍公钥验证方案相关的高效算法的串行并行结构(串行并行结构#1)的解释示图。
图27是用于描述与5遍公钥验证方案相关的高效算法的串行并行结构(串行并行结构#2)的解释示图。
图28是用于描述能够执行根据本技术的每个实施例的算法的信息处理设备的硬件结构例子的解释示图。
图29是用于描述设置在根据本技术的第一实施例和第二实施例的公钥验证方案相中使用的参数的非常合适的方法和有益效果的解释示图。
具体实施方式
以下,将参照附图详细描述本发明的优选实施例。需要注意的是,在本说明书和附图中,具有基本上相同的功能和结构的元素由相同的标号表示,并且省略重复解释。
[描述的流程]
这里,将简要描述将要进行的本技术的实施例的描述的流程。首先,将参照图1描述公钥验证方案的算法结构。接下来,将参照图2描述数字签名方案的算法结构。接下来,将参照图3描述n遍公钥验 证方案。
接下来,将参照图4至8描述与3遍公钥验证方案相关的算法结构的例子。接下来,将参照图5至17描述与5遍公钥验证方案相关的算法结构的例子。接下来,将参照图18至21描述把与3遍公钥验证方案和5遍公钥验证方案相关的高效算法修改为数字签名方案的算法的方法。
接下来,将参照图22至27描述与3遍公钥验证方案和5遍公钥验证方案相关的高效算法的并行串行结构和串行并行结构。接下来,将参照图28描述能够实现根据本技术的第一实施例和第二实施例的每个算法的信息处理设备的硬件结构例子。最后,将简要描述本实施例的技术精神和从技术精神获得的操作有益效果的总结。
(详细章节)
1.介绍
1-1:公钥验证方案的算法
1-2:数字签名方案的算法
1-3:N遍公钥验证方案的算法
2.与3遍公钥验证方案相关的算法结构
2-1:特定算法结构的例子
2-2:基于二次多元多项式的高效算法
2-2-1:基本结构
2-2-2:并行化算法
2-3:基于高阶多元多项式的高效算法(方案#1)
2-3-1:基本结构
2-3-2:并行化算法
3.与5遍公钥验证方案相关的算法结构
3-1:特定算法结构的例子
3-2:基于二次多元多项式的高效算法
3-2-1:基本结构
3-2-2:并行化算法
3-3:基于高阶多元多项式的高效算法(第一实施例)
3-3-1:基本结构
3-3-2:并行化算法
3-4:基于高阶多元多项式的高效算法(第二实施例)
3-4-1:基本结构
3-4-2:并行化算法(结构例子1)
3-4-3:并行化算法(结构例子2:高效率)
3-4-4:并行化算法(结构例子2:更高效率)
4:数字签名方案的修改
4-1:把3遍公钥验证方案修改为数字签名方案
4-1-1:数字签名算法(结构例子1)
4-1-2:数字签名算法(结构例子2:高效率)
4-2:把5遍公钥验证方案修改为数字签名方案
4-2-1:数字签名算法(结构例子1)
4-2-2:数字签名算法(结构例子2:高效率)
5:混合类型算法
5-1:与3遍公钥验证方案相关的混合类型算法
5-1-1:并行串行算法
5-1-2:串行并行算法
5-2:与5遍公钥验证方案相关的混合类型算法
5-2-1:并行串行算法(结构例子#1)
5-2-2:并行串行算法(结构例子#2)
5-2-3:串行并行算法(结构例子#1)
5-2-4:串行并行算法(结构例子#2)
6:补充
6-1:设置系统参数的方法
6-2:对不定期盘问做出响应的方法
6-2-1:证明者的响应方法
6-2-2:核查者的响应方法
7:硬件结构的例子
8:总结
<1.介绍>
这里的实施例涉及一种使其安全性基于解多阶多元联立方程的难度的公钥验证方案和数字签名方案。然而,这里的实施例不同于诸如HFE数字签名方案的相关技术的方法,并且涉及一种使用缺少高效求解的方式(陷门)的多阶多元联立方程的公钥验证方案和数字签名方案。首先,将简要总结公钥验证方案的算法、数字签名方案的算法和n遍公钥验证方案。
[1-1:公钥验证方案的算法]
首先,将参照图1描述公钥验证方案的算法的概述。图1是用于描述公钥验证方案的算法结构的解释示图。
当一个人(证明者)通过使用公钥pk和秘密密钥sk来使另一个人(核查者)相信她是证明者自己时,使用公钥验证。例如,使核查者B知道证明者A的公钥pkA。另一方面,证明者A的秘密密钥skA由证明者A秘密地管理。根据公钥验证方案,知道与公钥pkA对应的秘密密钥skA的人被视为证明者A自己。
为了使证明者A使用公钥验证设置向核查者B证明她是证明者A自己,证明者A经交互协议向核查者B提供指示她知道与公钥pkA对应的秘密密钥skA的证据。指示证明者A知道秘密密钥skA的证据随后被提供给核查者B,并且在核查者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的对象是信息处理设备。这些信息处理设备的硬件结构例如如图28中所示。也就是说,密钥产生算法Gen、证明者算法P和核查者算法V由CPU902基于记录在ROM904、RAM906、存储单元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位)的算法。此时,核查者在核查者算法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产生数字签名q以附加到消息M。换句话说,签名者是把数字签名附加到消息M的实体。同时,核查者使用签名核查算法Ver核查附加到消息M的数字签名。换句话说,核查者是核查数字签名q以便确认消息M的创建者是否是签名者的实体。
需要注意的是,虽然在以下的描述中使用术语“签名者”和“核查者”,但这些术语最终表示实体。因此,执行密钥产生算法Gen和签名产生算法Sig的主体是与“签名者”实体对应的信息处理设备。类似地,执行签名核查算法Ver的主体是信息处理设备。这些信息处理设备的硬件结构例如如图28中所示。换句话说,密钥产生算法Gen、签名产生算法Sig和签名核查算法Ver由诸如CPU902的装置基于记录在诸如ROM904、RAM906、存储单元920或可移动记录 介质928上的程序执行。
(密钥产生算法Gen)
密钥产生算法Gen由签名者使用。密钥产生算法Gen是产生对于签名者而言独一无二的一组签名密钥sk和核查密钥pk的算法。由密钥产生算法Gen产生的核查密钥pk被公开。同时,签名者使由密钥产生算法Gen产生的签名密钥sk保密。然后,签名密钥sk被用于产生数字签名q以附加到消息M。例如,密钥产生算法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,连续地执行这种执行和处理以及信息Tk的发送(操作#k),并且最后执行处理(操作#n+1)。以这种方式n次发送和接收信息由此被称为“n遍”公钥验证方案。
前述内容因此描述了n遍公钥验证方案。
<2.与3遍公钥验证方案相关的算法结构>
以下,将描述与3遍公钥验证方案相关的算法。需要注意的是,在下面的描述中,3遍公钥验证方案也可在一些情况下被称为“3遍方案”。
[2-1.特定算法结构的例子]
首先,将参照图4介绍与3遍方案相关的特定算法结构的例子。图4是用于描述与3遍方案相关的特定算法结构的解释示图。3遍方 案的算法由密钥产生算法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设置公钥pk中的(f1(x1,...,xn),...,fm(x1,...,xn),y)并且设置s作为秘密密钥。以下,向量(x1,...,xn)被表示为x,并且一组多元多项式(f1(x),...,fm(x))被表示为F(x)。
(证明者算法P、核查者算法V)
接下来,将参照图4描述在交互协议期间由证明者算法P执行的过程和由核查者算法V执行的过程。
在前述交互协议期间,证明者根本不把关于秘密密钥s的信息泄露给核查者并且向核查者表示“她自己知道满足y=F(s)的s”。另一方面,核查者核查证明者是否知道满足y=F(s)的s。假设公钥pk被公开给核查者。此外,假设秘密密钥s由证明者秘密地管理。以下,将参照图4中示出的流程图进行描述。
操作#1:
首先,证明者算法P选择任何数字seed0。随后,证明者算法P通过把数字seed0应用于伪随机数产生器PRNG来产生作为集合Kn的元素的向量r0和数字seed1。也就是说,证明者算法P计算(r0,seed1)<-PRNG(seed0)。随后,证明者算法P通过把数字seed1应用于伪随机数产生器PRNG来产生多元多项式F1(x)=(f11(x),...,f1m(x))。也就是说,证明者算法P计算F1<-PRNG(seed1)。
操作#1(继续):
随后,证明者算法P计算r1<-s-r0。这项计算等同于利用向量r0掩蔽秘密密钥s。另外,证明者算法P计算F2(x)<-F(x+r0)+F1(x)。这项计算等同于利用多元多项式F1(x)掩蔽x的多元多项式F(x+r0)。
操作#1(继续):
随后,证明者算法P产生r1和F1(r1)的哈希值(hash value)c0。也就是说,证明者算法P计算c0<-H(F1(r1),r1)。此外,证明者算法P产生数字seed1的哈希值c1。也就是说,证明者算法P计算c1<-H(seed1)。此外,证明者算法P产生多元多项式F2的哈希值c2。也就是说,证明者算法P计算c2<-H(F2)。哈希值(c0,c1,c2)被作为消息发送给核查者算法V。此时,应该注意的是,关于s的信息、关于r0的信息和关于r1的信息根本不被泄露给核查者。
操作#2:
在接收到消息(c0,c1,c2)时,核查者算法V从三种核查模式之中选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的三个数值{0,1,2}之中选择数值,并在盘问Ch中设置选择的数值。这个盘问Ch被发送给证明者算法P。
操作#3:
在接收到盘问Ch时,证明者算法P响应于接收的盘问Ch产生发送给核查者算法V的响应Rsp。在Ch=0的情况下,证明者算法P产生响应Rsp=seed0。在Ch=1的情况下,证明者算法P产生响应Rsp=(seed1,r1)。在Ch=2的情况下,证明者算法P产生响应Rsp=(F2,r1)。在操作#3中产生的响应Rsp被发送给核查者算法V。此时,应该注意的是,在Ch=0的情况下,关于r1的信息根本不被泄露给核查者,并且在Ch=1或2的情况下,关于r0的信息根本不被泄露给核查者。
操作#4:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在Ch=0的情况下,核查者算法V计算(r0,seed1)<-PRNG(Rsp)。此外,核查者算法V计算F1<-PRNG(seed1)。然后,核查者算法V核查c1=H(seed1)的等式是否成立。另外,核查者算法V核查c2=H(F(x+r0)+F1(x))的等式是否成立。核查者算法V在 这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=1的情况下,核查者算法V设置(seed1,r1)<-Rsp。此外,核查者算法V计算F1<-PRNG(seed1)。然后,核查者算法V核查c0=H(F1(r1),r1)的等式是否成立。另外,核查者算法V核查c1=H(seed1)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=2的情况下,核查者算法V设置(F2,r1)<-Rsp。然后,核查者算法V核查c0=H(F2(r1)-y,r1)的等式是否成立。另外,核查者算法V核查c2=H(F2)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
(健全性)
这里,将补充与3遍方案相关的算法的健全性的描述。基于这样的逻辑确保与3遍方案相关的算法的健全性:当证明者算法P针对可由核查者算法V选择的所有盘问Ch=0,1和2返回合适的响应Rsp时,能够计算满足下面的公式(6)和公式(7)的F2、F1、r0和r1
[数学表达式6]
F2(x)=F(x+r0)+F1(x)
…(6)
F2(r1)-y=F1(r1)
…(7)
通过确保前述健全性,只要未解决解多阶多元联立方程的问题,就可确保无法实现具有高于2/3的可能性的成功伪造的事实。也就是说,为了合适地对核查者的所有盘问Ch=0,1和2做出响应,伪造者必须计算满足前述公式(6)和公式(7)的F2、F1、r0和r1。换句话说,伪造者必须计算满足F(s)=y的s。然而,仍然存在伪造者对核 查者的盘问Ch=0,1,2之中的两个较高盘问做出合适响应的可能性。因此,错误核查的成功可能性变为2/3。另外,通过把前述交互协议反复执行足够多的次数,成功伪造的可能性变小至可以忽略。
(哈希函数H)
这里,将补充哈希函数H的描述。在前述算法中,使用哈希函数H计算c0、c1、c2等。然而,可替代于哈希函数H而使用承诺函数COM。承诺函数COM是这样的函数:在该函数中,字符串S和随机数ρ是因子。承诺函数的例子包括由Shai Halevi和Silvio Micali在国际会议CRYPTO1996中公开的方案。
例如,将考虑使用承诺函数COM计算c0、c1和c2的情况。在这种情况下,在计算c0、c1和c2之前,准备随机数ρ0、ρ1和ρ2,并且通过替代于应用哈希函数H(·)而应用承诺函数COM(·,ρ0)、COM(·,ρ1)和COM(·,ρ2)来产生c0、c1和c2。另外,核查者产生ci所需的ρi被设置为被包括在响应Rsp中并且被发送。
以上介绍了与3遍方案相关的特定算法结构的例子。
[2-2:基于二次多元多项式的高效算法]
接下来,将描述使与3遍方案相关的算法高效的方法。这里,将描述一组二次多项式(f1(x),...,fm(x))被用作多元多项式F的情况。这里,假设二次多项式fi(x)被表示为下面的公式(8)。
[数学表达式7]
此外,所述一组二次多项式(f1(x),...,fm(x))能够被表示为下面的公式(9)。这里,x=(x1,...,xn)。A1,...,Am是n×n矩阵。另外,b1,...,bm中的每一个是n×1向量。
[数学表达式8]
当使用这个表达式时,多元多项式F能够被表示为下面的公式(10)和公式(11)。从下面的公式(12),能够容易地确认满足这个表达式。
[数学表达式9]
F(x+y)=F(x)+F(y)+G(x,y)
…(10)
当以这种方式把F(x+y)分成取决于x的第一部分、取决于y的第二部分和既取决于x又取决于y的第三部分时,与第三部分对应的 项G(x,y)变为相对于x和y是双线性的。使用这个性质能够实现高效算法的构造。
例如,使用作为集合Kn的元素的向量t0和作为集合Km的元素的向量e0把用于掩蔽多元多项式F(x+r)的多元多项式F1(x)表示为F1(x)=G(x,t0)+e0。在这种情况下,多元多项式F(x+r0)和G(x)之和被表示为以下的公式(13)。
这里,当t1=r0+t0并且e1=F(r0)+e0时,多元多项式F2(x)=F(x+r0)+F1(x)能够由作为集合Kn的元素的向量t1和作为集合Km的元素的向量e1表示。由于这个原因,当设置“F1(x)=G(x,t0)+e0”时,能够通过使用Kn中的向量和Km中的向量来表示F1和F2,因此,通信所需的数据大小能够显著减小。具体地讲,能够在几千至几万倍的程度上提高通信效率。
[数学表达式10]
F(x+r0)+F1(x)
=F(x)+F(r0)+G(x,r0)+G(x,t0)+e0
=F(x)+G(x,r0+t0)+F(r0)+e0
…(13)
通过前述修改,根本不从F2(或F1)泄露关于r0的信息。例如,即使当给出e1和t1(或者e0和t0)时,只要e0和t0(或者e1和t1)是未知的,就根本不知道关于r0的信息。因此,确保了零知识。以下,将参照图5和6描述与3遍方案相关的高效算法。
(2-2-1:基本结构(图5))
首先,将参照图5描述与3遍方案相关的高效算法的基本结构。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图5中所示,证明者算法P首先随机产生作为集合Kn的元素的向量r0、t0和作为集合Km的元素的向量e0。随后,证明者算法P计算r1<-s-r0。这项计算等同于利用向量r0掩蔽秘密密钥s。另外,证明者算法P计算t1<-r0-t0。随后,证明者算法P计算e1<- F(r0)-e0
操作#1(继续):
随后,证明者算法P计算c0<-H(r1,G(t0,r1)+e0)。随后,证明者算法P计算c1<-H(t0,e0)。随后,证明者算法P计算c2<-H(t1,e1)。在操作#1中产生的消息(c0,c1,c2)被发送给核查者算法V。
操作#2:
在接收到消息(c0,c1,c2)时,核查者算法V从三种核查模式之中选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的三个数值{0,1,2}之中选择数值,并在盘问Ch中设置选择的数值。这个盘问Ch被发送给证明者算法P。
操作#3:
在接收到盘问Ch时,证明者算法P响应于接收的盘问Ch产生发送给核查者算法V的响应Rsp。在Ch=0的情况下,证明者算法P产生响应Rsp=(r0,t1,e1)。在Ch=1的情况下,证明者算法P产生响应Rsp=(r1,t0,e0)。在Ch=2的情况下,证明者算法P产生响应Rsp=(r1,t1,e1)。在操作#3中产生的响应Rsp被发送给核查者算法V。
操作#4:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在Ch=0的情况下,核查者算法V核查c1=H(r0-t1,F(r0)-e1)的等式是否成立。另外,核查者算法V核查c2=H(t1,e1)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=1的情况下,核查者算法V核查c0=H(r1,G(t0,r1)+e0)的等式是否成立。另外,核查者算法V核查c1=H(t0,e0)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=2的情况下,核查者算法V核查c0=H(r1,y–F(r1)–G(t1,r1)–e1)的等式是否成立。另外,核查者算法V核查c2=H(t1,e1)的等 式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与3遍方案相关的高效算法结构的例子。通过使用该算法,通信所需的数据大小显著减小。
(2-2-2:并行化算法(图6))
接下来,将参照图6描述使图5中示出的算法并行化的方法。然而,将省略密钥产生算法Gen的结构的进一步描述。
如上所述,应用以上会话协议使得可使成功伪造的可能性保持在2/3或更小。因此,两次执行会话协议使得可使成功伪造的可能性保持在(2/3)2或更小。另外,如果N次执行会话协议,则成功伪造的可能性变为(2/3)N或更小,并且如果N被设置为足够大的数字(例如,N=140),则成功伪造的可能性变小至可以忽略。
例如,可想到的多次执行会话协议的方法包括:串行方法,顺序地多次重复消息、盘问和响应的交换;和并行方法,在单次交换中交换多个消息、盘问和响应。这里,现在将描述并行地执行以上与3遍方案相关的交互协议的算法(以下,称为并行化算法)。
操作#1:
证明者算法P首先针对i=1到N执行下面的过程(1)至(6)。
过程(1):证明者算法P随机产生作为集合Kn的元素的向量r0i、t0i和作为集合Km的元素的向量e0i
过程(2):证明者算法P计算r1i<-s-r0i。这项计算等同于利用向量r0i掩蔽秘密密钥s。另外,证明者算法P计算t1i<-r0i+t0i
过程(3):证明者算法P计算e1i<-F(r0i)-e0i
过程(4):证明者算法P计算c0i<-H(r1i,G(r1i,t0i)+e0i)。
过程(5):证明者算法P计算c1i<-H(t0i,e0i)。
过程(6):证明者算法P计算c2i<-H(t1i,e1i)。
操作#1(继续):
在针对i=1到N执行以上过程(1)至(6)之后,证明者算法P计算 Cmt<-H(c01,c11,c21,...,c0N,c1N,c2N)。在操作#1中产生的哈希值Cmt被发送给核查者算法V。以这种方式,消息(c01,c11,c21,...,c0N,c1N,c2N)在被发送给核查者算法V之前被转换成哈希值,因此能够实现通信量的减小。
操作#2:
在接收到哈希值Cmt时,针对i=1到N中的每一个,核查者算法V从三种核查模式之中选择使用哪种核查模式。例如,核查者算法V可针对i=1到N中的每一个从代表核查模式的三个数值{0,1,2}之中选择数值,并在盘问Chi中设置选择的数值。盘问Ch1,...,ChN被发送给证明者算法P。
操作#3:
在接收到盘问Ch1,...,ChN时,证明者算法P响应于接收的盘问Ch1,...,ChN中的每一个产生发送给核查者算法V的响应Rsp1,...,RspN。在Chi=0的情况下,证明者算法P产生响应Rspi=(r0i,t1i,e1i,c0i)。在Chi=1的情况下,证明者算法P产生响应Rspi=(r1i,t0i,e0i,c2i)。在Chi=2的情况下,证明者算法P产生响应Rspi=(r1i,t1i,e1i,c1i)。
在操作#3中产生的响应Rsp1,...,RspN被发送给核查者算法V。
操作#4:
在接收到响应Rsp1,...,RspN时,核查者算法V使用接收的响应Rsp1,...,RspN针对i=1到N执行下面的过程(1)至(3)。这里,核查者算法V针对Chi=0的情况执行过程(1),在Chi=1的情况下执行过程(2),并且在Chi=2的情况下执行过程(3)。
过程(1):在Chi=0的情况下,核查者算法V从Rspi检索(r0i,t1i,e1i,c0i)。随后,核查者算法V计算c1i=H(r0i-t1i,F(r0i)-e1i)。另外,核查者算法V计算c2i=H(t1i,e1i)。核查者算法V随后存储(c0i,c1i,c2i)。
过程(2):在Chi=1的情况下,核查者算法V从Rspi检索(r1i,t0i,e0i,c2i)。随后,核查者算法V计算c0i=H(r1i,G(r1i,t0i)+e0i)。另外, 核查者算法V计算c1i=H(t0i,e0i)。核查者算法V随后存储(c0i,c1i,c2i)。
过程(3):在Chi=2的情况下,核查者算法V从Rspi检索(r1i,t1i,e1i,c1i)。随后,核查者算法V计算c0i=H(r1i,y–F(r1i)–G(t1i,r1i)–e1i)。另外,核查者算法V计算c2i=H(t1i,e1i)。核查者算法V随后存储(c0i,c1i,c2i)。
在针对i=1到N执行以上过程(1)至(3)之后,核查者算法V核查Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)的等式是否成立。核查者算法V在核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与3遍方案相关的并行化高效算法的结构的例子。此外,图6中示出的并行化算法包括这样的设计:消息在被发送之前被转换成哈希值。该设计提高通信效率。类似地,可修改结构,以使得盘问Ch1,...,ChN或响应Rsp1,...,RspN在被发送之前被转换成哈希值。以这种方式修改结构能够实现预期的通信效率的进一步提高。
[2-3:基于高阶多元多项式的高效算法(方案#1)]
前述高效算法使用这样的性质:通过利用在前述公式(8)中定义的一组二次多项式fi表示多元多项式F,在前述公式(10)中定义的多项式G变为双线性。然而,当多项式G为加同态时,即使当多项式G不是双线性时,也能够同样构造高效算法。
(使用二次多项式fi的高效算法的构造)
当多项式G为加同态时,使用变量r0、r1、t0和e0建立下面的公式(14)至公式(16)的关系。此外,下面的公式(14)是通过把秘密密钥s分成s=r0+r1并且展开公钥F(s)而获得的公式。下面的公式(14)至公式(16)能够被分成可利用(r0,t1,e1)再现的第一部分(r1,t0,e0)、可利用(r1,t0,e0)再现的第二部分(r1,t1,e1)和可利用(r1,t1,e1)再现的第三部分。
例如,下面的公式(15)中所包括的“r0,t1”和下面的公式(16)中所包括的“F(r0),e1”是第一部分。另外,下面的公式(14)中所包括的“e0, G(t0,r1)”、下面的公式(15)中所包括的“t0”和下面的公式(16)中所包括的“e0”是第二部分。另外,下面的公式(14)中所包括的“e1,F(r1),G(t1,r1)”是第三部分。换句话说,下面的公式(14)包括第二部分和第三部分,下面的公式(15)包括第一部分和第二部分,并且下面的公式(16)包括第一部分和第二部分。
如上所述,下面的公式(14)至公式(16)中的每一个包括两种部分。另外,从秘密密钥s的定义和下面的公式(14)至公式(16)之间的关系,确保即使当使用(r0,t1,e1)、(r1,t0,e0)和(r1,t1,e1)中的任何一个时也不可获得秘密密钥s。使用这种性质能够例如实现图5中示出的与3遍方案相关的高效算法的构造。
[数学表达式11]
F(r0+r1)=e0+e1+F(r1)+G(t0,r1)+G(t1,r1)
…(14)
r0=t0+t1
…(15)
F(r0)=eO+e1
…(16)
(使用三次多项式fl的高效算法的构造)
将通过展开前面的二次多项式fi的情况的描述来讨论使用表示为下面的公式(17)的环R的三次多项式fl构造高效算法的方法。利用一组三次多项式fl表示的多元多项式F=(f1,...,fm)满足下面的公式(18)的关系。这里,Gx(x,y)代表x的线性项。另外,Gy(x,y)代表y的线性项。当表示Gx=(gx1,...,gxm)和Gy=(gy1,...,gym)时,gxl和gyl能够分别如下面的公式(19)和公式(20)中一样展开。这里,由于对于x和y之一,gxl的右侧第二项也是线性的,所以右侧第二项可包括gyl
[数学表达式12]
F(x+y)-F(x)-F(y)=Gx(x,y)+Gy(x,y)
…(18)
从前面的公式(19)和公式(20)可理解,对于x和y,Gx(x,y)和Gy(x,y)变为加同态。因此,使用这种性质,如使用二次多项式f构造高效算法的方法中一样,通过引入新变量r0、r1、t0、u0和e0来划分公钥F(s)。
由于多项式Gx和Gy为加同态,所以使用变量r0、r1、t0、u0和e0建立下面的公式(21)至公式(24)之间的关系。下面的公式(21)至公式(24)能够被分成可利用(r0,t0,u0,e0)再现的第一部分(r1,t0,e0)、可利用(r0,u1,e1)再现的第二部分、可利用(r1,t0,e0)再现的第三部分和可利用(r1,t1,u1,e1)再现的第四部分。
例如,下面的公式(22)中所包括的“r0,t0”、下面的公式(23)中所包括的“u0”和下面的公式(24)中所包括的“F(r0),Gy(r0,u0),e0”是第一部分。另外,下面的公式(24)中所包括的“Gy(r0,u1),e1”是第二部分。另外,下面的公式(21)中所包括的“e0,Gx(r0,r1)”是第三部分。另外,下面的公式(21)中所包括的“e1,F(r1),Gx(t1,r1)”、下面的公式(22)中所包括的“t1”和下面的公式(23)中所包括的“u1”是第四部分。
换句话说,下面的公式(21)包括第三部分和第四部分,下面的公式(22)和下面的公式(23)包括第一部分和第四部分,并且下面的公式(24)包括第一部分和第二部分。以这种方式,下面的公式(21)至公式(24)中的每一个包括两种部分。
从秘密密钥s的定义和下面的公式(21)至公式(24)之间的关系,确保即使当使用(r0,t0,u0,e0)、(r0,u1,e1)、(r1,t0,e0)和(r1,t1,u1,e1)中的任何一个时也不可获得秘密密钥s。使用这种性质能够例如实现使用环R的三次多项式fl构造与3遍方案相关的高效算法(以下,扩展算法)。
[数学表达式13]
F(r0+r1)=e0+e1+F(r1)+Gx(t0,r1)+Gx(t1,r1)
…(21)
r0=t0+t1
…(22)
r1=u0+u1
…(23)
F(r0)+Gy(r0,u1)+Gy(r0,u0)=e0+e1
…(24)
以下,将描述特定扩展算法结构的例子。关于扩展算法的设计的两个基本点在于:在下面的公式(25)至公式(27)中表示的消息被发送给核查者以及第一部分至第四部分之一被核查。然而,仅在这个核查中,可能无法核查第三部分中所包括的“r1”与第四部分中所包括的“r1”相同。类似地,也可能无法核查第一部分中所包括的“r0”与第二部分中所包括的“r0”相同以及第一部分中所包括的“t0,e0”与第三部分中所包括的“t0,e0”相同。另外,也可能无法核查第二部分中所包括的“u1,e1”与第四部分中所包括的“u1,e1”相同。因此,以下将介绍能够实现这种核查的结构例子。
[数学表达式14]
c0=H(Gx(t0,r1)+e0)
…(25)
c1=H(t0,u0)
…(26)
c2=H(e1-Gy(r0,u1))
…(27)
(2-3-1:基本结构(图7))
首先,将参照图7描述与3遍方案相关的扩展算法的基本结构。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图7中所示,证明者算法P随机产生作为集合Kn的元素的向量r0、t0、u0和作为集合Km的元素的向量e0。随后,证明者算法P计算r1<-s-r0。这项计算等同于利用向量r0掩蔽秘密密钥s。随后,证明者算法P计算t1<-r0+t0。随后,证明者算法P计算u1<-r1+u0。随后,证明者算法P计算e1<-F(r0)-e0
操作#1(继续):
随后,证明者算法P计算c0<-H(r1,Gx(t0,r1)+e0)。随后,证明者算法P计算c1<-H(r0-t0,u0)。随后,证明者算法P计算c2<-H(r0,e1-Gy(r0,u1))。随后,证明者算法P计算c3<-H(t0,e0)。随后,证明者算法P计算c4<-H(u1,e1)。在操作#1中产生的消息(c0,c1,c2,c3,c4)被发送给核查者算法V。
操作#2:
在接收到消息(c0,c1,c2,c3,c4)时,核查者算法V从四种核查模式之中选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的四个数值{0,1,2,3}之中选择数值,并在盘问Ch中设置选择的数值。这个盘问Ch被发送给证明者算法P。
操作#3:
在接收到盘问Ch时,证明者算法P响应于每个接收的盘问Ch产生发送给核查者算法V的响应Rsp。在Ch=0的情况下,证明者算法P产生响应Rsp=(r0,t0,u0,e0)。在Ch=1的情况下,证明者算法P产生响应Rsp=(r0,u1,e1)。在Ch=2的情况下,证明者算法P产生响应Rsp=(r1,t0,e0)。在Ch=3的情况下,证明者算法P产生响应Rsp=(r1,t1,u1,e1)。在操作#3中产生的响应Rsp被发送给核查者算法V。
操作#4:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在Ch=0的情况下,核查者算法V核查c1=H(r0-t0,u0)的等式是否成立。随后,核查者算法V核查c2=H(r0,F(r0)+Gy(r0,u0)-e0)的等式是否成立。随后,核查者算法V核查c3=H(t0,e0)的等式是否成立。核查者算法V在核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=1的情况下,核查者算法V核查c2=H(r0,e1-Gy(r0,u1))的等式是否成立。随后,核查者算法V核查c4=H(u1,e1)的等式是否成立。核查者算法V在核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=2的情况下,核查者算法V核查c0=H(r1,e0-Gx(t0,r1))的等式是否成立。随后,核查者算法V核查c3=H(t0,e0)的等式是否成立。核查者算法V在核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在Ch=3的情况下,核查者算法V核查c0=H(r1,y-F(r1)-e1-Gx(t1,r1))的等式是否成立。随后,核查者算法V核查c1=H(t1,r1,u1)的等式是否成立。随后,核查者算法V核查c4=H(u1,e1)的等式是否成立。核查者算法V在核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与3遍方案相关的扩展算法结构的例子。通过使用该 算法,通信所需的数据大小显著减小。此外,使用三次多项式能够实现更高的安全性。
(2-3-2:并行化算法(图8))
接下来,将参照图8描述与3遍方案相关的扩展算法的并行化的方法。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图8中所示,证明者算法P针对i=1到N执行下面的过程。首先,证明者算法P随机产生作为集合Kn的元素的向量r0i、t0i、u0i和作为集合Km的元素的向量e0i。随后,证明者算法P计算r1i<-s-r0i。这项计算等同于利用向量r0i掩蔽秘密密钥s。随后,证明者算法P计算t1i<-r0i-t0i。随后,证明者算法P计算u1i<-r1i-u0i。随后,证明者算法P计算e1i<-F(r0i)-e0i
操作#1(继续):
随后,证明者算法P计算c0i<-H(r1i,Gx(t0i,r1i)+e0i)。随后,证明者算法P计算c1i<-H(r0i,-t0i,u0i)。随后,证明者算法P计算c2i<-H(r0i,e1i-Gy(r0i,u1i))。随后,证明者算法P计算c3i<-H(t0i,e0i)。随后,证明者算法P计算c4i<-H(u1i,e1i)。在产生(c01,c11,c21,c31,c41,...,c0N,c1N,c2N,c3N,c4N)之后,证明者算法P计算哈希值Cmt<-H(c01,c11,c21,c31,c41,...,c0N,c1N,c2N,c3N,c4N)。
在操作#1中产生的哈希值Cmt被发送给核查者算法V。
操作#2:
在接收到哈希值Cmt时,针对i=1到N中的每一个,核查者算法V从四种核查模式之中选择使用哪种核查模式。例如,核查者算法V可针对i=1到N中的每一个从代表核查模式的四个数值{0,1,2,3}之中选择数值,并在盘问Chi中设置选择的数值。盘问Chi(i=1到N)被发送给证明者算法P。
操作#3:
在接收到盘问Chi(i=1到N)时,证明者算法P响应于接收的盘问Chi中的每一个产生发送给核查者算法V的针对i=1到N中的每 一个的响应Rspi。在Chi=0的情况下,证明者算法P产生响应Rspi=(r0i,t0i,u0i,e0i,c0i,c4i)。在Chi=1的情况下,证明者算法P产生响应Rspi=(r0i,u1i,e1i,c0i,c1i,c3i)。在Chi=2的情况下,证明者算法P产生响应Rspi=(r1i,t0i,e0i,c1i,c2i,c4i)。在Chi=3的情况下,证明者算法P产生响应Rspi=(r1i,t1i,u1i,e1i,c2i,c3i)。在操作#3中产生的响应Rspi(i=1到N)被发送给核查者算法V。
操作#4:
在接收到响应Rspi(i=1到N)时,核查者算法V使用接收的响应Rsp针对i=1到N执行下面的过程。
在Chi=0的情况下,核查者算法V计算c1i=H(r0i-t0i,u0i)。随后,核查者算法V计算c2i=H(r0i,F(r0i)+Gy(r0i,u0i)-e0i)。随后,核查者算法V计算c3i=H(t0i,e0i)。核查者算法V随后存储(c0i,c1i,c2i,c3i,c4i)。
在Chi=1的情况下,核查者算法V计算c2i=H(r0i,e1i-Gy(r0i,u1i))。随后,核查者算法V计算c4i=H(u1i,e1i)。随后,核查者算法V计算c3i=H(t0i,e0i)。核查者算法V随后存储(c0i,c1i,c2i,c3i,c4i)。
在Chi=2的情况下,核查者算法V计算c0i=H(r1i,Gx(t0i,r1i)+e0i)。随后,核查者算法V计算c3i=H(t0i,e0i)。随后,核查者算法V计算c3i=H(t0i,e0i)。核查者算法V随后存储(c0i,c1i,c2i,c3i,c4i)。
在Chi=3的情况下,核查者算法V计算c0i=H(r1i,y-F(r1i)-e1i-Gx(t1i,r1i))。随后,核查者算法V计算c1i=H(t1i,r1i-u1i)。随后,核查者算法V计算c4i=H(u1i,e1i)。核查者算法V随后存储(c0i,c1i,c2i,c3i,c4i)。
在针对i=1到N执行以上过程之后,核查者算法V核查Cmt=H(c01,c11,c21,c31,c41,...,c0N,c1N,c2N,c3N,c4N)的等式是否成立。核查者算法V在核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与3遍方案相关的扩展算法结构的并行化。通过使用该算法,通信所需的数据大小显著减小。此外,使用三次多项式能够 实现更高的安全性。
<3.与5遍公钥验证方案相关的算法结构>
以下,将描述与5遍公钥验证方案相关的算法。需要注意的是,在下面的描述中,5遍公钥验证方案也可在一些情况下被称为“5遍方案”。
在3遍方案的情况下,在每次交互协议,错误核查的可能性是2/3。然而,在5遍方案的情况下,在每次交互协议的错误核查的可能性是1/2+1/q。这里,q是将要使用的环的阶。因此,当环的阶足够大时,每次5遍方案的错误核查的可能性能够减小,因此,通过把交互协议执行较少次数能够充分减小错误核查的可能性。
例如,当希望错误核查的可能性等于或小于1/2n时,交互协议必须在3遍方案中被执行n/(log3-1)=1.701n次或更多次。另一方面,当希望错误核查的可能性等于或小于1/2n时,交互协议必须在5遍方案中被执行n/(1-log(1+1/q))次或更多次。因此,当q=24时,与在3遍方案中相比,在5遍方案中实现相同的安全级别所需的通信量较小。
[3-1.特定算法结构的例子(图9)]
首先,将参照图9介绍与5遍方案相关的特定算法结构的例子。图9是用于描述与5遍方案相关的特定算法结构的解释示图。5遍方案的算法由密钥产生算法Gen、证明者算法P和核查者算法V构成。以下,将描述每个算法结构。
(密钥产生算法Gen)
密钥产生算法Gen产生在环k中定义的多元多项式f1(x1,...,xn),...,fm(x1,...,xn)和作为集合Kn的元素的向量s=(s1,...,sn)。接下来,密钥产生算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。此外,密钥产生算法Gen设置公钥pk中的(f1...,fm,y)并且设置s作为秘密密钥。以下,向量(x1,...,xn)被表示为x,并且一组多元多项式(f1(x),...,fm(x))被表示为F(x)。
(证明者算法P、核查者算法V)
接下来,将参照图9描述在交互协议期间由证明者算法P和核查者算法V执行的过程。
操作#1:
如图9中所述,证明者算法P随机选择数字seed0。随后,证明者算法P通过把数字seed0应用于伪随机数产生器PRNG来产生作为集合Kn的元素的向量r0和一组多元多项式F1(x)=(f11(x),...,f1m(x))。也就是说,证明者算法P计算(r0,F1)<-G(seed0)。随后,证明者算法P计算r1<-s–r0。这项计算等同于利用向量r0掩蔽秘密密钥s。
操作#1(继续):
随后,证明者算法P产生F1(r1)和r1的哈希值c0。也就是说,证明者算法P计算c0<-H(F1(r1),r1)。此外,证明者算法P产生数字seed0的哈希值c1。也就是说,证明者算法P计算c1<-H(seed0)。在操作#1中产生的消息(c0,c1)被发送给核查者算法V。
操作#2:
在接收到消息(c0,c1)时,核查者算法V随机从q个环K的原点选择一个数字ChA并且把选择的数字ChA发送给证明者算法P。
操作#3:
在接收到数字ChA时,证明者算法P计算F2(x)<-ChA·F(x+r0)+F1(x)。这项计算等同于利用多元多项式F1(x)掩蔽x的多元多项式F(x+r0)。在操作#3中产生的多元多项式F2被发送给核查者算法V。
操作#4:
在接收到多元多项式F2时,核查者算法V从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的两个数值{0,1}之中选择数值,并在盘问ChB中设置选择的数值。这个盘问ChB被发送给证明者算法P。
操作#5:
在接收到盘问ChB时,证明者算法P响应于接收的盘问ChB产生发送给核查者算法V的响应Rsp。在ChB=0的情况下,证明者算法P产生响应Rsp=seed0。在ChB=1的情况下,证明者算法P产生响应Rsp=r1。在操作#5中产生的响应Rsp被发送给核查者算法V。
操作#6:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在ChB=0的情况下,核查者算法V计算(r0,F1)<-PRNG(Rsp)。然后,核查者算法V核查c1=H(Rsp)的等式是否成立。另外,核查者算法V核查F2(x)=ChA·F(F(x+r0)+F1(x)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在ChB=1的情况下,核查者算法V设置r1<-Rsp。此外,核查者算法V核查c0=H(F2(r1)–ChA·y,r1)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
(健全性)
从下面的事实确保5遍方案的健全性:当证明者算法P针对(c0,c1)和由核查者算法V选择的两个(ChA,ChA′)合适地对盘问ChB=0和1做出响应时,能够从响应的内容计算满足下面的公式(28)至公式(30)的F1、F2、F2′、r0和r1
[数学表达式15]
F2(x)=ChA·F(x+r0)+F1(x)
…(28)
F2′(x)=ChA′·F(x+r0)+F1(x)
…(29)
F2(r1)-ChA1·y=F2′(r1)-ChA′·y
…(30)
通过确保前述5遍方案的健全性,只要未解决解多阶多元联立方程的问题,就可确保无法实现具有高于1/2+1/q的可能性的伪造的事实。也就是说,为了合适地对核查者的所有盘问ChA=0和1做出响应,伪造者必须计算满足前述公式(28)和公式(30)的F1、F2、F2′、r0和r1。换句话说,伪造者必须计算满足F(s)=y的s。因此,只要未解决解多阶多元联立方程的问题,伪造者就无法成功实现具有高于1/2+1/q的可能性的伪造。另外,通过把前述交互协议反复执行足够多的次数,成功伪造的可能性变小至可以忽略。
(哈希函数H)
这里,将补充哈希函数H的描述。在前述算法中,使用哈希函数H计算c0、c1等。然而,可替代于哈希函数H而使用承诺函数COM。承诺函数COM是这样的函数:在该函数中,字符串S和随机数ρ是因子。承诺函数的例子包括由Shai Halevi和Silvio Micali在国际会议CRYPTO1996中公开的方案。
例如,将考虑使用承诺函数COM计算c0和c1的情况。在这种情况下,在计算c0和c1之前,准备随机数ρ0和ρ1,并且通过替代于应用哈希函数H(·)而应用承诺函数COM(·,ρ0)和COM(·,ρ1)来产生c0、c1。另外,核查者产生ci所需的ρi被设置为被包括在响应Rsp中并且被发送。
以上描述了与5遍方案相关的特定算法结构的例子。
[3-2:基于二次多元多项式的高效算法]
接下来,将描述使与5遍方案相关的算法高效的方法。这里,将 描述一组二次多项式(f1(x),...,fm(x))被用作多元多项式F的情况。
如与3遍方案相关的高效算法中一样,两个向量(即,作为集合Kn的元素的向量t0和作为集合Km的元素的向量e0)被用于把多元多项式F1(x)表示为F1(x)=G(x,t0)+e0,多元多项式F1(x)被用于掩蔽多元多项式F(x+r0)。当使用这个表达式时,能够针对多元多项式F(x+r0)获得在下面的公式(31)中表示的关系。
[数学表达式16]
ChA·F(x+r0)+F1(x)
=ChA·F(x)+ChA·F(r0)+ChA·G(x,r0)+G(x,t0)+e0
=ChA·F(x)+G(x,ChA·r0+t0)+ChA·F(r0)+e0
…(31)
由于这个原因,当t1=ChA·r0+t0并且e1=ChA·F(r0)+e0时,在掩蔽之后的多元多项式F2(x)=F(x+r0)+F1(x)也能够由两个向量(即,作为集合Kn的元素的向量t1和作为集合Km的元素的向量e1)表示。由于这个原因,当设置“F1(x)=G(x,t0)+e0”时,能够通过使用Kn中的向量和Km中的向量来表示F1和F2,因此,通信所需的数据大小能够显著减小。具体地讲,能够在几千至几万倍的程度上降低通信成本。
通过前述修改,根本不从F2(或F1)泄露关于r0的信息。例如,即使当给出e1和t1(或者e0和t0)时,只要e0和t0(或者e1和t1)是未知的,就根本不知道关于r0的信息。因此,确保了零知识。以下,将参照图10和11描述与5遍方案相关的高效算法。
(3-2-1:基本结构(图10))
首先,将参照图10描述与5遍方案相关的高效算法的基本结构。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图10中所示,证明者算法P随机产生作为集合Kn的元素的向量r0、作为集合Kn的元素的向量t0和作为集合Km的元素的向量e0。随后,证明者算法P计算r1<-s-r0。这项计算等同于利用向量 r0掩蔽秘密密钥s。随后,证明者算法P计算向量r0、t0、e0的哈希值c0。也就是说,证明者算法P计算c0<-H(r0,t0,e0)。随后,证明者算法P产生G(t0,r1)+e0和r1的哈希值c1。也就是说,证明者算法P计算c0<-H(r1,G(t0,r1)+e0)。在操作#1中产生的消息(c0,c1)被发送给核查者算法V。
操作#2:
在接收到消息(c0,c1)时,核查者算法V随机从q个环K的原点选择一个数字ChA并且把选择的数字ChA发送给证明者算法P。
操作#3:
在接收到数字ChA时,证明者算法P计算t1<-ChA·r0-t0。另外,证明者算法P计算e1<-ChA·F(r0)-e0。证明者算法P把t1和e1发送给核查者算法V。
操作#4:
在接收到t1和e1时,核查者算法V从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的两个数值{0,1}之间选择数值,并在盘问ChB中设置选择的数值。这个盘问ChB被发送给证明者算法P。
操作#5:
在接收到盘问ChB时,证明者算法P响应于接收的盘问ChB产生发送给核查者算法V的响应Rsp。在ChB=0的情况下,证明者算法P产生响应Rsp=r0。在ChB=1的情况下,证明者算法P产生响应Rsp=r1。在操作#5中产生的响应Rsp被发送给核查者算法V。
操作#6:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在ChB=0的情况下,核查者算法V执行r0<-Rsp。然后,核查者算法V核查c0=H(r0,ChA·r0-t1,ChA·F(r0)-e1)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在ChB=1的情况下,核查者算法V执行r1<-Rsp。然后,核查者算法V核查c1=H1(r1,ChA·(y-F(r1)-G(t1,r1)-e1)的等式是否成立。核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与5遍方案相关的高效算法结构的例子。通过使用该算法,通信所需的数据大小显著减小。
(3-2-2:并行化算法(图11))
接下来,将参照图11描述使图10中示出的高效算法并行化的方法。然而,将省略密钥产生算法Gen的结构的进一步描述。
如上所述,应用与5遍方案相关的以上交互协议使得可将成功伪造的可能性保持在(1/2+1/q)或更小。因此,两次执行交互协议使得可将成功伪造的可能性保持在(1/2+1/q)2或更小。另外,如果N次执行交互协议,则成功伪造的可能性变为(1/2+1/q)N或更小,并且如果N被设置为足够大的数字(例如,N=80),则成功伪造的可能性变小至可以忽略。
例如,可想到的多次执行交互协议的方法包括:串行方法,顺序地多次重复消息、盘问和响应的交换;和并行方法,在单次交换中交换多个消息、盘问和响应。这里,现在将描述并行地执行以上与5遍方案相关的交互协议的算法(以下,称为并行化算法)。
操作#1:
证明者算法P首先针对i=1到N执行下面的过程(1)至(4)。
过程(1):证明者算法P随机产生作为集合Kn的元素的向量r0i、t0i和作为集合Km的元素的向量e0i
过程(2):证明者算法P计算r1i<-s-r0i。这项计算等同于利用向量r0i掩蔽秘密密钥s。
过程(3):证明者算法P计算c0i<-H(r0i,t0i,e0i)。
过程(4):证明者算法P计算c1i<-H(r1i,G(t0i,r1i)+e0i)。
在针对i=1到N执行以上过程(1)至(4)之后,证明者算法P执行哈希值Cmt<-H(c01,c11,...,c0N,c1N)。在操作#1中产生的哈希值Cmt 被发送给核查者算法V。
操作#2:
在接收到哈希值Cmt时,核查者算法V针对i=1到N随机从q个环K的原点选择一个数字ChAi并且把选择的数字ChAi(i=1到N)发送给证明者算法P。
操作#3:
在接收到数字ChAi(i=1到N)时,证明者算法P针对i=1到N计算t1i<-ChAi·r0i-t0i。另外,证明者算法P针对i=1到N计算e1i<-ChAi·F(r0i)-e0i。然后,证明者算法P把t11,...,t1N和e11,...,e1N发送给核查者算法V。
操作#4:
在接收到t11,...,t1N和e11,...,e1N时,核查者算法V针对i=1到N从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的两个数值{0,1}之间选择数值,并在盘问ChBi中设置选择的数值。这个盘问ChBi(i=1到N)被发送给证明者算法P。
操作#5:
在接收到盘问ChBi(i=1到N)时,证明者算法P针对i=1到N响应于接收的盘问ChBi产生发送给核查者算法V的响应Rspi。在ChBi=0的情况下,证明者算法P产生响应Rspi=(r0i,c1i)。在ChBi=1的情况下,证明者算法P产生响应Rspi=(r1i,c0i)。在操作#5中产生的响应Rspi(i=1到N)被发送给核查者算法V。
操作#6:
在接收到响应Rspi(i=1到N)时,核查者算法V使用接收的响应Rspi(i=1到N)执行下面的过程(1)和(2)。
过程(1):在ChBi=0的情况下,核查者算法V执行(r0i,c1i)<-Rspi。然后,核查者算法V计算c0i=H(r0i-ChAi·r0i–t1i,ChAi·F(r0i)-e1i)。核查者算法V随后存储(c0i,c1i)。
过程(2):在ChBi=1的情况下,核查者算法V执行(r1i,c0i)<-Rspi。然后,核查者算法V计算c1i=H(r1i-ChAi·(y-F(r1i))-G(t1i, r1i)-e1i)。核查者算法V随后存储(c0i,c1i)。
在针对i=1到N执行过程(1)和(2)之后,核查者算法V核查Cmt=H(c01,c11,...,c0N,c1N)的等式是否成立。核查者算法V在这些核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与5遍方案相关的并行化高效算法的结构的例子。此外,图11中示出的并行化算法包括这样的设计:消息在被发送之前被转换成哈希值。该设计提高通信效率。类似地,可修改结构,以使得盘问ChA1,...,ChAN,ChB1,...,ChBN或响应Rsp1,...,RspN在被发送之前被转换成哈希值。以这种方式修改结构能够实现预期的通信效率的进一步提高。
[3-3:基于高阶多元多项式的高效算法(方案#1)]
前述高效算法使用这样的性质:通过利用在前述公式(8)中定义的一组二次多项式fi表示多元多项式F,在前述公式(10)中定义的多项式G变为双线性。这里,图10中示出的高效算法使用这样的事实:公钥F(s)能够被分成作为ChA倍数的项取决于ChA的部分和另一部分。然而,即使在5遍方案的情况下,当多项式G针对x和y中的至少一个为线性时,即使当多项式G不是双线性时,也能够同样构造高效算法。
(使用三次多项式fi的高效算法的构造)
将像在3遍方案的情况下一样检查使用环R的三次多项式fl构造高效算法的方法。当三次多项式fl被表示为前述公式(17)时,能够从公式(19)和公式(20)理解这样的事实:Gx(x,y)和Gy(x,y)针对x和y变为线性。
因此,使用前述性质,通过引入新变量r0、r1、t0、u0和e0,公钥F(s)被分成作为ChA倍数的项。由于多项式Gx和Gy针对x和y为线性,所以使用变量r0、r1、t0、u0和e0建立下面的公式(32)至公式(35)之间的关系。下面的公式(32)至公式(35)能够被分成取决于ChA的第一部分和不取决于ChA的第二部分。这里,能够利用(r1,t1,u1, e1)再现第一部分。能够利用(r0,t1,u1,e1)再现第二部分。
例如,下面的公式(32)中所包括的“e0,Gx(t0,r1)”、下面的公式(33)中所包括的“t0”、下面的公式(34)中所包括的“u0”和下面的公式(35)中所包括的“e0,Gy(r0,u0)”是第一部分。另一方面,下面的公式(32)中所包括的“ChAi·F(r0+r1),e1,ChA·F(r1),Gx(t1,r1)”、下面的公式(33)中所包括的“ChA·r0,t1”、下面的公式(34)中所包括的“ChA·r1,u1”和下面的公式(35)中所包括的“ChA·F(r0),Gy(r0,u1),e1”是第二部分。
从秘密密钥s的定义和下面的公式(32)至公式(35)之间的关系,即使当使用(r1,t1,u1,e1)和(r0,t1,u1,e1)中的任何一个时也确保不可获得秘密密钥s的事实。使用这种性质能够例如实现使用环R的三次多项式fl构造与5遍方案相关的高效算法(以下,扩展算法)。
[数学表达式17]
ChA·F(r0+r1)=e0+e1+ChA·F(r1)+Gx(t0,r1)+Gx(t1,r1)
…(32)
ChA·r0=t0+t1
…(33)
ChA·r1=uO+u1
…(34)
ChA·F(r0)+Gy(r0,u1)+Gy(r0,u0)=e0+e1
…(35)
以下,将描述特定扩展算法结构的例子。关于扩展算法的设计的两个基本点在于:在下面的公式(36)和公式(37)中表示的消息被发送给核查者以及针对由核查者选择的ChA核查取决于ChA的部分(第一部分)。这里,由于防止在核查时以其它r0和r1替换在产生消息时使用的r0和r1,所以将在以下介绍添加了关于r0和r1的核查的结构的例子。
[数学表达式18]
c0=H(t0,e0-Gy(r0,u0))
…(36)
c1=H(u0,Gx(t0,r1)+e0)
…(37)
(3-3-1:基本结构(图12))
首先,将参照图12描述与5遍方案相关的扩展算法的基本结构。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图12中所示,证明者算法P随机产生作为集合Kn的元素的向量r0、t0、u0和作为集合Km的元素的向量e0。随后,证明者算法P计算r1<-s-r0。这项计算等同于利用向量r0掩蔽秘密密钥s。随后,证明者算法P计算c0<-H(r0,t0,e0-Gy(r0,u0))。随后,证明者算法P计算c1<-H(r1,u0,Gx(t0,r1)+e0)。在操作#1中产生的消息(c0,c1)被发送给核查者算法V。
操作#2:
在接收到消息(c0,c1)时,核查者算法V随机选择数字ChA。数字ChA被发送给证明者算法P。
操作#3:
在接收到数字ChA时,证明者算法P计算t1<-ChA·r0-t0。随后,证明者算法P计算u1<-ChA·r1–u0。随后,证明者算法P计算e1<-ChA·F(r0)+ChA·Gy(r0,r1)–e0。然后,在操作#1中产生的(t1,u1,e1)被发送给核查者算法V。
操作#4:
在接收到(t1,u1,e1)时,核查者算法V从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的两个数值{0,1}之间选择数值,并在盘问ChB中设置选择的数值。这个盘问ChB被发送给证明者算法P。
操作#5:
在接收到盘问ChB时,证明者算法P响应于接收的盘问ChB产生发送给核查者算法V的响应Rsp。在ChB=0的情况下,证明者算法P产生响应Rsp=r0。在ChB=1的情况下,证明者算法P产生响应Rsp=r1。在操作#5中产生的响应Rsp被发送给核查者算法V。
操作#6:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在ChB=0的情况下,核查者算法V核查c0=H(r0,ChA·r0-t1,ChA·F(r0)+Gy(r0,u1)-e1)的等式是否成立。核查者算法V在这些核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在ChB=1的情况下,核查者算法V核查c1=H(r1,ChA·r1-u1,ChA·(y-F(r1))-Gx(t1,r1)-e1)的等式是否成立。核查者算法V在这些核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与5遍方案相关的扩展算法结构的例子。通过使用该算法,通信所需的数据大小显著减小。此外,使用三次多项式能够实现更高的安全性。
(3-3-2:并行化算法(图13))
接下来,将参照图13描述与5遍方案相关的扩展算法的并行化的方法。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图13中所示,证明者算法P针对i=1到N执行下面的过程。首先,证明者算法P随机产生作为集合Kn的元素的向量r0i、t0i、u0i和作为集合Km的元素的向量e0i。随后,证明者算法P计算r1i<-s-r0i。这项计算等同于利用向量r0i掩蔽秘密密钥s。随后,证明者算法P计算c0i<-H(r0i,t0i,e0i,-Gy(r0i,u0i))。随后,证明者算法P计算c1i<-H(r1i,u0i-Gx(t0i,r1i)+e0i)。
操作#1(继续):
在计算(c01,c11,...,c0N,c1N)之后,证明者算法P计算哈希值Cmt<-H(c01,c11,...,c0N,c1N)。在操作#1中产生的哈希值Cmt被发送给核查者算法V。
操作#2:
在接收到哈希值Cmt时,核查者算法V随机选择数字ChA1,...,ChAN。数字ChA1,...,ChAN被发送给证明者算法P。
操作#3:
在接收到数字ChA1,...,ChAN时,证明者算法P针对i=1到N执行下面的过程。首先,证明者算法P计算t1i<-ChAi·r0i-t0i。随后,证明者算法P计算u1i<-ChAi·r1i-u0i。随后,证明者算法P计算e1i<-ChAi·F(r0i)+ChAi·Gy(r0i,r1i)-e0i
然后,在操作#3中产生的(t11,u11,e11,...,t1N,u1N,e1N)被发送给核查者算法V。
操作#4:
在接收到(t11,u11,e11,...,t1N,u1N,e1N)时,核查者算法V针对i=1到N从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可针对i=1到N从代表核查模式的两个数值{0,1}之间选择数值,并在盘问ChBi中设置选择的数值。盘问ChB1至ChBN被发送给证明者算法P。
操作#5:
在接收到盘问ChB1至ChBN时,证明者算法P针对i=1到N响应于接收的盘问ChBi产生发送给核查者算法V的响应Rspi。在ChBi=0的情况下,证明者算法P产生响应Rspi=(r0i,c1i)。在ChBi=1的情况下,证明者算法P产生响应Rspi=(r1i,c0i)。在操作#5中产生的响应Rspi被发送给核查者算法V。
操作#6:
在接收到响应Rspi(i=1到N)时,核查者算法V针对i=1到N使用接收的响应Rspi执行下面的过程。
在ChBi=0的情况下,核查者算法V计算c0i=H(r0i-ChAi·r0i– t1i,ChAi·F(r0i)+Gy(r0i,u1i)-e1i)。核查者算法V随后存储(c0i,c1i)。
在ChBi=1的情况下,核查者算法V计算c1i=H(r1i,ChAi·r1i-u1i,ChAi·(y-F(r1i))-Gx(t1i,r1i)-e1i)。核查者算法V随后存储(c0i,c1i)。
在针对i=1到N执行前述过程之后,核查者算法V核查Cmt=H(c01,c11,...,c0N,c1N)的等式是否成立。核查者算法V在这些核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与5遍方案相关的扩展算法结构的并行化。通过使用该算法,通信所需的数据大小显著减小。此外,使用三次多项式能够实现更高的安全性。
[3-4:基于高阶多元多项式的高效算法(方案#2)]
到目前为止,已描述使用环R的三次多项式fl构造高效算法的方法。这里,将考虑使用在特性q和阶qk的环R中定义的高阶多项式fl构造扩展算法的方法。高阶多项式fl被表示为例如下面的公式(38)。当使用高阶多项式fl时,定义为G(x,y)=F(x+y)–F(x)–F(y)=(g1,...,gm)的多项式G的分量g1被表示为下面的公式(39)。
[数学表达式19]
针对作为集合R的元素的ChA建立下面的公式(40)中示出的关系。另外,还建立下面的公式(41)中示出的关系。因此,使用这种性质(以下,称为准线性),通过引入新变量r0、r1、t0z和e0,公钥F(s)被分成作为ChA倍数的项。由于G具有准线性,所以使用变量r0、 r1、t0z和e0建立下面的公式(42)至公式(44)之间的关系。下面的公式(42)至公式(44)能够被分成取决于ChA的第一部分和不取决于ChA的第二部分。这里,能够利用(r1,t1z,e1)再现第一部分。能够利用(r0,t1z,e1)再现第二部分。
例如,下面的公式(42)中所包括的“e0,ΣGz(t0z,r1)”、下面的公式(43)中所包括的“t0z”和下面的公式(44)中所包括的“e0”是第一部分。另一方面,下面的公式(42)中所包括的“ChA·F(r0+r1),e1,ChA·F(r1),ΣGz(t1z,r1)”、下面的公式(43)中所包括的“ChA q(-z)·r0,t1z”(其中q(z)=qz并且这同样适用于以下的描述)和下面的公式(44)中所包括的“ChA·F(r0),e1”是第二部分。
从秘密密钥s的定义和下面的公式(42)至公式(44)之间的关系,即使当使用(r1,t1z,e1)和(r0,t1z,e1)中的任何一个时也确保不可获得秘密密钥s的事实。使用这种性质能够例如实现使用环R的高阶多项式fl构造与5遍方案相关的高效算法(以下,高阶扩展算法)。
[数学表达式20]
G(x1+x2,y)=G(x1,y)+G(x2,y)
…(41)
ChA·F(r0)=eO+e1
…(44)
以下,将描述特定高阶扩展算法结构的例子。关于高阶扩展算法的设计的两个基本点在于:在下面的公式(45)和公式(46)中表示的消息被发送给核查者以及针对由核查者选择的ChA核查取决于ChA的部分(第一部分)。这里,由于“防止在核查时以其它r0和r1替换在产生消息时使用的r0和r1”,所以将在以下介绍添加了关于r0和r1的核查的结构的例子。
[数学表达式21]
c0=H(t01,…,t0k,e0)
…(45)
(3-4-1:基本结构(图14))
首先,将参照图14描述与5遍方案相关的高阶扩展算法的基本结构。然而,将省略密钥产生算法Gen的结构的进一步描述。
操作#1:
如图14中所示,证明者算法P随机产生作为集合Kn的元素的向量r0、t01、t0k和作为集合Km的元素的向量e0。随后,证明者算法P计算r1<-s-r0。这项计算等同于利用向量r0掩蔽秘密密钥s。随后,证明者算法P计算c0<-H(r0,t01,...,t0k,e0)。随后,证明者算法P计算c1<-H(r1zGz(t0z,r1)+e0)(其中Σz代表针对z=1至k之和)。在操作#1中产生的消息(c0,c1)被发送给核查者算法V。
操作#2:
在接收到消息(c0,c1)时,核查者算法V随机选择数字ChA。数字ChA被发送给证明者算法P。
操作#3:
在接收到数字ChA时,证明者算法P针对z=1至k计算t1z<- (ChA)q(z–1)·r0-t0z。随后,证明者算法P计算e1<-ChA·F(r0)–e0。在操作#3中产生的(t11,...,t1k,e1)被发送给核查者算法V。
操作#4:
在接收到(t11,...,t1k,e1)时,核查者算法V从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可从代表核查模式的两个数值{0,1}之间选择数值,并在盘问ChB中设置选择的数值。这个盘问ChB被发送给证明者算法P。
操作#5:
在接收到盘问ChB时,证明者算法P响应于接收的盘问ChB产生发送给核查者算法V的响应Rsp。在ChB=0的情况下,证明者算法P产生响应Rsp=r0。在ChB=1的情况下,证明者算法P产生响应Rsp=r1。在操作#5中产生的响应Rsp被发送给核查者算法V。
操作#6:
在接收到响应Rsp时,核查者算法V使用接收的响应Rsp执行下面的核查过程。
在ChB=0的情况下,核查者算法V核查c0=H(r0,(ChA)q(0)·r0–t11,...,(ChA)q(k-1)·r0–t1k,ChA·F(r0)–e1)的等式是否成立。核查者算法V在这些核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
在ChB=1的情况下,核查者算法V核查c1=H(r1,ChA·(y-F(r1))-ΣzGz(t1z,r1))的等式是否成立。核查者算法V在这些核查成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与5遍方案相关的高阶扩展算法结构的例子。通过使用该算法,通信所需的数据大小显著减小。此外,通过使用高阶多项式,实现更高的安全性。
(3-4-2:并行化算法(结构例子1)(图15))
接下来,将参照图15描述使与5遍方案相关的高阶扩展算法并行化的方法。然而,将省略密钥产生算法Gen的结构的进一步描 述。
操作#1:
如图15中所示,证明者算法P针对i=1到N执行下面的过程。首先,证明者算法P随机产生作为集合Kn的元素的向量r0i,t01i,...,t0ki和作为集合Km的元素的向量e0i。随后,证明者算法P计算r1i<-s-r0i。这项计算等同于利用向量r0i掩蔽秘密密钥s。随后,证明者算法P计算c0i<-H(r0i,t01i,...,t0ki,e0i)。随后,证明者算法P计算c1i<-H(r1izGz(t0zi,r1i)+e0i)(其中Σz代表针对z=1至k之和)。在操作#1中产生的消息(c0i,c1i)(其中i=1到N)被发送给核查者算法V。
操作#2:
在接收到消息(c0i,c1i)(其中i=1到N)时,核查者算法V随机选择数字ChA1,...,ChAN。数字ChA1,...,ChAN被发送给证明者算法P。
操作#3:
在接收到数字ChA1,...,ChAN时,证明者算法P针对i=1到N和z=1至k计算t1zi<-(ChAi)q(z-1)·r0i-t0zi。随后,证明者算法P计算e1i<-ChAi·F(r0i)-e0i。然后,在操作#3中产生的(t11i,...,t1ki,e1i)(其中i=1到N)被发送给核查者算法V。
操作#4:
在接收到(t11i,...,t1ki,e1i)(其中i=1到N)时,核查者算法V针对i=1到N从两种核查模式之间选择使用哪种核查模式。例如,核查者算法V可针对i=1到N从代表核查模式的两个数值{0,1}之间选择数值,并在盘问ChBi中设置选择的数值。盘问ChBi(其中i=1到N)被发送给证明者算法P。
操作#5:
在接收到盘问ChBi(其中i=1到N)时,证明者算法P针对i=1到N响应于接收的盘问ChBi产生发送给核查者算法V的响应Rspi。在ChBi=0的情况下,证明者算法P产生响应Rspi=r0i。在ChBi=1的情况下,证明者算法P产生响应Rspi=r1i。在操作#5中产生的响应Rspi(其中i=1到N)被发送给核查者算法V。
操作#6:
在接收到响应Rspi(i=1到N)时,核查者算法V针对i=1到N使用接收的响应Rspi执行下面的核查过程。
在ChBi=0的情况下,核查者算法V核查c0i=H(r0i,(ChAi)q(0)·r0i–t11i,(ChAi)q(k-1)·r0i–t1ki,ChAi·F(r0i)–e1i)的等式是否成立。在ChBi=1的情况下,核查者算法V核查c1i=H(r1i,ChAi·(y–F(r1i)–ΣzGz(t1zi,r1i))的等式是否成立。
核查者算法V在这些核查全都成功的情况下输出值1以指示验证成功,并且在核查失败的情况下输出值0以指示验证失败。
以上描述了与5遍方案相关的高阶扩展算法结构的并行化。通过使用该算法,通信所需的数据大小显著减小。此外,通过使用高阶多项式,实现更高的安全性。
(3-4-3:并行化算法(结构例子2:高效率)(图16))
然而,在图15中示出的高阶扩展算法的并行化结构中,消息(c0i,c1i)(其中i=1到N)在没有改变的情况下在第一遍被发送。然而,考虑到通信效率,优选地,利用一个哈希值统一发送消息(c0i,c1i)(其中i=1到N)。为了在第一遍利用一个哈希值统一发送消息(c0i,c1i)(其中i=1到N),可如图16中所示修改算法结构。
在图16的结构的例子中,证明者算法P在操作#1中计算哈希值Cmt<-H(c01,c11,...,c0N,c1N)。在操作#5中产生响应Rspi时,证明者算法P在ChBi=0的情况下产生响应Rspi=(r0i,c1i),并且在ChBi=1的情况下产生响应Rspi=(r1i,c0i)。另一方面,核查者算法V在操作#6中从(ChAi,ChBi,Rspi)(其中i=1到N)产生(c01,c11,...,c0N,c1N),并且核查Cmt=H(c01,c11,...,c0N,c1N)的等式是否成立。执行这种修改能够实现通信效率的进一步提高。
以上描述了基于高阶扩展算法的高效并行化算法。
(3-4-4:并行化算法(结构例子2:更高效率)(图17))
然而,在图15中示出的高阶扩展算法的并行化结构中,消息(c0i,c1i)(其中i=1到N)在没有改变的情况下在第一遍被发送。另外, (t11i,...,t1ki,e1i)(其中i=1到N)在没有改变的情况下在第三遍被发送。然而,考虑到通信效率,优选地,利用一个哈希值统一发送消息(c0i,c1i)(其中i=1到N)。另外,优选地,利用一个哈希值统一发送(t11i,...,t1ki,e1i)(其中i=1到N)。为了在第一遍利用一个哈希值统一发送消息(c0i,c1i)(其中i=1到N)并且在第三遍利用一个哈希值统一发送(t11i,...,t1ki,e1i)(其中i=1到N),如图17中所示修改算法结构。
在图17的结构的例子中,证明者算法P在操作#1中计算哈希值Cmt<-H(c01,c11,...,c0N,c1N)。证明者算法P在操作#3中计算哈希值CmtB<-H(t111,...,t1kN,e11,...,e1N)。在操作#5中产生响应Rspi时,证明者算法P在ChBi=0的情况下产生响应Rspi=(r0i,t01i,...,t0ki,e0i,c1i),并且在ChBi=1的情况下产生响应Rspi=(r1i,t11i,...,t1ki,e1i,c0i)。
另一方面,核查者算法V在操作#6中从(ChAi,ChBi,Rspi)(其中i=1到N)和(t111,...,t1kN,e11,...,e1N)产生(c01,c11,...,c0N,c1N),并且核查CmtA=(c01,c11,...,c0N,c1N)和CmtB=(t111,...,t1kN,e11,...,e1N)的等式是否成立。执行这种修改能够实现通信效率的进一步提高。
以上描述了基于高阶扩展算法的另一高效并行化算法。
通过应用上述高阶扩展算法,能够实现具有更高安全性的高效公钥验证方案。例如,当在与5遍方案相关的扩展算法中(q,n,m,N)=(24,45,30,88)时,公钥的大小是120位,秘密密钥的大小是180位,并且通信数据的大小是27512位。
例如,当在与5遍方案相关的高阶扩展算法的情况下满足(q,n,m,N)=(22,42,40,118)时,在相同程度上确保安全性。在这种条件下,公钥的大小是80位,秘密密钥的大小是84位,并且通信数据的大小是27814位。也就是说,通过应用高阶扩展算法,能够在相同程度上保持通信数据的大小,并且能够显著减小公钥的大小和秘密密钥的大小。
该条件可被修改为(q,n,m,N)=(23,28,27,97)。在这种情况 下,公钥的大小是81位,秘密密钥的大小是84位,并且通信数据的大小是27145位。另外,该条件可被修改为(q,n,m,N)=(24,21,20,88)。在这种情况下,公钥的大小是80位,秘密密钥的大小是84位,并且通信数据的大小是28392位。在任何条件下,实现显著的效率。
<4:数字签名方案的修改>
这里,将介绍把前述公钥验证方案修改为数字签名方案的方法。
当公钥验证方案的模型中的证明者与数字签名方案中的签名者匹配时,能够容易地理解对数字签名方案的模型的近似,因为仅证明者能够说服核查者。基于这种思想,将描述把上述公钥验证方案修改为数字签名方案的方法。
[4-1:把3遍公钥验证方案修改为数字签名方案]
首先,将描述把3遍的公钥验证方案修改为数字签名方案。
(4-1-1:数字签名算法(结构例子1)(图18))
如图18中所示,利用三次的交互和四次操作(即,操作#1至操作#4)表示与3遍方案相关的高效算法(例如,参见图6和8)。
操作#1包括产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)的过程(1)和计算Cmt<-H(c01,c11,c21,...,c0N,c1N,c2N)的过程(2)。由证明者算法P在操作#1中产生的Cmt被发送给核查者算法V。
操作#2包括选择Ch1,...,ChN的过程,由核查者算法V在操作#2中选择的Ch1,...,ChN被发送给证明者算法P。
操作#3包括使用Ch1,...,ChN和a1...,aN产生Rsp1,...,RspN的过程。这个过程被表示为Rspi<-Select(Chi,ai)。由证明者算法P在操作#3中产生的Rsp1,...,RspN被发送给核查者算法V。
操作#4包括使用Ch1,...,ChN和Rsp1,...,RspN再现c01,c11,c21,...,c0N,c1N,c2N的过程(1)和使用再现的c01,c11,c21,...,c0N,c1N,c2N核查Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)的过程(2)。
利用前述操作#1至操作#4表示的公钥验证方案的算法被修改为 图18中示出的签名产生算法Sig和签名核查算法Ver。
(签名产生算法Sig)
首先,将描述签名产生算法Sig的结构。签名产生算法Sig包括下面的过程(1)至(5)。
过程(1):签名产生算法Sig产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)。
过程(2):签名产生算法Sig计算Cmt<-H(c01,c11,c21,...,c0N,c1N,c2N)。
过程(3):签名产生算法Sig计算(Ch1,...,ChN)<-H(M,Cmt)。这里,M是附加有签名的文档。
过程(4):签名产生算法Sig计算Rspi<-Select(Chi,ai)。
过程(5):签名产生算法Sig设置(Cmt,Rsp1,...,RspN)作为签名。
(签名核查算法Ver)
接下来,将描述签名核查算法Ver的结构。签名核查算法Ver包括下面的过程(1)至(3)。
过程(1):签名核查算法Ver计算(Ch1,...,ChN)<-H(M,Cmt)。
过程(2):签名核查算法Ver使用Ch1,...,ChN和Rsp1,...,RspN产生c01,c11,c21,...,c0N,c1N,c2N
过程(3):签名核查算法Ver使用再现的c01,c11,c21,...,c0N,c1N,c2N核查Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)。
如上所述,通过匹配公钥验证方案的模型中的证明者与数字签名方案中的签名者,公钥验证方案的算法能够被修改为数字签名方案的算法。
(4-1-2:数字签名算法(结构例子2:高效率)(图19))
然而,当关注图18中示出的签名产生算法Sig时,能够意识到,已在过程(2)和(3)中执行哈希值的计算。另外,当关注签名核查算法Ver时,能够意识到,已在过程(1)中执行与签名产生算法Sig的过程(3)相同的哈希值的计算。当如图19中所示关注这些过程而改进签名产生算法Sig和签名核查算法Ver的结构时,能够进一步提高 计算效率。
(签名产生算法Sig)
首先,将参照图19描述改进的签名产生算法Sig的结构。签名产生算法Sig包括下面的过程(1)至(4)。
过程(1):签名产生算法Sig产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)。
过程(2):签名产生算法Sig计算(Ch1,...,ChN)<-H(M,c01,c11,c21,...,c0N,c1N,c2N)。这里,M是附加有签名的文档。
过程(3):签名产生算法Sig计算Rspi<-Select(Chi,ai)。
过程(4):签名产生算法Sig设置(Ch1,...,ChN,Rsp1,...,RspN)作为签名。
(签名核查算法Ver)
接下来,将描述改进的签名核查算法Ver的结构。签名核查算法Ver包括下面的过程(1)和(2)。
过程(1):签名核查算法Ver使用Ch1,...,ChN和Rsp1,...,RspN产生c01,c11,c21,...,c0N,c1N,c2N
过程(2):签名核查算法Ver使用再现的c01,c11,c21,...,c0N,c1N,c2N核查(Ch1,...,ChN)=H(c01,c11,c21,...,c0N,c1N,c2N)。
通过如上所述改进签名产生算法Sig和签名核查算法Ver的结构,每个算法中的哈希值的计算减少一次,并且因此提高了计算效率。
[4-2:把5遍公钥验证方案修改为数字签名方案]
接下来,将描述把与5遍相关的公钥验证方案修改为数字签名方案。
(4-2-1:数字签名算法(结构例子1)(图20))
如图20中所示,利用五次的交互和六次操作(即,操作#1至操作#6)表示与5遍方案相关的高效算法(例如,参见图11、13和16)。
操作#1包括针对i=1到N产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)的过程(1)和计算Cmt<-H(c01,c11,...,c0N,c1N)的过程(2)。由证明者算法 P在操作#1中产生的Cmt被发送给核查者算法V。
操作#2包括选择ChA1,...,ChAN的过程。由核查者算法V在操作#2中选择的ChA1,...,ChAN被发送给证明者算法P。
操作#3包括针对i=1到N产生bi=(t1i,e1i)的过程。这里,由证明者算法P在操作#3中产生的b1,...,bN被发送给核查者算法V。
操作#4包括选择ChB1,...,ChBN的过程。由核查者算法V在操作#4中选择的ChB1,...,ChBN被发送给证明者算法P。
操作#5包括使用ChB1,...,ChBN、a1,...,aN、b1,...,bN产生Rsp1,...,RspN的过程。这个过程被表示为Rspi<-Select(ChBi,ai,bi)。由证明者算法P在操作#5中产生的Rsp1,...,RspN被发送给核查者算法V。
操作#6包括使用ChA1,...,ChAN、ChB1,...,ChBN、Rsp1,...,RspN再现c01,c11,...,c0N,c1N的过程(1)和使用再现的c01,c11,...,c0N,c1N核查Cmt=H(c01,c11,...,c0N,c1N)的过程(2)。
利用前述操作#1至操作#6表示的公钥验证方案的算法被修改为图20中示出的签名产生算法Sig和签名核查算法Ver。
(签名产生算法Sig)
首先,将描述签名产生算法Sig的结构。签名产生算法Sig包括下面的过程(1)至(7)。
过程(1):签名产生算法Sig产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)。
过程(2):签名产生算法Sig计算Cmt<-H(c01,c11,...,c0N,c1N)。
过程(3):签名产生算法Sig计算(ChA1,...,ChAN)<-H(M,Cmt)。这里,M是附加有签名的文档。
过程(4):签名产生算法Sig针对i=1到N产生bi=(t1i,e1i)。
过程(5):签名产生算法Sig计算(ChB1,...,ChBN)<-H(M,Cmt,ChA1,...,ChAN,b1,...,bN)。另外,可执行修改(ChB1,...,ChBN)<-H(ChA1,...,ChAN,b1,...,bN)。
过程(6):签名产生算法Sig计算Rspi<-Select(ChBi,ai,bi)。
过程(7):签名产生算法Sig设置(Cmt,b1,...,bN,Rsp1,...,RspN)作为数字签名。
(签名核查算法Ver)
接下来,将描述签名核查算法Ver的结构。签名核查算法Ver包括下面的过程(1)至(4)。
过程(1):签名核查算法Ver计算(ChA1,...,ChAN)=H(M,Cmt)。
过程(2):签名核查算法Ver计算(ChB1,...,ChBN)=H(M,Cmt,ChA1,...,ChAN,b1,...,bN)。当在由签名核查算法Ver执行的过程(5)中执行修改为(ChB1,...,ChBN)=H(ChA1,...,ChAN,b1,...,bN)时,签名核查算法Ver计算(ChB1,...,ChBN)=H(ChA1,...,ChAN,b1,...,bN)。
过程(3):签名核查算法Ver使用ChA1,...,ChAN、ChB1,...,ChBN、Rsp1,...,RspN产生c01,c11,...,c0N,c1N
过程(4):签名核查算法Ver使用再现的c01,c11,...,c0N,c1N核查Cmt=H(c01,c11,...,c0N,c1N)。
如上所述,通过匹配公钥验证方案的模型中的证明者与数字签名方案中的签名者,公钥验证方案的算法能够被修改为数字签名方案的算法。
(4-2-2:数字签名算法(结构例子2:高效率)(图21))
如图21中所示,利用五次的交互和六次操作#1至操作#6表示与5遍方案相关的另一高效算法(例如,参见图17)。
操作#1包括针对i=1到N产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)的过程(1)和计算CmtA<-H(c01,c11,...,c0N,c1N)的过程(2)。由证明者算法P在操作#1中产生的CmtA被发送给核查者算法V。
操作#2包括选择ChA1,...,ChAN的过程。由核查者算法V在操作#2中选择的ChA1,...,ChAN被发送给证明者算法P。
操作#3包括针对i=1到N产生bi=(t1i,e1i)的过程(1)和计算CmtB<-H(b1,...,bN)的过程(2)。由证明者算法P在操作#3中产生的CmtB被发送给核查者算法V。
操作#4包括选择ChB1,...,ChBN的过程。由核查者算法V在操作 #4中选择的ChB1,...,ChBN被发送给证明者算法P。
操作#5包括使用ChB1,...,ChBN、a1,...,aN、b1,...,bN产生Rsp1,...,RspN的过程。这个过程被表示为Rspi<-Select(ChBi,ai,bi)。由证明者算法P在操作#5中产生的Rsp1,...,RspN被发送给核查者算法V。
操作#6包括使用ChA1,...,ChAN、ChB1,...,ChBN、Rsp1,...,RspN再现c01,c11,...,c0N,c1N、b1,...,bN的过程(1)、使用再现的c01,c11,...,c0N,c1N核查CmtA=H(c01,c11,...,c0N,c1N)的过程(2)和使用再现的b1,...,bN核查CmtB=H(b1,...,bN)的过程(3)。
利用前述操作#1至操作#6表示的公钥验证方案的算法被修改为图21中示出的签名产生算法Sig和签名核查算法Ver。
(签名产生算法Sig)
首先,将描述签名产生算法Sig的结构。签名产生算法Sig包括下面的过程(1)至(8)。
过程(1):签名产生算法Sig产生ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)。
过程(2):签名产生算法Sig计算CmtA<-H(c01,c11,...,c0N,c1N)。
过程(3):签名产生算法Sig计算(ChA1,...,ChAN)<-H(M,CmtA)。这里,M是附加有签名的文档。
过程(4):签名产生算法Sig针对i=1到N产生bi=(t1i,e1i)。
过程(5):签名产生算法Sig计算CmtB<-H(b1,...,bN)。
过程(6):签名产生算法Sig计算(ChB1,...,ChBN)<-H(M,Cmt,ChA1,...,ChAN,CmtB)。另外,可执行修改(ChB1,...,ChBN)<-H(ChA1,...,ChAN,CmtB)。
过程(7):签名产生算法Sig计算Rspi<-Select(ChBi,ai,bi)。
过程(8):签名产生算法Sig设置(CmtA,CmtB,Rsp1,...,RspN)作为数字签名。
(签名核查算法Ver)
接下来,将描述签名核查算法Ver的结构。签名核查算法Ver 包括下面的过程(1)至(5)。
过程(1):签名核查算法Ver计算(ChA1,...,ChAN)=H(M,CmtA)。
过程(2):签名核查算法Ver计算(ChB1,...,ChBN)=H(M,CmtA,ChA1,...,ChAN,b1,...,bN,CmtB)。当在由签名核查算法Ver执行的过程(6)中执行修改为(ChB1,...,ChBN)=H(ChA1,...,ChAN,CmtB)时,签名核查算法Ver计算(ChB1,...,ChBN)=H(ChA1,...,ChAN,CmtB)。
过程(3):签名核查算法Ver使用ChA1,...,ChAN、ChB1,...,ChBN、Rsp1,...,RspN产生c01,c11,...,c0N,c1N、b1,...,bN
过程(4):签名核查算法Ver使用再现的c01,c11,...,c0N,c1N核查CmtA=H(c01,c11,...,c0N,c1N)。
过程(5):签名核查算法Ver使用再现的b1,...,bN核查CmtB=H(b1,...,bN)。
如上所述,通过匹配公钥验证方案的模型中的证明者与数字签名方案中的签名者,公钥验证方案的算法能够被修改为数字签名方案的算法。
<5:混合类型算法>
已经描述:需要多次执行交互协议,以使得成功伪造的可能性变小至可以忽略。另外,串行方法和并行方法已被介绍为多次执行交互协议的方法。特别地,已给出特定并行化算法的例子而描述并行方法。这里,将介绍组合串行方法和并行方法的混合类型算法。
[5-1:与3遍公钥验证方案相关的混合类型算法]
首先,将描述与3遍公钥验证方案相关的混合类型算法。
(5-1-1:并行串行算法(图22))
将参照图22描述混合类型结构的一个例子(以下,称为并行串行结构)。图22是表示具有基本结构的算法和具有并行串行结构的算法的示图。
在基本结构的情况下,在第一遍,消息Cmt被从证明者发送给 核查者。在第二遍,盘问Ch被从核查者发送给证明者。在第三遍,响应Rsp被从证明者发送给核查者。
另一方面,在并行串行结构的情况下,在第一遍,N次的消息(Cmt1,...,CmtN)被从证明者发送给核查者。在第二遍,一次的盘问Ch1被从核查者发送给证明者。在第三遍,一次的响应Rsp1被从证明者发送给核查者。其后,在证明者和核查者之间顺序地交换盘问Ch2,...,ChN和响应Rsp2,...,RspN
在上述基于公钥验证方案的算法的并行串行结构的情况下,确保针对被动攻击的安全性。另外,交互的次数仅为2N+1次。另外,当利用一个哈希值收集在第一遍发送的N次的消息时,能够提高通信效率。
(5-1-2:串行并行算法(图23))
将参照图23描述混合类型结构的另一例子(以下,称为串行并行结构)。图23是表示具有基本结构的算法和具有串行并行结构的算法的示图。
在基本结构的情况下,在第一遍,消息Cmt被从证明者发送给核查者。在第二遍,盘问Ch被从核查者发送给证明者。在第三遍,响应Rsp被从证明者发送给核查者。
在串行并行结构的情况下,在第一遍,一次的消息Cmt1被从证明者发送给核查者。在第二遍,一次的盘问Ch1被从核查者发送给证明者。其后,在证明者和核查者之间顺序地交换消息Cmt2,...,CmtN和盘问Ch2,...,ChN。在盘问ChN被从核查者发送给证明者之后,N次的响应Rsp2,...,RspN被从证明者发送给核查者。
在上述基于公钥验证方案的算法的串行并行结构的情况下,确保针对主动攻击的安全性。另外,交互的次数仅为2N+1次。
[5-2:与5遍公钥验证方案相关的混合类型算法]
接下来,将描述与5遍公钥验证方案相关的混合类型算法。
(5-2-1:并行串行算法(结构例子#1)(图24))
首先,将参照图24描述混合类型结构的一个例子(以下,称为并 行串行结构#1)。图24是表示具有基本结构的算法和具有并行串行结构#1的算法的示图。
在基本结构的情况下,在第一遍,消息CmtA被从证明者发送给核查者。在第二遍,数字ChA被从核查者发送给证明者。在第三遍,向量CmtB被从证明者发送给核查者。在第四遍,盘问ChB被从核查者发送给证明者。在第五遍,响应Rsp被从证明者发送给核查者。
在并行串行结构#1的情况下,在第一遍,N次的消息(CmtA1,...,CmtAN)被从证明者发送给核查者。在第二遍,一次的数字ChA1被从核查者发送给证明者。在第三遍,一次的向量CmtB1被从证明者发送给核查者。在第四遍,一次的盘问ChB1被从核查者发送给证明者。在第五遍,一次的响应Rsp1被从证明者发送给核查者。其后,在证明者和核查者之间顺序地交换ChA2,...,ChAN、CmtB2,...,CmtBN、ChB2,...,ChBN和响应Rsp2,...,RspN
在并行串行结构#1的情况下,确保针对被动攻击的安全性。另外,交互的次数仅为4N+1次。另外,当利用一个哈希值收集在第一遍发送的N次的消息时,能够提高通信效率。
(5-2-2:并行串行算法(结构例子#2)(图25))
接下来,将参照图25描述混合类型结构的另一例子(以下,称为并行串行结构#2)。图25是表示具有基本结构的算法和具有并行串行结构#2的算法的示图。
在并行串行结构#2的情况下,在第一遍,N次的消息(CmtA1,...,CmtAN)被从证明者发送给核查者。在第二遍,N次的数字(ChA1,...,ChAN)被从核查者发送给证明者。在第三遍,N次的向量(CmtB1,...,CmtBN)被从证明者发送给核查者。在第四遍,一次的盘问ChB1被从核查者发送给证明者。在第五遍,一次的响应Rsp1被从证明者发送给核查者。其后,在证明者和核查者之间顺序地交换ChB2,...,ChBN、响应Rsp2,...,RspN
在并行串行结构#2的情况下,确保针对被动攻击的安全性。另 外,交互的次数仅为2N+3次。另外,当利用一个哈希值收集在第一遍发送的N次的消息、在第三遍发送的N次的向量等时,能够提高通信效率。
(5-2-3:串行并行算法(结构例子#1)(图26))
接下来,将参照图26描述混合类型结构的另一例子(以下,称为串行并行结构#1)。图26是表示具有基本结构的算法和具有串行并行结构#1的算法的示图。
在串行并行结构#1的情况下,在第一遍,一次的消息CmtA1被从证明者发送给核查者。在第二遍,一次的数字ChA1被从核查者发送给证明者。在第三遍,一次的向量CmtB1被从证明者发送给核查者。在第四遍,一次的盘问ChB1被从核查者发送给证明者。其后,在证明者和核查者之间顺序地交换CmtA2,...,CmtAN、ChA2,...,ChAN,、CmtB2,...,CmtBN、ChB2,...,ChBN。最后,N次的响应(Rsp1,...,RspN)被从证明者发送给核查者。
在串行并行结构#1的情况下,确保针对主动攻击的安全性。另外,交互的次数仅为4N+1次。
(5-2-4:串行并行算法(结构例子#2)(图27))
接下来,将参照图27描述混合类型结构的另一例子(以下,称为串行并行结构#2)。图27是表示具有基本结构的算法和具有串行并行结构#2的算法的示图。
在串行并行结构#2的情况下,在第一遍,一次的消息CmtA1被从证明者发送给核查者。在第二遍,一次的数字ChA1被从核查者发送给证明者。其后,在证明者和核查者之间顺序地交换CmtA2,...,CmtAN、ChA2,...,ChAN。在完成ChAN的交换之后,N次的向量(CmtB1,...,CmtBN)被从证明者发送给核查者。随后,N次的盘问(ChB1,...,ChB1)被从核查者发送给证明者。最后,N次的响应(Rsp1,...,RspN)被从证明者发送给核查者。
在串行并行结构#2的情况下,确保针对主动攻击的安全性。另外,交互的次数仅为2N+3次。
以上描述了与5遍公钥验证方案相关的混合类型算法。
<6:补充>
这里,将补充前述公钥验证方案的描述。
[6-1:设置系统参数的方法]
这里,将补充设置参数的方法的描述。
(多元多项式的系数)
以上未描述如何设置多元多项式的系数和用于产生系数的随机数种子(以下,称为多元多项式的系数等)。多元多项式的系数等可以是系统共同的参数,或者可以是对于每个用户而言不同的参数。
然而,当多元多项式的系数等被设置为系统共同的参数时,如果发现多元多项式的弱点,则可能需要更新整个系统的设置。另外,针对具有随机选择的系数的多元多项式分析平均强壮性(求解的难度),但难以确保具有某些特定系数的多元多项式的足够的强壮性。
因此,本技术的发明人已设计这样的结构:通过在伪随机数产生器的种子中使用由每个用户选择的字符串等并且产生多元多项式的系数来产生多元多项式的系数。例如,可设想的方法包括:在种子中使用用户的电子邮件地址的方法和在种子中使用组合电子邮件地址、更新日期等的字符串的方法。当使用这种方法时,即使在具有从给定字符串产生的系数的多元多项式中发现弱点,影响也仅局限于使用具有该系数的用户。另外,由于仅通过改变字符串来改变多元多项式,所以能够容易地解决弱点。
以上描述了设置系统参数的方法。在前面的描述中,已给出字符串作为例子,但对于每个用户可使用不同的数字串或不同的符号串。
(多项式的数量m和变量的数量n)
上述交互协议确保针对被动攻击的安全性。然而,当并行地反复执行交互协议时,需要以下描述的条件以便证明可靠地确保针对主动攻击的安全性。
前面的交互协议是用于通过使用一组密钥(公钥y和秘密密钥s) 向核查者核查“证明者知道针对y满足y=F(s)的s”的算法。由于这个原因,当执行在核查中接受的交互时,核查者知道指示“证明者在交互时使用s”的信息的可能性是不可否认的。另外,未针对多元多项式F确保抗冲突性(collision resistance)。由于这个原因,当并行地反复执行前述交互协议时,难以证明在没有任何条件的情况下可靠地确保针对主动攻击的安全性。
因此,本技术的发明人已检查一种即使当执行在核查中接受的交互时也使核查者不知道指示“证明者在交互时使用s”的信息的方法。另外,本技术的发明人已设计一种即使当并行地反复执行前述交互协议时也能够确保针对主动攻击的安全性的方法。这种方法是把用作公钥的多元多项式f1,...,fm的数量m设置为充分小于变量的数量n的值的方法。例如,设置m和n,以使得2m-n<<1(例如,当n=160并且m=80时,2-80<<1)。
在使其安全性基于解多阶多元联立方程的难度的方案中,即使当给出秘密密钥s1和与其对应的公钥pk时,也难以产生与公钥pk对应的另一秘密密钥s2。由于这个原因,当确保针对公钥pk存在两个或更多的秘密密钥s时,即使当执行在核查中接受的交互时也能够使核查者不知道指示“证明者在交互时使用s”的信息。也就是说,当建立这种保证时,即使当并行地反复执行交互协议时也能够确保针对主动攻击的安全性。
当参照图29考虑包括具有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),当并行地反复执行交互协议时能够确保安全性。
[6-2:对不定期盘问做出响应的方法]
这里,将解释对不定期盘问做出响应的方法。
(6-2-1:证明者的响应方法)
将会考虑核查者在交互协议中给出错误盘问的可能性。例如,在3遍方案的情况下,证明者把消息(c0,c1,c2)发送给核查者,并且核查者把盘问Ch=0发送给证明者。其后,与盘问Ch=0对应的响应Rsp被从证明者发送给核查者。到目前为止,已执行正常的交互。
其后,将会假设:核查者进一步向证明者盘问与盘问Ch=1对应的响应Rsp。如果证明者响应于盘问Ch=1把与该盘问对应的响应Rsp发送给核查者,则秘密密钥可能被泄露给核查者。实际可能发生秘密密钥的泄露。例如,核查者可在第二遍假装发送盘问Ch=0而非盘问Ch=1并且可进一步盘问与盘问Ch=1对应的响应Rsp。另一方面,证明者可能由于通信错误而误解在第二遍发送的盘问Ch的位变为不同的位。
因此,本技术的发明人已设计一种当证明者针对一次的消息盘问与两种或更多的方法的盘问Ch对应的响应时结束交互或使用新随机数从第一遍重新开始交互的方法作为避免秘密密钥的泄露的方法。当应用这种方法时,即使当核查者假装盘问与两种或更多的方法的盘问Ch对应的响应时,也不泄露秘密密钥。
(6-2-2:核查者的响应方法)
接下来,将会考虑证明者假装盘问重新发送盘问Ch的可能性。例如,假设证明者在3遍方案中把消息(c0,c1,c2)发送给核查者,核查者把盘问Ch=0发送给证明者,然后证明者盘问重新发送盘问Ch。当核查者响应于盘问而随机重新选择盘问Ch时,存在选择与先前发送的盘问Ch=0不同的盘问Ch=1的可能性。在这种情况下,盘问 Ch=1被从核查者发送给证明者。假设证明者能够把与盘问Ch=1对应的响应Rsp发送给核查者。
在这种情况下,证明者能够对盘问Ch=1做出响应,但可能不对盘问Ch=0做出响应。也就是说,证明者欺骗核查者的可能性是不可否认的。例如,由于证明者丢失盘问Ch,所以证明者可能向核查者盘问重新发送盘问Ch。另一方面,核查者可能认为先前发送的盘问由于通信错误而丢失并且响应于证明者的盘问而重新发送盘问Ch。然后,当重新发送的盘问Ch不同于先前发送的盘问Ch时,伪造可能成功。
从这个例子可理解,由于盘问Ch被随机选择,所以证明者可能面临伪造的风险。因此,为了不出现伪造的风险,本技术的发明人已设计一种当证明者针对一次的消息重新盘问发送盘问Ch时通过使核查者结束交互或重新发送与前一盘问相同的盘问Ch而非产生新随机数来改进交互协议的方法。应用这种方法能够使用用于重新发送盘问Ch的盘问消除伪造的风险。
以上描述了对不定期盘问做出响应的安全方法。在前面的描述中,已举例说明3遍的基本结构。然而,通过还把相同的思想应用于串行重复结构、并行重复结构或混合类型重复结构,能够提高安全性。当然,这也能够应用于与5遍相关的算法。
<7:硬件结构的例子>
通过使用例如图28中示出的信息处理设备的硬件结构能够执行每个上述算法。也就是说,通过使用计算机程序控制图28中示出的硬件能够实现每个算法的处理。另外,这个硬件的模式是任意的,并且可以是个人计算机、移动信息终端(诸如移动电话、PHS或PDA)、游戏机、接触或非接触IC芯片、接触或非接触IC卡或各种类型的信息设备。此外,PHS是个人手提电话系统的缩写。此外,PDA是个人数字助手的缩写。
如图28中所示,这个硬件主要包括: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通过桥910连接到外部总线912,外部总线912的数据传输速度相对较低。另外,输入单元916是例如鼠标、键盘、触摸面板、按钮、开关或操纵杆。此外,输入单元916可以是能够通过使用红外线或其它无线电波发送控制信号的遥控器。
输出单元918是例如能够以视觉方式或以听觉方式向用户通知获取的信息的显示装置(诸如,CRT、LCD、PDP或ELD)、音频输出装置(诸如,扬声器或头戴式耳机)、打印机、移动电话或传真机。此外,CRT是阴极射线管的缩写。LCD是液晶显示器的缩写。PDP是等离子体显示面板的缩写。此外,ELD是电致发光显示器的缩写。
存储单元920是用于存储各种数据的装置。存储单元920是例如磁存储装置(诸如,硬盘驱动器(HDD))、半导体存储装置、光学存储装置或磁光存储装置。HDD是硬盘驱动器的缩写。
驱动器922是读取记录在可移动记录介质928(诸如,磁盘、光盘、磁光盘或半导体存储器)上的信息或在可移动记录介质928中写信息的装置。可移动记录介质928是例如DVD介质、Blu-ray介质、HD-DVD介质、各种类型的半导体存储介质等。当然,可移动 记录介质928可以是例如安装有非接触式IC芯片的电子装置或IC卡。IC是集成电路的缩写。
连接端口924是诸如USB端口、IEEE1394端口、SCSI、RS-232C端口的端口或者用于连接外部连接的装置930的端口(诸如,光学音频端子)。外部连接的装置930是例如打印机、移动音乐播放器、数字照相机、数字视频照相机或IC记录器。此外,USB是通用串行总线的缩写。此外,SCSI是小型计算机系统接口的缩写。
通信单元926是将要连接到网络932的通信装置,并且是例如用于有线或无线LAN、Bluetooth(注册商标)或WUSB的通信卡、光通信路由器、ADSL路由器或用于接触式或非接触式通信的装置。连接到通信单元926的网络932由有线连接或无线连接的网络构造,并且是例如互联网、家用LAN、红外通信、可见光通信、广播或卫星通信。此外,LAN是局域网的缩写。此外,WUSB是无线USB的缩写。此外,ADSL是非对称数字用户线路的缩写。
<8:总结>
最后,将简要描述根据本技术的实施例的技术内容。这里说明的技术内容能够被应用于各种信息处理设备,诸如个人计算机、移动电话、游戏机、信息终端、信息设备、汽车导航系统等。另外,以下描述的信息处理设备的功能能够通过使用单个信息处理设备或使用多个信息处理设备来实现。另外,用于由以下描述的信息处理设备执行处理的数据存储装置和算术处理装置可被安装在信息处理设备上,或者可被安装在经网络连接的装置上。
前述信息处理设备的功能结构如下实现。例如,在下面的(1)中描述的信息处理设备具有执行与使其安全性基于解多阶多元联立方程的难度的高效公钥验证方案相关的算法的功能。
(1)一种信息处理设备,包括:
消息产生单元,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;
消息提供单元,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;
中间信息产生单元,基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;
中间信息提供单元,把第三信息提供给核查者;以及
响应提供单元,向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(2)如(1)所述的信息处理设备,
其中所述消息产生单元产生N次的消息(其中N≥2),
其中消息提供单元利用一次的交互向核查者提供N次的消息,
其中中间信息产生单元基于由核查者针对N次的消息中的每个消息选择的第一信息和在产生消息时获得的N次的第二信息产生N次的第三信息,
其中中间信息提供单元利用一次的交互向核查者提供N次的第三信息,以及
其中响应提供单元利用一次的交互向核查者提供与由核查者针对N次的消息中的每个消息选择的核查模式对应的N次的响应信息。
(3)如(2)所述的信息处理设备,
其中所述消息产生单元产生N次的消息(其中N≥2)并根据该N次的消息产生一个哈希值,
其中消息提供单元向核查者提供该哈希值,
其中中间信息产生单元基于由核查者针对N次的消息中的每个消息选择的第一信息和在产生消息时获得的N次的第二信息产生N次的第三信息,
其中中间信息提供单元利用一次的交互向核查者提供N次的第三信息,以及
其中响应提供单元利用一次的交互向核查者提供与由核查者针对N次的消息中的每个消息选择的核查模式对应的N次的响应信息、以及即使在基于公钥和响应信息执行预先针对与响应信息对应的核查模式准备的计算也未获得的信息中的一部分。
(4)一种信息处理设备,包括:
信息存储单元,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;
信息提供单元,向提供消息的证明者提供随机选择的第一信息;
中间信息获取单元,获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;
模式信息提供单元,向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;
响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及
核查单元,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R 中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(5)如(4)所述的信息处理设备,
其中所述消息获取单元利用一次的交互获取N次的消息(其中N≥2),
其中信息提供单元针对N次的消息中的每个消息随机选择第一信息,并且利用一次的交互向证明者提供选择的N次的第一信息;
其中中间信息获取单元获取由证明者基于N次的第一信息和在产生N次的消息时获得的N次的第二信息产生的N次的第三信息,
其中模式信息提供单元针对N次的消息中的每个消息选择核查模式,并且利用一次的交互向证明者提供关于选择的N次的核查模式的信息,
其中响应获取单元利用一次的交互从证明者获取与选择的N次的核查模式对应的N次的响应信息,以及
其中当核查针对所有的N次的消息成功时,核查单元确定证明者存储向量s。
(6)如(5)所述的信息处理设备,
其中所述消息获取单元获取根据N次的消息产生的一个哈希值(其中N≥2),
其中信息提供单元针对N次的消息中的每个消息随机选择第一信息,并且利用一次的交互向证明者提供选择的N次的第一信息;
其中中间信息获取单元获取由证明者基于N次的第一信息和在产生N次的消息时获得的N次的第二信息产生的N次的第三信息,
其中模式信息提供单元针对N次的消息中的每个消息选择核查模式,并且利用一次的交互向证明者提供关于选择的N次的核查模式的信息,
其中响应获取单元从证明者获取与选择的核查模式对应的响应信 息、以及即使在基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算也未获得的信息中的一部分,以及
其中核查单元基于哈希值、消息中的一部分、公钥和响应消息核查证明者是否存储向量s,并且当核查针对所有的N次的消息成功时,核查单元确定证明者存储向量s。
(7)一种信息处理方法,包括下述步骤:
基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;
把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;
基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;
把第三信息提供给核查者;以及
向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(8)一种信息处理方法,包括下述步骤:
由信息处理设备存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向 量s产生的消息;
向提供消息的证明者提供随机选择的第一信息;
获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;
向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;
从证明者获取与选择的核查模式对应的响应信息;以及
基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(9)一种程序,使计算机实现:
消息产生功能,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;
消息提供功能,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;
中间信息产生功能,基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;
中间信息提供功能,把第三信息提供给核查者;以及
响应提供功能,向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(10)一种程序,使计算机实现:
信息存储功能,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取功能,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;
信息提供功能,向提供消息的证明者提供随机选择的第一信息;
中间信息获取功能,获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;
模式信息提供功能,向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;
响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及
核查功能,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2) 被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(11)一种存储有程序的计算机可读记录介质,该程序使计算机实现:
消息产生功能,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;
消息提供功能,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;
中间信息产生功能,基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;
中间信息提供功能,把第三信息提供给核查者;以及
响应提供功能,向核查者提供与核查者从k(其中k≥2)种核查模式之中选择的核查模式对应的响应信息,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(12)一种存储有程序的计算机可读记录介质,该程序使计算机实现:
信息存储功能,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取功能,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;
信息提供功能,向提供消息的证明者提供随机选择的第一信息;
中间信息获取功能,获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;
模式信息提供功能,向证明者提供关于从k(其中k≥3)种核查模式之中随机选择的一种核查模式的信息;
响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及
核查功能,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F和向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)(其中l=1,2)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
(13)如(1)至(6)中任何一项所述的设备,其中上述m和n具有m<n的关系。
(14)如(13)所述的设备,其中上述m和n具有2m-n<<1的关系。
(备注)
前述证明者算法P是消息产生单元、消息提供单元、响应提供单元、中间信息产生单元和中间信息提供单元的例子。另外,前述核查者算法V是信息存储单元、消息获取单元、模式信息提供单元、响应获取单元、核查单元和中间信息获取单元的例子。
以上参照附图描述了本发明的优选实施例,但本发明当然不限于以上例子。本领域技术人员可在所附权利要求的范围内发现各种改变 和修改,并且应该理解,它们将会自然落在本发明的技术范围内。
标号列表
Gen 密钥产生算法
P 证明者算法
V 核查者算法
Sig 签名产生算法
Ver 签名核查算法

Claims (10)

1.一种信息处理设备,包括:
消息产生单元,基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;
消息提供单元,把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;
中间信息产生单元,基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;
中间信息提供单元,把第三信息提供给核查者;以及
响应提供单元,向核查者提供与核查者从k种核查模式之中选择的核查模式对应的响应信息,其中k≥2,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F是公钥或系统参数,并且向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中l=1,2,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
2.如权利要求1所述的信息处理设备,
其中所述消息产生单元产生N次的消息,其中N≥2,
其中消息提供单元利用一次的交互向核查者提供N次的消息,
其中中间信息产生单元基于由核查者针对N次的消息中的每个消息选择的第一信息和在产生消息时获得的N次的第二信息产生N次的第三信息,
其中中间信息提供单元利用一次的交互向核查者提供N次的第三信息,以及
其中响应提供单元利用一次的交互向核查者提供与由核查者针对N次的消息中的每个消息选择的核查模式对应的N次的响应信息。
3.如权利要求2所述的信息处理设备,
其中所述消息产生单元产生N次的消息并根据该N次的消息产生一个哈希值,其中N≥2,
其中消息提供单元向核查者提供该哈希值,
其中中间信息产生单元基于由核查者针对N次的消息中的每个消息选择的第一信息和在产生消息时获得的N次的第二信息产生N次的第三信息,
其中中间信息提供单元利用一次的交互向核查者提供N次的第三信息,以及
其中响应提供单元利用一次的交互向核查者提供与由核查者针对N次的消息中的每个消息选择的核查模式对应的N次的响应信息、以及即使在基于公钥和响应信息执行预先针对与响应信息对应的核查模式准备的计算也未获得的信息中的一部分。
4.一种信息处理设备,包括:
信息存储单元,存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;
信息提供单元,向提供消息的证明者提供随机选择的第一信息;
中间信息获取单元,获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;
模式信息提供单元,向证明者提供关于从k种核查模式之中随机选择的一种核查模式的信息,其中k≥3;
响应获取单元,从证明者获取与选择的核查模式对应的响应信息;以及
核查单元,基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F是公钥或系统参数,并且向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中l=1,2,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
5.如权利要求4所述的信息处理设备,
其中所述消息获取单元利用一次的交互获取N次的消息,其中N≥2,
其中信息提供单元针对N次的消息中的每个消息随机选择第一信息,并且利用一次的交互向证明者提供选择的N次的第一信息;
其中中间信息获取单元获取由证明者基于N次的第一信息和在产生N次的消息时获得的N次的第二信息产生的N次的第三信息,
其中模式信息提供单元针对N次的消息中的每个消息选择核查模式,并且利用一次的交互向证明者提供关于选择的N次的核查模式的信息,
其中响应获取单元利用一次的交互从证明者获取与选择的N次的核查模式对应的N次的响应信息,以及
其中当核查针对所有的N次的消息成功时,核查单元确定证明者存储向量s。
6.如权利要求5所述的信息处理设备,
其中所述消息获取单元获取根据N次的消息产生的一个哈希值,其中N≥2,
其中信息提供单元针对N次的消息中的每个消息随机选择第一信息,并且利用一次的交互向证明者提供选择的N次的第一信息;
其中中间信息获取单元获取由证明者基于N次的第一信息和在产生N次的消息时获得的N次的第二信息产生的N次的第三信息,
其中模式信息提供单元针对N次的消息中的每个消息选择核查模式,并且利用一次的交互向证明者提供关于选择的N次的核查模式的信息,
其中响应获取单元从证明者获取与选择的核查模式对应的响应信息、以及即使在基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算也未获得的信息中的一部分,以及
其中核查单元基于哈希值、消息中的一部分、公钥和响应消息核查证明者是否存储向量s,并且当核查针对所有的N次的消息成功时,核查单元确定证明者存储向量s。
7.一种信息处理方法,包括下述步骤:
基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息;
把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者;
基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息;
把第三信息提供给核查者;以及
向核查者提供与核查者从k种核查模式之中选择的核查模式对应的响应信息,其中k≥2,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F公钥或系统参数,并且向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中l=1,2,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
8.一种信息处理方法,包括下述步骤:
由信息处理设备存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s));
获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息;
向提供消息的证明者提供随机选择的第一信息;
获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息;
向证明者提供关于从k种核查模式之中随机选择的一种核查模式的信息,其中k≥3;
从证明者获取与选择的核查模式对应的响应信息;以及
基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F是公钥或系统参数,并且向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及
其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中l=1,2,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
9.一种信息处理设备,包括:
用于基于一组多阶多元多项式F=(f1,...,fm)和作为集合Kn的元素的向量s产生消息的装置;
用于把消息提供给存储所述一组多阶多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核查者的装置;
用于基于由核查者随机选择的第一信息和在产生消息时获得的第二信息产生第三信息的装置;
用于把第三信息提供给核查者的装置;以及
用于向核查者提供与核查者从k种核查模式之中选择的核查模式对应的响应信息的装置,其中k≥2,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F是公钥或系统参数,并且向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中l=1,2,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
10.一种信息处理设备,包括:
用于存储一组多阶多元多项式F=(f1,...,fm)和向量y=(y1,...,ym)=(f1(s),...,fm(s))的装置;
用于获取基于所述一组多阶多元多项式F和作为集合Kn的元素的向量s产生的消息的装置;
用于向提供消息的证明者提供随机选择的第一信息的装置;
用于获取由证明者基于第一信息和在产生消息时获得的第二信息产生的第三信息的装置;
用于向证明者提供关于从k种核查模式之中随机选择的一种核查模式的信息的装置,其中k≥3;
用于从证明者获取与选择的核查模式对应的响应信息的装置;以及
用于基于消息、第一信息、第三信息、所述一组多阶多元多项式F和响应信息核查证明者是否存储向量s的装置,
其中所述向量s是秘密密钥,
其中所述一组多阶多元多项式F是公钥或系统参数,并且向量y是公钥,
其中消息是通过基于公钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的核查模式准备的计算而获得的信息,以及其中所述一组多阶多元多项式F包括在特征q和阶次qk的环R中定义的多项式f1,...,fm,并且以针对向量x1=(xl1,...,xln)定义为G(x1,x2)=F(x1+x2)-F(x1)-F(x2)的多项式G(x1,x2)被配置为与(xli)q(z)成比例的项的方式设置所述一组多阶多元多项式F,其中l=1,2,其中1≤i≤n,q(z)=qz,并且1≤z≤k。
CN201280038070.5A 2011-08-12 2012-06-25 信息处理设备和信息处理方法 Active CN103718502B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-177071 2011-08-12
JP2011177071A JP5790287B2 (ja) 2011-08-12 2011-08-12 情報処理装置、情報処理方法、プログラム、及び記録媒体
PCT/JP2012/066125 WO2013024629A1 (ja) 2011-08-12 2012-06-25 情報処理装置、情報処理方法、プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
CN103718502A CN103718502A (zh) 2014-04-09
CN103718502B true CN103718502B (zh) 2017-02-22

Family

ID=47714958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280038070.5A Active CN103718502B (zh) 2011-08-12 2012-06-25 信息处理设备和信息处理方法

Country Status (12)

Country Link
US (1) US9178700B2 (zh)
EP (1) EP2744146A4 (zh)
JP (1) JP5790287B2 (zh)
KR (1) KR101986392B1 (zh)
CN (1) CN103718502B (zh)
AU (1) AU2012296044B2 (zh)
BR (1) BR112014002854A2 (zh)
CA (1) CA2839690A1 (zh)
MX (1) MX338025B (zh)
RU (1) RU2603551C2 (zh)
TW (1) TWI511517B (zh)
WO (1) WO2013024629A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014090372A (ja) * 2012-10-31 2014-05-15 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
US10484186B2 (en) * 2016-09-30 2019-11-19 Intel Corporation Cascading multivariate quadratic identification schemes for chain of trust
CN110995438B (zh) * 2019-10-24 2022-07-12 南京可信区块链与算法经济研究院有限公司 一种非交互零知识证明方法、系统及存储介质
CN111090842B (zh) * 2019-12-23 2022-04-26 上海源庐加佳信息科技有限公司 一种基于零知识证明的供应链金融客户贷款信息保护方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1232588A (zh) * 1996-08-19 1999-10-20 Ntru密码系统公司 公用密钥密码系统方法及设备
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
EP0739107B1 (de) * 1995-04-12 2000-07-26 Deutsche Telekom AG Public-Key-Verfahren zur Verschlüsselung von Daten
JP2007325318A (ja) * 2007-09-03 2007-12-13 Murata Mach Ltd 署名システム
CN101321058A (zh) * 2007-06-07 2008-12-10 管海明 一种用于编码和译码数字消息的方法和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2230814T3 (es) * 1999-04-29 2005-05-01 Cp8 Technologies Metodos y sistemas de firma de clave publica.
CN100380862C (zh) * 1999-10-01 2008-04-09 法国电信公司 验证实体真实性或消息完整性的方法、系统、设备
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
KR101367101B1 (ko) * 2006-08-30 2014-02-25 삼성전자주식회사 다항식환을 이용한 키 합의 방법 및 이를 위한 장치
US9059838B2 (en) * 2007-03-30 2015-06-16 Verizon Patent And Licensing Inc. Encryption algorithm with randomized buffer
US8019079B2 (en) * 2007-07-08 2011-09-13 Georgia Tech Research Corporation Asymmetric cryptosystem employing paraunitary matrices
US8837736B2 (en) * 2008-04-14 2014-09-16 Koninklijke Philips N.V. Method for distributing encryption means
JP5593850B2 (ja) * 2010-05-31 2014-09-24 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP5594034B2 (ja) 2010-07-30 2014-09-24 ソニー株式会社 認証装置、認証方法、及びプログラム
US8565435B2 (en) * 2010-08-16 2013-10-22 International Business Machines Corporation Efficient implementation of fully homomorphic encryption
US9083526B2 (en) * 2011-04-29 2015-07-14 International Business Machines Corporation Fully homomorphic encryption

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0739107B1 (de) * 1995-04-12 2000-07-26 Deutsche Telekom AG Public-Key-Verfahren zur Verschlüsselung von Daten
CN1232588A (zh) * 1996-08-19 1999-10-20 Ntru密码系统公司 公用密钥密码系统方法及设备
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
CN101321058A (zh) * 2007-06-07 2008-12-10 管海明 一种用于编码和译码数字消息的方法和系统
JP2007325318A (ja) * 2007-09-03 2007-12-13 Murata Mach Ltd 署名システム

Also Published As

Publication number Publication date
MX2014001451A (es) 2014-02-27
JP5790287B2 (ja) 2015-10-07
AU2012296044A1 (en) 2014-01-30
KR101986392B1 (ko) 2019-06-05
EP2744146A4 (en) 2015-06-17
RU2603551C2 (ru) 2016-11-27
MX338025B (es) 2016-03-31
US9178700B2 (en) 2015-11-03
AU2012296044B2 (en) 2016-02-25
US20140153717A1 (en) 2014-06-05
CN103718502A (zh) 2014-04-09
TWI511517B (zh) 2015-12-01
RU2014104084A (ru) 2015-08-10
TW201308969A (zh) 2013-02-16
JP2013042295A (ja) 2013-02-28
KR20140046455A (ko) 2014-04-18
CA2839690A1 (en) 2013-02-21
BR112014002854A2 (pt) 2017-03-01
WO2013024629A1 (ja) 2013-02-21
EP2744146A1 (en) 2014-06-18

Similar Documents

Publication Publication Date Title
CN103095453B (zh) 应用私有集合交集的公钥加密的布隆过滤器
CN102263638B (zh) 认证设备、认证方法和签名生成设备
CN104011781B (zh) 信息处理设备、信息处理方法
CN103718502B (zh) 信息处理设备和信息处理方法
Beimel et al. The all-or-nothing nature of two-party secure computation
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN103718501B (zh) 信息处理设备和信息处理方法
CN102957538A (zh) 信息处理设备和信息处理方法
CN103931136A (zh) 信息处理设备、签名生成设备、信息处理方法、签名生成方法以及程序
CN105635135A (zh) 一种基于属性集及关系谓词的加密系统及访问控制方法
Ma et al. Practical privacy-preserving frequent itemset mining on supermarket transactions
CN103155480B (zh) 认证装置和认证方法
Mashhadi et al. Provably secure verifiable multi‐stage secret sharing scheme based on monotone span program
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
Oppliger Cryptography 101: From Theory to Practice
CN111245615B (zh) 一种基于身份的数字签名密码逆向防火墙方法
CN104137471A (zh) 信息处理设备、信息处理方法以及程序
CN103733563A (zh) 信息处理设备、签名产生设备、信息处理方法、签名产生方法和程序
Zhao et al. Oblivious DFA evaluation on joint input and its applications
CN109936530A (zh) 一种基于云外包的密钥共享方法及其门禁系统
Lindell et al. Completeness for symmetric two-party functionalities-revisited
Wang et al. A Quantum Concurrent Signature Scheme Based on the Quantum Finite Automata Signature Scheme
Yang et al. A secure scalar product protocol against malicious adversaries
CN103782331A (zh) 信息处理设备、签名产生设备、签名核查设备、信息处理方法、签名产生方法和签名核查方法
CN103733562A (zh) 信息处理设备和信息处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1193682

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: GR

Ref document number: 1193682

Country of ref document: HK