← 返回首页

从棋盘格到数字巨龙的加密谜题

发布时间: 2026-02-06 14:54(北京时间)

摘要: 作者分享了两道基于BIP-39标准和加密技术的谜题设计过程,从棋盘格物理记录到数字巨龙的口令生成,反思了第一题因信息冗余导致的不完美,并优化第二题以增加复杂度,涉及Entropy、Seed、Base58编码等技术细节。整体语调冷静、反思,带有技术探讨和元分析特征。

标签: 加密谜题, BIP-39, 技术反思, 元分析, 冷静, 结构化思考, 密码学, 设计优化

字数: 1798

原文链接: /7402396589/QqzGUtC5X

昨晚创建了一个叫做 Lattice-Vault 的目录,开始琢磨出谜题,彩头就是谜题能解出红包口令。一共出了两道题,但其实核心思路都差不多,但第一道题(图1)考虑不太仔细,导致整个谜面的信息无法完全被利用到。第二道题目(图2)就更加“完美”了。

以下信息就是“剧透”了,如果您还打算自己或利用AI来解谜,就先回避一下w


谜面上最显眼的就是一个12x12的棋盘格,横坐标是2048/1024/…/4/2/1,纵坐标是1~12。在棋盘格的旁边有个显眼的“BIP39”水印。

BIP-39是比特币社区提出的一个行业标准。它的核心作用是将难以记忆的二进制随机数(Entropy)转化为人类可读、易于抄写的单词序列(Mnemonic Words)。这个单词序列还有一个更常见的称呼,叫作“助记词”。

有了助记词,就可以通过一个叫 PBKDF2 的函数进行哈希拉伸,得到一串512位(64字节)的种子(Seed),有了种子之后,由于分层确定性钱包的特性,种子可以派生出“母私钥”,和无数的“子私钥”。简单来说,有了完整的助记词,就能重新找到“钱包”里所有的私钥和公钥,从而实现对资产的操作。

对于一个包含加密货币的钱包助记词,人们肯定会想尽办法安全地储存,毕竟只要被获取助记词,那么钱包的资产就可以被他人随意操作。于是出现了“冷钱包”这个概念,用离线介质来存放私钥或是助记词。最简单的“冷钱包”实现办法就是手动把助记词抄写在某处。

BIP-39定义了2048个单词词表,也就是说,这2048个单词能够代表11bit的二进制数据。也就是说,助记词中的每个单词都可以用11bit的二进制数据来记录。所以有一种“冷钱包”的实现办法就是仅记录助记词对应的12个二进制数据,用无法复原的方式雕刻在棋盘格上,1就是要刻的,0就是不动的。但这种物理方式记录,对于index0的把控就有讲究了,如果什么都不刻,那么是忘了刻呢还是index0呢?这会造成困扰。所以一般这种“冷钱包”是1-base的。也就是说,0号词“abandon”应该刻成二进制的1。

所以第一题就非常简单,通过棋盘格上按照1-base雕刻的二进制数据,可以通过查表找到12个助记词,通过助记词能够还原128bit的Entropy,把Entropy用Hex方式表达后,就能得到“04B4FE31FF55AA55AAF00F55AAAA55FF”,根据谜题的其他信息可以知道,口令就是04B4FE31按照“DEC (8-digit) Big-Endian”的规则转换。

为什么我觉得第一题不完美呢,因为Entropy的后半段都是我自己填充的固定数据,所以,解谜人实际上只需要把前32bit的数据就可以拿到口令,甚至不需要去查BIP-39的词表。

所以,十分懊恼,决定再出一题,这一次,我不会把口令藏在Entropy里面。而是藏在需要计算的那串512位(64字节)的种子(Seed)里面。

我本来的想法是这样的,用脚本随机Entropy,然后算出Seed,再用hashcat按照8位纯数字的规则爆破。看能不能找到一个Entropy,它刷出来的Seed正好全等于某个8位数的SHA-512结果。但这个难度大概是相当于在全宇宙的沙子中找两颗完全一样的沙粒。跑了一会儿就放弃了。

因为红包口令最长可以有18位,所以我又想了另一个办法。用脚本随机Entropy,然后算出Seed,查找Seed的Hex表达中有且仅有一组连续的18位数字。这个就好找很多了,所以又加了一条规则,查找5分钟,找出Seed的Hex表达中数字最少的一个Entropy。

这次“出题”过程非常顺利,接下来就是生成谜题图片,塞钱入红包即可。不过这时候噩耗来了,红包自定义口令的话,不能是纯数字。但我又不想放弃刚才找到的那条18位长的数字巨龙。这时候想到加密货币相关的还有一个Base58编码方式。Base58就是在传统的Base64编码的基础上,删掉了人类容易抄错、认错的几个字符。顺带加了一个“BigInt”的坑。如果解题人直接找一个在线的Base58编解码器去编的话就掉坑里了,因为这类工具都只会把18位长的数字当作字符串来转换。

从难度来说,第二题应该是更难的,不过或许是我的Guidelines写得太详细了,所以难度又大大降低。

image

image