《密码:历史与技巧》
作者:[德]阿尔布雷希特·博伊特施帕赫
版本:北京出版社 2026年2月
我们被密码服务和密码机制所包围
提到“密码学”或者“加密”的概念,人们会联想到暗号文字、密语、密码、隐形墨水,这些东西通常只有特定成长阶段的青少年才会感兴趣,觉得有意思。
其实,我们在日常生活中被密码服务和密码机制所包围:智能手机、自动提款机、电子商务平台、汽车防盗锁——没有密码,所有的这一切都无法正常运行。密码学的成功发展史令人印象深刻。
一千年以来,是的,一千年以来,密码学一直默默发展完善着。从业者知道他们要做什么,他们有明确的目标,那就是对涉及本国外交和军事的信息进行加密,而对他国相关信息进行解密。当然,其间也会发生一些激动人心的事情,但这通常是和政治或者军事事件有关,而密码学家通过他们的工作影响了这些事件。任务总是一样的,日常工作是典型的压力和无聊的混合:压力是因为这项工作需要耐心和钻研,无聊则是因为这项工作是在公众视线之外开展的。
在过去的几十年里,密码学发生了根本的改变,在实践和理论上都获得了巨大的成功,成为一门拥有难以置信的活力的大众科学,并且产生了政治影响力。在此期间有如此多的密码学相关会议,以至于没有人能够全部参加。也有许多关于密码学的书籍、科学出版物,甚至有专门的密码学期刊。至少有以下三方面原因促成了这一现象。
《达·芬奇密码》(2016)剧照。
计算机和互联网的作用。计算机和互联网使得诸如文本、数据、图片等形式的信息被电子化,进行保存、传送、加工和管理成为可能。如果不采取适当的措施,那么电脑和网络给我们带来了无数好处的同时,也会带来很多问题。例如,数据可以被不留痕迹地复制、更改和删除,这会造成不可估量的经济后果(比如,未经授权复制机密文件或者电子货币),对社会造成损害和威胁(比如,篡改核电站和机场的控制系统),并让每个人成为隐私全无保障的“透明人”。密码学提供了应对这些问题的手段和方法。如果在一开始就恰当地运用密码学,那么人们就不必花费巨资进行技术后果评估了——因为已经避免了糟糕的状况。
身份验证的意义(真实性的证明)。传统密码学仅仅关注加密,也就是对信息进行保密。而现代密码学提出了一个全新的主题领域,即身份验证——不涉及信息的加密,仅保证信息的完整性和真实性。这在价值转移的过程当中尤为重要:如果人们想用“信用卡和密码”在加油站或者商店付款,那么必须确保,终端或者网络上的人为操纵不能篡改交易的确认金额。现代密码学发展的一个重要方向就是身份认证,尤其是“数字签名”。
数学的角色。现代密码学之所以得到发展,是因为密码学从一门“技艺”变成了一门科学,确切地说,密码学已经进步成为一门数学科学。通过运用数学方法和结构,密码系统获得了极高的可信度,这得益于数学命题的特殊性质。数学可以说和所有其他科学都不同,一个数学命题被接受不是因为它经过了经验检验,或专家们认为是对的,或不能否证,或者其他。不,数学有严格的真理概念:一个命题只有按照逻辑规则被证明,它才会被接受。
这听起来有些抽象,但结合实例来看,这对密码学意义重大,产生了深远影响。例如,如果一个国家在外交通信中使用一种其安全性在数学上可以证明的加密系统,那么,就无须担心系统被破解;反过来,如果对手知道对方使用了这样一个系统,那么他也就知道在这里用密码学方法将会无计可施。我们后续会了解到,确实存在这样的系统。同时也会介绍,为什么即使这样的系统有如此强大的优势,人们还是很少运用它。
另一个例子可能更明确一些。几百年来,在制造有防伪标识的纸币和硬币的中央银行,和模仿、伪造有防伪标识的货币的那伙人之间,存在一场持续的斗争。如果货币的安全是基于数学方式可证明的密码机制的话,那么假币的存在就不再是问题了。在倒数第二章会详细讨论安全性得到了密码学保证的电子货币的前景。
密码学创造信任并且传递信任
现代密码学不是神秘的学问,不是秘密发展的东西,也没有什么禁忌,更不会因为显露在公众的视线里而失去它的力量。不,现代密码学是一门科学,人们可以公开交流和讨论它的成果。
如果我们想更准确地界定这门科学的本质,我们必须先说明“信任”的概念。这句话的意思并不是人们必须对这门科学或者这门科学的成果信任,而是说,“信任”本身是密码学研究的课题。如果我们说密码学是研究秘密的科学,这看似不同,但实际上只是换了一种说法。
什么意思呢?我们假想有两个人,他们有一个共同的秘密。这个秘密可以是一次共同的经历、一段记忆或者只是一个词语。秘密的实质意味着,这两个人都不会把它告诉第三个人。这就好比是一座信任的桥梁。这两个人彼此信任。简单地说,一个共同的秘密是以互相信任为前提而存在的。
《达·芬奇密码》(2016)剧照。
在密码学中,人们研究的重点稍有不同:共同的信任是通过共同的秘密展现出来的。密码学是一门创造信任并且传递信任的科学。
现代密码学生存的土壤是,对看似矛盾的问题的发现和讨论。
人们能用一个共同的秘密做什么呢?试想一下,两个人已经拥有一个共同的秘密,这个秘密可能是一个秘密的词语或者一个秘密的数字,他们可能会由此制造出一个更大的秘密吗(“由少变多”)?或者说,存在关于秘密的“守恒定律”吗?
两个人如何才能拥有一个共同的秘密呢?在拥有一个保密的环境的状况下,是可以做到的:如果只有他们两个人,他们可以互相耳语;如果认为写信是安全的,那其中一人可以给另一人寄信说出秘密。但是这些情况的前提都是有某种保密机制。因此我们进一步追问:两个人能否在没有保密环境的情况下还拥有共同的秘密?确切地说,两个素不相识的人能通过公开的聊天拥有一个共同的秘密(“从无到有”),且同时让周围环境不可能获得秘密吗?这个问题的答案是肯定的。
如果没有共同的秘密,人们也能传递信任吗?——不是没有秘密,而是没有共同的秘密!
一个尤其重要的方面是个人的身份认证。我可以用我独有的特定秘密来证明我的身份。进行这样的证明有很多简单的办法,比如我可以直接发送我的秘密,但这样的方法有很多弊端。同样,在此我们也要进一步追问:我能在不向他人透露丝毫信息的情况下,让别人相信我知道某个特定秘密吗?
社会对密码的容忍度是多少?
关于密码学应在何种范围、何种质量、何种功能下应用,不同人给出的答案差异显著。从我的视角出发,主要存在三种根本性立场,下文将逐一阐述。
立场一是最激进也最简洁的观点,核心主张是密码学属于每一位公民。
如今,密码学算法不再是情报机构的专属特权,而应成为全民可及的公共资源。传统上,人们通过通信秘密(如信件保密)保障信息安全——法律禁止未经授权拆开信封、读取信件内容。若禁止某类人群通过加密方式传递信息,强迫其使用明信片式公开通信,会显得荒谬至极。
加密算法本质上是更高级的信息信封。普通信封可能被人用蒸汽悄悄打开再复原,而加密技术从技术层面唯一能保证信息保密。其优势源于数学方法:数学结论的有效性不依赖专家观点、技术水平,仅取决于是否经过严格逻辑证明,可客观验证。因此,密码学的安全性可通过数学分析甚至证明,远高于传统方法,理想情况下能实现无法破解的安全。
《达·芬奇密码》(2016)剧照。
密码学为公民提供了对抗监控老大哥的工具,能从源头避免技术发展带来的某些负面后果,堪称让老大哥变小的利器。这与计算机在公民和国家关系中的角色转变密切相关:20世纪70年代,计算机被视为国家监控的工具,需要通过数据保护法防范;如今,海量用户使用的联网计算机已成为不可控的力量,能制衡国家的统治诉求,而密码学正是捍卫人民权利的重要工具。
该观点最著名的代表是PGP发明者菲尔·齐默曼。他明确表示:“我免费提供PGP,是为了民主的利益,这项技术属于所有人。”PGP的广泛传播,正源于人们对信息时代隐私的迫切需求。支持者还主张,即便无秘密可藏,每个人也应使用密码学(如加密电子邮件)——否则,仅少数人加密会使其成为可疑目标,类似冷战时期华约国家的选举:使用投票间的人反而被视为有秘密。
立场二更侧重实用价值,认为密码学是高科技产品的核心组件,能为经济创造竞争优势。
以下是几个典型案例:
在互联网通信场景中,几乎所有在线交流行为均依赖高强度算法实现数据加密处理。
较于传统固定电话网络,无线通信的数据传输链路更易暴露于开放环境,若未采用加密机制,传输内容将面临更高的被监听、截获风险。
在自动取款机上使用数据加密标准算法保护密码。
在每一次电子货币交易的过程中,通过密码学实现用户身份验证与交易数据防篡改。
在付费电视节目中,画面是要加密的,只有用对应的译码器才可以获取,其本质基于密码学实现内容加密与授权管理。
在汽车的防盗系统中的加密算法是抵御非法入侵的核心技术支撑。
简言之,密码学是高科技产业的重要组成,其技术储备是国民经济的核心资本,需重点保护。
要持续发挥密码学的价值,需满足三个关键条件。
第一,持续的研发与克尔克霍夫斯原则:必须支持密码学领域的研发,且产业不能依赖秘密算法。荷兰语言学家让·克尔克霍夫斯在《军事密码学》中提出核心原则:好的加密系统,安全性不应依赖算法的保密性,而应依赖密钥的保密性,即便攻击者知晓算法,只要没有密钥,就无法解密。专家进一步主张算法必须公开,因为公开讨论与数字验证是检验算法可靠性的最佳方式(一个经过10年公开检验的算法比小众秘密算法更可信)。
第二,可靠的法律基础:包括允许(尤其是高强度)密码学技术出口,以及认可数字签名替代手写签名。这听上去很容易,但是实际上并非如此。仅德国就有约4000条法律要求手写签名,目前倾向于通过专门的《签名法》,明确数字签名的法律效力与技术标准。
第三,服务国家利益的情报应用:密码学也是情报机构保护国家利益的工具(如加密外交、军事信息,破解敌方加密信息)。尽管缺乏具体数据(情报工作本身具有保密性),但西方情报机构的密码学技术大概率在数量与质量上具备优势。稍后我们会详细讨论这个话题。
但我们现在可以确定的一件事就是,情报部门不关心验证和数字签名,而只关注狭义上的加密技术。
当然,理论上二者并不存在绝对清晰的界限:部分身份验证方法可以轻松转化为加密方法(例如,若掌握了RSA签名方案,便可由此便捷地衍生出对应的加密方法)。此外,还可仿照一次性密码本的原理,利用通过协同计算生成的身份验证代码实现加密。
但在实际应用中,身份验证与加密技术的区别十分显著:通过前文所述的那些方法,仅能实现效率极低的加密操作。
因此,我们后续的讨论将仅限定在加密技术这一主题上。
立场三:密码学的益处不应全民共享。这一立场强调风险与管控,认为密码学可能被滥用,需要像高科技武器一样管制。
不仅好人会用密码学保护自己,罪犯也会越来越多地利用其从事非法活动:通过加密手机通话躲避监听,用加密笔记本存储犯罪数据。这给犯罪侦查、证据固定带来巨大困难。简言之,强大的优质密码学技术也可能被滥用。
这个问题并非新鲜事。在过去,犯罪分子同样会写信或打电话,并且会依赖通信秘密(信件秘密与电信秘密)来隐藏信息。
但存在一系列法律规定,允许国家机关在特定条件下监听通信。《基本法》第十条的例外规定尤为著名。在《基本法》第十条第1款中,首先明确规定:“通信秘密以及邮政和电信秘密不可侵犯。”
然而,该条第2款却规定,仅可依据法律作出限制。如今,此类限制的数量已相当多。其范围之广,甚至要求大型系统(如移动通信系统)的运营商必须提供监听接口。但通过使用优质的加密算法,传统的监听手段会变得毫无用处。
警方固然可以监听电话通信。但如果通话经过加密,警方就无法获知通话内容。
警方当然也可以扣押涉嫌犯罪的黑手党成员的笔记本电脑。但如果硬盘上的数据经过加密,警方依然会束手无策。简而言之:若普通公民能使用任何力量都无法破解的加密技术,罪犯也将拥有同样的能力。
此外,还有一个方面需要考虑。传统上,各国情报机构都会使用加密技术。
本国的外交和军事信息会被加密,而敌方的加密信息则需被破解。因此,对本国而言,最好能独家使用最优质的算法,而让敌方只能使用劣质算法。
相应地,人们不仅会对本国的算法保密,还会对算法开发与破解相关的专业知识严格保密。有些人甚至持极端观点:加密技术是我们用于抵御他人的武器。因此,加密技术必须被当作高科技武器来对待。例如,这便是美国的官方政策。
如何对密码实施管制?
尽管前文的观点都值得重视,且看似是一场无须承担严重后果的学术辩论,但实际情况并非如此。既无法禁止密码学的应用,也无法监控其遵守情况,这使得管制措施陷入多重困境。
人们可以用法律手段。
密码方法的研究、发展和使用是被禁止的,或者理性一点说,应该是必须被授权,才可以使用。
法国、俄罗斯已通过法律对密码学实施管制,德国也在认真考虑制定密码法,而多数西方国家则采取出口限制策略——不允许出口高强度、长密钥的优质算法。在美国,同一算法,出口版仅支持40位密钥,国内版则支持128位。
全球移动通信系统(GSM)的加密算法曾引发激烈争论——既要满足跨国出口需求(需符合弱算法的官方出口逻辑),又要避免算法被破解导致经济损失,最终妥协采用了专家认可的高强度算法(A5算法),既保证了安全性,同时又让密钥长度符合规定。
法律能约束合规企业与公民,却无法阻止罪犯使用密码学:如今,足够安全的加密工具可以免费获取,且密码学知识一旦产生便无法收回。正如菲尔·齐默曼尖锐指出的:“当隐私被定为非法,只有罪犯才拥有隐私。”这意味着,禁令最终只会让本应被限制的群体继续使用密码学,而普通公民的隐私保护需求却被剥夺。
人们可以用市场来调节。
可以为每台终端设备(手机、电脑)配备一个小型附加装置,该装置包含一种优质加密算法和一套密钥交换方法。同时,可以赋予相关部门在特定条件下获取密钥的权限。人们在此语境下也会委婉地称之为“密钥恢复”,即重新获取密钥的可能性。
这就好比电话通信:电话使用起来十分便捷,即便需要进行私密通话,我们也总会用到它。
美国克利珀尔倡议就是以此为目标。该计划试图在电话、计算机等终端设备中安装克利珀尔芯片,内置加密算法与密钥交换机制,并引入密钥恢复功能:每个用户的密钥被拆分为两部分,由不同的密钥托管机构分别存储,仅在合法授权(如司法调查)时才合并密钥以解密信息。设计初衷看似合理:避免单一机构滥用监听权,需两个托管机构共同参与,能防范内部人员攻击。
人们不得不承认,这个方案可以通过有效预防无线通信攻击来保护个人隐私。但是批评者认为:如果推行密钥恢复系统,这一逻辑可类比为要求每位公民留存家庭钥匙的备用件,以便检察官在对公民启动调查程序时,能未经公民自主授权即进入其住宅开展搜查。
但是克利珀尔倡议由于以下原因失败了:
首先,技术缺陷:密钥一旦设定便无法更改,理论上授权监听后可永久监听,而非仅在规定时间段内;其次,经济阻力:消费者不信任克利珀尔芯片(担心安全风险),且芯片会增加设备成本,用户不愿为此买单;再次,技术规避:通信双方可在克利珀尔加密基础上额外叠加一层自定义加密——用只有双方知晓的密钥加密明文,再通过克利珀尔芯片传输,即便官方解密克利珀尔层,仍无法获取真实内容;最后,政治争议:密钥托管机制可能被用于工业间谍活动(如X国公民的密钥由Y国机构托管),引发国家间的信任危机。
究竟如何从法律的层面上去控制密码学呢?人们怎样才能从禁用密码的囹圄中出来呢?
这是一个饱受争议的问题。即便推出管制措施,也无法监控其遵守情况——核心原因有两点:无法证明加密行为存在与无法防范信息隐藏。
无法证明加密数据的存在:即便在硬盘或网络中发现疑似加密的数据,也无法证明其是加密信息而非随机数据(如模拟实验所需的大量随机数据),法律更不可能禁止存储、传输随机数据。即便强迫数据持有者解密(德国法律通常不允许此类强制),也无济于事:参考一次性密码本的原理,同一密文可被解密为任意明文,嫌疑人甚至可配合地将密文解密为无害内容。
无法防范信息隐藏(隐写术):隐写术是一种古老却高效的信息隐藏技术——无须复杂数学或专业知识,即可将秘密信息隐藏在普通内容中,且不被察觉,具备低门槛、易操作的特点。
简单案例:在文本中用斜体字符隐藏信息,或在互联网图片的像素中嵌入另一张图片(肉眼无法识别,需特定方法提取)。
这种技术的优势在于隐蔽性——不仅隐藏信息内容,更隐藏信息的存在本身,使得管制监控彻底失效。
注:本文选自《密码:历史与技巧》,较原文有删节修改。已获得出版社授权刊发。
原文作者/[德]阿尔布雷希特·博伊特施帕赫
摘编/何安安
编辑/罗东
校对/杨利