Anthropic 用尚未发布的 Claude Mythos 模型做密码分析,给出了两个方向不同的结果:一个针对后量子签名方案 HAWK,另一个改进了对缩减轮次 AES 的攻击。值得关注的并不是“AI 破解了密码”这个夸张结论,而是大模型已经开始进入过去高度依赖专家直觉、数学推导和大规模搜索的研究流程。
两个结果为什么值得放在一起看
HAWK 和 AES 代表了不同类型的分析对象。前者是后量子签名方案,研究者需要检查其安全假设、结构以及潜在攻击路径;后者则是经过长期公开分析的对称密码标准。对缩减轮次 AES 的攻击取得改进,通常意味着研究者在受限版本上找到了更好的区分器、复杂度界或搜索策略,并不等于完整轮次 AES 已经失守。
因此,这两个结果共同传递出的信号是:模型不只是复述密码学论文,也可能参与提出候选思路、组合已知技术、搜索参数,并生成可交给专家验证的分析结果。
但边界同样明确:
- 针对缩减轮次 AES 的结果不能直接外推到完整 AES。
- “攻击一个方案”可能是理论复杂度改进,也可能影响特定参数,不能自动理解为可在现实环境中伪造签名。
- Claude Mythos 尚未发布,外部研究者暂时难以独立复现实验条件。
- 密码分析最终需要可检查的数学论证、代码和复杂度估算,模型给出的自然语言解释不能代替证明。
AI 真正改变的是研究循环
传统密码分析经常经历这样的循环:阅读结构、提出差分或代数假设、搜索参数、编写实验程序、排除错误,再把有效结果整理成证明。AI 最适合压缩其中高频但昂贵的探索环节。
一个更可靠的协作流程可以写成:
- 让模型生成候选攻击路径,并明确依赖的安全假设。
- 要求模型输出机器可检验的中间结果,而不是只给结论。
- 用独立程序复算差分表、概率、秩、约束解和复杂度。
- 由密码学专家检查模型是否混淆攻击目标、参数集或安全定义。
- 使用另一套实现和独立算力复现实验。
这里最重要的产物不是一段听起来合理的解释,而是可重复执行的验证材料。如果模型声称发现了某个高概率差分,却不能给出输入差分、输出差分、轮数、概率及搜索代码,这个结果还不能进入严肃评审。
可以这样实践:验证一个玩具 S 盒的差分性质
下面的示例不复现 Anthropic 对 AES 或 HAWK 的成果,也不能用于评价真实密码方案。它演示密码分析中一个最小的“提出候选结果,再由程序验证”流程:计算 4 位 S 盒的差分分布表,并找出非零输入差分对应的高频输出差分。
将代码保存为 differential_check.py,使用 Python 3 直接运行,不需要第三方依赖:
from collections import Counter
SBOX = [
0xC, 0x5, 0x6, 0xB,
0x9, 0x0, 0xA, 0xD,
0x3, 0xE, 0xF, 0x8,
0x4, 0x7, 0x1, 0x2,
]
def differential_distribution(sbox):
size = len(sbox)
table = [[0] * size for _ in range(size)]
for input_diff in range(size):
for x in range(size):
output_diff = sbox[x] ^ sbox[x ^ input_diff]
table[input_diff][output_diff] += 1
return table
def main():
table = differential_distribution(SBOX)
candidates = []
for input_diff in range(1, len(SBOX)):
counts = Counter({
output_diff: count
for output_diff, count in enumerate(table[input_diff])
if count
})
output_diff, count = counts.most_common(1)[0]
candidates.append((count, input_diff, output_diff))
candidates.sort(reverse=True)
print("Top non-trivial differentials:")
for count, input_diff, output_diff in candidates[:8]:
probability = count / len(SBOX)
print(
f"dx=0x{input_diff:X} -> dy=0x{output_diff:X} "
f"count={count:2d}, probability={probability:.4f}"
)
max_count = candidates[0][0]
print(f"\nDifferential uniformity: {max_count}")
if __name__ == "__main__":
main()
运行命令:
python3 differential_check.py
在真实研究中,模型可以负责提出值得搜索的差分路径,验证程序则必须独立计算结果。随着轮数和状态空间增长,研究者还会引入 SAT/SMT 求解器、MILP、GPU 搜索或专用密码分析框架,但“模型生成假设,确定性工具验证”这一分工仍然成立。
如何判断这类成果是否能进入工程决策
团队不应因为一次 AI 密码分析结果就立即迁移算法,也不应因为目标只是缩减轮次版本就忽略它。更稳妥的判断清单包括:
- 攻击针对完整方案、缩减轮次版本,还是某组非默认参数?
- 攻击复杂度是否低于通用攻击,是否达到现实可执行范围?
- 结果是否包含证明、代码、参数和可复现实验?
- 是否有独立密码学团队完成复核?
- 受影响方案是否已经部署,协议是否支持算法替换?
Anthropic 的实验显示,AI 有机会成为密码研究者的搜索器和推导助手。它触及的是密码分析工作的高门槛,而不是取消了这道门槛。对于安全团队,当前最合理的做法是把模型接入实验与验证流水线,同时继续把最终信任建立在公开分析、独立复现和可审计证据上。