Redundantie (cryptografie)

Uit Wikipedia, de vrije encyclopedie
Naar navigatie springen Jump to search
Zie artikel Dit artikel gaat over redundantie in de cryptografie. Zie Redundantie voor het hoofdartikel.

Het principe van redundantie houdt in dat de ontvanger het bericht kan controleren op correctheid door er simpelweg naar te kijken. Dit is alleen mogelijk als het originele bericht extra informatie (de redundante informatie) bevat, die verder niet nodig is om het originele bericht te begrijpen.

In de cryptografie biedt aanwezige redundantie een kwaadwillende derde partij kansen om het vercijferde bericht te ontcijferen.

Verdieping[bewerken]

Alle cryptografische toepassingen kennen twee verschillende fases

Aan beide fases is een functie gekoppeld met een invoer en een uitvoer. De encryptie-functie heeft als invoer het originele bericht en uitvoer het vercijferde bericht. Bij de decryptie-functie is dit uiteraard andersom.

Nu maakt het voor de encryptie-functie niks uit wat de invoer is. Het originele bericht mag alles zijn, zelfs een vercijferd bericht (in dit geval krijg je meerdere lagen van encryptie). Maar voor de decryptie-functie is dat niet de bedoeling, want hierbij mag de invoer alleen een vercijferd bericht zijn. De meeste decryptie-functies accepteren echter wel alle mogelijke berichten en produceren in het geval dat de invoer geen vercijferd bericht is ook gewoon uitvoer.

De ontvanger moet dus correct vercijferde berichten van de rest kunnen onderscheiden. Zonder deze zogenoemde redundantietest zou alle mogelijke uitvoer van de decryptie-fase als aannemelijk worden gezien. Voor de meeste cryptografische toepassingen is dit onacceptabel.

De redundantietest is alleen mogelijk als het originele bericht extra informatie, zogenaamde redundante informatie, bevat.

Implementatie[bewerken]

Een heel simpele vorm van redundantie is het toevoegen van een vaste tekenreeks aan het eind van het originele bericht. Bijvoorbeeld. "OVER-EN-SLUITEN". Als de ontvanger na het ontcijferen niet deze tekenreeks op het eind van het bericht ziet staan, weet hij dat hij geen correct vercijferd bericht heeft ontvangen.

Een meer complexere, maar in de praktijk veel gebruikte vorm van redundantie is het toevoegen van een zogenoemde hash aan het originele bericht. Deze hash is de uitkomst van een ingewikkelde functie waarvan de invoer het originele bericht is, een zogenoemde hashfunctie.

De redundantietest wordt als volgt gedaan: Nadat de ontvanger het bericht ontcijferd heeft scheidt hij de hash van het originele bericht. Vervolgens berekent hij zelf de hash van het originele bericht. Als beide hashes dezelfde waarde hebben is de redundantietest gelukt en weet de ontvanger dat hij een correct vercijferd bericht heeft ontvangen en ontcijferd.

Nadelen[bewerken]

Het principe van redundantie maakt het echter makkelijker voor derde partijen om het systeem te kraken, zoals toegelicht in het volgende voorbeeld.

Beschouw de bovengenoemde eerste implementatie, waar redundantie wordt gerealiseerd door elk bericht te eindigen met een vaste algemeen bekende tekenreeks. We gaan uit van de situatie dat het gebruikte cryptografische systeem openbaar bekend is en werkt met een sleutel.

Alice verstuurt een bericht naar Bob. Zij eindigt haar bericht met "OVER-EN-SLUITEN", vercijfert het bericht met haar sleutel en stuurt het vervolgens naar Bob. Trudy onderschept dit bericht, maar kent de sleutel niet. Ze weet echter wel dat het originele bericht eindigt met "OVER-EN-SLUITEN" en ze schrijft een programma dat het bericht probeert te ontcijferen met alle mogelijke verschillende sleutels. Na elke poging controleert het programma of de uitvoer eindigt met "OVER-EN-SLUITEN".

Deze zogenaamde brute force methode zou zonder redundantie niet werken, want de laatste stap waar de uitvoer wordt getest tegen de redundante informatie vervalt dan. Elke uitvoer van de decryptie-functie is dan net zo aannemelijk als de andere.

Het principe van redundantie geeft aanvallers dus de mogelijkheid om de uitvoer van de decryptie-functie te testen op validiteit. Op deze wijze kunnen aanvallers door 'trial and error' het originele bericht achterhalen.