亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 14-06.html

?? 應用密碼學電子書籍
?? HTML
字號:
<html><head><TITLE>APPLIED CRYPTOGRAPHY, SECOND EDITION: Protocols, Algorithms, and Source Code in C:Still Other Block Ciphers</TITLE>
<!-- BEGIN HEADER --><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"><SCRIPT><!--function displayWindow(url, width, height) {        var Win = window.open(url,"displayWindow",'width=' + width +',height=' + height + ',resizable=1,scrollbars=yes');}//--></SCRIPT></HEAD><body bgcolor="ffffff" link="#006666" alink="#006666" vlink="#006666"><P>
<CENTER><B>Applied Cryptography, Second Edition: Protocols,  Algorthms, and Source Code in C (cloth)</B>
<FONT SIZE="-2">
<BR>
<I>(Publisher: John Wiley & Sons, Inc.)</I>
<BR>
Author(s): Bruce Schneier
<BR>
ISBN: 0471128457
<BR>
Publication Date: 01/01/96
</FONT></CENTER>
<P>


<!-- 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=14//-->
<!--PAGES=343-345//-->
<!--UNASSIGNED1//-->
<!--UNASSIGNED2//-->

<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="14-05.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="14-07.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>
<P><BR></P>
<P>These subkeys must all be calculated before encryption or decryption.
</P>
<P>To encrypt a 1024-byte block <I>X:</I></P>
<DL>
<DD><B>(1)</B>&nbsp;&nbsp;Divide <I>X</I> into 256 32-bit sub-blocks: <I>X</I><SUB>0</SUB>, <I>X</I><SUB>1</SUB>, <I>X</I><SUB>2</SUB>,..., <I>X</I><SUB>255</SUB>.
<DD><B>(2)</B>&nbsp;&nbsp;Permute the sub-blocks of <I>X</I> according to <I>P</I>.
<DD><B>(3)</B>&nbsp;&nbsp;For <I>r</I> = 0 to 3
<BR>For <I>g</I> = 0 to 63
<DL>
<DD><I>A</I> = <I>X</I><SUB>(4<I>g</I>)&lt&lt&lt2r</SUB>
<DD><I>B</I> = <I>X</I><SUB>(4<I>g</I>&#43;1)&lt&lt&lt2r</SUB>
<DD><I>C</I> = <I>X</I><SUB>(4<I>g</I>&#43;2)&lt&lt&lt2r</SUB>
<DD><I>D</I> = <I>X</I><SUB>(4<I>g</I>&#43;3)&lt&lt&lt2r</SUB>
<DD>For step <I>s</I> = 0 to 7
<DL>
<DD><I>A</I> = <I>A</I> &#8853; (<I>B</I> &#43; f<SUB>r</SUB>(<I>B,C,D</I>) &#43; <I>S</I><SUB>512<I>r</I>&#43;8 g&#43;s</SUB>)
<DD><I>TEMP</I> = <I>D</I>
<DD><I>D</I> = <I>C</I>
<DD><I>C</I> = <I>B</I>
<DD><I>B</I> = <I>A</I> &lt&lt&lt 5
<DD><I>A</I> = <I>TEMP</I>
</DL>
<DD><I>X</I><SUB>(4<I>g</I>)&lt&lt&lt2r</SUB> = <I>A</I>
<DD><I>X</I><SUB>(4<I>g</I>&#43;1)&lt&lt&lt2r</SUB> = <I>B</I>
<DD><I>X</I><SUB>(4<I>g</I>&#43;2)&lt&lt&lt2r</SUB> = <I>C</I>
<DD><I>X</I><SUB>(4<I>g</I>&#43;3)&lt&lt&lt2r</SUB> = <I>D</I>
</DL>
<DD><B>(4)</B>&nbsp;&nbsp;Recombine <I>X</I><SUB>0</SUB>, <I>X</I><SUB>1</SUB>, <I>X</I><SUB>2</SUB>,..., <I>X</I><SUB>255</SUB> to form the ciphertext.
</DL>
<P>The functions f<SUB>r</SUB>(<I>B,C,D</I>) are similar to those used in MD5:</P>
<DL>
<DL>
<DD>f<SUB>0</SUB>(<I>B,C,D</I>) = (<I>B</I> &#923; <I>C</I>) &#957; ((&#172; <I>B</I>) &#923; <I>D</I>)
<DD>f<SUB>1</SUB>(<I>B,C,D</I>) = (<I>B</I> &#923; <I>D</I>) &#957; (<I>C</I> &#923; (&#172; <I>D</I>))
<DD>f<SUB>2</SUB>(<I>B,C,D</I>) = <I>B</I> &#8853; <I>C</I> &#8853; <I>D</I>
<DD>f<SUB>3</SUB>(<I>B,C,D</I>) = <I>C</I> &#8853; (<I>B</I> &#957; (&#172; <I>D</I>))
</DL>
</DL>
<P>Decryption is the reverse process.
</P>
<P>Generating the subkeys is a large task. Here is how the permutation array, <I>P</I>, could be generated from an 80-bit key, <I>K</I>.</P>
<DL>
<DD><B>(1)</B>&nbsp;&nbsp;Initialize <I>K</I><SUB>0</SUB>, <I>K</I><SUB>1</SUB>, <I>K</I><SUB>2</SUB>,..., <I>K</I><SUB>9</SUB> with the 10 bytes of <I>K</I>.
<DD><B>(2)</B>&nbsp;&nbsp;For <I>i</I> = 10 to 255
<DL>
<DD><I>K</I><SUB>i</SUB> = <I>K</I><SUB>i - 2</SUB> &#8853; <I>K</I><SUB>i - 6</SUB> &#8853; <I>K</I><SUB>i - 7</SUB> &#8853; <I>K</I><SUB>i - 10</SUB>
</DL>
<DD><B>(3)</B>&nbsp;&nbsp;For <I>i</I> = 0 to 255, <I>P</I><SUB>i</SUB> = <I>i</I>
<DD><B>(4)</B>&nbsp;&nbsp;<I>m</I> = 0
<DD><B>(5)</B>&nbsp;&nbsp;For <I>j</I> = 0 to 1
<DL>
<DD>For <I>i</I> = 256 to 1 step -1
<DL>
<DD><I>m</I> = (<I>K</I><SUB>256 - <I>i</I></SUB> &#43; <I>K</I><SUB>257 - <I>i</I></SUB>) mod <I>i</I>
<DD><I>K</I><SUB>257 - <I>i</I></SUB> = <I>K</I><SUB>257 - <I>i</I></SUB> &lt&lt&lt 3
<DD>Swap <I>P</I><SUB>i</SUB> and <I>P</I><SUB>i - 1</SUB>
</DL>
</DL>
</DL>
<P>The S-array of 2048 32-bit words could be generated in a similar manner, either from the same 80-bit key or from another key. The authors caution that these details should &#147;be viewed as motivational; there may very well be alternative schemes which are both more efficient and offer improved security&#148; [810].
</P>
<P>Crab was proposed as a testbed of new ideas and not as a working algorithm. It uses many of the same techniques as MD5. Biham has argued that a very large block size makes an algorithm easier to cryptanalyze [160]. On the other hand, Crab may make efficient use of a very large key. In such a case, &#147;easier to cryptanalyze&#148; might not mean much.</P>
<H3><A NAME="Heading8"></A><FONT COLOR="#000077">14.7 SXAL8/MBAL</FONT></H3>
<P>This is a 64-bit block algorithm from Japan [769]. SXAL8 is the basic algorithm; MBAL is an expanded version with a variable block length. Since MBAL does some clever things internally, the authors claim that they can get adequate security with only a few rounds. With a block length of 1024 bytes, MBAL is about 70 times faster than DES. Unfortunately, [1174] shows that MBAL is susceptible to differential cryptanalysis, and [865] shows that it is susceptible to linear cryptanalysis.
</P>
<H3><A NAME="Heading9"></A><FONT COLOR="#000077">14.8 RC5</FONT></H3>
<P>RC5 is a block cipher with a variety of parameters: block size, key size, and number of rounds. It was invented by Ron Rivest and analyzed by RSA Laboratories [1324,1325].
</P>
<P>There are three operations: XOR, addition, and rotations. Rotations are constant-time operations on most processors and variable rotations are a nonlinear function. These rotations, which depend on both the key and the data, are the interesting operation.</P>
<P>RC5 has a variable-length block, but this example will focus on a 64-bit data block. Encryption uses 2<I>r</I> &#43; 2 key-dependent 32-bit words&#151;<I>S</I><SUB>0</SUB>, <I>S</I><SUB>1</SUB>, <I>S</I><SUB>2</SUB>,..., <I>S</I><SUB>2<I>r</I> &#43; 1</SUB>&#151;where <I>r</I> is the number of rounds. We&#146;ll generate those words later. To encrypt, first divide the plaintext block into two 32-bit words: <I>A</I> and <I>B</I>. (RC5 assumes a little-endian convention for packing bytes into words: The first byte goes into the low-order bit positions of register <I>A</I>, etc.) Then:</P>
<DL>
<DL>
<DD><I>A</I> = <I>A</I> &#43; <I>S</I><SUB>0</SUB>
<DD><I>B</I> = <I>B</I> &#43; <I>S</I><SUB>1</SUB>
</DL>
<DD>For <I>i</I> = 1 to <I>r:</I>
<DL>
<DD><I>A</I> = ((<I>A</I> &#8853; <I>B</I>) &lt&lt&lt <I>B</I>) &#43; <I>S</I><SUB>2i</SUB>
<DD><I>B</I> = ((<I>B</I> &#8853; <I>A</I>) &lt&lt&lt <I>A</I>) &#43; <I>S</I><SUB>2<I>i</I> &#43; 1</SUB>
</DL>
</DL>
<P>The output is in the registers <I>A</I> and <I>B</I>.</P>
<P>Decryption is just as easy. Divide the plaintext block into two words, <I>A</I> and <I>B</I>, and then:</P>
<DL>
<DD>For <I>i</I> = <I>r</I> down to 1:
<DL>
<DD><I>B</I> = ((<I>B</I> &#150; <I>S</I><SUB>2i &#43; 1</SUB>) &gt&gt&gt <I>A</I>) &#8853; <I>A</I>
<DD><I>A</I> = ((<I>A</I> &#150; <I>S</I><SUB>2i</SUB>) &gt&gt&gt <I>B</I>) &#8853; <I>B</I>
</DL>
<DD><I>B</I> = <I>B</I> &#150; <I>S</I><SUB>1</SUB>
<DD><I>A</I> = <I>A</I> &#150; <I>S</I><SUB>0</SUB>
</DL>
<P>The symbol &#147;&gt&gt&gt&#148; is a right circular shift. Of course, all addition and subtraction are mod 2<SUP>32</SUP>.</P>
<P>Creating the array of keys is more complicated, but also straightforward. First, copy the bytes of the key into an array, <I>L</I>, of <I>c</I> 32-bit words, padding the final word with zeros if necessary. Then, initialize an array, <I>S</I>, using a linear congruential generator mod 2<SUP>32</SUP>:</P>
<DL>
<DD><I>S</I><SUB>0</SUB> = P
<DD>for <I>i</I> = 1 to 2(<I>r</I> &#43; 1) &#150; 1:
<DL>
<DD><I>S</I><SUB>i</SUB> = (<I>S</I><SUB>i - 1</SUB> &#43; Q) mod 2<SUP>32</SUP>
</DL>
</DL>
<P>P = 0xb7e15163 and Q = 0x9e3779b9; these constants are based on the binary representation of e and phi.
</P>
<P>Finally, mix <I>L</I> into <I>S:</I></P>
<DL>
<DD><I>i</I> = <I>j</I> = 0
<DD><I>A</I> = <I>B</I> = 0
<DD>do 3<I>n</I> times (where <I>n</I> is the maximum of 2(<I>r</I> &#43; 1) and <I>c</I>):
<DL>
<DD><I>A</I> = <I>S</I><SUB>i</SUB> = (<I>S</I><SUB>i</SUB> &#43; <I>A</I> &#43; <I>B</I>) &lt&lt&lt 3
<DD><I>B</I> = <I>L</I><SUB>j</SUB> = (<I>L</I><SUB>j</SUB> &#43; <I>A</I> &#43; <I>B</I>) &lt&lt&lt (<I>A</I> &#43; <I>B</I>)
</DL>
<DD><I>i</I> = (<I>i</I> &#43; 1) mod 2(<I>r</I> &#43; 1)
<DD><I>j</I> = (<I>j</I> &#43; 1) mod <I>c</I>
</DL>
<P><BR></P>
<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="14-05.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="14-07.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>

[an error occurred while processing this directive]
</body></html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久影院| 偷拍一区二区三区四区| 亚洲一线二线三线久久久| 久久综合综合久久综合| 欧洲一区在线电影| 欧美激情中文字幕| 久久se精品一区二区| 欧美日韩一区二区在线视频| 亚洲视频一区在线| 国产不卡视频一区| 久久色在线观看| 麻豆高清免费国产一区| 欧美无人高清视频在线观看| 亚洲欧洲国产日韩| 懂色av中文字幕一区二区三区| 日韩视频中午一区| 日本亚洲欧美天堂免费| 欧美日韩高清在线| 亚洲成人自拍一区| 91成人在线观看喷潮| 亚洲女同ⅹxx女同tv| 成人性生交大片免费| 国产视频不卡一区| 国产一区二区精品久久| 精品国产人成亚洲区| 激情六月婷婷久久| 2020国产精品自拍| 精品一区二区三区av| 日韩欧美中文一区| 国产精品正在播放| 亚洲国产精品精华液ab| 成人午夜激情影院| 国产精品污网站| 99久久免费视频.com| 亚洲免费观看高清| 欧美午夜精品免费| 免费不卡在线视频| 日韩视频免费直播| 国产精品性做久久久久久| 国产午夜精品久久久久久久| 成人在线一区二区三区| 中文字幕亚洲不卡| 日本韩国欧美国产| 免费在线看成人av| 久久精子c满五个校花| 粉嫩13p一区二区三区| 亚洲天堂成人网| 欧美巨大另类极品videosbest | 亚洲国产中文字幕| 欧美日韩一区二区三区视频| 日本大胆欧美人术艺术动态| 久久免费视频色| 色综合久久久网| 欧美aa在线视频| 国产日韩成人精品| 在线精品亚洲一区二区不卡| 免费高清在线视频一区·| 国产午夜精品一区二区三区嫩草 | 亚洲一区二区三区四区五区中文| 欧美性大战久久久久久久蜜臀| 日本伊人精品一区二区三区观看方式| 精品免费视频.| 99久久精品国产毛片| 五月天欧美精品| 国产午夜一区二区三区| 欧美视频一区二| 国产成人自拍在线| 午夜精品福利一区二区三区蜜桃| 久久只精品国产| 欧美午夜寂寞影院| 国产精品白丝jk黑袜喷水| 一区二区在线观看免费视频播放| 欧美成人精品二区三区99精品| 91老师国产黑色丝袜在线| 久久精品国产99| 亚洲一区在线观看免费观看电影高清| 欧美成人官网二区| 欧美日韩一区二区在线视频| 成人一区二区视频| 久久99精品视频| 亚洲国产精品久久一线不卡| 国产精品免费视频一区| 日韩欧美亚洲国产精品字幕久久久| 99久久伊人久久99| 国产综合色视频| 婷婷丁香久久五月婷婷| 亚洲女同一区二区| 国产欧美精品一区aⅴ影院| 欧美精品亚洲一区二区在线播放| 成人黄页毛片网站| 国产精品一品二品| 麻豆成人免费电影| 日韩精品色哟哟| 亚洲电影一级黄| 亚洲第一主播视频| 亚洲综合丁香婷婷六月香| 国产精品久久久久久久久免费丝袜| 精品国产一区二区三区久久久蜜月| 欧美日韩美少妇| 日本高清不卡在线观看| 91在线观看视频| 99re这里都是精品| 99精品欧美一区二区蜜桃免费 | 国产精品美女www爽爽爽| 久久综合999| 国产亚洲一区二区三区四区 | 亚洲天堂久久久久久久| 国产精品国产三级国产aⅴ入口| 久久久午夜精品理论片中文字幕| 欧美va亚洲va国产综合| 精品精品欲导航| 精品99999| 国产欧美日韩亚州综合| 国产精品久久久久久户外露出 | 欧美三级在线播放| 欧美午夜片在线观看| 欧美午夜一区二区三区| 欧美乱妇15p| 欧美一级高清片在线观看| 精品少妇一区二区三区视频免付费 | 久久综合久久综合久久综合| 精品国产一区二区三区久久久蜜月| 26uuu精品一区二区在线观看| 欧美草草影院在线视频| 国产亚洲欧美日韩俺去了| 国产精品美女久久久久久久久久久| 国产精品不卡视频| 亚洲mv在线观看| 久久99热99| 成+人+亚洲+综合天堂| 色偷偷久久一区二区三区| 欧美视频三区在线播放| 91精品国产黑色紧身裤美女| 日韩欧美一区二区三区在线| 久久午夜羞羞影院免费观看| 国产精品国产三级国产a| 亚洲6080在线| 国产精品一区二区无线| 99精品久久只有精品| 欧美乱妇15p| 欧美激情在线一区二区| 一区二区三区日韩欧美| 美女一区二区在线观看| 成人午夜在线播放| 欧美日韩视频在线一区二区| 欧美精品一区二区三区在线播放| 国产精品成人免费在线| 日日夜夜免费精品| 国产成人精品一区二区三区网站观看 | 在线播放国产精品二区一二区四区 | 日韩理论片一区二区| 天堂在线亚洲视频| 国产jizzjizz一区二区| 欧美视频一区二区在线观看| 26uuu国产电影一区二区| 亚洲在线视频网站| 粉嫩久久99精品久久久久久夜| 精品视频一区二区三区免费| 国产午夜精品福利| 免费看日韩精品| 91福利在线免费观看| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产精品久久人人爱蜜臀| 国产高清一区日本| 91精品国产综合久久久久久久| 国产精品久久二区二区| 久久99精品一区二区三区三区| 一道本成人在线| 国产精品美女久久久久久久久| 青青国产91久久久久久| 欧美午夜电影在线播放| 最新日韩在线视频| 久久97超碰色| 国产 日韩 欧美大片| 91精品国产综合久久福利| 最新不卡av在线| 国产激情视频一区二区在线观看 | 一级女性全黄久久生活片免费| 国产精品亚洲成人| 欧美成人r级一区二区三区| 亚洲国产成人av网| 色呦呦日韩精品| 亚洲婷婷综合久久一本伊一区| 国产成人免费视频网站高清观看视频| 日韩午夜精品视频| 天天av天天翘天天综合网 | 精品国产一区久久| 日日夜夜精品视频天天综合网| 色综合久久久久| 亚洲精品欧美激情| 色婷婷狠狠综合| 亚洲综合色噜噜狠狠| 一本大道av伊人久久综合| 中文字幕欧美区| 成人午夜在线播放| 亚洲私人黄色宅男| 91久久精品日日躁夜夜躁欧美| 亚洲精品视频一区二区| 色噜噜狠狠色综合欧洲selulu| 亚洲三级在线看|