<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Localization_of_a_category</id>
	<title>Localization of a category - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Localization_of_a_category"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Localization_of_a_category&amp;action=history"/>
	<updated>2026-04-10T18:32:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Localization_of_a_category&amp;diff=292134&amp;oldid=prev</id>
		<title>en&gt;Yobot: /* Localization of categories */WP:CHECKWIKI error fixes using AWB (10093)</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Localization_of_a_category&amp;diff=292134&amp;oldid=prev"/>
		<updated>2014-05-05T12:09:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Localization of categories: &lt;/span&gt;&lt;a href=&quot;/index.php?title=WP:CHECKWIKI&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:CHECKWIKI (page does not exist)&quot;&gt;WP:CHECKWIKI&lt;/a&gt; error fixes using &lt;a href=&quot;/index.php?title=Testwiki:AWB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Testwiki:AWB (page does not exist)&quot;&gt;AWB&lt;/a&gt; (10093)&lt;/p&gt;
&lt;a href=&quot;https://en.formulasearchengine.com/index.php?title=Localization_of_a_category&amp;amp;diff=292134&amp;amp;oldid=5822&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>en&gt;Yobot</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Localization_of_a_category&amp;diff=5822&amp;oldid=prev</id>
		<title>en&gt;D.Lazard: /* Introduction and motivation */ Formatting: Adding \quad twice + more common notation for the category of modules</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Localization_of_a_category&amp;diff=5822&amp;oldid=prev"/>
		<updated>2013-12-15T18:58:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Introduction and motivation: &lt;/span&gt; Formatting: Adding \quad twice + more common notation for the category of modules&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox block cipher&lt;br /&gt;
| name          = KASUMI&lt;br /&gt;
| image         = &lt;br /&gt;
| caption       = &lt;br /&gt;
| designers     = [[Mitsubishi Electric]]&lt;br /&gt;
| publish date  = &lt;br /&gt;
| derived from  = [[MISTY1]]&lt;br /&gt;
| derived to    = &lt;br /&gt;
| related to    =&lt;br /&gt;
| certification = &lt;br /&gt;
| key size      = 128 bits&lt;br /&gt;
| block size    = 64 bits&lt;br /&gt;
| structure     = [[Feistel network]]&lt;br /&gt;
| rounds        = 8&lt;br /&gt;
| cryptanalysis = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;KASUMI&amp;#039;&amp;#039;&amp;#039; is a [[block cipher]] used in [[UMTS]], [[GSM]], and [[GPRS]] [[mobile phone|mobile communications]] systems.&lt;br /&gt;
In UMTS, KASUMI is used in the [[confidentiality]] (&amp;#039;&amp;#039;f8&amp;#039;&amp;#039;) and [[Data integrity|integrity]] algorithms (&amp;#039;&amp;#039;f9&amp;#039;&amp;#039;) with names UEA1 and UIA1, respectively.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  | publisher=3GPP&lt;br /&gt;
  | title=Draft Report of SA3 #38&lt;br /&gt;
  | url=http://www.3gpp.org/ftp/tsg_sa/TSG_SA/TSGS_28/Docs/pdf/SP-050236.pdf&lt;br /&gt;
  | year=2005&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
In GSM, KASUMI is used in the &amp;#039;&amp;#039;&amp;#039;A5/3&amp;#039;&amp;#039;&amp;#039; key stream generator and in GPRS in the &amp;#039;&amp;#039;&amp;#039;GEA3&amp;#039;&amp;#039;&amp;#039; key stream generator.&lt;br /&gt;
&lt;br /&gt;
KASUMI was designed for [[3GPP]] to be used in UMTS security system by the [[Security Algorithms Group of Experts]]&lt;br /&gt;
(SAGE), a part of the European standards body [[ETSI]].&amp;lt;ref name=&amp;quot;sage_report&amp;quot;&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
  | publisher=3GPP&lt;br /&gt;
  | title=General Report on the Design, Speification&amp;lt;!--SIC--&amp;gt; and Evaluation of 3GPP Standard Confidentiality and Integrity Algorithms&lt;br /&gt;
  | url=http://www.3gpp.org/ftp/tsg_sa/WG3_Security/_Specs/33908-300.pdf&lt;br /&gt;
  | year=2009&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
Because of schedule pressures in 3GPP standardization, instead of developing a new cipher, SAGE agreed with &lt;br /&gt;
3GPP technical specification group (TSG) for system aspects of 3G security (SA3) to base the development&lt;br /&gt;
on an existing algorithm that had already undergone some evaluation.&amp;lt;ref name=&amp;quot;sage_report&amp;quot;/&amp;gt;&lt;br /&gt;
They chose the cipher algorithm [[MISTY1]] developed&amp;lt;ref&amp;gt;&lt;br /&gt;
{{Cite journal&lt;br /&gt;
  | last = Matsui&lt;br /&gt;
  | first = Mitsuru &lt;br /&gt;
  | last2 = Tokita&lt;br /&gt;
  | first2 = Toshio&lt;br /&gt;
  | title = MISTY, KASUMI and Camellia Cipher Algorithm Development&lt;br /&gt;
  | journal = Mitsibishi Electric Advance&lt;br /&gt;
  | volume = 100&lt;br /&gt;
  | pages = 2&amp;amp;ndash;8 &lt;br /&gt;
  | publisher = Mitsibishi Electric corp.&lt;br /&gt;
  | date = Dec 2000&lt;br /&gt;
  | url = http://global.mitsubishielectric.com/company/rd/advance/pdf/vol100/vol100.pdf&lt;br /&gt;
  | issn = 1345-3041&lt;br /&gt;
  | accessdate = 2010-01-06}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
and patented&amp;lt;ref&amp;gt;&lt;br /&gt;
{{Citation&lt;br /&gt;
 | inventor-last = Matsui&lt;br /&gt;
 | inventor-first = Mitsuru&lt;br /&gt;
 | inventor2-last = Tokita&lt;br /&gt;
 | inventor2-first = Toshio&lt;br /&gt;
 | publication-date = Sep. 19, 2002&lt;br /&gt;
 | issue-date = Aug. 22, 2006&lt;br /&gt;
 | title = Data Transformation Apparatus and Data Transformation Method&lt;br /&gt;
 | country-code = US&lt;br /&gt;
 | patent-number = 7096369&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
by [[Mitsubishi Electric Corporation]].&lt;br /&gt;
The original algorithm was slightly modified for easier hardware implementation and to&lt;br /&gt;
meet other requirements set for 3G mobile communications security.&lt;br /&gt;
&lt;br /&gt;
KASUMI is named after the original algorithm [[MISTY1]] &amp;amp;mdash; [[wikt:en:霞み#Japanese|霞み]] (hiragana [[wikt:en:かすみ#Japanese|かすみ]], romaji &amp;#039;&amp;#039;[[wikt:en:kasumi#Japanese|kasumi]]&amp;#039;&amp;#039;) is the [[Japanese language|Japanese]] word for &amp;quot;mist&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In January 2010, Orr Dunkelman, Nathan Keller and Adi Shamir released a paper showing that they could break Kasumi with a [[related key attack]] and very modest computational resources. Interestingly, the attack is ineffective against MISTY.&amp;lt;ref name=a5-3-broken&amp;gt;{{cite journal | author=Orr Dunkelman, Nathan Keller, Adi Shamir | date=2010-01-10 | title=A Practical-Time Attack on the A5/3 Cryptosystem Used in Third Generation GSM Telephony | url=http://eprint.iacr.org/2010/013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
KASUMI algorithm is specified in a 3GPP technical specification.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
  | publisher=3GPP&lt;br /&gt;
  | title=3GPP TS 35.202: Specification of the 3GPP confidentiality and integrity algorithms; Document 2: Kasumi specification&lt;br /&gt;
  | url=http://www.3gpp.org/ftp/Specs/html-info/35202.htm&lt;br /&gt;
  | year=2009&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
KASUMI is a block cipher with 128-bit key and 64-bit input and output. &lt;br /&gt;
The core of KASUMI is an eight-round [[Feistel network]]. The round functions&lt;br /&gt;
in the main Feistel network are irreversible Feistel-like network&lt;br /&gt;
transformations. In each round the round function uses a round key&lt;br /&gt;
which consists of eight 16-bit sub keys&lt;br /&gt;
derived from the original 128-bit key using a fixed key schedule.&lt;br /&gt;
&lt;br /&gt;
===Key schedule===&lt;br /&gt;
&lt;br /&gt;
The 128-bit key &amp;#039;&amp;#039;K&amp;#039;&amp;#039; is divided into eight 16-bit sub keys &amp;#039;&amp;#039;K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;K=K_1 \| K_2 \| K_3 \| K_4 \| K_5 \| K_6 \| K_7 \| K_8\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally a modified key &amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;, similarly divided into 16-bit&lt;br /&gt;
sub keys &amp;#039;&amp;#039;K&amp;#039;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;, is used. The modified key is derived from&lt;br /&gt;
the original key by XORing with 0x123456789ABCDEFFEDCBA9876543210 (chosen as a [[Nothing up my sleeve number|&amp;quot;nothing up my sleeve&amp;quot; number]]).&lt;br /&gt;
&lt;br /&gt;
Round keys are either derived from the sub keys by bitwise rotation to left&lt;br /&gt;
by a given amount and from the modified sub keys (unchanged).&lt;br /&gt;
&lt;br /&gt;
The round keys are as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{lcl}&lt;br /&gt;
KL_{i,1} &amp;amp; = &amp;amp; {\rm ROL}(K_i,1) \\&lt;br /&gt;
KL_{i,2} &amp;amp; = &amp;amp; K&amp;#039;_{i+2} \\&lt;br /&gt;
KO_{i,1} &amp;amp; = &amp;amp; {\rm ROL}(K_{i+1},5) \\&lt;br /&gt;
KO_{i,2} &amp;amp; = &amp;amp; {\rm ROL}(K_{i+5},8) \\&lt;br /&gt;
KO_{i,3} &amp;amp; = &amp;amp; {\rm ROL}(K_{i+6},13) \\&lt;br /&gt;
KI_{i,1} &amp;amp; = &amp;amp; K&amp;#039;_{i+4} \\&lt;br /&gt;
KI_{i,2} &amp;amp; = &amp;amp; K&amp;#039;_{i+3} \\&lt;br /&gt;
KI_{i,3} &amp;amp; = &amp;amp; K&amp;#039;_{i+7}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sub key index additions are cyclic so that if &amp;#039;&amp;#039;i+j&amp;#039;&amp;#039; is greater than 8&lt;br /&gt;
one has to subtract 8 from the result to get the actual sub key index.&lt;br /&gt;
&lt;br /&gt;
===The algorithm===&lt;br /&gt;
KASUMI algorithm processes the 64-bit word in two 32-bit halves, left (&amp;lt;math&amp;gt;L_i&amp;lt;/math&amp;gt;)&lt;br /&gt;
and right (&amp;lt;math&amp;gt;R_i&amp;lt;/math&amp;gt;).&lt;br /&gt;
The input word is concatenation of the left and right halves of the first round:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;{\rm input} = R_0\|L_0\,&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In each round the right half is XOR&amp;#039;ed with the output of the round function&lt;br /&gt;
after which the halves are swapped:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{array}{rcl}L_i &amp;amp; = &amp;amp; F_i(KL_i,KO_i,KI_i,L_{i-1})\oplus R_{i-1} \\ R_i &amp;amp; = &amp;amp; L_{i-1}\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;#039;&amp;#039;KL&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;KO&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;KI&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; are round keys&lt;br /&gt;
for the &amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; round.&lt;br /&gt;
&lt;br /&gt;
The round functions for even and odd rounds are slightly different. In each case&lt;br /&gt;
the round function is a composition of two functions &amp;#039;&amp;#039;FL&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;FO&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;.&lt;br /&gt;
For an odd round&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F_i(K_i,L_{i-1})=FO(KO_i, KI_i, FL(KL_i, L_{i-1}))\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and for an even round&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F_i(K_i,L_{i-1})=FL(KL_i, FO(KO_i, KI_i, L_{i-1}))\,&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The output is the concatenation of the outputs of the last round.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;{\rm output} = R_8\|L_8\,&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Both &amp;#039;&amp;#039;FL&amp;#039;&amp;#039; and &amp;#039;&amp;#039;FO&amp;#039;&amp;#039; functions divide the 32-bit input data to two 16-bit halves.&lt;br /&gt;
The &amp;#039;&amp;#039;FL&amp;#039;&amp;#039; function is an irreversible bit manipulation while the &amp;#039;&amp;#039;FO&amp;#039;&amp;#039; function is&lt;br /&gt;
an irreversible three round Feistel-like network.&lt;br /&gt;
&lt;br /&gt;
====Function FL====&lt;br /&gt;
&lt;br /&gt;
The 32-bit input &amp;#039;&amp;#039;x&amp;#039;&amp;#039; of &amp;lt;math&amp;gt;FL(KL_i,x)&amp;lt;/math&amp;gt; is divided to two 16-bit  halves &amp;lt;math&amp;gt;x=l\|r&amp;lt;/math&amp;gt;.&lt;br /&gt;
First the left half of the input &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt; is ANDed bitwise with round key &amp;lt;math&amp;gt;KL_{i,1}&amp;lt;/math&amp;gt; and rotated&lt;br /&gt;
left by one bit. The result of that is XOR&amp;#039;ed to the right half of the input &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; to get the right&lt;br /&gt;
half of  the output &amp;lt;math&amp;gt;r&amp;#039;&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r&amp;#039;= {\rm ROL}(l \wedge KL_{i,1},1) \oplus r&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the right half of the output &amp;lt;math&amp;gt;r&amp;#039;&amp;lt;/math&amp;gt; is ORed bitwise with the round key &amp;lt;math&amp;gt;KL_{i,2}&amp;lt;/math&amp;gt; and rotated&lt;br /&gt;
left by one bit. The result of that is XOR&amp;#039;ed to the left half of the input &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt; to get the left&lt;br /&gt;
half of the output &amp;lt;math&amp;gt;l&amp;#039;&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;l&amp;#039;= {\rm ROL}(r&amp;#039; \vee KL_{i,2},1) \oplus l&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output of the function is concatenation of the left and right halves &amp;lt;math&amp;gt;x&amp;#039;=l&amp;#039;\|r&amp;#039;&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Function FO====&lt;br /&gt;
&lt;br /&gt;
The 32-bit input &amp;#039;&amp;#039;x&amp;#039;&amp;#039; of &amp;lt;math&amp;gt;FO(KO_i, KI_i, x)&amp;lt;/math&amp;gt; is divided into two 16-bit halves &amp;lt;math&amp;gt;x=l_0\|r_0&amp;lt;/math&amp;gt;, and passed through three rounds of a Feistel network.&lt;br /&gt;
&lt;br /&gt;
In each of the three rounds (indexed by &amp;#039;&amp;#039;j&amp;#039;&amp;#039; that takes values 1, 2, and 3) the left half is modified&lt;br /&gt;
to get the new right half and the right half is made the left half of the next round.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{lcl}&lt;br /&gt;
r_j &amp;amp; = &amp;amp; FI(KI_{i,j}, l_{j-1} \oplus KO_{i,j}) \oplus r_{j-1} \\&lt;br /&gt;
l_j &amp;amp; = &amp;amp; r_{j-1}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output of the function is &amp;lt;math&amp;gt;x&amp;#039; = l_3\|r_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Function FI====&lt;br /&gt;
The function &amp;#039;&amp;#039;FI&amp;#039;&amp;#039; is an irregular Feistel-like network.&lt;br /&gt;
&lt;br /&gt;
The 16-bit input &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; of the function &amp;lt;math&amp;gt;FI(KI,x)&amp;lt;/math&amp;gt; is divided to two halves &amp;lt;math&amp;gt;x=l_0\|r_0&amp;lt;/math&amp;gt;&lt;br /&gt;
of which &amp;lt;math&amp;gt;l_0&amp;lt;/math&amp;gt; is 9 bits wide and &amp;lt;math&amp;gt;r_0&amp;lt;/math&amp;gt; is 7 bits wide.&lt;br /&gt;
&lt;br /&gt;
Bits in the left half &amp;lt;math&amp;gt;l_0&amp;lt;/math&amp;gt; are first shuffled by 9-bit [[substitution box]] (S-box) &amp;#039;&amp;#039;S9&amp;#039;&amp;#039; and the result is XOR&amp;#039;ed with&lt;br /&gt;
the zero-extended right half &amp;lt;math&amp;gt;r_0&amp;lt;/math&amp;gt; to get the new 9-bit right half &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_1=S9(l_0)\oplus (00\|r_0)\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bits of the right half &amp;lt;math&amp;gt;r_0&amp;lt;/math&amp;gt; are shuffled by 7-bit S-box &amp;#039;&amp;#039;S7&amp;#039;&amp;#039; and the result is XOR&amp;#039;ed with&lt;br /&gt;
the seven least significant bits (&amp;#039;&amp;#039;LS7&amp;#039;&amp;#039;) of the new right half &amp;lt;math&amp;gt;r_1&amp;lt;/math&amp;gt; to get the new 7-bit left half &amp;lt;math&amp;gt;l_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;l_1=S7(r_0)\oplus LS7(r_1)\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The intermediate word &amp;lt;math&amp;gt;x_1=l_1\|r_1&amp;lt;/math&amp;gt; is XORed with the round key KI to get &amp;lt;math&amp;gt;x_2=l_2\|r_2&amp;lt;/math&amp;gt;&lt;br /&gt;
of which &amp;lt;math&amp;gt;l_2&amp;lt;/math&amp;gt; is 7 bits wide and &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; is 9 bits wide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;x_2=KI\oplus x_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bits in the right half &amp;lt;math&amp;gt;r_2&amp;lt;/math&amp;gt; are then shuffled by 9-bit S-box &amp;#039;&amp;#039;S9&amp;#039;&amp;#039; and the result is XOR&amp;#039;ed with&lt;br /&gt;
the zero-extended left half &amp;lt;math&amp;gt;l_2&amp;lt;/math&amp;gt; to get the new 9-bit right half of the output &amp;lt;math&amp;gt;r_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_3=S9(r_2)\oplus (00\|l_2)\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally the bits of the left half &amp;lt;math&amp;gt;l_2&amp;lt;/math&amp;gt; are shuffled by 7-bit S-box &amp;#039;&amp;#039;S7&amp;#039;&amp;#039; and the result is XOR&amp;#039;ed with&lt;br /&gt;
the seven least significant bits (&amp;#039;&amp;#039;LS7&amp;#039;&amp;#039;) of the right half of the output &amp;lt;math&amp;gt;r_3&amp;lt;/math&amp;gt; to get the 7-bit left&lt;br /&gt;
half &amp;lt;math&amp;gt;l_3&amp;lt;/math&amp;gt; of the output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;l_3=S7(l_2)\oplus LS7(r_3)\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output is the concatenation of the final left and right halves &amp;lt;math&amp;gt;x&amp;#039;=l_3\|r_3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Substitution boxes====&lt;br /&gt;
&lt;br /&gt;
The [[substitution box]]es (S-boxes) S7 and S9 are defined by both bit-wise AND-XOR expressions and look-up tables in the specification.&lt;br /&gt;
The bit-wise expressions are intended to hardware implementation but nowadays it is customary to use&lt;br /&gt;
the look-up tables even in the HW design.&lt;br /&gt;
&lt;br /&gt;
S7 is defined by the following array:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int S7[128] = {&lt;br /&gt;
   54, 50, 62, 56, 22, 34, 94, 96, 38,  6, 63, 93,  2, 18,123, 33,&lt;br /&gt;
   55,113, 39,114, 21, 67, 65, 12, 47, 73, 46, 27, 25,111,124, 81,&lt;br /&gt;
   53,  9,121, 79, 52, 60, 58, 48,101,127, 40,120,104, 70, 71, 43,&lt;br /&gt;
   20,122, 72, 61, 23,109, 13,100, 77,  1, 16,  7, 82, 10,105, 98,&lt;br /&gt;
  117,116, 76, 11, 89,106,  0,125,118, 99, 86, 69, 30, 57,126, 87,&lt;br /&gt;
  112, 51, 17,  5, 95, 14, 90, 84, 91,  8, 35,103, 32, 97, 28, 66,&lt;br /&gt;
  102, 31, 26, 45, 75,  4, 85, 92, 37, 74, 80, 49, 68, 29,115, 44,&lt;br /&gt;
   64,107,108, 24,110, 83, 36, 78, 42, 19, 15, 41, 88,119, 59,  3&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S9 is defined by the following array:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
int S9[512] = {&lt;br /&gt;
  167,239,161,379,391,334,  9,338, 38,226, 48,358,452,385, 90,397,&lt;br /&gt;
  183,253,147,331,415,340, 51,362,306,500,262, 82,216,159,356,177,&lt;br /&gt;
  175,241,489, 37,206, 17,  0,333, 44,254,378, 58,143,220, 81,400,&lt;br /&gt;
   95,  3,315,245, 54,235,218,405,472,264,172,494,371,290,399, 76,&lt;br /&gt;
  165,197,395,121,257,480,423,212,240, 28,462,176,406,507,288,223,&lt;br /&gt;
  501,407,249,265, 89,186,221,428,164, 74,440,196,458,421,350,163,&lt;br /&gt;
  232,158,134,354, 13,250,491,142,191, 69,193,425,152,227,366,135,&lt;br /&gt;
  344,300,276,242,437,320,113,278, 11,243, 87,317, 36, 93,496, 27,&lt;br /&gt;
  &lt;br /&gt;
  487,446,482, 41, 68,156,457,131,326,403,339, 20, 39,115,442,124,&lt;br /&gt;
  475,384,508, 53,112,170,479,151,126,169, 73,268,279,321,168,364,&lt;br /&gt;
  363,292, 46,499,393,327,324, 24,456,267,157,460,488,426,309,229,&lt;br /&gt;
  439,506,208,271,349,401,434,236, 16,209,359, 52, 56,120,199,277,&lt;br /&gt;
  465,416,252,287,246,  6, 83,305,420,345,153,502, 65, 61,244,282,&lt;br /&gt;
  173,222,418, 67,386,368,261,101,476,291,195,430, 49, 79,166,330,&lt;br /&gt;
  280,383,373,128,382,408,155,495,367,388,274,107,459,417, 62,454,&lt;br /&gt;
  132,225,203,316,234, 14,301, 91,503,286,424,211,347,307,140,374,&lt;br /&gt;
  &lt;br /&gt;
   35,103,125,427, 19,214,453,146,498,314,444,230,256,329,198,285,&lt;br /&gt;
   50,116, 78,410, 10,205,510,171,231, 45,139,467, 29, 86,505, 32,&lt;br /&gt;
   72, 26,342,150,313,490,431,238,411,325,149,473, 40,119,174,355,&lt;br /&gt;
  185,233,389, 71,448,273,372, 55,110,178,322, 12,469,392,369,190,&lt;br /&gt;
    1,109,375,137,181, 88, 75,308,260,484, 98,272,370,275,412,111,&lt;br /&gt;
  336,318,  4,504,492,259,304, 77,337,435, 21,357,303,332,483, 18,&lt;br /&gt;
   47, 85, 25,497,474,289,100,269,296,478,270,106, 31,104,433, 84,&lt;br /&gt;
  414,486,394, 96, 99,154,511,148,413,361,409,255,162,215,302,201,&lt;br /&gt;
  &lt;br /&gt;
  266,351,343,144,441,365,108,298,251, 34,182,509,138,210,335,133,&lt;br /&gt;
  311,352,328,141,396,346,123,319,450,281,429,228,443,481, 92,404,&lt;br /&gt;
  485,422,248,297, 23,213,130,466, 22,217,283, 70,294,360,419,127,&lt;br /&gt;
  312,377,  7,468,194,  2,117,295,463,258,224,447,247,187, 80,398,&lt;br /&gt;
  284,353,105,390,299,471,470,184, 57,200,348, 63,204,188, 33,451,&lt;br /&gt;
   97, 30,310,219, 94,160,129,493, 64,179,263,102,189,207,114,402,&lt;br /&gt;
  438,477,387,122,192, 42,381,  5,145,118,180,449,293,323,136,380,&lt;br /&gt;
   43, 66, 60,455,341,445,202,432,  8,237, 15,376,436,464, 59,461&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cryptanalysis==&lt;br /&gt;
&lt;br /&gt;
In 2001, an  [[impossible differential cryptanalysis|impossible differential attack]] on six rounds of KASUMI was presented by Kühn (2001).&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
  | last=Kühn&lt;br /&gt;
  | first=Ulrich&lt;br /&gt;
  | title=Cryptanalysis of Reduced Round MISTY&lt;br /&gt;
  | conference=EUROCRYPT 2001&lt;br /&gt;
  | url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.7609&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 2003 Elad Barkan, [[Eli Biham]] and Nathan Keller demonstrated [[man-in-the-middle attack]]s against the [[GSM]] protocol which avoided the A5/3 cipher and thus breaking the protocol. This approach does not attack the A5/3 cipher, however.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
  | author=Elad Barkan, [[Eli Biham]], Nathan Keller&lt;br /&gt;
  | title=Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication&lt;br /&gt;
  | pages=600–616&lt;br /&gt;
  | conference=CRYPTO 2003&lt;br /&gt;
  | url=http://cryptome.org/gsm-crack-bbk.pdf&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; The full version of their paper was published later in 2006.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
 | url = http://www.cs.technion.ac.il/users/wwwb/cgi-bin/tr-get.cgi/2006/CS/CS-2006-07.pdf&lt;br /&gt;
 | title = Instant Ciphertext-Only Cryptanalysis of GSM Encrypted Communication by Barkan and Biham of Technion (Full Version)&lt;br /&gt;
 | author = Elad Barkan, [[Eli Biham]], Nathan Keller&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 2005, Israeli researchers [[Eli Biham]], Orr Dunkelman and Nathan Keller published a [[related-key attack|related-key]] [[boomerang attack|rectangle (boomerang) attack]] on KASUMI that can break all 8 rounds faster than exhaustive search.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
  | author=[[Eli Biham]], Orr Dunkelman, Nathan Keller&lt;br /&gt;
  | title=A Related-Key Rectangle Attack on the Full KASUMI&lt;br /&gt;
  | pages=443–461&lt;br /&gt;
  | conference=ASIACRYPT 2005&lt;br /&gt;
  | url=http://www.ma.huji.ac.il/~nkeller/kasumi.ps&lt;br /&gt;
  | format=ps&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
The attack requires 2&amp;lt;sup&amp;gt;54.6&amp;lt;/sup&amp;gt; chosen plaintexts, each of which has been encrypted under one of four related keys, and has a time complexity equivalent to 2&amp;lt;sup&amp;gt;76.1&amp;lt;/sup&amp;gt; KASUMI encryptions. While this is not a practical attack, it invalidates some proofs about the security of the 3GPP protocols that had relied on the presumed strength of KASUMI.&lt;br /&gt;
&lt;br /&gt;
In 2010, Dunkelman, Keller and Shamir published a new attack that allows an adversary to recover a full A5/3 key by [[related-key attack]].&amp;lt;ref name=a5-3-broken /&amp;gt; The time and space complexities of the attack are low enough that the authors carried out the attack in two hours on an [[Intel Core 2 Duo]] desktop computer even using the unoptimized reference KASUMI implementation. The authors note that this attack may not be applicable to the way A5/3 is used in 3G systems; their main purpose was to discredit 3GPP&amp;#039;s assurances that their changes to MISTY wouldn&amp;#039;t significantly impact the security of the algorithm.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[A5/1]] and [[A5/2]]&lt;br /&gt;
* [[MISTY1]]&lt;br /&gt;
* [[SNOW]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.ma.huji.ac.il/~nkeller Nathan Keller&amp;#039;s homepage]&lt;br /&gt;
&lt;br /&gt;
{{Cryptography navbox | block}}&lt;br /&gt;
{{Mitsubishi Electric}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Kasumi (Block Cipher)}}&lt;br /&gt;
[[Category:Feistel ciphers]]&lt;br /&gt;
[[Category:Broken block ciphers]]&lt;br /&gt;
[[Category:3GPP standards]]&lt;br /&gt;
[[Category:Mitsubishi Electric products, services and standards]]&lt;/div&gt;</summary>
		<author><name>en&gt;D.Lazard</name></author>
	</entry>
</feed>