RC4

Поточный шифр

RC4
Общий
ДизайнерыРон Ривест ( RSA Security )
Впервые опубликованоУтечка в 1994 году
(разработан в 1987 году)
Детали шифра
Размеры клавиш40–2048 бит
Размер штата2064 бит (1684 эффективно)
Раунды1
Скорость7 циклов на байт на оригинальном Pentium [1]
Модифицированный предполагаемый RC4 на Intel Core 2: 13,9 циклов на байт [2]

В криптографии 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, в частности Spritz, RC4A, VMPC и RC4 + .

История

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

Первоначально RC4 был коммерческой тайной , но в сентябре 1994 года его описание было анонимно опубликовано в списке рассылки Cypherpunks . [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 генерирует псевдослучайный поток битов ( keystream ). Как и в случае с любым потоковым шифром, их можно использовать для шифрования, комбинируя их с открытым текстом с помощью побитового исключающего или ; расшифровка выполняется таким же образом (поскольку исключающее или с заданными данными является инволюцией ) . Это похоже на одноразовый блокнот , за исключением того, что используются сгенерированные псевдослучайные биты , а не подготовленный поток.

Для генерации ключевого потока шифр использует секретное внутреннее состояние, которое состоит из двух частей:

  1. Перестановка всех 256 возможных байтов ( ниже обозначается «S»).
  2. Два 8-битных индексных указателя (обозначаемых «i» и «j»).

Перестановка инициализируется ключом переменной длины , обычно от 40 до 2048 бит, с использованием алгоритма планирования ключей (KSA). После завершения этого процесса поток битов генерируется с использованием алгоритма псевдослучайной генерации (PRGA).

Алгоритм планирования ключей (KSA)

Алгоритм планирования ключей используется для инициализации перестановки в массиве «S». «длина ключа» определяется как количество байтов в ключе и может находиться в диапазоне 1 ≤ длина ключа ≤ 256, обычно от 5 до 16, что соответствует длине ключа 40–128 бит. Сначала массив «S» инициализируется для перестановки идентичности . Затем S обрабатывается в течение 256 итераций аналогично основному PRGA, но также одновременно подмешивает байты ключа.

для i от 0 до 255 S[i] := iконецдляj := 0для i от 0 до 255 j := (j + S[i] + key[i mod keylength]) mod 256 поменять местами значения S[i] и S[j]конецдля

Алгоритм псевдослучайной генерации (PRGA)

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

Для стольких итераций, сколько необходимо, PRGA изменяет состояние и выводит байт ключевого потока. В каждой итерации PRGA:

  • увеличивает i ;
  • ищет i -й элемент S , S[ i ] , и добавляет его к j ;
  • обменивает значения S[ i ] и S[ j ] , затем использует сумму S[ i ] + S[ j ] (по модулю 256) в качестве индекса для извлечения третьего элемента S (значение ключевого потока K ниже);
  • затем выполняется побитовая операция «исключающее ИЛИ» ( XOR ) со следующим байтом сообщения для получения следующего байта зашифрованного или открытого текста.

Каждый элемент S меняется местами с другим элементом не реже одного раза в 256 итераций.

я := 0j := 0при генерации выходных данных: я := (я + 1) mod 256 j := (j + S[i]) mod 256 поменять местами значения S[i] и S[j] т := (S[i] + S[j]) mod 256 К := С[т] выход Кокончательный

Таким образом, это создает поток K[0], K[1], ... , которые подвергаются операции XOR с открытым текстом для получения зашифрованного текста . Таким образом, ciphertext[ l ] = plaintext[ l ] ⊕ K[ l ] .

Генераторы случайных чисел на основе RC4

Несколько операционных систем включают arc4random, API, происходящий из OpenBSD , предоставляющий доступ к генератору случайных чисел, изначально основанному на RC4. API не допускает заполнения, поскольку функция инициализирует себя с помощью /dev/random . Использование RC4 было постепенно прекращено в большинстве систем, реализующих этот API. Страницы руководства для нового arc4random включают бэкроним "A Replacement Call for Random" для ARC4 в качестве мнемоники, поскольку он предоставляет лучшие случайные данные, чем rand() . [15]

  • В OpenBSD 5.5, выпущенном в мае 2014 года, arc4randomбыл изменен для использования ChaCha20 . [16] [17] Реализации arc4random в FreeBSD , NetBSD [18] [19] также используют ChaCha20.
    • Linux обычно использует glibc , который не предлагал arc4random до 2022 года. Вместо этого отдельная библиотека libbsd предлагает эту функцию; она была обновлена ​​для использования ChaCha20 в 2016 году. [20] В 2022 году glibc добавила собственную версию arc4random , также основанную на ChaCha20. [21]
  • Согласно страницам руководства, поставляемым вместе с операционной системой, в операционных системах macOS и iOS 2017 года компания Apple заменила RC4 на AES в своей реализации arc4random.

Предлагаемые новые генераторы случайных чисел часто сравнивают с генератором случайных чисел RC4. [22] [23]

Несколько атак на RC4 способны отличить его вывод от случайной последовательности . [24]

Выполнение

Многие потоковые шифры основаны на регистрах сдвига с линейной обратной связью (LFSR), которые, хотя и эффективны в аппаратном обеспечении, менее эффективны в программном обеспечении. Конструкция RC4 избегает использования LFSR и идеальна для программной реализации, поскольку требует только манипуляций с байтами. Он использует 256 байт памяти для массива состояний, S[0] через S[255], k байт памяти для ключа, key[0] через key[k−1], и целочисленные переменные, i, j и K. Выполнение модульного сокращения некоторого значения по модулю 256 может быть выполнено с помощью побитового И с 255 (что эквивалентно взятию младшего байта рассматриваемого значения).

Тестовые векторы

Эти тестовые векторы не являются официальными, но удобны для тех, кто тестирует собственную программу RC4. Ключи и открытый текст — ASCII , ключевой поток и шифротекст — в шестнадцатеричном формате .

КлючКлючевой потокОткрытый текстШифротекст
КлючEB9F7781B734CA72A719Открытый текстBBF316E8D940AF0AD3
Вики6044DB6D41B7педиа1021BF0420
Секрет04D46B053CA87B59Атака на рассвете45A01F645FC35B383552544B9BF5

Безопасность

В отличие от современных потоковых шифров (таких как те, что в eSTREAM ), RC4 не принимает отдельный одноразовый номер вместе с ключом. Это означает, что если один долгосрочный ключ должен использоваться для безопасного шифрования нескольких потоков, протокол должен указать, как объединить одноразовый номер и долгосрочный ключ, чтобы сгенерировать потоковый ключ для RC4. Одним из подходов к решению этой проблемы является генерация «свежего» ключа RC4 путем хэширования долгосрочного ключа с одноразовым номером . Однако многие приложения, использующие RC4, просто объединяют ключ и одноразовый номер; слабый график ключей RC4 затем приводит к атакам со связанными ключами , таким как атака Флюрера, Мантина и Шамира (которая известна тем, что нарушает стандарт WEP ). [25]

Поскольку RC4 является потоковым шифром , он более пластичен , чем обычные блочные шифры . Если не использовать его вместе с сильным кодом аутентификации сообщений (MAC), то шифрование уязвимо для атаки с переворачиванием битов . Шифр ​​также уязвим для атаки потокового шифра, если он реализован неправильно. [26]

Однако следует отметить, что RC4, будучи потоковым шифром, в течение некоторого времени был единственным распространенным шифром, который был устойчив [27] к атаке BEAST 2011 года на TLS 1.0 . Атака использует известную слабость в способе использования режима цепочки шифров-блоков со всеми другими шифрами, поддерживаемыми TLS 1.0, которые все являются блочными шифрами.

В марте 2013 года появились новые сценарии атак, предложенные Исобе, Охигаши, Ватанабе и Мории [28] , а также Аль-Фарданом, Бернстайном, Патерсоном, Пёттерингом и Шульдтом, которые используют новые статистические смещения в таблице ключей RC4 [29] для восстановления открытого текста с большим количеством шифрований TLS. [30] [31]

Использование RC4 в TLS запрещено RFC 7465, опубликованным в феврале 2015 года.

Предубеждения Рооса и ключевая реконструкция из перестановки

В 1995 году Эндрю Рус экспериментально обнаружил, что первый байт потока ключей коррелирует с первыми тремя байтами ключа, а первые несколько байтов перестановки после KSA коррелируют с некоторой линейной комбинацией байтов ключа. [32] Эти смещения оставались необъясненными до 2007 года, когда Гаутам Пол, Сиддхешвар Рати и Субхамой Майтра [33] доказали корреляцию потока ключей и ключа, а в другой работе Гаутам Пол и Субхамой Майтра [34] доказали корреляции перестановки и ключа. Последняя работа также использовала корреляции перестановки и ключа для разработки первого алгоритма для полной реконструкции ключа из финальной перестановки после KSA, без каких-либо предположений о ключе или векторе инициализации . Этот алгоритм имеет постоянную вероятность успеха за время, которая является квадратным корнем из исчерпывающей сложности поиска ключа. Впоследствии было выполнено много других работ по реконструкции ключа из внутренних состояний RC4. [35] [36] [37] Субхамой Майтра и Гаутам Пол [38] также показали, что смещения типа Рооса сохраняются даже при рассмотрении вложенных индексов перестановки, таких как S[S[i]] или S[S[S[i]]] . Эти типы смещений используются в некоторых более поздних ключевых методах реконструкции для увеличения вероятности успеха.

Смещенные выходы RC4

Ключевой поток, генерируемый RC4, смещен в разной степени в сторону определенных последовательностей, что делает его уязвимым для различающих атак . Лучшая такая атака принадлежит Ицику Мантину и Ади Шамиру , которые показали, что второй выходной байт шифра смещен в сторону нуля с вероятностью 1/128 (вместо 1/256). Это связано с тем, что если третий байт исходного состояния равен нулю, а второй байт не равен 2, то второй выходной байт всегда равен нулю. Такое смещение можно обнаружить, наблюдая только 256 байтов. [24]

Соурадьюти Пол и Барт Пренел из COSIC показали, что первый и второй байты RC4 также были смещены. Количество требуемых образцов для обнаружения этого смещения составляет 2 25  байт. [39]

Скотт Флурер и Дэвид МакГрю также продемонстрировали атаки, которые отличали ключевой поток RC4 от случайного потока, учитывая гигабайт выходных данных. [40]

Полная характеристика одного шага RC4 PRGA была выполнена Риддхипратимом Басу, Ширшенду Гангули, Субхамоем Майтрой и Гаутамом Полом. [41] Рассмотрев все перестановки, они доказали, что распределение выходных данных не является равномерным при заданных i и j, и, как следствие, информация о j всегда просачивается в выходные данные.

Флюрер, Мантен и Шамир атакуют

В 2001 году Флурер, Мантин и Шамир сделали новое и удивительное открытие : среди всех возможных ключей RC4 статистика для первых нескольких байтов выходного потока ключей является строго неслучайной, что приводит к утечке информации о ключе. Если одноразовый код и долгосрочный ключ просто объединяются для генерации ключа RC4, этот долгосрочный ключ может быть обнаружен путем анализа большого количества сообщений, зашифрованных этим ключом. [42] Этот и связанные с ним эффекты затем использовались для взлома шифрования WEP («проводной эквивалент конфиденциальности»), используемого в беспроводных сетях 802.11 . Это вызвало борьбу за замену WEP на основе стандартов на рынке 802.11 и привело к усилиям IEEE 802.11i и WPA . [43]

Протоколы могут защищаться от этой атаки, отбрасывая начальную часть потока ключей. Такой модифицированный алгоритм традиционно называется "RC4-drop[ n ]", где n — это количество начальных байтов потока ключей, которые отбрасываются. Значение SCAN по умолчанию n = 768 байт, но консервативное значение будет n = 3072 байта. [44]

Атака Флюрера, Мантина и Шамира не применима к SSL на основе RC4, поскольку SSL генерирует ключи шифрования, используемые для RC4, путем хеширования, что означает, что разные сеансы SSL имеют несвязанные ключи. [45]

Атака Кляйна

В 2005 году Андреас Кляйн представил анализ потокового шифра RC4, показав больше корреляций между потоком ключей RC4 и ключом. [46] Эрик Тьюс, Ральф-Филипп Вайнманн и Андрей Пычкин использовали этот анализ для создания aircrack-ptw, инструмента, который взламывает 104-битный RC4, используемый в 128-битном WEP, менее чем за минуту. [47] В то время как атака Флюрера, Мантина и Шамира использовала около 10 миллионов сообщений, aircrack-ptw может взломать 104-битные ключи за 40 000 кадров с вероятностью 50% или за 85 000 кадров с вероятностью 95%.

Комбинаторная задача

Комбинаторная проблема, связанная с числом входов и выходов шифра RC4, была впервые предложена Ициком Мантином и Ади Шамиром в 2001 году, согласно которой из 256 элементов в типичном состоянии RC4, если известны только x элементов ( x ≤ 256) (все остальные элементы можно считать пустыми), то максимальное число элементов, которые могут быть получены детерминированно, также равно x в следующих 256 раундах. Эта гипотеза была опровергнута в 2004 году формальным доказательством, данным Соурадьюти Полом и Бартом Пренелем . [48]

Атака на Ройял Холлоуэй

В 2013 году группа исследователей безопасности из Группы информационной безопасности в Royal Holloway, Лондонский университет, сообщила об атаке, которая может стать эффективной, используя всего 2 34 зашифрованных сообщения. [49] [50] [51] Хотя этот результат пока не является практической атакой для большинства целей, он достаточно близок к таковому, что это привело к предположению о том, что некоторые государственные криптологические агентства, возможно, уже имеют лучшие атаки, которые делают RC4 небезопасным. [6] Учитывая, что по состоянию на 2013 год [обновлять]большой объем трафика TLS использует RC4 для предотвращения атак на блочные шифры, которые используют цепочку блоков шифра , если эти гипотетические лучшие атаки существуют, то это сделало бы комбинацию TLS с RC4 небезопасной против таких злоумышленников в большом количестве практических сценариев. [6]

В марте 2015 года исследователь из Royal Holloway объявил об усовершенствовании своей атаки, предоставив атаку 2 26 против паролей, зашифрованных с помощью RC4, как это используется в TLS. [52]

Бар-мицва атака

На конференции Black Hat Asia 2015 Ицик Мантин представил еще одну атаку на SSL с использованием шифра RC4. [53] [54]

НЕТ атаки

В 2015 году исследователи безопасности из KU Leuven представили новые атаки против RC4 как в TLS , так и в WPA-TKIP . [55] Названная атакой Numerous Occurrence MOnitoring & Recovery Exploit (NOMORE), это первая атака такого рода, которая была продемонстрирована на практике. Их атака против TLS может расшифровать защищенный HTTP cookie в течение 75 часов. Атака против WPA-TKIP может быть завершена в течение часа и позволяет злоумышленнику расшифровывать и внедрять произвольные пакеты.

Варианты RC4

Как упоминалось выше, самая важная слабость RC4 исходит из недостаточного расписания ключей; первые байты вывода раскрывают информацию о ключе. Это можно исправить, просто отбросив некоторую начальную часть выходного потока. [56] Это известно как RC4-drop N , где N обычно кратно 256, например, 768 или 1024.

Было предпринято несколько попыток усилить RC4, в частности Spritz, RC4A, VMPC и RC4 + .

RC4A

Соурадьюти Пол и Барт Пренел предложили вариант RC4, который они назвали RC4A. [57]

RC4A использует два массива состояний S1 и S2 и два индекса j1 и j2 . Каждый раз, когда i увеличивается, генерируются два байта:

  1. Сначала выполняется базовый алгоритм RC4 с использованием S1 и j1 , но на последнем этапе S1[ i ]+S1[ j1 ] ищется в S2 .
  2. Во-вторых, операция повторяется (без повторного увеличения i ) над S2 и j2 , и выводится S1[S2[ i ]+S2[ j2 ]] .

Итак, алгоритм такой:

Вся арифметика выполняется по модулю 256.я := 0j1 := 0j2 := 0при генерации выходных данных: я := я + 1 j1 := j1 + S1[i] поменять местами значения S1[i] и S1[j1] вывод S2[S1[i] + S1[j1]] j2 := j2 + S2[i] поменять местами значения S2[i] и S2[j2] вывод S1[S2[i] + S2[j2]] endwhile

Хотя алгоритм требует одинакового количества операций на выходной байт, он обеспечивает большую параллельность, чем RC4, что обеспечивает возможное улучшение скорости.

Хотя этот алгоритм и сильнее RC4, он также подвергся атаке, когда Александр Максимов [58] и команда из NEC [59] разработали способы отличить его вывод от действительно случайной последовательности.

ВМПЦ

Variably Modified Permutation Composition (VMPC) — еще один вариант RC4. [60] Он использует похожее расписание ключей, что и RC4, с j := S[(j + S[i] + key[i mod keylength]) mod 256], итерирующим 3 × 256 = 768 раз вместо 256, и с дополнительными 768 итерациями для включения начального вектора. Функция генерации выходных данных работает следующим образом:

Все арифметические действия выполняются по модулю 256.я := 0при генерации выходных данных: а := S[i] j := S[j + а]  выход S[S[S[j] + 1]] Поменять местами S[i] и S[j] ( b := S[j]; S[i] := b; S[j] := a) )  я := я + 1окончательный

Это было атаковано в тех же работах, что и RC4A, и может быть различимо в пределах 2 38 выходных байтов. [61] [59]

RC4+

RC4 + — это модифицированная версия RC4 с более сложным трехфазным графиком ключа (занимающим примерно в три раза больше времени, чем RC4, или столько же, сколько RC4-drop512), и более сложной функцией вывода, которая выполняет четыре дополнительных поиска в массиве S для каждого выходного байта, занимая примерно в 1,7 раза больше времени, чем базовый RC4. [62]

Все арифметические действия по модулю 256.  << и >> — сдвиг влево и вправо,— исключающее ИЛИ при GeneratingOutput: я := я + 1 а := S[i] j := j + а  Поменять местами S[i] и S[j] ( b := S[j]; S[j] := S[i]; S[i] := b; )  с := S[i<<5 ⊕ j>>3] + S[j<<5 ⊕ i>>3] вывод (S[a+b] + S[c⊕0xAA]) ⊕ S[j+b] endwhile

Этот алгоритм не подвергался существенному анализу.

Шприц

В 2014 году Рональд Ривест выступил с докладом и стал соавтором статьи [14] об обновленном редизайне под названием Spritz. Аппаратный ускоритель Spritz был опубликован в Secrypt, 2016 [63] и показывает, что из-за множественных вложенных вызовов, необходимых для создания выходных байтов, Spritz работает довольно медленно по сравнению с другими хеш-функциями, такими как SHA-3 и самая известная аппаратная реализация RC4.

Как и другие функции губки , Spritz можно использовать для построения криптографической хеш-функции, детерминированного генератора случайных битов ( DRBG ), алгоритма шифрования, который поддерживает аутентифицированное шифрование со связанными данными (AEAD) и т. д. [14]

В 2016 году Баник и Исобе предложили атаку, которая может отличить Spritz от случайного шума. [64] В 2017 году Баник, Исобе и Мори предложили простое исправление, которое удаляет отличительный признак в первых двух байтах ключевого потока, требуя только одного дополнительного доступа к памяти без существенного снижения производительности программного обеспечения. [65]

Протоколы на основе RC4

Если протокол помечен как «(опционально)», RC4 — это один из нескольких шифров, на использование которых может быть настроена система.

Смотрите также

Ссылки

  1. ^ P. Prasithsangaree; P. Krishnamurthy (2003). Анализ энергопотребления алгоритмов RC4 и AES в беспроводных локальных сетях (PDF) . GLOBECOM '03. IEEE. Архивировано из оригинала (PDF) 3 декабря 2013 г.
  2. ^ "Crypto++ 5.6.0 Benchmarks" . Получено 22 сентября 2015 г. .
  3. ^ ab Андрей Попов (февраль 2015 г.). Запрет наборов шифров RC4. doi : 10.17487/RFC7465 . RFC 7465.
  4. ^ Lucian Constantin (14 мая 2014 г.). «Microsoft продолжает поэтапный отказ от шифрования RC4 с обновлениями безопасности .NET». ComputerWorld .
  5. ^ J. Katz; Y. Lindell (2014), Введение в современную криптографию , Chapman and Hall/CRC, стр. 77.
  6. ^ abc Джон Лейден (6 сентября 2013 г.). «Этот потрясающий крипто-взлом АНБ: шпионы взломали RC4?». The Register .
  7. ^ "Рекомендуемые конфигурации Mozilla Security Server Side TLS". Mozilla . Получено 3 января 2015 г. .
  8. ^ "Совет по безопасности 2868725: Рекомендация по отключению RC4". Microsoft. 12 ноября 2013 г. Получено 4 декабря 2013 г.
  9. ^ "Часто задаваемые вопросы о Ривесте".
  10. ^ "Спасибо, Боб Андерсон". Cypherpunks (список рассылки). 9 сентября 1994 г. Архивировано из оригинала 22 июля 2001 г. Получено 28 мая 2007 г.
  11. Боб Дженкинс (15 сентября 1994 г.). «Re: RC4 ?». Группа новостей : sci.crypt. Usenet:  359qjg$55v$1@mhadg.production.compuserve.com.
  12. ^ "Страницы руководства: arc4random". 5 июня 2013 г. Получено 2 февраля 2018 г.
  13. ^ "6.857 Компьютерная и сетевая безопасность. Весна 2008: Лекции и раздаточные материалы".
  14. ^ abc Ривест, Рон; Шульдт, Якоб (27 октября 2014 г.). «Spritz – губчатый RC4-подобный потоковый шифр и хэш-функция» (PDF) . Получено 26 октября 2014 г. .
  15. ^ "arc4random(3)". OpenBSD.
  16. ^ "OpenBSD 5.5" . Получено 21 сентября 2014 г.
  17. ^ deraadt , ред. (21 июля 2014 г.). "libc/crypt/arc4random.c". BSD Cross Reference, OpenBSD src/lib/ . Получено 13 января 2015 г. Генератор случайных чисел на основе ChaCha для OpenBSD.
  18. ^ riastradh, ред. (16 ноября 2014 г.). "libc/gen/arc4random.c". BSD Cross Reference, NetBSD src/lib/ . Получено 13 января 2015 г. Устаревший API arc4random(3) из OpenBSD, переработанный с использованием ChaCha20 PRF, с состоянием для каждого потока.
  19. ^ "arc4random – NetBSD Manual Pages". Архивировано из оригинала 6 июля 2020 г. Получено 6 января 2015 г.
  20. ^ "Обновление модуля arc4random из OpenBSD и LibreSSL" . Получено 6 января 2016 г.
  21. ^ «Библиотека GNU C наконец-то добавляет функции arc4random для Linux». www.phoronix.com .
  22. ^ Бартош Золтак. «VMPC-R: криптографически безопасный генератор псевдослучайных чисел, альтернатива RC4». 2010?
  23. ^ Чефранов, А.Г. «Улучшение периода RC4 генератора псевдослучайных чисел». 2006.
  24. ^ ab Итсик Мантин; Ади Шамир (2001). Практическая атака на вещание RC4 (PDF) . FSE 2001. стр.  152–164 . doi :10.1007/3-540-45473-X_13.
  25. ^ "RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4". RSA Laboratories. 1 сентября 2001 г.
  26. ^ Скляров, Дмитрий (2004). Скрытые ключи к взлому программного обеспечения и несанкционированному доступу. A-List Publishing. С.  92–93 . ISBN 978-1931769303.
  27. ^ "ssl - Самые безопасные шифры для использования с BEAST? (эксплойт TLS 1.0) Я читал, что RC4 неуязвим". serverfault.com .
  28. Исобе, Таканори; Охигаши, Тосихиро (10–13 марта 2013 г.). «Безопасность потокового шифра RC4». Университет Хиросимы . Получено 27 октября 2014 г.
  29. ^ Pouyan Sepehrdad; Serge Vaudenay; Martin Vuagnoux (2011). "Открытие и эксплуатация новых смещений в RC4". Избранные области криптографии . Конспект лекций по информатике. Том 6544. С.  74–91 . doi :10.1007/978-3-642-19574-7_5. ISBN 978-3-642-19573-0.
  30. ^ Грин, Мэтью (12 марта 2013 г.). «Атака недели: RC4 немного сломан в TLS». Cryptography Engineering . Получено 12 марта 2013 г.
  31. ^ Надхем Аль-Фардан; Дэн Бернстайн; Кенни Патерсон; Бертрам Пёттеринг; Якоб Шульдт. «О безопасности RC4 в TLS». Лондонский университет Royal Holloway . Получено 13 марта 2013 г.
  32. ^ Эндрю Рус. Класс слабых ключей в потоковом шифре RC4. Два сообщения в sci.crypt, идентификатор сообщения 43u1eh$1j3@hermes.is.co.za и 44ebge$llf@hermes.is.co.za, 1995.
  33. ^ Goutam Paul, Siddheshwar Rathi и Subhamoy Maitra. On Non-negligible Bias of the First Output Byte of RC4 towards the First Three Bytes of the Secret Key. Труды Международного семинара по кодированию и криптографии (WCC) 2007, страницы 285–294 и Designs, Codes and Cryptography Journal, страницы 123–134, том 49, № 1-3, декабрь 2008 г.
  34. ^ Goutam Paul и Subhamoy Maitra. Перестановка после планирования ключей RC4 раскрывает секретный ключ. SAC 2007, страницы 360–377, том 4876, Lecture Notes in Computer Science , Springer.
  35. ^ Эли Бихам и Янив Кармели. Эффективная реконструкция ключей RC4 из внутренних состояний. FSE 2008, страницы 270–288, том 5086, Lecture Notes in Computer Science, Springer.
  36. ^ Мете Акгюн, Пинар Кавак, Хусейн Демирджи. Новые результаты по алгоритму планирования ключей RC4. INDOCRYPT 2008, страницы 40–52, том 5365, Lecture Notes in Computer Science, Springer.
  37. ^ Риддхипратим Басу, Субхамой Майтра, Гаутам Пол и Танмой Талукдар. О некоторых последовательностях секретного псевдослучайного индекса j в планировании ключей RC4. Труды 18-го Международного симпозиума по прикладной алгебре, алгебраическим алгоритмам и кодам с исправлением ошибок (AAECC), 8–12 июня 2009 г., Таррагона, Испания, страницы 137–148, том 5527, Lecture Notes in Computer Science, Springer.
  38. ^ Субхамой Майтра и Гаутам Пол. Новая форма смещения перестановки и утечка секретного ключа в байтах ключевого потока RC4. Труды 15-го семинара по быстрому программному шифрованию (FSE), 10–13 февраля 2008 г., Лозанна, Швейцария, страницы 253–269, том 5086, Lecture Notes in Computer Science, Springer.
  39. ^ Соурадьюти Пол ; Барт Пренел . Анализ неслучайных предсказательных состояний генератора ключевого потока RC4 (PDF) . Indocrypt 2003. С.  52–67 .
  40. ^ Скотт Р. Флурер; Дэвид А. МакГрю. Статистический анализ предполагаемого генератора ключевого потока RC4 (PDF) . FSE 2000. С.  19–30 . Архивировано из оригинала (PDF) 2 мая 2014 г.
  41. ^ Басу, Ридхипратим; Гангулы, Ширшенду; Майтра, Субхамой; Пол, Гутам (2008). «Полная характеристика эволюции алгоритма псевдослучайной генерации RC4». Журнал математической криптологии . 2 (3): 257–289 . doi : 10.1515/JMC.2008.012 . S2CID  9613837.
  42. ^ Флурер, Скотт Р.; Мантин, Итсик; Шамир, Ади (2001). «Слабые стороны алгоритма планирования ключей RC4». Избранные области криптографии : 1– 24. Архивировано из оригинала 2 июня 2004 г.
  43. ^ "Временная технология безопасности беспроводных локальных сетей: WPA заменит WEP, пока отрасль разрабатывает новый стандарт безопасности". Архивировано из оригинала 9 июля 2012 г.
  44. ^ «RC4-drop(nbytes) в базе данных имен стандартных криптографических алгоритмов».
  45. ^ Ривест, Рон. «Ответ безопасности RSA на уязвимости алгоритма планирования ключей RC4».
  46. ^ А. Кляйн, Атаки на потоковый шифр RC4, Designs, Codes and Cryptography (2008) 48:269–286.
  47. ^ Эрик Тьюс, Ральф-Филипп Вайнманн, Андрей Пышкин. Взлом 104-битного WEP менее чем за минуту.
  48. ^ Сорадьюти Пол и Барт Пренил , Новая уязвимость в генераторе потока ключей RC4 и подход к повышению безопасности шифра. Быстрое программное шифрование – FSE 2004, стр. 245–259.
  49. ^ Джон Лейден (15 марта 2013 г.). «HTTPS cookie crypto СНОВА РАСШИРЯЕТСЯ в руках специалистов по статистике». The Register .
  50. ^ AlFardan; et al. (8 июля 2013 г.). «О безопасности RC4 в TLS и WPA» (PDF) . Группа информационной безопасности, Royal Holloway, Лондонский университет. Архивировано из оригинала (PDF) 22 сентября 2013 г. . Получено 6 сентября 2013 г.
  51. ^ "О безопасности RC4 в TLS и WPA". Группа информационной безопасности, Royal Holloway, Лондонский университет . Получено 6 сентября 2013 г.
  52. ^ «RC4 должен умереть».
  53. ^ "Брифинги – 26 и 27 марта". 2015 . Получено 19 ноября 2016 .
  54. ^ "Атака SSL при использовании RC4" (PDF) . 2015 . Получено 19 ноября 2016 .
  55. ^ Mathy Vanhoef; Frank Piessens (9 августа 2015 г.). «RC4 NOMORE: эксплойт мониторинга и восстановления многочисленных случаев».
  56. Илья Миронов (1 июня 2002 г.), «(Не очень) случайные перетасовки RC4», Advances in Cryptology – CRYPTO 2002 (PDF) , Lecture Notes in Computer Science, т. 2442, Springer-Verlag, стр.  304–319 , doi : 10.1007/3-540-45708-9_20 , ISBN 978-3-540-44050-5, Архив Cryptology ePrint: Отчет 2002/067 , получено 4 ноября 2011 г.
  57. ^ Сорадьюти Пол ; Барт Пренил (2004), «Новая уязвимость в генераторе потока ключей RC4 и подход к повышению безопасности шифра», Fast Software Encryption, FSE 2004 , Lecture Notes in Computer Science, т. 3017, Springer-Verlag, стр.  245–259 , doi : 10.1007/978-3-540-25937-4_16 , ISBN 978-3-540-22171-5, получено 4 ноября 2011 г.
  58. Александр Максимов (22 февраля 2007 г.), Две линейные различающие атаки на VMPC и RC4A и слабость семейства потоковых шифров RC4, Архив Cryptology ePrint: Отчет 2007/070 , получено 4 ноября 2011 г.
  59. ^ аб Юкиясу Цуноо; Теруо Сайто; Хироясу Кубо; Маки Сигери; Томоясу Сузаки; Такеши Кавабата (2005), Самая эффективная отличительная атака на VMPC и RC4A (PDF)
  60. ^ Бартош Золтак (2004), «VMPC One-Way Function and Stream Cipher» (PDF) , Быстрое программное шифрование, FSE 2004 (PDF) , Lecture Notes in Computer Science, т. 3017, Springer-Verlag, стр.  210–225 , CiteSeerX 10.1.1.469.8297 , doi :10.1007/978-3-540-25937-4_14, ISBN  978-3-540-22171-5, получено 4 ноября 2011 г.
  61. ^ "CryptoLounge: RC4A". Архивировано из оригинала 1 октября 2011 г. Получено 4 ноября 2011 г.
  62. ^ Subhamoy Maitra; Goutam Paul (19 сентября 2008 г.), «Анализ RC4 и предложение дополнительных слоев для улучшения запаса безопасности», Progress in Cryptology - INDOCRYPT 2008 (PDF) , Lecture Notes in Computer Science, т. 5365, Springer-Verlag, стр.  27–39 , CiteSeerX 10.1.1.215.7178 , doi :10.1007/978-3-540-89754-5_3, ISBN  978-3-540-89753-8, Архив Cryptology ePrint: Отчет 2008/396 , получено 4 ноября 2011 г.
  63. ^ Дебджоти Бхаттачарджи; Анупам Чаттопадхай. «Аппаратный ускоритель для потокового шифра Spritz» (PDF) . Secrypt 2016. Получено 29 июля 2016 г.
  64. ^ Banik, Subhadeep; Isobe, Takanori (20 марта 2016 г.). "Криптоанализ полного потокового шифра Spritz". В Peyrin, Thomas (ред.). Быстрое программное шифрование . Конспект лекций по информатике. Том 9783. Springer Berlin Heidelberg. стр.  63–77 . doi :10.1007/978-3-662-52993-5_4. ISBN 9783662529928. S2CID  16296315.
  65. ^ Баник, Субхадип; Исобе, Таканори; Мории, Масакату (1 июня 2017 г.). «Анализ и улучшения полного потокового шифра Spritz». Труды IEICE по основам электроники, связи и компьютерных наук . E100.A (6): 1296– 1305. Bibcode : 2017IEITF.100.1296B. doi : 10.1587/transfun.E100.A.1296. hdl : 10356/81487 .
  66. ^ Хунцзюнь Ву, «Неправильное использование RC4 в Microsoft Word и Excel». https://eprint.iacr.org/2005/007
  67. ^ "Частично раскрыта процедура шифрования Skype". www.h-online.com. Архивировано из оригинала 11 июля 2010 г. Получено 8 июля 2010 г.

Дальнейшее чтение

  • Пол, Гаутам; Субхамой Майтра (2011). Потоковый шифр RC4 и его варианты. CRC Press. ISBN 9781439831359.
  • Шнайер, Брюс (1995). "Глава 17 – Другие потоковые шифры и генераторы реальных случайных последовательностей". Прикладная криптография: протоколы, алгоритмы и исходный код на языке C (2-е изд.). Wiley. ISBN 978-0471117094.
  • Первоначальная публикация алгоритма RC4 в списке рассылки Cypherpunks, архивная версия
  • RFC 4345 – Улучшенные режимы Arcfour для протокола транспортного уровня Secure Shell (SSH)
  • RFC 6229 – Тестовые векторы для потокового шифра RC4
  • RFC 7465 – Запрет на использование наборов шифров RC4
  • Кауконен; Тайер. Алгоритм шифрования потокового шифрования «Arcfour». Идентификатор проекта-kaukonen-cipher-arcfour-03.
  • Запись SCAN для RC4
  • Атаки на RC4 в Wayback Machine (архив 21 февраля 2015 г.)
  • Ответ безопасности RSA на уязвимости алгоритма планирования ключей RC4
RC4 в WEP
  • (в)Безопасность алгоритма WEP
  • Флюрер; Мантин; Шамир (лето–осень 2002 г.). «Атаки на RC4 и WEP». CryptoBytes . 5 (2). Архивировано из оригинала (PostScript) 2 января 2015 г.
Взято с "https://en.wikipedia.org/w/index.php?title=RC4&oldid=1253331780"