01 문서
Tony Gaffney가 보내 주어 Schmeh가 올린 이미지는 밀라노 신문 자체가 아니라 로마의 낱장 인쇄물이다: Dispaccio del Card. Soglia. Tratto dal giornale l’Italia del Popolo 30 Giugno, Via Lata의 Clemente Puccinelli 인쇄. 댓글 작성자들이 하루 만에 신문을 식별했다(Helmut Winkler, Hans Jahr: 마치니의 Associazione nazionale italiana 기관지 L’Italia del Popolo, 제1년, 40호). 그 서문은 편집자들이 알고 있던 바를 이렇게 말한다.
두 문서가 이어진다. 첫째는 전부 평문으로 된 6235번 편지다. 교황은 교황 대사의 5월 27일 편지 두 통을 읽고 오스트리아 외무장관의 초청에 따라 황제를 따라가기로 한 그의 결정을 승인한다. “지시가 무엇인지는 같은 때 보내는 나의 암호 급보로 알게 될 것이다.” 외무부의 언어를 교황 자신의 뜻과 혼동해서는 안 된다. 둘째는 암호 급보로, 평문으로 시작하고(“귀하가 빈을 떠나 황제 폐하께서 지금 머무시는 그 도시로 옮겼다는 소식을 듣고, 이 기회에 이 급보를 그곳으로 보낸다”), 이어 숫자 14줄이 나온 뒤 한 문장이 평문으로 끊기고(“시간을 아끼기 위해 이 급보를 즉시 알려야 한다”), 숫자 두 줄로 끝나며, 1848년 6월 15일 로마, G. Card. Soglia라고 서명되어 있다. 아래쪽에는 Un premio non tenue è destinato al migliore interprete di queste cifre라고 적혀 있다.
사용한 전사는 2014년 12월 15일 Schmeh의 글 아래 네 번째 댓글로 올라온 Joe의 것이다. 스캔을 띠로 잘라 한 줄씩 대조했으며, 한 곳만 빼고 정확하다. 12행에서 인쇄된 …2251242496774740906…에 4 하나가 빠졌다. 이를 바로잡으면 블록은 숫자 955개다. 인쇄공 자신도 실수를 하나 했는데, 아래에서 다룬다. 인쇄물의 줄 안에 점이 있는 곳(3099.7.39, 67367.067)도 마찬가지로 무시한다. 텍스트는 점 없이 해독된다.
02 체계
키를 추측하기 전에 이미 숫자들에서 세 가지가 보인다.
- 5는 단어를 나눈다. 5마다 자르면 블록은 비어 있지 않은 연속 구간 102개로 나뉘고, 그중 92개는 숫자 개수가 짝수다. 홀수인 열 개는 1부터 4까지의 홀로 선 숫자 일곱 개, 그런 숫자로 끝나는 구간 하나, 인쇄 오류 하나, 떠도는 8 하나다. 홀로 선 1, 2, 3, 4는 구두점으로, 쉼표, 쌍반점, 쌍점, 마침표다. 마침표 4는 인쇄된 평문 문장 바로 앞에 온다. 5가 모든 단어 경계에 쓰이지는 않으며, 짧은 단어는 흔히 붙여 쓴다(conmio, oper, perdilui).
- 8은 부호군을 표시한다. 숫자 8은 쌍의 두 번째 자리에 결코 나오지 않는다. 8이 나오는 곳에서는 네 자리 묶음이 시작된다: 8247, 8319, 8620. 쌍은 숫자 0 1 2 3 4 6 7 9 여덟 개로 만들어지므로 칸이 64개인 표가 된다.
- 쌍은 글자와 음절이다. 쌍은 모두 355개, 서로 다른 것은 56개다. 알파벳에 필요한 것보다 기호가 많고, 코드보다는 훨씬 적다.
복원한 표. 행은 첫째 숫자, 열은 둘째 숫자다. 대시는 이 메시지에 나오지 않는 칸이다.
| 0 | 1 | 2 | 3 | 4 | 6 | 7 | 9 | |
|---|---|---|---|---|---|---|---|---|
| 0 | – | del | 없음 | k | s | ta | al | a |
| 1 | chi | m | in | – | ma | c | – | p |
| 2 | gli | e | ne | la | n | che | – | – |
| 3 | qu | da | – | b | mi | t | con | d |
| 4 | de | l | di | se | e | o | al | r |
| 6 | il | f | – | per | si | st | i | te |
| 7 | v (u) | ti | g | – | z | to | b | p |
| 9 | c | f | l | d | g | m | n | s |
동음자: e 21, 44; b 33, 77; c 16, 90; d 39, 93; f 61, 91; g 72, 94; l 41, 92; m 11, 96; n 24, 97; p 19, 79; s 04, 99; al 07, 47. 빈칸 여덟 개(00 13 17 27 29 32 62 73)는 이 메시지에 나오지 않는다. a는 칸이 09 하나뿐인데, 텍스트에서 가장 흔한 묶음이다(38번). 70은 u와 v이며, 겹쳐 쓰면 92 70 36 74 46 70 70 Lutzovv의 w가 된다.
코드 단어와 어간. 8XXX 묶음은 단어 전체 또는 글자로 마무리되는 어간을 나타낸다: 40 20 8424 67 degli (ordin)i, 19 09 04 99 09 8446 67 passa(port)i, 41 21 8433 16 67 19 46 le (parte)cipo. 아홉 개는 문맥으로 합리적 의심의 여지 없이 확정되며, 그 값은 알파벳순을 따라 올라간다.
| 8319 | 8340 | 8374 | 8422 | 8424 | 8429 | 8433 | 8446 | 8620 |
|---|---|---|---|---|---|---|---|---|
| Imperatore | istruzione | Monsignor | opportuno | ordin- | Padre | parte | port- | Roma |
이것은 Kent Ramliden이 2015년 1월 7일 댓글에서 1814년 빈 회의 당시 빈 교황 대사관의 암호를 바탕으로 기술한 설계다. 글자와 음절을 나타내는 두 자리 기호, 단어와 이름을 나타내는 네 자리 계열, 그리고 단어 구분자로서의 5. 그 암호에서는 단어 계열이 7로 시작하고 두 자리 기호가 5와 7을 피했다. 여기서는 8로 시작하고 5와 8을 피한다. 7을 표지로 삼은 그의 분석은 이 텍스트에 통하지 않았지만, 8로 하면 통한다.
인쇄 오류: 첫 번째 passaporti는 19 09 05 99 09 8446 67로 인쇄되어 있다. 그 안에 5가 있으면 단어가 둘로 잘린다. 텍스트 뒤쪽의 두 번째 passaporti는 19 09 04 99 09 8446 67이므로, 인쇄공이 4 자리에 5를 놓은 것이다. 1행의 si 뒤에 홀로 있는 8은 설명되지 않는다.
03 키를 복원한 방법
- 단순 치환은 실패하며, 그 실패가 정보를 준다. 5를 단어 구분으로 보고, 이탈리아어, 프랑스어, 라틴어 5-gram 모델로 단순 치환 솔버(담금질 기법, 쌍 하나에 글자 하나)를 돌렸지만 아무 성과가 없었다. 어느 언어에서든 글자당 약 −3.4 nats였다. 같은 솔버를 합성 대조 실험에도 돌렸다. 같은 길이의 이탈리아어 텍스트를 두 자리 기호 68개로 동음이자 암호화하고 단어 구분도 같게 한 것이다(
synth.py). 솔버는 대조 실험을 정확히 해독했다. 따라서 솔버에는 문제가 없었고, 쌍이 모두 단일 글자일 수는 없었다. - 노멘클레이터 솔버. 다음 솔버는 각 쌍이 글자 하나 또는 흔한 음절 하나를 나타내게 하고(쌍 하나에 값 하나), 8XXX 묶음은 미지의 단어로 따로 두었다. 그 출력 가운데 circostanze, intendendosi, indirizzata 같은 연속 구간은 우연한 키로는 나올 수 없는 상서국 문체의 온전한 이탈리아어 단어였다.
- 단어를 고정하고 손으로 해독. 그 세 단어를 고정하고 솔버를 다시 돌렸다. 그 뒤에는 텍스트를 손으로, 단어 단위로, 쌍 하나씩 해독하며 각 값을 그 쌍의 다른 모든 출현과 대조했다. Lutzovv와 Inspruck는 글자에서 저절로 나왔다. Morichini는 마지막 줄에 철자로 적혀 있다.
- 코드. 글자를 알게 되자 8XXX 묶음을 분리해 순서대로 늘어놓을 수 있었다. Imperatore 8319가 istruzione 8340보다 앞이고, 그것이 Monsignor 8374보다 앞이며, 그렇게 Roma 8620까지 이어진다. 알파벳순으로 된 일부식 코드에서는 미지의 묶음의 값을 알려진 묶음들 사이 어디에 놓이는지로 추정할 수 있다(§05).
04 해독
철자는 정규화함(암호에는 u 대신 v, 그리고 commeteva로 쓰여 있음); (…)는 문맥으로 보충한 코드 단어; [8xxx]는 복원하지 못한 부호군; 이탤릭체 문장은 인쇄물에서 평문인 부분
Con mio (foglio) del [8734][8760][8904][8739][8413] si le commetteva che in seguito degli (ordin)i dati a Sua Eccellenza il (Signor), [8227] di Lützow, di abbandonare (Roma), Ella si facesse del pari a richiedere i passa(port)i per restituirsi alla Dominante, o per condursi in (Colonia), che (è) (lontan)a della (guerra), (com)e [8704]e lo avesse creduto (opportuno). (Tuttavia) per nuove sopraggiunte circostanze Le (parte)cipo [8093][8102] del (Padre) che Ella rimanga in Inspruck presso l’(Imperatore) e ovunque egli fosse per recarsi; intendendosi sospesa la indicata delibera [8136] relativa alla domanda de’ passa(port)i: interessa [8131] a (Padre) (cotest)a nuova (istruzione), che Le viene indirizzata per tre diverse vie, (col fine di) assicurarne l’arrivo. A risparmio di tempo dovrà con ogni sollecitudine rendere ostensibile il presente dispaccio a (Monsignor) Morichini per di lui norma alle pratiche affidategli.
우리말 풀이
[…]일자 나의 (서한)으로 귀하에게 지시하기를, 각하 (Signor) […] Lützow에게 (로마)를 떠나라는 (명령)이 내려진 데 따라, 귀하도 마찬가지로 여권을 요청하여 수도로 돌아오거나, (전쟁)에서 (멀리) 떨어져 (있는) (쾰른)으로 가되, […] 귀하가 (적절하다고) 생각하는 (대로) 하라고 하였소. (그러나) 새로 생긴 사정으로 인해 성(부)의 […]를 귀하에게 알리노니, 귀하는 인스브루크에서 (황제) 곁에, 그리고 그분이 어디로 가시든 머물러야 하오. 여권 요청에 관한 앞서 말한 결정 […]은 보류된 것으로 이해하시오. 성(부)께는 […] 서로 다른 세 경로로 귀하에게 보내지는 (이) 새 (지시)가 확실히 도착하도록 하는 (것이) 중요하오 … 시간을 아끼기 위해 이 급보를 즉시 알려야 하오. (몬시뇰) Morichini에게 알려, 그에게 맡겨진 교섭의 지침으로 삼게 하시오.
괄호 밖의 묶음은 모두 글자로 철자가 적혀 있으며 선택의 여지 없이 해독된다. La Dominante는 수도, 즉 로마다. interessa로 시작하는 문장은 문법적으로 불완전하며, 그 동사는 미정인 묶음 [8131] 안에 있거나 그 뒤에 있다. 의미는 분명하다.
05 순위로 확인한 코드 단어
코드 묶음 열 개는 문맥으로 보충했다: foglio, Signor, Colonia, è, lontan-, guerra, com-, Tuttavia, cotest-, col fine di. 알파벳순 코드는 문맥과 독립적인 검증을 가능하게 한다. 확실한 기준점 아홉 개에 대해, 코드 값을 19세기 이탈리아어 말뭉치에서 가장 흔한 단어 1,500개를 정렬한 목록에서의 순위에 대응시켜 직선을 맞추었다(기울기는 단어당 코드 값 약 0.47; rankfit2.py). 기준점 자체가 이 직선에서 10~60 정도 흩어져 있으므로 그것이 허용 오차다. 그러면 각 문맥 판독은 자신의 순위로부터 예측값을 얻는다.
| 코드 | 읽기 | 예측값 | 차이 |
|---|---|---|---|
| 8110 | col (fine di) | 8114 | −4 |
| 8116 | Colonia | 8117 | −1 |
| 8120 | com(e) | 8122 | −2 |
| 8122 | cotest(a) | 8145 | −23 |
| 8211 | è | 8199 | +12 |
| 8247 | foglio | 8245 | +2 |
| 8310 | guerra | 8289 | +21 |
| 8346 | lontan(a) | 8339 | +7 |
| 8632 | Signor | 8596 | +36 |
| 8737 | Tuttavia | 8665 | +72 |
같은 직선에 대한 확실한 기준점: Imperatore +24, istruzione +21, Monsignor −14, opportuno −10, ordin- −11, Padre −10, parte −18, port- −41, Roma +60.
판독 네 개는 예측값에서 5 이내에, 다섯 개는 기준점 자체의 흩어짐 범위 안에 들어오고, 하나, 곧 Tuttavia는 그 범위를 벗어난다. 가장 큰 잔차 두 개인 Signor와 Tuttavia는 모두 마지막 확실한 기준점인 Roma보다 뒤에 있고, 둘 다 양수이며 Roma 자신의 잔차도 그렇다. 이 코드에서는 알파벳 뒷부분이 단어 목록보다 촘촘하고, 직선은 그 너머로 외삽되기 때문이다. 판독들은 서로 간에도 올바른 순서로 나오며(col < Colonia < come < cotesta < è < foglio < guerra < lontano) 기준점들 사이에서도 올바른 자리에 놓이는데, 이는 문맥만으로는 보장되지 않는 일이다.
순서는 가능성을 배제하기도 한다. con mio [8247] del의 뻔한 판독은 dispaccio이지만, d로 시작하는 단어는 8211의 è보다 위에 올 수 없다. 8245로 예측되는 foglio는 올 수 있다. di Lützow 앞의 [8227]을 Conte로 보려면 그것이 come(8120)와 cotesta(8122) 사이에 와야 하고, 확실한 기준점만으로도 8133 근처가 된다. 8227은 e–f 구간이다. 두 배제 모두 가장 가까운 문맥 판독에 기대고 있으므로, 그 판독들만큼만 확실하다.
06 역사: 하루 늦은 편지
페르디난트 황제는 1848년 5월 17일 빈을 떠나 인스브루크로 갔다. 교황 대사는 오스트리아 외무장관의 초청으로 그를 따라가 5월 27일 로마에 편지를 썼다. 암호와 함께 인쇄된 평문 편지는 그에 대한 교황의 승인이다. 로마와 빈은 단절 직전이었다. 교황령 의용군이 베네토에서 오스트리아군과 싸우고 있었고, 오스트리아 대사 Lützow 백작은 5월 초에 여권을 받았으며(로마의 Gazzetta 5월 9일 자가 이를 알렸다) Agostino Chigi 공의 일기에 따르면 5월 16일 저녁에 로마를 떠났다. 암호가 언급하는 이전의 지시, 곧 그 날짜가 열린 부호군 속에 있는 지시는 교황 측의 답이었다. 교황 대사도 마찬가지로 여권을 요구하고 귀국하거나, 전쟁에서 떨어진 쾰른으로 가라는 것이었다.
암호는 그 지시를 철회한다. nuove sopraggiunte circostanze가 무엇이었는지는 말하지 않는다. 니시비스 대주교이자 4월까지 교황령 재무장관이었던 Carlo Luigi Morichini는 5월 27일 황제와 카를로 알베르토에게 보내는 특별 사도 대표로 로마를 떠나 6월 10일 밤 인스브루크에 도착했다(Chigi). 교황은 Morichini가 협상하는 동안 자신의 대사가 황제 곁에 머물기를 바랐고, Morichini가 그 명령을 보기를 바랐다.
그것은 두 가지 점 모두에서 너무 늦었다. Dizionario Biografico degli Italiani에 따르면 6월 14일 교황 대사는 인스브루크를 떠나 교황 대표로서 프랑크푸르트와 쾰른으로 갔고, 9월에 빈의 임지로 돌아왔다. 급보의 날짜는 15일이다. 사본 하나가 20일 토리노에서 발송되었으나 그에게 닿지 못했다. Chigi는 그것이 토리노나 밀라노에서 가로채였다고 들었다. 급보는 30일 밀라노에서 인쇄되었고 7월 5일 또는 6일 로마 거리에 게시되었다. 7월 8일 Chigi는 우려하던 내각 위기가 그 때문에 일어나지는 않을 것이며, 교황이 암호 부분을 내각에 보여 주는 데 아무 어려움이 없었다고 한다고 적었다.
발표된 추측들은 해독문에 비추어 볼 때 들쭉날쭉하다. Spada의 정보원은 암호에 교황이 교황 대사의 처신, 곧 궁정과 원만한 관계를 유지하고 추방이라는 추문을 피한 것을 승인하는 내용이 들어 있다고 했다. 승인은 평문 편지에 있다. 암호는 명령이며, 그것이 막으려는 단절은 로마 자신이 명령했던 것이다. 2016년 Cipherbrain에 요약된 7월 7일 자 Il Labaro는 궁정에서의 출발과 니시비스 주교의 역할을 추측했는데, 방향은 반대이지만 진실에 더 가깝다.
07 열린 부호군 11개
부호군 11개는 각각 한 번씩만 나오고 문맥으로 정해지지 않는다. 알파벳 순서는 각각에 범위를 준다. 알려진 값들 사이의 위치를 정렬된 단어 목록의 한 구간으로 환산한 것이다(windows2.py, 모든 기준점 사이에서 구간별로; 대략 ±15단어).
| 코드 | 범위 | 맥락 |
|---|---|---|
| 8734 8760 8904 8739 8413 | tr–tu / venti–vo(lgente) / v 이후 / tu–u / n–o | 이전 편지의 날짜: con mio foglio del …, 아마도 tre volgente 같은 6월 초의 날짜와 참조 표시 |
| 8227 | ess–età–ex–fa | il Signor, […] di Lützow; Chigi는 그를 ex-ambasciatore라고 부른다 |
| 8704 | te–ti | come […]e lo avesse creduto opportuno |
| 8093 8102 | ch–ci / ci–co | Le partecipo […] […] del Padre |
| 8131 8136 | cr–da / da–dar | interessa […] al Padre; delibera […] relativa |
이 범위 안의 모든 후보를 문자 모델로 채점하면 기능어(ciò, da, esse)만 고르게 되어 뜻이 통하지 않는다. 8904는 목록의 모든 단어보다 위에 있는데, 이런 종류의 코드에서는 z로 시작하는 단어이거나 숫자 또는 이름의 부록일 수 있다. 이것들을 채우려면 1848년 교황청 코드북이나 같은 코드로 된 다른 전문이 필요하다. 바티칸의 국무원과 빈 교황 대사관 문서고, 또는 Ramliden이 2015년에 가리킨 Haus-, Hof- und Staatsarchiv의 오스트리아 측 감청 문서가 그 후보다.
2026년 9월 30일, Lasry가 인용 구절의 빈칸을 줄여 달라고 요청하여 다시 시도했다. 코드는 분명히 8000에서 시작한다. 정렬된 단어 목록에서 Colonia(8116)와 Imperatore(8319)를 지나는 직선은 첫 a-단어를 7996–8005에 놓는다. 8000에서 Colonia와 확실한 기준점들을 지나도록 보간하면 col은 8113–8114, come는 8120–8122로 예측되어 둘 다 문맥 판독이 있는 자리와 맞고, 첫 번째 쌍의 범위도 좁혀진다. 8093은 ce-에 해당하고(cenno는 8093–8097로 예측된다) 8102는 ch–ci에 해당한다. Le partecipo 뒤, del Padre 앞에 뜻으로 보아 필요한 단어들은 모두 위치 때문에 배제된다. volontà, mente, desiderio, ordine(8424가 ordin-이다), comando, commissione는 Colonia보다 뒤에, beneplacito는 훨씬 앞에 온다. Cenno(‘per cenno del Santo Padre’, 성부의 분부에 따라)는 8093에 맞지만, 그러면 그것과 구를 이루는 ch–ci 단어가 없으므로 이 쌍은 열린 채로 남는다. [8136]에 대해서는 presa(‘delibera presa’)가 p-단어여서 8136에 올 수 없다. 범위는 d의 앞부분(da–dar)이고, 그 단어 없이도 절은 완결되어 읽힌다. [8131]도 d의 앞부분이다. d’assai 같은 부사(‘interessa d’assai al Padre cotesta nuova istruzione’, 이 새 지시는 성부께 매우 중요하다)를 넣으면 문장이 문법적으로 되지만, 그것은 뜻에 의한 추측(I)이지 판독이 아니다. 같은 보간을 적용한 1,000단어 이탈리아어 목록은 cotesta를 8145–8159 근처로 예측하는데, 8122라는 실제 자리보다 23~37 위다. 그 문맥 판독이 c 그룹에서 가장 근거가 약하다.
08 불확실하게 남은 것
- 위의 부호군 11개, 따라서 이전 편지의 날짜와 세 절의 정확한 문구.
- 문맥 판독 10개는 순서로 검증되었을 뿐 증명되지는 않았다. 가장 약한 것은 guerra(8310, 8319의 Imperatore보다 겨우 9 아래이므로 h-와 i-단어 거의 전부가 그 사이에 들어가야 한다)와 lontan-(8346, istruzione보다 6 위이므로 istr-부터 lon-까지 모든 것에 값 5개만 남는다)이다. 둘 다 문장과 순서에 맞지만, 그 부분에서 코드가 이렇게 성기다면 이례적이다. Tuttavia는 예측값에서 가장 멀리 떨어져 있는데, 그 이유는 §05에서 설명했다.
- dalla guerra가 기대되는 자리의 della guerra와 1행의 si 뒤에 있는 엉뚱한 8은 인쇄된 그대로다. 그것이 암호 서기의 것인지 밀라노 식자공의 것인지는 재인쇄본으로는 알 수 없다.
- 이 전단은 밀라노 신문의 로마 재인쇄본이다. 밀라노 판 자체(repubblicaromana-1849.it 소재)는 숫자 하나하나까지 대조하지 않았다.
09 출처
- Dispaccio del Card. Soglia. Tratto dal giornale l’Italia del Popolo 30 Giugno, 전단, 로마, Tip. Clemente Puccinelli, 1848. 이미지 출처: K. Schmeh, “Wer knackt die verschlüsselte Nachricht von Kardinal Soglia?”, Cipherbrain, 2014년 12월 13일(scienceblogs.de), Tony Gaffney 제공. 댓글 14개: Joe의 전사(4번), 1814년 빈 교황 대사관 암호와 Spada에 관한 Kent Ramliden의 댓글(7, 8, 10번), Il Labaro에 관한 Thomas와 Armin의 댓글(12–14번). 그곳에도, 그리고 2026년 9월의 검색으로 찾을 수 있는 한 다른 어디에도 해독문은 게시되지 않았다.
- L’Italia del Popolo, 밀라노, 1년 차 제40호, 1848년 6월 30일(repubblicaromana-1849.it).
- G. Spada, Storia della rivoluzione di Roma, 제2권(피렌체, 1868–69), 제14장, pp. 387–390: 평문 편지와 암호의 의역(Wikisource).
- Diario del principe Agostino Chigi Albani, 1848: 5월 6일과 9일, 5월 17일, 5월 27일, 6월 20일, 7월 6일과 8일(Wikisource).
- L. Sandoni, “Viale Prelà, Michele”, Dizionario Biografico degli Italiani 99 (2020)(Treccani).
수정된 암호문(ct2.txt), 표와 코드를 포함한 디코더(decode.py, key.json, codes.json), 합성 대조 실험(synth.py), 순위 적합과 범위(rankfit2.py, windows2.py), 전사와 대조한 행 띠 이미지(strips/), 그리고 노트는 저장소에 있다(targets/soglia1848/). 문맥 부호어를 채운 판독을 보려면 python decode.py --guess 를 실행하면 된다.

