目录
目录
古典密码思维导图
古典密码分析思维导图
唯密文分析古典密码
单表代替密码
棋盘密码
曾公密码
置换密码的代表:斯巴达人的密码棒
古典密码思维导图
古典密码分析思维导图
唯密文分析古典密码
- 最困难的分析条件
- 通常需要用到英文字母的频率分析和反复猜测
- 可分析单表和多表代换密码
- 分析多字母代换比较困难(比如希尔密码)
单表代替密码
棋盘密码
公元前2世纪,一个叫Polybius的希腊人设计了一种将字母编码成符号对的方法。他使用了一个称为Polybius的校验表。Polybius校验表由一个5行5列的网格组成,网格中包含26个英文字母,其中I和J在同一格中。相应字母用数对表示。Polybius校验表如下:
1 | 2 | 3 | 4 | 5 | |
1 | A | B | C | D | E |
2 | F | G | H | I/J | K |
3 | L | M | N | O | P |
4 | Q | R | S | T | U |
5 | V | W | X | Y | Z |
根据此表,a加密为11,h加密为23,p加密为35,i和j都加密为24,以此类推。
曾公密码
曾公亮(999年-1078年),字明仲,号乐正。泉州晋江县(今福建省泉州市)人。北宋政治家、文学家。曾公亮曾与丁度承旨编撰《武经总要》,为中国古代第一部官方编纂的军事科学百科全书。
曾公亮曾多次拼战沙场,对抗西夏军队。在作战中,他了解到,军事通讯一旦被对方截获,就将陷于被动。因此,他在编写这本《武经总要》时,特意留意了如何传递情报这一方面。他发明出一套严谨的军事通讯密码,这是迄今发现的最早的正规军用密码表。
他把军事上经常用到的战况,用40个短语归纳、表示,每个短语都编上固定的数字代码。
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 | 战小胜 |
这个军事密码发明后,立刻得到了应用。指挥战争的人坐镇在指挥中心,他们在派出将领前,会把打乱顺序的代码交给将领,并事前约定好,把一首五言诗作为解码钥匙。五言诗正好40个字,每个字所在的位置也恰好对应一条短语。
当将领来到前线,遇到需要请示的状况时,就要写一封普通的书信,在书信中有意识地写进那首五言诗中的某一个字,并在这个字上加盖印章,表示这是个解密的关键字。然后,差信使送到指挥中心。
公文送达后,指挥人员看到盖着印章的字,就会在事前约定好的那首五言诗中去查找,由此就知道前方要请示或报告什么事情了。
如果他们约定的五言诗是《渡荆门送别》:
渡远荆门外,来从楚国游。
山随平野尽,江入大荒流。
月下飞天镜,云生结海楼。
仍怜故乡水,万里送行舟。
那么,前线将领若是粮食不足,需要后方支援,就要在写信前先查密码本,查到“请粮料”是编号9的短语,再看五言诗的第9个字,是“国”字。这样,在写信时就要加上“国”字,并在“国”字上盖印章。指挥中心收到信件后,一查密码本,便知道前方是要请求粮食供应。
如果指挥中心同意了请示,就写一封回信,信中也加“国”字,再加盖印章。反之,如果不同意,就只盖上一个印章,什么也不写。
用诗作为解密钥匙,还有一个要求,即这首诗里不能有重复的字。不过,古代五言诗多如繁星,想要找出没有重复字的诗轻而易举。曾公亮发明的军事密码,在传递军情方面,保密性是很强的。即使信件被截获,敌人也看不懂,就是送信人也不知道怎么一回事。