Naar inhoud springen

Encryptie

Uit Wikipedia, de vrije encyclopedie
(Doorverwezen vanaf Cryptohashing)

Binnen de cryptografie staat encryptie of versleuteling voor het omzetten van een bericht als leesbare tekst, de klare tekst, naar de versleutelde tekst, het geheimschrift, ook wel als cijfertekst aangeduid. Dit versleutelen is al een zeer oud gebruik. Een versleuteling die met de hand kan worden uitgevoerd, noemt men een handcijfer; maar tegenwoordig gebeurt het versleutelen en ontsleutelen meestal met behulp van een computer. De cijfertekst kan nadien weer worden ontsleuteld, zodat men de originele klare tekst weer terugkrijgt. Dit proces wordt decryptie genoemd. Een methode van encryptie wordt wel een cijfer genoemd.

Een van de bedoelingen van cryptografie is dat een bericht tussen twee personen kan worden uitgewisseld over een onveilig communicatiekanaal, dat wil zeggen een communicatiekanaal waartoe ook derden toegang kunnen hebben, zoals het internet, zonder dat onbevoegde buitenstaanders het bericht kunnen lezen. Een ander doel is ondertekening: als een bericht versleuteld is, staat vast wie de afzender is. Dit gebeurt meestal door het gebruik van sleutels. Wat precies een sleutel vormt verschilt per algoritme, maar meestal is een sleutel een reeks van tientallen of honderden cijfers en letters. Het doel van het cryptografische algoritme is ervoor te zorgen dat alleen de personen met de juiste sleutel de cijfertekst weer kunnen ontsleutelen. Het versleutelen en ontsleutelen kan met de huidige elektronica zo snel, dat het mogelijk is een telefoongesprek te versleutelen zonder dat de gesprekspartners er hinder van hebben. De sleutel om een klare tekst te versleutelen, de codeersleutel, en de sleutel om de verkregen cijfertekst te ontsleutelen, de decodeersleutel, verschillen meestal van elkaar, maar zijn wel uit elkaar te berekenen.

Iemand voor wie het voor de afzender en ontvanger niet de bedoeling is dat die het bericht kan lezen, bijvoorbeeld een hacker, moet de cijfertekst eerst kunnen ontcijferen, door op een of andere manier de sleutel te vinden, om de klare tekst te kunnen krijgen. Het ontcijferen, breken en kraken van de cijfertekst zijn synoniem, het ontsleutelen en ontcijferen ervan zijn verschillende activiteiten. Als het iemand lukt de bij een telefoongesprek gebruikte sleutel te vinden en de gesprekken af te luisteren, wordt dat een man-in-the-middle-aanval genoemd.

Cryptoanalyse is de wetenschap die bestudeert hoe een cijfertekst kan worden gebroken. Een veel gebruikte techniek binnen de cryptoanalyse is de frequentieanalyse. Bij de meeste cryptografische algoritmen is het in principe wel mogelijk om zonder de juiste sleutels de cijfertekst te breken, maar dit kost meestal zo veel rekenwerk en tijd dat het in de praktijk geen toepassing vindt. Als de sleutel een groot genoeg getal is, zijn zelfs de snelste computers nog niet in staat alle mogelijke sleutels in afzienbare tijd uit te proberen. Aangezien computers door de jaren heen steeds sneller worden, is het wel nodig in de loop van de tijd steeds grotere getallen als sleutel te gebruiken.

Er zijn grofweg twee vormen van cryptografie: symmetrische en asymmetrische.

Zie symmetrische cryptografie voor het hoofdartikel over dit onderwerp.

Bij symmetrische cryptografie gebruiken zender en ontvanger dezelfde sleutel. Die sleutel moet van tevoren via een veilig kanaal worden uitgewisseld, waarbij zender en ontvanger elkaars identiteit kunnen controleren en onderschepping van de sleutel door derden niet mogelijk is.

Het gebruik van dezelfde sleutel wil niet altijd zeggen dat het versleutelen en het ontsleutelen identiek zijn. Bij de sleutel Rot13, die bij e-mail veel wordt gebruikt, is dat wel het geval. Wie een met Rot13 versleutelde tekst opnieuw met Rot13 versleutelt, krijgt de oorspronkelijke klare tekst weer terug. Bij een code als A→B, B→C enzovoort is dat niet het geval, maar de decodeersleutel kan daarbij uit de codeersleutel worden afgeleid. Beide gelden als symmetrische cryptografie.

Zie asymmetrische cryptografie voor het hoofdartikel over dit onderwerp.

De asymmetrische cryptografie, ook wel public key encryption genoemd, is moderner. Hierbij hebben zender en ontvanger ieder twee sleutels, waarvan er een publiek is en een niet. Het is in theorie mogelijk, maar niet praktisch haalbaar, om de geheime sleutel uit de publieke sleutel af te leiden.

Berichten die met een publieke sleutel worden versleuteld, kunnen alleen met de geheime sleutel worden ontsleuteld. Met andere woorden: onbevoegden kunnen de cijfertekst niet lezen.

Andersom geldt dit ook: informatie die is versleuteld met de geheime sleutel van iemand, kan alleen met de bijbehorende publieke sleutel worden ontsleuteld. Dit laatste wordt gebruikt bij het digitaal ondertekenen van berichten: men heeft de zekerheid dat het bericht afkomstig is van degene die zich de afzender noemt.

De publieke sleutel mag aan iedereen bekend zijn en kan dus uitgewisseld worden over een onveilig kanaal zoals internet. Om een bericht te versleutelen en digitaal te ondertekenen, heeft de afzender zijn eigen geheime sleutel nodig en de publieke sleutel van de ontvanger. Om het ontvangen bericht te ontsleutelen en te verifiëren of de handtekening wel van de afzender is, heeft de ontvanger zijn eigen geheime sleutel nodig en de publieke sleutel van de afzender.

Het grote voordeel van asymmetrische cryptografie is dat uitwisseling van de benodigde sleutels kan plaatsvinden via een onveilig kanaal. Afluisteren van de uitgewisselde informatie, inclusief publieke sleutels, vormt geen enkel probleem. Een onderscheppingsrisico bestaat wel: wanneer afzender en ontvanger nalaten te controleren of de gebruikte publieke sleutel inderdaad bij de beoogde ander hoort, is het voor een derde mogelijk om zich voor te doen als een van de twee partijen. Iedereen kan immers zeggen: "Dit is mijn naam en hier is mijn publieke sleutel, stuur me nu uw gegevens maar." Afzender en ontvanger dienen dus langs een betrouwbaar kanaal elkaars identiteit vast te stellen en hun publieke sleutels te bevestigen.

Een nadeel van asymmetrische cryptografie is dat grote sleutellengtes nodig zijn, bijvoorbeeld 4096 bytes, waardoor versleutelen en ontsleutelen veel rekenwerk vergt. De sleutels moeten groot zijn, omdat het anders met een snelle computer mogelijk wordt de geheime sleutel te vinden.

Vaak wordt een combinatie van asymmetrische en symmetrische cryptografie gebruikt: eerst wordt door middel van asymmetrische cryptografie een geheim tussen afzender en ontvanger uitgewisseld, die de sleutel vormt voor de snellere symmetrische cryptografie van grote blokken data.

Bij de versleuteling van e-mail wordt wel asymmetrische cryptografie toegepast, door PGP, GPG, S/MIME of ProtonMail.

Zie Hashfunctie voor het hoofdartikel over dit onderwerp.

Cryptografische hashing, of cryptohashing, is in strikte zin geen versleuteling, omdat bij hashing uit de verkregen hashcode de oorspronkelijke gegevens niet meer terug kunnen worden gehaald. Wel wordt bij hashing gebruikgemaakt van dezelfde technieken als bij versleuteling en vormt hashing ook vaak een onderdeel van versleutelingsprotocollen. Het verschil tussen hashing en encryptie is dus dat hashing maar een kant op kan, alleen hashen, en dat er bij encryptie twee kanten op gewerkt kan worden, versleutelen en ontsleutelen.

Het is wellicht mogelijk dat er in de toekomst kwantumcomputers komen met een rekenkracht die de huidige publieke encryptie kunnen kraken. Om dit doemscenario te voorkomen werken cryptografen sinds circa 2015 aan zogeheten post-quantum-encryptiemethodes die ook door quantumcomputers niet zijn te kraken.[1]