信息处理设备、签名提供方法、签名验证方法、程序和记录介质的制作方法

文档序号:2397854阅读:152来源:国知局
信息处理设备、签名提供方法、签名验证方法、程序和记录介质的制作方法
【专利摘要】实现高度安全和高效的电子签名方案。本发明提供了一种信息处理设备:基于在环(K)上定义的多元多项式组(F=(f1,…,fm))和向量s(s∈Kn)生成N个消息;将文档M和N组消息输入到单向函数;选择N个第一信息;生成分别对应于N个第一信息的N个第二信息;以及向验证者提供包括N个第一信息和N个第二信息的数字签名,其中,所述验证者知道上述多元多项式组(F)和向量y(y=(y1,…,ym)=(f1(s),…,fm(s)))。向量s构成签名密钥,多元多项式组(F)和向量y构成公开密钥,并且每个消息包括通过利用公开密钥和第二信息执行根据对应于所使用的第二信息的第一信息的类型而选择的特定运算而获得的信息。
【专利说明】信息处理设备、签名提供方法、签名验证方法、程序和记录介质
【技术领域】
[0001]本技术涉及信息处理设备、签名提供方法、签名验证方法、程序和记录介质。
【背景技术】
[0002]随着信息处理技术和通信技术的快速发展,文档被快速数字化,无论该文档是公开的还是私人的。随着这些文档的数字化,许多个人和公司对电子文档的安全性管理具有相当大的关注。响应于该关注的增加,在各个领域中已经积极研究了针对诸如窃取或伪造电子文档的篡改行为的措施。关于对电子文件的窃取,例如通过加密电子文档来确保安全性。另外,关于对电子文件的伪造,例如通过使用数字签名来确保安全性。然而,当要使用的加密或数字签名不具有高防篡改性时,不能确保足够的安全性。
[0003]数字签名用于指定电子文档的作者。因此,数字签名应仅能够由电子文档的作者生成。如果恶意第三方能够生成相同的数字签名,则这样的第三方可以模仿电子文档的作者。即,电子文档被恶意第三方伪造。关于防止这样的伪造的数字签名的安全性,已经表达了各种观点。作为目前广泛使用的数字签名方案,例如已知RSA签名方案和DSA签名方案。
[0004]RSA签名方案采用“大合数的质因数分解(下文中为质因数分解问题)的难度”作为安全性基础。另外,DSA签名方案采用“求解离散对数问题的难度”作为安全性的基础。这些基础基于不存在通过使用传统计算机高效地求解质因数分解问题和离散对数问题的算法。即,上述难度提出了传统计算机的计算难度。然而,据说当使用量子计算机时,可以高效地计算质因数分解问题和离散对数问题的解。
[0005]类似于RSA签名方案和DSA签名方案,目前采用的数字签名方案和公开密钥认证方案中的多种方案也采用质因数分解问题或离散对数问题的难度作为安全性基础。因此,如果量子计算机投入实际使用,则这样的数字签名方案和公开密钥认证方案的安全性将不能确保。从而,期望实现新的数字签名方案和公开密钥认证方案,其采用与可通过量子计算机容易求解的诸如质因数分解问题和离散对数问题的问题不同的问题作为安全性的基础。作为不能通过量子计算机容易求解的问题,例如存在关于多元多项式的问题。
[0006]例如,作为采用多元多项式问题作为安全性基础的数字签名方案,已知基于Matsumoto-1mai (MI)密码、隐藏域方程(HFE)密码、油醋(Oil-Vinegar,0V)签名方案、以及温顺变换方法(TamedTransformation Method,TTM)密码的数字签名方案。例如,在下面的非专利文献I和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 (SanFrancisco, CA, USA, April 2001), vol.2020of Lecture Notes in Computer Science, Springer-Verlag., pp.282-297。

【发明内容】

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

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