[发明专利]一种基于余数系统的SM2白盒数字签名实现方法有效
申请号: | 201611202646.3 | 申请日: | 2016-12-22 |
公开(公告)号: | CN106612182B | 公开(公告)日: | 2020-04-03 |
发明(设计)人: | 白健;周洁;安红章 | 申请(专利权)人: | 中国电子科技集团公司第三十研究所 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30;H04L9/08 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 项霞 |
地址: | 610000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 余数 系统 sm2 数字签名 实现 方法 | ||
本发明提供了一种基于余数系统的SM2白盒数字签名实现方法。本方法针对于不可信环境中密钥运行不安全,恶意攻击者可通过白盒攻击手段获取系统密钥的问题展开研究,通过使用余数系统实现大数的拆分,从而降低密钥表的大小;通过使用置乱混淆确保中间结果对攻击者不可见;通过使用云端的随机因子确保终端密钥运算关系的未知性,实现了终端签名运算过程中的签名私钥安全,同时可使用标准的SM2验签算法进行验证。本发明所需存储空间小,计算效率高,安全性好,具有很强的实用性。
技术领域
本发明涉及信息安全技术领域,特别是涉及一种基于余数系统的SM2白盒数字签名实现方法。
背景技术
现有软件加密算法,密钥均是直接出现在计算平台的内存之中,攻击者可通过恶意软件等实现密钥的窃取,不能应对已有的白盒攻击手段;现有的硬件加密算法,能较好的保证密钥计算的安全性,但相对使用成本较高,通用性较差,对于部分安全性要求相对较低的应用场景无法使用;同时还有部分研究机构提出了基于云加端部分密钥和密钥分散存储策略的软件加密算法,但云加端的策略无法抵抗本地私钥的泄露,还存储云端与终端的鉴权问题,密钥分散存储策略在进行密钥运算时必须合成密钥,内存中同样存在密钥完整明文。
发明内容
为解决上述问题,本发明提供了一种基于余数系统的SM2白盒数字签名实现方法,所述方法适用的系统包括客户端和服务器,所述系统的系统模数为n,辅助模数为mr所选取椭圆曲线的基点为G,签名消息为M其特征在于,包括如下步骤:
步骤一:客户端选取公钥P、私钥d。选定一个余数系统,素数基为β=(p1,p2,…,pt),基β的动态范围满足ω=p1p2p3…pt≥2768。
步骤二:客户端生成第一私钥查找表、第二私钥查找表。具体方法为:
步骤2.1:随机选取两个非线性密钥置换表,分别记为Sbox1、Sbox2,并通过服务器的公钥将自己的客户端ID和Sbox1发送给服务器进行保存。
步骤2.2:使用余数系统将公钥P转化为Pi(i=1,…,t,r),并生成第一私钥查找表Table1,i(i=1,…,t,r),生成方法为:随机遍历产生两个随机数N1和N2,其中N2,N1∈[1,n-1],通过余数系统将其分别转化为N1i和N2i,计算ui=sbox2(N1,i×sbox1-1(sbox1(N2,i))modpi),将遍历产生的所有ui作为表Table1,i(i=1,…,t,r)的元素。
步骤2.3:使用私钥d和余数系统生成第二私钥查找表Table2,i(i=1,…,t,r),生成方法为:随机遍历产生两个随机数L1和L2,其中L2,L1∈[1,n-1],通过余数系统将其分别转化为L1i和L2i,同时将私钥d转换为di,计算si=di×(sbox2-1(L1i)-L2i×di)mod pi,将遍历产生的所有si作为表Table2,i(i=1,…,t,r)的元素;
步骤三:客户端进行签名,具体方法为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十研究所,未经中国电子科技集团公司第三十研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611202646.3/2.html,转载请声明来源钻瓜专利网。