<?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=Rijndael_MixColumns</id>
	<title>Rijndael MixColumns - 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=Rijndael_MixColumns"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Rijndael_MixColumns&amp;action=history"/>
	<updated>2026-06-01T16:37:48Z</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=Rijndael_MixColumns&amp;diff=1496498&amp;oldid=prev</id>
		<title>imported&gt;DasFlutenDuten: /* growthexperiments-addlink-summary-summary:1|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Rijndael_MixColumns&amp;diff=1496498&amp;oldid=prev"/>
		<updated>2025-10-22T18:58:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;MixColumns-Schritt&amp;#039;&amp;#039;&amp;#039; ist ein Rechenschritt im [[Advanced Encryption Standard|Rijndael]]-Algorithmus (AES).&lt;br /&gt;
&lt;br /&gt;
MixColumns ist eine lineare Operation auf vier Bytes (einer Spalte) des Datenblocks, der durch Rijndael verschlüsselt wird. Sie ersetzt diese vier Bytes durch vier daraus berechnete Ergebnisbytes, die jeweils von jedem der Eingabebytes abhängen, was [[Diffusion (Kryptologie)|Diffusion]] innerhalb der Spalte bewirkt. Je Runde der Verschlüsselung wird jede Spalte des Datenblocks einmal durch MixColumns bearbeitet.&lt;br /&gt;
&lt;br /&gt;
[[Datei:AES-MixColumns.svg|320px|mini|Im &amp;lt;code&amp;gt;MixColumns&amp;lt;/code&amp;gt; Schritt wird jede Spalte des Datenblocks mit &amp;#039;&amp;#039;c(x)&amp;#039;&amp;#039; verknüpft.]]&lt;br /&gt;
&lt;br /&gt;
== Die Matrizenmultiplikation ==&lt;br /&gt;
&lt;br /&gt;
In diesem Schritt findet eine [[Matrizenmultiplikation]] eines Spaltenvektors des Datenblocks mit einer [[MDS-Code|MDS-Matrix]] statt.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}2 &amp;amp; 3 &amp;amp; 1 &amp;amp; 1\\ 1 &amp;amp; 2 &amp;amp; 3 &amp;amp; 1\\ 1 &amp;amp; 1 &amp;amp; 2 &amp;amp; 3\\ 3 &amp;amp; 1 &amp;amp; 1 &amp;amp; 2 \end{pmatrix} \begin{pmatrix}a_{0,i} \\ a_{1,i} \\ a_{2,i}\\a_{3,i} \end{pmatrix} = \begin{pmatrix}b_{0,i} \\ b_{1,i} \\ b_{2,i}\\b_{3,i} \end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Arithmetik findet allerdings nicht auf den [[Natürliche Zahl|Natürlichen Zahlen]] statt, sondern auf dem Galois-Körper des Rijndael.&lt;br /&gt;
&lt;br /&gt;
== Der Galois-Körper des Rijndael ==&lt;br /&gt;
Der Galois-Körper des Rijndael ist der [[Galois-Körper]] &amp;lt;math&amp;gt;GF(2^8)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;GF(2^8)&amp;lt;/math&amp;gt; ist die Menge aller [[Polynom]]e maximal 7. Grades mit Koeffizienten aus dem [[Restklassenkörper]] &amp;lt;math&amp;gt;\mathbb F_2 = \mathbb Z/2\mathbb Z&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ein allgemeines Polynom aus &amp;lt;math&amp;gt;GF(2^8)&amp;lt;/math&amp;gt; besitzt die Form&lt;br /&gt;
&amp;lt;math&amp;gt;a_7 x^7 + a_6x^6 + a_5x^5 + a_4x^4 + a_3x^3 + a_2x^2 + a_1x + a_0 \ \ (a_i \in \mathbb F_2).&amp;lt;/math&amp;gt;&lt;br /&gt;
Wie leicht nachzuvollziehen ist, lässt sich jedes dieser Polynome durch ein [[Byte]] repräsentieren, wobei jeweils das &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-te [[Bit]] den Koeffizienten &amp;lt;math&amp;gt;a_i&amp;lt;/math&amp;gt; repräsentiert.&lt;br /&gt;
&lt;br /&gt;
Die Addition &amp;lt;math&amp;gt;\oplus&amp;lt;/math&amp;gt; auf &amp;lt;math&amp;gt;GF(2^8)&amp;lt;/math&amp;gt; ist analog zum Körper &amp;lt;math&amp;gt;\mathbb F_2&amp;lt;/math&amp;gt; als [[XOR]]-Verknüpfung definiert, sie findet koeffizientenweise bzw. bitweise statt. Die Subtraktion entspricht der Addition, da die XOR-Verknüpfung ihre eigene [[Umkehrfunktion]] ist. Beispiel:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(x^5 + x^4 + x^3) - (x^7+x^5+ x^3+ x + 1) = (x^5 + x^4 + x^3) + (x^7+x^5+ x^3+ x + 1) = x^7 + x^4 + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Multiplikation(&amp;lt;math&amp;gt;\cdot&amp;lt;/math&amp;gt;) findet [[modulo]] des [[Irreduzibles Polynom|irreduziblen Polynoms]] &amp;lt;math&amp;gt;x^8 + x^4 + x^3 + x + 1&amp;lt;/math&amp;gt; statt. Hierzu multipliziert man die beiden Polynome und berechnet dann Mittels einer [[Polynomdivision]] den Divisionsrest.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Beispielhaft wird nun die Berechnung von &amp;lt;math&amp;gt;b_{0,1}&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;\begin{pmatrix}a_{0,i} \\ a_{1,i} \\ a_{2,i}\\a_{3,i} \end{pmatrix} = \begin{pmatrix} \mathrm{d4}\\ 32\\ \mathrm{f4}\\ \mathrm{ae} \end{pmatrix}&amp;lt;/math&amp;gt; durchgeführt. Zahlen sind, wenn nicht anders angegeben, [[hexadezimal]].&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}2 &amp;amp; 3 &amp;amp; 1 &amp;amp; 1\\ 1 &amp;amp; 2 &amp;amp; 3 &amp;amp; 1\\ 1 &amp;amp; 1 &amp;amp; 2 &amp;amp; 3\\ 3 &amp;amp; 1 &amp;amp; 1 &amp;amp; 2 \end{pmatrix} \begin{pmatrix} \mathrm{d4} \\ 32 \\ \mathrm{f4} \\ \mathrm{ae} \end{pmatrix} = \begin{pmatrix}b_{0,i} \\ b_{1,i} \\ b_{2,i}\\b_{3,i} \end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daraus folgt &amp;lt;math&amp;gt;b_{0,1} = (2 \cdot \mathrm{d4}) + (3 \cdot 32) + (1 \cdot \mathrm{f4}) + (1 \cdot \mathrm{ae})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Terme &amp;lt;math&amp;gt; 1 \cdot \mathrm{f4} = \mathrm{f4}&amp;lt;/math&amp;gt; sowie &amp;lt;math&amp;gt;1 \cdot \mathrm{ae} = \mathrm{ae}&amp;lt;/math&amp;gt; sind trivial.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{align} 2 \cdot \mathrm{d4} &amp;amp; = 00000010_2 \cdot 11010100_2 \\ &amp;amp; = x \cdot (x^7 + x^6 + x^4 + x^2) \\ &amp;amp; = (x^8 + x^7 + x^5 + x^3)\ \bmod\ (x^8 + x^4 + x^3 + x + 1) \\ &amp;amp; = 110101000_2\ \bmod\ 100011011_2 \\ &amp;amp; = 110101000_2\ + 100011011_2\\ &amp;amp; = 010110011_2 = b3 \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\begin{align} 3 \cdot 32 &amp;amp; = 00000011_2 \cdot 00110010_2 \\ &amp;amp; = (x + 1) \cdot (x^5 + x^4 + x) \\ &amp;amp; = (x^6 + x^5 + x^2 + x^5 + x^4 + x)\ \bmod\ (x^8 + x^4 + x^3 + x + 1) \\ &amp;amp; = (x^6 + x^4 + x^2 + x)\ \bmod\ (x^8 + x^4 + x^3 + x + 1) \\ &amp;amp; = 01010110_2\ \bmod\ 100011011_2 \\ &amp;amp; = 01010110_2 = 56 \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Daraus ergibt sich mit [[XOR]]: &amp;lt;math&amp;gt;b_{0,1} = b3 + 56 + \mathrm{f4} + \mathrm{ae} = \mathrm{bf}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Die Umkehrung des MixColumns Schrittes ==&lt;br /&gt;
&lt;br /&gt;
Die Entschlüsselung kann in diesem Schritt in derselben Weise erfolgen wie die Verschlüsselung. Allerdings muss man hierzu mit der&lt;br /&gt;
inversen Matrix multiplizieren. Sie lautet (Zahlen [[hexadezimal]]):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}E &amp;amp; B &amp;amp; D &amp;amp; 9\\ 9 &amp;amp; E &amp;amp; B &amp;amp; D\\ D &amp;amp; 9 &amp;amp; E &amp;amp; B\\ B &amp;amp; D &amp;amp; 9 &amp;amp; E \end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
da&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{pmatrix}2 &amp;amp; 3 &amp;amp; 1 &amp;amp; 1\\ 1 &amp;amp; 2 &amp;amp; 3 &amp;amp; 1\\ 1 &amp;amp; 1 &amp;amp; 2 &amp;amp; 3\\ 3 &amp;amp; 1 &amp;amp; 1 &amp;amp; 2 \end{pmatrix} \begin{pmatrix}E &amp;amp; B &amp;amp; D &amp;amp; 9\\ 9 &amp;amp; E &amp;amp; B &amp;amp; D\\ D &amp;amp; 9 &amp;amp; E &amp;amp; B\\ B &amp;amp; D &amp;amp; 9 &amp;amp; E \end{pmatrix}  = \begin{pmatrix}1 &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\\ 0 &amp;amp; 1 &amp;amp; 0 &amp;amp; 0\\ 0 &amp;amp; 0 &amp;amp; 1 &amp;amp; 0\\ 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; 1\end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Möglichkeiten zur Implementierung ==&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass im Rijndael bei der Verschlüsselung nur Multiplikationen mit &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;(x+1)&amp;lt;/math&amp;gt; stattfinden, lässt sich der Algorithmus sehr effizient und einfach am Computer implementieren.&lt;br /&gt;
&lt;br /&gt;
Die Multiplikation mit &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; ist trivial. Die Multiplikation mit &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; bedeutet in der Binärdarstellung eine Verschiebung um 1 Bit nach links (die Moduloberechnung muss noch gesondert betrachtet werden), und die Multiplikation mit &amp;lt;math&amp;gt;(x+1)&amp;lt;/math&amp;gt; lässt sich in eine Multiplikation mit &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; und anschließende Addition mit sich selbst aufspalten.&lt;br /&gt;
Falls ein Überlauf stattfindet, so muss man das Zwischenergebnis noch mit &amp;lt;math&amp;gt;1b&lt;br /&gt;
&amp;lt;/math&amp;gt; XOR-verknüpfen, um das richtige Ergebnis zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Folgender C-Code dient nur als Beispiel für eine mögliche einfache Implementierung und stellt keine sichere Referenzimplementierung dar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
unsigned char mul123(unsigned char a, unsigned char b) {&lt;br /&gt;
  if (b==1) {&lt;br /&gt;
    return a;&lt;br /&gt;
  }&lt;br /&gt;
  else if (b==2) {&lt;br /&gt;
    unsigned char c = a &amp;lt;&amp;lt; 1;&lt;br /&gt;
    if (a &amp;amp; 0x80)&lt;br /&gt;
      c ^= 0x1b;&lt;br /&gt;
    return c;&lt;br /&gt;
  }&lt;br /&gt;
  else if (b==3) {&lt;br /&gt;
    return mul123(a, 2) ^ a;&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    exit{EXIT_FAILURE};&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei der Entschlüsselung bedarf es allerdings auch der Multiplikation mit anderen Zahlen, wo der obenstehende Ansatz nutzlos wird.&lt;br /&gt;
&lt;br /&gt;
Für geeignetes &amp;lt;math&amp;gt;e \in GF(2^8)&amp;lt;/math&amp;gt; gilt &amp;lt;math&amp;gt;\exp\colon GF(2^8)\backslash\{0\} \to GF(2^8)\backslash\{0\}, x \mapsto e^x&amp;lt;/math&amp;gt; ist bijektiv. Die Umkehrfunktion heiße &amp;lt;math&amp;gt;\ln&amp;lt;/math&amp;gt;. Ein solches geeignetes &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
nennt man einen Generator, Beispiele hierfür wären die 3 oder die 5, es gibt allerdings noch einige weitere.&lt;br /&gt;
&lt;br /&gt;
Beweis: Da &amp;lt;math&amp;gt;GF(2^8)&amp;lt;/math&amp;gt; endlich, lässt sich das durch nachrechnen überprüfen.&lt;br /&gt;
&lt;br /&gt;
Da &amp;lt;math&amp;gt;\exp&amp;lt;/math&amp;gt; bijektiv ist, gilt für &amp;lt;math&amp;gt;a,b \in GF(2^8)\backslash\{0\}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a \cdot b = e^{\ln(a \cdot b)} = e^{\ln(a) + \ln(b)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;math&amp;gt;a = 0 \vee b = 0&amp;lt;/math&amp;gt; gilt &amp;lt;math&amp;gt;a \cdot b = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erzeugen wir uns nun für die Multiplikation eine Exponential- und Logarithmustabelle für einen Generator, so können wir mit Hilfe dieser die allgemeine Multiplikation auf &amp;lt;math&amp;gt;GF(2^8)&amp;lt;/math&amp;gt; effektiv implementieren. Die Tabelle kann entweder zur Laufzeit berechnet werden – mit obiger Funktion bietet sich der Generator 3 an – oder im Quellcode vorliegen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
unsigned char RijndaelGaloisMul(unsigned char a, unsigned char b){&lt;br /&gt;
  if(a &amp;amp;&amp;amp; b) //falls a != 0 und b != 0&lt;br /&gt;
    return exp_table[(ln_table[a] + ln_table[b]) % 0xff];&lt;br /&gt;
  else&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nachfolgend die Exponential- und Logarithmustabelle für den Generator 3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Potenzen:&lt;br /&gt;
   | *0  *1  *2  *3  *4  *5  *6  *7  *8  *9  *a  *b  *c  *d  *e  *f |&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 0*| 01  03  05  0f  11  33  55  ff  1a  2e  72  96  a1  f8  13  35 |0*&lt;br /&gt;
 1*| 5f  e1  38  48  d8  73  95  a4  f7  02  06  0a  1e  22  66  aa |1*&lt;br /&gt;
 2*| e5  34  5c  e4  37  59  eb  26  6a  be  d9  70  90  ab  e6  31 |2*&lt;br /&gt;
 3*| 53  f5  04  0c  14  3c  44  cc  4f  d1  68  b8  d3  6e  b2  cd |3*&lt;br /&gt;
 4*| 4c  d4  67  a9  e0  3b  4d  d7  62  a6  f1  08  18  28  78  88 |4*&lt;br /&gt;
 5*| 83  9e  b9  d0  6b  bd  dc  7f  81  98  b3  ce  49  db  76  9a |5*&lt;br /&gt;
 6*| b5  c4  57  f9  10  30  50  f0  0b  1d  27  69  bb  d6  61  a3 |6*&lt;br /&gt;
 7*| fe  19  2b  7d  87  92  ad  ec  2f  71  93  ae  e9  20  60  a0 |7*&lt;br /&gt;
 8*| fb  16  3a  4e  d2  6d  b7  c2  5d  e7  32  56  fa  15  3f  41 |8*&lt;br /&gt;
 9*| c3  5e  e2  3d  47  c9  40  c0  5b  ed  2c  74  9c  bf  da  75 |9*&lt;br /&gt;
 a*| 9f  ba  d5  64  ac  ef  2a  7e  82  9d  bc  df  7a  8e  89  80 |a*&lt;br /&gt;
 b*| 9b  b6  c1  58  e8  23  65  af  ea  25  6f  b1  c8  43  c5  54 |b*&lt;br /&gt;
 c*| fc  1f  21  63  a5  f4  07  09  1b  2d  77  99  b0  cb  46  ca |c*&lt;br /&gt;
 d*| 45  cf  4a  de  79  8b  86  91  a8  e3  3e  42  c6  51  f3  0e |d*&lt;br /&gt;
 e*| 12  36  5a  ee  29  7b  8d  8c  8f  8a  85  94  a7  f2  0d  17 |e*&lt;br /&gt;
 f*| 39  4b  dd  7c  84  97  a2  fd  1c  24  6c  b4  c7  52  f6  01 |f*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Logarithmen:&lt;br /&gt;
   | *0  *1  *2  *3  *4  *5  *6  *7  *8  *9  *a  *b  *c  *d  *e  *f |&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 0*| --  00  19  01  32  02  1a  c6  4b  c7  1b  68  33  ee  df  03 |0*&lt;br /&gt;
 1*| 64  04  e0  0e  34  8d  81  ef  4c  71  08  c8  f8  69  1c  c1 |1*&lt;br /&gt;
 2*| 7d  c2  1d  b5  f9  b9  27  6a  4d  e4  a6  72  9a  c9  09  78 |2*&lt;br /&gt;
 3*| 65  2f  8a  05  21  0f  e1  24  12  f0  82  45  35  93  da  8e |3*&lt;br /&gt;
 4*| 96  8f  db  bd  36  d0  ce  94  13  5c  d2  f1  40  46  83  38 |4*&lt;br /&gt;
 5*| 66  dd  fd  30  bf  06  8b  62  b3  25  e2  98  22  88  91  10 |5*&lt;br /&gt;
 6*| 7e  6e  48  c3  a3  b6  1e  42  3a  6b  28  54  fa  85  3d  ba |6*&lt;br /&gt;
 7*| 2b  79  0a  15  9b  9f  5e  ca  4e  d4  ac  e5  f3  73  a7  57 |7*&lt;br /&gt;
 8*| af  58  a8  50  f4  ea  d6  74  4f  ae  e9  d5  e7  e6  ad  e8 |8*&lt;br /&gt;
 9*| 2c  d7  75  7a  eb  16  0b  f5  59  cb  5f  b0  9c  a9  51  a0 |9*&lt;br /&gt;
 a*| 7f  0c  f6  6f  17  c4  49  ec  d8  43  1f  2d  a4  76  7b  b7 |a*&lt;br /&gt;
 b*| cc  bb  3e  5a  fb  60  b1  86  3b  52  a1  6c  aa  55  29  9d |b*&lt;br /&gt;
 c*| 97  b2  87  90  61  be  dc  fc  bc  95  cf  cd  37  3f  5b  d1 |c*&lt;br /&gt;
 d*| 53  39  84  3c  41  a2  6d  47  14  2a  9e  5d  56  f2  d3  ab |d*&lt;br /&gt;
 e*| 44  11  92  d9  23  20  2e  89  b4  7c  b8  26  77  99  e3  a5 |e*&lt;br /&gt;
 f*| 67  4a  ed  de  c5  31  fe  18  0d  63  8c  80  c0  f7  70  07 |f*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.codeplanet.eu/tutorials/cpp/51-advanced-encryption-standard.html#aes_operations_mixcolumns Tutorial über die AES-Verschlüsselung]&lt;br /&gt;
* [http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf FIPS PUB 197: the official AES standard] ([[Portable Document Format|PDF]] file; 273 kB)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Advanced Encryption Standard]]&lt;/div&gt;</summary>
		<author><name>imported&gt;DasFlutenDuten</name></author>
	</entry>
</feed>