Geheimschrift/Alfabetten: verschil tussen versies

Uit Wikibooks
Verwijderde inhoud Toegevoegde inhoud
TeunSpaans (overleg | bijdragen)
Geen bewerkingssamenvatting
TeunSpaans (overleg | bijdragen)
Labels: Ongedaan gemaakt *** Abusefilter 4 ***
Regel 2: Regel 2:


=== Caesargeheimschrift ===
=== Caesargeheimschrift ===
Een van de oudste geheimschriften is de substitutie van [[Geheimschrift/Alfabetten/Caesarcijfer|Caesarcijfer]].
Een van de oudste geheimschriften is de substitutie van het [[Geheimschrift/Alfabetten/Caesarcijfer|Caesarcijfer]].


In deze code wordt elke letter vervangen door de volgende letter uit het alfabet. Dus A wordt vervangen door B, B wordt vervangen door C, enzovoorts, tot en met de Z die vervangen wordt door de A.
In deze code wordt elke letter vervangen door de volgende letter uit het alfabet. Dus A wordt vervangen door B, B wordt vervangen door C, enzovoorts, tot en met de Z die vervangen wordt door de A.


Het is gemakkelijk en snel te doen. Sommige mensen gebruiken het voor hun dagboek. Als iemand een willekeurige bladzij open slaat, zal deze niet direct snappen wat er staat. Met wat oefening schijnen mensen dit (bijna) net zo snel te schrijven als normaal schrift.
Het is gemakkelijk en snel te doen. Sommige mensen gebruiken het voor hun dagboek. Als iemand een willekeurige bladzij open slaat, zal deze niet direct snappen wat er staat. Met wat oefening schijnen mensen dit vrijwel net zo snel te schrijven als normaal schrift.


Julius Caesar gebruikte dit systeem, maar dan met 3 plaatsen opschuiven. Dus A wordt D, B wordt E, etc. Dat wordt ook wel ROT-3 genoemd. ROT staat dan voor ROTeren. Een speciaal geval is ROT-13. Dan schuiven alle letters 13 plaatsen op. Dus twee keer uitvoeren levert de oorspronkelijke tekst op!
Julius Caesar gebruikte dit systeem, maar dan met 3 plaatsen opschuiven. Dus A wordt D, B wordt E, etc. Dat wordt ook wel ROT-3 genoemd. ROT staat dan voor ROTeren. Een speciaal geval is ROT-13. Dan schuiven alle letters 13 plaatsen op. Dus twee keer uitvoeren levert de oorspronkelijke tekst op!


''Ontcijferen''<br />
Wanneer je het bericht in geheimschrift binnenkrijgt, ga je zoveel plaatsen in het alfabet terug als de vercijferaar plaatsen vooruit is gegaan.

''Kraken''<br />
Wanneer je een bericht in handen krijgt waarvan je vermoed dat de verzender het Caesargeheimschrift heeft gebruikt, kun je het bericht overschrijven. Vervolgens schrijf je voor elke letter in het bericht het alfabet naar beneden uit.

Voorbeeld: het bericht luidt: EMCB. Je schrijft dan op:<br />
EMCB<br />
FNDC<br />
GOED<br />
HPFE<br />
IQGF<br />
etc<br />
Op de 3de regel verschijnt het woordje 'GOED', dus je weet dan dat je 2 plaatsen moet op schuiven.


=== Sleutelalfabet ===
=== Sleutelalfabet ===

Versie van 27 aug 2023 19:48

Geheimschrift

Er zijn veel soorten geheimschrift. In dit hoofdstuk kijken we naar wat we met een mooi woord "mono-alfabetische substituties" noemen. Dat wil zeggen dat elke letter door 1 ander symbool vervangen wordt.

Caesargeheimschrift

Een van de oudste geheimschriften is de substitutie van het Caesarcijfer.

In deze code wordt elke letter vervangen door de volgende letter uit het alfabet. Dus A wordt vervangen door B, B wordt vervangen door C, enzovoorts, tot en met de Z die vervangen wordt door de A.

Het is gemakkelijk en snel te doen. Sommige mensen gebruiken het voor hun dagboek. Als iemand een willekeurige bladzij open slaat, zal deze niet direct snappen wat er staat. Met wat oefening schijnen mensen dit vrijwel net zo snel te schrijven als normaal schrift.

Julius Caesar gebruikte dit systeem, maar dan met 3 plaatsen opschuiven. Dus A wordt D, B wordt E, etc. Dat wordt ook wel ROT-3 genoemd. ROT staat dan voor ROTeren. Een speciaal geval is ROT-13. Dan schuiven alle letters 13 plaatsen op. Dus twee keer uitvoeren levert de oorspronkelijke tekst op!

Ontcijferen
Wanneer je het bericht in geheimschrift binnenkrijgt, ga je zoveel plaatsen in het alfabet terug als de vercijferaar plaatsen vooruit is gegaan.

Kraken
Wanneer je een bericht in handen krijgt waarvan je vermoed dat de verzender het Caesargeheimschrift heeft gebruikt, kun je het bericht overschrijven. Vervolgens schrijf je voor elke letter in het bericht het alfabet naar beneden uit.

Voorbeeld: het bericht luidt: EMCB. Je schrijft dan op:
EMCB
FNDC
GOED
HPFE
IQGF
etc
Op de 3de regel verschijnt het woordje 'GOED', dus je weet dan dat je 2 plaatsen moet op schuiven.

Sleutelalfabet

Het Caesargeheimschrift werkt met het standaard alfabet. In deze variant gebruiken we een alfabet dat door een sleutelwoord wordt veranderd.

Het recept is eenvoudig: neem een woord, bijvoorbeeld “zandbak”. Haal daar de herhaalde letters uit. In ons voorbeeld houden we dan “zandbk” over. Schrijf dat op en zet de andere letters van het alfabet er achter. Schrijf het alfabet er boven.

  • abcde fghij klmno pqrst uvwxy z
  • zandb kcefg hijlm opqrs tuvwx y

Zoek nu in elke letter uit het te versleutelen bericht op in de bovenste regel en vervang het door de letter daaronder.

Dus:

“Dit bericht is niet moeilijk”

wordt dan:

“Nfs abqfnes fr lfbs jmbfifgh”

Het woord “Zandbak” wordt het sleutelwoord genoemd. Door regelmatig het sleutelwoord te veranderen, wordt een bericht iets lastiger te ontcijferen.

Het bericht ziet er misschien mysterieus uit, maar het kent veel zwakheden. Een aantal opvallende zwakheden zijn:

  • a) Je ziet dat aan het eind van het alfabet de oorspronkelijke letter uit het bericht en de gecodeerde letter in het alfabet dicht bij elkaar staan. Doordat het woord ‘zandbak’ een ‘z’ bevat, verschillen ze nog iets, maar als dat niet het geval is, blijven de letters w, x, y en z vaak onveranderd.

Dus als je een gecodeerd bericht in handen krijgt, en je ziet een ‘w’, weet je dat dit waarschijnlijk een ‘v’, ‘w’ of ‘x’ is geweest. Dat is nog te verhelpen door de rest van het alfabet achterstevoren te schrijven, dus: zandb kyxwv utsrq pomlj ihgfe c Maar er zijn nog meer problemen.

  • b) De lengte van de woorden is onveranderd gebleven. Vooral korte woorden zijn een aanwijzing. Als je vaak een woord van 2 letters voor een lang woord ziet staan, dan is ‘de’ een voor de hand liggende gok.

De standaard werkwijze om de ontsleutelaar dit voordeel te ontnemen, is om de woorden na het versleutelen te groeperen in groepjes van 5 letters.

“Nfsab qfnesf rlfbs jmbfi fgh”

ziet er al lastiger uit dan:

“Nfs abqfnes fr lfbs jmbfifgh”
  • c) Totdat de sleutel verandert, wordt een letter altijd door dezelfde letter vervangen. In het Nederlands en het Engels zijn de ‘e’ en de ‘n’ de meest voorkomende letters. Neem maar eens een paragraaf van vijf of meer regels en tel hoeveel a’s, b’s enzovoorts er in die tekst voorkomen. Je zult zien hoe snel de ‘e’ en de ‘n’ er uit springen.

Om zo’n bericht als hierboven te ontcijferen, kun je beginnen met te tellen hoe vaak elke letter voorkomt. Je haalt er dan al snel de ‘e’ en de ‘n’ uit.

Het groeperen van gecodeerde berichten in groepen van 5 letters is in de loop van de eeuwen standaard werkwijze geworden. Iets anders wat in de loop der eeuwen gebruikelijk is geworden, is het weglaten van leestekens. Een punt ‘,’ geeft keurig aan waar een zin eindigt. En als je een komma (‘,’) ziet, weet je dat de kans groot is dat daarna een van de woordjes ‘en’, ‘of’ of ‘maar’ volgt. Door de leestekens weg te laten, ontnemen we de ontcijferaar dit kleine voordeeltje.

Het ceasarschrift is het bekendste voorbeeld van wat we een mono-alfabetische substitutie noemen.

Andere voorbeelden van monoalfabetische substituties zijn

Het Brailleschrift en het Morse alfabet zijn niet bedoeld als geheimschriften. Wel vallen ze onder de mono-alfabetische substituties.

Rozenkruisersgeheimschrift

Het Rozenkruisersgeheimschrift, ook wel tempeliersgeheimschrift, of vrijmetselaarsalfabet genoemd, gaat uit van het volgende diagram:

:

Met behulp van de voorbeeldsleutel, de gegeven diagram, kan de tekst "X marks the spot" als volgt in versleutelde tekst worden weergegeven:

De tempeliers zouden gebruik hebben gemaakt van een versleuteling gebaseerd op het Maltezer kruis[1]

Er zijn, zoals uit bovenstaande blijkt, verschillende vormen in gebruik geweest. Niets verhindert je om een eigen variant te bedenken. Als kleine extra moeilijkheid kun je ook hier, net als bij het caesargeheimschrift, het alfabet mengen op basis van een sleutelwoord:

Om dit format te gebruiken, geef met de positie van een punt aan of de linker, middelste of de rechter van de drie letters in het vakje moet worden gebruikt. De tekst "ZEG NIETS" wordt dan:

Atbash geheimschrift

Het Atbash geheimschrift neemt als sleutelalfabet het gewone alfabet maar achterstevoren geschreven. Het schijnt oorspronkelijk op het Hebreeuwse alfabet gebaseerd. Men neemt aan dat het ouder is dan Egyptische geheimschriften. (https://www.boxentriq.com/code-breaking/atbash-cipher).


Affine geheimschrift

Het ‘Affine geheimschrift’ gebruikt getallen, en gaat een stap verder dan a=1 b=2 … z=26. We beginnen daar wel mee:

“geheim” wordt 7 5 8 5 9 13.

Vervolgens rekenen we hiermee volgens de formule:

F(x)=(ax+b) mod 26.

Module 26 wil zeggen: trek er net zo vaak 26 van af totdat we lager dan 26 uitkomen, oftewel totdat we een getal tussen de 0 en de 25 over houden. De a en b vormen daarbij onze sleutel. Stl dat we zouden kiezen dat a = het nummer van de dag in de week (ma=1, zo=5) en b is de dag in de maand. Dus als we bovenstaande bericht zouden coderen op dinsdag de 18e, wordt de functie f(x)=(2x+18) mod 26.

f(7) = (2*7 + 18) mod 26 = 32 mod 26 = 6
f(5) = (2*5 + 18) mod 26 = 28 mod 26 = 2
f(7) = (2*8 + 18) mod 26 = 34 mod 26 = 8
f(7) = (2*5 + 18) mod 26 = 28 mod 26 = 2
f(7) = (2*9 + 18) mod 26 = 36 mod 26 = 10
f(7) = (2*13 + 18) mod 26 = 44 mod 26 = 18

De laatste stap is dan om deze getallen weer door een letter te vervangen:

FBHBJR

Maar we zien hier gelijk al een probleempje opdoemen: alle verkregen getallen zijn even, dus er zijn maar 13 verschillende uitkomsten. f(a)=f(1)=2+18=20 f(n)=f(2*14+18 mod 26 = 28+18 mod 26 = 46 mod 26 = 20 Zo geven de letters a en n dezelfde gecodeerde waarde, dus degene die het bericht kent, zal voor elke letter uit twee verschillende bronletters moeten kiezen, ook degene voor wie het bericht kent. De letter ‘a’ in de formule zal dus in elk geval een oneven waarde moeten hebben.

Cryptonalayse

Crypto analyse is het woord dat we gebruiken voor het ontcijferen van berichten die niet voor ons bedoeld zijn. Degene die een geheimschrift probeert te ontcijferen, wordt een cryptoanalist of codebreker genoemd.

Hoe ontcijfer je een mono-alfabetische substitutie?'' De eerste stap van cryptoanalyse is het tellen van de frequentie van de letters. Komen de E en de N het meest voor? Dan is het bericht vrijwel zeker in het Nederlands, Engels of Duits, en is er geen substitutie maar een transpositie uitgevoerd. Zie daarvoor het volgende hoofdstuk. Steken er wel 2 letters met kop en schouders boven de anderen uit? Dan zal de crypto analist een gok voor de taal maken.

De cryptoanalist zal de boodschap uitschrijven met een blanko regel er tussen. Daar zet hij de vermoedelijke E en de N onder de letters die letters die het vaakst voorkomen. Als er veel tekst beschikbaar is, kan hij nog een paar letters raden. Daarna is het handig als hij bepaalde woorden kan raden. Wat weet hij over de schrijver? Heeft die met zijn naam ondertekend? Begint er een bericht met iets als "beste Piet"? Als de oorspronkelijke woordlengte in tact is gelaten, dan maakt dat het gemakkelijk met korte woordjes als 'de', 'het', 'of', 'in', 'en' etc.

Letter frequenties Nederlandse taal
Letter Percentage
e 18,91%
n 10,03%
a 7,49%
t 6,79%
i 6,50%
r 6,41%
o 6,06%
d 5,93%
s 3,73%
l 3,57%
g 3,40%
v 2,85%
h 2,38%
k 2,25%
m 2,21%
u 1,99%
b 1,58%
p 1,57%
w 1,52%
j 1,46%
z 1,39%
c 1,24%
f 0,81%
x 0,040%
y 0,035%
q 0,009%

Bron: https://onzetaal.nl/taalloket/letterfrequentie-in-het-nederlands

Tot slot nog een voorbeeld van hoe onveilig mono-alfabetische substituties zijn. Toen in Nederland de Binnenlandse Veiligheidsdienst nog bestond, hield deze open dagen. Het publiek was dan welkom. Bezoekers werden uitgedaagd een eenvoudige, niet te korte, boodschap overeenkomstig bovenstaande principes te coderen. Een van de cryptoanalisten van de BVD las ze bij het zien gewoon direct in het Nederlands op.

De logische vervolgvraag is dan: wat zijn dan wel veiliger methodes? De antwoorden hierop varieerden in de loop van de tijd:

  • transposities in plaats van substituties
  • polyalfabetische substituties
  • substituties van 2-lettergroepen, 3- lettergroepen en van hele woorden
  • onzichtbare geheimschriften
  • combinaties van bovenstaande

In Hoofdstuk 2 gaan we dieper in op de transposities, ook omdat dit een heel oude vorm van geheimschrift is.

  1. (en) TW McKeown. Templars cipher, 18 oktober 2005.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.