RC6

RC6
RC6
Entwickler Ronald L. Rivest, Matt Robshaw, Ray Sidney, Yiqun Lisa Yin
Veröffentlicht 1997
Abgeleitet von RC5
Schlüssellänge 128, 192 oder 256 Bit
Blockgröße 128 Bit
Struktur Feistelchiffre
Runden 20

RC6 (für Rivest Cipher 6) ist eine 1998 von Ronald Rivest und anderen entworfene symmetrische Blockverschlüsselung. RC6 ist eine Weiterentwicklung von RC5 und verwendet ebenso wie dieses datenabhängige Rotationen, und zusätzlich die Multiplikation von Daten. Die zum Entwicklungszeitpunkt bekannten theoretischen Angriffe gegen RC5 sollten dadurch bereits im Ansatz verhindert werden.[1]

RC6 kandidierte zur Wahl des Advanced Encryption Standards (AES) und zählte dort – zusammen mit Twofish, Rijndael, MARS und Serpent – zu den Finalisten. Es wurde vom National Institute of Standards and Technology (NIST) als „hinreichend sicher“ eingestuft – ebenso wie Rijndael, welches schließlich zum AES gewählt wurde. RC6 ist einfacher aufgebaut als die anderen Finalisten, wodurch die Gefahr von Implementierungsfehlern reduziert wird, und es ist auch relativ effizient in Software zu implementieren.

Inhaltsverzeichnis

Beschreibung

RC6 besitzt variable Blockgrößen, Rundenzahlen (0–255) und Schlüssellängen (0–2040 Bit). Eine spezifische Wahl dieser Parameter wird üblicherweise mit „RC6-w/r/b“ bezeichnet – w ist die Länge eines Datenworts in Bit, r die Anzahl der Runden und b die Länge des Schlüssels. Ein Block besteht immer aus vier Datenwörtern, die Blockgröße ist also 4w Bit. Der AES-Kandidat war RC6-32/20 mit Blockgröße 128 Bit, 20 Runden und Schlüssellängen von 128, 192 und 256 Bit.[1]

Als Primitive Operationen verwendet der Algorithmus die Addition (A + B) und Multiplikation (A \cdot B) (jeweils modulo 2w), die bitweise XOR-Verknüpfung (A \oplus B) und die Linksrotation (A \lll B), die A um B \, \bmod w Bitpositionen rotiert.[1]

Ver- und Entschlüsselung

Gegeben seien ein Klartextblock in Little Endian-Darstellung, der aus den Datenworten A, B, C, D besteht, und die Rundenschlüssel S0 bis S2r+3. Dabei bezeichnet log w den Logarithmus der Wortlänge w zur Basis 2. Der Block wird verschlüsselt durch:

B \leftarrow B+S_0
D \leftarrow D+S_1
\mathbf{for}\; k \leftarrow 1\; \mathbf{to}\; r \; \mathbf{do:}
t \leftarrow \big(B \cdot (2B + 1)\big) \lll \log w
u \leftarrow \big(D \cdot (2D + 1)\big) \lll \log w
X \leftarrow \big((A \oplus t)\lll u\big) + S_{2k}
C \leftarrow \big((C \oplus u)\lll t\big) + S_{2k+1}
A \leftarrow B;\; B \leftarrow C;\; C\leftarrow D;\; D\leftarrow X
A \leftarrow A + S_{2r+2}
C \leftarrow C + S_{2r+3}

Wie bei RC5 werden S0 und S1 zum Key Whitening verwendet.

Die Entschlüsselung eines Chiffretextblocks entspricht der Umkehrung dieses Algorithmus.[1]

Schlüsselexpansion

P und Q in Abhängigkeit von der Blockgröße[1]
Blockgröße
[Bits]
P
[hexadezimal]
Q
[hexadezimal]
64 B7E1 9E37
128 B7E1 5163 9E37 79B9
256 B7E1 5162 8AED 2A6B 9E37 79B9 7F4A 7C15

Der Expansionsalgorithmus von RC6, der die Rundenschlüssel S0 bis S2r+3 berechnet, wurde im Wesentlichen unverändert von RC5 übernommen. Zunächst werden die Rundenschlüssel Sk mittels Konstanten P,Q auf einen festen Anfangszustand initialisiert. P und Q sind – wie bei RC5 – ungerade Ganzzahlen, die mit der eulerschen Zahl e und dem goldenen Schnitt Φ in Abhängigkeit von der verwendeten Blockgröße generiert werden (Tabelle).

S_0 \leftarrow P
\mathbf{for} \; k\leftarrow 1 \; \mathbf{to}\; 2r + 3 \;\mathbf{do:}
S_k \leftarrow S_{k-1} + Q

Anschließend wird der geheime Schlüssel in c Wörter L0 bis Lc − 1 der Länge w aufgespaltet, und bei Bedarf wird das letzte Wort Lc − 1 mit Nullen aufgefüllt. Folgender Code berechnet dann die endgültigen Rundenschlüssel:

k \leftarrow i \leftarrow 0
A \leftarrow B \leftarrow 0
\mathbf{do}\; 3\cdot \max\big(2r+4, c\big)\; \mathbf{times:}
A \leftarrow (S_k + A + B) \lll 3
B \leftarrow (L_i + A + B) \lll (A + B)
S_k \leftarrow A; \; L_i \leftarrow B
k \leftarrow (k+1) \; \bmod \; (2r+4)
i \leftarrow (i+1) \; \bmod \; c

Kryptoanalyse

Chosen-Plaintext

2001 wiesen Tetsu Iwata und Kaoru Kurosawa des Tokyo Institute of Technology nach, dass ein idealisiertes RC6 mit 4 Runden keine pseudozufällige Permutation darstellt – ein Angreifer mit polynomiell vielen Verschlüsselungsversuchen das Ergebnis der Blockchiffre also von zufälligem Rauschen unterscheiden kann.[2] Im gleichen Jahr stellten Henri Gilbert, Helena Handschuh, Antoine Joux und Serge Vaudenay einen auf dieser Eigenschaft aufbauenden statistischen Angriff vor, mit dessen Hilfe sich – für w = 32 – mit 2118 Paaren aus gewählten Klartexten und ihren Chiffraten Bits der Rundenschlüssel für bis zu 13 Runden rekonstruieren lassen. Mit einem Speicherbedarf von 2112 und etwa 2122 notwendigen Operationen kann dieser Angriff zudem auch als Known-Plaintext-Angriff gegen 14 Runden verwendet werden. Aus diesem – aufgrund der Anforderungen praktisch nicht durchführbaren – Angriff schlossen die Autoren, dass die 20 Runden des AES-Kandidaten nicht übermäßig viel seien.[3]

Known-Plaintext

1999 stellten Borst, Preneel und Vandevalle fest, dass der von ihnen publizierte, auf linearen Approximationen basierende Angriff auf RC5 gegen RC6 essentiell wirkungslos ist und die Vorkehrungen der RC6-Entwickler ausreichten.[4]

Einzelnachweise

  1. a b c d e Ronald L. Rivest, M. J. B. Robshaw, R. Sidney, Y.L. Yin: The RC6 Block Cipher. 1998 (http://citeseer.ist.psu.edu/317403.html).
  2. Tetsu Iwata, Kaoru Kurosawa: On the Pseudorandomness of the AES Finalists - RC6 and Serpent. In: Lecture Notes in Computer Science. 1978/2001, Springer Berlin / Heidelberg, S. 231.
  3. Henri Gilbert, Helena Handschuh, Antoine Joux, Serge Vaudenay: A Statistical Attack on RC6. In: Lecture Notes in Computer Science. 1978/2001, Springer Berlin / Heidelberg, S. 1–15.
  4. Johan Borst, Bart Preneel, Joos Vandewalle: Linear Cryptanalysis of RC5 and RC6. In: Lecture Notes in Computer Science. 1636, Nr. 1999, Springer Berlin / Heidelberg, ISSN 1611-3349, S. 16.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • RC6 — Создатель: Рональд Райвест, М. Робшоу, Р. Сидни (RSA Laboratories) …   Википедия

  • RC6 — Saltar a navegación, búsqueda En criptografía, RC6 es una unidad de cifrado por bloques de clave simétrica derivada a partir de RC5. Fue diseñada por Ron Rivest, Matt Robshaw, Ray Sidney, y Yiqun Lisa Yin para cumplir los requerimientos de la… …   Wikipedia Español

  • RC6 — Résumé Concepteur(s) Ron Rivest et al. Première publication 1998 Dérivé de RC5 Chiffrement(s) basé(s) sur cet algorithme Caractéristiques …   Wikipédia en Français

  • RC6 — Infobox block cipher name = RC6 caption = The Feistel function of the RC6 algorithm. designers = Ron Rivest, Matt Robshaw, Ray Sidney, Yiqun Lisa Yin publish date = 1998 derived from = RC5 derived to = related to = certification = AES finalist… …   Wikipedia

  • RC6 — En criptografía, RC6 es una unidad de cifrado por bloques de clave simétrica derivada a partir de RC5. Fue diseñada por Ron Rivest, Matt Robshaw, Ray Sidney, y Yiqun Lisa Yin para cumplir los requerimientos de la competencia de la AES. El… …   Enciclopedia Universal

  • алгоритмы шифрования RC2, RC4, RC5, RC6 — Алгоритмы шифрования на базе шифра Ривеста. Разработка компании RSA Data Security (теперь RSA Security). [http://www.rfcmd.ru/glossword/1.8/index.php?a=index&d=4100] Тематики защита информации EN Rivest cipher (RC2, RC4, RC5, RC6) …   Справочник технического переводчика

  • Rc (Lok) — SJ Rc Anzahl: 360 Hersteller: ASEA Baujahr(e): 1967 1988 Achsformel: Bo Bo Spurweite …   Deutsch Wikipedia

  • SJ Rc — Anzahl: 360 Hersteller: ASEA Baujahr(e): 1967 1988 Achsformel: Bo Bo Spurweite …   Deutsch Wikipedia

  • World Chess Championship 2006 — The World Chess Championship 2006 was a chess match between Classical World Chess Champion Vladimir Kramnik, and FIDE World Chess Champion Veselin Topalov. The match, which was won by Kramnik, determined, for the first time in 13 years, the… …   Wikipedia

  • Sicilienne Najdorf — Cet article utilise la notation algébrique pour décrire des coups du jeu d échecs …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”