<?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=SHA-3</id>
	<title>SHA-3 - 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=SHA-3"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=SHA-3&amp;action=history"/>
	<updated>2026-05-31T14:16:30Z</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=SHA-3&amp;diff=2159739&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=SHA-3&amp;diff=2159739&amp;oldid=prev"/>
		<updated>2025-12-01T03:49:35Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Kryptologische Hashfunktion&lt;br /&gt;
|name           = SHA-3 (Keccak)&lt;br /&gt;
|entwickler     = Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche&lt;br /&gt;
|datum          = Januar 2011 (3. Version)&lt;br /&gt;
|abgeleitet     = RadioGatún (Vorgänger)&lt;br /&gt;
|zertifizierung = [[NIST]] SHA-3 Standard&lt;br /&gt;
|hashlänge      = je nach Version 224, 256, 384, 512 oder frei wählbar&lt;br /&gt;
|struktur       = Sponge-Konstruktion&lt;br /&gt;
|runden         = SHA-3: 24&amp;lt;br /&amp;gt;Keccak: 12 bis 24 (abh. von Größe des Zustandsdatenblocks)&lt;br /&gt;
|kryptoanalyse  = &amp;#039;&amp;#039;second preimage attack&amp;#039;&amp;#039; von Daniel J. Bernstein auf 6 von 24 Runden von SHA3-512 mit 2&amp;lt;sup&amp;gt;506&amp;lt;/sup&amp;gt; Funktionsaufrufen und Platzkomplexität 2&amp;lt;sup&amp;gt;176&amp;lt;/sup&amp;gt; oder auf 8 Runden mit 2&amp;lt;sup&amp;gt;511,5&amp;lt;/sup&amp;gt; Aufrufen und 2&amp;lt;sup&amp;gt;508&amp;lt;/sup&amp;gt; Platz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SHA-3&amp;#039;&amp;#039;&amp;#039; ist eine [[kryptographische Hashfunktion]], die von Guido Bertoni, [[Joan Daemen]], Michaël Peeters und Gilles Van Assche unter dem Namen &amp;#039;&amp;#039;&amp;#039;Keccak&amp;#039;&amp;#039;&amp;#039; [{{IPA|kɛtʃak}}] entwickelt wurde. Keccak gewann 2012 den vom US-amerikanischen [[National Institute of Standards and Technology|NIST]] organisierten SHA-3-Wettbewerb ({{EnS|&amp;#039;&amp;#039;NIST hash function competition&amp;#039;&amp;#039;}}) und wurde am 5. August 2015 als SHA-3 standardisiert.&lt;br /&gt;
&lt;br /&gt;
Kryptographische Hashfunktionen werden zum Beispiel für das [[Digitale Signatur|digitale Signieren]] eingesetzt. SHA-3 ist die neueste, effizienteste und sicherste Hashfunktion der [[Secure Hash Algorithm|SHA-Reihe]].&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Im Jahr 2004 gab es mehrere Durchbrüche bei Angriffen gegen damals weit verbreitete Hash-Funktionen wie [[Message-Digest Algorithm 5|MD5]] (praktische Kollisionen) und [[Secure Hash Algorithm|SHA-1]] (theoretische Kollision mit großem Aufwand).&amp;lt;ref name=&amp;quot;NISTpolicy&amp;quot; /&amp;gt; Unter anderem wurden grundlegende Schwächen der [[Merkle-Damgård-Konstruktion]] gefunden, durch die der Rechenaufwand für bestimmte Angriffsszenarien vermindert wird (wenn auch nicht unbedingt in einem Maß, dass der Angriff praktisch durchführbar wäre). Zwar existiert die [[SHA-2]]-Familie, gegen die es bislang keine praxisrelevanten Angriffe gibt, aber diese Funktionen sind – ebenso wie ihre Vorläufer [[Message-Digest Algorithm 4|MD4]], MD5 und SHA-1 – Merkle-Damgård-Konstruktionen mit Davies-Meyer-Kompressionsfunktion. Man befürchtete, dass Angriffe auf diese Vorläufer zu Angriffen gegen SHA-2 modifiziert werden könnten. Wenn sich auch SHA-2 als gefährdet bzw. unsicher erweisen sollte, hätte man keine standardisierte und als sicher anerkannte kryptologische Hashfunktion zur Verfügung. Deshalb beschloss man, einen neuen Standard zu schaffen, der die aktuelle Forschung berücksichtigt und zukunftssicherer als SHA-2 ist.&lt;br /&gt;
&lt;br /&gt;
Ähnlich wie für die Auswahl der [[Blockverschlüsselung]] AES ([[Advanced Encryption Standard]]) veranstaltete das NIST von November 2007 bis Oktober 2012 einen Wettbewerb.&amp;lt;ref name=&amp;quot;contest&amp;quot; /&amp;gt; Von den eingereichten Hashfunktionen wurde gefordert, dass sie Nachrichten bis zu einer Obergrenze von mindestens &amp;lt;math&amp;gt;2^{64}-1&amp;lt;/math&amp;gt; [[Bit]] hashen und mindestens die vier Hash-Längen 224, 256, 384 und 512 Bit unterstützen. Die teilnehmenden Teams von Kryptografen reichten 64 Hashfunktionen ein, wovon 51 die Teilnahmebedingungen erfüllten und für Runde 1 akzeptiert wurden. Nach Analyse der Sicherheit und Performanz in einem offenen Bewertungsprozess, an dem Kryptologen aus aller Welt teilnahmen, wurden 14 Kandidaten für Runde zwei ausgewählt.&lt;br /&gt;
&lt;br /&gt;
Die Teilnehmer durften in jeder Runde des Wettbewerbs Veränderungen an ihren [[Algorithmus|Algorithmen]] vornehmen, um auf die Ergebnisse der Analysen zu reagieren. Im Fall von Keccak hat man die Zahl der Runden der Permutationsfunktion für eine größere Sicherheitsreserve von 18 auf 24 erhöht und die Länge der Nachrichtenblöcke für einige der Varianten vergrößert und dadurch die Effizienz verbessert.&lt;br /&gt;
&lt;br /&gt;
Im Dezember 2010 wurden die fünf Finalisten bekanntgegeben:&lt;br /&gt;
* [[BLAKE (Hashfunktion)|BLAKE]] ([[HAIFA (kryptologisches Verfahren)|HAIFA-Konstruktion]])&lt;br /&gt;
* [[Grøstl]] (wide-pipe [[Merkle-Damgård-Konstruktion|Merkle-Damgård]])&lt;br /&gt;
* [[JH (Hashfunktion)|JH]] (ähnlich einer Sponge-Konstruktion)&lt;br /&gt;
* Keccak (Sponge-Konstruktion)&lt;br /&gt;
* [[Skein]] (ähnlich HAIFA)&lt;br /&gt;
&lt;br /&gt;
Am 2. Oktober 2012 wurde Keccak zum Gewinner erklärt und wird seitdem als SHA-3 bezeichnet.&amp;lt;ref name=&amp;quot;ergebnis&amp;quot; /&amp;gt; SHA-3 weist eine hohe kryptografische Sicherheitsreserve auf und ist in [[Hardware]] auch effizient implementierbar. Vorteilhaft ist auch der einfache und elegante Aufbau, der die [[Kryptoanalyse]] erleichtert. Ein Kritikpunkt ist jedoch, dass die Performanz bei Software-Implementierung im Vergleich zu den anderen Finalisten eher gering ist.&amp;lt;ref&amp;gt;{{Internetquelle|autor=Mourad Gouicem|titel=Comparison of seven SHA-3 candidates software implementations on smart cards|url=https://eprint.iacr.org/2010/531.pdf|format=PDF|datum=2010-10|zugriff=2014-02-14}}&amp;lt;/ref&amp;gt; Es wurde der Vorwurf erhoben, das NIST würde sein Augenmerk zu sehr auf Implementierungen in Hardware legen.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
[[Datei:SpongeConstruction.svg|mini|300px|Darstellung der Sponge-Konstruktion]]&lt;br /&gt;
&lt;br /&gt;
Keccak ist eine sogenannte Sponge-Konstruktion. Ein Zustandsvektor von &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; [[Bit]] „absorbiert“ die Nachricht blockweise, die dazu in Blöcke von &amp;lt;math&amp;gt;r &amp;lt; b&amp;lt;/math&amp;gt; Bit geteilt wird. Mit jedem Block werden &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; Bit des Zustandsvektors verändert, wonach die Daten im Zustandsvektor durch eine Permutationsfunktion durchmischt werden. Diese ist eine [[Bijektive Funktion|bijektive]] Abbildung &amp;lt;math&amp;gt;f: \{0,1\}^b \rightarrow \{0,1\}^b&amp;lt;/math&amp;gt;, sie permutiert also die &amp;lt;math&amp;gt;2^b&amp;lt;/math&amp;gt; möglichen Zustände des Vektors auf [[Pseudozufall|pseudozufällige]] Weise.&amp;lt;ref name=&amp;quot;spec&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;reference&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Zustandsvektor besteht aus 25 Wörtern mit je &amp;lt;math&amp;gt;2^l&amp;lt;/math&amp;gt; [[Bit]] und wird mit 0 initialisiert. Der Wert &amp;lt;math&amp;gt;l \in \{0,1, \ldots , 6\}&amp;lt;/math&amp;gt; ist ein Parameter des Verfahrens. Der Zustandsvektor ist somit &amp;lt;math&amp;gt;b = 25 \cdot 2^l&amp;lt;/math&amp;gt; Bit lang. Der zweite Parameter ist die Bitlänge &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; des gewünschten Hash-Wertes. In den zum SHA-3-Wettbewerb eingereichten Varianten ist &amp;lt;math&amp;gt;l=6&amp;lt;/math&amp;gt; und damit &amp;lt;math&amp;gt;b=1600&amp;lt;/math&amp;gt;, und die Länge des Hash-Wertes beträgt &amp;lt;math&amp;gt;n = 224, 256, 384&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;512&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Nachricht wird durch [[Padding (Informatik)|Anfügen]] eines Endstückes auf ein Vielfaches von &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; Bit verlängert und dann in Blöcke der Länge &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; Bit geteilt, mit &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; als drittem Parameter des Verfahrens. Bei den Wettbewerbsvarianten ist jeweils &amp;lt;math&amp;gt;r=b-2n&amp;lt;/math&amp;gt;. Das angefügte Endstück besteht aus &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; bis &amp;lt;math&amp;gt;r-1&amp;lt;/math&amp;gt; Bits mit dem Wert 0, die von 1-Bits eingerahmt werden: &amp;lt;math&amp;gt;100\ldots 01&amp;lt;/math&amp;gt;. Das erste 1-Bit macht das Nachrichtenende kenntlich, damit Nachrichten, die sich nur durch unterschiedlich viele 0-Bits am Ende unterscheiden, nach der Erweiterung noch verschieden sind. Das 1-Bit am Ende sorgt dafür, dass sich die Varianten mit verschiedener Hash-Länge wie völlig unterschiedliche Hashfunktionen verhalten. Es markiert das Ende des letzten Blocks und ist jeweils an einer anderen Position, da die Nachrichtenblocklänge &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; von der Hash-Länge &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; abhängt. Es wirkt sich somit unterschiedlich auf den Hashprozess aus. Ansonsten könnten zwei (gleiche oder verschiedene) Nachrichten Hash-Werte ergeben, von denen einer ein Anfangsstück des anderen ist.&lt;br /&gt;
&lt;br /&gt;
Die Nachrichtenblöcke werden nun nacheinander in den Zustandsvektor eingearbeitet. &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; Bit des Zustandsvektors werden mit dem Nachrichtenblock bitweise [[Bitweiser Operator#XOR|XOR]]-verknüpft, und dann werden die &amp;lt;math&amp;gt;2^b&amp;lt;/math&amp;gt; möglichen Zustände des Zustandsvektors [[Permutation|permutiert]], was ähnlich wie in einer Blockverschlüsselung (mit konstantem Schlüssel) geschieht. Dazu wird &amp;lt;math&amp;gt;12 + 2 l&amp;lt;/math&amp;gt; mal (bei SHA-3 also &amp;lt;math&amp;gt;24&amp;lt;/math&amp;gt; mal) eine Rundenfunktion auf den Zustandsvektor angewandt. Diese ist nach den kryptologischen Prinzipien der [[Konfusion (Kryptologie)|Konfusion]] und der [[Diffusion (Kryptologie)|Diffusion]] entworfen und sorgt dafür, dass die Permutationsfunktion den Zustandsvektor mehrmals vollständig durchmischt und dabei chaotisch verändert.&lt;br /&gt;
&lt;br /&gt;
Nachdem der letzte Block eingearbeitet ist, werden &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bit des Zustandsvektors als Hash-Wert ausgelesen, falls &amp;lt;math&amp;gt;n \leq r&amp;lt;/math&amp;gt; ist. Anderenfalls werden die Bits des Hash-Wertes in mehreren Schritten entnommen, maximal &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; Bit in jedem Schritt, und dazwischen werden die Werte des Zustandsvektors wie oben permutiert. Der Gesamtvorgang im Überblick mit &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; als Ursprungsnachricht:&lt;br /&gt;
:&amp;lt;math&amp;gt;m \,\|\, 10^j1 = m_1 \,\|\, m_2 \,\|\, \cdots \,\|\, m_k; \quad |m_i| = r, \, j &amp;lt; r&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;s_0 = 0^b&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{array}{l} s_i = f(s_{i-1} \oplus (m_i \,\|\, 0^{b-r})); &amp;amp; i = 1,2,\cdots,k \\ s_i = f(s_{i-1}); &amp;amp; i = k+1,k+2,\cdots \end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;h = \operatorname{trunc}(s_k, r) \,\|\, \operatorname{trunc}(s_{k+1}, r) \,\|\, \operatorname{trunc}(s_{k+2}, r) \,\|\, \cdots&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;hash = \operatorname{trunc}(h, n)&amp;lt;/math&amp;gt;&lt;br /&gt;
Dabei steht &amp;lt;math&amp;gt;\|&amp;lt;/math&amp;gt; für die [[Wort (theoretische Informatik)#Konkatenation|Konkatenation]] (das Aneinanderfügen) von Bitketten, &amp;lt;math&amp;gt;0^b&amp;lt;/math&amp;gt; ist eine Bittkette aus b Bits mit dem Wert 0, und &amp;lt;math&amp;gt;\operatorname{trunc}(x,n)&amp;lt;/math&amp;gt; bezeichnet die ersten &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bit von &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Der Wert &amp;lt;math&amp;gt;c=b-r&amp;lt;/math&amp;gt; ist die sogenannte Kapazität, d.&amp;amp;nbsp;h. die Größe des Teils des Zustandsvektors, der beim XOR-Verknüpfen mit den Nachrichtenblöcken und bei der Entnahme des Hash-Wertes unberührt bleibt. Bei Sponge-Konstruktionen mit Hash-Länge &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bit beträgt die Sicherheit gegen [[Kollisionsangriff]]e &amp;lt;math&amp;gt;\min(n/2, c/2)&amp;lt;/math&amp;gt; Bit und gegen [[Preimage-Angriff|Urbild-Angriffe]] &amp;lt;math&amp;gt;\min(n, c/2)&amp;lt;/math&amp;gt; Bit, vorausgesetzt, die Permutation der Zustandswerte ist nicht von einer [[Zufällige Permutation|Zufallspermutation]] unterscheidbar.&amp;lt;ref name=&amp;quot;sponge&amp;quot; /&amp;gt; Um hinsichtlich der Sicherheit konservativ zu sein, haben die Entwickler die Kapazität auf die doppelte Länge des Hash-Wertes festgelegt(&amp;lt;math&amp;gt;c=2n&amp;lt;/math&amp;gt;), wodurch die für ein gegebenes &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; höchstmögliche Sicherheit gegen jeden Angriff erreicht wird (wegen des [[Geburtstagsparadoxon]]s kann die Sicherheit gegen Kollisionsangriffe nicht höher als &amp;lt;math&amp;gt;n/2&amp;lt;/math&amp;gt; Bit sein).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Permutationsfunktion&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Der Datenblock wird permutiert, indem &amp;lt;math&amp;gt;12+2l&amp;lt;/math&amp;gt; mal (abhängig vom Wortgrößenparameter &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;) eine Rundenfunktion darauf angewandt wird. Die Rundenfunktion besteht aus fünf aufeinanderfolgenden Operationen, die von den Erfindern mit [[griechisches Alphabet|griechischen Buchstaben]] bezeichnet wurden. Die Runden unterscheiden sich nur in der Konstante, die in der Iota-Operation mit einem Datenwort verknüpft wird.&lt;br /&gt;
&lt;br /&gt;
Die Wörter des Zustandsvektors werden mit &amp;lt;math&amp;gt;a_{i,j}&amp;lt;/math&amp;gt; bezeichnet, mit &amp;lt;math&amp;gt;i,j \in \{0,1,2,3,4\}&amp;lt;/math&amp;gt;, und &amp;lt;math&amp;gt;\overline a_{i,j}&amp;lt;/math&amp;gt; ist jeweils der neue Zustandsvektor nach jeder Operation. Alle Indizes werden [[Division mit Rest#Modulo|modulo]] 5 genommen (&amp;lt;math&amp;gt;a_{2,-1}&amp;lt;/math&amp;gt; ist &amp;lt;math&amp;gt;a_{2,4}&amp;lt;/math&amp;gt;). &amp;lt;math&amp;gt;\oplus&amp;lt;/math&amp;gt; bedeutet das bitweise XOR, &amp;lt;math&amp;gt;\neg&amp;lt;/math&amp;gt; die bitweise [[Bitweiser Operator#NICHT|Negation]], &amp;lt;math&amp;gt;\&amp;amp;&amp;lt;/math&amp;gt; die bitweise [[Bitweiser Operator#UND|UND-Verknüpfung]] und a &amp;lt;math&amp;gt;\lll w&amp;lt;/math&amp;gt; die [[Bitweiser Operator#Zyklische Verschiebung|Bitrotation]] von &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; um &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; Bitpositionen zum höherwertigen Ende hin.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; (Theta): lineare Mischoperation: [[Paritätsbit]]s jeder 5-Wort-Spalte mit den Wörtern der benachbarten Spalten XOR-verknüpfen&lt;br /&gt;
::&amp;lt;math&amp;gt;p_j \, \leftarrow \, a_{0,j} \oplus a_{1,j} \oplus a_{2,j} \oplus a_{3,j} \oplus a_{4,j}&amp;lt;/math&amp;gt;&lt;br /&gt;
::&amp;lt;math&amp;gt;\overline a_{i,j} \, \leftarrow \, a_{i,j} \oplus p_{j-1} \oplus (p_{j+1} \lll 1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; (Rho): Wörter des Zustandsvektors rotieren&lt;br /&gt;
::&amp;lt;math&amp;gt;\overline a_{i,j} \, \leftarrow \, a_{i,j} \lll (w_{i,j} \, \bmod \, 2^l); \; w_{0,0} = 0; \; w_{i,j} = \frac{(t+1)(t+2)}{2}; \; t \in \{0,\dots,23\};&amp;lt;/math&amp;gt;&lt;br /&gt;
::die Indizes &amp;lt;math&amp;gt;i,j&amp;lt;/math&amp;gt; ergeben sich aus der [[Matrix (Mathematik)|Matrizengleichung]] &amp;lt;math&amp;gt;\binom{i}{j}=\begin{pmatrix} 3 &amp;amp; 2 \\ 1 &amp;amp; 0 \end{pmatrix}^t \cdot \binom{0}{1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; (Pi): Wörter des Zustandsvektors permutieren&lt;br /&gt;
::&amp;lt;math&amp;gt;\overline a_{3i+2j,i} \, \leftarrow \, a_{i,j}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\chi&amp;lt;/math&amp;gt; (Chi): nichtlineare Operation&lt;br /&gt;
::&amp;lt;math&amp;gt;\overline a_{i,j} \, \leftarrow \, a_{i,j} \oplus (\neg a_{i,j+1} \; \&amp;amp; \; a_{i,j+2})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\iota&amp;lt;/math&amp;gt; (Iota): XOR-Verknüpfen des Worts &amp;lt;math&amp;gt;a_{0,0}&amp;lt;/math&amp;gt; mit einer rundenabhängigen Konstanten&lt;br /&gt;
::&amp;lt;math&amp;gt;\overline a_{0,0} \, \leftarrow \, a_{0,0} \oplus C_r; \; r = 0,1,\dots , 11+2l&amp;lt;/math&amp;gt;&lt;br /&gt;
::Das Bit an Position &amp;lt;math&amp;gt;2^m-1&amp;lt;/math&amp;gt; (mit &amp;lt;math&amp;gt;0 \le m &amp;lt; 7&amp;lt;/math&amp;gt;) in &amp;lt;math&amp;gt;C_r&amp;lt;/math&amp;gt; wird durch Bit &amp;lt;math&amp;gt;7r+m&amp;lt;/math&amp;gt; eines [[Linear rückgekoppeltes Schieberegister|LFSR]] mit dem erzeugenden Polynom &amp;lt;math&amp;gt;x^8+x^6+x^5+x^4+1&amp;lt;/math&amp;gt; gegeben. Die übrigen Bits in den &amp;lt;math&amp;gt;C_r&amp;lt;/math&amp;gt; sind 0.&lt;br /&gt;
&lt;br /&gt;
Die Permutationsfunktion als [[C (Programmiersprache)|C]]-Code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void keccak_p(uint64_t *a, int rounds = 24) {&lt;br /&gt;
	//a_{i,j} entspricht a[5*i+j]&lt;br /&gt;
	uint64_t v[5];&lt;br /&gt;
	uint64_t lfsr = 1;&lt;br /&gt;
	for (int r=0 ; r&amp;lt;rounds ; ++r) {&lt;br /&gt;
		// Theta:&lt;br /&gt;
		for (int j=0 ; j&amp;lt;5 ; ++j) {&lt;br /&gt;
			v[j] = 0;&lt;br /&gt;
			for (int i=0 ; i&amp;lt;5 ; ++i) v[j] ^= a[5*i+j];&lt;br /&gt;
		}&lt;br /&gt;
		for (int j=0 ; j&amp;lt;5 ; ++j) {&lt;br /&gt;
			uint64_t h = v[(j+1) % 5];&lt;br /&gt;
			h = v[(j+4) % 5] ^ (h &amp;lt;&amp;lt; 1 | h &amp;gt;&amp;gt; 63);&lt;br /&gt;
			for (int i=0 ; i&amp;lt;5 ; ++i) a[5*i+j] ^= h;&lt;br /&gt;
		}&lt;br /&gt;
		// Rho und Pi:&lt;br /&gt;
		int i = 0, j = 1;&lt;br /&gt;
		v[0] = a[1];&lt;br /&gt;
		for (int t=1 ; t&amp;lt;25 ; ++t) {&lt;br /&gt;
			int x = i;&lt;br /&gt;
			i = (3*i + 2*j) % 5;&lt;br /&gt;
			j = x;&lt;br /&gt;
			x = 5*i + j;&lt;br /&gt;
			uint64_t h = v[0];&lt;br /&gt;
			v[0] = a[x];&lt;br /&gt;
			int w = t*(t+1)/2 % 64;&lt;br /&gt;
			a[x] = h &amp;lt;&amp;lt; w | h &amp;gt;&amp;gt; (64-w);&lt;br /&gt;
		}&lt;br /&gt;
		// Chi:&lt;br /&gt;
		for (int i=0 ; i&amp;lt;25 ; i += 5) {&lt;br /&gt;
			for (int j=0 ; j&amp;lt;5 ; ++j)&lt;br /&gt;
				v[j] = a[i+j];&lt;br /&gt;
			for (int j=0 ; j&amp;lt;5 ; ++j)&lt;br /&gt;
				a[i+j] ^= ~v[(j+1) % 5] &amp;amp; v[(j+2) % 5];&lt;br /&gt;
		}&lt;br /&gt;
		// Iota:&lt;br /&gt;
		for (int w=0 ; w &amp;lt; 64 ; w = 2*w+1) {&lt;br /&gt;
			a[0] ^= (lfsr &amp;amp; 1) &amp;lt;&amp;lt; w;&lt;br /&gt;
			lfsr &amp;lt;&amp;lt;= 1;&lt;br /&gt;
			if (lfsr &amp;amp; 0x100) lfsr ^= 0x171;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beim Übernehmen eines Nachrichtenblocks werden die ersten 64 Bit aufsteigend mit &amp;lt;math&amp;gt;a_{0,0}&amp;lt;/math&amp;gt; XOR-verknüpft, das erste Bit also mit dem niederwertigsten in &amp;lt;math&amp;gt;a_{0,0}&amp;lt;/math&amp;gt;. Danach werden ebenso die folgenden Nachrichtenbits in &amp;lt;math&amp;gt;a_{0,1}, a_{0,2}, \cdots , a_{1,0}, \cdots&amp;lt;/math&amp;gt; übernommen. Der Hashwert wird am Ende ebenfalls &amp;lt;math&amp;gt;a_{0,0}, a_{0,1}, \cdots&amp;lt;/math&amp;gt; entnommen.&lt;br /&gt;
&lt;br /&gt;
== Standardisierung ==&lt;br /&gt;
Der NIST-Mitarbeiter John Kelsey schlug im August 2013 auf dem „Workshop on Cryptographic Hardware and Embedded Systems 2013“ (CHES 2013) vor, nur die zwei Sicherheitsstufen 128 Bit und 256 Bit zu standardisieren.&amp;lt;ref name=&amp;quot;kelsey2013&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;RSA2013&amp;quot; /&amp;gt; Die Kapazität &amp;#039;&amp;#039;c&amp;#039;&amp;#039; sollte für die kleineren Varianten SHA3-224 und SHA3-256 auf 256&amp;amp;nbsp;Bit und für die beiden größeren auf 512&amp;amp;nbsp;Bit vermindert werden. Das verbessert die Ausführungsgeschwindigkeit, weil die Nachrichtenblocklänge &amp;#039;&amp;#039;r&amp;#039;&amp;#039; entsprechend größer und die Zahl der zu verarbeitenden Nachrichtenblöcke kleiner wird. Ein Urbild-Angriff wäre damit immer noch mindestens genauso schwierig wie ein Kollisionsangriff, auf welchen die Änderung keine Auswirkung hätte.&lt;br /&gt;
&lt;br /&gt;
Einige Forscher kritisierten diese Verminderung der Sicherheit und bemängelten das Verfahren, den Gewinner des Wettbewerbs nachträglich zu ändern, so dass es sich dabei nicht mehr um den ausführlich untersuchten, ursprünglichen Algorithmus handeln würde.&amp;lt;ref&amp;gt;{{Internetquelle|autor=Fabian Scherschel|titel=Kryptographie: NIST will angeblich Sicherheit von SHA-3 schmälern|url=https://www.heise.de/newsticker/meldung/Kryptographie-NIST-will-angeblich-Sicherheit-von-SHA-3-schmaelern-1969456.html |werk=heise online|datum=2013-09-30|zugriff=2013-09-30}}&amp;lt;/ref&amp;gt; Die Autoren von Keccak verteidigten andererseits die vorgeschlagenen Änderungen.&amp;lt;ref name=&amp;quot;defense&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Reaktion auf die Kritik entschied sich NIST bei den vier Varianten SHA3-224 bis SHA3-512 gegen die Reduzierung der Kapazität.&amp;lt;ref name=&amp;quot;kelseymail&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;fips202draft&amp;quot; /&amp;gt; Diese ist letztlich auch unnötig, da auch die Varianten SHAKE128 und SHAKE256 mit 256 bzw. 512 Bit Kapazität standardisiert wurden. Bis auf die vom Nutzer frei wählbare Hash-Länge entsprechen sie den vorgeschlagenen kapazitätsreduzierten Versionen und bieten somit die gleiche Effizienz.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Standard&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im August 2015 standardisierte das NIST folgende Versionen von SHA3&amp;lt;ref&amp;gt;https://www.nist.gov/itl/csd/201508_sha3.cfm&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;standard&amp;quot; /&amp;gt; (alle Angaben in Bit):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
! Name !! Hash-Länge&amp;lt;br /&amp;gt;n !! Nachrichten-&amp;lt;br /&amp;gt;blocklänge r !! Kapazität&amp;lt;br /&amp;gt;c=1600-r !! Sicherheit&amp;lt;br /&amp;gt;(Kollision) !! Sicherheit&amp;lt;br /&amp;gt;(Urbild) !! Padding-Schema&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
| SHA3-224 || 224 || 1152 || 448 || 112 || 224 || rowspan=&amp;quot;4&amp;quot;| 0110*1&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
| SHA3-256 || 256 || 1088 || 512 || 128 || 256&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
| SHA3-384 || 384 || 832 || 768 || 192 || 384&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
| SHA3-512 || 512 || 576 || 1024 || 256 || 512&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
| SHAKE128 || variabel || 1344 || 256 || min(n/2, 128) || min(n, 128) || rowspan=&amp;quot;2&amp;quot;|  111110*1&lt;br /&gt;
|- style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
| SHAKE256 || variabel || 1088 || 512 || min(n/2, 256) || min(n, 256)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Varianten SHAKE128 und SHAKE256 sind sogenannte &amp;#039;&amp;#039;extendable output functions&amp;#039;&amp;#039; (XOFs; Funktionen mit erweiterbarer Ausgabe). Die Länge des Hashwertes ist nicht von vornherein festgelegt, sondern es können nach dem Einarbeiten der Nachricht in den Datenblock beliebig viele Hash-Daten entnommen werden. Nach immer 1344 bzw. 1088 entnommenen Bits wird der Datenblock erneut permutiert, wie oben beschrieben. Diese Varianten arbeiten als [[Kryptographisch sicherer Zufallszahlengenerator|kryptographisch sichere Pseudozufallszahlengeneratoren]], mit der gehashten Nachricht als Saat.&lt;br /&gt;
&lt;br /&gt;
Damit die SHA-3 und die SHAKE-Varianten unterschiedlich hashen, hat man das Schema, mit dem die Nachrichten erweitert werden, geändert. Bei SHA3 wird die Bitfolge 011 angehängt und bei SHAKE hingegen 11111, bevor mit 0-Bits aufgefüllt und am Ende noch ein 1-Bit angefügt wird. Dadurch erreicht man eine Domänentrennung: Nach der Erweiterung kann man der Nachricht ansehen, auf welche der beiden Weisen sie erweitert wurde. Zwei Nachrichten, die auf verschiedene Weise erweitert werden, unterscheiden sich danach also in jedem Fall. Bei der Wahl dieser Padding-Methoden hat man auch an eine spätere Standardisierung von weiteren Hashverfahren auf Keccak-Basis gedacht (z.&amp;amp;nbsp;B. [[Hash-Baum|Baum-Hashverfahren]]).&lt;br /&gt;
&lt;br /&gt;
Auf die Effizienz hat diese Padding-Änderung keine Auswirkung, wenn die Nachricht aus ganzen Bytes besteht, was in der Praxis fast immer der Fall ist. Auch die Nachrichtenblocklänge &amp;#039;&amp;#039;r&amp;#039;&amp;#039; ist ein Vielfaches von acht, und somit auch die Zahl der im letzten Block freien Bits. Entweder muss für die Paddingbits ohnehin ein weiterer Nachrichtenblock angefügt werden, oder im letzten Block ist mindestens ein Byte frei, das die Paddingbits vollständig aufnehmen kann. Im Vergleich zum originalen Keccak-Padding erhöht sich die Zahl der Nachrichtenblöcke also in keinem Fall.&lt;br /&gt;
&lt;br /&gt;
Das geänderte Padding gegenüber dem originalen Keccak-Algorithmus bedeutet auch, dass Keccak und SHA-3 verschiedene Hashfunktionen sind, und diese Bezeichnungen sollten nicht synonym verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Im Dezember 2016 gab das NIST ein Dokument heraus, in dem weitere von SHA-3 abgeleitete Hashverfahren beschrieben werden.&amp;lt;ref name=&amp;quot;SP800-185&amp;quot; /&amp;gt; Diese gibt es jeweils in zwei Varianten, mit 256&amp;amp;nbsp;Bit und 512&amp;amp;nbsp;Bit Kapazität:&lt;br /&gt;
&lt;br /&gt;
* cSHAKE: ermöglicht explizite Domänentrennung durch einen zusätzlich eingegebenen String&lt;br /&gt;
* KMAC: Variante für [[HMAC|Keyed-Hash Message Authentication]]&lt;br /&gt;
* KMACXOF: XOF-Version von KMAC mit beliebig erweiterbarer Hash-Ausgabe (entsprechend SHAKE)&lt;br /&gt;
* TupleHash und TupleHashXOF: hashen Tupel mit beliebig vielen Strings, wobei verschiedene Tupel unterschiedlich gehasht werden, z.&amp;amp;nbsp;B. auch (&amp;quot;ab&amp;quot;,&amp;amp;nbsp;&amp;quot;c&amp;quot;) und (&amp;quot;a&amp;quot;,&amp;amp;nbsp;&amp;quot;bc&amp;quot;) und (&amp;quot;a&amp;quot;,&amp;amp;nbsp;&amp;quot;bc&amp;quot;,&amp;amp;nbsp;&amp;quot;&amp;quot;)&lt;br /&gt;
* ParallelHash und ParallelHashXOF: sind dafür ausgelegt, die parallele Rechenfähigkeit moderner CPUs besser zu unterstützen&lt;br /&gt;
&lt;br /&gt;
== Weitere Varianten ==&lt;br /&gt;
Die Entwickler von Keccak haben außerdem zwei Baum-Hashverfahren namens &amp;#039;&amp;#039;KangarooTwelve&amp;#039;&amp;#039; und &amp;#039;&amp;#039;MarsupilamiFourteen&amp;#039;&amp;#039; vorgestellt, die mit einer auf 12 bzw. 14 Runden reduzierten Permutationsfunktion arbeiten, gegenüber 24 Runden bei den übrigen Varianten.&amp;lt;ref name=&amp;quot;kangaroo12&amp;quot; /&amp;gt; Damit nutzen sie die große Sicherheitsreserve von Keccak aus, um die Effizienz zu verbessern.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
SHA-3 besitzt eine sehr hohe Sicherheitsreserve: Die beste bekannte Kryptoanalyse kann  eine auf 8 (von 24) Runden reduzierte Version von SHA3-512 brechen und benötigt dafür den praktisch nicht bereitstellbaren Aufwand von &amp;lt;math&amp;gt;2^{511,5}&amp;lt;/math&amp;gt; Funktionsaufrufen und einem Speicherplatz von &amp;lt;math&amp;gt;2^{508}&amp;lt;/math&amp;gt;. Damit ist sie nur um den Faktor 1,4 effizienter als ein [[Brute-Force-Methode#Kryptologie|Brute-Force-Angriff]].&amp;lt;ref name=&amp;quot;analyse&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist möglich, die Zustandspermutation mit der vollen Zahl von 24 Runden von einer Zufallspermutation zu unterscheiden, was aber etwa &amp;lt;math&amp;gt;2^{1575}&amp;lt;/math&amp;gt; Funktionsaufrufe erfordert.&amp;lt;ref name=&amp;quot;submission&amp;quot; /&amp;gt; Ein Angriff auf SHA-3 selbst ergibt sich daraus nicht.&lt;br /&gt;
&lt;br /&gt;
Weil von den 1600 Zustandsbits immer nur ein Teil (um die Kapazität vermindert) ausgegeben wird, ist SHA-3 immun gegen einen Erweiterungsangriff, bei dem man den Hashwert &amp;lt;math&amp;gt;h(N \, \| \, x)&amp;lt;/math&amp;gt; einer mit &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; erweiterten unbekannten Nachricht &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; unter Kenntnis von deren Hashwert &amp;lt;math&amp;gt;h(N)&amp;lt;/math&amp;gt; bestimmt.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://keccak.team/index.html Website von Keccak]&lt;br /&gt;
* [https://ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo.html The SHA-3 Zoo]&lt;br /&gt;
* [https://csrc.nist.gov/projects/hash-functions/sha-3-project SHA-3 at NIST]&lt;br /&gt;
* [https://keccak.team/specifications.html Spezifikationen auf der Keccak-Website]&lt;br /&gt;
* [https://infsec.de/sha3-256-in-excel/ SHA-3 Demonstrator] in Excel (ohne Makros) von [[Tim Wambach]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references responsive&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;analyse&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| autor=Daniel J. Bernstein&lt;br /&gt;
| url=https://ehash.iaik.tugraz.at/uploads/6/65/NIST-mailing-list_Bernstein-Daemen.txt&lt;br /&gt;
| sprache=en&lt;br /&gt;
| titel=Second preimages for 6 (7? (8??)) rounds of Keccak?&lt;br /&gt;
| datum=2010&lt;br /&gt;
| abruf=2020-07-15&lt;br /&gt;
| werk=NIST mailing list&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;spec&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| autor=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche&lt;br /&gt;
| url=http://keccak.noekeon.org/specs_summary.html&lt;br /&gt;
| sprache=en&lt;br /&gt;
| titel=The Keccak sponge function family&lt;br /&gt;
| datum=2011-01-27&lt;br /&gt;
| zugriff=2012-10-03&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;reference&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| titel=The Keccak reference&lt;br /&gt;
| url=https://keccak.team/files/Keccak-reference-3.0.pdf&lt;br /&gt;
| autor=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche&lt;br /&gt;
| sprache=en&lt;br /&gt;
| datum=2011-01-14&lt;br /&gt;
| abruf=2020-08-02&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;contest&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| hrsg=[[National Institute of Standards and Technology|NIST]]&lt;br /&gt;
| url=https://csrc.nist.gov/projects/hash-functions/sha-3-project&lt;br /&gt;
| sprache=en&lt;br /&gt;
| titel=SHA-3 Project&lt;br /&gt;
| abruf=2020-08-10&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;ergebnis&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| hrsg=[[National Institute of Standards and Technology|NIST]]&lt;br /&gt;
| url=https://www.nist.gov/itl/csd/sha-100212.cfm&lt;br /&gt;
| sprache=en&lt;br /&gt;
| titel=NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition&lt;br /&gt;
| datum=2012-10-02&lt;br /&gt;
| zugriff=2012-10-03&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;NISTpolicy&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
| hrsg=[[National Institute of Standards and Technology|NIST]]&lt;br /&gt;
| url=http://csrc.nist.gov/groups/ST/hash/policy.html&lt;br /&gt;
| sprache=en&lt;br /&gt;
| titel=NIST&amp;#039;s Policy on Hash Functions&lt;br /&gt;
| datum=2012-09-28&lt;br /&gt;
| zugriff=2013-03-28&lt;br /&gt;
| archiv-url=https://web.archive.org/web/20110609064344/http://csrc.nist.gov/groups/ST/hash/policy.html&lt;br /&gt;
| archiv-datum=2011-06-09&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;submission&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| url=https://keccak.team/files/Keccak-submission-3.pdf&lt;br /&gt;
| titel=The Keccak SHA-3 submission&lt;br /&gt;
| sprache=en&lt;br /&gt;
| autor=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles van Assche&lt;br /&gt;
| datum=2011-01-14&lt;br /&gt;
| abruf=2020-07-15&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;sponge&amp;quot;&amp;gt;{{Internetquelle&lt;br /&gt;
| url=https://keccak.team/files/CSF-0.1.pdf&lt;br /&gt;
| titel=Cryptographic sponge functions&lt;br /&gt;
| autor=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles van Assche&lt;br /&gt;
| sprache=en&lt;br /&gt;
| datum=2011-01-14&lt;br /&gt;
| abruf=2020-08-26&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;kelsey2013&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
|autor=Jon Kelsey&lt;br /&gt;
|titel=SHA3 Past, Present, and Future&lt;br /&gt;
&amp;lt;!-- |url=https://docs.google.com/file/d/0BzRYQSHuuMYOQXdHWkRiZXlURVE/edit --&amp;gt;&lt;br /&gt;
| url=https://csrc.nist.gov/CSRC/media/Projects/Hash-Functions/documents/kelsey_ches2013_presentation.pdf&lt;br /&gt;
|zugriff=2013-10-06&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RSA2013&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
| url=https://csrc.nist.gov/csrc/media/projects/hash-functions/documents/burr_dimacs2013_presentation.pdf&lt;br /&gt;
| titel=SHA3, Where we’ve been, Where we&amp;#039;re going&lt;br /&gt;
| autor=John Kelsey, Bill Burr&lt;br /&gt;
| datum=2013-05-01&lt;br /&gt;
| abruf=2020-07-18&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;defense&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
| autor=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche&lt;br /&gt;
| url=http://keccak.noekeon.org/yes_this_is_keccak.html&lt;br /&gt;
| titel=Yes, this is Keccak!&lt;br /&gt;
| datum=2013-10-04&lt;br /&gt;
| abruf=2020-07-18&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;kelseymail&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
|titel=Moving Forward with SHA-3&lt;br /&gt;
|url=https://csrc.nist.gov/groups/ST/hash/sha-3/documents/kelsey-email-moving-forward-110113.pdf&lt;br /&gt;
| autor=John Kelsey&lt;br /&gt;
| datum=2013-11-01&lt;br /&gt;
| abruf=2020-07-18&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;fips202draft&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=https://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf&lt;br /&gt;
 |titel=SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions&lt;br /&gt;
| titelerg=DRAFT FIPS PUB 202 &lt;br /&gt;
 |hrsg=NIST&lt;br /&gt;
 |autor=NIST Computer Security Division (CSD)&lt;br /&gt;
 |sprache=en&lt;br /&gt;
| datum=2014-05&lt;br /&gt;
| abruf=2020-07-18&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf&lt;br /&gt;
 |titel=SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions&lt;br /&gt;
| titelerg=FIPS PUB 202 &lt;br /&gt;
 |hrsg=National Institute of Standards and Technology (NIST)&lt;br /&gt;
 |datum=2015-08&lt;br /&gt;
 |abruf=2018-01-08&lt;br /&gt;
 |sprache=en&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;SP800-185&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
| titel=SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash&lt;br /&gt;
| titelerg=NIST Special Publication 800-185&lt;br /&gt;
| autor=John Kelsey, Shu-jen Chang, Ray Perlner&lt;br /&gt;
| hrsg=NIST&lt;br /&gt;
| url=https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf&lt;br /&gt;
| datum=2016-10&lt;br /&gt;
| sprache=en&lt;br /&gt;
| abruf=2020-07-15&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;kangaroo12&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
| titel=KangarooTwelve: fast hashing based on Keccak-p&lt;br /&gt;
| autor=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche, Ronny Van Keer, Benoit Viguier&lt;br /&gt;
| url=https://eprint.iacr.org/2016/770.pdf&lt;br /&gt;
| sprache=en&lt;br /&gt;
| abruf=2020-07-16&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Kryptographische Hashfunktion]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>