[发明专利]一种基于余数系统的商密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/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top