Verschil tussen Stream Cipher en Block Cipher

Anonim

Stream Cipher vs Block Cipher | State Cipher vs Block Cipher

In cryptografie zijn Stream ciphers en Block cifers twee encryptie / decryptie algoritmen die behoren tot de familie van symmetrische sleutelcifers. Typisch neemt een cipher een gewone tekst als invoer en produceert een ciphertext als output. Block-cifers encrypten vast-lengte blokjes van bits met behulp van een unvariant transformatie. Stream ciphers coderen stromen van bits met verschillende lengte en gebruik wisselende transformatie op elk bit.

Wat is een Stream Cipher?

Streamciphers behoren tot de familie van symmetrische sleutelcifers. Stream ciphers combineren gewone tekst bits met een pseudorandom cipher bits stream met behulp van XOR (exclusieve of) operatie. Stream cifers encrypted plain-text cijfers een voor een keer met verschillende transformaties voor opeenvolgende cijfers. Omdat de versleuteling van elk cijfer afhankelijk is van de huidige toestand van de cijfermotor, zijn stroomcifers ook bekend als state ciphers. Gewoonlijk worden enkele bits / bijten gebruikt als enkele cijfers. Om beveiligingsbekommernissen te vermijden, moet u ervoor zorgen dat dezelfde startstatus niet meer dan één keer wordt gebruikt. De meest gebruikte stroomciphering is RC4.

Wat is een Block Cipher?

Een blokcijfer is een andere symmetrische sleutelcijfer. Blokcifers werken op blokken (groepen van bits) met vaste lengte. Blokcifers gebruiken een vaste (ongewenste) transformatie voor alle cijfers in het blok. Bijvoorbeeld, wanneer een gewone tekst van een x-bitblok (samen met een geheime sleutel) wordt toegevoerd als input voor de blokcipher engine, produceert het het bijbehorende x-bit blok van ciphertext. De werkelijke transformatie is afhankelijk van de geheime sleutel. Evenzo herstelt het decryptiealgoritme het oorspronkelijke x-bitblok van gewone tekst met behulp van het x-bit blok van ciphertext en de bovenstaande geheime sleutel als de invoer. Als het invoer bericht te lang is in vergelijking met de grootte van het blok, wordt het afgebroken naar blokken en deze blokken worden (afzonderlijk) versleuteld met dezelfde sleutel. Echter, omdat dezelfde sleutel wordt gebruikt, wordt elke herhaalde volgorde in de gewone tekst dezelfde herhaalde volgorde in de cipher-tekst, en dit kan veiligheidsproblemen veroorzaken. Populaire blokcifers zijn DES (Data Encryption Standard) en AES (Advanced Encryption Standard).

Wat is het verschil tussen een Stream Cipher en een Block Cipher?

Hoewel beide streamcifers en blokcifers tot de familie van symmetrische encryptiecifers behoren, zijn er enkele belangrijke verschillen. Blokcifers versleutelen vaste lengteblokken bits, terwijl streamcifers gewone tekstbits combineren met een pseudorandom-cijferbitsstroom met behulp van XOR-bewerking. Hoewel blokcifers dezelfde transformatie gebruiken, gebruiken stroomcifers variabele transformaties op basis van de toestand van de motor.Stream cifers voeren gewoonlijk sneller dan blokcifers uit. Wat hardware complexiteit betreft, zijn stroomcifers relatief minder complex. Stream ciphers zijn de typische voorkeur boven blokcifers wanneer de gewone tekst beschikbaar is in verschillende hoeveelheden (bijv. Een beveiligde wifi-verbinding), omdat blokcifers niet direct kunnen werken op blokken korter dan de blokgrootte. Maar soms is het verschil tussen streamcifers en blokcifers niet erg duidelijk. De reden hiervoor is dat bij het gebruik van bepaalde werkwijzen een blokcipherering kunnen worden gebruikt om als een stroomcijfer te fungeren door het mogelijk te maken om de kleinste beschikbare gegevens te coderen.