Научная статья на тему 'Экспериментальный анализ шифра RC4 и потоковых шифров, выдвинутых на конкурс eSTREAM'

Экспериментальный анализ шифра RC4 и потоковых шифров, выдвинутых на конкурс eSTREAM Текст научной статьи по специальности «Математика»

CC BY
283
60
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Экспериментальный анализ шифра RC4 и потоковых шифров, выдвинутых на конкурс eSTREAM»

|Aq(+1 = А о (q, о (Aq()f ®Aq( о qf ) о b ® С о Aq( ^ Z )

W,+i = G о Aq, 0 ,

где Aq = ~©q( и Ay(+1 = Ь(+1©У(+1 для всех t е Z0, а вариация поведения при переходе от параметров A, b, С, d, E, F, G к параметрам А, Ь, С, d, E, F, G - системой

ГAqt+1 = А о q( о Ef о b©A о q о qf о b © AC о E © С о Aq © Ad © AE о xt+1 ^ £ jy\

[Ay,+! = AG о ©G о Aq, ©AF о x,+i ,

где Au = u©u (u е {A,b, C, d,E, F, G}). Исследование такой вариации поведения -третье из возможных направлений дальнейших исследований. В заключение отметим, что программные реализации шифрсистем, построенных на основе ML, MrR , Mш и некоторых других аналогичных моделей экспериментально подтвердили перспективность предложенного подхода.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке СИ. - М.: ТРИУМФ, 2003. - 816с.

2. Харин Ю.С. и др. Математические и компьютерные основы криптологии. - Минск: Новое знание, 2003. - 382с.

3. Кузнецов С.П. Динамический хаос. - М.: Физматлит, 2001. - 296с.

4. КалманР. и др. Очерки по математической теории систем. - М.: Мир, 1971- 400с.

5. ГлушковВ.М. Синтез цифровых автоматов.- М.: Физматлит, 1962. - 476с.

6. Гилл А. Введение в теорию конечных автоматов. М.: наука, 1966. 272с.

7. ТрахтенбротБ.А. Конечные автоматы (поведение и синтез). - М.: Наука, 1970. - 400с.

8. КудрявцевВ.Б. Введение в теорию конечных автоматов. - М.: Наука, 1985.- 320с.

9. Скобелев В.Г., Тубольцева О.В. Шифр на основе отображения Эно // Вестник Томского университета. Приложение. 2005. -№ 14. - С.74-78.

10. Скобелев В.В. Симметрические динамические системы над конечным кольцом: свойства и сложность идентификации // Труды ИПММ НАН Украины. 2005.- Т. 10. - С. 184-189.

11. Скобелев В.Г. Нелинейные автоматы над конечным кольцом // Кибернетика и системный анализ (в печати).

12. Скобелев В.Г. Алгоритмы и сложность экспериментов с автоматами над конечными кольцами // Материалы 7-ой Международной Конференции «Дискретные модели в теории управляющих систем (ДМ-06) (Москва, МГУ, 4-6 марта 2006 г.)» (в печати).

13. Скобелев В.Г. Анализ системы Лоренца над кольцом Z t //Вестник Томского университета (в печати).

14. Курмит А.А. Автоматы без потери информации конечного порядка. - Рига: Зинат-не, 1972. - 266с.

15. БлейхутР. Теория и практика кодов, контролирующих ошибки. - М.: Мир, 1986. - 576с.

16. Ахо А. и др. Построение и анализ вычислительных алгоритмов. - М.: Мир, 1979. - 536с.

С.А. Дорошенко, А.М. Лубкин, Б.Я. Рябко, А.Н. Фионов

Россия, г. Новосибирск, СГУТиИ

ЭКСПЕРИМЕНТАЛЬНЫЙ АНАЛИЗ ШИФРА RC4 И ПОТОКОВЫХ ШИФРОВ, ВЫДВИНУТЫХ НА КОНКУРС ESTREAM1

ВВЕДЕНИЕ

Европейское криптологическое сообщество ECRYPT проводит открытый конкурс потоковых шифров - eSTREAM (ECRYPT Stream Cipher Project) [1]. На

1 Работа выполнена при поддержке Российского фонда фундаментальных исследований (номер проекта 06-07-89025)

конкурс авторами со всего мира было выдвинуто 35 новых шифров. В данный момент проводится открытое исследование их надёжности. Сотни исследователей из различных стран пытаются обнаружить слабости в шифрах с целью выявить наиболее надёжный из них и исключить наиболее слабые. По результатам исследований один из кандидатов к январю 2008 г. будет объявлен победителем и будет принят в качестве стандарта для стран европейского сообщества. Одним из требований, предъявляемых к современным шифрам, как к потоковым, так и к блоковым, является создание ими шифротекста, неотличимого от случайной последовательности. Под случайной мы подразумеваем последовательность бит, в которой вероятности появления 0 и 1 равны 1А, причём значение каждого последующего бита не зависит от предыдущих.

Методы, используемые для проверки этого условия, рассматриваются в рамках математической статистики. Сформулируем задачу: необходимо проверить гипотезу H0 о том, что источник порождает символы алфавита {0,1} равновероятно и независимо, против альтернативной гипотезы H1, говорящей, что последовательность создана стационарным и эргодическим источником и Н0 не выполняется.

Авторами работы были экспериментально исследованы шифры, представленные на конкурс eSTREAM, а также потоковый шифр RC4. Последний является наиболее распространенным потоковым шифром на сегодняшний день. В список криптосистем, основанных на RC4, входят WEP, WPA, CipherSaber, Protocol en-cryption(PE), Microsoft Point-to-Point Encryption, Secure Sockets Layer(SSL), Secure shell(SSH). По словам многих исследователей, “RC4 является самым используемым потоковым шифром в мире”[2].

Для того, чтобы зарегистрировать отклонения от случайности, необходим соответствующий статистический тест, построение, или изобретение, которого довольно сложная задача. В частности, для шифра RC4, созданного в 1987 г., такого практически реализуемого теста предложить никто не мог в течение почти 20 лет, несмотря на многочисленные работы, посвященные этому вопросу, в которых, в частности, были описаны некоторые теоретически найденные отклонения от случайности.

Задача построения новых статистических тестов привлекает внимание многих исследователей. Об актуальности этой проблемы свидетельствует тот факт, что в 2000 г. национальный институт стандартов и технологий США (NIST) провёл специальные исследования и опубликовал 16 статистических тестов, которые рекомендованы для применения. Однако несмотря на многочисленные работы, задача построения эффективных статистических тестов далека от своего разрешения.

В работе [3] были предложены новые тесты, для которых показана их высокая теоретическая эффективность. В частности, в [3] был проведён сравнительный анализ мощности новых тестов и тестов, предложенных NIST. Результаты, полученные в ней, свидетельствуют о том, что новые методы эффективнее предложенных NIST. Статистический тест “Стопка книг, предложенный в [3], позволяет обнаружить неслучайность шифра RC4 при длине выходной последовательности 232 бит [4]. Кроме того, новый тест позволил забраковать шифр ZK-Crypt, один из кандидатов конкурса eSTREAM: при длине выходной последовательности порядка

225 бит тест различает выходную последовательность от случайной [5]. Прежде, чем перейти к рассмотрению теста “Стопка книг”, приведём описание известного теста хи-квадрат, что позволит нам ввести ряд важных понятий и выявить основные недостатки, присущие не только тесту хи-квадрат, но и многим другим тестам.

ОПИСАНИЕ ТЕСТА ХИ-КВАДРАТ

Пусть некоторый источник порождает буквы алфавита А = {a1, ..., aS}, S >

1, и требуется по выборке x1, ., xN, где х; е А Vi: 1 < i < N, проверить гипотезу Но :P(ai) = Pi, ■■■,p(as) = Ps,

против альтернативной гипотезы Н1, являющейся отрицанием Н0. Применение критерия хи-квадрат требует подсчёта значения вида

Х2 = ^ № - Кр,)2 , (1)

ы Кр,

где N - частота символа а! в выборке х1, ..., х№ Известно, что х2 асимптотически приближается к вероятностному распределению хи-квадрат с 8 - 1 степенью свободы. Если выполняется гипотеза Н1, величина х2 асимптотически подчиняется так называемому нецентральному распределению хи-квадрат с параметром а (см. [6]): Ен0(х2) = 8-1, УНо(х2) = 2(8-1),

^ (х2) = 8-1 +а , ^(х2) = 2(Б-1) + 4а,

где Ен , V - среднее значение и дисперсия, соответственно, при выполнении

гипотезы Н1. Гипотеза Н0 принимается, если х2 не превышает %2_н_а, где Хй-н-а -

квантиль порядка (1 - а) распределения а, а а - ошибка первого рода.

Заметим, что величина (1) зависит от дискретных величин ^, ..., N5, определённых на множестве неотрицательных целых чисел. Следовательно, область значений (1) будет дискретной. С другой стороны, распределение X дискретным не является. Тогда для построения достоверных оценок случайности дискретность значения (1) должна быть минимизирована. Потому авторы многих работ рекомендуют при проведении исследований соблюдать условие вида

^ > 5 VI: 1 < 1 < 8 (2)

Прежде, чем анализировать возможности критерия хи-квадрат, обратимся к понятию двуличных процессов, рассмотренных в [3]. При рассмотрении ограничимся примером, демонстрирующим это явление, и сделаем одно важное следствие.

Пусть х1, ..., xN = 0 1 0 1 0 1 0 1 0.Заметим, что количество букв вида ‘0’ и

‘1’ в последовательности примерно одинаково. Следовательно, проверка гипотезы Н0 : р(0) = р(1) = У (8 = 2) тестом хи-квадрат подтвердит Н0. С другой стороны, если разбить последовательность на блоки длиной 2 бита, станет очевидным преобладание блоков вида ‘01’ над всеми остальными - случайной такую последовательность назвать нельзя. Потому заметим, что если длина блока 8 меньше некоторого значения, то последовательность может быть неотличима от случайной. Это явление называют двуличными процессами. То есть для построения достоверных оценок случайности требуется увеличить размер алфавита 8. Причём увеличение длины блока на единицу, очевидно, приводит к увеличению мощности алфавита вдвое.

Если 8 > 232, применять тест хи-квадрат на практике не представляется возможным. Оперативная память современных компьютеров не позволяет хранить статистику для такого количества элементов. Единственным выходом в данной ситуации является использование внешней памяти, но такое решение проблемы приводит к существенному снижению скорости тестирования. Потому на практике хи-квадрат применим только при условии, что 8 << 232.

Обратимся к условию (2). При анализе шифров актуальна проверка гипотез вида

Н0 : P(al) = p(a2) =... = p(as) = ^ . Н1 : -,не

Если VI: 1 < 1 < 8: р(а1)= 1/8, то очевидным будет следствие

N > 58 ,

Например, если 8 = 240, то N > %242. Очевидно, практически анализировать последовательности с такими длинами вычислительно сложно.

Метод “Стопка книг” позволяет решить эти проблемы. Перейдём к его описанию.

ОПИСАНИЕ ТЕСТА “СТОПКА КНИГ”

Пусть дан алфавит А = {аь а2, ... , а8}, источник, генерирующий буквы из А и две следующие гипотезы:

Но :р(а^ = р(а2) =... = р(а8) = ^ . Н1 : ^Но.

Необходимо проверить гипотезу Н0 по выборке хь х2, ... , х№ N > 1, сгенерированной источником. Прежде чем перейти к алгоритму тестирования, получению численных оценок случайности, рассмотрим механизм, сопровождающий обработку каждого элемента последовательности. Согласно тесту “Стопка книг” все буквы из А проиндексированы от 1 до 8, индекс, или порядок, каждой буквы меняется после обзора каждой буквы х по формуле:

1 если х4 = а,

у‘+'(а) = -у‘(а) +1 если у‘(а) < у‘(х4),, (3)

у‘(а) если у1(а) >у4(х1),

где у1+1(а) - порядок после обзора х1, х2, ., хь 1 = 0, ., N у1=<а1, а2, ., а8>.

Объясним (3) неформально. Будем считать, что буквы алфавита А образуют стопку, вроде стопки книг, и у1 (а) - позиция а в стопке. Пусть первая буква х1 слова х1,х2, ., хы- равна а. Согласно формуле (3) а извлекается из стопки и ставится на первую позицию. Элементы, которые занимали позиции до а соответственно сдвигаются. Далее применяем эту процедуру для буквы х2, и так далее для всех остальных.

Основная идея заключается в том, что если гипотеза Н0 не выполняется, то чаще встречающиеся буквы будут занимать позиции, близкие к первой. С другой стороны, если Н0 верна, вероятность найти каждую букву х1, 1 = 1, 2, ., N в позиции _|, ) = 1, 2, ..., 8, будет одинаковой, равной 1/8. Перейдём к описанию работы теста. Множество индексов {1, 2, ., 8} делится на г непересекающихся подмножеств

А1 = {1,2, ..., к1>, А2 = {к1+1, ..., к2}, ..., Аг = {кг-1 + 1, •••, S}, г > 2. (4)

Тогда, используя х1,х2, ..., х№ подсчитываем число случаев, когда у\х), t = 1, 2, ..., N, является элементом подмножества Ак, к = 1, 2, ..., г. Эту величину обозначим пк. пк = { : у4(х4) е Ак, t = 1, ..., N}| к = 1, ..., г. Очевидно, если Н0 выполняется, вероятность события у4(х4) е Ак равна |Ак|/8. Далее применяем описанный тест хи-квадрат для проверки гипотезы Н0 : Р{у\х4) е Ак> = |Ак|/8, базируясь на эмпирических частотах п1, п2, ., пг:

^(п, - К(|А, |/8))2

х2

=ы -

К(|А, |/$

2 2 Гипотеза Н0 принимается, если х не превышает хг_ы_а.

Ввиду того, что оценка случайности, проведённая тестом, вероятностная и вероятность ошибки равна а, нельзя делать выводы о достоверности гипотез Н0 или Н1, анализируя только одну последовательность х1, х2, ...х№ Необходимо проверить гипотезу Н0 для М выборок, взятых случайно и независимо. Если гипотеза Н0 верна для рассматриваемого источника, то число случаев, когда Н0 отвергается, равно, в среднем, Ма. Если число отклонений существенно отличается от Ма, гипотеза Н0 отклоняется. Как уже было сказано, проблемы теста хи-квадрат разрешимы с использованием теста “Стопка книг”. Обратимся к условию (2). Обозначим Ат1п, т1п е 1, ..., г, подмножество, мощность которого наименьшая среди А1, А2, ., Аг. Так как |Ат1п|/8 > 1/8, ограничение (2) не будет столь существенным. Например, если |Ат1п| = 78, то условие (2) для теста “Стопка книг” примет следующий вид:

N > 5 78.

Следовательно, метод может быть применён для построения достоверной оценки случайности, если длина выборки N << 8. Рассмотрим решение проблемы с памятью для большого алфавита. Обратимся крис.1.

Рис.1. Представление элементов стопки в памяти

Пусть часть стопки, элементам которой присвоены индексы, принадлежащие множествам А1, А2, ., Аг-1 , (далее первая часть) размещается в оперативной памяти. Для х1, 1 = 1, ..., N расположенного в этой части, очевидно, существует алгоритм, позволяющий осуществлять операцию (3). Заметим, каждому элементу на любом этапе обработки последовательности соответствует только один индекс. Если элемент х1 отсутствует в первой части, то его индекс принадлежит Аг. Заменив элемент с индексом кг-1 ( см. (4)) на х1, получим задачу, которую уже умеем решать. При этом никаких противоречий с правилом (3) в пределах первой части стопки не возникнет. Следовательно, структуру элементов, индексы которых принадлежат Аг, нет необходимости хранить в памяти. Такой подход позволяет применять тест “Стопка книг” для анализа статистических свойств шифров в случае, когда 8 > 232.

РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ При тестировании шифра RC4 в [4] его выходная последовательность делилась на 16-битовые блоки, и каждый такой блок рассматривался как буква алфавита, размер которого 216 букв(8 = 216). Согласно тесту, каждой букве алфавита соответствует индекс, и всё множество индексов делилось на два множества А1 = {1, ..., 16} и А2 = {17, ..., 216}. Далее на вход теста поступали 100 случайно выбранных последовательностей длины п бит, сгененерированных этим шифром. При уровне значимости 0,95(а = 0.05), в среднем, 5 последовательностей из 100 могут быть признаны неслучайными. Результаты, приведённые в табл.1, свидетельствуют о сильной неслучайности шифра RC4.

Таблица 1

Результаты тестирования шифра RC4

Длина последовательности (п), бит 2 232 233 2 235 236 2 238 239

Количество неслучайных (из ста) 6 12 17 23 37 74 95 99 100

Перейдём к результатам тестирования шифров конкурса е8ТИБАМ. Шифр 2К-Сгур1 генерирует шифротекст словами длиной в 32 бита, которые использовались в тесте в качестве букв 32-битного алфавита(8 = 232). При его тестировании в [5] множество индексов разбивалось на 2 части:

1. А1 = {1, ..., 216}

2. А2 = {216+1, ..., 232}

Далее схема эксперимента ничем не отличается от предыдущей, за исключением того, что уровень значимости был выбран 0,999(а = 0.001). То есть, в среднем, 0,1 последовательностей из 100 могут быть признаны неслучайными.

Однако, из табл. 2 видно, что это не так:

Таблица 2

Результаты тестирования шифра ZK-Crypt________________________

Длина последовательности (n), бит 2 2 2 2

Количество неслучайных (из ста) 25 51 97 100

Авторами исследовались и другие шифры конкурса е8ТИБАМ. При длинах последовательностей бит порядка 231 - 232 отклонений от случайности обнаружено не было.

ЗАКЛЮЧЕНИЕ

Отметим некоторые особенности статистического теска “Стопка книг”.

Во-первых, очевидно, “наивная” реализация указанных методов, с учётом, что длина последовательности равна N имеет вычислительную сложность 0(8*^. К примеру, при_8 = 224, N = 232, число операций достигает порядка 256. Решение задач подобной сложности практически невыполнимо, даже при условии, что вычисления будут вестись при помощи суперкомпьютеров. Во-вторых, мощность, или чувствительность, теста зависит от параметров: от количества множеств индексов (г) и от состава множеств А1, А2, ., Аг (в экспериментах с ЯС4 г = 2, А1 = {1, ..., 16} и А2 = {17, ..., 216} ). Приведём результаты эксперимента для шифра ЯС4 с параметрами теста г = 2, А1 = {1, ..., 215} и А2 = {215+1, ..., 216}, прочие параметры оставим неизменными (8 = 216 ). Как показывает табл. 3, такая схема эксперимента неслучайности не регистрирует.

Таблица 3

Тестирование шифра RC4 с другими параметрами теста__________________

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Длина последовательности (n), бит 2 232 233 2 235 236 237 238 239

Количество неслучайных (из ста) 6 7 4 6 7 5 5 6 7

Авторами разработаны эффективные алгоритмы реализации теста “Стопка книг”. Один из алгоритмов вычислительной сложности O(N*log2(S)) позволяет проводить выбор оптимальных параметров теста в процессе обработки последовательности. Такая версия актуальна для анализа статистических свойств, поскольку определить оптимальные параметры теста для конкретного шифра предварительно не представляется возможным. Реализация этого алгоритма позволила обнаружить неслучайность в шифре RC4. Другой алгоритм вычислительной сложности O(N) позволяет проводить анализ с фиксированными параметрами теста. Такая реализация теста более актуальна для построения статистических атак в случае, когда оптимальные параметры уже известны, поскольку имеют меньшую вычислительную сложность. Построение таких реализаций делает возможным применение теста “Стопка книг” для решения задач криптографии.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. eSTREAM, the ECRYPT Stream Cipher Project. http://www.ecrypt.eu.org/stream/index.html.

2. RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4 http://www.rsasecurity.com/rsalabs/node.asp?id=2009.

3. Ryabko B. Ya., Monarev V.A. Using information theory approach to randomness testing. Journal of Statistical Planning and Inference,2005, v. 133, n.1, pp. 95-110.

4. Sergey Doroshenko and Boris Ryabko. The experimental distinguishing attack on RC4. http://eprint.iacr.org/2006/070.pdf.

5. Alexey Lubkin and Boris Ryabko. The distinguishing attack on ZK-Crypt cipher. http://www.ecrypt.eu.org/stream/papersdir/076.pdf.

6. Ryabko B. Ya., Stognienko V. S., Shokin Yu. I.. A new test for randomness and its application to some cryptographic problems. Journal of Statistical Planning and Inference, 2004, v. 123, n.2 pp. 365-376.

i Надоели баннеры? Вы всегда можете отключить рекламу.