De veiligheid van een goed encryptiesysteem is gebaseerd op een geheimgehouden sleutel, en niet op het geheimhouden van het algoritme.
In Hoe veilig zijn smartcards? van T.J.H. van Sprundel (Computable, 17 januari 1997) staan nogal wat onduidelijkheden en zelfs onjuistheden. Van Sprundel schrijft bijvoorbeeld dat ‘de versleutelingsmethoden worden onderscheiden in geheime of publieke’. Strikt genomen is wat hier staat waar. Dit onderscheid is echter niet erg zinvol, omdat alle serieus te nemen encryptie-algoritmen een publiek algoritme hebben. Als dat niet zo is, kunnen onafhankelijke deskundigen de veiligheid ervan niet beoordelen, en is het algoritme dus verdacht. De veiligheid van een goed encryptiesysteem is nooit gebaseerd op het geheimhouden van het algoritme, maar op het geheimhouden van een sleutel. DES is inderdaad publiek in de zin dat het algoritme algemeen bekend is. Zinvoller is de onderverdeling in systemen met geheime sleutels en systemen met publieke sleutels (public key / secret key encryption). Van Sprundel behandelt dat later, als symmetrische en asymmetrische systemen. In die zin is DES niet publiek, want het werkt met een geheime sleutel.
RSA, dat deels met publieke en deels met geheime versleuteling werkt, zou een moderner algoritme zijn. (RSA staat voor de uitvinders: Rivest, Shamir en Adleman.) Dat is onduidelijk, zelfs bijna onjuist, geformuleerd. Bij RSA geldt: het versleutelingsalgoritme is openbaar, maar versleuteling gaat met een geheime sleutel, en ontsleuteling met een publieke. Het is daarom een zogenaamd public key-cryptosysteem. (Voor meer informatie zie de FAQ’s in de Internet-nieuwsgroep sci.crypt.)
Naast veiligheid en beschikbaarheid geldt steeds vaker het criterium dat de versleuteling operationeel razendsnel moet verlopen, aldus Van Sprundel. Hoewel DES (naast Idea, RC4 en MD5) wordt toegepast op Internet, zou RSA vanwege zijn snelheid opgenomen zijn als onderdeel van het sleutelbeheersysteem PGP (Pretty Good Privacy) van Internet.
Echter, MD5 is geen versleutelings-, maar een Message Digest-algoritme. Het berekent uit een bericht van willekeurige lengte een 128-bits getal, zo dat iedere wijziging in het bericht, hoe klein ook, een totaal ander resultaat oplevert, en zo dat het uiterst moeilijk is een bericht te genereren dat een vooraf gegeven resultaat oplevert. Het bezit van een Message Digest kan dus als bewijs dienen dat de bezitter ervan ook het bericht gekend moet hebben. Ook is RSA niet snel, maar langzaam. Het wordt niet in PGP toegepast omdat het snel zou zijn, maar omdat het een asymmetrische (public key) versleuteling is. Omdat het zo traag is, wordt het niet gebruikt om het bericht zelf te versleutelen, maar alleen om een sleutel voor Idea versleuteld over te brengen. Idea is symmetrisch (secret key), en (daardoor) veel sneller.
Verder is PGP niet ‘van’ Internet. Het wordt erop toegepast en is via Internet verspreid. Verder is het er echter volkomen onafhankelijk van. PGP is geen sleutelbeheersysteem, maar een versleutelingssysteem. Wel heeft de bedenker van PGP (Philip Zimmerman) er ook een sleutelbeheersysteem bij voorgesteld, gebaseerd op ketens van personen die elkaar vertrouwen. Dat dient als vervanger van keyscrow, waarbij sleutels bij een instantie moeten worden gedeponeerd. PGP is echter onafhankelijk van een sleutelbeheersysteem toepasbaar.
Valse berichten
Volgens Van Sprundel valt het toepassen van versleuteling uiteen in symmetrische en asymmetrische versleuteling. De authenticatie zou veelal als symmetrisch proces worden uitgevoerd. Om het bij elkaar passen van verzender en ontvanger te verifiëren, vercijfert de verzender met zijn sleutel een willekeurig getal. De ontvanger ontcijfert het getal met dezelfde sleutel. Is het resulterende getal gelijk aan het oorspronkelijke, dan wordt de authenticatie bevestigd. Bij asymmetrische versleuteling worden twee verschillende sleutels gebruikt, bijvoorbeeld een publieke, die verspreid wordt, en een geheime. Als het echt zo gebeurt, is de klant niet beschermd tegen fraude van zijn eigen bank. In dat geval zou ik het gebruik van smartcards sterk willen afraden.
De hier beschreven authenticatie houdt in dat de verzender en de ontvanger over dezelfde ‘geheime’ sleutel beschikken. Dat biedt geen enkele zekerheid, want het ontvangen van de juiste boodschap bewijst niet dat de echte eigenaar van de sleutel die verzonden heeft. De ontvanger kent die sleutel namelijk ook. Hij kan dus valse berichten (laten) opstellen, zogenaamd namens de sleuteleigenaar. Bij echte authenticatie wordt een bericht versleuteld met een geheime sleutel (van de klant). De ontvanger kan met de bijbehorende ‘publieke’ sleutel controleren of inderdaad met de geheime sleutel versleuteld is, zonder zelf die geheime sleutel te kennen. Tussen de geheime en de publieke sleutel bestaat een verband, maar dan wel zo dat uit de publieke sleutel in een redelijke hoeveelheid tijd niet de geheime sleutel valt af te leiden.
Ruud Harmsen, Nieuwegein