Extra Systems Block Cipher (ESBC)

Autor: Yurii Pavlenko
Firma: Extra Systems
Entwicklungsjahr: 2026
Kontakt: esbc@extrasystems.biz


Einleitung

ESBC ist eine 512-Bit-Blockchiffre, der speziell für moderne 64-Bit-Architekturen entwickelt wurde. Im Gegensatz zu klassischen Chiffren (einschließlich AES), die in der Ära der 32-Bit- und 8-Bit-Systeme entstanden sind, wurde ESBC von Grund auf für die Leistungsfähigkeit und die Funktionen heutiger Prozessoren konzipiert.

Das zentrale Designkonzept ist die vollständige Transparenz des Algorithmus und das Fehlen fester Konstanten, die als potenzielle Einfallstore für Hintertüren dienen könnten. Alle Chiffrierelemente, einschließlich Substitutionstabellen (S-Boxen) und Rundenschlüssel, werden dynamisch aus dem Schlüssel des Benutzers mithilfe eines austauschbaren Pseudozufallszahlengenerators (standardmäßig RC4, kann aber durch jeden anderen Zufallszahlengenerator ersetzt werden) generiert.

Hauptparameter

ParameterWert
Blockgröße:64 Byte (512 Bit)
Blockstruktur:8×8 Byte-Matrix (8 uint64_t)
Anzahl der Runden:32
Anzahl der Halbrunden:2 pro Runde (insgesamt 64)
S-Box-Typ:Dynamisch, schlüsselabhängige Permutationen von 256 Elementen
Schlüsselgenerierung:Austauschbarer Zufallszahlengenerator (Standardimplementierung ist RC4)

Besondere Merkmale

Bitverschiebungen vor und nach der Transposition

Die wichtigste Neuerung von ESBC ist die doppelte Anwendung zyklischer Verschiebungen in jeder Runde:

1. Die erste Verschiebung („shift_encode/shift_decode“) wird auf die Zeilen der Matrix vor der Transposition angewendet.
2. Transposition („transpose_the_matrix“): Die Zeilen werden zu Spalten.
3. Die zweite Verschiebung wird auf die Spalten der ursprünglichen Matrix angewendet.

Dieser Ansatz bietet folgende Vorteile:

- Horizontale Diffusion – Vermischung von Bits innerhalb von Zeilen
- Vertikale Diffusion – Vermischung von Bits zwischen Zeilen
- Überwindung von Bytegrenzen – Verschiebungen werden auf Bitebene, nicht auf Byteebene, durchgeführt.

Dadurch beeinflusst ein einziges geändertes Bit des Klartextes nach mehreren Runden eine zufällig verteilte Menge von Chiffretextbits, was die differentielle und lineare Kryptoanalyse erheblich erschwert.

Dynamische Generierung aller Schlüsselelemente

ESBC enthält keine festen Tabellen oder Konstanten unbekannter Herkunft. Alle Schlüsselinformationen werden von der Prozedur „make_key_data“ aus dem vom Benutzer angegebenen Schlüssel generiert:

- „shuffle_key“ – 8-Bit-Schlüssel für Bit-Shuffling (Werte 0x00 und 0xFF sind ausgeschlossen)
- „shift_key“ – Werte für zyklisches Verschieben (1–63, 0 ist ausgeschlossen)
- „xlat_encode_table / xlat_decode_table“ – ein Paar reversibler S-Boxen (zufällige Permutationen von 256 Elementen)
- „step_key“ – 64-Bit-Rundenschlüssel für die Addition

Jedes Element wird unabhängig generiert, wodurch versteckte Abhängigkeiten oder Hintertüren zur Entwurfszeit ausgeschlossen werden.

Positionsabhängige Rundungskonstanten

Die Funktionen „add_const“ und „sub_const“ führen zusätzliche Nichtlinearitäten ein, die von Folgendem abhängen:

- Rundennummer (i) – kubische Abhängigkeit (i+1)³
- Halbrundennummer (semi_step) – Basisverschiebung
- Zeilenposition in der Matrix (j) – quadratische Abhängigkeit

d = ((j + s + 1)² × (i + s + 1)³)²   // 10. Potenz!
d ^= (~d << 32)                      // nichtlineares Mischen

Dies stellt sicher, dass jede Zeile der Matrix in jeder Halbrunde einen eindeutigen Pseudozufallswert erhält.

Keine Hintertüren als Architekturprinzip

Der Hauptvorteil von ESBC gegenüber bestehenden Standards (einschließlich AES) liegt in der grundsätzlichen Unmöglichkeit von Hintertüren, die auf festen Konstanten oder S-Boxen basieren. Da alle Tabellen und Schlüssel dynamisch aus dem Benutzerschlüssel generiert werden, gibt es keine „magischen Zahlen“, die absichtlich gewählt werden könnten, um versteckte Sicherheitslücken zu schaffen.

Der Benutzer kann den verwendeten Zufallszahlengenerator (standardmäßig RC4) optional durch eine andere Zufallsquelle ersetzen, zum Beispiel:

- ChaCha20
- Hardware-Zufallszahlengenerator (RDRAND)
- Hash-Funktion im Zählermodus

Die Sicherheit von ESBC beruht somit ausschließlich auf der Stärke des Schlüssels und des gewählten Zufallszahlengenerator, nicht auf dem Vertrauen in den Entwickler oder Standardisierungsorganisationen.

Einhaltung der Kerckhoffs- und Shannon-Prinzipien

In voller Übereinstimmung mit Kerckhoffs' Prinzip (eine Verschlüsselung sollte auch dann sicher bleiben, wenn ein Angreifer alle Details des Algorithmus außer dem Schlüssel kennt) veröffentlichen wir den vollständigen ESBC-Quellcode. Die Transparenz der Implementierung ermöglicht es jedem:

- Unabhängige Kryptoanalyse durchzuführen
- Das Fehlen versteckter Hintertüren sicherzustellen
- Den Code (im Rahmen der gewählten Lizenz) an Ihre Bedürfnisse anzupassen
- Den Zufallszahlengenerator durch Ihre bevorzugte Zufallsquelle zu ersetzen

Fazit

ESBC bietet einen neuen Ansatz für Blockchiffren, der an die Leistungsfähigkeit von 64-Bit-Systemen und die modernen Anforderungen an Transparenz kryptografischer Algorithmen angepasst ist. Wesentliche Neuerungen – doppelte Bitverschiebungen vor und nach der Transposition, die vollständige dynamische Generierung aller Tabellen und der Verzicht auf feste Konstanten – machen diese Chiffre nicht nur leistungsfähig, sondern auch resistent gegen eine ganze Klasse potenzieller Angriffe mit Hintertüren zur Entwurfszeit.

Wir laden die Kryptografie-Community ein, unseren Ansatz zu analysieren, zu testen und zu diskutieren.

Der Inhalt dieser Seite ist auch auf Englisch, Französisch, Ukrainisch und Russisch verfügbar.


© Extra Systems, 2026 Extra Web Top