Wat is een blokcijfer?
Een blokcijfer is een cryptografisch algoritme dat datablokken met een vaste grootte, meestal 128 bits, versleutelt. Het werkt met een vaste sleutel en versleutelt datagroepen om maximale vertrouwelijkheid en veiligheid te garanderen. Moderne blokcijfers zijn gebaseerd op het iteratieve productcijferontwerp, waarbij een vaste sleutel wordt gebruikt voor het versleutelen van datagroepen.
Hoe werkt Block Cipher?
Bij een blokcijfer vindt de encryptie plaats in blokken met een vaste lengte, meestal blokken van 128 bits. Blokcijfers werken met grotere data-eenheden dan stroomcijfers, die één byte per keer versleutelen. Een sleutel, aangeduid met K, transformeert elk blok platte tekst in een overeenkomstig blok gecodeerde tekst.
Belangrijkste kenmerken en voordelen van de blokcijfer:
-
Blokgrootte
Versleuteling wordt uitgevoerd op blokken met een vaste grootte, vaak bestaande uit 128 bits. Elk blok ondergaat een reeks transformaties met behulp van de encryptiesleutel.
-
Sleuteluitbreiding
De encryptiesleutel K wordt uitgebreid om subsleutels te produceren voor elke encryptieronde, waardoor de beveiliging van de blokcijfer wordt verbeterd.
-
Verwarring en diffusie
Verwarring houdt in dat de relatie tussen de sleutel en de cijfertekst complexer wordt. Diffusie zorgt ervoor dat een wijziging in één deel van de leesbare tekst een groot deel van de cijfertekst beïnvloedt.
-
Rondes van transformatie
Elk blok ondergaat meerdere transformatierondes, waarbij telkens substitutie-, permutatie- en mengbewerkingen plaatsvinden.
-
Cryptografische beveiliging
Blokcijfers zijn ontworpen om bestand te zijn tegen diverse cryptografische aanvallen, waaronder differentiële en lineaire cryptoanalyse. Het zorgvuldige ontwerp van de cijferstructuur zorgt voor robuuste beveiliging.
-
Elektronisch codeboek (ECB)-modus
Elk blok is onafhankelijk gecodeerd in de ECB-modus. Identieke plattetekstblokken leveren identieke gecodeerde tekstblokken op.
-
Cipher Block Chaining (CBC)-modus
De CBC-modus introduceert een initialisatievector (IV) om de beveiliging te verbeteren. Vóór de encryptie wordt elk blok ge-XORd met het vorige versleutelde tekstblok.
Voorbeeldversleuteling:
-
Het encryptieproces bestaat uit meerdere ronden van substitutie en permutatie.
-
Elk blok platte tekst wordt omgezet in een overeenkomstig blok versleutelde tekst.
Voorbeeld van decodering:
-
Bij decodering wordt het coderingsproces omgedraaid, waarbij omgekeerde transformaties worden toegepast.
-
Elk blok cijfertekst wordt ontcijferd om de originele platte tekst te onthullen.
Blokcijfers vormen de basis van diverse cryptografische protocollen en zorgen voor veilige communicatie en gegevensbescherming in diverse toepassingen. Hun vaste blokgrootte en complexe encryptiemechanismen dragen bij aan hun weerbaarheid tegen aanvallen.
Wat is Stream Cipher?
Versleuteling vindt byte voor byte plaats in een stroomcijfer, wat zorgt voor een continue stroom pseudowillekeurige bits voor verhoogde beveiliging. Het proces begint met het initialiseren van een sleutel, aangeduid met k, die wordt ingevoerd in een pseudowillekeurige bitgenerator. Deze generator produceert een 8-bits sleutelstroom, die dient als basis voor de versleuteling.
Belangrijkste kenmerken en voordelen van de stream cipher:
-
Keystream-generatie
-
Een sleutel, k, wordt ingevoerd in een pseudowillekeurige bitgenerator.
-
De generator produceert een 8-bits sleutelstroom, die de basis vormt voor encryptie.
-
-
Cryptanalyse Weerstand
-
Het sequentiële karakter van stroomcijfers vergroot de weerstand tegen cryptoanalyse.
-
Door de lengte van de sleutelstroom te vergroten, wordt cryptoanalyse een grotere uitdaging.
-
-
Brute Force-bescherming
-
Langere sleutels dragen bij aan de weerstand tegen brute force-aanvallen.
-
Door langere sleutellengtes te gebruiken, wordt de beveiliging verbeterd.
-
-
Efficiënt Keystream-ontwerp
-
Keystreams zijn ontworpen voor optimale efficiëntie en bevatten een evenwichtige mix van enen en nullen.
-
Deze ontwerpkeuze is bedoeld om de complexiteit van cryptoanalyse te vergroten.
-
-
Stream Cipher-bewerking
-
Het encryptieproces
Het houdt in dat elke platte tekstbit wordt ge-XORd met de overeenkomstige bit in de sleutelstroom
Voorbeeld: platte tekst: 10011001, sleutelstroom: 11000011, cijfertekst: 01011010
-
Decoderingsproces
Decodering weerspiegelt het coderingsproces met dezelfde sleutelstroom. Door de versleutelde tekst te XOR-en met de sleutelstroom, wordt de originele platte tekst verkregen.
Voorbeeld: Cipher Text: 01011010, Keystream: 11000011, Platte tekst: 10011001
De eenvoud, efficiëntie en cryptografische sterkte van de stroomcijfer maken deze geschikt voor diverse toepassingen waarbij realtime-encryptie en -decryptie van cruciaal belang zijn.
-
