古今密码学趣谈
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 最古老的密码学

大约在公元前 1900 年(相当于古代中国的大禹时代),古埃及的一位石匠在主人的墓室石墙上刻下了一段象形文字。这段描述他的贵族主人一生事迹的文字,被西方密码专家认为是密码学的开端1,因为其中一些常用字的符号被几个少见的符号所代替了,就如同古典密码学中被称为“替换法”的加密方法。其实,西方学者的这种说法有点牵强,因为这位石匠这样做并不是为了对文字内容保密,而是出于对主人的尊敬和追求文字表达的艺术性。

其实,古代中国也有着在文字上为帝王和尊长避讳的悠久传统。如中国的传奇古书《山海经》中,把“夏后启”称为“夏后开”。“启”是中国最早的朝代夏朝的开国君主,是禹的儿子。这说明,古代中国与古埃及在同一时期就已开始使用文字的“替换法”了。到了春秋战国时期,又逐步形成了“为尊者讳,为亲者讳,为贤者讳”的避讳制度,并且延续了数千年。以下是一些关于历代君主的文字避讳的例子据百度百科“避讳”词条,http://baike.baidu.com/view/15449.htm

秦始皇因出生于正月,取名嬴政,当时就改称“正月”为“端月”。

秦始皇的父亲名子楚,于是把楚地改为“荆”。

汉朝吕后名雉,当时文书上凡遇雉字,均用“野鸡”二字代替。

汉文帝名叫刘恒,于是把“恒娥”改名“嫦娥”,把“恒山”改为“常山”,齐国权臣“陈恒”于是也就成了“田常”。

汉武帝叫刘彻,汉初有个知名辩士叫蒯彻,史书上就改称“蒯彻”为“蒯通”。

汉宣帝叫刘询,故荀子在汉代成为“孙卿”。

汉光帝叫刘秀,曾一度把“秀才”改为“茂才”。

汉明帝叫刘庄,当时遂把《庄子》一书改称为《严子》。

王嫱字昭君,避晋文帝司马昭讳,改称“明君”或“明妃”。

晋简文帝郑后小字阿春,于是《春秋》改为《阳秋》,晋人孙盛所撰史书因名《晋阳秋》。

唐太宗名世民,因此唐人行文用“代”字代替“世”字,用“人”字代替“民”字,观世音略称为“观音”,民部改称为“户部”。

宋钦宗名赵桓,故齐桓公宋代成为“齐威公”。

宋高宗名构,为避“构”字而牵及“够”等50多个字。

当然,古代中国使用这些关于帝王的文字避讳不是为了保密,而是为了表示对皇权的敬畏。但这些避讳也能同密码学中的“替换法”联系起来。而且,就“密码”(Code)的广泛意义来说,这些避讳也可以称为中国古代社会的密码。事实上,确有许多人因为不了解这些避讳的文字替换法而在阅读中国古书时被引入歧途,对书中的内容产生了误解,就像文字被加了密。但在另一方面,一旦史学家掌握这些文字避讳的规则,就能对有关古书的成书年代做出准确的判断,从而能更准确地理解书中的内容,这就像是对加密的文字解密。