神秘字母:

来源:互联网 发布:中国人在巴基斯坦知乎 编辑:程序博客网 时间:2024/04/23 17:54
http://www.shiyanbar.com/ctf/1892
神秘字母:
在线代的课本上出现了一堆神秘字母 
dloguszijluswogany 
而旁边的矩阵是 
1 2 
0 1 
快找出flag吧 
key格式:simCTF{}
解:整体思路希尔密码+逆矩阵:自行查定义:密钥*明文=暗文-->
明文=密钥逆*暗文
1 2 求逆1 -2 
0 1     0 1 




根据矩阵乘法的规则将其排成2列得:根据a对应1,b:2,,y:25,z对应0最后补充百度百科是错的
注意最后mod 26
希尔密码一般两个一组喜欢列向量得:
d  l o  g u  s  z  i j  l  u   s w  o  g a n  y:
4 12 15 7 21 19 26 9 10 12 21 19 23 15 7 1 14 25
然后:
d o u z j  u w  g n   4  15  21  26  10  21  23  7  14                     
l g s i l  s o  a y   12  7 19  9  12  19  15  1  25    
用python1代码:
#求希尔编码
L=['d','o','u','z','j','u','w','g','n','l','g','s','i','l','s','o','a','y']
for x in L:
print(ord(x)-96,end=' ')
结束得
4 15 21 26 10 21 23 7 14 
12 7 19 9 12 19 15 1 25
用逆矩阵乘这个2*9的矩阵得
-20,1,-17,8,-14,-17,-7,5,-36,
12,7,19,9,12,19,15,1,25




用python2代码:
#求模26
L=[-20,1,-17,8,-14,-17,-7,5,-36,12,7,19,9,12,19,15,1,25]
for x in L:
print(x%26,end=' ')
结束得6 1 9 8 12 9 19 5 16 12 7 19 9 12 19 15 1 25


用python3代码:
#反求字母
L=[6,1,9,8,12,9,19,5,16,12,7,19,9,12,19,15,1,25]
for x in L:
print(chr(x+96),end=' ')
结束得
f a i h l i s e p 
l g s i l s o a y
加上两个列向量一组得flagishillissoeapy
关于这个p为什么是s我也不知道
最后实验吧答案是simCTF{hillissoeasy}
原创粉丝点击