尽管简单地“将信息起来”与我们今天熟知的密码学相差甚远,被称为“隐匿法”的秘密书写方式却标志着人们开始探索信息保密的方式。
2
加密法
隐匿法仅仅将信息藏匿起来,一旦藏匿的方式暴露,或是负责传达信息的信使叛变,信息安全也无从保证。加密法则注重信息本身的含义,信息的发出方与接收方事先约定,将信息按照一定的规则进行转译(encipher),接收方在收到后遵循约定的规则就可以还原原始信息,而即使信息被第三方截获,如果不知道转译规则,也无法还原出原始信息。
加密法的出现标志着古典密码学的开端。在上面的例子中,未经加密的原始信息称为明文(plaintext),按照特定的规则对明文进行转译后得到的信息称为密文(ciphertext),这个规则称为加密算法。古典密码学的加密算法大多是以字母、单词或是短语为基本单位,又可分为置换法(Transposition ciphers)和替换法(Substitution ciphers)两大类。
置换法依照一定的规则,改变原始信息中的字母排列顺序。公元前5世纪,斯巴达军队采用一种名为“密码棒”(Scytale)的工具对信息进行加密。发信人将长条形的羊皮纸带缠绕在一根木棒上,将信息横向书写,最后将羊皮纸解下。收信人将信纸缠绕在同样直径的木棒上,就能够还原信息。而羊皮纸上的文字看起来是无意义的,并且用尺寸不相同的木棒也无法还原出原始信息。
但只要了解这种密码的加密方式,就能很容易地解读密文。从密文的第一个字母开始,每数到它之后的第N个字母,记下该字母。记录到密文结尾后,再从第二个字母开始重复这样的操作,以此类推,很快就可以还原明文信息。其中N取决于木棒的直径,写下N个字母后,纸带正好绕木棒一圈,选择不同的N,同样的明文经过加密得到的密文也不相同。发信人和收信人要事先约定好同样的N,收信人才能还原密文。同时N不能被第三方知晓,才能保证加密通信的安全。这里的N称为密钥,是加密通信的参与方共同享有的秘密知识(secretary knowledge),用于加密和解密信息。
替换法将原始信息中的字母按照一定的规则替换成其他字母。据传,凯撒大帝使用替换式加密法写作书信。凯撒大帝将信息中的每个字母后移三位,例如A替换成D,Y替换成B,这种加密法称为凯撒挪移式加密法(Caesar cipher)。在这个例子中,密文相比明文,每个字母都被后移了3位,密钥可以用3表示。密钥可能的取值范围为1~25的自然数(密钥为0时,密文与原文相同),称为密钥空间。明文里所有可能出现的字母的集合称为明文空间,密文里可能出现的字母集合称为密文空间,替换法中的密钥可以表示为明文空间到密文空间的一个映射,在古典密码学中又称为密码表。密文空间可以与明文空间相同,例如凯撒密码中,密文的字母仍然是26个拉丁字母。密文空间也可以是明文空间的超集,例如在密文中混入一些无效字符,以干扰试图破译密码的行动。密文空间还可以与明文空间完全不相关,例如在柯南道尔所著的福尔摩斯系列的《跳舞的人》(the Adventure of Dancing Men)中,罪犯用26种形态各异的跳舞的小人来替换英文字母。
公元8世纪,阿拉伯哈里发帝国的第二个世袭王朝――阿拔斯王朝在巴格达定都,其建立之初的一百年是伊斯兰文明的黄金时代。据记载,阿拔斯王朝的官员们使用替换式加密法保护机密的行政事务、税收数据,相信这能够帮助他们建立一个廉洁、高效的政府。巴士拉的语言学家卡里尔(Al-Khalil)撰写了《加密信息手册》(Book of Cryptographic Messages),使用排列组合对阿拉伯语单词的加密法进行分析。此外,阿拉伯的学者们还开创了破译加密信息的科学――密码分析学(Cryptanalysis)。
3持续千年的智力竞赛:加密与解密
古典密码学多用于军事、政治、外交领域重要情报的传递,希望刺探这些秘密的人自然不在少数。阿拉伯学者们在统计语言学资料时发现,在样本容量较大,有意义的阿拉伯语文本中,每个字母出现的频率是不一样的。字母a和字母l在阿拉伯语中出现频率最高(这里用阿拉伯语字母的拉丁转写表示),因为“al”是阿拉伯语中的定冠词,相当于英语的“the”,此外,元音的出现频率也比较高。这些成果很快被运用到密文分析中。
此文由 中国比特币交易钱包 编辑,未经允许不得转载!:首页 > 比特币行情 » 密码学初探:信息的艺术――区块链技术引卷之十一