密码学中,RC4(也称为ARC4ARCFOUR,意思是Alleged RC4,见下文)是最常见的软件流密码之一。它被用于流行的协议,如安全套接层(SSL)(保护互联网流量)和WEP(保护无线网络的安全)。

RC4以简单快捷著称,但当输出密钥流的开始没有被删除,或者一个密钥流被使用两次时,就很可能发生攻击;一些使用RC4的方式会变成非常不安全的密码系统,如WEP。

RC4是由RSA安全公司的Ron Rivest在1987年创建的。虽然它的正式名称是"Rivest Cipher 4",但RC的缩写也被称为"Ron's Code"的缩写(参见RC2RC5RC6)。

RC4最初是作为商业秘密创建的,但在1994年9月,对它的描述被发布到Cypherpunks邮件列表中。它很快就被发布在 sci.crypt 新闻组上,并从那里被发布到互联网上的许多网站。该代码被证实是真实的(不是假的),因为它的输出与使用授权RC4的专有软件相匹配。因为算法是已知的,所以它不再是商业机密。不过,"RC4"这个名字是有商标的。RC4通常被称为"ARCFOUR"或"ARC4"(意为Alleged RC4,因为RSA从未正式发布过该算法),以避免可能的商标问题。它已经成为一些常用的加密协议和标准的一部分,包括无线卡的WEP和WPA以及TLS。

其速度和简单性是其应用范围如此之广的两个主要原因。RC4在软件和硬件上的应用都非常容易开发。

RC4加密算法是用不同的密钥长度开始的,通常在40到256位之间,使用密钥调度算法(KSA)。一旦完成这项工作,就使用伪随机生成算法(PRGA)创建加密比特流。

RC4在很多方面都达不到密码学家为安全密码制定的标准,不建议在新的应用中使用,因为有很多攻击RC4的方法。丢掉密钥流中的第一个千字节数据可以在一定程度上提高安全性。