- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
-序列密码.ppt
RC4算法描述: 用从1到256个字节(8-2048比特)的可变长度密钥初始化一个256个字节的状态向量S,S的元素记为s[0], s[1], …, s[255],从始至终置换后的S包含从0~255的所有的8比特数。对于加密和解密,字节K由S中255个元素按一定方式选出一个元素而生成。每生成一个K的值,S中的元素个体就被重新置换一次。 4.6 RC4序列密码 RC4使用256个字节的S表和两个指针(I和J)。 S表的值S0,S1,…,S255是0,1,…,255的一个排列。 I和J的初值为0。 我们把RC4算法看成一个有限状态自动机。把S表和I、J指针的具体取值称为RC4的一个状态: T= S0 ,S1,…,S255 ,I,J 对状态T进行非线性变换,产生出新的状态 ,并输出密钥序列中一个字节k 。 4.6 RC4序列密码 RC4的下一状态函数定义如下: ⑴ I=0,J=0; ⑵ I= I+1 mod 256; ⑶ J=J+S[I] mod 256; ⑷ 交换S[I]和S[J] 。 RC4的输出函数定义如下: ⑴ h= S[I] + S[J] mod 256; ⑵ k = S[h] 。 4.6 RC4序列密码 在用RC4加解密之前,应当首先对S表初始化。初始化的过程如下: ⑴ 对S表进行线性填充,即令 S[0]=0,S[1]=1,S[2]=2,…,S[255] =255; ⑵用密钥填充另一个256字节的R表R[0],R[1],…,R[255],如果密钥的长度小于R表的长度,则依次重复填充,直至将R表填满。 4.6 RC4序列密码 ⑶ J=0; ⑷ 对于I=0 到255重复以下操作, ① J=(J+S[I]+R[I]) mod 256; ② 交换S[I]和S[J] 。 RC4算法的优点是算法简单,高效,特别适合软件实现。 4.6 RC4序列密码 /* 初始化 (注:示例图中T表即教材中的R表) */ for i = 0 to 255 do S [ i ] = i ; T [ i ] = K [ i mod keylen ] ; /* S的初始置换(注:示例图中T表即教材中的R表) */ j = 0 ; for i = 0 to 255 do j = ( j + S [ i ] + T [ i ] ) mod 256 ; Swap ( S [ i ] , S [ j ] ) ; /* 密钥流的生成 */ i , j = 0 ; while ( true ) i = ( i + 1 ) mod 256 ; j = ( j + S [ i ] ) mod 256 ; Swap ( S [ i ] , S [ j ] ) ; t = ( S [ i ] + S [ j ] ) mod 256 ; k = S [ t ] ; 习题 ①设g(x)=x4 +x +1, g(x)为本原多项式,以其为连接多项式组成线性移位寄存器。画出逻辑图,写出输出序列及状态变迁。 ②设g(x)=x4 +x3 +1, g(x)为本原多项式,以其为连接多项式组成线性移位寄存器。画出逻辑图,写出输出序列及状态变迁。 试对比以上两组输出序列的关系。 习题 ③使用多项式g(x)= x4 +x3 +x2 +x +1为连接多项式组成线性移位寄存器。画出逻辑图,写出输出序列及状态变迁。并分析与(1)、(2)的输出序列有什么不同? 注:上式是不可约多项式,但不是本原多项式 分别采用初值1111、1000、0010穷举状态变迁。 ④证明:GF(2)上的 n级移位寄存器共有 2n个 状态,因此共有 种不同的反馈函数,其中 线 性反馈函数只有 2n-1种,其余均为非线性。 2n 2 第七讲 序列密码 结束 cf. Table 1.2 for examples of security attacks, and Table 1.3 for definitions of threat and attack * 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 2. m序列的随机性评估 m序列具有良好的随机性: 游程:称序列中连续的i个1为长度等于i的1游程,同样,称序列中连续的i个0为长度等于i的0游程。 4.2 线性反馈移位寄存器LFSR * 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 2. m序列的随机性评估 ②将序列的一个周期首尾相接,其游程总数N=2 n-1 。 ③其中1游程和0游程的数目各占一半。当n2时,游程分布如下(1≤i≤n-2): 长
文档评论(0)