In de klassieke cryptografie gebruikt men
verschillende vercijferingsmethodes om met behulp van een
geheime sleutelwoord of zin een tekst om te zetten in een
onleesbare code. De tekst kan enkel ontcijferd worden
door de persoon die dezelfde methode gebruikt en in het
bezit is van dezelfde geheime sleutel. Er zijn
verscheiden technieken ontwikkeld waarvan enkel zeer
betrouwbaar bleken. De klassieke vercijferingssystemen
noemen we ook wel handcijfers of pen-en-papiercodes.
Hoewel de ontwikkeling van
cryptografische machines en computers veel van het
handwerk overbodig maakte, bleef er altijd een rol
weggelegd voor de handcijfers. Veldcijfers, zo noemen
militairen de handcijfers, zoals de dubbele transpositie
werden nog zeer veel gebruikt tijdens de Tweede
Wereldoorlog. Het grote voordeel van veldcijfers is de
eenvoudige toepassing zonder speciale toestellen. Daarom
blijven deze veldcijfers tot op vandaag nog steeds een
interessant alternatief om een boodschap op eenvoudige
wijze toch veilig over te brengen. In dit artikel
beschrijven we de bekendste klassieke handcijfers.
In de loop der eeuwen zijn vele
verschillende methodes ontwikkeld voor de vercijfering
van text. Hieronder worden enkele van de bekendste
vercijferingsmethodes voorgesteld.
Rotatievercijfering is een van de oudst gekende cijfers en
werd gebruikt voor de communicatie tussen
Romeinse veldheren. Deze vercijfering wordt ook
wel rotatiecijfer of ROT genoemd.
Vigenère is een polyalfabetische substitutie,
het vervangen van letters aan de hand van
verschillende alfabetische reeksen in een tabel,
het Vigenère-tableau.
Autokey is een verbetering van het
Vigenèrecijfer. Hierbij vercijfert men, mits een
kleine verschuiving door een sleutelwoord, de
klare tekst met zichzelf.
Homofone
substitutie gebruikt
een evenredige verdeling van letters naar
getallen om bestand te zijn tegen
letterfrequentie-analyse.
Playfair is een substitutiecijfer waarbij een
matrix is gebruikt om bigrammen te vercijferen.
Bifid is een matrix die een combinatie van
substitutie met fractionering gebruikt. Elke
letter wordt opgesplits in twee getallen.
Trifid is een drievoudige matrix welke een
combinatie van substitutie met fractionering
gebruikt. Elke letter wordt opgesplitst in drie
getallen.
One-time-pad is een theoretisch onbreekbare, maar in
de praktijk onpraktische vercijfering.
ADFGVX combineert fractionering van een
Polybiusvierkant, dat een monoalfabetisch
substitutie bevat, met een enkelvoudige
kolomstranspositie. Het was tijdens de Eerste
Wereldoorlog het veldcijfer van het Duitse leger.
Transpositie gebruikt een sleutelwoord om letters te
verplaatsen binnen de tekst.
Dubbele
transpositie is een
tweevoudige kolom transpositie. Dit was één van
de veiligste handcijfers, gebruikt tijdens de
Tweede Wereldoorlog.
Straddling
Checkerboard of
spreidend schaakbord is een fractionerend
monoalfabetisch substitutiecijfer. Het is een
matrixcijfer dat meestal gevolgd wordt door een
bijkomen dubbele transpositie.
Vercijferingsmethodes
Een methode van vercijfering noemen we
een cijfer. De leesbare tekst noemen we klare tekst, en
de vercijferde of gecodeerde tekst noemen we cijfertekst.
De cijfertekst wordt meestal ingedeeld in groepen van
vijf letters. Er zijn drie grote indelingen in de
techniek van het vercijferen.
Substitutie:
vervangen van letters door andere letters
Transpositie:
verwisselen van de positie van letters binnen een
tekst
Fractionering:
breken van letters in verschillende delen waarna
deze verplaatst worden
Vooral de combinatie van transpositie
en fractionering blijkt zeer effectief. Hierdoor worden
de verschillende delen van één letter verspreid over de
ganse tekst, waardoor de vercijfering voldoet aan Claude
Shannon's diffusie. Het ideale cijfer is dus een
combinatie van de drie vercijferingsprincipes, dat
bovendien eenvoudig is in gebruik. Enkele voorbeelden die
transpositie en fractionering combineren zijn Bifid, Trifid, en ADFGVX. De principes van substitutie, transpositie en
fractionering worden bij de moderne crypto-algoritmes
voor computer nog steeds toegepast.
Sleutelwoorden
Een vereiste voor een goed cijfer is
dat het eenvoudig is in gebruik. Daarom gebruikt men
veelal sleutelwoorden om een substitutie-alfabet of een
matrix, ook welf cijferalfabet genoemd, te vullen.
Doorgaans noteert men het sleutelwoord, of de zin,
schrapt de letters die er dubbel in voorkomen, en vult
achter dit sleutelwoord de resterende letters van het
alfabet aan. Hoe langer het sleutelwoord of de zin, des
te minder men alfabetisch dient aan te vullen.
Voor een matrix kan men vele
verschillende manieren van vullen gebruiken die zender en
ontvanger overeen kunnen komen. In de voorbeelden
hieronder zien we in de eerste matrix het sleutelwoord
van links naar rechts en boven naar onder. De tweede
matrix is spiraalgewijs tegen de klok in van buiten naar
binnen gevuld. De derde matrix is van boven naar onder en
van rechts naar links. De vierde matrix is van linksboven
zigzaggend naar rechtsonder. Vele andere combinaties,
richtingen en figuren zijn mogelijk. Zoals u kunt zien
kan men van één sleutelwoord veel totaal verschillende
matrixen maken.
S L E U T S IJ H G F Q IJ B W S S L E U T
W O R D A L K Y X C V K C O L A D R O W
B C F G H E M Z V B X M F R E B C F G H
IJ K M N P U N P Q A Y N G D U P N M K IJ
Q V X Y Z T W O R D Z P H A T Q V X Y Z
Om de veiligheid te verhogen en een
betere spreiding van het alfabet te verkrijgen kan men
twee sleutelwoorden 'mixen'. In het voorbeeld hieronder
gebruiken we de sleutelwoorden ARENA en SLEUTELWOORD.
ARENA wordt gebruikt als hoofding van de tabel waarin
SLEUTELWOORD is ingevuld. Daarna lezen we de kolommen van
ARENA in alfabetische volgorde af. Indien twee letters
identiek zijn nemen we de meest linkse eerst. In wezen
word hier met ARENA een kolomtranspositie uitgevoerd op
het cijferalfabet.
A R E N A
-------------
S L E U T
W O R D A
B C F G H
IJ K M N P
Q V X Y Z
Afgelezen volgens de ARENA hoofding:
S W B IJ Q T A H P Z E R F M X U D G N Y L O C K V
Natuurlijk zijn er vele variaties en
combinaties mogelijk. Belangrijk is steeds dat het
sleutelwoord of woorden makkelijk te onthouden zijn en
zij op een eenvoudige maar degelijke manier gemixt
worden.
Veiligheid
Alle hierboven beschreven handcijfers
werden vroeg of laat met succes gebroken door
cryptoanalyse. Sommige van de veldcijfers zijn desondanks
nuttig indien de tijd, nodig voor cryptoanalyse, zo lang
is dat de verkregen informatie achterhaald en nutteloos
blijkt. In de Verenigde Staten is de informatie over
cryptoanalyse van de dubbele transpositie geheim gebleven
tot voor enkele jaren. Enkele meer complexe handcijfers
zijn het SECOM-cijfer, PPC-xx en het beruchte VIC-cijfer, gebruikt door de Russissche spion Reino Hayhanen, codenaam Victor. Het VIC-cijfer bleef
ongebroken. Berichten, vercijferd met VIC konden pas
ontcijferd worden na het overlopen van Hayhanen. Zowel
SECOM als VIC gebruiken een combinatie van dubbele
onderbroken transpositie en een checkerboard variant.
Succesvolle cryptoanalyse is enkel
mogelijk indien genoeg cijfermateriaal ter beschikking is
dat met dezelfde sleutel werd vercijferd. Over het
algemeen geldt dat grotere sleutelwoorden een betere
veiligheid geven en hoe minder tekst vercijferd is, des
te moeilijker de cijfertekst te kraken is.
Letterfrequentie-analyse is bijvoorbeeld onbetrouwbaar
als er slechts één zin werd gecodeerd, of er
verhoudingsgewijs veel zeldzame letters in de tekst
zitten. Zo is het eenvoudige Vigenère onbreekbaar indien één korte zin met een lang
sleutelwoord vercijferd werd, maar is het breken van het
veel veiliger dubbele transpositie
minder moeilijk indien er genoeg cijfertekst voorhanden
is.
Indien men de sterkte van een bestaand
cijfer wil verhogen kan men het combineren met andere
cijfers. Zo kunt u bijvoorbeeld bij Trifid na omzetting in een getallenreeks deze eerst
bewerken met een dubbele transpositie
vóór de gefractioneerde letters terug worden
samengevoegd. Door een enkele kolomtranspositie te gebruiken vóór vercijfering met Playfair trekt men de veelgebruikte digrammen in de
klare tekst uit elkaar.
Crypto software
Met Cipher
Classics v2.0 kunt u
snel en eenvoudig tekst vercijferen. U kunt
hierbij kiezen uit een lijst van klassieke
cijfermethodes.