密码学的历史

没有正确的密钥值,即使得到了编码算法和编码机也无法破解

密码学基于一种名为cipher的秘密代码。cipher是一套编码方案-一种特殊的报文编码方式和一种稍后使用的相应解码方式的结合体。

用密码来生成私密信息的历史很早,罗马的恺撒大帝(汉朝时期)曾使用过一种三字符循环移位密码来编码

Plain:  ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC

随着进步,cipher越来越复杂,就开始制造一些密码机(cryptograph)来加快编码解码,密码机可以做一些简单的旋转,替换字符,改变字符顺序,将报文切片切块。

编码算法编码机都可能落入敌人手中,所以大部分机器上都有一些号盘,可以将其设置为大量不同的值以改变密码的工作方式。没有正确的号盘设置(密钥值),解码器也无法工作。最著名的机械编码机是二战时德国的恩尼格玛密码机Enigma,德军的一份对ENIGMA的评估写道:“即使敌人获取了一台同样的机器,它仍旧能够保证其加密系统的保密性。”

德国的恩尼格玛密码机Enigma

德国的恩尼格玛密码机Enigma

就算有了一台ENIGMA,如果不知道密钥(就是转子自身的初始方向,转子之间的相互位置,以及接线板的状况)的话,想破译电文,就要尝试数以亿亿计的组合,这是不现实的。

cipherText = Encrypt(plainText, secretKey);
plainText = Decrypt(cipherText, secretKey);

Leave a Reply

Your email address will not be published. Required fields are marked *