2024年6月15日发(作者:蔺冬梅)
第31卷第1期
Vol.31No.1
北京电子科技学院学报
JournalofBeijingElectronicScienceandTechnologyInstitute
2023年3月
Mar.2023
基于SM2的云端双方协同签名方案设计与应用
∗
许盛伟 邓 烨 田 宇
北京电子科技学院,北京市 100070
摘 要:针对当前国内对基于国密算法的协同签名方案的相关研究较少,方案的效率和安全性难
以达到实际应用需求等问题,本文对基于SM2的协同签名方案进行优化设计和应用。通过提出
私钥分片方案和移动智能终端私钥安全管理技术,保障了用户私钥安全。方案中私钥分别存储
在移动智能终端和云端,移动智能终端使用私钥进行数字签名时,需要和云端联合签名服务器协
同工作,保证在签名过程中的敏感数据安全性和签名结果的合法性。同时本方案结合SM2算法
的特点优化实现了云端双方协同签名系统,采用自主设计的预计算技术提高了协同签名效率。
通过实验验证和性能测试,本方案在安全性方面优于同类且在效率上不受损失,易于成果转化,
可以广泛应用于移动办公、即时通信和网络音视频会议等应用中。
关键词:私钥分片;协同签名;移动智能终端;国密算法
中图分类号:TN915.08 文献标识码:A文章编号:1672
-
464X(2023)1
-
01
-
08
外算法如AES等,基于国密算法的协同签名方
案仅有几篇专利和少数论文,在安全性和效率方
面都无法适应用户的需求。例如《基于国密算
法分片密钥技术的政务移动安全接入研究》
[4]
一文提出的基于SM9密钥分片的政务方案,虽
然有着密钥分片的思想,但是缺乏对私钥安全性
保护的方案,不符合密码安全要求,而本方案则
提出了终端安全管理技术,通过PIN码的设计
保证了密钥管理的安全性,通过测试验证了本系
统的设计思路是可行的。另如在《基于组合密
钥的智能电网多源数据安全保护》
[5]
中,提出了
根据不同条件获得分片方案,把一个密钥分成若
干个互不相同的子密钥片,然后把这些密钥分片
组合生成新的密钥,分配到系统中的不同终端
引 言
当前国外的密码研究水平处于前沿位置,并
且有较为完善的密码产品和体系,国内的大型企
业、银行等资本雄厚的机构也青睐于使用外国的
密码产品,但在美国的“棱镜门”事件发生后,我
们不得不考虑其存在的后门问题,这使得我国网
络安全甚至国家安全都受到了严重的威胁。上
述这些数据和事件不断提醒我们推动国产化信
息安全产品的研发和使用,把相关技术掌握在自
己手中,努力建立健全密码产品体系及管理体
制,亟需推进信息产品、密码产品的国产化替代。
目前国内在对于保障信息安全的手段中起
到重要作用的协同签名方案的研究多是基于国
∗∗ 作者简介:许盛伟(1976
-
),男,教授,博士生导师,研究方向为大数据安全、人工智能与密码应用。
田 宇(1998
-
),男,硕士研究生,主要研究方向为零信任安全。
∗ 基金项目:国家重点研发计划(项目编号:2022YFB3104402);中央高校基本科研业务费专项资金资助(项目编号:328202221)
邓 烨(1999
-
),男,硕士研究生,主要研究方向为密码应用(E-mail:dyaipai@)。
Copyright©博看网. All Rights Reserved.
北京电子科技学院学报
·2·
上,这种方案过程繁琐,效率不高,在实际应用中产化替代作出卓越贡献。
2023年
难以适配,本系统与其相比在安全性得到保证的
前提下运行效率有所提高。
因此,本文基于这些问题与应用需求,在国
家政务信息系统和关键基础设施国产化密码应
用要求的指导下,对基于国密算法的协同签名方
案进行设计和优化,该方案满足了移动智能终端
对于协同签名以及一些通用密码服务等方面的
安全需求,同时提升了协同签名过程的效率。
本文提出的基于SM2算法的协同签名方
案,主要贡献有三个方面:
应用分片密钥技术,根据相关密码模块技术
要求,提出了基于门限思想的密钥分片技术,实
现移动智能终端和云端的密钥分片存储,使移动
智能终端和云端不再存储完整的用户私钥,提高
了抵抗同时攻击的能力,解决密钥管理的安全和
密码运算的安全问题。
同时基于密钥分片存储,提出移动智能终端
私钥安全管理技术。该技术使用PIN码来设计
实现,移动智能终端在执行数字签名、数据加密
等操作时需要与云端联合运算,通过在移动智能
终端设置PIN码并在云端验证,能够有效抵抗
针对移动智能终端PIN码的离线暴力攻击,提
升了安全强度。
提出基于SM2国密算法的快速协同签名技
术,针对国密算法的特点,设计了预计算的处理
环节。简化了协同签名流程,提高了协同签名效
率,且网络资源、硬件资源消耗较低,并具备很好
的安全性。相较于之前的类似方案,本方案在安
全性和效率方面皆得到了提高,具有很好的应用
前景。
基于SM2算法的协同签名方案的设计依托
于拥有我国自主知识产权的SM2椭圆曲线公钥
密码算法,可解决签名安全、终端存储密钥安全、
个人隐私安全、数据安全、移动办公等安全问题,
下一步将对本文成果进行系统集成,为日后的实
际应用做好准备,为我国关键信息基础设施的国
1 相关知识
1.1 门限法
Shamir教授在1979年曾提出基于门限秘密
共享的分布式签名
[6]
,门限秘密共享指的是n
个实体分别持有私钥的一部分,当且仅当凑齐超
过阈值数量的被分割密钥才可以恢复成完整密
钥,从而完成签名或解密的工作。这种方法虽然
实现了分布式签名,然而一旦私钥被恢复,持有
完整私钥的一方就可以在其他实体不知晓的情
况下任意使用私钥,造成极大的安全隐患。
1.2 SM2签名算法
2010年底,国家密码管理局公布了我国自
主研制的“椭圆曲线公钥密码算法”(SM2算
法)
[7]
。SM2椭圆曲线公钥密码算法是我国自
主设计的公钥密码算法,包括SM2
-
1椭圆曲线
数字签名算法,SM2
-
2椭圆曲线密钥交换协议,
SM2
-
3椭圆曲线公钥加密算法,分别用于实现
数字签名密钥协商和数据加密等功能。
(1)初始化(Setup):
SM2签名算法包含了以下四个步骤。
给定安全参数λ,生成椭圆曲线参数
params
=
(p,a,b,P,q)并输出。
(2)密钥生成(Key):
给定参数后,选择随机数x∈Z
∗
q
作为私钥,
计算Q
=
x·P作为公钥,输出(Q,x)作为公私
钥对。
(3)签名算法(Sign):
者将执行以下步骤:
其中IDA是用户的可辩别标识,ENTL是IDA的
长度,计算M
=
Z||M;
②计算e
=
H
v
(M);
=
k·P
=
(x
1
,y
1
);
③选择随机数k∈Z
∗
q
,计算椭圆曲线点R
①计算Z
=
H
v
(ENTL||IDA||a||b||pk),
给定参数params,私钥x以及消息m,签名
Copyright©博看网. All Rights Reserved.
第31卷基于SM2的云端双方协同签名方案设计与应用
-
1
x)modq;
④计算r
=
x
1
+
emodq,s
=
(1
+
x)
⑤输出签名δ
=
(r,s)。
(4)验证算法(Ver):
(k-r·
·3·
给定参数params公钥Q
=
x·P,消息m′以
及它的签名δ′
=
(r′,s′),验证算法运行如下:
①检验r′,s′∈Z
∗
q
是否成立;
②设M′
=
Z||M′,计算e′
=
H
v
(M′);
则计算椭圆曲线点R′
=
s′
×
P
+
t·Q
=
(x
1
′,
y
1
′),验证r′
=
e′
+
x
1
′modq是否成立,验证通过
则输出1,否则输出0。
图1 本方案的设计架构图
③计算t
=
r′
+
s′,若t
=
0则验证不通过;否
2 方案设计及实现方法
动智能终端发送的协同签名的各种中间值,与移
动智能终端交互完成协同签名,接收到用户的
ID、PIN码及公钥分片后,将向服务器密码设备
发出储存申请将用户的ID、PIN码及公钥分片
储存至服务器密码设备中,在云端需要用户口
令、密钥数据时临时向服务器密码设备进行
申请。
移动智能终端部分通过app上集成的密码
模块即移动智能终端密码模块提供分片密钥生
成、更新和存储功能。其中封装了多种安全接
口,支持多种开发语言,提供分片密钥存储和管
理功能等。它由多个模块组成,包括SM2协同
签名模块、验签模块、SM3杂凑模块、SM4加解
密模块、密钥管理模块和通信模块,上层封装成
SM2协同签名、验签接口,作为对外部提供的接
口。其中密钥管理模块又包含密钥的生成、更新
和存储。移动智能终端基于java实现,在安卓
系统上运行。通过调用GmSSL库函数来完成一
系列功能,其中GmSSL是个开源的密码工具箱,
支持SM2/SM3/SM4/SM9/ZUC等国密算法。
云端密码模块则与密钥管理模块相互配合
达成包括密钥生成、更新和存储等功能(通过调
用云端密码设备)。密码机设备用于储存用户
的PIN码,以及私钥分片。设备使用中安网脉
基于云端密码设备的软硬件设备。
针对移动智能终端中对于身份认证、数字签
名等密码应用的需求,本文设计并优化了基于
SM2算法的协同签名方案,实现了在移动智能
终端可以进行密钥分片的生成和安全存储。在
本方案中主要是基于SM2算法,采用了密钥分
片存储、协同签名技术以及终端私钥安全管理技
术,同时针对SM2算法的特点对协同签名流程
进行优化,实现了签名过程中的敏感数据安全性
和签名结果的合法性,同时在签名速度方面得到
提高。
2.1 方案设计
如图1所示,本方案设计了一个由云端、移
动智能终端组成的基于SM2的云端双方协同签
名方案。通过创新性的快速协同签名技术、密钥
分片技术、终端私钥安全管理技术,使得本方案
相较于同类方案,在安全性得到大大提升的同时
保证了运行效率不受太多损耗。
方案中的云端负责响应移动智能终端的密
钥分片、协同签名请求,提供云端公、私钥分片生
成功能;在密钥分片过程中向移动智能终端发送
云端产生的云端公钥分片,同时接收移动智能终
端发送的终端公钥分片,与移动智能终端交互完
成密钥的分片;在协同签名过程中发送和接收移
Copyright©博看网. All Rights Reserved.
北京电子科技学院学报
·4·
本系统进行协同签名主要分为两个步骤,即
2023年
密钥分片和协同签名。
(1)密钥分片
进行密钥分片时,主要调用密钥生成模块生
成部分私钥,使用密钥存储模块进行公私钥的存
储,在云端会将公私钥存储在云端密码设备中,
此外,本系统还利用PIN码对移动智能终端私
钥分片进行保护。
(2)协同签名
进行协同签名时,主要调用SM2协同签名
模块;移动智能终端和云端的通信模块负责协同
签名过程中的参数传递。
(3)安全的传输协议
移动智能终端与云端通信使用HTTPS安全
传输协议,以保证用户PIN码、签名计算中间值
不会泄露,以及预防可能遭到的重放攻击。
2.2 实现方法
(1)密钥分片技术
图2 密钥分片流程图
算出公钥分片pk
B
=
d
B
×
P与完整公钥pk
=
存至UsbKey中,将pk
B
传输给移动智能终端。
d
A
d
B
P-P,
即
pk
=
d
B
pk
A
-
P,并将(pk,d
B
,pk
A
)储
③移动智能终端接受到云端的公钥分片后
密钥分片技术即将私钥分割为两个部分:第
一分片子密钥和第二分片子密钥。第一分片子
密钥存放到移动智能终端,第二分片子密钥则由
云端服务器派生生成,两个分片子密钥完成协同
签名。最后,完成的协同签名在移动智能终端生
成,完整签名可以实现数据的不可否认和操作的
不可抵赖。密钥分片具体流程如图2所示。
定义p为大素数,Fp为有限域。选择a,b∈
Fp作为椭圆曲线E的参数,定义P为椭圆曲线
E上的一点,并且将其作为群G的生成元。群G
的阶为q,M为待签名的消息,ENTL为IDT的长
度,IDT为签名用户的名字。其余未注明变量均
为计算的中间变量,pk为联合公钥,pk
A
为移动
智能终端公钥分片,pk
B
为云端公钥分片,d
A
为
移动智能终端私钥分片、d
B
为云端私钥分片。
①移动智能终端随机秘密选择私钥分片d
A
即可计算出公钥pk,pk
=
d
A
d
B
P-P,即pk
=
d
A
pk
B
-
P,存储(pk,d
A
,pk
B
)。
用户ID及其私钥绑定,并存储在Usbkey中。
(2)快速协同签名技术
④移动智能终端设置PIN码,该PIN码和
移动智能终端密码模块使用第一分片子密
钥对消息进行签名后,将部分签名结果s传递给
云端服务器,云端服务器使用第二分片子密钥对
签名结果变换后生成t并传回给移动智能终端。
整个协同签名只使用两个报文(1个来回)就完
成整个过程,简化了协同签名流程,提高了协同
签名效率,网络资源、硬件资源消耗较低,也具备
很好的安全性。协同签名流程如图3所示。
分片。
①移动智能终端输入PIN码,加载密钥
②移动智能终端和云端进行相互验证,云端
∈Z
q
,并计算公钥分片pk
A
=
d
A
×
P,后将pk
A
传给
云端。
②云端随机秘密选择私钥分片d
B
∈Z
q
,计
通过身份验证后即可向UsbKey申请与用户对应
的密钥分片。移动智能终端秘密选择k
A
∈Z
∗
q
,
Copyright©博看网. All Rights Reserved.
第31卷基于SM2的云端双方协同签名方案设计与应用
1.70GHz
×
16RAM:16.0GB
·5·
软件环境:系统:Ubuntu20.04.3LTS64位
测试平台:QtCreator4.8.0BasedonQt
5.12.0(GCC5.3.1)
硬件环境:
移动智能终端测试环境:
CPU:海思麒麟970处理器
RAM:6.0GB
软件环境:系统:Android10
测试平台:Androidstudio11
测试范围:对该协同签名方案的实际性能进
行测试。
3.1 性能测试
性能数据如下图所示,程序运行资源消耗较
低,资源占比仅维持在百分之十左右。
图3 协同签名流程图
并计算R
A
=
k
A
×
P,R′
A
=
k
A
×
pk
B
,并将R
A
与
R′
A
的值传给云端;在云端验证是否满足R
A
=
d
B
×
R′
A
,若满足,则计算R
B
=
k
B
×
pk
A
,R′
B
=
k
B
×
P,
并将R
B
,R′
B
发送给移动智能终端。移动智能终
端收到消息后,验证是否满足R
B
=
d
A
×
R′
B
,若满
足,则开始进行签名。
③移动智能终端使用分片私钥生成部分签
图4 移动智能终端CPU测试图
名s′计算R′
=
R
A
+
R
B
=
(x
A
,y
A
),Z
A
=
SM3
(ENTL‖ID
T
‖a‖b‖P‖pk),r
=
SM3(Z
A
‖M)
值发送给云端并请求云端进行协同签名。
+
x
A
modq,计算s′
=
(k
A
+
r)d
A
-
1
modq然后将s′的
④云端计算t
=
(s′
+
k
B
)d
B
-
1
modq,生成部分
⑤移动智能终端计算s
=
t
-
r,并输出协同签
序号
1
2
签名,然后将t的值发送给移动智能终端。
名(r,s)。
图5 移动智能终端内存测试图
表1 性能测试数据
协同签名速度
密钥生成速度
测试项
平均每秒签名速度
平均每秒密钥生成
测试项描述
40次/秒
90次/秒
值
3 性能测试与分析
云端测试环境:
硬件环境:
3.2 性能分析
CPU:IntelXeon(R)Bronze3106CPU@
(1)密钥分片
密钥分片技术将私钥分成两个部分,分别存
Copyright©博看网. All Rights Reserved.
北京电子科技学院学报2023年
·6·
放在移动智能终端与云端(移动智能终端私钥码难度的目的。同时,本系统在移动智能终端
自己存储,云端私钥放在云端密码设备)。经过
理论分析,SM2协议与ECMQV协议二者都基于
椭圆曲线的计算,两者每次运算大约都需要1.5
次标量乘,而经过实际运算,本系统实际测的公
私钥生成并分片的效率与理论分析相差不大,大
约在100次每秒,总体在可接受范围内。
(2)协同签名
从签名流程图来看,在传统的签名(r,s)
中,r生成后s根据r的值随后生成,平均签名速
度大约在40次每秒。但在本系统中r生成后,
会由云端生成中间值t,随后在移动智能终端由
r和t的值计算出s,虽然步骤变多,但是极大的
提升了整个过程的安全性,并且由于创新性的加
入了预计算处理过程,在代码中预先用SM3得
到摘要缩短了所需时间。相较于市面上其他的
联合签名系统,本系统优势明显。如罗永安,司
亚利,刘文远
[11]
设计的联合签名需要双方公私
钥,更多的初始数据带来了更多的计算过程,因
此本方案在性能实现上更加优秀。
APP中加入对设备MAC地址的识别,以保证对
移动智能终端设备本身的身份鉴别;此外在用户
还需要通过移动智能终端自带的身份识别(例
如指纹识别、人脸识别等),再次保证使用移动
智能终端的用户的身份的合法性。
(2)有效防止抵赖问题
完整的签名由移动智能终端和云端联合生
成。可以实现数据的不可否认和操作的不可抵
赖。随时间变化的椭圆曲线初始化参数可以防
止重放攻击所导致的抗抵赖问题。
(3)有效抵抗暴力破解
移动智能终端密钥分片使用PIN码保护,
但攻击人无法离线通过暴力尝试不同PIN码来
恢复私钥分片。移动智能终端的保护方案并不
报告加载私钥时使用的PIN码是否正确,加载
的私钥是否恢复成功,必须请求云端服务器提供
信息,方可知道尝试PIN码的正确性。
云端服务器可以有效确认移动智能终端的
签名的合法性,进而确认移动智能终端是否正确
地恢复了私钥分片,可以有效锁定在线暴力破解
PIN码的行为。
4 安全性分析
(1)有效防范中间人攻击
防范中间人攻击的原则是必须对认证过程
5 结束语
的传输者或是认证过程的本身真实性进行认证。
为确保连接云端的移动智能终端安全,必须对每
一用户或与之相连的终端设备进行有效的标识
与鉴别,只有通过鉴别的用户才能被赋予相应的
权限,进入APP并在规定的权限内操作。用户
使用终端APP时,需要输入设定的密码才能使
用,以保证对使用终端的用户的身份鉴别。同
时,为防止非法用户能够通过反复输入密码,达
到猜测用户密码的目的,本系统限制用户登录过
程中连续输入错误密码的次数。当用户多次输
入错误密码后,移动智能终端会自动锁定该用户
或一段时间内禁止该用户登录,从而增加猜测密
本文设计并实现了一个基于SM2算法的协
同签名方案。该方案创新性地使用密钥分片技
术、协同签名技术和移动智能终端私钥安全管理
技术,可以为移动智能终端应用提供易用、安全
的增强认证和数据安全保护,实现移动智能终端
私钥的安全存储。此外,本方案对协议进行创
新,通过针对SM2国密算法的特点对签名流程
进行重新设计与算法优化,实现快速协同签名技
术,通过功能测试和性能测试,与其他同类方案
相比,本方案在提高了安全性的同时不损失其性
能,且易于成果转化,对推动我国关键信息基础
设施国密算法应用起到重要作用。
Copyright©博看网. All Rights Reserved.
第31卷基于SM2的云端双方协同签名方案设计与应用
参考文献
[1]
[2] 李兆斌,刘丹丹,黄鑫,等.基于国密算法的
安全接入设备设计与实现[J].信息网络安
全,2016.
[3] 国家密码管理局.GM/T0009
-
2012.北京:
中国标准出版社,2012:13
-
14.
[4] 焦迪.基于国密算法分片密钥技术的政务移
动安全接入研究[J].网络安全技术与应
用,2020(9):28
-
30.
[5] 高建,陈文彬,庞建民,等.基于组合密钥的
智能电网多源数据安全保护[J].电信科
学,2020,36(1):134
-
138.
[6] hareasecret[J].Communi-
[7] ChenLi-Quan,ZhuZheng,WangMu-Yang,et
holdGroupSignatureSchemefor
MobileInternetApplication,ChineseJournal
ofComputers,2018,425(5):86
-
101(inChi-
nese).
cationsoftheACM,1979,22(11):612
-
613.
Broadcasts,2019,04:48(inChinese).
[10] 汪朝晖,张振峰.SM2椭圆曲线公钥密码算
法综述[J].信息安全研究,2016,2(11):
[11] 罗永安,司亚利,刘文远.基于椭圆曲线的联
合签名及其在电子现金中的应用[J].华中
师范大学学报(自然科学版),2008(3):350
[12] 苏吟雪,田海博.基于SM2的双方共同签名
协议及其应用[J].计算机学报,2020,43
(4):701
-
710.
[13] 刘培鹤,闫翔宇,何文才,等.基于Android
的密钥分存方案[J].计算机应用与软件,
[14] 王小云,于红波.SM3密码杂凑算法[J].信
息安全研究,2016,2(11):983
-
994.
[15] 彭绪富.电子政务中多方联合签名审批系统
设计[J].微计算机应用,2008(4):29
-
32.
[16] 陈明帅.基于Android的国密SSLVPN终端
的研究与实现[D].北京:华北电力大学(北
京),2021.
[17] 施晓芳,赵少卡,王震懿.基于国密算法的
Android智能终端SSL协议设计与实现[J].
+
64.
福建师大福清分校学报,2019(2):45
-
55
[18] 缪雨润.基于Qt的图形用户界面的研究与
实现[D].南京:东南大学,2015.
2018,35(2):320
-
324
+
333.
-
354.
972
-
982.
·7·
[8] 国家密码管理局.GM/T0028
-
2014.北京:
中国标准出版社,2014:11
-
12.
[9] /T
0003
-
2012SM2EllipticCurvePublic-Key
g,China,2010.
Copyright©博看网. All Rights Reserved.
·8·
北京电子科技学院学报2023年
DesignandApplicationofaCloudBilateralCollaborative
SignatureSchemeBasedonSM2
∗
XUShengwei DENGYe TIANYu
BeijingElectronicScienceandTechnologyInstitute,Beijing100070,
Abstract:Fortheissuethatfewdomesticresearchoncollaborativesignatureschemebasedonstate
cryptoalgorithmisavailableatpresentandexistingschemeshardlysatisfytheefficiencyandsecurityre-
quirementsforpracticalapplications,anoptimizationdesignandapplicationsofcollaborativesignature
schemebasedonSM2arepresentedinthispaper,whereaprivatekeyshardingschemeandaprivate
keysecuritymanagementtechnologyforthemobileintelligentterminalareproposedtoensurethesecur-
ityoftheusers’cheme,privatekeyisseparatelystoredinthemobileintelligent
eprivatekeyisusedbythemobileintelligentterminalforthedigital
servertoguaranteethesecurityofthesensitivedatainthesignatureprocessandthelegalityofthesig-
ile,combinedwiththecharacteristicsoftheSM2algorithm,anoptimalcloudbi-
signature,themobileintelligentterminalisrequiredtocooperatewiththecloudcollaborativesignature
lateralcollaborativesignaturesystemisimplemented,whereanindependentlydesignedpre-calculation
technmentalverification
andperformancetestsindicatethatourdesignissuperiorinsecuritythanexistingsimilardesignswhile
keepingtheefficiency,ignhasabroadapplicationpros-
pectinmobileoffice,instantcommunication,networkaudioandvideoconference,etc.
rithm
(责任编辑:鞠 磊)
Keywords:privatekeysharding;collaborativesignature;mobileintelligentterminal;statecryptoalgo-
Copyright©博看网. All Rights Reserved.
2024年6月15日发(作者:蔺冬梅)
第31卷第1期
Vol.31No.1
北京电子科技学院学报
JournalofBeijingElectronicScienceandTechnologyInstitute
2023年3月
Mar.2023
基于SM2的云端双方协同签名方案设计与应用
∗
许盛伟 邓 烨 田 宇
北京电子科技学院,北京市 100070
摘 要:针对当前国内对基于国密算法的协同签名方案的相关研究较少,方案的效率和安全性难
以达到实际应用需求等问题,本文对基于SM2的协同签名方案进行优化设计和应用。通过提出
私钥分片方案和移动智能终端私钥安全管理技术,保障了用户私钥安全。方案中私钥分别存储
在移动智能终端和云端,移动智能终端使用私钥进行数字签名时,需要和云端联合签名服务器协
同工作,保证在签名过程中的敏感数据安全性和签名结果的合法性。同时本方案结合SM2算法
的特点优化实现了云端双方协同签名系统,采用自主设计的预计算技术提高了协同签名效率。
通过实验验证和性能测试,本方案在安全性方面优于同类且在效率上不受损失,易于成果转化,
可以广泛应用于移动办公、即时通信和网络音视频会议等应用中。
关键词:私钥分片;协同签名;移动智能终端;国密算法
中图分类号:TN915.08 文献标识码:A文章编号:1672
-
464X(2023)1
-
01
-
08
外算法如AES等,基于国密算法的协同签名方
案仅有几篇专利和少数论文,在安全性和效率方
面都无法适应用户的需求。例如《基于国密算
法分片密钥技术的政务移动安全接入研究》
[4]
一文提出的基于SM9密钥分片的政务方案,虽
然有着密钥分片的思想,但是缺乏对私钥安全性
保护的方案,不符合密码安全要求,而本方案则
提出了终端安全管理技术,通过PIN码的设计
保证了密钥管理的安全性,通过测试验证了本系
统的设计思路是可行的。另如在《基于组合密
钥的智能电网多源数据安全保护》
[5]
中,提出了
根据不同条件获得分片方案,把一个密钥分成若
干个互不相同的子密钥片,然后把这些密钥分片
组合生成新的密钥,分配到系统中的不同终端
引 言
当前国外的密码研究水平处于前沿位置,并
且有较为完善的密码产品和体系,国内的大型企
业、银行等资本雄厚的机构也青睐于使用外国的
密码产品,但在美国的“棱镜门”事件发生后,我
们不得不考虑其存在的后门问题,这使得我国网
络安全甚至国家安全都受到了严重的威胁。上
述这些数据和事件不断提醒我们推动国产化信
息安全产品的研发和使用,把相关技术掌握在自
己手中,努力建立健全密码产品体系及管理体
制,亟需推进信息产品、密码产品的国产化替代。
目前国内在对于保障信息安全的手段中起
到重要作用的协同签名方案的研究多是基于国
∗∗ 作者简介:许盛伟(1976
-
),男,教授,博士生导师,研究方向为大数据安全、人工智能与密码应用。
田 宇(1998
-
),男,硕士研究生,主要研究方向为零信任安全。
∗ 基金项目:国家重点研发计划(项目编号:2022YFB3104402);中央高校基本科研业务费专项资金资助(项目编号:328202221)
邓 烨(1999
-
),男,硕士研究生,主要研究方向为密码应用(E-mail:dyaipai@)。
Copyright©博看网. All Rights Reserved.
北京电子科技学院学报
·2·
上,这种方案过程繁琐,效率不高,在实际应用中产化替代作出卓越贡献。
2023年
难以适配,本系统与其相比在安全性得到保证的
前提下运行效率有所提高。
因此,本文基于这些问题与应用需求,在国
家政务信息系统和关键基础设施国产化密码应
用要求的指导下,对基于国密算法的协同签名方
案进行设计和优化,该方案满足了移动智能终端
对于协同签名以及一些通用密码服务等方面的
安全需求,同时提升了协同签名过程的效率。
本文提出的基于SM2算法的协同签名方
案,主要贡献有三个方面:
应用分片密钥技术,根据相关密码模块技术
要求,提出了基于门限思想的密钥分片技术,实
现移动智能终端和云端的密钥分片存储,使移动
智能终端和云端不再存储完整的用户私钥,提高
了抵抗同时攻击的能力,解决密钥管理的安全和
密码运算的安全问题。
同时基于密钥分片存储,提出移动智能终端
私钥安全管理技术。该技术使用PIN码来设计
实现,移动智能终端在执行数字签名、数据加密
等操作时需要与云端联合运算,通过在移动智能
终端设置PIN码并在云端验证,能够有效抵抗
针对移动智能终端PIN码的离线暴力攻击,提
升了安全强度。
提出基于SM2国密算法的快速协同签名技
术,针对国密算法的特点,设计了预计算的处理
环节。简化了协同签名流程,提高了协同签名效
率,且网络资源、硬件资源消耗较低,并具备很好
的安全性。相较于之前的类似方案,本方案在安
全性和效率方面皆得到了提高,具有很好的应用
前景。
基于SM2算法的协同签名方案的设计依托
于拥有我国自主知识产权的SM2椭圆曲线公钥
密码算法,可解决签名安全、终端存储密钥安全、
个人隐私安全、数据安全、移动办公等安全问题,
下一步将对本文成果进行系统集成,为日后的实
际应用做好准备,为我国关键信息基础设施的国
1 相关知识
1.1 门限法
Shamir教授在1979年曾提出基于门限秘密
共享的分布式签名
[6]
,门限秘密共享指的是n
个实体分别持有私钥的一部分,当且仅当凑齐超
过阈值数量的被分割密钥才可以恢复成完整密
钥,从而完成签名或解密的工作。这种方法虽然
实现了分布式签名,然而一旦私钥被恢复,持有
完整私钥的一方就可以在其他实体不知晓的情
况下任意使用私钥,造成极大的安全隐患。
1.2 SM2签名算法
2010年底,国家密码管理局公布了我国自
主研制的“椭圆曲线公钥密码算法”(SM2算
法)
[7]
。SM2椭圆曲线公钥密码算法是我国自
主设计的公钥密码算法,包括SM2
-
1椭圆曲线
数字签名算法,SM2
-
2椭圆曲线密钥交换协议,
SM2
-
3椭圆曲线公钥加密算法,分别用于实现
数字签名密钥协商和数据加密等功能。
(1)初始化(Setup):
SM2签名算法包含了以下四个步骤。
给定安全参数λ,生成椭圆曲线参数
params
=
(p,a,b,P,q)并输出。
(2)密钥生成(Key):
给定参数后,选择随机数x∈Z
∗
q
作为私钥,
计算Q
=
x·P作为公钥,输出(Q,x)作为公私
钥对。
(3)签名算法(Sign):
者将执行以下步骤:
其中IDA是用户的可辩别标识,ENTL是IDA的
长度,计算M
=
Z||M;
②计算e
=
H
v
(M);
=
k·P
=
(x
1
,y
1
);
③选择随机数k∈Z
∗
q
,计算椭圆曲线点R
①计算Z
=
H
v
(ENTL||IDA||a||b||pk),
给定参数params,私钥x以及消息m,签名
Copyright©博看网. All Rights Reserved.
第31卷基于SM2的云端双方协同签名方案设计与应用
-
1
x)modq;
④计算r
=
x
1
+
emodq,s
=
(1
+
x)
⑤输出签名δ
=
(r,s)。
(4)验证算法(Ver):
(k-r·
·3·
给定参数params公钥Q
=
x·P,消息m′以
及它的签名δ′
=
(r′,s′),验证算法运行如下:
①检验r′,s′∈Z
∗
q
是否成立;
②设M′
=
Z||M′,计算e′
=
H
v
(M′);
则计算椭圆曲线点R′
=
s′
×
P
+
t·Q
=
(x
1
′,
y
1
′),验证r′
=
e′
+
x
1
′modq是否成立,验证通过
则输出1,否则输出0。
图1 本方案的设计架构图
③计算t
=
r′
+
s′,若t
=
0则验证不通过;否
2 方案设计及实现方法
动智能终端发送的协同签名的各种中间值,与移
动智能终端交互完成协同签名,接收到用户的
ID、PIN码及公钥分片后,将向服务器密码设备
发出储存申请将用户的ID、PIN码及公钥分片
储存至服务器密码设备中,在云端需要用户口
令、密钥数据时临时向服务器密码设备进行
申请。
移动智能终端部分通过app上集成的密码
模块即移动智能终端密码模块提供分片密钥生
成、更新和存储功能。其中封装了多种安全接
口,支持多种开发语言,提供分片密钥存储和管
理功能等。它由多个模块组成,包括SM2协同
签名模块、验签模块、SM3杂凑模块、SM4加解
密模块、密钥管理模块和通信模块,上层封装成
SM2协同签名、验签接口,作为对外部提供的接
口。其中密钥管理模块又包含密钥的生成、更新
和存储。移动智能终端基于java实现,在安卓
系统上运行。通过调用GmSSL库函数来完成一
系列功能,其中GmSSL是个开源的密码工具箱,
支持SM2/SM3/SM4/SM9/ZUC等国密算法。
云端密码模块则与密钥管理模块相互配合
达成包括密钥生成、更新和存储等功能(通过调
用云端密码设备)。密码机设备用于储存用户
的PIN码,以及私钥分片。设备使用中安网脉
基于云端密码设备的软硬件设备。
针对移动智能终端中对于身份认证、数字签
名等密码应用的需求,本文设计并优化了基于
SM2算法的协同签名方案,实现了在移动智能
终端可以进行密钥分片的生成和安全存储。在
本方案中主要是基于SM2算法,采用了密钥分
片存储、协同签名技术以及终端私钥安全管理技
术,同时针对SM2算法的特点对协同签名流程
进行优化,实现了签名过程中的敏感数据安全性
和签名结果的合法性,同时在签名速度方面得到
提高。
2.1 方案设计
如图1所示,本方案设计了一个由云端、移
动智能终端组成的基于SM2的云端双方协同签
名方案。通过创新性的快速协同签名技术、密钥
分片技术、终端私钥安全管理技术,使得本方案
相较于同类方案,在安全性得到大大提升的同时
保证了运行效率不受太多损耗。
方案中的云端负责响应移动智能终端的密
钥分片、协同签名请求,提供云端公、私钥分片生
成功能;在密钥分片过程中向移动智能终端发送
云端产生的云端公钥分片,同时接收移动智能终
端发送的终端公钥分片,与移动智能终端交互完
成密钥的分片;在协同签名过程中发送和接收移
Copyright©博看网. All Rights Reserved.
北京电子科技学院学报
·4·
本系统进行协同签名主要分为两个步骤,即
2023年
密钥分片和协同签名。
(1)密钥分片
进行密钥分片时,主要调用密钥生成模块生
成部分私钥,使用密钥存储模块进行公私钥的存
储,在云端会将公私钥存储在云端密码设备中,
此外,本系统还利用PIN码对移动智能终端私
钥分片进行保护。
(2)协同签名
进行协同签名时,主要调用SM2协同签名
模块;移动智能终端和云端的通信模块负责协同
签名过程中的参数传递。
(3)安全的传输协议
移动智能终端与云端通信使用HTTPS安全
传输协议,以保证用户PIN码、签名计算中间值
不会泄露,以及预防可能遭到的重放攻击。
2.2 实现方法
(1)密钥分片技术
图2 密钥分片流程图
算出公钥分片pk
B
=
d
B
×
P与完整公钥pk
=
存至UsbKey中,将pk
B
传输给移动智能终端。
d
A
d
B
P-P,
即
pk
=
d
B
pk
A
-
P,并将(pk,d
B
,pk
A
)储
③移动智能终端接受到云端的公钥分片后
密钥分片技术即将私钥分割为两个部分:第
一分片子密钥和第二分片子密钥。第一分片子
密钥存放到移动智能终端,第二分片子密钥则由
云端服务器派生生成,两个分片子密钥完成协同
签名。最后,完成的协同签名在移动智能终端生
成,完整签名可以实现数据的不可否认和操作的
不可抵赖。密钥分片具体流程如图2所示。
定义p为大素数,Fp为有限域。选择a,b∈
Fp作为椭圆曲线E的参数,定义P为椭圆曲线
E上的一点,并且将其作为群G的生成元。群G
的阶为q,M为待签名的消息,ENTL为IDT的长
度,IDT为签名用户的名字。其余未注明变量均
为计算的中间变量,pk为联合公钥,pk
A
为移动
智能终端公钥分片,pk
B
为云端公钥分片,d
A
为
移动智能终端私钥分片、d
B
为云端私钥分片。
①移动智能终端随机秘密选择私钥分片d
A
即可计算出公钥pk,pk
=
d
A
d
B
P-P,即pk
=
d
A
pk
B
-
P,存储(pk,d
A
,pk
B
)。
用户ID及其私钥绑定,并存储在Usbkey中。
(2)快速协同签名技术
④移动智能终端设置PIN码,该PIN码和
移动智能终端密码模块使用第一分片子密
钥对消息进行签名后,将部分签名结果s传递给
云端服务器,云端服务器使用第二分片子密钥对
签名结果变换后生成t并传回给移动智能终端。
整个协同签名只使用两个报文(1个来回)就完
成整个过程,简化了协同签名流程,提高了协同
签名效率,网络资源、硬件资源消耗较低,也具备
很好的安全性。协同签名流程如图3所示。
分片。
①移动智能终端输入PIN码,加载密钥
②移动智能终端和云端进行相互验证,云端
∈Z
q
,并计算公钥分片pk
A
=
d
A
×
P,后将pk
A
传给
云端。
②云端随机秘密选择私钥分片d
B
∈Z
q
,计
通过身份验证后即可向UsbKey申请与用户对应
的密钥分片。移动智能终端秘密选择k
A
∈Z
∗
q
,
Copyright©博看网. All Rights Reserved.
第31卷基于SM2的云端双方协同签名方案设计与应用
1.70GHz
×
16RAM:16.0GB
·5·
软件环境:系统:Ubuntu20.04.3LTS64位
测试平台:QtCreator4.8.0BasedonQt
5.12.0(GCC5.3.1)
硬件环境:
移动智能终端测试环境:
CPU:海思麒麟970处理器
RAM:6.0GB
软件环境:系统:Android10
测试平台:Androidstudio11
测试范围:对该协同签名方案的实际性能进
行测试。
3.1 性能测试
性能数据如下图所示,程序运行资源消耗较
低,资源占比仅维持在百分之十左右。
图3 协同签名流程图
并计算R
A
=
k
A
×
P,R′
A
=
k
A
×
pk
B
,并将R
A
与
R′
A
的值传给云端;在云端验证是否满足R
A
=
d
B
×
R′
A
,若满足,则计算R
B
=
k
B
×
pk
A
,R′
B
=
k
B
×
P,
并将R
B
,R′
B
发送给移动智能终端。移动智能终
端收到消息后,验证是否满足R
B
=
d
A
×
R′
B
,若满
足,则开始进行签名。
③移动智能终端使用分片私钥生成部分签
图4 移动智能终端CPU测试图
名s′计算R′
=
R
A
+
R
B
=
(x
A
,y
A
),Z
A
=
SM3
(ENTL‖ID
T
‖a‖b‖P‖pk),r
=
SM3(Z
A
‖M)
值发送给云端并请求云端进行协同签名。
+
x
A
modq,计算s′
=
(k
A
+
r)d
A
-
1
modq然后将s′的
④云端计算t
=
(s′
+
k
B
)d
B
-
1
modq,生成部分
⑤移动智能终端计算s
=
t
-
r,并输出协同签
序号
1
2
签名,然后将t的值发送给移动智能终端。
名(r,s)。
图5 移动智能终端内存测试图
表1 性能测试数据
协同签名速度
密钥生成速度
测试项
平均每秒签名速度
平均每秒密钥生成
测试项描述
40次/秒
90次/秒
值
3 性能测试与分析
云端测试环境:
硬件环境:
3.2 性能分析
CPU:IntelXeon(R)Bronze3106CPU@
(1)密钥分片
密钥分片技术将私钥分成两个部分,分别存
Copyright©博看网. All Rights Reserved.
北京电子科技学院学报2023年
·6·
放在移动智能终端与云端(移动智能终端私钥码难度的目的。同时,本系统在移动智能终端
自己存储,云端私钥放在云端密码设备)。经过
理论分析,SM2协议与ECMQV协议二者都基于
椭圆曲线的计算,两者每次运算大约都需要1.5
次标量乘,而经过实际运算,本系统实际测的公
私钥生成并分片的效率与理论分析相差不大,大
约在100次每秒,总体在可接受范围内。
(2)协同签名
从签名流程图来看,在传统的签名(r,s)
中,r生成后s根据r的值随后生成,平均签名速
度大约在40次每秒。但在本系统中r生成后,
会由云端生成中间值t,随后在移动智能终端由
r和t的值计算出s,虽然步骤变多,但是极大的
提升了整个过程的安全性,并且由于创新性的加
入了预计算处理过程,在代码中预先用SM3得
到摘要缩短了所需时间。相较于市面上其他的
联合签名系统,本系统优势明显。如罗永安,司
亚利,刘文远
[11]
设计的联合签名需要双方公私
钥,更多的初始数据带来了更多的计算过程,因
此本方案在性能实现上更加优秀。
APP中加入对设备MAC地址的识别,以保证对
移动智能终端设备本身的身份鉴别;此外在用户
还需要通过移动智能终端自带的身份识别(例
如指纹识别、人脸识别等),再次保证使用移动
智能终端的用户的身份的合法性。
(2)有效防止抵赖问题
完整的签名由移动智能终端和云端联合生
成。可以实现数据的不可否认和操作的不可抵
赖。随时间变化的椭圆曲线初始化参数可以防
止重放攻击所导致的抗抵赖问题。
(3)有效抵抗暴力破解
移动智能终端密钥分片使用PIN码保护,
但攻击人无法离线通过暴力尝试不同PIN码来
恢复私钥分片。移动智能终端的保护方案并不
报告加载私钥时使用的PIN码是否正确,加载
的私钥是否恢复成功,必须请求云端服务器提供
信息,方可知道尝试PIN码的正确性。
云端服务器可以有效确认移动智能终端的
签名的合法性,进而确认移动智能终端是否正确
地恢复了私钥分片,可以有效锁定在线暴力破解
PIN码的行为。
4 安全性分析
(1)有效防范中间人攻击
防范中间人攻击的原则是必须对认证过程
5 结束语
的传输者或是认证过程的本身真实性进行认证。
为确保连接云端的移动智能终端安全,必须对每
一用户或与之相连的终端设备进行有效的标识
与鉴别,只有通过鉴别的用户才能被赋予相应的
权限,进入APP并在规定的权限内操作。用户
使用终端APP时,需要输入设定的密码才能使
用,以保证对使用终端的用户的身份鉴别。同
时,为防止非法用户能够通过反复输入密码,达
到猜测用户密码的目的,本系统限制用户登录过
程中连续输入错误密码的次数。当用户多次输
入错误密码后,移动智能终端会自动锁定该用户
或一段时间内禁止该用户登录,从而增加猜测密
本文设计并实现了一个基于SM2算法的协
同签名方案。该方案创新性地使用密钥分片技
术、协同签名技术和移动智能终端私钥安全管理
技术,可以为移动智能终端应用提供易用、安全
的增强认证和数据安全保护,实现移动智能终端
私钥的安全存储。此外,本方案对协议进行创
新,通过针对SM2国密算法的特点对签名流程
进行重新设计与算法优化,实现快速协同签名技
术,通过功能测试和性能测试,与其他同类方案
相比,本方案在提高了安全性的同时不损失其性
能,且易于成果转化,对推动我国关键信息基础
设施国密算法应用起到重要作用。
Copyright©博看网. All Rights Reserved.
第31卷基于SM2的云端双方协同签名方案设计与应用
参考文献
[1]
[2] 李兆斌,刘丹丹,黄鑫,等.基于国密算法的
安全接入设备设计与实现[J].信息网络安
全,2016.
[3] 国家密码管理局.GM/T0009
-
2012.北京:
中国标准出版社,2012:13
-
14.
[4] 焦迪.基于国密算法分片密钥技术的政务移
动安全接入研究[J].网络安全技术与应
用,2020(9):28
-
30.
[5] 高建,陈文彬,庞建民,等.基于组合密钥的
智能电网多源数据安全保护[J].电信科
学,2020,36(1):134
-
138.
[6] hareasecret[J].Communi-
[7] ChenLi-Quan,ZhuZheng,WangMu-Yang,et
holdGroupSignatureSchemefor
MobileInternetApplication,ChineseJournal
ofComputers,2018,425(5):86
-
101(inChi-
nese).
cationsoftheACM,1979,22(11):612
-
613.
Broadcasts,2019,04:48(inChinese).
[10] 汪朝晖,张振峰.SM2椭圆曲线公钥密码算
法综述[J].信息安全研究,2016,2(11):
[11] 罗永安,司亚利,刘文远.基于椭圆曲线的联
合签名及其在电子现金中的应用[J].华中
师范大学学报(自然科学版),2008(3):350
[12] 苏吟雪,田海博.基于SM2的双方共同签名
协议及其应用[J].计算机学报,2020,43
(4):701
-
710.
[13] 刘培鹤,闫翔宇,何文才,等.基于Android
的密钥分存方案[J].计算机应用与软件,
[14] 王小云,于红波.SM3密码杂凑算法[J].信
息安全研究,2016,2(11):983
-
994.
[15] 彭绪富.电子政务中多方联合签名审批系统
设计[J].微计算机应用,2008(4):29
-
32.
[16] 陈明帅.基于Android的国密SSLVPN终端
的研究与实现[D].北京:华北电力大学(北
京),2021.
[17] 施晓芳,赵少卡,王震懿.基于国密算法的
Android智能终端SSL协议设计与实现[J].
+
64.
福建师大福清分校学报,2019(2):45
-
55
[18] 缪雨润.基于Qt的图形用户界面的研究与
实现[D].南京:东南大学,2015.
2018,35(2):320
-
324
+
333.
-
354.
972
-
982.
·7·
[8] 国家密码管理局.GM/T0028
-
2014.北京:
中国标准出版社,2014:11
-
12.
[9] /T
0003
-
2012SM2EllipticCurvePublic-Key
g,China,2010.
Copyright©博看网. All Rights Reserved.
·8·
北京电子科技学院学报2023年
DesignandApplicationofaCloudBilateralCollaborative
SignatureSchemeBasedonSM2
∗
XUShengwei DENGYe TIANYu
BeijingElectronicScienceandTechnologyInstitute,Beijing100070,
Abstract:Fortheissuethatfewdomesticresearchoncollaborativesignatureschemebasedonstate
cryptoalgorithmisavailableatpresentandexistingschemeshardlysatisfytheefficiencyandsecurityre-
quirementsforpracticalapplications,anoptimizationdesignandapplicationsofcollaborativesignature
schemebasedonSM2arepresentedinthispaper,whereaprivatekeyshardingschemeandaprivate
keysecuritymanagementtechnologyforthemobileintelligentterminalareproposedtoensurethesecur-
ityoftheusers’cheme,privatekeyisseparatelystoredinthemobileintelligent
eprivatekeyisusedbythemobileintelligentterminalforthedigital
servertoguaranteethesecurityofthesensitivedatainthesignatureprocessandthelegalityofthesig-
ile,combinedwiththecharacteristicsoftheSM2algorithm,anoptimalcloudbi-
signature,themobileintelligentterminalisrequiredtocooperatewiththecloudcollaborativesignature
lateralcollaborativesignaturesystemisimplemented,whereanindependentlydesignedpre-calculation
technmentalverification
andperformancetestsindicatethatourdesignissuperiorinsecuritythanexistingsimilardesignswhile
keepingtheefficiency,ignhasabroadapplicationpros-
pectinmobileoffice,instantcommunication,networkaudioandvideoconference,etc.
rithm
(责任编辑:鞠 磊)
Keywords:privatekeysharding;collaborativesignature;mobileintelligentterminal;statecryptoalgo-
Copyright©博看网. All Rights Reserved.