Stroomcoderingen zijn zeer geschikt voor realtime hardwaretoepassingen.
Een cijfer is een reeks wiskundige regels of algoritmen die worden gebruikt om leesbare tekst of leesbare tekst om te zetten in onleesbare tekst of cijfertekst. Het principiële verschil tussen stroomversleuteling en blokversleuteling is dat stroomversleutelingen werken op tekststromen, één bit of één byte per keer, terwijl blokversleuteling op tekstblokken werkt.
Stroomcodering
Het basisidee van een stroomcodering is om tekst te verdelen in kleine blokken, één bit of één byte lang, en elk blok te coderen, afhankelijk van vele eerdere blokken. Stroomcoderingen gebruiken een andere coderingssleutel - een waarde die in het algoritme moet worden ingevoerd - voor elke bit of byte, dus dezelfde bit of byte produceert elke keer dat deze wordt gecodeerd een andere cijfertekst. Sommige stroomcoderingen gebruiken een keystream-generator, die een willekeurige of bijna willekeurige stroom bits produceert. Het cijfer voert een Booleaanse bewerking uit, ook wel een exclusieve OF genoemd, tussen de bits in de keystream en de bits in de leesbare tekst om cijfertekst te produceren.
Video van de dag
Blokcijfer
Het basisidee van een blokcijfer is om tekst te verdelen in relatief grote blokken, meestal 64 of 128 bits lang, en elk blok afzonderlijk te coderen. Voor elk blok wordt dezelfde coderingssleutel gebruikt en het is de coderingssleutel die de volgorde waarin substitutie, transport en andere wiskundige functies op elk worden uitgevoerd blok. Door sterke algoritmen is reverse-engineering van de cipher, of bepalen welke functies op elk blok zijn uitgevoerd, in welke volgorde, vrijwel onmogelijk.
Verspreiding en verwarring
Blokcijfers gebruiken technieken die bekend staan als verwarring en diffusie om leesbare tekst te versleutelen tot cijfertekst. Het idee achter verwarring is om de relatie tussen de coderingssleutel en de cijfertekst zo complex mogelijk te maken. Idealiter zou elk teken in de coderingssleutel elk teken in de cijfertekst moeten beïnvloeden. Daarentegen verspreidt diffusie de invloed van elk teken in de leesbare tekst over meerdere tekens in de cijfertekst, waardoor het cijfer minder vatbaar is voor statistische aanvallen.
Voors en tegens
Het feit dat stroomcoderingen gegevens bit voor bit versleutelen en decoderen, betekent dat ze bijzonder geschikt zijn voor realtime hardwaretoepassingen, zoals audio- en videotoepassingen. Stroomcoderingen zijn zwakker en minder efficiënt dan blokcoderingen als het gaat om softwaretoepassingen en worden op dat gebied minder vaak gebruikt. Blokcijfers zijn gemakkelijker te implementeren in software omdat ze gegevens versleutelen in blokken met een lengte die software al gebruikt. De coderingssleutel is vaak even lang als de blokgrootte.