杰弗逊转轮加密原理详解

做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
同理下面的字符串也可以利用同样的方式进行解密

最终的解密为:
图片[1]-杰弗逊转轮加密原理详解-安全小百科

相关推荐: HappyCTF-writeup

这个比赛参加了正赛前的热身赛,感觉题目出的可以,但是正赛那天因为有事,没有参加(第一次用vpn连接内网做ctf,感觉好刺激) 附上正赛的wp,以供学习吧~ 传送门:HappyCTF-writeup     相关推荐: 利用aircrack-…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论