人工智能公司Anthropic的前沿红队10月16日说,公司内部的一个Claude研究模型用不到半小时,查明了美国国家标准与技术研究院(NIST)P-192、P-224、P-256、P-384和P-521五条椭圆曲线种子的来历:它们不是哈希算出来的,而是C语言库的随机数生成器按Unix时间戳初始化以后产生的输出。
这几条曲线在2000年写进NIST的FIPS 186-2数字签名标准,所在的椭圆曲线数字签名算法(ECDSA)是使用最广的椭圆曲线密码标准;受影响的是靠这些曲线做数字签名的网站、软件和用户,不过Anthropic说,这项发现不需要采取任何行动,也不必改变做法。种子由美国国家安全局提供,一直没有任何解释,有人怀疑它们是被故意挑出来、藏着后门。
流传最广的说法是,挑选种子的国家安全局资深员工杰里·索利纳斯1997年把几句英文句子哈希后得到种子,后来自己也忘了是哪几句;索利纳斯2023年初去世。密码学工程师菲利波·瓦尔索达2023年10月5日发起悬赏,征求破解这五个种子的来历。
Anthropic说,几名员工此前按“句子哈希”的线索找过,都没有结果;这次员工把问题交给内部研究模型时,没有告诉它这条线索。Claude猜测种子出自1990年代C语言库自带的伪随机数生成器,写了扫描程序逐位检查公开的种子,发现四组种子拆成五个32位整数后,这20个整数的最高位全是0,再用LLL格基约简算法恢复生成器的状态,倒推出初始化的时间。这些初始化时间集中在1997年5月至1998年4月;以P-256为例,生成器从1997年8月16日协调世界时01:52:34开始运行,第1842组候选就是标准里的种子。
瓦尔索达10月16日说,Anthropic的约翰·伍德、尼古拉斯·卡利尼等十人10月15日协调世界时01:07:51领取了全部悬赏,并选择把奖金捐给运营Let’s Encrypt的非营利组织ISRG,奖金因此增至36864美元;他自己用Go语言重新实现了这套算法来核实。瓦尔索达把生成器写作POSIX标准的drand48,Anthropic写的是C语言库的lrand48。
Anthropic说,这不是密码学上的破解、新攻击,也不是曲线的弱点,反而让人更有信心这些曲线挑选时没有后门;瓦尔索达也说,在这之前业内就没有严重的担忧。还没解开的也有:一条二元域曲线B-163的种子仍对不上,P-224、P-256、P-384和P-521的基点怎么来的也不清楚;按同样的方法,合格的种子大约是公布数量的两倍,为什么跳过其中一半,还没有找到解释。
- 1997年5月至1998年4月生成器按这段时间的Unix时间戳初始化,产生种子
- 2000年NIST把曲线写进FIPS 186-2数字签名标准
- 2023年10月5日瓦尔索达发起悬赏,征求种子的来历
- 2026年10月15日Anthropic团队领取全部悬赏,捐给ISRG
- 2026年10月16日Anthropic公布Claude查明种子来历的经过
数据:Anthropic和悬赏发起人瓦尔索达的公布
按传言去找那几句被遗忘的英文,都没有结果;答案却是1997至1998年间电脑时钟上的时间。
综合量子位、Unite.AI、Anthropic、Filippo Valsorda报道



