编码宝典

《密码宝典》（）是美国作家尼尔·斯蒂芬森于1999年创作，以密码学和计算机科学为题材的科幻小说。
全书共分为两个篇章，第一部分讲述了第二次世界大战时，同盟国和轴心国之间的情报战。其中登场的人物有同盟国的密码学家，他们在英国布莱切利园的政府密码学校破译了纳粹德国的恩尼格玛密码，轴心国军事、情报官员也有出场，他们已认清了现实，而对战局丧失信心；而第二部分的故事设置在1990年代末期，战争五十多年之后。新的人物在书中出场，其中一些是前篇人物的子孙后代。他们潜心研究计算机、互联网和密码学技术，开发出了基于电子货币的匿名网上银行系统，还在书中虚构的基纳库塔苏丹国这一岛屿国家建设了一个地下数据避风港，并加密了所有的网络流量。他们的目的是在大屠杀再次来临时，让遭遇种族灭绝的民族有能力与政府进行对抗。
与斯蒂芬森的其他代表作《雪崩》和《钻石时代》对比，与其说本书是一本科幻小说，实际更接近历史小说和科技惊悚小说。书中对许多历史人物都进行了演绎，如艾伦·图灵、阿尔伯特·爱因斯坦、道格拉斯·麦克阿瑟、温斯顿·丘吉尔、山本五十六、卡尔·邓尼茨、赫尔曼·戈林、罗纳德·里根等。同时，本书也以极高的技术性著称，其中详细介绍了建立在信息论、模算数和素数分解基础上的现代密码学原理（如RSA），也提到了UNIX操作系统等计算机安全领域的其他主题。为了配合剧情需要，斯蒂芬森甚至让著名密码学家布鲁斯·施奈尔帮忙设计了一个真实的加密算法，还在书后附录中给出了完整的论文和Perl程序代码。
非计算机背景的读者可能难以理解书中的技术细节，但是本书依然获得了许多科幻读者和文学评论家的好评。评论家杰克·克莱顿（Jay Clayton）在他的著作《查尔斯·狄更斯在赛博空间：后现代文化中的十九世纪来世》中写道，本书将主题聚焦于「文学-科技-工程-军事-工业-情报联盟」（可能在戏仿军事工业复合体一词），将二战和互联网两个相隔五十年的时代联系了起来，是一本「极客的终极小说」。
此外，小说中也产生了社会影响，影响或是预言了密码货币和数据避风港的出现。1999年PayPal公司成立，其联合创始人彼得·蒂尔当时就希望PayPal最终成为一种私人货币，打破政府对货币的垄断，还将本书列为团队成员必读；2008年，以比特币为代表的密码货币被开发出现，而一位比特币的早期投资人也是本书读者；2000年，避风港有限公司成立，该公司在西兰公国这个坐落在英格兰东海岸的私人国家安装了服务器和互联网，开始运营数据避风港业务。《连线》杂志指出，尽管公司CEO说他的想法来自一个密码技术会议，而不是本书，但是这个数据避风港与小说中的剧情几乎如出一辙。
命名.
斯蒂芬森谈到，本小说的书名是一个文字游戏，来自恐怖小说作家洛夫克拉夫特笔下的《死者之书》（Necronomicon）：
小说中的《密码宝典》是一本虚构的书籍，记载了美国学术界关于密码学和密码分析的全部知识，被称为「密码学家的圣经」。据说这本书的作者是约翰·威尔金斯，随后又由威廉姆·弗里德曼等人修订。评论家凯瑟琳·海耶斯（Katherine Hayles）说，本小说中的《密码宝典》有点类似于卡巴拉这样的秘密学说，在横跨数个世纪的时间，地下兄弟会的密码学家不断的传承并编写它。知道了本书的内容，就好比从艾洛伊人变成了莫洛克人，而有能力为本书贡献内容的人则是精英中的精英。
故事情节.
全书共分为两个篇章，第一部分的时间是第二次世界大战，第二部分则是互联网泡沫和亚洲金融危机期间。
1942年，美国海军的年轻数学天才、密码破译专家，劳伦斯·普里查德·沃特豪斯（Lawrence Pritchard Waterhouse），被派遣至新组建的2702英美联合支队工作。此时，德国恩尼格玛已遭到盟军情报部门的破解，而隐瞒这一事实，就是这支最高机密部队的任务。他们深入敌后导演了一系列的事件，让盟军的胜利得到了其他自圆其说的各种解释，以迷惑敌人。而曾在中国战场作战，并参与过瓜达尔卡纳尔岛战役的老兵，美国海军士官长鲍比·沙夫托（Bobby Shaftoe），同样服役于2702支队，并负责执行沃特豪斯的计划。与此同时，日本帝国陆军下令让士兵在菲律宾建造一个神秘的地堡，沙夫托的老友，采矿工程师后藤（Goto Dengo）也在列其中。
1997 年前后，劳伦斯·沃特豪斯之孙，兰迪·沃特豪斯（Randy Waterhouse），与他玩角色扮演游戏时认识的老朋友阿维·哈拉比（Avi Halaby）开创了一家创业公司，用新铺设的光纤通讯线路为菲律宾移民提供视频电报业务。而伊凡菲特公司（Epiphyte Corporation）则使用这笔现金流，在虚构的基纳库塔苏丹国资助数据避风港建设项目。线缆铺设的海底勘探工作由后藤工程集团（Goto Engineering）进行，负责人是后藤之孙。随着这些过去的“幽灵”因淘金或复仇而逐渐重新浮现出来，事情也开始变得混乱起来。
人物介绍.
第二次世界大战.
虚构人物.
罗伯特·“鲍比”·沙夫托（Robert "Bobby" Shaftoe）
劳伦斯·普里查德·沃特豪斯（Lawrence Pritchard Waterhouse）
金特·比舍夫（Günter Bischoff）
鲁道夫·“鲁迪”·冯·哈克尔（Rudolf "Rudy" von Hacklheber）
厄尔·科姆斯托克（Earl Comstock）
格洛伊·阿尔塔米拉（Glory Altamira）
朱丽叶·基维斯蒂克（Julieta Kivistik）
奥托·基维斯蒂克“大叔”（“Uncle” Otto Kivistik）
玛丽·斯凯米西德（Mary cCmndhd）
历史人物.
书中对许多历史人物进行了演绎。
艾伦·图灵（Alan Turing）
道格拉斯·麦克阿瑟（Douglas MacArthur）
卡尔·邓尼茨（Karl Dönitz）
赫尔曼·戈林（Hermann Göring）
罗纳德·里根（Ronald Reagan）
山本五十六
阿尔伯特·爱因斯坦（Albert Einstein）
技术内容.
本书以极高的技术性著称，使用大量的笔墨详细介绍了建立在信息论、模算数和素数分解基础上的现代密码学原理（如RSA），也提到了UNIX操作系统、数据安全存储等计算机安全领域的其他主题，例如对范·埃克窃听（Van Eck phreaking）技术的讲解。非技术背景的读者可能不容易理解这些技术细节。
Finux操作系统.
本书中，出现了一个名叫Finux的操作系统。它的原型是现实中的Linux内核，其开发者林纳斯·托瓦兹来自芬兰（Finland），故此得名。斯蒂芬森表示，他为了让创作不被局限在Linux的技术细节中，因此有意改动了这个名字。
一次性密码本.
一次性密码本是一种无法被破解的加密方式，然而这密钥的长度必须至少和明文等长，因此在实践中使用困难。在本书情节中，几位人物加密通讯时看似使用了一次性密码本。但在故事中，这也遭到了试图破解者的怀疑：预共享的密钥事实上可能并不存在，密码本有可能是使用固定的算法生成的。
大祭司加密算法.
故事中有这样一段剧情：避免引起怀疑，主人公无法使用计算机进行加解密，而必须手工进行演算。为了配合这一剧情需要，斯蒂芬森向著名密码学家布鲁斯·施奈尔寻求帮助。施奈尔为此专门设计了一个真实的加密算法，名为「纸牌」（Solitaire），这个算法具有现代密码学的安全性，但其演算无需计算机，只需要纸、笔和两幅扑克即可，可以说是唯一安全的手工加密算法。在故事中为了掩人耳目，该算法以「大祭司」（Pontifex）的名义登场。
在小说的附录中，收录了布鲁斯·施奈尔本人的论文，介绍了「纸牌」的全部细节。同时，斯蒂芬森还请了另一位著名密码学家将「纸牌」算法实现为了一段Perl程序，并将以下程序源代码附在书后。
$f=$d?-1:1;$D=pack('C*'.33..86);$p=shift;
$p=~y/a-z/A-Z/;$U='$D=~s/(.*)U$/U$1/;
$D=~s/U(.)/$1U/;';($V=$U)=~s/U/V/g;
$p=~s/[A-Z]/$k=ord($&amp;)-64,&amp;e/eg;$k=0;
while(&lt;&gt;){y/a-z/A-Z/;y/A-Z//dc;$o.=$_}$o.='X'
while length ($o)%5&amp;&amp;!$d;
$o=~s/./chr(($f*&amp;e+ord($&amp;)-l3)%26+65)/eg;
$o=~s/X*$// if $d;$o=~s/.{5}/$&amp; /g;
print"$o\n";sub v{$v=ord(substr($D,$_[0]))-32;
sub e{eval"$U$V$V";$D=~s/(.*)([UV].*[UV])(.*)/$3$2$l/;
小说出版后，斯蒂芬森对这段程序脚本进行了几次修订。第一次修订更正了代码中的一处笔误，该笔误是出版前排版时出现的，让程序无法正常运行。第二次修订时，在每一处Perl语句的结尾加入了分号断句，以方便不熟悉Perl的读者也能顺利录入并运行该程序。该程序还有一个带注释的详解版，可以从布鲁斯·施奈尔的网站下载。
其他作品的提及.
英国音乐记者萨拉·尚皮永于1998年出版了《》，这是一本以公元2000年之前的文化为主题的文集，收录了不少知名科幻作家的作品，其中就包括了尚未完成的《密码宝典》节选。
斯蒂芬森之后又发表了本书的后续作品《巴洛克循环》，将时间设定于17世纪到18世纪早期，对《密码宝典》的背景进行了补充说明。斯蒂芬森在《巴洛克循环》中渲染了一个充满秘密结社与阴谋色彩的地下世界。这些秘密结社往往以家庭和团体为单位，书中的一些登场人物正是《密码宝典》中人物的祖先。《巴洛克循环》中人物的所作所为影响了历史的发展，为《密码宝典》奠定了基础。在随后出版的《密码宝典》大众普及平装版中，收录了《巴洛克循环》的文本节选作为故事的补充说明。
PayPal的联合创始人彼得·蒂尔在他的自传《从0到1》中提到，本书是早年PayPal员工的必读书。
文学评论.
非计算机背景的读者可能难以理解书中的技术细节，但是本书依然获得了科幻读者和文学评论家的好评。评论家杰克·克莱顿（Jay Clayton）在他的著作《查尔斯·狄更斯在赛博空间：后现代文化中的十九世纪来世》中写道，本书将主题聚焦于「文学-科技-工程-军事-工业-情报联盟」（可能在戏仿军事工业复合体一词），将二战和互联网两个相隔五十年的时代联系了起来，是一本「极客的终极小说」。