CN112769573B - 一种基于grs码的数字签名方法、验签方法及其装置 - Google Patents
一种基于grs码的数字签名方法、验签方法及其装置 Download PDFInfo
- Publication number
- CN112769573B CN112769573B CN202011570351.8A CN202011570351A CN112769573B CN 112769573 B CN112769573 B CN 112769573B CN 202011570351 A CN202011570351 A CN 202011570351A CN 112769573 B CN112769573 B CN 112769573B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- matrix
- grs code
- error vector
- signature
- 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
Images
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
- H04L9/3236—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 using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于GRS码的数字签名方法、验签方法及其装置,其中数字签名方法包括:构造一基于有限域的GRS码;根据所述GRS码生成公钥以及私钥;对需要进行数字签名的明文做哈希运算,得到摘要值;使用所述私钥对所述摘要值进行加密,得到数字签名。本发明实施例的方案,得到的数字签名具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种基于GRS码的数字签名方法、验签方法及其装置。
背景技术
数字签名是公钥密码体制的基础原件之一,被广泛应用于身份认证、数据完整性检测、防抵赖等场景,在公钥密码学中占据着十分重要的地位。然而由于整数分解和离散对数问题被证明在量子计算机下可以有效求解,因此基于上述困难问题的传统数字签名体制在量子计算机下是不安全的,构造能够地抗量子攻击的数字签名体制已经成为密码学界和工业界的迫切需求。
基于纠错码的公钥密码体制利用线性码译码困难问题构造,区别于基于大数分解和离散对数的公钥密码体制,是目前公认的一种可抵抗量子攻击的密码算法,比如CFS签名方案,但是现有的CFS签名方案由于存在密钥存储量过大的问题,影响了该类密码体制的实用性。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于GRS码的数字签名方法、验签方法及其装置。本发明要解决的技术问题通过以下技术方案实现:
第一方面,本发明实施例提供的一种基于GRS码的数字签名方法,包括:
构造一基于有限域的GRS码;
根据所述GRS码生成公钥以及私钥;
对需要进行数字签名的明文做哈希运算,得到摘要值;
使用所述私钥对所述摘要值进行加密,得到数字签名。
可选的,所述构造一基于有限域的GRS码,包括:
可选的,所述根据所述GRS码生成公钥以及私钥,包括:
在所述有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且所述稠密矩阵的秩为z,所述稀疏矩阵的平均行重和列重为x,其中,z为自然数,且z小于n,x小于n;
将所述稠密矩阵以及所述稀疏矩阵进行矩阵的加法运算,得到变换矩阵;
将所述非奇异矩阵的逆矩阵、校验矩阵以及所述变换矩阵的转置矩阵进行矩阵的乘法运算得到公钥;其中,所述校验矩阵为所述GRS码(n-k)×n的矩阵;
将所述非奇异矩阵、所述校验矩阵、所述变换矩阵与译码算法作为私钥。
可选的,所述对需要进行数字签名的明文做哈希运算,得到摘要值,包括:
对需要进行数字签名的明文进行初次哈希运算;
对初次哈希运算得到的结果再次进行哈希运算,得到所述摘要值。
可选的,所述使用所述私钥对所述摘要值进行加密,得到数字签名,包括:
将所述非奇异矩阵与所述摘要值进行乘法运算,得到待译校正子;
结合所述私钥的校验矩阵使用所述译码算法对所述待译校正子进行译码,得到第一错误向量;
将所述第一错误向量与所述私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到第二错误向量,所述第二错误向量的权重小于等于所述GRS码的纠错能力;
将所述第二错误向量作为所述数字签名。
可选的,在得到所述第二错误向量之后,还包括:
对所述第二错误向量构建索引对,得到第二错误向量的索引对;
相应的,将所述索引对作为所述数字签名。
第二方面,本发明实施例还提供一种第一方面的基于GRS码的数字签名的验签方法,包括:
利用所述公钥对所述数字签名解密,得到待验证摘要值;
对所述明文进行哈希运算,得到摘要值;
将所述待验证摘要值与所述摘要值进行比较,若所述待验证摘要值与所述摘要值相等,则验证成功。
第三方面,本发明实施例还提供一种数字签名生成装置,包括:
GRS码构造模块,用于构造一基于有限域的GRS码;
密钥生成模块,用于根据所述GRS码生成公钥和私钥;
摘要生成模块,用于对需要进行数字签名的明文做哈希运算,得到摘要值;
数字签名模块,用于使用所述私钥对所述摘要值进行加密,得到数字签名。
第四方面,本发明实施例还提供一种数字签名验签装置,包括:
解密模块,用于利用所述公钥对上述的数字签名解密,得到待验证摘要值;
摘要获取模块,对所述明文进行哈希运算,得到摘要值;
验证模块,用于将所述待验证摘要值和所述摘要值进行比较,若所述待验证摘要值与所述摘要值相等,则验证成功。
第五方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数字签名方法或第二方面所述的数字签名验签方法的步骤。
本发明实施例提供的一种基于GRS码的数字签名方法、验签方法及其装置,基于有限域的GRS码生成公钥以及私钥,根据明文得到摘要值,并使用私钥对摘要值进行加密,得到数字签名。在验签的过程中,利用公钥对数字签名进行解密,与摘要值进行对比,即可判断能否验证成功。本发明实施例的方案,得到的数字签名具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于GRS码的数字签名方法的流程图;
图2是本发明实施例提供的一种基于GRS码的数字签名的验签方法的流程图;
图3是本发明实施例提供的方法的可行性仿真结果图;
图4是本发明实施例提供的方法在不同纠错能力下的可行性仿真结果图;
图5是本发明实施例提供的方法在ISD译码攻击下的仿真结果图;
图6是本发明实施例提供的方法在不同纠错能力下的公钥量仿真结果图;
图7是本发明实施例提供的一种生成数字签名装置的结构图;
图8是本发明实施例提供的一种数字签名验签装置的结构图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
为了实现一种安全性能高,签名验签效率好的数字签名,本发明实施例提供了一种基于GRS码的数字签名方法、验签方法及其装置。
在进行具体说明之前,先对本发明的方案所涉及的现有技术存在的问题以及本发明的改进思路进行详细介绍。
传统的CFS签名方案使用了基于纠错码的公钥密码,能够有效抵抗量子攻击,但同时传统的CFS签名由于采用基于二进制的Goppa码的签名方案,会造成公钥量大,实用性不好的问题;此外为了保证签名的成功性和安全性,又会面临参数选取限制大的问题,比如:考虑到安全性,在面对不断地攻击威胁,m和t的值只能不断增大,这样就会造成公钥量过大;但同时考虑到签名成功性和公钥量不能过大,又必须减少平均查找次数和公钥量,m和t的值又不能太大,这样在参数选取时就会收到较大的限制。
因此,基于上述原因,本发明的方案即基于CFS的签名方案,又对传统的CFS方案进行了改进。
第一方面,本发明实施例提供了一种基于GRS码的数字签名方法。下面,首先对该数字签名方法进行介绍。
参见图1,图1是本发明实施例提供的一种基于GRS码的数字签名方法的流程图。本发明实施例提供的基于GRS码的数字签名方法,可以包括以下步骤:
S11,构造一基于有限域的GRS码。
其中,有限域可以选择包括q个元素的有限域Fq,且选取一正整数m,使q满足q=2m。
需要说明的是,本发明实施例之所以选择基于有限域Fq而不是选择基于通常的二进制,是因为在面对ISD译码攻击时,对于安全级别相同的码(比如:Goppa码),基于有限域Fq的Goppa码相比基于二进制Goppa码具有更小的公钥量。举例来说,具有128的安全级别的基于有限域的Goppa码,公钥量为725740bits;而具有128的安全级别的基于二进制Goppa码,公钥量为1537536bits。相比来说,基于有限域Fq的Goppa码的公钥量要比基于二进制Goppa码的公钥量小近一个数量级。
此外,本发明之所以选择GRS码而不是别的码(比如Goppa码),是因为GRS码是极大距离可分(MDS)码,码的性能好;且GRS码现有编译码器在各领域应用多,实用性好;此外,GRS码比Goppa码更灵活;以及GRS码具有可发展性更强的优势。
S12,根据GRS码生成公钥以及私钥。
本实施例中,基于有限域的GRS码生成公钥以及私钥,可以保证公钥以及私钥具有的安全性能更高且占空间更小。
可选的一种实施方式中,S12可以包括S121~S124。
S121,在有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且稠密矩阵的秩为z,稀疏矩阵的平均行重和列重为x,其中,z为自然数,且z小于n,x小于n。
作为本发明的一种实施方式,可以采用稠密矩阵的秩z远小于n,且稀疏矩阵的平均行重和列重x远小于n。
可选的,本实施例中,对参数m、n、k、t以及x的选取有以下几种选择可供参考,参见表1,有且不限于这几种,但考虑到方案的正确性、可行性与安全性,以及公钥量和签名长度,本发明的方案优选采用表1列出的三组参数值。
表1参数选取
m | n | k | t | x |
12 | 4094 | 4074 | 10 | 1~1.1 |
16 | 65534 | 65516 | 9 | 1~1.1 |
10 | 1022 | 1002 | 10 | 1~1.1 |
S122,将稠密矩阵以及稀疏矩阵进行矩阵的加法运算,得到变换矩阵。
具体的,加法运算采用公式(1):
S123,将非奇异矩阵的逆矩阵、校验矩阵以及变换矩阵的转置矩阵进行矩阵的乘法运算得到公钥;其中,校验矩阵为GRS码的(n-k)×n矩阵。
具体的,乘法运算采用公式(2):
S124,将非奇异矩阵、校验矩阵、变换矩阵与译码算法作为私钥。
可以理解的是,公钥用于对外公开,私钥用于存储。公钥和私钥是一个算法中不同的两个参数集合,但内在又相关联的参数集合,公钥和私钥是同时生成,但可以独立使用的。
S13,对需要进行数字签名的明文做哈希运算,得到摘要值。
哈希运算能够把任意长度的输入向量通过散列算法变成固定长度的输出。需要注意的是,哈希运算是单向、不可逆的。
可选的一种实施方式中,S13可以包括S131~S132。
S131,对需要进行数字签名的明文进行初次哈希运算。
本实施例中,对明文M进行初次哈希运算得到h(M)。
S132,对初次哈希运算得到的结果再次进行哈希运算,得到摘要值。
本实施例中,对初次哈希运算得到的结果h(M)再次进行哈希运算,得到摘要值Sx,即计算Sx=h(h(M)|i),其中,i=0,1,2……。本发明实施例中取i=0,使摘要值Sx为一个长度为n-k的向量。
在其他实施例中,也可以使用一次或多次哈希运算得到摘要值,满足固定长度的输出即可。
S14,使用私钥对摘要值进行加密,得到数字签名。
可选的一种实施方式中,S14可以包括S141~S144。
S141,将非奇异矩阵与摘要值进行乘法运算,得到待译校正子。
具体的,乘法运算采用公式(3):
S142,结合私钥的校验矩阵使用译码算法对待译校正子进行译码,得到第一错误向量。
译码算法可以选用现有的任一译码算法,本实施例中,译码算法优选为时域上的迭代译码算法,即:BM迭代译码算法(Berlekamp-Massey)、钱式搜索算法(Chien)以及Forney算法的组合。该译码算法速度快,实现简单,易于用计算机实现,因此是一种快速译码算法。
可选的,译码算法可以包括以下几个步骤:
步骤一:计算校正子;
步骤二:确定错误位置多项式;
步骤三:确定错误估值函数;
步骤四:求解错误位置数和错误数值,并进行纠错。
完成上述四步即可完成一次译码,若译码成功,则直接译出错误向量;否则,将视为译码失败。
结合本发明实施例的方案,若译码失败,则使i'=i+1,从S131重新开始,直到译码成功。
S143,将第一错误向量与私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到第二错误向量,第二错误向量的权重小于等于GRS码的纠错能力t。
具体的,参见公式(4):
S144,将第二错误向量作为数字签名。
至此,已经得到基于错误向量纠错码的数字签名,但该错误向量中由于存在多个0元素,占用较多的比特位。为减小比特位数,本发明提供的方案在上述实施例的基础上,可以进一步优化。
优选的,在得到第二错误向量之后,还包括以下步骤:
对第二错误向量构建索引对,得到第二错误向量的索引对。
具体的,第二错误向量的索引对可以根据公式(5)得到。
其中,Ie表示索引对。
即提取第二错误向量中的非零元素标记为错误值,用错误位置α以及错误位置c构建第二错误向量的索引对Ie。
相应的,将索引对作为数字签名。
需要说明的是,签名通常对应的还有验签的过程,作为只生成数字签名的步骤,将得到的索引对Ie作为数字签名;而在验签过程中,由于验签者需要用到索引对Ie和摘要值h(h(m)|i)一起验签,因此在验签成功后,最终是将[Ie|i]作为明文M的数字签名。
在优选的方案里,通过进一步对生成的第二错误向量建立索引对,并将索引作为数字签名,可以减少比特位数,从而减小签名长度。
本发明实施例提供的方案,基于有限域的GRS码生成公钥以及私钥,根据明文得到摘要值,并使用私钥对摘要值进行加密,得到数字签名。该数字签名方案具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
第二方面,本发明实施例还提供一种上述的基于GRS码的数字签名的验签方法。下面对基于GRS码的数字签名的验签方法进行介绍。
参见图2,图2是本发明实施例提供的一种基于GRS码的数字签名的验签方法的流程图,该验签方法可以包括以下步骤:
S21,利用公钥对数字签名解密,得到待验证摘要值。
对应于上述签名方法中将得到的第二错误向量作为数字签名的方案,本步骤是利用公钥直接对第二错误向量进行解密,得到待验证摘要值。
对应于上述签名方法中将得到的索引对作为数字签名的方案,本步骤需要先根据索引对恢复出第二错误向量,然后再利用公钥对第二错误向量进行解密,得到待验证摘要值。
利用公钥对第二错误向量进行解密,即根据公式(6)得到待验证摘要值:
其中,y表示待验证摘要值。
S22,对明文进行哈希运算,得到摘要值。
同样的,需要对明文进行两次哈希运算,具体步骤与S13相同,在此不再赘述。通过两次哈希运算,得到摘要值y'=h(h(M)|i)。
S23,将待验证摘要值与摘要值进行比较,若待验证摘要值与摘要值相等,则验证成功。
本发明实施例中,比较待验证摘要值y与摘要值y',若y=y',即待验证摘要值与摘要值相等,验证签名成功;否则,验证签名失败。
本发明实施例提供的一种数字签名验签装置,基于有限域的GRS码生成公钥以及私钥,根据明文得到摘要值,并使用私钥对摘要值进行加密,得到数字签名。在验签的过程中,利用公钥对数字签名进行解密,与摘要值进行对比,即可判断能否验证成功。本发明实施例的方案,得到的数字签名具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
以下,分别从签名的正确性、可行性、安全性、公钥量以及签名长度这五个方面对本发明实施例提供的方案进行验证。
(1)正确性:
正确性的验证也是对签名是否验签成功的验证,需要证明利用公钥对第二错误向量进行解密得到的待验证摘要值与生成签名过程中得到的摘要值相等,即可证明正确性。具体过程如下:
利用公钥对第二错误向量进行解密得到待验证摘要值,其中,公钥是基于非奇异矩阵的逆矩阵、校验矩阵以及变化矩阵的转置矩阵进行矩阵的乘法运算得到的,即上述公式(2);第二错误向量是基于第一错误向量与私钥的变化矩阵的逆矩阵进行矩阵的乘法运算得到的,即上述公式(4);待验证摘要值是基于公钥中的每一列根据αj索引的对应行的值与cj的乘积得到的,即上述公式(6)。
因此,将公式(2)以及公式(4)代入公式(6)可以得到,
对上述公式(7)进行简化公式,可以得到:
待译校正子是基于非奇异矩阵与摘要值进行乘法运算得到的,即上述公式(3)。
因此,根据公式(3),得到y=Sx,即能够得到y=y',验证成功,说明签名正确。
(2)可行性:
基于有限域Fq的GRS码签名的参数对(m,t)在选取上不仅要保证平均查找次数在千万数量级以下,还要保证参数对的选取不能过小。
参见图3,图3是本发明实施例提供的方法的可行性仿真结果图。图中表示了纠错能力t与平均查找次数的对数log2 Z之间的关系。由图3可以看出,纠错能力t与平均查找次数的对数log2 Z成正比,也就是平均查找次数Z与纠错能力t呈指数关系。
图3中的横线表示千万数量级的运算,图中数据x表示m,y表示log2 Z。
当纠错能力t的值大于10后,平均查找次数将会过大,因此,纠错能力t选取小于等于10更为合适。
参考图4,图4是本发明实施例提供的方法在不同纠错能力下的可行性仿真结果图。图4表示的是纠错能力t取9和10时,m与平均查找次数的对数的关系。图中数据x表示m,y表示log2 Z。由图4可以看出,当m≥12时,随着m的增大,log2 Z趋于平稳,几乎没有什么变化;当m<12时,会增加平均查找次数。因此,m取大于等于12较为合适。
另外,根据图4可以得到表2的两组数据:
表2(a)
m(t=10) | 6 | 8 | 10 | 12 | 14 | 16 | 18 |
log<sub>2</sub> Z | 23.33 | 22.16 | 21.88 | 21.81 | 21.80 | 21.79 | 21.79 |
表2(b)
m(t=9) | 6 | 8 | 10 | 12 | 14 | 16 | 18 |
log<sub>2</sub> Z | 19.74 | 18.78 | 18.55 | 18.49 | 18.47 | 18.4703 | 18.47 |
已知CFS签名使用的参数对(m,t)为(15,10)以及(16,9)。当参数对为(15,10)时,CFS签名的平均查找次数的对数值为27.7911,基于有限域Fq的GRS码签名的平均查找次数的对数值为21.7933;当参数对为(16,9)时,CFS签名的平均查找次数的对数值为18.4691,基于有限域Fq的GRS码签名的平均查找次数的对数值为18.4703。
相比较来说,在两种参数对下,CFS签名与基于有限域Fq的GRS码签名的平均查找次数的数据差别不大,因此本发明实施例提供的一种基于有限域Fq的GRS码数字签名方法具有可行性。
(3)安全性:
参考图5,图5是本发明实施例提供的方法在ISD译码攻击下的仿真结果图。图5表示的是在在ISD译码攻击的情况下,m与安全级别SL的关系。
ISD译码攻击下的安全级别系数与m和t的乘积呈指数关系,基于上述条件,t选取小于等于10。即当t确定下,m越大,安全级别系数越高。
图中数据x表示m,y表示SL。从图5可以看出,基于有限域Fq的GRS码数字签名在参数对选取为(10,10)时,安全级别SL可以达到80,已经达到了一般安全级别,而在选取的参数对为(16,9)时,安全级别SL超过了128。
在ISD译码攻击下,当参数对为(15,10)时,CFS签名的安全级别系数SL为76.89,基于有限域Fq的GRS码签名的安全级别系数SL为135.42;当参数对为(16,9)时,CFS签名的安全级别系数SL为76.92,基于有限域Fq的GRS码签名的安全级别系数SL为135.56。
相比较来看,本发明实施例提供的基于有限域Fq的GRS码签名在ISD译码攻击下,具有较高的安全级别系数。
另外,本发明实施例提供的基于有限域Fq的GRS码签名还能有效抵抗区分攻击,而CFS签名在区分攻击下的参数选取存在缺陷。
(4)公钥量:
参考图6,图6是本发明实施例提供的方法在不同纠错能力下的公钥量仿真结果图。图6表示的是纠错能力t取9和10时,m与公钥量的关系。图中数据x表示m,y表示k·(n-k)·log2q。由图6可以看出,公钥量与m呈指数关系,而不同纠错能力t下,对公钥量的影响不是很明显。虽然当m越大,基于有限域Fq的GRS码签名越安全,但也会导致公钥量越大。因此,选取较为合适的m,使得安全系数较高且公钥量较小,例如m取10、12等。
(5)签名长度:
本发明实施例提供的基于有限域Fq的GRS码签名,签名长度为2m·tp+log2 Z。
表3为基于有限域Fq的GRS码签名与CFS签名在两组不同参数对下,平均查找次数、安全级别、公钥量以及签名长度的对比。
表3不同参数对下基于有限域Fq的GRS码签名与CFS签名的参数对比
从表3可以看出,在不同的参数对下,本发明实施例提供的基于有限域Fq的GRS码签名的安全级别系数比CFS签名的安全级别系数要高,但是公钥量以及数字签名长度也要大一些。
因此,选取几组不同的参数对对基于有限域Fq的GRS码签名的参数进行仿真,结果如表4所示。
表4不同参数对下基于有限域Fq的GRS码签名的参数
参数对 | 平均查找次数 | 安全级别(SL) | 公钥量 | 签名长度(bits) |
(11,9) | 18.5072 | 85.5239 | 401544 | 195 |
(10,10) | 21.8829 | 80.3254 | 200400 | 202 |
(12,10) | 21.8140 | 102.3972 | 977760 | 238 |
本发明实施例提供的基于有限域Fq的GRS码签名,在提升安全级别系数的前提下,能够降低参数对的选择,减少公钥量以及签名长度。
通过以上验证说明本发明的方案具有正确性、可行性、安全性,以及公钥量降低、签名长度减小等效果。
第三方面,本发明实施例还提供一种生成数字签名装置,参考图7,图7是本发明实施例提供的一种生成数字签名装置的结构图,包括:
GRS码构造模块710,用于构造一基于有限域的GRS码;
密钥生成模块720,用于根据GRS码生成公钥和私钥;
摘要生成模块730,用于对需要进行数字签名的明文做哈希运算,得到摘要值;
数字签名模块740,用于使用私钥对摘要值进行加密,得到数字签名。
相关具体内容参见第一方面的一种基于GRS码的数字签名方法的内容,在此不再赘述。
本发明实施例提供的一种生成数字签名装置,基于有限域的GRS码生成公钥以及私钥,根据明文得到摘要值,并使用私钥对摘要值进行加密,得到数字签名。本发明实施例的方案,得到的数字签名具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
第四方面,本发明实施例还提供一种数字签名验签装置,参考图8,图8是本发明实施例提供的一种数字签名验签装置的结构图,包括:
解密模块810,用于利用公钥对上述的数字签名解密,得到待验证摘要值;
摘要获取模块820,对明文进行哈希运算,得到摘要值;
验证模块830,用于将待验证摘要值和摘要值进行比较,若待验证摘要值与摘要值相等,则验证成功。
相关具体内容参见第二方面的一种基于GRS码的数字签名方法的验签方法的内容,在此不再赘述。
本发明实施例提供的一种数字签名验签装置,基于有限域Fq的GRS码生成公钥以及私钥,根据明文得到摘要值,并使用私钥对摘要值进行加密,得到数字签名。在验签的过程中,利用公钥对数字签名进行解密,与摘要值进行对比,即可判断能否验证成功。本发明实施例的方案,得到的数字签名具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
第五方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述的数字签名方法或上述的数字签名验签方法的步骤。
上述计算机可读存储介质存储有在运行时执行本发明实施例所提供的道路车辆状态识别方法的应用程序,因此能够实现:基于有限域的GRS码生成公钥以及私钥,根据明文得到摘要值,并使用私钥对摘要值进行加密,得到数字签名。在验签的过程中,利用公钥对数字签名进行解密,与摘要值进行对比,即可判断能否验证成功。本发明实施例的方案,得到的数字签名具有较高的可行性,并且能够减小公钥量,提高数字签名效率,进一步提高安全性。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
对于电子设备以及计算机可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种基于GRS码的数字签名方法,其特征在于,包括:
构造一基于有限域的GRS码;
根据所述GRS码生成公钥以及私钥;
对需要进行数字签名的明文做哈希运算,得到摘要值;
使用所述私钥对所述摘要值进行加密,得到数字签名;
其中,所述使用所述私钥对所述摘要值进行加密,得到数字签名,包括:
将非奇异矩阵与所述摘要值进行乘法运算,得到待译校正子;其中,所述非奇异矩阵在所述有限域内选取得到;
结合所述私钥的校验矩阵使用所述译码算法对所述待译校正子进行译码,得到第一错误向量;
将所述第一错误向量与所述私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到第二错误向量,所述第二错误向量的权重小于等于所述GRS码的纠错能力;
将所述第二错误向量作为所述数字签名。
3.根据权利要求1所述的基于GRS码的数字签名方法,其特征在于,所述根据所述GRS码生成公钥以及私钥,包括:
在所述有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且所述稠密矩阵的秩为z,所述稀疏矩阵的平均行重和列重为x,其中,z为自然数,且z小于n,x小于n;
将所述稠密矩阵以及所述稀疏矩阵进行矩阵的加法运算,得到变换矩阵;
将所述非奇异矩阵的逆矩阵、校验矩阵以及所述变换矩阵的转置矩阵进行矩阵的乘法运算得到公钥;其中,所述校验矩阵为所述GRS码(n-k)×n的矩阵;
将所述非奇异矩阵、所述校验矩阵、所述变换矩阵与译码算法作为私钥。
4.根据权利要求1所述的基于GRS码的数字签名方法,其特征在于,所述对需要进行数字签名的明文做哈希运算,得到摘要值,包括:
对需要进行数字签名的明文进行初次哈希运算;
对初次哈希运算得到的结果再次进行哈希运算,得到摘要值。
5.根据权利要求1所述的基于GRS码的数字签名方法,其特征在于,在得到所述第二错误向量之后,还包括:
对所述第二错误向量构建索引对,得到第二错误向量的索引对;
相应的,将所述索引对作为所述数字签名。
6.一种权利要求1至5任一项所述的基于GRS码的数字签名的验签方法,其特征在于,包括:
利用所述公钥对所述数字签名解密,得到待验证摘要值;
对所述明文进行哈希运算,得到摘要值;
将所述待验证摘要值与所述摘要值进行比较,若所述待验证摘要值与所述摘要值相等,则验证成功。
7.一种数字签名生成装置,其特征在于,包括:
GRS码构造模块,用于构造一基于有限域的GRS码;
密钥生成模块,用于根据所述GRS码生成公钥和私钥;
摘要生成模块,用于对需要进行数字签名的明文做哈希运算,得到摘要值;
数字签名模块,用于使用所述私钥对所述摘要值进行加密,得到数字签名;其中,所述使用所述私钥对所述摘要值进行加密,得到数字签名,包括:
将非奇异矩阵与所述摘要值进行乘法运算,得到待译校正子;其中,所述非奇异矩阵在所述有限域内选取得到;
结合所述私钥的校验矩阵使用所述译码算法对所述待译校正子进行译码,得到第一错误向量;
将所述第一错误向量与所述私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到第二错误向量,所述第二错误向量的权重小于等于所述GRS码的纠错能力;
将所述第二错误向量作为所述数字签名。
8.一种数字签名验签装置,其特征在于,包括:
解密模块,用于利用所述公钥对权利要求7所述的数字签名解密,得到待验证摘要值;
摘要获取模块,对所述明文进行哈希运算,得到摘要值;
验证模块,用于将所述待验证摘要值和所述摘要值进行比较,若所述待验证摘要值与所述摘要值相等,则验证成功。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一项所述的数字签名方法或权利要求6所述的数字签名验签方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011570351.8A CN112769573B (zh) | 2020-12-26 | 2020-12-26 | 一种基于grs码的数字签名方法、验签方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011570351.8A CN112769573B (zh) | 2020-12-26 | 2020-12-26 | 一种基于grs码的数字签名方法、验签方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769573A CN112769573A (zh) | 2021-05-07 |
CN112769573B true CN112769573B (zh) | 2022-08-05 |
Family
ID=75695907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011570351.8A Active CN112769573B (zh) | 2020-12-26 | 2020-12-26 | 一种基于grs码的数字签名方法、验签方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769573B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225277A (zh) * | 2022-05-20 | 2022-10-21 | 中国人民解放军国防科技大学 | 一种数字签名分组验证方法、***、设备及计算机介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219047A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种签名验证的方法及设备 |
CN110830257A (zh) * | 2018-08-14 | 2020-02-21 | 珠海金山办公软件有限公司 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193538C (zh) * | 2001-12-17 | 2005-03-16 | 北京兆日科技有限责任公司 | 电子密码形成与核验方法 |
US7617439B2 (en) * | 2005-01-10 | 2009-11-10 | Broadcom Corporation | Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices |
CN100561878C (zh) * | 2005-11-24 | 2009-11-18 | 上海交通大学 | 基于优化搜索矩阵lu分解的ldpc码编码方法 |
EP2073431A1 (en) * | 2007-12-21 | 2009-06-24 | Nagravision S.A. | Method to trace traceable parts of original private keys in a public-key cryptosystem |
US8328109B2 (en) * | 2008-10-02 | 2012-12-11 | Silverbrook Research Pty Ltd | Coding pattern comprising registration symbols for identifying the coding pattern |
CN102946602A (zh) * | 2012-12-04 | 2013-02-27 | 镇江江大科茂信息***有限责任公司 | 移动信息***的隐私保护加密方法 |
CN105320899B (zh) * | 2014-07-22 | 2018-01-09 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
-
2020
- 2020-12-26 CN CN202011570351.8A patent/CN112769573B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219047A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种签名验证的方法及设备 |
CN110830257A (zh) * | 2018-08-14 | 2020-02-21 | 珠海金山办公软件有限公司 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112769573A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lahr et al. | Side channel information set decoding using iterative chunking: Plaintext recovery from the “Classic McEliece” hardware reference implementation | |
JP5854443B2 (ja) | 誤り訂正符号方式を用いて計算環境における資産集合についての識別子を生成する変化許容力を有する方法 | |
EP2991264B1 (en) | Encrypted text matching system, method and program | |
Koochak Shooshtari et al. | Cryptanalysis of McEliece cryptosystem variants based on quasi‐cyclic low‐density parity check codes | |
CN112635009A (zh) | 基于区块链的医疗数据加密方法 | |
EP2991265B1 (en) | Encrypted text matching system, method and program | |
CN112769573B (zh) | 一种基于grs码的数字签名方法、验签方法及其装置 | |
Guo et al. | Sca-ldpc: A code-based framework for key-recovery side-channel attacks on post-quantum encryption schemes | |
CN112635008A (zh) | 基于数字签名的医疗检验报告生成方法 | |
CN112613008A (zh) | 一种学生身份在线认证方法及*** | |
US11128475B2 (en) | Electronic device capable of data communication through electronic signatures based on syndrome and operating method thereof | |
CN112613760A (zh) | 基于区块链技术的产品质量评定方法及*** | |
CN112613078A (zh) | 一种文档电子签名方法、验签方法及其装置 | |
CN112631992A (zh) | 一种电子文件归档方法及*** | |
US9900146B2 (en) | Encrypted text matching system, method, and computer readable medium | |
CN112738210A (zh) | 一种路面养护方法及*** | |
CN112633712A (zh) | 一种基于grs码的在线投标方法及*** | |
CN112613879A (zh) | 一种基于grs码的金融交易数据处理方法 | |
CN112614558A (zh) | 基于区块链的电子病历共享方法和电子设备 | |
US20170116437A1 (en) | Method for protecting data and data processing device | |
Colombier et al. | Horizontal correlation attack on classic McEliece | |
CN112613844A (zh) | 一种人事合同电子签名方法 | |
CN112632507A (zh) | 电子文件签名装置 | |
CN112614557A (zh) | 电子病历加密存档方法 | |
CN112614001A (zh) | 基于区块链的农产品追溯方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |