1、第 31 卷 第 1 期北京电子科技学院学报2023 年 3 月Vol31 No1Journal of Beijing Electronic Science and Technology InstituteMar2023基于 SM2 的云端双方协同签名方案设计与应用*许盛伟邓烨田宇北京电子科技学院,北京市100070摘要:针对当前国内对基于国密算法的协同签名方案的相关研究较少,方案的效率和安全性难以达到实际应用需求等问题,本文对基于 SM2 的协同签名方案进行优化设计和应用。通过提出私钥分片方案和移动智能终端私钥安全管理技术,保障了用户私钥安全。方案中私钥分别存储在移动智能终端和云端,移动智能
2、终端使用私钥进行数字签名时,需要和云端联合签名服务器协同工作,保证在签名过程中的敏感数据安全性和签名结果的合法性。同时本方案结合 SM2 算法的特点优化实现了云端双方协同签名系统,采用自主设计的预计算技术提高了协同签名效率。通过实验验证和性能测试,本方案在安全性方面优于同类且在效率上不受损失,易于成果转化,可以广泛应用于移动办公、即时通信和网络音视频会议等应用中。关键词:私钥分片;协同签名;移动智能终端;国密算法中图分类号:TN915.08文献标识码:A文章编号:1672464X(2023)10108*基金项目:国家重点研发计划(项目编号:2022YFB3104402);中央高校基本科研业务费
3、专项资金资助(项目编号:328202221)作者简介:许盛伟(1976),男,教授,博士生导师,研究方向为大数据安全、人工智能与密码应用。邓烨(1999),男,硕士研究生,主要研究方向为密码应用(E-mail:dyaipai 163com)。田宇(1998),男,硕士研究生,主要研究方向为零信任安全。引言当前国外的密码研究水平处于前沿位置,并且有较为完善的密码产品和体系,国内的大型企业、银行等资本雄厚的机构也青睐于使用外国的密码产品,但在美国的“棱镜门”事件发生后,我们不得不考虑其存在的后门问题,这使得我国网络安全甚至国家安全都受到了严重的威胁。上述这些数据和事件不断提醒我们推动国产化信息安全
4、产品的研发和使用,把相关技术掌握在自己手中,努力建立健全密码产品体系及管理体制,亟需推进信息产品、密码产品的国产化替代。目前国内在对于保障信息安全的手段中起到重要作用的协同签名方案的研究多是基于国外算法如 AES 等,基于国密算法的协同签名方案仅有几篇专利和少数论文,在安全性和效率方面都无法适应用户的需求。例如基于国密算法分片密钥技术的政务移动安全接入研究4 一文提出的基于 SM9 密钥分片的政务方案,虽然有着密钥分片的思想,但是缺乏对私钥安全性保护的方案,不符合密码安全要求,而本方案则提出了终端安全管理技术,通过 PIN 码的设计保证了密钥管理的安全性,通过测试验证了本系统的设计思路是可行的
5、。另如在基于组合密钥的智能电网多源数据安全保护5 中,提出了根据不同条件获得分片方案,把一个密钥分成若干个互不相同的子密钥片,然后把这些密钥分片组合生成新的密钥,分配到系统中的不同终端北京电子科技学院学报2023 年上,这种方案过程繁琐,效率不高,在实际应用中难以适配,本系统与其相比在安全性得到保证的前提下运行效率有所提高。因此,本文基于这些问题与应用需求,在国家政务信息系统和关键基础设施国产化密码应用要求的指导下,对基于国密算法的协同签名方案进行设计和优化,该方案满足了移动智能终端对于协同签名以及一些通用密码服务等方面的安全需求,同时提升了协同签名过程的效率。本文提出的基于 SM2 算法的协
6、同签名方案,主要贡献有三个方面:应用分片密钥技术,根据相关密码模块技术要求,提出了基于门限思想的密钥分片技术,实现移动智能终端和云端的密钥分片存储,使移动智能终端和云端不再存储完整的用户私钥,提高了抵抗同时攻击的能力,解决密钥管理的安全和密码运算的安全问题。同时基于密钥分片存储,提出移动智能终端私钥安全管理技术。该技术使用 PIN 码来设计实现,移动智能终端在执行数字签名、数据加密等操作时需要与云端联合运算,通过在移动智能终端设置 PIN 码并在云端验证,能够有效抵抗针对移动智能终端 PIN 码的离线暴力攻击,提升了安全强度。提出基于 SM2 国密算法的快速协同签名技术,针对国密算法的特点,设
7、计了预计算的处理环节。简化了协同签名流程,提高了协同签名效率,且网络资源、硬件资源消耗较低,并具备很好的安全性。相较于之前的类似方案,本方案在安全性和效率方面皆得到了提高,具有很好的应用前景。基于 SM2 算法的协同签名方案的设计依托于拥有我国自主知识产权的 SM2 椭圆曲线公钥密码算法,可解决签名安全、终端存储密钥安全、个人隐私安全、数据安全、移动办公等安全问题,下一步将对本文成果进行系统集成,为日后的实际应用做好准备,为我国关键信息基础设施的国产化替代作出卓越贡献。1相关知识1.1门限法Shamir 教授在 1979 年曾提出基于门限秘密共享的分布式签名6,门限秘密共享指的是 n个实体分别
8、持有私钥的一部分,当且仅当凑齐超过阈值数量的被分割密钥才可以恢复成完整密钥,从而完成签名或解密的工作。这种方法虽然实现了分布式签名,然而一旦私钥被恢复,持有完整私钥的一方就可以在其他实体不知晓的情况下任意使用私钥,造成极大的安全隐患。1.2SM2 签名算法2010 年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2 算法)7。SM2 椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括 SM21 椭圆曲线数字签名算法,SM22 椭圆曲线密钥交换协议,SM23 椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2 签名算法包含了以下四个步骤。(1)初
9、始化(Setup):给定 安 全 参 数,生 成 椭 圆 曲 线 参 数params=(p,a,b,P,q)并输出。(2)密钥生成(Key):给定参数后,选择随机数 xZ*q作为私钥,计算 Q=xP 作为公钥,输出(Q,x)作为公私钥对。(3)签名算法(Sign):给定参数 params,私钥 x 以及消息 m,签名者将执行以下步骤:计算 Z=Hv(ENTL|IDA|a|b|pk),其中 IDA 是用户的可辩别标识,ENTL 是 IDA 的长度,计算 M=Z|M;计算 e=Hv(M);选择随机数 k Z*q,计算椭圆曲线点=kP=(x1,y1);2第 31 卷基于 SM2 的云端双方协同签名方
10、案设计与应用计算 r=x1+e mod q,s=(1+x)1(k-rx)mod q;输出签名=(r,s)。(4)验证算法(Ver):给定参数 params 公钥 Q=xP,消息 m以及它的签名 =(r,s),验证算法运行如下:检验 r,s Z*q是否成立;设 M=Z|M,计算 e=Hv(M);计算 t=r+s,若 t=0 则验证不通过;否则计算椭圆曲线点 =s P+tQ=(x1,y1),验证 r=e+x1mod q 是否成立,验证通过则输出 1,否则输出 0。2方案设计及实现方法针对移动智能终端中对于身份认证、数字签名等密码应用的需求,本文设计并优化了基于SM2 算法的协同签名方案,实现了在移
11、动智能终端可以进行密钥分片的生成和安全存储。在本方案中主要是基于 SM2 算法,采用了密钥分片存储、协同签名技术以及终端私钥安全管理技术,同时针对 SM2 算法的特点对协同签名流程进行优化,实现了签名过程中的敏感数据安全性和签名结果的合法性,同时在签名速度方面得到提高。2.1方案设计如图 1 所示,本方案设计了一个由云端、移动智能终端组成的基于 SM2 的云端双方协同签名方案。通过创新性的快速协同签名技术、密钥分片技术、终端私钥安全管理技术,使得本方案相较于同类方案,在安全性得到大大提升的同时保证了运行效率不受太多损耗。方案中的云端负责响应移动智能终端的密钥分片、协同签名请求,提供云端公、私钥
12、分片生成功能;在密钥分片过程中向移动智能终端发送云端产生的云端公钥分片,同时接收移动智能终端发送的终端公钥分片,与移动智能终端交互完成密钥的分片;在协同签名过程中发送和接收移图 1本方案的设计架构图动智能终端发送的协同签名的各种中间值,与移动智能终端交互完成协同签名,接收到用户的ID、PIN 码及公钥分片后,将向服务器密码设备发出储存申请将用户的 ID、PIN 码及公钥分片储存至服务器密码设备中,在云端需要用户口令、密钥数据时临时向服务器密码设备进行申请。移动智能终端部分通过 app 上集成的密码模块即移动智能终端密码模块提供分片密钥生成、更新和存储功能。其中封装了多种安全接口,支持多种开发语
13、言,提供分片密钥存储和管理功能等。它由多个模块组成,包括 SM2 协同签名模块、验签模块、SM3 杂凑模块、SM4 加解密模块、密钥管理模块和通信模块,上层封装成SM2 协同签名、验签接口,作为对外部提供的接口。其中密钥管理模块又包含密钥的生成、更新和存储。移动智能终端基于 java 实现,在安卓系统上运行。通过调用 GmSSL 库函数来完成一系列功能,其中 GmSSL 是个开源的密码工具箱,支持 SM2/SM3/SM4/SM9/ZUC 等国密算法。云端密码模块则与密钥管理模块相互配合达成包括密钥生成、更新和存储等功能(通过调用云端密码设备)。密码机设备用于储存用户的 PIN 码,以及私钥分片
14、。设备使用中安网脉基于云端密码设备的软硬件设备。3北京电子科技学院学报2023 年本系统进行协同签名主要分为两个步骤,即密钥分片和协同签名。(1)密钥分片进行密钥分片时,主要调用密钥生成模块生成部分私钥,使用密钥存储模块进行公私钥的存储,在云端会将公私钥存储在云端密码设备中,此外,本系统还利用 PIN 码对移动智能终端私钥分片进行保护。(2)协同签名进行协同签名时,主要调用 SM2 协同签名模块;移动智能终端和云端的通信模块负责协同签名过程中的参数传递。(3)安全的传输协议移动智能终端与云端通信使用 HTTPS 安全传输协议,以保证用户 PIN 码、签名计算中间值不会泄露,以及预防可能遭到的重
15、放攻击。2.2实现方法(1)密钥分片技术密钥分片技术即将私钥分割为两个部分:第一分片子密钥和第二分片子密钥。第一分片子密钥存放到移动智能终端,第二分片子密钥则由云端服务器派生生成,两个分片子密钥完成协同签名。最后,完成的协同签名在移动智能终端生成,完整签名可以实现数据的不可否认和操作的不可抵赖。密钥分片具体流程如图 2 所示。定义 p 为大素数,Fp 为有限域。选择 a,bFp 作为椭圆曲线 E 的参数,定义 P 为椭圆曲线E 上的一点,并且将其作为群 G 的生成元。群 G的阶为 q,M 为待签名的消息,ENTL 为 IDT 的长度,IDT 为签名用户的名字。其余未注明变量均为计算的中间变量,
16、pk 为联合公钥,pkA为移动智能终端公钥分片,pkB为云端公钥分片,dA为移动智能终端私钥分片、dB为云端私钥分片。移动智能终端随机秘密选择私钥分片 dAZq,并计算公钥分片 pkA=dAP,后将 pkA传给云端。云端随机秘密选择私钥分片 dBZq,计图 2密钥分片流程图算出公钥分片 pkB=dB P 与完整公钥 pk=dAdBP-P,即pk=dBpkAP,并将(pk,dB,pkA)储存至 UsbKey 中,将 pkB传输给移动智能终端。移动智能终端接受到云端的公钥分片后即可计算出公钥 pk,pk=dAdBP-P,即 pk=dApkBP,存储(pk,dA,pkB)。移动智能终端设置 PIN
17、码,该 PIN 码和用户 ID 及其私钥绑定,并存储在 Usbkey 中。(2)快速协同签名技术移动智能终端密码模块使用第一分片子密钥对消息进行签名后,将部分签名结果 s 传递给云端服务器,云端服务器使用第二分片子密钥对签名结果变换后生成 t 并传回给移动智能终端。整个协同签名只使用两个报文(1 个来回)就完成整个过程,简化了协同签名流程,提高了协同签名效率,网络资源、硬件资源消耗较低,也具备很好的安全性。协同签名流程如图 3 所示。移动智能终端输入 PIN 码,加载密钥分片。移动智能终端和云端进行相互验证,云端通过身份验证后即可向 UsbKey 申请与用户对应的密钥分片。移动智能终端秘密选择
18、 kA Z*q,4第 31 卷基于 SM2 的云端双方协同签名方案设计与应用图 3协同签名流程图并计算 A=kA P,A=kA pkB,并将 A与A的值传给云端;在云端验证是否满足 A=dB A,若满足,则计算 B=kBpkA,B=kB P,并将 B,B发送给移动智能终端。移动智能终端收到消息后,验证是否满足 B=dA B,若满足,则开始进行签名。移动智能终端使用分片私钥生成部分签名 s计算 =A+B=(xA,yA),ZA=SM3(ENTLIDTabPpk),r=SM3(ZAM)+xAmod q,计算 s=(kA+r)dA1mod q 然后将 s的值发送给云端并请求云端进行协同签名。云端计算
19、t=(s+kB)dB1mod q,生成部分签名,然后将 t 的值发送给移动智能终端。移动智能终端计算 s=tr,并输出协同签名(r,s)。3性能测试与分析云端测试环境:硬件环境:CPU:Intel Xeon()Bronze 3106 CPU 1.70GHz 16 AM:16.0GB软件环境:系统:Ubuntu 20.04.3 LTS 64 位测试 平 台:Qt Creator 4.8.0 Based on Qt5.12.0(GCC 5.3.1)移动智能终端测试环境:硬件环境:CPU:海思麒麟 970 处理器AM:6.0GB软件环境:系统:Android 10测试平台:Android studi
20、o 11测试范围:对该协同签名方案的实际性能进行测试。3.1性能测试性能数据如下图所示,程序运行资源消耗较低,资源占比仅维持在百分之十左右。图 4移动智能终端 CPU 测试图图 5移动智能终端内存测试图表 1性能测试数据序号测试项测试项描述值1协同签名速度平均每秒签名速度40 次/秒2密钥生成速度平均每秒密钥生成90 次/秒3.2性能分析(1)密钥分片密钥分片技术将私钥分成两个部分,分别存5北京电子科技学院学报2023 年放在移动智能终端与云端(移动智能终端私钥自己存储,云端私钥放在云端密码设备)。经过理论分析,SM2 协议与 ECMQV 协议二者都基于椭圆曲线的计算,两者每次运算大约都需要
21、1.5次标量乘,而经过实际运算,本系统实际测的公私钥生成并分片的效率与理论分析相差不大,大约在 100 次每秒,总体在可接受范围内。(2)协同签名从签名流程图来看,在传统的签名(r,s)中,r 生成后 s 根据 r 的值随后生成,平均签名速度大约在 40 次每秒。但在本系统中 r 生成后,会由云端生成中间值 t,随后在移动智能终端由r 和 t 的值计算出 s,虽然步骤变多,但是极大的提升了整个过程的安全性,并且由于创新性的加入了预计算处理过程,在代码中预先用 SM3 得到摘要缩短了所需时间。相较于市面上其他的联合签名系统,本系统优势明显。如罗永安,司亚利,刘文远11 设计的联合签名需要双方公私
22、钥,更多的初始数据带来了更多的计算过程,因此本方案在性能实现上更加优秀。4安全性分析(1)有效防范中间人攻击防范中间人攻击的原则是必须对认证过程的传输者或是认证过程的本身真实性进行认证。为确保连接云端的移动智能终端安全,必须对每一用户或与之相连的终端设备进行有效的标识与鉴别,只有通过鉴别的用户才能被赋予相应的权限,进入 APP 并在规定的权限内操作。用户使用终端 APP 时,需要输入设定的密码才能使用,以保证对使用终端的用户的身份鉴别。同时,为防止非法用户能够通过反复输入密码,达到猜测用户密码的目的,本系统限制用户登录过程中连续输入错误密码的次数。当用户多次输入错误密码后,移动智能终端会自动锁
23、定该用户或一段时间内禁止该用户登录,从而增加猜测密码难度的目的。同时,本系统在移动智能终端APP 中加入对设备 MAC 地址的识别,以保证对移动智能终端设备本身的身份鉴别;此外在用户还需要通过移动智能终端自带的身份识别(例如指纹识别、人脸识别等),再次保证使用移动智能终端的用户的身份的合法性。(2)有效防止抵赖问题完整的签名由移动智能终端和云端联合生成。可以实现数据的不可否认和操作的不可抵赖。随时间变化的椭圆曲线初始化参数可以防止重放攻击所导致的抗抵赖问题。(3)有效抵抗暴力破解移动智能终端密钥分片使用 PIN 码保护,但攻击人无法离线通过暴力尝试不同 PIN 码来恢复私钥分片。移动智能终端的
24、保护方案并不报告加载私钥时使用的 PIN 码是否正确,加载的私钥是否恢复成功,必须请求云端服务器提供信息,方可知道尝试 PIN 码的正确性。云端服务器可以有效确认移动智能终端的签名的合法性,进而确认移动智能终端是否正确地恢复了私钥分片,可以有效锁定在线暴力破解PIN 码的行为。5结束语本文设计并实现了一个基于 SM2 算法的协同签名方案。该方案创新性地使用密钥分片技术、协同签名技术和移动智能终端私钥安全管理技术,可以为移动智能终端应用提供易用、安全的增强认证和数据安全保护,实现移动智能终端私钥的安全存储。此外,本方案对协议进行创新,通过针对 SM2 国密算法的特点对签名流程进行重新设计与算法优
25、化,实现快速协同签名技术,通过功能测试和性能测试,与其他同类方案相比,本方案在提高了安全性的同时不损失其性能,且易于成果转化,对推动我国关键信息基础设施国密算法应用起到重要作用。6第 31 卷基于 SM2 的云端双方协同签名方案设计与应用参考文献1 The 43rd CNNIC China Internet eportChinaBroadcasts,2019,04:48(in Chinese)2 李兆斌,刘丹丹,黄鑫,等基于国密算法的安全接入设备设计与实现 J 信息网络安全,20163 国家密码管理局GM/T 00092012北京:中国标准出版社,2012:13144 焦迪基于国密算法分片密钥
26、技术的政务移动安全接入研究J 网络安全技术与应用,2020(9):28305 高建,陈文彬,庞建民,等基于组合密钥的智能电网多源数据安全保护J 电信科学,2020,36(1):1341386 Shamir AHow to share a secret J Communi-cations of the ACM,1979,22(11):6126137 Chen Li-Quan,Zhu Zheng,Wang Mu-Yang,etalA Threshold Group Signature Scheme forMobile Internet Application,Chinese Journalof C
27、omputers,2018,425(5):86101(in Chi-nese)8 国家密码管理局GM/T 00282014北京:中国标准出版社,2014:11129 ChineseEncryptionAdministration GM/T0003 2012 SM2 Elliptic Curve Public-KeyCryptography AlgorithmBeijing,China,2010 10 汪朝晖,张振峰SM2 椭圆曲线公钥密码算法综述J 信息安全研究,2016,2(11):972982 11 罗永安,司亚利,刘文远基于椭圆曲线的联合签名及其在电子现金中的应用 J 华中师范大学学报(
28、自然科学版),2008(3):350354 12 苏吟雪,田海博基于 SM2 的双方共同签名协议及其应用J 计算机学报,2020,43(4):701710 13 刘培鹤,闫翔宇,何文才,等基于 Android的密钥分存方案J 计算机应用与软件,2018,35(2):320324+333 14 王小云,于红波SM3 密码杂凑算法 J 信息安全研究,2016,2(11):983994 15 彭绪富电子政务中多方联合签名审批系统设计 J 微计算机应用,2008(4):2932 16 陈明帅基于 Android 的国密 SSLVPN 终端的研究与实现 D 北京:华北电力大学(北京),2021 17 施
29、晓芳,赵少卡,王震懿基于国密算法的Android 智能终端 SSL 协议设计与实现 J 福建师大福清分校学报,2019(2):4555+64 18 缪雨润基于 Qt 的图形用户界面的研究与实现 D 南京:东南大学,20157北京电子科技学院学报2023 年Design and Application of a Cloud Bilateral CollaborativeSignature Scheme Based on SM2*XU ShengweiDENG YeTIAN YuBeijing Electronic Science and Technology Institute,Beijing
30、100070,PChinaAbstract:For the issue that few domestic research on collaborative signature scheme based on statecrypto algorithm is available at present and existing schemes hardly satisfy the efficiency and security re-quirements for practical applications,an optimization design and applications of
31、collaborative signaturescheme based on SM2 are presented in this paper,where a private key sharding scheme and a privatekey security management technology for the mobile intelligent terminal are proposed to ensure the secur-ity of the usersprivate key In our scheme,private key is separately stored i
32、n the mobile intelligentterminal and the cloud When the private key is used by the mobile intelligent terminal for the digitalsignature,the mobile intelligent terminal is required to cooperate with the cloud collaborative signatureserver to guarantee the security of the sensitive data in the signatu
33、re process and the legality of the sig-nature result Meanwhile,combined with the characteristics of the SM2 algorithm,an optimal cloud bi-lateral collaborative signature system is implemented,where an independently designed pre-calculationtechnology is adopted to improve the efficiency of the collab
34、orative signature Experimental verificationand performance tests indicate that our design is superior in security than existing similar designs whilekeeping the efficiency,and is suitable for commercialization Our design has a broad application pros-pect in mobile office,instant communication,network audio and video conference,etcKeywords:private key sharding;collaborative signature;mobile intelligent terminal;state crypto algo-rithm(责任编辑:鞠磊)8