中文譯本 · 原作 Daniel Bourdeau《Unsolved Historical Ciphers》 以 CC BY 4.0 釋出,本頁由 JIC 翻譯,非原作者官方版本,譯文如有出入以英文原頁為準 · 檢視英文原頁 ↗
S2 oo 9 al x u1 M r1 n1 x r1 · D oo n1 D 9 H2 S2 r1
[ri]solutamente · concluse

費拉拉 → 法國 · 由圖形符號構成、帶名碼本的同音替換密碼 · 1529年2月23日和27日

Sormano 與 Passano 自費拉拉致弗朗索瓦一世,1529年2月

弗朗索瓦一世
致弗朗索瓦一世

BnF Français 3096 第63、65、66號 · 弗朗索瓦一世駐費拉拉使節的三封密信 · 在縮微膠片上試了八種方法均告失敗;隨後套用了 George Lasry 2023年的金鑰,它與這裡推出的22個值中的20個一致

公爵的答覆:per cosa dil mondo non voler … se alcunamente accetare il regno · 本頁更正了自己先前的兩項說法

Arya Sanketbhai Patel · 釋出於 · 更新於

方法:用已知金鑰讀出 · 程度:部分(佔該密碼的5%)

摘要。弗朗索瓦一世駐費拉拉使節1529年2月23日和27日的三封信,BnF Français 3096 第63、65、66號,用的是由圖形符號構成、帶名碼本的同音替換密碼。金鑰是George Lasry 的,2023年發表在 Tomokiyo 的 cryptiana 上,依據本卷中帶注的 f. 113 構建。它是在從縮微膠片復原金鑰的八次嘗試都失敗之後才找到的:這位書寫者用了大約三十六種字形來表示約二十個值,而1960年代的縮微膠片分辨不出它們。隨後把 Lasry 的金鑰用於第65號的幾小段,並與副本第66號核對。在找到這套金鑰之前,這裡推出了22個值,其中20個與他的表一致;錯的兩個恰恰是阻礙進展的那兩個。核心段落是公爵的答覆:“risolutamente concluse per cosa dil mondo non voler … se alcunamente accetare il regno”,他斷然表示無論如何都絕不接受王國。文獻方面的發現可以獨立成立:第63號被認為遺失的第三頁、以明寫段落為孿生副本提供猜詞的副本,以及第二位署名者的身份。程度:部分,約5%的密文已解密;三封信的完整轉錄尚待完成。第00節更正了本頁先前的兩項說法。

00 先說兩處更正

這份報告先前說過兩件不實的事。在此說明。

01 檔案,以及一頁並未遺失的紙

Gaspare Sormano 是米蘭法學家,國王讓他“resident aupres de mon cousin le duc de Ferrare”;他和一位只署名Ioachin的同僚,在1529年2月法國正在失去義大利之際,從費拉拉寫信給弗朗索瓦一世。這些信收在一部 Fontanieu 彙編裡,數字化自一卷黑白縮微膠片,每幀是一個雙頁跨頁;畫布編號等於張號加四,這一點已在兩張標有張號的葉上核定。目錄的描述有三處需要更正。

件號字母葉密碼
62Sormano → 國王,1529年3月22日f. 113短段落,行間解讀
63Sormano 與 Ioachin → 國王,2月penultimoff. 115、116和123四個頁面,密集;一處註釋
64Langeac 與 Ioachin → 國王,威尼斯,5月6日ff. 117–118無
65Sormano 與 Ioachin → 國王,2月23日ff. 119–120三個頁面,密集
66同上,背注“duplicata”ff. 121–122三個頁面,密集
67Sormano 致烏爾比諾公爵信的抄本f. 124四行,頁邊解讀

第63號是完整的,它的最後一頁是 f. 123。這封信在 f. 116v 頁尾處句子寫到一半就斷了,而目標描述只說它的最後一葉不在目錄所暗示的位置。它就是 f. 123,裝訂時錯了位,放在副本之後:頁尾編號為“3”,而 ff. 115和116的編號是“1”和“2”;它接續那句斷掉的話,以落款和“Sormano, Joachin”兩個簽名結束,日期為“Da Ferr[ara] p[en]ultimo de Febraro M D XXVIIII”。它空白的背面橫寫著地址背注“…et Sormano / de penultimo febraro 1529”。所以這封信終究是有日期的,而1529年2月的penultimo是27日,不是目錄給出的28日。與其餘各件編在一起的第64號根本沒有密文;而 f. 116v 上有第三處未被記錄的解讀:一個雙字形碼組上方寫著“de Venetiani”,這表明這種密碼帶有名碼本。

02 為孿生副本提供猜詞的副本

第66號幾乎逐字重複第65號,背注為“duplicata”,但兩位文書加密的是不同的段落。第66號明寫“fatta che hebbimo la reverentia a Madama Rainea et al Sr Don Hercole”的地方,第65號把它放在一段密文裡;第66號寫出“per la grandezza sua ricercava tempo per meglio pensarvi, presimo aspettar la sua final risposta, et in sto mezzo col Sr Don Hercole di nuovo fossimo, et fattogli intender”的地方,第65號加了密;反過來,第65號明寫“et presentato le lre di vra Mta di credenza … et in nome di vra Mta”的地方,第66號加了密。核對了四處相互對應的段落。結果是,這對信件自己就提供了猜詞,而且是文書本人的拼寫,而不是後人的轉述;把兩份明文合在一起,不碰密文就能復原2月23日那封信的大部分內容。

03 金鑰,以及它驗證到了什麼程度

BnF Français 3096 第124張正面:四行符號密文,左側頁邊有同時代的解讀
BnF Français 3096,f. 124r:Sormano 致烏爾比諾公爵信的抄本。四行密文,用一個雙橫參照符號連到左側頁邊由同時代人寫下的解讀:“un cappitaneo suizzeri nominato calzolite ch al p[rese]nto si retrovava ne l’aquila…”。161個明文字母對應約161個字形。影象:法國國家圖書館,fr. 3096 f. 124r,經 Gallica(btv1b9060015d)。

這種密碼是逐字母對應的同音符號字母表,每個常用母音有三四種寫法,每個子音一兩種,另有名碼本、一個句號標記和一個連線標記。Sormano 在第62號裡也明寫了這一點:他是應 Ioachin 的要求“in la mia cifra”寫的。復原的鏈條很短,可以核查:

二十二個值,其中十三個經過兩重確認,同音符結構也已理清。然後就停住了。

04 金鑰復原為何停下:八種方法

障礙在於影象:這位書寫者用了幾種字形,它們之間的差別比膠片能記錄的還小(區分i和l的兩個像rho的形狀,三角形與alpha,chi與帶鉤的4,一筆直畫與帶尾的4)。試過的每種方法都栽在這幾對上。

方法結果
對切分出的字形做二值掩碼重疊(Jaccard)把錯誤的配對排得最近
模糊化、容許平移的掩碼餘弦相似度,在一行已知文字上調參區分度0.017;聚類40%
最近模板分類,用第1行去分類第2行正確率26%
灰度NCC圖塊,留一法正確率11%
人眼閱讀,事先知道明文21個字母對17個
人眼閱讀,事先不知道明文不成義大利文
語言模型 Viterbi 解碼流暢的編造義大利文
自動畫框,再在7倍放大下人工識別看得清,仍自相矛盾

另外還查了兩種可能。IIIF 服務報告整幅跨頁母圖為8657 × 5876,每頁約4,300畫素,所以上面用的放大裁圖只是對一個50到60畫素字形的插值,不存在更多細節。而且這一卷裡沒有金鑰表。

第七行是個警告。處理有噪聲的替換密碼,標準做法是把字形轉錄當作機率性的,在語言模型下解碼,而這些信件提供了7,194個拼寫正確的明文字元,足以訓練一個模型。用161個已標註猜詞字形算出的最近樣本發射得分、一個義大利語字元4-gram模型和 Viterbi 解碼,第65號加密的結論部分出來是這樣的:

echeretantacontaracherarandetolandicheretrarerararen
onerarererarereranetarenenondendetonderiochera
raralentanererenetondiondereteneranecherandeta

這看上去是流暢的義大利文,卻完全是編出來的。發射準確率低於約40%時,語言模型就不再糾正字形模型,而是開始從語料中最常見的模式(che、tanta、ra、onde)生成文字,拼湊起來什麼意思也沒有。讀者如果不拿它去和字形核對,就會把它當成解讀歸檔。對這些段落的任何所謂解讀,都應該要求它拿出逐個字形的證據。

05 這些信講了什麼

這裡的一切都來自明寫段落,或來自這一卷之外。沒有任何內容是解碼得來的。

出使。Ioachin 於“Zobia passata”(上週四)到達費拉拉,徑直前往 Sormano 的寓所,向他出示國王的指示和授權,兩人定下了口徑。他們向Madama Rainea(法國的勒妮,前一年嫁給埃爾科萊·德·埃斯特)和埃爾科萊大人致意,呈上國書,以“molte efficacissime ragion”向阿方索一世公爵提出國王的建議,提醒他“la grande opera che in beneficio della sua persona, stato, casa et successione vra Mta havea fatto”。公爵感謝他們“la cosi grande et honorata offerta”,說他不僅樂意,而且懇請國王惠允[密文],卻不肯給出答覆:“la cosa per la grandezza sua ricercava tempo per meglio pensarvi”。他們等候他的最終答覆,同時透過“veramente desideroso far servicio a vra Mta”的埃爾科萊大人做工作。他們的後備人選是元帥 Trivulzio,信中三次提到他:他在公爵面前的“auttorita et credito”會“assai conferira et servira”,預計他前往威尼斯時會途經費拉拉,2月23日的信就是以等候他作結的。

Ioachin 是誰。目錄中的“Joachim de Vaulx”和熱那亞談判代表Gian Gioacchino de Passano,Vaux 領主是同一個人,法國人簡稱他 Jean Joachim。有三點證據:弗朗索瓦一世寫給 Jean du Bellay 的信中提到“Monsr de Vaulx, Jean Joaquin”;David Potter 的清單註明 Passano“fut envoyé a Ferrare d’où il écrit le 23 février (BnF, fr. 3096, fo. 119-121)”,那就是第65號;Molini 刊印的威尼斯來信中,寫信人說到“le lettere … da Ferrara per il Sig. Gaspar Sormano et per me Ioachin”。

實際提出的是什麼。國王約在1529年1月30日寫給 du Bellay 的信說明了 Passano 所負的使命:“A ceste cause expedie icelluy de Vaulx avec pouvoir de proposer aux Venitiens, Fleurentins, duc de Millan et de Ferrare [et autres] afin si faire se peult une si saincte salut[aire alliance]”:即一個以教皇為首、法國和英國為締約方的反皇帝的義大利總同盟,“moyen de rompre les desseings et entreprinses de l’Empereur et d’avoir toute l’Ytallie contre luy”。這就是信中所說的“instruction et mandato”,那份“cosi grande et honorata offerta”也必然與此有關。本條目的目標描述斷言阿方索“拒絕為自己接受那不勒斯王國,也拒絕法軍統帥之職”。國王的指示描述的是同盟,而不是王國,而弗朗索瓦一世對那不勒斯的權利主張只維持到那年8月的康佈雷和約,所以許以王國是可能的,但在查閱過的來源中沒有證據。我由此錯誤地斷定這一說法沒有依據。密文的結論有利於這一說法(見下一節)。同盟是此行的差事;王國顯然也擺在了桌面上。

第67號,靠頁邊註解讀出來。一位名叫 Calzolari 的瑞士隊長帶著1,200名步兵(瑞士人和德意志僱傭步兵)駐在拉奎拉,他們想投過來“al beneficio de la lega”。Sormano 認為此事“nõ de picolo momento a beneficio della lega et damno d’inimici”;威尼斯人只肯付自己那一份,費拉拉又籌不到錢,與其等國王回覆而坐失良機,他便以自己的信用向烏爾比諾公爵作保,答應在費拉拉或佛羅倫薩開一張可靠的匯票,並保證國王會付款。Molini 刊印的5月6日威尼斯來信顯示了這件事所屬的行動:同盟正在把帝國的僱傭兵從那不勒斯王國收買過來(“quelli Alamani che si leveranno dal servicio de gli nemici … al soldo de la lega si conduchino”),而敵方“per meglio asicurarssi de l’Abruzo, et maxime de l’Aquila”在那裡修起了一座要塞。

06 用 Lasry 的金鑰解密

George Lasry 的 Sormano 密碼金鑰表:每行標一個字母,各列出該符號約十個手寫樣本
Sormano 密碼,金鑰由 George Lasry 於2023年復原:這張示例表依據 BnF Français 3096 f. 113 構建,也就是本卷裡那份帶注的對照。a有四種寫法,e四種,i四種,o三種,u/v四種,s兩種,另有雙字母cc和ll:大約三十六種寫法對應約二十個值。每個值有十個樣本,才使它們能夠區分開來;缺了這一點,八種方法都敗下陣來。影象:George Lasry 製表(2023),依據 BnF fr. 3096 f. 113,經 S. Tomokiyo,Cryptiana。

這裡推出的22個值中有20個一致。對照這張表,我從兩份同時代解讀中獨立推出的值(n、c、a兩次、p、i三次、t、o兩次、s、u/v兩次、e、r、m、q、h)全部吻合。錯了兩個:數字4是i,不是e;數字3是a,不是o。正是這兩處錯誤造成了卡住calzolite的那些矛盾。這張表還提供了我缺少的值(數字9=l,帶點方框=ll,雙f=f,大寫S=g,交叉橫槓=cc),並糾正了一個猜測:我當作句號標記歸檔的帶點圓圈,其實是字母i。

這套金鑰從頭到尾都驗證得通。第65號中有一段的明文由其孿生副本明寫給出,在這一段上,金鑰給出的正是孿生副本里的原話:

glyphs   S2 oo 9  al x  u1 M  r1 n1 x  r1   D  oo n1 D  9  H2 S2 r1
key      s  o  l  v  t  a  m  e  n  t  e    c  o  n  c  l  v  s  e
         [ri]solutamente                    concluse

公爵的答覆。在第65號關於那次覲見的敘述中,緊接在那幾個詞之後,密文給出“per cosa dil mondo non voler … se alcunamente accetare il regno, né [ta]manco far …”。連同前後的明文:

“… finalmente ringratiandola della cosi grande et honorata offerta che gli era piaciuto fargli, risolutamente concluse per cosa dil mondo non voler … se alcunamente accetare il regno, né [ta]manco far … et il parlar suo fu di sorte che [Jo Sormano mi parue quasi chiaro]…”

他感謝他們如此重大而體面的提議,並斷然表示無論如何都絕不願以任何方式接受王國,甚至也不願……,這個分句裡本該是法軍統帥之職,與上文一致,但尚未有把握地解密出來。所以費拉拉的拒絕就在密文裡,用的是語氣強烈的per cosa dil mondo,而承載它的這個句子,在前面兩個詞處就受到孿生副本明文的控制。

剩下的是轉錄。需要對全部三封信做完整轉錄。我的眼睛仍會把i的四種寫法中的某些與o的三種寫法混淆,其中有幾種都是圓形中間帶一個記號,所以個別詞需要核對;上面的解密,凡是有孿生副本控制或義大利文毫不含糊的地方,都是可靠的。方法一節裡的程式(自動畫出字形框,再在約七倍放大下對照 Lasry 的樣本用眼睛識別)就是完成它的辦法。

07 我曾去找的猜詞,現已過時

Molini 的Documenti di storia italiana第二卷刊印了這幾位使節的其他信件,連同它們的同時代解讀,而且明說了這一點:關於 Sormano 1529年4月13日自費拉拉發出的信,他註明“Alcune espressioni sono in cifra, con sopra l’interpretazione di carattere sincrono, e sono quelle impresse in corsivo”:加密的短語依據行間解讀用斜體排出。那封信用的是 Sormano 自己的密碼,也就是我們這幾封信裡的“mia cifra”。

要利用它,就得弄清 Molini 所用的ancien卷號。偏移量是5525:anc. N = Français (N − 5525),經過四次確認——anc. 8621 = fr. 3096(見其自身的說明),anc. 8499 = fr. 2974(“formerly catalogued as 8499”),anc. 8525 = fr. 3000,anc. 8530 = fr. 3005;另外 Potter 為 Molini 稱作8525 c. 69的那封信引用 fr. 3000 fo. 69,也獨立證實了這一點。隨後又在葉面上驗證了這一做法:fr. 3000 fo. 74上有密文,也有完整的行間解讀,其註釋與 Molini 的斜體逐字吻合。它的字形屬於另一種密碼,混有數字:是 Langeac 和 Passano 的威尼斯密碼。

所以有一份檔案能破開這些信:BnF Français 2974,第94張,Sormano 1529年4月13日自費拉拉致蒙莫朗西的信,用的是 Sormano 的密碼,帶有同時代的行間解讀,而其文字 Molini 早已刊出。把那份刊印的明文與這些字形對齊,就能在正確的密碼裡得到一條長猜詞,應當能得出整個字母表,每種寫法都有若干樣本,而這正是這次嘗試所缺的。Molini 刊印的五封 Sormano 信件中,只有這一封帶有密碼說明;其餘幾封他只說“È autografa”。偏偏這是這一組手稿中法國國家圖書館唯一沒有數字化的一份:只有縮微平片,複製底片號S 39769。Molini 沒有刊印第63、65、66號,所以這幾封至今未刊,也未完全解讀。

08 方法,以及下一步該用的程式

由於沒有可用的影象處理庫,整個流程是純 Python 寫的: sips -s format bmp 寫出一個未壓縮的BMP並直接解析,然後是閾值分割、連通域、根據水平墨跡分佈檢測文字帶、拆開連寫字形並吸收碎片的清理、形狀聚類,以及用迭代 Needleman–Wunsch 對齊猜詞。在 f. 124r 的猜詞上,它找到了4行中的4行文字,161個連通域對應161個字母,這本身就獨立證明了這段是逐字母對應的,沒有音節碼組。

找到的最佳程式,也是最後一個,是混合式的:字形框取自自動切分,這一步是可靠的;每個字形則在約七倍放大的單詞級裁圖上用眼睛識別。用眼睛轉錄整行會切錯;自動分類會認錯;混合法兩樣都不犯。拿到 fr. 2974 猜詞的人應該用的就是這個辦法。

10 資料來源

未經驗證:這裡的每處解讀都出自縮微膠片影象或印本,第63、65、66號的加密段落只解讀了短短几段。已核查:張號對應、檔案清單、第63號的頁碼和日期、第65號與第66號互補的加密方式、22個金鑰值。未核查:巴黎的原件,fr. 2974 fo. 94。