一种基于SM2算法的协同解密方法及装置、系统、介质制造方法及图纸

技术编号:23897854 阅读:52 留言:0更新日期:2020-04-22 09:22
本发明专利技术涉及数据解密技术领域,更具体的说,涉及一种基于SM2算法的协同解密方法及装置、系统、介质。本方法包括以下步骤:S1第一通信方和第二通信方分别获取第一私钥分量D

【技术实现步骤摘要】
一种基于SM2算法的协同解密方法及装置、系统、介质
本专利技术涉及数据解密
,更具体的说,涉及一种基于SM2算法的协同解密方法及装置、系统、介质。
技术介绍
公钥密码算法已经在电子商务、电子政务、移动警务、移动办公得到广泛使用,在车联网、智能医疗系统、智能家居系统等物联网应用以及云计算系统中也发挥了越来越重要的作用。在公钥密码体制中,保证私钥的安全性是一个非常重要的问题。用户的私钥通常需要在专门的硬件安全模块(HSM,HardwareSecurityModule)中安全存储和使用,私钥不能从密码硬件中导出。常见的HSM包括USBKEY(U盾)、智能卡、TF卡(Trans-flashCard,闪存卡)、密码芯片等。随着互联网技术的发展,移动智能终端的普及率越来越高,随之而来的是安全问题,需要解决移动端的数据加密解密问题。智能移动终端通常并没有配置专用的硬件密码模块,只能依赖于软件密码模块来完成密码运算,私钥则需要存储在用户终端本地存储介质中。智能移动终端的防护能力较弱,虽然存储私钥时可以使用加密、PIN(PersonalId本文档来自技高网...

【技术保护点】
1.一种基于SM2算法的协同解密方法,其特征在于,包括以下步骤:/nS1第一通信方和第二通信方分别获取第一私钥分量D

【技术特征摘要】
1.一种基于SM2算法的协同解密方法,其特征在于,包括以下步骤:
S1第一通信方和第二通信方分别获取第一私钥分量DA和第二私钥分量DB;
S2第一通信方和第二通信方的第一私钥分量DA和第二私钥分量DB进行加法分享变换,获得第一私钥变换分量d1和第二私钥变换分量d2,满足如下变换关系,n为素数,是椭圆曲线E的基点G的阶,
其中,第一私钥变换分量d1和第二私钥变换分量d2为加法分享的私钥分量,用于执行后续的协同解密操作;
S3第一通信方和第二通信方,采用第一私钥变换分量d1和第二私钥变换分量d2,基于SM2算法协同解密协议传递中间结果,并对加密结果进行协同解密,获取解密结果。


2.根据权利要求1所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S2中,私钥分量进行加法分享变换,采用基于茫然传输协议的私钥分量变换协议实现,进一步包括以下步骤:
S21第一通信方和第二通信方在椭圆曲线E上随机选取一个群元素P作为公共参数;
S22第二通信方基于SM2算法计算得到混淆因子集合{Ui}={U1,U2,…,Ul},所述混淆因子集合{Ui}中每一个元素Ui与第二私钥分量DB的模逆中的1个比特相对应;
第二通信方将混淆因子集合的计算结果{Ui}发给第一通信方;
S23第一通信方接收混淆因子集合{Ui};
选择l个随机数x1,x2,…,xl,根据随机参数VaP和混淆因子集合{Ui},对随机数xi,i∈{1,2,…,l}与第一私钥分量DA形成的第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},j∈{1,2,…,l};
第一通信方计算得到第一私钥变换分量d1:
第一通信方将随机参数Va和加密结果集合{<Xj,X′j>}发送给第二通信方;
S24第二通信方接收随机参数Va和加密结果集合{<Xj,X′j>};
根据随机参数Va和加密结果集合{<Xj,X′j>},计算分享参数集合{ti},所述分享参数集合{ti}中每一个元素ti与第二私钥分量DB的模逆中的1个比特相对应;
计算得到第二私钥变换分量d2:第一私钥变换分量d1和第二私钥变换分量d2,满足如下变换关系,


3.根据权利要求2所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S21中,第一通信方和第二通信方通过密钥协商算法,协商选取公共参数。


4.根据权利要求2所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S22中,混淆因子集合{Ui}的计算方法,进一步包括以下步骤:
S221选择l个随机数m1,m2,…,mi,…ml,l为第二私钥分量DB的模逆的比特长度;
S222第二通信方从第二私钥分量DB的模逆中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S223第二通信方根据比特bi的值来决定计算Ui的计算公式:
若bi=0,计算Ui=[mi]G;
若bi=1,计算Ui=P-[mi]G;
其中,G是椭圆曲线E的基点,P是协商选取的公共参数,[mi]G代表基点G的mi倍点。


5.根据权利要求2所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S23中,随机参数Va、VaP和第一集合{<sj,s′j>}通过以下步骤获得:
根据第一私钥分量DA,计算得到第一集合{<sj,s′j>},j∈{1,2,…,l},其中第j个元素<sj,s′j〉的计算公式为:



选取1个比特长度为l的随机数a∈{0,1}l,计算随机参数Va和VaP,其中随机参数Va和VaP的计算公式为:





6.根据权利要求5所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S23中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j〉},第j个元素<Xj,X′j>的计算公式:





7.根据权利要求6所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S24中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S2411第二通信方从第二私钥分量DB的模逆中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S2412第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算
若bi=1,计算


8.根据权利要求5所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S23中,第一集合{〈sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j〉的计算公式:





9.根据权利要求8所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S24中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S2421第二通信方从第二私钥分量DB的模逆中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S2422第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算
若bi=1,计算


10.根据权利要求5所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S23中,第一集合{<sj,s′j>}的每一个元素分别加密计算,得到加密结果集合{<Xj,X′j>},第j个元素<Xj,X′j>的计算公式:





11.根据权利要求10所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S24中,分享参数集合{ti}的计算方法,进一步包括以下步骤:
S2431第二通信方从第二私钥分量DB的模逆中提取每一个比特bi∈{0,1},i∈{1,2,…,l};
S2432第二通信方根据比特bi的值来决定计算分享参数集合{ti}的计算公式:
若bi=0,计算:
若bi=1,计算:


12.根据权利要求2所述的基于SM2算法的协同解密方法,其特征在于,所述第一私钥变换分量d1设为固定值。


13.根据权利要求1所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S3进一步包括以下步骤:
S31输入基于SM2算法的加密结果C=C1||C3||C2;
S32第一通信方从加密结果C提取第一比特串C1;
将第一比特串C1的数据类型转换为第一椭圆曲线群元素
S33第一通信方根据第一私钥变换分量d1和第一椭圆曲线群元素计算得到第一中间结果
将第一中间结果T1和第一椭圆曲线群元素发送给第二通信方;
S34第二通信方接收第一中间结果T1和第一椭圆曲线群元素
第二通信方根据第一中间结果T1、第二私钥变换分量d2和第一椭圆曲线群元素计算得到第二中间结果第二椭圆曲线群元素
S35第二通信方计算得到第三中间结果t=KDF(x2||y2,klen),其中,||表示拼接,KDF(*)为预先定义的密钥派生函数,klen为输出的比特串长度;
S36第二通信方从加密结果C提取第二比特串C2,根据第三中间结果t,计算获取解密结果其中表示按位异或运算。


14.根据权利要求13所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S36之后,进一步包括以下步骤:第二通信方计算u=Hv(x2||M′||y2),从加密结果C中提取第三比特串C3,若u≠C3则提示错误,并退出解密流程,若u=C3,则输出解密结果M′。


15.根据权利要求13所述的基于SM2算法的协同解密方法,其特征在于,所述步骤S32之后,进一步包括以下步骤:
验证第一椭圆曲线群元素是否满足椭圆曲线E(Fq),若不满足则提示错误,并退出解密流程;
计算并判断椭圆曲线点S=[h]是否为无穷远点,若是无穷远点,则提示错误,并退出解密流程,其中h为余因子,hE(Fq)/n,n为基点G的阶。

【专利技术属性】
技术研发人员:崔久强管佩黄晨李聪聪李腾跃
申请(专利权)人:上海市数字证书认证中心有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1