RC4流密码加密算法.docVIP

  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文档。上传文档
查看更多
RC4流密码加密算法

文中所提加密方案所使用的核心加密算法为RC4流密码加密算法,该算法简洁易于软件实现,加密速度快,安全性比较较高。 RC4算法: RC4算法非常简单,易于描述:用从1到256个字节 8到2048位 的可变长度密钥初始化一个256个字节的状态矢量S,S的元素记为S[0],S[1],? ,S[255],从始至终置换后的S包含从0到255的所有8比特数.对于加密和解密,字节K由S中256个元素按一定方式选出一个元素而生成.每生成一个K的值,S中的元素就被重新置换一次. 1 初始化S 开始时,S中元素的值被置为按升序从0到255,即s[0] 0,S[1] 1,? ,S[255] 255.同时建立一个临时矢量T.如果密钥K的长度为256字节,则将K赋给T.否则,若密钥长度为keylen字节,则将K的值赋给T的前keylen个元素,并循环重复用K的值赋给T剩下的元素,直到T的所有元素都被赋值.这些预操作可概括如下: /*初始化*/ for i 0 to 255 do S[i] i; T[i] K[i mod keylen] 然后用T产生S的初始置换.从S[0]到S[255],对每个S[i],根据由T[i]确定的方案,将S[i]置换为S中的另一字节: /*S的初始序列*/ j 0 for i O to 255 do j j+s[i]+T[i] mod 256 swap s[i],s[j] ; 因为对S的操作仅是交换,所以惟一的改变就是置换.S仍然包含所有值为0到255的元素. 2 密钥流的生成 矢量S一旦完成初始化,输人密钥就不再被使用.密钥流的生成是从s[0]到S[255],对每个S[i],根据当前S的值,将S[i]与S中的另一字节置换.当S[255]完成置换后,操作继续重复,从S[0]开始: /*密钥流的产生*/ i,j 0 while true i i+1 mod 256 j j+S[i] mod 256 swap sEi],s[j] t sEi]+s[j] mod 256; k S[t] 加密中,将k的值与下一明文字节异或;解密中,将k的值与下一密文字节异或. 加密方案: 本文以RC4算法为核心加密算法提出三种加密方案,其中方案一与方案二类似。方案一与方案二要求发送方与接收方持有相同的原始密钥。方案三不要求发送送与接收方使用相同的原始密钥,但发送方必须将本次加密密钥传送给接收方。 方案一 方案二 方案一与方案二流程基本一致,只是方案二没有对文件内容摘要(可使用数字签名时所使用的文件内容摘要)进行加密。以方案二为例,发送方与接收方共享同一个密钥,该种方案与WEP加密协议类似,具体流程为: 发送方: 发送方首先将所持有的密钥,即本文中的原始密码(160位)与文件内容摘要(160位)进行连接,然后用SHA-1安全散列函数对连接的结果进行计算得到本次加密文件所使用的密钥(160位)。然后将本次加密所使用的密钥传给RC4算法,用RC4算法产生的密钥流与原始明文按字节进行异或,即可得到文件的加密密文。最后将文件的加密密文与文件内容摘要连接,发送给接收方。 接收方: 接收方收到密文之后,首先将密文拆分成文件加密密文和文件内容摘要,然后将接收方自己所持有的原始密码与文件内容摘要连接并用SHA-1安全散列函数进行计算,得到本次解密所使用的解密密钥。将解密密钥传输给RC4算法,用RC4算法产生的密钥流与文件的密文按字节进行异或,即可解密文件得到原始明文。 方案三 方案三与方案一、方案二的最大区别是:方案一、二的发送方与接收方所持有的原始密码必须相同,否则无法解密。方案三发送方与接收方所持有的原始密码可以相同也可以不同,但是发送方必须将本次加密时所使用的密钥发送给接收方,而且只有接收方能将得到的密钥密文解密,其他人均不可。方案三具体流程: 发送方: 发送方首先将所持有的密钥,即本文中的原始密码(160位)与文件内容摘要(160位)进行连接,然后用SHA-1安全散列函数对连接的结果进行计算得到本次加密文件所使用的密钥(160位)。然后将密钥传给RC4算法,同时用接收方的公钥对本次使用的密钥进行加密得到密钥密文。用RC4算法产生的密钥流与原始明文按字节进行异或,即可得到文件的加密密文。最后将文件的加密密文与密钥密文连接,发送给接收方。 接收方: 接收方接收到密文,首先将密文拆分成文件加密密文和密钥密文。然后接收方用自己的私钥将密钥密文进行解密得到解密密码。将解密密码传给RC4算法,用RC4算法产生的密钥流与文件的密文按字节进行异或,即可解密文件得到原始明文。

文档评论(0)

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

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

1亿VIP精品文档

相关文档