- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息安全案例
信息系统安全与保密论文
姓名: 高 园 园
学号: 0913011041
班级: 09信管
成绩:
RC5分组密码算法RC5分组密码算法是1994由麻萨诸塞技术研究所的Ronald L. Rivest教授发明的,并由RSA实验室分析。它是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥大小和加密轮数。在此算法中使用了三种运算:异或、加和循环。 RC5是种比较新的算法,Rivest设计了RC5的一种特殊的实现方式,因此RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。由于RC5一个分组长度可变的密码算法,为了便于说明在本文中主要是针对64位的分组w=32进行处理的,下面详细说明了RC5加密解密的处理过程: 1、创建密钥组,RC5算法加密时使用了2r+2个密钥相关的的32位字: ,这里r表示加密的轮数。创建这个密钥组的过程是非常复杂的但也是直接的,首先将密钥字节拷贝到32位字的数组L中(此时要注意处理器是little-endian顺序还是big-endian顺序),如果需要,最后一个字可以用零填充。然后利用线性同余发生器模2初始化数组S:对于i=1到2(r+1)-1: (本应模 ,本文中令w=32)其中对于16位字32位分组的RC5,P=0xb7e1 Q=0x9e37对于32位字和64位分组的RC5,P=0xb7e15163 Q=0x9e3779b9对于64位字和128位分组,P=0xb7151628aed2a6b Q=0x9e3779b97f4a7c15最后将L与S混合,混合过程如下:i=j=0A=B=0处理3n次(这里n是2(r+1)和c中的最大值,其中c表示输入的密钥字的个数)2、加密处理,在创建完密钥组后开始进行对明文的加密,加密时,首先将明文分组划分为两个32位字:A和B(在假设处理器字节顺序是little-endian、w=32的情况下,第一个明文字节进入A的最低字节,第四个明文字节进入A的最高字节,第五个明文字节进入B的最低字节,以此类推),其中操作符表示循环左移,加运算是模 (本应模 ,本文中令w=32)的。输出的密文是在寄存器A和B中的内容3、解密处理,解密也是很容易的,把密文分组划分为两个字:A和B(存储方式和加密一样),这里符合是循环右移,减运算也是模 (本应模 ,本文中令w=32)的。 RSA试验室花费了相当的时间来分析64位分组的RC5算法,在5轮后统计特性看起来非常好。在8轮后,每一个明文位至少影响一个循环。对于5轮的RC5,差分攻击需要 个选择明文;对10轮需要 个;对于12轮需要 个;对15轮需要 个。而对于64位的分组只有 个可能的明文,所以对于15轮或以上的RC5的差分攻击是失败的。在6轮后线性分析就是安全的了,Rivest推荐至少12轮,甚至可能是16轮。这个轮数可以进行选择。rfc 2040文档中列出了RC5算法密钥生成和加密实现的C代码,在此笔者参照文档中定义的算法结构,编写了用于对密文解密的程序代码(此代码经多次测试运行良好),供读者参考。1、补充了两个个宏定义:#define SHL1(x,s,w) ((RC5_WORD)((x)((w)-((s)ROT_MASK))))#define ROTR(x,s,w) ((RC5_WORD)(SHR1((x),(s))|SHL1((x),(s),(w))))2、解密函数定义如下:void RC5_Block_Decrypt (RC5_WORD *S,int R,char *in,char *out){int i;RC5_WORD A,B;A = in【0】 0xFF;A += (in【1】 0xFF) 8;A += (in【2】 0xFF) 16;A += (in【3】 0xFF) 24;B = in【4】 0xFF;B += (in【5】 0xFF) 8;B += (in【6】 0xFF) 16;B += (in【7】 0xFF) 24;for(i=R;i=1;i--){B=ROTR((B-S【2*i+1】),A,W);B=B^A;A=ROTR((A-S【2*i】),B,W);A=A^B;}B=B-S【1】;A=A-S【0】;out【0】 = (A 0) 0xFF;out【1】 = (A 8) 0xFF;out【2】 = (A 16)
您可能关注的文档
最近下载
- GB50209-2010建筑地面工程施工质量验收规范(新).pdf VIP
- 新苏教版六年级科学上册 第一单元《物质的变化》测试卷(A卷).docx VIP
- 2025年中国便利店发展报告.pptx VIP
- 新苏教版六年级科学上册第一单元《物质的变化》测试卷及答案.pdf VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 住院患者跌倒护理风险评估与护理指导意见.pdf VIP
- 煤矿用防爆电气设备防爆检查标准-培训课件.pptx
- 半导体物理学(第8版)刘恩科课后习题答案解析.pdf
- 新媒体背景下信息技术的发展及其应用分析.pdf VIP
- 一种大吨位玄武岩纤维锚索整体张拉试验系统及试验方法.pdf VIP
文档评论(0)