分享
基于SM2的云端双方协同签名方案设计与应用_许盛伟.pdf
下载文档

ID:2515303

大小:358.32KB

页数:8页

格式:PDF

时间:2023-06-27

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 SM2 云端 双方 协同 签名 方案设计 应用 许盛伟
第 31 卷 第 1 期北京电子科技学院学报2023 年 3 月Vol31 No1Journal of Beijing Electronic Science and Technology InstituteMar2023基于 SM2 的云端双方协同签名方案设计与应用*许盛伟邓烨田宇北京电子科技学院,北京市100070摘要:针对当前国内对基于国密算法的协同签名方案的相关研究较少,方案的效率和安全性难以达到实际应用需求等问题,本文对基于 SM2 的协同签名方案进行优化设计和应用。通过提出私钥分片方案和移动智能终端私钥安全管理技术,保障了用户私钥安全。方案中私钥分别存储在移动智能终端和云端,移动智能终端使用私钥进行数字签名时,需要和云端联合签名服务器协同工作,保证在签名过程中的敏感数据安全性和签名结果的合法性。同时本方案结合 SM2 算法的特点优化实现了云端双方协同签名系统,采用自主设计的预计算技术提高了协同签名效率。通过实验验证和性能测试,本方案在安全性方面优于同类且在效率上不受损失,易于成果转化,可以广泛应用于移动办公、即时通信和网络音视频会议等应用中。关键词:私钥分片;协同签名;移动智能终端;国密算法中图分类号:TN915.08文献标识码:A文章编号:1672464X(2023)10108*基金项目:国家重点研发计划(项目编号:2022YFB3104402);中央高校基本科研业务费专项资金资助(项目编号:328202221)作者简介:许盛伟(1976),男,教授,博士生导师,研究方向为大数据安全、人工智能与密码应用。邓烨(1999),男,硕士研究生,主要研究方向为密码应用(E-mail:dyaipai 163com)。田宇(1998),男,硕士研究生,主要研究方向为零信任安全。引言当前国外的密码研究水平处于前沿位置,并且有较为完善的密码产品和体系,国内的大型企业、银行等资本雄厚的机构也青睐于使用外国的密码产品,但在美国的“棱镜门”事件发生后,我们不得不考虑其存在的后门问题,这使得我国网络安全甚至国家安全都受到了严重的威胁。上述这些数据和事件不断提醒我们推动国产化信息安全产品的研发和使用,把相关技术掌握在自己手中,努力建立健全密码产品体系及管理体制,亟需推进信息产品、密码产品的国产化替代。目前国内在对于保障信息安全的手段中起到重要作用的协同签名方案的研究多是基于国外算法如 AES 等,基于国密算法的协同签名方案仅有几篇专利和少数论文,在安全性和效率方面都无法适应用户的需求。例如基于国密算法分片密钥技术的政务移动安全接入研究4 一文提出的基于 SM9 密钥分片的政务方案,虽然有着密钥分片的思想,但是缺乏对私钥安全性保护的方案,不符合密码安全要求,而本方案则提出了终端安全管理技术,通过 PIN 码的设计保证了密钥管理的安全性,通过测试验证了本系统的设计思路是可行的。另如在基于组合密钥的智能电网多源数据安全保护5 中,提出了根据不同条件获得分片方案,把一个密钥分成若干个互不相同的子密钥片,然后把这些密钥分片组合生成新的密钥,分配到系统中的不同终端北京电子科技学院学报2023 年上,这种方案过程繁琐,效率不高,在实际应用中难以适配,本系统与其相比在安全性得到保证的前提下运行效率有所提高。因此,本文基于这些问题与应用需求,在国家政务信息系统和关键基础设施国产化密码应用要求的指导下,对基于国密算法的协同签名方案进行设计和优化,该方案满足了移动智能终端对于协同签名以及一些通用密码服务等方面的安全需求,同时提升了协同签名过程的效率。本文提出的基于 SM2 算法的协同签名方案,主要贡献有三个方面:应用分片密钥技术,根据相关密码模块技术要求,提出了基于门限思想的密钥分片技术,实现移动智能终端和云端的密钥分片存储,使移动智能终端和云端不再存储完整的用户私钥,提高了抵抗同时攻击的能力,解决密钥管理的安全和密码运算的安全问题。同时基于密钥分片存储,提出移动智能终端私钥安全管理技术。该技术使用 PIN 码来设计实现,移动智能终端在执行数字签名、数据加密等操作时需要与云端联合运算,通过在移动智能终端设置 PIN 码并在云端验证,能够有效抵抗针对移动智能终端 PIN 码的离线暴力攻击,提升了安全强度。提出基于 SM2 国密算法的快速协同签名技术,针对国密算法的特点,设计了预计算的处理环节。简化了协同签名流程,提高了协同签名效率,且网络资源、硬件资源消耗较低,并具备很好的安全性。相较于之前的类似方案,本方案在安全性和效率方面皆得到了提高,具有很好的应用前景。基于 SM2 算法的协同签名方案的设计依托于拥有我国自主知识产权的 SM2 椭圆曲线公钥密码算法,可解决签名安全、终端存储密钥安全、个人隐私安全、数据安全、移动办公等安全问题,下一步将对本文成果进行系统集成,为日后的实际应用做好准备,为我国关键信息基础设施的国产化替代作出卓越贡献。1相关知识1.1门限法Shamir 教授在 1979 年曾提出基于门限秘密共享的分布式签名6,门限秘密共享指的是 n个实体分别持有私钥的一部分,当且仅当凑齐超过阈值数量的被分割密钥才可以恢复成完整密钥,从而完成签名或解密的工作。这种方法虽然实现了分布式签名,然而一旦私钥被恢复,持有完整私钥的一方就可以在其他实体不知晓的情况下任意使用私钥,造成极大的安全隐患。1.2SM2 签名算法2010 年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2 算法)7。SM2 椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括 SM21 椭圆曲线数字签名算法,SM22 椭圆曲线密钥交换协议,SM23 椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2 签名算法包含了以下四个步骤。(1)初始化(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 的云端双方协同签名方案设计与应用计算 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 算法的协同签名方案,实现了在移动智能终端可以进行密钥分片的生成和安全存储。在本方案中主要是基于 SM2 算法,采用了密钥分片存储、协同签名技术以及终端私钥安全管理技术,同时针对 SM2 算法的特点对协同签名流程进行优化,实现了签名过程中的敏感数据安全性和签名结果的合法性,同时在签名速度方面得到提高。2.1方案设计如图 1 所示,本方案设计了一个由云端、移动智能终端组成的基于 SM2 的云端双方协同签名方案。通过创新性的快速协同签名技术、密钥分片技术、终端私钥安全管理技术,使得本方案相较于同类方案,在安全性得到大大提升的同时保证了运行效率不受太多损耗。方案中的云端负责响应移动智能终端的密钥分片、协同签名请求,提供云端公、私钥分片生成功能;在密钥分片过程中向移动智能终端发送云端产生的云端公钥分片,同时接收移动智能终端发送的终端公钥分片,与移动智能终端交互完成密钥的分片;在协同签名过程中发送和接收移图 1本方案的设计架构图动智能终端发送的协同签名的各种中间值,与移动智能终端交互完成协同签名,接收到用户的ID、PIN 码及公钥分片后,将向服务器密码设备发出储存申请将用户的 ID、PIN 码及公钥分片储存至服务器密码设备中,在云端需要用户口令、密钥数据时临时向服务器密码设备进行申请。移动智能终端部分通过 app 上集成的密码模块即移动智能终端密码模块提供分片密钥生成、更新和存储功能。其中封装了多种安全接口,支持多种开发语言,提供分片密钥存储和管理功能等。它由多个模块组成,包括 SM2 协同签名模块、验签模块、SM3 杂凑模块、SM4 加解密模块、密钥管理模块和通信模块,上层封装成SM2 协同签名、验签接口,作为对外部提供的接口。其中密钥管理模块又包含密钥的生成、更新和存储。移动智能终端基于 java 实现,在安卓系统上运行。通过调用 GmSSL 库函数来完成一系列功能,其中 GmSSL 是个开源的密码工具箱,支持 SM2/SM3/SM4/SM9/ZUC 等国密算法。云端密码模块则与密钥管理模块相互配合达成包括密钥生成、更新和存储等功能(通过调用云端密码设备)。密码机设备用于储存用户的 PIN 码,以及私钥分片。设备使用中安网脉基于云端密码设备的软硬件设备。3北京电子科技学院学报2023 年本系统进行协同签名主要分为两个步骤,即密钥分片和协同签名。(1)密钥分片进行密钥分片时,主要调用密钥生成模块生成部分私钥,使用密钥存储模块进行公私钥的存储,在云端会将公私钥存储在云端密码设备中,此外,本系统还利用 PIN 码对移动智能终端私钥分片进行保护。(2)协同签名进行协同签名时,主要调用 SM2 协同签名模块;移动智能终端和云端的通信模块负责协同签名过程中的参数传递。(3)安全的传输协议移动智能终端与云端通信使用 HTTPS 安全传输协议,以保证用户 PIN 码、签名计算中间值不会泄露,以及预防可能遭到的重放攻击。2.2实现方法(1)密钥分片技术密钥分片技术即将私钥分割为两个部分:第一分片子密钥和第二分片子密钥。第一分片子密钥存放到移动智能终端,第二分片子密钥则由云端服务器派生生成,两个分片子密钥完成协同签名。最后,完成的协同签名在移动智能终端生成,完整签名可以实现数据的不可否认和操作的不可抵赖。密钥分片具体流程如图 2 所示。定义 p 为大素数,Fp 为有限域。选择 a,bFp 作为椭圆曲线 E 的参数,定义 P 为椭圆曲线E 上的一点,并且将其作为群 G 的生成元。群 G的阶为 q,M 为待签名的消息,ENTL 为 IDT 的长度,IDT 为签名用户的名字。其余未注明变量均为计算的中间变量,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 码,该 PIN 码和用户 ID 及其私钥绑定,并存储在 Usbkey 中。(2)快速协同签名技术移动智能终端密码模块使用第一分片子密钥对消息进行签名后,将部分签名结果 s 传递给云端服务器,云端服务器使用第二分片子密钥对签名结果变换后生成 t 并传回给移动智能终端。整个协同签名只使用两个报文(1 个来回)就完成整个过程,简化了协同签名流程,提高了协同签名效率,网络资源、硬件资源消耗较低,也具备很好

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开