现代密码学第五讲(一):流密码.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
现代密码学第五讲(一):流密码

基于移位寄存器的流密码算法 Geffe序列发生器 两个LFSR作为复合器的 输人,第三个LFSR控制 复合器的输出 如果a1, a2, 和 a3是三个LFSR的输出,则Geffe发生器的输出表示为: b = (a1 ∧ a2) ⊕ (? a1 ∧ a3)= (a1 ∧ a2) ⊕ ( a1 ∧ a3) ⊕ a3 基于移位寄存器的流密码算法 钟控生成器是由一个或几个FSR输出序列,控制一个FSR的时钟。最简单的钟控生成器是用一个LFSR控制另一个LFSR的时钟脉冲,如图: LFSR1 LFSR2 当LFSR1输出1时,时钟脉冲通过与门使LFSR2进行一次移位,从而生成下一位;当LFSR1输出0时,时钟脉冲无法通过与门使LFSR2移位(走),从而LFSR2重复输出前一位(停)。因此,这种钟控生成器也被形象地称之为走停生成器(Sstop-and-Ggo generator)。 A5算法是GSM系统中主要使用的序列密码加密算法,用来保护从基站到移动设备之间传输的信息 。 A5算法有三种版本:A5/1算法限制出口,保密性较强;A5/2算法没有出口限制,但保密性较弱;A5/3算法则是更新的版本,它基于KASUMI算法,但尚未被GSM标准采用。 基于移位寄存器的流密码算法 基于移位寄存器的流密码算法 基于移位寄存器的流密码算法 实际使用中由一个22比特长的参数(帧号码,Fn)和64比特长的参数(会话密钥,Kc)生成两个114比特长的序列(密钥流)的黑盒子。这样设计的原因是GSM会话每帧含228比特,通过与A5算法产生的228比特密钥流进行异或实现保密。 x、y、z(位置分别为A、B、C的第9、11、11位)进行钟控,若三个位中间至少有两个为“1”,则为“1”的寄存器进行一次进动,而为“0”的不移。反过来,若三个位中至少有两个为“0”,则为“0”的寄存器进行一次移位,而为“1”的不移。 这种机制保证了每次至少有两个LFSR被驱动移位。 其它流密码算法——RC4算法 RC4是由Rivest于1987年开发的一种序列密码,它已被广泛应用于Windows、Lotus Notes和其它软件,还被用于安全套接字(SSL)和无线通信系统等。RC4算法最初没有被公布,但其源代码在1994年被人匿名发布,在这种情况下RSA数据公司于1997年公开了RC4算法. RC4不是基于LFSR的序列密码,它使用了一个256字节大小的非线性数据表(简称S表),依据表进行非线性变换,得到密钥流. S表的值S0,S1,…,S255是数字0到255的一个排列,RC4有两个计数器I和J,初值都为0. RC4的优点是算法简单、高效,特别适于软件实现,加密速度比DES大约快10倍. RC4可以支持不同密钥长度,美国政府特别限定,用于出口的RC4的密钥长度不得超过40位. 其它流密码算法——RC4算法 RC4首先进行S表的初始化,过程如下: 对S表进行填充:Si=i,0≤i255; 用密钥填充另一个256字节的数组K,如果密钥长度小于256字节,则依次重复填充,直至填满这个数组:K0,K1,…,K255; J=0; 对于I=0到255重复以下步骤: J=J+ SI+KI (mod 256); 交换SI和SJ 。 RC4按下列步骤输出密钥流的一个字节z: I=0,J=0; I=I + 1(mod 256); J= SI + SJ(mod 256); 交换SI和SJ; t=SI+SJ(mod 256); z=St。 RC4算法 密钥调度算法KSA 然后利用如下循环构建实际的S数据表: j:=0; for i=0 to 7 do j:=(j+s(i)+k(i)) mod 8; swap(S(i),S(j)); 该循环以j=0和i=0开始。使用更新公式后j为: j=(0+S(0)+K(0)) mod 8=5 S数据表的第一个操作是将S(0)与S(5)互换。 RC4算法 索引i加1后,j的下一个值为: j=(5+S(1)+K(1)) mod 8=(5+1+6) mod 8=4 即将S数据表的S(1)和S(4)互换: RC4算法 伪随机数生成算法PRGA 这样数据表S就可以用来生成随机的密钥流序列。从j=0和i=0开始,RC4如下计算第一个密钥字: i=(i+1) mod 8=(0+1) mod 8 =1 j=(j+s(i)) mod 8=(0+s(1)) mod 8=(0+4) mod 8=4 swap S(1)和S(4) RC4算法 RC4算法 然后如下计算t和k:

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档