一份英文密語詞表裡的 292 個亞洲外來語,是怎麼選出來的¶
我們是一群關心匿名網路與網路自由的志工,從台灣出發,維運文件站。社群做了一份 7776 字的英文密語詞表 asian-diceware,可以直接替換 EFF 的 Large Wordlist,差別在裡面固定收 292 個已經進入英文字典的亞洲外來語,tofu、oolong、boba、kimchi 都在其中。
站上的工具頁已經寫過怎麼用它,小工具區的密語產生器也可以直接按。以下補上另一半,選字的過程,以及過程中擋掉了什麼。

為什麼一份英文詞表需要亞洲味¶
密語(passphrase)的做法是擲骰子從一份固定的詞表抽出幾個英文字,用符號接起來當密碼。強度來自抽字的過程夠隨機,跟抽到哪些字無關。既然強度跟用字無關,換掉詞表的內容有什麼意義?
意義在抄得下來、唸得回去。密語真正被用到的場合是密碼管理器的主密碼、全碟加密的口令、要在電視或遊戲主機上一個字一個字敲進去的 Wi-Fi 密碼,全都需仰賴人腦記住、人手輸入。EFF 那份詞表挑字時避開難拼字、髒話與容易混淆的同音字,理由正在於此1。
對在台灣、香港與亞洲各地生活的人來說,oolong 比 oolite 好認,ramen 比 ramekin 好記。抽到一個你天天在用的字,抄寫與回想的錯誤率就會下降。換掉詞表內容的理由僅止於此,密語強度一分一毫都沒有變。
詞表要能跟 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 | sushi、ramen、tofu、matcha、karaoke、tsunami、emoji、umami |
| 南亞與梵語 | 91 | yoga、karma、guru、avatar、chai、masala、bazaar、cheetah |
| 馬來與東南亞 | 39 | bamboo、curry、mango、durian、satay、gecko、shampoo、jungle |
| 韓語 | 35 | kimchi、bibimbap、soju、hangul、taekwondo、mukbang、bingsu |
| 華語 | 16 | typhoon、oolong、pinyin、boba、lychee、mahjong、qigong |
| 粵語 | 8 | wok、wonton、hoisin、kumquat、loquat、cheongsam、longan |
| 閩南語 | 1 | ketchup |
日語 102 個,南亞與梵語 91 個,兩者加起來超過總數的六成。華語只有 16 個,閩南語只有 ketchup 一個。
分布記錄的是英語實際吸收了什麼,不記錄我們希望它吸收什麼。日本料理、瑜伽與印度香料進入英語世界的時間長、管道多,累積下來的詞就多。韓語那 35 個字裡有不少是近年才進 OED 的,來自 2021、2024 與 2026 幾批 K-culture 收詞。華語的 16 個字多半年代久遠,typhoon、ginseng、kowtow 都是幾百年前的貿易與外交留下來的。
台灣的味道就藏在那 16 個字裡:oolong(烏龍茶)、boba(珍珠奶茶,源自台灣)、typhoon(颱風)、pinyin(拼音)。加上唯一那個閩南語來源的 ketchup,番茄醬的英文可以一路追回閩南語,字源很多人不知道。
還有一批字大概沒人會猜到是亞洲外來語:tycoon、honcho、shampoo、bungalow、jungle、loot、thug、atoll、gecko、cheetah、gong、dinghy、mongoose。它們每天都有人在用,來歷早就融進英語裡了。
選字的兩個限制¶
只收已經進字典、寫成一個單字的詞¶
feng shui、kung fu、dim 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 個字),只有兩條路。第一條是拿冷僻詞充數,puttee、howdah、nilgai、maund 這類字多數人拼不出、唸不準也記不住,一收就破壞了詞表存在的理由。第二條是改用羅馬拼音的官話或注音音節,也就是上一節說過的另一個專案。
工具頁把比例比喻成啤酒的酒精濃度(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 的匿名回報管道,詞表是其中一塊材料。
相關閱讀¶
- Asian Diceware,帶亞洲味的英文密語字典:完整的擲骰方法、強度對照表、隨機性規則與暗號本的進階用法
- 文件站新增八個小工具,全部在讀者自己的瀏覽器裡執行:站上的密語產生器怎麼用,含實體骰子模式
- 密碼管理器入門:密語適合少數要用腦記的密碼,其餘每個網站交給管理器
- 威脅模型如何建立:判斷自己需要多強的密碼,從這裡開始
-
EFF Dice-Generated Passphrases - Electronic Frontier Foundation ↩↩
-
anoni-net/asian-diceware 的
README.md與SPEC.md,v0.4.0(2026-06-25 發布) ↩↩ -
Anonymous GitLab Ticketing: An Exciting New Project at Tor - The Tor Project ↩
-
SecureDrop - Freedom of the Press Foundation ↩