RC4


В криптографии RC4 (Rivest Cipher 4 , также известный как ARC4 или ARCFOUR , что означает предполагаемый RC4, см. ниже) является потоковым шифром . Хотя он отличается простотой и скоростью программного обеспечения, в RC4 было обнаружено множество уязвимостей, делающих его небезопасным. [3] [4] Это особенно уязвимо, когда начало выходного ключевого потока не отбрасывается или когда используются неслучайные или связанные ключи. Особенно проблемное использование RC4 привело к очень небезопасным протоколам , таким как WEP . [5]

По состоянию на 2015 год есть предположение, что некоторые государственные криптологические агентства могут обладать способностью взломать RC4 при использовании в протоколе TLS . [6] IETF опубликовал RFC 7465, запрещающий использование RC4 в TLS; [3] Mozilla и Microsoft выпустили аналогичные рекомендации. [7] [8]

RC4 был разработан Роном Ривестом из RSA Security в 1987 году. Хотя официально он называется «Rivest Cipher 4», аббревиатура RC также может означать «Ron's Code» [9] (см. также RC2 , RC5 и RC6 ).

Первоначально RC4 был коммерческой тайной , но в сентябре 1994 года его описание было анонимно размещено в списке рассылки шифропанков . [10] Вскоре он был опубликован в группе новостей sci.crypt , где в течение нескольких дней был проанализирован Бобом Дженкинсом . [11] Оттуда он распространился на многие сайты в Интернете. Было подтверждено, что утекший код является подлинным, поскольку было обнаружено, что его выходные данные соответствуют проприетарному программному обеспечению, использующему лицензированный RC4. Поскольку алгоритм известен, он больше не является коммерческой тайной. Название RC4 является торговой маркой, поэтому RC4 часто называют ARCFOUR или ARC4 (что означает предполагаемый RC4 ).) [12] , чтобы избежать проблем с товарными знаками. RSA Security никогда официально не выпускала алгоритм; Однако Ривест сослался на статью в английской Википедии о RC4 в своих собственных заметках по курсу в 2008 году [13] и подтвердил историю RC4 и его кода в своей статье 2014 года. [14]

RC4 стал частью некоторых широко используемых протоколов и стандартов шифрования, таких как WEP в 1997 году и WPA в 2003/2004 годах для беспроводных карт; и SSL в 1995 году и его преемник TLS в 1999 году, пока он не был запрещен для всех версий TLS RFC 7465 в 2015 году из-за атак RC4, ослабляющих или ломающих RC4, используемый в SSL/TLS. Основными факторами успеха RC4 в таком широком диапазоне приложений были его скорость и простота: было очень легко разработать эффективные программные и аппаратные реализации.

RC4 генерирует псевдослучайный поток битов ( ключевой поток ). Как и в случае с любым потоковым шифром, их можно использовать для шифрования, объединяя его с открытым текстом с помощью побитового исключающего или ; расшифровка выполняется так же (поскольку исключающее или с заданными данными — это инволюция ). Это похоже на одноразовый блокнот , за исключением того, что используются сгенерированные псевдослучайные биты , а не подготовленный поток.


Стадия поиска RC4. Выходной байт выбирается путем поиска значений S[i] и S[j] , сложения их вместе по модулю 256 и последующего использования суммы в качестве индекса в S ; S(S[i] + S[j]) используется как байт ключевого потока, K.