De afgelopen tijd heb ik met wisselend enthousiasme geprobeerd een ontcijfering te vinden voor het bericht van de Zodiac. Het is tot nu toe een eindeloze cirkel van puzzelen, aannames maken en programma's schrijven om het te versnellen en te controleren. In eerste instantie probeer je met pen en papier wat te doen, maar dat kan veel sneller met de computer. Vervolgens blijk je allerlei aannames te maken die logisch lijken, maar die toch niet blijken te kloppen.

Nu wil ik kijken in hoeverre ik het een en ander kan toepassen op het ontcijferde bericht: "3 part cypher".

Het programma dat ik nu ontwikkeld heb kan een gecodeerd bericht inlezen. Het laat dan de frequenties van de symbolen zien. Zodra een letter voor een symbool ingevuld word, dan worden al die symbolen door dezelfde letter vervangen. Zolang voor een symbool geen letter is ingevuld, word de frequentie ervan getoond. Dit is geen super complex programma, maar het versneld het puzzelen enorm. Voor de "3 part cypher" ziet het volledig ontcijferde bericht er als volgt uit:

 

Links staat het volledig ontcijferde bericht, bestaande uit 24 regels en 17 kolommen. De laatste 18 symbolen zijn willekeurig en vormen geen onderdeel van het bericht. Rechts staan wat hele eenvoudige statistieken. De letter 'A' komt 24 keer voor in het bericht. De letter 'A' is gecodeerd met 5 verschillende symbolen. Deze symbolen komen 7, 6, 5, 5 en 1 keer voor in het bericht.

Er zijn een aantal dingen die meteen opvallen:

1. Het bericht bevat schrijffouten. Bijvoorbeeld regel 7 kolom 6 moet een 'S' zijn, maar is een 'E'. Regel 14 kolom 12 moet een 'T' zijn, maar is een 'E'. De overgang tussen regel 16 en regel 17 lijkt niet te kloppen. Dit is precies de overgang tussen de tweede en de derde brief. Waarschijnlijk moet op regel 17 kolom 1 'AT' staan en niet 'E'. Regel 21 kolom 6 moet een 'W' zijn, maar is een 'I'. Op drie plekken is een letter 'E' gecodeerd, maar het betreft 2 verschillende symbolen 'E' en 'N'. (Deze twee symbolen zijn verwarrend genoeg gewone letters.) In het vervolg ga ik deze schrijffouten niet corrigeren. Ik ga ervan uit dat dit het bericht is dat gecodeerd moest worden.

2. Op de foto's is het verschil tussen het symbool voor 'A' en 'S' heel moeilijk te zien. Kijk bijvoorbeeld naar Hardens oplossings sleutel . De gevulde driehoek voor 'A' en 'S' lijken behoorlijk op elkaar. Voor deze twee symbolen heb ik gewoon de goede gekozen volgens het ontcijferde bericht.

3. De laatste 18 tekens zijn willekeurig gekozen. In werkelijkheid zou hier dus een aantal letters door elkaar heen staan. Deze letters laat ik uit de analyse weg. Hiervoor zijn twee redenen, ten eerste zijn deze tekens alleen toegevoegd om voor verwarring te zorgen en het bericht precies in het 24 x 17 formaat te laten passen. Het is goed om er rekening mee te houden dat letter frequenties gemanipuleerd kunnen worden met dit soort trucs. De tweede reden is dat ik denk dat het nog niet ontcijferde bericht (zie Zodiac) op een andere manier aangevuld is.

 

Tijdens het invullen van de oplossing valt het direct op dat de ontcijfering vele malen eenvoudiger is. Kijk bijvoorbeeld wat er staat zodra het begin I LIKE KILLING gegokt is:

Het is direct mogelijk om verder te gaan met een 'L' op regel 4, kolom 5 en een 'D' op regel 17, kolom 12. Er lijkt een grotere samenhang te zijn in het bericht. Het niet ontcijferde bericht heeft iets minder tekens en iets meer symbolen, maar het verschil is nu ook weer niet zo groot. Misschien is er toch meer aandacht besteed om ervoor te zorgen dat niet twee dezelfde symbolen elkaar volgen.

Hoe goed is nu de frequentie van Engelse letters toe te passen op zo'n kort bericht:

De paarse lijn is het aantal keer dat een letter zou moeten voorkomen in een bericht van 390 tekens. De groene lijn is hoe vaak een bepaalde letter daadwerkelijk in het bericht voorkwam. De overeenkomst is niet heel erg slecht, maar er zijn toch ook wel uitschieters. De 'I' en de 'L' komen veel meer voor als verwacht. De 'H' en 'D' komen veel minder voor. Voor de oververtegenwoordiging van de letters 'I' en 'L' ben je geneigd te kijken naar de woorden 'I', 'WILL' en 'KILL', maar heel overtuigd daarvan ben ik niet. Misschien gewoon wat willekeurige variatie.

Vervolgens kun je ook kijken naar hoeveel symbolen voor iedere letter gebruikt worden:

De paarse lijn en de groene lijn liggen hier vaak over elkaar heen.

De paarse lijn laat zien hoeveel symbolen er gebruikt zijn voor iedere letter. Bijvoorbeeld de letter 'L' komt 33 keer voor in het bericht en er zijn 3 verschillende symbolen gebruikt om deze letter te coderen. Dat is vrij weinig, deze symbolen komen dan ook vaak voor in het gecodeerde bericht, namelijk 10, 11 en 12 keer (zie eerste figuur). Een ander voorbeeld is de letter 'D', die 7 keer voorkomt in het bericht. Hiervoor zijn 2 verschillende symbolen gebruikt. Dat is veel, deze symbolen komen dan ook heel weinig voor in het gecodeerde bericht, namelijk 3 en 4 keer.

De groene lijn geeft aan wat de ideale symbolen verdeling voor dit bericht zou zijn geweest. Het doel van dit type codering is namelijk om de frequentie van de symbolen gelijk te trekken. Voor lange berichten is het dan mogelijk dat alle symbolen precies even vaak voorkomen. De groene lijn probeert te bereiken dat ieder symbool ongeveer 7 keer in het gecodeerde bericht staat. Bijvoorbeeld de letter 'L' zou dan gecodeerd moeten worden met 5 verschillende symbolen die dan 6, 6, 7, 7 en 7 keer in het bericht zouden staan. De letter 'D' zou gecodeerd moeten worden met een enkel symbool.

Het lijkt erop dat de keuze voor het aantal symbolen willekeurig is. Als het gebaseerd zou zijn op de frequentie van letters in het Engels, dan zou voor 'H' even veel of meer symbolen gebruikt moeten zijn als de letter 'S'. Maar hier lijkt rekening gehouden te zijn met een aantal keer dat H in het bericht voorkomt. Toch is ook dat niet consequent gedaan te zijn, 'D' komt 7 keer voor en heeft recht op 2 symbolen, terwijl 'Y' 8 keer voorkomt en maar 1 symbool krijgt.

Dit geeft de volgende histogram voor de symbolen:

De ideale lijn laat zien dat het mogelijk was om alle symbolen 6, 7 of 8 keer in het bericht te laten voorkomen. Voor zo'n kort bericht is er al bijna geen frequentie informatie meer. In werkelijkheid is er een ruime spreiding tussen de symbolen, sommige komen maar 4 keer voor terwijl andere symbolen wel 15 keer voorkomen. Voor lange berichten zou dit bijzonder veel informatie geven over de gebruikte codering. Helaas hebben we nu maar een enkel kort bericht.

Vergelijk deze histogram met de histogram van het te ontcijferen bericht:

Drie dingen vallen op aan deze histogram:

1. Er is een symbool ('+') dat 24 keer voorkomt. Dit is zo uitzonderlijk, dat het waarschijnlijk een opvul symbool is. In plaats van het bericht aan te vullen met willekeurige tekens heeft dit bericht de opvul tekens verspreid over het gehele bericht. Dit was de reden waarom ik helemaal in het begin de laatste 18 tekens niet mee wilde nemen in de analyse. Ik ga ervan uit dat dit keer een andere techniek is gebruikt.

2. De andere symbolen hebben weer een vrij grote spreiding qua frequentie. Het lijkt er dus weer op dat er vrij willekeurig een aantal symbolen per letter gekozen is. Anders zou er een veel scherpere histogram zijn.

3. De piek is  dit maal bij een lagere frequentie. In dit bericht komen de meeste symbolen maar +- 5 keer voor, terwijl in het vorige ontcijferde bericht dit nog +- 7 was. Daardoor word het ontcijferen veel moeilijker. Er is veel minder verband in dit bericht en het is niet meer voldoende om een paar letters goed te gokken.

 

 

Comments powered by CComment