Stroomcijfer versus blokcijfer | Staatscijfer versus blokcijfer
In cryptografie zijn stroomcijfers en blokcijfers twee coderings- / decoderingsalgoritmen die tot de familie van symmetrische sleutelcijfers behoren. Typisch neemt een cijfer een platte tekst als invoer en produceert een versleutelde tekst als uitvoer. Blokcijfers versleutelen bits met een vaste lengte met behulp van een onveranderlijke transformatie. Stroomcijfers versleutelen bitsstromen met verschillende lengtes en gebruiken verschillende transformatie op elke bit.
Wat is een stroomcijfer?
Stroomcijfers behoren tot de familie van symmetrische sleutelcijfers. Stroomcijfers combineren platte-tekstbits met een pseudowillekeurige coderingsbitsstroom met het gebruik van XOR-bewerking (exclusief of). Streamcijfers versleutelen cijfers in platte tekst één voor één met verschillende transformaties voor opeenvolgende cijfers. Omdat de codering van elk cijfer afhankelijk is van de huidige status van de coderingsengine, worden stroomcijfers ook wel statuscijfers genoemd. Gewoonlijk worden enkele bits / beten gebruikt als enkele cijfers. Om beveiligingsproblemen te voorkomen, moet ervoor worden gezorgd dat dezelfde startstatus niet meer dan één keer wordt gebruikt. Het meest gebruikte stroomcijfer is RC4.
Wat is een blokcijfer?
Een blokcijfer is een ander symmetrisch sleutelcijfer. Blokcijfers werken op blokken (groepen bits) met een vaste lengte. Blokcijfers gebruiken een vaste (onveranderlijke) transformatie voor alle cijfers in het blok. Wanneer bijvoorbeeld een x-bit blok platte tekst (samen met een geheime sleutel) wordt geleverd als invoer voor de blokcijfer-engine, produceert het het corresponderende x-bit blok met cijfertekst. De daadwerkelijke transformatie is afhankelijk van de geheime sleutel. Evenzo herstelt het decoderingsalgoritme het originele x-bit blok met platte tekst met behulp van het x-bit blok met cijfertekst en de bovenstaande geheime sleutel als invoer. Als het invoerbericht te lang is in vergelijking met de grootte van het blok, wordt het opgesplitst in blokken en worden deze blokken (individueel) versleuteld met dezelfde sleutel. Omdat echter dezelfde sleutel wordt gebruikt,elke herhaalde reeks in de platte tekst wordt dezelfde herhaalde reeks in de gecodeerde tekst, en dit kan beveiligingsproblemen veroorzaken. Populaire blokcijfers zijn DES (Data Encryption Standard) en AES (Advanced Encryption Standard).
Wat is het verschil tussen een stroomcijfer en een blokcijfer?
Hoewel zowel stroomcijfers als blokcijfers tot de familie van symmetrische coderingscijfers behoren, zijn er enkele belangrijke verschillen. Blokcijfers versleutelen bits met een vaste lengte, terwijl stroomcijfers bits met platte tekst combineren met een pseudo-willekeurige coderingsbitsstroom met behulp van XOR-bewerking. Hoewel blokcijfers dezelfde transformatie gebruiken, gebruiken stroomcijfers verschillende transformaties op basis van de staat van de motor. Streamcijfers worden meestal sneller uitgevoerd dan blokcijfers. In termen van hardwarecomplexiteit zijn stroomcijfers relatief minder complex. Stroomcijfers hebben de typische voorkeur boven blokcijfers wanneer de platte tekst in verschillende hoeveelheden beschikbaar is (voor bijvoorbeeld een beveiligde wifi-verbinding), omdat blokcijfers niet direct kunnen werken op blokken die kleiner zijn dan de blokgrootte. Maar soms,het verschil tussen stroomcijfers en blokcijfers is niet erg duidelijk. De reden is dat bij gebruik van bepaalde werkingsmodi een blokcijfer kan worden gebruikt om als een stroomcijfer te fungeren door het toe te staan de kleinste beschikbare gegevenseenheid te coderen.