[UTCTF2020]hill
附件:
wznqca{d4uqop0fk_q1nwofDbzg_eu}
hill???希尔密码
每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。
注意用作加密的矩阵(即密匙)在
必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。
这题就是个二阶希尔密码加密。知道密文前6位wznqca和明文前6位utflag,等于4个未知数6个一阶方程,居然还有解,那就是二阶跑不了了。求个逆乘回来就好。
a00, a01, a10, a11 = 13, 6, 3, 21
dic = 'abcdefghijklmnopqrstuvwxyz'
c = 'wznqcaduqopfkqnwofdbzgeu'
flag = ''
for i in range(0, len(c), 2):
a, b = dic.index(c