Aanbevolen, 2024

Editor'S Choice

Verschil tussen Block Cipher en Stream Cipher

Block Cipher en Stream Cipher zijn de methoden die worden gebruikt om de platte tekst rechtstreeks in coderingstekst om te zetten en tot de familie van symmetrische sleutelcodes te behoren.

Het belangrijkste verschil tussen een blokcijfer en een stroomcijfer is dat het blokcijfer een blok van de tekst tegelijkertijd versleutelt en decodeert. Aan de andere kant codeert en codeert stream-cipher de tekst door de ene byte van de tekst tegelijk te nemen.

Vergelijkingstabel

Basis voor vergelijkingBlock cipherStream cipher
basis-
Converteert de platte tekst door het blok tegelijk te nemen.
Converteert de tekst door één byte van de platte tekst tegelijk te nemen.
ingewikkeldheid
Simpel ontwerp
Complex in vergelijking
Aantal gebruikte bits
64 bits of meer
8 beetjes
Verwarring en diffusie
Gebruikt zowel verwarring als diffusieVertrouwt alleen op verwarring
Gebruikte algoritmemodi
ECB (Elektronisch codeboek)
CBC (Cipher Block Chaining)
CFB (Cipher Feedback)
OFB (output feedback)
reversibiliteit
Het omkeren van versleutelde tekst is moeilijk.
Het gebruikt XOR voor de codering die eenvoudig kan worden teruggedraaid naar de platte tekst.
Implementatie
Feistel Cipher
Vernam Cipher

Definitie van Block Cipher

Block Cipher neemt een bericht en splitst het in een vaste grootte van blokken en converteert één blok van het bericht op een bepaald moment. We hebben bijvoorbeeld een bericht in platte tekst 'STREET_BY_STREET' vereist om te worden gecodeerd. Met behulp van bock cipher, moet "STREET" eerst worden gecodeerd, gevolgd door "_BY_" en uiteindelijk "STREET".
In de praktijk vindt communicatie alleen in bits plaats. Daarom betekent STREET eigenlijk het binaire equivalent van ASCII-karakter van STREET. Vervolgens codeert elk algoritme deze; de resulterende bits worden terug omgezet in hun ASCII-equivalent.

Een duidelijk probleem met betrekking tot het gebruik van blokcijfers is het herhalen van tekst, waarvoor hetzelfde cijfer wordt gegenereerd. Daarom zou het een hint geven aan de cryptanalyst, waardoor het eenvoudiger wordt om de terugkerende strings van platte tekst te achterhalen. Als gevolg hiervan kan het de hele boodschap onthullen.

Om dit probleem te verhelpen, wordt de ketenmodus gebruikt. In deze techniek wordt het voorgaande blok codeertekst vermengd met het huidige blok, zodat de gecodeerde tekst vaag is, dit vermijdt de terugkerende patronen van blokken met dezelfde inhoud.

Definitie van Stream Cipher

Stream Cipher versleutelt meestal één byte van het bericht op dat moment in plaats van blokken te gebruiken. Laten we een voorbeeld nemen, stel dat het oorspronkelijke bericht (platte tekst) "blauwe lucht" is in ASCII (dwz tekstformaat). Wanneer u deze ASCII in equivalente binaire waarden converteert, wordt de uitvoer in de vorm van 0 en 1 weergegeven. Laat het worden vertaald in 010111001.

Voor codering en decodering wordt een pseudowillekeurige bitgenerator gebruikt waarin een sleutel en platte tekst worden geladen. Een pseudorandom- bitgenerator creëert een stroom van 8-bit-nummers die schijnbaar willekeurig bekend staan ​​als keystream . Laat de invoersleutel 100101011 zijn. Nu zijn de sleutel en leesbare tekst XORed. De XOR-logica is eenvoudig te begrijpen.
XOR produceert een uitvoer van 1 wanneer één invoer 0 is en de andere is 1. De uitvoer is 0 als beide ingangen 0 zijn of beide ingangen 1 zijn.

Verwarring is een methode die garandeert dat een coderingstekst geen aanwijzing geeft over de oorspronkelijke platte tekst.
Diffusie is een strategie die wordt gebruikt om de redundantie van de platte tekst te verbeteren door deze over rijen en kolommen te spreiden.

Belangrijkste verschillen tussen Block Cipher en Stream Cipher

  1. Block cipher-techniek omvat versleuteling van één blok tekst per keer, dat wil zeggen alleen. Versleutel de tekst op dezelfde manier door het ene blok na het andere te nemen. Stream-coderingstechniek daarentegen heeft betrekking op codering en decodering van één byte van de tekst per keer.
  2. Blockcipher gebruikt zowel verwarring als diffusie, terwijl streamcipher alleen afhankelijk is van verwarring.
  3. De gebruikelijke grootte van het blok kan 64 of 128 bits zijn in het blokcijfer. Daartegenover staat dat 1 byte (8 bits) per keer in het stroomcijfer wordt omgezet.
  4. Block cipher gebruikt algoritme-modi van de ECB (Electronic Code Book) en CBC (Cipher Block Chaining) . Integendeel, Stream cipher gebruikt CFB (Cipher Feedback) en OFB (Output Feedback) algoritmemodi.
  5. Stream cipher gebruikt de XOR-functie voor het omzetten van de platte tekst in cipher-tekst, dat is de reden waarom het gemakkelijk is om de XOR-bits om te keren. Waar Block Cipher XOR niet gebruikt om dit te doen.
  6. Blokcijfer gebruikt dezelfde sleutel om elk blok te coderen, terwijl het stroomcijfer een andere sleutel gebruikt voor elke byte.

Conclusie:

Block Cipher en Stream Cipher verschillen in de manier waarop platte tekst wordt gecodeerd en gedecodeerd. Het idee achter het blokcijfer is om de platte tekst in blokken te verdelen en die blokken verder te versleutelen. Terwijl het stroomcijfer gewone tekst bit voor bit converteert, vergelijkbaar met stream.

Top