24小时热门版块排行榜     石溪大学接受考研调剂申请>

【调剂】北京石油化工学院2024年16个专业接受调剂
查看: 1004  |  回复: 0

hazheng

捐助贵宾 (著名写手)


[交流] 使用Python破解维吉尼亚密码

维吉尼亚密码是一种经典的多表密码系统,原理是通过一系列的凯撒密码加密增加其破解难度。维吉尼亚使用起来非常简单,只需要指定一串移位序列即可。但破解起来却非常困难,被称为“不可破解的密码”。

加解密原理
选择一串密钥,这个密钥可以是数字也可以是字母。一般来说使用字母,因为这样密钥便于记忆。原文和密钥都可以被表示为数字的形式,具体规则是这个字母在字母表中的次序,比如A是序号是2,B的序号是3,以此类推。加密的原理就是将原文的值对应的用密钥进行凯撒密码加密。

举个例子:

密钥是WOLF

明文:THIS WORLD DOESNT NEED A HERO IT NEEDS A PROFESSIONAL

密钥:WOLF WOLFW OLFWOL FWOL F WOLF WO LFWOL F WOLFWOLFWOLF

密文:QWFY CUXRJ JUKYTZ TKKJ G NKXU OZ TKKJY G VXULKYYOUTGR

比如第一个字符是T,序号20,第一个字符对应的密钥是W,序号23,那么密文就应该是序号(20+23)mod26的字母,即Q。解密时只需要按照同样的顺序减回来即可。这种加密方式本质上是一系列的凯撒密码的组合,但是却让暴力破解几乎不可能。首先密钥的长度是不确定的,其次对于每一种密钥长度n,都有26^n种可能性。如果密钥长度超过10,就已经超过100万亿种可能性了。这样的加密方式毫无疑问是暴力破解的噩梦,即便机器的性能足够,也还有判断猜解结果是否正确的问题。

破解方法
毫无疑问,这是个强壮又好用的加密系统,但这并不意味着它是不可破解的。但是通常来说,我们只能破解比较长的,有意义的文本加密后的密文。这是因为我们需要使用一些关于英文文本一些统计数据。

对于破解,我们首先要解决两个问题:密钥长度,具体的密钥。

我们要首先猜解出正确的密钥长度,不然长度不对,再努力都是白费。

这一步我们通过计算每种密钥长度的重合指数(CI)来判断这样划分后的文本与常规英文文本的接近程度。

使用Python破解维吉尼亚密码
​选择重合指数最高的作为密钥长度,进行下一步猜解。一旦有了正确的密钥长度,可以说就已经成功了一半了。接下来是利用每个字母在英文中出现的频次,做字频分析去猜解实际的密钥。正常的英文文章的匹配词频的IC一般在0.065左右,理论上最接近0.065的密钥就最可能是正确密钥。

使用Python破解维吉尼亚密码-1
使用这个技巧,我们对于密钥长度内的每一列都循环计算26种移位的IC值,然后选择最接近0.065的。最终这一串最接近0.065的移位序列就是我们猜解的密钥。

下面附一个实战案例:

首先猜解秘钥长度,12和24的CI最高,24又是12的倍数关系,这代表这两个值非常有可能是秘钥长度。

使用Python破解维吉尼亚密码-2
假设长度为12,猜解key

使用Python破解维吉尼亚密码-3
使用Python破解维吉尼亚密码-4
破解成功!

最后,如果大家有编程相关需求欢迎通过微信公众号联系我们。

微信公众号:320科技工作室。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hazheng 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] "颜宁:基础研究应顶天立地"能做到基础研究同时顶天立地的才是牛人 +6 zju2000 2024-04-24 6/300 2024-04-27 10:17 by kcmn1000
[教师之家] 大学直属学院卸任的副院长退休后还享受副处级的养老待遇吗? +4 苏东坡二世 2024-04-27 4/200 2024-04-27 10:12 by ZHONGWU_U
[博后之家] 南京大学-广州大学联合招聘博士后 欢迎广大优秀人才!!! +4 黑魔变身啾 2024-04-20 13/650 2024-04-27 08:37 by snxvt
[硕博家园] 博士白读了 +47 Da_Meng_Zi 2024-04-21 52/2600 2024-04-27 08:25 by shl2112501
[论文投稿] with editor 两个月了,什么原因? +7 yiersan9 2024-04-24 16/800 2024-04-27 03:25 by yiersan9
[找工作] 普通院校药学硕士,做合成的,感觉找不到工作 +10 pom戴墨镜 2024-04-24 17/850 2024-04-26 23:23 by ZZZemmm
[论文投稿] 研二光催化6月底四篇二区什么水平 5+5 wjtab 2024-04-22 15/750 2024-04-26 19:25 by wjtab
[考研] 学硕专硕 +5 小蜗牛* 2024-04-26 5/250 2024-04-26 16:43 by 鱼翔浅底1
[考研] 0854-0855调剂 +8 shangannum1 2024-04-21 12/600 2024-04-26 16:42 by yz仔
[基金申请] 两类问题算是白选了~ +7 jurkat.1640 2024-04-23 12/600 2024-04-26 14:39 by lucky_my2010
[考博] 25年博士申请 +6 Changzixuan 2024-04-25 11/550 2024-04-26 13:48 by 我属驴核动力驴
[硕博家园] 考研,求职还是考编? +15 xizj 2024-04-21 24/1200 2024-04-26 11:49 by Kan客
[考研] 381求调剂 +4 小刺猬987654321 2024-04-25 6/300 2024-04-26 10:57 by czl12138
[教师之家] 某种做法不行。说过几遍了。同学还那样做。再那样做就给低分 +4 河西夜郎 2024-04-24 4/200 2024-04-26 08:51 by Quakerbird
[论文投稿] Nature一直在编辑手里,考虑好几天了,是悬了吗 +12 彩虹初见 2024-04-24 12/600 2024-04-25 19:21 by 雪径踏青
[论文投稿] 一直找不到审稿人 +5 lizhengke06 2024-04-21 6/300 2024-04-25 14:01 by chongdong
[考博] 24年 申博 化学/材料 一作6篇sci +9 wangyp123 2024-04-23 11/550 2024-04-24 19:01 by bangbangbiu
[教师之家] 找工作过程中碰到好多人问南京某新换校长211的政策,规定如下 +15 ZHONGWU_U 2024-04-21 17/850 2024-04-24 05:12 by juta256
[高分子] 请问UV灯是365nm的,那么选光引发剂的波长选多少的?要完全一致吗? +4 engledd2004 2024-04-21 4/200 2024-04-22 16:08 by wangcz23
[论文投稿] 编辑是选国外的好还是国内的好。 +8 lizhengke06 2024-04-20 8/400 2024-04-22 08:58 by cuiyunjian
信息提示
请填处理意见