中文譯本 · 原作 Daniel Bourdeau《Unsolved Historical Ciphers》 以 CC BY 4.0 釋出,本頁由 JIC 翻譯,非原作者官方版本,譯文如有出入以英文原頁為準 · 檢視英文原頁 ↗
Twelve baxuxupeja qicijinati bemigasiqi
jakebiqoye kufohemige tuxaboboba gedocijiga
… xitonatula xopavajejo rope… tanaka

中國 / 日本 · 帶字母壓縮的中文電報碼 · 1916

汕頭的“Tanaka”致孫中山,1916年4月3日

孫中山
收信人孫中山

汕頭,1916年4月3日下午6:05,發往“Rosamonde Tokio” · 被日本外務省截獲 · JACAR B03050738800(外務省 680682)

壓縮表僅憑密文(177個字母)復原,方法是逐一測試由山田純三郎的壓縮表所知的那個規則家族中的每一張表。約44個字中解讀出42個;最後一個詞約合兩個碼組,在收報抄件中已經錯亂。S. Tomokiyo 用山田自己的表做過嘗試,沒有成功,也沒有找到其他解讀。

Daniel Bourdeau · 釋出於 · 更新於

方法:僅憑密文復原金鑰 · 範圍:完整

摘要。1916年4月,日本外務省秘密獲得一封22個詞的電報,由汕頭的一個“Tanaka”發給“Rosamonde Tokio”(宋慶齡的英文名,也就是孫中山家),卻無法解讀。S. Tomokiyo 試過孫中山的日本支持者山田純三郎留下的兩張程式碼壓縮表之後,於2021年發表了這封電報,沒有給出解讀。其字母恰好是這種壓縮表的20個子音和5個母音,而已知的兩張表都是規則化的(子音按字母順序,母音重新排列,按行或按列填充)。這個家族很小,算上加數共57 600把金鑰,其中一把用漢字模型打分後,比其餘的高出八個標準差。明文用的是標準電報碼本,是革命黨一方在汕頭髮出的一份前線報告:潮城由莫擎宇獨立。我軍亦光復汕頭。後莫率大隊來,令我退出鎮守府。我軍力薄,暫由翼□支援。文慧返[港]……“潮州城已由莫擎宇宣佈獨立。我軍也光復了汕頭。隨後莫率大隊前來,命令我們退出鎮守府。我軍力量薄弱,暫時由翼□支援。文慧正返回[香港]……”這與1916年3月27日至30日的事件相符。完成程度:約44個字中解出42個;港是根據一處莫爾斯電碼錯誤(M)復原的,最後一個詞(約兩個程式碼)在收報抄件中已經錯亂,還有一個名字未能確定。

續篇:同一個金鑰家族還能解讀遞信省截獲檔案中孫中山圈子1916–17年的另外約六十封電報:電報線上的孫中山圈子。

01 文獻

JACAR B03050738800 是外務省1916年4月29日至5月11日關於孫中山密碼電報的一份檔案。其中包括:(i)孫中山從東京發給漢口領事館一名警察的五封電報,用四位數碼組,即 Tomokiyo 已經解讀過的“+111”程式碼;(ii)一份急件,機密送第一號,由外務大臣石井發給駐汕頭代理領事——此人本人就叫 Tanaka(田中)——詢問這個“Tanaka”是誰、為何給孫中山發電報、是否冒用領事的名義,並要求“如有可能”解讀這封電報;(iii)這封電報本身;以及(iv)漢口總領事5月11日關於孫中山下一套方案的報告(五位數碼組,數字倒序,減去111)。檔案中沒有任何內容解讀了汕頭電報。

收報表格,帝國政府電信局,東京,1916年4月3日,汕頭髮往 Rosamonde Tokio:Twelve baxuxupeja …
電報的第一頁(JACAR B03050738800,第680682幀;S. Tomokiyo 裁切)。汕頭髮報局,第1507號,22個詞,16年4月3日下午6:05;地址“Rosamonde Tokio”。圖片:日本外務省外交史料館,經 JACAR B03050738800,第680682幀;S. Tomokiyo 裁切,Cryptiana。
Twelve  baxuxupeja qicijinati bemigasiqi jakebiqoye kufohemige tuxaboboba gedocijiga poyevayoxa
        leyoleveke biromapesa vorobenife xikebiqoye qekufiyaqa tijaqixiqo xitonatula xopavajejo
        ropezpo ngobunibai   tanaka

按表格轉錄。Tomokiyo 的轉錄作 gedoeijiga 和 xitohatula;筆跡實為 c 和 n,而解讀恰恰需要這個讀法。“Twelve”是表的標識(山田的電報以“Sixtyfour”開頭,指他的六十四號表)。

02 結構

03 金鑰

把該家族全部 40 × 120 × 2 × 2 × 3 = 57 600 把金鑰用在乾淨的音節串上,得到的四位數碼組用一個繁體漢字頻率模型打分(未知程式碼扣分)。最佳金鑰(子音輪轉至從l開始,母音e a i o u,按列排列,從01起,無加數)得分 −360.6,而總體均值為 −553.6,標準差23.8;第二名落後49分。這張表是:

eaiou
l0121416181
m0222426282
n0323436383
p0424446484
q0525456585
r0626466686
s0727476787
t0828486888
v0929496989
x1030507090
y1131517191
z1232527292
b1333537393
c1434547494
d1535557595
f1636567696
g1737577797
h1838587898
j1939597999
k2040608000

綠色:該格由一個說得通的詞確認(41格)。琥珀色:只用於存疑的碼組。暗色:本電報未用到。注意 u 列:k-u = 00 被確認了兩次(亦 0076、力 0500),從而確定了整列。

04 解讀

碼本 = 電報新編 / 明密碼電報書 的編號(這些字的編號與現代標準電報碼相同)。虛線 = 校改過的字母 · 紅色 = 未能確定

ba xu · xe pe · ja qi · ci ji · na ti · be mi · ga si · qi ja · ke bi · qo ye · ku fo · ne mi · ge tu · xa bo · bo ba · ge do
3390    1004    3945    5459    2348    1342    3747    4539    2053    6511    0076    0342    1788    3073    7333    1775
潮      城      由      莫      擎      宇      獨      立      我      軍      亦      光      復      汕      頭      後

ci ji · ga po · ye va · yo xa · le yo · le ve · ke bi · ro ma · pe sa · vo ro · be ni · fe xi · ke bi · qo ye · qe ku · fi ya
5459    3764    1129    7130    0171    0109    2053    6622    0427    6966    1343    1650    2053    6511    0500    5631
莫      率      大      隊      來      令      我      退      出      鎮      守      府      我      軍      力      薄

qa ti · ja qi · xi qo · xi to · na tu · la xo · pa va · je jo · ro pe · za no · [ngobunibai]
2548    3945    5065    5068    2388    2170    2429    1979    6604    3263
暫      由      翼      □       支      持      文      慧      返      港      …
潮城由莫擎宇獨立。我軍亦光復汕頭。後莫率大隊來,令我退出鎮守府。我軍力薄,暫由翼□支持。文慧返港……

事件經過。1916年3月26日,龍濟光潮梅鎮守使屬下駐潮州的團長莫擎宇被陳炯明、林虎、何海鳴和當地革命黨人爭取過來;27日他佔領潮州城,致電省當局“率師佔領潮城,宣佈獨立”:潮城,與電報中用的是同一個詞。30日汕頭的守備部隊宣佈擁護他,他以汕頭為司令部正式宣佈獨立。與此同時,孫中山自己的中華革命黨人已佔領了該城的鎮守使署;“Tanaka”是隨他們行動的日本浪人之一,他在4月3日報告說,莫率大軍前來,命令他們撤出,他們力量太弱無法抵抗,還有某人正在返回,大概是回東京報告。外務省懷疑發報人借用了汕頭領事的名義;那位領事也姓 Tanaka(田中)。

05 仍不確定的部分

06 方法

  1. 為了解背景並核對字母,逐頁查閱了 JACAR 檔案(檔案館的影象伺服器拒絕自動訪問;PDF 是手工提供的)。
  2. 音節統計:20 + 5 的字母表和u的短缺,指向一種規則化的、按列排列的壓縮表。
  3. 對整個規則家族(57 600把金鑰)進行暴力搜尋,用基於標準碼本的單字頻率打分(Unihan 電報碼錶;1916年的編號已用 Tomokiyo 解讀的孫中山電報核實)。
  4. 對四個存疑碼組逐一檢查單字母替代讀法;光復、支援、莫、潮城這些讀法先按文意選定,然後在筆跡中得到印證。
  5. 對錯亂的末尾進行編輯距離搜尋(結果為否定),然後進行莫爾斯重新切分搜尋,復原了港,最後一個詞仍未解決。再對照莫擎宇起事3月26–30日的時間線做歷史核驗。

07 試用金鑰

輸入壓縮字母(忽略空格)。每個子音–母音對按上表變成兩位數字;每兩個音節組成一個碼本碼組,在標準電報碼中查詢。

08 資料來源

分析指令碼、碼本表和語言模型都在程式碼倉庫中(targets/sunyatsen/).