CN106330463B - 一种多变量公钥的签名系统和方法 - Google Patents
一种多变量公钥的签名系统和方法 Download PDFInfo
- Publication number
- CN106330463B CN106330463B CN201610815728.9A CN201610815728A CN106330463B CN 106330463 B CN106330463 B CN 106330463B CN 201610815728 A CN201610815728 A CN 201610815728A CN 106330463 B CN106330463 B CN 106330463B
- Authority
- CN
- China
- Prior art keywords
- matrix
- public key
- component
- signature
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种多变量公钥的签名系统和方法,其中签名系统包括第一处理器、第一线性仿射变换部件、陷门部件和第二线性仿射变换部件,通过第一处理器生成随机数以及接收待签名的消息并且发送至第一线性仿射变换部件,第一线性仿射变换部件对接收到的待签名的消息进行仿射变换,陷门部件根据私钥参数生成多变量多项式方程组,并且将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,第二线性仿射变换部件对陷门部件得到的解进行仿射变换变换后即得到签名;本发明在保证签名不可伪造的情况下,加快多变量公钥密码签名的速度,同时降低私钥的存储量。
Description
技术领域
本发明涉及一种信息安全领域,特别涉及一种多变量公钥的签名系统和方法。
背景技术
目前公钥密码的安全性主要依赖于大整数分解和离散对数求解等困难问题,如RSA、ECC等。然而,自提出在量子计算机上能够实现大整数分解和离散对数求解的方法后,这类传统的公钥密码便受到巨大的威胁,影响到各个行业。因此,人们致力于寻找一种能够抵御量子计算机攻击的密码系统以满足信息安全的需求,并将这类系统称为后量子密码,而多变量公钥密码(MPKC)便是其中的一种。
MPKC的签名方案在后量子密码中占有重要地位,原因在于MPKC签名方案是现有一种能抵御量子攻击的签名方案,UOV和Rainbow就是很好的例子。然而现有的MPKC签名方案也有它的局限:签名速度不快,私钥存储量大。签名速度不快的原因是在生成签名的过程中,MPKC的签名方案都需要进行大量的有限域上的矩阵乘法运算,而且还要进行有限域上的矩阵求逆;私钥存储量大的原因是MPKC的签名方案都需要存储所有涉及的变量的参数。那么在实际生产应用中就会是一个问题。
发明内容
本发明的第一目的在于克服现有技术的缺点与不足,提供一种多变量公钥的签名系统,该签名系统在保证签名不可伪造安全的情况下,能够加快多变量公钥签名的速度,同时降低私钥的存储量。
本发明的第二目的在于提供一种上述签名系统实现的多变量公钥的签名方法。
本发明的第一目的通过下述技术方案实现:一种多变量公钥的签名系统,其特征在于,包括第一处理器、第一线性仿射变换部件、陷门部件和第二线性仿射变换部件;
所述第一处理器,用于接收待签名的消息并且将接收到的待签名的消息发送至第一线性仿射变换部件,用于生成随机数并且将生成的随机数发送至陷门部件;
所述第一线性仿射变换部件,用于对接收到的待签名的消息进行仿射变换计算,然后将仿射变换计算结果发送至陷门部件;
所述陷门部件,用于根据私钥参数生成多变量多项式方程组,用于将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,并且将得到的解传送给第二线性仿射变换部件;
所述第二线性仿射变换部件,用于对陷门部件发送的解进行仿射变换计算得到签名。
优选的,所述第一处理器包第一调度器、第一存储器和随机数生成器;
所述第一调度器连接选择开关,用于识别第一处理器所接收到的开状态信号和闭状态信号,通过选择开关控制第一处理器的工作状态;用于将存储在第一处理器中的数据调度至第一线性仿射变换部件、陷门部件和第二线性仿射变换部件;用于将签名发送给其他用户;
第一存储器,用于存储第一处理器中的数据;用于存储签名;
随机数生成器,用于随机生成随机数。
优选的,所述陷门部件包括矩阵轮转器、矩阵运算器、多项式和矩阵转换器以及多项式运算器;
矩阵运算器,用于生成矩阵;用于对矩阵进行基本运算和转换;
多项式和矩阵转换器,用于将矩阵转换为多项式;用于将多项式转换成矩阵;
多项式运算器,用于求取多项式在有限域中的逆;用于对多项式进行基本运算;
矩阵轮转器,用于对矩阵进行轮转。
本发明的第二目的通过下述技术方案实现:一种基于上述多变量公钥的签名系统实现的多变量公钥签名方法,步骤如下:
S1、系统初始化:随机生成私钥参数,并且存储于第一处理器中;
S2、第一处理器接收待签名的消息,然后将待签名的消息发送至第一线性仿射变换部件;
S3、第一线性仿射变换部件对接收到的待签名的消息进行仿射变换计算,然后将仿射变换结果发送至陷门部件;同时第一处理器中随机生成一组随机数发送至陷门部件;
S4、陷门部件根据私钥参数生成多变量多项式方程组,然后将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,最后将得到的解传送给第二线性仿射变换部件;
S5、第二线性仿射变换部件接收到陷门部件发送的解后,对其进行仿射变换计算,最终得到签名。
更进一步的,所述步骤S1中系统初始化的具体步骤如下:
S1-1、设定系统中所有部件都是建立在一个阶为p的有限域上,其中p是一个奇素数,记此有限域为GFp;
S1-2、根据安全级别选择系数v,r,s,其中v是随机数的个数,r是第一次生成签名的长度,s是第二次生成签名的长度,此外h=v+r,n=h+s,m=r+s,m是签名的总长度;
S1-3、随机生成可逆的系数矩阵和将系数矩阵写入第一线性仿射变换部件中;将系数矩阵写入第二线性仿射变换部件中;
S1-4、生成如下私钥参数:随机生成一组维度为v×v的矩阵A1,随机生成一组维度为v×r的矩阵B1,随机生成r组维度为v×1的矩阵Ci,随机生成一组维度为r×1的矩阵D1,随机生成s组维度为h×h的矩阵Ar+j,随机生成一组维度为h×s矩阵Br+1,随机生成s组维度为h×1矩阵Cr+j,,随机生成一组维度为s×1的矩阵Dr+1,随机生成m个常数Ek,其中i=1,2,3,…,r,j=1,2,3,…,s,k=1,2,3,…,m。
更进一步的,步骤S3中第一线性仿射变换部件在接收到的待签名的消息后,根据系数矩阵针对待签名的消息进行仿射变换,得到:
其中Y′=[y′1,y′2,…,y′m]为待签名的消息,表示待签名的消息仿射变换后的结果;
所述步骤S3中第一处理器随机生成一组随机数并且发送给陷门部件;
步骤S4中陷门部件根据私钥参数生成多变量多项式方程组,并且将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解的具体过程如下:
S4-1-1、陷门部件调用参数B1,D1,r,使用矩阵运算器计算出中间值矩阵其中l1,0至l1,r-1为中间值矩阵l1中的元素;
S4-1-2、使用多项式和矩阵转换器将矩阵l1转换成多项式其中x为多项式f1中的变量,f1为有限域GFp的多项式;
S4-1-3、使用多项式运算器计算多项式f1在有限域中的逆g1,其中其中xi在i为r时得到xr;
S4-1-4、使用多项式和矩阵转换器将g1转换成矩阵w1=[ω1,ω2,…,ωr];其中ω1至ωr是矩阵w1中的元素;然后使用矩阵轮转器对矩阵w1进行轮转处理,得到矩阵wi=[ωr-i+2,…,ωr,ω1,ω2,…,ωr-i+1],i=2,3,…,r;
S4-1-5、使用矩阵运算器生成矩阵然后计算det(W1),判断det(W1)=0是否成立,若是,则第一处理器重新随机生成一组随机数V1,然后回到步骤S4-1-1,若否,则进入步骤S4-2-1;
S4-2-1、陷门部件调用参数A1,Ci,Ei,r,v,使用矩阵运算器计算中间值矩阵K′1=[k′1,′2,…,k′v]=A1V1,k′1至k′v为矩阵K′1中的元素;
S4-2-2、使用矩阵轮转器对矩阵K′1进行轮转处理,得到矩阵K′i=[k′v-i+2,…,k′v,k′1,k′2,…,k′v-i+1],i=1,2,…,r;
S4-2-3、通过矩阵运算器计算通过矩阵运算器计算Q1=[q1,q2,…,qr],其中 为待签名的消息Y′=[y′1,y′2,…,y′m]为仿射变换后的结果矩阵中的元素;
S4-3-1、使用矩阵运算器计算矩阵W1和矩阵Q1的乘积,得到 其中h=v+r,至为矩阵W1和矩阵Q1的乘积后的矩阵中的元素;
S4-3-2、根据随机数V1和步骤S4-3-1获取到的矩阵生成矩阵
S4-4-1、陷门部件调用参数Br+1,Dr+1,s,使用矩阵运算器计算中间值矩阵其中l2,0至l2,s-1为矩阵l2中的元素;
S4-4-2、使用多项式和矩阵转换器将矩阵l2转换成多项式f2为有限域GFp的多项式;
S4-4-3、使用多项式运算器计算多项式f2在有限域中的逆g2,其中其中xi在i为s时得到xs;
S4-4-4、使用多项式和矩阵转换器将g2转换成矩阵其中至是矩阵u1中的元素;然后使用矩阵轮转器对矩阵u1进行轮转处理,得到矩阵
S4-4-5、使用矩阵运算器生成矩阵然后计算det(U2),判断det(U2)=0是否成立,若是,则第一处理器重新生成一组随机数V1,然后回到步骤S4-1-1,若否,则进入步骤S4-5-1;
S4-5-1、陷门部件调用私钥参数Ai,Ci,Ei,s,m,使用矩阵运算器计算中间值i=r+1,r+2,…,m,m=r+s;
S4-5-2、计算Q2=[q1,q2,…,qs],其中i=r+1,r+2,…,m;为待签名的消息Y′=[y′1,y′2,…,y′m]为仿射变换后的结果矩阵中的元素;
S4-6-1、使用矩阵运算器计算矩阵U2和矩阵Q2的乘积,得到其中n=h+s,至为矩阵U2和矩阵Q2的乘积后的矩阵中的元素;
S4-6-2、根据随机数V2和步骤S4-6-1获取到的矩阵生成矩阵矩阵V3即为陷门部件得到的解;
所述步骤S5中第二线性仿射变换部件在接收到陷门部件发送的解V3后,根据系数矩阵针对陷门部件发送的解进行仿射变换,得到:
将作为签名sig,将签名sig发送至第一存储器中存储。
更进一步的,将步骤S5中获取到签名及该签名对应的消息输入至签名验证系统,所述签名验证系统包括第二处理器和公钥变换部件;
所述第二处理器,用于接收公钥、签名及签名对应的消息签名,用于将公钥和签名发送至公钥变换部件;用于接收公钥变换部件返回的运算结果,将运算结果和消息进行比较,若运算结果和消息相等,则签名的验证结果为通过验证;其中公钥由随机生成的私钥和随机生成的私钥轮转得到的私钥生成;
所述公钥变换部件,用于将接收到的签名与公钥进行运算,然后将运算结果返回给第二处理器。
更进一步的,所述第二处理器包括第二调度器和第二存储器;
所述第二调度器连接选择开关,用于识别第二处理器所接收到的开状态信号和闭状态信号,通过选择开关控制第二处理器的工作状态;用于将存储在第一处理器中的数据调度至公钥变换部件;用于将签名验证结果发送给其他用户;
第二存储器,用于存储签名及签名对应的消息;用于存储公钥变换部件返回的运算结果。
更进一步的,所述步骤S1还包括以下步骤:针对随机生成的私钥参数进行轮转,然后根据随机生成的私钥参数及其轮转后获取的私钥参数生成公钥参数,并且将生成的公钥参数进行公布;
所述签名验证系统实现的签名验证方法具体如下:
S6、第二处理器接收公钥、签名及签名对应消息,并且将公钥和签名发送至公钥变换部件;
S7、公钥变换部件将接收到的签名与公钥进行运算,然后将运算结果返回给第二处理器;
S8、第二处理器接收到公钥变换部件发送的运算结果后,将运算结果和消息进行比较,若运算结果和消息相等,则签名的验证结果为通过验证。
更进一步的,所述步骤S1中生成公钥的步骤具体如下:
S1-5、初始化中心映射F=(F1,F2,…,Fm),其中Fi的维度为(n+1)×(n+1),i=1,2,3,…,m;其中
其中
当1≤i≤r时,矩阵Ai获取过程如下:
首先根据步骤S1-4中得到维度为v×v的矩阵A1,计算A1的转置得到矩阵
其中a1至ar为矩阵中的元素;
然后对矩阵进行轮转处理后得到矩阵
最后计算矩阵的转置获取到矩阵Ai,i=2,3,…,r;
当r+1≤i≤m时,矩阵Ai即为步骤S1-4中随机生成的s组维度为h×h的矩阵Ar+j;
当1≤i≤r时,矩阵Bi获取过程如下:
首先根据步骤S1-4得到维度为v×r的矩阵B1:
B1=[b1,b2,…,br];其中b1至br为矩阵B1中的元素;
然后对矩阵B1进行轮转处理后得到矩阵Bi:
Bi=[br-i+2,…,br,b1,…,br-i+1],i=2,3,…,r;
当r+1≤i≤m时,矩阵Bi获取过程如下:
首先根据步骤S1-4得到维度为h×s矩阵Br+1:
Br+1=[b′1,b′2…,b′s];其中b′1至b′s为矩阵Br+1中的元素;
然后对矩阵Br+1进行轮转处理得到矩阵Bi:
Bi=[b′s-i+2,…,b′s,b′1,…,b′s-i+1],i=r+2,r+3,…,m;
其中矩阵Ci即为步骤S1-4随机生成的r组维度为v×1的矩阵Ci;
当1≤i≤r时,矩阵Di获取过程如下:
首先根据步骤S1-4得到维度为r×1的矩阵D1,计算D1的转置得到矩阵
其中d1至dr为矩阵中的元素;
然后对矩阵进行轮转处理后得到矩阵
最后计算矩阵的转置获取到矩阵Di,i=2,3,…,r;
当r+1≤i≤m时,矩阵Di获取过程如下:
首先根据步骤S1-4得到维度为s×1的矩阵Dr+1,计算Dr+1的转置得到矩阵
其中d′1至d′s为矩阵中的元素;
然后对矩阵进行轮转处理得到
最后计算矩阵的转置获取到矩阵Di,i=r+2,r+3,…,m;
其中矩阵Ei即为步骤S1-4随机生成m个常数Ek,k=1,2,3,…,m;
S1-6、计算公钥其中具体计算过程如下:
首先计算公钥的中间值P′:
P′=[P′1,P′2,…,P′m];
其中P′i=L′2 T×Fi×L′2,i=1,2,3,…,m;,Lc为随机值;
然后根据中间值P′计算出公钥P为:
P=L1×P′=[P1,P2,…,Pm];
其中P1至Pm为公钥P中各元素;
所述步骤S7中公钥变换部件对签名与公钥进行运算的具体过程如下:
将签名sig=[x′1,x′2,…,x′n]带入公钥P=[P1,P2,…,Pm]中,得到:
…
得到Z=[z1,z2,…,zm]作为运算结果;
所述步骤S8中,第二处理器将公钥变换部件返回的运算结果Z=[z1,z2,…,zm]与消息Y=[y1,y2,…,ym]进行比较,若两者相等,则签名sig=[x′1,x′2,…,x′n]验证通过。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明签名系统由第一处理器、第一线性仿射变换部件、陷门部件和第二线性仿射变换部件组成,通过第一处理器生成随机数,以及通过第一处理器接收待签名的消息并且发送至第一线性仿射变换部件,第一线性仿射变换部件对接收到的待签名的消息进行仿射变换后发送给陷门部件,陷门部件根据私钥参数生成多变量多项式方程组,并且将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,第二线性仿射变换部件对陷门部件得到的解进行仿射变换变换后即得到签名;本发明在保证签名不可伪造的情况下,加快了多变量公钥签名的速度,同时降低私钥的存储量。
(2)本发明签名系统签名过程中使用了轮转方法,对私钥的部分参数进行循环生成,而且保证了不破坏MPKC原本的安全性。陷门部件在获取多变量多项式方程组时所采用的代表的是方程组变量的系数,虽然系数的值受这三个值影响,但是最后带入的是一个确定的值,而且系数矩阵的特征值不能为0;而对于方程来说是常量,因此陷门部件生成的多变量多项式的方程组必然有解。另外陷门部件在生成V2未确定的值时,私钥参数Bi,Di,Ai进行轮转生成,而私钥参数Ci,Ei没用轮转生成,这样保证了陷门部件中生成的多变量多项式的整个方程组不是轮转的,因此不能通过得到某一项方程组的值而得到所有的方程组的值,因此保障了本发明签名的安全性。
(3)本发明使用的签名方法加快了生成签名的速度。在进行轮转的地方和现有技术相比,轮转的只需要做简单的n-1次向量交换,而现有技术的做法都是要进行有限域上的矩阵乘法,相差速度显而易见,特别地,根据式子Xj=WjQj,在处理时,本发明是先求此种子向量,然后转换为多项式求逆再轮转生成Wj,而一般技术做法是先求出组合成再求逆,本发明根据轮转的特性,一个轮转的矩阵其逆也是轮转的,然后通过转换成求多项式f在扩域上的逆g而代替了矩阵求逆的过程,使得最后生成Wj总的时间复杂度是O(n(logn)2),而现有技术中时间复杂度是O(n3)。
(4)本发明使用的方法降低了私钥的存储大小,本发明自需要存在随机生成的私钥参数,对于发生轮转的私钥参数只需要使用矩阵轮转器就能生成对应的参数,所以现有技术需要存储私钥参数A,B,C,D,E各m组以及系数矩阵本发明只需存储m组私钥参数C,E、两组私钥参数B,D,s+1组私钥参数A以及系数矩阵大大降低了私钥的存储空间。
(5)本发明中所使用的多变量公钥通过私钥以及轮转生成的私钥生成的,公钥中虽然部分系数组成是轮转的,但是中心映射F整体不是轮转的,在经过线性仿射后公钥整体更加体现不出轮转的性质,所以其安全性是有保障的。
附图说明
图1是本发明中多变量公钥的签名系统的结构框图。
图2是本发明中签名验证系统的结构框图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例公布了一种多变量公钥的签名系统,如图1所示,包括第一处理器、第一线性仿射变换部件、陷门部件和第二线性仿射变换部件;
所述第一处理器,用于接收待签名的消息并且将接收到的待签名的消息发送至第一线性仿射变换部件,用于生成随机数并且将生成的随机数发送至陷门部件;
所述第一线性仿射变换部件,用于对接收到的待签名的消息进行仿射变换计算,然后将仿射变换计算结果发送至陷门部件;
所述陷门部件,用于根据私钥参数生成多变量多项式方程组,用于将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,并且将得到的解传送给第二线性仿射变换部件;其中私钥包括随机生成的私钥以及随机生成的私钥轮转得到的私钥;
所述第二线性仿射变换部件,用于对陷门部件发送的解进行仿射变换计算得到签名。
如图1中所示,本实施例的第一处理器包第一调度器、第一存储器和随机数生成器;
第一调度器连接选择开关,用于识别第一处理器所接收到的开状态信号和闭状态信号,通过选择开关控制第一处理器的工作状态;用于将存储在第一处理器中的数据调度至第一线性仿射变换部件、陷门部件和第二线性仿射变换部件;用于将签名发送给其他用户;
第一存储器,用于存储第一处理器中的数据;用于存储签名;
随机数生成器,用于随机生成随机数。
如图1中所示,本实施例的陷门部件包括矩阵轮转器、矩阵运算器、多项式和矩阵转换器以及多项式运算器;
矩阵运算器,用于生成矩阵;用于对矩阵进行基本运算和转换;
多项式和矩阵转换器,用于将矩阵转换为多项式;用于将多项式转换成矩阵;
多项式运算器,用于求取多项式在有限域中的逆;用于对多项式进行基本运算;
矩阵轮转器,用于对矩阵进行轮转。
本实施例中还公布了一种上述多变量公钥的签名系统实现的多变量公钥的签名方法,步骤如下:
S1、系统初始化:随机生成私钥参数,并且将私钥参数存储在第一处理器中,然后针对随机生成的私钥参数进行轮转,根据随机生成的私钥参数及其轮转后获取的私钥参数生成公钥参数。其中初始化过程中随机生成的私钥参数存储于第一处理器中,而生成的公钥参数进行公布。
本步骤中系统初始化随机生成私钥参数的具体步骤如下:
S1-1、设定系统中所有部件都是建立在一个阶为p的有限域上,其中p是一个奇素数,记此有限域为GFp;
S1-2、根据安全级别选择系数v,r,s,其中v是随机数的个数,r是第一次生成签名的长度,s是第二次生成签名的长度,此外h=v+r,n=h+s,m=r+s,m是签名的总长度;
S1-3、随机生成可逆的系数矩阵和将系数矩阵用于第一线性仿射变换部件中;将系数矩阵用于第二线性仿射变换部件中;
S1-4、生成如下私钥参数:随机生成一组维度为v×v的矩阵A1,随机生成一组维度为v×r的矩阵B1,随机生成r组维度为v×1的矩阵Ci,随机生成一组维度为r×1的矩阵D1,随机生成s组维度为h×h的矩阵Ar+j,随机生成一组维度为h×s矩阵Br+1,随机生成s组维度为h×1矩阵Cr+j,,随机生成一组维度为s×1的矩阵Dr+1,随机生成m个常数Ek,其中i=1,2,3,…,r,j=1,2,3,…,s,k=1,2,3,…,m;
本步骤系统初始化中公钥参数的生成过程具体如下;
S1-5、初始化中心映射F=(F1,F2,…,Fm),其中映射中Fi的维度为(n+1)×(n+1),i=1,2,3,…,m;其中
其中
当1≤i≤r时,矩阵Ai获取过程如下:
首先根据步骤S1-4中得到维度为v×v的矩阵A1,计算A1的转置得到矩阵
其中a1至ar为矩阵中的元素;
然后对矩阵进行轮转处理后得到矩阵
最后计算矩阵的转置获取到矩阵Ai,i=2,3,…,r;
当r+1≤i≤m时,矩阵Ai即为步骤S1-4中随机生成的s组维度为h×h的矩阵Ar+j;
当1≤i≤r时,矩阵Bi获取过程如下:
首先根据步骤S1-4得到维度为v×r的矩阵B1:
B1=[b1,b2,…,br];其中b1至br为矩阵B1中的元素;
然后对矩阵B1进行轮转处理后得到矩阵Bi:
Bi=[br-i+2,…,br,b1,…,br-i+1],i=2,3,…,r;
当r+1≤i≤m时,矩阵Bi获取过程如下:
首先根据步骤S1-4得到维度为h×s矩阵Br+1:
Br+1=[b′1,b′2…,b′s];其中b′1至b′s为矩阵Br+1中的元素;
然后对矩阵Br+1进行轮转处理得到矩阵Bi:
Bi=[b′s-i+2,…,b′s,b′1,…,b′s-i+1],i=r+2,r+3,…,m;
其中矩阵Ci即为步骤S1-4随机生成的r组维度为v×1的矩阵Ci;
当1≤i≤r时,矩阵Di获取过程如下:
首先根据步骤S1-4得到维度为r×1的矩阵D1,计算D1的转置得到矩阵
其中d1至dr为矩阵中的元素;
然后对矩阵进行轮转处理后得到矩阵
最后计算矩阵的转置获取到矩阵Di,i=2,3,…,r;
当r+1≤i≤m时,矩阵Di获取过程如下:
首先根据步骤S1-4得到维度为s×1的矩阵Dr+1,计算Dr+1的转置得到矩阵
其中d′1至d′s为矩阵中的元素;
然后对矩阵进行轮转处理得到
最后计算矩阵的转置获取到矩阵Di,i=r+2,r+3,…,m;
其中矩阵Ei即为步骤S1-4随机生成m个常数Ek,k=1,2,3,…,m;
S1-6、计算公钥其中具体计算过程如下:
首先计算公钥的中间值P′:
P′=[P′1,P′2,…,P′m];
其中P′i=L′2 T×Fi×L′2,i=1,2,3,…,m;,Lc为随机值;
然后根据中间值P′计算出公钥P为:
P=L1×P′=[P1,P2,…,Pm];
其中步骤S1-2生成的参数v,r,s,h,n、步骤S1-3生成的系数矩阵和以及步骤S1-4生成的各私钥参数均存储于第一处理器的第一存储器中。而步骤S1-6中生成的公钥P进行公布。在本实施例中第一处理器通过第一调度器将步骤S1-2生成的参数v,r,s,h,n,以及步骤S1-4生成的各私钥参数调度至陷门部件中,将步骤S1-3生成的系数矩阵和分别对应调度至第一线性仿射变换部件和第二线性仿射变换部件。
S2、第一处理器接收待签名的消息,然后将待签名的消息发送至第一线性仿射变换部件。
S3、第一线性仿射变换部件对接收到的待签名的消息进行仿射变换计算,然后将仿射变换结果发送至陷门部件;同时第一处理器中随机生成一组随机数发送至陷门部件。
在本步骤中第一线性仿射变换部件在接收到的待签名的消息后,根据系数矩阵针对待签名的消息进行仿射变换,得到:
其中Y′=[y′1,y′2,…,y′m]为待签名的消息,表示待签名的消息仿射变换后的结果。
S4、陷门部件根据私钥参数生成多变量多项式方程组,然后将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,最后将得到的解传送给第二线性仿射变换部件;具体过程如下:
S4-1-1、陷门部件调用参数B1,D1,r,使用矩阵运算器计算出中间值矩阵其中l1,0至l1,r-1为中间值矩阵l1中的元素;
S4-1-2、使用多项式和矩阵转换器将矩阵l1转换成多项式其中x为多项式f1中的变量,f1为有限域GFp的多项式;
S4-1-3、使用多项式运算器计算多项式f1在有限域中的逆g1,其中其中xi在i为r时得到xr;
S4-1-4、使用多项式和矩阵转换器将g1转换成矩阵w1=[ω1,ω2,…,ωr];其中ω1至ωr是矩阵w1中的元素;然后使用矩阵轮转器对矩阵w1进行轮转处理,得到矩阵wi=[ωr-i+2,…,ωr,ω1,ω2,…,ωr-i+1],i=2,3,…,r;
S4-1-5、使用矩阵运算器生成矩阵然后计算det(W1),判断det(W1)=0是否成立,若是,则第一处理器重新随机生成一组随机数V1,然后回到步骤S4-1-1,若否,则进入步骤S4-2-1;
S4-2-1、陷门部件调用参数A1,Ci,Ei,r,v,使用矩阵运算器计算中间值矩阵K′1=[k′1,k′2,…,k′v]=A1V1,k′1至k′v为矩阵K′1中的元素;
S4-2-2、使用矩阵轮转器对矩阵K′1进行轮转处理,得到矩阵K′i=[k′v-i+2,…,k′v,k′1,k′2,…,k′v-i+1],i=1,2,…,r;
S4-2-3、通过矩阵运算器计算通过矩阵运算器计算Q1=[q1,q2,…,qr],其中 为待签名的消息Y′=[y′1,y′2,…,y′m]为仿射变换后的结果矩阵中的元素;
S4-3-1、使用矩阵运算器计算矩阵W1和矩阵Q1的乘积,得到 其中h=v+r,至为矩阵W1和矩阵Q1的乘积后的矩阵中的元素;
S4-3-2、根据随机数V1和步骤S4-3-1获取到的矩阵生成矩阵
S4-4-1、陷门部件调用参数Br+1,Dr+1,s,使用矩阵运算器计算中间值矩阵其中l2,0至l2,s-1为矩阵l2中的元素;
S4-4-2、使用多项式和矩阵转换器将矩阵l2转换成多项式f2为有限域GFp的多项式;
S4-4-3、使用多项式运算器计算多项式f2在有限域中的逆g2,其中其中xi在i为s时得到xs;
S4-4-4、使用多项式和矩阵转换器将g2转换成矩阵其中至是矩阵u1中的元素;然后使用矩阵轮转器对矩阵u1进行轮转处理,得到矩阵
S4-4-5、使用矩阵运算器生成矩阵然后计算det(U2),判断det(U2)=0是否成立,若是,则第一处理器重新生成一组随机数V1,然后回到步骤S4-1-1,若否,则进入步骤S4-5-1;
S4-5-1、陷门部件调用私钥参数Ai,Ci,Ei,s,m,使用矩阵运算器计算中间值i=r+1,r+2,…,m,m=r+s;
S4-5-2、计算Q2=[q1,q2,…,qs],其中 为待签名的消息Y′=[y′1,y′2,…,y′m]为仿射变换后的结果矩阵中的元素;
S4-6-1、使用矩阵运算器计算矩阵U2和矩阵Q2的乘积,得到其中至为矩阵U2和矩阵Q2的乘积后的矩阵中的元素;
S4-6-2、根据随机数V2和步骤S4-6-1获取到的矩阵生成矩阵矩阵V3即为陷门部件得到的解。
S5、第二线性仿射变换部件接收到陷门部件发送的解后,对其进行仿射变换计算,最终得到签名。具体为:第二线性仿射变换部件在接收到陷门部件发送的解V3后,根据系数矩阵针对陷门部件发送的解进行仿射变换,得到:
将作为签名sig,将签名sig发送至第一存储器中存储。
本实施例中上述步骤S5获取到签名及该签名对应的消息输入至签名验证系统,通过签名验证系统对签进行验证,如图2所示,本实施例的签名验证系统包括第二处理器和公钥变换部件。
第二处理器,用于接收公钥、签名及签名对应的消息,用于将公钥和签名发送至公钥变换部件;用于接收公钥变换部件返回的运算结果,将运算结果和消息进行比较,若运算结果和消息相等,则签名的验证结果为通过验证;其中公钥由随机生成的私钥和随机生成的私钥轮转得到的私钥生成。
公钥变换部件,用于将接收到的签名与公钥进行运算,然后将运算结果返回给第二处理器。
如图2所示,本实施例中第二处理器包括第二调度器和第二存储器;
第二调度器连接选择开关,用于识别第二处理器所接收到的开状态信号和闭状态信号,通过选择开关控制第二处理器的工作状态;用于将存储在第一处理器中的数据调度至公钥变换部件;用于将签名验证结果发送给其他用户;
第二存储器,用于存储签名及签名对应的消息;用于存储公钥变换部件返回的运算结果。
本实施例中通过上述签名验证系统实现签名的验证过程,具体如下:
S6、第二处理器接收公钥、消息及消息对应的签名,并且将公钥和签名发送至公钥变换部件。
S7、公钥变换部件将接收到的签名与公钥进行运算,然后将运算结果返回给第二处理器;其中本步骤中签名与公钥进行运算的具体过程如下:
将签名sig=[x′1,x′2,…,x′n]带入公钥P=[P1,P2,…,Pm]中,得到:
…
得到Z=[z1,z2,…,zm]作为运算结果。
S8、第二处理器接收到公钥变换部件发送的运算结果后,将运算结果和消息进行比较,若运算结果和消息相等,则签名的验证结果为通过验证。具体如下:
第二处理器将公钥变换部件返回的运算结果Z=[z1,z2,…,zm]与消息Y=[y1,y2,…,ym]进行比较,若两者相等,则输出1,表示签名sig=[x′1,y′2,…,x′n]验证通过,若两者不相等,则输出0,表示签名sig=[x′1,x′2…,x′n]验证不通过。
本实施例中签名验证系统的第二处理器的第二调度器连接的选择开关和签名系统中的第一处理器的第一调度器所连接的选择开关为同一个,通过该选择开关控制第一处理器和第二处理器的工作状态,当选择开关开状态时,签名系统工作,此时通过步骤S2至S5生成消息对应的签名,当选择开关为闭状态时,签名验证系统工作,此时通过步骤S6至S8对步骤S5中生成的消息的签名进行验证。
以下为采用本实施例上述签名系统的签名方法和采用上述签名验证系统的的签名验证方法具体例子。
在签名方法上,初始化如下:
在步骤S1-1中设定系统中所有部件都是建立在一个阶为p=31的有限域上,这些元素分别为{0,1,…,30},其中p是一个奇素数,记此有限域为GFp;其中域上定义的加法和乘法均为整数的加法和乘法之后mod 31。
在步骤S1-2中选取v=3,r=2,s=1,得出h=5,n=6,m=3;
在步骤S1-3中随机生成可逆的系数矩阵和分别为:
在步骤S1-4中生成如下私钥参数:
D3=[18]
E1=[3],E2=[13],E3=[1]
在步骤S1-5中轮转生成A2,B2;
在步骤S1-6中计算公钥P:可得:
在上述系统初始化后,对待签名的消息为Y′=[21,25,19]生成签名,具体如下:
在步骤S2第一处理器接收待签名的消息为Y′=[21,25,19],然后将待签名的消息Y′=[21,25,19]发送至第一线性仿射变换部件。
在步骤S3中第一线性仿射变换部件在接收到的待签名的消息Y′=[21,25,19]后,根据系数矩阵针对待签名的消息进行仿射变换,得到:然后将发送至陷门部件。同时第一处理器中随机生成一组随机数V1=[14,29,21]发送至陷门部件
在步骤S4-1-1至步骤S4-1-5中计算生成多项式f1=3+10x,计算得到向量w1=[17,26],生成det(W1)≠0,继续下一步。
在步骤S4-2-1至S4-2-3中计算中间值K′1=[k′1,k′2,…,k′v]=A1V1=[5,7,26];轮转生成K′i,最后计算Q1=[q1,q2]=[0,8]。
在步骤S4-3-1至SS4-3-2中计算得出V2=[14,29,21,22,12];
在步骤S4-4-1至S4-4-5中计算中生成多项式f2=7,计算得到向量u1=[9],生成U2=[9],det(U2)≠0,继续下一步;
在步骤S4-5-1至S4-5-2中计算Q2=[17];
在步骤S4-6-1至S4-6-2中计算得出V3=[14,29,21,22,12,29];
在步骤S5中将V3输入到第二线性仿射部件中计算得出签名
在以下步骤S6和S7中实现对消息Y=[21,25,19]对应的签名sig=[9,22,12,5,4,16]进行验证,具体如下:
在步骤S6中第二处理器接收公钥P=[P1,P2,P3]、消息Y=[21,25,19]及消息对应的签名sig=[9,22,12,5,4,16],并且将公钥P发送至公钥变换部件;
在步骤S7中公钥部件将签名sig=[9,22,12,5,4,16]带入公钥P=[P1,P2,P3]中进行运算,得到
得到Z=[21,25,19]作为运算结果,并且返回给第二处理器。
在步骤S8中第二处理器接收到公钥变换部件发送的运算结果Z=[21,25,19]后,将运算结果Y=[21,25,19]和消息Y=[21,25,19]进行比较,比较后发现两则相同,则第二处理器输出“1”,表示消息Y=[21,25,19]对应的签名sig=[9,22,12,5,4,16]验证通过。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (8)
1.一种多变量公钥的签名系统实现的多变量公钥的签名方法,所述多变量公钥的签名系统包括第一处理器、第一线性仿射变换部件、陷门部件和第二线性仿射变换部件;所述第一处理器,用于接收待签名的消息并且将接收到的待签名的消息发送至第一线性仿射变换部件,用于生成随机数并且将生成的随机数发送至陷门部件;所述第一线性仿射变换部件,用于对接收到的待签名的消息进行仿射变换计算,然后将仿射变换计算结果发送至陷门部件;所述陷门部件,用于根据私钥参数生成多变量多项式方程组,用于将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,并且将得到的解传送给第二线性仿射变换部件;所述第二线性仿射变换部件,用于对陷门部件发送的解进行仿射变换计算得到签名;其特征在于,所述多变量公钥的签名方法的步骤如下:
S1、系统初始化:随机生成私钥参数,并且存储于第一处理器中;
S2、第一处理器接收待签名的消息,然后将待签名的消息发送至第一线性仿射变换部件;
S3、第一线性仿射变换部件对接收到的待签名的消息进行仿射变换计算,然后将仿射变换结果发送至陷门部件;同时第一处理器中随机生成一组随机数发送至陷门部件;
S4、陷门部件根据私钥参数生成多变量多项式方程组,然后将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解,最后将得到的解传送给第二线性仿射变换部件;
S5、第二线性仿射变换部件接收到陷门部件发送的解后,对其进行仿射变换计算,最终得到签名;
所述步骤S1中系统初始化的具体步骤如下:
S1-1、设定系统中所有部件都是建立在一个阶为p的有限域上,其中p是一个奇素数,记此有限域为GFp;
S1-2、根据安全级别选择系数v,r,s,其中v是随机数的个数,r是第一次生成签名的长度,s是第二次生成签名的长度,此外h=v+r,n=h+s,m=r+s,m是签名的总长度;
S1-3、随机生成可逆的系数矩阵和将系数矩阵写入第一线性仿射变换部件中;将系数矩阵写入第二线性仿射变换部件中;
S1-4、生成如下私钥参数:随机生成一组维度为v×v的矩阵A1,随机生成一组维度为v×r的矩阵B1,随机生成r组维度为v×1的矩阵Ci,随机生成一组维度为r×1的矩阵D1,随机生成s组维度为h×h的矩阵Ar+j,随机生成一组维度为h×s矩阵Br+1,随机生成s组维度为h×1矩阵Cr+j,,随机生成一组维度为s×1的矩阵Dr+1,随机生成m个常数Ek,其中i=1,2,3,…,r,j=1,2,3,…,s,k=1,2,3,…,m。
2.根据权利要求1所述的多变量公钥的签名方法,其特征在于,
步骤S3中第一线性仿射变换部件在接收到的待签名的消息后,根据系数矩阵针对待签名的消息进行仿射变换,得到:
其中Y′=[y′1,y′2,…,y′m]为待签名的消息,表示待签名的消息仿射变换后的结果;
所述步骤S3中第一处理器随机生成一组随机数并且发送给陷门部件;
步骤S4中陷门部件根据私钥参数生成多变量多项式方程组,并且将接收到的随机数和仿射变换结果代入至多变量多项式方程组中进行求解的具体过程如下:
S4-1-1、陷门部件调用参数B1,D1,r,使用矩阵运算器计算出中间值矩阵其中l1,0至l1,r-1为中间值矩阵l1中的元素;
S4-1-2、使用多项式和矩阵转换器将矩阵l1转换成多项式其中x为多项式f1中的变量,f1为有限域GFp的多项式;
S4-1-3、使用多项式运算器计算多项式f1在有限域中的逆g1,其中其中xi在i为r时得到xr;
S4-1-4、使用多项式和矩阵转换器将g1转换成矩阵w1=[ω1,ω2,…,ωr];其中ω1至ωr是矩阵w1中的元素;然后使用矩阵轮转器对矩阵w1进行轮转处理,得到矩阵wi=[ωr-i+2,…,ωr,ω1,ω2,…,ωr-i+1],i=2,3,…,r;
S4-1-5、使用矩阵运算器生成矩阵然后计算det(W1),判断det(W1)=0是否成立,若是,则第一处理器重新随机生成一组随机数V1,然后回到步骤S4-1-1,若否,则进入步骤S4-2-1;
S4-2-1、陷门部件调用参数A1,Ci,Ei,r,v,使用矩阵运算器计算中间值矩阵K′1=[k′1,k′2,…,k′v]=A1V1,k′1至k′v为矩阵K′1中的元素;
S4-2-2、使用矩阵轮转器对矩阵K′1进行轮转处理,得到矩阵K′i=[k′v-i+2,…,k′v,k′1,k′2,…,k′v-i+1],i=1,2,…,r;
S4-2-3、通过矩阵运算器计算通过矩阵运算器计算Q1=[q1,q2,…,qr],其中 为待签名的消息Y′=[y1′,y′2,…,y′m]为仿射变换后的结果矩阵中的元素;
S4-3-1、使用矩阵运算器计算矩阵W1和矩阵Q1的乘积,得到 其中h=v+r,至为矩阵W1和矩阵Q1的乘积后的矩阵中的元素;
S4-3-2、根据随机数V1和步骤S4-3-1获取到的矩阵生成矩阵
S4-4-1、陷门部件调用参数Br+1,Dr+1,s,使用矩阵运算器计算中间值矩阵其中l2,0至l2,s-1为矩阵l2中的元素;
S4-4-2、使用多项式和矩阵转换器将矩阵l2转换成多项式f2为有限域GFp的多项式;
S4-4-3、使用多项式运算器计算多项式f2在有限域中的逆g2,其中其中xi在i为s时得到xs;
S4-4-4、使用多项式和矩阵转换器将g2转换成矩阵其中至是矩阵u1中的元素;然后使用矩阵轮转器对矩阵u1进行轮转处理,得到矩阵
S4-4-5、使用矩阵运算器生成矩阵然后计算det(U2),判断det(U2)=0是否成立,若是,则第一处理器重新生成一组随机数V1,然后回到步骤S4-1-1,若否,则进入步骤S4-5-1;
S4-5-1、陷门部件调用私钥参数Ai,Ci,Ei,s,m,使用矩阵运算器计算中间值i=r+1,r+2,…,m,m=r+s;
S4-5-2、计算Q2=[q1,q2,…,qs],其中i=r+1,r+2,…,m;为待签名的消息Y′=[y′1,y′2,…,y′m]为仿射变换后的结果矩阵中的元素;
S4-6-1、使用矩阵运算器计算矩阵U2和矩阵Q2的乘积,得到其中n=h+s,至为矩阵U2和矩阵Q2的乘积后的矩阵中的元素;
S4-6-2、根据随机数V2和步骤S4-6-1获取到的矩阵生成矩阵矩阵V3即为陷门部件得到的解;
所述步骤S5中第二线性仿射变换部件在接收到陷门部件发送的解V3后,根据系数矩阵针对陷门部件发送的解进行仿射变换,得到:
将作为签名sig,将签名sig发送至第一存储器中存储。
3.根据权利要求1所述的多变量公钥的签名方法,其特征在于,将步骤S5中获取到签名及该签名对应的消息输入至签名验证系统,所述签名验证系统包括第二处理器和公钥变换部件;
所述第二处理器,用于接收公钥、签名及签名对应的消息签名,用于将公钥和签名发送至公钥变换部件;用于接收公钥变换部件返回的运算结果,将运算结果和消息进行比较,若运算结果和消息相等,则签名的验证结果为通过验证;其中公钥由随机生成的私钥和随机生成的私钥轮转得到的私钥生成;
所述公钥变换部件,用于将接收到的签名与公钥进行运算,然后将运算结果返回给第二处理器。
4.根据权利要求3所述的多变量公钥的签名方法,其特征在于,所述第二处理器包括第二调度器和第二存储器;
所述第二调度器连接选择开关,用于识别第二处理器所接收到的开状态信号和闭状态信号,通过选择开关控制第二处理器的工作状态;用于将存储在第一处理器中的数据调度至公钥变换部件;用于将签名验证结果发送给其他用户;
第二存储器,用于存储签名及签名对应的消息;用于存储公钥变换部件返回的运算结果。
5.根据权利要求3所述的多变量公钥的签名方法,其特征在于,所述步骤S1还包括以下步骤:针对随机生成的私钥参数进行轮转,然后根据随机生成的私钥参数及其轮转后获取的私钥参数生成公钥参数,并且将生成的公钥参数进行公布;
所述签名验证系统实现的签名验证方法具体如下:
S6、第二处理器接收公钥、签名及签名对应消息,并且将公钥和签名发送至公钥变换部件;
S7、公钥变换部件将接收到的签名与公钥进行运算,然后将运算结果返回给第二处理器;
S8、第二处理器接收到公钥变换部件发送的运算结果后,将运算结果和消息进行比较,若运算结果和消息相等,则签名的验证结果为通过验证。
6.根据权利要求5所述的多变量公钥的签名方法,其特征在于,
所述步骤S1中生成公钥的步骤具体如下:
S1-5、初始化中心映射F=(F1,F2,…,Fm),其中Fi的维度为(n+1)×(n+1),i=1,2,3,…,m;其中
其中
当1≤i≤r时,矩阵Ai获取过程如下:
首先根据步骤S1-4中得到维度为v×v的矩阵A1,计算A1的转置得到矩阵
其中a1至ar为矩阵中的元素;
然后对矩阵进行轮转处理后得到矩阵
最后计算矩阵的转置获取到矩阵Ai,i=2,3,…,r;
当r+1≤i≤m时,矩阵Ai即为步骤S1-4中随机生成的s组维度为h×h的矩阵Ar+j;
当1≤i≤r时,矩阵Bi获取过程如下:
首先根据步骤S1-4得到维度为v×r的矩阵B1:
B1=[b1,b2,…,br];其中b1至br为矩阵B1中的元素;
然后对矩阵B1进行轮转处理后得到矩阵Bi:
Bi=[br-i+2,…,br,b1,…,br-i+1],i=2,3,…,r;
当r+1≤i≤m时,矩阵Bi获取过程如下:
首先根据步骤S1-4得到维度为h×s矩阵Br+1:
Br+1=[b′1,b′2,…,b′s];其中b′1至b′s为矩阵Br+1中的元素;
然后对矩阵Br+1进行轮转处理得到矩阵Bi:
Bi=[b′s-i+2,…,b′s,b′1,…,b′s-i+1],i=r+2,r+3,…,m;
其中矩阵Ci即为步骤S1-4随机生成的r组维度为v×1的矩阵Ci;
当1≤i≤r时,矩阵Di获取过程如下:
首先根据步骤S1-4得到维度为r×1的矩阵D1,计算D1的转置得到矩阵
其中d1至dr为矩阵中的元素;
然后对矩阵进行轮转处理后得到矩阵
最后计算矩阵的转置获取到矩阵Di,i=2,3,…,r;
当r+1≤i≤m时,矩阵Di获取过程如下:
首先根据步骤S1-4得到维度为s×1的矩阵Dr+1,计算Dr+1的转置得到矩阵
其中d′1至d′s为矩阵中的元素;
然后对矩阵进行轮转处理得到
最后计算矩阵的转置获取到矩阵Di,i=r+2,r+3,…,m;
其中矩阵Ei即为步骤S1-4随机生成m个常数Ek,k=1,2,3,…,m;
S1-6、计算公钥其中具体计算过程如下:
首先计算公钥的中间值P′:
P′=[P′1,p′2,…,p′m];
其中P′i=L′2 T×Fi×L′2,i=1,2,3,…,m;,Lc为随机值;
然后根据中间值P′计算出公钥P为:
P=L1×P′=[P1,P2,…,Pm];
其中P1至Pm为公钥P中各元素;
所述步骤S7中公钥变换部件对签名与公钥进行运算的具体过程如下:
将签名sig=[x′1,x′2,…,x′n]带入公钥P=[P1,P2,…,Pm]中,得到:
…
得到Z=[z1,z2,…,zm]作为运算结果;
所述步骤S8中,第二处理器将公钥变换部件返回的运算结果Z=[z1,z2,…,zm]与消息Y=[y1,y2,…,ym]进行比较,若两者相等,则签名sig=[x′1,x′2,…,x′n]验证通过。
7.根据权利要求1所述的多变量公钥的签名方法,其特征在于,所述第一处理器包第一调度器、第一存储器和随机数生成器;
所述第一调度器连接选择开关,用于识别第一处理器所接收到的开状态信号和闭状态信号,通过选择开关控制第一处理器的工作状态;用于将存储在第一处理器中的数据调度至第一线性仿射变换部件、陷门部件和第二线性仿射变换部件;用于将签名发送给其他用户;
第一存储器,用于存储第一处理器中的数据;用于存储签名;
随机数生成器,用于随机生成随机数。
8.根据权利要求1所述的多变量公钥的签名方法,其特征在于,所述陷门部件包括矩阵轮转器、矩阵运算器、多项式和矩阵转换器以及多项式运算器;
矩阵运算器,用于生成矩阵;用于对矩阵进行基本运算和转换;
多项式和矩阵转换器,用于将矩阵转换为多项式;用于将多项式转换成矩阵;
多项式运算器,用于求取多项式在有限域中的逆;用于对多项式进行基本运算;
矩阵轮转器,用于对矩阵进行轮转。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610815728.9A CN106330463B (zh) | 2016-09-09 | 2016-09-09 | 一种多变量公钥的签名系统和方法 |
PCT/CN2016/108691 WO2018045647A1 (zh) | 2016-09-09 | 2016-12-06 | 一种多变量公钥的签名系统和方法 |
SG11201902079RA SG11201902079RA (en) | 2016-09-09 | 2016-12-06 | Signature system and method for multivariable public key |
AU2016422576A AU2016422576B2 (en) | 2016-09-09 | 2016-12-06 | Multivariable public key signature system and method |
GB1902689.7A GB2572068B (en) | 2016-09-09 | 2016-12-06 | Signature system and method for multivariable public key |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610815728.9A CN106330463B (zh) | 2016-09-09 | 2016-09-09 | 一种多变量公钥的签名系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106330463A CN106330463A (zh) | 2017-01-11 |
CN106330463B true CN106330463B (zh) | 2019-08-20 |
Family
ID=57787005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610815728.9A Active CN106330463B (zh) | 2016-09-09 | 2016-09-09 | 一种多变量公钥的签名系统和方法 |
Country Status (5)
Country | Link |
---|---|
CN (1) | CN106330463B (zh) |
AU (1) | AU2016422576B2 (zh) |
GB (1) | GB2572068B (zh) |
SG (1) | SG11201902079RA (zh) |
WO (1) | WO2018045647A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108880816A (zh) * | 2017-05-15 | 2018-11-23 | 深圳职业技术学院 | 一种彩虹签名装置 |
CN109525393A (zh) * | 2017-09-20 | 2019-03-26 | 深圳职业技术学院 | 一种抗量子计算攻击的数字签名方法、验证方法及系统 |
CN108989056A (zh) * | 2018-09-28 | 2018-12-11 | 深圳职业技术学院 | 一种基于掩码的彩虹签名装置和方法 |
CN111211897B (zh) * | 2019-12-20 | 2021-11-09 | 河南大学 | 一种基于随机预言模型的时间控制加密安全增强方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103490883A (zh) * | 2013-09-17 | 2014-01-01 | 华南理工大学 | 一种多变量公钥加密/解密系统及加密/解密方法 |
CN103490897A (zh) * | 2013-09-17 | 2014-01-01 | 华南理工大学 | 一种多变量公钥签名/验证系统及签名/验证方法 |
CN103780382A (zh) * | 2014-01-13 | 2014-05-07 | 华南理工大学 | 一种基于超球面的多变量公钥加密/解密系统及方法 |
CN104009848A (zh) * | 2014-05-26 | 2014-08-27 | 华南理工大学 | 一种混合型的多变量数字签名系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9313028B2 (en) * | 2012-06-12 | 2016-04-12 | Kryptnostic | Method for fully homomorphic encryption using multivariate cryptography |
CN103501227A (zh) * | 2013-10-23 | 2014-01-08 | 西安电子科技大学 | 一种改进的多变量公钥密码加解密方案 |
-
2016
- 2016-09-09 CN CN201610815728.9A patent/CN106330463B/zh active Active
- 2016-12-06 WO PCT/CN2016/108691 patent/WO2018045647A1/zh active Application Filing
- 2016-12-06 SG SG11201902079RA patent/SG11201902079RA/en unknown
- 2016-12-06 GB GB1902689.7A patent/GB2572068B/en not_active Expired - Fee Related
- 2016-12-06 AU AU2016422576A patent/AU2016422576B2/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103490883A (zh) * | 2013-09-17 | 2014-01-01 | 华南理工大学 | 一种多变量公钥加密/解密系统及加密/解密方法 |
CN103490897A (zh) * | 2013-09-17 | 2014-01-01 | 华南理工大学 | 一种多变量公钥签名/验证系统及签名/验证方法 |
CN103780382A (zh) * | 2014-01-13 | 2014-05-07 | 华南理工大学 | 一种基于超球面的多变量公钥加密/解密系统及方法 |
CN104009848A (zh) * | 2014-05-26 | 2014-08-27 | 华南理工大学 | 一种混合型的多变量数字签名系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
AU2016422576B2 (en) | 2020-04-16 |
GB2572068B (en) | 2022-01-26 |
AU2016422576A1 (en) | 2019-03-21 |
GB201902689D0 (en) | 2019-04-17 |
SG11201902079RA (en) | 2019-05-30 |
GB2572068A (en) | 2019-09-18 |
CN106330463A (zh) | 2017-01-11 |
WO2018045647A1 (zh) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330463B (zh) | 一种多变量公钥的签名系统和方法 | |
Chaum et al. | An improved protocol for demonstrating possession of discrete logarithms and some generalizations | |
US8112626B1 (en) | Method and apparatus to provide public key authentication with low complexity devices | |
Wiener | The full cost of cryptanalytic attacks | |
CN103780382B (zh) | 一种基于超球面的多变量公钥加密/解密系统及方法 | |
CN1677917B (zh) | 用于流式密码中的循环存储单元的方法和系统 | |
Loepp et al. | Protecting information: from classical error correction to quantum cryptography | |
CN103780383B (zh) | 一种基于超球面的多变量公钥签名/验证系统及方法 | |
CN103490883B (zh) | 一种多变量公钥加密/解密系统及加密/解密方法 | |
CN102263636B (zh) | 一种融合神经网络与混沌映射的流密码密钥控制方法 | |
JPS58181350A (ja) | 公開通信回線に於てデイジタル通信の秘密を保持する為の方法と装置 | |
CN105027180A (zh) | 保密计算系统、运算装置、保密计算方法、以及程序 | |
BRPI0006085B1 (pt) | sistemas e métodos de assinatura de chave pública | |
CN103490897B (zh) | 一种多变量公钥签名/验证系统及签名/验证方法 | |
Chen | Introduction to secure outsourcing computation | |
CN107743065A (zh) | 电池使用验证方法、电池系统以及汽车 | |
Mashhadi et al. | Provably secure verifiable multi‐stage secret sharing scheme based on monotone span program | |
CN109274504B (zh) | 一种基于云平台的多用户大数据存储分享方法及系统 | |
Mills et al. | Information theoretically secure hypothesis test for temporally unstructured quantum computation | |
CN103501223B (zh) | 一种电子产品码的访问控制系统及其访问控制方法 | |
CN109818944B (zh) | 一种支持预处理的云数据外包及完整性验证方法及装置 | |
Goluch | The development of homomorphic cryptography: from RSA to Gentry's privacy homomorphism | |
Zhou et al. | Breaking symmetric cryptosystems using the offline distributed Grover-meets-Simon algorithm | |
Zhang et al. | Batch verifiable computation of outsourced functions | |
Lian et al. | Provably secure E-cash system with practical and efficient complete tracing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |