下载此文档

RC6加密算法.ppt


文档分类:论文 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
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算法安全性的参数:循环的轮数密钥长度,单位为字节明密文的字长,单位为bitwrb一个详细的的RC6算法通常被称为RC6-w/r/b,w,r,b就是三个指定的参数,其选择的不同会影响算法的安全性。RC6算法中使用的基本运算a×b, a+b, a?b为整数运算模2wa×b, a+b, a?b为整数运算模2w2a <<<b, a >>>b: 将w-bit字a循环左(右)移b的最低有效lgw-bit所表示的位数(用lgw表示log2w)a <<<b, a >>>b: 将w-bit字a循环左(右)移b的最低有效lgw-bit所表示的位数(用lgw表示log2w)3a⊕b为比特的异或a⊕b为比特的异或1RC6 组成密钥扩展算法加密算法解密算法123密钥扩展算法密钥扩展算法分为三步: 构造数组L,构造数组S, 混乱密钥。需要输入的参数是密钥长度b和密钥数组key。input b, keyoutput S此外,在扩展算法中使用两个常数, 记作Pw, Qw, 定义如下: Pw = Odd (( e ? 2)2 w),Qw = Odd (( ??1 )2 w) 其中 e= **********…(自然对数的底) ?= **********…(黄金分割) Odd(x)表示大于或等于x(小于x的最大正整数) 的最小奇数经过计算得 P16=0xb7e1 Q16=0x9e37 P32= 0xb7e15163 Q32= 0x9e3779b9第一步:构造数组Linput w,b,Koutput 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]; ……, :当w=32,b=10时,c=3L[0] = k[3]k[2]k[1]k[0]L[1] = k[7]k[6]k[5]k[4]L[2] = 0000k[9]k[8]第二步:构造数组S描述:?S[0] = Pw?For i= 1 to t ?1 do?S[i] = S[i?1] + Qwinput t, Pw, Qw , 其中t=2(r+1)output S第三步:密钥混乱input t, c, L , S 其中t=2(r+1) , c= 8b/woutput 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)来表示右边寄存器的值赋给左边寄

RC6加密算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人分享精品
  • 文件大小0 KB
  • 时间2016-01-06