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

文档序号:2397855阅读:148来源:国知局
信息处理设备和信息处理方法
【专利摘要】实现高度安全的公开秘钥认证方案。本发明提供了一种信息处理设备:基于在环(K)上定义的多阶多元多项式集合(F=(f1,…,fm))和向量s(s∈Kn)生成消息;将所述消息提供给验证者,验证者知道多阶多元多项式集合(F)和向量y(y=(y1,…,ym)=(f1(s),…,fm(s)));以及向所述验证者提供响应信息,响应信息对应于验证者从k(其中k≥3)个验证模式中选择的验证模式。向量s构成秘密密钥,多阶多元多项式集合(F)和向量y构成公开密钥,消息包括通过利用秘密密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,并且多元多项式集合(F)是使用针对每个用户而不同的信息生成的。
【专利说明】信息处理设备和信息处理方法
【技术领域】
[0001 ] 本技术涉及信息处理设备和信息处理方法。
【背景技术】
[0002]随着信息处理技术和通信技术的快速发展,文档被快速数字化,无论该文档是公开的还是私人的。随着这些文档的数字化,许多个人和公司对电子文档的安全性管理具有相当大的关注。响应于该关注的增加,在各个领域中已经积极研究了针对诸如窃取或伪造电子文档的篡改行为的措施。关于对电子文件的窃取,例如通过加密电子文档来确保安全性。另外,关于对电子文件的伪造,例如通过使用数字签名来确保安全性。然而,当要使用的加密或数字签名不具有高防篡改性时,不能确保足够的安全性。
[0003]数字签名用于指定电子文档的作者。因此,数字签名应仅能够由电子文档的作者生成。如果恶意第三方能够生成相同的数字签名,则这样的第三方可以模仿电子文档的作者。即,电子文档被恶意第三方伪造。关于防止这样的伪造的数字签名的安全性,已经表达了各种观点。作为目前广泛使用的数字签名方案,例如已知RSA签名方案和DSA签名方案。
[0004]RSA签名方案采用“大合数的质因数分解(下文中为质因数分解问题)的难度”作为安全性基础。另外,DSA签名方案采用“求解离散对数问题的难度”作为安全性的基础。这些基础基于不存在通过使用传统计算机高效地求解质因数分解问题和离散对数问题的算法。即,上述难度提出了传统计算机的计算难度。然而,据说当使用量子计算机时,可以高效地计算质因数分解问题和离散对数问题的解。
[0005]类似于RSA签名方案和DSA签名方案,目前采用的数字签名方案和公开密钥认证方案中的多种方案也采用质因数分解问题或离散对数问题的难度作为安全性基础。因此,如果量子计算机投入实际使用,则这样的数字签名方案和公开密钥认证方案的安全性将不能确保。从而,期望实现新的数字签名方案和公开密钥认证方案,其采用与可通过量子计算机容易求解的诸如质因数分解问题和离散对数问题的问题不同的问题作为安全性的基础。作为不能通过量子计算机容易求解的问题,例如存在关于多元多项式的问题。
[0006]例如,作为采用多元多项式问题作为安全性基础的数字签名方案,已知基于Matsumoto-1mai (MI)密码、隐藏域方程(HFE)密码、油醋(Oil-Vinegar,0V)签名方案、以及温顺变换方法(Tamed Transformation Method, TTM)密码的数字签名方案。例如,在下面的非专利文献1和2中公开了基于HFE的数字签名方案。
[0007]引用列表
[0008]非专利文献
[0009]非专利文献 1:Jacques Patarin, Asymmetric Cryptography with a HiddenMonomial, CRYPT01996, pp.45-60。
[0010]非专利文献2:Patarin, J.,Courtois, N.,and Goubin, L., QUARTZ, 128-Bit LongDigital Signatures, In Naccache, D.,EcL Topics in Cryptology-CT-RSA2001 (San Francisco, CA, USA, April2001), vol.2020of Lecture Notes in Computer Science, Springer-Verlag.,pp.282-297。

【发明内容】

[0011]技术问题
[0012]如上所述,多元多项式问题是即使在使用量子计算机时也难以求解的被称为NP困难问题的问题的示例。通常,使用以HFE等为代表的多元多项式问题的公开密钥认证方案使用具有特定陷门的多阶多元联立方程。例如,提供关于Xl,…,xn的多阶多元联立方程F (χ1;…,xn) =y和线性转换A和B,并秘密地管理线性转换A和B。在该情况下,多阶多元联立方程F和线性转换A和B为陷门。[0013]知道陷门F、A和B的实体可以求解关于x1;…,xn的方程B (F (A (x1;…,xn))) =y ’。另一方面,不知道陷门F、A和B的实体不能求解关于Χρ…,χη的方程B(F(A(Xi,…,xn)))=y’。通过使用该机制,可以实现采用求解多阶多元联立方程的难度作为安全性基础的公开密钥认证方案和数字签名方案。
[0014]如上所述,为了实现公开密钥认证方案或数字签名方案,需要准备满足B(F(A(Xl,一,^)))=7的特定多阶多元联立方程。另外,在签名生成时,需要求解多阶多元联立方程F。为此,可用的多阶多元联立方程F已经限于相对容易可解的方程。即,在过去的方案中,仅仅使用了可以相对容易求解的三个函数(陷门)B、F和A的组合形式的多阶多元联立方程B(F(A(χ1;…,xn))) =y,因此难以确保足够的安全性。
[0015]期望提供一种新颖的和改善的信息处理设备和信息处理方法,并且能够使用高效求解方法(陷门)未知的多阶多元联立方程实现具有高安全性的公开密钥认证方案或数字签名方案。
[0016]解决问题的技术方案
[0017]根据本技术的一个方面,提供了一种信息处理设备,包括:消息生成单兀,基于在环K上定义的多阶多元多项式集合F=(f\,-,fffl)和作为集合Kn的元素的向量s生成消息;消息提供单元,将消息提供到验证者,所述验证者保存所述多阶多元多项式集合F和向量y= (υι, *.., ym) = (fi(s),…,fm(s));以及响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k (其中k ^ 3)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0018]根据本技术的另一方面,提供了一种信息处理设备,包括:信息保持单元,保持在环κ上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y”..., ym) = (f!(s),…,fm(s));消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;模式信息提供单元,向已提供了消息的证明者提供关于从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及验证单元,基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0019]根据本技术的另一方面,提供了一种信息处理设备,包括:消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f\,-,fffl)和作为集合Kn的元素的向量S生成消息;消息提供单元,将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y= (Υι,…,ym) = (f!(s),...,fm(s));以及中间信息生成单元,利用由验证者随机选择的第一/[目息和在生成消息时获得的第二?目息来生成第二?目息;中间?目息提供单兀,向所述验证者提供第三信息;以及响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k (其中2)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0020]根据本技术的另一方面,提供了一种信息处理设备,包括:信息保持单元,保持在环κ上定义的多阶多元多项式集合F=(f1,…,fm)和向量y=(y”..., ym) = (f!(s),…,fm(s));消息获取单元,获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;信息提供单元,向已提供了消息的证明者提供随机选择的第一信息;中间信息获取单元,获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第二信息;模式信息提供单元,向证明者提供关于从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及验证单元,基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0021]根据本技术的另一方面,提供了一种信息处理方法,包括:基于在环K上定义的多阶多元多项式集合F=(f\, -,fffl)和作为集合Kn的元素的向量s生成消息;将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(yp…,ym) = (f1(s),…,fm(s));以及向验证者提供响应信息,所述响应信息对应于由验证者从k (其中k > 3)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0022]根据本技术的另一方面,提供了一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合FKfu…,fm)和向量y=(yp…,ym) = (f\ (s),…,fm(s)),所述信息处理方法包括:获取基于多阶多元多项式集合F和作为集合1^的元素的向量s生成的消息;向已提供了消息的证明者提供关于从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;从所述证明者获取对应于选择的验证模式的响应信息;以及基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0023]根据本技术的另一方面,提供了一种信息处理方法,包括:基于在环K上定义的多阶多元多项式集合F=(f\,-,fffl)和作为集合Kn的元素的向量s生成消息;将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(yp…,ym) = (f1(s),…,fm(s));利用由验证者随机选择的第一信息和在生成消息时获得的第二信息生成第三信息;向验证者提供第三信息;以及向验证者提供响应信息,所述响应信息对应于由验证者从k (其中
2)个验证模式中选择的验证模式。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0024]根据本技术的另一方面,提供了一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合FKfu…,fm)和向量y=(yp…,ym) = (f\ (s),…,fm(s)),所述信息处理方法包括:获取基于多阶多元多项式集合F和作为集合1^的元素的向量s生成的消息;向已提供了消息的证明者提供随机选择的第一信息;获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;向证明者提供从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s。所述向量s为秘密密钥。所述多阶多元多项式集合F和向量y为公开密钥。所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息。所述多阶多元多项式集合F是利用根据每个用户而不同的信息生成的。
[0025]根据本技术的另一方面,提供了一种用于使得计算机实现包括在所述信息处理设备中的每个单元的功能的程序。根据本技术的另一方面,提供了一种记录有程序的计算机可读记录介质。
[0026]发明的有益效果
[0027]根据上述本技术,可以利用高效求解方法(陷门)未知的多阶多元联立方程实现高安全性的公开密钥认证方案和数字签名方案。
【专利附图】

【附图说明】
[0028]图1为用于描述公开密钥认证方案的算法结构的说明图;
[0029]图2为用于描述数字签名方案的算法结构的说明图;
[0030]图3为用于描述η通公开密钥认证方案的算法结构的说明图;
[0031]图4为用于描述根据本技术第一实施例(3通)的公开密钥认证方案的算法的说明图;
[0032]图5为用于描述根据相同实施例的公开密钥认证方案的扩展算法的说明图;
[0033]图6为用于描述根据相同实施例的公开密钥认证方案的并行算法的说明图;
[0034]图7为用于描述 根据相同实施例的公开密钥认证方案的特定算法的说明图;
[0035]图8为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0036]图9为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;[0037]图10为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0038]图11为用于描述根据相同实施例的公开密钥认证方案的并行化的说明图;
[0039]图12为用于描述将根据相同实施例的公开密钥认证方案的高效算法转换为数字签名方案的算法的方法的说明图;
[0040]图13为用于描述将根据相同实施例的公开密钥认证方案的高效算法转换为高效数字签名方案的算法的方法的说明图;
[0041]图14为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行串行结构的说明图;
[0042]图15为用于描述根据相同实施例的公开密钥认证方案的高效算法的串行并行结构的说明图;
[0043]图16为用于描述根据本技术第二实施例(5通)的公开密钥认证方案的算法的说明图;
[0044]图17为用于描述根据相同实施例的公开密钥认证方案的扩展算法的说明图;
[0045]图18为用于描述根据相同实施例的公开密钥认证方案的并行算法的说明图;
[0046]图19为用于描述根据相同实施例的公开密钥认证方案的扩展算法的并行化的说明图;
[0047]图20为用于描述根据相同实施例的公开密钥认证方案的特定算法的说明图;
[0048]图21为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0049]图22为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0050]图23为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0051]图24为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0052]图25为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0053]图26为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0054]图27为用于描述根据相同实施例的公开密钥认证方案的高效算法的说明图;
[0055]图28为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行化的说明图;
[0056]图29为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行化的说明图;
[0057]图30为用于描述根据相同实施例的公开密钥认证方案的高效算法的进一步高效化的说明图;
[0058]图31为用于描述根据相同实施例的公开密钥认证方案的高效算法的进一步高效化的说明图;
[0059]图32为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行串行结构的说明图;
[0060]图33为用于描述根据相同实施例的公开密钥认证方案的高效算法的并行串行结构的说明图;
[0061]图34为用于描述根据相同实施例的公开密钥认证方案的高效算法的串行并行结构的说明图;
[0062]图35为用于描述根据相同实施例的公开密钥认证方案的高效算法的串行并行结构的说明图;
[0063]图36为用于描述提高根据第一和第二实施例的交互协议的鲁棒性的技术的说明图;
[0064]图37为用于描述提高根据第一和第二实施例的交互协议的鲁棒性的技术的说明图;
[0065]图38为用于描述能够执行根据本技术的每个实施例的算法的信息处理设备的硬件配置示例的说明图;
[0066]图39为示出根据本技术的第一和第二实施例的公开密钥认证方案的效率的比较的图表;以及
[0067]图40为用于描述对在根据本技术的第一和第二实施例的公开密钥认证方案中使用的参数进行设置的非常合适的方法和有益效果的说明图。
【具体实施方式】
[0068]下文中,将参照附图详细描述本发明的优选实施例。注意,在该说明书和附图中,用相同的附图标记表示具有基本相同的功能和结构的元件,并省略重复的说明。
[0069][说明的流程]
[0070]这里,将简单描述要在以下说明本技术的实施例的流程。首先,将参考图1描述公开密钥认证方案的算法结构。接下来,将参考图2描述数字签名方案的算法结构。接下来,将参考图3描述η通公开密钥认证方案。
[0071]然后,将参考图4描述根据本技术第一实施例(3通)的公开密钥认证方案的算法。然后,将参考图5描述根据相同实施例的公开密钥认证方案的扩展算法。然后,将参考图6描述根据相同实施例的公开密钥认证方案的并行算法。然后,将参考图7描述根据相同实施例的公开密钥认证方案的特定算法。然后,将参考图8至图15描述根据相同实施例及其变型示例的公开密钥认证方案的高效算法。
[0072]然后,将参考图16描述根据本技术第二实施例(5通)的公开密钥认证方案的算法。然后,将参考图17描述根据相同实施例的公开密钥认证方案的扩展算法。然后,将参考图18和图19描述根据相同实施例的公开密钥认证方案的并行算法。然后,将参考图20描述根据相同实施例的公开密钥认证方案的特定算法。然后,将参考图21至图35描述根据相同实施例及其变型示例的公开密钥认证方案的高效算法。
[0073]然后,将描述用于将根据本技术第一和第二实施例的高效算法应用到二阶或更高阶多元多项式的扩展技术。然后,将描述增加根据本技术第一和第二实施例的交互协议的鲁棒性的机制。另外,将参考图36和图37描述防止由不规则挑战导致的秘密密钥泄露的机制和消除伪造风险的机制。然后,将参考图38描述能够实现根据本技术第一和第二实施例的算法的信息处理设备的硬件配置示例。
[0074]最后,将简要描述本实施例的技术精神的概要和根据该技术精神获得的有益操作效果。
[0075](具体章节)
[0076]1:引言
[0077]1-1:公开密钥认证方案的算法[0078]1-2:数字签名方案的算法
[0079]1-3:N通公开密钥认证方案
[0080]2:第一实施例
[0081]2-1:公开密钥认证方案的算法
[0082]2-2:扩展算法
[0083]2-3:并行算法
[0084]2-4:具体示例(当使用二阶多项式时)
[0085]2-5:高效算法
[0086]2-6:对数字签名方案的修改
[0087]2-6-1:变换方法
[0088]2-6-2:数字签名算法的高效化
[0089]2-7:多阶多元联立方程的形式
[0090]2-7-1:关于公用密钥块密码的形式
[0091]2-7-2:关于哈希函数的形式
[0092]2-7-3:关于流密码的形式
[0093]2-8:串行并行混合算法
[0094]3:第二实施例
[0095]3-1:公开密钥认证方案的算法
[0096]3-2:扩展算法
[0097]3-3:并行算法
[0098]3-4:具体示例(当使用二阶多项式时)
[0099]3-5:高效算法
[0100]3-6:串行并行混合算法
[0101]4:高效算法的扩展
[0102]4-1:多元高阶多项式
[0103]4-2:扩展方案(增加高阶项)
[0104]5:增强鲁棒性的机制
[0105]5-1:设置系统参数的方法
[0106]5-2:响应不规则挑战的方法
[0107]5-2-1:证明者的响应方法
[0108]5-2-2:验证者的响应方法
[0109]6:硬件配置
[0110]7:结论
[0111]〈1:引言〉
[0112]首先,在详细描述本技术的实施例前,将简要描述公开密钥认证方案的算法、数字签名方案的算法和η通公开密钥认证方案的概要。
[0113][1-1:公开密钥认证方案的算法]
[0114]首先,将参考图1描述公开密钥认证方案的算法的概要。图1为用于描述公开密钥认证方案的算法结构的说明图。[0115]当人(证明者)通过使用公开密钥pk和秘密密钥sk使另一个人(验证者)相信她是证明者本人时使用公开密钥认证。例如,使得验证者B知道证明者A的公开密钥pkA。另一方面,由证明者A秘密管理证明者A的秘密密钥skA。根据公开密钥认证方案,知道对应于公开密钥pkA的秘密密钥skA的人被认为是证明者本人。
[0116]为了使得证明者A利用公开密钥认证设置向验证者B证明她是证明者A本人,证明者A经由交互协议向验证者B呈现指示她知道对应于公开密钥pkA的秘密密钥skA的证据。然后向验证者B呈现指示证明者A知道秘密密钥skA的证据,并且在验证者B能够确认证据的情况下,证明者A的有效性(证明者A是她本人的事实)被证明。
[0117]然而,公开密钥认证设置要求以下条件以确保安全性。
[0118]第一条件为,“尽可能降低由没有秘密密钥sk的伪造者在执行交互协议时建立伪造的可能性”。将满足该第一条件称为“鲁棒性”。换句话说,鲁棒性表示,“由不具有秘密密钥sk的伪造者在执行交互协议期间以不可忽略的可能性未建立伪造”。第二条件为,“即使执行交互协议,关于证明者A的秘密密钥skA的信息完全未泄漏给验证者B”。将满足该第二条件称为“零知识”。
[0119]安全地进行公开密钥认证包括使用表现稳健性和零知识两者的交互协议。如果假设利用缺乏稳健性和零知识的交互协议进行认证处理,则将存在错误验证的明确几率和泄漏秘密密钥信息的明确几率,从而即使处理自身成功完成,仍不能证明证明者的有效性。从而,如何确保会话协议的稳健性和零知识的问题很重要。
[0120](模型)
[0121]如图1所示,在公开密钥认证方案的模型中,存在两个实体,即证明者和验证者。证明者通过使用密钥生成算法Gen生成对于证明者唯一的一对公开密钥pk和秘密密钥sk。然后,证明者通过使用利用密钥生成算法Gen生成的一对秘密密钥sk和公开密钥pk执行与验证者的交互协议。此时,证明者通过使用证明者算法P执行交互协议。如上所述,在交互协议中,证明者通过使用证明者算法P向验证者证明她具有秘密密钥sk。
[0122]另一方面,验证者通过使用验证者算法V执行交互协议,并验证证明者是否具有与证明者已经公布的公开密钥对应的秘密密钥。即,验证者是验证证明者是否具有与公开密钥对应的秘密密钥的实体。如上所述,公开密钥认证方案的模型由两个实体,即证明者和验证者,以及三个算法,即密钥生成算法Gen、证明者算法P和验证者算法V构成。
[0123]另外,在下面的描述中使用“证明者”和“验证者”的表述,但是这些表述严格地表示实体。因此,执行密钥生成算法Gen和证明者算法P的主体是对应于实体“证明者”的信息处理设备。类似地,执行验证者算法V的主体是信息处理设备。例如,这些信息处理设备的硬件配置如图38所示。S卩,通过CPU902基于记录在R0M904、RAM906、存储单元920、可移除记录介质928等上的程序执行密钥生成算法Gen、证明者算法P和验证者算法V。
[0124](密钥生成算法Gen)
[0125]由证明者使用密钥生成算法Gen。密钥生成算法Gen是用于生成对于证明者唯一的一对公开密钥pk和秘密密钥sk的算法。通过密钥生成算法Gen生成的公开密钥pk被公布。另外,由验证者使用公布的公开密钥pk。另一方面,由证明者秘密地管理通过密钥生成算法Gen生成的秘密密钥sk。由证明者秘密管理的秘密密钥sk用于向验证者证明证明者拥有对应于公开密钥Pk的秘密密钥sk。形式上,将密钥生成算法Gen表示为下面的公式(1),以作为采用安全性参数1λ ( λ为0以上的整数)作为输入、并且输出秘密密钥sk和公开密钥pk的算法。
[0126][数学式1]
[0127](Sk, pk) — Gen(lA)
[0128]…(1)
[0129](证明者算法P)
[0130]由证明者使用证明者算法P。证明者算法P是用于向验证者证明证明者拥有对应于公开密钥pk的秘密密钥sk的算法。换句话说,证明者算法P是采用公开密钥pk和秘密密钥sk作为输入并且执行交互协议的算法。
[0131](验证者算法V)
[0132]由验证者使用验证者算法V。验证者算法V是在会话协议期间验证证明者是否拥有对应于公开密钥pk的秘密密钥sk的算法。验证者算法V是接收公开密钥pk作为输入并且根据会话协议的执行结果输出0或1 (1比特)的算法。此时,验证者在验证者算法V输出0的情况下判定证明者无效,并且在验证者算法V输出1的情况下判定证明者有效。形式上,将验证者算法V表示为下面的公式(2)。
[0133][数学式2] [0134]0/1—V(pk)
[0135]…(2)
[0136]如上所述,实现有效的公开密钥认证包括使得交互协议满足稳健性和零知识两个条件。然而,证明证明者拥有秘密密钥sk包括:证明者执行依赖于秘密密钥sk的过程,并且在通知验证者结果之后,使得验证者基于通知的内容执行验证。执行依赖于秘密密钥sk的过程以确保稳健性。同时,不应向验证者泄漏任何关于秘密密钥sk的信息。为此,巧妙地设计上述密钥生成算法Gen、证明者算法P和验证者算法V以满足这些要求。
[0137]因此,前文总结了公开密钥认证方案中的算法。
[0138][1-2:数字签名方案的算法]
[0139]下面,将参考图2概述数字签名方案的算法。图2为概述数字签名方案的算法的说明图。
[0140]与纸质文档不同,不可能对数字化数据物理地签名或粘贴封印。为此,证明数字化数据的创建者包括产生类似于对纸质文档物理签名或粘贴封印的效果的电子设置。该设置为数字签名。数字签名指的是将给定数据与仅数据创建者知道的签名数据关联、将签名数据提供给接收者、并且在接收者端验证签名数据的设置。
[0141](模型)
[0142]如图2所示,在数字签名方案的模型中存在签名者和验证者两个身份。另外,数字签名方案的模型由三个算法构成:密钥生成算法Gen、签名生成算法Sig、和签名验证算法Ver。
[0143]签名者使用密钥生成算法Gen生成对于签名者唯一的成对的签名密钥sk和验证密钥pk。签名者还使用签名生成算法Sig生成附加到消息Μ的数字签名q。换句话说,签名者是将数字签名附加到消息Μ的实体。同时,验证者使用签名验证算法Ver验证附加到消息Μ的数字签名q。换句话说,验证者是验证数字签名q以确认消息Μ的创建者是否是签名者的实体。
[0144]注意,尽管在下文中使用术语“签名者”和“验证者”,但是这些术语最终表示实体。因此,执行密钥生成算法Gen和签名生成算法Sig的主体是对应于“签名者”实体的信息处理设备。类似地,执行签名验证算法Ver的主体是信息处理设备。例如,这些信息处理设备的硬件配置如图38所示。换句话说,通过诸如CPU902的装置基于记录在诸如R0M904、RAM906、存储单元920或可移除记录介质928的装置上的程序执行密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver。
[0145](密钥生成算法Gen)
[0146]由签名者使用密钥生成算法Gen。密钥生成算法Gen是用于生成对于签名者唯一的成对的签名密钥sk和验证密钥pk的算法。通过密钥生成算法Gen生成的验证密钥pk被公布。同时,签名者将通过密钥生成算法Gen生成的签名密钥sk保密。然后使用签名密钥sk生成附加到消息Μ的数字签名q。例如,密钥生成算法Gen接受安全性参数lp (其中P为大于或等于0的整数)作为输入,并且输出签名密钥sk和验证密钥pk。在该情况下,密钥生成算法Gen在形式上可被表示为下面的公式(3)。
[0147][数学式3]
[0148](sk, pk) — Gen(lA)
[0149]...(3)
[0150](签名生成算法Sig)
[0151]由签名者使用签名生成算法Sig。签名生成算法Sig是生成要被附加到消息Μ的数字签名q的算法。签名生成算法Sig是接受签名密钥sk和消息Μ为输入并且输出数字签名q的算法。签名生成算法Sig在形式上可被表示以下面的公式(4)。
[0152][数学式4]
[0153]σ — Sig(sk, Μ)
[0154]...(4)
[0155](签名验证算法Ver)
[0156]由验证者使用签名验证算法Ver。签名验证算法Ver是验证数字签名q对于消息Μ是否是有效数字签名的算法。签名验证算法Ver是接受签名者的验证密钥pk、消息Μ和数字签名q作为输入并且输出0或1 (1比特)的算法。签名验证算法Ver在形式上可被表示为下面的公式(5)。此时,验证者在签名验证算法Ver输出0的情况下(验证密钥pk拒绝消息Μ和数字签名q的情况)判定数字签名q无效,而在签名验证算法Ver输出1的情况下(验证密钥pk接收消息Μ和数字签名q的情况)确定数字签名q有效。
[0157][数学式5]
[0158]0/1 — Ver (pk, Μ, σ )
[0159]...(5)
[0160]因此,前文概述了数字签名方案中的算法。
[0161][1-3:N通公开密钥认证方案]
[0162]接下来,将参考图3描述η通公开密钥认证方案。图3为示出η通公开密钥认证方案的说明图。
[0163]如上所述,公开密钥认证方案是在交互协议期间向验证者证明证明者拥有对应于公开密钥pk的秘密密钥sk的认证方案。另外,交互协议必须满足稳健性和零知识两个条件。为此,如图3所示,在交互协议期间,证明者和验证者两者都η次交换信息,同时执行各自的处理。
[0164]在η通公开密钥认证方案的情况下,证明者执行利用证明者算法Ρ的处理(运算
#1),并将信息!\发送给验证者。随后,验证者执行利用验证者算法V的处理(运算# 2),并将信息1~2发送给证明者。对于k=3至η (运算# k)连续进行该执行和处理以及信息Tk的发送,并且最后,执行处理(# n+1)。因此,以此方式η次发送和接收信息被称为“η通”公开密钥认证方案。
[0165]因此,前文描述了 η通公开密钥认证方案。
[0166]〈2:第一实施例>
[0167]下文将描述本技术的第一实施例。本文中的实施例涉及安全性基于求解多阶多元联立方程的难度的公开密钥认证方案和数字签名方案。然而,本文中的实施例不同于诸如HFE数字签名方案的现有技术的技术,并且涉及使用缺乏高效求解方法(陷门)的多阶多元联立方程的公开密钥认证方案和数字签名方案。
[0168][2-1:公开密钥认证方案的算法]
[0169]首先,将参考图4描述根据本实施例的公开密钥认证方案(下文中为本技术)的算法。图4为用于描述根 据本技术的算法的说明图。本技术由密钥生成算法Gen、证明者算法P和验证者算法V构成。下面将描述各个算法的结构。
[0170](密钥生成算法Gen)
[0171]密钥生成算法Gen生成在环k中定义的m个多元多项式fi (Xl,...,xn),...,^(Xi,...,xn)和作为集合Kn的元素的向量sKsp...,sn)。接下来,生成算法 Gen 计算 y=(y!,...,ym) <- (f! (s),...,fm(s))。另外,生成算法 Gen 将(?\ (χ1;...,χη),...,fm(Xl,...,xn),y)设置为公开密钥pk,并且将s设置为秘密密钥。下文中,将向量(Xl,..., χη)表示为X,并且将一对多元多项式(fjx),..., fm (χ))表示为F (X)。
[0172](证明者算法P、验证者算法V)
[0173]接下来,将参考图4描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
[0174]在前述交互协议期间,证明者一点也不将关于秘密密钥sk的信息泄漏给验证者,并对验证者表示“她本人知道s满足y=F(s) ”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图4所示的流程图进行描述。
[0175]运算#1:
[0176]首先,证明者算法P选择任意数w。然后,证明者算法P通过将数w应用于伪随机数生成器G1生成作为集合Kn的元素的向量r和数wA。即,证明者算法P计算(r,wA) — Gjw)。随后,证明者算法P通过将数wA应用于伪随机数生成器62生成多元多项式 Fa (x) = (f' (x),..., fAm (χ))。即,证明者算法 P 计算 Fa 一 G2 (wa)。
[0177]运算#1(继续):
[0178]随后,证明者算法P计算z —s-r。该计算等同于利用向量r掩蔽秘密密钥s。另外,证明者算法P计算FB(X) — F(x+r)+FA(X)。该计算等同于利用多元多项式Fa(x)掩蔽关于X的多元多项式F (x+r)。
[0179]运算#1(继续):
[0180]随后,证明者算法P生成Fa(z)和z的哈希值Cl。即,证明者算法P计算Cl —HjFYzhz)。另外,证明者算法P生成数wA的哈希值c2。即,证明者算法P计算c2-H2(wa)0另外,证明者算法P生成多元多项式Fb的哈希值c3。即,证明者算法P计算c3 —H3(Fb(x))。注意,上述(...),Η。...)为哈希函数。哈希值((^(32,(33)作为消息被发送给验证者算法V。此时,应注意,关于s的信息、关于r的信息、和关于z的信息完全未被泄漏给验证者。
[0181]运算# 2:
[0182]在接收到消息(ci,c2,c3)时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
[0183]运算# 3:
[0184]在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应Rsp。在d=0的情况下,证明者算法P生成响应σ =w。在d=l的情况下,证明者算法P生成响应o=(wA,z)。在d=2的情况下,证明者算法P生成响应σ =(FB(Z), z)。在运算# 3中生成的响应σ被发送给验证者算法V。此时,应注意,在d=0的情况下,关于z的信息完全未被泄漏给验证者,并且在d=l或2的情况下,关于r的信息完全未被泄漏给验证者。
[0185]运算#4:
[0186]已接收到响应σ的验证者算法V利用接收到的响应σ执行下面的验证处理。
[0187]在d=0的情况下,验证者算法V计算(rA,wB)—匕(σ )。另外,验证者算法V计算Fc-G2(wb)0然后,验证者算法V验证等Sc2=H2(wb)是否成立。另外,验证者算法V验证等Sc3=H3(F(X+rA)+Fe(X))是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在任一验证失败的情况下输出指示认证失败的值0。
[0188]在d=l的情况下,验证者算法V设置(wB,zA)—。。另外,验证者算法V计算Fc-G2(wb)0然后,验证者算法乂验证等式(31=!11沪(2\24)是否成立。另外,验证者算法V验证等Sc2=H2(wb)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
[0189]在d=2的情况下,验证者算法V设置(FD,zA)—。。然后,验证者算法V验证等式
ZA)是否成立。另外,验证者算法V验证等Sc3=H3(Fd)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
[0190]以上描述了涉及本技术的每个算法结构的示例。
[0191](本技术的稳健性)
[0192]这里,将补充描述本技术的稳健性。基于如下的逻辑确保本技术的稳健性:当证明者算法P针对可由验证者算法V选择的全部挑战d=0、l和2返回适当的响应σ时,可以计算满足下面的公式(6)和公式(7)的穴^、八上
[0193][数学式6][0194]Fd (χ) = F (x+rA) +FC (x)
[0195]...(6)
[0196]Fd (za) -y = Fc (zA)
[0197]...(7)
[0198]通过确保上述稳健性,只要求解多阶多元联立方程的问题未被解出,就确保了不可能以高于2/3的概率成功伪造的事实。即,为了适当地对验证者的全部挑战d=0、l和2做出响应,伪造者必须计算满足前述公式(6)和公式(7)的0、户、1^和zA。换句话说,伪造者必须计算满足F(s)=y的s。然而,存在伪造者对验证者的挑战d=0、l、2中的两个较高挑战做出适当响应的可能性。因此,错误验证的成功概率变为2/3。另外,通过以足够大的次数重复执行上述交互协议,成功伪造的概率变得可忽略地小。
[0199]以上描述了本技术的稳健性。
[0200](变型示例)
[0201]这里,将介绍上述算法的变型示例。密钥生成算法Gen计算y —F(s),并将(F,y)设置为公开密钥。然而,在本变型示例中,密钥生成算法Gen计算(yi,…,ym) —F(s)和(dO)) — (fiOO-yfAOO-yJ,并将(f:,…,f:)设置为公开密钥。在该变型的情况下,可以在y=0处执行交互协议。
[0202]另外,证明者算法P基于Fb(z)和z生成消息Cl。然而,由于关系式Fb(z)=Fa(z),即使在进行修改使得基于FA(z)和z生成消息(^时,也实现了类似的交互协议。另外,可以修改证明者算法P的结构,使得分别计算FB(z)的哈希值和z的哈希值,然后作为消息发送给验证者算法V。
[0203]另外,证明者算法P通过将数w应用于伪随机数生成器匕生成矢量r和数wA。另外,证明者算法P通过将数WA应用于伪随机数生成器g2生成多元多项式Fa(x)。然而,可以修改证明者算法P的结构,使得使用身份映射作为Gi从开始计算w=(r,Fa)。在该情况下,不需要将数w应用于匕。这对于G2是同样的。
[0204]另外,在交互协议中,使用(F,y)作为公开密钥。公开密钥中包括的多元多项式F是不依赖于秘密密钥sk的参数。为此,可以在整个系统中使用公用多元多项式F,而不对每个证明者设置多元多项式F。在该情况下,y足以作为对每个证明者设置的公开密钥,从而可用减小公开密钥的大小。然而,考虑到安全性,期望对每个证明者设置多元多项式F。下文将详细描述在该情况下设置多元多项式F的方法。
[0205]另外,在交互协议中,使用(f\,- ,fm, y)作为公开密钥,并且F=(f\,…,fj是可以适当选择的参数。为此,例如,证明者和验证者可以准备随机数的种子wpk,并利用伪随机数生成器G*计算F — G*(wpk)。在该情况下,即使公开密钥是(wpk,y)并且将(F,y)作为公开密钥公布,也可以减小公开密钥的大小。
[0206]在算法中,利用哈希函数氏、H2和H3计算Cl、c2和c3,但是可以使用承诺函数COM代替哈希函数。承诺函数COM是以字符串S和随机数P为因子的函数。承诺函数的示例包括由Shai Halevi和Silvio Micali在国际会议CRYPT01996上公开的方案。
[0207]当使用承诺函数时,在计算Cp c2和c3前准备随机数Ρ ρ P 2和P 3,并通过应用承诺函数C0M(.,P C0M(.,P2)和C0M(.,P 3)代替应用哈希函数氏(.)、H2(.)和H3(.)来生成q、c2和c3。这里,将验证者生成q所需的P i设置为包括在响应σ中并发送。可以将该变型应用于将在下文描述的整个算法中。
[0208]以上描述了本技术的变型示例。
[0209][2-2:扩展算法]
[0210]接下来,将参考图5描述从本技术扩展的公开密钥认证方案的算法(下文中被称为“扩展技术”)。图5为用于描述基于扩展技术的交互协议的流程的说明图。
[0211]在本文所述的扩展技术中,在第一通中发送的消息(Cl,c2, c3)被转换为一个哈希值c并被发送给验证者。这里,利用在第三通发送的响应σ几乎不能恢复的消息与响应σ一起被发送给验证者。通过应用扩展技术,可以减少在交互协议期间发送给验证者的信息量。下面将详细描述与扩展技术相关的每个算法的结构。
[0212](密钥生成算法Gen)[0213]密钥生成算法Gen生成在环k上定义的m个多元多项式fi (Xl,...,xn),...,^(Xi,...,xn)和作为集合Kn的元素的向量sKsp...,sn)。接下来,生成算法 Gen 计算 y=(y1;...,ym) — (?\ (s),...,fm(s))。另外,生成算法 Gen 将(x1;...,xn),...,fm(Xl,...,xn),y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(Xl,..., χη)表示为X,并将一对多元多项式(fjx),...,fm(X))表示为F (X)。
[0214](证明者算法P,验证者算法V)
[0215]接下来,将参考图5描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
[0216]在前述交互协议期间,证明者一点也不将关于秘密密钥sk的信息泄漏给验证者,并对验证者表示“她本人知道s满足y=F(s) ”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图5所示的流程图进行描述。
[0217]运算#1:
[0218]首先,证明者算法P选择任意数w。然后,证明者算法P通过将数w应用于伪随机数生成器&生成作为集合Kn的元素的向量r和数wA。即,证明者算法P计算(r,wA) — Gjw)。随后,证明者算法P通过将数wA应用于伪随机数生成器62生成多元多项式 Fa (x) = (f' (x),..., fAm (χ))。即,证明者算法 P 计算 Fa 一 G2 (wa)。
[0219]运算#1(继续):
[0220]随后,证明者算法P计算z —s-r。该计算等同于利用向量r掩蔽秘密密钥s。另外,证明者算法P计算FB(X) — F (x+r)+FA (X)。该计算等同于利用多项式集合Fa(x)掩蔽关于χ的多项式集合F (x+r)。
[0221]运算#1(继续):
[0222]接下来,证明者算法P生成Fb(z)和z的哈希值Cl。换句话说,证明者算法P计算Cl—氏(户(2),2)。另外,证明者算法P生成数wA的哈希值c2。换句话说,证明者算法P计算(:2—H2(wa)。另外,证明者算法P生成多项式集合Fb的哈希值c3。换句话说,证明者算法P计算c3 —H3(wb)。氏(…)、H2(...)和比(...)是哈希函数。在扩展方案的情况下,证明者算法P将哈希值集合(Cl、c2、c3)应用于哈希函数Η以生成哈希值c,并将哈希值c发送给验证者算法V。
[0223]运算# 2:[0224]在接收到哈希值c时,验证者算法V从三个验证模式中选择要使用的验证模式。例如,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战d中。该挑战d被发送给证明者算法P。
[0225]运算# 3:
[0226]在接收到挑战d时,证明者算法P响应于接收到的挑战d生成要发送给验证者算法V的响应σ。在d=0的情况下,证明者算法P生成响应(σ,c*) = (w, 。在d=l的情况下,证明者算法P生成响应(σ,c*) = ((wA,z),c3)。在d=2的情况下,证明者算法P生成响应(o,c*) = ((Fb, z),c2)0在运算# 3中生成的响应被发送给验证者算法V。
[0227]运算#4:
[0228]在接收到响应σ时,验证者算法V利用接收到的响应(0,c*)执行下面的验证处理。
[0229]当d=0时,验证者算法V计算(rA, wB) ^ Gi ( σ ) 0接下来,验证者算法V计算Fe — G2 (wb)。接下来,验证者算法V计算c2a=H2 (wb)。接下来,验证者算法V计算c3A=H3(F(x+rA)+Fc(x))0之后,验证者算法V验证等式c=H(c'c2A,c3A)是否成立。然后,验证者算法V在验证成功时输出表示认证成功的值1,而在验证失败时输出表示认证失败的值0。
[0230]当d=l时,验证者算法V设置(wB,zA) — σ。接下来,验证者算法V计算Fe — G2 (wB)。接下来’验证者算法丫计算“鳴①^个一^接下来’验证者算法丫计算c2A=H2(wB)。之后,验证者算法V验证等式c=H(Cia,C2a,C*)是否成立。然后,验证者算法V在验证成功时输出表示认证成功的值1,而在验 证失败时输出表示认证失败的值0。
[0231]当d=2时,验证者算法V设置(FD,zA)—。。接下来,验证者算法V计算心鳴(Fd (za) -y, zA)。接下来,验证者算法V计算c3a=H3 (Fd)。之后,验证者算法V验证等式C=H(Cia, c*, c3a)是否成立。然后,验证者算法V在验证成功时输出表示认证成功的值1,而在验证失败时输出表示认证失败的值0。
[0232]以上描述了涉及扩展技术的每个算法的结构。通过应用扩展技术,可以减少在交互协议期间发送和接收的信息量。
[0233][2-3:并行算法]
[0234]如上所述,应用根据本技术和扩展技术的会话协议使得可以将成功伪造的概率保持在2/3以下。因此,两次执行会话协议使得可以将成功伪造的概率保持在(2/3)2以下。另外,如果N次执行会话协议,则成功伪造的概率变为(2/3)N,并且,如果将N设置为足够大的数(例如,N=140),则成功伪造的概率变得可忽略地小。
[0235]例如,多次执行交互协议的可想到的方法包括:串行方法,其中多次顺序重复消息、挑战和响应的交换;以及并行方法,其中在单个交换中交换多个消息、挑战和响应。这里,将描述把根据本技术的交互协议扩展到关于并行方法的交互协议(下文中被称为“并行算法”)的方法。例如,图6示出并行算法。接下来,将参考图6描述并行算法的细节。
[0236](密钥生成算法Gen)
[0237]密钥生成算法Gen生成在环k上定义的m个多元多项式fi (Xl,...,xn),...,^(Xi,..., xn)和作为集合Kn的元素的向量sKsp...,sn)。接下来,生成算法 Gen 计算 y=(y1;...,ym) — (?\ (s),...,fm(s))。另外,生成算法 Gen 将(x1;...,xn),...,fm(Xl,...,xn),y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(Xl,..., χη)表示为χ,并将一对多元多项式(fjx),...,fm(x))表示为F (X)。
[0238](证明者算法P,验证者算法V)
[0239]接下来,将参考图6描述在交互协议期间通过证明者算法P执行的处理和通过验证者算法V执行的处理。
[0240]在前述交互协议期间,证明者一点也不将关于秘密密钥s的信息泄漏给验证者,并对验证者表示“她本人知道s满足y=F(s) ”。另一方面,验证者验证证明者是否知道s满足y=F(s)。假设使得验证者知道公开密钥pk。另外,假设由证明者秘密地管理秘密密钥s。下文中,将参考图6所示的流程图进行描述。
[0241]运算#1:
[0242]首先,证明者算法P针对i=l至N执行下面的处理(1)至(8)。
[0243]处理(1):证明者算法P任意选择数Wi。
[0244]处理(2):证明者算法P将数Wi应用于伪随机数生成器G1;并生成作为集合Kn的元素的向量Α和 数WiA。换句话说,证明者算法P计算(ri,WiA) — GJr)。
[0245]处理(3):证明者算法P将数WiA应用于伪随机数生成器62并生成多元多项式集合F, (χ)。换句话说,证明者算法Ρ计算F, — G2 (w,a)。
[0246]处理(4):证明者算法P计算Zi — S1-ri0该计算对应于利用向量巧掩蔽秘密密钥
Si的操作。
[0247]处理(5):证明者算法P计算&Β(Χ) — FU+ig+FiAOO。该计算对应于利用多项式集合FiA(x)掩蔽关于χ的多项式集合FU+rJ的操作。
[0248]处理(6):证明者算法P生成~和^(。)的哈希值Cl,it)换句话说,证明者算法P计算 c1;i — Hi (F^Zi), Zi)。
[0249]处理(7):证明者算法P生成数WiA的哈希值^"。换句话说,证明者算法P计算C2, i — H2 (W^)。
[0250]处理(8):证明者算法P生成多项式集合的哈希值C3,it)换句话说,证明者算法P 计算 c3;i — Η3(&Β)。
[0251]氏(…)、H2(...)和比(...)是哈希函数。另外,哈希值(Cy,c2,i, c3,i)是消息。
[0252]针对i=l至N,在执行处理(1)至(8)之后,将在运算# 1中生成的消息(c1;i, c2;i, c3;i) (i=l至N)发送给验证者算法V。
[0253]运算# 2:
[0254]在接收到消息(Cy, c2,i, c3,i) (i=l至N)时,验证者算法V针对i=l至N中的每个从三个验证模式中选择要使用的验证模式。例如,针对i=l至N中的每个,验证者算法V可以从表示验证模式的三个数值{0,1,2}中选择数值,并将选择的数值设置在挑战屯中。挑战屯被发送给证明者算法P。
[0255]运算# 3:
[0256]已经接收到挑战屯(i=l至N)的证明者算法P响应于挑战屯生成要被发送给验证者算法V的响应oi0此时, 证明者算法P针对i=l至N执行下面的处理(1)至(3)。
[0257]处理(1):当屯为0时,证明者算法P生成响应(Μ”
[0258]处理(2):当φ为1时,证明者算法P生成响应σ i=(WiA, Zi)。[0259]处理(3):当屯为2时,证明者算法P生成响应Ofh'Zi)。
[0260]在执行处理(1)至(3)后,将响应0i(i=l至N)发送给验证者算法V。
[0261]运算#4:
[0262]已经接收到响应0力=1至N)的验证者算法V利用接收到的响应0力=1至N)执行下面的验证处理。针对i=l至N执行下面的处理。
[0263]在φ=0的情况下,验证者算法V计算(rA WiB)—匕(σ J。另外,验证者算法V计算# — 62(κβ)。然后,验证者算法V验证等式是否成立。另外,验证者算法V验证等式(:3」=113$(計1^)+?^00)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
[0264]在屯=1的情况下,验证者算法V设置(WiB,ZiA) — oiD另外,验证者算法V计算Fie — G2(WiB)。然后,验证者算法¥验证等式(^=氏(#(0,0是否成立。另外,验证者算法V验证等Sc2=H2(WiB)是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况中输出指示认证失败的值0。
[0265]在φ=2的情况下,验证者算法V设置(F,,ZiA) 一。”然后,验证者算法V验证等式cfHjF ^(ζ^-y,ζ^)是否成立。另外,验证者算法V验证等式是否成立。验证者算法V在这些验证都成功的情况下输出指示认证成功的值1,而在验证失败的情况下输出指示认证失败的值0。
[0266]以上描述了并行执行本技术的交互协议的方法。如上所述,由于重复执行本技术的交互协议,成功伪造的概率变得可忽略地小。
[0267]另外,可以进行修改,使得可以在运算# 1之后向验证者发送哈希值
C_H (c1; J, c1; 2,。1,3,…,CN, 1) CN, 2) CN, 3)而不疋发送(C 1,1,Cl,2i Cl, 3? *** ? CN,1,CN,2,CN, 3)。这里,考虑
到存在几乎不能从响应恢复的消息,需要修改交互协议,使得将消息与响应一起从证明者发送给验证者。当应用该修改时,在第一通发送的消息是单个哈希值C,从而显著减少了通信量。例如,在N次并行重复结构的情况下,要发送的信息条数可以减少2N-1。
[0268](合适的参数设置方法)
[0269]根据本实施例的交互协议确保针对被动攻击的安全性。然而,当应用上述并行重复执行交互协议的方法时,需要下述条件以保证可靠地保障针对主动攻击的安全性。
[0270]上述交互协议是用于通过使用一对密钥(公开密钥y和秘密密钥s)向验证者验证“证明者针对1知道满足y=F(s)的s”的算法。为此,当执行在验证中接受的交互时,指示验证者知道“证明者在交互时使用s”的信息的概率是不可否认的。另外,对于多元多项式F不能确保抗冲突性。为此,当并行重复执行上述交互协议时,难以无条件地保证可靠地确保针对主动攻击的安全性。
[0271]因此,本技术的发明人检查了即使当执行在验证中接受的交互时也使得指示“证明者在交互时使用s”的信息对于验证者未知的方法。另外,本技术的发明人提出了一种即使在并行重复执行上述交互协议时也使得能够确保针对主动攻击的安全性的方法。该方法是将用作公开密钥的多元多项式f\,...,fm的个数m设置为足够小于变量的个数η的值的方法。例如,将m和η设置为使得2m_n〈〈l (例如,当n=160且m=80时,2_8°〈〈1)。
[0272]在安全性基于求解多阶多元联立方程的难度的方案中,即使在给定秘密密钥Sl和对应于秘密密钥Si的公开密钥pk时,也难以生成对应于公开密钥pk的另一个秘密密钥s2。为此,当确保对于公开密钥pk存在两个或更多个秘密密钥s时,即使在执行在验证中接受的交互时,也可以使得指示“证明者在交互时使用s”的信息对于验证者未知。即,当建立该确保时,即使在并行重复执行交互协议时,也可以确保针对主动攻击的安全性。
[0273]当参考图40考虑包括m个具有η个变量的多阶多项式(其中n>m)的函数F:Kn—Km时,不具有第二预图像的定义域的元素的个数最多为|κ|π-ι。为此,当将|κ|π_η设置为足够小时,可以使得不具有第二预图像的定义域的元素的选择概率可忽略地小。即,当将具有η个变量的多阶多项式f\,...,fm的个数m设置为足够小于变量的个数η的值时,可以确保对于公开密钥pk存在两个或更多个秘密密钥s。因此,即使在执行在验证中接受的交互时,也可以使得指示“证明者在交互时使用s”的信息对于验证者未知。因此,即使在并行重复执行交互协议时,也确保了针对主动攻击的安全性。
[0274]如上所述,通过施加将具有η个变量的多阶多项式f\,...,fm的个数m设置为足够小于变量的个数η的值的设置条件(其中n>m,优选2m_n〈〈l),可以在并行重复执行交互协议时确保安全性。
[0275][2-4:具体示例(当使用二阶多项式时)]
[0276]接下来,将参考图7描述将具有η个变量的二阶多项式用作多元多项式F的示例。图7为用于描述本技术的具体示例的说明图。
[0277](密钥生成算法Gen)
[0278]密钥生成算法Gen生成在环k上定义的m个多元多项式fi (Xl,...,xn),...,^(Xi,..., xn)和作为集合Kn的元素的向量sKsp...,sn)。接下来,生成算法 Gen 计算 y=(y1; ..., ym) — (^(s),..., fm (s))。另外,生成算法 Gen 将(f” …,fm, y)设置为公开密钥pk,并将s设置为秘密密钥。下文中,将向量(Xl,...,Xn)表示为X,并将多元多项式集合(400,...,乙00)表示为F (χ)。这里,二阶多项式fi(x)被表示为下面的公式(8)。
[0279][数学式7]
【权利要求】
1.一种信息处理设备,包括:消息生成单元,基于在环κ上定义的多阶多元多项式集合F=(f\,…,fm)和作为集合Kn的元素的向量s生成消息;消息提供单元,将消息提供到验证者,所述验证者保存所述多阶多元多项式集合F和向量 y=(y1;..., ym) = (fi(s), --'fjs));以及响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k (其中3)个验证模式中选择的验证模式,其中,所述向量s为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
2.根据权利要求1所述的信息处理设备,其中,所述多阶多元多项式集合F以被定义为Fb (X,y) =F(x+y)-F(X)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
3.根据权利要求1所述的信息处理设备,其中,所述消息生成单元生成N次消息(其中N > 2),其中,所述消息提供单元通过单次交互向验证者提供N次消息,以及其中,所述响应提供单元通过单次交互向验证者提供N次响应信息,所述N次响应信息对应于由验证者关于各个N次消息而选择的验证模式。
4.根据权利要求1所述的信息处理设备,其中,所述消息生成单元生成N次消息(其中N > 2),并基于所述N次消息生成单个哈希值,其中,所述消息提供单元将所述哈希值提供给验证者,以及其中,所述响应提供单元通过单次交互向验证者提供N次响应信息和一部分消息,其中,N次响应信息对应于由验证者关于各个N次消息而选择的验证模式,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得。
5.—种信息处理设备,包括:信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f\,…,fm)和向量y= (υι,…,ym) = (fi (s),…,fm (s));消息获取单元,获取基于多阶多元多项式集合F和作为集合Κη的元素的向量S生成的消息;模式信息提供单元,向已提供了消息的证明者提供关于从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及验证单元,基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,其中,所述向量S为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
6.根据权利要求5所述的信息处理设备,其中,所述多阶多元多项式集合F以被定义为Fb(x, y) =F(x+y)-F(X)-F(y)的Fb(x, y)关于x和y是双线性的方式被设置。
7.根据权利要求5所述的信息处理设备,其中,所述消息获取单元通过单次交互获取所述N次消息(其中N > 2),其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,其中,所述响应获取单元通过单次交互从证明者获取对应于选择的N次验证模式的N次响应信息,以及其中,当对全部N次消息 的验证成功时,所述验证单元确定所述证明者保持所述向量So
8.根据权利要求5所述的信息处理设备,其中,所述消息获取单元获取基于所述N次消息(其中N > 2)生成的单个哈希值,其中,所述响应获取单元从所述证明者获取对应于选择的验证模式的响应信息和一部分消息,其中,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得,以及其中,所述验证单元基于所述哈希值、一部分消息、所述公开密钥以及所述响应信息验证所述证明者是否保持所述向量s。
9.一种信息处理设备,包括:消息生成单元,基于在环K上定义的多阶多元多项式集合F=(f\,…,fm)和作为集合Kn的元素的向量s生成消息;消息提供单元,将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量 y=(y1;..., ym) = (fi(s), --'fjs));以及中间信息生成单元,利用由验证者随机选择的第一信息和在生成消息时获得的第二信息来生成第三信息;中间信息提供单元,向所述验证者提供第三信息;以及响应提供单元,向验证者提供响应信息,所述响应信息对应于由验证者从k (其中k ^ 2)个验证模式中选择的验证模式,其中,所述向量s为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
10.根据权利要求9所述的信息处理设备,其中,所述多阶多元多项式集合F以被定义为Fb(x, y) =F(x+y)-F(X)-F(y)的Fb(x, y)关于x和y是双线性的方式被设置。
11.根据权利要求9所述的信息处理设备,其中,所述消息生成单元生成N次消息(其中N > 2),其中,所述消息提供单元通过单次交互向验证者提供N次消息,其中,所述中间信息生成单元利用由验证者关于各个N次消息选择的第一信息和当生成消息时获得的N次第二信息来生成N次第二信息,其中,所述中间信息提供单元通过单次交互向验证者提供N次第三信息,以及其中,所述响应提供单元通过单次交互向验证者提供N次响应信息,所述N次响应信息对应于由验证者关于各个N次消息选择的验证模式。
12.根据权利要求9所述的信息处理设备,其中,所述消息生成单元生成N次消息(其中N > 2),并基于所述N次消息生成单个哈希值,其中,所述消息提供单元将所述哈希值提供给验证者,其中,所述中间信息生成单元·利用由验证者关于各个N次消息选择的第一信息和当生成消息时获得的N次第二信息来生成N次第二信息,其中,所述中间信息提供单元通过单次交互向验证者提供N次第三信息,以及其中,所述响应提供单元通过单次交互向验证者提供N次响应信息和一部分消息,其中,N次响应信息对应于由验证者关于各个N次消息选择的验证模式,一部分消息即使在利用所述公开密钥和响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得。
13.—种信息处理设备,包括:信息保持单元,保持在环K上定义的多阶多元多项式集合F=(f\,…,fm)和向量y= (υι,…,ym) = (fi (s),…,fm (s));消息获取单元,获取基于多阶多元多项式集合F和作为集合Κη的元素的向量S生成的消息;信息提供单元,向已提供了消息的证明者提供随机选择的第一信息;中间信息获取单元,获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第二息;模式信息提供单元,向证明者提供关于从k个(k > 3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及验证单元,基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,其中,所述向量s为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中,所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
14.根据权利要求13所述的信息处理设备,其中,所述多阶多元多项式集合F以被定义为Fb (X,y) =F(x+y)-F(X)-F(y)的Fb(x,y)关于x和y是双线性的方式被设置。
15.根据权利要求13所述的信息处理设备,其中,所述消息获取单元通过单次交互获取所述N次消息(其中N > 2),其中,所述信息提供单元随机选择关于各个N次消息的第一信息,并通过单次交互向证明者提供选择的N次第一信息,其中,所述中间信息获取单元获取由证明者利用N次第一信息和当生成N次消息时获得的N次第二信息生成的N次第二信息, 其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,其中,所述响应获取单元通过单次交互从证明者获取对应于选择的N次验证模式的N次响应信息,以及其中,当对全部N次消息的验证成功时,所述验证单元确定所述证明者保持所述向量So
16.根据权利要求13所述的信息处理设备,其中,所述消息获取单元获取基于所述N次消息(其中N > 2)生成的单个哈希值,其中,所述信息提供单元随机选择关于各个N次消息的第一信息,并通过单次交互向证明者提供选择的N次第一信息,其中,所述中间信息获取单元获取由证明者利用N次第一信息和当生成N次消息时获得的N次第二信息生成的N次第二信息,其中,所述模式信息提供单元选择关于各个N次消息的验证模式,并通过单次交互向证明者提供关于选择的N次验证模式的信息,其中,所述响应获取单元从所述证明者获取对应于选择的验证模式的响应信息和一部分消息,其中,一部分消息即使在利用所述公开密钥、第一信息、第三信息和所述响应信息执行预先针对与所述响应信息对应的验证模式准备的运算时也未被获得,以及其中,所述验证单元基于所述哈希值、一部分消息、所述公开密钥以及所述响应信息验证所述证明者是否保持向量s,并在对全部N次消息的验证成功时确定所述证明者保持所述向量s。
17.—种信息处理方法,包括:基于在环K上定义的多阶多元多项式集合F= (f1;…,fm)和作为集合Kn的元素的向量s生成消息;将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(yi,…,ym) = (fi(s),…,fm (s));以及向验证者提供响应信息,所述响应信息对应于由验证者从k (其中k > 3)个验证模式中选择的验证模式,其中,所述向量S为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
18.一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合FKA,…,fm)和向量y=(yi,*.., ym) = (f!(s),…,fm(s)),所述信息处理方法包括:获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;向已提供了消息的证明者提供关于从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;从所述证明者获取对应于选择的验证模式的响应信息;以及基于消息、多阶多元多项式集合F、向量y和响应信息验证证明者是否保持向量s,其中,所述向量s为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中,所述消息为通过利用公开密钥和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
19.一种信息处理方法,包括:基于在环K上定义的多阶多元多项式集合F=(f\,…,fm)和作为集合Kn的元素的向量s生成消息;将消息提供到验证者,所述验证者保持所述多阶多元多项式集合F和向量y=(yi,…,ym) = (fi(s),…,fm(s));利用由验证者随机选择的第一信息和在生成消息时获得的第二信息生成第三信息;向验证者提供第三信息;以及向验证者提供响应信息,所述响应信息对应于由验证者从k (其中k > 2)个验证模式中选择的验证模式,其中,所述向量s为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。
20.一种由信息处理设备执行的信息处理方法,所述信息处理设备保持在环K上定义的多阶多元多项式集合FKA,…,fm)和向量y=(yi,*.., ym) = (f!(s),…,fm(s)),所述信息处理方法包括:获取基于多阶多元多项式集合F和作为集合Kn的元素的向量s生成的消息;向已提供了消息的证明者提供随机选择的第一信息;获取由证明者利用第一信息和在生成消息时获得的第二信息生成的第三信息;向证明者提供从k个(k ^ 3)验证模式中随机选择的单个验证模式的信息;响应获取单元,从所述证明者获取对应于选择的验证模式的响应信息;以及基于消息、第一信息、第三信息、多阶多元多项式集合F和响应信息验证证明者是否保持向量s,其中,所述向量s为秘密密钥,其中,所述多阶多元多项式集合F和向量y为公开密钥,其中所述消息为通过利用公开密钥、第一信息、第三信息和响应信息执行预先针对与响应信息对应的验证模式准备的运算而获得的信息,以及其中,所述多阶多元多项式集合F是利用根据生成公开密钥的每个用户而不同的信息生成的。·
【文档编号】G09C1/00GK103718228SQ201280037657
【公开日】2014年4月9日 申请日期:2012年6月26日 优先权日:2011年8月12日
【发明者】作本紘一 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1