CN104137471A - 信息处理设备、信息处理方法以及程序 - Google Patents

信息处理设备、信息处理方法以及程序 Download PDF

Info

Publication number
CN104137471A
CN104137471A CN201380010945.5A CN201380010945A CN104137471A CN 104137471 A CN104137471 A CN 104137471A CN 201380010945 A CN201380010945 A CN 201380010945A CN 104137471 A CN104137471 A CN 104137471A
Authority
CN
China
Prior art keywords
algorithm
information
examining
multinomial
repeatedly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201380010945.5A
Other languages
English (en)
Inventor
作本纮一
白井太三
神尾一也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN104137471A publication Critical patent/CN104137471A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

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

Abstract

[问题]为了能够更高效地计算多次多元多项式。[解决方案]提供一种信息处理设备,配备有:数获取单元,获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数根据在执行电子签名算法或公开密钥认证算法的实体之间共用的信息生成的,所述电子签名算法或公开密钥认证算法使用包括所述一组多次多元多项式F的公开密钥;和多项式计算单元,将由所述数获取单元获取的数分配成所述一组多次多元多项式F的构成要素中包含的多次多元的系数,并计算变量的输入值的多次多元多项式。所述多项式计算单元跳过针对至少一个变量的输入值为0的项的计算处理。

Description

信息处理设备、信息处理方法以及程序
技术领域
本发明涉及信息处理设备和信息处理方法以及程序。
背景技术
随着信息处理技术和通信技术的快速发展,无论文档是公开文档还是私人文档,文档都已被快速数字化。随着所述文档的数字化,许多个人和公司相当关心电子文档的安全管理。随着这种关心的增强,在各个领域,已积极研究防范诸如电子文档的窃取或伪造之类篡改行为的对策。就电子文档的窃取来说,例如通过加密电子文档,确保安全性。另外,就电子文档的伪造来说,例如通过利用数字签名,确保安全性。不过,若使用的加密或数字签名不具有较高的防篡改性,那么不能保证足够的安全性。
数字签名用于指定电子文档的创作者。从而,数字签名应只能由电子文档的创作者生成。如果恶意第三方能够生成相同的数字签名,那么所述第三方能够伪装成电子文档的创作者。即,恶意第三方伪造电子文档。关于电子签名的安全性表达了各种意见,以防止这种伪造。作为目前广泛使用的数字签名方案,例如已知RSA签名方案和DSA签名方案。
RSA签名方案把“较大合数的质因数分解的困难性(下面称为质因数分解问题)”作为安全性的基础。另外,DSA签名方案把“求解离散对数问题的困难性”作为安全性的基础。这些基础基于不存在利用经典计算机,高效地求解质因数分解问题和离散对数问题的算法。即,上述困难性意味经典计算机的计算困难性。不过,据说当使用量子计算机时,能够高效地计算质因数分解问题和离散对数问题的解答。
类似于RSA签名方案和DSA签名方案,目前使用的许多数字签名方案和公开密钥认证方案也把质因数分解问题或离散对数问题的困难性作为安全性的基础。从而,如果量子计算机被投入实际使用,那么将不确保这种数字签名方案和公开密钥认证方案的安全性。因而,需要实现新的数字签名方案和公开密钥认证方案,所述新的数字签名方案和公开密钥认证方案把与诸如可容易地用量子计算机求解的质因数分解问题或离散对数问题之类的问题不同的问题,作为安全性的基础。作为不易用量子计算机求解的问题,例如存在与多元多项式相关的问题。
例如,作为把多元多项式问题作为安全性的基础的数字签名方案,已知基于MI(Matsumoto-Imai密码学)、HFE(隐藏域方程密码学)、OV(Oil-Vinegar签名方案)和TTM(受控变换方法密码学)的数字签名方案。例如,在以下的非专利文献1和2中,公开了基于HFE的数字签名方案。
引文列表
非专利文献
非专利文献1:Jacques Patarin,Asymmetric Cryptography with aHidden Monomial,CRYPTO 1996,pp.45-60。
非专利文献2:Patarin,J.,Courtois,N.和Goubin,L.,QUARTZ,128-Bit Long Digital Signatures,In Naccache,D.,Ed.Topics inCryptology-CT-RSA 2001(San Francisco,CA,USA,April 2001),vol.2020 of Lecture Notes in Computer Science,Springer-Verlag.,pp.282-297。
发明内容
如上所述,多元多项式问题是即使使用量子计算机,也难以求解的问题(称为NP困难问题)的例子。通常,利用由HFE等代表的多元多项式问题的公开密钥认证方案使用具有特殊陷门的多次多元联立方程。例如,提供与x1,...,xn相关的多次多元联立方程F(x1,...,xn)=y,及线性变换A和B,并且秘密地管理线性变换A和B。在这种情况下,多次多元联立方程F及线性变换A和B变成陷门。
知道陷门F、A和B的实体能够求解与x1,...,xn相关的方程B(F(A(x1,...,xn)))=y′。另一方面,不知道陷门F、A和B的实体求解不了与x1,...,xn相关的方程B(F(A(x1,...,xn)))=y′。通过利用这种机制,可实现把其求解多次多元联立方程的困难性作为安全性的基础的公开密钥认证方案和数字签名方案。
如上所述,为了实现公开密钥认证方案或数字签名方案,必须准备满足B(F(A(x1,...,xn)))=y的特殊的多次多元联立方程。此外,在生成签名时,必须求解多次多元联立方程F。因此,可用的多次多元联立方程F局限于能够相对容易求解的方程。即,在以前的方案中,仅仅使用了结合能够相对容易求解的3个函数(陷门)B、F和A的多次多元联立方程B(F(A(x1,...,xn)))=y,从而难以确保足够的安全性。
因此,鉴于上述情况,本申请发明人发明了一种利用其高效求解手段(陷门)尚未知的多次多元联立方程的高效且高度安全的公开密钥认证方案和数字签名方案(Koichi Sakumoto,Taizo Shirai and HarunagaHiwatari,“Public-Key Identification Schemes Based on MultivariateQuadratic Polynomials”,CRYPTO 2011,LNCS 6841,pp.706 to 723,2011)。
然而,由于所述公开密钥认证方案和数字签名方案中使用的多元多项式具有许多系数,当要使用多元多项式作为公开密钥时,必须确定在证明方与核实方之间高效分配系数的方法。发明了本技术,以提供一种新颖且改进的信息处理设备、信息处理方法以及程序,其能够更高效地计算多元多项式。
根据本技术的一个方面,提供了一种信息处理设备,包括:数获取单元,被配置成获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数根据在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和多项式计算单元,被配置成通过将由所述数获取单元获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式。所述多项式计算单元跳过针对至少一个变量的输入值为0的项的计算处理。
根据本技术的另一方面,提供了一种信息处理方法,包括:获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数的步骤,所述数是利用预定函数从在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和通过将由所获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式的步骤。在计算变量的输入值的多次多元多项式的步骤中,跳过针对至少一个变量的输入值为0的项的计算处理。
根据本技术的另一方面,提供了一种使计算机实现以下功能的程序:数获取功能,获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数从在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和多项式计算功能,通过将由所获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式。所述多项式计算功能使得跳过针对至少一个变量的输入值为0的项的计算处理。
此外,按照本技术的另一方面,提供一种具有记录上述程序的计算机可读记录介质。
按照上述本技术,能够更高效地计算多元多项式。
附图说明
图1是说明公开密钥认证方案的算法结构的说明图;
图2是说明数字签名方案的算法结构的说明图;
图3是说明根据n遍公开密钥认证方案的算法结构的说明图;
图4是说明基于3遍公开密钥认证方案的高效算法的说明图;
图5是说明基于3遍公开密钥认证方案的高效算法的并行化的说明图;
图6是说明基于5遍公开密钥认证方案的高效算法结构示例的说明图;
图7是说明基于5遍公开密钥认证方案的高效算法的并行化的说明图;
图8是说明把基于3遍公开密钥认证方案的高效算法修改成数字签名方案的算法的方法的说明图;
图9是说明把基于5遍公开密钥认证方案的高效算法修改成数字签名方案的算法的方法的说明图;
图10是描述用于高效代入多元多项式的系数的数据构造方法(构造技术#1)的说明图;
图11是描述用于高效代入多元多项式的系数的数据构造方法(构造技术#1)的说明图;
图12是说明能够执行按照本技术的每个实施例的算法的信息处理设备的硬件结构例子的说明图。
具体实施方式
下面参考附图,详细说明本发明的优选实施例。注意在说明书和附图中,功能和结构基本相同的构成元件用相同的附图标记表示,并省略重复的说明。
[说明的流程]
下面简要说明以下进行的本技术的实施例的说明的流程。首先,参考图1,说明公开密钥认证方案的算法结构。随后,参考图2,说明数字签名方案的算法结构。接下来,参考图3,说明n遍公开密钥认证方案。
之后,将参考图4和5,说明基于3遍公开密钥认证方案的算法结构示例。然后,将参考图6和7,说明基于5遍公开密钥认证方案的算法结构示例。之后,参考图8和9,说明将基于3遍和5遍公开密钥认证方案的高效算法修改成数字签名方案的算法的方法。
接着,参照图10和11,描述高效代入多元多项式的系数的方法。然后,参考图12,说明能够实现按照本技术的每个实施例的算法的信息处理设备的硬件结构例子。最后,将简要说明实施例的技术思想的概要,和从所述技术思想获得的效果。
(要描述的项目)
1:介绍
1-1:公开密钥认证方案的算法
1-2:数字签名方案的算法
1-3:n遍公开密钥认证方案
2:基于3遍公开密钥认证方案的算法结构
2-1:具体算法结构示例
2-2:并行算法结构示例
3:基于5遍公开密钥认证方案的算法结构
3-1:具体算法结构示例
3-2:并行算法结构示例
4:数字签名方案的修改
4-1:将3遍公开密钥认证方案修改成数字签名方案
4-2:将5遍公开密钥认证方案修改成数字签名方案
5:关于高效代入多元多项式的系数的方法
5-1:基本协定
5-2:数据构造
5-2-1:构造技术#1
5-2-2:构造技术#2
6:硬件配置示例
7:总结
<1:介绍>
本发明涉及其安全性基于求解多次多元联立方程的困难性的公开密钥认证方案和数字签名方案。不过,本实施例不同于现有技术比如HFE数字签名方案的技术,并且涉及利用缺乏高效的求解手段(陷门)的多次多元联立方程的公开密钥认证方案和数字签名方案。首先,将简要概述公开密钥认证方案的算法,数字签名方案的算法,和n遍公开密钥认证方案。
[1-1:公开密钥认证方案的算法]
首先参考图1,概述公开密钥认证方案的算法。图1是说明公开密钥认证方案的算法的说明图。
当某人(证明方)通过利用公开密钥pk和秘密密钥sk,使另一人(核实方)相信他或她的身份时,使用公开密钥认证。例如,使证明方A的公开密钥pkA为核实方B所知。另一方面,证明方A秘密地管理证明方A的秘密密钥skA。按照公开密钥认证方案,知道与公开密钥pkA对应的秘密密钥skA的人被认为是证明方A本人。
当证明方A利用公开密钥认证机制,向核实方B证实她是证明方A本人时,证明方A应当借助交互协议,向核实方B出示证明方A知道与公开密钥pkA对应的秘密密钥skA的证据。当指示证明方A知道秘密密钥skA的证据被出示给核实方B,并且核实方B完成对该证据的确认时,证明方A的合法性(身份)被证实。
然而,为了确保安全性,公开密钥认证办法需要以下条件。
第一个条件是“尽可能地降低在执行交互协议时,认可没有秘密密钥sk的伪造者的伪造的概率”。第一条件的成立被称为“健全性”。换句话说,健全性意味“在交互协议的执行期间,没有秘密密钥sk的伪造者将不会以不可忽略的概率使伪造成立”。第二个条件是“即使执行交互协议,关于证明方A的秘密密钥skA的信息也根本不会被泄漏给核实方B”。第二条件的成立被称为“零知识性”。
安全地进行公开密钥认证需要利用具有健全性和零知识性的交互协议。如果利用缺乏健全性和零知识性的交互协议进行认证处理,那么会存在一定的虚假核实的可能性和一定的秘密密钥信息的泄漏可能性,从而,即使成功地完成认证处理,证明方的真实性仍未被核实。从而,如何保证会话协议的健全性和零知识性的问题变得重要。
(模型)
在公开密钥认证方案的模型中,如图1中所示,存在两个实体,即证明方和核实方。证明方通过利用密钥生成算法Gen,生成证明方特有的一对公开密钥pk和秘密密钥sk。之后,证明方通过利用使用密钥生成算法Gen生成的一对秘密密钥sk和公开密钥pk,与核实方进行交互协议。此时,证明方利用证明方算法P,执行交互协议。如上所述,在交互协议中,证明方利用证明方算法P,向核实方证实她拥有秘密密钥sk。
另一方面,核实方利用核实方算法V,执行交互协议,核实证明方是否拥有与由证明方公开的公开密钥对应的秘密密钥。即,核实方是核实证明方是否拥有与公开密钥对应的秘密密钥的实体。如上所述,公开密钥认证方案的模型由两个实体,即证明方和核实方,和3种算法,即密钥生成算法Gen、证明方算法P和核实方算法V构成。
注意,在下面的说明中,使用“证明方”和“核实方”的措词,不过,这些措词严格地意味实体。于是,执行密钥生成算法Gen和证明方算法P的主体是与实体“证明方”对应的信息处理设备。类似地,执行核实方算法V的主体是信息处理设备。这些信息处理设备的硬件结构例如如图12中所示。即,密钥生成算法Gen、证明方算法P和核实方算法V由CPU 902根据记录在ROM 904、RAM 906、存储单元920、可拆卸记录介质928等中的程序执行。
(密钥生成算法Gen)
密钥生成算法Gen由证明方使用。密钥生成算法Gen是生成证明方特有的一对公开密钥pk和秘密密钥sk的算法。利用密钥生成算法Gen生成的公开密钥pk被公开。此外,公开的公开密钥pk被核实方使用。另一方面,利用密钥生成算法Gen生成的秘密密钥sk由证明方秘密地管理。由证明方秘密管理的秘密密钥sk被用于向核实方证实证明方拥有与公开密钥pk对应的秘密密钥sk。形式上,密钥生成算法Gen被表示成下面的式(1),作为以安全性参数1λ(λ是等于或大于0的整数)作为输入,并输出秘密密钥sk和公开密钥pk的算法。
[数学式1]
(sk,pk)←Gen(1λ)
…(1)
(证明方算法P)
证明方算法P由证明方使用。证明方算法P是向核实方证实证明方拥有与公开密钥pk对应的秘密密钥sk的算法。换句话说,证明方算法P是以秘密密钥sk和公开密钥pk作为输入,从而执行交互协议的算法。
(核实方算法V)
核实方算法V由核实方使用。核实方算法V是在交互协议期间,核实证明方是否拥有与公开密钥pk对应的秘密密钥sk的算法。核实方算法V是以公开密钥pk作为输入,并按照交互协议的执行结果,输出0或1(1比特)的算法。注意,在核实方算法V输出0的情况下,核实方判定证明方非法,而在核实方算法V输出1的情况下,核实方判定证明方合法。形式上,如下述式(2)地表示核实方算法V。
[数学式2]
0/1←V(pk)
…(2)
如上所述,实现有意义的公开密钥认证涉及使交互协议满足健全性和零知识性这两个条件。然而,证实证明方持有秘密密钥sk涉及证明方执行依赖于秘密密钥sk的过程,并在把结果通知核实方之后,使核实方根据通知的内容进行核实。为了确保健全性,进行依赖于秘密密钥sk的过程。同时,应避免向核实方泄漏关于秘密密钥sk的信息。因此,巧妙地设计密钥生成算法Gen、证明方算法P和核实方算法V,以满足这些请求。
上面概述了公开密钥认证方案中的算法。
[1-2:数字签名方案的算法]
下面参考图2,概述数字签名方案的算法。图2是概述数字签名方案的算法的说明图。
不同于纸质文档,不能对数字化数据物理签名或附加印章。因此,证明数字化数据的创作者涉及产生与对纸质文档物理签名或附加印章类似的效果的电子办法。这种办法是数字签名。数字签名指的是使给定数据与只为数据的创作者所知的签名数据关联,把所述签名数据提供给收件人,然后在收件人一侧核实所述签名数据的办法。
(模型)
如图2中所示,在数字签名方案的模型中,存在签名者和核实方2个实体。此外,数字签名方案的模型由3种算法:密钥生成算法Gen、签名生成算法Sig和签名核实算法Ver构成。
签名者利用密钥生成算法Gen,生成签名者特有的一对签名密钥sk和核实密钥pk。签名者还利用签名生成算法Sig,生成待附加到消息M的数字签名σ。换句话说,签名者是把数字签名附到消息M上的实体。同时,核实方利用签名核实算法Ver,核实附加到消息M的数字签名σ。换句话说,核实方是核实数字签名σ,以确认消息M的创作者是否是签名者的实体。
注意,尽管在下面的说明中,使用术语“签名者”和“核实方”,不过,这些术语严格地意味实体。从而,执行密钥生成算法Gen和签名生成算法Sig的代理是与“签名者”实体对应的信息处理设备。类似地,执行签名核实算法Ver的代理是信息处理设备。这些信息处理设备的硬件结构例如如图12中所示。换句话说,密钥生成算法Gen、签名生成算法Sig和签名核实算法Ver由CPU 902之类的装置,根据记录在诸如ROM 904、RAM 906、存储单元920或可拆卸记录介质928之类的装置上的程序执行。
(密钥生成算法Gen)
密钥生成算法Gen由签名者使用。密钥生成算法Gen是生成签名者特有的一对签名密钥sk和核实密钥pk的算法。密钥生成算法Gen生成的核实密钥pk被泄露。同时,签名者使密钥生成算法Gen生成的签名密钥sk保密。随后,签名密钥sk被用于生成待附加到消息M的数字签名σ。例如,密钥生成算法Gen接受安全性参数1λ(λ是等于或大于0的整数)作为输入,并输出签名密钥sk和核实密钥pk。这种情况下,形式上,可如下式(3)地表述密钥生成算法Gen。
[数学式3]
(sk,pk)←Gen(1λ)
…(3)
(签名生成算法Sig)
签名生成算法Sig由签名者使用。签名生成算法Sig是生成待附加到消息M的数字签名σ的算法。签名生成算法Sig是接受签名密钥sk和消息M作为输入,并输出数字签名σ的算法。形式上,可如下式(4)地表述签名生成算法Sig。
[数学式4]
σ←Sig(sk,M)
…(4)
(签名核实算法Ver)
签名核实算法Ver由核实方使用。签名核实算法Ver是核实数字签名σ是否是消息M的有效数字签名的算法。签名核实算法Ver是接受签名者的核实密钥pk,消息M和数字签名σ作为输入,并输出0或1(1比特)的算法。形式下,可如下式(5)地表述签名核实算法Ver。此时,在签名核实算法Ver输出0(公开密钥pk拒绝消息M和数字签名σ)的情况下,核实方判断数字签名σ无效,而在签名核实算法Ver输出1(公开密钥pk接受消息M和数字签名σ)的情况下,核实方判断数字签名σ有效。
[数学式5]
0/1←Ver(pk,M,σ)
…(5)
从而,上面概述了数字签名方案中的算法。
[1-3:n遍公开密钥认证方案]
下面参考图3,说明n遍公开密钥认证方案。图3是图解说明n遍公开密钥认证方案的说明图。
如上所述,公开密钥认证方案是在交互协议期间,向核实方证实证明方拥有与公开密钥pk对应的秘密密钥sk的认证方案。此外,交互协议必须满足健全性和零知识性这两个条件。因此,如图3中所示,在交互协议期间,在执行相应处理的时候,证明方和核实方交换n次信息。
在n遍公开密钥认证方案的情况下,证明方利用证明方算法P进行处理(操作#1),然后把信息T1传给核实方。之后,核实方利用核实方算法V进行处理(操作#2),然后把信息T2传给证明方。相继进行处理的执行和信息Tk的传送(k=3~n)(操作#k),最后,执行处理(操作#n+1)。按照这种方式,传送和接收n次信息从而被称为“n遍公开密钥认证方案”。
上面从而说明了n遍公开密钥认证方案。
<2.基于3遍公开密钥认证方案的算法结构>
以下,描述基于3遍公开密钥认证方案的算法。注意,在以下说明中,在一些情况下也可以将3遍公开密钥认证方案称为“3遍方案”。
<2-1:具体算法结构示例(图4)>
首先,参照图4介绍基于3遍方案的具体算法结构的示例。图4是说明基于3遍方案的具体算法结构的说明图。在此,将考虑使用二次多项式组(f1(x),...,fm(x))作为公开密钥pk的一部分的情况。在此,二次多项式fi(x)被表示为以下公式(6)。此外,将向量(x1,...,xn)表示为x,并且将二次多元多项式组(f1(x),...,fm(x))表示为多元多项式F(x)。
[数学式6]
f i ( x 1 , . . . , x n ) = &Sigma; j . k a ijk x j x k + &Sigma; j b ij x j . . . ( 6 )
此外,可以将二次多项式组(f1(x),...,fm(x))表示成以下式(7)。此外,A1,...,Am是n×n矩阵。此外,b1,...,bm中的每一个都是n×1向量。
[数学式7]
F ( x ) = f 1 ( x ) . . . f m ( x ) = x T A 1 x + b 1 T x . . . x T A m x + b m T x . . . ( 7 )
当使用该表达式时,可以将多元多项式F表示为以下式(8)和式(9)。从以下式(10)可知,容易确认满足该表达式。
[数学式8]
F(x+y)=F(x)+F(y)+G(x,y)
…(8)
G ( x , y ) = y T ( A 1 T + A 1 ) x . . . y T ( A m T + A m ) x . . . ( 9 )
f l ( x + y ) = ( x + y ) T A l ( x + y ) + b l T ( x + y ) = x T A l x + x T A l y + y T A l x + y T A l y + b l T x + b l T y = f l ( x ) + f l ( y ) + x T A l y + y T A l x = f l ( x ) + f l ( y ) + x T ( A l T ) T y + y T A l x = f l ( x ) + f l ( y ) + ( A l T x ) T y + y T A l x = f l ( x ) + f l ( y ) + y T ( A l T x ) + y T A l x = f l ( x ) + f l ( y ) + y T ( A l T + A l ) x . . . ( 10 )
如上所述,当把F(x+y)分成取决于x的第一部分,取决于y的第二部分,和取决于x和y的第三部分时,对应于第三部分的项G(x,y)变得对x和y来说是双线性的。以下,将项G(x,y)也称为双线性项。利用这种性质使得能够构成高效算法。
例如,利用作为集合Kn的元素的向量t0,和作为集合Km的元素的向量e0,把用于掩蔽多元多项式F(x+r)的多元多项式F1(x)表述成F1(x)=G(x,t0)+e0。在这种情况下,如下式(11),表述多元多项式F(x+r0)和G(x)之和。这里,当设定t1=r0+t0,e1=F(r0)+e0时,多元多项式F2(x)=F(x+r0)+F1(x)可用为集合Kn的元素的向量t1,和作为集合Km的元素的向量e1表示。因此,当设定F1(x)=G(x,t0)+e0时,F1和F2可以利用Kn中的向量和Km中的向量表示,从而能够实现通信所需的数据大小较小的高效算法。
[数学式9]
F(x+r0)+F1(x)
=F(x)+F(r0)+G(x,r0)+G(x,t0)+e0
=F(x)+G(x,r0+t0)+F(r0)+e0
…(11)
此外,根本不会从F2(或F1)泄漏与r0相关的信息。例如,即使给出e1和t1(或者e0和t0)时,只要不知道e0和t0(或者e1和t1),就根本不知道r0的信息。因而,可保证零知识性。以下,描述基于以上逻辑构造的3遍方案的算法。在此要描述的3遍方案的算法由以下要描述的密钥生成算法Gen,证明方算法P和核实方算法V构成。
(密钥生成算法Gen)
密钥生成算法Gen生成在环k中定义的m个多元多项式f1(x1,...,xn),...,fm(x1,...,xn),和向量s=(s1,...,sn),向量s是集合Kn的元素。之后,密钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,密钥生成算法Gen将(f1(x1,...,xn),...,fm(x1,...,xn),y)设定为公开密钥pk,把s设定成秘密密钥。
(证明方算法P,核实方算法V)
下面参考图4,说明在交互协议期间,利用证明方算法P进行的处理,和利用核实方算法V进行的处理。在上面的交互协议期间,证明方向核实方表达“证明方知道满足y=F(s)的s”,而根本不向核实方泄漏关于秘密密钥s的任何信息。另一方面,核实方核实证明方是否知道满足y=F(s)的s。假定使公开密钥pk为核实方所知。另外,假定秘密密钥s由证明方秘密管理。下面参考图4中图解所示的流程图进行说明。
操作#1:
如图4所示,首先,证明方算法P随机生成作为集合Kn的元素的向量r0,t0,和作为集合Km的元素的向量e0。随后,证明方算法P计算r1←s-r0。该计算等同于用向量r0掩蔽秘密密钥s的操作。此外,证明方算法P计算t1←r0-t0。随后,证明方算法P计算e1←F(r0)-e0
操作#1(续):
随后,证明方算法P计算c0←H(r1,G(t0,r1)+e0)。随后,证明方算法P计算c1←H(t0,e0)。随后,证明方算法P计算c2←H(t1,e1)。将在操作#1中生成的消息(c0,c1,c2)发送给核实方算法V。
操作#2:
当收到消息(c0,c1,c2)时,核实方算法V从3种核实模式中选择要使用哪种核实模式。例如,核实方算法V从代表核实模式的类型的3个数值{0,1,2}中选择一个数值,并在询问Ch中设定选择的数值。询问Ch被发送给证明方算法P。
操作#3:
当收到询问Ch时,证明方算法P根据接收的询问Ch,生成将被发送给核实方算法V的响应Rsp。在Ch=0的情况下,证明方算法P生成响应Rsp=(r0,t1,e1)。在Ch=1的情况下,证明方算法P生成响应Rsp=(r1,t0,e0)。在Ch=2的情况下,证明方算法P生成响应Rsp=(r1,t1,e1)。在操作#3中生成的响应Rsp被发送给核实方算法V。
操作#4:
收到响应Rsp的核实方算法V利用收到的响应Rsp,进行以下核实处理。
在Ch=0的情况下,核实方算法V核实等式c1=H(r0-t1,F(r0)-e1)是否成立。另外,核实方算法V核实等式c2=H(t1,e1)是否成立。在这些等式的核实都成功的情况下,核实方算法V输出指示认证成功的值1,而在某个核实失败的情况下,核实方算法V输出指示认证失败的值0。
在Ch=1的情况下,核实方算法V核实等式c0=H(r1,G(t0,r1)+e0)是否成立。另外,核实方算法V核实等式c1=H(t0,e0)是否成立。在所有这些等式的核实都成功的情况下,核实方算法V输出指示认证成功的值1,而在某个核实失败的情况下,核实方算法V输出指示认证失败的值0。
在Ch=2的情况下,核实方算法V核实等式c0=H(r1,y–F(r1)–G(t1,r1)–e1)是否成立。此外,核实方算法V核实等式c2=H(t1,e1)是否成立。在所有这些等式的核实都成功的情况下,核实方算法V输出指示认证成功的值1,而在某个核实失败的情况下,核实方算法V输出指示认证失败的值0。
上面,说明了与3遍方案的高效算法结构的例子。
[2-2:并行算法结构示例(图5)]
接着,参照图5描述图4所示的3遍方案的算法的并行化方法。注意,将略去对密钥生成算法Gen的结构的描述。
应用交互协议使得能够把成功伪造的概率保持为2/3或更低。于是,执行该交互协议两次使得能够把成功伪造的概率保持为(2/3)2或者更低。此外,如果交互协议被执行N次,那么成功伪造的概率变成(2/3)N,如果N被设定成足够大的数(例如,N=140),那么成功伪造的概率变得极小,可以忽略。
可以想到的多次执行交互协议的方法例如包括其中多次顺序重复消息、询问和响应的交换的串行方法,和一次交换多个消息、询问和响应的并行方法。此外,也可以想到组合并行方法和串行方法的混合型方法。这里,将参考图5说明并行执行基于3遍方案的交互协议的算法(以下称为并行算法)。
操作#1:
如图5所示,首先,证明方算法P对于i=1~N,进行下面的处理(1)-处理(6)。
处理(1):证明方算法P随机生成作为集合Kn的元素的向量r0i,t0i,和作为集合Km的元素的向量e0i
处理(2):证明方算法P计算r1i←s-r0i。该计算对应于用向量r0i掩蔽秘密密钥s的操作。此外,证明方算法P计算t1i←r0i+t0i
处理(3):证明方算法P计算e1i←F(r0i)-e0i
处理(4):证明方算法P计算c0i←H(r1i,G(r1i,t0i)+e0i)。
处理(5):证明方算法P计算c1i←H(t0i,e0i)。
处理(6):证明方算法P计算c2i←H(t1i,e1i)。
操作#1(续):
在对于i=1~N进行以上处理(1)~处理(6)之后,证明方算法P计算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)。将在操作#1中生成的散列值Cmt发送给核实方算法V。按此方式,将消息(c01,c11,c21,...,c0N,c1N,c2N)转换成散列值,然后将该值发送给核实方算法V,由此能够减少通信量。
操作#2:
当收到散列值Cmt时,核实方算法V分别关于i=1~N,从3种核实模式中选择要使用哪种核实模式。例如,核实方算法V分别关于i=1~N,从代表核实模式的类型的3个数值{0,1,2}中选择一个数值,并在询问Chi中设定选择的数值。询问Ch1,...,ChN被发送给证明方算法P。
操作#3:
在收到询问Ch1,...,ChN时,证明方算法P根据收到的询问Ch1,...,ChN中的每一个,生成将被发送给核实方算法V的响应Rsp1,...,RspN。在Chi=0时,证明方算法P生成响应Rspi=(r0i,t1i,e1i,c0i)。在Chi=1时,证明方算法P生成响应Rspi=(r1i,t0i,e0i,c2i)。在Chi=2时,证明方算法P生成响应Rspi=(r1i,t1i,e1i,c1i)。
在操作(3)中生成的响应Rsp1,...,RspN被发送给核实方算法V。
操作#4:
收到响应Rsp1,...,RspN的核实方算法V利用收到的响应Rsp1,...,RspN,对于i=1至N,进行以下的处理(1)至(3)。然而,在Chi=0的情况下,核实方算法V执行处理(1),在Chi=1的情况下,核实方算法V执行处理(2),在Chi=2的情况下,核实方算法V执行处理(3)。
处理(1):在Chi=0的情况下,核实方算法V从Rspi获取(r0i,t1i,e1i,c0i)。随后,核实方算法V计算c1i=H(r0i-t1i,F(r0i)-e1i)。此外,核实方算法V计算c2i=H(t1i,e1i)。然后,核实方算法V保持(c0i,c1i,c2i)。
处理(2):在Chi=1的情况下,核实方算法V从Rspi获取(r1i,t0i,e0i,c2i)。随后,核实方算法V计算c0i=H(r1i,G(t0i,r1i)+e0i)。此外,核实方算法V计算c1i=H(t0i,e0i)。核实方算法V然后保持(c0i,c1i,c2i)。
处理(3):在Chi=2的情况下,核实方算法V从Rspi获取(r1i,t1i,e1i,c1i)。随后,核实方算法V计算c0i=H(r1i,y–F(r1i)–G(t1i,r1i)–e1i)。此外,核实方算法V计算c2i=H(t1i,e1i)。核实方算法V然后保持(c0i,c1i,c2i)。
在针对i=1至N执行了以上处理(1)至(3)之后,核实方算法V核实等式Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)是否成立。在核实成功的情况下,核实方算法V输出指示核实成功的值1,而在核实失败的情况下,核实方算法V输出指示核实失败的值0。
以上描述了基于3遍方案的并行高效算法的结构示例。
<3:基于5遍公开密钥认证方案的算法结构>
接着,描述基于5遍公开密钥认证方案的算法。注意,在以下描述中,在某些情况下也可以将5遍公开密钥认证方案称为“5遍方案”。
在3遍方案的情况下,虚假核实的概率是每次交互协议2/3,而在5遍方案的情况下,虚假核实的概率是每次交互协议1/2+1/q。在此,q是要使用的环的阶数。因此,当环的阶数足够大时,可以减小5遍方案的每次执行交互协议的虚假核实的概率,因此可以通过执行较小次数的交互协议来充分减小虚假核实的概率。
例如,当期望虚假核实的概率等于或小于1/2n时,在3遍方案中,交互协议必须被执行n/(log3-1)=1.701n次或者更多次。另一方面,在5遍方案中,当期望虚假核实的概率等于或小于1/2n时,交互协议必须被执行n/(1-log(1+1/q))次或者更多次。因而,当q=24时,与3遍方案相比,在5遍方案中,为实现相同的安全水平而必需的通信量较小。
[3-1:具体算法结构示例(图6)]
首先,参考图6,说明基于5遍方案的具体算法结构示例。图6是说明基于5遍方案的具体算法结构的说明图。在此,将介绍使用二次多项式组(f1(x),...,fm(x))作为公开密钥pk的一部分的情况。在此,假设二次多项式fi(x)被表示为以下公式(6)。此外,将向量(x1,...,xn)表示为x,并且将二次多项式组(f1(x),...,fm(x))表示为多元多项式F(x)。
如与基于3遍方案的算法那样,利用两个向量,即,作为集合Kn的元素的向量t0,和作为集合Km的元素的向量e0,把用于掩蔽多元多项式F(x+r0)的多元多项式F1(x)表述成F1(x)=G(x,t0)+e0。当使用该表达式时,可以针对多元多项式F(x+r0)获得按下式(12)表示的关系。
[数学式10]
ChA·F(x+r0)+F1(x)
=ChA·F(x)+ChA·F(r0)+ChA·G(x,r0)+G(x,t0)+e0
=ChA·F(x)+G(x,ChA·r0+t0)+ChA·F(r0)+e0
…(12)
因此,当t1=ChA·r0+t0,e1=ChA·F(r0)+e0时,掩蔽后的多元多项式F2(x)=ChA·F(x+r0)+F1(x)也可用两个向量(即,为集合Kn的元素的向量t1,和作为集合Km的元素的向量e1)表示。因此,当设定F1(x)=G(x,t0)+e0时,F1和F2可以利用Kn中的向量和Km中的向量表示,从而能够实现通信所需的数据大小较小的高效算法。
此外,根本不会从F2(或F1)泄漏与r0相关的信息。例如,即使给出e1和t1(或者e0和t0)时,只要不知道e0和t0(或者e1和t1),就根本不知道r0的信息。因而,可保证零知识性。以下,描述基于以上逻辑构造的5遍方案的算法。在此要描述的5遍方案的算法由以下要描述的密钥生成算法Gen,证明方算法P和核实方算法V构成。
(密钥生成算法Gen)
密钥生成算法Gen生成在环K中定义的多元多项式f1(x1,...,xn),...,fm(x1,...,xn),和向量s=(s1,...,sn),向量s是集合Kn的元素。之后,密钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。另外,密钥生成算法Gen将(f1...,fm,y)设定为公开密钥pk,把s设定成秘密密钥。下面,向量(x1,...,xn)被表示成x,一组多元多项式(f1(x),...,fm(x))被表示成F(x)。
(证明方算法P,核实方算法V)
下面参考图6,说明在交互协议期间,利用证明方算法P进行的处理,和利用核实方算法V进行的处理。在交互协议期间,证明方向核实方证明“他或她知道满足y=F(s)的s”,而根本不向核实方泄漏关于秘密密钥s的任何信息。另一方面,核实方核实证明方是否知道满足y=F(s)的s。假定使公开密钥pk为核实方所知。另外,假定秘密密钥s由证明方秘密管理。下面参考图6中图解所示的流程图进行说明。
操作#1:
如图6所示,首先,证明方算法P随机生成作为集合Kn的元素的向量r0,t0,和作为集合Km的元素的向量e0。随后,证明方算法P计算r1←s-r0。该计算对应于用向量r0掩蔽秘密密钥s。随后,证明方算法P生成向量r0,t0,e0的散列值c0。即,证明方算法P计算c0←H(r0,t0,e0)。随后,证明方算法P生成G(t0,r1)+e0和r1的散列值c1。即,证明方算法P计算c0←H(r1,G(t0,r1)+e0)。将在操作#1中生成的消息(c0,c1)发送给核实方算法V。
操作#2:
当收到消息(c0,c1)时,核实方算法V从q个环K的元素中随机选择一个数ChA,并将所选的数ChA发送给证明方算法P。
操作#3:
收到数ChA的证明方算法P计算t1←ChA·r0-t0。此外,证明方算法P计算e1←ChA·F(r0)-e0。然后,证明方算法P将t1和e1发送给核实方算法V。
操作#4:
当接收到t1和e1时,核实方算法V从两个核实模式中选择要使用哪个核实模式。例如,核实方算法V从表示核实模式的类型的2个数值{0,1}中选择一个数值,并把选择的数值设定为询问ChB。询问ChB被发送给证明方算法P。
操作#5:
收到询问ChB的证明方算法P根据收到的询问ChB,生成待发送给核实方算法V的响应Rsp。当ChB=0时,证明方算法P生成响应Rsp=r0。当ChB=1时,证明方算法P生成响应Rsp=r1。在操作#5中生成的响应Rsp被发送给核实方算法V。
操作#6:
收到响应Rsp的核实方算法V利用收到的响应Rsp,进行以下核实处理。
当ChB=0时,核实方算法V执行r0←Rsp。随后,核实方算法V核实等式c0=H(r0,ChA·r0-t1,ChA·F(r0)-e1)是否成立。当核实都成功时,核实方算法V输出表示认证成功的值1,而当核实失败时,核实方算法V输出表示认证失败的值0。
当ChB=1时,核实方算法V执行r1←Rsp。随后,核实方算法V核实等式c1=H1(r1,ChA·(y-F(r1)-G(t1,r1)-e1)是否成立。当核实都成功时,核实方算法V输出表示认证成功的值1,而当核实失败时,核实方算法V输出表示认证失败的值0。
上面描述了基于5遍方案的高效算法结构示例。
[3-2:并行算法结构示例(图7)]
接着,参照图7描述图6所示的5遍方案的算法的并行化方法。注意,将略去对密钥生成算法Gen的结构的描述。
如上所述,如果应用基于5遍方案的交互协议,则能够把成功伪造的概率抑制为(1/2+1/q)或更低。于是,执行该交互协议两次使得能够把成功伪造的概率抑制为(1/2+1/q)2或者更低。此外,如果交互协议被执行N次,那么成功伪造的概率变成(1/2+1/q)N,如果N被设定成足够大的数(例如,N=80),那么成功伪造的概率变得极小,可以忽略。
可以想到的多次执行交互协议的方法例如包括其中多次顺序重复消息、询问和响应的交换的串行方法,和一次交换多个消息、询问和响应的并行方法。此外,也可以想到组合并行方法和串行方法的混合型方法。这里,将说明并行执行基于5遍方案的交互协议的算法(以下称为并行算法)。
操作#1:
如图7所示,首先,证明方算法P对于i=1~N,进行下面的处理(1)-处理(4)。
处理(1):证明方算法P随机生成作为集合Kn的元素的向量r0i,t0i,和作为集合Km的元素的向量e0i
处理(2):证明方算法P计算r1i←s-r0i。该计算对应于用向量r0i掩蔽秘密密钥s的操作。
处理(3):证明方算法P计算c0i←H(r0i,t0i,e0i)。
处理(4):证明方算法P计算c1i←H(r1i,G(t0i,r1i)+e0i)。
在对于i=1~N进行以上处理(1)~处理(4)之后,证明方算法P计算散列值Cmt←H(c01,c11,...,c0N,c1N)。然后将在操作#1中生成的散列值Cmt发送给核实方算法V。
操作#2:
当收到散列值Cmt时,核实方算法V针对i=1到N从q个环K的元素中随机选择一个数ChAi,并将所选的数ChAi(i=1到N)发送给证明方算法P。
操作#3:
收到数ChA(i=1到N)的证明方算法P针对i=1到N计算t1i←ChAi·r0i-t0i。此外,证明方算法P针对i=1到N计算e1i←ChAi·F(r0i)-e0i。此外,证明方算法P计算散列值d←H(t011,e11,...,t1N,e1N)。然后,证明方算法P将散列值d发送给核实方算法V。
操作#4:
当接收到散列值d时,核实方算法V针对i=1到N从两个核实模式中选择要使用哪个核实模式。例如,核实方算法V从表示核实模式的类型的2个数值{0,1}中选择一个数值,并把选择的数值设定为询问ChBi。询问ChBi(i=1到N)被发送给证明方算法P。
操作#5:
收到询问ChBi(i=1到N)的证明方算法P针对i=1到N根据收到的询问ChBi,生成待发送给核实方算法V的响应Rspi。当ChBi=0时,证明方算法P生成响应Rspi=(r0i,t0i,e0i,c1i)。当ChBi=1时,证明方算法P生成响应Rspi=(r1i,t1i,e1i,c0i)。在操作#5中生成的响应Rspi(i=1到N)被发送给核实方算法V。
操作#6:
收到响应Rspi(i=1到N)的核实方算法V利用收到的响应Rspi(i=1到N),进行以下处理(1)和(2)。
处理(1):当ChBi=0时,核实方算法V执行(r0i,t0i,e0i,c1i)←Rspi。随后,核实方算法V计算c0i=H(r0i,t0i,e0i)。此外,核实方算法V计算t1i←ChAi·r0i+t0i和e1i←ChAi·F(r0i)-e0i。核实方算法V然后保持(c0i,c1i,t1i,e1i)。
处理(2):当ChBi=1时,核实方算法V执行(r1i,t1i,e1i,c0i)←Rspi。随后,核实方算法V计算c1i=H(r1i,ChAi·(y-F(r1i))-G(t1i,r1i)-e1i。核实方算法V然后保持(c0i,c1i,t1i,e1i)。
在针对i=1到N执行处理(1)和(2)之后,核实方算法V核实等式Cmt=H(c01,c11,...,c0N,c1N)是否成立。此外,核实方算法V核实等式d=H(t11,e11,...,t1N,e1N)是否成立。然后,当核实都成功时,核实方算法V输出表示认证成功的值1,而当某个核实失败时,核实方算法V输出表示认证失败的值0。
上面描述了基于5遍方案的高效并行算法结构示例。
[4:数字签名方案的修改]
下面介绍把上述公开密钥认证方案修改成数字签名方案的方法。当公开密钥认证方案的模型中的证明方与数字签名方案中的签名者相关联时,易于理解公开密钥认证方案类似于数字签名方案的模型,因为只有证明方应当说服核实方。根据这种思想,下面说明把按照上述公开密钥认证方案修改成数字签名方案的方法。
[4-1:将3遍公开密钥认证方案修改成数字签名方案(图8)]
首先,说明把3遍的公开密钥认证方案修改成数字签名方案。
如图8所示,利用3次4个操作(即,操作#1到操作#4)的交互表示基于3遍方案的高效算法(例如,见图5)。
操作#1包括对于i=1到N生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)的处理(1)和计算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)的处理(2)。将证明方算法P在操作#1中生成的Cmt发送给核实方算法V。
操作#2包括选择Ch1,...,ChN的处理。将核实方算法V在操作#2中选择的Ch1,...,ChN发送给证明方算法P。
操作#3包括利用Ch1,...,ChN和a1...,aN生成Rsp1,...,RspN的处理。将该处理表示为Rspi←Select(Chi,ai)。将证明方算法P在操作#3中生成的Rsp1,...,RspN发送给核实方算法V。
操作#4包括利用Ch1,...,ChN和Rsp1,...,RspN再现c01,c11,c21,...,c0N,c1N,c2N的处理(1),和利用再现的c01,c11,c21,...,c0N,c1N,c2N核实Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)的处理(2)。
将用以上操作#1到操作#4表示的公开密钥认证方案的算法修改成图10所示的签名生成算法Sig和签名核实算法Ver。
(签名生成算法Sig)
首先,说明签名生成算法Sig的结构。签名生成算法Sig包括以下处理(1)~(5)。
处理(1):签名生成算法Sig生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)。
处理(2):签名生成算法Sig计算Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)。
处理(3):签名生成算法Sig计算(Ch1,…,ChN)←H(M,Cmt)。这里,M是待附加签名的消息。
处理(4):签名生成算法Sig计算Rspi←Select(Chi,ai)。
处理(5):签名生成算法Sig把(Cmt,Rsp1,...,RspN)设定为签名。
(签名核实算法Ver)
下面,说明签名核实算法Ver的结构。签名核实算法Ver包括以下处理(1)~(3)。
处理(1):签名核实算法Ver计算(Ch1,...,ChN)←H(M,Cmt)。
处理(2):签名核实算法Ver利用Ch1,...,ChN和Rsp1,...,RspN,生成c01,c11,c21,...,c0N,c1N,c2N
处理(3):签名核实算法Ver利用再现的c01,c11,c21,...,c0N,c1N,c2N,核实Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)。
如上所述,通过关联公开密钥认证方案的模型中的证明方和数字签名方案中的签名者,公开密钥认证方案的算法可被修改成数字签名方案的算法。
[4-2:将5遍公开密钥认证方案修改成数字签名方案(图9)]
接着,说明把5遍的公开密钥认证方案修改成数字签名方案。
如图9所示,利用5次6个操作(即,操作#1到操作#6)的交互表示基于5遍方案的高效算法(例如,见图7)。
操作#1包括针对i=1到N生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)的处理(1)和计算Cmt←H(c01,c11,…,c0N,c1N)的处理(2)。将证明方算法P在操作#1中生成的Cmt发送给核实方算法V。
操作#2包括选择ChA1,...,ChAN的处理。将核实方算法V在操作#2中选择的ChA1,...,ChAN发送给证明方算法P。
操作#3包括针对i=1到N生成bi=(t1i,e1i)的处理和生成d=H(t11,e11,...,t1N,e1N)的处理。将证明方算法P在操作#3中生成的d发送给核实方算法V。
操作#4包括选择ChB1,...,ChBN的处理。将核实方算法V在操作#4中选择的ChB1,...,ChBN发送给证明方算法P。
操作#5包括利用ChB1,...,ChBN,a1,...,aN,b1,...,bN生成Rsp1,...,RspN的处理。将该处理表示为Rspi<-Select(ChBi,ai,bi)。将证明方算法P在操作#5中生成的Rsp1,...,RspN发送给核实方算法V。
操作#6包括利用ChA1,...,ChAN,ChB1,...,ChBN,Rsp1,...,RspN再现c01,c11,...,c0N,c1N,t11,e11,...,t1N,e1N的处理,和利用再现的c01,c11,...,c0N,c1N核实Cmt=H(c01,c11,...,c0N,c1N)的处理以及核实d=H(t11,e11,...,t1N,e1N)的处理。
将用以上操作#1到操作#6表示的公开密钥认证方案的算法修改成图9所示的签名生成算法Sig和签名核实算法Ver。
(签名生成算法Sig)
首先,说明签名生成算法Sig的结构。签名生成算法Sig包括以下处理(1)~(7)。
处理(1):签名生成算法Sig生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)。
处理(2):签名生成算法Sig计算Cmt←H(c01,c11,…,c0N,c1N)。
处理(3):签名生成算法Sig计算(ChA1,…,ChAN)←H(M,Cmt)。这里,M是待附加签名的消息。
处理(4):签名生成算法Sig针对i=1到N生成bi=(t1i,e1i)。此外,签名生成算法Sig计算d=H(t11,e11,...,t1N,e1N)。
处理(5):签名生成算法Sig计算(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)。注意,可以将其修改为(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)。
处理(6):签名生成算法Sig计算Rspi←Select(ChBi,ai,bi)。
处理(7):签名生成算法Sig把(Cmt,d,Rsp1,...,RspN)设定为数字签名。
(签名核实算法Ver)
下面,说明签名核实算法Ver的结构。签名核实算法Ver包括以下处理(1)~(4)。
处理(1):签名核实算法Ver计算(ChA1,…,ChAN)←H(M,Cmt)。
处理(2):签名核实算法Ver计算(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)。注意,当在签名核实算法Ver执行的处理(5)中执行到(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)的修改时,签名核实算法Ver计算(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)。
处理(3):签名核实算法Ver利用ChA1,...,ChAN,ChB1,...,ChBN,Rsp1,...,RspN,生成t11,e11,…,t1N,e1N,c01,c11,…,c0N,c1N
处理(4):签名核实算法Ver利用再现的c01,c11,...,c0N,c1N,核实Cmt=H(c01,c11,…,c0N,c1N)以及d=H(t11,e11,…,t1N,e1N)。
如上所述,通过关联公开密钥认证方案的模型中的证明方和数字签名方案中的签名者,公开密钥认证方案的算法可被修改成数字签名方案的算法。
<5:高效代入多元多项式的系数的方法>
然而,以上尚未具体描述在证明方(或签名方)和核实方之间共用多元多项式的方法。可以想到的共用多元多项式的一种方法包括在证明方与核实方之间共用在生成多元多项式的系数(随机数)时使用的种子的方法。然而,只要不在证明方与核实方之间共用将使用共用的种子生成的随机数应用于系数的顺序,就很难说共用了多元多项式。
[5-1:基本协定]
因此,针对将使用在证明方(或签名方)与核实方之间共用的种子生成的随机数序列应用于多元多项式的顺序执行基本判定。然后,当使用多元多项式时,根据该基本判定将随机数序列应用于多元多项式。当使用该方法时,在证明方(或签名方)与核实方之间可共用多元多项式。
[5-2:数据的构造]
然而,构成多元多项式的系数数量很大。当用1比特的单位表示一个系数时,需要用至少几千个比特的数据来表示多元多项式。因此,用数字代入多元多项式的系数的处理负荷非常高。因此,本技术的发明人设计了通过按预定单位构造多元多项式的系数,并流线化系数的代入处理的技术(构造技术#1)。此外,本技术的发明人设计了一种在对同一多元多项式的系数执行多次代入处理时改进处理效率的技术(构造技术#2)。以下详细描述这些技术。
(5-2-1:构造技术#1(图10))
首先,描述构造技术#1。如图10所示,构造技术#1是作为一个数据结构组织构成多元多项式F的相同种类的项的系数的技术。在图10的示例中,作为数据结构A组织系数a1IJ到aMIJ,作为数据结构B组织系数b1I到bMI。此外,如图11所示,同样可以将相同的技术应用于多元多项式G。在此情况下,作为数据结构组织系数(a1IJ+a1JI)到(aMIJ+aMJI)。
当不应用构造技术#1时,通过在(示例1)中示出的算法执行包括M个N元多项式的多元多项式F的计算。在(示例1)的情况下,需要执行1比特“与”运算(&)2×N×(N+1)×M/2次。此外,需要执行1比特“异或”运算(^)1×N×(N+1)×M/2次。在此,假设输入x具有N比特。
(示例1)
另一方面,如图10所示,当构造系数并且顺次应用生成的随机数的每个部分作为多元多项式F的系数时,将系数代入算法表示为(示例2)。在(示例2)的情况下,执行M比特“与”运算(&)2×N×(N+1)×M/2次并且执行M比特异或运算(^)N×(N+1)/2次。此外,在每个循环的时候生成a(1到M)IJ。此外,系数可以被使用多次。例如,当执行循环N(N-1)/2次时,不必每次都生成a(1到M)IJ,而是可以对于循环的每M次仅生成一次a(1到M)IJ。此外,在M次的循环期间,可以通过转动一个比特来使用[a(1 到M)IJ]。
(示例2)
此外,如图10所示,当构造系数时,可以将通过应用多元多项式F的系数而获得的中间结果保持在表中。在此情况下,将以上算法表示为(示例3)。此外,将aIJ[x1,…,xk][z1,…zk]=(a(k(I-1)+1)(k(J-1)+1)&x1&z1)^…^(a(k(I-1)+1)(k(J-1)+k)&x1&zk)^…^(a(k(I-1)+k)(k(J-1)+1)&xk&z1)^…^(a(k(I-1)+k)(k(J-1)+k)&xk&zk)分别存储在数组aIJ[0][0]到aIJ[2k-1][2k-1]中。在(示例3)的情况下,执行M比特异或运算(^)仅(N/k)(N/k+1)/2次。然而,所需存储器量是(示例2)的算法的存储器量的22k/k2倍。
例如,当k=1时,执行M比特异或运算120×121/2=7260次,所需存储器量是(示例2)的存储器量的22=4倍,并且循环次数不变。此外,当k=2时,执行M比特异或运算60*61/2=1830次,所需存储器量是24/4=4倍,并且循环次数是1/4。当k=4时,执行M比特异或运算30*31/2=465次,所需存储器量是28/42=16倍,并且循环次数是1/15.6。当k=6时,执行M比特异或运算20*21/2=210次,所需存储器量是212/62=114倍,并且循环次数是1/34.6。当k=8时,执行M比特异或运算15*16/2=120次,所需存储器量是216/82=1024倍,并且循环次数是1/60.5。
(示例3)
准确地说,示例3中描述的技术是预先计算下式(13)中定义的FIJ(…)的值并且将值保持为数组的技术。
[数学式11]
F ( x 1 , . . . , x n ) = &Sigma; I , J F IJ ( x k ( I - 1 ) + 1 , . . . , x k ( I - 1 ) + k , x k ( J - 1 ) + 1 , . . . , x k ( J - 1 ) + k ) = y . . . ( 33 )
在此,FIJ(xk(I-1)+1,…,xk(I-1)+k,xk(J-1)+1,…,xk(J-1)+k)表示F(x1,…,xn)中的由[xk(I-1)+1,…,xk(I-1)+k]和[xk(J-1)+1,…,xk(J-1)+k]确定的部分。
以将构造技术#1应用于多元多项式F的情况为例描述了具体算法。在该构成中,可以预期在执行算法时提高处理速度。
(应用示例:应用于多元多项式G)
以上参照图10描述了应用构造技术#1计算多元多项式F的算法。由于还以二次形式表示多元多项式G的每个元素,因此,如图11所示,在不变化的情况下以上构造技术#1类似地可应用于多元多项式G的计算。
例如,当不应用上述构造技术#1时,将计算多元多项式G的算法表示为以下(示例1’)。在此,假设输入x和y均具有N比特。
(示例1’)
当将上述构造技术#1应用于以上(示例1’)时,将计算多元多项式G的算法表示为以下(示例2’)。
(示例2’)
在将通过应用多元多项式G的系数而获得的中间结果保持在表中的技术的情况下,与以上(示例3)对应地将计算多元多项式G的算法表示为以下(示例3’)。此外,将aIJ[x1,…,xk][y1,…yk]=(a(k(I-1)+1)(k(J-1)+1)&x1&y1)^…^(a(k(I-1)+1)(k(J-1)+k)&x1&yk)^…^(a(k(I-1)+k)(k(J-1)+1)&xk&y1)^…^(a(k(I-1)+k)(k(J-1)+k)&xk&yk)分别存储在数组aIJ[0][0]到aIJ[2k-1][2k-1]中。
在(示例3’)的情况下,执行M比特异或运算(^)仅(N/k)2次。然而,所需存储器量是(示例2’)的算法的存储器量的22k/k2倍。
例如,当k=1时,执行M比特异或运算1202=14400次,所需存储器量是(示例2’)的存储器量的22=4倍,并且循环次数不变。此外,当k=2时,执行M比特异或运算602=3600次,所需存储器量是24/4=4倍,并且循环次数是1/4。当k=4时,执行M比特异或运算302=900次,所需存储器量是28/42=16倍,并且循环次数是1/16。当k=6时,执行M比特异或运算202=400次,所需存储器量是212/62=114倍,并且循环次数是1/36。当k=8时,执行M比特异或运算152=225次,所需存储器量是216/82=1024倍,并且循环次数是1/64。
(示例3’)
具体地说,示例3’中描述的技术是预先计算下式(14)中定义的GIJ(…)的值并且将值保持为数组的技术。
[数学式12]
G ( x 1 , . . . , x n ) = &Sigma; I , J G IJ ( x k ( I - 1 ) + 1 , . . . , x k ( I - 1 ) + k , y k ( J - 1 ) + 1 , . . . , y k ( J - 1 ) + k ) = z . . . ( 34 )
在此,GIJ(xk(I-1)+1,…,xk(I-1)+k,yk(J-1)+1,…,yk(J-1)+k)表示G(x1,…,xn,y1,…,yN)中的由[xk(I-1)+1,…,xk(I-1)+k]和[yk(J-1)+1,…,yk(J-1)+k]确定的部分。
以计算多元多项式G的情况为例描述了与构造技术#1相关的具体算法结构。在该构成中,可以预期在执行算法时提高处理速度。
(进一步关于与(示例2)和(示例2’)相关的技术的效率)
在此,再次考虑上述(示例2)的算法。上述(示例2)的算法包括关于下标I和J的双循环处理。因此,通过研究循环处理的一部分中执行的处理步骤的内容,提出了在获得相同结构的同时减少算数运算次数的技术。此外,还将介绍将该技术应用于(示例2’)的方法。
(应用于F:第一技术)
作为第一技术,例如,提出了如下技术:从内循环(J的循环)中提取与下标J不相关的项[x的第I比特],并如以下(示例2A)中所示的那样修改所述项。注意,tmp是用于暂时存储值的变量。当进行这种修改时,就运算内容而言,执行M比特与运算(&)1×N×(N+1)/2次,并且执行M比特异或运算(^)N×(N+1)/2次。
(示例2A)
(应用于F:第二技术)
此外,作为第二技术,提出了如下技术:使用条件分支来修改如以下描述的(示例2B)所示的算法,使得当[x的第I比特]项是0时,认为输出不受影响,并且仅当例如[x的第I比特]=1时执行内循环处理。当进行这种修改时,就运算内容而言,执行M比特与运算(&)1×N×(N+3)/2×p次,并且执行M比特异或运算(^)N×(N+1)/2×p次。其中,p表示设定[x的第I比特]=0的率(rate)。
(示例2B)
(应用于F:第三技术)
此外,作为第二技术,提出了如下技术:使用条件分支来修改如以下描述的(示例2C)所示的算法,使得当[x的第J比特]项是0时,认为输出不受影响,并且仅当例如[x的第J比特]=1时执行内循环处理。当进行这种修改时,可以进一步减少运算次数。
(示例2C)
(应用于G:第一技术)
上述第一到第三技术也可以按同样的方式应用于以上与多元多项式G相关联地描述的算法(示例2’)。例如,当将上述第一技术应用于上述算法(示例2’)时,将算法修改为以下(示例2’A)。
(示例2’A)
(应用于G:第二技术)
此外,将上述第二技术应用于上述(示例2’)的算法。当[x的第I比特]项为0时,上述(示例2’)的算法也不影响输出。因此,当利用条件分支将算法修改为以下(示例2’B),使得仅当[x的第I比特]=1时才执行内循环处理时,可以减少运算次数。
(示例2’B)
(应用于G:第三技术)
此外,将上述第二技术应用于上述(示例2’)的算法。当[y的第J比特]项为0时,上述(示例2’)的算法也不影响输出。因此,当利用条件分支将算法修改为以下(示例2’C),使得仅当[y的第J比特]=1时才执行内循环处理时,可以减少运算次数。
(示例2’C)
如上所述,通过应用第一到第三技术,可以减少在多元多项式G中代入系数的算法中的运算次数。
(安全性考虑)
然而,如果将算法修改成如在上述第二和第三技术中那样跳过处理的算法,当在输入x中包含很大数量的0时和当在输入x中包含很小数量的0时,处理时间存在差别。因此,通过测量处理时间,获得输入x的信息。换句话说,当应用跳过处理的这种算法时,存在泄露在生成签名时使用的随机数的信息的风险等。
因此,为了防止这种风险,提出了如下技术:预先设定允许的“输入x中的0的比率”的范围(例如,等于或小于10%,等于或高于90%等),当该比率没有落在该范围中时,置换随机数。当应用该技术时,当存在比设定范围更多的0或更少的0时,执行置换随机数的处理。结果,即使测量将x代入多项式F中的处理时间,也难以获得从处理时间泄露的输入x的信息。
此外,除了上述技术以外,还考虑如下技术:对秘密密钥施加限制“0的比特数基本上等于(或者可以完全等于)1的比特数”。当应用该技术时,即使使用跳过处理的上述算法,处理时间也会在某种程度上一致,因此难以获得从处理时间泄露的输入x的信息。
在此,将考虑计算F(r0)和G(r1,t0)的特定情况。将秘密密钥设定为s,将r0和t0设定为随机向量,并设定r1=s+r0(“+”对应于“异或”)。在此情况下,如果在秘密密钥s中将0和1的比特数设定为相等,无论r0的值如何,r1的一半比特都是r0的翻转(reversed)比特。然后,在由r0(N比特)和r1(N比特)构成的2N比特中,0的比特数在0.5N到1.5N的范围内。结果,在r0和r1中,不存在所有比特都是0或1的情况。
如果利用上述特征,即使应用跳过处理的算法,F(r0)和G(t0,r1)的总计算时间也会一致。作为一个示例,考虑应用上述(示例2C)和(示例2’C)的算法的情况。在此情况下,基于(示例2C)的算法执行多元多项式F的计算,并且基于(示例2’C)的算法执行多元多项式G的计算。以下再次描述这两种算法。
当计算多元多项式F(r0)时,输入x=r0。当计算多元多项式(r1,t0)时,输入x=r1。如在以上描述中那样,在r0和r1的总共2N比特中,0的比特数在0.5N到1.5N的范围内。因此,在下述(示例2C)的算法的第3行中描述的条件分支和(示例2’C)的算法的第3行中描述的条件分支中,跳过处理的次数也在0.5N到1.5N的范围内。因此,难以导致从多元多项式F和G的总处理时间泄露有关输入的信息。
(示例2C:重新描述,增加了行号)
(示例2’C:重新描述,增加了行号)
以上,描述了构造技术#1。
(5-2-2:构造技术#2)
接着,描述构造技术#2。构造技术#2是如下的技术:当对同一多元多项式执行N次(N≥2)代入处理时,以并行方式按步骤“生成一些系数并且执行与它们相关的处理N次”的单位执行N次顺序处理,而不是通过从随机数生成多项式执行N次代入处理。如果应用该技术,当难以忽略生成随机数的成本时,在N次的整体处理中吞吐量会改进。
例如,在图5所示的算法中,在操作#1中更新变量的同时,重复N次计算多元多项式F和G。这样,将算数运算配置成使用相同的系数对计算部分重复执行。当利用上述(示例2)的算法计算多元多项式F(r0i)(i=1到N)时,将其配置成将所有N个r0i一次应用于生成的[aIJL],然后执行与下一[aIJL]相关的处理。利用这种配置,相同的系数[aIJL]可以不被生成N次。
以上描述了与构造技术#2的具体代入算法。在该配置中,在总共执行N次的处理中改进了吞吐量。
<6:硬件结构示例(图12)>
上述每种算法可以利用例如图12中所示的信息处理设备的硬件结构来执行。即,通过利用计算机程序,控制图12中所示的硬件,可实现每种算法的处理。另外,这种硬件的模式是任意的,可以是个人计算机、诸如移动电话机、PSH或PDA之类的移动信息终端、游戏机、接触或非接触式IC芯片、接触或接触式IC卡、或者各种信息电器。此外,PHS是个人手提移动电话系统的缩写。另外,PDA是个人数字助手的缩写。
如图12中所示,所述硬件主要包括CPU 902、ROM 904、RAM 906、主总线908和桥接器910。此外,所述硬件包括外部总线912、接口914、输入单元916、输出单元918、存储单元920、驱动器922、连接端口924和通信单元926。此外,CPU是中央处理器的缩写。另外,ROM是只读存储器的缩写。此外,RAM是随机存取存储器的缩写。
CPU 902起算术处理单元或控制单元的作用,根据记录在ROM 904、RAM 906、存储单元920或可拆卸记录介质928上的各种程序,控制每个构成元件的整个操作或者部分操作。ROM 904是保存加载到CPU 902的程序,或者在算术运算中使用的数据等的装置。RAM 906临时或永久保存加载到CPU 92的程序,或者在程序的执行中被任意改变的各种参数等。
这些构成元件通过能够进行高速数据传输的主总线908相互连接。对其来说,主总线908通过桥接器910连接到其数据传输速度较低的外部总线912。此外,输入单元916例如是鼠标、键盘、触摸面板、按钮、开关或者控制杆。另外,输入单元916可以是通过利用红外线或者无线电波,能够传送控制信号的遥控器(下面称为遥控器)。
输出单元918例如是能够视觉或者听觉地把获得的信息通知用户的诸如CRT、LCD、PDP或ELD之类的显示设备,诸如扬声器或头戴式耳机之类的音频输出设备,打印机、移动电话机或者传真机。此外,CRT是阴极射线管的缩写。LCD是液晶显示器的缩写。PDP是等离子体显示面板的缩写。另外,ELD是电致发光显示器的缩写。
存储单元920是用于保存各种数据的设备。例如,存储单元920是诸如硬盘驱动器(HDD)之类的磁存储设备,半导体存储设备,光存储设备,或者磁光存储设备。HDD是硬盘驱动器的缩写。
驱动器922是读取记录在可拆卸记录介质928,比如磁盘、光盘、磁光盘或半导体存储器上的信息,或者把信息写入可拆卸记录介质928中的设备。例如,可拆卸记录介质928是DVD介质、蓝光介质、HD-DVD介质、各种半导体存储介质等等。当然,可拆卸记录介质928可以是例如电子设备或者上面安装非接触式IC芯片的IC卡。IC是集成电路的缩写。
连接端口924是诸如USB端口、IEEE1394端口、SCSI、RS-232C端口、或者连接诸如音频光端机之类的外部连接设备930的端口。例如,外部连接设备930是打印机、移动音乐播放器、数字照相机、数字摄像机或者IC记录器。此外,USB是通用串行总线的缩写。另外,SCSI是小型计算机系统接口的缩写。
通信单元926是待连接到网络932的通信设备,例如是用于有线或无线LAN、蓝牙(注册商标)或WUSB的通信卡、光通信路由器、ADSL路由器、或者用于接触或非接触式通信的设备。连接到通信单元926的网络932由有线连接或者无线连接的网络构成,例如是因特网、家用LAN、红外通信、可见光通信、广播或者卫星通信。此外,LAN是局域网的缩写。另外,WUSB是无线USB的缩写。此外,ADSL是非对称数字用户线路的缩写。
<7:结论>
最后,简要说明按照本技术的实施例的技术内容。这里陈述的技术内容可应用于各种信息处理设备,比如个人计算机、移动电话机、游戏机、信息终端、信息电器、车载导航系统等。此外,通过利用单一的信息处理设备或者多个信息处理设备,能够实现下述信息处理设备的功能。此外,由下述信息处理设备用于执行处理的数据存储装置和算术处理装置可被安装在信息处理设备上,或者可安装在通过网络连接的设备上。
如下所示,实现上述信息处理设备的功能配置。在下面的(1)中说明的信息处理设备具有执行安全性基于求解多次多元联立方程的困难性的高效公开密钥认证方案或数字签名方案的相关算法的功能。
(1)一种信息处理设备,包括:
数获取单元,被配置成获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数根据在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和
多项式计算单元,被配置成通过将由所述数获取单元获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式,
其中,所述多项式计算单元跳过针对至少一个变量的输入值为0的项的计算处理。
(2)根据(1)所述的信息处理设备,其中所述变量的输入值被生成为使得所有输入值之中的为0的输入值的比率在预定范围内。
(3)根据(2)所述的信息处理设备,其中所述变量的输入值是利用随机数生成器生成的值,并且当所有输入值之中的为0的输入值的比率不在所述预定范围内时利用所述随机数生成器重新生成所述变量的输入值。
(4)根据(1)所述的信息处理设备,其中所述变量的输入值用彼此不同的第一比特值和第二比特值中的任何一个来表示,并且在所有输入值之中具有第一比特值的输入值的数量与具有第二比特值的输入值的数量基本上相等。
(5)根据(1)至(4)中的任何一项所述的信息处理设备,其中所述多项式计算单元对所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数之中的具有相同类型的变量组合的项的系数进行分组,然后按组的单位执行计算。
(6)根据(1)至(4)中的任何一项所述的信息处理设备,其中所述多项式计算单元在用二次形式表示所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式时,针对每行或每列对系数矩阵进行分组,然后按组的单位执行计算。
(7)根据(1)所述的信息处理设备,其中,当所述多项式计算单元对一个组执行分配处理时,所述数获取单元获取为属于所述一个组的系数生成的数。
(8)根据(7)所述的信息处理设备,其中所述数获取单元通过将在生成属于所述一个组的系数的数时生成的一个数转动一个比特,来获取所需数量的数。
(9)根据(1)至(6)中的任何一项所述的信息处理设备,还包括:
表保持单元,被配置成将系数分配给与每个组对应的类型的项,并且作为表保持通过用任意数替换所述项的变量而获得的值。
(10)根据(1)至(9)中的任何一项所述的信息处理设备,
其中所述信息是随机数的种子,并且
其中所述预定函数是被配置成使用所述种子生成随机数的随机数生成器。
(11)根据(1)至(10)中的任何一项所述的信息处理设备,包括:
消息生成单元,被配置成基于在环K中定义的一组多次多元多项式F=(f1,...,fm)和向量s∈Kn生成消息;
消息提供单元,被配置成将所述消息提供给保持所述一组多次多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核实方;以及
响应提供单元,被配置成把与核实方从k(k≥3)种核实模式中选择的核实模式对应的回答信息提供给核实方,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,
其中所述回答信息是根据核实模式从一组随机数和所述消息之中选择的信息,并且
其中所述消息是通过利用公开密钥和所述回答信息,执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
(12)根据(1)至(10)中的任何一项所述的信息处理设备,包括:
信息保持单元,被配置成保持在环K上定义的所述一组多次多元多项式F=(f1,...,fm),和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,被配置成获取基于所述一组多次多元多项式F和向量s∈Kn而生成的消息;
模式信息提供单元,被配置成把从k(k≥3)种核实模式中随机选择的一个核实模式的信息提供给提供所述消息的证明方;
回答获取单元,被配置成从证明方获取与所选核实模式对应的回答信息;以及
核实单元,被配置成基于所述消息、所述一组多次多元多项式F、向量y以及所述回答信息,核实证明方是否保持有向量s,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,并且
其中所述消息是通过利用所述公开密钥和回答信息执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
(13)根据(1)至(10)中的任何一项所述的信息处理设备,包括:
消息生成单元,被配置成基于在环K上定义的所述一组多次多元多项式F=(f1,...,fm)和向量s∈Kn,生成消息;
消息提供单元,被配置成把所述消息提供给保持所述一组多次多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核实方;
中间信息生成单元,被配置成利用核实方随机选择的第一信息和当生成所述消息时获得的第二信息,生成第三信息;
中间信息提供单元,被配置成把第三信息提供给核实方;以及
回答提供单元,被配置成把与核实方从k(其中k≥2)种核实模式中选择的核实模式对应的回答信息提供给核实方,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,
其中所述回答信息是根据核实模式从所述消息之中选择的信息,并且
其中所述消息是通过利用公开密钥、第一信息、第三信息以及回答信息执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
(14)根据(1)至(10)中的任何一项所述的信息处理设备,包括:
信息保持单元,被配置成保持在环K上定义的所述一组多次多元多项式F=(f1,...,fm),和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,被配置成获取基于所述一组多次多元多项式F和向量s∈Kn而生成的消息;
信息提供单元,被配置成把随机选择的第一信息提供给提供所述消息的证明方;
中间信息获取单元,被配置成获取证明方利用第一信息和当生成所述消息时获得的第二信息生成的第三信息;
模式信息提供单元,被配置成把从k(k≥3)种核实模式中随机选择的一个核实模式的信息提供给证明方;
回答获取单元,被配置成从证明方获取与所选核实模式对应的回答信息;以及
核实单元,被配置成基于所述消息、第一信息、第三信息、所述一组多次多元多项式F以及回答信息,核实证明方是否保持有向量s,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,并且
其中所述消息是通过利用公开密钥、第一信息、第三信息以及回答信息,执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
(15)根据(1)至(10)中的任何一项所述的信息处理设备,
其中,当重复多次执行算法时,所述数获取单元仅获取所生成的数一次,并且所述多项式计算单元仅执行所述分配处理一次,并且
其中所述多项式计算单元重复使用分配的系数。
(16)根据(1)至(10)中的任何一项所述的信息处理设备,包括:
签名生成单元,被配置成利用在环K中定义的所述一组多次多元多项式F=(f1,...,fm)和签名密钥s∈Kn,生成消息M的数字签名;以及
签名提供单元,被配置成将所述数字签名提供给保持所述一组多次多元多项式F和向量y=(f1(s),...,fm(s))的核实方。
(17)一种信息处理方法,包括:
获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数的步骤,所述数是利用预定函数从在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和
通过将由所获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式的步骤,
其中,在计算变量的输入值的多次多元多项式的步骤中,跳过针对至少一个变量的输入值为0的项的计算处理。
(18)一种使计算机实现以下功能的程序:
数获取功能,获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数从在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和
多项式计算功能,通过将由所获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式,
其中,所述多项式计算功能使得跳过针对至少一个变量的输入值为0的项的计算处理。
(19)一种记录有根据(18)所述的程序的计算机可读记录介质。(19)
(评论)
以上证明方算法P、以上核实方算法V、以上签名生成算法Sig以及以上签名核实算法Ver是数生成单元、多项式计算单元、以及表保持单元的示例。以上证明方算法P是消息生成单元、消息提供单元、回答提供单元、中间信息生成单元以及中间信息提供单元的示例。此外,以上核实方算法V是信息保持单元、消息获取单元、模式信息提供单元、回答获取单元、核实单元以及中间信息获取单元的示例。
上面参考附图,说明了本发明的优选实施例,然而,本发明并不局限于上面的例子。本领域的技术人员可得到在附加权利要求的范围内的各种变化和修改,应明白这些变化和修改自然在本发明的技术范围之内。
在上述说明中,介绍了利用散列函数H的算法,但是可以使用承诺函数COM代替散列函数H。承诺函数COM是使用字符串S和随机数ρ作为因子的函数。承诺函数的示例包括由Shai Halevi和Silvio Micali在国际会议CRYPTO1996中给出的方案。
附图标记列表
Gen 密钥生成算法
P 证明方算法
V 核实方算法
Sig 签名生成算法
Ver 签名核实算法

Claims (18)

1.一种信息处理设备,包括:
数获取单元,被配置成获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数根据在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和
多项式计算单元,被配置成通过将由所述数获取单元获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式,
其中,所述多项式计算单元跳过针对至少一个变量的输入值为0的项的计算处理。
2.根据权利要求1所述的信息处理设备,其中所述变量的输入值被生成为使得所有输入值之中的为0的输入值的比率在预定范围内。
3.根据权利要求2所述的信息处理设备,其中所述变量的输入值是利用随机数生成器生成的值,并且当所有输入值之中的为0的输入值的比率不在所述预定范围内时利用所述随机数生成器重新生成所述变量的输入值。
4.根据权利要求1所述的信息处理设备,其中所述变量的输入值用彼此不同的第一比特值和第二比特值中的任何一个来表示,并且在所有输入值之中具有第一比特值的输入值的数量与具有第二比特值的输入值的数量基本上相等。
5.根据权利要求1所述的信息处理设备,其中所述多项式计算单元对所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数之中的具有相同类型的变量组合的项的系数进行分组,然后按组的单位执行计算。
6.根据权利要求1所述的信息处理设备,其中所述多项式计算单元在用二次形式表示所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式时,针对每行或每列对系数矩阵进行分组,然后按组的单位执行计算。
7.根据权利要求1所述的信息处理设备,其中,当所述多项式计算单元对一个组执行分配处理时,所述数获取单元获取为属于所述一个组的系数生成的数。
8.根据权利要求7所述的信息处理设备,其中所述数获取单元通过将在生成属于所述一个组的系数的数时生成的一个数转动一个比特,来获取所需数量的数。
9.根据权利要求1所述的信息处理设备,还包括:
表保持单元,被配置成将系数分配给与每个组对应的类型的项,并且作为表保持通过用任意数替换所述项的变量而获得的值。
10.根据权利要求1所述的信息处理设备,
其中所述信息是随机数的种子,并且
其中所述预定函数是被配置成使用所述种子生成随机数的随机数生成器。
11.根据权利要求1所述的信息处理设备,包括:
消息生成单元,被配置成基于在环K中定义的一组多次多元多项式F=(f1,...,fm)和向量s∈Kn生成消息;
消息提供单元,被配置成将所述消息提供给保持所述一组多次多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核实方;以及
响应提供单元,被配置成把与核实方从k(k≥3)种核实模式中选择的核实模式对应的回答信息提供给核实方,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,
其中所述回答信息是根据核实模式从一组随机数和所述消息之中选择的信息,并且
其中所述消息是通过利用公开密钥和所述回答信息,执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
12.根据权利要求1所述的信息处理设备,包括:
信息保持单元,被配置成保持在环K上定义的所述一组多次多元多项式F=(f1,...,fm),和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,被配置成获取基于所述一组多次多元多项式F和向量s∈Kn而生成的消息;
模式信息提供单元,被配置成把从k(k≥3)种核实模式中随机选择的一个核实模式的信息提供给提供所述消息的证明方;
回答获取单元,被配置成从证明方获取与所选核实模式对应的回答信息;以及
核实单元,被配置成基于所述消息、所述一组多次多元多项式F、向量y以及所述回答信息,核实证明方是否保持有向量s,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,并且
其中所述消息是通过利用所述公开密钥和回答信息执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
13.根据权利要求1所述的信息处理设备,包括:
消息生成单元,被配置成基于在环K上定义的所述一组多次多元多项式F=(f1,...,fm)和向量s∈Kn,生成消息;
消息提供单元,被配置成把所述消息提供给保持所述一组多次多元多项式F和向量y=(y1,...,ym)=(f1(s),...,fm(s))的核实方;
中间信息生成单元,被配置成利用核实方随机选择的第一信息和当生成所述消息时获得的第二信息,生成第三信息;
中间信息提供单元,被配置成把第三信息提供给核实方;以及
回答提供单元,被配置成把与核实方从k(其中k≥2)种核实模式中选择的核实模式对应的回答信息提供给核实方,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,
其中所述回答信息是根据核实模式从所述消息之中选择的信息,并且
其中所述消息是通过利用公开密钥、第一信息、第三信息以及回答信息执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
14.根据权利要求1所述的信息处理设备,包括:
信息保持单元,被配置成保持在环K上定义的所述一组多次多元多项式F=(f1,...,fm),和向量y=(y1,...,ym)=(f1(s),...,fm(s));
消息获取单元,被配置成获取基于所述一组多次多元多项式F和向量s∈Kn而生成的消息;
信息提供单元,被配置成把随机选择的第一信息提供给提供所述消息的证明方;
中间信息获取单元,被配置成获取证明方利用第一信息和当生成所述消息时获得的第二信息生成的第三信息;
模式信息提供单元,被配置成把从k(k≥3)种核实模式中随机选择的一个核实模式的信息提供给证明方;
回答获取单元,被配置成从证明方获取与所选核实模式对应的回答信息;以及
核实单元,被配置成基于所述消息、第一信息、第三信息、所述一组多次多元多项式F以及回答信息,核实证明方是否保持有向量s,
其中向量s是秘密密钥,
其中所述一组多次多元多项式F和向量y是公开密钥,并且
其中所述消息是通过利用公开密钥、第一信息、第三信息以及回答信息,执行预先为与所述回答信息对应的核实模式准备的运算而获得的信息。
15.根据权利要求1所述的信息处理设备,
其中,当重复多次执行算法时,所述数获取单元仅获取所生成的数一次,并且所述多项式计算单元仅执行所述分配处理一次,并且
其中所述多项式计算单元重复使用分配的系数。
16.根据权利要求1所述的信息处理设备,包括:
签名生成单元,被配置成利用在环K中定义的所述一组多次多元多项式F=(f1,...,fm)和签名密钥s∈Kn,生成消息M的数字签名;以及
签名提供单元,被配置成将所述数字签名提供给保持所述一组多次多元多项式F和向量y=(f1(s),...,fm(s))的核实方。
17.一种信息处理方法,包括:
获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数的步骤,所述数是利用预定函数从在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和
通过将由所获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式的步骤,
其中,在计算变量的输入值的多次多元多项式的步骤中,跳过针对至少一个变量的输入值为0的项的计算处理。
18.一种使计算机实现以下功能的程序:
数获取功能,获得用作构成一组多次多元多项式F=(f1,...,fm)的各项的系数的数,所述数是利用预定函数从在执行公开密钥认证方案或数字签名方案的算法的实体之间共用的信息生成的,所述公开密钥认证方案或数字签名方案使用包括所述一组多次多元多项式F的公开密钥;和
多项式计算功能,通过将由所获取的数分配给所述一组多次多元多项式F作为构成要素被包含在其中的多次多元多项式的系数,计算变量的输入值的多次多元多项式,
其中,所述多项式计算功能使得跳过针对至少一个变量的输入值为0的项的计算处理。
CN201380010945.5A 2012-03-02 2013-02-08 信息处理设备、信息处理方法以及程序 Pending CN104137471A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012-046685 2012-03-02
JP2012046685 2012-03-02
PCT/JP2013/053081 WO2013129084A1 (ja) 2012-03-02 2013-02-08 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
CN104137471A true CN104137471A (zh) 2014-11-05

Family

ID=49082286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380010945.5A Pending CN104137471A (zh) 2012-03-02 2013-02-08 信息处理设备、信息处理方法以及程序

Country Status (5)

Country Link
US (1) US20150010144A1 (zh)
EP (1) EP2822217A4 (zh)
JP (1) JPWO2013129084A1 (zh)
CN (1) CN104137471A (zh)
WO (1) WO2013129084A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110622232A (zh) * 2017-05-25 2019-12-27 日本电信电话株式会社 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790288B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、及び情報処理方法
JP5790319B2 (ja) * 2011-08-29 2015-10-07 ソニー株式会社 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4141773B2 (ja) * 2002-09-12 2008-08-27 村田機械株式会社 復号処理装置
EP1758020A4 (en) * 2004-06-18 2008-11-26 Fujitsu Ltd RANDOM PRODUCTION DEVICE, PRODUCTION METHOD, GENERATOR EVALUATION METHOD AND USE METHOD FOR RANDOM NUMBERS
US8019079B2 (en) * 2007-07-08 2011-09-13 Georgia Tech Research Corporation Asymmetric cryptosystem employing paraunitary matrices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110622232A (zh) * 2017-05-25 2019-12-27 日本电信电话株式会社 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统

Also Published As

Publication number Publication date
US20150010144A1 (en) 2015-01-08
WO2013129084A1 (ja) 2013-09-06
JPWO2013129084A1 (ja) 2015-07-30
EP2822217A1 (en) 2015-01-07
EP2822217A4 (en) 2015-11-11

Similar Documents

Publication Publication Date Title
CN104011781B (zh) 信息处理设备、信息处理方法
CN105027180B (zh) 保密计算系统、运算装置、以及保密计算方法
CN102263638B (zh) 认证设备、认证方法和签名生成设备
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN102263639B (zh) 认证装置、认证方法和签名生成装置
US9276735B2 (en) Information processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
CN102957538A (zh) 信息处理设备和信息处理方法
CN107078906A (zh) 公钥加密系统
CN103718501B (zh) 信息处理设备和信息处理方法
CN104137471A (zh) 信息处理设备、信息处理方法以及程序
CN110169010A (zh) 同态运算装置、加密系统和同态运算程序
TWI511517B (zh) Information processing apparatus, information processing method, program and recording medium
CN103155480A (zh) 认证装置、认证方法和程序
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
CN103733563A (zh) 信息处理设备、签名产生设备、信息处理方法、签名产生方法和程序
Xin et al. Identity-based quantum signature based on Bell states
CN103733562A (zh) 信息处理设备和信息处理方法
CN103782331A (zh) 信息处理设备、签名产生设备、签名核查设备、信息处理方法、签名产生方法和签名核查方法
KR20140054059A (ko) 정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체
Vostrov et al. Modeling of dynamic data ptotection processes based on a discrete logarithm
CN103718228A (zh) 信息处理设备和信息处理方法
Polic Implementing audit ability with non-interactive zero knowledge proofs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141105