基于格理论来破解RSA公钥密码(3)【完结篇】

文章详细介绍了基于格理论的RSA公钥密码破解方法,通过定理解释和证明,展示了如何在特定条件下求解RSA明文,利用中国剩余定理合并多项式,以及对求根问题的分析,揭示了可能的攻击途径和限制。
摘要由CSDN通过智能技术生成

目录

一. 介绍

二. RSA明文求解算法

2.1 定理解释

2.2 定理证明

三. 分析

四. 推荐文献

五. 小结


一. 介绍

系列文章:

基于格理论来破解RSA公钥密码(1)-CSDN博客

基于格理论来破解RSA公钥密码(2)-CSDN博客

在以上文章中,我们证明了一个非常重要的定理,此处我们来简单回顾一下该定理想表达的内容。

令N代表一个整数,f代表“首1”且次数为d的多项式,也就是满足:

f\in Z_N[x]

其中“首1”的含义是最高次数项x^d的系数为1。下标N代表多项式的每个系数均小于N,类似于模N的效果。

如果现在我们想求解一个方程为:

f(x)=0\quad mod\ N

该方程的本质就是求根。本身求一个应该难度不大,但如果需要满足如下两个限制条件的情况下,以上定理告诉我们可以求出对应的整数解x:

x\in Z\quad |x|\leq B

B=N^{1/d}

将以上过程可以形式化表达为一定定理:

此处的定理很类似网络空间安全中的小整数解问题,我们知道一般求小整数都是很难的。但该定理告诉我们可以求,所以也常被用于攻击RSA公钥密码系统。

在以上过程中,整数N是由两个大素数相乘得到(RSA公钥密码系统的公钥来源),我们是不知道这两个大素数具体等于多少。如果可以找出这两个大素数,那么RSA密码系统则可以直接被攻破,也就是可以利用欧拉定理直接求出私钥,反应在此处的问题上,当然也就会存在更有效的寻找根的算法。

以上问题的本质则是在模数情况下,求根的问题。

二. RSA明文求解算法

2.1 定理解释

假定有k个两个互素的整数,也就是我们把明文传递给了k个不同的人,如下:

N_1,\cdots,N_k

其中必定存在一个最小的N,我们将其记为:

N_{min}=min_iN_i

N相当于RSA中的公钥,所以都是公开的。

将RSA的加密过程抽象成多项式的运算过程,那么也就是有k个多项式,这些多项式中最大的次数设定为d,如下:

g_i\in Z_{N_i}[x]

很明显明文M的大小肯定小于所有N的值,也就是可得:

M<N_{min}

正如刚才所提到的,把RSA的加密过程看成多项式的运算过程,那么也就有k个密文,如下:

g_i(M)=C_i\quad i=1,\cdots,k

我们要求密文的个数要满足:

k\geq d

综合以上在给定如下信息的情况:

(N_i,g_i,C_i)_{i=1}^k

我们可以直接攻破RSA密码系统,并获得明文M

将以上过程形式化表达为一个定理,如下:

2.2 定理证明

原多项式为g,所求的值为C,我们将其换个新的多项式,如下:

h_i=g_i-C_i\quad 1\leq i\leq k

那么原来的问题,则变为:

h_i(M)=0\quad mod\ N_i\quad i=1,\cdots,k

不失一般性,也可以假设此处的多项式hi也是“首1”(monic)的多项式。那如果不是怎么办?

那就求mod Ni下的逆,则可以把其系数转变为1.那如果该数没有模逆,怎么办?

没有模逆说明两者不互素,这不就找到形成N的素数了吗!RSA系统直接被攻破。

同样,假设所有的多项式hi的次数均为d,当然如果不够d的话,两边同时乘以x相应的次数即可,该过程不改变多项式的根。

接下来,借助中国剩余定理(Chinese Remainder Theorem)讲这些多项式hi合并成一个多项式h,我们可以将其计算为:

简单分析下此处的中国剩余定理:

以上等式的来源于Ti到底应该怎么选取,我们的原则是当下标相等时,模的结果为1,也就是:

T_i\quad mod\ N_i=1

当下标不等时,模完的结果为0,也就是:

i\neq j\quad T_i\quad mod\ N_j=0

借助中国剩余定理的性质,我们总结出最终的多项式h(x)需要满足三个性质:

(1)次数

h(x)的次数与原始的多项式保持一致,均为d

(2)首1

h(x)的最高次数x^d的系数为1,模任何的Ni均为1

(3)根不变

很明显最终的h(M)依旧为0,模最大的相乘结果的N

综上我们可以利用已有的性质证明:

第一个不等式:明文M需要满足的基本条件

第二个不等式:最小的N满足的结论

第三个不等式:来源k>d可得

如果明文M满足如上条件,那么我们可以直接利用已有的求根定理得出最终的结果M。

定理证明完毕。

三. 分析

在数学领域有一个问题,如果我们将自变量的取值限定为:

x\in\lbrace -B,\cdots,0,\cdots,B\rbrace

那么一个多项式的次数为d时,且模N的情况下有多少个根呢?

以上的分析告诉我们,当此处的B限定为:

那么至少可以求出一个根。

当把次数d提高到2d-1时,上限B设定为:

也可以多项式时间内求出一个根x出来。

需要注意的是,本文章分析出的定理所使用B的上限为:

有的时候并不能把所有满足的根全求出来,通常只能求出一部分。比如举一个例子,我们的N可以取:

N=p^2

多项式举一个简单的例子:

f(x)=x^2

那么根据以上的结果,我们求根的范围可以限定成:

那么在这个范围内,该多项式有很多根,其根的个数大约有:

N^\epsilon

这是一个类似指数个数的空间,大概率不能全部求出来。

四. 推荐文献

(1)攻击RSA密码系统的方法合集

Dan Boneh. Twenty years of attacks on the RSA cryptosystem. Notices of the American Mathematical Society (AMS), 46(2):203–213, 1999.
(2)模多项式根的求解分析

Don Coppersmith. Finding small solutions to small degree polynomials. Lecture Notes in Computer Science, 2146:20–31, 2001.
 

五. 小结

基于方法的RSA类型算法密码分析研究旨在利用数学的理论算法分析技术来研究RSA类型密码算法的安全性。 RSA算法基于大数分解难题的困难性,其安全性建立在分解大质数的复杂性上。然而,方法的出现为研究者提供了一种新的思路和工具,可以在一定程度上对RSA类型算法进行密码分析。 方法是一种研究多维空间中的离散对象的数学理论。在密码学中,方法可以用于密码系统的设计和密码分析。基于方法的RSA类型算法密码分析研究主要涉及以下几个方面: 首先,研究者可以通过构造特定的结构来分析RSA算法密码强度。通过研究结构的属性,可以了解RSA算法中随机数生成、密钥生成和加密解密等关键步骤的安全性,并进一步加以改进。 其次,方法的使用可以帮助研究者寻找RSA算法中存在的漏洞。通过对结构的运算和几何特性的研究,可以发现RSA算法中可能存在的隐含弱点,从而提出攻击算法或改进方案。 此外,方法还可以用于RSA算法的加密效率进行分析。通过研究某一特定类型的结构,可以优化RSA算法的加密速度和存储空间。 总体而言,基于方法的RSA类型算法密码分析研究是一种综合利用数学和密码学的方法,旨在提高RSA算法的安全性和效率。但是,由于方法在密码学中的用领域仍然处于探索阶段,这些研究成果需要进一步的验证和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值