RC2 (Blockchiffre)
# RC2 (Blockchiffre)

RC2 ist eine 64 Bit Blockchiffre mit variabler Schlüssellänge, die von Ronald Rivest als möglicher Ersatz für DES im Jahr 1987 entwickelt wurde. RC steht für Rivest Cipher oder Ron’s Code. Ronald Rivest war auch bei der Entwicklung der Chiffren RC4, RC5 und RC6 federführend beteiligt.

## Geschichte

Die Entwicklung von RC2 wurde von Lotus gesponsert, welche nach einer kundenspezifischen Chiffre suchten. Nachdem diese von der NSA evaluiert wurde, konnte sie als Teil der Software Lotus Notes außerhalb der Vereinigten Staaten exportiert werden. Die NSA schlug viele Änderungen am Algorithmus vor, die dann von Ronald Rivest eingearbeitet wurden. Nach weiteren Verhandlungen wurde die Blockchiffre für den Export freigegeben. Parallel mit RC4 fiel RC2 mit einer Schlüssellänge von 40-Bit nicht unter die amerikanischen Exportbeschränkungen für Kryptographie.
Ursprünglich wurden die Details des Algorithmus als Eigentum der Firma RSA Security geheim gehalten. Doch am 29. Januar 1996 wurde der Quellcode von RC2 anonym im Usenet-Forum scy.crypt eingetragen. Eine Aufdeckung des Quellcodes in ähnlichem Stil fand auch bei RC4 statt. Es ist bis heute unklar, ob der Verfasser Zugang zum Quellcode hatte, oder ob RC2 durch sogenanntes Reverse Engineering aufgedeckt wurde.

## Arbeitsweise

Der RC2-Algorithmus benutzt einen Schlüssel variabler Länge. Die Geschwindigkeit der Verschlüsselung hängt dabei nicht von der Schlüssellänge ab, da aus dem Schlüssel vorab eine schlüsselabhängige Tabelle K mit 64 Wörtern von je 16 Bit berechnet wird.
Der Datenblock besteht aus den vier 16-Bit-Wörtern R[0] bis R[3]. Die 18 Runden sind als Feistelnetzwerk angelegt, 16 davon sind vom Typ MIXING, 2 weitere vom Typ MASHING. Eine Runde des Typs MIXING besteht aus der vierfachen Anwendung der Mix-Transformation. Die Verschlüsselung als C-Code:

## Kryptoanalyse

RC2 ist verwundbar gegenüber einem Angriff mit verwandtem Schlüssel, welcher 2$^{34}$ Klartextblöcke benötigt. Diese Analyse wurde von John Kelsey 1997 durchgeführt.