DAY02_不要自己随便去‘创造’加密算法

最近一个月要跟加密算法难舍难分,CTF的题只能当小消遣了


第一步:了解一个基本加密解密算法&详细破解过程

异或加密(对称算法

加密解密过程:

明文用一个关键字做异或运算以产生密文。因为明文异或两次就会得出原来的值,所以加密和解密都严格采用同一个程序。

破解过程:

找出密钥长度。用密文XOR相对自身的各种字节的位移,统计相等的字节。如果位移是密钥长度的倍数,那么超过6%的字节将是 相等的,如果不是,则至多只有0.4%的字节是相等的(这里假设用一随机密钥来加密标准ASCII文本) 。指出密钥长度倍数的最小位移即密钥的长度。
消除密钥。按此长度移动密文XOR自身,留下明文和移动了密钥长度的明文的异或。英语每个字节会有1.3位的实际信息【这个证明我还在查,自己写代码跑不出来这种结果,也希望看到的大神可以指点一下】,足够的冗余度去确定位移的解密。


总结:破解已经如此高效,如果你用异或进行加解密,那么跟直接保存明文就没有什么差别。因为一旦取得了密文,并且知道使用的是异或算法,那么剩下来的保密时间就在几 秒钟到几小时之内。同样也论证了一句话:不要自己随便去‘创造’加密算法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值