EN

Block-Cipher und Stream-Cipher

In diesem Artikel:

Symmetrische Verschlüsselungsalgorithmen werden in zwei Kategorien eingeteilt: Block- und Stromchiffren. Dieser Artikel befasst sich mit Blockchiffre und Stromchiffre, ihren jeweiligen Funktionsweisen, Beispielen und den wichtigsten Unterschieden. Bevor wir uns jedoch im Detail damit befassen, sollten wir zunächst die Grundlagen verstehen. 

Bei der symmetrischen Kryptografie (Schlüsselkryptografie/Privatschlüsselkryptografie) wird ein gemeinsamer Schlüssel/Geheimnis verwendet, um auf eine verschlüsselte Nachricht zwischen zwei Einheiten zuzugreifen. Der Absender teilt dem Empfänger den Chiffrierschlüssel mit, um die Nachricht zu entschlüsseln. Der Verschlüsselungsalgorithmus emuliert ein One-Time-Pad-System, um die ursprüngliche Nachricht vor unbefugtem Zugriff zu schützen. Die Verschlüsselungsalgorithmen generieren einen wirklich zufälligen Chiffrierschlüssel, der nur einmal mit dem One-Time-Pad-System verwendet wird. Jeder, der das Geheimnis/den Schlüssel nicht besitzt, kann die verschlüsselte Nachricht nicht interpretieren. 

Sehen wir uns die Unterschiede an (kurze Einführung)

Blockchiffren verschlüsseln Daten in Blöcken bestimmter Länge, während Stromchiffren dies nicht tun und stattdessen den Klartext Byte für Byte verschlüsseln. Die beiden Verschlüsselungsansätze unterscheiden sich daher stark in der Umsetzung und den Anwendungsfällen. 

Was sind Blockchiffren?

Blockchiffren wandeln Daten im Klartext in Blöcke fester Größe in Chiffretext um. Die Blockgröße hängt im Allgemeinen vom Verschlüsselungsschema ab und wird in der Regel in Oktaven angegeben (64-Bit- oder 128-Bit-Blöcke). Wenn die Länge des Klartextes kein Vielfaches von 8 ist, verwendet das Verschlüsselungsverfahren Auffüllungen, um vollständige Blöcke zu gewährleisten. Um z. B. einen 150-Bit-Klartext mit 128 Bit zu verschlüsseln, liefert das Verschlüsselungsverfahren zwei Blöcke, einen mit 128 Bit und einen mit den verbleibenden 22 Bit. 106 Redundante Bits werden dem letzten Block hinzugefügt, damit der gesamte Block der Blockgröße des Verschlüsselungsschemas entspricht. 

Während Blockchiffren symmetrische Schlüssel und Algorithmen zur Ver- und Entschlüsselung von Daten verwenden, benötigen sie auch einen Initialisierungsvektor (IV), um zu funktionieren. Ein Initialisierungsvektor ist eine pseudozufällige oder zufällige Folge von Zeichen, die zur Verschlüsselung des ersten Zeichenblocks im Klartextblock verwendet wird. Der daraus resultierende Chiffretext für den ersten Zeichenblock dient als Initialisierungsvektor für die nachfolgenden Blöcke. Daher erzeugt die symmetrische Chiffre bei jeder Iteration einen eindeutigen Chiffretextblock, während der IV zusammen mit dem symmetrischen Schlüssel übertragen wird und keine Verschlüsselung erfordert.

Blockverschlüsselungsalgorithmen bieten eine hohe Diffusion, d. h., wenn ein einzelner Klartextblock mehreren Verschlüsselungsiterationen unterzogen wird, entsteht bei jeder Iteration ein eindeutiger Chiffretextblock. Dies macht das Verschlüsselungsverfahren relativ fälschungssicher, da es für böswillige Akteure schwierig ist, unentdeckt Symbole in einen Datenblock einzufügen. Auf der anderen Seite haben Blockchiffren eine hohe Fehlerfortpflanzungsrate, da ein Bit Veränderung im ursprünglichen Klartext zu völlig anderen Chiffretextblöcken führt.

Betriebsarten von Blockchiffren

Es wurden mehrere Betriebsarten für Blockchiffren entwickelt, um die Verschlüsselung mehrerer Blöcke mit langen Daten zu ermöglichen. Diese Modi lassen sich in zwei Kategorien einteilen: Reine Vertraulichkeit und authentifizierte Verschlüsselung mit zusätzlichen Daten.   

Reine Vertraulichkeitsmodi

Bei der reinen Vertraulichkeitsverschlüsselung liegt der Schwerpunkt auf der Geheimhaltung der Kommunikation zwischen zwei Parteien. Diese Modi umfassen:

  • Elektronisches Codebuch (ECB) – In diesem Modus werden Klartextnachrichten in Blöcke unterteilt, wobei die Verschlüsselung auf jeden Block einzeln angewendet wird. Der EZB-Chiffriermodus verbirgt Datenmuster nicht gut, da es ihm an Diffusion mangelt, und wird in der Regel nicht für Sicherheitsrahmenwerke empfohlen.
  • Cipher-Block-Chaining-Modus (CBC) – In diesem Modus wird der Chiffretext des vorherigen Blocks mit den aktuellen Klartextblöcken durch eine XOR-Operation (exklusive Disjunktion) kombiniert, bevor die Verschlüsselung durchgeführt wird. Ein IV wird auf den ersten Klartextblock im CBC-Modus angewendet, um die Eindeutigkeit zu gewährleisten.
  • Propagating Cipher Block Chaining (PCBC) – In diesem Modus führt das Verschlüsselungsverfahren eine exklusive Disjunktion zwischen dem aktuellen Klartext, dem vorherigen Klartext und dem vorherigen Chiffretext durch, bevor der 

Verschlüsselungsalgorithmus ausgeführt wird. Dies führt dazu, dass geringfügige Änderungen im Chiffretext während der Ver- und Entschlüsselung unbegrenzt weitergegeben werden. 

Authentifizierte Verschlüsselung mit zusätzlichen Daten – Diese Betriebsart für Blockchiffren gewährleistet die Authentizität und Vertraulichkeit der Daten. Dieser Modus kann weiter unterteilt werden in:

  • Galois/Counter-Modus (GCM) – Verwendet einen inkrementellen Zähler, der einen universellen Hash über ein endliches Binärfeld (Galois-Feld) generiert, um vor der Ver- und Entschlüsselung Nachrichtenauthentifizierungscodes zu erzeugen. 
  • Synthetischer Initialisierungsvektor (SIV) – Diese Art von Blockchiffre verwendet einen Verschlüsselungsschlüssel, eine Klartexteingabe und einen Header (authentifizierte Oktettstrings variabler Länge), um eine authentifizierte Verschlüsselung zu ermöglichen. SIV erzeugt einen deterministischen Chiffretext, der den Klartext geheim hält und gleichzeitig die Authentizität sowohl des Headers als auch des Chiffretextes sicherstellt.

Beispiele für Blockchiffren

Blockchiffren bilden die Grundlage der meisten modernen Chiffriersuiten. Einige häufig verwendete Blockchiffre-Verschlüsselungsstandards sind:

Data Encryption Standard (DES)

Ein symmetrischer 56-Bit-Schlüsselalgorithmus, der ursprünglich zum Schutz sensibler, vertraulicher Informationen verwendet wurde. DES wurde inzwischen wegen der kurzen Schlüssellänge und anderer Sicherheitsbedenken zurückgezogen, gilt aber immer noch als Pionierstandard für die Verschlüsselung.

Erweiterter Verschlüsselungsstandard (AES)

Eine beliebte Blockchiffre, die Daten in Blöcken von 128 Bit mit symmetrischen 128-, 192- und 256-Bit-Schlüsseln verschlüsselt. Die zugrundeliegende Blockchiffre verwendet Substitutions-Permutations- und Transpositionstechniken, um Chiffretext durch Mischen und Ersetzen von Eingabedaten in einer Abfolge von verknüpften Berechnungen zu erzeugen. AES ist ein weltweit akzeptierter Verschlüsselungsstandard, da Kryptoanalyseversuche gegen seine Algorithmen erfolglos geblieben sind. 

Twofish

Twofish ist ein Verschlüsselungsstandard, der ein Feistel-Netzwerk, ein komplexes Schlüsselschema und Substitutionstechniken zur Trennung von Schlüssel und Chiffretext verwendet. Der Standard verschlüsselt Klartextdaten in Blöcken von 128 Bit mit flexiblen Schlüsselgrößen zwischen 128 und 256 Bit Länge. 

Andere Verschlüsselungsverfahren, die Blockchiffren verwenden, sind unter anderem 3DES, Serpent und Blowfish.

Was sind Stromchiffren?

Eine Stromchiffre verschlüsselt eine fortlaufende Kette binärer Ziffern, indem sie zeitlich veränderliche Transformationen auf Klartextdaten anwendet. Daher arbeitet diese Art der Verschlüsselung Bit für Bit und verwendet Schlüsselströme, um Chiffretext für beliebig lange Klartextnachrichten zu erzeugen. Die Chiffre kombiniert einen Schlüssel (128/256 Bit) und eine Nonce-Ziffer (64-128 Bit), um den Keystream zu erzeugen – eine Pseudozufallszahl, die mit dem Klartext XOR-verknüpft wird, um den Chiffretext zu erzeugen. Während der Schlüssel und die Nonce-Zahl wiederverwendet werden können, muss der Schlüsselstrom für jede Verschlüsselungsiteration eindeutig sein, um die Sicherheit zu gewährleisten. Bei der Stromverschlüsselung wird dies mit Hilfe von rückgekoppelten Schieberegistern erreicht, die eine eindeutige Nonce (eine nur einmal verwendete Zahl) zur Erstellung des Schlüsselstroms erzeugen.

Bei Verschlüsselungsverfahren, die Stromchiffren verwenden, ist es weniger wahrscheinlich, dass sich systemweite Fehler ausbreiten, da ein Fehler bei der Übersetzung eines Bits normalerweise nicht den gesamten Klartextblock betrifft. Die Stromverschlüsselung erfolgt außerdem linear und kontinuierlich, wodurch sie einfacher und schneller zu implementieren ist. Andererseits mangelt es Stromverschlüsselungen an Diffusion, da jede Klartextziffer auf eine Chiffretextausgabe abgebildet wird. Außerdem wird die Authentizität nicht überprüft, was sie anfällig für Einfügungen macht. Wenn Hacker den Verschlüsselungsalgorithmus knacken, können sie die verschlüsselte Nachricht unbemerkt einfügen oder verändern. Stromchiffren werden hauptsächlich zur Verschlüsselung von Daten in Anwendungen verwendet, bei denen die Menge des Klartextes nicht bestimmt werden kann, sowie in Anwendungsfällen mit geringer Latenz.

Arten von Stromchiffren

Stromchiffren lassen sich in zwei Kategorien einteilen:

Synchrone Stromchiffren

Bei einer synchronen Stromchiffre wird der Schlüsselstromblock unabhängig von den vorherigen Chiffretext- und Klartextnachrichten erzeugt. Die gebräuchlichsten Stromchiffrierverfahren verwenden Pseudozufallszahlengeneratoren, um eine Bitfolge zu erzeugen, die mit dem Schlüssel kombiniert wird, um den Schlüsselstrom zu bilden, der mit dem Klartext XOR-verknüpft wird, um den Chiffretext zu erzeugen. 

Selbstsynchronisierende/asynchrone Stromchiffren

Eine selbstsynchronisierende Stromchiffre, die auch als Chiffretext-Autokey bezeichnet wird, generiert den Keystream-Block als Funktion des symmetrischen Schlüssels und der festen Größe (N-Bits) des vorherigen Chiffretext-Blocks. Durch die Änderung des Chiffretextes wird der Inhalt des nächsten Schlüsselstroms verändert, so dass asynchrone Stromchiffren aktive Angriffe erkennen können. Diese Chiffren bieten auch eine begrenzte Fehlerfortpflanzung, da ein einstelliger Fehler höchstens N Bits betreffen kann.

Beispiele für Stromchiffren

Beliebte Verschlüsselungsverfahren, die Stromchiffren verwenden, sind unter anderem:

Rivest-Chiffre (RC4)

RC4/ARC4/ARCFOUR ist ein schneller, einfacher Verschlüsselungsalgorithmus, der 1987 entwickelt wurde, um eine Byte-für-Byte-Verschlüsselung mit 64 oder 128 Bit langen Schlüsseln zu realisieren. RC4 wird häufig in Transport Layer Security, Secure Sockets Layer und dem IEEE 802.11 WLAN-Standard verwendet. Das beliebte Verschlüsselungsverfahren gibt es in verschiedenen Varianten, unter anderem SPRITZ, RC4A und RC4A+.

Salsa20

Salsa20 ist ein effizientes, modernes Verschlüsselungsverfahren, das auf einer Expansionsfunktion beruht, um den Verschlüsselungsschlüsselstrom zu erzeugen. Darüber hinaus hängt Salsa20 von einer Kernfunktion ab, die den Schlüssel, eine Nonce-Ziffer und konstante Vektoren, die aus der Expansionsfunktion extrahiert werden, mithilfe von ARX-Operationen (add-rotate-XOR) auf den Schlüsselstrom abbildet.

Software-optimierter Verschlüsselungsalgorithmus (SEAL)

SEAL ist eine additive binäre Stromchiffre, die für Maschinen mit 32-Bit-CPUs und ausreichenden Speicherressourcen optimiert ist. Der Verschlüsselungsstandard stützt sich auf eine Pseudozufallsfamilie, die eine längenerhöhende Funktion und einen 160-Bit-Schlüssel verwendet, um die 32-Bit-Zeichenkette auf eine Zeichenkette beliebiger Länge abzubilden. 

Weitere Beispiele für Stromchiffren sind unter anderem PANAMA, Scream, Rabbit, HC-256 und Grain.

Hauptunterschiede zwischen Block- und Stromchiffren

Bit-Umwandlung

Blockchiffren wandeln den Klartext jeweils in einen Block (64/128/256 Bit) um, während Stromchiffren den Klartext jeweils in ein Byte umwandeln. Dies macht Blockchiffren langsamer, da ein ganzer Block akkumuliert werden muss, bevor die Daten verschlüsselt/entschlüsselt werden. Im Gegensatz dazu verschlüsseln Stromchiffren Datenbits in einzelne Symbole, eines nach dem anderen.

Prinzip der Übersetzung

Stromchiffren verwenden nur das Verwechslungsprinzip, um Daten umzuwandeln, wodurch die Vertraulichkeit der Daten gewährleistet wird. Blockchiffren hingegen nutzen die Datendiffusion und die Konfusion zur Verschlüsselung von Klartext. Blockchiffren können daher zur Implementierung einer authentifizierten Verschlüsselung verwendet werden, um die Sicherheit zu erhöhen.

Umkehrbarkeit

Stromchiffren verwenden eine XOR-Operation für den Klartext, um den Chiffretext zu erzeugen. Die strombasierte Verschlüsselung lässt sich durch XOR-Verknüpfung der Chiffriertextausgaben leicht umkehren. Blockchiffren verschlüsseln mehr Bits auf einmal, was die Entschlüsselung vergleichsweise komplex macht.

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit http://example.com
Wir scannen derzeit http://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 27/05/2022
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Ihren Bericht anfordern
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.