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

签名生成、签名验证方法、装置、设备及可读存储介质制造方法及图纸

技术编号:40809191 阅读:6 留言:0更新日期:2024-03-28 19:31
本申请公开了签名生成、签名验证方法、装置、设备及可读存储介质,属于计算机领域。方法包括:获取第一消息;基于第一消息获取包括n个第一元素的第一元素队列;获取包括n个第二元素的私钥;将每个第二元素填充为长度为z的倍数的第一比特串,对第一比特串进行分组,得到每个第二元素对应的多个第一分组,对各个第一分组进行填充,将多个填充后的第一分组压缩为长度为z/2的第一哈希值;迭代计算每个第二元素的第一哈希值,直至迭代计算的次数达到第一迭代计算次数,将迭代计算的次数达到第一迭代计算次数的哈希值作为每个第二元素对应的第三元素,得到包括n个第三元素的数字签名。数字签名基于哈希值迭代计算得到,有不可逆性,安全性高。

【技术实现步骤摘要】

本申请涉及计算机,特别涉及签名生成、签名验证方法、装置、设备及可读存储介质


技术介绍

1、随着计算机技术的发展,通过计算机传输的数据越来越多。而数据在传输过程中可能会出现异常情况,导致传输的数据发生改变,接收设备接收到的数据并非发送设备发送的数据。因此,需要一种签名生成、签名验证方法,以生成数据对应的数字签名,再通过验证数字签名确定接收到的数据与发送设备发送的数据是否一致,提高数据传输的可靠性。


技术实现思路

1、本申请提供了一种签名生成、签名验证方法、装置、设备及可读存储介质,以提高数据传输的可靠性,技术方案如下:

2、第一方面,提供了一种签名生成方法,该方法包括:签名设备获取待签名的第一消息;签名设备基于第一消息获取第一元素队列,第一元素队列包括由第一消息得到的n个第一元素,n为正整数;签名设备获取私钥,私钥包括与n个第一元素一一对应的n个第二元素;签名设备将每一个第二元素填充为长度为z的倍数的第一比特串,对第一比特串进行分组,得到每一个第二元素对应的多个第一分组,对每一个第二元素对应的多个第一分组中的各个第一分组进行填充,将多个填充后的第一分组压缩为长度为z/2的第一哈希值,z为偶数;签名设备对每一个第二元素的第一哈希值进行迭代计算,直至迭代计算的次数达到第一迭代计算次数,将迭代计算的次数达到第一迭代计算次数得到的哈希值作为每一个第二元素对应的第三元素,得到包括n个第二元素对应的第三元素的数字签名,每一个第二元素的第一迭代计算次数基于每一个第二元素对应的第一元素确定。

3、通过哈希值的迭代计算进行第一消息的签名生成,由于哈希值具有单向不可逆性,量子算法无法破解,生成的数字签名有效抵抗了量子算法的攻击,安全性高,基于高安全性的数字签名进行的数据传输的可靠性更高。

4、在一种可能的实现方式中,基于第一消息获取第一元素队列,包括:按照基w展开第一消息,得到m个第一元素,m为小于n的正整数,w为基于n确定的正整数;按照w展开第一消息对应的校验和,得到x个第一元素,m与x的和等于n;将m个第一元素与x个第一元素进行拼接,得到包括n个第一元素的第一元素队列。由于展开第一消息的过程中是以w为基,最终展开得到的第一元素均不大于w,有效控制了第一元素的大小。并且,后续在以第一元素确定迭代计算第三元素过程中涉及到的第一迭代计算次数,由于第一元素均不大于w,因此,迭代计算第三元素的过程中,迭代计算的次数不会超过最大迭代计算次数,保证了计算第三元素的正常执行。

5、在一种可能的实现方式中,获取私钥,包括:获取n个随机数;计算各个随机数对应的哈希值,得到包括n个第二元素的私钥。通过随机数即可获取私钥,私钥获取便捷,通用性高。

6、在一种可能的实现方式中,获取私钥,包括:获取签名树,签名树的一个叶子节点基于一个公钥确定,签名树的一个叶子节点可用于生成签名;从多个叶子节点中选择目标节点,将目标节点对应的私钥作为用于生成数字签名的私钥。私钥既可以是通过随机数获取的,也可以是从签名树中选择的,不限定私钥获取方式,灵活度高。

7、在一种可能的实现方式中,获取签名树,包括:获取多个公钥,多个公钥中的每一个公钥包括n个第四元素;将每一个公钥包括的n个第四元素设置为每一个公钥对应的初始树的叶子节点,初始树用于获取签名树的叶子节点;计算每一个公钥对应的初始树的叶子节点对应的哈希值,得到每一个公钥对应的初始树的根节点;将多个公钥对应的初始树的根节点作为签名树的叶子节点;计算签名树的叶子节点对应的哈希值,得到签名树的非叶子节点;基于签名树的叶子节点与非叶子节点得到签名树。由于签名树的非叶子节点是通过哈希值计算得到的,具有单向不可逆性,任意一个非叶子节点均可有效抵抗量子攻击,生成的签名树安全性高。

8、在一种可能的实现方式中,获取多个公钥,包括:迭代计算私钥中包括的各个第二元素对应的哈希值,得到包括n个第四元素的公钥,任意一个第二元素的第二迭代计算次数基于第一消息的基w确定。通过哈希值计算得到用于生成签名树的公钥,公钥的安全性与可靠性高。

9、在一种可能的实现方式中,获取私钥之后,还包括:在签名树中确定数字签名对应的验证路径经过的叶子节点与非叶子节点;获取验证路径经过的叶子节点与非叶子节点的值,得到验证路径,验证路径用于验证数字签名。

10、在一种可能的实现方式中,获取待签名的第一消息,包括:获取待传输数据,基于信息提取算法从待传输数据中提取第一消息。

11、在一种可能的实现方式中,待传输数据为用于指示镜像启动的数据或用于指示镜像升级的数据。不限定待传输数据的类型,灵活度高,通用性强。

12、在一种可能的实现方式中,得到包括n个第二元素对应的第三元素的数字签名之后,还包括:向验证设备发送数字签名与待传输数据,验证设备用于基于数字签名确定待传输数据的传输情况。

13、第二方面,提供了一种签名验证方法,该方法包括:验证设备获取待验证的数字签名与待验证的第二消息,数字签名通过对待签名的第一消息进行签名得到,第二消息为第一消息对应的消息,数字签名包括n个第三元素,n为正整数;验证设备基于第二消息获取第二元素队列,第二元素队列包括由第二消息得到的与n个第三元素一一对应的n个第五元素;验证设备将每一个第三元素填充为长度为z的倍数的第二比特串,对第二比特串进行分组,得到每一个第三元素对应的多个第二分组,对每一个第三元素对应的多个第二分组中的各个第二分组进行填充,将多个填充后的第二分组压缩为长度为z/2的第二哈希值,z为偶数;验证设备对每一个第三元素的第二哈希值进行迭代计算,直至迭代计算的次数达到第三迭代计算次数,将迭代计算的次数达到第三迭代计算次数得到的哈希值作为每一个第三元素对应的第六元素,得到第二消息对应的公钥,第二消息对应的公钥包括与n个第三元素一一对应的n个第六元素,每一个第三元素的第三迭代计算次数基于每一个第三元素对应的第五元素确定;验证设备基于第二消息对应的公钥确定签名验证结果。

14、通过哈希值的迭代计算实现数字签名的验证,由于计算的哈希值具有单向不可逆性,量子算法无法破解,可以抵抗量子算法的攻击,验签过程的安全性高,验证得到的签名验证结果的可靠性高。

15、在一种可能的实现方式中,基于第二消息获取第二元素队列,包括:按照基w展开第二消息,得到m个第五元素,m为小于n的正整数,w为基于n确定的正整数;按照w展开第二消息对应的校验和,得到x个第五元素,m与x的和等于n;将m个第五元素与x个第五元素进行拼接,得到包括n个第五元素的第二元素队列。由于展开第二消息的过程中是以w为基,最终展开得到的第二元素均不大于w,有效控制了第二元素的大小,得到的第二元素队列更规律。

16、在一种可能的实现方式中,基于第二消息对应的公钥确定签名验证结果,包括:获取数字签名对应的验证路径;基于验证路径包括的叶子节点、非叶子节点的值与第二消息对应的公钥进行哈希值计算,得到计算结果;确定计算结果与验证路本文档来自技高网...

【技术保护点】

1.一种签名生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息获取第一元素队列,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述获取私钥,包括:

4.根据权利要求1或2所述的方法,其特征在于,所述获取私钥,包括:

5.根据权利要求4所述的方法,其特征在于,所述获取签名树,包括:

6.根据权利要求5所述的方法,其特征在于,所述获取多个公钥,包括:

7.根据权利要求4-6任一所述的方法,其特征在于,所述获取私钥之后,还包括:

8.根据权利要求1-7任一所述的方法,其特征在于,所述获取待签名的第一消息,包括:

9.根据权利要求8所述的方法,其特征在于,所述待传输数据为用于指示镜像启动的数据或用于指示镜像升级的数据。

10.根据权利要求8或9所述的方法,其特征在于,所述得到包括n个第二元素对应的第三元素的数字签名之后,还包括:

11.一种签名验证方法,其特征在于,所述方法包括:

12.根据权利要求11所述的方法,其特征在于,所述基于所述第二消息获取第二元素队列,包括:

13.根据权利要求11或12所述的方法,其特征在于,所述基于所述第二消息对应的公钥确定签名验证结果,包括:

14.根据权利要求11-13任一所述的方法,其特征在于,所述获取待验证的数字签名与待验证的第二消息,包括:

15.根据权利要求14所述的方法,其特征在于,所述基于所述第二消息对应的公钥确定签名验证结果之后,还包括:

16.根据权利要求14或15所述的方法,其特征在于,所述签名设备还用于发送待传输数据,所述基于所述第二消息对应的公钥确定签名验证结果之后,还包括:

17.根据权利要求14-16任一所述的方法,其特征在于,所述待验证数据为用于指示镜像启动的数据或用于指示镜像升级的数据。

18.一种签名生成装置,其特征在于,所述装置应用于签名设备,所述装置包括:

19.根据权利要求18所述的装置,其特征在于,所述获取模块,用于按照基w展开所述第一消息,得到m个第一元素,所述m为小于所述n的正整数,所述w为基于所述n确定的正整数;按照所述w展开所述第一消息对应的校验和,得到x个第一元素,所述m与所述x的和等于所述n;将所述m个第一元素与所述x个第一元素进行拼接,得到包括所述n个第一元素的所述第一元素队列。

20.根据权利要求18或19所述的装置,其特征在于,所述获取模块,用于获取n个随机数;计算各个随机数对应的哈希值,得到包括n个第二元素的私钥。

21.根据权利要求18或19所述的装置,其特征在于,所述获取模块,用于获取签名树,所述签名树的一个叶子节点基于一个公钥确定,所述签名树的一个叶子节点可用于生成签名;从所述多个叶子节点中选择目标节点,将所述目标节点对应的私钥作为用于生成所述数字签名的私钥。

22.根据权利要求21所述的装置,其特征在于,所述获取模块,用于获取多个公钥,所述多个公钥中的每一个公钥包括n个第四元素;将所述每一个公钥包括的所述n个第四元素设置为所述每一个公钥对应的初始树的叶子节点,所述初始树用于获取所述签名树的叶子节点;计算所述每一个公钥对应的初始树的叶子节点对应的哈希值,得到所述每一个公钥对应的初始树的根节点;将所述多个公钥对应的初始树的根节点作为所述签名树的叶子节点;计算所述签名树的叶子节点对应的哈希值,得到所述签名树的非叶子节点;基于所述签名树的叶子节点与非叶子节点得到所述签名树。

23.根据权利要求22所述的装置,其特征在于,所述获取模块,用于迭代计算所述私钥中包括的各个第二元素对应的哈希值,得到包括所述n个第四元素的公钥,任意一个第二元素的第二迭代计算次数基于所述第一消息的基w确定。

24.根据权利要求21-23任一所述的装置,其特征在于,所述获取模块,还用于在所述签名树中确定所述数字签名对应的验证路径经过的叶子节点与非叶子节点;获取所述验证路径经过的叶子节点与非叶子节点的值,得到所述验证路径,所述验证路径用于验证所述数字签名。

25.根据权利要求18-24任一所述的装置,其特征在于,所述获取模块,用于获取待传输数据,基于信息提取算法从所述待传输数据中提取所述第一消息。

26.根据权利要求25所述的装置,其特征在于,所述待传输数据为用于指示镜像启动的数据或用于指示镜像升级的数据。

27.根据权利要求25或26所述的装置,其特征在于,所述装置还包括:发送模块,用于向验证设备发送...

【技术特征摘要】

1.一种签名生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述第一消息获取第一元素队列,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述获取私钥,包括:

4.根据权利要求1或2所述的方法,其特征在于,所述获取私钥,包括:

5.根据权利要求4所述的方法,其特征在于,所述获取签名树,包括:

6.根据权利要求5所述的方法,其特征在于,所述获取多个公钥,包括:

7.根据权利要求4-6任一所述的方法,其特征在于,所述获取私钥之后,还包括:

8.根据权利要求1-7任一所述的方法,其特征在于,所述获取待签名的第一消息,包括:

9.根据权利要求8所述的方法,其特征在于,所述待传输数据为用于指示镜像启动的数据或用于指示镜像升级的数据。

10.根据权利要求8或9所述的方法,其特征在于,所述得到包括n个第二元素对应的第三元素的数字签名之后,还包括:

11.一种签名验证方法,其特征在于,所述方法包括:

12.根据权利要求11所述的方法,其特征在于,所述基于所述第二消息获取第二元素队列,包括:

13.根据权利要求11或12所述的方法,其特征在于,所述基于所述第二消息对应的公钥确定签名验证结果,包括:

14.根据权利要求11-13任一所述的方法,其特征在于,所述获取待验证的数字签名与待验证的第二消息,包括:

15.根据权利要求14所述的方法,其特征在于,所述基于所述第二消息对应的公钥确定签名验证结果之后,还包括:

16.根据权利要求14或15所述的方法,其特征在于,所述签名设备还用于发送待传输数据,所述基于所述第二消息对应的公钥确定签名验证结果之后,还包括:

17.根据权利要求14-16任一所述的方法,其特征在于,所述待验证数据为用于指示镜像启动的数据或用于指示镜像升级的数据。

18.一种签名生成装置,其特征在于,所述装置应用于签名设备,所述装置包括:

19.根据权利要求18所述的装置,其特征在于,所述获取模块,用于按照基w展开所述第一消息,得到m个第一元素,所述m为小于所述n的正整数,所述w为基于所述n确定的正整数;按照所述w展开所述第一消息对应的校验和,得到x个第一元素,所述m与所述x的和等于所述n;将所述m个第一元素与所述x个第一元素进行拼接,得到包括所述n个第一元素的所述第一元素队列。

20.根据权利要求18或19所述的装置,其特征在于,所述获取模块,用于获取n个随机数;计算各个随机数对应的哈希值,得到包括n个第二元素的私钥。

21.根据权利要求18或19所述的装置,其特征在于,所述获取模块,用于获取签名树,所述签名树的一个叶子节点基于一个公钥确定,所述签名树的一个叶子节点可用于生成签名;从所述多个叶子节点中选择目标节点,将所述目标节点对应的私钥作为用于生成所述数字签名的私钥。

22.根据权利要求21所述的装置,其特征在于,所述获取模块,用于获取多个公钥,所述多个公钥中的每一个公钥包括n个第四元素;将所述每一个公钥包括的所述n个第四元素设置为所述每一个公钥对应的初始树的叶子节点,所述初始树用于获取所述签名树的叶子节点;计算所述每一个公钥对应的初始树的叶子节点对应的哈希值,得到所述每一个公钥对应的初始树的根节点;将所述多个公钥对应的初始树的根节点作为所述签名树的叶子节点;计算所述签名树的叶子节点对应的哈希值,得到所述签名树的非叶子节点;基于所述签名树的叶子节点与非叶子节点得到所述签名树。

23.根据权利要求22所述的装置,其特征在于,所述获取模块,用于迭代计算所述私钥中包括的各个第二元素对应的哈希值,得到包括所述n个第四元素的公钥,任意一个第二元素的第二迭代计算次数基于所述第一消息的基w确定。

24.根据权利要求21-23任一所述的装置,其特征在于,所述获取模块,还用于在所述签名树中确定所述数字签名对应的验证路径经过的叶子节点与非叶子节点;获取所述验证路径经...

【专利技术属性】
技术研发人员:张小虎章庆隆刘亚敏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1