GOST 28147-89 Chiffre

Herkunft / Verwendung: GOST steht für Gosudarstvennyi Standard Soyuza SSR und ist das russische Normungsinstitut, also das Gegenstück zum NIST der USA.

Die unter GOST 28147-89 standardisierte Chiffre ist eine Feistel-Chiffre mit 256 bit Schlüssellänge, was 32 Zeichen entspricht. Sie ist sozusagen das sowjetische Gegenstück zum westlichen Data Encryption Standard (DES), denn ihre Funktionsweisen sind ähnlich.

Die Chiffre wurde in den 1970er Jahren vom KGB entwickelt und als "streng geheim" klassifiziert. 1990 wurde die Chiffre auf das Sicherheitslevel "geheim" heruntergestuft und schließlich 1994 nach Auflösung der UdSSR freigegeben. Für GOST 28147-89 ist mittlerweile auch die weniger sperrigen Bezeichnung "GOST Magma" geläufig.

In RFC 7801 wird eine Erweiterung der Chiffre als "Kuznyechik" (russisch für "Grashüpfer") bezeichnet und als Chiffreart mit einer Blockgröße von 128 Bit (statt 64 Bit) und einer (gleich gebliebenen) Schlüssellänge von 256-Bit definiert. Auch die Rundenanzahl von 32 bleibt gleich. Der Standard GOST R 34.12-2015 definiert die neue Chiffre als Zusatz zur alten GOST-Blockchiffre. Auch Kuznyechik basiert auf einem Feistel-Netzwerk. In RFC 8891 wird der Algorithmus dann als "Magma" bezeichnet, hat aber noch die Standardisierung GOST R 34.12-2015.

Genau wie DES gilt die GOST Blockchiffre mittlerweile als gebrochen und nicht mehr sicher und sollte nicht mehr für kritische Zwecke eingesetzt werden.

Es gibt auch eine GOST genannte Hash-Funktion.

Beschreibung des Algorithmus

GOST 28147-89 ist eine 64-bit Blockchiffre mit einer 256-bit Schlüssellänge. Es ist als Feistelnetzwerk mit 32 Runden konstruiert. In jeder Feistelnetzwerkrunde wird ein 32-bit-Unterschlüssel modulo 32 addiert und das Ergebnis durch eine Ebene von S-Boxen geschickt. Das Resultat wird dann um 11 Bits nach links rotiert.

Die Unterschlüssel werden in einer vordefinierten Reihenfolge benutzt. Der 256-bit Schlüssel wird in 32-bit Unterschlüssel zerlegt, jeder Unterschlüssel wird 4 mal im Algorithmus benutzt. Die ersten 24 Runden werden die Unterschlüssel der Reihenfolge nach benutzt, die letzten 8 Runden in umgekehrter Reihenfolge.

Die S-Boxen erwarten eine 4-bit Eingabe und erzeugen eine 4-bit Ausgabe. Die S-Box Ersetzung besteht aus einer 4 x 4 S-Box Konstruktion, die benutzerspezifisch realisiert werden und zur zusätzlichen Sicherheit geheimgehalten werden kann. So waren auch im ursprünglichen GOST Standard keine S-Boxen vorgegeben. Später setzte sich als gebräuchlichste die GOST R 34.12-2015 S-Box durch: 1 C 4 6 2 A 5 B 9 E 8 D 7 0 3 F 1 2 6 8 2 3 9 A 5 C 1 E 4 7 B D 0 F 3 B 3 5 8 2 F A D E 1 7 4 C 9 6 0 4 C 8 2 1 D 4 F 6 7 0 A 5 3 E 9 B 5 7 F 5 A 8 1 6 D 0 9 3 E B 4 2 C 6 5 D F 6 9 2 C A B 7 8 1 4 3 E 0 7 8 E 2 5 6 9 1 C F 4 B 0 D A 3 7 8 1 7 E D 0 5 8 3 4 F A 6 9 C B 2 Der komplette Standard / Algorithmus kann in englisch unter RFC 5830 bei der IETF nachgelesen werden.

Beispiel

Klartext:Beispielklartext (2 Blöcke zu 8 Byte (64 bit))
Schlüssel:SchokoladentorteSchokoladentorte (32 Byte, 256 bit)
Chiffrat:E05F62BA 0CA8D8D9 D1000602 A37C6D32 (hex)
Chiffrieren / dechiffrieren: Beispielklartext -> 42 65 69 73 70 69 65 6C 6B 6C 61 72 74 65 78 74 SchokoladentorteSchokoladentorte -> 53 63 68 6F 6B 6F 6C 61 64 65 6E 74 6F 72 74 65 ... Chiffrat E0 5F 62 BA 0C A8 D8 D9 D1 00 06 02 A3 7C 6D 32 SchokoladentorteSchokoladentorte -> 53 63 68 6F 6B 6F 6C 61 64 65 6E 74 6F 72 74 65 ... Beispielklartext -> 42 65 69 73 70 69 65 6C 6B 6C 61 72 74 65 78 74

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)

Wenn Sie Texte eingeben, die nicht als Hex-Sequenz (ohne Leerzeichen) interpretiert werden können, erfolgt eine automatische Umsetzung in eine Hex-Sequenz. Ist Das Ergebnis umsetzbar in druckbare ASCII-Zeichen, erfolgt eine automatische Umsetzung von Hex.



Quellen, Literaturverweise und weiterführende Links

Schmeh, Klaus: Kryptografie: Verfahren - Protokolle - Infrastrukturen, dpunkt Verlag, 5. Auflage 2013, iX-Edition, S. 125
RFC 5830: GOST 28147-89
RFC 7801: GOST R 34.12-2015: Block Cipher "Kuznyechik"
RFC 8891: GOST R 34.12-2015: Block Cipher "Magma"