RC6加密算法教程分析.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文档。上传文档
查看更多
密钥扩展算法 密钥扩展算法分为三步: 构造数组L,构造数组S, 混乱密钥。 需要输入的参数是密钥长度b和密钥数组key。 input b, key output S 此外,在扩展算法中使用两个常数, 记作Pw, Qw, 定义 如下: Pw = Odd (( e ? 2)2 w),Qw = Odd (( ? ?1 )2 w) 其中 e= 2.718281828459…(自然对数的底) ?= 1.618033988749…(黄金分割) Odd(x)表示大于或等于?x?(小于x的最大正整数) 的最小奇数 经过计算得 P16=0xb7e1 Q16=0x9e37 P32= 0xb7e15163 Q32= 0x9e3779b9 第一步:构造数组L input w,b,K output L 描述:将密钥由字节数组K[0,…, b ?1]填充至字数组L[0, …,c ?1], c=?b/u?(大于b/u的最小正整数), 其中u= w/8. 填充方式是按由低位到高位的自然 顺序 填充, 即 L[0] = k[3]k[2]k[1]k[0]; L[1] = k[7]k[6]k[5]k[4]; ……, L数组未填充部分用 零补充. 第二步:构造数组S 描述: S[0] = Pw For i= 1 to t ?1 do S[i] = S[i?1] + Qw 第三步:密钥混乱 input t, c, L , S 其中t=2(r+1) , c= ?8b/w? output Snew 描述: 在密钥中混乱, 得到最后的轮子密钥数 组S[0,...,t?1] i = j = 0; A = B = 0; do 3?max(t, c) times: A = S[i] = (S[i] + A +B)3; B= L[j] = (L[j] + A+ B)(A+B); i = (i+1)mod(t); j= (j+1)mod(c); 加密算法: 明文由长为w-bit的4个字A,B,C,D表 示(相当于4个寄存器), 且这4个w-bit字也表示最 后输出的密文. 明密文的首字节(即低位8比特)是放在A的 最低字节, 明密文的高位字节是放在D的最高字 节的. 我们用(A,B,C,D) =(B,C,D,A)来表示右边寄 存器的值赋给左边寄存器. 下面是用伪码描述的算法和一轮结构图 解密算法: C++源码示例: #define ROTL(x,y) (((x)(y(w-1))) | ((x)(w-(y(w-1))))) #define ROTR(x,y) (((x)(y(w-1))) | ((x)(w-(y(w-1))))) C++源码示例: C++源码示例: RC6加密算法 何 意 RC6算法简介: RC6是作为AES(Advanced Encryption Standard)的候选算法提交给NIST(美国国家标准局)的一种新的分组密码。它是在RC5的基础上设计的,以更好地符合AES的要求,且提高了安全性,增强了性能。 RC6秉承了RC5设计简单、广泛使用数据相关的循环移位思想,同时增强了抵抗攻击的能力,改进了RC5中循环移位的位数不依赖于寄存器中所有位的不足。RC6新的特色是输入的明文由原先2个区块扩展为4个,另外在运算方面则是使用了整数乘法,而整数乘法的使用则在每一个运算回合中增加了扩散(diffusion)的行为,并且使得即使很少的回合数也有很高的安全性。同时,RC6中所用的操作可以在大部分处理器上高效率地实现,提高了加密速度。RC6是一种安全、架构完整而且简单的区块加密法。它提供了较好的测试结果和参数方面相当大的弹性。RC6可以抵抗所有已知的攻击,能够提供AES所要求的安全性,可以说是近几年来相当优秀的一种加密法。 RC6不再使用2个64位工作寄存器,而是用4个32位寄存器。这就使得在每次循环中要进行2次循环移位操作,让更多的数据位来决定循环次数。RC6把明文分别存在4个区块A、B、C、D,刚开始分别包含明文的初始值,加密运算后则为4个密文的输出值。 决定RC6算法安全性的参数: 循环的轮数 密钥长度,单位为字节 明密文的字长,单位为bit w r b 一个详细的的RC6算法通常被称为RC6-w/r/b,w,r,b就是三个指定的参数,其选择的不 同会影响算法的安全性。 RC6算法中使用的基本运算 a×b, a+b, a?b为整数运算模2w 2 a b, a b: 将w-bit字a循环左(右)移b

文档评论(0)

阿里山的姑娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档