<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Fugue_%28hash_function%29</id>
	<title>Fugue (hash function) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Fugue_%28hash_function%29"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Fugue_(hash_function)&amp;action=history"/>
	<updated>2026-05-16T14:24:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=Fugue_(hash_function)&amp;diff=2394&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;'''Fugue''' is a cryptographic hash function submitted by IBM to the NIST hash function competition. It was designed by Shai Halevi, William E. Hall, and Charanjit...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Fugue_(hash_function)&amp;diff=2394&amp;oldid=prev"/>
		<updated>2019-03-21T03:35:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Fugue&amp;#039;&amp;#039;&amp;#039; is a &lt;a href=&quot;/Cryptographic_hash_function&quot; title=&quot;Cryptographic hash function&quot;&gt;cryptographic hash function&lt;/a&gt; submitted by &lt;a href=&quot;/IBM&quot; title=&quot;IBM&quot;&gt;IBM&lt;/a&gt; to the &lt;a href=&quot;/NIST_hash_function_competition&quot; title=&quot;NIST hash function competition&quot;&gt;NIST hash function competition&lt;/a&gt;. It was designed by Shai Halevi, William E. Hall, and Charanjit...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Fugue''' is a [[cryptographic hash function]] submitted by [[IBM]] to the [[NIST hash function competition]]. It was designed by Shai Halevi, William E. Hall, and Charanjit S. Jutla. Fugue takes an arbitrary-length message and compresses it down to a fixed bit-length (either 224, 256, 384 or 512 bits). The hash functions for the different output lengths are called Fugue-224, Fugue-256, Fugue-384 and Fugue-512. The authors also describe a parametrized version of Fugue. A weak version of Fugue-256 is also described using this parameterized version.&lt;br /&gt;
&lt;br /&gt;
The selling point of Fugue is the authors' claimed proof that a wide range of current attack strategies based on [[differential cryptanalysis]] cannot be efficient against Fugue. It is also claimed to be competitive with the NIST hash function [[SHA hash functions|SHA-256]] in both software and hardware efficiency, achieving up to 36.2 [[cycles per byte]] on an Intel Family 6 Model 15 Xeon 5150, and up to 25 [[cycles per byte]] on an Intel Core 2 processor T7700. On 45&amp;amp;nbsp;nm Core2 processors, e.g. T9400, Fugue-256 runs at 16 cycles per byte using SSE4.1 instructions. On the newer Westmere architectures (32&amp;amp;nbsp;nm), e.g. Core i5, Fugue-256 runs at 14 cycles/byte.&lt;br /&gt;
&lt;br /&gt;
Fugue's design starts from the hash function [[Grindahl]], and like Grindahl uses the [[S-box]] from [[Advanced Encryption Standard|AES]], but it replaces the 4×4 column mixing matrix with a 16×16 &amp;quot;super-mix&amp;quot; operation which greatly improves diffusion. The &amp;quot;super-mix&amp;quot; operation is, however, only slightly more computationally expensive to implement than the AES mixing strategy.&lt;br /&gt;
&lt;br /&gt;
== SuperMix ==&lt;br /&gt;
&lt;br /&gt;
The 224 and 256 bit variants of Fugue work with a state which can be represented in 4 by 30 matrix of unsigned bytes, whereas the 384 and 512 bit variants work with a 4 by 36 byte matrix. Operations can be performed in-place on this state.&lt;br /&gt;
&lt;br /&gt;
The core of the algorithm, known as the &amp;quot;SuperMix transformation&amp;quot;, takes 4×4 matrix as input and returns a new 4x4 matrix. The input to SuperMix is simply the first four columns of the current 30-column state and the output is used to replace this same state area (i.e. SuperMix affects only the 4x4 matrix at the head of the state).&lt;br /&gt;
&lt;br /&gt;
The SuperMix function can be defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\text{SuperMix}(U) = \text{ROL} \left( M \cdot U +&lt;br /&gt;
\begin{pmatrix}&lt;br /&gt;
\sum_{j \ne 0} U_j^i &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; \sum_{j \ne 1} U_j^i &amp;amp; 0 &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; \sum_{j \ne 2} U_j^i &amp;amp; 0\\&lt;br /&gt;
0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \sum_{j \ne 3} U_j^i&lt;br /&gt;
\end{pmatrix} \cdot M^T \right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
M = \begin{pmatrix}&lt;br /&gt;
1 &amp;amp; 4 &amp;amp; 7 &amp;amp; 1\\&lt;br /&gt;
1 &amp;amp; 1 &amp;amp; 4 &amp;amp; 7\\&lt;br /&gt;
7 &amp;amp; 1 &amp;amp; 1 &amp;amp; 4\\&lt;br /&gt;
4 &amp;amp; 7 &amp;amp; 1 &amp;amp; 1&lt;br /&gt;
\end{pmatrix}&lt;br /&gt;
&amp;lt;/math&amp;gt;;&lt;br /&gt;
:&amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; is a 4x4 matrix of bytes (i.e. the matrix after the S-Box substitution of the input); and&lt;br /&gt;
:&amp;lt;math&amp;gt;M^T&amp;lt;/math&amp;gt; is the transpose of M.&lt;br /&gt;
&lt;br /&gt;
The transformation &amp;lt;math&amp;gt;ROL&amp;lt;/math&amp;gt; takes a 4x4 matrix, and rotates the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th row to the left by &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; bytes, i.e.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\text{ROL}(W)_j^i = W_{j-i \pmod 4}^{i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fugue 2.0 ==&lt;br /&gt;
Fugue 2.0 is a tweak of original Fugue, which runs at about twice the speed of Fugue for 256-bit output. The designers claim advanced proofs of resistance to differential collision attacks for this improved version.&lt;br /&gt;
A complete specification can be found at the link below.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
*[http://researcher.ibm.com/view_project.php?id=3253 The Hash Function Fugue]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://wikipedia.org/ http://wikipedia.org/]&lt;br /&gt;
&lt;br /&gt;
[[Category:Cryptography]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>