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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 16-02.html

?? 應(yīng)用密碼學(xué)電子書籍
?? HTML
字號(hào):
<html><head><TITLE>APPLIED CRYPTOGRAPHY, SECOND EDITION: Protocols, Algorithms, and Source Code in C:Pseudo-Random-Sequence Generators and Stream 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=16//-->
<!--PAGES=371-374//-->
<!--UNASSIGNED1//-->
<!--UNASSIGNED2//-->

<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="16-01.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="16-03.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>
<P><BR></P>
<P>Linear congruential generators remain useful for noncryptographic applications, however, such as simulations. They are efficient and show good statistical behavior with respect to most reasonable empirical tests. Considerable information on linear congruential generators and their implementations can be found in [942].
</P>
<P><FONT SIZE="+1"><B><I>Combining Linear Congruential Generators</I></B></FONT></P>
<P>Various people examined the combination of linear congruential generators [1595,941]. The results are no more cryptographically secure, but the combinations have longer periods and perform better in some randomness tests.
</P>
<P>Use this generator for 32-bit computers [941]:</P>
<!-- CODE //-->
<PRE>
static long s1 = 1 ; /* A &#147;long&#148; must be 32 bits long. */ static long s2 = 1 ;

#define MODMULT(a,b,c,m,s) q = s/a; s = b*(s-a*q) - c*q; if (s&lt0) s&#43;=m  ;
/* MODMULT(a,b,c,m,s) computes s*b mod m, provided that m=a*b&#43;c and 0 &lt= c &lt m. */

/* combinedLCG returns a pseudorandom real value in the range
* (0,1). It combines linear congruential generators with
* periods of 2<SUP>31</SUP>-85 and 2<SUP>31</SUP>-249, and has a period that is the
* product of these two prime numbers. */

double combinedLCG ( void )
{
  long q ;
  long z ;

  MODMULT ( 53668, 40014, 12211, 2147483563L, s1 )
  MODMULT ( 52774, 40692, 3791, 2147483399L, s2 )
  z = s1 - s2 ;
  if ( z &lt 1 )
    z &#43;= 2147483562 ;
  return z * 4.656613e-10 ;
}

/* In general, call initLCG before using combinedLCG. */
void initLCG ( long InitS1, long InitS2 )
{
  s1 = InitS1 ;
  s2 = InitS2 ;
}
</PRE>
<!-- END CODE //-->
<P>This generator works as long as the machine can represent all integers between-2<SUP>31</SUP> &#43; 85 and 2<SUP>31</SUP> - 85. The variables, <I>s</I><SUB>1</SUB> and <I>s</I><SUB>2</SUB>, are global; they hold the current state of the generator. Before the first call, they must be initialized. The variable <I>s</I><SUB>1</SUB> needs an initial value between 1 and 2147483562; the variable <I>s</I><SUB>2</SUB> needs an initial value between 1 and 2147483398. The generator has a period somewhere in the neighborhood of 10<SUP>18</SUP>.</P>
<P>If you only have a 16-bit computer, use this generator instead:</P>
<!-- CODE //-->
<PRE>
static int s1 = 1 ; /* An &#147;int&#148; must be 16 bits long. */
static int s2 = 1 ;
static int s3 = 1 ;

#define MODMULT(a,b,c,m,s) q = s/a; s = b*(s-a*q) - c*q; if
(s&lt0) s&#43;=m  ;

/* combined LCG returns a pseudorandom real value in the
range
* (0,1). It combines linear congruential generators with
* periods of 2<SUP>15</SUP>-405, 2<SUP>15</SUP>-1041, and 2<SUP>15</SUP>-1111, and has a period
* that is the product of these three prime numbers. */

double combinedLCG ( void )
{
  int q ;
  int z ;

  MODMULT ( 206, 157, 21, 32363, s1 )
  MODMULT ( 217, 146, 45, 31727, s2 )
  MODMULT ( 222, 142, 133, 31657, s3 )
  z = s1 - s2 ;
  if ( z &gt 706 )
    z -= 32362 ;
  z &#43;= s3 ;
  if ( z &lt 1 )
    z &#43;= 32362 ;
  return z * 3.0899e-5 ;
}

/* In general, call initLCG before using combinedLCG. */
void initLCG ( int InitS1, int InitS2, InitS3 )
{
  s1 = InitS1 ;
  s2 = InitS2 ;
  s3 = InitS3 ;
}
</PRE>
<!-- END CODE //-->
<P>This generator works as long as the machine can represent all integers between-32363 and 32363. The variables, <I>s</I><SUB>1</SUB>, <I>s</I><SUB>2</SUB>, and <I>s</I><SUB>3</SUB>, are global; they hold the current state of the generator. Before the first call, they must be initialized. The variable <I>s</I><SUB>1</SUB> needs an initial value between 1 and 32362. The variable <I>s</I><SUB>2</SUB> needs an initial value between 1 and 31726. The variable <I>s</I><SUB>3</SUB> needs an initial value between 1 and 31656. This generator has a period of 1.6*10<SUP>13</SUP>.</P>
<P>For both of these generators, the constant term <I>b</I> in the linear congruence is 0.</P>
<H3><A NAME="Heading3"></A><FONT COLOR="#000077">16.2 Linear Feedback Shift Registers</FONT></H3>
<P>Shift register sequences are used in both cryptography and coding theory. There is a wealth of theory about them; stream ciphers based on shift registers have been the workhorse of military cryptography since the beginnings of electronics.
</P>
<P>A <B>feedback shift register</B> is made up of two parts: a shift register and a <B>feedback function</B> (see Figure 16.1). The shift register is a sequence of bits. (The <B>length</B> of a shift register is figured in bits; if it is <I>n</I> bits long, it is called an <I>n-</I>bit shift register.) Each time a bit is needed, all of the bits in the shift register are shifted 1 bit to the right. The new left-most bit is computed as a function of the other bits in the register. The output of the shift register is 1 bit, often the least significant bit. The <B>period</B> of a shift register is the length of the output sequence before it starts repeating.</P>
<P>Cryptographers have liked stream ciphers made up of shift registers: They are easily implemented in digital hardware. I will only touch on the mathematical theory. Ernst Selmer, the Norwegian government&#146;s chief cryptographer, worked out the theory of shift register sequences in 1965 [1411]. Solomon Golomb, an NSA mathematician, wrote a book with Selmer&#146;s results and some of his own [643]. See also [970,971,1647].</P>
<P>The simplest kind of feedback shift register is a <B>linear feedback shift register</B>, or LFSR (see Figure 16.2). The feedback function is simply the XOR of certain bits in the register; the list of these bits is called a <B>tap sequence</B>. Sometimes this is called a <B>Fibonacci configuration</B>. Because of the simple feedback sequence, a large body of mathematical theory can be applied to analyzing LFSRs. Cryptographers like to analyze sequences to convince themselves that they are random enough to be secure. LFSRs are the most common type of shift registers used in cryptography.</P>
<P>Figure 16.3 is a 4-bit LFSR tapped at the first and fourth bit. If it is initialized with the value 1111, it produces the following sequence of internal states before repeating:</P>
<DL>
<DD>1 1 1 1
<DD>0 1 1 1
<DD>1 0 1 1
<DD>0 1 0 1
<DD>1 0 1 0
<DD>1 1 0 1
<DD>0 1 1 0
<DD>0 0 1 1
<DD>1 0 0 1
<DD>0 1 0 0
<DD>0 0 1 0
<DD>0 0 0 1
<DD>1 0 0 0
<DD>1 1 0 0
<DD>1 1 1 0
</DL>
<I><P><A NAME="Fig1"></A><A HREF="javascript:displayWindow('images/16-01.jpg',282,87 )"><IMG SRC="images/16-01t.jpg"></A>
<BR><A HREF="javascript:displayWindow('images/16-01.jpg',282,87)"><FONT COLOR="#000077"><B>Figure 16.1</B></FONT></A>&nbsp;&nbsp;Feedback shift register.</I>
<I></P>
<P><A NAME="Fig2"></A><A HREF="javascript:displayWindow('images/16-02.jpg',309,92 )"><IMG SRC="images/16-02t.jpg"></A>
<BR><A HREF="javascript:displayWindow('images/16-02.jpg',309,92)"><FONT COLOR="#000077"><B>Figure 16.2</B></FONT></A>&nbsp;&nbsp;Linear feedback shift register.</I>
</P>
<P>The output sequence is the string of least significant bits:
</P>
<DL>
<DD>1 1 1 1 0 1 0 1 1 0 0 1 0 0 0....
</DL>
<P>An <I>n-</I>bit LFSR can be in one of 2<SUP>n</SUP> - 1 internal states. This means that it can, in theory, generate a 2<SUP>n</SUP> - 1-bit-long pseudo-random sequence before repeating. (It&#146;s 2<SUP>n</SUP> - 1 and not 2<SUP>n</SUP> because a shift register filled with zeros will cause the LFSR to output a neverending stream of zeros&#151;this is not particularly useful.) Only LFSRs with certain tap sequences will cycle through all 2<SUP>n</SUP> - 1 internal states; these are the maximal-period LFSRs. The resulting output sequence is called an <B>m-sequence</B>.</P><P><BR></P>
<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="16-01.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="16-03.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女精品一区| 精品少妇一区二区三区日产乱码| 国产欧美日韩在线| 成人av资源站| 亚洲激情一二三区| 在线播放/欧美激情| 久久99精品国产麻豆不卡| 精品久久人人做人人爱| 国内国产精品久久| 国产精品伦理在线| 色综合一区二区| 亚洲专区一二三| 欧美一区二区久久久| 久久国产精品99久久人人澡| 久久久久国产成人精品亚洲午夜 | 亚洲欧美日韩久久| 在线精品视频一区二区三四| 午夜电影久久久| 欧美精品一区二区在线观看| 9色porny自拍视频一区二区| 午夜欧美视频在线观看| 久久久亚洲国产美女国产盗摄 | 日韩制服丝袜av| 欧美一卡2卡三卡4卡5免费| 国产精品一区二区你懂的| 亚洲黄色录像片| 精品国产成人系列| 色综合久久88色综合天天6 | 久久疯狂做爰流白浆xx| 中文字幕不卡一区| 欧美一区欧美二区| 92精品国产成人观看免费| 日韩影院免费视频| 欧美国产欧美综合| 69堂国产成人免费视频| 成人综合在线视频| 麻豆精品蜜桃视频网站| 亚洲免费在线看| 26uuu成人网一区二区三区| 91香蕉视频mp4| 国精品**一区二区三区在线蜜桃| 一卡二卡三卡日韩欧美| 国产清纯白嫩初高生在线观看91| 欧美日韩精品三区| 成人免费毛片a| 国产综合久久久久影院| 亚洲成人综合在线| 中文字幕中文字幕一区| 日韩精品专区在线影院重磅| 99久久免费国产| 国产精品99久久不卡二区| 日韩精品亚洲专区| 一区二区三区四区国产精品| 国产欧美一区二区精品仙草咪| 欧美一区二区性放荡片| 在线观看一区日韩| 成人激情av网| 国产成人久久精品77777最新版本| 日韩国产精品久久| 亚洲国产精品麻豆| 一区二区三区在线观看欧美| 国产精品美女久久久久久久| 久久精品一区二区| 久久新电视剧免费观看| 日韩三级.com| 欧美一区二区在线看| 欧美浪妇xxxx高跟鞋交| 欧美亚洲图片小说| 91国内精品野花午夜精品| 成人av电影免费观看| 粉嫩av亚洲一区二区图片| 国产福利精品一区二区| 精品在线免费视频| 激情欧美一区二区三区在线观看| 麻豆成人久久精品二区三区小说| 偷拍与自拍一区| 亚洲va国产va欧美va观看| 亚洲大型综合色站| 日韩精品成人一区二区在线| 日本一道高清亚洲日美韩| 丝袜美腿高跟呻吟高潮一区| 午夜激情综合网| 奇米在线7777在线精品 | 国产精品一卡二卡| 国产尤物一区二区在线| 国产综合一区二区| 成人综合在线网站| 91在线国产观看| 欧美日韩一级二级| 日韩三级高清在线| 337p粉嫩大胆噜噜噜噜噜91av| 久久久久久夜精品精品免费| 中文字幕免费在线观看视频一区| 中文字幕高清一区| 一区二区三区在线免费播放| 亚洲国产va精品久久久不卡综合 | 久久99精品久久久久久动态图| 久久丁香综合五月国产三级网站| 国产精品一区一区三区| 懂色av中文一区二区三区| 99re免费视频精品全部| 欧美日韩精品一区二区在线播放| 欧美大尺度电影在线| 国产亚洲精品bt天堂精选| 国产精品超碰97尤物18| 亚洲成av人影院| 国产一区美女在线| 91色视频在线| 欧美一级夜夜爽| 国产精品久久久久aaaa| 亚洲成人一区二区在线观看| 激情久久久久久久久久久久久久久久| 国产成人综合视频| 欧美性色黄大片| 久久影院午夜论| 日韩理论电影院| 精品一区二区三区在线视频| 成人免费视频caoporn| 欧美精品乱码久久久久久| 2023国产精品| 亚洲一区二区免费视频| 国产乱子伦一区二区三区国色天香| 99精品视频一区| 欧美精品一区男女天堂| 亚洲国产成人91porn| 国产99久久精品| 7777精品久久久大香线蕉| 亚洲欧洲在线观看av| 麻豆免费看一区二区三区| 色av一区二区| 欧美激情艳妇裸体舞| 午夜在线成人av| 91在线小视频| 国产色综合久久| 日本女优在线视频一区二区| 99久久精品免费看国产免费软件| 日韩精品一区二区三区视频播放| 亚洲人成亚洲人成在线观看图片| 玖玖九九国产精品| 欧美色图12p| 亚洲天堂2016| 国产99久久久国产精品免费看| 欧美一区2区视频在线观看| 亚洲精品第1页| 99精品视频一区| 国产精品三级视频| 狠狠色丁香婷婷综合| 91精品国产日韩91久久久久久| 一区二区三区自拍| 99re在线视频这里只有精品| 国产午夜精品一区二区三区嫩草| 三级在线观看一区二区| 91九色02白丝porn| 亚洲色图欧洲色图| 成人av在线电影| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品久久国产老人久久综合| 亚洲一区二区三区不卡国产欧美| 99精品一区二区| 综合色中文字幕| caoporn国产一区二区| 国产午夜精品久久| 国产一区二区三区高清播放| 日韩一级免费观看| 青青草97国产精品免费观看无弹窗版| 欧美在线三级电影| 亚洲va韩国va欧美va| 欧美日韩高清一区二区三区| 亚洲国产va精品久久久不卡综合| 在线观看91精品国产入口| 一区二区三区在线高清| 欧美在线观看禁18| 天堂av在线一区| 日韩欧美一区中文| 韩国午夜理伦三级不卡影院| 久久综合国产精品| 国产成人鲁色资源国产91色综| 国产人久久人人人人爽| 成人黄色777网| 亚洲婷婷综合色高清在线| 91丨porny丨首页| 一区二区三区在线免费播放 | 4438亚洲最大| 另类小说综合欧美亚洲| 久久久久亚洲综合| 99re热这里只有精品视频| 亚洲午夜视频在线| 欧美mv日韩mv国产| 国产99久久久国产精品潘金| 综合自拍亚洲综合图不卡区| 欧美亚洲图片小说| 久久99精品久久久久久动态图 | 欧美大片一区二区| 精品一二三四在线| 国产精品成人在线观看| 在线一区二区视频| 精品一二三四在线| 一区二区三区自拍| 精品国产乱码久久久久久图片| 国产成人免费在线观看|