fbpx
维基百科

RC4

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

RC4
概述
设计者罗纳德·李维斯特
首次发布1994年對外公布
(1987年設計)
密码细节
密钥长度40–2048 比特(bits)
状态长度2064 bits (1684 effective)
重复回数1

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]。(见RC2,RC5RC6

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盒。

 for i from 0 to 255  S[i] := i  endfor  j := 0  for( i=0 ; i<256 ; i++)  j := (j + S[i] + key[i mod keylength]) % 256  swap values of S[i] and S[j]  endfor 

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

 i := 0  j := 0  while GeneratingOutput:  i := (i + 1) mod 256 //a  j := (j + S[i]) mod 256 //b  swap values of S[i] and S[j] //c  k := inputByte ^ S[(S[i] + S[j]) % 256]  output K  endwhile 

此算法保证每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. ^ . [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

此條目需要擴充, 2012年11月15日, 请協助改善这篇條目, 更進一步的信息可能會在討論頁或扩充请求中找到, 请在擴充條目後將此模板移除, 此條目包含過多行話或專業術語, 可能需要簡化或提出進一步解釋, 請在討論頁中發表對於本議題的看法, 並移除或解釋本條目中的行話, 在密碼學中, 來自rivest, cipher, 的縮寫, 是一種串流加密法, 密鑰长度可变, 它加解密使用相同的密钥, 因此也属于对称加密算法, 是有线等效加密, 中采用的加密算法, 也曾经是tls可采用的算法之一, 概述设计者罗纳德, 李维斯. 此條目需要擴充 2012年11月15日 请協助改善这篇條目 更進一步的信息可能會在討論頁或扩充请求中找到 请在擴充條目後將此模板移除 此條目包含過多行話或專業術語 可能需要簡化或提出進一步解釋 請在討論頁中發表對於本議題的看法 並移除或解釋本條目中的行話 在密碼學中 RC4 來自Rivest Cipher 4 的縮寫 是一種串流加密法 密鑰长度可变 它加解密使用相同的密钥 因此也属于对称加密算法 RC4是有线等效加密 WEP 中采用的加密算法 也曾经是TLS可采用的算法之一 RC4概述设计者罗纳德 李维斯特首次发布1994年對外公布 1987年設計 密码细节密钥长度40 7003204800000000000 2048 比特 bits 状态长度7003206400000000000 2064 bits 7003168400000000000 1684 effective 重复回数1RC4是由美國密碼學家羅納德 李維斯特 Ronald Rivest 在1987年设计的 由于RC4算法存在弱点 2015年2月所發佈的 RFC 7465 规定禁止在TLS中使用RC4加密算法 1 RC4由伪随机数生成器和异或运算组成 RC4的密钥长度可变 范围是 1 255 RC4一个字节一个字节地加解密 给定一个密钥 伪随机数生成器接受密钥并产生一个S盒 S盒用来加密数据 而且在加密过程中S盒会变化 由于异或运算的对合性 RC4加密解密使用同一套算法 目录 1 歷史 2 虛擬碼 3 破解 4 参考文献歷史 编辑RC4是由RSA Security的罗纳德 李维斯特在1987年开发出来的 虽然它的官方名是 Rivest Cipher 4 但是首字母缩写RC也可以理解为 Ron s Code 2 见RC2 RC5 RC6 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盒 for i from 0 to 255 S i i endfor j 0 for i 0 i lt 256 i j j S i key i mod keylength 256 swap values of S i and S j endfor 下面i j是两个指针 每收到一个字节 就进行while循环 通过一定的算法 a b 定位S盒中的一个元素 并与输入字节异或 得到k 循环中还改变了S盒 c 如果输入的是明文 输出的就是密文 如果输入的是密文 输出的就是明文 i 0 j 0 while GeneratingOutput i i 1 mod 256 a j j S i mod 256 b swap values of S i and S j c k inputByte S S i S j 256 output K endwhile 此算法保证每256次循环中S盒的每个元素至少被交换过一次 破解 编辑2015年 比利時魯汶大學的研究人員Mathy Vanhoef及Frank Piessens 公布了針對RC4加密演算法的新型攻擊程式 可在75小時內取得cookie的內容 4 参考文献 编辑 Andrei Popov Prohibiting RC4 Cipher Suites IETF February 2015 2015 02 18 原始内容存档于2015 02 20 Rivest FAQ 2017 06 18 原始内容存档于2017 07 15 Rivest Ron Schuldt Jacob 27 October 2014 Spritz a spongy RC4 like stream cipher and hash function PDF 页面存档备份 存于互联网档案馆 Retrieved 26 October 2014 http www rc4nomore com 页面存档备份 存于互联网档案馆 RC4 NOMORE 取自 https zh wikipedia org w index php title RC4 amp oldid 78325002, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。