资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,对称密码学及其应用,*,第八章 典型序列密码,A5,算法,RC4,算法,PKZIP,算法,SNOW 2.0,算法,WAKE,算法,SEAL,算法,8.1 A5,算法,A5,是一个序列密码算法,可以在硬件上高效实现,该算法的设计没有公开,但最终还是泄漏出去了,算法的变种,A5/1,较强的版本,A5/2,较弱的版本,A5/3,GSM,联盟安全组和,3GPP,设计,基于,3GPP,中使用的,Kasumi,算法,1,0,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,1,clock,control,18,17,16,0,21,20,0,0,21,22,20,C3,C2,C1,R2,R1,R3,1,1,0,0,1,0,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,1,0,0,1,A5/1,算法示意图,A5,算法,A,的生成多项式为:,B,的生成多项式为:,C,的生成多项式为:,三个线形反馈移存器的生成多项式均为本原多项式,移位是由时钟控制的,且遵循“服从多数”的原则。,A5,算法,GSM,中使用,A5,加密算法,A5,算法在,GSM,系统中的运算过程,先将,A,、,B,、,C,清零,并把,64,比特的会话密钥,Kc,注入,LFSR,作为其初始值,再将,22,比特帧数,Fn,与,LFSR,的反馈值做模,2,加注入,LFSR,,,开启,LFSR,的“服从多数”停走钟控功能,对寄存器进行移位,使密钥和帧号进行充分混合,这样便可以产生密钥流。,注意:在每获得,114,比特的密钥流之前,要舍去产生的,100,比特输出。,8.2 RC4,算法,算法简介,RC4,developed by Ron,Rivest,of the Massachusetts Institute of,Technology(MIT,),开始时算法保密,并有自己的专利,1994,年,9,月,有人将它的源代码张贴到网上,并迅速扩散到全世界,算法应用广泛(,Microsoft Windows,Lotus,Notes,SSL,协议,,WLAN,协议等),算法特点,适于使用软件实现,基于分组密码的设计思想进行设计,8.2 RC4,算法,算法描述:,算法以,OFB,方式工作:密钥序列与明文相互独立。,有一个,256,字节的,S-,盒,每项都是数字,0,到,255,的置换,并且这个置换是一个可变长度密钥的函数。有两个计数器:,i,和,j,,初值为,0,。,8.2 RC4,算法,密钥调动算法(,KSA,):(目的:设置,S,的初始排列),1,)线性填充,S(i,)=I(for I=0 to 255).,2,),K,填充:将,K,反复填充到,K(0)to K(255),3,),S,随机化:,j:=0;,for i:=0 to 255 do begin,j:=j+,S(i,)+,K(i,)(mod 256),swap(S(i,),S(j,),end,8.2 RC4,算法,伪随机生成算法:用来选取随机元素并修改,S,的原始排列顺序;(,i,j,的初始值为,0.,),j:=j+1(mod 256),j:=j+,S(i,)(mod 256),swap(S(i,),S(j,)/,目的改变,S,盒,t:=,S(i,)+,S(j,)(mod 256),k:=,S(t,),8.3 PKZIP,算法,算法简介:,PKZIP,算法广泛应用于文档数据压缩程序,其中集入了,R.Schlafly,设计的加密算法,是一种按字节加密的流密码。,算法特点:,算法简单,易于实现,不安全,8.3 PKZIP,算法,算法描述:,初始化阶段:算法有三个,32-,比特变量,即,96bit,存储,由密钥初始化存储器,为,K,0,=305 419 896,,,K,1,=591 751 049,,,K,2,=878 082 192,,,加密阶段:从,K2,推出一个,8-,比特密钥,K3,,,k3,作为加解密密钥,明文字节在加密过程中不断更新存储器存数。,K,3,=(K,2,|3)*(K,2,|3)1)8,C,i,=P,i,K,3,/k,3,作为加解密密钥,K,0,=crc32(K,0,P,i,)/,明文参与,K,0,,,K,1,,,K,2,的改变,K,1,=,K,1,+(K,0,&0 x000000ff),K,1,=,K,1,*134775813+1,K,2,=crc32(K,2,K,1,24),8.4 SNOW 2.0,算法,由,Partik,Ekdahl,和,Thomas Johansson,于,2000,年提出,基于线性反馈移存器和有限状态机的序列密码算法,8.5 WAKE,算法,算法简介:,WAKE is the Word Auto Key Encryption algorithm,invented by David Wheeler.,它产生一个,32-,位字串作为密钥流;,算法速度很快,工作在,CFB,模式下,使用了一个包含,256,个,32,位值的,S-,盒,8.5 WAKE,算法,算法描述:,初始化:由密钥产生,S-,盒中的各项,S,i,;用密钥初始化四个寄存器,a,0,b,0,c,0,和,d,0,密钥流序列字的产生:,K,i,=,d,i,;,C,i,=,P,i,XOR,K,i,四个寄存器的更新:,a,i+1,=M(,a,i,C,i,),b,i+1,=M(,b,i,a,i+1,),c,i+1,=M(,c,i,b,i+1,),d,i+1,=M(,d,i,c,i+1,),M(,x,y,)=(,x,+,y,)8 XOR,S,(x+y)255,8.5 WAKE,算法,算法分析:,David Wheeler,给出了,S-,盒的生成过程,实际上,任何一个产生随机字节和随机置换的算法都可用来产生,S-,盒;,对某些选择明文和选择密文攻击来说是不安全的。,8.6 SEAL,算法,算法简介:,designed at IBM by Phil,Rogaway,and Don Coppersmith.,算法特点:,适于用软件实现,特别适于,32-bit,处理器,基于伪随机函数的原理进行设计,根据,160-bit,的密钥,K,和,32-bit,n,,计算一个长的,随机字串,k(n,),(长度是小于,64k,字节的任何值)。,好处,1,:可以轻易访问密钥序列中的任何位置,好处,2,:简化了标准序列密码中的同步问题,8.5 WAKE,算法,SEAL,的内部循环,8.6 SEAL,算法,算法思想:,使用一个大的、秘密的、密钥派生的,S-,盒(,T,),;,SEAL,必须将它的密钥预处理到内部表中,这些表大概有,3k,字节大小,并且它们的计算大约需要,200,个,SHA,计算。因此,,SEAL,不能用在没有预处理密钥时间或没有内存来保存表的情况下。,根据轮数改变轮函数,根据迭代次数改变迭代函数。,算法分析:,速度快;没有明显缺陷;,SEAL,已有专利权。,
展开阅读全文