凯撒密码--分析、破解

凯撒密码是单表替换密码,明文的一个字符用相应的一个密文字符替代。加密过程是从明文字母表到密文字母表的一一映射,凯撒密码又叫循环移位密码。

0x01加密解密方法

把明文中所有字母都用它右边的第k个字母替代,并认为z后边是A,这种映射关系表达式为:

c =(p+k)mod26

p是明文字母,k是明文秘钥
解密:

p=(c-k)mod26

c是密文

当k等于3时
在这里插入图片描述
如明文为:please confirm receipt
则密文为:SOHDVH FRQILUP UHFHLSW

0x02安全性分析

移位密码是极其不安全的,因为它可被穷举秘钥搜索所分析:仅有26个可能的秘钥,尝试每一个可能的加密规则,知道一个有意义的明文串被获得。平均来说,一个明文在尝试26/2=13解密规则后将显示出来

0x03 破解

1、穷举破译法
实现程序:

message="SOHDVH FRQILUP UHFHLSW" #以空格分隔
all_char="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for key in range(len(all_char)):
    s=""
    for encode_char in message:
        if encode_char in all_char:
            num = all_char.find(encode_char)    #找到字符位置
            num = (num - key+len(all_char))%len(all_char)
            s=s+all_char[num]
        else:                                   #不在就是空格
            s=s+encode_char
    print("key %s:%s"%(key,s))

在这里插入图片描述
CAP4实现:找到Simple Analysis中的shfit,然后点击run

在这里插入图片描述2、统计分析,这里我们用软件CAP4
首先将密文复制到Ciphertext里,然后再Basic Tools找到Freq,点击
在这里插入图片描述
点击run,sort是排序,Graph是以图标显示统计特性
在这里插入图片描述
利用明文统计规律与密文统计规律进行对应,明文统计规律表
i对应的可能是e,k=i-e=4
在这里插入图片描述
点击Ciphers中的Simple shift,输入K=4就可以了,凯撒密码属于简单移位密码
在这里插入图片描述
在这里插入图片描述

发布了168 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41683305/article/details/104593395