[发明专利]一种基于余数系统的商密SM2加密算法的白盒软件实现方法有效
申请号: | 201611203876.1 | 申请日: | 2016-12-23 |
公开(公告)号: | CN106685662B | 公开(公告)日: | 2019-09-24 |
发明(设计)人: | 周洁;白健;安红章 | 申请(专利权)人: | 中国电子科技集团公司第三十研究所 |
主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08;H04L9/06;H04L29/06 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 项霞 |
地址: | 610000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种基于余数系统的商密SM2加密算法的白盒软件实现方法,该方法提出一种基于查找表和置乱混淆等技术的SM2加密算法的白盒软件实现方案,且采用云服务器端与客户端协同计算的方式实现,能有效的保护终端私钥在存储和运行时的安全,且能直接与标准SM2加密算法结合使用。此外,本发明采用余数系统理论对大整数运算进行分解,从而降低查找表的大小,减小计算所需的存储空间。 | ||
搜索关键词: | 一种 基于 余数 系统 sm2 加密算法 软件 实现 方法 | ||
【主权项】:
1.一种基于余数系统的商密SM2加密算法的白盒软件实现方法,其特征在于,包括如下步骤:步骤一:选取一个余数系统,该余数系统的余数基为β=(p1,p2,…,pt),基β的动态范围满足ω=p1p2p3…pt≤2512;预先生成客户端私钥dA,将dA在β这组基下表示为dA=(dA,1,dA,2,…,dA,t),其中dA,i=dAmodpi,i=1,…,t;预先确定密文信息C,所述C=C1||C2||C3,客户端和云服务器端预先确定β与dA作为椭圆曲线系统参数、确定椭圆曲线的基点G,其阶数为n;步骤二:从密文C中提取出C1;验证C1是否为椭圆曲线上的非无穷远点,如果是的话则将C1发送给云服务器端,否则跳出本流程;步骤三:云服务器端产生一个随机数k,且k∈[1,n‑1];步骤四:云服务器端计算椭圆曲线上的点P,P=[k]*C1;步骤五:云服务器端计算k模n的逆k‑1,即:k*k‑1=1 mod n;将k‑1在β这组基下表示为其中步骤六:云服务器端将k‑1用非线性变换s1,s2,…,st进行混淆;即并将P点和发送给客户端;步骤七:客户端通过查找密钥表Tablei计算其中为si的逆变换,所述Tablei是通过遍历ki的所有可能值,计算制作出的密钥表,i=1、2......t,私钥信息dA,i隐藏在密钥表中;步骤八:客户端利用中国剩余定理恢复出v;步骤九:客户端计算v′=v mod n;步骤十:客户端计算椭圆曲线点(x2,y2)=[v′]*P;步骤十一:客户端计算t1=KDF(x2||y2,klen),其中KDF()为密钥分发函数,klen为明文M的比特长度;若t1≠0,从密文C中提取出C2,计算否则跳出本流程;步骤十二:计算u=Hash(x2||M′||y2);步骤十三:从密文C中提取出C3,若u=C3,则M′为明文;其中,P1代表第一个素数基,P2代表第二个素数基,Pt代表第t个素数基;(p1,p2,…,pt)为步骤一中选取的余数基的合集;Vi为查表计算所得结果,其个数对应于余数基的个数;V为消息摘要长度单位为比特;t代表步骤一中素数基的个数;其中,c1,c2,c3表示的是密文c的三个部分,即密文C由c1,c2,c3共同构成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十研究所,未经中国电子科技集团公司第三十研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611203876.1/,转载请声明来源钻瓜专利网。
- 上一篇:公钥验证的方法及装置
- 下一篇:一种环域上误差学习问题的加密方法及电路