序章:信任的陌生人
你正在用手机阅读这篇文章。在你按下屏幕的那一刻,你的设备与服务器之间发生了一次你肉眼看不见的握手——你的手机向服务器发送了一串随机数,服务器用一个只有它自己知道的私钥进行了某种数学运算,然后把结果发回来。你的手机验证了这个结果,确认对面确实是它声称的那个服务器,而不是某个窃听者伪装的冒牌货。整个过程不到100毫秒,涉及的数学运算如果你用手算,大概需要一辈子。
你根本不知道这件事发生了。你没有检查服务器的身份证,没有打电话给网站管理员确认他的声音,没有请一个双方都信任的第三方来做担保。你只是打开浏览器,输入了一个网址,然后信任了屏幕上显示的内容。
这种信任是怎么建立的?
答案是:数学。
具体来说,是一道数学题。这道题的难度恰好处于一个精妙的平衡点上——正向计算很容易(几百毫秒),逆向计算几乎不可能(即使用全世界最强大的超级计算机,也要算到宇宙热寂)。正是这个"容易做、难以撤销"的不对称性,构成了整个数字世界的信任基石。
这听起来像科幻小说。但它是真实的,而且它的历史比你想象的要曲折得多。它涉及战争、悲剧、法律对抗、理想主义者的反叛、一个化名天才的消失,以及一场至今仍在进行的关于自由与安全的辩论。
让我们从1940年代说起。
一、1940:图灵的炸弹机——当数学第一次拯救文明
1.1 Enigma:一台机器引发的噩梦
1920年代末,德国军方开始使用一种叫做Enigma的加密机器。它的外形像一台打字机,但内部结构远比打字机复杂。当你按下键盘上的一个字母时,电流会通过一系列转子(rotor),每个转子内部有26个触点,对应字母表的26个字母。转子会旋转,每次按键后改变一次位置,这意味着同一个字母在不同位置会被加密成不同的字母。
更复杂的是接线板(plugboard)。操作员可以将键盘上的某些字母对交换,这进一步增加了密钥空间。转子本身也有多种选择——德军使用5个转子,但每次只安装3个,这提供了额外的排列组合。
Enigma的密钥空间有多大?三个转子的排列方式有26×25×24=15,600种可能,再加上接线板上10对字母的交换,总的密钥空间大约是10^16——一百亿亿。
用穷举法破解?不可能。即使你每秒能试一百万个密钥,也要试3亿年。
这就是为什么德国人如此信任Enigma。他们有充分的理由相信这台机器产生的密码是不可破解的。在整个二战期间,德国军方使用Enigma加密了数百万条消息——从U型潜艇的作战命令到东线的补给计划,从高级将领的战略部署到基层部队的日常通信。
英国情报部门在1930年代就开始研究Enigma,但进展缓慢。他们的努力主要集中在"窃听"上——截获德国的无线电信号。但截获了信号没有用,因为内容是加密的。
波兰密码局率先取得了突破。马里安·雷耶夫斯基(Marian Rejewski)是一位年轻的数学家,他在1932年被波兰密码局招募。雷耶夫斯基利用德国人操作上的疏忽——比如每天早上发送固定格式的天气预报,或者在消息开头使用固定的密钥指示符——建立了一套基于群论的数学分析方法。他甚至设计了一台叫做"炸弹机"(Bomba)的机器来自动化破解过程。
但1939年战争爆发前夕,德国人改进了Enigma,增加了转子数量(从3个增加到5个),改变了密钥指示符的格式。波兰人的方法失效了。
雷耶夫斯基和他的同事们将他们所有的研究成果——包括炸弹机的设计图纸和破解方法——移交给了英国和法国的情报部门。这次移交发生在1939年7月25日,在华沙郊外的一间小屋里。波兰人知道战争即将来临,他们希望英国人能够继续这项工作。
1.2 图灵:一个被时代辜负的天才
艾伦·图灵(Alan Turing)1912年出生在伦敦。他的父亲是印度民政服务局的官员,常年在印度工作,图灵从小由保姆和亲戚抚养。他很早就展现出对数学的痴迷——据说他在六岁时就开始自学阅读,只为了读懂一本叫做《自然奇观人人必读》的书。
图灵的童年并不快乐。他是一个内向、古怪的孩子,经常被同学欺负。但他对科学和数学的热情从未减退。他在谢伯恩公学(Sherborne School)遇到了他的初恋——克里斯托弗·莫科姆(Christopher Morcom),一个同样热爱科学的男孩。两人一起讨论数学、天文学和量子力学。
1930年,莫科姆因肺结核去世,年仅18岁。图灵悲痛欲绝。他后来写道,莫科姆的死"让我第一次认真思考人的心灵和肉体之间的关系"。一些历史学家认为,莫科姆的死促使图灵开始思考意识和机器的本质——这些思考最终导致了图灵机和人工智能的诞生。
1936年,24岁的图灵发表了一篇论文《论可计算数及其在判定问题上的应用》。在这篇论文中,他提出了一个抽象的计算模型——后人称之为"图灵机"。图灵机是一个极其简单的设备:一条无限长的纸带、一个可以在纸带上读写的头、一个有限状态控制器。尽管结构简单,图灵机可以模拟任何计算过程——这意味着它是一切计算机的理论原型。
更重要的是,图灵证明了存在一类问题,没有任何算法能够解决。这个结论后来被称为"停机问题"——你无法设计一个程序来判断任意一个程序是否会停止运行。这个结论奠定了整个计算机科学的理论基础,也暗示了计算的根本局限性。
但在1939年,图灵面对的不是抽象的数学问题,而是一台每天加密数千条德军情报的机器。
图灵被招募到布莱切利园(Bletchley Park)——英国政府密码学校的秘密总部。这个位于白金汉郡的维多利亚庄园,在战争期间成为了全世界最繁忙的情报中心。最多时有超过10,000人在这里工作,但他们的工作内容被列为最高机密。
图灵的突破在于:他没有试图直接破解Enigma的密钥(那是不可能的),而是设计了一台机器——后人称之为"炸弹机"(Bombe)——来系统地排除不可能的密钥配置。
炸弹机的核心思想是利用"已知明文攻击"。德军每天早上会发送一份天气预报,格式几乎总是固定的:"WETTERBERICHT"(天气报告)或"SCHNELLSCHIFF"(快速船只)。密码分析师可以利用这些已知的明文片段来推断可能的密钥配置。
每一台炸弹机有36个转子组,每秒能测试约3000种密钥配置。机器会自动排除那些产生矛盾结果的配置——比如如果一个密钥配置导致"A加密成A"(这是Enigma不可能产生的结果),那么这个配置就被排除了。
到1945年,布莱切利园运行着超过200台炸弹机。它们每天破解数千条Enigma消息。
历史学家估计,图灵的工作将欧洲战场的战争缩短了至少两年,拯救了约1400万人的生命。但这段历史在战后被列为最高机密,图灵从未获得应有的公开认可。他的工作记录被销毁,他的同事被禁止谈论他们的贡献。直到1970年代,英国政府才逐步解密了布莱切利园的历史。
1.3 悲剧:一个英雄的毁灭
战后,图灵继续在计算机科学领域工作。他在曼彻斯特大学参与了世界上最早的存储程序计算机之一——Manchester Mark 1——的设计。1950年,他发表了另一篇划时代的论文《计算机器与智能》,提出了著名的"图灵测试"——如果一台机器能够在对话中让人无法分辨它是机器还是人,我们是否应该认为它具有智能?
这篇论文引发了关于人工智能的哲学讨论,至今仍在继续。图灵预见到了人们对机器智能的反对意见——从"机器没有灵魂"到"机器没有情感"——并逐一进行了反驳。他的回答既深刻又幽默,充满了对人类自欺欺人能力的洞察。
但1952年,图灵的生活崩塌了。
他被指控"严重猥亵"——因为他与一个叫做阿诺德·默里(Arnold Murray)的男性发生了关系。默里是一个19岁的失业工人,图灵在曼彻斯特的街头遇到了他。两人的关系持续了几周,直到图灵的家中发生了一次入室盗窃。当警察调查盗窃案时,图灵坦诚地描述了他与默里的关系。
在当时的英国,同性恋是刑事犯罪。图灵没有否认指控,他似乎不理解为什么这件事应该被保密或羞耻。他向警察详细描述了他与默里的关系,就好像在描述一个科学实验的结果。
法庭给了他两个选择:坐牢,或者接受化学阉割(注射雌激素己烯雌酚)。图灵选择了后者,因为他不想中断他的科学研究。
化学阉割的副作用是毁灭性的。图灵开始发胖,乳房发育,情绪波动剧烈。他的思维变得迟钝,无法集中注意力进行数学研究。他曾经无比敏锐的大脑,现在被激素搅得一团糟。
1954年6月7日,图灵被发现死在家中。床头放着一个咬了一口的苹果,旁边是一个装有氰化钾的罐子。验尸官裁定为自杀。
他死时41岁。
关于图灵的死因,至今仍有争议。一些人认为他是自杀——化学阉割的痛苦、社会的排斥、以及无法继续进行科学研究的绝望,共同将他推向了死亡。另一些人认为可能是意外——图灵在他的卧室里进行电镀实验,氰化钾可能是实验材料,苹果上的氰化物残留可能来自他用氰化钾溶液电镀勺子时沾上的。
无论真相如何,图灵的死都是一个巨大的悲剧。一个拯救了1400万人生命的人,被他所拯救的国家以"严重猥亵"的罪名迫害致死。
2009年,英国首相戈登·布朗代表政府公开道歉,称图灵受到的对待是"骇人听闻的"。2013年,英国女王伊丽莎白二世追授图灵皇家赦免。
但图灵的故事不仅仅是一个关于迫害的悲剧。它揭示了一个更深层的问题:人类社会如何对待那些赋予它力量的人? 图灵用数学拯救了文明,但文明因为他的性取向而毁灭了他。
这个悖论——数学的纯粹性与人类社会的非理性——将贯穿整个密码学的历史。
二、1976:公钥密码学——在停车场里诞生的革命
2.1 密码学的困境:密钥分发问题
在图灵之后的三十年里,密码学一直是政府和军方的专属领域。美国国家安全局(NSA)是世界上最大的雇主之一,雇佣了数千名数学家、语言学家和计算机科学家。他们的工作内容被列为国家机密——事实上,NSA的存在本身在很长时间内都是一个秘密。人们开玩笑说NSA的缩写代表"No Such Agency"(没有这个机构)。
民间几乎没有人研究密码学,因为没有人认为普通人需要加密通信。密码学被视为一种军事技术,就像导弹和核武器一样,普通人不应该接触它。
但密码学有一个根本性的问题,这个问题在Enigma时代就已经暴露出来了:密钥分发。
Enigma的安全性依赖于发送方和接收方拥有相同的密钥设置。德军每天会分发一本新的密钥表,通过物理渠道(信使、潜艇、电台)传递到各个部队。这些密钥表是印刷在特殊纸张上的,使用后必须立即销毁。
如果密钥在传递过程中被截获,整个加密系统就崩溃了。事实上,盟军多次通过截获德军的密钥表来破解Enigma——有时是从被击沉的U型潜艇上打捞出来的,有时是从被俘的德军士兵身上搜出来的。
这个问题在数字时代变得更加严重。互联网的本质是全球性的——你可能需要与世界上任何一个人进行安全通信。但你怎么把密钥安全地交给他?如果你能安全地传递密钥,你为什么不直接用那个安全渠道传递消息本身?
这就是所谓的"密钥分发问题",它困扰了密码学家几千年。从凯撒大帝的替换密码到Enigma,所有的加密系统都假设发送方和接收方已经安全地共享了密钥。但这个假设本身就是一个巨大的安全漏洞。
2.2 Diffie:一个自由主义者的执念
惠特菲尔德·迪菲(Whitfield Diffie)1944年出生在纽约。他的父亲是佛罗里达州立大学的政治学教授,母亲是人类学家。迪菲从小就对密码学着迷——他在小学时就开始编写密码,用自制的密码和朋友通信。
但迪菲的兴趣不是来自军事,而是来自一种政治信念。他的父亲是一位政治学教授,经常和他讨论公民自由和政府权力的边界。迪菲从小就相信,个人应该有权保护自己的通信隐私,不应该依赖政府的善意。
1970年代初,迪菲在MIT人工智能实验室工作。他的日常工作是研究计算机安全,但他很快意识到一个令人不安的事实:所有的计算机安全系统都依赖于加密,而所有的加密系统都有密钥分发问题。更糟糕的是,密钥分发通常依赖于一个"可信的第三方"——通常是政府或大公司。这意味着你的安全最终取决于你是否信任这些机构。
迪菲对这种安排深感不满。他认为,真正的安全不应该依赖于对任何人的信任——包括政府。
他开始思考一个看似不可能的问题:是否存在一种加密方法,使得两个人不需要事先共享密钥,就能安全地通信?
这个问题在当时听起来像是在问"能不能让两个人在没有共同语言的情况下对话"。所有的密码学教科书都假设密钥是事先共享的。没有人认为无密钥通信是可能的。
但迪菲不死心。从1974年开始,他开始在全国各地旅行,拜访密码学家、计算机科学家、数学家,与他们讨论这个问题。他去了MIT、IBM的沃森实验室、加州大学伯克利分校、斯坦福大学。每到一处,他都会问同一个问题:"是否有可能在没有共享密钥的情况下建立安全通信?"
大多数人的反应是困惑或嘲笑。"这是不可能的,"他们说,"你怎么能在没有密钥的情况下加密?"
2.3 斯坦福:一个想法的诞生
1975年,迪菲来到斯坦福大学,遇到了马丁·赫尔曼(Martin Hellman)。赫尔曼是斯坦福的电机工程教授,他在信息论和密码学方面有深厚的背景。
赫尔曼回忆起他第一次见到迪菲的场景:"这个长头发的年轻人走进我的办公室,开始谈论无密钥密码学。我的第一反应是,这听起来像是永动机——一个违反基本原理的想法。但我决定给他一个机会来解释。"
两人开始合作。他们尝试了各种方法,都失败了。他们的笔记本上写满了错误的尝试和死胡同。有时候他们会连续工作16个小时,最后发现整个方向是错的。
直到1976年春天的一个下午,迪菲在斯坦福的停车场里散步时,突然想到了一个关键的思想:
如果加密和解密使用不同的密钥呢?
在此之前,所有的加密系统都使用同一个密钥进行加密和解密——这叫做"对称加密"。密钥必须保密,因为任何拥有密钥的人都可以解密消息。
迪菲的想法是:使用两个数学上相关但不同的密钥。一个密钥用于加密(公钥),另一个用于解密(私钥)。公钥可以公开发布,任何人都可以用它来加密消息;但只有拥有私钥的人才能解密。
这个想法的关键在于:从公钥推导出私钥在计算上是不可行的。
迪菲后来回忆说:"我当时站在停车场里,突然意识到这个想法可能是对的。我激动得几乎无法呼吸。我冲回办公室,把想法写在黑板上。马丁看了几分钟,然后说:'天哪,这可能是对的。'"
赫尔曼一开始持怀疑态度——这个想法太简单了,如果它是对的,为什么之前没有人发现?但他很快意识到迪菲是对的。这个想法不仅在理论上可行,而且它解决了密码学中最古老、最根本的问题。
2.4 Merkle:被遗忘的先驱
在迪菲和赫尔曼工作的同时,加州大学伯克利分校的一个研究生拉尔夫·默克尔(Ralph Merkle)也在独立地思考同样的问题。
默克尔的想法更加奇特。他提出了一个叫做"谜题系统"(puzzle system)的方案。想象一下:Alice想给Bob发送一条加密消息,但她不知道Bob的密钥。Alice可以为Bob准备一系列"谜题"——每个谜题都包含一个密钥和一条用该密钥加密的消息。这些谜题的难度各不相同:有些很容易解开,有些很难。
Bob只需要选择一个谜题并解开它,就能获得密钥和消息。Alice事先不知道Bob会选择哪个谜题,所以她不知道Bob会获得哪个密钥。但Bob知道,因为他选择了那个谜题。
这个方案的关键在于:虽然Alice不知道Bob会获得哪个密钥,但Bob可以告诉Alice他获得了哪个密钥(通过明文通信),然后他们就可以使用那个密钥进行安全通信了。
默克尔的方案不如迪菲和赫尔曼的优雅——它效率低下,而且安全性依赖于谜题的难度——但它是第一个公开发表的、试图解决无密钥通信问题的方案。
遗憾的是,默克尔的论文被ACM会议拒绝了——审稿人认为这个想法"不切实际"。默克尔后来苦涩地说:"我的论文被拒绝了,理由是它不够'实际'。但几年后,整个互联网的安全都建立在类似的思想之上。"
默克尔后来发明了哈希树(Merkle Tree),这个数据结构成为了区块链技术的基础组件之一。但他从未获得应有的认可——在公钥密码学的历史叙述中,他通常只是一个脚注。
2.5 迪菲-赫尔曼密钥交换
1976年,迪菲和赫尔曼发表了论文《密码学的新方向》(New Directions in Cryptography)。这篇论文只有11页,但它改变了密码学的整个面貌。
论文提出了两个革命性的概念:
- 公钥密码学:加密和解密使用不同的密钥
- 迪菲-赫尔曼密钥交换:一种让两方在不安全的信道上建立共享密钥的方法
迪菲-赫尔曼密钥交换的原理惊人地简单。想象一下:Alice和Bob想要建立一个共享的秘密,但他们之间的所有通信都会被Eve窃听。
- Alice和Bob公开约定一个大数g和一个大质数p(Eve也知道这些)
- Alice选择一个秘密数a,计算A = g^a mod p,把A发送给Bob
- Bob选择一个秘密数b,计算B = g^b mod p,把B发送给Alice
- Alice计算S = B^a mod p
- Bob计算S = A^b mod p
- 因为(g^a)^b = (g^b)^a = g^(ab),Alice和Bob得到了相同的S
Eve知道g、p、A和B,但她不知道a或b。要从A推导出a,她需要解决"离散对数问题"——在足够大的数域上,这个问题在计算上是不可行的。
就这样,两个陌生人之间建立了一个只有他们知道的秘密,而窃听者即使截获了所有通信内容也无法破解。
这不是魔法。这是数学。
三、1977:RSA——三个字母改变了世界
3.1 MIT的三人组
迪菲和赫尔曼证明了公钥密码学的理论可行性,但他们没有给出一个具体的实现方案。他们的论文描述了公钥密码学的概念框架,但没有提供一个实际可用的算法。要让这个理论变成现实,需要找到一个具体的数学函数——一个正向计算容易、逆向计算困难的函数。
真正的突破发生在一年后的MIT。
罗恩·里维斯特(Ron Rivest)是MIT的年轻教授,他对迪菲和赫尔曼的论文非常着迷。里维斯特是一个典型的MIT教授——穿着随意,办公室里堆满了书和论文,思维敏捷,喜欢和学生讨论问题。
他的两个同事阿迪·沙米尔(Adi Shamir)和伦纳德·阿德尔曼(Leonard Adleman)也是密码学的爱好者。沙米尔是以色列人,他在魏茨曼科学研究所获得了博士学位,然后来到MIT做博士后。他是一个天才数学家,思维非常敏捷,经常能在几分钟内找到一个方案的漏洞。阿德尔曼是美国本地人,他的背景是计算机科学和分子生物学。他后来成为了DNA计算领域的先驱。
1977年愚人节的晚上,里维斯特、沙米尔和阿德尔曼在MIT的一个学生宿舍里参加聚会。聚会结束后,三人回到里维斯特的家里,继续讨论密码学。他们喝着葡萄酒,吃着奶酪,在客厅的沙发上争论。
里维斯特提出了一个问题:是否存在一个函数,正向计算很容易,但逆向计算几乎不可能?如果存在这样的函数,就可以用它来构建一个公钥密码系统。
那天晚上,里维斯特和沙米尔提出了好几个方案。阿德尔曼扮演"攻击者"的角色,一个接一个地把它们破解了。每提出一个方案,阿德尔曼就会花几分钟思考,然后说:"这个不行,因为……"
讨论一直持续到凌晨。每一次失败都让三人更加沮丧,但也更加确信:如果他们能找到一个不可破解的方案,那将是一个巨大的突破。
最后,阿德尔曼受够了。"我太累了,"他说,"我要回家睡觉了。"他离开了里维斯特的家,开车回自己的公寓。
3.2 一个愚人节的顿悟
但里维斯特没有睡。他整夜都在思考。他的妻子在卧室里睡觉,他在客厅里踱步,在纸上写写画画。
凌晨时分,他想到了一个方案——基于大数分解的困难性。
这个想法的核心是:两个大质数相乘很容易,但把一个大数分解成它的质因数几乎不可能。比如:
- 计算 61 × 53 = 3233(很容易,几秒钟)
- 给你3233,问它是由哪两个质数相乘得到的?(需要尝试各种质数)
当数字足够大时(比如2048位),分解的难度变得不可思议。即使用全世界最强大的超级计算机,也需要数十亿年才能分解一个2048位的RSA模数。
里维斯特兴奋极了。他立刻给阿德尔曼打电话。
"伦,我有一个想法,"他说。
阿德尔曼睡眼惺忪地看了看表——凌晨3点。"罗恩,你知道现在几点吗?"
"我知道,但你得听听这个。"里维斯特开始描述他的方案。
阿德尔曼听了几分钟,然后说:"让我想想。"他挂了电话,开始在脑子里推导。
15分钟后,阿德尔曼给里维斯特回电话:"罗恩,我想这可能是对的。"
第二天早上,里维斯特把方案写成了一篇论文。他署上了三个人的名字——按字母顺序:Adleman, Rivest, Shamir。
阿德尔曼后来抱怨说:"我整晚都在破解他的方案,结果我的名字排在第一位,好像主要贡献是我的。但你知道吗,数学界就是这么称呼它的——RSA,不是ARS或SAR。"
3.3 RSA的工作原理
RSA算法的核心思想是:两个大质数相乘很容易,但把一个大数分解成它的质因数几乎不可能。
具体步骤如下:
密钥生成:
- 选择两个大质数p和q(每个都有数百位数字)
- 计算n = p × q
- 计算欧拉函数φ(n) = (p-1)(q-1)
- 选择一个与φ(n)互质的整数e(通常选择65537)
- 计算d,使得e × d ≡ 1 (mod φ(n))
- 公钥是(n, e),私钥是d
加密:
将明文m转换为一个小于n的整数,计算密文c = m^e mod n
解密:
计算m = c^d mod n
为什么这个方案是安全的?因为要从公钥(n, e)推导出私钥d,你必须知道φ(n)。而要计算φ(n),你必须知道p和q。要从n得到p和q,你必须分解n——这在足够大的数域上是计算上不可行的。
RSA的安全性不是基于某个复杂的算法或秘密的技巧,而是基于一个简单的数学事实:分解大数很难。这个事实是否永恒不变?我们不知道。但在过去的50年里,尽管计算机的速度提升了数十亿倍,没有人找到分解大数的快速方法。
3.4 一道价值连城的数学题
1977年,里维斯特、沙米尔和阿德尔曼创办了RSA Data Security公司。他们设计了一个挑战:加密一条消息,使用一个129位的十进制数作为模数(相当于425位的二进制数),悬赏100美元给第一个破解它的人。
这个挑战被称为"RSA-129"。消息是:"THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE"(魔法词语是 squeamish ossifrage——一种秃鹫)。
为什么选择这个奇怪的消息?里维斯特后来说:"我们想选一个有趣的消息。'Squeamish ossifrage'是一个非常罕见的词组,只有在破解了密码之后你才能理解它的含义。"
破解这个挑战花了17年。1994年,一个由阿金·伦斯特拉(Arjen Lenstra)领导的团队,使用了1600台分布在世界各地的计算机,花费了8个月的时间,成功分解了RSA-129。
但这个"成功"恰恰证明了RSA的安全性:分解一个只有129位的数就需要如此巨大的计算资源。而实际使用的RSA密钥通常是2048位或4096位——分解它们需要的计算量是RSA-129的天文数字倍。
RSA-129的破解也展示了一种强大的计算模式:分布式计算。通过将一个大问题分解成许多小问题,并分配给数千台计算机同时解决,可以在可接受的时间内完成单台计算机无法完成的任务。这种模式后来被用于许多科学计算项目——从寻找外星信号(SETI@home)到研究蛋白质折叠(Folding@home)。
3.5 一封改变法律的信
RSA算法的发明引发了一个意想不到的法律问题。美国政府将加密技术视为"军火",受到《国际武器贸易条例》(ITAR)的限制。根据这个条例,加密软件被归类为"弹药",与导弹和核武器并列。这意味着,如果你把包含强加密算法的代码发送到国外,你可能会被以"出口武器"的罪名起诉。
这个规定在今天看来荒谬至极,但在1990年代,它是真实存在的法律。
1991年,一个叫做菲利普·齐默尔曼(Phil Zimmermann)的程序员决定挑战这个规定。齐默尔曼是一个和平主义者和民权活动家,他在1980年代就开始关注政府对公民通信的监控。他认为,强加密是保护公民隐私的唯一可靠工具。
齐默尔曼编写了一个叫做PGP(Pretty Good Privacy)的加密软件。PGP使用RSA算法来保护电子邮件的安全——它允许任何人发送加密的邮件,只有收件人才能解密。
PGP的设计理念是"人人都能用的加密"。在此之前,加密软件通常需要专业知识才能使用。齐默尔曼的目标是让任何人都能轻松地加密自己的通信,即使他完全不懂数学。
1991年6月,PGP的第一个版本在互联网上发布。齐默尔曼把它免费提供给任何人下载。他特意选择在互联网上发布,因为他知道一旦代码进入网络,政府就无法收回它。
美国政府对齐默尔曼展开了刑事调查,指控他违反了武器出口管制法。调查持续了三年。在这三年里,齐默尔曼面临可能的监禁。他的律师费用耗尽了他的积蓄。他不得不依靠支持者的捐款来支付法律费用。
但他的案件引起了广泛的关注。密码学家、民权组织、甚至国会议员都为他辩护。美国公民自由联盟(ACLU)为他提供了法律支持。电子前沿基金会(EFF)将他的案件作为公民自由的标志性案例。
支持者们提出了一个关键论点:代码就是言论。编写和发布加密软件是一种表达行为,受到美国宪法第一修正案(言论自由)的保护。政府不能以"出口武器"的罪名起诉一个人,仅仅因为他写下了一段数学公式。
1996年,政府在没有给出明确理由的情况下撤销了指控。但齐默尔曼的案件具有历史性的意义:它第一次公开提出了一个问题——密码学是武器,还是人权?
这个问题的答案,至今仍在争论中。
四、1990s:密码战争——自由与安全的永恒拉锯
4.1 克林顿政府的"剪刀芯片"
1993年,克林顿政府推出了一个叫做"Clipper Chip"(剪刀芯片)的方案。这个方案要求所有在美国销售的通信设备都必须内置一个特殊的加密芯片,这个芯片使用一个由NSA设计的加密算法——Skipjack。
Skipjack算法本身是安全的——它使用80位的密钥,在当时被认为是足够强的。但Clipper Chip的设计中包含了一个关键的"特性":每个芯片都有一个唯一的密钥,这个密钥被分成两半,分别由两个不同的政府机构托管。当政府获得法院授权时,它可以取回这两个半密钥,从而解密任何使用该芯片加密的通信。
政府声称,这个"后门"只会在获得法院授权的情况下被使用,目的是打击犯罪和恐怖主义。
密码学家们愤怒了。他们指出了几个严重的问题:
- 密钥托管的安全性:两个政府机构能否安全地保管数十亿个密钥?任何安全漏洞都会导致灾难性的后果。
- 政府的承诺不可信:历史上有太多政府滥用监控权力的例子。J·埃德加·胡佛(J. Edgar Hoover)领导的FBI曾经非法监控马丁·路德·金、民权运动领袖和反战活动家。
- 技术上的不可行:加密软件可以在任何地方编写,美国政府无法控制全世界的代码。如果Clipper Chip在美国强制使用,美国人将使用弱加密,而外国用户将使用强加密——这实际上削弱了美国人的安全。
- 出口控制的荒谬性:强加密算法已经在全世界公开——RSA算法的论文可以自由下载。试图控制加密技术的传播,就像试图控制数学论文的传播一样荒谬。
马特·布拉泽(Matt Blaze),AT&T贝尔实验室的研究员,在1994年发表了一篇论文,证明Clipper Chip可以通过一个简单的技巧被绕过——用户可以在密钥托管过程中提交一个伪造的LEAF(Law Enforcement Access Field),使得政府的后门失效。
这篇论文在密码学界引起了轰动。它不仅在技术上击败了Clipper Chip,更在政治上证明了一个关键论点:任何试图在加密系统中植入后门的企图,最终都会削弱所有人的安全。
Clipper Chip最终在1996年被放弃。但"密码战争"——政府要求后门与密码学家要求强加密之间的冲突——从未真正结束。它只是改变了形式。
4.2 密码朋克:一群理想主义者的反叛
1990年代初,一群自称"密码朋克"(Cypherpunks)的人开始在旧金山湾区聚会。他们的聚会地点通常是约翰·吉尔摩(John Gilmore)的公司Cygnus Solutions的办公室,或者某个成员的家里。
密码朋克的核心信念是:隐私是一项基本权利,而密码学是保护这项权利的唯一可靠工具。 他们不信任政府、不信任企业、不信任任何中心化的权威。他们相信,只有通过数学——而不是法律或道德——才能真正保护个人的自由。
密码朋克的成员构成非常多样化:
- 埃里克·休斯(Eric Hughes):《密码朋克宣言》的作者,一个沉默寡言但思想深邃的数学家
- 蒂莫西·梅(Timothy May):前英特尔物理学家,写了《密码无政府主义宣言》,预言了加密技术将如何颠覆政府的权力
- 约翰·吉尔摩(John Gilmore):Sun Microsystems的早期员工,电子前沿基金会(EFF)的联合创始人
- 朱利安·阿桑奇(Julian Assange):一个年轻的澳大利亚黑客,后来创办了维基解密
- 布拉姆·科恩(Bram Cohen):后来发明了BitTorrent协议
1993年,埃里克·休斯发表了《密码朋克宣言》,其中写道:
"密码朋克编写代码。我们知道必须有人编写软件来保护隐私,既然我们不能指望政府、企业或其他大型组织为我们做这件事,我们就自己动手。我们写代码。我们深知必须有人编写这些软件来捍卫隐私。"
密码朋克的邮件列表成为了一个活跃的论坛,讨论加密技术、匿名通信、数字货币、电子投票等话题。在这些讨论中,许多后来改变了世界的想法被酝酿和孵化——包括比特币。
4.3 椭圆曲线密码学:更小的密钥,同等的安全
1985年,尼尔·科布利茨(Neal Koblitz)和维克多·米勒(Victor Miller)独立提出了将椭圆曲线数学应用于密码学的想法。
椭圆曲线是代数几何中的一种曲线,形式为y² = x³ + ax + b。在椭圆曲线上定义一种"加法"运算——两个点相加得到第三个点——这种运算具有很好的数学性质,可以用来构建密码系统。
椭圆曲线密码学(ECC)的优势在于:它可以用更短的密钥提供与RSA同等的安全性。这是因为椭圆曲线上的离散对数问题比大数分解问题更难——在相同的安全级别下,ECC需要的密钥长度远小于RSA。
256位的ECC密钥提供的安全性相当于3072位的RSA密钥。这意味着更快的计算、更少的存储和带宽消耗——这在移动设备和物联网设备上尤为重要。
ECC后来被广泛应用于TLS/SSL协议、比特币和各种加密货币、以及苹果的iMessage加密。今天的大多数安全通信都使用ECC而不是RSA。
五、2000s:HTTPS——让互联网商业成为可能
5.1 互联网的"裸奔"时代
1990年代中期,互联网开始商业化。亚马逊(1994年成立)、eBay(1995年成立)、PayPal(1998年成立)等公司开始提供在线购物和支付服务。人们开始在网上输入信用卡号码、银行账户信息、个人身份信息。
但有一个严重的问题:互联网上的通信是明文传输的。
HTTP(超文本传输协议)在设计时没有考虑安全性——它假设网络是可信的。这意味着,如果你在1995年在网上输入你的信用卡号码,这个号码会以明文形式在网络上传输——从你的电脑出发,经过你的ISP、骨干网络、目标服务器的ISP,最后到达目标服务器。在这个路径上的任何一点,一个窃听者都可以截获你的信用卡号码。
更糟糕的是,攻击者不需要物理接触到网络设备。通过ARP欺骗、DNS劫持或BGP劫持等技术,攻击者可以将流量重定向到自己的服务器上,而用户完全不知情。
这是一个根本性的信任问题。你愿意在网上输入你的信用卡号码吗?你信任这个你从未见过的网站吗?你信任那些你看不见的网络设备吗?
5.2 SSL/TLS:加密的"安全套接层"
网景公司(Netscape)意识到了这个问题。1994年,他们开发了SSL(Secure Sockets Layer)协议——后来被标准化为TLS(Transport Layer Security)。
SSL/TLS的工作原理巧妙地结合了对称加密和非对称加密:
- 握手阶段:客户端和服务器使用非对称加密(通常是RSA或ECC)来安全地协商一个对称加密的会话密钥。这个过程包括证书验证、密钥交换和密码套件协商。
- 数据传输阶段:使用对称加密(如AES)来加密实际的数据——因为对称加密比非对称加密快得多(通常快1000倍以上)。
这个设计的精妙之处在于:非对称加密只用于初始的密钥交换(计算量大但数据量小),而大量的数据传输使用高效的对称加密。这既保证了安全性,又保证了性能。
5.3 证书系统:信任的层级结构
但SSL/TLS有一个关键问题:客户端怎么知道服务器的公钥是真的?如果一个攻击者拦截了客户端和服务器之间的通信,并用自己的公钥替换服务器的公钥,他就可以解密所有通信——这就是"中间人攻击"。
解决方案是数字证书和证书颁发机构(CA)。
CA是一个受信任的第三方,它的职责是验证公钥的所有者身份,并签发一个数字证书——一个包含公钥和所有者信息的文档,用CA的私钥签名。
浏览器和操作系统预装了一组受信任的CA的根证书。当浏览器连接到一个HTTPS网站时,它会检查网站的证书是否由受信任的CA签发。如果是,浏览器显示一个挂锁图标。
这个系统建立了一个"信任链":你信任浏览器,浏览器信任CA,CA信任网站。每一层的信任都可以被验证——你可以检查证书的签名、有效期、域名等。
这个系统不完美——CA可能被入侵、可能错误签发证书、可能受到政府压力——但它是目前最广泛部署的信任基础设施。2011年,DigiNotar CA被入侵,导致数百个伪造的证书被签发,包括Google和CIA的证书。这个事件暴露了CA系统的脆弱性,但也推动了证书透明度(Certificate Transparency)等改进措施的实施。
5.4 Let's Encrypt:加密的民主化
2015年,Let's Encrypt项目启动,提供免费的SSL/TLS证书。在此之前,获取证书需要付费(每年几十到几百美元)和复杂的配置过程。许多小型网站和个人博客根本没有使用HTTPS。
Let's Encrypt通过一个自动化协议(ACME)使得获取和更新证书变得几乎不需要人工干预。你只需要运行一个命令,Let's Encrypt就会自动验证你的域名所有权,签发证书,并配置你的服务器。
到2026年,全球超过90%的网页流量使用HTTPS加密。在Let's Encrypt之前,这个数字不到30%。
HTTPS从一个可选的安全功能变成了互联网的默认配置。这改变了互联网的基本假设:加密不再是特例,而是常态。
六、2008:中本聪——当密码学遇见经济学
6.1 密码朋克的数字货币梦
密码朋克们从1990年代就开始探索数字货币。他们对传统的金融体系深感不满——银行掌握着你的财务数据,政府可以冻结你的账户,通货膨胀侵蚀着你的储蓄。他们梦想着一种不受任何中心化权威控制的货币。
他们创造了多个系统:
- DigiCash(1989):大卫·乔姆(David Chaum)发明的电子现金系统,使用盲签名技术实现匿名交易。乔姆是密码学匿名通信的先驱,他在1981年就发表了关于匿名通信的论文。DigiCash的技术非常先进——它允许用户进行匿名支付,就像使用现金一样。但DigiCash是中心化的,依赖于一个公司来运营。乔姆试图与银行合作,但谈判失败了。公司最终在1998年破产。
- Hashcash(1997):亚当·贝克(Adam Back)设计的"工作量证明"系统,最初用于反垃圾邮件。它的核心思想是:发送邮件前必须完成一个计算密集型的任务——找到一个使得哈希值以一定数量的零开头的随机数。这使得发送大量垃圾邮件的成本变得很高。Hashcash的思想后来被比特币采用。
- b-money(1998):戴维(Wei Dai)提出的分布式电子现金系统概念。戴维描述了一个系统,其中参与者通过解决计算难题来创造货币,交易记录由所有参与者共同维护。b-money从未被实现,但它的概念框架与后来的比特币惊人地相似。
- Bit Gold(1998):尼克·萨博(Nick Szabo)提出的概念,被认为是比特币最直接的前身。萨博描述了一个系统,其中"数字黄金"通过工作量证明来创造,所有权通过点对点网络来转移。萨博甚至使用了"区块链"这个术语的雏形。
这些系统各自解决了数字货币的部分问题,但没有人能解决一个核心挑战:如何在没有中心化权威的情况下,防止双重支付(同一笔钱被花两次)?
在传统的金融系统中,银行负责记录每个人的余额,确保你不会花超过你拥有的钱。但在一个去中心化的系统中,谁来扮演银行的角色?
6.2 一个化名天才的出现
2008年10月31日——万圣节——一个使用化名"中本聪"(Satoshi Nakamoto)的人在密码学邮件列表上发布了一篇9页的论文:《比特币:一种点对点的电子现金系统》。
这篇论文的核心创新是:区块链——一个由工作量证明(proof-of-work)保护的、不可篡改的交易记录。
区块链的工作原理:
- 交易被打包成"区块"。每个区块包含一批交易记录、一个时间戳、以及前一个区块的哈希值。
- 每个区块的哈希值依赖于前一个区块的哈希值——这形成了一个链。修改任何一个区块都会改变它的哈希值,从而使得其后所有区块的哈希值失效。
- 要添加新区块,矿工必须解决一个计算难题——找到一个使得区块哈希值以一定数量的零开头的随机数。这需要大量的计算资源,但验证答案是否正确只需要一次哈希计算。
- 网络上的节点通过共识机制来决定哪个区块是"正确的"。如果出现分叉(两个矿工同时找到了有效的区块),网络会选择"最长链"——即包含最多工作量的链。
这个设计的精妙之处在于:它不需要任何中心化的权威。信任不是来自于某个机构的声誉,而是来自于数学和经济激励——修改区块链的成本远远超过诚实参与的收益。
中本聪在论文中写道:"我们提出了一个不需要信任的电子交易系统。"这不仅仅是技术声明,更是一种哲学立场。
6.3 比特币的诞生
2009年1月3日,中本聪挖出了比特币的第一个区块(创世区块)。在这个区块中,他嵌入了一条消息:"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"——这是当天《泰晤士报》的头版标题,关于英国政府对银行的第二次救助。
这条消息被广泛解读为中本聪对传统金融体系的不信任——2008年的金融危机暴露了银行系统的脆弱性和不负责任,而政府的救助方案则将纳税人的钱注入了这些失败的机构。
在早期,比特币几乎没有价值。它只是密码学邮件列表上的一个有趣的实验。最早的矿工使用普通的个人电脑CPU来挖矿——当时不需要专门的硬件,因为网络的计算能力还很小。
2010年5月22日,一个叫做拉斯洛·汉耶茨(Laszlo Hanyecz)的程序员用10,000个比特币买了两个披萨。这是比特币第一次被用作实际的支付手段。按照当时的价格,每个比特币约0.003美元。按照2026年的价格,这两个披萨价值超过6亿美元。
这一天后来被比特币社区称为"比特币披萨日"。汉耶茨后来说:"我不后悔。如果没有人用比特币买东西,它就永远不会有价值。"
6.4 中本聪的消失
2010年底,中本聪逐渐减少了在论坛上的活动。他把项目的控制权移交给了其他开发者——主要是加文·安德烈森(Gavin Andresen)。
2011年4月,中本聪给安德烈森发了最后一封邮件,说他已经"转向其他事情"。此后,中本聪再也没有出现过。
中本聪的身份至今是互联网最大的谜团之一。多年来,许多人被怀疑是中本聪——澳大利亚企业家克雷格·赖特(Craig Wright)甚至公开声称自己是中本聪,但未能提供决定性的证据(他应该能用中本聪的私钥签署一条消息,但他从未这样做过)。也有人猜测中本聪是一个团队,而不是一个人。
中本聪的消失本身就是一种哲学声明:比特币不需要中本聪。 它的协议是开源的,它的网络是分布式的,它的安全性依赖于数学而不是任何个人的声誉。
这与传统的金融系统形成了鲜明的对比。你信任美元,因为你信任美国政府。你信任银行,因为你信任银行的管理层。但如果这些机构辜负了你的信任——比如2008年的金融危机——你几乎无能为力。
比特币的设计哲学是:不要信任任何人,只信任数学。
七、2013:斯诺登——当信任崩塌之后
7.1 一个改变世界的泄密
2013年6月,爱德华·斯诺登(Edward Snowden)——一个前NSA承包商——向媒体泄露了大量机密文件,揭示了美国政府的大规模监控项目。
斯诺登是一个30岁的技术分析师,他在NSA的承包商Booz Allen Hamilton工作。他的工作是维护NSA的监控系统。在这个过程中,他发现了政府对公民的大规模监控计划——远超公众的想象。
斯诺登做出了一个改变他一生的决定:他复制了大量机密文件,飞往香港,在一家酒店房间里与记者格伦·格林沃尔德(Glenn Greenwald)和劳拉·波特拉斯(Laura Poitras)会面,将文件交给了他们。
斯诺登的泄密震惊了全世界。人们发现:
- PRISM项目:NSA直接访问了Google、Facebook、Apple、Microsoft等公司的用户数据。这些公司声称它们只在获得法院命令后才提供数据,但斯诺登的文件显示,NSA可以实时访问这些公司的服务器。
- 电话元数据收集:NSA收集了美国公民的电话元数据——谁给谁打了电话、通话时长、通话时间。虽然政府声称"只是元数据",但通过分析元数据,可以推断出一个人的社交网络、生活习惯、甚至政治倾向。
- 对盟国的监控:NSA甚至入侵了德国总理安格拉·默克尔的手机。这个发现严重损害了美国与盟国的关系。
- 加密标准中的后门:NSA在加密标准中植入了后门——包括在NIST标准化的随机数生成器Dual EC DRBG中。密码学家早就怀疑Dual EC DRBG包含后门(它的设计中有两个常数,看起来像是被特意选择的),但直到斯诺登的文件泄露,这个怀疑才被证实。
最后一点尤其令人震惊。NIST(美国国家标准与技术研究院)是制定加密标准的权威机构,全世界的开发者都依赖NIST的标准来保证他们的系统是安全的。如果NIST的标准被NSA操纵了,那么全世界的安全基础设施都可能是不可信的。
7.2 加密的复兴
斯诺登事件引发了加密技术的全面复兴。
在事件之前,大多数互联网通信虽然使用HTTPS,但主要的通信平台(电子邮件、即时消息、社交媒体)的端到端加密并不普及。服务提供商可以访问用户的消息内容——这意味着政府可以通过法律手段(或秘密手段)获取这些内容。
斯诺登事件之后:
- Signal:莫西·马林斯派克(Moxie Marlinspike)开发的加密通信应用,使用Signal协议实现端到端加密。Signal协议的设计目标是"前向安全性"——即使长期密钥被泄露,过去的消息仍然是安全的。Signal协议后来被WhatsApp、Facebook Messenger和Skype采用,保护了数十亿用户的通信。
- WhatsApp:2016年,WhatsApp为其10亿多用户默认启用了端到端加密——这是历史上最大规模的加密部署。在此之前,WhatsApp的消息是以明文形式存储在服务器上的。
- Let's Encrypt:如前所述,这个项目在2015年启动,极大地推动了HTTPS的普及。
7.3 苹果vs FBI:加密的终极对决
2015年12月,两名枪手在加州圣贝纳迪诺制造了大规模枪击案,造成14人死亡。FBI缴获了枪手的iPhone 5c,但无法解锁——因为iPhone使用了强加密,连续输入错误密码10次后会自动擦除数据。
FBI要求苹果公司开发一个特殊版本的iOS——一个"政府操作系统"——绕过加密保护。这个特殊版本会允许无限次尝试密码而不会擦除数据,还会允许通过电子方式输入密码(而不是手动输入),从而可以使用暴力破解。
苹果拒绝了。
苹果CEO蒂姆·库克写了一封公开信:
"政府要求苹果开发一个我们从未拥有过的、最终会让我们的用户面临危险的工具。这太危险了,我们不能创造它。现在,我们要求全国的人民加入这场讨论。"
支持苹果的人认为:一旦苹果为政府开发了一个绕过加密的工具,这个工具就可能被滥用——被其他政府、被黑客、被任何能获取它的人。加密要么是安全的,要么就不是安全的——没有中间地带。
支持FBI的人认为:恐怖分子的手机中可能包含关于未来袭击的关键情报。在这种情况下,公共安全应该优先于个人隐私。
这场法律战持续了几个月,引发了激烈的公众辩论。最终,FBI找到了一个以色列公司Cellebille,该公司提供了一种解锁iPhone的方法。FBI撤回了对苹果的诉讼。
但这场对决提出了一个至今没有答案的问题:政府是否有权要求科技公司为加密系统创建后门?
这个问题在2020年代变得更加紧迫。随着端到端加密成为通信的默认标准,执法机构越来越难以获取犯罪嫌疑人的通信内容。英国、澳大利亚和美国的政府都提出了各种方案来解决这个问题——从"客户端扫描"(在加密之前检查消息内容)到" ghost protocol"(允许执法机构秘密加入加密对话)。
密码学家们一致反对所有这些方案。他们的论点与1990年代反对Clipper Chip时的论点相同:任何后门都是一个安全隐患。你不能创建一个"只有好人能用"的后门。
八、2020s:零知识证明——证明你知道某事而不透露你知道什么
8.1 一个看似矛盾的概念
想象一下:你要向一个色盲朋友证明两个球的颜色不同。你不能简单地说"它们颜色不同",因为朋友无法验证。但你也不能把颜色告诉他,因为你想保密。
零知识证明(Zero-Knowledge Proof)就是解决这类问题的数学工具。它允许你向别人证明你知道某个秘密,而不透露关于这个秘密的任何信息。
这个概念在1985年由沙菲·戈德瓦塞尔(Shafi Goldwasser)、西尔维奥·米卡利(Silvio Micali)和查尔斯·拉科夫(Charles Rackoff)提出。它最初被视为一个纯粹的理论概念——有趣但不实用。但近年来,随着计算能力的提升和算法的改进,零知识证明成为了密码学中最具应用前景的技术之一。
零知识证明必须满足三个性质:
- 完备性:如果陈述是真的,诚实的验证者会被诚实的证明者说服
- 可靠性:如果陈述是假的,没有证明者能说服诚实的验证者(除了极小的概率)
- 零知识性:验证者除了"陈述是真的"之外,不会获得任何额外信息
第三个性质是关键:它意味着验证者在验证过程结束后,除了知道"证明者知道秘密"这个事实之外,对秘密本身一无所知。
8.2 Zcash:匿名的加密货币
比特币的交易是公开的——虽然用户的身份是匿名的(通过地址来标识),但所有的交易记录都是公开的。任何人都可以查看任何地址的交易历史。
通过分析交易模式——比如地址之间的资金流动、交易的时间和金额——有时可以推断出用户的真实身份。这被称为"区块链分析"或"链上分析"。事实上,已经有多家公司专门从事这项业务,为政府和企业提供区块链情报服务。
Zcash(2016年推出)使用零知识证明(具体来说是zk-SNARKs——零知识简洁非交互式知识论证)来实现完全匿名的交易。
在Zcash的"屏蔽交易"(shielded transaction)中,你可以证明:
- 你有足够的余额来完成这笔交易
- 你没有双重支付
- 交易的输入和输出是平衡的(没有凭空创造货币)
但你不需要透露你的地址、交易金额或交易对手。验证者——包括矿工和网络上的其他节点——可以确认交易是有效的,但对交易的具体细节一无所知。
这在数学上是惊人的:你可以证明一个陈述是真的,而不透露任何关于为什么它是真的的信息。
8.3 身份验证的未来
零知识证明最深远的应用可能不是加密货币,而是身份验证。
目前,当你需要证明你已满18岁时,你必须出示你的身份证。这不仅证明了你的年龄,还泄露了你的姓名、出生日期、地址、照片、身份证号码等大量信息。你只需要证明一个事实("我已满18岁"),但你被迫泄露了十几个事实。
使用零知识证明,你可以证明"我已满18岁"这个事实,而不透露关于你年龄的任何其他信息,更不用说你的身份信息了。
这个概念可以扩展到许多场景:
- 证明你的信用评分超过700,而不透露具体分数
- 证明你是某个组织的成员,而不透露你的身份
- 证明你拥有某个学位,而不透露你就读的学校
- 证明你不在某个黑名单上,而不透露你的身份
这不仅仅是技术上的进步。它代表着一种根本性的范式转变:从"信任需要知道你是谁"到"信任只需要知道你能做什么"。
九、未来:量子威胁与后量子密码学
9.1 量子计算的威胁
量子计算机利用量子力学的原理(叠加态和纠缠态)来进行计算。在经典计算机中,一个比特只能是0或1。在量子计算机中,一个量子比特(qubit)可以同时是0和1——这叫做"叠加态"。多个量子比特还可以"纠缠"在一起,使得它们的状态相互依赖。
这些量子特性使得量子计算机在某些问题上可以比经典计算机快指数倍。其中一个问题是大数分解。
1994年,彼得·肖尔(Peter Shor)——当时是贝尔实验室的研究员——提出了Shor算法。Shor算法可以在量子计算机上以多项式时间分解大数——这意味着分解一个2048位的数,经典计算机需要数十亿年,而一台足够强大的量子计算机只需要几小时。
如果一台足够强大的量子计算机被建造出来,它将能够破解目前使用的所有公钥密码系统——包括RSA、ECC和迪菲-赫尔曼密钥交换。这意味着HTTPS、数字签名、加密货币——所有依赖于公钥密码学的系统——都将变得不安全。
目前的量子计算机还不够强大——最大的量子计算机只有几千个物理量子比特,而破解RSA-2048需要数千个逻辑量子比特(每个逻辑量子比特需要数千个物理量子比特来纠错)。按照目前的技术进步速度,这可能还需要10到30年。
但"可能还需要10到30年"并不能让人安心。原因有两个:
- 技术进步是不可预测的。量子计算的突破可能比预期来得更快。
- "现在收集,以后解密"(harvest now, decrypt later)攻击:一个对手可以现在截获和存储加密的通信,等到量子计算机成熟后再解密。如果你今天发送了一条需要保密30年的消息(比如国家机密或商业秘密),你今天就需要使用抗量子加密。
9.2 后量子密码学
密码学家们没有等待量子计算机成熟。他们已经在开发"后量子密码学"——即使在量子计算机面前也安全的密码算法。
后量子密码学的安全性不依赖于大数分解或离散对数问题(这些问题可以被Shor算法高效解决),而是依赖于其他数学问题——这些问题即使在量子计算机面前也被认为是困难的。
2022年,美国国家标准与技术研究院(NIST)选定了四种后量子密码算法作为标准:
- CRYSTALS-Kyber:基于格(lattice)的密钥封装机制。格问题是高维空间中寻找最短向量的问题,这个问题即使在量子计算机面前也被认为是困难的。
- CRYSTALS-Dilithium:基于格的数字签名算法。
- FALCON:另一种基于格的数字签名算法,生成的签名更紧凑。
- SPHINCS+:基于哈希的数字签名算法。它的安全性只依赖于哈希函数的安全性,这是一个非常保守的假设。
这些算法已经被标准化,并开始被集成到各种软件和硬件中。Chrome、Firefox和Signal等软件已经开始支持后量子密码学。
但过渡到后量子密码学是一个巨大的挑战。全球有数十亿设备使用当前的加密标准,替换它们需要数十年的时间。而且,一些现有的系统可能无法轻松升级——比如嵌入在基础设施中的物联网设备。
9.3 量子密钥分发:物理学的终极保障
另一种应对量子威胁的方法是量子密钥分发(QKD)。QKD利用量子力学的基本原理——测量会扰动量子态——来保证密钥分发的安全性。
在QKD中,发送方(Alice)通过光纤或卫星向接收方(Bob)发送单个光子。每个光子的量子态编码了一个随机比特。如果有人试图窃听(Eve),她必须测量这些光子——但测量会不可避免地扰动量子态,从而被Alice和Bob发现。
QKD的安全性不依赖于任何计算假设——它依赖于物理学的基本定律。即使你有无限的计算能力(包括量子计算机),你也无法窃听QKD通信而不被发现。
中国在QKD领域处于领先地位。2016年,中国发射了"墨子号"量子科学实验卫星,实现了世界上第一次洲际量子密钥分发。2017年,北京和维也纳之间建立了世界上第一条洲际量子保密通信链路。2021年,中国建成了世界上最大的量子密钥分发网络——连接了北京、上海、合肥和济南,总长度超过4600公里。
但QKD也有局限性:它需要专用的物理基础设施(特殊光纤或卫星),成本高昂,而且传输距离有限(目前最远约1000公里,通过卫星中继)。此外,QKD只能用于密钥分发,不能用于数字签名或身份验证。
十、哲学追问:当数学取代了道德
10.1 一个根本性的转变
回顾这80年的历史,我们看到的不仅仅是技术的进步,而是一个根本性的范式转变:
信任的基础从人际关系转变为数学关系。
在传统社会中,信任建立在以下基础上:
- 血缘:你信任你的家人,因为他们和你有共同的基因。这种信任是本能的、非理性的,但非常强大。
- 关系:你信任你的朋友,因为你和他们有长期的互动。你了解他们的性格、价值观和行为模式。
- 声誉:你信任一个有良好记录的人或机构。声誉是长期行为的积累,它代表了一种"可信赖性"的历史记录。
- 法律:你信任合同的约束力,因为违反它会有法律后果。法律代表了社会对"正确行为"的共识。
- 宗教/道德:你信任一个虔诚的人,因为你相信他受到超自然的约束。道德代表了内在的"应该"。
这些信任机制都有一个共同点:它们依赖于人的品质——善良、诚实、恐惧、羞耻、责任感。如果一个人缺乏这些品质,这些信任机制就会失效。
而数学信任不依赖于任何人的品质。RSA的安全性不取决于里维斯特是否诚实;比特币的安全性不取决于中本聪是否善良;Signal的安全性不取决于莫西·马林斯派克是否正直。它们的安全性来自于数学问题的计算困难性——一个不受人类情感、贪婪、恐惧或腐败影响的客观事实。
10.2 "不信任"的美德
这引发了一个有趣的哲学问题:不信任是否可以成为一种美德?
传统上,不信任被视为一种负面品质——它与猜疑、偏执、反社会相关联。一个不信任他人的人被认为是不健康的、有缺陷的。
但密码朋克的答案是肯定的。他们的核心信念是:不要信任任何人——不是因为他们不值得信任,而是因为信任系统不应该依赖于人的善良。
"信任,但验证"(Trust, but verify)——这句冷战时期的名言在密码学中被重新诠释为:"不要信任,只需验证。"
比特币的设计哲学完美地体现了这一点。中本聪在白皮书中写道:
"我们提出了一个不需要信任的电子交易系统。"
这不仅仅是技术声明,更是一种哲学立场:在一个全球化的、匿名的世界中,依赖于信任的系统是脆弱的。唯一可靠的系统是那些不需要信任的系统。
10.3 数学的"道德"优势
数学信任还有一个传统信任不具备的优势:一致性。
人类的道德是有弹性的。同一个人在不同的压力下可能做出完全不同的决定。一个平时诚实的人在面临巨大诱惑时可能欺骗;一个平时善良的人在恐惧中可能伤害他人。人类的道德判断受到情绪、疲劳、饥饿、压力等无数因素的影响。
但数学没有弹性。RSA算法在任何情况下都以同样的方式工作。它不会因为压力而改变,不会因为诱惑而妥协,不会因为恐惧而背叛。它不会在凌晨3点做出糟糕的决定,不会在喝了三杯酒后改变主意。
这种一致性使得数学信任在某些场景下比人类信任更可靠。当你在ATM机上取款时,你信任的不是银行柜员的善良,而是加密协议的数学正确性。
10.4 数学信任的局限
但数学信任也有其根本性的局限:
- 它只能保护通信,不能保护意义。加密可以保证消息不被窃听,但它不能保证消息不被误解。人类的沟通不仅仅是信息的传输,还包括语境、语气、情感——这些东西无法被加密。
- 它不能解决"垃圾进,垃圾出"问题。数学可以保证数据的完整性和保密性,但它不能保证数据的真实性。假新闻可以用完美的加密传播。一个完全安全的通信渠道可以用来传递完全虚假的信息。
- 它创造了新的权力不对称。掌握密码学知识的人拥有巨大的优势。当大多数人不理解加密的工作原理时,他们只能信任那些声称保护他们的人——这本身就是一种信任关系。
- 它可能导致道德外包。当"正确的行为"被编码进协议时,人们可能不再思考什么是真正正确的。"协议允许"变成了"道德允许"。如果一个系统允许匿名交易,那么匿名交易就是"正确的"——无论它被用于什么目的。
- 它无法处理"最后手段"问题。在极端情况下——比如恐怖袭击或绑架——执法机构可能需要获取加密通信的内容。数学信任系统没有为这种情况留下任何后门。这是一个没有好答案的困境。
10.5 信任的未来
未来的世界可能是这样一种混合体:数学信任处理技术层面的安全性(通信、支付、身份验证),而人类信任处理那些无法被数学化的层面(情感、意义、道德判断)。
这种混合体已经存在了。当你在网上购物时,你信任HTTPS来保护你的信用卡信息(数学信任),同时你信任卖家会如约发货(人类信任,通过评价系统和法律保障来增强)。
挑战在于:如何设计系统,使得这两种信任相互补充,而不是相互替代?
一个令人担忧的趋势是:随着数学信任系统的普及,人们可能逐渐失去建立人类信任的能力。当你可以通过区块链验证一个交易的有效性时,你可能不再需要信任交易对手。当你可以通过零知识证明验证一个人的年龄时,你可能不再需要信任他的诚实。
这听起来像是一个更安全的世界。但它也是一个更孤独的世界——一个每个人都生活在自己的加密隧道里、与他人只通过数学协议连接的世界。
终章:一条从布莱切利园延伸出来的线
1944年的某个深夜,艾伦·图灵在布莱切利园的办公室里工作。他面前是一排排的炸弹机,正在以每秒数千次的速度测试Enigma的密钥。外面是战时的黑暗——英国实行灯火管制,整个国家笼罩在恐惧和不确定性之中。
图灵不知道的是,他正在做的事情将改变人类文明的轨迹。他不仅仅是在破解德国的密码——他正在证明一个概念:数学可以成为信任的工具。
80年后,当你在网上银行转账时,当你用Signal给朋友发消息时,当你用比特币支付时,当你证明你已满18岁而不透露身份时——你都在使用图灵在布莱切利园里播下的种子所生长出来的果实。
这是一条从布莱切利园延伸出来的线,穿过斯坦福的停车场、MIT的宿舍、旧金山的密码朋克聚会、中本聪的匿名白皮书,一直延伸到你的手机屏幕上。
这条线的核心是同一个简单的思想:有些数学问题很容易做,但几乎不可能撤销。这个不对称性——一个如此抽象、如此纯粹的数学性质——成为了整个人类数字文明的信任基石。
图灵在他有生之年没有看到这一切。他死于1954年,年仅41岁,被他所拯救的国家以"严重猥亵"的罪名迫害致死。
但数学不在乎迫害。数学不在乎性取向、国籍、种族、政治立场。数学只在乎真与假。也许这正是它能够成为信任基础的最深层原因——它是人类发明的唯一一个完全不受人类弱点影响的东西。
当你下次在网上输入密码时,想想图灵。想想Diffie在斯坦福停车场里的灵光一现。想想里维斯特在愚人节凌晨的顿悟。想想中本聪在消失前留下的最后一行代码。
然后放心地按下"发送"。
因为保护你的不是信任,而是数学。