Stream Cipher vs Block Cipher | State Cipher vs Block Cipher
In der Kryptographie sind Stream-Chiffren und Block-Chiffren zwei Verschlüsselungs- / Entschlüsselungsalgorithmen, die zur Familie der symmetrischen Schlüsselchiffren gehören. Normalerweise nimmt eine Chiffre einen Klartext als Eingabe und erzeugt einen Chiffretext als Ausgabe. Blockverschlüsselungen verschlüsseln einen Bitblock fester Länge unter Verwendung einer unveränderlichen Transformation. Stream-Verschlüsselungscodes verschlüsseln Streams von Bits mit unterschiedlicher Länge und verwenden für jedes Bit eine unterschiedliche Transformation.
Was ist eine Stream-Chiffre??
Streamchiffren gehören zur Familie der symmetrischen Schlüsselchiffren. Stream-Verschlüsselungscodes kombinieren Klartext-Bits mit einem Pseudo-Zufalls-Verschlüsselungsbit-Stream unter Verwendung der XOR-Operation (Exklusiv-Oder). Stream-Verschlüsselungscodes verschlüsseln nacheinander Klartext-Ziffern mit unterschiedlichen Transformationen für aufeinanderfolgende Ziffern. Da die Verschlüsselung jeder Ziffer vom aktuellen Status der Chiffriermaschine abhängt, werden Stream-Chiffren auch als Status-Chiffren bezeichnet. Normalerweise werden einzelne Bits / Bites als einzelne Ziffern verwendet. Um Sicherheitsbedenken zu vermeiden, sollte sichergestellt werden, dass derselbe Startzustand nicht mehr als einmal verwendet wird. Die am weitesten verbreitete Stromverschlüsselung ist RC4.
Was ist eine Blockchiffre??
Eine Blockverschlüsselung ist eine andere symmetrische Schlüsselverschlüsselung. Blockchiffren arbeiten mit Blöcken (Bitgruppen) mit fester Länge. Blockverschlüsselungen verwenden eine feste (unveränderliche) Transformation für alle Ziffern im Block. Wenn beispielsweise ein x-Bit-Block-Klartext (zusammen mit einem geheimen Schlüssel) als Eingabe für die Blockverschlüsselungs-Engine bereitgestellt wird, erzeugt er den entsprechenden x-Bit-Block von Chiffretext. Die tatsächliche Umwandlung hängt vom geheimen Schlüssel ab. In ähnlicher Weise stellt der Entschlüsselungsalgorithmus den ursprünglichen x-Bit-Block des Klartextes unter Verwendung des x-Bit-Blocks des Chiffretextes und des obigen geheimen Schlüssels als Eingabe wieder her. Falls die Eingangsnachricht im Vergleich zu der Größe des Blocks zu lang ist, wird sie in Blöcke unterteilt, und diese Blöcke werden (einzeln) mit demselben Schlüssel verschlüsselt. Da jedoch derselbe Schlüssel verwendet wird, wird jede Wiederholungssequenz im Klartext zur gleichen Wiederholungssequenz im Chiffretext, und dies kann Sicherheitsbedenken verursachen. Beliebte Blockverschlüsselungen sind DES (Data Encryption Standard) und AES (Advanced Encryption Standard)..
Was ist der Unterschied zwischen einer Stream-Verschlüsselung und einer Blockverschlüsselung??
Obwohl sowohl Strom- als auch Blockchiffren zur Familie der symmetrischen Verschlüsselungschiffren gehören, gibt es einige wichtige Unterschiede. Blockverschlüsselungen verschlüsseln Bitblöcke fester Länge, während Stromverschlüsselungscodes Klartextbits mit einem pseudozufälligen Verschlüsselungsbitstrom unter Verwendung der XOR-Operation kombinieren. Obwohl Blockverschlüsselungen dieselbe Umwandlung verwenden, verwenden Streamverschlüsselungen unterschiedliche Umwandlungen basierend auf dem Zustand der Engine. Stream-Chiffren werden normalerweise schneller als Blockchiffren ausgeführt. In Bezug auf die Hardware-Komplexität sind Stream-Chiffres relativ weniger komplex. Stream-Chiffren sind die typische Präferenz gegenüber Block-Chiffren, wenn der Klartext in unterschiedlichen Mengen verfügbar ist (beispielsweise für eine sichere WLAN-Verbindung), da Block-Chiffren nicht direkt auf Blöcken arbeiten können, die kürzer als die Blockgröße sind. Aber manchmal ist der Unterschied zwischen Streamchiffren und Blockchiffren nicht sehr klar. Der Grund ist, dass bei Verwendung bestimmter Betriebsmodi eine Blockverschlüsselung als Stromverschlüsselung verwendet werden kann, indem die kleinste verfügbare Dateneinheit verschlüsselt werden kann.