一种数据签名方法、装置、设备及计算机可读存储介质与流程

文档序号:35058914发布日期:2023-08-06 19:45阅读:26来源:国知局
一种数据签名方法、装置、设备及计算机可读存储介质与流程

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


背景技术:

1、随着云计算时代的到来,在云租户的实际业务中,一份文件或材料,经常需要几个单位或部门分别签字(或盖章)才有效,云是一个不安全的场景,云服务提供商可以查看甚至操作所有云租户的数据,存在签名过程中使用的关键敏感信息(如秘密密钥)的存储和使用的问题。

2、多重签名技术作为在网络环境里解决上述问题的一种方法,用于同一文档必须经过多人的签名才有效的情形。多重签名即为多个签名者共同参与对一份电子文档进行签名。对多个签名者的签名进行验证,如果其中有一个是无效的签名,就拒绝整个认证结果。目前主要存在包括下述几种方式:1)各方人员单独进行数据签名的方式,以保证完整性和不可抵赖性,此种方式需要验证多个数据签名,计算量大,效率差;2)各方人员采用shamir秘密共享算法完成密钥共享,通过多于门限值的人员恢复密钥,并对文件进行加解密并进行哈希(hash)计算的方式。此种方式计算量大,并且如果各方人员中的一个或多个密钥丢失或更换,其他所有人也必须同时更换,不便于实际操作;3)采用schnorr聚合签名的方式对文件进行签名,以保证完整性和不可抵赖性,此种方式计算量小,但无法抵抗密钥取消攻击、重放攻击等。

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、由上述技术方案可知,通过使用软件保护扩展sgx技术进行签名终端的公钥和共享公钥的存储和计算使用,保证了关键敏感信息的数据安全。使用密码学安全的随机数生成器生成随机数,能抵抗密钥取消攻击,避免了随机数碰撞的问题。多方认证的各签名终端对目标数据进行聚合签名,保证了数据的完整性、不可抵赖性。聚合签名仅生成一个签名信息,验证签名的时候验证一个即可,极大的减少了签名验证的时间。

39、相应的,本技术还提供了与上述数据签名方法相对应的数据签名装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1