密码分析中的频率分析技术与Python实现
1. 频率分析基础
频率分析是密码分析中的重要技术,在英文文本中,字母的出现频率有一定的规律。当文本为英文时,字母频率平方和通常接近0.065,即 $\sum_{i = 0}^{25} p_{i}^{2} \approx 0.065$,其中 $p_{i}$ 是标准英文文本中字符 $i$ 的出现率。通过计算这个值,我们可以判断文本是否为英文或者是否被加密。
以下是计算文本频率平方和的Python代码:
modifiedText = modifiedText.lower()
plaintext = ""
for c in modifiedText:
if (c.isalpha()):
plaintext = plaintext + c
# Determine the frequency analysis of the plaintext
frequency = {}
for ascii in range(ord('a'), ord('a')+26):
frequency[chr(ascii)] = float(plaintext.count(chr(ascii)))/len(plaintext)
sum_freqs_squared = 0.0
for ltr in frequency:
sum_freqs_squared += frequency[ltr]*frequency[ltr]
# Results
print()
print ("The frequency should be near .065 if plaintext
超级会员免费看
订阅专栏 解锁全文
1777

被折叠的 条评论
为什么被折叠?



