next up previous
Next: Description of Solution Method Up: Stage 4 Previous: Work Description

How we Found the Solution

Below follows the output from the program vigenere.

 
monty>./vigenere freqs.txt stage4.txt

Keyword length  1: 0.0437
Keyword length  2: 0.0444
Keyword length  3: 0.0432
Keyword length  4: 0.0442
Keyword length  5: 0.0786
Keyword length  6: 0.0438
Keyword length  7: 0.0440
Keyword length  8: 0.0430
Keyword length  9: 0.0412
Keyword length 10: 0.0788

Give keyword length (optimal m=10): 5

 1)AKCJI: KGMNWFLHGMJKSEMKWJDWKZGEEWKVWIMAHSYWHJWF
 2)BLDKJ: JFLMVEKGFLIJRDLJVICVJYFDDVJUVHLZGRXVGIVE
 3)CMELK: IEKLUDJFEKHIQCKIUHBUIXECCUITUGKYFQWUFHUD
 4)DNFML: HDJKTCIEDJGHPBJHTGATHWDBBTHSTFJXEPVTEGTC
 5)EOGNM: GCIJSBHDCIFGOAIGSFZSGVCAASGRSEIWDOUSDFSB
 6)FPHON: FBHIRAGCBHEFNZHFREYRFUBZZRFQRDHVCNTRCERA
 7)GQIPO: EAGHQZFBAGDEMYGEQDXQETAYYQEPQCGUBMSQBDQZ
 8)HRJQP: DZFGPYEAZFCDLXFDPCWPDSZXXPDOPBFTALRPACPY
 9)ISKRQ: CYEFOXDZYEBCKWECOBVOCRYWWOCNOAESZKQOZBOX
10)JTLSR: BXDENWCYXDABJVDBNAUNBQXVVNBMNZDRYJPNYANW
11)KUMTS: AWCDMVBXWCZAIUCAMZTMAPWUUMALMYCQXIOMXZMV
12)LVNUT: ZVBCLUAWVBYZHTBZLYSLZOVTTLZKLXBPWHNLWYLU
13)MWOVU: YUABKTZVUAXYGSAYKXRKYNUSSKYJKWAOVGMKVXKT
14)NXPWV: XTZAJSYUTZWXFRZXJWQJXMTRRJXIJVZNUFLJUWJS
15)OYQXW: WSYZIRXTSYVWEQYWIVPIWLSQQIWHIUYMTEKITVIR
16)PZRYX: VRXYHQWSRXUVDPXVHUOHVKRPPHVGHTXLSDJHSUHQ
17)QASZY: UQWXGPVRQWTUCOWUGTNGUJQOOGUFGSWKRCIGRTGP
18)RBTAZ: TPVWFOUQPVSTBNVTFSMFTIPNNFTEFRVJQBHFQSFO
19)SCUBA: SOUVENTPOURSAMUSERLESHOMMESDEQUIPAGEPREN
20)TDVCB: RNTUDMSONTQRZLTRDQKDRGNLLDRCDPTHOZFDOQDM
21)UEWDC: QMSTCLRNMSPQYKSQCPJCQFMKKCQBCOSGNYECNPCL
22)VFXED: PLRSBKQMLROPXJRPBOIBPELJJBPABNRFMXDBMOBK
23)WGYFE: OKQRAJPLKQNOWIQOANHAODKIIAOZAMQELWCALNAJ
24)XHZGF: NJPQZIOKJPMNVHPNZMGZNCJHHZNYZLPDKVBZKMZI
25)YIAHG: MIOPYHNJIOLMUGOMYLFYMBIGGYMXYKOCJUAYJLYH
26)ZJBIH: LHNOXGMIHNKLTFNLXKEXLAHFFXLWXJNBITZXIKXG

Give selected keyword index: 19

SOUVENTPOURSAMUSERLESHOMMESDEQUIPAGEPRENNENTDESALB
ATROSVASTESOISEAUXDESMERSQUISUIVENTINDOLENTSCOMPAG
NONSDEVOYAGELENAVIREGLISSANTSURLESGOUFFRESAMERSAPE
INELESONTILSDEPOSESSURLESPLANCHESQUECESROISDELAZUR
MALADROITSETHONTEUXLAISSENTPITEUSEMENTLEURSGRANDES
AILESBLANCHESCOMMEDESAVIRONSTRAINERACOTEDEUXCEVOYA
GEURAILECOMMEILESTGAUCHEETVEULELUINAGUERESIBEAUQUI
LESTCOMIQUEETLAIDLUNAGACESONBECAVECUNBRULEGUEULELA
UTREMIMEENBOITANTLINFIRMEQUIVOLAITLEPOETEESTSEMBLA
BLEAUPRINCEDESNUEESQUIHANTELATEMPETEETSERITDELARCH
ERBAUDELAIREEXILESURLESOLAUMILIEUDESHUEESLEMOTPOUR
ETAGEQUATREESTTRAJANSESAILESDEGEANTLEMPECHENTDEMAR
CHER
The program is interactive. It first evaluates different keyword lengths. For each length it gives a score whose meaning is described below. The higher the score, the more likely it is that the keyword length is the true keyword length. As we can see, length five is the first candidate with a significantly higher value, so that length is selected.

The program then computes the most probable distances between the letters in the keyword and displays the 26 possible keywords with this letter distances. 25 of the candidates are nonsense, but number 19 both gives a meaningful keyword and an easily recognizable plaintext in French. The plaintext is taken from the poem ``L'Albatros'' by Charles Baudelaire, and as we can see the codeword for this stage is TRAJAN.



solvers@codebook.org