Научная статья на тему 'Быстродействующий алгоритм хеширования с высокой защищенностью от вскрытия'

Быстродействующий алгоритм хеширования с высокой защищенностью от вскрытия Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Штанько Игорь Анатольевич

Предложен вариант быстродействующего алгоритма хеширования, обладающего высокой криптостойкостью. Рассмотрены требования, которым должен удовлетворять разрабатываемый алгоритм, и подходы, используемые при его реализации. Приведено математическое и алгоритмическое описание разработанной хеш-функции и произведен расчет ее криптостойкости. Дана оценка статистических характеристик и сделано сравнение разработанного алгоритма с существующими аналогами.

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

Fast-acting hash algorithm with high dissection defense

Offers a variant of fast-acting hash algorithm, possessing high protection. Consider the requirements, to which must satisfy a worked up algorithm and approaches, used attached to algorithm realization. Mathematical algorithmic description brings worked up hash-function. Is produced a computation resistance worked up hash-function. Gives estimation of statistic descriptions and makes comparison of worked up algorithm with being analogues.

Текст научной работы на тему «Быстродействующий алгоритм хеширования с высокой защищенностью от вскрытия»

УДК 519.713

БЫСТРОДЕЙСТВУЮЩИЙ АЛГОРИТМ ХЕШИРОВАНИЯ С ВЫСОКОЙ ЗАЩИЩЕННОСТЬЮ ОТ ВСКРЫТИЯ

ШТАНЬКО И.А.

Предлагается вариант алгоритма хеширования, который обладает повышенным быстродействием, высокой защищенностью от вскрытия и длиной результата 128 и 256 бит. Алгоритм использует “технологию этажей”, поэтому может состоять из различного количества циклов в зависимости от требований к стойкости и быстродействию.

1. Предпосылки разработки нового алгоритма хеширования

В современных компьютерных системах одной из наиболее актуальных задач является обеспечение целостности и подлинности информации на всем этапе ее существования. Одна из составных частей системы обеспечения целостности и подлинности информации — используемый алгоритм хеширования [1].

В настоящее время в системах защиты информации используются алгоритмы хеширования, разработанные в США и России. Наиболее часто используются алгоритмы MD4[2], MD5[3], SHA[4] и ГОСТ34-И94. Эти алгоритмы имеют много достоинств, однако содержат и некоторые недостатки: алгоритм ГОСТ34-1194 при достаточно высоких показателях криптостойкости обладает весьма невысоким быстродействием, на алгоритмы MD4 и MD5 разработаны успешные атаки, позволяющие получить коллизии за весьма незначительное время. Кроме того, всегда рекомендуется использовать алгоритмы “домашней” разработки по сравнению с зарубежными образцами.

В промышленно развитых странах в интересах обеспечения информационной безопасности создаются свои алгоритмы криптозащиты, а также алгоритмы хеширования. В США принят стандарт SHA (являющийся доработанной модификацией алгоритма MD5), в России принят ГОСТ34-1194.

Однако имеется вероятность “закладок” и “люков” в алгоритмах, разработанных за рубежом, что снижает общую устойчивость системы защиты информации от атак. Существует непроверенная информация, что спецслужбы при помощи имеющегося в их распоряжении оборудования могут взломать практически любую систему защиты. Такое возможно только в том случае, если существует возможность вскрытия системы защиты методом, отличающимся от полного перебора всех возможных вариантов, иными словами некоторых “закладок”.

2. Требования, предъявляемые к разрабатываемому алгоритму хеширования

Прежде всего, алгоритм должен обеспечивать защиту от известных атак на алгоритмы хеширования [1] , таких как:

— прямой перебор возможных вариантов выходных значений;

— атака “дня рождения” (подбор двух вариантов сообщения с одинаковым значением функции хеширования);

— построение алгоритма, позволяющего получить входное значение на основании его хеш-функции;

— выходное значение алгоритма должно зависеть от некоторых ключевых параметров для использования его в качестве КАС (кода аутентификации и сообщения).

Для обеспечения высокой защищенности алгоритма от криптоатак необходимо обеспечить ряд требований.

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

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

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

В-третьих, невозможность построения так называемого “обратного” алгоритма, т.е. алгоритма, который позволил бы получить исходное сообщение либо его вариант, хеш-функция которого будет совпадать с неким значением.

В-четвертых, стойкость алгоритма должна базироваться на наборе применяемых преобразований, а не на его недоступности для криптоаналитика.

Кроме выполнения требований к высокой защищенности разрабатываемого алгоритма, необходимо обеспечить его высокое быстродействие.

3. Подходы, применяемые при разработке представленного алгоритма хеширования

Как указывалось выше, при разработке алгоритма необходимо обеспечить высокую скорость “лавинного” эффекта. Выполнение этого требования возможно при помощи достаточно большого количества методов [5], однако определяющим является их быстродействие.

Высокое быстродействие хеш-функции может быть обеспечено за счет использования быстрых битовых операций над блоками сообщения [1]. В числе таких преобразований следует отметить сложение по модулю 2, 28, 216 и 232, циклический сдвиг вправо (или влево) на n бит.

Однако прямое применение таких операций неоправданно с той точки зрения, что по выходным значениям криптоаналитик сможет делать предполо-

140

РИ, 1998, № 3

жения об исходном сообщении. А это неприемлемо из-за перечисленных выше требований.

Таким образом, необходима функция рандомизации, которая смогла бы скрыть от криптоаналитика исходное сообщение.

Рандомизация сообщения может обеспечиваться следующими методами:

— использование специальных констант;

— использование ГПСЧ;

— использование таблиц подстановки.

Первый метод подразумевает использование таких значений, битовое представление которых содержит примерно равновероятное распределение нулей и единиц. Например, в алгоритме MD4 используются следующие константы (приведены для наглядности в шестнадцатеричном и двоичном виде):

5A827999=01011010100000100111100110011001,

6ED9EBA1 = 01101110110110011110101110100001.

Можно заметить, что в этих константах примерно одинаковое число единичных и нулевых бит (в первом случае “1” - 15, “0” - 17, во втором “1” - 19, “0” - 13). Кроме того, взаимное расположение нулей и единиц достаточно случайно.

Использование ГПСЧ возможно только в случае его высокого быстродействия. Такой генератор должен давать сигнал, каждый последующий набор значений которого достаточно отличается от предыдущего, что практически сложно реализовать.

Использование таблиц подстановок подразумевает замену одних битовых последовательностей другими. В частности, таблица подстановок используется в алгоритме ЕОСТР34-11. Ее применение позволяет при достаточно невысоких затратах на вычисле -ния получить высокую степень рандомизации. Однако при этом требования к таблице замены должны быть достаточно жесткие. Кроме того, изменение таблицы замен влечет за собой и изменение выходного значения алгоритма. Таким образом, таблица замен является еще одним ключом алгоритма.

Кроме перечисленных выше методов рандомизации сообщения, возможны варианты, состоящие из некоторого множества таких методов.

4. Обобщенная схема разрабатываемого алгоритма хеширования

При разработке алгоритма использовались следующие постулаты:

—для обеспечения высокого быстродействия, как указывалось выше, необходимо использовать только простые операции, выполняемые процессором за минимальное число тактов;

— общее количество циклов обработки блока сообщения должно быть сведено к минимуму;

— алгоритм должен иметь возможность формирования результата длиной 128 и 256 бит;

—рандомизация сообщения должна занимать как можно меньше времени.

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

1. Расширение исходного сообщения до длины, кратной размеру обрабатываемого алгоритмом блока данных. Установка начальных значений используемых переменных.

2. Выполнение последовательности преобразований для получившейся последовательности бло -ков фиксированной длины.

3. Вычисление окончательного значения возвращаемого алгоритмом, как функции от значения, полученного на последнем этапе обработки.

Обобщенная схема алгоритма, описанного выше, представлена на рис. 1.

Исходное сообщение

__________________і_________________

Установка начальных значений алгоритма и расширение исходного сообщения до необходимой длины

Выделение блока сообщения фиксированной длины

г

Обработка блока сообщения

Цикл преобразований

________І__________

Результат хеширования

Рис. 1. Обобщенная схема разрабатываемого алгоритма хеширования

Цикл преобразований каждого блока исходного сообщения может строиться с использованием следующих подходов:

— применение последовательности преобразований, каждое из которых используется один раз;

— применение цикла преобразований, использующих разные константы;

— применение цикла преобразований, параметры которого вычисляются отдельно для обработки каждого блока сообщения.

Следует заметить, что здесь под циклом преобразований подразумевается последовательность действий, которая, возможно, также содержит в себе подциклы.

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

Исходя из сказанного выше, при разработке алгоритма был выбран подход, основанный на использовании так называемой “технологии этажей”.

5. Технология этажей

Сущность такого подхода заключается в том, что алгоритм работы внутри является постоянным и не изменяется в случае изменения параметров. Это позволяет, кроме упрощения алгоритма, минимизировать объем программного кода, что в некоторых

РИ, 1998, № 3

141

случаях может оказаться существенным (в частности, для аппаратной реализации алгоритма).

Содержание этажей остается постоянным, их возможно использовать различное количество в зависимости от конкретных требований применения данного алгоритма. Технология этажей схематически изображена на рис.2.

Рис. 2. Цикл обработки блока данных

6. Математическое описание алгоритма

Математическое описание работы алгоритма выглядит следующим образом:

Мо=МАР0©К; (1)

ho=(f(Mo))<<3 где К— ключ рандомизации;

М0— начальный блок исходного сообщения;

<< — циклический сдвиг влево.

Далее преобразования производятся в соответствии с (2):

Мі=МАРі®К; (2)

hi=(f(Mi))<<3.

После преобразований (1) и (2) следуют преобразования на этажах (3):

Ai=((fn(AM[+]K4))<<3)©Bi-i;

Ві=ШВі-і©Кз))<<11)©Аі; (3)

7. Оценка криптостойкости предложенного алгоритма хеширования

Как указывалось выше, одним из основных требований к разрабатываемому алгоритму является его высокая криптостойкость, для обеспечения которой необходимым условием служат хорошие статистические свойства получаемого результата. В табл. 1 приведены статистические характеристики разработанного алгоритма (длина блока 128 бит) по этажам.

Для сравнения в табл. 2 приведены аналогичные характеристики для алгоритма SHA (длина блока 160 бит), который выбран не случайно. Для этого алго-

Т аБпица1

Мат.ож. Дисперсия Асиметр. Эксцесс

Этаж 1

64,009003 31,080002 -0,000005 -2,996996

63,943001 29,236984 -0,000228 -2,996215

63,823002 30,288059 -0,000832 -2,996471

63,860001 32,969376 -0,000746 -2,997096

Этаж 2

64,260002 29,403839 -0,000505 -2,996543

64,165001 30,560381 -0,000202 -2,996784

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

64,152000 30,437332 -0,000143 -2,996883

63,665001 30,585306 0,000272 -2,996881

ЭтажЗ

64,109001 31,882990 0,000257 -2,997059

63,995998 30,332300 -0,000082 -2,996433

64,290001 32,240101 -0,000028 -2,997403

64,254997 31,291275 0,000620 -2,996873

Этаж 4

64,156998 29,910265 -0,000133 -2,996711

63,702999 28,505322 0,000119 -2,996437

64,120003 31,805372 0,000399 -2,996948

64,021004 33,013565 0,000369 -2,997575

Ci=((fn(Ci-1[**] К2))<<13)©Бі; Di=((fn(Di-1[*]K1))<<7)©Ci-1, где [+]— сложение по модулю 232; [*]— сложение по модулю 216; [**]— сложение по модулю 28; © — сложение по модулю 2. Формирование ключа рандомизации К производится путем использования таблицы подстановок. Она представляет собой матрицу размера 16*16 (для 128-битного варианта) и 16*32 (для 256битного).

Дальнейшие преобразования заключаются в том, что подблок делится на 4 по 32 или 8 по 32 бита и эти блоки образуют этаж (параллельный этаж).

На рис. 3 изображена обобщенная схема работы алгоритма (рассмотрен случай 128-битной хеш-функции), приведен только один его этаж (выполнение остальных происходит аналогично).

...Шаги(п - 1)...

Алгоритм содержит п шагов (n=4,8,16)

Зашифрованное сообщение 128 бит

Рис.3. Схема работы алгоритма хеширования

142

РИ, 1998, № 3

ритма на данный момент не найдено ни одной успешной атаки, несмотря на то, что он уже давно является общедоступным.

Сравнение показывает, что статистические свойства разработанного алгоритма ничуть не уступают аналогичным свойствам алгоритма SHA.

За счет использования 4 методов битового биения (сложение по разным модулям) уменьшается число циклов преобразования и увеличивается скорость

Таблица2

Мат.ож. Дисперсия Асимметр. Эксцесс

80,021004 79,599998 41,884445 40,286331 0,000206 -0,000637 -2,998224 -2,998087

79,973999 80,158997 38,231510 40,067810 -0,000050 -0,000118 -2,997830 -2,998244

работы алгоритма. Как видно из табл.1, уже на первом шаге статистические свойства алгоритма указывают на высокую степень случайности получаемого результата.

Исследования, проведенные над алгоритмом, показали, что он обладает прекрасными статистическими характеристиками. С изменением в исходном сообщении одного бита хеш-функция изменяется на половину своих бит. Это значит, что алгоритм обладает хорошим “лавинным” эффектом. Изменение ключа на один бит приводит к аналогичному результату. Алгоритм осуществляет качественное “перемешивание” бит, при этом дисперсия указывает на то, что измененные разряды распределены по равномерному закону.

Чтобы оценить криптостойкость алгоритма, необходимо вычислить tg, Н(К), Lo для алгоритмов с выходной хеш-функцией 128 и 256 бит: tg=1,1*1019 лет для 128-битного и tg=3*1057 лет для 256-битного; энтропия ключа Н(К)і28=128 и Н(К)256=256; расстояние единственности L0=256 и L0=512.

8. Сравнительный анализ алгоритма с известными аналогами

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

Сравнение представленного алгоритма с известными аналогами показывает более высокое его быстродействие (см. табл. 3) при хороших статистических характеристиках.

Таблица3

Алгоритм Длина хеш. Скорость хеш, Мбайт/сек

Разработанный 128 4,82

алгоритм 256 4,11

ГОСТ Р-34.11 -94 256 0,2

HAVAL(3 прохода) 128 1,9

256 2,3

HAV AL (4 прохода) 128 1Д

256 1,9

HAV AL (5 прок од об) 128 1,12

256 1 L to

MD2 128 0,4

MD4 128 3,6

MD5 128 3,2

SHA 160 0,9

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

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

Литература: 1. Горбенко И.Д., Штанько И.А. Функции хеширования. Понятие, требования, классификация, свойства и применение // Радиоэлектроника и информатика. 1998. №1. С. 64-69. 2. Rivest R.L. The MD4 Message Digest Algorithm. Advances in Cryptology CRYPTO’90 Proceedings. Apr.1992. P. 30-35. 3. Rivest R.L. The MD5 Message Digest Algorithm. Advances in Cryptology CRYPTO’90 Proceedings. Oct. 1990. P. 40-44. 4. FIPS 1801 Secure hash standard. NIST, US Department of Commerce. Washington D.C. Apr. 1995. P. 25.5. PreneelB. Analysis and Design of Cryptographic Hash Function. Ph.D. dissertation. Katholieke Universiteit Leuven. Jan. 1993. P. 124.

Поступила в редколлегию 30.09.98 Рецензент: д-р техн. наук Стасев Ю.В.

Штанько Игорь Анатольевич, аспирант кафедры ПОЭВМ ХТУРЭ. Научные интересы: защита информации. Увлечения и хобби: программирование. Адрес: Украина, 310726, Харьков, пр. Ленина, 14. тел. 63-95-33.

РИ, 1998, № 3

143

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