Encryptie is een belangrijke bouwsteen, zeg maar de basis, voor cryptografische technieken. Zonder encryptie, geen cryptografie!
Encryptie is een mechanisme om informatie d.m.v. een wiskundig algoritme en cryptografische sleutel onleesbaar te maken voor onbevoegden. Naast toegangscontrole als beveiligingsmaatregel, is encryptie dus tevens een middel om vertrouwelijkheid van informatie te realiseren. Encryptie voorkomt dat een niet-geautoriseerde partij vertrouwelijke informatie kan lezen. Het encrypteren van informatie wordt ook wel versleutelen of vercijferen genoemd, decrypteren wordt ontcijferen genoemd.
Er zijn twee encryptie technieken: symmetrische en asymmetrische encryptie.
Symmetrische encryptie
Bij symmetrische encryptie wordt een wiskundig algoritme gebruikt dat dezelfde geheime sleutel nodig heeft om zowel te encrypteren als te decrypteren. We spreken dan van een symmetrische geheime sleutel.
Beide partijen dienen over dezelfde geheime sleutel te beschikken. Deze geheime sleutel moet dus vooraf op een veilige manier gedistribueerd worden. In situaties met veel communicerende partijen, kan dit al vrij snel complex worden.
Gekende voorbeelden van algoritmen voor symmetrische encryptie zijn DES (Data Encryption Standard) en AES (Advanced Encryption Standard).
Voorbeelden hoe sleutelbeheer in de praktijk wordt toegepast:
KMS: een Key Management System beheert de cryptografische sleutels met inbegrip van sleutel generatie, uitwisseling, opslag, gebruik, vernietiging en vervanging van deze sleutels.
Kerberos: Kerberos is een authenticatiesysteem voor lokale netwerken met een clientserver-architectuur, gebaseerd op een Trusted Third Party: een derde partij die door alle anderen wordt vertrouwd. Het beschermt servers tegen gebruik door niet-geautoriseerde partijen en clients tegen interactie met valse servers. Ook is voorzien in het genereren van een sessie-sleutel voor de communicatie tussen client en server, zodat indringers geen lopende sessies kunnen overnemen of afluisteren.
Met symmetrische systemen kan zowel vertrouwelijkheid van informatie als data-authenticatie verwezenlijkt worden, bijvoorbeeld door eerst encryptie van het document met symmetrische sleutel toe te passen om vervolgens de (Message Authentication Codes- of) MAC-waarde te berekenen van versleuteld document (bijlage 5 legt uit hoe MAC werken).
Encryptie wordt niet alleen gebruikt om informatie die verstuurd wordt te beveiligen tegen onbevoegden, maar kan ook worden gebruikt om gegevens op een laptop, externe harde schijf, USBstick of andere mobiele opslagmedia onleesbaar te maken. Bij verlies of diefstal kan niemand de versleutelde gegevens lezen.
Symmetrische encryptie is snel en wordt daarom nog steeds gebruikt in beveiligingstechnieken, maar heeft een zwak punt, namelijk de doorgifte van de geheime sleutel is nodig om een versleuteld bericht te kunnen ontcijferen. Hoe krijg je die sleutel bij de ontvangende partij zonder dat deze gestolen wordt door onbevoegden? Hier komt asymmetrische encryptie op de proppen.
Asymmetrische encryptie
Het wiskundige algoritme voor asymmetrische encryptie, vaak ook aangeduid als public key encryptie, werkt op basis van een sleutelpaar: een publieke (of openbare) sleutel en een private sleutel. Er worden dus verschillende cryptografische sleutels gebruikt voor encrypteren en decrypteren. Van de twee sleutels die nodig zijn om te encrypteren en vervolgens te decrypteren is één sleutel geheim (private sleutel) en de andere sleutel openbaar (publieke sleutel). De private sleutel moet door de eigenaar van het sleutelpaar geheimgehouden worden.
Het volledige proces encryptie/ decryptie is dus afhankelijk van een sleutelpaar, niet van een enkele sleutel. Zo’n sleutelpaar hoort bij elkaar, je hebt zowel de private sleutel nodig als de bijhorende publieke sleutel. Private en publieke sleutel worden dan ook samen als sleutelpaar gegenereerd.
Een gekend voorbeeld van een asymmetrische encryptie algoritme is RSA (Rivest–Shamir–Adleman).
Het grote voordeel van zulke sleutelparen is de eenvoud om de decryptiesleutel bij de ontvangende partij te krijgen: de publieke sleutel is immers openbaar en kan zonder meer gedeeld worden. Met de hele wereld. De focus kan zo gelegd worden op de beveiliging van de private sleutel – wat uiteraard een eenvoudigere klus is dan beveiliging van de hele wereld. Het zwakke punt van symmetrische encryptie is zo van de baan: het is heel eenvoudig om de vereiste sleutel bij de ontvangende partij te krijgen aangezien die gewoon publiek beschikbaar is.
Het nadeel van asymmetrische encryptie is de snelheid – of liever het gebrek eraan. Daarom wordt deze techniek vaak gecombineerd met symmetrische encryptie, waarbij een encryptiesleutel nodig voor encryptie van een omvangrijk stuk informatie versleuteld wordt met asymmetrische encryptie en zo bij de ontvangende partij gebracht wordt, die deze sleutel dan decrypteert met de publieke sleutel van de sturende partij zodat de sleutel bruikbaar is voor ontcijfering van de eigenlijke informatie.
Bij asymmetrische cryptografie geldt namelijk de volgende regel:
Wat men met de ene sleutel encrypteert, kan men decrypteren met de andere sleutel.
Naargelang de gebruikte sleutel om te encrypteren (publieke of private sleutel), kunnen andere securitydiensten gerealiseerd worden:
Encryptie d.m.v. een publieke sleutel → vertrouwelijkheid; en
Encryptie d.m.v. een private sleutel → integriteit en onweerlegbaarheid (digitale handtekening)
Symmetrisch vs. asymmetrisch
Symmetrische encryptie is over het algemeen veel sneller dan asymmetrische encryptie. Voor het snel versleutelen van grote hoeveelheden gegevens wordt dan ook bij voorkeur gebruik gemaakt van symmetrische algoritmen. Het nadeel van symmetrische encryptie is dat communicerende partijen vooraf hun geheime sleutel moeten uitwisselen.
Asymmetrische encryptie wordt enkel gebruikt om beperkte hoeveelheid data te vercijferen (bijvoorbeeld om andere sleutels zoals sessiesleutels te encrypteren, paswoorden, …). Deze techniek kent vooral zijn toepassing in data-authenticatie en sleutelbeheer/-distributie. In de praktijk wordt meestal de combinatie van beide technieken (symmetrisch/asymmetrisch) gebruikt om informatie te beveiligen. Zo’n veel voorkomende toepassing waarbij de voordelen van beide systemen worden gecombineerd om berichten te vercijferen met behulp van een symmetrisch systeem en een eenmalige sleutel, de sessiesleutel, is de digitale enveloppe. Met deze techniek kan een bericht vercijferd verstuurd worden zonder dat hierbij de verzender en ontvanger van het bericht vooraf over eenzelfde geheime sleutel moeten beschikken. Asymmetrische encryptie wordt toegepast om de sessiesleutel te vercijferen. De techniek wordt toegelicht in bijlage 1.
Pretty Good Privacy (PGP) is een van de bekende voorbeelden van deze gecombineerde techniek.
Door te spelen met de sleutelparen van afzender en ontvanger kan asymmetrische encryptie, eventueel in combinatie met symmetrische encryptie, aldus worden gebruikt om berichten of informatie onleesbaar te maken of om te garanderen dat een bericht afkomstig is van een bepaalde afzender.