做CTF的crypto,经常会遇到一些加密解密,杰弗逊加密也是考察频率较高的一种加密方式
像今年的ISCC CTF中就有一条转轮加密题目:
加密表:
1: < ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2: < KPBELNACZDTRXMJQOYHGVSFUWI <
3: < BDMAIZVRNSJUWFHTEQGYXPLOCK <
4: < RPLNDVHGFCUKTEBSXQYIZMJWAO <
5: < IHFRLABEUOTSGJVDKCPMNZQWXY <
6: < AMKGHIWPNYCJBFZDRUSLOQXVET <
7: < GWTHSPYBXIZULVKMRAFDCEONJQ <
8: < NOZUTWDCVRJLXKISEFAPMYGHBQ <
9: < XPLTDSRFHENYVUBMCQWAOIKZGJ <
10: < UDNAJFBOWTGVRSCZQKELMXYIHP <
11: < MNBVCXZQWERTPOIUYALSKDJFHG <
12: < LVNCMXZPQOWEIURYTASBKJDFHG <
13: < JZQAWSXCDERFVBGTYHNUMKILOP <
密钥为:2,3,7,5,13,12,9,1,8,10,4,11,6
密文为:NFQKSEVOQOFNP
起初在网上没有找到这种加密的具体原理,对源码以及最后的代码分析过后,发现这种古典密码其实很简单,下面我来阐释它的解密原理
首先托马斯-杰弗逊转轮加密由三串字符串组成,第一部分为加密表,第二部分为密钥,第三部分为密文
加密表就是我们需要利用密钥和密文来进行加密,具体的过程如下:
首先查看密钥第一个字符为2,因此我们需要到加密表中去查找第2行的数据
2: < KPBELNACZDTRXMJQOYHGVSFUWI <
这里我们再利用密文的第一个字符N进行旋转,N在这里的作用就是旋转过后的第一个字符即为N,在这里的旋转为循环,不为补0
因此我们可以来对加密表中的第一段密文进行解密:
原先:KPBELNACZDTRXMJQOYHGVSFUWI
旋转:NACZDTRXMJQOYHGVSFUWIKPBEL
同理下面的字符串也可以利用同样的方式进行解密
最终的解密为:
相关推荐: 【转】【解密】日志追凶之从看日志了解黑客攻击手法【春秋第一篇】
这篇文章写的真的非常好,学习了很多知识,对服务器的安全分析有很大的帮助,因此转载之方便学习(文章部分格式可能有点不对,敬请谅解)~原文地址:传送门 本帖最后由 诚殷网络论坛 于 2017-8-1 09:43 编辑 ———————–…
请登录后发表评论
注册