基于国密算法SM2_的云端协同签名模块研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
钥。
具体流程如图1所示。
图1密钥生成流程
1)终端密码模块随机秘密选择A∈,计算:
A=A*,
发送给服务端。
其中,A为终端密码模块私钥分片,
为终端密码模块公钥分片。
2)服务端随机秘密选择B∈,计算:
B=B*,
=A B-。
存储(,B,),将B发送给终端密码模块。
其中,
服务端私钥分片,B为服务端公钥分片,为双方共同公钥。
3)终端密码模块计算:
=A B-。
,A,B)。
图2协同签名流程
(1)终端密码模块选择随机数A∈,计算:
A
=A*,
A'
=A*B,
并发送至服务端。
(2)服务端接收消息并验证A=B*A',若验证失败则退出协议,若验证成功则选择随机数B∈,并计算:
B
=B*A,
B'
=B*,
并发送至终端密码模块。
根据公钥得到的椭圆曲线上的点与签名得到的点是一致再把'与接收到的消息相加,若与签名
因此,本协议的正确性可验证。
效率分析
本协议中移动智能终端与云端之间将发生
次报文,交互中间计算数据完成协同签名,
模块需要2次模幂运算,服务端需要2次模幂运算。
此外移动智能终端与云端各有一次运算与对方的消息无关,
通常可以提前计算,由此移动智能终端与云端实际需要运算的过程都减少了一次。
仅从计算量的角度进行分析,
减少了运算次数,提高了协同签名效率,且网络资源、
消耗较低。
图3模块整体架构
各模块作用如下。
(1)终端密码模块:终端密码模块作为客户端,封装多种
安全接口,提供密钥分片生成和存储等功能。
主要包括SM2
同签名模块、SM2验签模块、SM3杂凑模块和身份认证模块,
同时在底层调用Gmssl库,密码功能模块主要负责终端密码
模块的私钥分配、密钥更新以及与云端密码模块协同产生数
字签名(,)。
(2)云端密码模块:配合终端密码模块完成协同签名的服
务器,响应终端密码模块协同签名的请求,返回终端密码模块
完成签名和公钥。
主要包括SM2协同签名模块、SM3杂凑模
块和身份认证模块,同时在底层调用Gmssl库,密钥管理模块
包括密钥的生成、更新和存储。
当进行SM2数字签名时,终端
密码模块的密码功能模块和云端密码模块交换各自计算得到
的中间数据,得到最终的数字签名运算结果(,)。
具体来说,终端密码模块与云端密码模块进行SM2数字
签名协同生成运算时,首先它们之间会通信建立相应的连接,
表1测试环境
之后终端密码模块和云端密码模块会各自调用自己的秘密份
额来进行相应的运算,并进行数据传递,最后得到用户消息
的数字签名(,)。
核心模块设计与实现
基于SM2算法的云端协同签名模块的核心功能在于协
4.1功能测试
本系统主要具备4项功能,具体为:终端密码模块与云端
密码模块的身份认证,生成公私钥对,协同签名、验签。
经过逐
一测试,本系统的4项主要功能均可达到预期效果。
4.2性能分析
相较于市面上其他的联合签名系统,本系统优势明显。
如
罗永安等[13]设计的联合签名需要双方公私钥,更多的初始数据
带来更多的计算过程,其标量乘次数明显多于本系统。
此外本
系统在签名过程中对数据进行预处理,进一步提高了系统的
4.3安全性分析
SM2的安全性是基于椭圆曲线离散对数问题(ECDLP
的难度,该方案的安全性问题在于若缺失任一方共享的密钥,则无法恢复用户的私钥。
故对于基于SM2数字签名的密钥共享协议,先假设攻击方A知道2、2与正确的签名数据(,…,满足关系式:
2
(1+A)-1*A=(1+2+…+)mod。
(为随机的整数,可得到:
广告。