<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=RC6</id>
	<title>RC6 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=RC6"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=RC6&amp;action=history"/>
	<updated>2026-05-28T23:40:33Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=RC6&amp;diff=367928&amp;oldid=prev</id>
		<title>imported&gt;Wikihelfer2011: Links aktualisiert, https, Kleinkram</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=RC6&amp;diff=367928&amp;oldid=prev"/>
		<updated>2024-02-17T00:49:19Z</updated>

		<summary type="html">&lt;p&gt;Links aktualisiert, https, Kleinkram&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Blockchiffre&lt;br /&gt;
| name           = RC6&lt;br /&gt;
| bild           = &lt;br /&gt;
| bildname       = &lt;br /&gt;
| entwickler     = [[Ronald Rivest|Ronald L. Rivest]], [[Matt Robshaw]], [[Ray Sidney]], [[Yiqun Lisa Yin]]&lt;br /&gt;
| datum          = 1997&lt;br /&gt;
| abgeleitet     = [[RC5]]&lt;br /&gt;
| schlüssellänge = 128, 192 oder 256&amp;amp;nbsp;Bit&lt;br /&gt;
| blockgröße     = 128&amp;amp;nbsp;Bit&lt;br /&gt;
| struktur       = [[Feistelchiffre]]&lt;br /&gt;
| runden         = 20&lt;br /&gt;
| kryptoanalyse  = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;RC6&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;ivest &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ipher &amp;#039;&amp;#039;&amp;#039;6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) 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.&amp;lt;ref name=&amp;quot;rivest1998&amp;quot;&amp;gt;{{Literatur |Autor = [[Ronald L. Rivest]], M. J. B. Robshaw, R. Sidney, Y.L. Yin |Titel = The RC6 Block Cipher |Jahr = 1998 |Online = http://citeseer.ist.psu.edu/317403.html}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RC6 kandidierte zur Wahl des [[Advanced Encryption Standard]]s (AES) und zählte dort – zusammen mit [[Twofish]], [[Advanced Encryption Standard|Rijndael]], [[MARS (Verschlüsselung)|MARS]] und [[Serpent (Verschlüsselung)|Serpent]] – zu den Finalisten. Es wurde vom [[National Institute of Standards and Technology]] (NIST) als „hinreichend sicher“ eingestuft&amp;lt;!-- Quelle? --&amp;gt; – 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.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
[[Datei:RC6 Cryptography Algorithm.JPG|mini|Struktur von RC6]]&lt;br /&gt;
RC6 besitzt variable Blockgrößen, Rundenzahlen (0–255) und Schlüssellängen (0–2040 [[Bit]]). Eine spezifische Wahl dieser [[Parameter (Informatik)|Parameter]] wird üblicherweise mit „RC6-&amp;#039;&amp;#039;w&amp;#039;&amp;#039;/&amp;#039;&amp;#039;r&amp;#039;&amp;#039;/&amp;#039;&amp;#039;b&amp;#039;&amp;#039;“ bezeichnet – &amp;#039;&amp;#039;w&amp;#039;&amp;#039; ist die Länge eines Datenworts in Bit, &amp;#039;&amp;#039;r&amp;#039;&amp;#039; die Anzahl der Runden und &amp;#039;&amp;#039;b&amp;#039;&amp;#039; die Länge des Schlüssels. Ein Block besteht immer aus vier Datenwörtern, die Blockgröße ist also &amp;lt;math&amp;gt;4 w&amp;lt;/math&amp;gt; Bit. Der AES-Kandidat war RC6-32/20 mit Blockgröße 128 Bit, 20 Runden und [[Schlüssellänge]]n von 128, 192 und 256 Bit.&amp;lt;ref name=&amp;quot;rivest1998&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Primitive Operationen verwendet der [[Algorithmus]] die Addition (&amp;lt;math&amp;gt;A + B&amp;lt;/math&amp;gt;) und Multiplikation (&amp;lt;math&amp;gt;A \cdot B&amp;lt;/math&amp;gt;) (jeweils modulo &amp;lt;math&amp;gt;2^w&amp;lt;/math&amp;gt;), die bitweise [[Bitweiser Operator#XOR|XOR-Verknüpfung]] (&amp;lt;math&amp;gt;A \oplus B&amp;lt;/math&amp;gt;)&amp;lt;!--(A⊕B)--&amp;gt; und die [[Bitweiser Operator#Bitweise Verschiebungen|Linksrotation]] (&amp;lt;math&amp;gt;A \lll B&amp;lt;/math&amp;gt;)&amp;lt;!--(A⋘B bzw. A⋙B)--&amp;gt;, die &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; um &amp;lt;math&amp;gt;B \, \bmod w&amp;lt;/math&amp;gt; Bitpositionen rotiert.&amp;lt;ref name=&amp;quot;rivest1998&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ver- und Entschlüsselung ===&lt;br /&gt;
Gegeben seien ein Klartextblock in [[Little Endian|Little-Endian]]-Darstellung, der aus den Datenworten A, B, C, D besteht, und die Rundenschlüssel S&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; bis S&amp;lt;sub&amp;gt;2r+3&amp;lt;/sub&amp;gt;. Dabei bezeichnet &amp;lt;math&amp;gt;\log w&amp;lt;/math&amp;gt; den [[Logarithmus]] der Wortlänge &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; zur Basis 2. Der Block wird verschlüsselt durch:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;B \leftarrow B+S_0&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;D \leftarrow D+S_1&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{for}\; k \leftarrow 1\; \mathbf{to}\; r \; \mathbf{do:}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;t \leftarrow \big(B \cdot (2B + 1)\big) \lll \log w&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;u \leftarrow \big(D \cdot (2D + 1)\big) \lll \log w&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;X \leftarrow \big((A \oplus t)\lll u\big) + S_{2k}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;C \leftarrow \big((C \oplus u)\lll t\big) + S_{2k+1}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;A \leftarrow B;\; B \leftarrow C;\; C\leftarrow D;\; D\leftarrow X&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;A \leftarrow A + S_{2r+2}&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;C \leftarrow C + S_{2r+3}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie bei RC5 werden &amp;#039;&amp;#039;S&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;S&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; zum [[Key Whitening]] verwendet.&lt;br /&gt;
&lt;br /&gt;
Die Entschlüsselung eines Chiffretextblocks entspricht der Umkehrung dieses Algorithmus.&amp;lt;ref name=&amp;quot;rivest1998&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schlüsselexpansion ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; margin-left:1em;&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ P und Q in Abhängigkeit von der Blockgröße&amp;lt;ref name=&amp;quot;rivest1998&amp;quot; /&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:#E0E0E0; text-align:center;&amp;quot;&lt;br /&gt;
! Blockgröße &amp;lt;br /&amp;gt; [Bits]&lt;br /&gt;
! P &amp;lt;br /&amp;gt;[hexadezimal]&lt;br /&gt;
! Q &amp;lt;br /&amp;gt;[hexadezimal]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right:2.5em; text-align:right;&amp;quot; | 64&lt;br /&gt;
| B7E1&lt;br /&gt;
| 9E37&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right:2.5em; text-align:right;&amp;quot; | 128&lt;br /&gt;
| B7E1 5163&lt;br /&gt;
| 9E37 79B9&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-right:2.5em; text-align:right;&amp;quot; | 256&lt;br /&gt;
| B7E1 5162 8AED 2A6B&lt;br /&gt;
| 9E37 79B9 7F4A 7C15&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Expansionsalgorithmus von RC6, der die Rundenschlüssel &amp;#039;&amp;#039;S&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; bis &amp;#039;&amp;#039;S&amp;lt;sub&amp;gt;2r+3&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; berechnet, wurde im Wesentlichen unverändert von RC5 übernommen. Zunächst werden die Rundenschlüssel &amp;#039;&amp;#039;S&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; mittels Konstanten &amp;lt;math&amp;gt;P, Q&amp;lt;/math&amp;gt; auf einen festen Anfangszustand initialisiert. &amp;#039;&amp;#039;P&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; sind – wie bei RC5 – ungerade Ganzzahlen, die mit der [[Eulersche Zahl|eulerschen Zahl]] &amp;#039;&amp;#039;e&amp;#039;&amp;#039; und dem [[Goldener Schnitt|goldenen Schnitt]] Φ in Abhängigkeit von der verwendeten Blockgröße generiert werden (Tabelle).&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;S_0 \leftarrow P&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{for} \; k\leftarrow 1 \; \mathbf{to}\; 2r + 3 \;\mathbf{do:}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;S_k \leftarrow S_{k-1} + Q&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend wird der geheime Schlüssel in &amp;#039;&amp;#039;c&amp;#039;&amp;#039; Wörter &amp;lt;math&amp;gt;L_0&amp;lt;/math&amp;gt; bis &amp;lt;math&amp;gt;L_{c-1}&amp;lt;/math&amp;gt; der Länge &amp;#039;&amp;#039;w&amp;#039;&amp;#039; aufgespalten, und bei Bedarf wird das letzte Wort &amp;lt;math&amp;gt;L_{c-1}&amp;lt;/math&amp;gt; mit Nullen aufgefüllt. Folgender Code berechnet dann die endgültigen Rundenschlüssel:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k \leftarrow i \leftarrow 0&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;A \leftarrow B \leftarrow 0&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{do}\; 3\cdot \max\big(2r+4, c\big)\; \mathbf{times:}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;A \leftarrow (S_k + A + B) \lll 3&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;B \leftarrow (L_i + A + B) \lll (A + B)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;S_k \leftarrow A; \; L_i \leftarrow B&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;k \leftarrow (k+1) \; \bmod \; (2r+4)&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;i \leftarrow (i+1) \; \bmod \; c&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kryptoanalyse ==&lt;br /&gt;
=== Chosen-Plaintext ===&lt;br /&gt;
2001 wiesen Tetsu Iwata und Kaoru Kurosawa des [[Tōkyō Kōgyō Daigaku|Tokyo Institute of Technology]] nach, dass ein idealisiertes RC6 mit 4 Runden keine [[Zufällige Permutation|pseudozufällige Permutation]] darstellt – ein Angreifer mit polynomiell vielen Verschlüsselungsversuchen das Ergebnis der Blockchiffre also von zufälligem Rauschen unterscheiden kann.&amp;lt;ref name=&amp;quot;iwata2001&amp;quot;&amp;gt;{{Literatur |Autor = Tetsu Iwata, Kaoru Kurosawa |Titel = On the Pseudorandomness of the AES Finalists - RC6 and Serpent |Sammelwerk = Lecture Notes in Computer Science |Verlag = Springer Berlin / Heidelberg |Band = 1978/2001 |Seiten = 231}}&amp;lt;/ref&amp;gt; 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 &amp;#039;&amp;#039;w = 32&amp;#039;&amp;#039; – mit 2&amp;lt;sup&amp;gt;118&amp;lt;/sup&amp;gt; Paaren aus gewählten Klartexten und ihren Chiffraten Bits der Rundenschlüssel für bis zu 13 Runden rekonstruieren lassen. Mit einem Speicherbedarf von 2&amp;lt;sup&amp;gt;112&amp;lt;/sup&amp;gt; und etwa 2&amp;lt;sup&amp;gt;122&amp;lt;/sup&amp;gt; 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.&amp;lt;ref name=&amp;quot;gilbert2001&amp;quot;&amp;gt;{{Literatur |Autor = Henri Gilbert, Helena Handschuh, Antoine Joux, Serge Vaudenay |Titel = A Statistical Attack on RC6 |Sammelwerk = Lecture Notes in Computer Science |Verlag = Springer Berlin / Heidelberg |Band = 1978/2001 |Seiten = 1–15}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Known-Plaintext ===&lt;br /&gt;
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.&amp;lt;ref name=&amp;quot;Borst1999&amp;quot;&amp;gt;{{Literatur |Autor = Johan Borst, Bart Preneel, Joos Vandewalle |Titel = Linear Cryptanalysis of RC5 and RC6 |Sammelwerk = Lecture Notes in Computer Science |Verlag = Springer Berlin / Heidelberg |Band = 1636 |Nummer = 1999 |Seiten = 16 |ISSN = 1611-3349}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lizenzierung ===&lt;br /&gt;
Für das RC6-Verfahren erhielt das Unternehmen RSA die US-Patente 5724428 und 5835600 zugesprochen.&lt;br /&gt;
Diese liefen allerdings zwischen 2015 und 2017 aus.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.repges.net/AES-Kandidaten/RC6/rc6.htm Beschreibung von Markus Repges]&lt;br /&gt;
* [https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/archived-crypto-projects/aes-development NIST, Report on the Development of the Advanced Encryption Standard (AES), 17. Februar 2024]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Rc6}}&lt;br /&gt;
[[Kategorie:Abkürzung|RC6]]&lt;br /&gt;
[[Kategorie:Blockverschlüsselung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Wikihelfer2011</name></author>
	</entry>
</feed>