Hoofdstuk 1. Algemeen
Aangezien wij het over cryptologie gaan houden, zullen we eerst even in het algemeen een paar zaken uitleggen die met het onderwerp te maken hebben.
Cryptologie bestaat uit twee Griekse woorden, namelijk “krypto” en “logos” of “logie”. “Krypto” betekent “bedekken of verbergen” en “logos” betekent “woord” en logie betekent “wetenschap”. Cryptologie betekent dus de wetenschap van het verbergen of het verbergen van het woord. Dit kan op de volgende 2 manieren:
-Steganografie: het verbergen van een bericht. In het volgende hoofdstuk zullen we 2 voorbeelden va steganografie geven.
-Substitutie: het coderen van een bericht door het vervangen van een letter door een vooraf afgesproken letter.
Wij zullen in ons werkstuk ons alleen bezighouden met substitutie. Stenografie heeft namelijk niets met wiskunde te maken.
De wetenschap cryptologie is onder te verdelen in twee hoofdvakken: cryptografie en cryptoanalyse. Cryptografie (encryptie) is het ontwerpen en gebruiken van geheimschriften, en cryptoanalyse (decryptie) is het analyseren en breken van geheimschriften. Beide gebeurt met behulp van sleutels, je hebt een tekst en met behulp van een afgesproken sleutel (een vertaalmiddel) zet je deze om in een gecodeerde tekst (en met behulp van deze sleutel of een andere sleutel kun je deze gecodeerde tekst weer omzetten naar de originele tekst). De sleutel kan vermenigvuldiging, optelling, verschuiving etcetera van letters inhouden. De verschillende manieren worden later in het werkstuk besproken. Overigens bij verder bespreking van het begrip cryptologie zullen wij ons vooral richten op encryptie. Aangezien decryptie hieruit voortkomt en dus niet echt belangrijk is voor ons.
Het woord cryptografie is ook afkomstig uit de Griekse taal en is afgeleid van de woorden ‘krypto’ en ‘graphe’. ‘Graphe’ betekent “het schrijven, het schrift” en zoals al eerder werd gezegd betekent ‘Krypto’ “verbergen, bedekken”. Cryptografie betekent dus het verbergen van het schrift.
Er zijn heel veel vormen van encryptie, bijvoorbeeld Diffie-Hellman, RSA en Vigenère. Vooralsnog kunnen we deze in twee hoofdgroepen verdelen, namelijk asymmetrische en symmetrische encryptie.
Het verschil tussen asymmetrische en symmetrische encryptie is dat bij symmetrische encryptie maar één sleutel wordt gebruikt voor zowel coderen als decoderen, en bij asymmetrische encryptie twee sleutels. Één om te coderen, deze is openbaar. En één om te decoderen, deze is geheim. Het voordeel van asymmetrische encryptie is dat het zeer moeilijk te kraken is. Symmetrische encryptie is echter veel sneller en eenvoudiger. Twee voorbeelden van asymmetrische encryptie zijn Diffie-Hellman en RSA, en Vigenère is een voorbeeld van symmetrische encryptie. Overigens moet gezegd worden dat tegenwoordig ook volgens het Hybride-encryptiesysteem wordt gewerkt; dit is een mengsel van asymmetrische en symmetrische encryptie. Om snelheid te garanderen wordt symmetrische encryptie gebruikt voor het coderen van de data. En om de veiligheid te garanderen gebruikt men asymmetrische encryptie om de symmetrische sleutels te decoderen.
Welk cryptosysteem je ook gebruikt, het moet altijd aan drie eisen voldoen:
1. Absolute geheimhouding. Als je een veilig cryptosyteem hebt moet iemand die het bericht onderschept geen flauw idee hebben van de boodschap.
2. Handtekeningeigenschap. De ontvanger van het gecodeerde bericht moet er absoluut zeker van kunnen zijn dat het bericht dat hij krijgt ook echt van de verzender afkomstig is. Dit moet zo duidelijk zijn dat het zelfs een rechter zou kunnen overtuigen.
3. Integriteit. De ontvanger van het gecodeerde bericht moet er zeker van kunnen zijn dat er niet met de inhoud van het bericht is geknoeid.
De bovenstaande drie eisen moeten een goed cryptosysteem garanderen, een vierde eis die niet zozeer met het systeem maar meer met de omgang met het systeem te maken heeft is het Need to Know- principe, je moet er bij een cryptosysteem voor zorgen dat zo min mogelijk mensen van je sleutel afweten, dan is het veel gemakkelijker een systeem geheim te houden.
Sommige geheimschriften zijn hier beter in geslaagd dan de andere. Veel oude cryptosystemen zijn door middel van moderne technieken makkelijker te ontcijferen, voor die tijd waren het wel perfecte systemen aangezien de techniek van ontcijfering toen nog niet zover gevorderd was. Helaas zijn de moderne ontcijferingtechnieken zelfs nu niet altijd in staat om oude geheimschriften te ontcijferen, een beroemd voorbeeld zijn de geheime runen op de Zweedse steen Rök. Deze zijn tot op de dag van vandaag nog niet gedecodeerd.
Hoofdstuk 2. Geschiedenis
Dit hoofdstuk gaat over de geschiedenis van de wetenschap cryptologie, en de eerste vraag die bij de meeste mensen dan waarschijnlijk opkomt is: ‘Wanneer is cryptologie ontstaan?’ Om die vraag te kunnen beantwoorden moeten we niet kijken naar het ontstaan van de verschillende encryptiesystemen, belangrijker is om te bedenken wat het nut van cryptologie is, waarom voelden de mensen de behoefte om een bericht te verbergen, waarom wilden mensen graag zorgen dat een ander niet kon begrijpen wat zij opgeschreven hadden? Dit kan om verschillende redenen zijn, bijvoorbeeld als je geheime informatie wil doorgeven die niet in de handen van een vijand (bijvoorbeeld in oorlogstijd) mag vallen. Verder kan je door middel van cryptologie de echtheid van een bericht controleren, je wil zeker weten dat je het juiste bericht hebt ontvangen (ook dit is vooral in oorlogstijd belangrijk). Zo zij er nog andere redenen te verzinnen, een ding is echter zeker, vanaf het moment dat er schriftelijke berichten zijn doorgegeven heeft men ook geprobeerd een aantal van deze berichten geheim te houden en heeft men dus berichten proberen te verbergen of te coderen. De oorsprong van de cryptologie ligt dus hoogstwaarschijnlijk bij de oorsprong van het schrift.
Overigens zal men voor de uitvinding van het schrift ook wel berichten geheim hebben proberen te houden, dit laten wij hier echter buiten beschouwing, omdat de wetenschap cryptologie zich bezig houdt met het verbergen van het schrift (zoals we in het vorige hoofdstuk al zeiden) en niet het verbergen van mondelinge boodschappen.
In dit hoofdstuk zullen we nu een aantal voorbeelden geven van de ontwikkeling van cryptologie in de loop van de tijd, een aantal verschillende encryptiesystemen zullen pas in het volgende hoofdstuk echt aan bod komen, hoewel we in dit hoofdstuk wel een aantal manieren van verbergen van schrift al wat zullen toelichten.
Eerst zullen we eens beginnen bij de Bijbel, want in de Bijbel wordt al gesproken over het coderen van vercijferde berichten in de vorm van geheimschrift. In Daniel 5:26-28 staat namelijk dat Koning Belsassar geconfronteerd wordt met een gecodeerde boodschap die zijn einde aankondigt.
Een stap vooruit in de geschiedenis brengt ons bij de Klassieke Tijd, bij de Grieken en de Romeinen. Er zijn bronnen gevonden waaruit blijkt dat zij methoden hebben verzonnen om berichten aan iemand te versturen waarbij een eventuele onderschepper van deze berichten ze niet kan begrijpen. Zoals in het vorige hoofdstuk al vermeld kan dit door middel van steganografie en substitutie, twee Griekse voorbeelden van steganografie zullen we hier eerst beschrijven en bij de Romeinen zal substitutie meer aan bod komen.
Steganografie is het verbergen van een bericht, dit kan op verschillende manieren, bijvoorbeeld door en bericht onder een laag was te verbergen.. Een voorbeeld hiervan is te vinden tijdens de oorlog tussen de Grieken en Perzië in de 5e eeuw v. Chr. In dit geval gaat het om de Griekse spion Demeratus die gehoord had dat de Perzen een geheime aanval op de Grieken aan het beramen waren. Hij wilde zijn landgenoten hiervan verwittigen en deed dit door middel van een tekst die hij stuurde naar de Grieken, deze tekst was verborgen onder een laag was.
Een andere manier van steganografie, en naar onze mening een iets intelligentere manier, is uitgevonden door de Spartanen in 450 v. Chr. Dit is tevens het eerste historische voorbeeld van geheimschrift dat ooit gevonden is. Zij wikkelden een scytale (een riem) om een stok heen en schreven hier een bericht van boven naar beneden op. Vervolgens haalden ze de scytale van de stok af en als je dat bericht dan weer wilde lezen dan moest je de scytale om dezelfde stok of een stok van dezelfde dikte wikkelen, met de ontvanger van het bericht moest dus wel de dikte van de stok worden afgesproken.
Overigens blijkt ook dat cryptologie niet perse nodig is om de vijand te misleiden, een goed voorbeeld is de Griek Philippus van Macedonië, hij verspreidde bewust valse berichten om zo de vijand op een vals spoor te brengen.
Dit waren twee voorbeelden van Griekse steganografie, de Romeinen waren echter ook goed in het verbergen van berichten, zij hebben zelfs een aantal goede codeertechnieken verzonnen. Deze technieken zijn nu wel achterhaald, maar door op de verschillende technieken die in de loop der tijd zijn ontwikkeld voort te werken hebben wij nu bijzonder moeilijk kraakbare systemen ontwikkeld.
De Romeinse keizer Julius Caesar, die leefde van 100 v. Chr. tot 44 v. Chr., maakte bijvoorbeeld veel gebruik van twee verschillende vercijfermethodes, namelijk de Griekse karakter methode en de verschuifmethode. Hij moest wel meerder methodes gebruiken , omdat hij in een nogal moeilijke tijd leefde, en als keizer een grote kans had om vermoord te worden, hij moest dus uiterst voorzichtig zijn. De twee substitutiemethoden zullen overigens in het volgende hoofdstuk uitgebreider worden behandeld.
Na de Romeinen ontwikkelt cryptologie zich een tijd niet meer zo sterk, wel ontwikkelen een aantal monniken een eigen geheimschrift, namelijk de abbreviatuur, deze methode was gebaseerd op de Tyroonse Noten (woorden worden vervangen door onbetekenende afkortingen).
Cryptologie komt pas echt weer tot bloei in de Renaissance, het Vigenère-systeem komt bijvoorbeeld uit deze tijd. De opbloei van cryptografie komt door verschillende redenen.
Ten eerste doordat in deze periode vele oorlogen werden gevoerd en de koningen van de vele staten hun informatie niet aan vijandige wilden bekendmaken, men maakte dus steeds meer gebruik van cryptografie.
Ten tweede doordat in de Renaissance men heel erg bezig was met de Klassieke tijd, de Renaissance was de hergeboorte van deze tijd. Vandaar dat ook de cryptosystemen en technieken herontdekt werden.
Ten derde de opkomst van de boekdrukkunst, hierdoor werd kennis veel gemakkelijker verspreid en dus ook cryptotechnieken werden gemakkelijker verspreid en voor meer mensen toegankelijk.
Overigens ging de cryptologie niet alleen vooruit door middel van nieuwe systemen, de Italiaan Alberti heeft in 1466 namelijk een zogenaamde chifreerschijf uitgevonden, hiermee kon het coderen en decoderen van de monoalfabetische substitutiemethode van Caesar (het Caesar-cijfer) veel sneller gebeuren. Deze methode maakte het mogelijk dat je de 26! (= 403291461126605635584000000) mogelijke permutaties veel sneller kan doorzien. In feite zijn er overigens niet zoveel mogelijke permutaties, bijvoorbeeld niet in alle gevallen veranderen alle letters bij een gecodeerd bericht.
In de 18e en de 19e eeuw ontwikkelt de cryptologie zich verder doordat er nieuwe transmissiemedia ontstaan waarbij uitlekken van informatie gemakkelijker wordt en het dus vaak van groot belang wordt moeilijk kraakbare berichten te versturen. In deze tijd worden echter geen nieuwe cryptosystemen uitgevonden, de bestaande systemen worden alleen meer gebruikt.
De twee wereldoorlogen in de 20e eeuw en het interbellum zorgen voor de enorme sprong voorwaarts in de cryptologie. De enigmamachine (zie afbeelding 2) werd bijvoorbeeld uitgevonden. Naar deze machine hebben de Duitsers vooral tijdens het interbellum veel onderzoek gedaan. Dit apparaat hebben ze tijdens de 2de Wereldoorlog vooral gebruikt om geheime berichten aan hun bondgenoten te versturen. Een enigma is een apparaat met 5 codeerschijven en een toetsenbord met een schakelsysteem aan de achterkant. Als ze dan een gecodeerd bericht wilden versturen, typten ze het oorspronkelijke bericht op het toetsenbord in. Het schakelsysteem zorgde dat je gemakkelijk de schijven met elkaar kon schakelen. Ze gebruikten elke dag 3 van de vijf schijven ( die de gecodeerde letter aangaf) die elk ook op 26! konden worden gebruikt. In afbeelding 3 wordt dit principe schematisch weergegeven. Hier wordt een van de zoveel mogelijkheden weergegeven, je kan dan wel bedenken dat er oneindig veel mogelijkheden moeten zijn. Het kraken van een gecodeerd bericht was dan ook absoluut niet makkelijk: die kans stond in het begin, toen er nog niet zoveel trucjes waren, ongeveer gelijk aan 1/(1,5*10²°). Het zwakke punt van coderen met de enigma was dat elke dag de sleutel naar hun bondgenoten moest worden verstuurd. Deze werd af en toe door de vijand Afbeelding 3: Schijven Enigma (de geallieerden) onderschept. Ook verzamelden de Britten de beste wiskundigen in de ‘Government Code Cypher School’. Hier moesten 7000 specialisten proberen de gecodeerde Duitse berichten te ontcijferen, door zelf ook zo’n enigma te bouwen. Verder hadden ze nog allerlei andere trucjes om achter de sleutelwoorden van de gecodeerde berichten te komen.
Ook in de Koude oorlog werden nog vele cryptosystemen ontwikkeld, bijvoorbeeld het Diffie-Hellman systeem in 1976.
Als we kijken naar de geschiedenis van de cryptologie blijkt dat vooral de oorlogen van groot belang zijn geweest voor de ontwikkeling van deze wetenschap. De oorlogen waren namelijk de voornaamste reden voor het ontstaan van vele verschillende cryptosystemen, want in een oorlog probeerde men berichten geheim te houden voor de vijand.
Hoofdstuk 3: Verschillende manieren van encryptie
§1: Inleiding
Zoals we in het vorige hoofdstuk al gezegd hebben, zullen we in dit hoofdstuk een aantal cryptosystemen bespreken. De verschillende cryptosystemen zijn onderverdeeld in paragrafen en we kijken eerst naar twee monoalfabetische substitutiemethoden (als je elke letter door één andere letter gaat vervangen) van Caesar en vervolgens naar een aantal polyalfabetische (Als je elke letter door meerdere letters kan vervangen) substitutiemethoden.
Overigens willen we in deze korte inleiding meteen even melding maken van een foefje waar bij alle cryptosystemen van gebruik wordt gemaakt. Men maakt namelijk expres spellingsfouten in berichten om krakers op het verkeerde spoor te zetten. En dit idee is bij alle systemen van toepassing, vandaar dat we het even nu melden en het niet bij ieder systeem weer opnoemen. Overigens hebben wij geen spelfouten gemaakt aangezien wij alleen het idee van de verschillende systemen wilden uitleggen
Bij ieder systeem hebben we het woord Cleopatra omgezet in een gecodeerde boodschap om simpel te laten zien hoe het systeem werkt.
Bij het kraken van een gecodeerde tekst is het overigens vooral handig als je de taal en het codeersysteem van het oorspronkelijke bericht weet.
§2: Enkelvoudige substitutie
Bij enkelvoudige substitutie vervang je elke letter van het alfabet door een vaste andere letter. Dit is dus een monoalfabetische substitutievorm.
Sleutel:
Latijnse letter 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
Substi-tutie letter q w e r t y u i o n p a s d f g h j k l z x m c v b
Codering Cleopatra:
c l e o p a t r a
e a t f g q l j q
Probleem hierbij is echter de frequentie van de letters die in elke taal voorkomt. Door middel van frequentieanalyse van een tekst is het voor krakers heel gemakkelijk een tekst die door middel van enkelvoudige substitutie gecodeerd is, te kraken.
Elke letter komt gemiddeld een bepaald aantal keer voor in een tekst, het heeft een vaste frequentie, de ‘e’ komt bijvoorbeeld het vaakste voor, zie onderstaande tabel. Hierbij moet je wel zeker weten in welke taal het bericht geschreven is, aangezien elke letter in elke taal met een andere frequentie voorkomt.
Als je dus naar een gecodeerde tekst kijkt en de letter ‘k’ komt het vaakst voort is dit waarschijnlijk de gecodeerde letter voor de ‘e ‘, op deze manier valt dan iedere letter uit de gecodeerde tekst om te zetten. Overigens moet wel gezegd worden, dat het voor die tijd natuurlijk wel een goed systeem was.Maar tegenwoordig zal je dus een systeem nodig hebben waarbij je niet een letter simpelweg door een andere vervangt, je moet zorgen dat een kraker niet door zoiets simpels als frequentieanalyse een bericht weet te kraken.
§3: Caesar
Caesar maakte gebruik van 2 monoalfabetische vormen van substitutie:
§3.1: Griekse karaktermethode
Hierin werden Latijnse letters omgezet in Griekse letters. De ontvanger van het gecodeerde bericht moest natuurlijk wel het Griekse alfabet kennen. Vaak werd deze methode ook toegepast in combinatie met de verschuifmethode, ook wel het Caesar-cijfer genoemd. Deze methode zal in het 2de deel van deze paragraaf uitgelegd worden.
Sleutel:
Latijnse letter 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
Griekse letter α β γ δ ε ζ η θ ι κ λ μ ν ο π ξ ρ ς τ υ φ χ ψ ω
Codering Cleopatra:
c l e o p a t r a
γ λ ε o π α τ ρ α
Als je deze methode wilde kraken moest je het Griekse alfabet kennen, je kon de code echter ook kraken door middel van frequentieanalyse. Deze methode werd in de vorige paragraaf al uitgelegd. Overigens valt ook op dat een aantal van de Griekse letters nogal lijken op de Latijnse, als je bijvoorbeeld kijkt naar de a, b, e, i, k, o etc. Zie je dat hiervan het Griekse symbool erg lijkt op het Latijnse en dat maakt het dus ook gemakkelijk deze berichten toch te kunnen begrijpen, ook al ken je het Griekse alfabet niet.
Voor die tijd was deze methode een erg betrouwbare manier om berichten te coderen, aangezien ze toen nog niet zo op de hoogte waren van de frequentieanalyse en het Griekse alfabet ook nog niet bekend was bij het normale volk.
§3.2: Caesar-cijfer
Hierbij verschuif je alle letters van het oorspronkelijke bericht met K naar rechts. Deze K is van tevoren afgesproken met de ontvanger.
Bijvoorbeeld: K=1, dan wordt A = B, B = C,..,.., Z = A
Sleutel: K=3
Codering Cleopatra:
c l e o p a t r a
K=1 d m f p q b u s b
K=2 e n g q r c v t c
K=3 f o h r s d w u d
Overigens willen we bij deze methode nog een kleine opmerking maken. Als je namelijk een sleutel hebt van bijvoorbeeld k= 205, dan is het erg ingewikkeld om op bovenstaande manier op het juiste codewoord te komen, dit zal je gemakkelijker moeten bekijken. Dit doe je door iedere letter een cijfer te geven (a=0, b=1, c=2 etc. Overigens kun je ook bij A=5 beginnen en zo doorgaan zolang je maar blijft optellen, maar het is logischer om bij 0 of 1 te beginnen). Vervolgens tel je K hierbij op. De letter A wordt dan 0 + 205 = letter 205. Je gaat echter maar tot 25 omdat we bij de 0 beginnen te tellen (als je a=1 zou nemen, en je dus bij de 1 begint, eindig je bij de 26), dus zul je er steeds 26 vanaf moeten trekken tot je een bepaalde rest overhoudt en dit is dan je gecodeerde letter, dit heet modulorekenen en zal in het volgende hoofdstuk beter worden uitgelegd.
We zullen het codewoord weer met k=3 omzetten, maar nu echter op deze gemakkelijkere manier. Wij hebben tevens een tabbel toegevoegd waarop makkelijk valt af te lezen welk getal bij welke letter past.
Letter a b c d e f g h i j k l m n o p q
Getal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Letter r s t u v w x y z
Getal 17 18 19 20 21 22 23 24 25
Letters c l e o p a t r a
Getallen 2 11 4 14 15 0 19 17 0
Sleutel 3 3 3 3 3 3 3 3 3
Codeergetallen 5 14 7 17 18 3 22 20 3
Codeerletters f o h r s d w u d
Het Caesar-cijfer is heel simpel te ontcijferen door alle mogelijke sleutels uit te proberen. Je neemt dus gewoon een stuk vercijferde tekst, trekt elke mogelijke sleutelwaarde ervan af en kijkt welke sleutel een stuk Nederlandse tekst oplevert.
Een gemakkelijkere methode om een Caesarvercijfering te kraken is door middel van de al eerder besproken frequentieanalyse.
§4: Vigenère
Een grote stap voorwaarts is de uitvinding van de Fransman Blaise de Vigenère. Hij verving ook letters uit de originele tekst door andere gecodeerde letters, maar nu met het verschil dat er meerdere mogelijkheden per letter waren. Je kreeg dus niet bijvoorbeeld voor de ‘A’ alleen een ‘U’, maar het kon nu ook een ‘Z’ of een ‘J’ worden. Dit werd mogelijk gemaakt door middel van een sleutelwoord en verschuiving. Dit wordt ook wel polyalfabetische substitutie genoemd.
Vigenère had voor het eerst een echt systeem ontwikkeld waarbij je de geheime tekst niet zomaar kunt ontcijferen aan de hand van de frequentie van de letters. Zoals al eerder werd gezegd komt normaal gesproken bij elke taal een bepaalde letter van het alfabet met een bepaalde frequentie voor in elke tekst. Als je de verschuifmethode zou gebruiken, dan krijg je in de gecodeerde tekst ook steeds 1 letter met dezelfde frequentie. Hieruit zou je dan de originele letter kunnen afleiden. Bij Vigenère’s polyalfabetische substitutiemethode is dit niet geval, aangezien je bij deze methode meerdere mogelijkheden per letter hebt door het gebruik van een sleutelwoord.
Een simpel uitleg van deze methode is dat je bij een oorspronkelijk bericht steeds een codewoord optelt, waarna je een gecodeerd bericht krijgt. Een betere uitleg van dit systeem volgt nu door middel van een voorbeeld.
Nu vertalen we Cleopatra aan de hand van de Vigenère-tabel. Als sleutelwoord gebruiken we MUS.
Sleutel: MUS en de tabel op de volgende pagina.
0 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
1 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 a
2 c d e f g h i j k l m n o p q r s t u v w x y z a b
3 d e f g h i j k l m n o p q r s t u v w x y z a b c
4 e f g h i j k l m n o p q r s t u v w x y z a b c d
5 f g h i j k l m n o p q r s t u v w x y z a b c d e
6 g h i j k l m n o p q r s t u v w x y z a b c d e f
7 h i j k l m n o p q r s t u v w x y z a b c d e f g
8 i j k l m n o p q r s t u v w x y z a b c d e f g h
9 j k l m n o p q r s t u v w x y z a b c d e f g h i
10 k l m n o p q r s t u v w x y z a b c d e f g h i j
11 l m n o p q r s t u v w x y z a b c d e f g h i j k
12 m n o p q r s t u v w x y z a b c d e f g h i j k l
13 n o p q r s t u v w x y z a b c d e f g h i j k l m
14 o p q r s t u v w x y z a b c d e f g h i j k l m n
15 p q r s t u v w x y z a b c d e f g h i j k l m n o
16 q r s t u v w x y z a b c d e f g h i j k l m n o p
17 r s t u v w x y z a b c d e f g h i j k l m n o p q
18 s t u v w x y z a b c d e f g h i j k l m n o p q r
19 t u v w x y z a b c d e f g h i j k l m n o p q r s
20 u v w x y z a b c d e f g h i j k l m n o p q r s t
21 v w x y z a b c d e f g h i j k l m n o p q r s t u
22 w x y z a b c d e f g h i j k l m n o p q r s t u v
23 x y z a b c d e f g h i j k l m n o p q r s t u v w
24 y z a b c d e f g h i j k l m n o p q r s t u v w x
25 z 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
Tabel 1: De Vigenère tabel
Zoals je ziet hebben we de rijen waarin de ‘m’, de ‘u’ en de ‘s’ staan, gemarkeerd, in deze rijen moet je namelijk kijken om de gecodeerde letters te krijgen. Als we bijvoorbeeld de eerste letter van het woord Cleopatra nemen, de ‘c’dus, moeten we kijken waar deze rij de rij van het de eerste letter van het sleutelwoord mus, de ‘m’ dus, kruist. In tabel 2, waarbij we de Vigenère-tabel een klein beetje ingekort hebben, is duidelijk te zien hoe je het kruispunt tussen de ‘c’ en de ‘d’bepaalt. Als gecodeerde letter krijg je dan de letter ‘f’. Zowel de ‘d’ als de ‘c’ kunnen hier ene letter uit het sleutelwoord zijn. Als hier bijvoorbeeld de ‘d’ uit het sleutelwoord afkomstig is, dan is de ‘c’ afkomstig uit de originele tekst.
a b c d
b c d e
c d e f
d e f g
Tabel 2: Ingekorte Vigenère-tabel.
Toepassing op het woord Cleopatra:
c l e o p a t r a
m u s m u s m u s
o f w a j s f l s
Je kan nu ook beredeneren dat hoe langer en hoe gevarieerder een sleutelwoord is, hoe moeilijker de code te kraken is, het aantal toevallige overeenkomsten wordt dan namelijk kleiner.
Bij 3 letters heb je een kans om het gecodeerde bericht te raden van:
1/26 x 1/ 26 x 1/26 = (1/26)^3 = 5.69 x 10^-5
Bij 4 letters heb je een kans om het gecodeerde bericht te raden van:
1/26 x 1/26 x 1/ 26 x 1/26 = (1/26)^4 = 2.19 x 10^-6
De kans om te kraken is neemt dus af met 5.69 x 10^-5 26
2.19 x 10^-6 = 1
3-sleutelwoord : 4-sleutelwoord = 26 : 1 . Dat wil dus zeggen dat je bij een 3-sleutelwoord 26 keer groter is dan voor een 4-letter sleutelwoord.
Voor iedere extra letter in het sleutelwoord maakt de kans dat de code wordt gekraakt 26 keer zo klein. In formule:
‘kraakkans‘ voor een n-lettersleutelwoord = (1/26)^n
toename in ‘kraakkans’ voor een n-lettersleutelwoord in verhouding tot een 1-lettersleutelwoord = 26^(n-1).
Bijvoorbeeld bij n=6, dan is de kans om de code te kraken in verhouding tot die van een
1-lettersleutelwoord 26^(6-1)= 26^5=1,2x10^7 keer zo klein.
Controle: Bij 1 letter heb je een kans om het gecodeerde bericht te raden van:
1/26 = (1/26)^1 = 3.85 x 10^-2
Bij 6 letters heb je een kans om het gecodeerde bericht te raden van:
1/26 x 1/26 x 1/ 26 x 1/26 x 1/ 26 x 1/26 = (1/26)^6= 3,24 x 10^-9
de kans om te kraken is neemt dus af met 3,85x 10^-2 1,2 x10^7 26^5
3,24 x 10^-9 = 1 = 1
1-sleutelwoord : 6-sleutelwoord = 26^5 : 1 . Dat wil dus zeggen dat de kraakkans bij een 1-lettersleutelwoord 26^5 keer groter is dan voor een 6-lettersleutelwoord.
Tegenwoordig kan men met behulp van een computer ook de Vigenère-codering redelijk snel kraken, zelf hebben wij in het laatste hoofdstuk van ons werkstuk ook een Vigenère-codering proberen te kraken, echter wel handmatig zoals ze dat in de tijd van Vigenère ook moesten doen. Het is natuurlijk logisch dat hoe langer en hoe gevarieerder (dus met zo min mogelijk overeenstemmende letters) het sleutelwoord, hoe moeilijker het bericht te kraken, vandaar dat wij in hoofdstuk 4, waar wij zelf een stukje zullen kraken, een relatief kort sleutelwoord hebben gebruikt.
§5: Diffie-Hellman
Bij vele manieren van coderen komt altijd het probleem van het overbrengen van de sleutel. Dat is meestal het zwakste punt van de hele codering, want als je de sleutel aan de ontvanger vertelt, loop je altijd de kans dat er een ongewenst tussenpersoon achter komt; via de telefoon kan het afgeluisterd worden, en via de post kan het onderschept worden De enige veilige manier was het persoonlijk te vertellen, maar dan was de zin van het bericht opsturen ook weg. Dat probleem hadden Whitfield Diffie en Martin Hellman ook.. Ze wilden een manier verzinnen waarop het mogelijk was een bericht naar de ander te versturen, zonder dat ze van tevoren een sleutel hadden afgesproken.
Toen bedachten zij een manier waarbij de ontvanger en de verzender alleen zijn eigen letterlijke (een daadwerkelijke) sleutel nodig hadden om het bericht veilig naar de ander over te brengen: de verzender stopt het bericht in een metalen koffer en zet er een slot op. Hij houdt de sleutel zelf, en stuurt de koffer naar de persoon waarvoor het bericht is bestemd. Deze zet er een eigen slot bij, en stuurt het weer terug. Deze haalt zijn slot er weer vanaf, en stuurt de koffer vervolgens weer naar de ontvanger, waarna deze zijn slot eraf haalt, en vervolgens ook het bericht kan lezen. Dit was de concrete versie waarvan ze een wiskundige, abstracte versie wilden creëren. Alleen bleek dit niet zo gemakkelijk te gaan, aangezien bij wiskunde de regel geldt: wat er als laatste op gaat, moet er als eerste af. Met een voorbeeld zullen wij deze regel toelichten.
Persoon 1 geeft iedere letter van het alfabet een willekeurige andere letter. Persoon 2 doet hetzelfde, maar voegt zijn eigen willekeurige letters toe.
Sleutel van persoon 1:
Abc def ghi jkl mno pqr stu vwx yz
HFS UGT AKV DEO YJB PNX WCQ RIM ZL
Sleutel persoon 2:
Abc def ghi jkl mno pqr stu vwx yz
CPM GAT NOJ EFW IQB URY HXS DZK LV
Bericht cleopatra
Vercijferd met sleutel 1: sogbphcxh
Vercijferd met sleutel 2: hbrpuomko
Ontcijferd met sleutel 1: kfxpqbyeb
Ontcijferd met sleutel 2: ftkurplap (hier had dus cleopatra moeten staan)
Zoals je hierboven kunt zien klopt de beredenering van Diffie en Hellman niet op de wiskundige methode. Met bovenstaand voorbeeld hebben we laten zien dat je niet op de eenvoudige methode van Diffie en Hellman kon werken. Er zit dus nog een fout in het systeem.. Diffie en Hellman moesten nog iets extra’s toevoegen aan hun systeem.
Na intensief onderzoek vond Hellman een oplossing voor dit probleem. Het idee van het systeem was wel goed, maar er moest alleen een kleine wijziging aangebracht worden; de sleutels moesten aan bepaalde eisen voldoen.
Twee personen spreken onderling 2 getallen af: P en Y. P is een priemgetal (alleen zonder rest deelbaar door zichzelf en 1, bijvoorbeeld 3 en 11), en groter dan 1. Y moet tussen 1 en P in liggen, en hoeft geen priemgetal te zijn.
Beide personen nemen vervolgens een geheim getal (persoon 1 neemt getal A en persoon 2 neemt getal B waarbij geldt dat zowel getal A als B groter moet zijn dan 1 en kleiner dan P, 1
Het profielwerkstuk gaat verder na deze boodschap.
Verder lezen
REACTIES
:name
:name
:comment
1 seconde geleden
M.
M.
Bedankt, je hebt me geholpen vraag 6 van de AIVD kerstpuzzel op te lossen :-)
8 jaar geleden
Antwoorden