⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13-07.html

📁 Wiley - Applied Cryptography, Protocols, Algorthms, and Source Code in C
💻 HTML
📖 第 1 页 / 共 2 页
字号:
			</SELECT>			</font></td>	</tr>	</table>	</form><!-- LEFT NAV SEARCH END -->		</td>		<!-- PUB PARTNERS END --><!-- END LEFT NAV --><td rowspan="8" align="right" valign="top"><img src="/images/iswbls.gif" width=1 height=400 alt="" border="0"></td><td><img src="/images/white.gif" width="5" height="1" alt="" border="0"></td><!-- end of ITK left NAV --><!-- begin main content --><td width="100%" valign="top" align="left"><!-- END SUB HEADER -->

<!--Begin Content Column -->

<FONT FACE="Arial,Helvetica" SIZE="-1">
To access the contents, click the chapter and section titles.
</FONT>
<P>
<B>Applied Cryptography, Second Edition: Protocols,  Algorthms, and Source Code in C (cloth)</B>
<FONT SIZE="-1">
<BR>
<I>(Publisher: John Wiley & Sons, Inc.)</I>
<BR>
Author(s): Bruce Schneier
<BR>
ISBN: 0471128457
<BR>
Publication Date: 01/01/96
</FONT>
<P>
<form name="Search" method="GET" action="http://search.earthweb.com/search97/search_redir.cgi">

<INPUT TYPE="hidden" NAME="Action" VALUE="Search">
<INPUT TYPE="hidden" NAME="SearchPage" VALUE="http://search.earthweb.com/search97/samples/forms/srchdemo.htm">
<INPUT TYPE="hidden" NAME="Collection" VALUE="ITK">
<INPUT TYPE="hidden" NAME="ResultTemplate" VALUE="itk-full.hts">
<INPUT TYPE="hidden" NAME="ViewTemplate" VALUE="view.hts">

<font face="arial, helvetica" size=2><b>Search this book:</b></font><br>
<INPUT NAME="queryText" size=50 VALUE="">&nbsp;<input type="submit" name="submitbutton" value="Go!">
<INPUT type=hidden NAME="section_on" VALUE="on">
<INPUT type=hidden NAME="section" VALUE="http://www.itknowledge.com/reference/standard/0471128457/">

</form>


<!-- Empty Reference Subhead -->

<!--ISBN=0471128457//-->
<!--TITLE=APPLIED CRYPTOGRAPHY, SECOND EDITION: Protocols, Algorithms, and Source Code in C//-->
<!--AUTHOR=Bruce Schneier//-->
<!--PUBLISHER=Wiley Computer Publishing//-->
<!--CHAPTER=13//-->
<!--PAGES=323-326//-->
<!--UNASSIGNED1//-->
<!--UNASSIGNED2//-->

<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="13-06.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="13-08.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>
<P><BR></P>
<P>The number at the positions of &#147;<I>x</I>&#148; can be any number. If this key is used, the bit-wise XOR of certain plaintext pairs guarantees the bit-wise XOR of the resultant ciphertext pairs.</P>
<P>In any case, the chance of accidentally generating one of these weak keys is very small: one in 2<SUP>96</SUP>. There is no danger if you choose keys at random. And it is easy to modify IDEA so that it doesn&#146;t have any weak keys: XOR every subkey with the value 0x0dae [409].</P>
<P>I know of no other cryptanalytic results against IDEA, although many people have tried.</P>
<P><FONT SIZE="+1"><B><I>IDEA Modes of Operation and Variants</I></B></FONT></P>
<P>IDEA can work within any block cipher mode discussed in Chapter 9. Any double-IDEA implementation would be susceptible to the same meet-in-the-middle attack as DES (see Section 15.1). However, because IDEA&#146;s key length is more than double DES&#146;s, the attack is impractical. It would require a storage space of 64*2<SUP>128</SUP> bits, or 10<SUP>39</SUP> bytes. Maybe there&#146;s enough matter in the universe to create a memory device that large, but I doubt it.</P>
<I><P><A NAME="Fig10"></A><A HREF="javascript:displayWindow('images/13-10.jpg',316,339 )"><IMG SRC="images/13-10t.jpg"></A>
<BR><A HREF="javascript:displayWindow('images/13-10.jpg',316,339)"><FONT COLOR="#000077"><B>Figure 13.10</B></FONT></A>&nbsp;&nbsp;PES.</I>
</P>
<P>If you&#146;re worried about parallel universes as well, use a triple-IDEA implementation (see Section 15.2):
</P>
<DL>
<DD><I>C</I> = <I>E</I><SUB><SMALL>K</SMALL>3</SUB>(<I><SMALL>D</SMALL><SUB>K</I>2</SUB>(<I>E</I><SUB><SMALL>K</SMALL>1</SUB>(<I>P</I>)))
</DL>
<P>It is immune to the meet-in-the-middle attack.
</P>
<P>There&#146;s also no reason why you can&#146;t implement IDEA with independent subkeys, especially if you have key-management tools to handle the longer key. IDEA needs a total of 52 16-bit keys, for a total key length of 832 bits. This variant is definitely more secure, but no one knows by how much.</P>
<P>A na&#239;ve variation might double the block size. The algorithm would work just as well with 32-bit sub-blocks instead of 16-bit sub-blocks, and a 256-bit key. Encryption would be quicker and security would increase 2<SUP>32</SUP> times. Or would it? The theory behind the algorithm hinges on the fact that 2<SUP>16</SUP> &#43; 1 is prime; 2<SUP>32</SUP> &#43; 1 is not. Perhaps the algorithm could be modified to work, but it would have very different security properties. Lai says it would be difficult to make it work [926].</P>
<P>While IDEA appears to be significantly more secure than DES, it isn&#146;t always easy to substitute one for the other in an existing application. If your database and message templates are hardwired to accept a 64-bit key, it may be impossible to implement IDEA&#146;s 128-bit key.</P>
<P>For those applications, generate a 128-bit key by concatenating the 64-bit key with itself. Remember that IDEA is weakened considerably by this modification.</P>
<P>If you are more concerned with speed than security, you might consider a variant of IDEA with fewer rounds. Currently the best attack against IDEA is faster than brute force only for 2.5 rounds or less [1050]; 4 round IDEA would be twice as fast and, as far as I know, just as secure.</P>
<P><FONT SIZE="+1"><B><I>Caveat Emptor</I></B></FONT></P>
<P>IDEA is a relatively new algorithm, and many questions remain. Is IDEA a group? (Lai thinks not [926].) Are there any still-undiscovered ways of breaking this cipher? IDEA has a firm theoretical basis, but time and time again secure-looking algorithms have fallen to new forms of cryptanalysis. Several academic and military groups have cryptanalyzed IDEA. None of them has gone public about any successes they might have had. One might&#151;someday.
</P>
<P><FONT SIZE="+1"><B><I>Patents and Licenses</I></B></FONT></P>
<P>IDEA is patented in Europe and the United States [1012, 1013]. The patent is held by Ascom-Tech AG. No license fee is required for non-commercial use. Commercial users interested in licensing the algorithm should contact Ascom Systec AG, Dept CMVV, Gewerbepark, CH-5506, M&#228;genwil, Switzerland<I>;</I> &#43;41 64 56 59 83<I>;</I> Fax:&#43;41 64 56 59 90<I>;</I> idea@ascom.ch.</P>
<H3><A NAME="Heading11"></A><FONT COLOR="#000077">13.10 MMB</FONT></H3>
<P>A complaint against IDEA, that it uses a 64-bit encryption block, was addressed by Joan Daemen in an algorithm called MMB (Modular Multiplication-based Block cipher) [385, 405, 406]. MMB is based on the same basic theory as IDEA: mixing operations of different algebraic groups. MMB is an iterative algorithm that mainly consists of linear steps (XOR and key applications) and the parallel applications of four large nonlinear invertible substitutions. These substitutions are determined by a multiplication modulo 2<SUP>32</SUP> &#150; 1 with constant factors. The result is an algorithm that has both a 128-bit key and a 128-bit block size.</P>
<P>MMB operates on 32-bit sub-blocks of text (<I>x</I><SUB>0</SUB>, <I>x</I><SUB>1</SUB>, <I>x</I><SUB>2</SUB>, <I>x</I><SUB>3</SUB>) and 32-bit sub-blocks of key (<I>k</I><SUB>0</SUB>, <I>k</I><SUB>1</SUB>, <I>k</I><SUB>2</SUB>, <I>k</I><SUB>3</SUB>). This makes the algorithm well suited for implementation on modern, 32-bit processors. A nonlinear function, f, is applied six times alternating with XORing. Here it is (all index operations are mod 4):</P>
<DL>
<DD><I>x</I><SUB>i</SUB> = <I>x</I><SUB>i</SUB> &#8853; <I>k</I><SUB>i</SUB>, for <I>i</I> = 0 to 3
<DD>f(<I>x</I><SUB>0</SUB>,<I>x</I><SUB>1</SUB>,<I>x</I><SUB>2</SUB>,<I>x</I><SUB>3</SUB>)
<DD><I>x</I><SUB>i</SUB> = <I>x</I><SUB>i</SUB> &#8853; <I>k</I><SUB>i &#43; 1</SUB>, for <I>i</I> = 0 to 3
<DD>f(<I>x</I><SUB>0</SUB>,<I>x</I><SUB>1</SUB>,<I>x</I><SUB>2</SUB>,<I>x</I><SUB>3</SUB>)
<DD><I>x</I><SUB>i</SUB> = <I>x</I><SUB>i</SUB> &#8853; <I>k</I><SUB>i &#43; 2</SUB>, for <I>i</I> = 0 to 3
<DD>f(<I>x</I><SUB>0</SUB>,<I>x</I><SUB>1</SUB>,<I>x</I><SUB>2</SUB>,<I>x</I><SUB>3</SUB>)
<DD><I>x</I><SUB>i</SUB> = <I>x</I><SUB>i</SUB> &#8853; <I>k</I><SUB>i</SUB>, for <I>i</I> = 0 to 3
<DD>f(<I>x</I><SUB>0</SUB>,<I>x</I><SUB>1</SUB>,<I>x</I><SUB>2</SUB>,<I>x</I><SUB>3</SUB>)
<DD><I>x</I><SUB>i</SUB> = <I>x</I><SUB>i</SUB> &#8853; <I>k</I><SUB>i &#43; 1</SUB>, for <I>i</I> = 0 to 3
<DD>f(<I>x</I><SUB>0</SUB>,<I>x</I><SUB>1</SUB>,<I>x</I><SUB>2</SUB>,<I>x</I><SUB>3</SUB>)
<DD><I>x</I><SUB>i</SUB> = <I>x</I><SUB>i</SUB> &#8853; <I>k</I><SUB>i &#43; 2</SUB>, for <I>i</I> = 0 to 3
<DD>f(<I>x</I><SUB>0</SUB>,<I>x</I><SUB>1</SUB>,<I>x</I><SUB>2</SUB>,<I>x</I><SUB>3</SUB>)
</DL>
<P>The function f has three steps:
</P>
<DL>
<DD><B>(1)</B>&nbsp;&nbsp;<I>x</I><SUB>i</SUB> = <I>c</I><SUB>i</SUB> * <I>x</I><SUB>i</SUB>, for <I>i</I> = 0 to 3 (If the input to the multiplication is all 1s, the output is also all 1s.)
<DD><B>(2)</B>&nbsp;&nbsp;If the least significant bit of <I>x</I><SUB>0</SUB> = 1, then <I>x</I><SUB>0</SUB> = <I>x</I><SUB>0</SUB> &#8853; C. If the least significant byte of <I>x</I><SUB>3</SUB> = 0, then <I>x</I><SUB>3</SUB> = <I>x</I><SUB>3</SUB> &#8853; C.
<DD><B>(3)</B>&nbsp;&nbsp;<I>x</I><SUB>i</SUB> = <I>x</I><SUB>i &#150; 1</SUB> &#8853; <I>x</I><SUB>i</SUB> &#8853; <I>x</I><SUB>i &#43; 1</SUB>, for <I>i</I> = 0 to 3
<P>All index operations are mod 4. The multiplication operation in step (1) is modulo 2<SUP>32</SUP> &#150; 1. For the purposes of the algorithm, if the second operand is 2<SUP>32</SUP> &#150; 1, then the result is 2<SUP>32</SUP> &#150; 1. The various constants are:
</DL>
<DL>
<DD>C = 2aaaaaaa
<DD>c<SUB>0</SUB> = 025f1cdb
<DD>c<SUB>1</SUB> = 2 * c<SUB>0</SUB>
<DD>c<SUB>2</SUB> = 2<SUP>3</SUP> * c<SUB>0</SUB>
<DD>c<SUB>3</SUB> = 2<SUP>7</SUP> * c<SUB>0</SUB>
</DL>
<P>The constant C is the &#147;simplest&#148; constant with a high ternary weight, a least-significant bit of zero, and no circular symmetry. The constant c<SUB>0</SUB> has certain other characteristics. The constants c<SUB>1</SUB>, c<SUB>2</SUB>, and c<SUB>3</SUB> are shifted versions of c<SUB>0</SUB>, preventing attacks based on symmetry. See [405] for more details.</P>
<P>Decryption is the reverse process. Steps (2) and (3) are their own inverse. Step (1) uses <I>c</I><SUB>i</SUB><SUP>-1</SUP> instead of <I>c</I><SUB>i</SUB>. The value of <I>c</I><SUB>0</SUB><SUP>-1</SUP> is 0dad4694.</P><P><BR></P>
<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="13-06.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="13-08.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>

[an error occurred while processing this directive]
<!-- all of the reference materials (books) have the footer and subfoot reveresed --><!-- reference_subfoot = footer --><!-- reference_footer = subfoot --><!-- BEGIN SUB FOOTER -->		<br><br>		</TD>    </TR>	</TABLE>			<table width="640" border=0 cellpadding=0 cellspacing=0>		<tr>		<td align="left" width=135><img src="/images/white.gif" width=100 height="1" alt="" border="0"></td>				<!-- END SUB FOOTER -->
<!-- all of the books have the footer and subfoot reveresed --><!-- reference_subfoot = footer --><!-- reference_footer = subfoot --><!-- FOOTER -->					<td width="515" align="left" bgcolor="#FFFFFF"><font face="arial, helvetica" size="1"><b><a href="/products.html"><font color="#006666">Products</font></a>&nbsp;|&nbsp; <a href="/contactus.html"><font color="#006666">Contact Us</font></a>&nbsp;|&nbsp; <a href="/aboutus.html"><font color="#006666">About Us</font></a>&nbsp;|&nbsp; <a href="http://www.earthweb.com/corporate/privacy.html" target="_blank"><font color="#006666">Privacy</font></a> &nbsp;|&nbsp; <a href="http://www.itmarketer.com/" target="_blank"><font color="#006666">Ad Info</font></a> &nbsp;|&nbsp; <a href="/"><font color="#006666">Home</font></a></b>		<br><br>				Use of this site is subject to certain <a href="/agreement.html">Terms &amp; Conditions</a>, <a href="/copyright.html">Copyright &copy; 1996-1999 EarthWeb Inc.</a><br> All rights reserved.  Reproduction whole or in part in any form or medium without express written permision of EarthWeb is prohibited.</font><p></td>		</tr></table></BODY></HTML><!-- END FOOTER -->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -