Symmetric Key Encryption vs Public Key Encryption
Cryptografie is de studie van het verbergen van informatie en wordt gebruikt bij communicatie via een niet-vertrouwd medium zoals internet, waar informatie moet worden beschermd tegen andere derden. Moderne cryptografie richt zich op het ontwikkelen van cryptografische algoritmen die gegevens kunnen versleutelen zodat ze moeilijk te doorbreken zijn door een tegenstander vanwege de rekenhardheid (en daarom niet met praktische middelen konden worden verbroken). Versleuteling gebruikt een algoritme dat een cijfer wordt genoemd om gegevens te versleutelen en het kan alleen worden ontsleuteld met een speciale sleutel. Versleutelde informatie staat bekend als cijfertekst en het proces van het verkrijgen van de originele informatie (platte tekst) uit de cijfertekst staat bekend als decodering. Twee van de meest gebruikte coderingsmethoden zijn symmetrische sleutelcodering en openbare sleutelcodering. Symmetrische sleutelcryptografie omvat coderingsmethoden, waarbij zowel de afzender als de ontvanger dezelfde sleutel delen die wordt gebruikt om de gegevens te coderen. Bij cryptografie met openbare sleutels worden twee verschillende, maar wiskundig verwante sleutels gebruikt.
Wat is symmetrische sleutelcodering?
Bij Symmetrische Sleutelcodering (ook bekend als geheime sleutel, enkele sleutel, gedeelde sleutel, één sleutel of privésleutelcodering), delen zowel de afzender als de ontvanger dezelfde sleutel die wordt gebruikt voor zowel codering als decodering van de gegevens. In feite kunnen de twee sleutels identiek of triviaal verwant zijn (d.w.z. er is een zeer eenvoudige transformatie vereist om tussen de twee te gaan). In het echte leven wordt een geheim gedeeld door twee of meer partijen die kunnen worden gebruikt voor het onderhoud van een privéverbinding voor communicatie. AES (Advanced Encryption Standard) is een zeer populair algoritme, dat behoort tot de familie van symmetrische sleutelcoderingsalgoritmen.
Wat is versleuteling met openbare sleutels?
Bij versleuteling van openbare sleutels worden twee verschillende, maar wiskundig verwante sleutels gebruikt. Versleuteling met openbare sleutels versleutelt gegevens met behulp van de openbare sleutel van de ontvanger en kan niet worden ontsleuteld zonder een overeenkomende privésleutel. Met andere woorden, je hebt één sleutel nodig om te vergrendelen (de leesbare tekst versleutelen) en een andere sleutel om te ontgrendelen (decryptie van de cypertekst). Belangrijk is dat de ene sleutel niet in de plaats van de andere kan worden gebruikt. Afhankelijk van welke sleutel wordt gepubliceerd, kan versleuteling met openbare sleutels voor twee doeleinden worden gebruikt. Als de vergrendelingssleutel openbaar is gemaakt, kan dit systeem door iedereen worden gebruikt om privécommunicatie naar de houder van de ontgrendelingssleutel te sturen. Als het andersom is, maakt het systeem het mogelijk om door de eigenaar vergrendelde documenten te verifiëren. Versleuteling met openbare sleutels is een algoritme met asymmetrische sleutels. Maar slechts enkele asymmetrische sleutelalgoritmen hebben de speciale eigenschap dat ze de ene sleutel niet kunnen onthullen met medeweten van de andere. Dus de asymmetrische sleutelalgoritmen met deze speciale eigenschap worden coderingsalgoritmen met openbare sleutels genoemd.
Wat is het verschil tussen symmetrische sleutelcodering en openbare sleutelcodering?
Het belangrijkste verschil tussen symmetrische sleutelversleuteling en openbare-sleutelversleuteling is het feit dat symmetrische sleutelversleuteling dezelfde (privé, geheime) sleutel gebruikt voor versleuteling/ontsleuteling, terwijl openbare-sleutelversleuteling zowel een openbare als een privésleutel gebruikt. Beide partijen zouden de sleutel in symmetrische sleutelcodering moeten kennen, terwijl er geen dergelijke vereiste is voor de openbare sleutelcodering. Alleen is een van de sleutels bekend bij de twee partijen in versleuteling met openbare sleutels. Omdat dit de noodzaak wegneemt om uw privésleutel te delen (zoals bij symmetrische sleutelcodering) en het risico dat deze wordt gecompromitteerd, kan codering met openbare sleutels in dit opzicht als veiliger worden beschouwd.
Maar een groot nadeel van versleuteling met openbare sleutels is dat het vele malen langzamer is dan versleuteling met symmetrische sleutels. Versleuteling met symmetrische sleutels kan dus beter zijn voor het versleutelen van grote hoeveelheden gegevens. Bovendien moeten algoritmen voor codering met openbare sleutels een relatief sterkere sleutel gebruiken dan symmetrische sleutelcodering om dezelfde sterkte te bereiken (om de eenvoudige reden dat één sleutel openbaar wordt gemaakt in cryptografie met openbare sleutels).