RC6 Chiffre

Herkunft / Verwendung: RC6 (Rivest Cipher 6) wurde von Ronals Rivest und drei seiner Kollegen 1998 entwickelt und ist eine symmetrische Blockchiffre mit einer Blocklänge von 128 bit (16 Bytes). Die Schlüsselänge kann 8 bis 2048 betragen (für AES waren 128, 192 oder 256 Bit und 20 Runden gefordert). RC6 war einer der Kandidaten im AES Auswahlverfahren des NIST und schaffte es unter die besten fünf neben Twofish, Rijndael, MARS und Serpent.

Vom Design her ist RC6 einfacher aufgebaut als die anderen Kandidaten, was die Wahrscheinlichkeit der versehentlichen Implementierung von Designfehlern minimiert und auch eine gute Performance in Software möglich macht. RC6 ist von der Firma RSA patentiert (US-Patente 5724428 und 5835600, die allerdings 2017 ausliefen) worden.

RC6 arbeitet unter anderem mit datenabhängigen Rotationen. Der Umstand, dass datenabhängigen Rotationen in der Kryptologie noch nicht sehr erforscht sind und ihre Sicherheit noch nicht einhunderprozentig feststeht, brachte RC6 bei den AES-Juroren evtl. Minuspunkte ein.

Der Vorgänger-Algorithmus von RC6 - wer hätte es erraten - ist der RC5.

Beschreibung des Algorithmus

Im Grunde genommen kann RC6 mit einer variablen Blocklänge, Schlüssellänge und Rundenzahl umgehen. Da die Rundenzahl laut den Regeln für den AES-Wettbewerb allerdings fest sein musste, wurde sie auf 20 festgelegt.

RC6 arbeitet mit Blöcken mit der Länge 128 bit, die in vier jeweils 32 bit breite Worte aufgeteilt werden und dann mit datenabhängigen Rotationen, Multiplikationen und Modulo-Rechnungen verschlüsselt werden. Dies macht RC6 auf 32 bit Prozessoren besonders performant (auf 64 Bit Systemen hingegeben ist die Geschwindkeit nicht ganz optimal).

Beispiele

Klartext:BeispielklartextBeispielklartext (Länge 32 Bytes)
Schlüssel:Schokoladentorte (Länge 16 Bytes / 128 bit)
Chiffrat RC6-8/12/k (ECB):3103279B E4153EBD 3E887024 B0BAE188 3103279B E4153EBD 3E887024 B0BAE188
Chiffrat RC6-8/12/k (CBC):3103279B 6C258DDA 3D2659CA 110A2D21 8FF37A45 176BAF2D E880B8A7 D92BA946

Chiffrat RC6-16/16/k (ECB):08197865 C9A98F4B 7CA06D7B 6C0B009A 08197865 C9A98F4B 7CA06D7B 6C0B009A
Chiffrat RC6-16/16/k (CBC):08197865 C9A98F4B D17F9FD0 15F41872 17E55822 66A09E82 AE44BAF4 75544592

Chiffrat RC6-32/20/k (ECB):31D15F39 3CEE75BB 0FECEEA7 AD5ABD11 31D15F39 3CEE75BB 0FECEEA7 AD5ABD11
Chiffrat RC6-32/20/k (CBC):31D15F39 3CEE75BB 0FECEEA7 AD5ABD11 73B4364A 4C8710D7 64808FD5 D93FC565

Chiffrat RC6-64/24/k (CBC):4A8EC9B2 25EC25F8 18AD01B2 14324355 41E8B5E3 4FC3AFAE 72ED59CD 303EB53D

Chiffrat RC6-128/28/k (CBC):4AE38778 ECBE8673 43C28AEB 9A51D540 19034B05 B04B37E0 CC2C93B4 F1DBE0A5 3D86D6DD 3C714577 8901F38E CF231902 317B3EEE 89179940 75DA90E9 5A242A78

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

Die Länge des Textes sollte durch das Vierfache der Wortlänge teilbar sein. Kürzere Texte werden mit Nullbytes rechts aufgefüllt. Die Länge des Ergebnisses entspricht einem Vielfachen der Blocklänge.
Der Schlüssel sollte min. 16 Zeichen lang sein, besser noch ein binärer Hash mit min. 128 Bit.
Wenn Sie Texte eingeben, die nicht als Hex-Sequenz (ohne Leerzeichen) interpretiert werden können, erfolgt eine automatische Umsetzung in Binärdaten. Ist das Ergebnis nicht umsetzbar in druckbare ASCII-Zeichen, erfolgt eine automatische Ausgabe in Hex.



Quellen, Literaturverweise und weiterführende Links

Schmeh, Klaus: Kryptografie: Verfahren - Protokolle - Infrastrukturen, dpunkt Verlag, 5. Auflage 2013, iX-Edition, S. 143
Wobst, Reinhard: Abenteuer Kryptologie, Addison-Wesley-Verlag 2001, S. 227