前段时间没事做就去玩了玩国外的icectf,虽然没听说过,但是题目还不错,比较新手向,遇到很多有意思的题目,其中就包括很多简单的crypto题目,密码学一直是信安很重要的东西,但是没天赋学不好,无意中接触了下实战,稍微记录下…
RSA
没啥可说的,n,d,e,phi都有,直接python解就可以了
1 | 直接python解 |
RSA2
题目比较像正常的RSA题目了,给了n,e,c,首先需要分解n,这里我用的是yafu,别的也没用过,不知道怎么样
分解n得到pq
1 | N=0xee290c7a603fc23300eb3f0e5868d056b7deb1af33b5112a6da1edc9612c5eeb4ab07d838a3b4397d8e6b6844065d98543a977ed40ccd8f57ac5bc2daee2dec301aac508f9befc27fae4a2665e82f13b1ddd17d3a0c85740bed8d53eeda665a5fc1bed35fbbcedd4279d04aa747ac1f996f724b14f0228366aeae34305152e1f430221f9594497686c9f49021d833144962c2a53dbb47bdbfd19785ad8da6e7b59be24d34ed201384d3b0f34267df4ba8b53f0f4481f9bd2e26c4a3e95cd1a47f806a1f16b86a9fc5e8a0756898f63f5c9144f51b401ba0dd5ad58fb0e97ebac9a41dc3fb4a378707f7210e64c131bca19bd54e39bbfa0d7a0e7c89d955b1c9f |
算的phi=(p-1)(q-1)
这里懵了一下,因为不知道怎么算d,自己实现又跑不出来,问学长得知有库实现
1 | > from gmpy2 import invert |
解出来就是d了,算flag
1 | 4:-2].decode('hex') > hex(m)[ |
RSA?
e=1,所以密文等于密钥,直接解密
1 | N=0x180be86dc898a3c3a710e52b31de460f8f350610bf63e6b2203c08fddad44601d96eb454a34dab7684589bc32b19eb27cffff8c07179e349ddb62898ae896f8c681796052ae1598bd41f35491175c9b60ae2260d0d4ebac05b4b6f2677a7609c2fe6194fe7b63841cec632e3a2f55d0cb09df08eacea34394ad473577dea5131552b0b30efac31c59087bfe603d2b13bed7d14967bfd489157aa01b14b4e1bd08d9b92ec0c319aeb8fedd535c56770aac95247d116d59cae2f99c3b51f43093fd39c10f93830c1ece75ee37e5fcdc5b174052eccadcadeda2f1b3a4a87184041d5c1a6a0b2eeaa3c3a1227bc27e130e67ac397b375ffe7c873e9b1c649812edcd |
1 | IceCTF{falls_apart_so_easily_and_reassembled_so_crudely} |
Round Rabins!
之前虽然研究过一点儿一点儿rabin,但是不知道为什么完全算不出来
读了一篇wp,
https://github.com/WCSC/writeups/tree/master/icectf-2016/Round-Rabins
首先我们从题目中获得的信息有
1 | N=0x6b612825bd7972986b4c0ccb8ccb2fbcd25fffbadd57350d713f73b1e51ba9fc4a6ae862475efa3c9fe7dfb4c89b4f92e925ce8e8eb8af1c40c15d2d99ca61fcb018ad92656a738c8ecf95413aa63d1262325ae70530b964437a9f9b03efd90fb1effc5bfd60153abc5c5852f437d748d91935d20626e18cbffa24459d786601 |
除此之外,我们还知道是rabin加密,公式和原理我这里就不写了,我们知道密文等于明文的平方对N取余,我们用yafu分解N发现N=p2
1 | P154 = 8683574289808398551680690596312519188712344019929990563696863014403818356652403139359303583094623893591695801854572600022831462919735839793929311522108161 |
原谅我数学水平不高,所以还是没弄明白怎么回事,但是还是有脚本
1 |
|
1 | IceCTF{john_needs_to_get_his_stuff_together_and_do_things_correctly} |