Verschil tussen stroomcodering en blokcodering

Verschil tussen stroomcodering en blokcodering
Verschil tussen stroomcodering en blokcodering

Video: Verschil tussen stroomcodering en blokcodering

Video: Verschil tussen stroomcodering en blokcodering
Video: Wat is het verschil tussen een grondkabel en een installatiekabel? - Elektrototaalmarkt.nl 2024, Juni-
Anonim

Stream Cipher vs Block Cipher | Staatscijfer versus blokcijfer

In cryptografie zijn stroomcoderingen en blokcoderingen twee coderings-/decoderingsalgoritmen die behoren tot de familie van symmetrische sleutelcoderingen. Typisch neemt een cijfer een platte tekst als invoer en produceert een cijfertekst als uitvoer. Blokcijfers versleutelen bits met een vaste lengte met behulp van een onveranderlijke transformatie. Stroomcoderingen versleutelen bitstromen met verschillende lengtes en gebruiken verschillende transformaties op elke bit.

Wat is een stroomcodering?

Streamcijfers behoren tot de familie van symmetrische sleutelcijfers. Stroomcoderingen combineren platte tekstbits met een pseudowillekeurige coderingsbitsstroom met behulp van XOR (exclusief-of) operatie. Streamcijfers versleutelen de cijfers in platte tekst één voor één met verschillende transformaties voor opeenvolgende cijfers. Omdat de codering van elk cijfer afhangt van de huidige status van de coderingsengine, worden stroomcoderingen ook wel statuscoderingen genoemd. Gewoonlijk worden enkele bits/bites gebruikt als enkele cijfers. Om veiligheidsproblemen te voorkomen, moet ervoor worden gezorgd dat dezelfde startstatus niet meer dan één keer wordt gebruikt. De meest gebruikte stroomcodering 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 (niet-variabele) 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 blokcoderingsengine, produceert deze het corresponderende x-bit blok met cijfertekst. De daadwerkelijke transformatie is afhankelijk van de geheime sleutel. Op dezelfde manier herstelt het decoderingsalgoritme het oorspronkelijke x-bit blok leesbare tekst met behulp van het x-bit blok 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 (afzonderlijk) versleuteld met dezelfde sleutel. Omdat echter dezelfde sleutel wordt gebruikt, wordt elke herhaalde reeks in de platte tekst dezelfde herhaalde reeks in de cijfertekst, en dit kan veiligheidsproblemen 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 stroomcoderingen als blokcoderingen tot de familie van symmetrische encryptiecijfers behoren, zijn er enkele belangrijke verschillen. Blokcoderingen versleutelen bitblokken met een vaste lengte, terwijl stroomcoderingen platte tekstbits combineren met een pseudowillekeurige coderingsbitsstroom met behulp van XOR-bewerking. Hoewel blokcijfers dezelfde transformatie gebruiken, gebruiken stroomcijfers verschillende transformaties op basis van de status van de engine. Stroomcoderingen worden meestal sneller uitgevoerd dan blokcoderingen. In termen van hardwarecomplexiteit zijn stroomcoderingen relatief minder complex. Stroomcoderingen hebben de typische voorkeur boven blokcoderingen wanneer de platte tekst in verschillende hoeveelheden beschikbaar is (voor bijvoorbeeld een beveiligde wifi-verbinding), omdat blokcoderingen niet rechtstreeks kunnen werken op blokken die korter zijn dan de blokgrootte. Maar soms is het verschil tussen stroomcijfers en blokcijfers niet erg duidelijk. De reden is dat, bij gebruik van bepaalde werkingsmodi, een blokcijfer kan worden gebruikt om te fungeren als een stroomcijfer door het toe te staan de kleinste beschikbare gegevenseenheid te versleutelen.

Aanbevolen: