中文譯本 · 原作 Daniel Bourdeau《Unsolved Historical Ciphers》 以 CC BY 4.0 釋出,本頁由 JIC 翻譯,非原作者官方版本,譯文如有出入以英文原頁為準 · 檢視英文原頁 ↗
REKUTATA UHOYAKATE SEKANAOKU SAKEKINISE
OSUKAKUCHI REUHONIUSU MAKASUSAKU FUREOHIHE
… ATAREUSASU OSOYUANIRA KISU

中國 / 日本 · 羅馬字假名程式碼 · 1916

黃興致林虎、李根源

黃興
發信人黃興

經日本外務省轉發,1916年5月25日 · 石井外務大臣致駐肇慶領事 Ōta · JACAR B03050731500

外務省把一份譯文與電報一起歸檔,所以總目把它記為“已解但具體方案不明”。這裡轉錄了那份譯文,並與假名對齊;對齊結果確定了方案,以及42個程式碼本條目。

Daniel Bourdeau · 釋出於 · 更新於

方法:相鄰明文復原金鑰 · 範圍:部分

摘要。1916年5月,黃興請日本外務省把一份電報轉給在廣東的林虎和李根源。電報用的是中方自制的密碼:139個羅馬字日語假名音節,裝進十個字母一組的電報詞,沒有濁音符號。S. Tomokiyo 後來發現一份備忘錄,記載外務省曾把一份譯文與電報一起歸檔,所以這一件被列為已解;他無法轉錄那份手寫的中文,加密方案也一直沒有確定。這兩件事在這裡都有了著落。譯文及其加註的日文改寫在檔案的第0247和0248幀上,內容是一則關於護國軍和一位旅人啟航日期的簡短回電。這一方案是一種此前未見於這批通訊記載的假名程式碼:三個假名確定地編碼一個漢字,依據一本私人程式碼本。最初的分析把子音行當作數字、把母音當作可自由選擇的同音符;在500 dpi 下重新檢視這些幀後,這一看法被推翻了(第03節)。完成程度:方案已確定,找到一處傳輸錯誤,明文已從譯文轉錄,復原了42個程式碼本條目;假名到數字的對照表和程式碼本的其餘部分,需要第二份電報才能得到。

01 檔案

JACAR B03050731500 是外務省關於反袁起義的一卷檔案(1.6.1.75-1_015,膠捲1-0955,第0244–0302幀)。附函為電送第一九八〇號,密碼,由外務大臣石井於1916年5月25日下午4時35分發給駐肇慶領事 Ōta,用日文明文說明了附件是什麼:

黃興ヨリ林虎李根源宛電報依頼アリタルニ付同人ニ伝達アリタシ 內容ハ先日來電ノ挨拶ナリ(以下支那側暗號)
“黃興請求向林虎、李根源發一份電報,請轉交他們。內容是對日前來電的答覆。(以下為中方密碼。)”

要緊的是三幀:0246,印在帝國政府電報局轉發電報用紙上的電報;0247,標題為電稿,是草書寫的中文譯文;0248,一名書記員在外務省用紙上把譯文改排成日語語序的版本,附有他自己的註釋。

帝國政府電報局轉發電報用紙,上有 REKUTATA UHOYAKATE SEKANAOKU 等詞
第0246幀:交發時的電報。五行十個字母一組的詞,以 OSOYUANIRA KISU 結尾。影象:日本外務省外交史料館,1.6.1.75-1_015 第0246幀,來自 JACAR Ref. B03050731500。
REKUTATA  UHOYAKATE  SEKANAOKU  SAKEKINISE  OSUKAKUCHI  REUHONIUSU
MAKASUSAKU  FUREOHIHE  YENIKIYEHI  TAKASUREU  SASHIKIHE  WAONIAAHO
SAYEHITE  UHINAKUTA  NEATEMUYE  SUHEUHAKA  YESOMIKANU  TEASUUKU
TSUHAKOSE  KEKININAKI  TEAKETASHI  KONUOHIKE  HIMIKANO  SHIKUSAHE
UHATAKASA  KEKINIKA  ATAREUSASU  OSOYUANIRA  KISU

按假名讀,這是139個音節,其中36個各不相同。完全沒有濁音假名(沒有ga、za、da、ba),這在電報通訊中很正常,因為濁音符號根本不傳送。這些音節是日語的(SHI、CHI、TSU,以及舊式的 YE 和 WA),而不是六週前發給孫中山的汕頭電報所用壓縮碼中的子音-母音字母。

02 外務省的譯文

第0247幀是譯文:標題電稿,下面四列,分別為12、11、12和11個字,共四十六個字的電文。第0248幀是為日本讀者重新排列的同一文字,它是兩幀中更有用的一幀,因為書記員在沒有把握的地方加了註釋。

草書中文譯文,標題為電稿,五列
第0247幀,電稿:解碼出的中文。影象:日本外務省外交史料館,1.6.1.75-1_015 第0247幀,來自 JACAR Ref. B03050731500。
同一文字,改排為日語語序,寫在外務省的格紙上
第0248幀:書記員的日文改寫,附有他的註釋。影象:日本外務省外交史料館,1.6.1.75-1_015 第0248幀,來自 JACAR Ref. B03050731500。

隱印崧蕘邕行諸兄鑒:正發書翰之際,適接哿電,敬悉一切。護國軍能速入湘贛甚好。章行嚴何日東渡?速令出發,並望預電。興 徑

“致 Yin、Yin、Song、Yao、Yongxing 諸兄:正要發信,適接二十日來電,一切敬悉。護國軍若能迅速進入湖南、江西,甚好。章行嚴何日東渡日本?望令其即刻啟程,並請預先電告。——興,二十五日。”

大部分身份的確認都來自書記員的註釋。在開頭那一串名字旁,他寫了林虎・李根源等ノ字ナラン,即“大概是林虎、李根源等人的字”;他也是在猜,而其中一個肯定是蔡鍔的字松坡。他把湘贛注為湖南江西,即湖南和江西;把東渡注為日本ニ來ル,即來日本。章行嚴就是章士釗,黃興的親密同志。有兩個字是日期,用的是中文電報中表示日期的韻目代日:哿 = 20日,徑 = 25日。署名的最後一個字徑,與附函上的發電日期完全吻合。這一吻合是證明這份譯文屬於這份電報的最好的單項檢驗。

更正,第二輪。上面的連貫文字是書記員根據第0248幀所作的意譯(50字)。在500 dpi 下檢視第0247幀上的草書,共46字:隱印崧誥邕行諸兄鑒正發書 · 間適接哿電敬悉一切護國 · 軍能速入湘贛甚好[章]行嚴何日 · 東渡望速啟行先電示興徑,其中章是行間補寫的。這一字數與46個假名三元組恰好吻合;見第03節。

草書中有幾個字形仍不確定,這裡是綜合兩幀給出的。各列字數為 2 + 12 + 11 + 12 + 11;Tomokiyo 的筆記給出了同樣的數字,卻把它們加成68,實際相加是48。

03 方案

四十六個字對應138個可用假名,就是每個字三個假名,末尾多出一個假名。這確定了比率。問題在於每個假名的哪一部分在起作用,而五十音圖的形狀回答了這個問題:它是一張十個子音行乘五個母音的網格。

—
K
S
T
N
H
M
Y
R
W
A
KA
SA
TA
NA
HA
MA
YA
RA
WA
I
KI
SHI
CHI
NI
HI
MI
—
RI
WI
U
KU
SU
TSU
NU
FU
MU
YU
RU
—
E
KE
SE
TE
NE
HE
ME
YE
RE
WE
O
KO
SO
TO
NO
HO
MO
YO
RO
WO

如果子音行承載一個數字,而母音可以自由選擇,那麼明文中重複出現的字,會重複為同一組行的三元組,但不一定重複為同一組假名的三元組。這是一個可檢驗的預言,而計數結果毫不含糊。在46組中:

讀解觀察到的重複隨機預期置換檢驗
子音行71.03p = 0.006
母音88.28p = 0.70
字面假名1——

子音行重複了七次,而隨機預期只有一次。母音重複了八次,隨機預期也是八次:在這種分組下,母音不承載任何資訊。而表面的假名,也就是截獲者實際看到的東西,在四十六組中只重複了一次。機制在這些重複的組本身中清晰可見,同一個字被拼成兩種不同的樣子:

S K N → SE-KA-NA 和 SHI-KO-NU
R — H → RE-U-HO 和 RE-O-HI
T — H → TA-U-HO 和 TE-U-HI
S K H → SA-KU-FU 和 SHI-KI-HE

那是最初的分析,而這些幀糾正了它。重新獲取並在500 dpi 下檢視後,第0247幀在標題之後有四列,分別為12、11、12和11個字,共46個,正是假名三元組的數目:

隱印崧誥邕行諸兄鑒正發書 · 間適接哿電敬悉一切護國 · 軍能速入湘贛甚好[章]行嚴何日 · 東渡望速啓行先電示興徑

上面早先那段50字的明文依據的是書記員在第0248幀上的日文意譯;草書原文有46個字,章是行間補寫的。這段明文中,行重複三次(位置6、32、41),速重複兩次(26、39),電重複兩次(17、43)。在上面的分組下,這幾對中只有一對吻合。去掉第106位的一個假名,即第36個字開頭 OHIKE 中的 O,從那裡起的每個三元組都移動一位:行三次都成了 KE-KI-NI,速兩次都是 HE-U-HA,電兩次都是 RE-U-SA,末尾多出的 SU 則補全了最後一個字。歸檔的電報多了一個假名,而這種程式碼是確定性的:同一個字總是同樣的三個假名,母音也不例外。

因此,表中的七次子音行碰撞並不是同一個字用不同母音寫出。移位之後,它們是若干對不同的字(印/護、誥/日、鑒/間、書/敬、國/嚴、甚/何、諸/示),共享同一組行三元組,只在母音上不同。母音承載資訊。最初分析中保留下來的,是比率,即每字三個假名,以及假名所在的行與其程式碼值相關這一事實;行碰撞超出隨機預期的部分,正是這種相關性從外部看上去的樣子。在50個假名的音節表上,三個假名可以定址125,000個條目,遠多於任何私人程式碼本;最自然的解釋仍然是一種三位數程式碼,每一位數字寫成一組假名中的一個,只是這些組並不是行。

對此做過一次檢驗,結果失敗。如果這些行是一本按字典順序編排的程式碼本的數字,那麼十個行的某種置換,應能使42個不同字的程式碼號按標準電碼順序單調排列。在全部3,628,800種置換中,最好的 Spearman rho 是0.524;對明文做十二次隨機打亂後進行同樣的搜尋,得到的零假設分佈均值為0.468,最大值為0.614。沒有訊號。

04 仍未解決的部分

同一程式碼的第二份電報可以解決這兩個問題。這一份解決的是方案、明文,以及那個掩蓋了重複的傳輸錯誤。

05 來源