题目:
小明某一天收到一封密信,信中写了几个不同的年份
辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。信的背面还写有“+甲子”,请解出这段密文。
key值:CTF{XXX}
解题思路:
看到有甲子,戊戌等,网上查找下天干地支的文档
六十年甲子(干支表)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
甲子 | 乙丑 | 丙寅 | 丁卯 | 戊辰 | 己巳 | 庚午 | 辛未 | 壬申 | 癸酉 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
甲戌 | 乙亥 | 丙子 | 丁丑 | 戊寅 | 己卯 | 庚辰 | 辛巳 | 壬午 | 癸未 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
甲申 | 乙酉 | 丙戌 | 丁亥 | 戊子 | 己丑 | 庚寅 | 辛卯 | 壬辰 | 癸巳 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
甲午 | 乙未 | 丙申 | 丁酉 | 戊戌 | 己亥 | 庚子 | 辛丑 | 壬寅 | 癸卯 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
甲辰 | 乙巳 | 丙午 | 丁未 | 戊申 | 己酉 | 庚戌 | 辛亥 | 壬子 | 癸丑 |
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
甲寅 | 乙卯 | 丙辰 | 丁巳 | 戊午 | 己未 | 庚申 | 辛酉 | 壬戌 | 癸亥 |
再网上科普下古典密码
古典密码
古典密码编码方法归根结底主要有两种,即置换和代换。
把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。
代换密码则是将明文中的字符替代成其他字符。
置换密码
列置换
加密:将明文按固定长m分组,即每行m个字母,在密钥控制下按某一顺序交换列,最后按列优先的顺序依次读出,即产生了密文。解密:逆过程。
周期置换
很大程度上同列置换,只不过加、解密时,在列交换后是按行优先的顺序向下进行。
按照上面的说法,我们来进行加密解密试验
明文:我爱北京天安门,天安门上太阳升。
加密:将明文按固定长m分组,即每行m个字母,在密钥控制下按某一顺序交换列,最后按列优先的顺序依次读出,即产生了密文。
这里设m=3
得到: 我 爱 北
京 天 安
门 , 天
安 门 上
太 阳 升
。
密钥:1 那就是左右变换列
爱 北 我
天 安 京
, 天 门
门 上 安
升 阳 太
。
顺序读出密文: 爱北我天安京,天门门上安升阳太。
解密:
密文:爱北我天安京,天门门上安升阳太。
按m=3分组
爱 北 我
天 安 京
, 天 门
门 上 安
升 阳 太
。
按密钥=1 进行变换
我 爱 北
京 天 安
门 , 天
安 门 上
太 阳 升
。
顺序读出明文:我爱北京天安门,天安门上太阳升。
回到这个题:
辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。
带入上面的数值 正面: 18,30,23,8,17,10,16,30
背面: +1 (+60)
正面共8个数字,按照4个一组,分两组测试
28 30 23 8
17 10 26 30