Asymmetrische cryptografie

Uit Wikipedia, de vrije encyclopedie
Naar navigatie springen Naar zoeken springen

Bij asymmetrische cryptografie, ook wel bekend als publieke-sleutelcryptografie, zoals RSA, wordt gebruikgemaakt van twee aparte sleutels: één sleutel wordt gebruikt om de klare tekst te versleutelen of te ondertekenen, en de tweede sleutel om de cijfertekst weer te ontsleutelen of de identiteit van de afzender te verifiëren. Bij de 'andere ' methode, de symmetrische cryptografie, wordt dezelfde sleutel gebruikt voor zowel versleutelen als ontsleutelen. De sleutel is dan niet geschikt voor ondertekenen of verifiëren.

Het voordeel van de asymmetrische cryptografie is dat men door het verstrekken van de ene dan wel de andere sleutel kan kiezen wie de versleutelde informatie kan lezen en ook wie allemaal informatie kan versleutelen.

Geschiedenis[bewerken | brontekst bewerken]

Om vertrouwelijke berichten uit te wisselen, maakten de Romeinen en de Arabieren al gebruik van cryptografie. Als de ontvanger van het versleutelde bericht de manier van encryptie en de sleutel kende, kon het bericht in klare tekst worden omgezet. Het was dus van belang dat de opsteller van de cijfertekst de sleutel op een veilige manier bij de ontvanger wist te bezorgen. Met de ontwikkeling van de computer konden cryptoanalisten veel sneller hun werk uitvoeren.

Sleuteldistributieprobleem[bewerken | brontekst bewerken]

Het was dus nodig dat de sleutels langer werden en frequenter werden ververst. Een Romeinse veldheer kwam er nog mee weg de sleutel iedere maand te vernieuwen, maar de Duitsers veranderden in de Tweede Wereldoorlog hun sleutels al iedere dag. De komst van e-mail was aanleiding voor het ontwikkelen van een manier waarbij het niet nodig was de sleutel via een ander kanaal uit te wisselen, voordat de ontvanger het bericht kon lezen.

Dit sleuteldistributieprobleem leidde uiteindelijk tot de ontwikkeling van asymmetrische cryptografie, waarbij de sleutel voor het versleutelen een andere is dan die voor het ontsleutelen. Het versturen en ontvangen van de sleutel is niet meer nodig, doordat de publieke sleutel al in het bezit is van de ontvanger van het versleutelde bericht. Nu zou je zeggen dat iedereen die de publieke sleutel kent, de cijfertekst kan ontsleutelen. Dankzij een specifieke wiskundige constructie, gebaseerd op modulair rekenen, werkt de publieke sleutel maar één kant op. De basis ligt in het gebruik van priemgetallen, die alleen deelbaar zijn door een of zichzelf, zonder dat er een rest overblijft. De rest is essentieel bij deze vorm van encryptie, omdat op basis van dit getal wel het bericht kan worden versleuteld, maar niet ontsleuteld.

Toepassing[bewerken | brontekst bewerken]

Toepassingen maken dit principe duidelijk. Stel voor dat je een sleutelpaar bezit. Door één sleutel gewoon in media te publiceren, bijvoorbeeld op een website of meegestuurd bij ondertekening van een e-mail, wordt die sleutel de publieke sleutel van jouw set sleutels. De andere sleutel is dan jouw geheime sleutel die jij zorgvuldig voor jezelf houdt.

Versleuteling[bewerken | brontekst bewerken]

Iedereen die aan jou een bericht wil sturen dat geheim moet blijven, kan nu jouw publieke sleutel gebruiken om de informatie te vercijferen. Vervolgens kan het vercijferde bericht worden verzonden. Alleen jijzelf kan het bericht ontcijferen, omdat jij als enige beschikt over de geheime sleutel, nodig om het bericht te ontcijferen. Anderen hebben wel een sleutel om te versleutelen, maar niet om te ontsleutelen. Hierdoor blijft het bericht voor iedereen onleesbaar, behalve voor jou.

Het bericht wordt in dit voorbeeld digitaal met asymmetrische cryptografie ondertekend.
1) Alice ondetekent het bericht met haar geheime sleutel.
2) Bob kan verifiëren dat Alice het bericht heeft verstuurd en dat het bericht niet is gewijzigd.

Ondertekening[bewerken | brontekst bewerken]

Andersom kun je een bericht voorzien van een controlegetal dat afhankelijk is van de inhoud, door middel van hashen, bijvoorbeeld een MD5-sum of een SHA. Het is hierbij belangrijk dat er niet eenvoudig een ander bericht te maken is met hetzelfde controlegetal, omdat anders alsnog anderen het bericht ongezien zouden kunnen aanpassen. Door nu dat controlegetal met jouw geheime sleutel te versleutelen en het resultaat mee te sturen, dit is de digitale handtekening, geef jij iedereen de mogelijkheid om met jouw publieke sleutel het controlegetal te ontsleutelen. Door opnieuw zelf een controlegetal op dezelfde manier van de inhoud te bepalen en het resultaat te vergelijken met de ontsleutelde klare tekst, weet men zeker dat het bericht van jou afkomstig is, en dat de inhoud van het bericht onderweg niet is aangepast. Immers: alleen jij bezit de sleutel om het controlegetal te kunnen versleutelen. Een bericht wordt op deze wijze 'digitaal ondertekend'.

Vertrouwen[bewerken | brontekst bewerken]

Hoe weet je nu of de publieke sleutel werkelijk van de persoon is die hij beweert te zijn? De methode van vertrouwen kan ook het best met een voorbeeld uitgelegd worden.

PKI[bewerken | brontekst bewerken]

Zoals een bericht kan worden ondertekend, zo kan ook de bijbehorende publieke sleutel worden ondertekend, en wel door een derde partij. Die derde partij garandeert dat de eigenaar van die publieke sleutel, dus het sleutelpaar, inderdaad degene is die hij beweert te zijn. Deze bewering staat in het certificaat, waar ook de publieke sleutel in zit, en die op dezelfde manier digitaal ondertekend is met de geheime sleutel van die derde partij, de certificaatautoriteit. In het certificaat staat ook waar je kunt achterhalen of die bewering nog steeds geldig is, de certificate revocation list. Deze methode van vertrouwen heet public key infrastructure PKI.

PGP[bewerken | brontekst bewerken]

Als alternatief kan een ongetekende publieke sleutel gepubliceerd worden op een betrouwbaar medium, bijvoorbeeld op de website van de eigenaar van de sleutel. Deze vorm van vertrouwen wordt onder andere gebruikt bij PGP.