一种基于SM2的具有可重随机性的公钥加解密方法

文档序号:32393720发布日期:2022-11-30 09:23阅读:来源:国知局

技术特征:
1.一种基于sm2的具有可重随机性的公钥加解密方法,其特征在于,该方法分为以下步骤:s1:构建公钥加解密系统,该系统中有三个角色,分别为发送方、接收方和可信第三方;加解密系统包括密钥生成模块、加密模块、解密模块和重随机模块;其中密钥生成模块和解密模块部署在接收方,加密模块部署在发送方加密模块,而重随机模块部署在可信第三方;s2:接收方运行密钥生成模块生成公钥pk和私钥sk,将公钥pk以及公开信息params通过公开安全信道发送给发送方和可信第三方;具体流程如下:s2.1输入安全参数1
λ
,1
λ
表示长度为λ的比特串,意味着λ比特的安全强度;在特征为q的有限域f
q
中基于非奇异椭圆曲线e(f
q
):y2≡x3+ax+b mod q确定一个n阶的椭圆曲线循环群群中的元素为椭圆曲线上点的坐标(x,y),其中n,q为大素数;s2.2从集合[1,n-1]中选取两个随机数d
b
和d
c
;s2.3计算公钥第一元素p
b
=[d
b
]p,公钥第二元素p
c
=[d
c
]p,[d]p表示椭圆曲线循环群中生成元p的d倍点,即为d-1次p与p的点加法,公式化表示为其中d为正整数,点加法的具体过程如下:s2.3.1令椭圆曲线上的坐标元素g1=(x1,y1)和g2=(x2,y2);s2.3.2计算g1和g2之间的斜率k
12
,若g1=g2,则其中a为s2.1中椭圆曲线的参数,该斜率为经过g1与椭圆曲线相切的切线的斜率;若g1≠g2,则k
12
=(y
1-y2)/(x
1-x2);s2.3.3计算g1和g2相加之后的横坐标g1和g2相相之后的纵坐标y3=k
12
(x
1-x3)-y1;s2.3.4返回点加法结果(x3,y3);s2.4构造三个映射函数三个映射函数的输入与输出均为群中的元素,且映射关系均为满射,构造过程如下:s2.4.1选择一个输出大于等于256比特的杂凑函数h(*),杂凑函数的输入为任意比特串,其中的三个映射函数选择的杂凑函数分别是sha-512算法、sha-256算法、sha-384算法;s2.4.2输入群中的元素g=(x,y),计算临时哈希值h=h(x||y)mod q;s2.4.3计算临时变量yy≡h3+ah+b mod q;s2.4.4利用拉格朗日定理判断二次剩余,其中拉格朗日定理为:若q是一个素数,计算如果计算结果为1,为二次剩余,反之则为二次非剩余;s2.4.5若yy为q的二次剩余,则计算转s2.4.6;若yy为q的二次非剩余,计算新的临时哈希值h

≡h(h)mod q,令h=h

,转s2.4.3;s2.4.6输出映射结果为点g=(h,y);s2.5将(d
b
,d
c
)组成私钥sk,将(p
b
,p
c
)组成公钥pk,将)组成公钥pk,将组成公开信息params;s2.6将公钥pk以及公开信息params通过公开安全信道发送给发送方和可信第三方;s3:发送方使用公钥pk和公开信息params,运行加密模块将需加密的消息生成原始密
文,并将原始密文发送给可信第三方;具体流程如下:s3.1输入需加密的信息s3.2从群中随机选取一个元素r;s3.3利用第一个映射函数计算临时第一变量s3.4利用第二个映射函数计算临时第二变量s3.5利用第三个映射函数计算临时第三变量s3.6从集合[1,n-1]中选取一个随机数w;s3.7计算原始密文第一元素ζ1=[w]p,原始密文第二元素ζ2=[w]p
b
+u,原始密文第三元素ζ3=[w]p
c
+t,s3.8将ζ1,ζ2,ζ3组成原始密文ζ,并将原始密文ζ发送给可信第三方;s4:可信第三方使用公开信息params运行重随机模块,对s3生成的原始密文ζ进行重随机,将得到的新密文发送给接收方;具体流程如下:s4.1将原始密文ζ解析成(ζ1,ζ2,ζ3);s4.2从集合[1,n-1]中选取一个随机数w

;s4.3计算新密文第一元素ζ1′
=ζ1+[w

]p,新密文第二元素ζ2′
=ζ2+[w

]p
b
,新密文第三元素ζ3′
=ζ3+[w

]p
c
,s4.4将ζ1′
,ζ2′
,ζ3′
组成新密文ζ

,将新密文ζ

发送给接收方;s5:接收方使用解密模块,通过私钥sk和公开信息params对收到的新密文ζ

进行解密获取明文,并逆转换得到最终的消息;具体流程如下:s5.1将新密文ζ

解析成(ζ1′
,ζ2′
,ζ3′
);s5.2计算临时第四变量u

=ζ2′‑
[d
b
]ζ1′
;s5.3计算临时第五变量t

=ζ3′‑
[d
c
]ζ1′
;s5.4利用第三个映射函数计算临时第六变量s5.5利用第二个映射函数计算临时第七变量s5.6利用第一个映射函数计算明文结果s5.7判断计算明文结果m

是否等于初始明文m,若不相等,则密文不合法,输出“密文不合法”消息,转s6;若相等,则解密结果为m,转s6;s6:公钥加解密系统结束运行。2.一种根据权利要求1所述基于sm2的具有可重随机性的公钥加解密方法,其特征在于:s2.1中,输入安全参数1
λ
中的λ=80时使用的n阶椭圆曲线群中的n需要达到2
160
数量级。3.一种根据权利要求1所述基于sm2的具有可重随机性的公钥加解密方法,其特征在于:椭圆曲线使用的参数如下:a=0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc,b=0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93,素数q=0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff,n=0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123,生成元p=(x
p
,y
p
)=(0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7,0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0)。

技术总结
本发明属于信息安全技术领域,涉及一种基于SM2的具有可重随机性的公钥加解密方法,分为以下步骤:S1:构建公钥加解密系统;S2:接收方运行密钥生成模块生成公钥pk和私钥sk,将公钥pk以及公开信息params通过公开安全信道发送给发送方和可信第三方;S3:发送方使用公钥pk和公开信息params,运行加密模块将需加密的消息生成原始密文,并将原始密文发送给可信第三方;S4:可信第三方使用公开信息params运行重随机模块,对S3生成的原始密文ζ进行重随机,将得到的新密文发送给接收方;S5:接收方使用解密模块,通过私钥sk和公开信息params对收到的新密文ζ


技术研发人员:王毅 陈荣茂 林宇量 王宝生
受保护的技术使用者:中国人民解放军国防科技大学
技术研发日:2022.08.29
技术公布日:2022/11/29
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1