1.4 Mono-alfabetische substitutie

De kracht van een cryptosysteem hangt af van het aantal sleutels. Het Caesar-systeem heeft maar 25 mogelijke sleutels als je uitgaat van het alfabet van 26 letters. Het aantal sleutels neemt sterk in aantal toe als je iedere verwisseling van letters toestaat. Het cijferalfabet is dan een willekeurige herschikking van het klare alfabet en we noemen dit een mono-alfabetisch substitutiesysteem.

Als je een schikking maakt voor de letters van het alfabet op 26 plaatsen kun je voor de letter a 26 plekken bedenken, voor de b blijven er 25 plekken over, voor de c nog 24 etcetera, tot je voor de zuiteindelijk nog 1 plaats overhoudt. Elke mogelijke schikking wordt in de wiskunde een permutatiegenoemd en het aantal permutaties voor 26 verschillende letters wordt 26! (26 faculteit) genoemd.
Ga na dat 26!=26x25x24x23x.....x3x2x1. In totaal geeft dat meer dan 400.000.000.000.000.000.000.000.000 sleutels. Hier zitten natuurlijk nog wel een heleboel onbruikbare sleutels tussen zoals het klare alfabet zelf, een alfabet waar maar 2 of een paar letters verwisseld zijn, etcetera.

Activiteit

Op de CD-rom staat onder Junior Codebreakers/General Monoalfabetic een toelichting op het monoalfabetisch substitutiesysteem. Je kunt deze ook vinden op de internetpagina van de vorige bladzijde als je klikt op Monoalphabetic Cipher. Het biedt mogelijkheden om hiermee te vercijferen. Onderzoek het codesysteem. Stel de vercijfering eerst in op Slow encrypt.
 

Als een substitutiesysteem slechts 25 sleutels heeft dan is het eenvoudig om door proberen het systeem te kraken. Degenen die dat proberen worden wel cryptoanalisten of codebrekers genoemd, al zou het woord cijferbreker beter op zijn plaats zijn. Het domweg uitproberen van alle mogelijke sleutels wordt een brute force attack genoemd. In de decryptie van de Caesarcode hierboven heb je in feite op deze manier een aanval uitgevoerd. Je merkt daar al direct het voordeel van de automatisering. Handmatig vraagt een brute force attack veel tijd. Het is dan handiger de tekst eerst te analyseren. Een brute force attack op een systeem met 26! sleutels waarbij per seconde 1 sleutel zou worden uitgeprobeerd zou 26!/(60x60x24x365) jaar of ruwweg een miljard keer de leeftijd van het heelal vergen.

De eenvoud van het systeem en het vrijwel onbeperkte aantal sleutels maakten het substitutiesysteem in de eerste 1000 jaar na Christus tot een zeer veilig en algemeen gebruikt systeem. Het enige nadeel is dat het lastig is om te onthouden welke sleutel er gekozen is. Een eenvoudiger variant op het systeem werkt met een zogenaamd sleutelwoord of sleutelzin. Door de schikking te laten beginnen met de letters van het sleutelwoord en te laten volgen door de rest van letters van het alfabet, wordt het aantal mogelijke schikkingen veel kleiner maar nog altijd zo groot dat het voor de codebreker onbegonnen werk is de code te kraken. De sleutel is echter makkelijk uit het hoofd te leren en het overbrengen van de sleutel loopt daarom niet het risico ontdekt te worden.
Nemen we bijvoorbeeld als sleutelzin: "het is warm voor de tijd van het jaar" dan komt het cijferalfabet er als volgt uit te zien:

Klaar alfabet: a b c d e f g h i j k l m n o p q r s t u v w x y z
Cijferalfabet: H E T I S W A R M V O D J N B C F G K L P Q U X Y Z

Afspraak:
In bovenstaand voorbeeld kun je zien dat we ons in deze module houden aan de afspraak om de klare tekst in kleine letters en de cijfertekst in hoofdletters te noteren.

Opgave 2 

Verzin met een duopartner een eigen sleutelwoord en maak daarmee een cijferalfabet. De tool helpt je daarbij als je het Cipher Alphabet vult en weigert dubbele letters. Spreek met elkaar af dat je elkaar een boodschap stuurt. Voer het gemaakte cijferalfabet in de bovenstaande link bij Monoalphabetic Cipher in en vercijfer je boodschap aan aan je duopartner. Wissel de berichten uit en ontcijfer het bericht van je duopartner.
Werkt het zoals je zou mogen verwachten?