加密是利用算法和密钥,把可读数据(明文)转换为不可读形式(密文)的过程,只有持有正确密钥的一方才能逆转这一变换。它是密码学的核心技术,也是计算、通信和数据存储领域保护机密性的主要手段。仅靠加密本身只能保证保密性,无法保证真实性和完整性,因此实际系统通常会将其与其他机制结合使用。
随着数字生活的普及,加密的重要性日益突出。网上银行、即时通讯、云存储和网页浏览都依赖加密。这一学科涉及数学(数论、代数、概率论)、计算机科学(算法设计、计算复杂性、实现工程)以及公共政策(隐私权、依法访问等议题)。其历史可以追溯到古代手工操作的替换密码,经过恩尼格玛机等机械转子机器,直至20世纪70年代的公钥方法。公钥方法使得从未共享过秘密的双方之间也能进行安全通信。
本词条首先定义基本概念并介绍历史上的密码,然后讨论两大类加密方式:对称加密和公钥加密,并涵盖它们的工作模式、标准和形式化安全定义。随后论述攻击手段、实现风险、认证加密、后量子过渡、高级方案、应用和政策争议,最后以未解决的问题作结。
基本概念与术语
加密是对可读信息进行转换,使只有掌握特定秘密的一方才能将其还原的过程。原始的可读消息称为明文,转换后的结果称为密文。密钥是控制转换过程的秘密参数,密码算法则是一类算法,规定明文与密钥如何结合。加密函数 将明文 与密钥 映射为密文,即 ;解密函数 则是其逆运算,在使用同一密钥时满足 。有些系统在两个方向上使用不同的密钥,如公钥部分所述,但两个函数之间的基本关系不变:对合法的密钥持有者而言,解密必须能够撤销加密;而对其他人来说,解密在计算上必须不可行。
一项核心的设计准则是柯克霍夫原则。奥古斯特·柯克霍夫在1883年一篇关于军事密码学的文章中提出了这一原则,其内容是:除密钥之外,系统的其他一切都为公众所知,系统仍应保持安全。克劳德·香农后来以更直白的方式表达了同一思想,他假定敌人知晓系统的全部设计。这一原则有着实际的意义:安全性依赖于一个可以在泄露时更换的数值,而公开发表的算法可以由众多独立专家加以审查。依赖隐藏算法的系统(即“通过隐晦实现安全”)往往在其设计泄露后便告失效;相比之下,公开的算法配合秘密密钥,只需更换密钥即可安全地重复使用。
加密常被误认为与另外两种变换相混淆,即编码和哈希,而二者的区别十分重要。编码是将数据从一种表示形式转换为另一种,例如将文本转为Base64、ASCII或摩尔斯电码。编码的目的在于兼容或传输,不使用任何秘密,任何知道公开方案的人都可以将其逆转,因此完全不能提供机密性。哈希则使用一种难以求逆、并使碰撞难以找到的函数,将任意长度的输入映射为固定长度的摘要。哈希本就不打算被解密,也不需要密钥;它用于指纹识别、完整性校验和密码存储,而非用来隐藏之后仍需读取的数据。与之相对,加密是有密钥参与的,且任何持有正确密钥的人都可以将其逆转。压缩是另一种常被误认为能起保护作用的变换,但它本身并不隐藏任何内容。
机密性,即未经授权的一方无法获知消息内容,是多数人将加密与之联系起来的目标,但它只是若干安全目标之一。完整性指能够发现数据是否遭到篡改。认证指接收方能够核实数据由谁创建或发送。不可否认性指发送方无法令人信服地否认自己发送过该数据,这是一种更强的性质,通常需要借助数字签名而非仅靠加密来实现。加密本身只能提供机密性,并不会自动保证其余三项。密文往往可能在接收方未察觉的情况下被篡改,这正是现代系统将加密与认证结合使用的原因。此外,安全性始终是相对于攻击者的能力来定义的,例如攻击者能够观察什么、能够选择发送什么,以及能够投入多少计算资源。这些安全模型将在本文后续部分加以探讨。
古典密码
已知最早有意改动文本的做法,与现代密码相去甚远。已知最早有意转换文本的例子,见于约公元前1900年古埃及古王国时期一座墓室墙壁上刻写的非标准象形文字。这种文字是通过用外形相似的象形符号相互替换,并运用图画谜原理(即让一个符号代表一个读音)而形成的。许多资料把这个例子归于古王国时期,但与之最常联系的墓葬——贝尼哈桑贵族赫努姆霍特普二世的墓——一般被定为中王国时期。学者将这些铭文解读为学识或娱乐的展示,而非认真的秘密通信尝试。
凯撒移位是最简单的系统性替换方法。将字母依次编号为 A = 0 至 Z = 25,则以密钥 加密的公式为 ,解密即为反向移位。移位量为 0 或 26 时得到的都是原文,因此这种密码只有 25 个可能的密钥。这个密钥空间用手工即可穷尽。一般的单表替换,即 26 个字母中每个都可映射为任意其他字母,则有 种可能的密钥,约为 ,因此不存在穷举破解的问题。然而,其结构性弱点依然存在。明文中某个字母的每次出现都会变成同一个密文符号,因此这些频率会保留在密文中,只是发生了位移。所以,密钥空间的大小远不如密码是否隐藏统计结构来得重要。
多表密码的设计目的,是通过使用多个替换字母表来隐藏这种结构。有详细文献记载的最早的多表密码描述,出自莱昂·巴蒂斯塔·阿尔贝蒂,约在1467年,他使用一个金属密码盘在不同的密码字母表之间切换。约翰内斯·特里特米乌斯随后引入了正方表(tabula recta),即一个由移位字母表构成的网格。乔万·巴蒂斯塔·贝拉索在此网格基础上进一步发展,加入了循环使用的关键词,关键词的每个字母决定了所用的字母表。这一方案后来被归于布莱兹·德·维吉尼亚名下,但他1586年的著作描述的其实是另一种更强的自动密钥系统。维吉尼亚密码之所以得名,是因为19世纪人们误将其归于维吉尼亚。由于一个明文字母可以对应多个密文字母,它能抵抗直接的频率统计。这种密码声名远扬,以至于法国密码学家称之为“le chiffre indéchiffrable”(不可破译的密码)。它最终还是被破解了,弗里德里希·卡西斯基于1863年独立发表了破解它的方法。
外交和军事通信常依赖“名称表”(nomenclator),即将编码与密码结合起来的系统。单个音节对应一组编码,同时加入一套密码字母表,用于加密不在编码表中的词语或人名。这种半编码表、半密码字母表的结构,从意大利文艺复兴时期一直延续到约1850年。
换位密码保留每个明文字母,但改变它们的位置。在简单的列换位中,信息按行写在一个关键词之下,然后按关键词字母的字母顺序逐列读取。由于字母频率保持不变,分析者寻找的是重排的规律,而非替换的规律。将两种方法结合即得到乘积密码。1918年的德国ADFGVX密码将替换步骤与列换位相结合,后来被法国密码分析家乔治·帕万破解。
频率分析是破解简单替换密码的攻击方法。用于破解单表替换密码的频率分析技术,由阿拉伯数学家阿尔-金迪大约在公元800年前后提出,并被证明是第二次世界大战之前密码分析领域最重要的单项进展。他的专著《解密密码信息的手稿》(Risalah fi Istikhraj al-Mu'amma)也涉及多表密码。关于成书年代,各家说法不一,有的将其定在850年左右。阿尔-金迪统计了一段3667个字母的阿拉伯文样本中各字母的出现频率。这种方法之所以有效,是因为在任何一种语言中,某些字母的出现频率都高于其他字母。一旦破译者将最常见的密文符号与该语言中最常见的字母对应起来,替换关系便可以重建。
转子机与战时密码分析
恩尼格玛机最初是一种商业产品。德国工程师阿图尔·谢尔比乌斯于1918年为一种基于转子的密码机申请了专利,其公司在20世纪20年代初开始销售商用机型。20世纪20年代后期,德国海军和陆军又采用了军用版本。每按下一个键,电流都会依次经过接线板、一组转子、反射器,再沿相同部件反向返回,点亮一盏灯以显示输出的字母。由于每个转子都像里程表一样步进,替换关系在每个字母处都会改变。陆军早期的三转子机从五个转子中选取三个使用,而反射器使加密具有自反性,因此同一组设置既能加密也能解密。这一特性还意味着任何字母都不可能被加密成它自身,这一规律后来被分析人员所利用。
接线板提供了第二层加密。最多十根插线可在转子前后交换十对字母,由此产生约 种接线板配置。再乘以转子的选择与排列、初始位置以及环设置,理论上的密钥空间远超任何人工攻击所能搜索的范围。然而,这台机器的安全性与其说取决于这一庞大的数字,不如说取决于操作者如何使用它。
波兰的密码分析
20世纪30年代初,德国的威胁日益加剧,波兰密码局开始着手研究这一问题。1932年,该局招募了一批来自波兹南大学的年轻数学家,其中包括马里安·雷耶夫斯基、亨里克·济加尔斯基和耶尔齐·鲁日茨基。雷耶夫斯基运用置换群论分析截获的电文,重建了转子的内部接线。他的成功依赖于一个程序上的弱点:操作者会将报文密钥加密两次,由此产生的重复暴露了置换结构。1932年12月,密码局还通过法国军事情报机构,从柏林德国密码局内部的一名间谍那里获得了德方文件和每日密钥表。随后,雷耶夫斯基的团队研制出多种机械辅助工具,包括用于编目置换循环的循环分析仪,以及后来的密码炸弹。密码炸弹是一种机电装置,用于搜索每日设置,它预示了英国炸弹机的出现。
波兰的方法依赖于固定的操作程序,而这些程序在20世纪30年代末逐渐失效。1938年,德军改变了操作程序并增加了转子;到1939年,密码局已无法持续稳定地破译当前的电文。战争爆发前夕,波兰人在华沙与英法代表举行会议,向其分享了他们的技术、转子接线的重建成果以及机器的设计。1939年9月波兰被攻占后,波兰密码学家转到法国继续工作,法国和英国的团队则在他们所获得的成果基础上继续推进。
布莱切利园
在布莱切利园,英国密码分析人员接收到了这些知识,而当时德国的操作程序已变得更为复杂。艾伦·图灵和戈登·韦尔奇曼研制出了性能大为改进的炸弹机。这是一种机电设备,用于将候选的转子设置与疑似的明文片段(称为"插入语")进行比对。其他技术,例如班伯里法,进一步缩小了搜索范围。由此获得的情报被称为"超级机密",为盟军源源不断地提供了德国陆军和海军的军事信息。1941年从潜艇U-110上缴获的密码本和机器等战利品,也帮助英国破解了更为复杂的海军版本,该版本使用了额外的转子。
操作失误是导致失败的主要原因
仅凭数学并不能决定最终结果。恩尼格玛机的失败往往源于操作上的失误。操作者会重复使用报文密钥、长期沿用同一设置,并选择可预测的开头、标准化的天气报告和套话,这些都为密码破译者提供了可靠的插入语。德国自身的改动,例如1940年改为只将报文密钥加密一次的决定,在一定程度上正是为了消除先前做法所造成的弱点。因此,恩尼格玛的案例常被引用来说明:一台设计合理的机器,也可能因其操作规程、密钥管理习惯和人为纪律的缺失而被攻破,而这并不仅仅是其底层数学原理所导致的。
对称密钥加密
在对称密钥加密中,同一个秘密密钥既用于加密明文,也用于解密密文。其主要的实际优势是速度。对称原语的计算成本远低于公钥运算,因此实际系统中绝大部分的批量数据都由它来处理。代价在于密钥分发问题:双方在可能被攻击者窥探的信道上通信之前,必须事先共享同一把密钥;而若 个参与方要两两之间实现保密通信,则需要 把互不相同的密钥,每把都必须安全地生成、传递和存储。密码学此后的大量发展,包括其他小节讨论的公钥方法,都是对这一问题的回应。
设计模式
大多数现代对称密码是分组密码,即对固定长度的数据块进行变换,通常通过多次重复一个简单的轮函数来构建。主要有两大结构家族。置换-代换网络交替使用非线性的代换层(S 盒)与置换或线性混合层(P 盒)。这一结构实现了克劳德·香农于 1949 年提出的混淆与扩散原则。解密时以相反的顺序执行相同的步骤,使用逆 S 盒,并以逆序使用轮密钥。AES 即属于这一家族。
Feistel 网络将每个数据块分为两半。每一轮中,对其中一半施加轮函数,结果与另一半进行异或,然后交换两半。由于该结构本身总是可逆的,轮函数无需可逆。加密和解密几乎完全相同,仅子密钥的顺序不同,因此所需的代码或电路大约减半。DES 是 Feistel 密码,其前身 Lucifer(IBM 的设计)也是如此。
DES 与 56 位密钥的局限
数据加密标准(DES)源于 20 世纪 70 年代美国联邦政府征集非密数据保护标准的公告。IBM 基于 Lucifer 改进的设计被选中,美国国家安全局对其进行了审查并修改了 S 盒和密钥长度,最终于 1977 年 1 月以 FIPS PUB 46 的形式发布。DES 以 16 轮处理 64 位数据块。其 64 位密钥输入中包含 8 个奇偶校验位,因此有效密钥只有 56 位。从 64 位减至 56 位的做法存在争议:给出的理由是奇偶校验位,但许多观察者怀疑此举会让拥有大量资源的机构更容易实施暴力破解。穷举 个密钥(约 种候选)在标准通过后几年内就已可由专用硬件完成。1998 年,电子前沿基金会(EFF)制造的一台机器约 22 小时即破解了一个 DES 密钥。三重 DES 作为过渡方案被采用;美国国家标准与技术研究院(NIST)于 2001 年建议淘汰 DES,AES 于 2002 年正式取代了它。
AES 与暴力破解的代价
高级加密标准(AES)源自美国国家标准与技术研究院(NIST)在 1997 至 2000 年间举办的公开竞赛。最终入选的是 Rijndael,由琼·代门(Joan Daemen)和文森特·赖曼(Vincent Rijmen)设计,FIPS 197 于 2001 年 11 月 26 日发布。AES 将分组长度固定为 128 位,密钥可选 128、192 或 256 位,分别对应 10、12 或 14 轮。较短的分组长度是早期密码的弱点:若分组为 64 位,则在约 个分组之后,密文分组之间极可能出现碰撞,这也是较大分组对长期数据流至关重要的原因。
暴力破解的代价随密钥长度呈指数增长。每增加一位密钥,搜索空间便加倍,因此 位密钥在最坏情况下需要约 次尝试。从 56 位增至 128 位,工作量扩大 倍,约为 。AES-128 的密钥空间约含 个密钥。更快的硬件可以缩短搜索时间,却无法跟上这种增长速度,因此决定暴力破解防御能力的主要因素是密钥长度,而非算法保密。目前没有公开已知的针对全轮 AES 的实际破解,不过穷举搜索的代价只是安全性的一个维度。量子算法对对称密钥长度的影响将在后续小节讨论。
分组密码、工作模式与流密码
为什么分组密码需要工作模式
分组密码是一种带密钥的变换,每次只处理一个固定长度的分组。例如,AES 处理的是 128 位分组。实际消息通常比一个分组长,因此发送方必须将消息分块,把最后一块填充到完整分组长度,并决定各分组之间如何关联。这一决定即为工作模式。最早的几种模式(ECB、CBC、OFB 和 CFB)于 1981 年为 DES 制定,见 FIPS 81《DES 工作模式》。这些模式大多只提供保密性,无法检测篡改,因此完整性必须由其他机制提供,这一点将在"认证加密"一节中介绍。
电子密码本模式及其信息泄漏
ECB 是最简单的模式。每个分组都在同一密钥下单独加密,因此相同的明文分组总是产生相同的密文分组。若两个明文分组相同,其密文分组也必然相同。结果是明文中的结构在加密后得以保留。数据库中重复出现的字段,或图像中大片相同颜色的区域,都会以重复的密文形式出现,观察者无需知道密钥即可利用这种重复性。ECB 确实支持并行处理,但其信息泄漏使其不适用于大多数数据。
密码块链接模式与计数器模式
CBC 通过将信息从一个分组传递到下一个分组,消除了 ECB 的确定性。每个明文分组在加密前先与前一个密文分组异或,第一个分组则改为与初始化向量(IV)异或,即 ,其中 。IV 使输出随机化,从而相同的消息不会产生相同的密文。由于每个分组都依赖前一个分组,加密必须按顺序进行。IV 有严格的要求:在 CBC 模式中,加密时 IV 必须是不可预测的(随机或伪随机的)。在 CBC 中重用 IV 会泄漏第一个明文分组的部分信息,以及两条消息所共有的任何公共前缀的信息。
计数器模式走的是另一条路线。它对一系列计数器值进行加密,输出作为密钥流与明文异或,即 ,其中 为随机数(nonce)。由于每个分组都可独立计算,CTR 支持并行处理,并能随机访问消息的任意部分。其安全性依赖于随机数,且每个分组都会使其递增。某项专利文献的说法是:种子(即随机数)作为密码的输入,输出与分组异或,且每个后续分组的种子递增。随机数只需对每个密钥唯一即可,而 CBC 的 IV 还必须不可预测。在两种模式中,可预测的计数器或 IV 都是已知的弱点来源。
流密码与密钥流
流密码每次逐位或逐字节地加密数据,将其与一个实际上无限长的伪随机序列组合。组合运算通常为异或,记为 ,解密时再次应用同一运算,因为 。这与一次一密的原理相同,不同之处在于,密钥流是由短密钥生成的,而非真正随机且与消息等长。在这个意义上,计数器模式能将分组密码转化为流密码,因此 CTR 或 GCM 模式下的 AES 也具有流密码的特性。AES 本身是分组密码,但在 CTR 或 GCM 模式下,它的表现如同流密码。
随机数重用
流密码的全部安全性都依赖于密钥流,因此同一密钥流绝不能使用两次。若两条消息使用相同的密钥和随机数加密,攻击者将两个密文异或即可消去密钥流,得到两个明文的异或结果。若攻击者截获 E(A) 和 E(B),便可计算 E(A) 异或 E(B),其值等于 。由此,自然语言的冗余性往往足以恢复两条消息;而一段已知明文可直接揭示密钥流,并暴露用同一密钥流加密的所有其他消息。因此,重用被视为严重故障。现实系统中已有先例:2017 年针对 Wi-Fi WPA2 的 KRACK 攻击,导致设备重新安装正在使用中的密钥,从而重置随机数并造成密钥流重用。由于基于 CTR 的设计和流密码设计都存在这一弱点,实现时必须对给定密钥下的每条消息生成新的随机数,而密码的安全性分析也以此纪律为前提。
公钥加密
公钥加密又称非对称加密,它用一对数学上相关联的密钥取代对称系统中唯一的共享秘密。公钥可以公开发布,任何人都能用它加密;只有持有对应私钥的人才能解密。同一对密钥也可以反向支持数字签名:私钥生成签名,任何持有公钥的人都能验证。这种机制无需事先向通信对象传递秘密,而这正是对称设计难以解决的密钥分发问题。
陷门单向函数
所有广泛部署的公钥方案都依赖于陷门单向函数:这种计算正向执行很容易,但除非掌握某种秘密捷径,否则几乎无法求逆。实践中主要有三类。RSA依赖于整数分解:两个大素数相乘很容易,但要从乘积中恢复这两个素数,则需要分解大整数,而这在计算上很困难。Diffie–Hellman类方案依赖于群上的离散对数问题,其椭圆曲线变体则将该问题应用于曲线上的点。其他公钥密码体制也基于一些困难问题,例如阿贝尔群或其他有限群上的离散对数问题,以及椭圆曲线上的相关问题。这些困难性假设都未被证明。目前尚未有任何“单向函数”被证明确实是单向的,人们只是相信它们是。因此,安全性是计算意义上的安全,而非无条件安全。
RSA
RSA密码系统于1977年由Ron Rivest、Adi Shamir和Leonard Adleman公开提出,该缩写即取自三人姓氏的首字母。密钥生成首先选取两个不同的大素数p和q,二者之积n作为模数。公钥由n和加密指数e组成,而必须保密的私指数d则由两个素因子推导得出。指数通常取较小的固定值,例如常选取与φ(n)互素的公钥指数e,最常用的取值是65537。原始RSA是确定性的,因此本身并不安全,实际系统通常会对消息进行随机填充,例如OAEP填充。
随着计算能力的提升,密钥长度不得不屡次增加。1999年,互联网上95%的电子商务由512位密钥保护;同年8月,一个512位的数被292台机器分解。如今,2048位RSA密钥已成为大多数网站的标准,而对于需要长期保护的场景,则常建议使用3072位密钥。模数越大,私钥运算和密钥生成就越明显地变慢。
椭圆曲线密码学
椭圆曲线密码学(ECC)能用小得多的密钥达到相当的安全强度。通常引用的粗略对应关系是:256位ECC密钥大致相当于3072位RSA密钥的安全强度;384位ECC密钥相当于7680位RSA密钥;521位ECC密钥相当于15360位RSA密钥。密钥尺寸更小意味着存储空间和带宽、传输时间的需求更低,这对智能卡等计算能力和内存有限的受限硬件尤为重要。
其代价在于运算方式。RSA和Diffie–Hellman主要在整数域上运算,主要涉及模乘法。相比之下,ECC定义在整数域和二进制多项式域上,除模乘法外还涉及模除法。实现者还必须在多种曲线和域表示方式之间做出选择,因此ECC的高效性比RSA结构更简单的方案更难被正确实现。
混合加密
公钥运算对于大型数据来说速度太慢。非对称运算对于大量数据而言相当耗时且代价高昂。因此,如今所有实用的公钥密码实现都采用混合系统。典型设计中,发送方先生成一个随机的会话密钥,用高速对称密码(如AES-GCM或ChaCha20-Poly1305)加密数据,然后仅用接收方的公钥加密这个较短的会话密钥。接收方用私钥恢复会话密钥,再解密批量数据。从形式上看,公钥部分是密钥封装机制,对称部分是数据封装方案。对于很长的消息,加密和解密的主要工作由效率更高的对称密钥方案完成,而低效的公钥方案只用于加密和解密一个短密钥。
这种方法还限制了暴露范围:由于每次会话密钥都是新生成的,即使某条加密消息被攻破,攻击者通常也无法获得用其他密钥保护的所有其他消息或文件。标准化的形式也已存在,例如RFC 9180中规定的混合公钥加密方案。保护私钥仍然是关键的依赖条件;前向保密和密钥管理问题将在下一节讨论。
密钥交换与密钥管理
Diffie–Hellman 与公开环境中的秘密协商
在 20 世纪 70 年代之前,通信双方必须先解决密钥问题,密文才能传送。安全的加密通信通常要求双方先通过安全的物理途径交换密钥,例如由可信信使携带的纸质密钥表。
Whitfield Diffie 和 Martin Hellman 在 1976 年改变了这一局面。Diffie–Hellman 密钥交换方法使事先没有任何关系的双方能够在不安全的信道上共同建立一个共享秘密,之后便可用该秘密为对称密码设定密钥,用于后续通信。就这一协议而言,它属于公钥时代的工作,因为它使密钥协商无需秘密信道即可实现;但它本身不加密任何内容,也不能识别通信方身份。
其算术原理陈述起来很简单。双方约定一个大素数 以及模 乘法群的一个生成元 (参见 模算术 和 素数)。Alice 选取私有指数 ,并公开 ;Bob 选取 ,并公开 。随后,双方各自将对方的公开值提升到自己的私有指数次幂,因此两者都得到 。窃听者能看到 、、 和 ,但要求出 或 ,就需要解离散对数问题,而对于选择得当的参数,这被认为是不可行的。
这段历史比 1976 年这一日期所暗示的要复杂得多。这一思想早在几年前就由英国信号情报机构 GCHQ 的 Malcolm J. Williamson 独立提出,但当时被列为机密。Ralph Merkle 关于公钥协议的独立工作也被认为具有贡献,后来 Hellman 提议将其称为 Diffie–Hellman–Merkle。1978 年,该方案被列为 Ralph Merkle 最初提出的公钥协议之一。
未经身份认证的 Diffie–Hellman 容易受到中间人攻击:主动攻击者若截获双方的两个公开值,即可分别与双方协商出不同的密钥。因此,交换过程必须借助某种独立的信任机制进行身份认证,这也是数字证书在实践中至关重要的主要原因(见下文)。
前向保密与临时密钥
如果会话密钥是由服务器的长期私钥推导出来的,那么任何记录了通信流量的人,在日后窃取该私钥后,都能解密这些流量。前向保密(forward secrecy)意味着,即使攻击者之后获得了某一方的长期私钥,过去加密的会话也无法被解密。通常的解决办法是采用临时密钥交换:每次会话都生成全新的密钥对,并在会话结束后丢弃。TLS 1.3 使用临时 Diffie-Hellman(Ephemeral Diffie-Hellman)协议,为当前会话生成一次性密钥,会话结束时该密钥即被丢弃。
前向保密并不能消除对长期密钥的需求。服务器仍需用其证书密钥对握手过程进行签名,以便客户端确认对方身份,但这一签名的作用是认证密钥交换过程,而不是保护会话密钥。在 TLS 1.3 中,这种安排是强制性的,而 TLS 1.2 中则是可选的。在 TLS 1.3 中,只允许使用 DHE、ECDHE 等临时密钥交换方式。
密钥封装机制(KEM)以另一种形式体现了类似的思想。它不是由双方各自贡献一个值,而是由发送方使用接收方的公钥封装一个随机秘密,生成一个密文和一个共享密钥;接收方则解封装该密文,恢复出同一个密钥。KEM 可以充当临时密钥交换,并且是后量子密钥协商的标准化形式(将在后面的章节中介绍)。
公钥基础设施与信任
公钥密码学只能部分回答"这把密钥属于谁"的问题。公钥基础设施(PKI)正是为此而设:它将身份与密钥绑定起来。PKI 综合运用密码学、可信角色、系统和运营规则,把公钥与身份绑定在一起。其核心对象是数字证书,它在证书颁发机构(CA)核实申请人之后签发。证书颁发机构验证实体的身份并颁发数字证书,从而把公钥与该身份绑定。
信任通常以链式结构组织。根 CA 是信任锚点,其自签名证书会被操作系统、浏览器、企业或应用程序安装或以其他方式信任。根证书通常离线保存,日常证书则由中间 CA 代其签发。吊销则通过证书吊销列表(CRL)或在线状态协议(OCSP)处理,用于检查证书是否已被吊销。
这一模型存在结构性弱点:每个用户都必须依赖 CA 的运作程序。就 PKI 而言,证书颁发机构签发包含公钥的证书,而用户别无选择,只能信任运营 CA 的机构的做法。一旦 CA 被攻破,它就可能签发足以乱真的伪造证书,这正是根证书库、证书透明度日志以及分布式 CA 设计存在的原因。
还存在其他信任模型。PGP 类系统所采用的信任网(web of trust)将信任决策交给各个用户,而不是委托给层级结构。企业部署有时会采用桥接 CA,即所有其他 CA 只需信任桥接 CA;或采用网状结构,让各个独立的 CA 域相互交叉认证。去中心化的变体则用非层级化的记录取代层级结构,但这些模型都无法消除一个问题:仍需决定该相信谁的陈述。
密钥生成、存储、轮换与硬件安全模块
在实践中,即使算法本身可靠,许多系统也是在密钥生命周期管理环节出现问题。生成密钥需要高质量的随机性,因为可预测的生成器会产生可预测的密钥(参见随机化)。存储是下一个薄弱环节:如果密钥以普通文件的形式保存在通用计算机上,那么任何攻陷该机器的软件都能将其获取。硬件安全模块(HSM)是一种防篡改设备,它在内部生成密钥并执行密码运算,因此私钥永远不会以可用形式离开该设备。PKI 产品通常将 HSM 纳入其组件,证书颁发机构也依靠 HSM 保护其签名密钥。
轮换可以限制那些在未被察觉的情况下遭到泄露的密钥所造成的损害。按计划更换密钥,并在任何疑似泄露后立即更换,可以限制攻击者能够读取或伪造的数据量。组织通常采用分层的密钥体系:少量长期有效的主密钥保护寿命较短的数据密钥或会话密钥,因此在某一层级进行轮换时,无需重新加密全部数据。吊销、备份、托管以及旧密钥的退役则构成了完整的生命周期,而每个环节本身都会带来额外的运营风险。
可证明安全与形式化定义
语义安全与不可区分性游戏
可证明安全用精确的陈述取代了关于"能抵抗已知攻击"的非形式化说法,明确攻击者必须无法得知什么。标准的形式化方式是不可区分性游戏。若没有任何攻击者赢得该游戏的概率显著高于随机猜测的攻击者,则该密码系统被认为是安全的。攻击者的优势是其成功概率超过二分之一的部分,安全性要求这一优势是安全参数的可忽略函数。
最弱的常见版本 IND-CPA 允许攻击者选择明文并观察其加密结果。随后攻击者提交两个由其选择的消息,由一个隐藏的随机比特决定加密哪一个。由于加密是概率性的, 的某一密文只是众多合法密文之一,因此攻击者即使自行加密两个候选消息再比较,也无法获得有用的优势。这正是 IND-CPA 要求随机化加密的原因:确定性方案会让攻击者识别出重复的明文。
更强的安全概念赋予攻击者解密能力。IND-CCA 模拟的攻击者可以自适应地请求对所选密文的解密,但挑战密文除外。IND-CCA2 将其扩展到挑战密文前后的解密查询。这些概念构成一个层级:在较强定义下的安全性蕴含较弱定义下的安全性,因此 IND-CCA2 是三者中最强的。这一系列概念还与其他性质相关联:不可区分性可以蕴含完整性,而完整性与不可延展性相关。
归约及其局限
实践中使用的大多数方案都无法被无条件地证明是安全的。相反,归约表明:对该方案的任何高效攻击者,都可以被转换为一个能解决某个被假定为困难问题的算法,例如因数分解或离散对数问题。此类结果的强度取决于所作的假设、归约的质量以及具体参数。归约可能是松散的:有一项分析指出,就具体界而言,某一变体对底层原语的安全归约比早先的归约更松散。如果证明没有正式要求底层方案必须是安全的,那么该归约就可能是平凡的。
许多高效构造只在随机预言机模型中得到证明,这是一种理想化模型,其中哈希函数被替换为真正的随机函数。该模型之所以有吸引力,是因为它使安全性证明更简单。批评者指出,这种理想化通常并不合理。把预言机替换为具体的哈希函数后,即使证明在理想化设定下有效,方案也可能被攻破;而且有些归约依赖于一种可编程性,而目前尚不知道有哪种哈希函数具备此类证明所需形式的可编程性。因此,这一模型中的证明通常应被视为启发式证据,而非完整的安全保证。后量子证明还面临一项额外要求:后量子安全性证明必须在量子随机预言机模型中进行。
信息论安全
克劳德·香农在1949年关于保密系统的工作提出了另一种标准。香农证明了Vernam密码系统的完美保密性,该系统也俗称一次性密码本。按香农的定义,密文不会向明文提供任何额外信息。形式化地说,明文的先验分布等于在给定密文条件下的条件分布,可写为 ,其中 表示熵, 表示密文。
完美保密是要付出高昂代价的。完美保密要求密钥的数量至少与可能消息的数量一样多,因此当密钥与消息等长时,所有密钥都必须是可能的。一次性密码本因此需要与全部通信量等长的密钥,且密钥绝不能重复使用。香农还证明,任何其他完美安全的密码,其密钥材料都必须具有与一次性密码本密钥相同的性质。这种不实用性正是大多数已部署系统转而依赖计算安全性的原因,即假定攻击者的计算能力被限制在多项式时间之内。
一些评论者对香农结果的适用范围提出过质疑。一种批评认为,任何完美保密性的证明都需要两种互不相容的随机性定义。这一争论涉及定义与建模问题,但它并不改变实践中的结论:完美保密要求密钥与消息一样大。
认证加密与完整性
仅有保密性是不够的
加密可以隐藏消息的内容,但它本身无法显示消息是否被篡改。许多流密码通过异或(XOR)将密钥流与明文组合,因此翻转密文中的某一位,解密后也会翻转对应的明文位。如果攻击者能够猜出消息的结构,就可以在不知道密钥的情况下做出可预测的篡改。某些分组密码模式也存在类似的弱点。如果接收方在解密时不检查完整性,就可能基于伪造或损坏的数据采取行动,而解密步骤本身也可能成为攻击者获取明文信息的渠道。
消息认证码
标准的补救方法是使用消息认证码(MAC):这是一个由消息和秘密密钥计算出的短标签,接收方会重新计算该标签并与收到的标签进行比较。没有密钥,攻击者就无法为被篡改的消息生成有效标签。将 MAC 与加密结合时,顺序至关重要。三种可能的组合方式是:先加密后认证(encrypt-then-MAC)、先认证后加密(MAC-then-encrypt)和加密并认证(encrypt-and-MAC)。其中先加密后认证,即标签覆盖密文,通常被认为最为稳健;另外两种方式在协议中都曾被证实存在缺陷。加密密钥与 MAC 密钥应相互独立,标签比较应以恒定时间进行,以免响应时间泄露有多少字节匹配。
AEAD 结构
带关联数据的认证加密(AEAD)将加密与完整性整合为单一原语。它的输入包括密钥、nonce、明文以及可选的关联数据(例如数据包头部,这些数据不加密,但会被标签覆盖),输出为密文和标签。解密时先校验标签,若校验失败则不输出任何明文。由于单独组合的方案容易被误用,密码学家现在普遍建议改用 AEAD 方案以及 CCA 安全的公钥加密。
AES-GCM 将计数器模式下的 AES 与伽罗瓦域上的多项式哈希相结合,用于认证密文和关联数据。它是部署最广泛的 AEAD 方案,在许多处理器上可借助硬件加速。其安全性依赖于同一密钥下绝不重复使用 nonce:nonce 重复会暴露认证密钥,并使伪造成为可能。
ChaCha20-Poly1305 结合了 ChaCha20 流密码与 Poly1305 MAC,二者均由 Daniel J. Bernstein 设计。它在 RFC 8439 中有规范定义,是 TLS 1.3 中的可选密码套件之一。在没有 AES 硬件加速的设备上,它的软件实现运行速度快,也更容易以恒定时间实现。它同样不能抵抗 nonce 误用:重复使用 nonce 会破坏其安全性。XChaCha20-Poly1305 变体使用 192 位 nonce,因此即使在海量消息场景下也可以随机生成 nonce,而不必担心现实中的碰撞风险。
填充预言机攻击
填充预言机攻击说明了加密与完整性组合不当时会产生什么后果。在 CBC 模式中,明文在加密前必须填充到完整的分组。如果解密方会泄露填充是否有效,无论是通过显式错误、可区分的错误信息,还是时间差异,攻击者就可以修改密文分组并观察其响应。每次查询都会泄露少量信息,大量查询便可在不知道密钥的情况下逐字节恢复明文。Vaudenay 于 2002 年描述了这类攻击。之后的攻击,包括利用 TLS 中时间差异的 Lucky Thirteen(2013 年),以及影响 SSL 3.0 的 POODLE(2014 年),证明了该弱点在已部署的协议中确实可被利用。标准的防御措施包括:在去除填充之前先验证 MAC,使用无需填充的 AEAD 模式,以及返回统一的错误响应。
密码分析与攻击模型
攻击模型
密码分析通常根据攻击者能够观察或操作的范围来分类。最弱的情形是攻击者只能获得若干密文。已知明文攻击使攻击者掌握明文与密文的配对;选择明文攻击则允许攻击者自行选取明文并获得其加密结果。选择明文攻击既可以是批量式的,即所有输入事先固定;也可以是自适应的,即每次查询都依赖于之前得到的回答。选择密文模型则方向相反:攻击者可以获得自选密文的解密结果,形式可以是自适应的,也可以是非自适应的。
这些模型按强度排序。能够抵抗选择明文攻击的方案,也必然能够抵御已知明文攻击和唯密文攻击。现代方案以语义安全为设计目标,因此只要实现正确,通常在设计上就能抵御选择明文攻击。这一模型也与实践相符。第二次世界大战中,盟军对恩尼格玛(Enigma)通信使用了一种称为"园艺行动"(Gardening)的技术,其性质类似于选择明文攻击。公钥方案则让所有敌手都具备这种能力,因为他们可以直接获取公钥。选择密文攻击的危害更大:许多原本安全的方案在选择密文攻击下都可能被攻破。因此,填充方式和加密方案都要以自适应选择密文安全性作为衡量标准(参见可证明安全一节)。
穷举搜索、时间-内存权衡与弱密钥
最基本的攻击是穷举密钥搜索。对于 n 位密钥,其代价约为 次试探解密,因此每增加一位密钥,工作量就翻一倍。DES 的 56 位密钥到 20 世纪 90 年代末已经可以被专用硬件攻破,1998 年,电子前沿基金会(EFF)的机器约两天就恢复了一个密钥。
时间-内存权衡则通过预先投入计算来减少在线计算量。Hellman 方法(1980 年)预先计算密钥链并存储其端点;对于大小为 N 的密钥空间,时间 T 与内存 M 大致满足 。彩虹表将同样的思路应用于口令哈希,而加盐是标准的防御手段,因为盐值迫使攻击者针对每个盐值分别进行预计算。
弱密钥或密钥重用对安全性的削弱更为直接。某些算法存在已知的弱密钥或等价密钥,它们会缩小有效搜索空间。跨消息重用密钥则更加危险:如果两条消息使用了相同的密钥流进行加密,将两个密文异或即可消去密钥流,从而泄露两段明文的异或结果。这种失效与一次性密码本要求密钥永不重用的原则相关。
差分与线性密码分析
差分密码分析由 Biham 和 Shamir 于 1990 年提出,是一种针对基于替换和置换的密码进行分析的选择明文攻击。它追踪两个输入之间的差分如何通过 S 盒传播,依据的是 S 盒的"成对异或分布表"中的不平衡性,从而由输入异或预测输出异或。到 1993 年,两位作者已经发表了对 DES 全部 16 轮的完整分析。DES 的设计者其实已经预见到这一技术:正如 Don Coppersmith 所证实的,DES 的 S 盒是经过刻意设计以抵御差分密码分析的,其设计准则在该攻击被公开重新发现之后,于 1994 年公布。Biham 和 Shamir 还表明,即使对 S 盒做很小的改动,也可能显著削弱 DES。
这一攻击促使人们提出了一系列设计准则,包括严格雪崩准则(即翻转单个输入位时,每个输出位以二分之一的概率发生变化)以及非线性度。例如,Nyberg 提出的完美非线性 S 盒对该攻击具有免疫力,因为攻击依赖于非平衡的方向导数。
线性密码分析由 Matsui 于 1993 年的 Eurocrypt 会议上提出。这是一种已知明文攻击,攻击者研究明文、密文和密钥的奇偶位之间的概率线性关系。其强度以此类关系的偏差 来衡量。Matsui 对完整 16 轮 DES 的攻击需要 243 个已知明文-密文对。在某些情况下,该方法也可用于唯密文场景:若明文是以 ASCII 编码表示的自然英语句子,那么 8 轮 DES 只需 2^29 个密文即可被破解。线性攻击还对 S 盒的设计形成约束,因为 S 盒的规模限制正是由此推导出来的。
弱化算法的淘汰
这类攻击多次迫使算法退出使用。DES 于 2005 年被撤销联邦标准地位,并由 AES 取代。NIST 后来将三重 DES 限制为仅供遗留系统使用。RC4 在其密钥流出现一系列偏差之后,于 2015 年被禁止用于 TLS。SHA-1 于 2017 年被证明可以实际产生碰撞,因此被逐步退出证书签名等用途。
在实践中,淘汰算法十分困难。协议通常会协商所用的算法,因此,为兼容性而保留旧选项的服务器会使客户端面临降级攻击的风险;2015 年的 FREAK 和 Logjam 攻击正是利用了仍在使用的出口级密码。生日界限类弱点(例如 2016 年针对 64 位分组密码的 SWEET32 攻击)表明,即使密钥足够强,分组长度本身也可能成为限制。因此,替换一个密码原语需要具备密码敏捷性,即已部署的软件无需重新设计即可切换算法。
实现安全与侧信道
目前使用的大多数密码方案在数学上并未被攻破。攻击者更常利用的是方案在物理设备、软件或运行环境中的具体实现方式。若攻击利用的是计算过程中作为副产品泄漏的信息,通常称为侧信道攻击;若攻击者有意干扰计算过程,则称为故障攻击。两者都表明:只要执行过程可以被观测,即使算法本身是安全的,系统仍可能失效。
计时与缓存泄漏
最早被广泛研究的侧信道是计时。1996年,Kocher首次针对基于模幂运算的密码系统(如RSA)设计了计时攻击。其关键发现是:一个实现的运行时间可能取决于它所处理的秘密数据。造成这种时间差异的常见原因包括分支与条件语句、内存缓存命中与否,以及执行时间不固定的处理器指令。Kocher表明,若窃听者能够在多组选定输入下测量目标的运行时间,就可以恢复秘密指数。同一类问题后来也出现在软件库中:Brumley和Boneh将类似的攻击应用于OpenSSL,此后该攻击又被扩展到OpenSSL的多个组件(包括RSA、CRT、滑动窗口幂运算算法以及Montgomery乘法算法)。基于缓存的攻击进一步扩展了这一思路:与受害者共享处理器的攻击者可以推断出哪些内存行被访问过。针对基于查表实现的AES以及共享硬件的缓存攻击,在后续研究中屡次成为重要课题。
功耗分析与电磁辐射
物理测量能够提供更丰富的泄漏信息。1998年,Kocher及其同事报告称,通过监测智能卡的功耗,即可提取正在执行的密码算法的秘密密钥。简单功耗分析直接从单条功耗曲线中读取秘密,例如识别某个时钟周期内执行了哪些指令。差分功耗分析则是统计性的:攻击者分析在不同输入下执行时记录的多条功耗曲线,寻找与特定密钥比特相关的执行子集之间的统计差异。这类攻击可以在不在卡上留下任何痕迹的情况下进行,因而对支付卡和身份卡尤其构成威胁。电磁辐射提供了一条类似的泄漏途径,且不需要与电路发生物理接触;Quisquater和Samyde针对智能卡的早期电磁分析(EMA)研究便是一例。对策包括用随机数对中间值进行掩码处理,以及像Kocher本人提出的那样,对指数或消息进行盲化。
故障注入
故障攻击通过电压毛刺、时钟操纵、激光脉冲或辐射等手段,有意引发计算错误。最著名的例子是Bellcore攻击,由Boneh、DeMillo和Lipton于1997年公布,其目标是为提高速度而采用中国剩余定理实现的RSA。若计算的一半被破坏,攻击者就会得到错误的签名,并能以极高概率通过 gcd(N, S − Ŝ) 恢复出一个素因子。这种攻击只需一个错误签名即可成功,因此一次时机恰当的故障就可能暴露原本正确的算法的秘密密钥。具有讽刺意味的是,某些防护措施本身也可能制造新的弱点:针对OpenSSL的研究发现,其中一种故障之所以能够出现,正是由于这类防护的存在。对策包括在输出前验证结果、避免使用CRT捷径,以及对针对随机、清零和跳过类故障的防御进行形式化分析。
恒定时间编程与硬件
防御计时泄漏的主要手段是恒定时间编程:编写代码时使其控制流和内存访问模式都不依赖于秘密值。具体做法包括:用按位选择替代依赖秘密的分支,避免以秘密字节为索引的查表操作,以及对认证标签使用恒定时间比较。部分部署方案为此接受性能损失。这是一种简单的修复方法,但确实会降低性能。硬件加速是一种部分补救手段。主流处理器中用于AES和无进位乘法的专用指令以固定时间执行,避免了许多基于查表的泄漏,但它们并不能从根本上消除侧信道,而且硬件支持本身也可能通过功耗或故障效应发生泄漏。
随机性、软件错误与运维失误
随机数是密钥生成、一次性数(nonce)和盲化的基础,因此随机性不足是破坏性最强的故障之一。2006至2008年间的Debian OpenSSL事件就是典型:一次代码修改使随机池几乎没有熵,导致受影响系统上生成的SSH和TLS密钥只能取自约32000个可能的值。其他故障则源于嵌入式设备和虚拟机在启动时熵源匮乏。软件错误同样是常见的失陷原因:2014年OpenSSL中的Heartbleed漏洞允许远程读取内存,从而可能暴露私钥;冷启动研究则表明,断电后密钥材料仍可能残留在DRAM中。配置错误,例如在多台设备间复用密钥、遗留已启用的调试接口,或将密钥以明文形式存放在加密数据旁边,其危害往往超过任何理论上的弱点。在实践中,经过验证的算法与安全部署之间的差距,通常需要依靠审慎的工程实践、充分的测试以及严格的密钥管理来弥合,这也正是实现的公开审查受到重视的原因。
标准化与公开竞赛
保护当今大多数数据的密码算法,是通过公开的标准化过程选定的,而不是依靠秘密设计。美国国家标准与技术研究院(NIST)是这一过程中最具影响力的机构。它在数据加密标准(DES)和高级加密标准(AES)上的选择,既体现了公开评估的好处,也暴露出标准的弱点被较晚发现时所带来的问题。
DES 与 56 位密钥的局限
DES 于 1977 年被采纳为联邦标准,美国政府鼓励将其用于所有非机密数据。从一开始,它的密钥长度就受到批评:56 位密钥的密钥空间约为 个可能的密钥,即使在 20 世纪 70 年代,这也被认为太小。这一弱点是在公开场合被证明的。1997 年和 1998 年,RSA 数据安全公司举办了一系列设有现金奖励的 DES 破解挑战赛。1998 年,电子前哨基金会(EFF)制造了专用机器 Deep Crack,造价约 25 万美元,约 56 小时便破解出一个 DES 密钥。1999 年 1 月,该基金会与志愿者分布式计算网络 distributed.net 合作,以相同思路约 22 小时就找到了一个密钥。各方资料对具体数字的说法略有出入,但结论一致:只要攻击者有一定资源并且下定决心,56 位密钥就可以被穷举。三重 DES 将 DES 连续应用三次,作为过渡性措施被保留下来,但 DES 本身后来被宣布过时,并于 2002 年被 AES 取代。一些遗留系统(例如某些 Kerberos 部署)仍继续依赖 DES,因为较旧的产品不支持更新的密码算法。
AES 竞赛(1997—2001)
NIST 于 1997 年启动 AES 遴选进程,向社会公开征集候选分组密码。第一轮从 1998 年 8 月持续到 1999 年 4 月,共收到 15 份提交方案,NIST 将其缩减为五个入围算法:MARS、RC6、Rijndael、Serpent 和 Twofish。随后进行了第二轮分析,公开意见征集截止于 2000 年 5 月 15 日。2000 年 4 月,NIST 还举办了一次公开会议,提交者可以在社区面前回应密码分析结果。2000 年 10 月 2 日,NIST 宣布选定 Rijndael,它是比利时密码学家 Joan Daemen 和 Vincent Rijmen 设计的算法。NIST 表示,五个入围算法都具有很高的安全性,但 Rijndael 在安全性、性能、效率和灵活性方面的综合表现最佳,因此被选中。该算法于 2001 年 11 月 26 日以联邦信息处理标准 197(FIPS 197)发布,并于 2002 年 5 月作为联邦标准正式生效。
AES 的规定
FIPS 197 定义了 Rijndael 家族的三个成员:AES-128、AES-192 和 AES-256。它们都加密 128 位的分组,名称中的数字表示密钥长度(以位为单位)。每增加一个密钥位,穷举搜索的工作量就翻一倍,因此从 56 位密钥提升到 128 位密钥,会使暴力破解的工作量乘以 。即使是 128 位的版本也有约 个密钥,而且目前尚未发现针对完整密码算法的可行攻击。与采用 Feistel 结构的 DES 不同,AES 是以替代—置换网络(SPN)的方式构建的。AES 还被纳入国际标准 ISO/IEC 18033-3,其影响范围因此超出了美国。
其他标准机构与协议标准
NIST 的标准规定了算法,但加密在实际中如何使用,很大程度上由其他机构决定。互联网工程任务组(IETF)通过公开的文件流程发布协议规范,例如传输层安全(TLS)协议的规范;ISO/IEC 联合委员会在国际层面标准化算法与工作模式;多个国家的主管机构也制定各自的推荐标准。这些机构的意见并不总是一致,在一个司法辖区可以接受的算法,在另一个辖区可能受到限制,甚至没有必要使用。
可替换性、弃用与公开审查
标准必须能够变化。密码敏捷性指的是协议能够协商或替换算法的设计,使得一旦某个基础组件被攻破,就能将其淘汰,而无需重新设计整个系统。弃用周期规定了旧算法何时被撤回,这些周期往往很长,因为已部署的设备和软件会继续使用多年。盲目信任一项未经审查的标准所带来的风险,一个典型例子是 Dual_EC_DRBG。它是 NIST SP 800-90A 中收录的一种随机位生成器。2007 年,密码学家指出,其设计可能允许掌握秘密常量的一方预测其输出。2013 年泄露的文件将该算法与美国国家安全局(NSA)联系起来后,NIST 建议不要使用它,并于 2014 年将其从标准中移除。NIST 也因此事件重新审视了其标准制定流程。这一事件说明,公开的同行评审、公布的分析以及替换算法的能力,与数学本身同样重要。
后量子加密
量子威胁对现有方案的冲击
RSA 和椭圆曲线密码学等广泛使用的公钥体系,依赖于经典计算机难以解决的问题:大整数分解与离散对数计算。彼得·肖尔(Peter Shor)于 1994 年发表的 Shor 算法表明,足够大且具备容错能力的量子计算机可以在多项式时间内解决这两个问题。这意味着这些方案将被彻底攻破,而不只是被削弱。对称密码和哈希函数受到的影响则小得多。Grover 算法对无结构搜索只能带来平方级加速,因此对 个密钥进行穷举搜索,需要约 次量子运算。因此,将密钥长度加倍(例如从 AES-128 升级到 AES-256)即可恢复较为充足的安全余量。
NIST 标准
NIST 于 2024 年 8 月 13 日发布了首批三项后量子标准。FIPS 203 规定了 ML-KEM,这是一种由 CRYSTALS-Kyber 衍生而来的密钥封装算法,用于建立共享密钥并保护对称密钥。FIPS 204 规定了 ML-DSA(源自 CRYSTALS-Dilithium),用于通用数字签名。FIPS 205 规定了 SLH-DSA(源自 SPHINCS+),这是一种无状态的基于哈希的签名方案,其安全性仅依赖于哈希函数的性质。ML-KEM 有三套参数,即 ML-KEM-512、-768 和 -1024,NIST 大致将它们分别与 AES-128、AES-192 和 AES-256 的安全级别对应。
在所查阅的资料中,第四项签名标准 FN-DSA(FIPS 206)仍未定稿,它基于 FALCON,预计最终发布时间约在 2026 年底至 2027 年初。2025 年 3 月,NIST 还选定 HQC 作为备用密钥封装机制。这一选择是有意的冗余设计:HQC 基于纠错码的译码问题而非格问题,因此即使格问题中发现弱点,也不会自动危及所有已部署的密钥交换。HQC 并非 ML-KEM 的替代品,其正式标准预计要等到草案和公开征求意见阶段结束之后才会出台。
迁移时间表与混合部署
NIST IR 8547 于 2024 年 11 月以初始公开草案的形式发布,建议在 2030 年后弃用安全强度为 112 位、易受量子攻击的公钥算法,并在 2035 年后禁止使用所有易受量子攻击的公钥算法。2035 年这一时间节点与美国联邦政策中将政府系统迁移到抗量子密码学的总体目标相吻合,而美国国家安全局的 CNSA 2.0 套件则为国家安全系统设定了更早的期限。由于在所查阅的资料中 IR 8547 仍为草案,其日期最好被理解为规划基准,而非既定法律。
近期的大多数部署都是混合式的。在 TLS 中,ML-KEM 通常与 X25519 等经典椭圆曲线密钥交换相结合,这样只要其中任一组件仍然安全,会话就仍受保护。IETF 已为 TLS 1.3 标准化了一种此类组合,即 X25519MLKEM768。其代价是握手数据更大、实现更复杂,因此迁移往往分阶段进行,而非一步到位。
基于格、编码和哈希的权衡
后量子方案基于不同的困难问题,这些差异体现在密钥大小和运算速度上。基于格的方案(如 ML-KEM 和 ML-DSA)相对较快,是大多数应用的默认选择,但其密钥和签名远大于经典椭圆曲线的对应值。以 ML-KEM-768 为例,公钥约为 1,184 字节,密文约为 1,088 字节。ML-DSA-65 的签名约为 3,309 字节。HQC 等基于编码的方案比 ML-KEM 更耗费资源,因此 NIST 将其视为应急备选。基于哈希的 SLH-DSA 安全假设最为保守,公钥非常小,例如 SLH-DSA-SHA2-128s 的公钥约为 32 字节,但其签名大得多,同一参数集下约为 7,856 字节,且签名速度较慢。
高级加密方案
同态加密
同态加密方案允许一方在不解密的情况下对密文进行运算,使得对运算结果解密后,得到的结果与对明文执行相应运算的结果相同。早期的方案只具备部分同态性。未填充的 RSA 和 ElGamal 具有乘法同态性,即两个密文的乘积解密后等于明文的乘积;Paillier 于 1999 年提出的方案则具有加法同态性。有限同态加密方案同时支持加法和乘法,但只能进行有限次运算,因为每个密文都携带噪声,噪声会随每次运算而增长,直至解密失败。
Craig Gentry 于 2009 年在斯坦福大学完成的博士论文提出了第一个全同态加密(FHE)方案,该方案基于理想格构造。其关键技术是自举(bootstrapping),即在同态条件下对方案自身的解密电路进行求值,从而生成噪声更低的新密文,理论上可以支持无限次运算。最初的构造在实践中速度过慢,难以使用。之后出现的方案,如 BGV、BFV、CKKS 和 TFHE,基于环上的格问题构造,在多项式环上运算,速度大幅提升,但对加密数据进行计算的开销仍远高于对明文计算。CKKS 支持对实数进行近似运算,因此与机器学习相关。一个典型应用是将对敏感数据(如医疗或金融记录)的计算外包给云服务商,而云服务商始终无法以明文形式看到输入和输出。
基于属性的加密与函数加密
普通的公钥加密要求发送方事先知道哪个特定接收方将进行解密。基于属性的加密(ABE)则将解密能力与用户的属性相关联。Amit Sahai 和 Brent Waters 于 2005 年以"模糊基于身份的加密"的形式提出了这一思想。在密钥策略 ABE 中,密文带有属性标签,用户密钥中嵌入访问策略。在密文策略 ABE 中,该方案由 Bethencourt、Sahai 和 Waters 于 2007 年提出,访问策略附在密文上,用户密钥则携带属性。只有当用户的属性满足策略时才能解密,并且用户不应能够通过合并各自拥有的部分属性来获得单独无权获得的访问权限。这种方案适用于企业数据共享和云存储中的细粒度访问控制。
函数加密对这一思想做了推广。一个秘密密钥对应一个函数 ,对消息 的密文进行解密时,只会揭示 ,而不会泄露 的其他任何信息。Boneh、Sahai 和 Waters 于 2011 年对这一概念进行了形式化。通用构造的代价仍然很高,实用的方案仅限于受限的函数类。
可搜索加密与保格式加密
可搜索加密允许服务器在不了解记录内容的情况下找到与查询匹配的记录。Song、Wagner 和 Perrig 于 2000 年发表了一种早期的对称密钥方案,使服务器能够测试加密单词是否匹配。实用的设计不可避免地会泄露一些信息,例如哪些记录与查询匹配,以及同一查询是否被重复提交。研究表明,这种访问模式泄露可能使针对加密数据库的推断攻击成为可能,因此这些方案的效率需要与其允许的泄露程度相权衡。
保格式加密(FPE)生成的密文与明文格式相同,例如对于支付卡号,密文仍是一个十六位数字字符串。这使加密后的值可以放入既有的数据库和表单中,而无需修改数据结构。其构造通常基于费斯妥网络(Feistel network)或循环行走(cycle walking)等小定义域技术。NIST 的 SP 800-38G 标准化了 FF1 模式以及修订后的 FF3-1 模式;后者在 FF3 模式遭到密码分析方面的质疑后取代了早先的 FF3 模式。
零知识证明与加密
零知识证明使证明者能够让验证者相信某一陈述为真,同时不泄露除该陈述为真之外的任何信息。Goldwasser、Micali 和 Rackoff 于 1985 年提出了这一概念。它常被与加密混为一谈,但两者用途不同。加密隐藏数据,使获得授权的一方之后能够恢复数据;而零知识证明则隐藏秘密见证,同时证明关于该秘密的某种性质,并且没有解密步骤。不过,零知识证明可以与加密结合使用,例如证明某个密文包含一个有效的值,而不泄露该值本身。zk-SNARKs 等简洁型变体被用于注重隐私且可扩展的区块链系统中。
在网络、存储与设备中的应用
网络流量
人们日常接触到的大多数加密都位于其他软件之下,隐藏在网络协议内部。传输层安全协议(TLS)保护网页流量:客户端与服务器通过握手协商密钥,此后会话被加密并校验是否遭到篡改,服务器的身份则由证书担保(参见密钥管理一节)。TLS 1.3 是当前版本,通常情况下把握手缩短为一次往返,并移除了旧式算法。TLS 1.0 和 1.1 已被正式弃用。采用率数据取决于测量方式。Qualys SSL Pulse 报告称,2025 年 6 月,在其调查的顶级网站中有 75.3% 支持 TLS 1.3;而 2026 年按流量加权的测量显示,TLS 1.3 在实际 HTTPS 请求中的占比约为 72%,人类用户的网页请求通过 HTTPS 传输的比例约为 98.8%。这些数字衡量的是不同的对象,不应直接比较。
虚拟专用网络(VPN)将这种保护扩展到整条网络路径。VPN 在设备与网关之间,或两个站点之间建立加密隧道,使穿越不可信网络的流量对沿途的观察者不可读。IPsec 是 IETF 标准化的一套协议,工作在 IP 层:互联网密钥交换协议负责协商密钥和安全关联,生成的数据包既经过认证又经过加密。它在企业站点到站点的专线连接中很常见。其他 VPN 则运行在 TLS 之上,或采用 WireGuard 等较新的设计。VPN 只保护端点之间的路径,而不保护端点本身,并且 VPN 服务提供商成为必须被信任的一方。
即时通讯
端到端加密(E2EE)消息在发送方设备上加密,仅在接收方设备上解密,因此中间的服务只负责转发密文。Signal 协议是部署最广泛的设计:扩展的三重 Diffie–Hellman 密钥交换用于建立会话,随后双棘轮算法持续更换密钥,由此提供前向保密,并能在密钥泄露后恢复安全。Signal 和 WhatsApp 都使用该协议,Facebook Messenger、iMessage 和 Telegram 也提供某种形式的端到端加密。
端到端加密并不等同于完全的隐私保护。大多数此类系统仍会暴露元数据,例如谁与谁通信、何时通信以及通信频率。Signal 的“密封发送者”功能减少了这类暴露,但并未彻底消除。密钥控制也需要权衡:由于服务提供商不持有密钥,它无法读取内容;但用户必须验证密钥(例如比对安全码),以发现密钥是否被替换。若丢失所有设备,聊天记录也可能随之丢失。持有或能够访问密钥的服务商可以提供账户恢复、服务器端搜索和内容审核等功能,但也可能被强制披露数据。备份往往是薄弱环节:如果未加密的云端备份保存了一份副本,即使消息本身经过端到端保护,也可能被暴露。苹果在 2022 年推出的“高级数据保护”允许对 iCloud 备份进行端到端加密,而 WhatsApp 提供可选的端到端加密备份,但许多用户并未启用。
存储与设备
全盘加密保护驱动器中的全部内容。Windows 上的 BitLocker、macOS 上的 FileVault、Linux 上的 LUKS,以及 Android 和 iOS 内置的加密功能,都会把数据密钥绑定到用户的口令上,并在可用时绑定到可信平台模块或安全飞地等硬件元件。这使得使用强口令的被盗设备难以被离线读取。但它无法防范已拥有解锁设备的人、已登录会话中运行的恶意软件,也无法防范弱口令,而简短的数字口令很容易被猜中。文件级加密作用于单个文件或文件夹,因此可以选择性共享,也可以为不同数据使用不同的密钥。
加密云存储主要有两种模式。在服务商托管加密中,服务商对静态数据加密并持有密钥,这有利于恢复、搜索和预览等功能,但也意味着服务商可以读取数据。在客户端加密中,用户自行持有密钥,这能防范服务商泄露或因法律要求而交出明文的情况,但代价是丢失密钥后无法恢复数据,并且无法使用需要服务器访问内容的功能。
支付、数字身份与加密货币
只要一方需要在不泄露秘密的前提下证明其身份或作者身份,就会使用公钥签名。支付卡和移动支付系统使用保存在安全元件中的密钥对交易进行认证,支付接口则依赖 TLS。在数字身份方面,基于 FIDO2 和 WebAuthn 标准的通行密钥采用挑战–响应签名:设备用一个永不离开设备的私钥对服务器的挑战进行签名,服务器只存储对应的公钥,因此即使服务器遭到入侵,也不会暴露可重复使用的凭证。
加密货币钱包清楚地体现了密钥之间的关系。资金的所有权与一把私钥绑定,只有由该私钥签名的交易才有效。任何持有私钥的人都可以动用这些资金,而丢失私钥通常无法找回。许多钱包从一组便于阅读的助记词推导出密钥,这组助记词于是成为单点故障。托管式交易所则反其道而行之,代用户持有密钥,以自我托管的风险换取对托管方的依赖。
法律、政策与合法访问之争
在历史的大部分时期,各国政府都把密码学视为国家权力的工具,严格管控其出口和使用。在美国,强加密数十年来一直被作为军火,受出口法规约束。20世纪90年代的"密码战争"(Crypto Wars)把这一争议推向公众视野。开发者认为,许可规定既限制了商业安全产品,也限制了已发表的研究。1999年,一家联邦上诉法院认定源代码可以受到第一修正案的保护,政府随后放宽了相关规定。1993年,克林顿政府提出了 Clipper 芯片方案,这是一种以保密的 Skipjack 算法为核心的电话加密设备。在密钥托管(key escrow)设计下,每台设备的密钥副本将由政府批准的机构保管,以便在获得授权的窃听中进行解密。批评者指出,Skipjack 算法无法被独立审查,而被托管的密钥将成为首要攻击目标。几年之内,托管协议中的一个缺陷被公开演示,到20世纪90年代末,该方案实际上已被放弃。
当前的争论遵循着同样的基本结构。执法机构认为,端到端加密(他们有时称之为"令状无法突破"的加密)使其即使在法院已授权的情况下也无法获取数据。电信法律提供了相反方向的先例:1994年的《执法通信协助法》(CALEA)要求电信运营商在其网络中内置拦截能力。技术专家则回应称,这一逻辑不能直接套用到加密上。为某一权力机构设计的机制,无论是托管密钥、主解密能力,还是客户端扫描系统,都会形成单点故障,外国政府、犯罪分子和内部人员同样可能尝试利用。2016年,苹果与美国联邦调查局(FBI)因圣贝纳迪诺案中一部被锁定的 iPhone 发生争执,这一争议体现了上述张力。最终,政府是通过第三方获得了该设备的访问权限,而非通过法院命令苹果修改其软件。许多安全研究人员以更一般的方式提出过同样的论点:一旦存在解密能力,其安全性就取决于每一个能够接触到它的人。
近期的提案也体现了这些长期存在的张力。在英国,《2016年调查权力法》允许当局要求服务提供商具备相应的技术能力,苹果因此在英国撤下了其端到端加密的 iCloud"高级数据保护"功能。欧盟委员会的 ProtectEU 战略提出了一份技术路线图,旨在探索解锁加密数据的途径;欧盟提出的被称为"聊天控制"(Chat Control)的法规则多次在理事会和议会中遭到争议。在加拿大,2026年3月提交的 C-22 法案招致强烈反对。该法案的政府支持者称,它既不要求解密端到端加密的内容,也不允许制造系统性漏洞;而行业团体则认为,它将迫使企业削弱加密或建立拦截能力。消息应用 Signal 则表示,无论近期的修正案如何,它都将退出加拿大市场。在美国,主要围绕儿童性虐待材料提出的立法提案,截至2026年仍未获通过。
加密在数据保护法中也占有重要地位。欧盟《通用数据保护条例》(GDPR)将加密列为保护个人数据的适当技术措施之一,并且规定,当受影响的数据经加密而无法被理解时,控制者可以免于向个人通报数据泄露事件。在这一语境下,隐私与表达自由紧密相连:联合国人权机构曾表示,强加密和匿名性是行使这些权利的有利条件,对记者、活动人士和持不同政见者尤为重要。其他国家则采取了相反的做法。中国2019年的《密码法》将商用密码产品纳入国家规则和认证要求的管理范围;俄罗斯2016年的监控立法则要求即时通讯服务向当局提供解密通信流量的手段。
这些国家之间的差异,存在于一个在适用上并不统一的国际框架之中。《世界人权宣言》保护隐私权以及表达意见的自由,《公民权利和政治权利国际公约》则规定,这些权利可以受到限制,但限制必须合法且必要。人权机构通常依据合法性、必要性和相称性原则评估监控措施,但对于强制削弱加密是否有可能满足这些标准,各方看法不一。因此,同一技术设计在一个司法管辖区可能被视为合法的侦查工具,而在另一个司法管辖区则被视为不可接受的侵入。这使得加密的法律地位既是安全工程问题,也是国家政策问题。
尚未解决的问题与未来方向
依赖尚未充分理解的假设的安全性证明
许多已部署的方案之所以被信任,是因为目前没有已知的高效攻击方法,而并非因为其安全性已被归约为某个经过充分研究的问题。部分证明是在理想化模型中完成的,例如随机预言机模型或理想密码模型,因此它们只有在理想化组件的行为与假设一致时才能保证安全。较新的假设,包括基于格的方案所依赖的假设,所受到的密码分析审视远少于因数分解或离散对数问题,这使得人们难以预测它们能够维持多久。因此,一项核心的开放任务是找到既紧致、又基于研究界能够经过多年攻击检验的假设的证明。
实现与协议的形式化验证
关于算法的证明并不会自动覆盖运行该算法的代码。HACL* 等项目使用 F* 语言构建了一个 C 语言密码学库,其中每个原语都经过了内存安全性、功能正确性和密钥无关的时序(秘密独立性)验证,该库还曾作为经过验证的 TLS 实现 miTLS 的密码学提供方。然而,这种方法有明显的局限。验证实现本身并不能说明其所实现的密码结构的安全性,后者必须另行证明。验证的覆盖范围也不均衡:miTLS 握手过程的证明在 Everest 项目中未能完成,而 2017 年的 HACL* 论文指出,X.509 证书所需的 RSA 和 ECDSA 签名尚未实现。经过验证的编译器也存在其自身的缺口:编译经过验证的代码的开销并未总是得到分析,而且侧信道泄露可能超出验证所能保证的范围。
量子密钥分发与后量子密码学
后量子密码学(PQC)依赖于计算困难性假设,因此并不具备无条件安全性,未来的算法进展可能会削弱它。量子密钥分发(QKD)常被视为一种替代方案,其安全性基于物理原理而非计算假设。然而,近期的分析着重指出了它在实践中的局限:它只支持点对点通信,在量子中继器成熟之前传输距离有限;每个端点都需要专门的光学硬件;其方案也尚未经过正式的标准化流程。对于 QKD 应当扮演何种角色,各方观点不一。一些观点认为两种方法可以互补,另一些观点则主张后量子密码学应作为默认的迁移路径,而 QKD 只适用于少数固定的高价值链路。开放问题包括 QKD 网络能否规模化,以及如何将其与经典认证相结合,而 QKD 本身并不提供认证功能。
同态计算的效率
全同态加密(FHE)允许直接对密文进行计算,但其开销依然很大。其基本的自举操作用于刷新密文,从而使无限次计算成为可能,但该操作代价高昂,报告的性能下降幅度在很大程度上取决于方案、参数和硬件。一项 2026 年的基准测试显示,未经优化、仅使用 CPU 的 FHE 大约比明文计算慢 10,000 倍;而当采用批处理、优化的 CKKS 参数以及 GPU 加速后,面向吞吐量的工作负载的差距可缩小至大约 10 到 100 倍。另一些分析人士认为,不存在有意义的通用倍数,应当针对每种工作负载进行端到端的基准测试。因此,研究工作主要集中在硬件加速、更好的编译器以及减少自举频率上,而目前的实际部署则集中于私有查询和小模型推理等狭窄领域。
密钥管理的可用性
即使数学原理本身是可靠的,许多安全故障仍源于人们生成、存储、共享、备份和轮换密钥的方式。丢失密钥会导致数据无法恢复,而便捷的恢复机制又会带来新的攻击点,因此保密性与可用性彼此拉扯。依赖用户正确管理密钥的系统屡屡失败,战时机器中操作失误的历史记录也印证了这一点。如何设计出普通用户能够安全操作、同时又不削弱密码学所提供的安全保障的密钥管理方案,仍然是该领域最具实际意义的未解难题之一。
参考来源
- History of cryptographyen.wikipedia.org
- Caesar Cipher Decoder, Encoder & Translatorinventivehq.com
- Caesar Cipher — The Cipher Museumciphermuseum.com
- Vigen%C3%A8re cipheren.wikipedia.org
- Vigenère ciphercryptography.fandom.com
- Blaise de Vigenère Describes What is Later Known as the ...historyofinformation.com
- Vigenère Cipher — The Cipher Museumciphermuseum.com
- (PDF) The rise of cryptology in the European Renaissanceresearchgate.net
- Arabic Origins of Cryptology (The discovery of Ancient Manuscripts)muslimheritage.com
- The History of Cryptography - Compact Historiescompacthistories.com
- The Evolution of Cryptographychain.com
- Cryptanalysis of the Enigmamilitary-history.fandom.com
- The Enigma of Alan Turing - CIAcia.gov
- Bletchley Park, Where the Allies Broke Enigma and Other Cipherscromwell-intl.com
- Polish mathematicians and cracking the Enigmabl.uk
- Cyclometeren.wikipedia.org
- Milestones:Code-breaking at Bletchley Park during World War II, 1939-1945 - Engineering and Technology History Wikiethw.org
- Polish mathematicians were the first to decipher the German Enigma Machine - Katrina Shawverkatrinashawver.com
- Data Encryption Standarden.wikipedia.org
- Data Encryption Standarddlab.epfl.ch
- The Cornerstone of Cybersecuritynccoe.nist.gov
- Data Encryption Standard (Cryptography) - Overviewstudyguides.com
- Exploring the Data Encryption Standard - Kobalt.iokobalt.io
- Appendix A. Encryption Standardsdocs.redhat.com
- What Was the DES Encryption Standard?upistudy.com
- Advanced Encryption Standarden.wikipedia.org
- FIPS 197, Advanced Encryption Standard (AES)nvlpubs.nist.gov
- Federal Information Processing Standards Publication 197 November 26, 2001space.commerce.gov
- HHEML: Hybrid Homomorphic Encryption for Privacy-Preserving Machine Learning on Edgearxiv.org
- AES Implementation and Performance Evaluation on 8-bit Microcontrollersarxiv.org
- Provable Security of Substitution-Permutation Networkscs.umd.edu
- Feistel cipheren.wikipedia.org
- Block Cipher Lec(3) (1 - 8) Feistel Modeuomosul.edu.iq
- Lucifer (cipher)en.wikipedia.org
- Substitution-Permutation Network - an overviewsciencedirect.com
- Block cipher mode of operationen.wikipedia.org
- Block Cipher modes of Operation - GeeksforGeeksgeeksforgeeks.org
- Multi-block cryptographic operationimage-ppubs.uspto.gov
- Block cipher vs stream cipher: differences - Upclass.aiupclass.ai
- Stream cipher attacksen.wikipedia.org
- Quantum Cryptographyarxiv.org
- RSA cryptosystemen.wikipedia.org
- RSA Encryption: How the RSA Algorithm Works and Why It Matterssecurew2.com
- ECC vs RSA vs DSA - Encryption Differencessectigo.com
- ECC vs RSA Comparison: What's the Technical Difference?sslinsights.com
- Marshall Hall's Conjecture and Gaps Between Integer Points on Mordell Elliptic Curvesarxiv.org
- Finite-field division operator, elliptic curve cryptosystem having finite-field division operator and method for operating elliptic curve cryptosystemimage-ppubs.uspto.gov
- Hardware accelerator for elliptic curve cryptographyimage-ppubs.uspto.gov
- What Is Hybrid Cryptography? [The Practical Path to PQC] - Security Boulevardsecurityboulevard.com
- Hybrid cryptosystemen.wikipedia.org
- What Is a Hybrid Cryptosystem?ituonline.com
- Hybrid Encryptiondevelopers.google.com
- Elliptic Curve Cryptographyhelp.ivanti.com
- Generic implementations of elliptic curve cryptography using partial reductionimage-ppubs.uspto.gov
- Secret Private Key - an overviewsciencedirect.com
- Diffie%E2%80%93Hellman key exchangeen.wikipedia.org
- Diffie–Hellman key exchangecryptography.fandom.com
- Extended Key Update for Transport Layer Security (TLS) 1.3ietf.org
- TLS 1.3 and Forward Secrecy: Count Us In, and Here's Why - Cisco Blogsblogs.cisco.com
- TLS (Transport Layer Security) Explained: Why TLS 1.3 is the New Standardsecurew2.com
- What is Public Key Infrastructure (PKI)?ibm.com
- Public Key Infrastructure (PKI): What It Is and How It Worksentrust.com
- Cryptographic method and systemimage-ppubs.uspto.gov
- Web of trusten.wikipedia.org
- comptia Security+ : Implementing Public Key Infrastructureexamguides.com
- Extended Key Update for Transport Layer Security (TLS) 1.3datatracker.ietf.org
- TLS 1.3: Busting myths and dispelling fear-uncertainty-doubtzscaler.com
- What is PKI? Public Key Infrastructure Explainedrublon.com
- Ciphertext indistinguishabilityen.wikipedia.org
- Ciphertext indistinguishabilitycryptography.fandom.com
- A Comprehensive Framework for Building Highly Secure, Network-Connected Devices: Chip to Apparxiv.org
- Security Protocols in a Nutshellarxiv.org
- Random Oracle Reducibility Paul Baecher Marc Fischlincryptoplexity.informatik.tu-darmstadt.de
- A tight security reduction in the quantum random oracle model for code-based signature schemesarxiv.org
- Lower Bounds on Signatures from Symmetric Primitivesarxiv.org
- Reduction-Centric Non-programmable Security Proof for the Full Domain Hash in the Random Oracle Modellink.springer.com
- Encryption Schemes using Random Oracles: from Classical to ...eprint.iacr.org
- (PDF) Re-visiting the One-Time Padresearchgate.net
- Digital information infrastructure and method for security designated data and with granular data storesimage-ppubs.uspto.gov
- An (Important) Disproof Of The One-Time Padtechcrunch.com
- Perfect Secrecy - an overviewsciencedirect.com
- Quantum readiness: Introduction to Modern Cryptographysynacktiv.com
- Provably Secure Integration Cryptosystem on Non-Commutative Grouparxiv.org
- Random Oracles With(out) Programmability⋆iacr.org
- The random oracle model: a twenty-year retrospectivelink.springer.com
- ChaCha20-Poly1305en.wikipedia.org
- Partitioning Oracle Attackseprint.iacr.org
- A Robust Variant of ChaCha20-Poly1305eprint.iacr.org
- VPN Encryption Explained: AES-256-GCM, ChaCha20 & AEADencapsulated.network
- Plaintext Attack - an overviewsciencedirect.com
- Chosen-Ciphertext Attack (CCA)linkedin.com
- graphsearch.epfl.chgraphsearch.epfl.ch
- Security of Networks 2011- 2012 Dr. S.B. Sadkhan Page 1 (9)uobabylon.edu.iq
- graphsearch.epfl.chgraphsearch.epfl.ch
- Differential Cryptanalysis - an overviewsciencedirect.com
- An Expanded Set of S-box Design Criteria Based on ...link.springer.com
- S-boxen.wikipedia.org
- Differential Cryptanalysis: A Literature Surveyciphersbyritter.com
- Linear Cryptanalysis for Block Cipherslink.springer.com
- (PDF) Linear Cryptanalysis of DESresearchgate.net
- (PDF) Linear cryptanalysis method for DES cipher (1994)scispace.com
- On Matsui's linear cryptanalysislink.springer.com
- Fast S-box security mechanism research based on the polymorphic cipher - ScienceDirectsciencedirect.com
- Iterative symmetric key ciphers with keyed S-boxes using modular exponentiationimage-ppubs.uspto.gov
- Linear Cryptanalysis Method for DES Cipher Mitsuru Matsuilink.springer.com
- Enhancement of Secrecy of Block Ciphered Systems by Deliberate Noisearxiv.org
- GitHub - lorenzopalloni/timing-attacks: Implementation of two timing attacks against RSA: one published by Kocher (1996), and another one by Brumley and Boneh (2005). · GitHubgithub.com
- Strength of Two Data Encryption Standard Implementations Under Timing Attacksdl.acm.org
- Exclusive Exponent Blinding May Not Suffice to Prevent Timing Attacks on RSAlink.springer.com
- (PDF) Examining Smartcard Security under the Threat of Power Analysis Attacksresearchgate.net
- Protecting smart cards from power analysis with detachable power suppliesimage-ppubs.uspto.gov
- Physical Time-Varying Transfer Functions as Generic Low-Overhead Power-SCA Countermeasurearxiv.org
- A Formal Proof of Countermeasures against Fault Injection Attacks on CRT-RSAarxiv.org
- OpenSSL Bellcore's Protection Helps Fault Attackieeexplore.ieee.org
- Timing Attacks on Software Implementation of RSA Project Report Harshman Singhir.library.oregonstate.edu
- Examining Smart-Card Security under the Threat of Power Analysis Attacksdl.acm.org
- Algorithmic Countermeasures Against Fault Attacks and ...eprint.iacr.org
- JackHammer: Efficient Rowhammer on Heterogeneous FPGA-CPU Platformsarxiv.org
- Federal Information Processing Standard (FIPS) 197, Advanced Encryption Standard (AES)csrc.nist.gov
- Commerce Secretary Announces New Standard for Global Information Securitynist.gov
- Milestones:Rijndael and the Advanced Encryption Standard (AES), 1995 - 1998 - Engineering and Technology History Wikiethw.org
- Advanced Encryption Standard (AES) Development Effortcsrc.nist.rip
- Official websites use .govcsrc.nist.gov
- graphsearch.epfl.chgraphsearch.epfl.ch
- DES Challengesen.wikipedia.org
- EFF DES crackeren.wikipedia.org
- DES CRACKED IN 22 HOURS AND FIFTEEN MINUTES - Tech Monitortechmonitor.ai
- 56-bit crypto code cracked in a day • The Registertheregister.com
- Story: EFF Cracks 56-Bit DES in Three Days, 7/20/98.techlawjournal.com
- 56-bit encryptionen.wikipedia.org
- Symmetric Algorithm Survey: A Comparative Analysisarxiv.org
- NIST SP 800-90 Historical Information - Random Bit Generationcsrc.nist.gov
- NIST Removes Cryptography Algorithm from Random Number Generator Recommendationsnist.gov
- Dual EC DRBG: How a Standard Got a Backdoorquantumsequrity.com
- NIST Post-Quantum Cryptography Standards: Complete Guide to FIPS 203, 204, 205qramm.org
- Which NIST Post-Quantum Cryptography Standards Are Finalsecurecontrolsframework.com
- Tracking the progress toward post-quantum cryptographydigicert.com
- Study of Post Quantum status of Widely Used Protocolsarxiv.org
- A Non-Invasive Cloud-Based Migration Strategy for Post-Quantum Cybersecurity in Smart HVAC Systems: Architecture, Implementation, and Empirical Evaluationarxiv.org
- Post-Quantum Cryptography Migration in Australian Real-Time Payment Infrastructure: A Monte Carlo Simulation Study of the New Payments Platformarxiv.org
- HQC: NIST's Backup to ML-KEM Explainedencryptionconsulting.com
- NIST Selects HQC as Fifth Algorithm for Post-Quantum Encryption: What It Means For Youencryptionconsulting.com
- Decoding NIST PQC Standards: What They Are, What’s Final, and What’s Nextencryptionconsulting.com
- Aquaman: A Transparent Proxy Architecture for Quantum Resilient Key Establishmentarxiv.org
- A Survey on Quantum-Safe Cryptographic Mechanisms: Building Blocks and Applicationsarxiv.org
- NIST PQC Standards Guide: FIPS 203, 204, 205arcqubit.ai
- NIST IR 8547 and SP 800-131A Timelineencryptionconsulting.com
- Post-quantum cryptography migration is already behind scheduletech.yahoo.com
- NIST IR 8547 Explained: 2030 and 2035 PQC Deadlinesencryptionconsulting.com
- Hybrid Horizons: Policy for Post-Quantum Securityarxiv.org
- An Assessment Framework for Application-Level Cryptographic Agilityarxiv.org
- Post-Quantum Cryptography Standards and Audit Index: algorithms, dates, standards bodies, auditorspqaudit.org
- NIST IR 8547: Transition to Post-Quantum Cryptography Standardspqcmandates.com
- NIST IR 8547: the post-quantum transition timelinequantakrypto.com
- 2026 State of PQC on the Webf5.com
- TLS 1.3 Adoption in 2026: Stats, Benefits & Migrationsslinsights.com
- Technologycheckertechnologychecker.io
- We analyzed HTTP protocol adoption in 2026: 28.6% of the ...technologychecker.io
- SSL vs TLS: TLS 1.3 Hits 72% Share, SSL at 0% [2026]shattered.io
- SoK: Web Authentication in the Age of End-to-End Encryptionarxiv.org
- DKVE: Decentralized Key Validation for End-to-End Encrypted Messagingarxiv.org
- End-to-end encryptionen.wikipedia.org
- Signal vs WhatsApp: What End-to-End Encryption Actually Protects (And What It Doesn't) - DEV Communitydev.to
- WhatsApp vs Signal: Key Privacy Insights for Businessesleapxpert.com
- End-To-End Encryption In Whatsapp/Signal/iMessage : What Is Not Protected? - Newsoftwares.net Blognewsoftwares.net
- Law Enforcement and Technology: The “Lawful Access” Debatecongress.gov
- Encryption and Globalization 15 Years Later: End-to-End Encryption and the Third Round of the "Going Dark" Debateisoclive.substack.com
- EU Pushes for Backdoors in End-to-End Encryptionbankinfosecurity.com
- From 'encryption backdoor' to 'lawful access' — is a compromise between privacy, security, and law enforcement needs actually possible?techradar.com
- Governments Are Trying to Break Encryption in 2026 — Here's What Developers Must Doabhs.in
- Toronto-based VPN provider plans to quit Canada over lawful-access bill - The Globe and Mailtheglobeandmail.com
- Signal tells Ottawa it will leave Canada rather than comply with Liberal lawful access bill - Rebel Newsrebelnews.com
- Messaging service Signal says minister’s changes to lawful access bill will not persuade it to stay in Canada - The Globe and Mailtheglobeandmail.com
- Comparison of Post-Quantum Cryptography and Quantum Key Distributionstaff.science.uva.nl
- A critical analysis of deployed use cases for quantum key distribution and comparison with post-quantum cryptographyncbi.nlm.nih.gov
- Quantum Key Distribution vs. Post Quantum Cryptographyqnulabs.com
- Quantum Key Distribution Meets Post-Quantum Cryptography: QKD vs PQCitechguides.com
- Quantum Key Distribution VS Post Quantum Cryptographyutimaco.com
- Project Everestproject-everest.github.io
- HACL*: A Verified Modern Cryptographic Libraryeprint.iacr.org
- HACL∗: A Verified Modern Cryptographic Library Jean Karim Zinzindohoué INRIAwireguard.com
- The Last Mile: High-Assurance and High-Speed Cryptographic Implementationsarxiv.org
- Is FHE Still Too Slow? Homomorphic Encryption Benchmarks 2026dualitytech.com
- Fully Homomorphic Encryption in 2026: What Ships and What Is Still Hypewavect.io