《对称密码学及其应用 第8章 典型序列密码.ppt》由会员分享,可在线阅读,更多相关《对称密码学及其应用 第8章 典型序列密码.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、对称密码学及其应用对称密码学及其应用1第八章第八章 典型序列密码典型序列密码 nA5算法算法 nRC4算法算法 nPKZIP算法算法 nSNOW 2.0算法算法 nWAKE算法算法nSEAL算法算法 对称密码学及其应用对称密码学及其应用28.1 A5算法算法nA5是一个序列密码算法是一个序列密码算法n可以在硬件上高效实现可以在硬件上高效实现n该算法的设计没有公开该算法的设计没有公开n但最终还是泄漏出去了但最终还是泄漏出去了n算法的变种算法的变种 nA5/1 较强的版本较强的版本nA5/2 较弱的版本较弱的版本nA5/3nGSM联盟安全组和联盟安全组和3GPP设计设计n基于基于3GPP中使用的中
2、使用的Kasumi算法算法对称密码学及其应用对称密码学及其应用3 1011110110101101010101110010010101011100110101010011011101100101clock control18 17 16 02120 0 0212220C3C2C1R2R1R311001011110110101101010011100100101010111001010101001101110110010111110110101101010111001A5/1算法示意图算法示意图对称密码学及其应用对称密码学及其应用4A5算法算法nA的生成多项式为:的生成多项式为:nB的生成多项式
3、为:的生成多项式为:nC的生成多项式为:的生成多项式为:n三个线形反馈移存器的生成多项式均为本原三个线形反馈移存器的生成多项式均为本原多项式多项式n移位是由时钟控制的,且遵循移位是由时钟控制的,且遵循“服从多数服从多数”的原则。的原则。对称密码学及其应用对称密码学及其应用5A5算法算法n GSM中使用中使用A5加密算法加密算法 对称密码学及其应用对称密码学及其应用6A5算法在算法在GSM系统中的运算过程系统中的运算过程n先将先将A、B、C清零,并把清零,并把64比特的会话密钥比特的会话密钥Kc注入注入LFSR作为其初始值作为其初始值n再将再将22比特帧数比特帧数Fn与与LFSR的反馈值做模的反
4、馈值做模2加加注入注入LFSR,n开启开启LFSR的的“服从多数服从多数”停走钟控功能,对停走钟控功能,对寄存器进行移位,使密钥和帧号进行充分混合,寄存器进行移位,使密钥和帧号进行充分混合,这样便可以产生密钥流。这样便可以产生密钥流。n注意:在每获得注意:在每获得114比特的密钥流之前,要舍比特的密钥流之前,要舍去产生的去产生的100比特输出。比特输出。对称密码学及其应用对称密码学及其应用78.2 RC4算法算法 n算法简介算法简介nRC4,developed by Ron Rivest of the Massachusetts Institute of Technology(MIT)n开始时
5、算法保密,并有自己的专利开始时算法保密,并有自己的专利n1994年年9月,有人将它的源代码张贴到网上,月,有人将它的源代码张贴到网上,并迅速扩散到全世界并迅速扩散到全世界n算法应用广泛(算法应用广泛(Microsoft Windows,Lotus Notes,SSL协议,协议,WLAN协议等)协议等)n算法特点算法特点n适于使用软件实现适于使用软件实现n基于分组密码的设计思想进行设计基于分组密码的设计思想进行设计对称密码学及其应用对称密码学及其应用88.2 RC4算法算法n算法描述:算法描述:n算法以算法以OFB方式工作:密钥序列与明文相方式工作:密钥序列与明文相互独立。互独立。n有一个有一个
6、256字节的字节的S-盒,每项都是数字盒,每项都是数字0到到255的置换,并且这个置换是一个可变的置换,并且这个置换是一个可变长度密钥的函数。有两个计数器:长度密钥的函数。有两个计数器:i和和j,初值为初值为0。对称密码学及其应用对称密码学及其应用98.2 RC4算法算法n密钥调动算法(密钥调动算法(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(
7、i)+K(i)(mod 256)swap(S(i),S(j)end对称密码学及其应用对称密码学及其应用108.2 RC4算法算法n伪随机生成算法:用来选取随机元素并修改伪随机生成算法:用来选取随机元素并修改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)对称密码学及其应用对称密码学及其应用118.3 PKZIP算法算法 n算法简介:算法简介:nPKZIP算法广泛应用于文档数据压缩程序,算法广泛应用
8、于文档数据压缩程序,其中集入了其中集入了R.Schlafly设计的加密算法,设计的加密算法,是一种按字节加密的流密码。是一种按字节加密的流密码。n算法特点:算法特点:n算法简单,易于实现算法简单,易于实现n不安全不安全对称密码学及其应用对称密码学及其应用128.3 PKZIP算法算法n算法描述:算法描述:n初始化阶段:算法有三个初始化阶段:算法有三个32-比特变量,即比特变量,即96bit存储,由密钥存储,由密钥初始化存储器,为初始化存储器,为K0=305 419 896,K1=591 751 049,K2=878 082 192,n加密阶段:从加密阶段:从K2推出一个推出一个8-比特密钥比特
9、密钥K3,k3作为加解密密钥,作为加解密密钥,明文字节在加密过程中不断更新存储器存数。明文字节在加密过程中不断更新存储器存数。K3=(K2|3)*(K2|3)1)8Ci=Pi K3 /k3作为加解密密钥作为加解密密钥K0=crc32(K0,Pi)/明文参与明文参与K0,K1,K2的改变的改变K1=K1+(K0&0 x000000ff)K1=K1*134775813+1K2=crc32(K2,K124)对称密码学及其应用对称密码学及其应用138.4 SNOW 2.0算法算法 n由由Partik Ekdahl和和Thomas Johansson于于2000年提出年提出 n基于线性反馈移基于线性反馈
10、移存器和有限状态存器和有限状态机的序列密码算机的序列密码算法法 对称密码学及其应用对称密码学及其应用148.5 WAKE算法算法n算法简介:算法简介:nWAKE is the Word Auto Key Encryption algorithm,ninvented by David Wheeler.n它产生一个它产生一个32-位字串作为密钥流;位字串作为密钥流;n算法速度很快算法速度很快n工作在工作在CFB模式下模式下n使用了一个包含使用了一个包含256个个32位值的位值的S-盒盒对称密码学及其应用对称密码学及其应用158.5 WAKE算法算法n算法描述:算法描述:n初始化:由密钥产生初始化:
11、由密钥产生S-盒中的各项盒中的各项Si;用密钥初始;用密钥初始化四个寄存器化四个寄存器a0,b0,c0,和和 d0n密钥流序列字的产生:密钥流序列字的产生:Ki=di;Ci=Pi XOR Kin四个寄存器的更新:四个寄存器的更新:1.ai+1=M(ai,Ci)2.bi+1=M(bi,ai+1)3.ci+1=M(ci,bi+1)4.di+1=M(di,ci+1)nM(x,y)=(x+y)8 XOR S(x+y)255对称密码学及其应用对称密码学及其应用168.5 WAKE算法算法n算法分析:算法分析:nDavid Wheeler给出了给出了S-盒的生成过程,盒的生成过程,实际上,任何一个产生随机
12、字节和随机置实际上,任何一个产生随机字节和随机置换的算法都可用来产生换的算法都可用来产生S-盒;盒;n对某些选择明文和选择密文攻击来说是不对某些选择明文和选择密文攻击来说是不安全的。安全的。对称密码学及其应用对称密码学及其应用178.6 SEAL算法算法n算法简介:算法简介:ndesigned at IBM by Phil Rogaway and Don Coppersmith.n算法特点:算法特点:n适于用软件实现适于用软件实现n特别适于特别适于 32-bit 处理器处理器n基于伪随机函数的原理进行设计,根据基于伪随机函数的原理进行设计,根据160-bit的密钥的密钥K和和32-bit n,
13、计算一个长的,计算一个长的随机字串随机字串k(n)(长度是小于(长度是小于64k字节的任何值)。字节的任何值)。n好处好处1:可以轻易访问密钥序列中的任何位置:可以轻易访问密钥序列中的任何位置n好处好处2:简化了标准序列密码中的同步问题:简化了标准序列密码中的同步问题对称密码学及其应用对称密码学及其应用188.5 WAKE算法算法 SEAL的内部循环的内部循环 对称密码学及其应用对称密码学及其应用198.6 SEAL算法算法n算法思想:算法思想:n使用一个大的、秘密的、密钥派生的使用一个大的、秘密的、密钥派生的S-盒(盒(T);nSEAL必须将它的密钥预处理到内部表中,这些表必须将它的密钥预处理到内部表中,这些表大概有大概有3k字节大小,并且它们的计算大约需要字节大小,并且它们的计算大约需要200个个SHA计算。因此,计算。因此,SEAL不能用在没有预处不能用在没有预处理密钥时间或没有内存来保存表的情况下。理密钥时间或没有内存来保存表的情况下。n根据轮数改变轮函数,根据迭代次数改变迭代函根据轮数改变轮函数,根据迭代次数改变迭代函数。数。n算法分析:算法分析:n速度快;没有明显缺陷;速度快;没有明显缺陷;SEAL已有专利权。已有专利权。