最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

211171336_基于SM2_的云端双方协同签名方案设计与应用

IT圈 admin 47浏览 0评论

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.

发布评论

评论列表 (0)

  1. 暂无评论