㈠ rsa算法的攻击方法有哪些
1 密码破译者知道的信息
密文:可以通过窃听来获取。
数E和N:公钥是公开的信息,因此密码破译者知道E和N。
2 密码破译者不知道的信息
明文:需要破译的内容。
数D:私钥至少D是不知道的信息。
其他:密码破译者不知道生成密钥对时所使用的p、q和L
二 通过密文来求明文
RSA的加密过程如下。
密文=明文的E次方 mod N
由于密码破译者知道密文、E和N,那么有没有一种方法能够用E次方 mod N之后的密文求出原来的明文呢?如果没有 mod
N的话,即:
密文=明文的E次方
通过密文求明文的难度不大,因为这可以被看作是一个求对数的问题。
但是,加上 mod N之后,求明文就变成了求离散对数的问题,这是非常困难的,因为人类还没有发现求离散对数的高效算法。
三 通过暴力破解来找出D
只要知道数D,就能够对密文进行解密。因此,可以逐一尝试有可能作为D的数字来破译RSA,也就是暴力破解法。暴力破解的难度会随着D的长度增加而变大,当D足够长时,就不可能在现实的时间内通过暴力破解找出数D。
现在,RSA中所使用的p和q的长度都在1024比特以上,N的长度为2048比特以上。由于E和D的长度可以和N差不多,因此要找出D,就需要进行2048比特以上的暴力破解。要在这样的长度下用暴力破解找出D是极其困难的。
㈡ 求n皇后问题的各种算法
n皇后的算法只有DFS
优化倒是有几个,1.位运算优化,2.旋转对称优化,建议你网络一下 USACO 跳棋的挑战,就是n皇后问题,这是经典题
㈢ 为何能分解大整数n即意味着破解rsa算法
因为如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。
可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。
对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。
假如有人找到一种快速因数分解的算法,那么RSA的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA密钥才可能被暴力破解。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。
只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。

RSA算法简介:
RSA算法是一种加密算法,广泛应用于现在的信息加密传输等领域,它的狭义应用流程如下:
现在加如你需要传送某一串信息M(这里简化为数字)给一些人,利用RSA算法加密以后你可以得到一个密文C,然后你将密文C传送给你需要传达的人,而对方有一个密钥D,对方可以比较容易地利用密钥D将密文C解密得到需要的信息M。
那么这里为了传输信息的保密,我们就要尽可能保证密文C不会被其它人解密,也就是尽可能无法让旁人得到D的值。