Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

RC4

维基百科,自由的百科全书
此條目需要擴充。(2012年11月15日)
请協助改善这篇條目,更進一步的信息可能會在討論頁扩充请求中找到。请在擴充條目後將此模板移除。
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。
請在討論頁中發表對於本議題的看法,並移除或解釋本條目中的行話。
RC4
概述
设计者罗纳德·李维斯特
首次发布1994年對外公布
(1987年設計)
密码细节
密钥长度40–7003204800000000000♠2048 比特(bits)
状态长度7003206400000000000♠2064 bits (7003168400000000000♠1684 effective)
重复回数1

密碼學中,RC4(來自Rivest Cipher 4的縮寫)是一種串流加密法密鑰长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。

RC4是由美國密碼學家羅納德·李維斯特Ronald Rivest)在1987年设计的。由于RC4算法存在弱点,2015年2月所發佈的RFC 7465 规定禁止在TLS中使用RC4加密算法[1]

RC4由伪随机数生成器和异或运算组成。RC4的密钥长度可变,范围是[1,255]。RC4一个字节一个字节地加解密。给定一个密钥,伪随机数生成器接受密钥并产生一个S盒。S盒用来加密数据,而且在加密过程中S盒会变化。

由于异或运算对合性,RC4加密解密使用同一套算法。

歷史

[编辑]

RC4是由RSA Security罗纳德·李维斯特在1987年开发出来的,虽然它的官方名是“Rivest Cipher 4”,但是首字母缩写RC也可以理解为"Ron's Code"[2]。(见RC2RC5RC6

RC4开始时是商业机密,没有公开发表出来,但是在1994年9月份的时候,它被人匿名公开在了Cypherpunks 邮件列表上,很快它就被发到了sci.crypt 新闻组上,随后从这传播到了互联网的许多站点。随之贴出的代码后来被证明是真实的,因为它的输出跟取得了RC4版权的私有软件的输出是完全相同的。由于算法已经公开,RC4也就不再是商业秘密了,只是它的名字“RC4”仍然是一个注册商标。RC4经常被称作是“ARCFOUR”或者"ARC4"(意思是称为RC4),这样来避免商标使用的问题。RSA Security从来没有正式公布这个算法,罗纳德·李维斯特在2008年的自己的课程笔记中给出了一个指向RC4的英文维基百科文章的链接,并且在2014年的文件[3]中确认了RC4及其代码的历史。

RC4已经成为一些协议和标准的一部分,如1997年的WEP和2003年的WPA;和1995年的SSL,以及1999年的TLS。2015年由RFC 7465 禁止RC4在所有版本的TLS中使用。

伪代码

[编辑]

初始化长度为256的S盒。第一个for循环将0到255的互不重复的元素装入S盒。第二个for循环根据密钥打乱S盒。

forifrom0to255S[i]:=iendforj:=0for(i=0;i<256;i++)j:=(j+S[i]+key[imodkeylength])%256swapvaluesofS[i]andS[j]endfor

下面i,j是两个指针。每收到一个字节,就进行while循环。通过一定的算法((a),(b))定位S盒中的一个元素,并与输入字节异或,得到k。循环中还改变了S盒((c))。如果输入的是明文,输出的就是密文;如果输入的是密文,输出的就是明文。

i:=0j:=0whileGeneratingOutput:i:=(i+1)mod256//aj:=(j+S[i])mod256//bswapvaluesofS[i]andS[j]//ck:=inputByte^S[(S[i]+S[j])%256]outputKendwhile

此算法保证每256次循环中S盒的每个元素至少被交换过一次。

破解

[编辑]

2015年,比利時魯汶大學的研究人員Mathy Vanhoef及Frank Piessens,公布了針對RC4加密演算法的新型攻擊程式,可在75小時內取得cookie的內容。[4]

参考文献

[编辑]
  1. ^Andrei Popov.Prohibiting RC4 Cipher Suites. IETF. February 2015 [2015-02-18]. (原始内容存档于2015-02-20). 
  2. ^Rivest FAQ. [2017-06-18]. (原始内容存档于2017-07-15). 
  3. ^Rivest, Ron; Schuldt, Jacob (27 October 2014)."Spritz – a spongy RC4-like stream cipher and hash function" (PDF)页面存档备份,存于互联网档案馆). Retrieved 26 October 2014.
  4. ^http://www.rc4nomore.com页面存档备份,存于互联网档案馆) RC4 NOMORE
广泛使用的密码
eSTREAM英语eSTREAM组合
软件
硬件
其他密码
理论
攻击
检索自“https://zh.wikipedia.org/w/index.php?title=RC4&oldid=87361577
分类:​
隐藏分类:​

[8]ページ先頭

©2009-2026 Movatter.jp