第六章 对称加密主要内容.pptVIP

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

密码编码学与网络安全 福州大学软件学院 林宇峰 Lin_yf@ Blowfish 一种对称分组密码,Bruce Schneier 在 1993/94 设计 特点 快速:18时钟周期一个字节(32-bit CPU) 紧凑:消耗不到5k内存 简单:结构简单,易于实现和判定算法强度 安全性可变:通过选择不同的密钥长度选择不同的安全级别。从 32 位到32*14=448位不等 已经用于多种产品 Blowfish 子密钥生成算法 使用 32 到 448 bit 的密钥 这个密钥用来产生 18个 32-bit 子密钥存储在数组P中:Pj 四个 8x32 的盒存储在 Si,j 子密钥生成算法: 用 PI 初始化数组P和S盒 数组P和密钥 XOR (如果需要,重复使用密钥) 用当前的 P S 加密 0,加密结果依次替换 P S 需要 521 次加密 Blowfish 加密 使用两个基本操作: 模232的加法 XOR 明文分成左右两半,各32-bit,L0 R0 for i = 1 to 16 do Ri = Li-1 XOR Pi; Li = F[Ri] XOR Ri-1; L17 = R16 XOR P18; R17 = L16 XOR i17; 其中 F[a,b,c,d] = ((S1,a + S2,b) XOR S3,c) + S4,a Blowfish 算法讨论 Blowfish算法可能是最难攻破的传统加密算法,因为S-BOX与密钥相关 算法本身的特点 由于子密钥和S-BOX的生成需要执行 521 次Blowfish 加密算法,所以不适合于密钥频繁变化的应用场合 子密钥和 S-BOX 生成后可以保存起来 与Feistel分组密钥算法不同,每一步的两个部分都参与运算,不是简单的传递 密钥变长带来灵活性 速度快,在同类算法中相比较是最快的 /blowfish-download.html RC5 一个私有的加密算法,由 RSADSI (RSA Data Security, Inc) 拥有 作者为Ron Rivest 1994设计、1995公开 能适应于不同字长的处理器(一个字的bit数是RC5的一个参数;) 加密的轮数可变(轮数是RC5的第二个参数) 密钥长度是可变的(密钥长度是RC5的第三个参数) 非常清晰简洁的设计 存储容量要求低,适于软件或者硬件实现 安全性高 RC5参数 RC5 是由一系列加密算法组成 (RC5-w/r/b) w: 表示字长,RC5加密两字长分组,可用值为16、32、64 r: 表示轮数 (0..255) b: 表示密钥K的字节数 (0..255) 算法作者建议版本为RC5-32/12/16 32-bit 字长,分组大小 64-bit 12 轮循环 密钥为 16 bytes (128-bit) RC5 密钥扩展 总计产生 t=2r+2 个子密钥,每个密钥的长度为一个字长( w 位 )。 对于给定的参数r和w,开始初始化运算 Pw=Odd((e-2)2w) Qw=Odd((Φ-1)2w) 这里 e =2.718281828459…(自然对数的底) Φ=1.618033988749…(黄金分割比率) 并且Odd[x]表示最接近x且可左可右的奇数。 例: Odd[e]=3, Odd[Φ]=1 用上述两个常数,按下述方式得到初始化的数组S: S[0]=Pw For i=1 to t-1 do S[i]=S[i-1]+Qw 其中的加法是模 2w 的加法运算。 为了增强复杂性,可对数组S,L做多次处理: i=j=x=y=0 do 3×max(t,c) times: { S[i]=(S[i]+X+Y)3; X=S[i];i=(i+1)(mod t); L[j]=(L[j]+X+Y)(X+Y); Y=L[j];j=(j+1)(mod c); } Rivest 声称,这个扩展函数具有一定的单向性 RC5 基本运算 整个加密使用了下述3个基本运算和它们的逆运算: 模2w加法运算,表示为“+”; 逐比特异或运算,表示为“⊕”; 字的循环左移运算:字x循环左移y比特,表示为 xy 实际只有y的log102w个低位比特来确定x的循环数 它的逆为循环右移y比特,表示为 xy RC5的加密过程 加密:将明文分组为左右A,B;用变量Li,Ri参与 L0 = A + S[0]; R0 = B + S[1]; for i = 1 to r do Li = ((Li-1 XOR Ri-1) Ri-1) + S[2 x i]; Ri = ((Ri-1 XOR Li) Li) + S[2 x i + 1]; 每轮迭代相当于DES的两

文档评论(0)

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

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

1亿VIP精品文档

相关文档