RC5 | |
---|---|
Eine Runde (zwei Halbrunden) von RC5 | |
Entwickler | Ronald L. Rivest |
Veröffentlicht | 1994 |
Schlüssellänge | 1 bis 2040 Bits |
Blockgröße | 32, 64 oder 128 Bit |
Struktur | Feistelchiffre |
Runden | 1 bis 255 Runden, empfohlen mindestens 16 Runden |
Beste bekannte Kryptoanalyse | |
RC5-32/12 ist anfällig für die differentielle Kryptoanalyse bei 244 gewählten Klartextblöcken. |
RC5 (Rivest Cipher 5) ist eine 1994 von Ronald Rivest entworfene symmetrische Blockverschlüsselung. Das bedeutet, dass sowohl für das Verschlüsseln wie das Entschlüsseln der gleiche Schlüssel benutzt wird. Sie gehört zur Klasse der Feistelchiffren. Die Daten werden zunächst in Blöcke gleicher Größe aufgeteilt und über wiederholte Anwendung einfacher Operationen – sogenannter „Primitive“ – ver- oder entschlüsselt. Die Blockgröße, die Länge des Schlüssels und die Anzahl der Wiederholungen – die „Runden“ – sind nicht durch den Algorithmus vorgegeben und werden als Parameter vor der Verschlüsselung festgelegt.
Das Ziel beim Entwurf von RC5 war eine einfache und schnelle Chiffre. Sie baut auf datenabhängigen Rotationen auf, deren Eignung als Primitiv zum Entwicklungszeitpunkt noch weitgehend unerforscht war.[1]
Anders als viele andere Blockchiffren verwendet RC5 keine S-Boxen, um das von Claude Shannon 1949 als „Konfusion“ bezeichnete und für sicheren Betrieb wichtige Verwischen statistischer Zusammenhänge zwischen Klartext, Schlüssel und Chiffretext zu erreichen. Eine S-Box sorgt für starke Konfusion, da man weitgehend frei wählen kann, wie zum Beispiel eine -S-Box die möglichen Werte der eingegebenen Bits auf die möglichen Ausgangswerte abbildet. S-Boxen erfordern in der praktischen Implementierung aber zusätzlichen Speicher und auch einen gewissen Rechenaufwand, da man ein Datenwort erst in genügend kleine Teile teilen muss, die der S-Box eingegeben werden, denn ein ganzes Wort von 16 oder mehr Bit ist dafür zu groß. Danach muss man die Ergebnisse auch wieder zu einem Wort zusammensetzen. Der Verzicht auf S-Boxen macht RC5 sehr einfach und schnell und insbesondere auch für den Einsatz in ressourcenarmen Bereichen – etwa digitaler Hardware mit begrenzter Chipfläche – interessant.
Eine konkrete Softwareimplementation, die verschiedene Betriebsmodi zur Verkettung von Blöcken bietet – nämlich CBC, CBC-Pad und CTS – wird im Standard RFC 2040 spezifiziert.[2]
RC5 diente als Basis für die Verschlüsselung RC6, die zur Wahl des Advanced Encryption Standard kandidierte.[3]
In den Vereinigten Staaten hielt das Unternehmen RSA Security bis 2015 ein Patent auf RC5.[4]