跳转至

一份英文密语词表里的 292 个亚洲外来语,是怎么选出来的

我们是一群关心匿名网络与网络自由的志工,从台湾出发,维运文档站。社区做了一份 7776 字的英文密语词表 asian-diceware,可以直接替换 EFF 的 Large Wordlist,差别在里面固定收 292 个已经进入英文字典的亚洲外来语,tofuoolongbobakimchi 都在其中。

站上的工具页已经写过怎么用它,小工具区的密语生成器也可以直接按。以下补上另一半,选字的过程,以及过程中挡掉了什么。

一份英文密语词表里的 292 个亚洲外来语

为什么一份英文词表需要亚洲味

密语(passphrase)的做法是掷骰子从一份固定的词表抽出几个英文字,用符号接起来当密码。强度来自抽字的过程够随机,跟抽到哪些字无关。既然强度跟用字无关,换掉词表的内容有什么意义?

意义在抄得下来、念得回去。密语真正被用到的场合是密码管理器的主密码、全盘加密的口令、要在电视或游戏主机上一个字一个字敲进去的 Wi-Fi 密码,全都需仰赖人脑记住、人手输入。EFF 那份词表挑字时避开难拼字、脏话与容易混淆的同音字,理由正在于此1

对在台湾、香港与亚洲各地生活的人来说,oolongoolite 好认,ramenramekin 好记。抽到一个你天天在用的字,抄写与回想的错误率就会下降。换掉词表内容的理由仅止于此,密语强度一分一毫都没有变。

词表要能跟 EFF 那一份直接对换

第一条规则先定下来,词表要刚好 7776 个字,一个不多一个不少。

7776 是 6 的 5 次方,代表掷 5 颗骰子读成一个五位数,刚好对应到表上唯一一个字。每个字贡献 log2(7776) ≈ 12.925 bits,六个字约 77.5 bits1。字数维持在 7776,asian-diceware 就是 EFF Large Wordlist 的直接替代品,任何原本用 EFF 词表的流程换过来都不必改动,强度也完全一致。

数字固定之后,选字就变成一个名额有限的问题。292 个亚洲外来语占掉 292 个名额,剩下 7484 个名额用最高频、好拼写的常见英文字填满。名额有限是后面每一个取舍的来源。

292 个字的来源分布,跟做的人原本预期的不一样

词表从台湾出发,直觉会以为华语来源的字最多。实际查完字典之后的分布如下:

来源语言 字数 例字
日语 102 sushiramentofumatchakaraoketsunamiemojiumami
南亚与梵语 91 yogakarmaguruavatarchaimasalabazaarcheetah
马来与东南亚 39 bamboocurrymangoduriansataygeckoshampoojungle
韩语 35 kimchibibimbapsojuhangultaekwondomukbangbingsu
华语 16 typhoonoolongpinyinbobalycheemahjongqigong
粤语 8 wokwontonhoisinkumquatloquatcheongsamlongan
闽南语 1 ketchup

日语 102 个,南亚与梵语 91 个,两者加起来超过总数的六成。华语只有 16 个,闽南语只有 ketchup 一个。

分布记录的是英语实际吸收了什么,不记录我们希望它吸收什么。日本料理、瑜伽与印度香料进入英语世界的时间长、渠道多,累积下来的词就多。韩语那 35 个字里有不少是近年才进 OED 的,来自 2021、2024 与 2026 几批 K-culture 收词。华语的 16 个字多半年代久远,typhoonginsengkowtow 都是几百年前的贸易与外交留下来的。

华语圈的味道就藏在那 16 个字里:oolong(乌龙茶)、boba(珍珠奶茶,源自台湾)、typhoon(台风)、pinyin(拼音)。加上唯一那个闽南语来源的 ketchup,番茄酱的英文可以一路追回闽南语,字源很多人不知道。

还有一批字大概没人会猜到是亚洲外来语:tycoonhonchoshampoobungalowjunglelootthugatollgeckocheetahgongdinghymongoose。它们每天都有人在用,来历早就融进英语里了。

选字的两个限制

只收已经进字典、写成一个单词的词

feng shuikung fudim sum 三个词在英语世界的知名度都不低,全部没收。理由是中间有空格。

密语的组成方式是把抽到的字用 - 之类的符号接起来,抽到一个带空格的词,整组密语的断词就会产生歧义,抄写、口述与输入都会出错。词表的价值在于抄得下来、念得回去,一个会让人抄错的词不管多有代表性都不能收。

字典背书也是硬条件,292 个字全部在 OED、Merriam-Webster 或 Cambridge 查证过。硬条件挡掉的是「我觉得这个字英语圈应该懂」的判断,那种判断通常是错的。

不自己音译华语

另一个选项是自行音译,把常见的华语词转写成英文字母收进词表,华语来源的比例马上就能拉高。我们没有走那条路。

台湾同时流通汉语拼音、威妥玛与通用拼音几套系统,香港另有粤语拼音(Jyutping),中国大陆则以汉语拼音为单一标准。同一个音在不同系统下拼法不同,不同的音在同一个系统下又可能拼成相近的样子。词表要面向整个华语圈,就得同时面对这几套系统。密语词表最不能出现的就是歧义,一个字有两种合理拼法,抄下来的人就有一半机率打不开自己的磁盘。

音译本身有价值,只是属于另一个项目,需要先把拼音标准的选择处理完,不能夹带在一份以英语为基底的词表里。

为什么停在 292,不凑成一个整数比例

292 个字占 7776 的比例约 3.8%。数字看起来像是随手取的,实际上是把可用的字都捞完之后剩下的结果。

把 OED、Merriam-Webster 与 Cambridge 查过一轮,华语圈读者认得出来的亚洲外来语大约 330 个。其中 292 个收进词表,另外约 40 个标成备援,可辨识的字几乎就到顶了。v0.4.0 把 161 个扩充到 292 个,扩充时的原则是好认优先,查得到但没人认得的字宁可先搁着,也不为了凑成 4% 这种漂亮数字而硬塞2

想再往上拉,例如拉到 10%(约 778 个字),只有两条路。第一条是拿冷僻词充数,putteehowdahnilgaimaund 这类字多数人拼不出、念不准也记不住,一收就破坏了词表存在的理由。第二条是改用罗马拼音的官话或注音音节,也就是上一节说过的另一个项目。

工具页把比例比喻成啤酒的酒精浓度(ABV),一个刻意挑过的数字,不是稀释出来的意外。比喻在最后一步失效:酒精浓度更高会有差别,亚洲外来语比例更高不会。无论抽到 tofu 还是 the,每个字都是一样的 12.925 bits,强度只跟词表恰好 7776 字、每次掷骰机率均匀有关。文化覆盖跟好用性冲突的时候,好用性优先。

构建流程挡掉的东西

词表由一条可重复执行的流程产出,六个阶段依序是收集、正规化、质量过滤、修剪、组装、验证2

高频英文字的排序来自 wordfreq 的一份留在仓库里的快照,只当排序依据用。质量过滤那一关把专有名词、缩写与杂讯清掉,它们看起来是英文字,实际上会让密语变得难输入或难辨认。

真正麻烦的是修剪那一关,处理的是前缀冲突。密语词表有一个好性质,任何一个字都不会是另一个字的开头,于是把几个字接在一起,不必分隔符号也能唯一还原出原本的组合。要维持该性质,两个字互为前缀时就得砍掉一个。

问题在于被砍掉的可能正好是钉住的亚洲外来语。流程的规则写得很明确:

  • 钉住的字受保护,前缀冲突发生在钉住的字与一般字之间时,砍一般字
  • 两个一般字相撞时,砍频率较低的那个
  • 两个钉住的字互相冲突时,构建直接失败并印出冲突的那一对字,由人去改数据文件决定砍哪一个

第三条是刻意的。自动砍掉一个钉住的字,词表会悄悄少一个亚洲外来语,没有人会发现。构建失败很吵,吵是必要的,少一个字的问题需要有人看到。

最后的验证有八项验收测试,另外用外部工具 wla 稽核一次,确认长度是 7776、可唯一解码、每字熵值 12.925 bits、没有重复字。验证通过才会发版。

开源条件与怎么取得

程序采 MIT,词表数据采 CC-BY-4.0,源代码与完整词表都在 GitHub anoni-net/asian-diceware。频率快照只当排序依据,收进词表的字本身是常见英文词汇。

CC-BY-4.0 的意思是你可以直接拿去印、去发、去改,保留出处标注即可。我们把 7776 字词表排成一本 A5 掷骰查表小册,含封面、使用教学、QR 与版权页,PDF 可以直接下载,约 36 页,用家里或便利店的打印机印 A4 对折成册即可。

做小册时碰到一个实际问题可以分享。PDF 里的中文字体必须内嵌,否则换一台电脑打开就会变成方框,而 macOS 内建的苹方(PingFang)授权不允许为了再分发而内嵌。所以小册改用可自由内嵌的开源字体 Noto Sans TC 与 JetBrains Mono,任何人拿去重印都不会遇上授权问题。要让别人能自由再分发,字体也要一起处理。

社区参加工作坊、小聚与研讨会等实体活动时,也会带几本印好的小册到现场发送。在活动里取得一本、或刚好遇到我们,非常欢迎过来聊聊,问密语、问匿名网络,或只是打声招呼都可以。想知道我们最近会出现在哪,见活动参与

为什么社区要做一份词表

密语词表看起来离匿名网络有一段距离,关联在一个还在规划的项目上。

Tor Project 有一个叫 AnonTicket 的服务,让人不必提供 email 就能匿名向 Tor 的 GitLab 回报问题,账号用系统生成的一组随机英文字代码辨识身分3。让记者接收爆料的 SecureDrop 平台也一样,为每位匿名来源生成一组七个随机字的登录代码4。代码要好念、好抄、不容易混淆,来源正是一份挑过的词表。

社区接下来想做一个类似 AnonTicket 的匿名服务平台,还在规划阶段。asian-diceware 就是为了当那种服务的代码字源而准备的,顺便先变成一份现在就能用的密语词表。要做一个不必留下 email 的匿名回报渠道,词表是其中一块材料。

相关阅读


  1. EFF Dice-Generated Passphrases - Electronic Frontier Foundation 

  2. anoni-net/asian-dicewareREADME.mdSPEC.md,v0.4.0(2026-06-25 发布) 

  3. Anonymous GitLab Ticketing: An Exciting New Project at Tor - The Tor Project 

  4. SecureDrop - Freedom of the Press Foundation