一种可抵御量子计算机攻击的非对称算法的制作方法

文档序号:31722336发布日期:2022-10-04 23:37阅读:72来源:国知局

1.本发明涉及数据加密技术领域,具体为一种可抵御量子计算机攻击的非对称算法。


背景技术:

2.现有的流行的非对称算法rsa及sm2(ecc)等算法均是基于大素数的难以分解的原理实现,且这些算法均不能证明其不可破解。若存在一种大素数的分解方法,或是存在一种能迅速分解大素数的计算机(例如现在正在发展的量子计算机),rsa或sm2(ecc)等算法将难以保证数据的安全。


技术实现要素:

3.本发明的目的在于提供一种可抵御量子计算机攻击的非对称算法,基于在多元高次不定方程上建立一种对数据进行加密的方法,以此能够实现不依赖大素数难以分解就能安全地对数据进行加密的非对称加密算法。
4.为实现上述目的,本发明提供如下技术方案:一种可抵御量子计算机攻击的非对称算法,包括如下步骤:
5.s1.建立一公钥矩阵g及一私钥矩阵k;公钥矩阵g由多组公钥对构成,私钥矩阵k也由与公钥矩阵g相应的多组私钥对组成;
6.s2.设公钥矩阵g有n组公钥对g[n],则私钥矩阵k也有n组私钥对k[n];公钥矩阵g中的每个元素都与私钥矩阵k中的每个元素相对应,即g[0]与k[0]相对应,g[1]与k[1]相对应,如些类推;
[0007]
s3.g矩阵中的每组公钥对又由公钥x及y组成,k矩阵中每组私钥对k[i]由与之对应公钥对g[i]中的p及q组成,且,,且:,p和q均为素数,和为远小于p的自然数,公钥矩阵g及私钥矩阵k的构成如下:
[0008]
g矩阵
[0009]
k矩阵;
[0010]
s4.k矩阵中每组私钥对k[i]由与之对应公钥对g[i]中的p及q组成,有一固定幂f,;又有一公钥e,为一随机自然数,其值约小于k矩阵中所有私钥对中的p值;同时又有一数e,,公钥矩阵g中的所有公钥x中的都小于e且大于,即:;公钥矩阵g中的所有公钥y中的都小于e且大于,即:;
[0011]
s5.若公钥矩阵g有n个元素,则加密时,明文是以n bit为一分组进行加密,即明文t符合以下条件:,当需要对明文t进行加密时,先引入一初始值为预设值的向量iv(,然后将向量iv与明文t作异或运算得出m,即:,然后再随机生成4个随机数(a,b,c,d),并符合以下条件:(,及,);
[0012]
s6.接着再随机生成一个自然数(),符合以下条件:,为一负数,然后根据m的大小,在公钥矩阵g中选取对应的公钥对g[m],作如下运算:,生成密文m;
[0013]
s7.当要解密密文m时,先用m除以私钥矩阵k中k[0].p,得出商s及余数r,即,若,则k[0]的下标为密文m的其中一个解,解数为0;若不能,则k[0]不是密文m的解,而后再用k[1]来对密文m进行求解,如些类推;若密文m的解数只有一个k[],则该私钥k[]的下标等于m,最后,我们将m与iv作异或运算后,得出t,即:;
[0014]
s8.若密文m的解有多个,可以通过对m进行hash校验求正解,将明文在n bit分组(简称加密分组)的基础上再次分成以j为单位的组(简称hash分组),每个hash分组都有对应的j个m,构成一个j矩阵,在每个hash组加密完成后,用hash算法对j矩阵进行hash运算,得出q,并发给私钥持有者;
[0015]
s9.私钥持有者在解密完成一个hash分组后,若发现该hash分组中有一个或以上的加密分组的密文存在有多个解,则对该hash分组中的所有加密分组的可能解进行组合,并检验其hash值,若对某一组合进行hash时有等于q,则该组合对应的解就是该hash分组的明文的正解。
[0016]
优选的,所述s3中的公钥矩阵g中的所有公钥y中的都小于e且大于,即:。
[0017]
优选的,所述s9中若某一密文m的解数较多,让加密者重新生成与该明文对应的新的密文,若m及的解都指向同一个私钥k[m],则可认为该私钥k[m]为密文m及的其中一个解。
[0018]
优选的,所述s3中k矩阵中的每组私钥对中p与其它私钥对中p在并不相等的同一个数量级上,同时每组私钥对中的q也与其它的私钥对中的p及q不相等。
[0019]
与现有技术相比,本发明的有益效果是:
[0020]
1、本发明通过建立一种对数据进行加密的方法,基于多元高次不定方程,判断某一与公钥相关的随机不定方程的结果是否在一定条件能被私钥矩阵中的某一私钥整除,若能则代表传递该私钥在私钥矩阵中的索引信息,以此能够实现不依赖大素数难以分解就能安全地对数据进行加密的非对称加密算法。
[0021]
2、本发明所提供的一种对数据进行加密的方法,无论是对与私钥p和q相关的的公钥及,还是对与明文m相关的密文m进行攻击,都是无效的;当私钥是一个大素数时,即便是使用穷举法,亦难以奏效的。
具体实施方式
[0022]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]
实施例1
[0024]
s1.建立公钥矩阵g及一私钥矩阵k;公钥矩阵g由多组公钥对构成,私钥矩阵k也由与公钥矩阵g相应的多组私钥对组成;
[0025]
s2.设公钥矩阵g有n组公钥对g[n],则私钥矩阵k也有n组私钥对k[n];公钥矩阵g中的每个元素都与私钥矩阵k中的每个元素相对应,即g[0]与k[0]相对应,g[1]与k[1]相对应,如些类推;
[0026]
s3.g矩阵中的每组公钥对又由公钥x及y组成,,,且:,p和q均为素数,和为远小于p的自然数,公钥矩阵g中的所有公钥y中的都小于e且大于,即:,k矩阵中每组私钥对k[i]由与之对应公钥对g[i]中的p及q组成,k矩阵中的每组私钥对中p与其它私钥对中p在并不相
等的同一个数量级上,同时每组私钥对中的q也与其它的私钥对中的p及q不相等,公钥矩阵g及私钥矩阵k的构成如下:
[0027]
g矩阵
[0028]
k矩阵;
[0029]
s4.有一固定幂f,;又有一公钥e,为一随机自然数,其值约小于k矩阵中所有私钥对中的p值;同时又有一数e,,公钥矩阵g中的所有公钥x中的都小于e且大于,即:;公钥矩阵g中的所有公钥y中的都小于e且大于,即:;
[0030]
s5.若公钥矩阵g有n个元素,则加密时,明文是以n bit为一分组进行加密,即明文t符合以下条件:,当需要对明文t进行加密时,先引入一初始值为预设值的向量iv(,然后将向量iv与明文t作异或运算得出m,即:,然后再随机生成4个随机数(a,b,c,d),并符合以下条件:(,及,);
[0031]
s6.接着再随机生成一个自然数(),符合以下条件:,为一负数,然后根据m的大小,在公钥矩阵g中选取对应的公钥对g[m],作如下运算:,生成密文m;
[0032]
s7.当要解密密文m时,先用m除以私钥矩阵k中k[0].p,得出商s及余数r,即,若,则k[0]的下标为密文m的其中一个解,解数为0;若不能,则k[0]不是密文m的解,而后再用k[1]来对密文m进行求解,如些类推,若密文m的解数只有一个k[],则该私钥k[]的下标等于m,最后将m与iv作异或运算后,得出t,即:;
[0033]
s8.若密文m的解有多个,可以通过对m进行hash校验求正解,将明文在n bit分组(简称加密分组)的基础上再次分成以j为单位的组(简称hash分组),每个hash分组都有对应的j个m,构成一个j矩阵,在每个hash组加密完成后,用hash算法对j矩阵进行hash运算,得出q,并发给私钥持有者;
[0034]
s9.私钥持有者在解密完成一个hash分组后,若发现该hash分组中有一个或以上的加密分组的密文存在有多个解,则对该hash分组中的所有加密分组的可能解进行组合,并检验其hash值,若对某一组合进行hash时有等于q,则该组合对应的解就是该hash分组的明文的正解,若某一密文m的解数较多,让加密者重新生成与该明文对应的新的密文,若m及的解都指向同一个私钥k[m],则可认为该私钥k[m]为密文m及的其中一个解;对于某一密文m,无论是对与私钥p和q相关的公钥x及y,还是对与明文m相关的密文m进行攻击,都是无效的;当私钥是一个大素数时,即便是使用穷举法,亦难以奏效的。
[0035]
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1