System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数字签名方法、装置、设备和计算机可读存储介质制造方法及图纸_技高网

一种数字签名方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:40310852 阅读:10 留言:0更新日期:2024-02-07 20:53
本发明专利技术涉及数据安全技术领域,公开了一种数字签名方法、装置、设备和计算机可读存储介质,依据密钥参数信息,从扩域中选取出第一类向量组和第一部分公钥,从基域中选取出第二类向量组;基于第一类向量组、第二类向量组以及第一部分公钥,构建出私钥和第二部分公钥,从扩域中选取干扰向量,利用干扰向量以及第一部分公钥,确定出承诺向量。基于哈希函数对承诺向量、私钥、干扰向量以及目标消息进行处理,以得到目标消息的数字签名;目标消息为待签名消息转换到扩域上的数据流。本发明专利技术提供的数字签名方式能够抵抗量子计算攻击和已知的密钥恢复攻击,增强了系统安全性,有效缩短了签名长度。

【技术实现步骤摘要】

本专利技术涉及数据安全,特别是涉及一种数字签名方法、装置、设备和计算机可读存储介质


技术介绍

1、数字签名是重要的密码学基础原语之一,能够以数字化形式提供类似于手写签名的功能,如身份认证、防抵赖、防篡改等。在电子商务、电子政务和区块链服务等场景中有着重要的应用。数字签名方案的设计有多种技术路线,如基于质因子分解和求解离散对数等数论困难问题构造签名方案。传统的数字签名方案,如rsa(rivest-shamir-adleman,非对称加密算法)和dss(digital signature standard,数字签名标准)等,都是基于上述数论困难问题构造的算法,基于这些算法实现的数字签名均难以抵抗量子计算攻击。

2、编码理论中的一般译码问题能够抵抗量子计算攻击,为构造量子安全的数字签名方案提供了重要的理论支撑。然而,目前基于编码理论的数字签名方案,通常存在安全性弱如难以抵抗密钥恢复攻击等问题。

3、可见,如何提升数字签名的安全性,是本领域技术人员需要解决的问题。


技术实现思路

1、本专利技术实施例的目的是提供一种数字签名方法、装置、设备和计算机可读存储介质,可以解决数字签名安全性弱的问题。

2、为解决上述技术问题,本专利技术实施例提供一种数字签名方法,包括:

3、依据密钥参数信息,从扩域中选取出第一类向量组和第一部分公钥,从基域中选取出第二类向量组;

4、基于所述第一类向量组、所述第二类向量组以及所述第一部分公钥,构建出私钥和第二部分公钥;

5、从所述扩域中选取干扰向量,利用所述干扰向量以及所述第一部分公钥,确定出承诺向量;

6、基于哈希函数对所述承诺向量、所述私钥、所述干扰向量以及目标消息进行处理,以得到所述目标消息的数字签名;其中,所述目标消息为待签名消息转换到所述扩域上的数据流。

7、一方面,所述密钥参数信息包括子空间维数、第一矩阵的行数和列数以及第二矩阵的行数和列数;

8、所述密钥参数信息,从扩域中选取出第一类向量组和第一部分公钥,从基域中选取出第二类向量组包括:

9、从所述扩域上选取满秩矩阵作为所述第一部分公钥;

10、从所述扩域上选取与所述子空间维数匹配的子空间;

11、从所述子空间中随机选取出与所述第一矩阵的行数和列数匹配的所述第一类向量组;

12、从所述基域中随机选取出与所述第二矩阵的行数和列数匹配的所述第二类向量组。

13、一方面,所述从所述扩域上选取满秩矩阵作为所述第一部分公钥包括:

14、从所述扩域上随机选取一个满足公钥尺寸的满秩矩阵作为所述第一部分公钥。

15、一方面,所述从所述子空间中随机选取出与所述第一矩阵的行数和列数匹配的所述第一类向量组包括:

16、将所述第一矩阵的行数作为第一类向量长度,将所述第一矩阵的列数作为第一类向量个数;

17、依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量。

18、一方面,所述依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量包括:

19、从第一类向量空间的剩余向量中随机选取一个长度为所述第一类向量长度的非零列向量;其中,所述第一类向量空间为分量元素取自所述子空间、长度为所述第一类向量长度的所有列向量构成的集合;

20、从所述第一类向量空间中删除已选取出的所有所述非零列向量在所述基域上张成的线性空间,并返回所述从第一类向量空间的剩余向量中随机选取一个长度为所述第一类向量长度的非零列向量的步骤;直至选取出的非零列向量的个数达到所述第一类向量个数,则将各所述非零列向量逐列排序以得到所述第一类向量组。

21、一方面,所述依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量包括:

22、按照所述第一类向量个数,从第一类向量空间中随机选取长度均为所述第一类向量长度的非零列向量;其中,所述第一类向量空间为分量元素取自所述子空间、长度为所述第一类向量长度的所有列向量构成的集合;

23、判断所有所述非零列向量在所述基域上是否线性无关;

24、在所有所述非零列向量在所述基域上线性无关的情况下,将所有所述非零列向量逐列排序以得到所述第一类向量组;

25、在所有所述非零列向量在所述基域上线性相关的情况下,则丢弃当前选取出的所有所述非零列向量,并返回所述按照所述第一类向量个数,从所述子空间中随机选取长度均为所述第一类向量长度的非零列向量的步骤。

26、一方面,所述从所述基域中随机选取出与所述第二矩阵的行数和列数匹配的所述第二类向量组包括:

27、将所述第二矩阵的行数作为第二类向量个数,将所述第二矩阵的列数作为第二类向量长度;

28、依据所述第二类向量长度,从所述基域中随机选取出与所述第二类向量个数匹配的多个第二类向量。

29、一方面,所述依据所述第二类向量长度,从所述基域中随机选取出与所述第二类向量个数匹配的多个第二类向量包括:

30、根据所述第二类向量个数,依次从第二类向量空间中随机选取长度为所述第二类向量长度的行向量;其中,所述第二类向量空间为分量元素取自所述基域、长度为所述第二类向量长度的所有向量构成的集合;

31、将各所述行向量逐行排序以得到所述第二类向量组。

32、一方面,所述基于所述第一类向量组、所述第二类向量组以及所述第一部分公钥,构建出私钥和第二部分公钥包括:

33、对所述第一类向量组以及所述第二类向量组进行矩阵相乘运算,以得到所述私钥;

34、基于所述私钥以及所述第一部分公钥,确定出所述第二部分公钥。

35、一方面,所述基于所述私钥以及所述第一部分公钥,确定出所述第二部分公钥包括:

36、将所述私钥、所述第一部分公钥的转置进行矩阵相乘运算,以得到所述第二部分公钥。

37、一方面,所述从所述扩域中选取干扰向量,利用所述干扰向量以及所述第一部分公钥,确定出承诺向量包括:

38、根据干扰向量长度和干扰向量秩重量,从所述扩域上选取出干扰向量;

39、将所述干扰向量、所述第一部分公钥的转置进行向量-矩阵相乘运算,以得到所述承诺向量。

40、一方面,所述基于哈希函数对所述承诺向量、所述私钥、所述干扰向量以及目标消息进行处理,以得到所述目标消息的数字签名包括:

41、利用所述哈希函数对所述目标消息以及所述承诺向量进行压缩处理,以得到第一部分签名;

42、基于所述第一部分签名、所述私钥以及所述干扰向量,构建出第二部分签名。

43、一方面,所述基于所述第一部分签名、所述私钥以及所述干扰向量,构建出第二部分签名包括:

44、将所述第一部分签名与所述私本文档来自技高网...

【技术保护点】

1.一种数字签名方法,其特征在于,包括:

2.根据权利要求1所述的数字签名方法,其特征在于,所述密钥参数信息包括子空间维数、第一矩阵的行数和列数以及第二矩阵的行数和列数;

3.根据权利要求2所述的数字签名方法,其特征在于,所述从所述扩域上选取满秩矩阵作为所述第一部分公钥包括:

4.根据权利要求2所述的数字签名方法,其特征在于,所述从所述子空间中随机选取出与所述第一矩阵的行数和列数匹配的所述第一类向量组包括:

5.根据权利要求4所述的数字签名方法,其特征在于,所述依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量包括:

6.根据权利要求4所述的数字签名方法,其特征在于,所述依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量包括:

7.根据权利要求2所述的数字签名方法,其特征在于,所述从所述基域中随机选取出与所述第二矩阵的行数和列数匹配的所述第二类向量组包括:

8.根据权利要求7所述的数字签名方法,其特征在于,所述依据所述第二类向量长度,从所述基域中随机选取出与所述第二类向量个数匹配的多个第二类向量包括:

9.根据权利要求1所述的数字签名方法,其特征在于,所述基于所述第一类向量组、所述第二类向量组以及所述第一部分公钥,构建出私钥和第二部分公钥包括:

10.根据权利要求9所述的数字签名方法,其特征在于,所述基于所述私钥以及所述第一部分公钥,确定出所述第二部分公钥包括:

11.根据权利要求1所述的数字签名方法,其特征在于,所述从所述扩域中选取干扰向量,利用所述干扰向量以及所述第一部分公钥,确定出承诺向量包括:

12.根据权利要求11所述的数字签名方法,其特征在于,所述基于哈希函数对所述承诺向量、所述私钥、所述干扰向量以及目标消息进行处理,以得到所述目标消息的数字签名包括:

13.根据权利要求12所述的数字签名方法,其特征在于,所述基于所述第一部分签名、所述私钥以及所述干扰向量,构建出第二部分签名包括:

14.根据权利要求13所述的数字签名方法,其特征在于,在所述基于哈希函数对所述承诺向量、所述私钥、所述干扰向量以及目标消息进行处理,以得到所述目标消息的数字签名之后,还包括:

15.根据权利要求14所述的数字签名方法,其特征在于,所述将待签名消息转换为所述扩域上的目标数据流包括:

16.根据权利要求14所述的数字签名方法,其特征在于,所述基于所述公钥以及所述数字签名,确定出潜在承诺向量包括:

17.根据权利要求14所述的数字签名方法,其特征在于,在所述将待签名消息转换为所述扩域上的目标数据流之前,还包括:

18.根据权利要求17所述的数字签名方法,其特征在于,还包括:

19.根据权利要求1至18任意一项所述的数字签名方法,其特征在于,在所述依据密钥参数信息,从扩域中选取出第一类向量组和第一部分公钥,从基域中选取出第二类向量组之前,还包括:

20.一种数字签名装置,其特征在于,包括参数选取单元、向量选取单元、构建单元、确定单元和签名单元;

21.一种数字签名设备,其特征在于,包括:

22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述数字签名方法的步骤。

...

【技术特征摘要】

1.一种数字签名方法,其特征在于,包括:

2.根据权利要求1所述的数字签名方法,其特征在于,所述密钥参数信息包括子空间维数、第一矩阵的行数和列数以及第二矩阵的行数和列数;

3.根据权利要求2所述的数字签名方法,其特征在于,所述从所述扩域上选取满秩矩阵作为所述第一部分公钥包括:

4.根据权利要求2所述的数字签名方法,其特征在于,所述从所述子空间中随机选取出与所述第一矩阵的行数和列数匹配的所述第一类向量组包括:

5.根据权利要求4所述的数字签名方法,其特征在于,所述依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量包括:

6.根据权利要求4所述的数字签名方法,其特征在于,所述依据所述第一类向量长度,从所述子空间中随机选取出与所述第一类向量个数匹配的多个第一类向量包括:

7.根据权利要求2所述的数字签名方法,其特征在于,所述从所述基域中随机选取出与所述第二矩阵的行数和列数匹配的所述第二类向量组包括:

8.根据权利要求7所述的数字签名方法,其特征在于,所述依据所述第二类向量长度,从所述基域中随机选取出与所述第二类向量个数匹配的多个第二类向量包括:

9.根据权利要求1所述的数字签名方法,其特征在于,所述基于所述第一类向量组、所述第二类向量组以及所述第一部分公钥,构建出私钥和第二部分公钥包括:

10.根据权利要求9所述的数字签名方法,其特征在于,所述基于所述私钥以及所述第一部分公钥,确定出所述第二部分公钥包括:

11.根据权利要求1所述的数字签名方法,其特征在于,所述从所述扩域中选取干扰向量,利用所述干扰向量以及所述第一部分公钥,确定出承...

【专利技术属性】
技术研发人员:郭文烁李雪雷李茹杨赵雅倩李仁刚
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1