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. Blockchiffren verschlüsseln Bits mit fester Länge unter Verwendung einer unveränderlichen Transformation. Stream-Chiffren verschlüsseln Bitströme mit unterschiedlicher Länge und verwenden für jedes Bit eine unterschiedliche Transformation.
Was ist eine Stream-Chiffre?
Stream-Chiffren gehören zur Familie der symmetrischen Schlüsselchiffren. Stream-Chiffren kombinieren Klartext-Bits mit einem Pseudozufalls-Chiffrier-Bit-Stream unter Verwendung der XOR-Operation (Exklusiv-Oder). Stream-Chiffren verschlüsseln Klartextziffern einzeln mit unterschiedlichen Transformationen für aufeinanderfolgende Ziffern. Da die Verschlüsselung jeder Ziffer vom aktuellen Status der Chiffrier-Engine abhängt, werden Stream-Chiffren auch als Status-Chiffren bezeichnet. Typischerweise werden einzelne Bits / Bits als einzelne Ziffern verwendet. Um Sicherheitsbedenken zu vermeiden, sollte sichergestellt werden, dass derselbe Startzustand nicht mehr als einmal verwendet wird. Die am häufigsten verwendete Stream-Verschlüsselung ist RC4.
Was ist eine Blockchiffre?
Eine Blockverschlüsselung ist eine weitere symmetrische Schlüsselverschlüsselung. Blockchiffren arbeiten mit Blöcken (Bitgruppen) mit fester Länge. Blockchiffren 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üsselungsmaschine bereitgestellt wird, erzeugt er den entsprechenden x-Bit-Block von Chiffretext. Die eigentliche Transformation hängt vom geheimen Schlüssel ab. In ähnlicher Weise stellt der Entschlüsselungsalgorithmus den ursprünglichen x-Bit-Klartextblock unter Verwendung des x-Bit-Chiffretextblocks und des obigen geheimen Schlüssels als Eingabe wieder her. Falls die Eingabenachricht im Vergleich zur Größe des Blocks zu lang ist, wird sie in Blöcke zerlegt und diese Blöcke werden (einzeln) mit demselben Schlüssel verschlüsselt. Da jedoch derselbe Schlüssel verwendet wird,Jede wiederholte Sequenz im Klartext wird zur gleichen wiederholten Sequenz im Chiffretext, was zu Sicherheitsbedenken führen kann. Beliebte Blockchiffren 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 Stream-Chiffren als auch Block-Chiffren zur Familie der symmetrischen Verschlüsselungs-Chiffren gehören, gibt es einige wesentliche Unterschiede. Blockchiffren verschlüsseln Bits mit fester Länge, während Stream-Chiffren Klartextbits mit einem Pseudozufalls-Chiffrierbit-Stream unter Verwendung der XOR-Operation kombinieren. Obwohl Blockchiffren dieselbe Transformation verwenden, verwenden Stream-Chiffren je nach Zustand der Engine unterschiedliche Transformationen. Stream-Chiffren werden normalerweise schneller ausgeführt als Block-Chiffren. In Bezug auf die Hardwarekomplexität sind Stream-Chiffren relativ weniger komplex. Stream-Chiffren sind die typische Präferenz gegenüber Block-Chiffren, wenn der Klartext in unterschiedlichen Mengen verfügbar ist (z. B. eine sichere WLAN-Verbindung), da Block-Chiffren nicht direkt mit Blöcken arbeiten können, die kürzer als die Blockgröße sind. Aber manchmal,Der Unterschied zwischen Stream-Chiffren und Block-Chiffren ist nicht sehr klar. Der Grund dafür ist, dass bei Verwendung bestimmter Betriebsmodi eine Blockverschlüsselung als Stream-Verschlüsselung verwendet werden kann, indem die kleinste verfügbare Dateneinheit verschlüsselt wird.