12、密码分析中的频率分析技术与Python实现

密码分析中的频率分析技术与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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值