安全原理解读

AES-256 加密详解:不夸大,只讲清楚

更新于 · 阅读约需 5 分钟

几乎每个隐私类 App 的功能列表上都写着“AES-256 加密”。这是一个真实且有意义的说法,但它也是整个系统中最不可能出问题的部分。这篇指南解释 AES-256 到底做了什么、GCM 这类附加字母是什么意思,以及为什么把你的图案或密码变成密钥的那一步,更值得你关注。

AES 是什么

AES(高级加密标准)是一种对称分组加密算法:同一个密钥既用于加密也用于解密,数据按 128 位一组进行处理。它是美国国家标准与技术研究院(NIST)在 2001 年经过一场公开、历时多年的竞赛选出的,胜出的设计 Rijndael 出自两位比利时密码学家之手。

如今 AES 无处不在:HTTPS 连接、Wi-Fi、磁盘加密,以及每一部现代 iPhone 的硬件中都有它。这种普及本身就是优点。密码学家已经研究它二十多年,许多处理器还在硬件层面对它进行加速。

密钥长度

AES 有三种密钥长度:

版本密钥长度轮数可能的密钥数量
AES-128128 位10约 3.4 × 10³⁸
AES-192192 位12约 6.3 × 10⁵⁷
AES-256256 位14约 1.2 × 10⁷⁷

打个比方:AES-256 的这个数字,和人们常说的“可观测宇宙中的原子数量”相差不远。逐个尝试所有密钥,不是计算机更快就能做到的事,而是在物理上就无法实现。

工作模式:为什么“GCM”很重要

分组加密算法本身只能打乱一个 16 字节的数据块。工作模式 规定了如何安全地加密整个文件。较老的模式只提供保密性,这意味着攻击者有时可以翻转密文中的某些位,让解密后的数据发生可预测的变化。

GCM(伽罗瓦/计数器模式)是一种认证加密模式。 它在加密数据的同时,还会针对数据计算出一个认证标签。解密时会先检查这个标签。如果文件被篡改或损坏,解密会干净利落地失败,而不是把被改过的内容交还给你。

GCM 有一条严格的规则:在同一个密钥下,nonce(只使用一次的数字)绝不能重复。设计良好的系统会从结构上避开这个风险,比如给每个文件分配独立的密钥。

真正决定安全性的部分:密钥派生

关于上锁 App 里的“AES-256”,有一个令人不太舒服的事实:没有人会直接攻击 256 位的密钥。他们攻击的是你记住的那个东西。

图案、PIN 码或密码都很短。密钥派生函数(KDF) 就是把这个简短的“秘密”转换成完整长度密钥的过程。如果 KDF 很快,复制了加密数据的攻击者就能测试数十亿次猜测;如果它被刻意设计得很慢,每一次猜测都要付出实实在在的时间和算力。

PBKDF2 如何拖慢攻击者

PBKDF2(基于密码的密钥派生函数 2)是一种被广泛使用的标准化 KDF。它让你的“秘密”经过带密钥的哈希函数(HMAC)运算成千上万次,并混入一个 盐值:一个随机值,即使别人选了和你一样的“秘密”,派生出的密钥也各不相同。

  • 迭代次数 会成倍增加每次猜测的成本。达到几十万次迭代时,原本只需一微秒的一次猜测,会变成明显可感知的零点几秒。
  • 盐值 让预先计算好的表格失效。攻击者无法建立一张巨大的“图案 → 密钥”对照表,然后在不同设备上反复使用。

即便如此,如果你的“秘密”属于攻击者最先会尝试的那几千个,任何 KDF 都救不了它。这就是为什么 图案锁、PIN 码和 Face ID 对比指南 中关于如何选择强“秘密”的建议,和加密算法同样重要。你可以用 图案强度检测器 测试一个类似的形状(千万不要用你真正的图案)。

量子计算的问题

量子计算机对某些密码学的威胁很严重,对另一些则影响有限。

  • 公钥算法,如 RSA 和椭圆曲线密码,可能会被足够大的量子计算机运行 Shor 算法破解。这正是整个行业在推广后量子密钥交换的原因。
  • 对称加密算法,如 AES,面对的是 Grover 算法,它能让暴力搜索获得平方级的加速。实际效果大约是把有效密钥长度减半:面对量子攻击者,AES-256 大约能提供 128 位的安全性。

128 位安全性依然被认为是很强的。这也是对需要长期保密的数据推荐使用 AES-256 的原因之一。

常见误解

  • 功能列表上的夸张形容词有意义。 并没有。AES 是一个公开标准,银行、浏览器和聊天 App 都在用;在它前面加上夸张的形容词,只是营销。
  • 用了 AES-256,App 就安全了。 它只能保证被加密的那些字节安全。密钥管理、KDF、解锁设计、备份以及留在别处的副本,才决定整个系统是否安全。
  • 更长的密钥能弥补弱密码。 不能。由“1234”派生出来的 256 位密钥,强度也就和“1234”一样。

Velcrypt 如何使用 AES-256

Velcrypt 的设计遵循上面的原则:强加密算法、谨慎的密钥管理、缓慢的密钥派生。

  • 加密算法: 通过 Apple CryptoKit 使用 AES-256-GCM,每个文件都既被加密又被认证。
  • 密钥派生: 你的图案经过 PBKDF2-HMAC-SHA512 处理,至少迭代 600,000 次,并使用存放在 iOS 钥匙串中、每台设备随机生成的盐值。
  • 密钥层级: 每个保险箱都有自己随机生成的 256 位主密钥,每个文件的密钥再通过 HKDF 从主密钥派生。每个文件使用独立密钥,也让 GCM 的 nonce 规则很容易遵守。
  • 额外一层: 在 Velcrypt 自身加密之外,文件还受到 iOS 数据保护(完全保护级别)。
  • 只在设备上: 没有账户,没有服务器,所以你的密钥在别处没有任何副本。

加密功能页面 对此做了概括,安全概览 则明确列出了加密无法防范的情况,比如有人看着你画图案,或者手机在保险箱打开的状态下被交给别人。

常见问题

AES-256 能被破解吗?

目前没有任何已知的实用攻击能比暴力穷举更快地找出 AES-256 密钥,而穷举 256 位密钥远远超出任何可以想象的计算机的能力。现实中的数据泄露来自弱密码、被盗的密钥或加密算法周边的漏洞,而不是 AES 本身。

AES-128 和 AES-256 有什么区别?

两者使用同一个算法,只是密钥长度和轮数不同:128 位密钥、10 轮,对比 256 位密钥、14 轮。AES-128 本身已被认为是安全的;AES-256 则多留出了一大截安全余量,包括应对未来的量子攻击。

AES-256-GCM 里的 GCM 是什么意思?

GCM(伽罗瓦/计数器模式)是一种工作模式,它在加密数据的同时生成一个认证标签。哪怕加密文件中只有一位被改动,解密也会直接失败,而不会返回损坏或被篡改的数据。

AES-256 能抵御量子计算机吗?

一般认为它具有抗量子能力。理论上,Grover 算法会把有效密钥强度减半到大约 128 位,这仍被视为安全。量子计算机对 RSA 这类公钥算法的威胁,远大于对 AES 的威胁。

用了 AES-256 的 App,为什么还需要强密码或强图案?

因为攻击者不会去猜 256 位的密钥,而是去猜生成密钥的那个简短“秘密”。如果你的“秘密”属于几千个常见选择之一,即使密钥派生再慢,也只能拖延有限的时间。

Well Encrypted. Truly Private.

画出图案,打开私密保险箱。你的照片、视频和文档都加密保存在你的 iPhone 上,无需账户,不经过云端。

即将登陆 App Store

即将推出 iPhone 版(iOS 17 或更高版本)。提供免费版,可选 Premium 高级版。