RC6 Chiffre

Kategorisierung:Modern und binär-basiert
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 RC5-8/12/128 (ECB):3103279BE4153EBD3E887024B0BAE1883103279BE4153EBD3E887024B0BAE188
Chiffrat RC5-8/12/128 (CBC):3103279B6C258DDA3D2659CA110A2D218FF37A45176BAF2DE880B8A7D92BA946
Chiffrat RC5-16/16/128 (ECB):08197865C9A98F4B7CA06D7B6C0B009A08197865C9A98F4B7CA06D7B6C0B009A
Chiffrat RC5-16/16/128 (CBC):08197865C9A98F4BD17F9FD015F4187217E5582266A09E82AE44BAF475544592
Chiffrat RC5-32/20/128 (ECB):31D15F393CEE75BB0FECEEA7AD5ABD1131D15F393CEE75BB0FECEEA7AD5ABD11
Chiffrat RC5-32/20/128 (CBC):31D15F393CEE75BB0FECEEA7AD5ABD1173B4364A4C8710D764808FD5D93FC565
Chiffrat RC5-64/24/128 (ECB):4A8EC9B225EC25F818AD01B21432435541E8B5E34FC3AFAE72ED59CD303EB53D
Chiffrat RC5-64/24/128 (CBC):4A8EC9B225EC25F818AD01B21432435541E8B5E34FC3AFAE72ED59CD303EB53D

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 enstspricht 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