我现在已经搜索了几天,但是我找不到一个用于加密,解密或试图破解使用公钥加密的加密文件(暴力)的大O表示法算法。我试图确定我开发的大量使用公钥加密的想法的大O符号。
与公钥加密相关的这些Big-O算法是什么:
A)使用L长度密钥加密由N个字符组成的文件
B)解密同一个文件
C)一种典型的强力算法,用于打破N个字符且最大密钥长度为L的加密文件
任何包含更高效算法的Big-O表示法都可以用来破解加密。此外,还可以参考可以找到此材料的任何地方。
很抱歉提出一个我自己应该能够找到的问题,但我没有设法找到我要找的东西。
答案 0 :(得分:5)
标准的公钥/私钥算法几乎从不用于大型输入,因为这些算法的安全属性通常不适合批量加密。最常见的配置是使用公钥/私钥算法加密一个小的(恒定大小,通常是128 - 256位)密钥,然后使用该密钥进行对称加密算法。
话虽这么说,我将使用RSA作为其余问题的测试用例:
A / B)放弃密钥生成,RSA在O(n)
中加密和解密消息的大小。 (请注意,所有消息必须是密钥的大小,因此填充较小的消息并且必须分解较大的消息。)加密/解密的确切速度取决于RSA实现使用的算法,但它是密钥大小的多项式:
C)给定公钥,可以通过对公钥进行因式分解来破解RSA,目前最好使用GNFS(http://www.javamex.com/tutorials/cryptography/rsa_key_length.shtml
O(exp((7.1 b)^1/3 (log b)^1/3))
)来完成。我不相信基于加密数据破解RSA的工作很多,因为公钥是一个更有用的目标。