认证装置、认证方法、程序和签名生成装置的制作方法

文档序号:7682526阅读:222来源:国知局
专利名称:认证装置、认证方法、程序和签名生成装置的制作方法
技术领域
本发明涉及认证装置、认证方法、程序和签名生成装置。
背景技术
随着信息处理技术和通信技术的迅速发展,官方和私人文档的数字化正在迅速进步。因此,许多个人和公司对于电子文档的安全管理很感兴趣。随着该兴趣的增长,对抗诸如电子文档的窃听和伪造之类的破坏行为的安全性已在许多领域中被热烈地讨论。对抗对电子文档的窃听的安全性例如是通过对电子文档加密来确保的。另外,对抗对电子文档的伪造的安全性例如是通过使用数字签名来确保的。然而,加密和数字签名必须是充分抗破坏的。数字签名用于指定电子文档的作者。因此,数字签名应当只能够由电子文档的作者生成。如果恶意的第三方能够生成相同的数字签名,则这种第三方就能够假扮电子文档的作者。即,电子文档被该恶意第三方伪造。关于防止这种伪造的数字签名的安全性,已经表达了各种意见。作为当前广泛使用的数字签名方案,例如已知使用RSA签名方案和DSA 签名方案的方案。RSA签名方案以“大合数的素因数分解(prime factorisation)的困难性(以下称为素因数分解问题)”作为安全性的基础。另外,DSA签名方案以“解答离散对数问题的困难性”作为安全性的基础。这些基础基于的是利用经典计算机高效地解答素因数分解问题和离散对数问题的算法不存在。即,上述困难性意味着经典计算机的计算上的困难性。然而,据说当使用量子计算机时,可以高效地计算素因数分解问题和离散对数问题的解答。与RSA签名方案和DSA签名方案类似,许多当前使用的数字签名方案和公开密钥认证方案也以素因数分解问题或离散对数问题的困难性作为安全性的基础。从而,如果量子计算机被投入实际使用,则这种数字签名方案和公开密钥认证方案的安全性将得不到确保。因此,需要新的数字签名方案和公开密钥认证方案,这些新的方案以与诸如素因数分解问题和离散对数问题之类的能够容易地用量子计算机解答的问题不同的问题作为安全性的基础。作为不容易用量子计算机解答的问题,例如有代数曲面上的片段找出 (section-finding)问题。以代数曲面上的片段找出问题为安全性基础的数字签名(以下禾尔之为 ASS-CC 方案)在 Yuichi Komano, Koichiro Akiyama, Yochikazu Hanatani, and Hideyuki Miyake, ASS-CC Provably Secure Algebraic Surface Signature Scheme, The 2010 Symposium on Cryptography and Information Security Miyazaki, Japan, Jan. 19-22,2010 中公开。

发明内容
然而,作为本申请的发明人的考查结果,已经发现ASS-CC方案的安全性存在缺陷。因此,基于ASS-CC方案的数字签名方案和采用此方案的公开密钥认证方案由于安全性问题而没有被实际使用。考虑到上述情况,希望提供一种新颖且改进的认证装置、认证方法、程序和签名生成装置,它们能够实现以代数曲面上的片段找出问题为安全性基础并且安全性得到确认的公开密钥认证方案。另外,作为一个应用版本,也可以实现数字签名方案。根据本发明的一个实施例,提供了一种认证装置,其包括密钥设定单元,用于将多次多项式Ui (t) (i = 1至n-1)设定成私密密钥,并且将满足f (U1 (t),. . .,Ulri (t),t)= 0的多次多项式f设定成公开密钥;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收关于由验证者针对一个消息c从k(k >幻个验证模式中选择的一个验证模式的信息;以及响应发送单元,用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息C的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。认证装置可被配置成使得,如果当执行由消息发送单元发送一个或多个消息c的第一步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第二步骤和由响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤时,验证者对于所有的响应信息都成功执行了验证,则认证成功。认证装置可被配置成使得,执行由消息发送单元发送一个或多个消息c的第一步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第二步骤和由响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤的处理被重复,并且如果当执行第一步骤至第三步骤预定次数时,验证者每次对于所有的响应信息都成功执行了验证,则认证成功。在消息c = (C1, ...,cm)的情况下,消息发送单元可利用单向函数H来计算新的消息c’ = H(C),并将消息C’发送给验证者,并且响应发送单元可将消息c的一元素与响应信息一起发送,其中验证者即使使用该响应信息也不能恢复该元素。根据本发明的另一实施例,提供了一种认证装置,其包括消息接收单元,用于从证明者接收消息C ;验证模式选择单元,用于针对一个消息C,从k(k ^ 3)个验证模式中选择一个验证模式;验证模式发送单元,用于把关于由验证模式选择单元选择的验证模式的信息发送给证明者;响应接收单元,用于从证明者接收k类响应信息之中的与由验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及验证单元,用于利用由消息接收单元接收的消息c和由响应接收单元接收的响应信息来验证证明者的合法性。多次多项式Ui (t) (i = 1至n-1)被设定成私密密钥,并且满足f (U1 (t),. . .,Ulri (t),t) = 0的多次多项式f被设定成公开密钥。响应信息是在利用k类响应信息执行的针对消息c的所有 k个验证模式都成功的情况下使能计算私密密钥Ui的信息。根据本发明的另一实施例,提供了一种认证装置,其包括密钥设定单元,用于将多次多项式Ui (t) (i = 1至n-1)设定成私密密钥,并且将满足f (U1 (t),. . .,Ulri (t),t)= 0的多次多项式f设定成公开密钥;消息发送单元,用于将消息c发送给验证者;答复接收单元,用于从验证者接收答复α ;多项式生成单元,用于利用由答复接收单元接收的答复 α来生成要用于对消息c的验证的多项式f” ;多项式发送单元,用于把由多项式生成单元生成的多项式f”发送给验证者;验证模式接收单元,用于接收关于由验证者针对一个消息 c从k(k ^ 2)个验证模式中选择的一个验证模式的信息;以及响应发送单元,用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c 的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。认证装置可被配置成使得,如果当执行由消息发送单元发送一个或多个消息c的第一步骤、由答复接收单元对于每个消息c接收答复α的第二步骤、由多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f”并且由多项式发送单元发送该多项式f”的第三步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第四步骤以及由响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤时,验证者对于所有的响应信息都成功执行了验证,则认证成功。认证装置可被配置成使得,执行由消息发送单元发送一个或多个消息c的第一步骤、由答复接收单元对于每个消息c接收答复α的第二步骤、由多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f”并且由多项式发送单元发送该多项式f” 的第三步骤、由验证模式接收单元对于每个消息c从验证者接收关于验证模式的信息的第四步骤以及由响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤的处理被重复,并且如果当执行第一步骤至第五步骤预定次数时,验证者每次对于所有的响应信息都成功执行了验证,则认证成功。根据本发明的另一实施例,提供了一种认证装置,其包括消息接收单元,用于从证明者接收消息C;答复发送单元,用于将答复α发送给证明者;多项式接收单元,用于接收多项式f”,该多项式f”是由证明者利用由答复发送单元发送的答复α生成的并且用于对消息c的验证;验证模式选择单元,用于针对一个消息C,从k(k ^ 2)个验证模式中选择一个验证模式;验证模式发送单元,用于向证明者发送关于由验证模式选择单元选择的验证模式的信息;响应接收单元,用于从证明者接收k类响应信息之中的与由验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及验证单元,用于利用由消息接收单元接收的消息C、由多项式接收单元接收的多项式f”以及由响应接收单元接收的响应信息来验证证明者的合法性。多次多项式Ui (t) (i = 1至n-1)被设定成私密密钥,并且满足 ΓΚω,.,.,π^ω, ) =0的多次多项式f被设定成公开密钥。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤将多次多项式Ui (t) (i = 1至n-1)设定成私密密钥,并且将满足f (U1 (t),. . .,Ulri (t),t) = 0的多次多项式f设定成公开密钥;将消息c发送给验证者;接收关于由验证者针对一个消息c从 k(k ^ 3)个验证模式中选择的一个验证模式的信息;以及向验证者发送k类响应信息之中的与在接收步骤中接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的 fn息ο根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤从证明者接收消息c ;针对一个消息c,从k(k ^ 3)个验证模式中选择一个验证模式;把关于在选择步骤中选择的验证模式的信息发送给证明者;从证明者接收k类响应信息之中的与在发送步骤中发送的关于验证模式的信息相对应的响应信息;以及利用在接收消息c的步骤中接收的消息c和在接收响应信息的步骤中接收的响应信息来验证证明者的合法性。多次多项式Ui (t) (i = 1至n-1)被设定成私密密钥,并且满足f (U1 (t),. . .,Ulri⑴,t) = 0的多次多项式f被设定成公开密钥。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤将多次多项式 Ui (t) (i = 1至n-1)设定成私密密钥,并且将满足f (U1 (t),. . .,Ulri⑴,t) = 0的多次多项式f设定成公开密钥;将消息c发送给验证者;从验证者接收答复α ;利用在接收答复 α的步骤中接收的答复α来生成要用于对消息c的验证的多项式f”;把在生成步骤中生成的多项式f”发送给验证者;接收关于由验证者针对一个消息c从k(k彡2)个验证模式中选择的一个验证模式的信息;以及向验证者发送k类响应信息之中的与在接收关于验证模式的信息的步骤中接收的关于验证模式的信息相对应的响应信息。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。根据本发明的另一实施例,提供了一种认证方法,其包括以下步骤从证明者接收消息c;将答复α发送给证明者;接收多项式f”,该多项式f”是由证明者利用在发送答复 α的步骤中发送的答复α生成的并且用于对消息c的验证;针对一个消息c,从k(k彡2) 个验证模式中选择一个验证模式;向证明者发送关于在选择步骤中选择的验证模式的信息;从证明者接收k类响应信息之中的与在发送关于验证模式的信息的步骤中发送的关于验证模式的信息相对应的响应信息;以及利用在接收消息c的步骤中接收的消息C、在接收多项式f”的步骤中接收的多项式f”以及在接收响应信息的步骤中接收的响应信息来验证证明者的合法性。多次多项式Ui(t)(i = 1至n-1)被设定成私密密钥,并且满足 ΓΚω,.,.,π^ω, ) =0的多次多项式f被设定成公开密钥。响应信息是在利用两类答复α、多项式f”以及k类响应信息执行的针对消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。根据本发明的另一实施例,提供了一种程序,用于使得计算机实现密钥设定功能,将多次多项式Ui (t) (i = 1至n-1)设定成私密密钥,并且将满足f (U1 (t),. . .,Iv1 (t), t) = 0的多次多项式f设定成公开密钥;消息发送功能,将消息c发送给验证者;验证模式接收功能,接收关于由验证者针对一个消息c从个验证模式中选择的一个验证模式的信息;以及响应发送功能,向验证者发送k类响应信息之中的与由验证模式接收功能接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。根据本发明的另一实施例,提供了一种记录该程序的计算机可读记录介质。根据本发明的另一实施例,提供了一种签名生成装置,其包括密钥设定单元,用于将多次多项式Ui (t) (i = 1至n-1)设定成私密密钥,并且将满足f (U1 (t),. . .,Iv1 (t), t) =0的多次多项式f设定成公开密钥;消息生成单元,用于基于多次多项式Ui(t)生成N 个消息c ;验证模式选择单元,用于基于通过将文档M和消息c应用到单向函数而获得的信息来从kN(k ^ 3)个验证模式中选择验证模式;以及签名生成单元,用于根据由验证模式选择单元选择的验证模式,生成将通过使用消息c和文档M的验证的数字签名ο。数字签名 σ是在利用与(k_l)N+l个验证模式相对应的数字签名σ执行的所有验证都成功的情况下使能计算私密密钥Ui的信息。
根据以上所述的本发明的实施例,可以实现以代数曲面上的片段找出问题作为安全性基础并且安全性得到确认的公开密钥认证方案。另外,作为一种应用版本,也可以实现以代数曲面上的片段找出问题作为安全性基础并且安全性得到确认的数字签名方案。


图1是用于描述公开密钥认证方案的算法结构的说明图;图2是用于描述数字签名方案的算法结构的说明图;图3是用于描述η遍公开密钥认证方案的说明图;图4是用于描述用于ASS-CC-IP公开密钥认证方案的算法的说明图;图5是用于描述对抗用于ASS-CC-IP公开密钥认证方案的算法的伪造算法的说明图;图6是用于描述根据本发明第一实施例(3遍)的用于公开密钥认证方案的算法的说明图;图7是用于描述根据该实施例的用于公开密钥认证方案的扩展算法的说明图;图8是用于描述根据该实施例的用于公开密钥认证方案的并行算法的说明图;图9是用于描述根据该实施例的用于公开密钥认证方案的非交互型算法的说明图;图10是用于描述根据该实施例的用于公开密钥认证方案的具体算法的说明图;图11是用于描述根据本发明第二实施例(5遍)的用于公开密钥认证方案的算法的说明图;图12是用于描述根据该实施例的用于公开密钥认证方案的扩展算法的说明图;图13是用于描述根据该实施例的用于公开密钥认证方案的并行算法的说明图;图14是用于描述根据该实施例的用于公开密钥认证方案的扩展算法的并行化的说明图;图15是用于描述根据该实施例的用于公开密钥认证方案的非交互型算法的说明图;图16是用于描述根据该实施例的用于公开密钥认证方案的具体算法的说明图;图17是用于描述能够执行根据本发明每个实施例的算法的信息处理装置的示例性硬件配置的说明图;并且图18是比较根据本发明第一和第二实施例的公开密钥认证方案的效率的图表。
具体实施例方式下面,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,用相同的标号来标示具有基本相同的功能和结构的结构元件,并且省略对这些结构元件的重复说明。[描述的流程]这里将简要介绍与下文中描述的本发明的实施例有关的描述的流程。首先,将参考图1描述公开密钥认证方案的算法结构。接下来,将参考图2描述数字签名方案的算法结构。然后,将参考图3描述η遍(n-pass)公开密钥认证方案。然后,将参考图4描述ASS-CC-IP公开密钥认证方案的算法。另外,将参考图5描述对抗用于ASS-CC-IP公开密钥认证方案的算法的伪造算法。接下来,将参考图6描述根据本发明第一实施例(3遍)的用于公开密钥认证方案的算法。然后,将参考图7描述根据该实施例的用于公开密钥认证方案的扩展算法。然后, 将参考图8描述根据该实施例的用于公开密钥认证方案的并行算法。然后,将参考图9描述根据该实施例的用于公开密钥认证方案的非交互型算法。然后,将参考图10描述根据该实施例的用于公开密钥认证方案的具体算法。接下来,将参考图11描述根据本发明第二实施例(5遍)的用于公开密钥认证方案的算法。然后,将参考图12描述根据该实施例的用于公开密钥认证方案的扩展算法。然后,将参考图13和14描述根据该实施例的用于公开密钥认证方案的并行算法。然后,将参考图15描述根据该实施例的用于公开密钥认证方案的非交互型算法。然后,将参考图16 描述根据该实施例的用于公开密钥认证方案的具体算法。接下来,将参考图17描述能够执行本发明的第一和第二实施例的每个算法的信息处理装置的示例性硬件配置。最后,将总结本发明的技术思想并且简要描述这些技术思
想所获得的效果。
(描述项目)
1 介绍
1-1 公开密钥认证方案的算法结构
1-2 数字签名方案的算法结构
1-3 :n遍公开密钥认证方案
1-4 =ASS-CC-IP公开密钥认证方案
1-4-1 =ASS-CC数字签名方案
1-4-2 =ASS-CC-IP公开密钥认证方案
2 第一实施例
2-1 用于公开密钥认证方案的算法
2-2 扩展算法
2-3 并行算法
2-4 非交互型算法
2-5 修改成数字签名方案
2-6 具体示例
3 第二实施例
3-1 用于公开密钥认证方案的算法
3-2 扩展算法
3-3 并行算法
3-4 非交互型算法
3-5 修改成数字签名方案
3-6 具体示例
4 示例性硬件配置
5 总结
<1:介绍〉首先,在详细描述本发明的实施例之前,将简要描述一般的公开密钥认证方案的算法结构、一般的数字签名方案的算法结构、η遍公开密钥认证方案以及ASS-CC-IP公开密钥认证方案。[1-1 公开密钥认证方案的算法结构]首先,将参考图1来描述一般的公开密钥认证方案的算法结构。图1是用于描述一般的公开密钥认证方案的算法结构的说明图。(概述)公开密钥认证方案是这样一种认证方案,其中一个人(证明者)通过使用公开密钥Pk和私密密钥sk来使另一个人(验证者)相信其是证明者本人。例如,使证明者A的公开密钥验证者所知。另一方面,证明者A的私密密钥证明者秘密地管理。根据公开密钥认证方案,知道与公开密钥pkA相对应的私密密钥skA的人被认为是证明者A本人。在证明者A尝试向验证者B证明其是证明者本人的情况下,证明者A可以与验证者B执行交互协议,并且证明其知道与公开密钥pkA相对应的私密密钥skA。然后,在验证者 B通过交互协议证明证明者A知道私密密钥skA的情况下,证明者A的合法性(即其是证明者本人)得到了证明。此外,为了确保公开密钥认证方案的安全性,要满足以下所述的两个条件。第一个条件是尽可能地降低在交互协议被执行时不具有私密密钥Sk的伪造者使伪造成立的概率。满足此第一条件被称为“健全性”(soundness)。换言之,对于健全的交互协议,不具有私密密钥sk的伪造者使伪造成立的概率是可忽略的。第二条件是,即使交互协议被执行,关于证明者A的私密密钥skA的信息也完全不会泄漏给验证者B。满足此第二条件被称为“零知识性”(zero knowledge)。通过使用具有上述健全性和零知识性的交互协议来确保公开密钥认证方案的安全性。(模型)在公开密钥认证方案的模型中,存在两个实体,即证明者和验证者,如图1所示。 证明者通过使用密钥生成算法Gen来生成证明者所特有的一对公开密钥pk和私密密钥sk。 然后,证明者通过使用利用密钥生成算法Gen生成的该对私密密钥sk和公开密钥pk来与验证者执行交互协议。此时,证明者通过使用证明者算法P来执行交互协议。如上所述,在交互协议中,证明者通过使用证明者算法P来向验证者证明其拥有私密密钥sk。另一方面,验证者通过使用验证者算法V来执行交互协议,并且验证证明者是否拥有与证明者所公开的公开密钥相对应的私密密钥。即,验证者是验证证明者是否拥有与公开密钥相对应的私密密钥的实体。如上所述,公开密钥认证方案的模型是由两个实体和三个算法构成的,这两个实体是证明者和验证者,这三个算法是密钥生成算法Gen、证明者算法P和验证者算法V。此外,在以下描述中使用了表述“证明者”和“验证者”,但这些表述严格来说指的是实体。因此,执行密钥生成算法Gen和证明者算法P的主体是与实体“证明者”相对应的信息处理装置。类似地,执行验证者算法V的主体是信息处理装置。例如,这些信息处理装置的硬件配置如图17所示。即,密钥生成算法Gen、证明者算法P和验证者算法V由CPU902 基于记录在ROM 904、RAM 906、存储单元920、可移除记录介质拟8等等上的程序来执行。(密钥生成算法Gen)密钥生成算法Gen被证明者使用。密钥生成算法Gen是用于生成证明者所特有的一对公开密钥Pk和私密密钥Sk的算法。用密钥生成算法Gen生成的公开密钥Pk被公开。 另外,公开的公开密钥Pk被验证者使用。另一方面,用密钥生成算法Gen生成的私密密钥 sk被证明者秘密地管理。被秘密管理的私密密钥sk被用于向验证者证明对与公开密钥pk 相对应的私密密钥sk的拥有。在形式上,作为以安全性参数1λ (λ是0或0以上的整数)
为输入并且输出私密密钥sk和公开密钥pk的算法,密钥生成算法Gen被表示为以下的式 ⑴[表达式1](sk, pk) — Gen(Ix)...(1)(证明者算法P)证明者算法P被证明者使用。证明者算法P是用于证明对与公开密钥Pk相对应的私密密钥sk的拥有的算法。证明者算法P被定义为以证明者的公开密钥pk和私密密钥 sk为输入并且与验证者执行交互协议的算法。(验证者算法V)验证者算法V被验证者使用。验证者算法V是用于在交互协议中验证证明者是否拥有与公开密钥Pk相对应的私密密钥sk的算法。验证者算法V被定义为以证明者的公开密钥Pk为输入并且在与证明者执行交互协议后输出0或1(1比特)的算法。而且,在输出 0的情况下,认为证明者是非法的,而在输出1的情况下,认为证明者是合法的。在形式上, 验证者算法V被表示为以下的式O)。[表达式2]0/1 — V(pk,m,σ )...⑵(补充)如上所述,公开密钥认证方案为了确保安全性必须满足两个条件,即健全性和零知识性。然而,为了使证明者证明其拥有私密密钥sk,证明者必须执行依赖于私密密钥Sk 的过程,将结果通知给验证者,并且让验证者基于通知的内容来执行验证。为了保证健全性,必须执行依赖于私密密钥Sk的过程。另一方面,即使当该过程的结果被通知给验证者时,关于私密密钥Sk的信息也必须完全不泄漏给验证者。因此,密钥生成算法Gen、证明者算法P和验证者算法V必须被设计成满足这些要件。以上,已经描述了一般的公开密钥认证方案的算法结构。[1-2 数字签名方案的算法结构]接下来,将参考图2描述的一般的数字签名方案的算法结构。图2是用于描述一般的数字签名方案的算法结构的说明图。(概述)与纸质文档不同,不可能对数字化的数据盖印或签名。从而,为了证明数字化数据的作者的合法性,必须有一种产生相当于对纸质文档盖印或签名的效果的电子机制。此机制是数字签名。例如,将只有数据的作者知道的签名数据与该数据相关联地提供给接收者并且在接收者方验证该签名数据的机制被称为数字签名方案。(模型)在数字签名方案的模型中,存在两个实体,即签名者和验证者,如图2所示。另外, 数字签名方案的模型是由三个算法构成的,即密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver。签名者通过使用密钥生成算法Gen生成签名者所特有的一对验证密钥pk和签名密钥sk。另外,签名者通过使用签名生成算法Sig生成要被添加到文档M的数字签名ο。 即,签名者是向文档M添加数字签名的实体。另一方面,验证者通过使用签名验证算法Ver 来验证添加到文档M的数字签名ο。即,验证者是验证数字签名σ以确认文档M的作者是否是签名者的实体。此外,在以下描述中使用了表述“签名者,,和“验证者”,但这些表述严格来说指的是实体。因此,执行密钥生成算法Gen和签名生成算法Sig的主体是与实体“签名者”相对应的信息处理装置。类似地,执行签名验证算法Ver的主体是信息处理装置。例如,这些信息处理装置的硬件配置如图17所示。即,密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver由CPU 902基于记录在ROM 904、RAM 906、存储单元920、可移除记录介质拟8等等上的程序来执行。(密钥生成算法Gen)密钥生成算法Gen被签名者使用。密钥生成算法Gen是用于生成签名者所特有的一对验证密钥pk和签名密钥Sk的算法。用密钥生成算法Gen生成的验证密钥Pk被公开。 另一方面,用密钥生成算法Gen生成的签名密钥sk被签名者秘密地管理。被签名者秘密管理的签名密钥sk被用于生成要添加到文档M的数字签名ο。在形式上,作为以安全性参数1λ(λ是0或0以上的整数)为输入并且输出签名密钥sk和验证密钥pk的算法,密钥生成算法Gen被表示为以下的式(3)。[表达式3](sk,pk) — Gen(Ix)...(3)(签名生成算法Sig)签名生成算法Sig被签名者使用。签名生成算法Sig是用于生成要添加到文档M 的数字签名σ的算法。在形式上,作为以文档M和签名者的签名密钥sk为输入并且输出数字签名σ的算法,签名生成算法Sig被表示为以下的式0)。[表达式4]σ — Sig (sk,Μ)... (4)(签名验证算法Ver)签名验证算法Ver被验证者使用。签名验证算法Ver是用于验证数字签名σ是否是文档M的有效数字签名的算法。在形式上,作为以签名者的验证密钥pk、文档M和数字签名σ为输入并且输出0或1(1比特)的算法,签名验证算法Ver被表示为以下的式(5)。 而且,在输出为0的情况下(在公开密钥pk拒绝文档M和数字签名σ的情况下),文档M 的数字签名σ是无效的。在输出为1的情况下(在公开密钥pk接受文档M和数字签名σ 的情况下),文档M的数字签名σ是有效的。[表达式5]
0/1 — Ver(pk,Μ, σ )...(5)以上,已经描述了一般的数字签名方案的算法结构。[1-3 :η遍公开密钥认证方案]接下来,将参考图3描述η遍公开密钥认证方案。图3是用于描述η遍公开密钥认证方案的说明图。如上所述,公开密钥认证方案是用于在交互协议中向验证者证明证明者拥有与公开密钥Pk相对应的私密密钥sk的认证方案。而且,为了保证公开密钥认证方案的安全性, 必须满足两个条件,即健全性和零知识性。因此,如图3所示,在交互协议中,在证明者和验证者双方执行处理的同时,在证明者与验证者之间执行η次信息交换。在η遍公开密钥认证方案的情况下,证明者利用证明者算法P执行处理(步骤1), 并且信息T1被发送给验证者。接下来,验证者利用验证者算法V执行处理(步骤幻,并且信息T2被发送到证明者。以类似的方式执行处理(步骤3,...,η)并发送多条信息T3,..., Tn,然后执行处理(步骤η+1)。这种信息被发送/接收η次的基于交互协议的公开密钥认证方案被称为“η遍”公开密钥认证方案。以上,已经描述了 η遍公开密钥认证方案。[1-4 =ASS-CC-IP公开密钥认证方案]接下来,将描述以代数曲面上的片段找出问题为安全性基础的公开密钥认证方案的示例。片段找出问题是这样一个问题,即,当给出在环K上定义的η个变量的多次多项式f(Xl,... , xn)时,找出环K上的一个变量的多次多项式Sl(t),... , SlriU),满足
f (S1 (t) , . . . , Sn_! (t) , t) =0。(1-4-1 =ASS-CC 数字签名方案)作为以代数曲面上的片段找出问题为安全性基础的数字签名方案,ASS-CC数字签名方案是已知的(参见Komano等人的文章)。ASS-CC数字签名方案不是公开密钥认证方案,但是考虑到数字签名方案和公开密钥认证方案的相关性,可如下文中所述从ASS-CC数字签名方案来构造以代数曲面上的片段找出问题为安全性基础的公开密钥认证方案。因此,首先,将描述ASS-CC数字签名方案。ASS-CC数字签名方案是由以下所述的密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver构成的。(密钥生成算法Gen)密钥生成算法Gen执行以下的步骤1和步骤2,并且生成签名密钥(ux (t),Uy (t), t)和验证密钥X(x,y,t)。步骤1:密钥生成算法Gen生成函数Ux (t),Uy (t)和CiJt)(其中(i,j) e Λ\{0,0})。这里Λ是正整数的索引集合。步骤2:密钥生成算法Gen计算cQ,。一 Σ (i』e Mft^Cy (t) Ux (t) iUy (t)j。然后,密钥生成算法 Gen 生成签名密钥(ux(t),uy(t),t)和验证密钥 X (x,y,t) =Σ (i, j0 e j (t) χ (t) V (t) jO 这里,满足 X(Ux(t),Uy(t),t) =Σ (^uwMCi.jWuxaYuJtV· =。。(签名生成算法Sig)
签名生成算法Sig首先以签名密钥(ux (t),Uy (t),t)和文档M为输入并且对于i =1至η执行以下的步骤1至步骤4。步骤1:签名生成算法Sig选择Si e κ{0,1}λ,并且计算(X,y,t) — H(Si)。这里的 H(...)是散列函数。散列函数H是用于根据比特串s e {0,1}*生成特定范围内的数值的函数。通过将任意比特串输入到散列函数H中获得的值被称为散列值(以下同样)。步骤2:签名生成算法Sig选择片段0^(0,1^(0),并且计算)(广(x,y,t) -X^xTi, x(t), y-rijy(t), t)+X/ (X,y, t)。步骤3:签名生成算法Sig 计算(Zi,x(t),Zi,y(t)) —(Ui,x(t)+ri,x(t),Ui,y(t)+ri,y(t))。步骤4:签名生成算法Sig 计算 Vi (t) —Η(Χ/ (Zi,x(t),Zi,y(t),t),Zi,x(t),Zi,y(t))。步骤5:在针对i = 1至η执行了以上的步骤1至4之后,签名生成算法Sig计算d = ((I1, ···,《)—H(M, X1" (X,y,t),v“t),· · ·,Xn" (x, y, t),vn(t))。接下来,签名生成算法Sig对i = 1至η执行以下的步骤6。步骤6:如果Cli = 0,则签名生成算法Sig计算饭,!^⑴,!^⑴)。另一方面,如果 Cli = 1,则签名生成算法 Sig 计算 Oi —(0,Zi,x(t),Zi,y(t))。步骤7:然后,签名生成算法Sig输出数字签名σ = (X/,(x,y,t),Vl(t),···,Xn”(x,y,
t) , Vn (t) , O1,..., σ n)。(签名验证算法Ver)0153]签名验证算法Ver以数字签名σ和文档M为输入,并且执行以下的步骤1至步骤 3。步骤1:签名验证算法Ver 计算 d =(屯,· · ·,dn) — H(M,X1,,(x,y,t),· · ·,Xn,,(x, y, t), vn(t))。接下来,签名验证算法Ver对i = 1至η执行以下的步骤2。步骤2:如果Cli = 0,则签名验证算法Ver将ο i分割成(Si, I^x⑴,ri,y(t))。接下来,签名验证算法Ver计算)(/ (x,y,t) 一 H(Si)n然后,签名验证算法Ver验证等式)(广(x,y,t) =Xi (χ-Γ^ω,γ-Γ^,ω,Ο+Χ/ (x,y,t)是否成立。另一方面,如果屯=1,则签名验证算法Ver将Qi分割成(0,Zi,x(t),Zi,y(t))。然后,签名验证算法验证等式Vi = H(X/,(Zi, x(t), zijy(t), t), zijX(t), zijy(t))是否成立。步骤3:在针对i = 1至η执行以上的步骤2之后,签名验证算法Ver确认步骤2的验证是否对于所有i = 1至η都已通过。然后,签名验证算法Ver在步骤2的验证对于所有的i = 1至η都已通过的情况下接受数字签名σ (输出1),而在验证即使对于其中一个没有通过的情况下拒绝数字签名ο (输出0)。(伪造数字签名的可能性)ASS-CC数字签名方案由上述的密钥生成算法Gen、签名生成算法Sig和签名验证算法Ver构成。ASS-CC数字签名方案是对于使用量子计算机的破坏行为有很高抵抗性的数字签名方案,因为其以代数曲面上的片段找出问题为安全性的基础。然而,本申请的发明人发现了对于ASS-CC数字签名方案的数字签名的伪造算法(以下称为签名伪造算法)。(ASS-CC数字签名方案的数字签名的伪造算法)签名伪造算法是仅以文档M作为输入并且伪造数字签名σ的算法。首先,签名伪造算法对于i = 1至η执行以下的步骤1至步骤3。步骤1:签名伪造算法选择Si e R{0,1} λ,并且计算Χ/ (x, y, t) — H(Si)。步骤2:签名伪造算法选择片段(1^(0,1^(0),并且计算)(广0^,7,0 -Xi (XTi, x(t), y-rijy(t), t)+X/ (x,y,t)。步骤3:签名伪造算法选择片段(Zi,x(t),Zi,y(t)),并且计算Vi — H (Xi" (Zi,x(t),Zi,y(t), t), zijX(t), zi>y(t))。步骤4:在针对i = 1至η执行以上的步骤1至3之后,签名伪造算法计算d = ((I1, dn) — H(Μ, X1" (χ, y,t),Vl(t),· · ·,Xn” (χ, y, t),vn(t))。接下来,签名伪造算法对i = 1至η执行以下的步骤5。步骤5:如果Cli = 0,则签名伪造算法计算Qi —饭,!^⑴,!^⑴)。另一方面,如果Cli =1,则签名伪造算法计算Oi —(0,Zi,x(t),Zi,y(t))。步骤6:然后,签名伪造算法输出数字签名ο = (X1^x, y, t),Vl(t),...,Xn"(x, y, t),
Vn (t) , O1,..., σ n)。以上是签名伪造算法的内容。签名伪造算法与ASS-CC数字签名方案的签名生成算法Sig之间的一个不同之处在于(Zi,x(t),Zi,y(t))的生成方法。签名生成算法Sig根据签名密钥(ux(t),uy(t),t)生成(Zi,x(t),Zi, y(t)),而签名伪造算法则不使用签名密钥 (ux(t),uy(t),t)。另外,签名伪造算法与ASS-CC数字签名方案的签名生成算法Sig之间的另一个不同之处在于Vi的计算方法。签名生成算法Sig使用)(/ (Zi,x(t),Zi,y(t),t),而签名伪造算法使用(Zi,x(t),Zi,y(t),t)。即,如果像上述签名伪造算法中那样设定Vi,则有可能在不使用签名密钥(ux(t),uy(t),t)的情况下生成通过验证的数字签名ο。以上,已经描述了针对ASS-CC数字签名方案的签名伪造算法。由于存在这种签名伪造算法,所以可以说ASS-CC数字签名方案的操作并不安全。这种关于安全性的问题在将 ASS-CC数字签名方案修改成公开密钥认证方案的情况下将继续存在。
(1-4-2 =ASS-CC-IP公开密钥认证方案)ASS-CC数字签名方案的算法可被修改成如图4所示的公开密钥认证方案的交互协议(以下称为ASS-CC-IP公开密钥认证方案)。此外,在Komano等人的文章中没有公开图4所示的ASS-CC-IP公开密钥认证方案。这里将描述图4所示的ASS-CC-IP公开密钥认证方案的交互协议。图4是用于描述ASS-CC-IP公开密钥认证方案的交互协议的说明图。如图4所示,在证明者与验证者之间共享公开密钥pk = X (x, y,ζ)。另外,证明者保有私密密钥Sk = (ux (y),uy (y),t)。此外,私密密钥sk和公开密钥pk的生成方法与 ASS-CC数字签名方案的签名密钥sk和验证密钥pk的生成方法相同。步骤1:首先,证明者算法P计算(rx(t),ry(t)) e KST。这里的&是表达代数曲面上的片段的多项式的全体集合的群组。接下来,证明者算法P计算-ux(t)+rx(t)和 Zy (t) 一 uy (t) +ry (t)。然后,证明者算法P选择S e κ{0,1}λ,并且计算V (x, y, t) 一 H1⑶。步骤1(继续)接下来,证明者算法P 计算 X” (x, y, t) -X(x-rx(t), y-ry(t), t)+X,(χ, y, t)。 然后,证明者算法p计算ν -H2(χ' (^^υ,ζ^υ,υ,^^υ,ζγα))。此外,^和吐是散列函数。然后,证明者算法P将(X”(X,y,t),ν)发送给验证者。步骤2:验证者算法V选择d e R{0,1}。然后,验证者算法V将d发送给证明者。步骤3:如果d = 0,则证明者算法P计算数字签名σ = (S,rx(t),ry(t))。另一方面,如果d= 1,则证明者算法P计算数字签名σ = (ε jx(t),Zy(t))。然后,证明者算法P将数字签名σ发送给验证者。此外,σ将被表示为(a,b(t),c(t))。目卩,如果(1 = 0,则3 = 5, b(t) =rx(t)并且 c(t) =ry(t);而如果 d= 1,则 a = ε , b (t) = zx(t), c(t) = zy(t)。步骤4:如果d = 0,则验证者算法V计算a’(x,y,t) — H1 (a)。然后,验证者算法V验证等式 X”(X,y, t) = X(x_b(t),y-c(t),t)+a,(χ, y, t)是否成立。另一方面,如果 d = 1, 则验证者算法V验证等式V = H2 (X” (b (t),c⑴,t),b⑴,c (t))是否成立。步骤5:验证者算法V在步骤4的验证成功的情况下输出表明认证成功的1,而在验证失败的情况下输出表明认证失败的0。如上所述,ASS-CC数字签名方案可被修改成公开密钥认证方案。然而,ASS-CC-IP 公开密钥认证方案包含与ASS-CC数字签名方案相同的安全性问题。S卩,在ASS-CC-IP公开密钥认证方案中,不保有私密密钥sk的伪造者有可能伪造。因此,将参考图5来描述 ASS-CC-IP公开密钥认证方案的伪造方法。(ASS-CC-IP公开密钥认证方案的伪造方法)ASS-CC-IP公开密钥认证方案的伪造方法具有图5的步骤1的下划线部分Π,*2) 中的特征。在ASS-CC-IP公开密钥认证方案中,Zx(t)和、(0是利用私密密钥sk生成的。 然而,在图5所示的伪造方法中,Zx(t)和、(0是任意选择的Γ1)。另外,在ASS-CC-IP公开密钥认证方案中^是利用乂’(^(0,、(0,7)生成的。然而,在图5所示的伪造方法中,ν 是利用 X” (zx(t),zy (t),y) (*2)生成的。即,如果使用图5所示的伪造方法,则不知道ux(t) ^P uy (t)的伪造者可以容易地执行伪造。更具体而言,ASS-CC-IP公开密钥认证方案不满足健全性。如上所述,只要没有同时满足健全性和零知识性这两个条件,就不能保证公开密钥认证方案的安全性。ASS-CC-IP 公开密钥认证方案满足零知识性,但不满足健全性。因此,在ASS-CC-IP公开密钥认证方案中不保证安全性。从而,将考虑用于确保ASS-CC-IP公开密钥认证方案中的健全性的修改方法。作为用于确保ASS-CC-IP公开密钥认证方案中的健全性的方法,可以考虑一种使验证者额外验证v = H(X’ (zx(t), zy(t), t), zx(t), zy(t))的方法。然而,为了实现此方法,必须把关于X’的信息和关于(zx(t),zy(t))的信息交付给验证者。如果在d = 0的情况下将关于(zx(t),zy(t))的信息交付给验证者,则已经有关于 (rx(t),ry(t))的信息的验证者将能够计算私密密钥sk。另一方面,如果在d = 1的情况下将关于X’的信息交付给验证者,则已经有关于X”的信息的验证者将能够计算关于(rx(t), ry(t))的信息。结果,验证者将能够根据计算出的关于(rx(t),ry(t))的信息和关于bx(t), zy (t))信息来计算私密密钥sk。因此,如果采用使验证者额外验证ν = H(X’ (zx(t),zy(t),t),zx(t),zy(t))的方法,则确保了健全性,但却丧失了零知识性。这样,难以通过修改ASS-CC-IP公开密钥认证方案来构造同时满足健全性和零知识性这两个条件的公开密钥认证方案。因此,本申请的发明人设计了一种新的公开密钥认证方案,其以代数曲面上的片段找出问题作为安全性的基础并且满足健全性和零知识性这两个条件。以下将给出详细说明。<2 第一实施例>将描述根据本发明的第一实施例。本实施例涉及以代数曲面上的片段找出问题作为安全性基础的3遍公开密钥认证方案(以下称为本方案)。此外,这里将以3遍公开密钥认证方案作为示例,但也可针对η遍(n ^ 4)公开密钥认证方案来扩展和一般化本实施例的交互协议。[2-1 用于公开密钥认证方案的算法]首先,将参考图6来描述根据本方案的用于公开密钥认证方案的算法。图6是用于描述根据本方案的用于公开密钥认证方案的算法的说明图。此外,本方案由密钥生成算法Gen、证明者算法P和验证者算法V构成。以下,将描述每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥sk。注意这里满足f0(Ul (t),· · ·,ujt),t) = 0。(证明者算法P、验证者算法V)接下来,将参考图6来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., IV1) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1:首先,证明者算法P任意选择数字W。然后,证明者算法P通过将数字w应用到伪随机数生成器G1来生成一个变量的多项式ri(t),^(t)和数字w’。即,证明者算法 P计算(r1;... ,Iv1, w’)-G1(W)0接下来,证明者算法P通过将数字W’应用到伪随机数生成器&来生成η个变量的多项式f’(Xl,...,Xn)。即,证明者算法P计算f’ 一)。步骤1(继续)接下来,证明者算法P 计算(Zl(t),... , Zn^1 (t)) — (U1U)T1 (t),..., Ulri (t)-IV1 (t))。此计算相当于用一个变量的多项式(r1; ...,Iv1)来掩蔽私密密钥 (U1, ...,IV1)的操作。另夕卜,证明者算法 P 计算 f” (X1, ...,xn) — f (X^r1(Xn),..., Xn-I+^1(Xn), xn)+f’ (X1, ·..,xn)。此计算相当于用多项式f’ (X1, ·..,xn)来掩蔽关于 X]^ ? · · · ? Xn 的多项式 f (xi+rj (χη), · · · , xn-i+rn_! (xn), xn)的操作。步骤1(继续)接下来,证明者算法P生成f” (Z1 (t),. . .,Zn^1 (t),t)和Zl,. . .,Zn^1的散列值Cl。 即,证明者算法 P 计算 C1 — H1 (f ” (Z1 (t),. . .,Zn^1 (t),t),Zl,. . .,Zn^1)。另外,证明者算法 P生成数字W’的散列值c2。即,证明者算法P计算c2 —H2(W’)。另外,证明者算法P生成多项式f ”的散列值C30 S卩,证明者算法P计算C3 — H3 (f ”)。此外,所述的H1 (...)、H2 (...) 和H3(...)是散列函数。另外,散列值(ci,c2,c3)是消息。在步骤1中生成的消息(Cl,C2, C3)被发送给验证者。步骤2:验证者算法V从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d e {0,1,2}。步骤3 证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息ο。如果 d = 0,则证明者算法P生成信息O =w。另外,如果d= 1,则证明者算法P生成信息O =(w,,Zl,...,Zlri)。另外,如果d = 2,则证明者算法P生成信息σ = (f", Z1,... ,ZnJ0 这样生成的信息σ被证明者算法P发送给验证者。步骤4 验证者算法V通过使用从证明者接收的信息ο来执行以下验证处理。如果d = 0,则验证者算法V计算(r,. . .,r’ ,w”)一 G1 (经澂σ)。另外,验证者算法V计算f' “ — &(w”)。然后,验证者算法V验证等Sc2 = H2 (w”)是否成立。另外,验证者算法 V 验证等式 c3 = H3 (f (Xl+r' i (xn), ... , xn+r,(xn),xn) +f' ‘‘ (X1,..., xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果d= 1,则验证者算法V计算(w”^^,...,^^ — σ。另外,验证者算法V 计算f' 〃 一&( ”)。然后,验证者算法ν验证等式Cl = Hjf' “
t),ζ’ ...,ζ’ n_i))是否成立。另外,验证者算法V验证等Sc2 = H2 (w”)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果d = 2,则验证者算法V计算(f〃 〃,ζ’ ,z’ J — σ。然后,验证者算法 V 验证等式 C1 = HJf' “ (Z,i(t),…,Z,n-Jt),t),Ζ,…,Z,H))是否成立。另外,验证者算法V验证等Sc3 = H3 (f"“)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值 O0(补充)而且,注意,在把上述步骤1中生成的消息(Cl,C2, C3)发送给验证者时,与私密密钥Sk有关的信息、与Ov IV1)有关的信息和与(Zl,. . .,Zn^1)有关的信息完全不被泄漏给验证者。还要注意,在把上述步骤3中生成的信息ο发送给验证者时,在d = 0的情况下与Zl,...,Zn^1有关的信息完全不被泄漏给验证者,并且在d = 1,2的情况下与..., IV1有关的信息完全不被泄漏给验证者。(本方案与ASS-CC-IP公开密钥认证方案之间的主要差异)如上所述,在ASS-CC-IP公开密钥认证方案中,验证者只要求两类验证模式。另一方面,在本方案的情况下,验证者可能要求三类验证模式。一个具体的差异在于,在ASS-CC-IP公开密钥认证方案的情况下,不执行本方案的与d = 1相对应的使用 f,(Z1 (t), . . . , Zn-Jt), t)的验证。在本方案的情况下,在d = 1的验证模式和d = 2的验证模式中,执行C1 = H1 (f,(Z1 (t),· · ·,Zlri (t),t),Z1, · · ·,Zlri)的验证和 C1 = H1 (f,,(Z1 (t),· · ·,Zlri (t),t), Z1,... , Zn^1)的验证,并且在两个验证都通过的情况下保证了 f ’ (Z1 (t),. . .,Zn^1 (t),t)= f" (Z1 (t),. . .,Zn^1 (t),t)。这是本方案与ASS-CC-IP公开密钥认证方案之间的主要差异。此外,单纯将本方案的d = 1所对应的验证模式添加到ASS-CC-IP公开密钥认证方案不会解决ASS-CC-IP公开密钥认证方案的安全性的问题。例如,即使在ASS-CC-IP公开密钥认证方案中添加了 V = H2 (X’ (zx(t),zy(t),t),zx(t),zy(t))的验证,也不会解决安全性的问题。如图4所示,在ASS-CC-IP公开密钥认证方案的情况下,由于已经在第一遍中发送了关于X”的信息,所以如果将关于X’的信息给予验证者以执行额外验证,则关于rx(t) 和ry(t)的信息将被泄漏,从而导致零知识性丧失。另一方面,在本方案的情况下,在第一遍中关于f ’,f ”,r1; . . .,Iv1,和Zl,. . .,Zn^1 的信息不被发送给验证者,而只有其散列值被发送给验证者。证明者算法P被设计为在第三遍中将验证所必需的最低限度信息发送给验证者,从而在本方案的交互协议保证了零知识性。另外,本方案提供了一种机制,其通过在第一遍中发送散列值,防止了在第一遍中证明者算法P使用的随机数在第三遍被当成另一随机数。另一方面,在ASS-CC-IP公开密钥认证方案中,在第一遍中不发送与X’有关的信息或散列值,从而有可能执行伪造,以使得看起来好像在第三遍中使用了另一 X’ 一样。在本方案与ASS-CC-IP公开密钥认证方案之间也存在这种差异。(本方案中的健全性)本方案的健全性是通过如下方式来保证的如果证明者利用针对消息(Cl,C2, C3) 的正确信息σ对来自验证者的所有要求d = 0,l,2作出了响应,则可以根据这些响应来计算满足以下的式(6)和(7)的f〃 〃,f' “ ,r'r' ^和ζ’ ” ...,τ,0此外,这在ASS-CC-IP公开密钥认证方案中得不到保证。[表达式6] " “ (X1,…,xn) = f (Xl+r'工(Xn),· · ·,xn_!+r' (xn),xn)+f' “ (Xl,...,Xn)... (6) " “ (z' “t),···,^ ^(t), t) = f' “ (z' !(t),... ,ζ' (t) , t). .. (7)如果保证了这种逻辑,就保证了只要没有解答代数曲面上的片段找出问题,则不可能以高于2/3的概率执行伪造。即,为了对验证者的所有要求d = 0,1,2正确地作出响应,伪造者必须能够计算出满足以上的式(6)和(7)的f〃 〃,f' “...,r'^ 和ζ’ ...,ζ’ η-10换言之,伪造者必须能够计算出满足f (U1 (t),...,Un^a), t) = 0的 (U1, ... , IV1)。而且,伪造者可能能够对验证者的要求d = 0,1,2中的最多两个正确地作出响应。因此,伪造成功的概率将是2/3。上述交互协议被执行足够多次。因此,伪造成功的概率可被降低到可忽略的水平。(修改)另外,上述证明者算法P使用f ” (Z1 (t),. . .,Zn^1⑴,t)和Zl,. . .,Zn^1的散列值作为消息(V 然而,由于 f”(Z1 (t),...,Z1^aht) =f,(Zl(t),...,Z1^aht),所以证明者算法P可以使用f ’ (Z1⑴,...,Zn^1 (t),t)和Z1, ...,Zn^1的散列值作为消息c3。另外, 证明者算法P可以分开计算f ” (Z1 (t),. . .,Zn^1⑴,t)的散列值和Z1, ...,Zn^1的散列值, 并且将其每一个作为消息发送给验证者。另外,上述证明者算法P通过向数字w应用伪随机数生成器G1来生成一个变量的多项式巧(t),. . .,Iv1⑴和数字W’。另外,上述证明者算法P通过将数字W’应用到伪随机数生成器&来生成η个变量的多项式f’(Xl,...,Xn)。然而,证明者算法P可以从开始计算w=(巧⑴,…,!^⑴,^),并且可以使G1是恒等映射。另外,在此情况下,数字w 不一定要被应用到Α。此外,对于( 也同样如此。在上述方案中,C1、C2和C3是利用散列函数H1、吐和H3来计算的,但是取代散列函数也可使用承诺方案(commitment scheme)C0M。承诺函数COM是以字符串S和随机数P作为参量的函数。承诺函数的示例包括由Shai Halevi和S ilvio Micali在International Conference CRYPTO 1996 展示的方案,等等。在使用此承诺函数的情况下,在计算Cl、C2* C3之前准备随机数Pl、P 2和P3,并且通过应用承诺函数C0M( ·,P D、C0M( ·,P 2)禾口 C0M( ·,P3)而不是散列函数H1 ( ·)、 Η2(·)和Η3(·)来生成ci、c2*c3。另外,在此修改中,生成验证单元要计算的Ci所必需的P工被包括在响应信息中。此外,此修改的方案可应用到所有以下所述的方案。以上,已经描述了根据本方案的基本算法结构。[2-2 扩展算法]接下来,将参考图7来描述作为本方案的扩展(以下称为扩展方案)的公开密钥认证方案的算法。图7是用于描述基于扩展方案的交互协议的流程的说明图。此扩展方案是把在第一遍中要发送的消息(Cl、C2* c3)变换成一个散列值c并且将其发送给验证者的方案。另外,根据此扩展方案,交互协议被配置为在第一遍中发送散列值c,从而不从在第三遍中发送的信息σ恢复的消息与信息ο —起被发送给验证者。利用这种扩展,在交互协议中要发送给验证者的散列值的数目可得以减少,并且要传输的数据的大小可得以减小。以下,将详细描述扩展方案的每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥Sk0注意这里满足f0(Ul (t),· · ·,ujt),t) = 0。(证明者算法P、验证者算法V)接下来,将参考图7来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., IV1) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1 首先,证明者算法P任意选择数字W。然后,证明者算法P通过将数字w应用到伪随机数生成器G1来生成一个变量的多项式ri(t),^(t)和数字w’。即,证明者算法 P计算(r1;... ,Iv1, w’)-G1(W)0接下来,证明者算法P通过将数字W’应用到伪随机数生成器&来生成η个变量的多项式f’(Xl,...,Xn)。即,证明者算法P计算f’ 一)。步骤1 (继续)接下来,证明者算法P 计算(Zl(t),... , Zn^1 (t)) — (U1U)T1 (t),..., Ulri (t)-IV1 (t))。此计算相当于用一个变量的多项式(r1; ...,Iv1)来掩蔽私密密钥 (U1, ...,IV1)的操作。另夕卜,证明者算法 P 计算 f” (X1, ...,xn) — f (X^r1(Xn),..., Xn-I+^1(Xn), xn)+f’ (X1, ·..,xn)。此计算相当于用多项式f’ (X1, ·..,xn)来掩蔽关于 X]^ ? · · · ? Xn 的多项式 f (xi+rj (χη), · · · , xn-i+rn_! (xn), xn)的操作。步骤1 (继续)接下来,证明者算法P生成f ” (Z1 (t),. . .,Zn^1 (t),t)和Zl,. . .,Zn^1的散列值Cl。 即,证明者算法 P 计算 C1 — H1 (f ” (Z1 (t),. . .,Zn^1 (t),t),Zl,. . .,Zn^1)。另外,证明者算法 P生成数字W’的散列值c2。即,证明者算法P计算c2 —H2(W’)。另外,证明者算法P生成多项式f ”的散列值C30 S卩,证明者算法P计算C3 — H3 (f ”)。此外,所述的H1 (...)、H2 (...) 和H3(...)是散列函数。另外,散列值(ci,c2,c3)是消息。步骤1(继续)在扩展方案的情况下,证明者算法P通过将消息(Cl,C2, C3)应用到散列函数H来生成散列值C。然后,证明者算法P将所生成的散列值c发送给验证者。步骤2 验证者算法V从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d e {0,1,2}。步骤3
证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息ο。如果 d = 0,则证明者算法P生成信息(0,c*) = (w, C1) 0另外,如果d= 1,则证明者算法P生成信息(。,c) = (w’,Zl,...,Zn^c3K另外,如果d = 2,则证明者算法P生成信息(ο, c*) = (f ”,Z1,..., Zlri,C2)。这样生成的信息(ο,c)被证明者算法P发送给验证者。步骤4 验证者算法V通过使用从证明者接收的信息(σ,C*)来执行以下验证处理。如果d = 0,则验证者算法V计算(r’ . . .,r’ ,w”)一 G1 ( ο )。接下来,验证者算法V计算f' “ —&(w”)。然后,验证者算法V计算c’ 2 = H2 (w”)。然后,验证者算法 V 计算 c,3 = H3 (f (Xl+r' ! (xn),…,Xn—i+r,(xn),xn) +f' “ (Xl,· · ·,xn))。然后,验证者算法V验证等式c = H(C*,C’2,C’3)是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证失败的情况下输出表明认证失败的值0。如果d = 1,则验证者算法V计算(^W1,... ,z'm) — σ。接下来,验证者算法 ν计算Γ 〃 一&( ”)。然后,验证者算法ν计算C’i = Hjf' “
t),ζ’ ...,Z’n_i))。然后,验证者算法V计算c’ 2 = H2 (w”)。然后,验证者算法V验证等式c = HWpy2, O是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证失败的情况下输出表明认证失败的值0。如果d = 2,则验证者算法V计算(f' 〃,z’ ,z’ J — σ。然后,验证者算法 V 计算 C,工=H1 (f' “ (z,i ⑴,...,z,⑴,t),z,. . .,z,n_i))。然后,验证者算法V计算c’ 3 = H3(f〃丨‘)。然后,验证者算法V验证等式c = H(c’ ^(^c’ 3)是否成立。 验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证失败的情况下输出表明认证失败的值0。以上,已经描述了扩展方案的交互协议的每个算法的处理。利用这种扩展,在交互协议中要发送给验证者的散列值的数目可得以减少,并且要传输的数据的大小可得以减小。[2-3:并行算法]现在,如上所述,当采用根据本方案或扩展方案的交互协议时,伪造成功的概率可被降低到2/3以下。因此,如果此交互协议被执行两次,则伪造成功的概率可被降低到 0/3)2以下。以相同的方式,如果此交互协议被执行N次,则伪造成功的概率变成(2/3广, 而如果N是足够大的数字(例如,N= 140),则伪造成功的概率被降低到可忽略的水平。例如,将根据本方案的交互协议并行执行N次的算法在图8中示出。以下,将参考图8描述并行执行交互协议N次的每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥Sk0注意这里满足f0(Ul (t),· · ·,ujt),t) = 0。(证明者算法P、验证者算法V)接下来,将参考图8来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., Ulri) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1 首先,证明者算法P对于i = 1至N执行以下的处理(1)至处理(8)。(处理1)证明者算法P任意选择数字Wi。(处理幻证明者算法P通过将数字Wi应用到伪随机数生成器 G1来生成一个变量的多项式LiU),...,IVlii (t)和数字w’ i。即,证明者算法P计算(巧, i,...,IV^,i) —GJr)。(处理;3)证明者算法P通过将数字w’ i应用到伪随机数生成器&来生成η个变量的多项式f’ i(Xl,...,Xn)。即,证明者算法P计算f’ i —&(w,》。步骤1(继续)(处理4)证明者算法 P 计算(Z1Jt),... ,Zn^a)) — (u^W-r^a),... ,Un^1, JO-iVua))。此计算相当于用一个变量的多项式O^i,...,IVu)来掩蔽私密密钥(U1, i,..., Un^lji)的操作。(处理 5)证明者算法?计算产々1,···,。-f (X^rlji (Xn),..., Xn-Jrn-U(Xn), xn)+f’ Jx1, ...,xn)。此计算相当于用多项式f’ i(Xl,...,xn)来掩蔽关于 X]^ ? · · · ? Xn 的多项式 f (xi+rj, i (Xn), · · · , Xn-i+r^!, i (Xn), Xn)的操作。步骤1 (继续)(处理6)证明者算法 P 生成 f” i (Zlji (t),. . .,Zn^lji (t),t)和 Zl,i,. . .,Zn^lji 的散列值 C1^ 即,证明者算法 P 计算 C1,i ^H1 (f” Jzlii ⑴,…,、^⑴,t),Z1,ρ... ,Z1^i)。 (处理7)证明者算法P生成数字w’ i的散列值c2,it)即,证明者算法P计算c2,i — H2 (w%)。 (处理8)证明者算法P生成多项式f”i的散列值c3,”即,证明者算法P计算C3ii^H3 (f”》。 此外,所述的H1 (...)、H2(...)和H3C..)是散列函数。另外,散列值(Cl, i,c2, ^c3J是消肩、ο在针对i = 1至N执行了上述的(处理1)至(处理8)之后,在步骤1中生成的消息(Cu,c2, i,c3, i) (i = 1至N)被发送给验证者。步骤2 验证者算法V对于i = 1至N中的每一个,从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求Cli e {0,1,2} (i = 1 至 N)。步骤3 证明者算法P响应于从验证者接收的要求Cli生成要发送回验证者的信息σ i。这里,证明者算法P针对i = 1至N执行以下的(处理1)至(处理3)。(处理1)如果di = 0,则证明者算法P生成信息0i=Wi。(处理2)如果Cli = 1,则证明者算法P生成信息Oi =(w' ρΖ^,.,.,Ζη )。(处理3)如果Cli = 2,则证明者算法P生成信息Oi= (f”i,Zl, i,. . .,Zn^1, i)。在执行了以上的(处理1)至(处理3)的判决和处理之后,信息σ i (i = 1 至N)被证明者算法P发送给验证者。步骤4 验证者算法V通过使用从证明者接收的信息σ Ji = 1至N)来执行以下验证处理。此外,以下处理是针对i = 1至N执行的。
如果Cli = 0,则验证者算法V计算(r,i, i,. . .,r' ^1, W”》一G1 ( ο》。另夕卜, 验证者算法V计算f' “ i-G2(W^i)0然后,验证者算法V验证等式c2,, = H2 (w” D是否成立。另外,验证者算法V验证等式c3, i = H3(f(Xl+r' uOO,...,x^+r' ^i(Xn), xn)+f' “ i(Xl,...,Xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果Cli = 1,则验证者算法V计算(w”i; ζ’ U,...,z' ^lji) - oi0另外,验证者算法V计算f' “ ^G2然后,验证者算法V验证等式C1,i = HJf' “ ,(ζ' i(t),...,ζ,η_ΙΛ{Χ),Χ),ζ' U1,...,ζ' n_ul))是否成立。另外,验证者算法V验证等式c2, i = H2(W^i)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值 1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果Cli = 2,则验证者算法 V 计算(f〃 ‘‘ ,, ζ' U1, ... , ζ' n_ul) - oi0 然后,验证者算法 V 验证等式 C1, i = H1 (f ‘ ‘‘ i (ζ,i, i ⑴,...,ζ,η i ⑴,t),ζ,i, i,. . .,ζ,η》) 是否成立。另外,验证者算法V验证等式£^ = ^" “ D是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。以上,已经描述了并行执行本方案的交互协议的方法。如上所述,通过反复执行本方案的交互协议,可以将伪造成功的概率降低到可忽略的水平。[2-4 非交互型算法]以上,已经描述了 3遍公开密钥认证方案。然而,由于根据本方案,在第二遍中从验证者发送到证明者的信息只是表明验证模式的要求d(实际上只是一随机数),所以有可能修改到1遍公开密钥认证方案(以下称为非交互型方案)。此外,根据非交互型方案的每个算法的内容在图9中示出。以下,将参考图9来描述根据非交互型方案的每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥Sk0注意这里满足f0(Ul (t),· · ·,ujt),t) = O。(证明者算法P、验证者算法V)接下来,将参考图9来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., IV1) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1 首先,证明者算法P对于i = 1至N执行以下的处理(1)至处理(8)。(处理1)证明者算法P任意选择数字Wi。(处理幻证明者算法P通过将数字Wi应用到伪随机数生成器 G1来生成一个变量的多项式LiU),...,IVlii (t)和数字w’ i。即,证明者算法P计算(巧,i,...,IVlii,D —GJr)。(处理幻证明者算法P通过将数字W’ i应用到伪随机数生成器&来生成η个变量的多项式f’ i(Xl,...,Xn)。即,证明者算法P计算f’ i —&(w,》。步骤1 (继续)(处理4)证明者算法 P 计算(Z1Jt),... ,Zn^a)) — (u^W-r^a),... ,Un^1, JO-iVua))。此计算相当于用一个变量的多项式O^i,...,IVu)来掩蔽私密密钥(U1, i,..., Un^lji)的操作。(处理 5)证明者算法?计算产々1,···,。-f (X^rlji (Xn),..., Xn-Jrn-U(Xn), xn)+f’ Jx1, ...,xn)。此计算相当于用多项式f’ i(Xl,...,xn)来掩蔽关于 X]^ ? · · · ? Xn 的多项式 f (xi+rj, i (Xn), · · · , Xn-i+r^!, i (Xn), Xn)的操作。步骤1 (继续)(处理6)证明者算法 P 生成 f” i (Zlji (t),. . .,Zn^lji (t),t)和 Zl,i,. . .,Zn^lji 的散列值 C1^ 即,证明者算法 P 计算 C1,i ^H1 (f” Jzlii ⑴,…,、^⑴,t),Z1,ρ... ,Z1^i)。 (处理7)证明者算法P生成数字w’ i的散列值c2,it)即,证明者算法P计算c2,i — H2 (w%)。 (处理8)证明者算法P生成多项式f”i的散列值c3,”即,证明者算法P计算C3ii^H3 (f”》。 此外,所述的H1 (...)、H2(...)和H3C..)是散列函数。另外,散列值(Cl, i,c2, ^c3J是消肩、ο步骤2 接下来,证明者算法P选择随机数R。然后,证明者算法P对于i = 1至N,通过将随机数R和在步骤1中生成的消息(C1,PC2^C3a)应用到散列函数H来生成d = ((I1,..., dN)。步骤3:接下来,证明者算法P根据所生成的Cli来生成要发送给验证者的信息0i。这里, 证明者算法P针对i = 1至N执行以下的(处理1)至(处理3)。(处理1)如果Cli = 0, 则证明者算法P生成信息oi = Wi。(处理2)如果Cli = 1,则证明者算法P生成信息Oi =(w' ρΖ^,.,.,Ζη )。(处理3)如果Cli = 2,则证明者算法P生成信息Oi= (f”i,Zl, i,. . .,Zn^1, i)。在执行了以上的(处理1)至(处理3)的判决和处理之后,随机数R、消息 (Cl, PC2^C3J和信息0i(i = 1至N)被证明者算法P发送给验证者。步骤4:验证者算法V首先通过把从证明者接收的随机数R、消息(C1, C2, i,C3,》和信息 OiG = I至N)应用到散列函数H来生成d= (^,...,(In)0然后,验证者算法V通过使用信息σ i (i = 1至N)来执行以下验证处理。此外,以下处理是针对i = 1至N执行的。如果Cli = 0,则验证者算法V计算(r,i, i,. . .,r' ^1, W”》一G1 ( ο》。另夕卜, 验证者算法V计算f' “ i-G2(W^i)0然后,验证者算法V验证等式c2,, = H2 (w” D是否成立。另外,验证者算法V验证等式c3, i = H3(f(Xl+r' uOO,...,x^+r' ^i(Xn), xn)+f' “ i(Xl,...,Xn))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。如果Cli = 1,则验证者算法V计算(w”i,ζ’ U,...,z' ^lji) — oi0另外,验证者算法V计算f' “ ^G2然后,验证者算法V验证等式C1,i = HJf' “ ,(ζ' i(t),...,ζ,η_ΙΛ{Χ),Χ),ζ' U1,...,ζ' n_ul))是否成立。另外,验证者算法V验证等式c2, i = H2(W^i)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果Cli = 2,则验证者算法 V 计算(f〃 ‘‘ z’ u,...,z’ ^lji) — oi0 然后,验证者算法 V 验证等式 C1, i = H1 (f ‘ ‘‘ i (ζ,i, i ⑴,...,ζ,η i ⑴,t),ζ,i, i,. . .,ζ,η》) 是否成立。另外,验证者算法V验证等式£^ = ^" “ D是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。以上,已经描述了根据非交互型方案的每个算法的内容。如上所述,根据非交互型方案,不是验证者向证明者发送随机数d来选择验证模式,而是证明者算法P通过使用消息 (Cl, i,C2, C3,》来生成d。如果假定理想的散列函数H,则散列值d将表现为随机的,从而不会出现对证明者来说方便的散列值d。因此,即使在执行上述修改时,也确保了充分的安全性。此外,这种修改可类似地应用到扩展方案等等。[2-5 修改成数字签名方案]这里,将描述将本方案修改成数字签名方案的方法。此外,为了简单起见,这里将描述将上述非交互型方案修改成数字签名方案的方法。可以理解,当上述非交互型方案的证明者和验证者对应于数字签名方案的签名者和验证者时,与数字签名方案的模型有类似之处,即单是证明者就能够使验证者确信。考虑到这个概念,将详细描述基于非交互型方案的数字签名方案的算法结构。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn) "C (xn),并将f设定为验证密钥pk。另外,密钥生成算法Gen将(U1, ...,Un^1)设定为签名密钥Sk0注意这里满足f0(Ul (t),…,Ulri⑴,t) = 0。(签名生成算法Sig)签名生成算法Sig对于i = 1至N执行以下的(处理1)至(处理15)。此外,假定在签名生成算法Sig中输入签名密钥sk = (U1, ... , Ulri)和文档M。(处理1)签名生成算法Sig任意选择数字Wi。(处理幻签名生成算法Sig通过将数字Wi应用到伪随机数生成器G1来生成一个变量的多项式LiU),... ,Iv1Jt)和数字 w’ i0即,签名生成算法318计算(1^,...,4_1,1,《\)—61 )。(处理3)签名生成算法 Sig通过将数字w’ i应用到伪随机数生成器( 来生成η个变量的多项式f ’ i (X1, . . .,xn)。 即,签名生成算法Sig计算f’ i —&(w,》。(处理4)签名生成算法 Sig 计算(Z1Jt),... ,Zn-^a)) — (u^W-r^a),..., Ulri, JO-IV1, i(t))。此计算相当于用一个变量的多项式(ri, i,. . .,IV1, i)来掩蔽签名密钥(u^,...,UlriJ的操作。(处理5)签名生成算法Sig计算f^Oq,...,xn) -f(Xl+ri, i (xn),. . .,Xn-I+^lji(Xn),xn) +f,i (X1,. . .,xn)。此计算相当于用多项式 f,i (X1,. . .,xn)来掩蔽关于 X1, . . .,\ 的多项式 MxJrlii(Xn),. . .,Xn-Jrn-Li(Xn),xn)的操作。(处理6)签名生成算法 Sig 生成 f” i (Z1, i (t),. . .,Zlri, i ⑴,t)和 Z1, . . .,Zlri, i 的散列值、^ SP,签名生成算法 Sig 计算 C1, i —HJf ” Jzlii ⑴,...,Zlri, i(t),t),Zlj i,...,^^)。(处理7)签名生成算法Sig生成数字w’ i的散列值c2,it) S卩,签名生成算法
29Sig计算C2ii^H2 (W,》。(处理8)签名生成算法Sig生成多项式f”i的散列值c3,it)艮口, 签名生成算法Sig计算C3, i — H3 (f ” D。此外,所述的H1 (...)、H2 (...)和H3 (...)是散列函数。(处理9)签名生成算法Sig选择随机数R。(处理10)签名生成算法Sig对于i =1至N,通过将文档M、随机数R和散列值(Cl, PC2^C3ii)应用到散列函数H来生成d = (di; . . . , dN) ο SP,签名生成算法 Sig 计算 d = ((I1,... ,dN) —HO^Mku,···,c3,N)。(处理11)签名生成算法Sig根据所生成的Cli来生成信息ο lt)然后,签名生成算法Sig对于i = 1至N执行以下的(处理12)至(处理14)。 (处理12)如果Cli = 0,则签名生成算法Sig生成信息σ i = Wi。(处理13)如果Cli = 1, 则签名生成算法Sig生成信息Oi = (w’ Zlji,..., ZlriJ。(处理14)如果Cli = 2,则签名生成算法Sig生成信息Oi = (fpZu,...,ZlriJ。(处理15)在针对i= 1至N执行了以上的(处理12)至(处理14)的判决和处理之后,签名生成算法Sig输出包括随机数R、消息(Cl,PC2JC3J和信息0i(i = 1至N) 的数字签名 σ = (R, Clji, c2ji, c3ji, Q1,..., σΝ)。(签名验证算法Ver)如果对于i = 1至N,以下的所有验证都通过,则签名验证算法Ver接受数字签名 σ,但即使一个验证没有通过,签名验证算法Ver也会拒绝数字签名ο。此外,假定在签名验证算法Ver中输入数字签名ο和文档Μ。首先,签名验证算法Ver计算d = ((I1,..., dN) —H(R,M,Clil,...,c3,N)。接下来,签名验证算法Ver对于i = 1至N执行以下的(验证1)至(验证3)。(验证1)如果Cli= O,则签名验证算法Ver计算(r,^,· · ·,rVu,w”》-G1(Oi)0 接下来,签名验证算法Ver计算f' “ i —&( )。然后,签名验证算法Ver验证等式C2, i = H2 (w” D是否成立。另外,签名验证算法Ver验证等式c3, i =H3 (f(Xl+r’ ^i(Xn),..., Xn-!, #,μ, i (Xn), xn)+f' ‘‘ ^x1,..., xn))是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名ο的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值O。(验证2)如果Cli= 1,则签名验证算法Ver计算W Ui,...,z' ^i) 一 σ 接下来,签名验证算法Ver计算f' “ i—(;2( 。。然后,签名验证算法Ver验证等式C1, i =H^f' “ Jz,“⑴,…-,?^“⑴,^,? υ,...,z'HJ)是否成立。另外,签名验证算法Ver验证等式C2ii = H2(^i)是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名ο的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值O。(验证3)如果 Cli = 2,则签名验证算法 Ver 计算(f〃 “ ,,ζ'1Λ,. . . ,ζ'η_1Λ) - σ 然后,签名验证算法 Ver 验证等式 C1,i = HJf' “ , (z'(t),. . . , z'^,, (t), t), z'..., VlriJ)是否成立。另外,签名验证算法Ver验证等式C3a = H3^"“》是否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名ο的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名ο的值O。以上,已经描述了基于本方案的数字签名方案的每个算法结构。该数字签名方案以代数曲面上的片段找出问题作为安全性的基础,但是不包含像ASS-CC数字签名方案那样的安全性问题。此外,可以类似地构造基于上述的扩展方案的数字签名方案。[2-6 具体示例]接下来,将参考图10来描述在执行本方案时可以设想的具体算法结构。图10是用于描述本方案的具体示例的说明图。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的三个变量的D次多项式f^ (x, y, t)和一个变量的多次多项式ux(t)和 (0。D次多项式 ^χ,γ, )由以下的式(8)表示。另外,一个变量的多次多项式ux(t)由以下的式(9)表示。另外,一个变量的多次多项式 (0由以下的式(10)表示。[表达式7] Λ O, ^O= ΣΧ Υ... (8)
/+j+k<D(O = Σ^/(9)Uy(t)= ^Yjuy/(10)接下来,密钥生成算法Gen计算c (t) — & (ux (t),Uy (t),t)。然后,密钥生成算法 Gen计算f(x,y,t) = f0(x, y,t) _c (t),并将f设定为公开密钥pk。另外,密钥生成算法 Gen将(ux,uy)设定为私密密钥sk。此外,密钥生成算法Gen要生成的f对于除x°y°tk以外的项将是最大D次的,而对于x°y°tk项将是最大D+Ds次的。(证明者算法P、验证者算法V)接下来,将参考图10来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足(ux,uy)的f(ux(t),Uy (t),t) ”,而完全不向验证者泄漏关于(ux,uy)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1 首先,证明者算法P任意选择数字W。然后,证明者算法P通过将数字w应用到伪随机数生成器G1来生成一个变量的多项式rx(t),ry(t)和数字w’。即,证明者算法P计算 (rx,ry,w’)-G1 (w)0接下来,证明者算法P通过将数字w’应用到伪随机数生成器( 来生成三个变量的多项式f,(x,y,t)。即,证明者算法P计算f,一 &(w,)。此外,使得多项式 f’的次数与多项式f的次数是相同的。即,其对于除x°y°tk以外的项将是最大D次的,而对于x°y°tk项将是最大D+Ds次的。步骤1 (继续)接下来,证明者算法P 计算 bx(t),zy(t)) — (ux(t)-rx(t),uy(t)-ry(t))0 此计算相当于用一个变量的多项式(rx,ry)来掩蔽私密密钥(ux,uy)的操作。另外,证明者算法P 计算 f”(x,y,t) -f(x+rx(t),y+ry(t),t)+f' (x,y,t)。此计算相当于用多项式 f,(χ, y, t)来掩蔽关于x,y和ζ的多项式f(x+rx(t),y+ry(t),t)的操作。应当注意,在f (x+rx(t),y+ry(t),t)中出现的与rx(t)和!^⑴有关的项全都被f’ (χ, y, t)掩蔽。步骤1(继续)接下来,证明者算法P生成f” (zx(t),zy(t),t)和zx,zy&散列值Cl。即,证明者算法P计算C1 — H1 (f ” (zx⑴,zy⑴,t),zx, zy)。另外,证明者算法P生成数字W’的散列值c2。即,证明者算法P计算c2 —H2(w’)。另外,证明者算法P生成多项式f”的散列值 c3。即,证明者算法P计算c3 —H3 (f”)。此外,所述的氏(...)、!12(...)和H3C..)是散列函数。另外,散列值(Cl,c2, c3)是消息。在步骤1中生成的消息(Cl,C2, C3)被发送给验证者。步骤2 验证者算法V从三种验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d e {0,1,2}。步骤3 证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息σ。如果d = 0,则证明者算法P生成信息O =w。另外,如果d= 1,则证明者算法P生成信息 σ = (w',zx, zy)0另外,如果d = 2,则证明者算法P生成信息σ = (f”,zx,zy)。这样生成的信息ο被证明者算法P发送给验证者。步骤4 验证者算法V通过使用从证明者接收的信息ο来执行以下验证处理。如果d = 0,则验证者算法V计算(r’x,r’y,w”)-G1(O)0另外,验证者算法V 计算f' “ —&(w”)。然后,验证者算法V验证等式C2 = H2(w”)是否成立。另外,验证者算法V验证等式c3 = H3(f(x+r,x(t),y+r,y(t),t)+f' “ (x,y,t))是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果d = 1,则验证者算法V计算(w”,z’ x,z’ y) — σ。另外,验证者算法V计算 f' 〃一&(w”)。然后,验证者算法 V 验证等Sc1 = H1^' “ (z' x(t), ζ' y(t), t), ζ' x, z’y))是否成立。另外,验证者算法V验证等式C2 = H2 (w”)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果d = 2,则验证者算法V计算(f〃丨‘,z’x,z’y) — ο。然后,验证者算法V验证等式C1 = HJf' “ (z,x(t),z,y(t),t),z,x,z,y))是否成立。另外,验证者算法V验证等式c3 = H3(f"“)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。以上,已经描述了在执行本方案时可以设想的具体算法结构。<3 第二实施例>接下来,将描述本发明的第二实施例。以上,已经描述了 3遍公开密钥认证方案。 在本实施例中,将描述5遍公开密钥认证方案(以下称为本方案)。本方案是通过使验证者的验证模式的数目为2q来确保公开密钥认证方案的健全性的方案。此外,在根据上述第一实施例的3遍公开密钥认证方案中,每次交互协议的伪造概率为2/3。然而,在本方案中,每次交互协议的伪造概率将为l/2+l/q,如下所述。而且,q是要使用的环的阶数。因此,如图18所示,如果环的阶数足够大,则本方案更能够降低每次交互协议的伪造概率,并且通过执行少量次数的交互协议就可充分地降低伪造的概率。根据5遍公开密钥认证方案的交互协议可能看起来没有根据3遍公开密钥认证方案的交互协议那么高效。然而,根据5遍公开密钥认证方案,如果使环的阶数足够大,那么每次交互协议的伪造概率将接近1/2,从而实现相同的安全性水平所需的交互协议执行次数将更少。例如,在3遍公开密钥认证方案中,为了使伪造概率为1/2"以下,交互协议必须被执行n/(log3-l) = 1.701η次以上。另一方面,在5遍公开密钥认证方案中,交互协议必须被执行n/(l-l0g(l+l/q))次以上。如图18所示,例如,当q = 24时,就实现相同的安全性水平所需的通信量而言,5遍公开密钥认证方案将少于3遍公开密钥认证方案。[3-1 用于公开密钥认证方案的算法]以下,将参考图11来描述根据5遍公开密钥认证方案(本方案)的算法结构。图 11是用于描述根据本方案的算法的内容的说明图。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥sk。(证明者算法P、验证者算法V)接下来,将参考图11来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., IV1) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1 首先,证明者算法P任意选择数字W。然后,证明者算法P通过将数字w应用到伪随机数生成器G来生成一个变量的多项式η (t),. . .,Iv1 (t)和η个变量的多项式 f’(Xl,...,Xn)。SP,证明者算法P计算(r1;...,Iv1, f’)一 G(W)。接下来,证明者算法P 计算(Z1 (t),· · ·,Zn^1 (t)) — (U1 (t) T1 (t),· · ·,Ulri (t) -IV1 (t))。此计算相当于用一个变量的多项式Ov ...,Iv1)来掩蔽私密密钥(U1, ...,Ulri)的操作。步骤1 (继续)接下来,证明者算法P生成f ” (Z1 (t),. . .,Zn^1 (t),t)和Zl,. . .,Zn^1的散列值Cl。 即,证明者算法ρ计算Cl —iUf^ha),...,z^a),t),Zl,...,ζ」。另外,证明者算法P生成数字W的散列值c2。即,证明者算法P计算C2 —H2 (W)。此外,所述的H1C..)和 H2C..)是散列函数。另外,散列值(Cl,C2)是消息。在步骤1中生成的消息(Cl,C2)被发送给验证者。步骤2 验证者算法V从环K的q类元素中选择一个随机数a。然后,验证者算法V将所选择的随机数α发送给证明者。步骤3 证明者算法P 计算 f”(Xl,· · ·,χη) — α f(Xl+ri (xn) , ... , XnJiV1 (xn), Xn)+f’ (X1, ...,Xn)。此计算相当于用多项式f’ (X1, ...,Xn)来掩蔽关于X1, ...,I的多项式 f (X^r1 (Xn),…,Xn-i+r^! (Xn),Xn)的操作。在步骤3中生成的多项式f”被发送给验证者。步骤4 验证者算法V从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d e {0,1}。步骤5 证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息ο。如果 d = 0,则证明者算法P生成信息O =w。另外,如果d= 1,则证明者算法P生成信息O =(Z1,..., ZnJ0这样生成的信息σ被证明者算法P发送给验证者。步骤6 验证者算法V通过使用从证明者接收的信息ο来执行以下验证处理。如果d = 0,则验证者算法V计算(r’ ρ...,!·’^,f' “ )—G(o)。然后,验证者算法V验证等式C2 = H2(O)是否成立。另外,验证者算法V验证等式f”(Xl,...,xn)= α f (Xl+r,i (Xn),· · ·,Xlri+r,(χη),χη) +f ‘ “ (Xl,· · ·,xn)是否成立。验证者算法 V 在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果d = 1,则验证者算法V计算(z,,z’ n_i) — σ。然后,验证者算法V验证等式 C1 = HJf' “是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。(补充)而且,注意,在把上述步骤1和步骤3中生成的消息(Cl,C2)和f”发送给验证者时,与私密密钥sk有关的信息、与(Γι,Iv1)有关的信息和与(Zl,. . .,Zn^1)有关的信息完全不被泄漏给验证者。还要注意,在把上述步骤5中生成的信息ο发送给验证者时, 在d = 0的情况下与Zl,...,Zn^1有关的信息完全不被泄漏给验证者,并且在d = 1的情况下与. . .,Iv1有关的信息完全不被泄漏给验证者。(本方案中的健全性)本方案的健全性是通过如下方式来保证的如果证明者算法P对于一组(C1, C2) 和由验证者算法V选择的两类(Ci1, α2),正确地对要求d = 0,l作出了响应,则可以根据这些响应来计算满足以下的式(11)至(13)的f “ ‘‘ 1; f “ ‘‘ 2,f ‘ “ ,r'r' ^,和
Z ι j · · · j Z η_ι ο[表达式8]〃“ (X1, ...,xn) = Qjf (Xl+r ‘ ! (Xn),· · ·,Xn^1+r ‘ (Xn),xn)+f' “ (χι,···,χη)…(11)
2" “ (X1, ...,xn) = a2f (Xl+r ‘ ! (Xn),· · ·,Xn^1+r ‘ (Xn),xn)+f' “ (χι,···,χη)... (12)“ “ (Z1 (t),· · ·,Zlri (t),t) = f2 “ “ (Z1 (t),· · ·,Zn^1 (t),t)…(13)如果保证了这种逻辑,就保证了只要没有解答代数曲面上的片段找出问题,则不可能以高于l/2+l/q的概率执行伪造。即,为了对验证者的所有要求d = 0,1正确地作出响应,伪造者必须能够计算出满足以上的式(11)至(13)的f〃 ‘‘ ,, " “ 2,f' “ ,r'
r’ 和ζ’ . . .,ζ’ n_lt)换言之,伪造者必须能够计算出满足f (U1 (t), ... , Un^1 (t),t)= 0的(u”...,^^)。因此,只要没有解答代数曲面上的片段找出问题,伪造者就不能够以高于l/2+l/q的概率成功执行伪造。此外,通过执行上述交互协议足够多次,伪造成功的概率可被降低到可忽略的水平。(修改)证明者算法P使用T f,,(Z1⑴,· · ·,Zn^1 (t),t)和Z1, · · ·,Zn^1的散列值作为消息 C10但证明者算法P可以分开计算f ” (Z1 (t),. . .,Zn^1 (t),t)的散列值和Z1, ...,Zn^1的散列值,并且可以将其每一个作为消息分开发送给验证者。另外,上述证明者算法P通过向数字W应用伪随机数生成器G来生成一个变量的多项式A (t),. . .,IV1 (t)和η个变量的多项式f ’(Xl,. . .,χη)。然而,证明者算法P可以从开始计算w =(巧(t),. . .,Iv1 (t),f ’), 并且可以使G是恒等映射。另外,在此情况下,数字w不一定要被应用到G。以上,已经描述了根据本方案的基本算法结构。[3-2 扩展算法]接下来,将参考图12来描述作为本方案的扩展(以下称为扩展方案)的公开密钥认证方案的算法。图12是用于描述基于扩展方案的交互协议的流程的说明图。此扩展方案是把在第三遍中要发送的多项式f”变换成一个散列值C3并且将其发送给验证者的方案。 利用这种扩展,在交互协议中向验证者发送表示大小(!^presentation size)较大的多项式f”的概率被降低到一半,并且要传输的数据的平均大小可得以减小。以下,将详细描述扩展方案的每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥sk。(证明者算法P、验证者算法V)接下来,将参考图12来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., IV1) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。
步骤1:首先,证明者算法P任意选择数字W。然后,证明者算法P通过将数字w应用到伪随机数生成器G来生成一个变量的多项式η (t),. . .,Iv1 (t)和η个变量的多项式 f’(Xl,...,Xn)。SP,证明者算法P计算(r1;...,Iv1, f’)一 G(W)。接下来,证明者算法P 计算(Z1 (t),· · ·,Zn^1 (t)) — (U1 (t) T1 (t),· · ·,Ulri (t) -IV1 (t))。此计算相当于用一个变量的多项式Ov ...,Iv1)来掩蔽私密密钥(U1, ...,Ulri)的操作。步骤1(继续)接下来,证明者算法P生成f ” (Z1⑴,...,Zn^1⑴,t)和Zl,. . .,Zn^1的散列值Cl。 即,证明者算法ρ计算Cl —iUf^ha),...,ζ^α),t),Zl,...,ζ」。另外,证明者算法P生成数字W的散列值c2。即,证明者算法P计算C2 —H2 (W)。此外,所述的H1C..)和 H2C..)是散列函数。另外,散列值(Cl,C2)是消息。在步骤1中生成的消息(Cl,C2)被发送给验证者。步骤2:验证者算法V从环K的q类元素中选择一个随机数a。然后,验证者算法V将所选择的随机数α发送给证明者。步骤3 证明者算法P 计算 f”(Xl,· · ·,xn) — a f(Xl+ri (xn) , ... , XnJiV1 (xn), xn)+f’(Xl,...,Xn)。此计算相当于用多项式f’(Xl,...,Xn)来掩蔽关于X1,...,I的多项式f(Xl+ri(Xn),...,XM+iViOO,。的操作。另外,证明者算法P生成多项式f”的散列值 C30即,证明者算法P计算c3 —H3(f”)。此外,所述的H3(...)是散列函数。另外,散列值 C3是消息。在步骤3中生成的消息C3被发送给验证者。步骤4 验证者算法V从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求d e {0,1}。步骤5 证明者算法P响应于从验证者接收的要求d生成要发送回验证者的信息ο。如果 d = 0,则证明者算法P生成信息O =w。另外,如果d= 1,则证明者算法P生成信息O =(、,...,、+^)。这样生成的信息σ被证明者算法P发送给验证者。步骤6 验证者算法V通过使用从证明者接收的信息ο来执行以下验证处理。如果d = 0,则验证者算法V计算(r,…,r,η,f' “ )—G(o)。然后, 验证者算法V验证等式C2 = H2(O)是否成立。另外,验证者算法V验证等式C3 = H3 ( a f (Xl+r,i (Xn), ... , xn+r,(Xn),xn) +f' “ (Xl,· · ·,xn))是否成立。验证者算法 V 在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。如果(1=1,则验证者算法¥计算(2’1,...,2’11_1,广丨‘)—σ。然后,验证者算法 V 验证等式 C1 = HJf' “ (Z,i(t),…,Z,n-Jt),t),Z,…,Z,H))是否成立。另外,验证者算法V验证等Sc2 = H2 (f'“)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值 O0以上,已经描述了扩展方案的交互协议的每个算法的处理。利用这种扩展,在交互协议中向验证者发送表示大小较大的多项式f”的概率可被降低到一半,并且要传输的数据的平均大小可得以减小。[3-3:并行算法]现在,如上所述,当采用根据本方案或扩展方案的交互协议时,伪造成功的概率可被降低到l/2+l/q以下。因此,如果此交互协议被执行两次,则伪造成功的概率可被降低到(l/2+l/q)2以下。以相同的方式,如果此交互协议被执行N次,则伪造成功的概率变成 (l/2+l/q)N,而如果N是足够大的数字(例如,N = 80),则伪造成功的概率被降低到可忽略的水平。例如,将根据本方案的交互协议并行执行N次的算法在图13中示出。以下,将参考图13描述并行执行交互协议N次的每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥sk。注意,这里满足4(+(0,...,1^(0,0 =0。(证明者算法P、验证者算法V)接下来,将参考图13来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., Ulri) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1:首先,证明者算法P对于i = 1至N执行以下的处理(1)至处理(5)。(处理1) 证明者算法P任意选择数字Wi。(处理幻证明者算法P通过将数字Wi应用到伪随机数生成器G来生成一个变量的多项式ru (t),. . .,IVia (t)和多项式f ’ i (X1,. . .,Xn)。S卩,证明者算法P计算(Li,...,IV1^f' D — G(Wi)。(处理3)证明者算法P计算(Z1Jt),..., Zn^a)) —(!^⑴-!^⑴,...,Ulri,JO-Iv1,i(t))。此计算相当于用一个变量的多项式 (rlji; . . .,IV1J 来掩蔽私密密钥(Ulii,. . .,Un^lji)的操作。步骤1 (继续)(处理4)证明者算法 P 生成 f” i (Zlji (t),· · ·,Z1^i ⑴,t)和 · · ·,Z1^i 的散列值 C1^ 即,证明者算法 P 计算 C1,i ^H1 (f” Jzlii ⑴,…,、^⑴,t),Z1,ρ... ,Z1^i)。 (处理5)证明者算法P生成数字w’ i的散列值c2,it)即,证明者算法P计算c2,i — H2 (w%)。在针对i = 1至N执行了上述的(处理1)至(处理幻之后,在步骤1中生成的消息(Cu,C2,,) (i = 1至N)被发送给验证者。步骤2 验证者算法V从环K的q类元素中选择N个随机数α π . . .,a N。然后,验证者算法V将所选择的随机数α . . .,α N发送给证明者。步骤3 证明者算法P 对于 i = 1 至 N计算 f”i(Xl,... , xn) — α ,f (X^rlji(Xn),..., Xn-Jrn-U(Xn), xn)+f’ Jx1, ...,xn)。此计算相当于用多项式f’ i(Xl,...,xn)来掩蔽关于 X1, ...,I的多项式Mxfr1, i (xn), ... , Xn-Arlri, i (xn),xn)的操作。然后,证明者算法P将多项式f ” . . .,f ”N发送给验证者。步骤4 验证者算法V对于i = 1至N中的每一个,从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求Cli e {0,1} (i = 1 至N)。步骤5 证明者算法P响应于从验证者接收的要求Cli生成要发送回验证者的信息σ i。这里证明者算法P对于i = 1至N执行以下的(处理1)或(处理2)。(处理1)如果di = 0,则证明者算法P生成信息0i=Wi。(处理2)如果Cli = 1,则证明者算法P生成信息Oi =(w' pZu,...,、^)。在执行了以上的(处理1)或(处理2)的判决和处理之后,信息 σ i (i = 1至N)被证明者算法P发送给验证者。步骤6 验证者算法V通过使用从证明者接收的信息σ Ji = 1至N)来执行以下验证处理。此外,以下处理是针对i = 1至N执行的。如果Cli = O,则验证者算法V计算(r'^.-.j'^pf·'“》一G1 ( σ》。然后, 验证者算法V验证等式c2,i = H2 ( ο》是否成立。另外,验证者算法V验证等式f \ (Xl,..., xn) = f(Xl+r' Li(Xn),· · ·,Xlri, i+r,^lji(Xn),xn)+f' “ ^x1, · · ·,xn)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。如果Cli = 1,则验证者算法V计算(z’ u,...,ζ’ — oi0然后,验证者算法 V 验证等式 C1,i = H^f' “ i(Z,“⑴,...,Ζ,η^ω,Ο,Ζ,u,...,z,^lji))是否成立。 验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。以上,已经描述了并行执行本方案的交互协议的方法。如上所述,通过反复执行本方案的交互协议,可以将伪造成功的概率降低到可忽略的水平。此外,对于扩展方案,也可以类似地进行并行化。用于扩展方案的并行交互协议的算法结构在图14中示出。(根据扩展方案的并行算法)接下来,将参考图14来描述根据扩展方案的并行算法的内容。此外,密钥生成算法Gen的结构与根据本方案的并行算法的基本相同,对其的详细说明将被省略。步骤1:首先,证明者算法P对于i = 1至N执行以下的处理(1)至处理(5)。(处理1) 证明者算法P任意选择数字Wi。(处理幻证明者算法P通过将数字Wi应用到伪随机数生成器G来生成一个变量的多项式ru (t),. . .,IVia (t)和多项式f ’ i (X1,. . .,Xn)。S卩,证明者算法P计算(Li,...,IV1^f' D — G(Wi)。(处理3)证明者算法P计算(Z1Jt),...,Zn^a)) —(!^⑴-!^⑴,...,Ulri,JO-Iv1,i(t))。此计算相当于用一个变量的多项式 (rlji; . . .,IV1J 来掩蔽私密密钥(Ulii,. . .,Un^lji)的操作。步骤1 (继续)(处理4)证明者算法 P 生成 f” i (Zlji (t),· · ·,Z1^i ⑴,t)和 · · ·,Z1^i 的散列值 C1^ 即,证明者算法 P 计算 C1,i ^H1 (f” Jzlii ⑴,…,、^⑴,t),Z1,ρ... ,Z1^i)。 (处理5)证明者算法P生成数字w’ i的散列值c2,it)即,证明者算法P计算c2,i — H2 (w%)。在针对i = 1至N执行了上述的(处理1)至(处理幻之后,在步骤1中生成的消息(Cu,C2,,) (i = 1至N)被发送给验证者。步骤2 验证者算法V从环K的q类元素中选择N个随机数α π . . .,a N。然后,验证者算法V将所选择的随机数a . . .,a N发送给证明者。步骤3 证明者算法P对于i= 1至N计算 f^Oq,. . . , xn) 一 a ,f (Xl+riji (xn),. . .,Xn-Jrlri, i(Xn),xn)+f’ i(Xl,...,xn)。此计算相当于用多项式 f’ i(Xl,...,xn)来掩蔽关于 X1,..., Xn的多项式f (Xjrlii (Xn),. . .,UiVu (Xn),Xn)的操作。然后,证明者算法P生成多项式 f”1;...,广\的散列值c3。即,证明者算法P计算C3-H3^1, ...,f”N)。此外,所述的 H3C..)是散列函数。另外,散列值C3是消息。在步骤3中生成的消息C3被发送给验证者。步骤4:验证者算法V对于i = 1至N中的每一个,从两个验证模式中选择要使用的验证模式。然后,验证者算法V向证明者发送表明所选择的验证模式的要求Cli e {0,1} (i = 1 至N)。步骤5 证明者算法P响应于从验证者接收的要求Cli生成要发送回验证者的信息σ i。这里,证明者算法P对于i = 1至N执行以下的(处理1)或(处理2)。(处理1)如果di = 0,则证明者算法P生成信息0i=Wi。(处理2)如果Cli = 1,则证明者算法P生成信息Oi =(w' ^、^...,、^,广》。在执行了以上的(处理1)或(处理2)的判决和处理之后, 信息σ i (i = 1至N)被证明者算法P发送给验证者。步骤6 验证者算法V通过使用从证明者接收的信息σ Ji = 1至N)来执行以下验证处理。此外,以下处理是针对i = 1至N执行的。如果Cli = O,则验证者算法V计算(!·,",···,!·,“,W “》一G1 ( ο》。另外, 验证者算法 V 计算 f〃 ‘‘ ,-a^ (χ1+Γ ‘ u, (xn),. . . , χ,,^+r ‘ ^1,, (xn), xn) +f ‘ ‘‘ ^x1,..., xn)。然后,验证者算法V验证等式C2a = H2(Oi)是否成立。另外,验证者算法V验证等式 c3 = H3(f〃 “ ,,..., " “ Ν)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。如果Cli = 1,则验证者算法V计算(z,Li,...,ζ,η」, " “ i) ^ oi0然后,验证者算法 V 验证等式 C1, i = H1 (f ‘ ‘‘ i (ζ,i, i ⑴,...,ζ,η i ⑴,t),ζ,i, i,. . .,ζ,η》) 是否成立。另外,验证者算法V验证等Sc3 = H3 (f〃 “ " “ Ν)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值0。以上,已经描述了根据扩展方案的并行算法的内容。[3-4 非交互型算法]以上,已经描述了 5遍公开密钥认证方案。然而,在本方案中,从验证者发送到证明者的信息实际上只是一随机数,从而有可能修改到1遍公开密钥认证方案(以下称为非交互型方案)。此外,根据非交互型方案的每个算法的内容在图15中示出。以下,将参考图 15来描述根据非交互型方案的每个算法的内容。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn)-C OO,并将f设定为公开密钥pk。另外,密钥生成算法Gen将(U1, . . .,Ulri)设定为私密密钥sk。注意,这里满足4(+(0,...,1^(0,0 =0。(证明者算法P、验证者算法V)接下来,将参考图15来描述交互协议中的证明者算法P和验证者算法V进行的处理。此交互协议用于使验证者证明“证明者知道满足f(Ul(t),...,ivJtht)的(Ul,..., IV1) ”,而完全不向验证者泄漏关于(U1, Ulri)的信息。此外,假定在证明者与验证者之间共享由密钥生成算法Gen生成的公开密钥pk。另外,假定由密钥生成算法Gen生成的私密密钥sk被证明者秘密地管理。步骤1 首先,证明者算法P对于i = 1至N执行以下的处理(1)至处理(5)。(处理1) 证明者算法P任意选择数字Wi。(处理幻证明者算法P通过将数字Wi应用到伪随机数生成器G来生成一个变量的多项式ru (t),. . .,IVia (t)和多项式f ’ i (X1,. . .,Xn)。S卩,证明者算法P计算(Li,...,IV1^f' D — G(Wi)。(处理3)证明者算法P计算(Z1Jt),..., Zn^a)) —(!^⑴-!^⑴,...,Ulri,JO-Iv1,i(t))。此计算相当于用一个变量的多项式 (rlji; . . .,IV1J 来掩蔽私密密钥(Ulii,. . .,Un^lji)的操作。步骤1 (继续)(处理4)证明者算法 P 生成 f” i (Zlji (t),· · ·,Z1^i ⑴,t)和 · · ·,Z1^i 的散列值 C1^ 即,证明者算法 P 计算 C1,i ^H1 (f” Jzlii ⑴,…,、^⑴,t),Z1,ρ... ,Z1^i)。 (处理5)证明者算法P生成数字w’ i的散列值c2,it)即,证明者算法P计算c2,i — H2 (w%)。步骤1 (继续)接下来,证明者算法P选择随机数&和&。然后,证明者算法P通过将随机数& 和由以上的(处理4)和(处理5)计算出的散列值C1,i和c2,i应用到散列函数Ha来生成散列值 a”···,a N。即,证明者算法 P 计算(a”···,a N) 一 Ha (RA,cia,· · ·,c2,N)。步骤1 (继续)接下来,证明者算法P对于i = 1至N执行以下的(处理1)和(处理2)。(处理1) 证明者算法 P 计算 f^Jx”· · ·,xn) — a if (X^rlji(Xn),. · ·,Xn-Jrn-Li (xn),xn)+f,^x1,. · ·, xn)。此计算相当于用多项式f’ i(Xl,...,xn)来掩蔽关于X1, ...,1的多项式f(Xl+ri,
40i (Xn),...,Xn-i+r^!, i (Xn),Xn)的操作。(处理2)证明者算法P对于i = 1至N,通过将随机数Ra和&、散列值(C1,i和c2,i)、α i和f ” i应用到散列函数Hb来生成d =(屯,...,dN)。 艮口,证明者算法 P 计算(di;. . .,dN) ^ HB(RA,RB,cia,. . .,c2,N,α”···,α Ν,f” ” · · ·,f” Ν)。步骤1 (继续)接下来,证明者算法P根据所生成的Cli来生成要发送给验证者的信息0i。这里, 证明者算法P对于i = 1至N执行以下的(处理1)或(处理2)。(处理1)如果Cli = 0, 则证明者算法P生成信息0i = Wi。(处理2)如果Cli = 1,则证明者算法P生成信息Oi = (zu,...,^,》。在执行了以上的(处理1)或(处理2)的判决和处理之后,Ra、Rb、Qi, c^cm 0i(i = 1至N)被证明者算法P发送给验证者。步骤2 验证者算法V首先通过把从证明者接收IV C1, i和C2, i应用到散列函数Ha来生成 ai0即,验证者算法V计算(Ci1,...,aN) —^(!^,(^,…,(^』)。接下来,验证者算法V 计算 d = ((I1, . . . , dN) 一 Hb (Ra, Rb, Cia, . . . , C2,ν, a ” · · ·,a N,f” ” · · ·,f”N)。然后,验证者算法V通过使用信息ο i (i = 1至N)来执行以下验证处理。此外,以下处理是针对i = 1至N执行的。如果Cli = O,则验证者算法V计算O^1,‘‘ D —G^h)。然后, 验证者算法V验证等式c2,i = H2 ( ο》是否成立。另外,验证者算法V验证等式f \ (Xl,..., xn) = a jf (x^r' Li(Xn),... ,Xn-l,i+r n-1, i (Xn) ,Xn)+f' “ i (X1, . . .,Xn)是否成立。验证者算法V在所有验证都成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。如果Cli = 1,则验证者算法V计算(z,u,...,ζ,Μ」,f'‘‘》一Qi。然后,验证者算法 V 验证等式 C1, i = H1 (f ‘ ‘‘ i (ζ,i, i ⑴,...,ζ,η i ⑴,t),ζ,i, i,. . .,ζ,η》) 是否成立。验证者算法V在验证成功的情况下输出表明认证成功的值1,而在验证中发生了失败的情况下输出表明认证失败的值O。以上,已经描述了根据非交互型方案的每个算法的内容。此外,如果假定理想的散列函数Ha和Hb,则散列值a i和Cli将表现为随机的,从而不会出现对证明者来说方便的散列值、和屯。因此,即使在执行上述修改时,也确保了充分的安全性。此外,这种修改可类似地应用到扩展方案等等。[3-5 修改成数字签名方案]这里,将描述将本方案修改成数字签名方案的方法。此外,为了简单起见,这里将描述将上述非交互型方案修改成数字签名方案的方法。可以理解,当上述非交互型方案的证明者和验证者对应于数字签名方案的签名者和验证者时,与数字签名方案的模型有类似之处,即单是证明者就能够使验证者确信。考虑到这个概念,将详细描述基于非交互型方案的数字签名方案的算法结构。(密钥生成算法Gen)密钥生成算法Gen生成在环K上定义的η个变量的多次多项式f^Oq,..., Xn)和一个变量的多次多项式U1U), ...,ivJt)。接下来,密钥生成算法Gen计算 c(t) -f0(Ul(t),... ,Un^1 (t),t)o 然后,密钥生成算法 Gen 计算 f(Xl,...,xn) =f。(Xl,···, xn) "C (xn),并将f设定为验证密钥pk。另外,密钥生成算法Gen将(U1, ...,Un^1)设定为签名密钥sk。注意,这里满足^(…⑴,…-,!^⑴,^ =0。(签名生成算法Sig)签名生成算法Sig对于i = 1至N执行以下的处理(1)至处理(11)。此外,假定在签名生成算法Sig中输入签名密钥sk = (U1, ... , IV1)和文档M。(处理1)签名生成算法Sig任意选择数字Wi。(处理幻签名生成算法Sig通过将数字Wi应用到伪随机数生成器G来生成一个变量的多项式Li (t),. . .,Iv1Jt)和η个变量的多项式f,Jx1, ...,xn)。即,签名生成算法Sig计算O^i,...,ivu,f,0 — G(Wi)。 (处理 2)签名生成算法 Sig 计算(Zl, ^t), ... , Zn^1, i (t)) 一 (U1,, (t) T1, ^t), ... , Ulri, JO-iVua))。此计算相当于用一个变量的多项式(ru,...,!ν」来掩蔽签名密钥(U1,
· · · , Ulria)的操作。(处理3)签名生成算法 Sig 生成 f” i (Zl, i (t),. . .,Zlri, i ⑴,t)和 Z1, . . .,Zlri, i 的散列值、^ SP,签名生成算法 Sig 计算 C1, i —HJf ” Jzlii ⑴,...,Zlri, i(t),t),Zlj i,...,^^)。(处理4)签名生成算法Sig生成数字w’ i的散列值c2,it) S卩,签名生成算法 Sig计算(W’》。此外,所述的H1C..)和吐(...)是散列函数。(处理4)签名生成算法Sig任意选择随机数I A。(处理幻签名生成算法Sig计算 a = (Q1,... , αΝ) —ΗαΟ^,Μ,α,ρ···,c2,N)。(处理 6)签名生成算法 Sig 对于 i = 1 至 N 计算 f” 丄(X1, · · · , xn) = a jf (xj+r' u i (xn), ... , Xlri, ^r' ^lj i (xn), xn) +f' i (x1 ..., Xn)。(处理7)签名生成算法Sig任意选择随机数&。(处理8)签名生成算法Sig计算d =(di; . . . , dN) —Hb(Rb,M,C1,C2, N,Ct,f ι,· · ·,f Ν) ο接下来,签名生成算法Sig对于i = 1至N,根据屯来执行以下的接下来的(处理 9)或(处理10)。(处理9)如果Cli = O,则签名生成算法Sig计算0i—Wi。(处理10)如果Cli = 1,则签名生成算法Sig计算Oi — (zu,...,、。)。(处理11)在对于i= 1至N执行了以上的(处理9)或(处理10)的判决和处理之后,签名生成算法 Sig 输出数字签名 σ = (RA,RB,cia,... ,c2jN, Q1,... , Qnj^1,...,
f,,)
丄 N乂0(签名验证算法Ver)如果对于i = 1至N,以下的所有验证都通过,则签名验证算法Ver接受数字签名 σ,但即使一个验证没有通过,签名验证算法Ver也会拒绝数字签名ο。此外,假定在签名验证算法Ver中输入数字签名ο和文档Μ。首先,签名验证算法Ver计算a = (Ci1,..., aN) — HaO^Mku,...,c3,N)。接下来,签名验证算法 Ver 计算 d =(屯,...,dN) — H(R, Μ, Cljl,... ,c3,Ν, a,f”i,...,f”N)。然后,签名验证算法Ver对于i = 1至N执行以下的 (验证1)和(验证2)。(验证1)如果Cli= O,则签名验证算法Ver计算(r’ ,. . .,rV^,f”》-G(Oi)0 然后,签名验证算法Ver验证等式c2, i = H2(Oi)是否成立。另外,签名验证算法Ver验证等式 f” i (X1, · · · , xn) = a jf (xj+r' ι i (xn), ... , Xlri, j+r' , j (xn), xn) +f ‘ 士 (X1, ... , xn)是
否成立。签名验证算法Ver在所有验证都成功的情况下输出表明接受数字签名ο的值1, 而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值O。(验证2)如果乜=1,则签名验证算法¥吐计算(2,1」,...,2,11_1」,广“i)- oi0 然后,签名验证算法 Ver 验证等式 C1,i = HJf' “ , (z'(t),. . . , z'^,, (t), t), z'...,VlriJ)是否成立。签名验证算法Ver在验证成功的情况下输出表明接受数字签名σ的值1,而在验证中发生了失败的情况下输出表明拒绝数字签名σ的值0。以上,已经描述了基于本方案的数字签名方案的每个算法结构。上述数字签名方案以代数曲面上的片段找出问题作为安全性的基础,但是不包含像ASS-CC数字签名方案那样的安全性问题。此外,可以类似地构造基于上述的扩展方案的数字签名方案。[3-6:具体示例]接下来,将参考图16来描述在执行本方案时可以设想的具体算法结构。图16是用于描述本方案的具体示例的说明图。(密钥生成算法Gen)钥生成算法Gen生成在环K上定义的三个变量的D次多项式f^ (x, y, t)和一个变量的多次多项式ux (t)和 (0。此外,D次多项式fjx,y,t)被表示为由以下的式(14)。 另外,一个变量的多次多项式ux (t)被表示为以下的式(1 。另外,一个变量的多次多项式 uy(t)被表示为以下的式(16)。[表达式9]
权利要求
1.一种认证装置,包括密钥设定单元,用于将多次多项式Ui(t)设定成私密密钥,并且将满足f (U1 (t),..., Ulri (t),t) = 0的多次多项式f设定成公开密钥,其中i = 1至n-1 ;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k彡3 ;以及响应发送单元,用于向所述验证者发送k类响应信息之中的与由所述验证模式接收单元接收的关于验证模式的信息相对应的响应信息,其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。
2.根据权利要求1所述的认证装置,其中,如果当执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第二步骤和由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤时,所述验证者对于所有的响应信息都成功执行了验证,则认证成功。
3.根据权利要求2所述的认证装置,其中,执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第二步骤和由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第三步骤的处理被重复,并且其中,如果当执行所述第一步骤至第三步骤预定次数时,所述验证者每次对于所有的响应信息都成功执行了验证,则认证成功。
4.根据权利要求2所述的认证装置,其中,在所述消息c = (Cl,. . .,cm)的情况下,所述消息发送单元利用单向函数H来计算新的消息c’ = H(C),并将所述消息C’发送给所述验证者,并且所述响应发送单元将所述消息c的一元素与所述响应信息一起发送,其中所述元素是即使所述验证者使用该响应信息也不能恢复的元素。
5.根据权利要求3所述的认证装置,其中,在所述消息c = (Cl,. . .,cm)的情况下,所述消息发送单元利用单向函数H来计算新的消息c’ = H(C),并将所述消息C’发送给所述验证者,并且所述响应发送单元将所述消息c的一元素与所述响应信息一起发送,其中所述元素是即使所述验证者使用该响应信息也不能恢复的元素。
6.一种认证装置,包括消息接收单元,用于从证明者接收消息c ;验证模式选择单元,用于针对一个消息c,从k个验证模式中选择一个验证模式,其中 k彡3 ;验证模式发送单元,用于把关于由所述验证模式选择单元选择的验证模式的信息发送给所述证明者;响应接收单元,用于从所述证明者接收k类响应信息之中的与由所述验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及验证单元,用于利用由所述消息接收单元接收的消息c和由所述响应接收单元接收的响应信息来验证所述证明者的合法性,其中,多次多项式Ui (t)被设定成私密密钥,并且满足f (U1 (t),. . .,Iv1 (t),t) = 0的多次多项式f被设定成公开密钥,其中i = 1至n-1,并且其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。
7.一种认证装置,包括密钥设定单元,用于将多次多项式Ui(t)设定成私密密钥,并且将满足f (U1 (t),..., Ulri (t),t) = 0的多次多项式f设定成公开密钥,其中i = 1至n-1 ; 消息发送单元,用于将消息c发送给验证者; 答复接收单元,用于从所述验证者接收答复α ;多项式生成单元,用于利用由所述答复接收单元接收的答复α来生成要用于对所述消息c的验证的多项式f” ;多项式发送单元,用于把由所述多项式生成单元生成的多项式f”发送给所述验证者; 验证模式接收单元,用于接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k彡2 ;以及响应发送单元,用于向所述验证者发送k类响应信息之中的与由所述验证模式接收单元接收的关于验证模式的信息相对应的响应信息,其中,所述响应信息是在利用两类答复α、所述多项式f”以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。
8.根据权利要求7所述的认证装置,其中,如果当执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述答复接收单元对于每个消息c接收答复α的第二步骤、由所述多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f”并且由所述多项式发送单元发送该多项式f” 的第三步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第四步骤以及由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤时,所述验证者对于所有的响应信息都成功执行了验证,则认证成功。
9.根据权利要求8所述的认证装置,其中,执行由所述消息发送单元发送一个或多个消息c的第一步骤、由所述答复接收单元对于每个消息c接收答复α的第二步骤、由所述多项式生成单元利用在该第二步骤中接收的每个答复α来生成多项式f”并且由所述多项式发送单元发送该多项式f”的第三步骤、由所述验证模式接收单元对于每个消息c从所述验证者接收关于验证模式的信息的第四步骤以及由所述响应发送单元对于每条关于验证模式的信息发送响应信息的第五步骤的处理被重复,并且其中,如果当执行所述第一步骤至第五步骤预定次数时,所述验证者每次对于所有的响应信息都成功执行了验证,则认证成功。
10.一种认证装置,包括消息接收单元,用于从证明者接收消息c ; 答复发送单元,用于将答复α发送给所述证明者;多项式接收单元,用于接收多项式f ”,该多项式f”是由所述证明者利用由所述答复发送单元发送的答复α生成的并且用于对所述消息c的验证;验证模式选择单元,用于针对一个消息C,从k个验证模式中选择一个验证模式,其中 k彡2 ;验证模式发送单元,用于向所述证明者发送关于由所述验证模式选择单元选择的验证模式的信息;响应接收单元,用于从所述证明者接收k类响应信息之中的与由所述验证模式发送单元发送的关于验证模式的信息相对应的响应信息;以及验证单元,用于利用由所述消息接收单元接收的消息C、由所述多项式接收单元接收的多项式f”以及由所述响应接收单元接收的响应信息来验证所述证明者的合法性,其中,多次多项式Ui (t)被设定成私密密钥,并且满足f (U1 (t),. . .,IV1 (t),t) = 0的多次多项式f被设定成公开密钥,其中i = 1至n-1,并且其中,所述响应信息是在利用两类答复α、所述多项式f”以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。
11.一种认证方法,包括以下步骤将多次多项式Ui (t)设定成私密密钥,并且将满足f (U1 (t),. . .,Ulri (t),t) = 0的多次多项式f设定成公开密钥,其中i = 1至n-1 ; 将消息c发送给验证者;接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中3;以及向所述验证者发送k类响应信息之中的与在接收步骤中接收的关于验证模式的信息相对应的响应信息,其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。
12.—种认证方法,包括以下步骤 从证明者接收消息c ;针对一个消息c,从k个验证模式中选择一个验证模式,其中k > 3 ; 把关于在选择步骤中选择的验证模式的信息发送给所述证明者; 从所述证明者接收k类响应信息之中的与在发送步骤中发送的关于验证模式的信息相对应的响应信息;以及利用在接收消息c的步骤中接收的消息c和在接收响应信息的步骤中接收的响应信息来验证所述证明者的合法性,其中,多次多项式Ui (t)被设定成私密密钥,并且满足f (U1 (t),. . .,Iv1 (t),t) = 0的多次多项式f被设定成公开密钥,其中i = 1至n-1,并且其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。
13.一种认证方法,包括以下步骤将多次多项式Ui (t)设定成私密密钥,并且将满足f (U1 (t),. . .,Ulri (t),t) = 0的多次多项式f设定成公开密钥,其中i = 1至n-1 ; 将消息c发送给验证者; 从所述验证者接收答复α ;利用在接收答复α的步骤中接收的答复α来生成要用于对所述消息c的验证的多项式f”;把在生成步骤中生成的多项式f”发送给所述验证者;接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中2;以及向所述验证者发送k类响应信息之中的与在接收关于验证模式的信息的步骤中接收的关于验证模式的信息相对应的响应信息,其中,所述响应信息是在利用两类答复α、所述多项式f”以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。
14.一种认证方法,包括以下步骤 从证明者接收消息c ;将答复α发送给所述证明者;接收多项式f”,该多项式f”是由所述证明者利用在发送答复α的步骤中发送的答复 α生成的并且用于对所述消息c的验证;针对一个消息c,从k个验证模式中选择一个验证模式,其中k > 2 ; 向所述证明者发送关于在选择步骤中选择的验证模式的信息; 从所述证明者接收k类响应信息之中的与在发送关于验证模式的信息的步骤中发送的关于验证模式的信息相对应的响应信息;以及利用在接收消息c的步骤中接收的消息C、在接收多项式f”的步骤中接收的多项式f ” 以及在接收响应信息的步骤中接收的响应信息来验证所述证明者的合法性,其中,多次多项式Ui (t)被设定成私密密钥,并且满足f (U1 (t),. . .,IV1 (t),t) = 0的多次多项式f被设定成公开密钥,其中i = 1至n-1,并且其中,所述响应信息是在利用两类答复α、所述多项式f”以及所述k类响应信息执行的针对所述消息c的答复和验证模式的总共业个组合全都成功的情况下使能计算私密密钥Ui的信息。
15.—种程序,用于使得计算机实现密钥设定功能,将多次多项式Ui⑴设定成私密密钥,并且将满足f (U1 (t),..., Ulri⑴,t) = 0的多次多项式f设定成公开密钥,其中i = 1至n-1 ; 消息发送功能,将消息c发送给验证者;验证模式接收功能,接收关于由所述验证者针对一个消息c从k个验证模式中选择的一个验证模式的信息,其中k彡3 ;以及响应发送功能,向所述验证者发送k类响应信息之中的与由所述验证模式接收功能接收的关于验证模式的信息相对应的响应信息,其中,所述响应信息是在利用所述k类响应信息执行的针对所述消息c的所有k个验证模式都成功的情况下使能计算私密密钥Ui的信息。
16. 一种签名生成装置,包括密钥设定单元,用于将多次多项式Ui(t)设定成私密密钥,并且将满足f (U1 (t),..., Ulri (t),t) = 0的多次多项式f设定成公开密钥,其中i = 1至n-1 ; 消息生成单元,用于基于所述多次多项式Ui (t)生成N个消息c ; 验证模式选择单元,用于基于通过将文档M和所述消息c应用到单向函数而获得的信息来从kN个验证模式中选择验证模式,其中k > 3 ;以及签名生成单元,用于根据由所述验证模式选择单元选择的验证模式,生成将通过使用所述消息c和所述文档M的验证的数字签名σ,其中,所述数字签名ο是在利用与(k-l)N+l个验证模式相对应的数字签名σ执行的所有验证都成功的情况下使能计算私密密钥Ui的信息。
全文摘要
本发明提供了认证装置、认证方法、程序和签名生成装置。认证装置包括密钥设定单元,用于将多次多项式ui(t)(i=1至n-1)设定成私密密钥,并且将满足f(u1(t),...,un-1(t),t)=0的多次多项式f设定成公开密钥;消息发送单元,用于将消息c发送给验证者;验证模式接收单元,用于接收关于由验证者针对一个消息c从k(k≥3)个验证模式中选择的一个验证模式的信息;以及响应发送单元,用于向验证者发送k类响应信息之中的与由验证模式接收单元接收的关于验证模式的信息相对应的响应信息。响应信息是在利用k类响应信息执行的针对消息c的所有k个验证模式都成功的情况下使能计算私密密钥ui的信息。
文档编号H04L9/32GK102263639SQ20111014504
公开日2011年11月30日 申请日期2011年5月24日 优先权日2010年5月31日
发明者作本纮一, 樋渡玄良, 白井太三 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1