01 五封信
这一卷(ark btv1b52503046q,486帧,127张)是 Ruffo di Scilla 亲王家族的亲笔信收藏,1854年售出,1857年由 BnF 购得;Morel-Fatio 于1892年将其编目为第172号。其中一百件是欧洲大多数君主写给斐迪南和伊莎贝拉的信。有五件全部或部分加密。条目编号依据著录;张号是该卷自身的编号,而帧号必须根据著录来对应,因为 Gallica 上几乎每一帧的标签都是 NP。
| 件号 | 张 | 帧 | 字母 | 密码 | 状态 |
|---|---|---|---|---|---|
| 第5号 | 5–6v | 32–35 | 那不勒斯的费德里科三世致天主教双王,San Germano,1497年1月11日;意大利语,部分加密 | Joan Ram Escrivà 的第1号密码 | 已破解并刊印,Parisi 2020 |
| 第92号 | 116–116v | 440–441 | Gonzalo Fernández de Córdoba 致 Lorenzo Suárez,1500年8月17日;抄本寄 Almazán;西班牙语,明文与密文混合 | Cifra general de los Reyes Católicos | 本文证实了密钥并部分读出信件 |
| 第93号 | 118–118v | 446–447 | Lorenzo Suárez [de Figueroa,驻威尼斯大使] 致天主教双王,威尼斯,1504年2月24日;全文加密 | 秘书处体例;码组首字母 c/g/h/l/m/n/p/q/r/t/z | 未解 |
| 第94号 | 120–121v | 452–455 | 西西里总督致斐迪南,墨西拿,1503年4月27日;西班牙语,明文与密文混合,四页 | 秘书处体例;码组首字母 g/l/m/n/p/r/v/z | 未解 |
| 第95号 | 122–122v | 458–459 | 无收信人的密信,1497年1月8日;全文加密,scriptio continua(连写) | 字母表由 G. Lasry 重建,2022年 | 本文部分读出 |
这一卷中任何地方都没有保存第93、94或95号的解读。f. 121v 上有总督那封信的抬头 Alto y muy poderoso prinçipe Rey y Señor、蜡封,以及后人沿左边距竖写的一条西班牙语批注:Del virrey de Siçilia en çifra。这就是档案中任何人对它说过的全部话。
五封信都是同一个机构的风格,这里集中描述一次,因为下文的一切都以此为基础。斐迪南秘书处的密码同时包含两样东西:一份同音替换字母表,每个字母有三到五个自创符号;以及一份由两字母、三字母和四字母码组(辅音、元音、辅音)构成的名码本,用普通拉丁字母以同一笔迹写成,代表词、名字和音节。名码本是单部本:词汇按字母顺序排列,码组以固定顺序排在旁边,因此码组的首字母大致表明其明文在字母表中的位置。这一时期有三份这样的密钥已刊印或已重建,每份使用不同区段的首字母。正因如此,才能在一个词都没解读出来的情况下,判断一封信用的是哪份密钥。
02 第5号:2020年已有印本解读
首先检查的是有没有现成的解读。用馆藏号而不是密码去搜索,找到了 Ivan Parisi 的 Un cifrario in prestito per una lettera segretissima di Federico d’Aragona re di Napoli ai Re Cattolici nel BnF, Espagnol 318,载于 Studi di storia medioevale e di diplomatica,n.s. IV(2020),第157–177页,开放获取,DOI 10.54103/2611-318X/14378。文中刊印了整封信。
这篇文章的要点是一个反常现象。阿拉贡的费德里科——那不勒斯最后一位阿拉贡王朝国王——于1497年1月11日写信给斐迪南和伊莎贝拉,确认他九岁的儿子、卡拉布里亚公爵 Ferrando 与一位西班牙公主联姻的预先协议。他让人把秘密部分用西班牙大使的密码加密,那是发给当时驻那不勒斯的 Joan Ram Escrivà 的密钥。Parisi 根据一个西班牙语使用者才会犯的错误认定了加密者:写这份密文的人在 possano、obedientissimo 和 promesso 中没有使用双 s 符号,意大利人不会犯这种错,西班牙人却会。所以,那不勒斯国王把草稿交给了大使,由大使誊清并加密。
信中第一行明文就点出了他的名字(Da poi de havere resposto ad micer Joan Scrivà, oratore de le Maiestate Vostre),这是该叶上唯一表明这是一份借来的密钥的线索。Parisi 列出的名码本元素在3000像素的 Gallica 图像上清晰可辨,并与图像吻合:
qix del, qao duque, qav de, qae con, qed cosa,
qie como, rae el, rof en, ru mensajero, saf Italia,
sul la, tad no, tay parte, vee que, vet si,
vog sobre, xer 和 xoq Vuestras Altezas, xit una, pam bien。注意首字母的区段:p、q、r、s、t、v、x。这一点在§05中会很重要。
03 第92号:对照注释证实密钥
f. 116 的开头写着发信人的说明 la respuesta q[ue] enbio a los s[eño]res en xbij de ag[osto] 1500,正文以明文开始:
Muy mag[nifico] Señor: a los xiiij d[e]l presente recebi v[uest]ra letra con hun breve d[e]l papa y otras dos cartas del embax[ad]or veneçiano con uno suyo, dando priesa en my yda a la resistençia del turco. E porq[ue] esto es conforme a la voluntad e mandami[ento] q[ue] yo tengo de sus al[teza]s, en virtud de Jhu Xpo yo me dispongo a ello con toda la celeridad y presteza q[ue] el caso requiere…
随后两页明文与密文交替。写信的是“大将军” Gonzalo Fernández de Córdoba,收信人是著录中的那位 Lorenzo Suárez(Lorenzo Suárez de Figueroa,西班牙驻威尼斯大使,1506年卒于任上,Galende Díaz 列出了他本人的加密信件),内容关于对土耳其人的远征。这是为秘书 Miguel Pérez de Almazán 保存的抄本。Tomokiyo 关于西班牙密码的页面指出,“大将军”在这封信中“used this cipher”(用了这份密码,即斐迪南和伊莎贝拉约1500–02年的通用密码),并把这封信本身列为没有已知解读。
这一点可以检验,因为后人在 f. 116r 的行间写了部分解读。这位注释者解读了几个词就停下了;他的词就是对照。
h boy zez xiz 7 xuy baz。在刊印的密钥中 boy 是 Tiempo, zez Por, xiz Esta,
xuy En, baz Tanto; 7 是字母表中的 r,而 h 是字母表中的 e,即注释者拼作 y 的那个连词。图片:Bibliothèque nationale de France,Espagnol 318 f. 116r,来自 Gallica(btv1b52503046q)。Juan Carlos Galende Díaz 于1994年刊印了这份密钥,依据的是 Real Academia de la Historia 收藏的一卷十二份密码(B.R.A.H. 9/15):他的附录1就是 Cifra general de los Reyes Católicos,即该卷的 ff. 7–9。对照注释,他的图版给出八处独立吻合,没有冲突:
| 该叶上的注释 | 密码 | 刊印密钥中 |
|---|---|---|
| lo | yuy | Lo |
| y · tpo | h · boy | (字母表 e)· Tiempo |
| por | zez | Por |
| estar | xiz + 7 | Esta + r |
| en | xuy | En |
| tanto | baz | Tanto |
| el negoçio | xix zol | El · Negocio |
| de | xup | De |
| puede | zuy | Puede |
| 无 | zik | No |
| — | bob | Que |
于是一行以注释为锚点的文字可以一路解下去:
ct h boy zez xiz 7 xuy baz ff k …
pt y tiempo por esta r en tanto p g …
得到 …y tiempo, por estar en tanto…,正是注释者在其上方写的内容。f. 116v 结尾一半是明文,代码嵌在句子中,不用密钥也能看出句意:…no desconfio que mucho se pudiera aprovechar … esta var … zin se ha ofreçido … yo me desnudo y descargo y me satisfago en que n[uest]r[o]…,其中 zin = Nápoles, xar = después, biz = toda,
xuy = en。其下是后来清点者的笔迹:Inventº 11 Ottº 53。
这样,第92号的密钥就确定了,剩下的是转录和解读:码组是普通拉丁字母,容易转录,而字母表符号必须逐一与一份1994年复印的十六世纪密码表比对。这里把密钥转录为
keys/cifra_general.txt:图版(第167–173页)上的683个码组,外加二十一个人物符号:Papa = A,Emperador = B,Rey de Françia = F,Rey de Spanya = G,Reyna de Spanya = 4,Principe de Spanya = C,Rey de Inglaterra = S,Rey de Napoles = □,Duque de Calabria = R,Infanta doña Juana = oTT,Don Fadrique prinçipe de Altamira = S†。
两页的解读(2026年9月21日)
现在两页都已逐行转录,正面36行,背面11行,依据的是 Galende 在第167页刊印的符号字母表。这份笔迹偏爱几种样例行中没有出现的字形:A 的第五种写法(一个反写的 C 加一道交叉线)和 E 的第五种写法(一个 q 下方写个 k)承担了大部分元音,带横的 T 是密钥中表示 LL 的“双字母”符号(vituallas、Pulla、llamó),而明文笔迹中的 con- 缩写也出现在密文里(contenté con el、con color de)。约四分之三的词已解读。与明文段落合在一起,这封信说的是:
…no deve pasar … si no grande remuneración … por estar en tanto peligro el negocio, e a tanto lexos … [威尼斯占据着] Pulla [的] Brindizi y Otranto … que sera bien que [他们给我们] puertos de Italia donde esta armada se pueda recoger quando el tiempo lo requiriese, por no aver de bolver tan lexos para … poner nuestros dolientes y heridos y ropa e vituallas,[并整修] estos navios … sin los ynconvenientes de estar en casas agenas。[当教皇召我] para el cerco de … le demandé lo mismo por [借] Garcilaso, y lo ovo por bien … de buena voluntad; e por que los alcaydes eran españoles y criados del Rey nuestro Señor, yo me contenté … me parece deveys, Señor, fablar en esto con color de nuestro descanso y reparo. … segund su necesidad no creo que nada desto les sea ynposible … yo me desnudo y descargo y me satisfago en que [此事] en las manos。
这是 Gonzalo Fernández de Córdoba 在1500年秋联合进攻凯法利尼亚岛的土耳其人之前,通过西班牙驻威尼斯大使与威尼斯讨价还价:他会带来舰队,但要在意大利为舰队拥有自己的港口,就像教皇曾给过他的那样。完整的逐行转录和解读见 f116_reading.md.
有两项外部核对。Tomokiyo 的 cryptiana 页面源代码中,以注释形式保留着他本人对开头部分的部分解读,“[paresce?] me que tan buena obra como esta con tanto diferencia e trabaio desto armada no deve pasar caso solo cargo sin grande [r]emuneración”,这纠正了这里起初当作印刷错误的三个码组: zap is zag = me, bac is vac = armada,以及 xie = cargo,与刊印的一致。Sanuto 的 Diarii(第三卷,约第708–709栏)记载了八天后威尼斯方面听到的同样要求:西班牙大使告诉威尼斯驻罗马使节,Gonsalvo 想要一道 cruciata、优先地位、“qualli porto li piace a li bisogni” 以及粮食;10月在科孚岛外海,他又告诉威尼斯的舰队督察,他想要一个与他们的港口“seperato”的港口。
第三遍把 Sanuto 的用语(cruciata、jubileo、优先地位)作为猜词放到正面第8–11行检验。它们并不在那里,因为这几行权衡的是这项事业是否合双王心意;但第二遍确定了 zie 是 parescer,正是 Tomokiyo 猜测的取值: zie 后接字母 R I A 和 tener,得到 pareceria tener,而且同一取值符合全部五处。第8–11行现在解读为 si empresa a propósito de sus altezas … no hablo en ello … segun la necesidad dellos ay … en semejante acatamiento pareceria tener mas respeto a …。
尚未解读的部分。有五个码组无论出现在哪里,都与 Galende 刊印的取值相矛盾: bog (三次,刊印为 Rey de Portugal,可能 boz = todo),以及 zeb, zems, xob, bue。要么是1994年的图版印错了——它明显印错了别的一些——要么是这封信用的是一份有出入的密码表抄本;手稿 BRAH 9/15 ff. 7–9 可以解决这个问题。另有约十段字母符号未能确定(I 级),大多是在这一分辨率下无法区分 q 形的 N 和反写9形的 S。引文中的词,符号确定且西班牙语通顺的为 C 级,根据上下文补全的为 M 级。
04 第95号:有密钥而无文本
f. 122 是一叶写得密密麻麻的31行文字,没有地址,没有称呼,通篇没有一个明文词,日期为1497年1月8日,比卷末费德里科的那封信早三天。2022年5月,George Lasry 把一个“近似的”解答发给了 Tomokiyo,Tomokiyo 将其发表:一张字母表的图片,每个字母一到三个符号,另有一排未指派的符号和少数几个码组—— bac bnh bon dah daf dae oht bed dal boo del。从未有人刊印过明文。
凭肉眼把符号与那张图片对照是行不通的:÷ 与 ≐,普通的7、带小 o 的7和带横的7——这些区别在印刷的重建表上一清二楚,在1497年仓促的手迹中却并不分明。所以改为用机械方法把这一叶拆开。先做自适应阈值二值化;再把连通分量按水平重叠归并成字形,并把附加符号挂上去,得到31行共963个字形,每行中位数31个;然后对归一化的28×28位图做 Ward 聚类;最后对照 Lasry 的密钥,凭肉眼在样张上给各个类——而不是单个符号——打标签。
在做任何解读之前,先检验标签是否正确,检验的依据就是频率分布。干净的类约占963个字形的三分之二,所以它们在整叶中所占的比例都被压低了大约三分之一;要紧的是排序。按整页所有字形计算,e 占9%,a 占7%,o 占5%,n 占5%,然后是 s、c、u、r、d、m、t 和 i,q 垫底,约1%。这正是西班牙语的排序 e–a–o–n–s,而它来自别人重建的密钥和一次未使用任何语言信息的聚类。q 的1%也说得通,因为 q 在西班牙语中少见,但从不缺席。
etem uygrane sdcosa erono:…[so]bre muy grandes cosas … ero no…,grandes 中的 d 晚了一个符号。空白处是两个符号相互接触、被切分程序当成一个的地方。图片:本项目在 BnF Espagnol 318 f. 122r 第17行上的标注(Gallica)。在31条标注过的长条上逐行核对,解出来的是关于法国人的西班牙语。已核实的片段:…emos franceses…(第4行); bac que puedan merc[ed] … de Francia…(6);…dos cosas … a traer…(7);…con esto…(8);señoría … que esta … por(11);que me toca … mucho … sera … que bnh … haga(12);con esto … acorde … lo bueno…(13);…quedar … que … Francia…(15);…si a tratado … que gouernad … pero(16);…muy grandes cosas … no creo que…(17);…certaran … pues que se … esto … la parte aun(18);que se … encubren … que … quieren go- | -uernar(19–20,跨行);por obra creo que … amigo(22);escreuir a…(23);dificultad … en los…(25)。名码本码组以明写字母出现在符号串中间:
bac, bon 两次, bnh 四次, dal,可能还有 bed. bnh 是出现频繁的那个,最可能是一个人名或地名。
其间修正了 Lasry 的两处指派:形如 n 带交叉尾巴的符号是 m(Lasry 作 y);他的两种7形确证是不同的:普通的7是 d(构成 puedan),带小 o 的7是 s(构成 franceses 和 escreuir)。它们靠聚类能区分开,凭肉眼却不行,这就是第一次凭肉眼转录时把两者弄反了的原因。
约三分之一的符号仍未解决。逐行解读以
f122r_reading.md的形式存放在仓库中,逐行列出,未解读的地方用
… 标出。试过三种独立的方法:在长条上凭肉眼转录;聚类加语言模型的混合方法;以及一个无需切分的解码器,它把每个模板沿行滑动,再用动态规划拼接。三者在同样的三分之二上一致,在同样的三分之一上失败,这说明瓶颈在于 Gallica 4,077像素扫描件上的符号形状,而不在于方法。
05 第93号和第94号:密码家族已认定,密钥无法获得
这两封没有被解读。总目对它们的说法“unidentified cipher”(不明密码)可以收窄。两者都是按该机构密码的写法写的:单个自创符号,与两到四个拉丁字母组成的码组交错。第93号中的码组是 gto pie roe hug heg mat gnd gab zoe
mae cpm lnq hoe hac zup qup gre zen gne;第94号中是 gag rah mnb mms nob gik luy mei nen mok pol pat par paq vaz mal nyb nyl gob gib lob moe nak rag
lue。单独的符号是 + ÷ ʒ ff ıı :/ ⧻ 7.
码组首字母的区段是区分的依据,因为名码本是单部本:
| 密钥 | 码组首字母 | 使用者 |
|---|---|---|
| Escrivà 的第1号密码(Parisi 2004,附录 II) | p, q, r, s, t, v, x | 第5号 |
| Cifra general de los Reyes Católicos(Galende Díaz 1994,附录1) | v, x, y, z, b, c | 第92号 |
| “大将军”的 Gran cifra,1501–04年(Bergenroth;CNI 2018) | h, l, m, p, q, r, s, u/v | ? |
| 第93号 | c, g, h, l, m, n, p, q, r, t, z | — |
| 第94号 | g, l, m, n, p, r, v, z | — |
两者都落在两份已刊印密钥的范围之外,而在第三份的区段之内。有一条具体线索:Bergenroth 给出 LUQ = capitán,而第93号中有码组 lnq;在这种笔迹中 u 和 n 是同样的两道竖笔。他还给出 muy = de,而
muy 出现在第93号中。这只是一条线索:他的列表和 CNI 的列表都不完整,这两封信中的大多数码组两者都没有收录。
检验过一种替代假设,结果失败了。如果那些码组是一串串形似字母的符号而不是代码单元(Cifra general 自己的字母表就是这个样子,它的 i 画成3,o 画成 b,n 画成 q),那就不需要密钥,一个普通的同音替换求解器仅凭这一叶就能复原密钥。f. 118r 的第1–21行逐个符号转录,得到1,016个记号、40种不同符号,从八个起点出发,针对西班牙语5-gram模型做退火。最佳密钥每记号得分−3.5 nats,而真实的西班牙语为−1.8,输出也不是西班牙语。记号统计说明了原因:所有 p 符号中有66%出现在 pie之内, g 中有28%出现在 gto之内,而最常见的三元组(gto ×21, pie ×19,
gnꝺ ×15, heg ×13)过于集中,不可能是字母串。这些码组是不可分割的单元。第93号和第94号是名码本问题,需要密钥。
工作到此为止。Gran cifra 只以 Bergenroth 十九世纪的重建本存世,藏于 BNE MSS 20.211/52,而 Biblioteca Nacional 的查看器、检索和图像接口一律返回机器人验证页面;Europeana 和 Hispana 上都没有这份手稿;Internet Archive 上 Bergenroth 那十一卷 Simancas 抄本是手写的,OCR 几乎得不到任何东西(3.3 MB 文本中 cifra 只命中三次)。Arturo Quirantes 发表过两张密钥纸的照片,但一张是1494–98年第一次战役的字母表(如他所提醒,符号库相同而取值不同),另一张是第二次战役的部分列表。还有第二个候选有记载但未发表:Galende Díaz 所用的 B.R.A.H. 9/15 卷宗以 ff. 1–6 的一份 Cifra del visorrey 开头,他做了描述,但没有复制。而第94号正是一位总督的信。
给后来者的日期信息:第94号写于墨西拿,1503年4月27日,切里尼奥拉战役的前一天。第93号写于威尼斯,1504年2月24日,在加里利亚诺战役之后的几周里,那时那不勒斯刚刚永久落入西班牙之手,威尼斯正在决定如何应对。
06 方法,包括失败的尝试
这里几乎全部工作都是文献检索,而且顺序很要紧:先查馆藏号,再查密码。搜索 Espagnol 318 而不是“Spanish cipher 1497”,找到了 Parisi 的文章,一个下午就结了第5号;搜索这个密码家族,找到了 Galende Díaz 的附录,那正是第92号的密钥;搜索 Tomokiyo 做过的工作,找到了 Lasry 为第95号复原的密钥:cryptiana 说这封信“is solved”(已破解),并以图片形式发表了他的字母表,但没有明文。五封中有三封找到了现成的解读或密钥;这里没有复原出任何密钥。
机器方面是一条把一页符号变成字母序列的流水线,为第95号而建,可以复用:
seg.py (二值化), glyphs.py (分量归并), cluster.py 和 montage.py (Ward 聚类和样张), assign95.py (类到字母的对照表), lm.py (基于 Don Quijote 构建的西班牙语5-gram模型,规范化为当时字母表的二十二个字母),以及 hybrid95.py (一个在固定已核实的类的前提下搜索得分最高的西班牙语的解码器)。行距来自墨迹分布的自相关:f. 116r 为113像素,f. 118r 为128,f. 120r 为100,f. 122r 为114。
针对第95号未解决的三分之一做了三次尝试,记录在此,正因为它们没有奏效。
- 在切分前把每个字形裁剪到它所在的行带内,以免上一行的下伸笔画污染边框。结果更糟:行带把高的符号切成两半,残缺的形状做最近邻匹配时全都坍缩到 d 和 n 上。那些垃圾框是相互接触的符号,而不是下伸笔画。
- 无需切分的解码器:用 FFT 相关把每个已标记的模板沿行滑动,用动态规划从左到右拼接整行,得分与面积成正比,每跳过一列墨迹扣一次分,然后用语言模型对拼块解码。拼块数正确时,它复原的行与凭肉眼转录的一样,不多也不少;23%的拼块,其前两名字母的归一化相关之差在0.05以内,而语言模型得到这样的自由度,就在上面写出了 Don Quijote(don quiiote que el que)。
- 对第93号的字母串假设,见§05。
运行这些程序的机器上有一项应用控制策略屏蔽了 Scipy 的 signal 模块,所以相关运算直接用 numpy.fft
完成;源代码中保留了这一做法,以防有人碰上同样的墙。
07 来源
- BnF, Département des Manuscrits,Espagnol 318,Gallica 上的 ark
btv1b52503046q;Archives et manuscrits 中的著录cc349255。IIIFfull/full图像宽4,077–4,155像素,只有这些才够用;连续请求约六张后 Gallica 就返回 HTTP 429。 - Ivan Parisi,“Un cifrario in prestito per una lettera segretissima di Federico d’Aragona re di Napoli ai Re Cattolici nel BnF, Espagnol 318”,Studi di storia medioevale e di diplomatica,n.s. IV(2020),157–177——开放获取。
- Ivan Parisi,“La correspondencia cifrada entre el rey Fernando el Católico y el embajador Joan Escrivà de Romaní i Ram”,Pedralbes 24(2004),55–116;附录 II 收有第5号所用的字母表和名码本。
- Juan Carlos Galende Díaz,“La escritura cifrada durante el reinado de los Reyes Católicos y Carlos V”,Cuadernos de Estudios Medievales y Ciencias y Técnicas Historiográficas XVIII–XIX(1993–94),159–178;附录1即 Cifra general,第167–173页。
- S. Tomokiyo,“Spanish Ciphers during the Reign of Ferdinand and Isabella”,以及他介绍 George Lasry 各项解读的页面,f. 122 的字母表以图片形式发表于此。
- Arturo Quirantes,“El CNI y el (no tan secreto) código del Gran Capitán”和“Descubierta un segundo código del Gran Capitán”(2018),附有 BNE MSS 20.211 的照片。
- 工作文件、图像、密钥转录以及上文提到的所有脚本:targets/esp318/,其中 NOTES.md 记录了所做的尝试。
