Op ieder geheim past een sleutel

Computers, vaste en mobiele telefoons, e-mail, Internet en vele andere moderne technologieën liggen aan de basis van onze informatiemaatschappij. In de afgelopen 50 jaar hebben wij wellicht meer teksten, cijfers, beelden, grafieken en audiosignalen uitgewisseld dan al onze voorouders samen. En hoe meer wij communiceren via elektronische kanalen, hoe moeilijker het wordt onze privacy te verzekeren. De explosieve groei van de communicatie ontketende dus een al even explosieve groei van de cryptografie. Moderne cryptografen verrichten erg nuttig werk, maar hanteren een eigen ontoegankelijk jargon dat wij in dit artikel proberen te ontcijferen.

Het geheimschrift of de cryptografie is even oud als het gewone schrift en heel wat historische voorbeelden van cryptografie spreken zeer tot de verbeelding. De moderne complexe cryptografie begint met de Duitse Enigma machine. Zij werd in 1918 uitgedacht door Albert Scherbius die er meteen mee naar het Duitse leger trok. In de nasleep van de Eerste Wereldoorlog kreeg het toestel niet de aandacht die het verdiende, dus verkocht Scherbius zijn patenten aan Gewerkschaft Securitas. Dat bedrijf was gespecialiseerd in alle vormen van beveiliging en onderhield uitstekende relaties met hooggeplaatste militairen.

Enigma machineHet enigma van de cryptografie

In 1920 werd de Enigma machine in productie genomen en in 1925 was de hele Duitse vloot ermee uitgerust. Het toestel werd verder verfijnd en bij het begin van de Tweede Wereldoorlog waren de Nazi’s rotsvast overtuigd van de onfeilbaarheid van hun Enigma code. Maar in het Londense Bletchley Park bracht het Engelse leger meer dan 10.000 wiskundigen samen om onder leiding van de briljante Alan Turing de code te kraken. Zij lieten zich daarbij helpen door een aantal Poolse wetenschappers die in het begin van de jaren dertig al een oudere en eenvoudiger versie van de Enigma-code hadden ontcijferd.

Alle cryptografie is gebaseerd op een zeer eenvoudig principe. Op een kinderspelletje eigenlijk. Iedereen heeft in zijn of haar jeugd wel eens briefjes geschreven waarin alle letters systematisch door andere lettertekens waren vervangen. De Enigma machine werkte net zo. Een boodschap werd eerst via een normaal klavier ingetikt. Met verstelbare schakelingen werden alvast zes lettertekens systematisch door zes andere vervangen. Vervolgens werd deze licht verhakkelde tekst door drie ‘permutaties’ gehaald. Bij iedere permutatie werden de meeste lettertekens systematisch door andere vervangen. Voor iedere opeenvolging van twee gelijke letters werd steeds een speciale substitutieregel toegepast waardoor nooit twee identieke tekens naast elkaar bleven staan. Na die drie permutaties werden alle twee opeenvolgende lettertekens gewoon van plaats verwisseld en werd het geheel opnieuw door drie permutaties gejaagd. Het uiteindelijke resultaat was uiteraard een nietszeggende letterbrij die enkel door een andere Enigma machine kon worden ontcijferd.

Geen geheimen meer voor het Pentagon

Wie een Enigmaboodschap wilde ontcijferen, moest over een toestel beschikken dat op dezelfde wijze was geconfigureerd als de machine waarmee de oorspronkelijke boodschap was gecodeerd. Moderne cryptografen zouden hier spreken van een symmetrische codering omdat de sleutel en het algoritme aan beide zijden identiek dienden te zijn. Met ‘sleutel’ wordt de configuratie van de machine bedoeld terwijl ‘algoritme’ staat voor de opeenvolging van permutaties, substituties en omkeringen. De Enigma machine is dus een klassiek voorbeeld van ‘symmetrische cryptografie’.

In de moderne datacommunicatie wordt nog steeds gewerkt met symmetrische cryptografische systemen. In 1977 schreef het US National Bureau of Standards een wedstrijd uit voor een encryptiemethode waarmee computergegevens konden worden beveiligd. De Data Encryption Standard of DES van IBM kwam als winnaar uit de bus en al gauw werd het systeem overal ter wereld in softwarepakketten ingebouwd.

De kracht van DES ligt in het feit dat het algoritme helemaal publiek is. Iedereen die dat wenst, kan zich verdiepen in de wijze waarop DES gegevens codeert. De sleutel daarentegen is een geheim dat de zender en de ontvanger van een boodschap delen. De lengte van de sleutel is beperkt en daarom is het vandaag mogelijk met behulp van gewone computers alle mogelijke sleutels uit te proberen. Er bestaan zelfs relatief eenvoudige programma’s die tot 200 miljoen sleutels per seconde uittesten. Maar dan nog duurt het maanden om een gecodeerde boodschap te ontcijferen. Echt krachtige computers zoals die van het Pentagon werken veel sneller en zijn in staat een DES-codering in minder dan een uur te kraken. Voor de Amerikaanse overheid zijn er momenteel geen geheimen meer.

Omdat de DES-codering nu echt wel achterhaald is, schreef de Amerikaanse overheid in 2000 een nieuwe wedstrijd uit. Die werd gewonnen door Joan Daemen en Vincent Rijmen, twee Belgische wetenschappers. Zij ontwikkelden een totaal nieuw en krachtig algoritme dat de naam Rijndael meekreeg. In de komende jaren zal Rijndael overal in de wereld de oude DES encryptie gaan vervangen.

Een biljoen maal een biljoen jaren om de code te kraken

Symmetrische coderingssystemen gaan ervan uit dat mensen over een veilige manier beschikken om geregeld een nieuwe gemeenschappelijke sleutel af te spreken. Als steeds dezelfde sleutel wordt gebruikt, is de beveiliging immers niet optimaal. Maar wat als er geen sleutels kunnen worden uitgewisseld? Speciaal voor dergelijke gevallen ontwikkelde Stanford University in 1976 het principe van de ‘public key encryption’. Drie wetenschappers van het Massachusetts Institute of Technology (MIT) – Ron Rivest, Adi Shamir en Leonard Adleman – zetten dit basisconcept om in een werkbaar systeem dat vandaag bekend staat als RSA (een acroniem gevormd uit de eerste letters van de familienamen van de drie geestelijke vaders van het systeem). De onderliggende wiskundige principes zijn beslist niet eenvoudig. Maar finaal komt het erop neer dat de RSA software zelf twéé sleutels genereert. Deze beide sleutels zijn wiskundig nauw aan elkaar verwant. Als een boodschap met behulp van de eerste sleutel wordt gecodeerd, kan ze enkel nog met de tweede sleutel worden ontcijferd en omgekeerd.

De software bepaalt zelf welke sleutel ‘publiek’ wordt gemaakt. Deze sleutel wordt gewoon via onveilige kanalen – zoals het Internet – verspreid. Zodra gegevens met behulp van deze publieke sleutel zijn gecodeerd, kunnen ze enkel nog met behulp van de andere geheime sleutel worden ontcijferd.

Als de publieke en de geheime sleutel voldoende lang zijn, is de encryptie in de praktijk niet te kraken. Specialisten spreken hier van een mathematische onmogelijkheid. Daarmee bedoelen ze dat de krachtigste computers een biljoen maal een biljoen jaren zouden nodig hebben om uit de publieke sleutel de juiste geheime sleutel af te leiden.

In de praktijk wordt RSA nog niet gebruikt om de boodschap zelf te coderen. Het systeem vergt namelijk zoveel computer power dat het momenteel enkel wordt gebruikt om sleutels voor symmetrische encryptie te versleutelen.

Uw handtekening bestaat voortaan uit 128 tekens

Een interessante toepassing van RSA vinden we in de zogeheten digitale handtekening. Net zoals een gewone handtekening biedt een digitale handtekening de zekerheid dat een bericht door de ondertekenaar is verstuurd en onderweg niet werd vervalst. Hierbij wordt een speciaal algoritme gebruikt dat eender welke boodschap letterlijk fijnmaalt tot een zogeheten ‘hash’ van 128 tekens. Tolstoi’s ‘Oorlog en Vrede’ en een banaal kattebelletje komen er na verwerking precies even lang uit. Het algoritme is bovendien zo ontworpen dat iedere tekst een bijna unieke ‘hash’ oplevert. De kans dat twee licht verschillende teksten eenzelfde hash opleveren, is kleiner dan 1 op 10 tot de 154ste macht.

Om het allemaal nog wat veiliger te maken, wordt de ‘hash’ gecodeerd met een publieke RSA sleutel. Deze versleutelde ‘hash’ wordt vervolgens samen met de oorspronkelijke boodschap verstuurd.

Om de echtheid van de boodschap te controleren moet de ontvanger eerst de gecodeerde ‘hash’ decrypteren met zijn geheime RSA sleutel. Vervolgens past hij hetzelfde hash-algoritme toe op de niet gecodeerde boodschap, wat een reeks van 128 tekens oplevert die identiek hoort te zijn met de gedecodeerde ‘hash’. Als dat niet het geval is, is de boodschap vervalst en onbetrouwbaar.

Cultiveer de paranoia

De hierboven beschreven ecryptiemethoden worden vandaag al heel frequent toegepast in tal van elektronische communicatiemiddelen. Als wij onze bankzaken via een pc regelen of als wij gegevens opvragen via een beveiligde Internettoegang, maken wij onbewust gebruik van symmetrische en asymmetrische ecncryptie en plaatsen wij geregeld elektronische handtekeningen.

Impliciet vertrouwen wij erop dat de wiskundigen die de uitermate complexe algoritmen ontwerpen, het bij het rechte eind hebben als ze beweren dat computers miljarden jaren nodig hebben om codes te kraken. Maar computersystemen zijn pas echt veilig als ze zijn uitgeschakeld en niet in een netwerk zijn opgenomen. En zelfs als de encryptie absolute veiligheid kon garanderen, is er nog steeds de menselijke factor. Gebruikt u voor iedere elektronische communicatie een ander password? Kiest u nooit de geboortedatum van één van uw gezinsleden als geheime code? Het is bekend dat hackers zich maar zelden op de encryptie zelf concentreren en vooral proberen passwords te gissen of te stelen. Tenslotte bevatten alle grote computerprogramma’s ook ‘bugs’. Ook dat zijn kleine menselijke foutjes van programmeurs. Niemand kan garanderen dat via die kleine mankementen geen hackers in beveiligde systemen binnendringen.

De conclusie ligt dus voor de hand. De moderne encryptiemethoden zijn erg betrouwbaar. Helaas blijken mensen nog steeds vrij achteloos met gevoelige informatie om te springen. Een gezonde dosis paranoia blijkt nog steeds de beste garantie op geheimhouding te zijn. Maar dat was ook al zo toen er nog geen computers bestonden en de meeste mensen nog ongeletterd waren.