我正在尝试使用Python中的前向搜索字典攻击来恢复RSA加密的5个字符的单词但有困难。该字在2个24位块(3648141 5604637)中加密,用最后一个块填充空格
e = 5
n = 21508387
table = {}
for ptext in range(65,90):
ctext = pow(ptext,e,n)
table[ctext] = ptext
print table
我知道我需要做以上所以它解密所有组合3个字符长AAA AAB ... ZZA ZZB等但我只解密单个字符AB C .. XYZ所以如何让它解密一次3个字符?
我得到的打印出的很多内容都是{8521919L:65} {7688462L:66,8521919L:65} 但我在结果中看不到我的块,我假设数字的冒号是ASCII?
我能获得一些帮助,有什么建议吗? 谢谢
答案 0 :(得分:1)
生成所有三个字母的组合,将它们编码为整数,应用pow函数,在与加密消息匹配时进行报告。
迭代所有三个字母组合最明显的方法是使用三个嵌套循环而不是现在拥有的循环。