当前位置: 首页 > 专利查询>梁庆生专利>正文

一种可抵御量子计算机攻击的非对称加密及签名方法技术

技术编号:35575788 阅读:55 留言:0更新日期:2022-11-12 16:00
本发明专利技术公开了一种可抵御量子计算机攻击的非对称加密及签名方法,本发明专利技术步骤包括签名密钥的生成、明文的签名、明文的验签、加密密钥的产生、明文的加密和密文的解密,签名原理是构造一个具有陷井的高次剩余方程一,使用私钥对方程一求解得到签名,使用公钥验证方程一是否成立来验证签名;加密原理是构造一个具有陷井的高次剩余方程二,使用公钥对方程二进行计算求得密文,使用私钥求方程二关于密文的解获得明文。该签名及加密算法能够有效地对抗量子计算机的Shor算法及Grover算法的攻击,同时速度快,效率高,位数少,提高了加密数据的安全性及签名的真实性。及签名的真实性。及签名的真实性。

【技术实现步骤摘要】
一种可抵御量子计算机攻击的非对称加密及签名方法


[0001]本专利技术属于数据加密及签名处理
,具体涉及一种可抵御量子计算机攻击的非对称加密及签名方法。

技术介绍

[0002]非对称加密需要两个密钥即公钥和私钥。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密,目前非对称加密的算法主要采用RSA算法和ECC算法进行加密。
[0003]RSA算法是将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用,私钥则为自己所有,供解密之用。
[0004]ECC算法是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。
[0005]但是,现有的非对称算法RSA及SM2(ECC)均无法对抗即将到来的量子计算机,在可见的量子时代,RSA或SM2(ECC)等算法将无法保证加密数据的安全及签名的真实性。

技术实现思路

[0006]本专利技术的目的在于提供一种可抵御量子计算机攻击的非对称加密及签名方法,通过签名密钥的生成、明文的签名、明文的验签、加密密钥的产生、明文的加密和密文的解密,能够有效地对抗量子计算机的Shor算法及Grover算法的攻击,同时速度快,效率高,位数少,提高了加密数据的安全性及签名的真实性,以解决上述
技术介绍
中提出的问题。
[0007]为实现上述目的,本专利技术采用了如下技术方案:一种可抵御量子计算机攻击的非对称加密及签名方法,包括如下步骤:
[0008]S1、签名密钥的生成,基于高次剩余方程的方程一x
h
≡t2(modN),其中t为明文,x为要求的签名数据,h为素数,随机生成i个素数p1,p2,p3...,p
i
,称为K1集合,再根据p1,p2,p3...,p
i
‑1求符合陷井条件的条件一及条件二的素数p
i
,重复上述步骤直至生成j个集合,即K
1、
K
2、
K3…
K
j
,最后将K1至K
j
集合中的所有元素相乘后求得N,将N及h作为公钥,可以公开,K1至K
j
集合作为私钥K,不公开;
[0009]S2、明文的签名,设有一明文t,且gcd(t,N)==1,已知公钥N及h,利用私钥K
1、
K
2、
K3…
K
j
,根据高次剩余方程:x
h
≡t2(modN),求高次剩余方程的解x0,x0即为签名后的数据x0;
[0010]S3、明文的验签,要对明文t进行验签,只需要验证签名后的数据x0是否为高次剩余方程的解即可;
[0011]S4、加密密钥的产生,根据同余定理将方程二x
h
≡d(modN)可转化为如下第一方程和第二方程,第一方程为y
h
≡d3(modN),第二方程为x3≡y(modN),其中d为明文t加密后的密
文,y为加密数据,随机生成i个素数p1,p2,p3...,p
i
,称为K1集合,再根据p1,p2,p3...,p
i
‑1求符合陷井条件的条件三、条件四及条件五的素数p
i
,重复上述步骤直至生成j个集合,即K
1、
K
2、
K3…
K
j
,最后将K1至K
j
集合中的所有元素相乘后求得N,判断是否成立;若成立,则附加数据A为1,若不成立,则附加数据A为3,最后将N乘以A,即:N=N*A,将N及h作为公钥,可以公开,K1至K
j
集合以及附加数A作为私钥K,不公开;
[0012]S5、明文的加密,设有一明文t,且gcd(t,N)==1,根据方程d≡t
h
(modN)计算出d,d即为明文t加密后的密文;
[0013]S6、密文的解密,先根据陷井条件的条件三S6、密文的解密,先根据陷井条件的条件三及条四件N=A*K1*K2*K3*...求第一方程y
h
≡d3(modN)的解y,再根据条件五求第二方程x3≡y(modN)的解x,第二方程的解x0即为加密前的明文t。
[0014]优选的,步骤S1及S4所述陷井条件如下:
[0015]条件一为:条件一为:
[0016]条件二为:N=K1*K2*K3*

[0017]条件三为:条件三为:
[0018]条件四为:N=A*K1*K2*K3*...
[0019]及有条件五:
[0020]优选的,步骤S1及S4所述方程一和方程二也可以是x
H
≡t(mod 3p),陷井条件为是及H=h1*h2。
[0021]优选的,所述签名密钥的生成具体步骤如下:
[0022]A1、先随机生成一素数集合K1,该集合中共有256个素数元素,分别为:p1,p2,p3...,p
256

[0023]A2、K1集合中的每一个元素p
n
,都符合
[0024]A3、K1集合中的第一个元素p1为大的素数,p2,p3...,p
256
为小的素数;
[0025]A4、然后,再根据p1,p2,p3...,p
255
求一符合条件一的素数p
256

[0026]A5、由性质可知:及故并立即推出方程二:(p1‑
1)*(p2‑
1)*...*(p
256

1)≡

2(mod h);
[0027]A6、由于方程二为一元一次剩余方程,有解且有无数解,因而可通过有限次的测试,获得符合条件一的一素数解p
26

[0028]A7、接着,再重A1至A6的步骤,生成K2集合;
[0029]A8、至此,一共生成两个这样的集合,即K1,K2;
[0030]A9、将K1至K2集合中的所有元素相乘后求得N;
[0031]A10、将N及h作为公钥,可以公开,K1至K2集合作为私钥K,为私有不公开。
[0032]优选的,步骤2中所述明文的签名的具体步骤如下:
[0033]B1、对要进行签名的数据m进行SM3哈希运算后,得出哈希后的数据t;
[0034]B2、若gcd(t,N)≠1,则令t=t+1;
[0035]B3、重复B2,直至gcd(t,N)=1为止;
[0036]B4、接着,根据方程一:x
...

【技术保护点】

【技术特征摘要】
1.一种可抵御量子计算机攻击的非对称加密及签名方法,其特征在于:包括如下步骤:S1、签名密钥的生成,基于高次剩余方程的方程一x
h
≡t2(modN),其中t为明文,x为要求的签名数据,h为素数,随机生成i个素数p1,p2,p3...,p
i
,称为K1集合,再根据p1,p2,p3...,p
i
‑1求符合陷井条件的条件一及条件二的素数p
i
,重复上述步骤直至生成j个集合,即K1、K2、K3…
K
j
,最后将K1至K
j
集合中的所有元素相乘后求得N,将N及h作为公钥,可以公开,K1至K
j
集合作为私钥K,不公开;S2、明文的签名,设有一明文t,且gcd(t,N)==1,已知公钥N及h,利用私钥K1、K2、K3…
K
j
,根据高次剩余方程:x
h
≡t2(modN),求高次剩余方程的解x0,x0即为签名后的数据x0;S3、明文的验签,要对明文t进行验签,只需要验证签名后的数据x0是否为高次剩余方程的解即可;S4、加密密钥的产生,根据同余定理将方程二x
h
≡d(modN)可转化为如下第一方程和第二方程,第一方程为y
h
≡d3(mod N),第二方程为x3≡y(modN),其中d为明文t加密后的密文,y为加密数据,随机生成i个素数p1,p2,p3...,p
i
,称为K1集合,再根据p1,p2,p3...,p
i
‑1求符合陷井条件的条件三、条件四及条件五的素数p
i
,重复上述步骤直至生成j个集合,即K1、K2、K3…
K
j
,最后将K1至K
j
集合中的所有元素相乘后求得N,判断是否成立;若成立,则附加数据A为1,若不成立,则附加数据A为3,最后将N乘以A,即:N=N*A,将N及h作为公钥,可以公开,K1至K
j
集合以及附加数A作为私钥K,不公开;S5、明文的加密,设有一明文t,且gcd(t,N)==1,根据方程d≡t
h
(mod N)计算出d,d即为明文t加密后的密文;S6、密文的解密,先根据陷井条件的条件三S6、密文的解密,先根据陷井条件的条件三及条四件N=A*K1*K2*K3*...求第一方程y
h
≡d3(mod N)的解y,再根据条件五求第二方程x3≡y(modN)的解x,第二方程的解x0即为加密前的明文t。2.根据权利要求1所述的一种可抵御量子计算机攻击的非对称加密及签名方法,其特征在于:步骤S1及S4所述陷井条件如下:条件一为:条件一为:条件二为:N=K1*K2*K3*...条件三为:条件三为:条件四为:N=A*K1*K2*K3*...及有条件五:3.根据权利要求1所述的一种可抵御量子计算机攻击的非对称加密及签名方法,其特征在于:步骤S1及S4所述方程一和方程二也可以是x
H
≡t(mod 3p),陷井条件为是3p),陷井条件为是及H=h1*h2。4.根据权利要求1所述的一种可抵御量子计算机攻击的非对称加密及签名方法,其特征在于:所述签名密钥的生成具体步骤如下:A1、先随机生成一素数集合K1,该集合中共有256个素数元素,分别为:p1,p2,p3...,p
256
;A2、K1集合中的每一个元素p
n
,都符合A3、K1集合中的第一个元素p1为大的素数,p2,p3...,p
256
为小的素数;
A4、然后,再根据p1,p2,p3...,p
255
求一符合条件一的素数p
256
;A5、由性质可知:及故并立即推出方程二:(p1‑
1)*(p2‑
1)*...*(p
256

1)≡

2(mod h);A6、由于方程二为一元一次剩余方程,有解且有无数解,因而可通过有限次的测试,获得符合条件一的一素数解p
256
;A7、接着,再重A1至A6的步骤,生成K2集合;A8、至此,一共生成两个这样的集合,即K1,K2;A9、将K1至K2集合中的所有元素相乘后求得N;A10、将N及h作为公钥,可以公开,K1至K2集合作为私钥K,为私有不公开。5.根据权利要求1所述的一种可抵御量子计算机攻击的非对称加密及签名方法,其特征在于:步骤2中所述明文的签名的具体步骤如下:B1、对要进行签名的数据m进行SM3哈希运算后,得出哈希后的数据t;B2、若gcd(t,N)≠1,则令t=t+1;B3、重复B2,直至gcd(t,N)=1为止;B4、接着,根据方程一:x
h
≡t2(modN),求方程一的解x0,x0即为签名后的数据x0;B5、由于已知有条件二:N=K1*K2,由方程一可得如下方程组一:x
1h
≡t2(mod K1)x2h≡t2(mod K2);B6、先求方程组一中的x
1h
≡t2(mod K1)的解x
′1;B7、根据条件一有根据费马小定理及同余理论可推出:B8...

【专利技术属性】
技术研发人员:梁庆生
申请(专利权)人:梁庆生
类型:发明
国别省市:

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

1