2. AES算法概述:发展历史、标准化过程(NIST)、全球应用现状

聊起对称加密,绕不开AES。

它叫Advanced Encryption Standard,高级加密标准。说白了,现在全球绝大多数加密通信的“底牌”,就是它。

我个人习惯,先搞清楚这东西是怎么来的,为什么是它,而不是别的算法当上了这个“标准”。

2.1 AES的诞生:为什么世界上需要一个新标准?

故事要从上世纪90年代说起。那时候,DES(数据加密标准)已经很老了,它的56位密钥长度在我刚入行时就已经被证明不够安全,一个专用硬件几天就能暴力破解完。我从老前辈那里听过一个段子:当年做DES破解机,就是冲着“看你密钥还能扛多久”去的。

后来有了3DES,把DES轮三次。但3DES效率低,而且块大小依然只有64位,到了今天这个数据体量,它已经显得步履蹒跚。1997年,美国国家标准与技术研究院(NIST)坐不住了,他们决定搞一个新标准,从全世界公开征集。

这就是AES的起点。一个面向全球、公开透明、靠密码学社区投票和攻防分析选出来的新标准。

核心动机: DES太弱,3DES太慢,世界需要一个新的、安全且高效的对称加密标准。

2.2 标准化过程:一场全球公开的密码学“选秀”

你可能以为AES是某个机构闭门造车搞出来的,其实不是。NIST搞了一次全球公开征集,任何人都可以提交自己的算法。

关键时间线如下:

时间事件我的备注
1997年1月NIST宣布启动AES项目,向全球征集候选算法当时我还在大学,听到这个消息觉得密码学界要变天了。
1998年8月第一轮评选:从15个候选算法中选出5个评审过程极其严格,除了安全性,还要看计算效率、内存占用。
1999年8月第二轮评选:5个候选算法进入决赛圈MARS,RC6,Rijndael,Serpent,Twofish。嗯,我至今还记得这几个名字。
2000年10月NIST宣布Rijndael当选为AES当时学术界其实有点意外,但回头来看,这是一个非常明智的选择。
2001年11月FIPS PUB 197正式发布,AES成为美国联邦信息处理标准从此,AES走进了每一台设备。

2.3 为什么是Rijndael?

说实话,5个决赛算法都很强。但Rijndael有几个显著的优势:

  • 实现效率高:不论是硬件还是软件,它都跑得飞快。我最早在嵌入式设备上移植AES,128位密钥、128位块大小,用很小的芯片就能跑出满意的吞吐量,这一点非常重要。
  • 设计简洁清晰:它的设计思想是“宽轨迹策略”,说白了就是每一轮替换、扩散做得干净利落,没有复杂的数学运算。我记得当时看它的,感觉更像一幅结构化的画卷。
  • 灵活性好:支持128位、192位、256位三种密钥长度,用户可以按安全等级切换。你想想看,一个算法能同时满足桌面电脑和物联网传感器的需求,这很厉害。
  • 安全强度足够:至今没有发现有效的、能威胁到128位密钥AES的攻击方法。我个人觉得,这可能是它最大的成就。
避坑指南: 我曾经遇到过有人把Rijndael和AES完全等同。实际上,AES是Rijndael的一个子集,AES固定了块大小为128位,而Rijndael支持128/192/256位的块大小。标准化的过程中做了一些裁剪。

2.4 发展脉络:从纸面到无处不在

2001年之后,AES迅速在全球普及。为什么?因为它解决了两个核心矛盾:安全与性能。

我简单画了一张AES标准化与发展的脉络图,你看完会更直观:

AES标准化与发展脉络 1997年 NIST全球征集 1998-1999年 三轮筛选,5强 2000年 Rijndael当选 2001年 FIPS 197发布 2001年-至今 全球采用:TLS/SSL、Wi-Fi、SSH、磁盘加密 说明:NIST采用公开透明流程,每个阶段都有密码学社区参与评审。AES并非某个大公司的产品, 而是全球密码学家集体智慧的结晶。

从图上你可以看到,AES从1997年启动到2001年成为标准,再到今天无处不在,这个路径非常清晰。标准化的闭环效率极高。

2.5 全球应用现状

AES今天已经不只是美国标准了。它被ISO/IEC采纳为国际标准,被TLS、SSH、IPsec等几乎所有安全协议内置支持。你刷信用卡、连Wi-Fi、用手机看网课,底层大概率都在跑AES。

几个关键应用场景:

  • 网络通信加密: TLS 1.2/1.3 中,AES-GCM 是最主流的选择。我个人习惯,只要是新项目,优先用 AES-GCM,因为它同时提供加密和完整性校验,省去了自己拼凑MAC的麻烦。
  • 磁盘/文件加密: BitLocker、FileVault 底层都用 AES-XTS。为什么不直接用GCM?因为磁盘加密需要的是“可随机读写”的模式,GCM不是为这个设计的。这里有个坑:不要拿GCM去加密整个磁盘,不然你会后悔的。
  • 无线网络安全: WPA2/WPA3 都用 AES-CCMP 来保护 Wi-Fi 数据帧。
  • 嵌入式与IoT: 很多MCU和传感器有AES硬件加速指令,跑起来比软件快几个数量级。我曾在STM32上测试过,硬件加速后加密一个128位块只需要几十个时钟周期。
我曾经踩过的坑: 在处理一个IoT设备时,我想当然地用了AES-ECB模式,结果数据块之间出现了重复模式,攻击者可以直接看出数据分区。当时我的leader给我上了一课:AES本身安全,但模式选错了照样会翻车。ECB永远不要用在任何生产环境里,除非你只是做测试。

另外,AES在密码学算法中的位置,就像TCP/IP在协议栈中的位置。它不是最花哨的,但它是基石。你想想看,这么多年来,不管是学术界还是工业界,试图攻破AES的努力都没有成功过。这本身就是一种信任。

AES的128位密钥,在可预见的未来依然足够安全。量子计算可能会在某种程度上威胁到它,但那至少是10-20年后的事情。当前,你大概率还是在和AES打交道。