希尔密码
一个n*n矩阵(加密矩阵) A
一个英文字符串s
记 a=0,b=1,c=2…z=25
- 先将s转成数字表示形式.
- 分组,比如s得到的序列为 x1,x2,x3,x4,x5,x6 n=2,那么要分成每列两个元素的矩阵即:
x1 x3 x5
x2 x4 x6
加密过程: 记上述的矩阵为M,得到的密文矩阵为C,则转化过程为:
(AM)%26=C(注意是M左乘一个A)
解密过程:
M=(A-1 C)%26
一般做题过程中n不会太高.
题目
分析
尝试n=2 猜测wznqca=utflag(前面的题目有说过类似对应,所以猜测这里还是这样)
解对应方程
s='wznqcaduqopfkqnwofDbzgeu'
flag_pre='utflag'
def getit(a1,b1,c1,a2,b2,c2,a3,b3,c3):
for i in range(26):