RSA的密钥生成的步骤的简述
RSA的计算方式
密文=明文的E方 mod N
明文=密文的D方 mod N
1、使用伪随机生成器生成大素数p,q,然后将p与q进行相乘最后得到模数N
2、通过N计算出中间参数L
3、使用中间参数L计算出E和D,其中E与N组成公钥,D与N组成私钥
公钥发放到其他用户使用,私钥保留在自身上用作解密公钥加密后的数据
攻击的切入点
1、攻击点1:
利用RSA的计算公式尝试去破解相关的明文信息密文=明文的E方 mod N,但是这种方式从它的本质上来说是不行的,因为这个公式中N是一个十分庞大的素数的乘积,所以如果从解密公式去出发去对明文信息进行解密是行不通过的,因为这是一个离散对数的问题,当N的数值大到一定的程度之后,该公式可以被认为是难解的,除非使用算力惊人的计算机。
2、攻击点2:
从N出发,如果能够将N分解为pq,那么后续的私钥DN也就可以顺利的求解出来了,但是从本质上来说,这又涉及到一个数学原理,也就是大素数的难解性,所以当N大到一定程度后,N的分解也是一个问题,所以说如果攻击从这个点出发也是不行的
3、攻击点3:
从D出发,通过穷举的方式不断尝试出最终的解密密钥,一般来说D的位数和模N的位数是相近的,所以这就使得穷举法列举出来的密钥空间是十分的庞大的,而且在RSA2048的情况下,密钥空间更是达到惊人的2的2048次方,所以可想而知,穷举也是不行的。