闲来无聊打个比赛HICON结果居然一题不会,然后找个软的捏,OSCTF,居然也没AK
Crypto
Cipher Conundrum_encrypted
NDc0YjM0NGMzNzdiNTg2NzVmNDU1NjY2NTE1ZjM0NTQ2ODM5NzY0YTZiNmI2YjZiNmI3ZA==
先用厨子梭一梭,得到 GK4L7{Xg_EVfQ_4Th9vJkkkkk}
然后ROT爆破,发现头部两个数字以外基本正确,这两个数字似乎就是CF的序号
Amount = 8: OS4T7{Fo_MDnY_4Bp9dRsssss}
把大写跟数字连一起移位,剩下的小写再移下,得到
key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
b = ''.join([key[(8+key.index(i))%len(key)] if i in key else i for i in a])
b
key = 'abcdefghijklmnopqrstuvwxyz0123456789'
c = ''.join([key[(8+key.index(i))%len(key)] if i in key[:26] else i for i in b])
c
OSCTF{5o_M3nY_C1pH3Rsssss}
The Secret Message
小幂小明文,直接开根号
n: 95529209895456302225704906479347847909957423713146975001566374739455122191404873517846348720717334832208112563199994182911677708320666162110219260456995238587348694937990770918797369279309985690765014929994818701603418084246649965352663500490541743609682236183632053755116058982739236349050530235419666436143
e: 3
ciphertext: 123455882152544968263105106204728561055927061837559618140477097078038573915018542652304779417958037315601542697001430243903815208295768006065618427997903855304186888710867473025125
long_to_bytes(iroot(c,3)[0])
#OSCTF{Cub3_R00Ting_RSA!!}
QR
通过是否2次剩余判断是0是1
from Crypto.Util.number import *
from random import *
flag = b'REDACTED'
p = 96517490730367252566551196176049957092195411726055764912412605750547823858339
a = 1337
flag = bin(bytes_to_long(flag))[2:]
encrypt = []
for bit in flag:
encrypt.append(pow(a, (randint(2, p) * randrange(2, p, 2)) + int(bit), p))
print(encrypt)
sage: for i in c:
....: if jacobi((i),p) == 1:
....: m +='0'
....: else:
....: m +='1'
....:
sage: m