[XNUCA2018]baby_crypto(重合指数)

这篇博客介绍了如何解决XNUCA2018比赛中的baby_crypto问题。该问题涉及一个类似于维吉尼亚密码的加密公式,但带有额外的系数。博主指出,通过分析加密公式的重合指数,可以采用与维吉尼亚密码类似的爆破方法来逐步解密。
摘要由CSDN通过智能技术生成

encrypt

The 26 letters a, b, c, ..., y, z correspond to the integers 0, 1, 2, ..., 25
len(key_a) = m
len(key_k) = n
c[i] = (p[i] * key_a[i % m] + key_k[i % n]) % 26

p is plain text, only lowercase letters are refered to.
c is encrypted text

I have appended the flag at the end of plain text, the format of which is like 'flagis......'
Now you have the encrypted text, Good luck!

decrypt

这道题目什么都没有给我们,只给了一个加密公式,和一个输出文件.
仔细观察加密公式,发现和维吉尼亚密码很像,只不过是明文前面多了一个系数.之前的维吉尼亚爆破通过分析重合指数来逐步破解,这里也是一样.

#重合指数的应用:
import gmpy2
c=open('encrypted_message.txt','r').read()
best_index=0.065
sum=0
dic_index={
   'a': 0.08167,'b': 0.01492,'c': 0.02782,'d':0.04253,'e': 0.12702,'f':0.02228,'g': 0.02015,'h':0.06094,'i':0.06966,'j':0.00153,'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值