点击此处获得更好的阅读体验
## WriteUp来源 |
本WP由Vanish 提供 |
## 题目考点 |
解题思路
主要逻辑
过了PoW进行交互
1可以得到一组23*20的key
3可以得到flag的密文c
加密函数生成23*40的key,一共23组明文,每组明文加密40次,记录每次的结果
每一次的加密逻辑为b = m + Σ((a_j**i)*e_i),其中a_j为组里的加密次数,j=1,2,,40;e_i为列表e里的每一个元素,i = 1,2,3,,,29
解密流程
第一组,当i=0时,a=1,b_1 = m_1 + Σ(e_i)
第二组,当i=0时,a=1,b_2 = m_2 + Σ(e_i)
第三组,当i=0时,a=1,b_3 = m_3 + Σ(e_i)
我们得到的23组信息中的每组的第一条就是b_1, b_2,b_3
所以我们只需要获得Σ(e_i)就可以还原所有的m
被加密的是pri,pri是PEM文件格式,有固定的开头、结尾格式,所以我们知道部分明文,所以我们知道m_1
利用b_1和m_1获取Σ(e_i)
再利用b_1,,,b_23和Σ(e_i) 获取所有m
再利用私钥文件对flag进行解密
1 | # -*- coding: utf8 -*- |