
RC4(也称为 Rivest Cipher 4)是流密码的一种形式,流密码逐字节操作数据流。RC4 流密码是使用最广泛的流密码之一,它通过算法一次一个字节地加密消息,简单并且操作速度快。
RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务,使用 64 位或 128 位密钥大小。它通常用于安全套接层 (SSL)、传输层安全 (TLS) 等应用,也用于 IEEE 802.11 无线 LAN 标准。

在存储大量的信息时,RC4展现出它的实用性,面对大量的数据,运行简单,速度快。
RC4 使用在各种应用。

Ron Rivest在1987年提出了RC4加密方法,开始他并不打算公开此密码的加密规则,RC4 是商业机密,不公开密码的加密规则会提高安全性,不过在1994年,一位匿名人士在公共场所张贴了对密码规则的描述。之后RC4被使用,直到 2003 年和 2013 年在 RC4 中发现严重漏洞。
RC4 依赖于:
RC4依赖于随机数生成器,但不需要线性反馈移位寄存器。虽然互联网很多领域已经明确禁止使用 RC4,但是RC4的加密规则还是很值得学习的。
RC4 的加密工具非常复杂。它们通常包含 256 个字节,并且文本在被认为完整之前多次通过数学规则。
在加密和解密期间,不断生成密钥流字节,它们被添加到消息字节中。密钥流字节是根据T表生成的。

执行以下步骤:
for i from 0 to 255
T[i] := i
endfor
x_temp := 0
for i from 0 to 255
x_temp := (x_temp + T[i] + K[i mod k_len]) mod 256
swap(T[i], T[x_temp])
endfor
p1 := 0
p2 := 0
while GeneratingOutput
p1 := (p1 + 1) mod 256
p2 := (p2 + T[p1]) mod 256
swap(T[p1], T[p2])
send(T[(T[p1] + T[p2]) mod 256])
endwhile