Julius Caesar was de eerste die een geheimschrift maakte door met een eenvoudige formule de letters van het alfabet door elkaar te schudden. Door de rekenkracht van de moderne computers zijn zulke eenvoudige geheimschriften erg onveilig geworden. Om veilig boodschappen naar zijn legers te versturen gebruikte de Romeinse keizer Julius Caesar een geheimschrift. Met zijn generaals sprak hij af dat hij alle letters in het alfabet drie plaatsen naar rechts zou opschuiven. De A werd dus een D, de B een E, de C een F, enzovoort. De boodschap 'KOM NAAR ROME' werd op deze manier‘MRP QDDU URPH’. Je zult begrijpen dat de vijanden van Julius Caesar niet erg veel wijzer werden als ze zo'n boodschap onderschepten. Als we de letters in het alfabet allemaal een nummer geven (A=0, B=1, C=2, enzovoort), dan kunnen we dit geheimschrift ook voorstellen met de formule F(x)=x+3. Hier staat dat je alle letters in het alfabet drie plaatsen moet opschuiven. Dit klopt niet helemaal, want X=23 schuift op naar A=0 en Y=24 naar B=1. Dit betekent dat we modulo 26 moeten rekenen: we rekenen alleen met de getallen 0 tot en met 25, en na de 25 komt in plaats van 26 de 0 (zie ook pagina 10-13 van het decembernummer). In de 'Kleine Nootjes' op pagina 2 en 3 kom je een geheimschrift tegen waarin de A vervangen wordt door een Z, de B door een Y, de C door een X, enzovoort. Dit is het zogenaamde Atbash-geheimschrift, dat van joodse oorsprong is. Bij dit geheimschrift hoort ook een formule, namelijk F(x)=25-x.
Vercijferen met een formule
F(x) = ax + b (mod 26) Opgave 1. Bovenstaande formule kun je ook gebruiken om het geheimschrift weer terug te vertalen naar de originele tekst. Alleen de waarden van a en b zijn anders. Bereken deze waarden. Opgave 2. Niet alle waarden voor a zijn bruikbaar. Neem je bijvoorbeeld a = 4 en b = 13, dan wordt het bovenstaande zinnetje vertaald als: "VFLPNLRDNH TH DDN LTXZHVPDTHL TRRD XRNLDDDN”. Hier klopt iets niet: zowel de 'e’ als de 'r' worden afgebeeld op 'd'. Daardoor is terugvertalen naar de originele tekst niet meer mogelijk. Aan welke voorwaarde moet de keuze voor a voldoen?
De code kraken
We zien dat de letters N en G het meeste voorkomen. We gaan er daarom van uit dat N de letter E was en G de letter N. Nu moeten we op zoek gaan naar getallen a en b zodat geldt:
4 = 13a + b (mod 26) Dit stelsel gaan we oplossen. Wanneer we de tweede vergelijking van de eerste aftrekken, dan krijgen we 17 = 7a mod 26. Modulo 26 is de inverse van vermenigvuldigen met 7 vermenigvuldigen met 15 (zie het decembernummer). Dus a = 17 x 15, en we zien a = 21 mod 26. Als we dit in de eerste vergelijking invullen dan krijgen we: 4 = 21 x 13 + b mod 26 en b=17. Met de formule G(x)= 21x+17 kunnen we dus het geheimschrift ontcijferen. Er blijkt te staan: "Kom aanstaande zaterdag niet naar Deventer. De bloemen kunnen niet worden bezorgd."
Opgave 3. Wat staat hier?
Opgave 4. En wat staat hier?
OPgave 5.Tenslotte, wat staat hier?
Een cryptografische aanval Voor een computer is driehonderd mogelijkheden niet veel. Je kunt de methode verbeteren door 29 letters te gebruiken in plaats van 26. Dit kan bijvoorbeeld door aan het alfabet de spatie, de komma en de punt toe te voegen. Omdat 29 een priemgetal is, zijn er dan (29-1) x 29 = 812 mogelijkheden. Erg veel schiet je daar niet mee op: het aantal mogelijkheden wordt maar drie keer zo groot.
Een betere methode? Zoveel mogelijkheden lijkt veel, maar echt veilig is deze verbeterde vercijferingsmethode niet. Ook voor paren van letters kun je een frequentieanalyse doen en er bestaan tabellen waarmee je aan de slag kunt. Maar dat is niet de enige zwakte van deze methode. Laten we eens aannemen dat je een tekst hebt onderschept van 400 lettertekens en dat het vertalen van één letterteken eenmiljoenste seconde duurt. Dan moeten we 458328 x 400 keer een letter vertalen. Dit duurt ongeveer drie minuten. Met nog een programma dat abracadabra van Nederlands onderscheidt kun je dus in zeer korte tijd zo'n geheimschrift ontcijferen. Laat het misschien 3 uur duren of zelfs 30 uur, je hoeft niets anders te doen dan je computer een nacht aan te laten staan!
We zien dus dat onze methode is niet echt veilig is: met een computer kun je in zeer korte tijd alle mogelijkheden uitproberen. Deze manier om een geheimschrift te kraken wordt de brute kracht-methode genoemd brute force in het Engels): 'bruut' omdat deze methode niet erg elegant is en 'kracht' omdat gebruik gemaakt wordt van de rekenkracht van de moderne computer.
Ravenstein, W. van (1998). Eenvoudige geheimschriften.
|