Wat is symmetrische codering?

Er zijn veel verschillende onderdelen van cryptografie. Als u bepaalde gegevens echter wilt versleutelen, zijn er twee soorten algoritmen die u kunt gebruiken: symmetrische versleutelingsalgoritmen en asymmetrische versleutelingsalgoritmen. Het algemene concept is hetzelfde, ze kunnen gegevens versleutelen, maar ze werken volgens verschillende principes en hebben verschillende use-cases. Het titulaire verschil beschrijft echter de coderingssleutels. Een symmetrisch versleutelingsalgoritme gebruikt een enkele gedeelde sleutel om gegevens zowel te versleutelen als te ontsleutelen. Een asymmetrisch versleutelingsalgoritme gebruikt twee gekoppelde sleutels, één om te ontsleutelen en één om te ontsleutelen.

Eigenschappen van symmetrische versleutelingsalgoritmen

Zoals hierboven vermeld, is het belangrijkste onderscheidende kenmerk van een symmetrisch versleutelingsalgoritme het feit dat u een enkele sleutel gebruikt om zowel gegevens te versleutelen als te ontsleutelen. Dat wil niet zeggen dat er maar één mogelijke coderingssleutel is, alleen als u iets met één sleutel codeert, moet u dezelfde sleutel gebruiken om het te decoderen. Het wordt ook wel shared-key-encryptie genoemd. Dit komt omdat elke deelnemer dezelfde sleutel moet kennen en dus moet u deze delen.

Deze eigenschap van het gebruik van dezelfde sleutel om te coderen en te decoderen kan een probleem zijn. Om een ​​symmetrisch versleutelingsalgoritme te gebruiken, moet u het veilig kunnen communiceren. Maar dat kun je niet doen zonder al een veilig middel om te communiceren. Gelukkig kan dit probleem worden opgelost met asymmetrische codering, maar het is de moeite waard om het te begrijpen.

De sleutels voor symmetrische versleutelingsalgoritmen zijn over het algemeen vrij klein, althans in vergelijking met asymmetrische versleuteling. Dit maakt ze relatief eenvoudig te verzenden via zelfs een langzame netwerkverbinding en minder kwetsbaar voor fouten in een onbetrouwbaar netwerk. Symmetrische versleutelingsalgoritmen zijn ook snel in vergelijking met asymmetrische algoritmen.

Al deze eigenschappen maken symmetrische versleutelingsalgoritmen bijzonder nuttig voor bulkversleuteling van gegevens. Dit is vooral het geval wanneer snelheid een probleem is.

Stream cijfers en blokcijfers

AES is waarschijnlijk het bekendste symmetrische encryptie-algoritme. Het wordt gebruikt in vrijwel alles dat veel gegevens versleutelt en is een standaardonderdeel van de versleutelingssuites die worden gebruikt in HTTPS. AES is een blokcijfer met 128-bits blokken. Een blokcijfer werkt door gegevensblokken tegelijk te versleutelen. Elk blok moet even groot zijn. Dit is prima als de resterende gegevens groter zijn dan de blokgrootte, maar betekent dat er een vorm van opvulling moet worden gebruikt om het blok te voltooien.

Een stroomcijfer werkt door veel kleinere hoeveelheden gegevens tegelijk te versleutelen, meestal één byte tegelijk. Een variatie op dit concept is het vervangende cijfer dat werkt op letters. Vervangingscijfers zijn kwetsbaar voor frequentieanalyse en zijn daarom doorgaans onbetrouwbaar en ongebruikt. Streamcijfers hebben dit probleem echter niet.

Symmetrische algoritmen zijn vaak kwetsbaar voor aanvallen met bekende platte tekst, aanvallen met gekozen platte tekst, differentiële cryptanalyse en lineaire cryptanalyse. Moderne algoritmen zijn echter zorgvuldig ontworpen met dit in gedachten en dus vormen deze problemen geen probleem.

Conclusie

Symmetrische codering is een vorm van codering die dezelfde sleutel gebruikt om gegevens zowel te coderen als te decoderen. In sommige gevallen is het algoritme zelf hetzelfde om te coderen en te decoderen, hoewel dit niet noodzakelijkerwijs het geval is. Coderingssleutels zijn meestal relatief kort en gemakkelijk te verzenden. De sleutel moet echter via een beveiligd kanaal worden verzonden, aangezien deze tussen alle betrokken partijen moet worden gecommuniceerd. Symmetrische encryptie-algoritmen zijn over het algemeen veel sneller dan asymmetrische encryptie-algoritmen.