В криптографии, RC4 (также известный как ARC4 или ARCFOUR означает Alleged RC4, см. ниже) является одним из наиболее распространенных шифров потока программного обеспечения. Он используется в таких популярных протоколах, как Secure Sockets Layer (SSL) (для защиты интернет-трафика) и WEP (для защиты беспроводных сетей).
RC4 известен своей простотой и быстротой, но атаки, скорее всего, произойдут, если не удалить выходной поток или дважды использовать один; некоторые способы использования RC4 могут превратиться в очень небезопасные криптосистемы, такие как WEP.
RC4 был создан компанией Ron Rivest из RSA Security в 1987 году. Хотя его официальное название - "Rivest Cipher 4", аббревиатура RC также известна как "Ron's Code" (см. также RC2, RC5 и RC6).
Впервые RC4 был создан как коммерческая тайна, но в сентябре 1994 года его описание было размещено в списке рассылки Сайферпункс. Вскоре он был размещен в новостной группе sci.crypt, а оттуда - на многих сайтах в Интернете. Код был подтвержден как подлинный (а не поддельный), так как его выход соответствовал выходу несвободного программного обеспечения, использующего лицензированный RC4. Поскольку алгоритм известен, он больше не является коммерческой тайной. Название "RC4", однако, защищено товарным знаком. Во избежание возможных проблем с товарными знаками RC4 часто называют "ARCFOUR" или "ARC4" (что означает "Alleged RC4", потому что RSA никогда официально не выпускала алгоритм). Он стал частью некоторых широко используемых протоколов и стандартов шифрования, включая WEP и WPA для беспроводных карт и TLS.
Две основные причины, которые помогли его использовать в таком большом диапазоне приложений, это его скорость и простота. Использование RC4 как в программном, так и в аппаратном обеспечении чрезвычайно просто.
Алгоритм шифрования RC4 запускается с другой длиной ключа, обычно от 40 до 256 бит, используя алгоритм шифрования ключей (KSA). После этого создается поток зашифрованных битов с помощью псевдослучайного алгоритма генерации (PRGA).
RC4 во многих отношениях не соответствует стандартам, установленным криптографами для безопасного шифра, и не рекомендуется для использования в новых приложениях, так как существует множество методов атаки на RC4. Удаление первого килобайта данных с клавиатуры может несколько улучшить безопасность.