网易首页 > 网易号 > 正文 申请入驻

密码学里最没用的一句话:直接用AES-256

0
分享至

“直接用AES-256”,这是安全领域被重复最多、也最没用的一句话。


密码算法本身几乎从不被攻破。真正出问题的是它周围的一切:一个能被猜到的密码、一个被重复使用的随机数(nonce)、一段没人验证过完整性的密文、一个用错函数派生出来的密钥。

换句话说,攻击者不会去硬碰一把256位的钥匙,他会去找那把钥匙是怎么造出来的。这个思路决定了现代加密设计的大部分选择:加密的强度,只等于攻击者能猜到的最便宜的那件东西。

下面按“三件事、三种工具”的顺序,把整套栈过一遍:AES、ChaCha20、Argon2id、HKDF、HMAC、X25519、Ed25519 和 Shamir 秘密分享。每一个都讲清楚它怎么工作、为什么存在、什么时候选它。

先分清加密其实是三个问题

加密这个词底下压着好几件不同的事。做之前先想威胁模型:假设攻击者手里有你的加密文件副本、有无限时间、还有一排GPU。

暴力破解256位密钥在物理上不可能,所以聪明的攻击者会绕过去,直接打那个生成密钥的密码。这就是为什么现代设计里,把密码变成密钥的那一步,比密钥长度更值得花心思。

AES:全世界的默认分组密码

AES(Rijndael,FIPS 197)用128、192或256位密钥加密128位分组,跑10、12或14轮,每轮四个操作作用在一个4×4字节网格上:SubBytes 让每个字节过一遍非线性查表,ShiftRows 把行旋转让字节跨列扩散,MixColumns 在 GF(2^8) 上做矩阵乘法使每个输出字节依赖四个输入,AddRoundKey 与轮密钥异或。

完整AES目前没有实用攻击。现代CPU还带 AES-NI 指令,把轮运算放进硬件执行,又快又是常数时间。

但分组密码一次只处理16字节,怎么把块串起来(模式)才是安全胜负手。GCM(NIST SP 800-38D)用CTR模式加密,再用 GHASH 在 GF(2^128) 上算一个128位标签。解密时先验标签,密文、nonce 或附加数据(AAD)改动一个比特,就直接报错、不吐明文。

三条必须刻在脑子里的规则:

  • 绝不重复使用同一对(密钥, nonce)。这会泄露两段明文的异或,还能让攻击者恢复 GHASH 密钥,之后就能伪造合法标签。
  • 随机96位 nonce 有上限。受生日界约束,NIST 建议每个密钥下随机 nonce 的消息数控制在约 2^32 条以内。
  • 单条消息在每个(密钥, nonce)下上限约 64 GiB,大文件必须分块。

GCM 还有一个特性:它不保证密钥承诺(key-committing)。精心构造的密文可以在两个不同密钥下都解密成功,这给基于密码的系统打开了“分区预言机”攻击的口子(Len、Grubbs 和 Ristenpart,2021)。解法是显式的密钥承诺。

ChaCha20-Poly1305:对软件更友好的挑战者

Daniel J. Bernstein 的 ChaCha20 是流密码,只用加、旋转、异或三种操作(ARX)。没有查表,天生常数时间,在没有AES硬件指令的CPU上也很快。

它的状态是一个4×4的32位字网格:四个常量、256位密钥、一个块计数器和一个96位 nonce(RFC 8439),经过20轮四分之一轮函数打散。Poly1305 负责认证,两者合起来就是 AEAD。

选型上,AES-256-GCM 和 ChaCha20-Poly1305 都是优秀方案。决定因素通常是硬件条件,以及你能多安全地管理 nonce。两者的API在主流库里几乎一致,换一个类名,同样的代码就能跑。

密码要变成密钥,靠 Argon2id

把密码转成密钥,绝不能用普通哈希。Argon2id 是当前推荐的选择,它同时消耗时间和内存,让猜测变贵。参数上,随机16字节盐、至少64 MiB内存、时间成本不低于3、并行度4,是常见的起点。

派生出的主密钥不要直接拿去加密。用 HKDF-SHA256 按用途打不同标签,一个用途一把子密钥。这样即使某一处的密钥泄露,也不会牵连其他部分。

公钥与恢复:X25519、Ed25519、Shamir

X25519 是 Curve25519 上的椭圆曲线 Diffie-Hellman:双方交换公钥,各自算出同一个共享秘密,全程不传输它。把这个结果过一遍 HKDF,就得到对称密钥。Ed25519 是配套的签名方案,快、紧凑、确定性,不存在每次签名都要靠随机数、一旦出错就崩的那种脆弱点。

实际用法是混合加密:一个随机文件密钥用AES或ChaCha加密数据,X25519 只负责把这个小密钥包给每个接收方。

Shamir 秘密分享回答的是“密钥丢了怎么办”,而且不引入单点故障。秘密变成随机多项式里的常数项,每份分享是多项式上的一个点。任意 k 份能重建秘密,k-1 份则什么也透露不了——这是信息论意义上的安全,不只是计算意义上的。

一个真实实现:ATLOCK v5 怎么把这些拼起来

ATLOCK v5 是 Akhouri Systems 面向 Windows 的总安全套件,纯 Python 写成,打包成 zip 里的单个 .exe。它不发明密码学,站在 cryptography 和 argon2-cffi 两个成熟库上,把力气花在通常最容易出错的环节:组合。

锁一个文件时,密码走过的路径是这样的:

  1. 密码(可选加密钥文件或硬件密钥)经 Argon2id 处理,随机16字节盐,内存不低于64 MiB,t不低于3,p=4,得到主密钥。
  2. 主密钥经 HKDF-SHA256 按用途打标签,分出加密密钥;再用 HMAC-SHA256 生成承诺值,在任何解密之前先校验。
  3. 每次封装派生子密钥:HMAC(加密密钥, 标签 || 随机 nonce_base)。
  4. 每8 MiB一块用 AES-256-GCM 加密,nonce = nonce_base(8字节)|| 块序号(4字节),AAD 与头部绑定。

围绕这个核心,一个程序里还装了这些:

  • 文件与文件夹加锁,密码之外可选密钥文件或硬件密钥,攻击者得两样都有
  • 密码保险库,支持 TOTP 验证码、FIDO2 安全密钥和 Windows Hello
  • TPM 硬件密钥经 HKDF 混入本地状态密钥
  • Shamir M-of-N 恢复与一次性恢复码
  • 公钥模式:X25519 加密加 Ed25519 签名
  • 逐级升级的锁定,带时钟与状态回滚检测
  • 安全粉碎、密码强度评估、签名发布校验
  • 内置自检,以及往容器解析器里扔随机损坏数据的模糊测试器

加密做不到的事

一个靠谱的安全工具会主动说清自己的边界:

  • 以你的身份运行的恶意软件会赢。能在你的会话里执行代码的人,可以读进程内存或改程序。防篡改和内存擦除只是抬高成本,不是杜绝。
  • Python 保证不了内存擦除。字符串和字节不可变、可能被复制,擦除只能尽力而为。
  • SSD 上的粉碎不保证彻底。磨损均衡和快照会留下旧块。开全盘加密(BitLocker),把粉碎当成额外一层。
  • 弱密码还是弱密码。Argon2id 拖慢猜测,救不了 password123。
  • 没有代码签名。首次运行 Windows SmartScreen 可能警告,多数独立软件都这样。运行前先核实下载来源。

对威胁模型保持诚实不是弱点,那是工程和营销的分界线。

七个要避开的错误

  • 在 GCM 或 Poly1305 下重复使用 nonce
  • 只加密不认证(裸 CBC 或 CTR)
  • 用快速哈希派生基于密码的密钥
  • 省掉盐,或用短盐、固定盐
  • 一把密钥干几件事,不用 HKDF 打标签
  • 用 == 比较标签,而不是常数时间比较
  • 自己造密码算法。组合经过验证的原语,别发明它们

密码算法是简单的那部分。安全活在密钥派生、nonce 纪律、认证,以及有勇气写下“我保护不了什么”的谦逊里。学会这些,你就能评估任何一款加密工具,包括这一款。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
王某自驾车揽客1人收费7元,被运管罚款4万元,最高检:属于“小过重罚”,已监督纠正

王某自驾车揽客1人收费7元,被运管罚款4万元,最高检:属于“小过重罚”,已监督纠正

极目新闻
2026-10-23 15:58:28
救市的逻辑变了

救市的逻辑变了

新浪财经
2026-10-25 04:38:44
1965年,飞行员高长吉违背空军禁令出海追敌,开炮击落台军侦察机,毛主席事后的批示让所有人沉默

1965年,飞行员高长吉违背空军禁令出海追敌,开炮击落台军侦察机,毛主席事后的批示让所有人沉默

饭小妹说历史
2026-10-23 09:06:40
明年起房贷压力大变天,房奴日子要到头?实话跟大家说清楚

明年起房贷压力大变天,房奴日子要到头?实话跟大家说清楚

云霄纪史观
2026-10-25 01:52:48
中美大决战提前结束,中国已拿到未来,这场关乎国运的仗胜负已分

中美大决战提前结束,中国已拿到未来,这场关乎国运的仗胜负已分

最美的开始
2026-10-18 06:56:20
无底线了!内塔尼亚胡之子被伊朗特工暗杀,弃行李连夜逃回以色列

无底线了!内塔尼亚胡之子被伊朗特工暗杀,弃行李连夜逃回以色列

梦史
2026-08-29 06:21:20
马斯克的麻烦有点大

马斯克的麻烦有点大

长江说正事
2026-10-24 11:17:07
原来他俩已离婚,但没离家仍一起住豪宅开豪车,儿女双全共同抚养

原来他俩已离婚,但没离家仍一起住豪宅开豪车,儿女双全共同抚养

娱妮啵啵啊
2026-10-13 16:21:36
打起来了,人都飞了!恶意犯规!状元伤退离场!真TM脏啊...

打起来了,人都飞了!恶意犯规!状元伤退离场!真TM脏啊...

体育新角度
2026-10-24 12:09:04
金贤重前女友直播谈儿子:学习好长得帅,还是学生会主席

金贤重前女友直播谈儿子:学习好长得帅,还是学生会主席

浅遇时光
2026-10-24 02:06:22
为什么每个朝代到后期都没钱?看完网友分享我破防了,画面感很强

为什么每个朝代到后期都没钱?看完网友分享我破防了,画面感很强

夜深爱杂谈
2026-10-17 19:21:55
《再见朋友》他们最先翻车:爱演、两面三刀,装得周笔畅都看不下

《再见朋友》他们最先翻车:爱演、两面三刀,装得周笔畅都看不下

老吴教育课堂
2026-10-23 07:29:08
泰山队保护使用依木兰,唐田换人后防线崩了,下轮战成都,别当背景板

泰山队保护使用依木兰,唐田换人后防线崩了,下轮战成都,别当背景板

替补席看球
2026-10-24 17:52:44
广东队二连胜,球队准备交易焦泊乔,徐杰顶薪快打没了

广东队二连胜,球队准备交易焦泊乔,徐杰顶薪快打没了

孤影来客
2026-10-24 22:45:53
来了广东才知道,广东人有多“扮猪吃老虎”

来了广东才知道,广东人有多“扮猪吃老虎”

原广工业
2026-10-24 18:16:02
世界首次500强差距断崖:日本149家,美国151家,中国3家,如今呢

世界首次500强差距断崖:日本149家,美国151家,中国3家,如今呢

福建睿平
2026-08-28 07:25:16
大众突然官宣:16.99万起,新车上市

大众突然官宣:16.99万起,新车上市

高科技爱好者
2026-10-24 22:36:50
金球奖前评委:2018年我的投票顺序被颠倒,官方称是人为失误

金球奖前评委:2018年我的投票顺序被颠倒,官方称是人为失误

懂球帝
2026-10-25 00:51:14
“看到此景真理解星巴克了”!女顾客脱鞋躺平卡座,刚出台的新规吵翻评论区

“看到此景真理解星巴克了”!女顾客脱鞋躺平卡座,刚出台的新规吵翻评论区

王老师你还好吗
2026-10-24 11:01:21
安检时警犬突然激动,猛扑向八旬老人,游客看到结果后夸赞:好狗

安检时警犬突然激动,猛扑向八旬老人,游客看到结果后夸赞:好狗

悬案解密档案
2025-10-14 17:13:58
2026-10-25 07:08:49
我是一个养虾人
我是一个养虾人
有态度网友ytd
184文章数 92关注度
往期回顾 全部

科技要闻

写程序、做3D,新Kimi还有多少本事?

头条要闻

澳官方扑杀200万只野猫 当地人直接搬出"全自动杀猫机"

头条要闻

澳官方扑杀200万只野猫 当地人直接搬出"全自动杀猫机"

体育要闻

从乐透秀到总冠军再到没工作 一共要几年?

娱乐要闻

翁虹19岁女儿三次拒爱,在美国上学却“不随便”

财经要闻

叫"保障"不叫"保险":租车平台的文字游戏

汽车要闻

大众安徽与众09正式上市 双十一权益价16.99万起

态度原创

健康
教育
数码
艺术
本地

痘痘能根治吗?皮肤科医生说实话

教育要闻

慕籬教坏了外国小朋友,太逗了

数码要闻

小米REDMI Book 2027预热:外观焕新,16英寸机型标配数字小键盘

艺术要闻

中国画家油画里的东方女神美到失语!一眼沦陷,怎么看都看不够

本地新闻

这么近,那么美,周末赴贺州丨大湾区后花园

无障碍浏览 进入关怀版