max /max
u = I r ■ ß{r)dr / I ß{r}dr.
min / min
Вывод. Показанный алгоритм синтеза позволяет разработать нечеткий регулятор основного контура адаптивной системы с минимумом априорной информации (база правил изначально пустая) с компенсацией влияния высокочастотных колебаний в канале производной в установившемся режиме работы ОУ.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Соловьев В.В. Синтез нечеткого адаптивного регулятора с априори неопределенной базой правил // Труды Всероссийской научной конференции «Актуальные вопросы исследования общественных и технических систем». Ч. 2. - Таганрог: Изд-во ТТИ ЮФУ, 2010. - С. 62-62.
2. Соловьев В.В., Финаев В.И. Методика синтеза адаптивного нечеткого регулятора для объекта с неопределенной моделью // Известия ЮФУ. Технические науки. - 2012. - № 1 (126). - С. 78-83.
3. Соловьев В.В. Синтез адаптивного нечеткого регулятора для объектов с априорной неопределенностью // Труды 3-го Международного семинара «Системный анализ, управление и обработка информации» / Под общ. ред. Р.А. Нейдорфа. - Ростов-на-Дону: Изд-во центр донск. гос. техн. ун-та, 2012. - С. 224-239.
4. Финаев В.И. Модели принятия решений: Учебное пособие. - Таганрог: Изд-во ТРТУ, 2005. - 118 с.
5. Соловьев В.В., Шестова Е.А. Оптимизация регуляторов сложных технических систем управления с нечеткими параметрами // Известия ЮФУ. Технические науки. - 2012.
- № 2 (127). - С. 191-197.
Статью рекомендовал к опубликованию д.т.н., профессор Я.Е. Ромм.
Соловьев Виктор Владимирович - Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Южный федеральный университет»; e-mail: [email protected]; 347928, г. Таганрог, пер. Некрасовский, 44; тел.: 88634371773; кафедра систем автоматического управления; старший преподаватель.
Soloviev Victor Vladimirovich - Federal State-Owned Autonomy Educational Establishment of Higher Vocational Education “Southern Federal University”; e-mail: [email protected]; 44, Nekrasovskiy, Taganrog, 347928, Russia; phone: +78634371773; the department of automatic control systems; senior lecturer.
УДК 51-77
Д.Н. Босиков, Р.А. Хади
ОСОБЕННОСТИ АЛГОРИТМИЧЕСКОЙ СТРУКТУРИЗАЦИИ ВЫЧИСЛЕНИЯ СОВРЕМЕННЫХ ХЭШ-ФУНКЦИЙ ДЛЯ СЕТЕВЫХ
ПРИЛОЖЕНИЙ
Рассматривается способ эффективного вычисления прообразов хэш-функции MD5 [1] и MD4 [2] для применения в системах обработки сетевого трафика и обнаружения компьютерных атак. Современные системы обработки сетевых пакетов опираются в своей работе на алгоритмы быстрого хэширования данных и их эффективность во многом зависит от скорости работы алгоритмов вычисления хэш-функций. Существующие программные реализации хэш-функций рассмотрены в [3, 4]. Показано, что данные реализации имеют возможность вычислять прообразы длиной до 16 байт и являются частным случаем предлагаемого. Приведены результаты численных экспериментов, показывающие, что предлагаемый способ в случае хэш-функции MD5 имеет возможность вычислять прообразы длиной до 55 байт и имеет скорость вычислений в среднем на 15 % выше существующих.
Хэш-функции; MD5; MD4; вычисление прообразов.
D.N. Bosikov, R.A. Hady
ESPECIAL MODES OF ALGORITHMIC STUCTURE FOR HASH FUNCTIONS OPTIMIZATION AND COMPUTING IN A NETWORK ENVIRONMENT
Current paper reports on the method of efficient inverse image computation for MD5 [1] and MD4 [2] digest algorithm for use in fasting network environment. Existing software implementations of network traffics absorbers and handlers are relayed on extra fast hash computing methods. They are shown to be able sufficiently rise effectiveness if laid on effective hash computing algorithms. The results of creating such a method and results of computational experiments are given, which show the possibility of inverse image calculation of up to 55 bytes length, with computational speed better than existing implementations up to 15% in average.
Digest algorithm; MD5; MD4; inverse image computation.
Введение. Системы обнаружения сетевых атак на информационные системы уже давно применяются как один из необходимых рубежей обороны компьютерных сетей. На сегодняшний день эти системы представляют собой программные и аппаратно-программные решения, которые автоматизируют процесс сбора, хранения и анализа (контроля) событий, протекающих в компьютерной системе или сети, а также самостоятельно анализируют эти события в поисках признаков нарушения информационной безопасности.
В большинстве алгоритмов работы таких систем используются однонаправленные хэш-функции, которые получили большое распространение для обеспечения конфиденциальности пользовательской аутентификационной в среде сети Интернет благодаря возможности хранить проверяющей стороной не сам пользовательский пароль, а результат его хэширующего преобразования. Таким образом, при запросе пользовательского пароля, сравниваются не парольные фразы, а результаты хэширующих преобразований.
Одной из наиболее распространенных подобных функций является хэш-функция MD5 [1]. Данный алгоритм применяется для обеспечения конфиденциальности пользовательской аутентификационной информации в системах обмена сообщениями (ICQ, Skype), Интернет-форумах.
В данной статье рассмотрен способ ускорения вычисления прообразов хэш-функций MD5 и MD4, основанного на уменьшении числа итераций, требуемых для принятия решения о соответствии прообраза данному хэшу. Метод полного перебора подразумевает обход пространства прообразов и вычисления соответствующих хэшей для каждого кандидата в прообраз. Использование данного алгоритма позволяет ускорить работу современных систем обнаружения компьютерных атак.
Описание базового алгоритма MD5. Рассмотрим упрощенную схему хэширования MD5. Преобразования выполняются последовательно над 16 переменными типа "двойное слово", из которых первые 14 содержат байты хэшируемых данных, а две последние - размер данных в битах.
Ограничим область рассматриваемых прообразов таким образом, чтобы все вычисления можно было выполнить за единственный проход алгоритма MD5. Следовательно, максимальная длина восстанавливаемых данных составляет 55 байт, принимая во внимание наличие дополнительного байта выравнивания (0х80) и восемь байт, содержащих длину хэшируемых данных.
Рассмотрим развернутый основной цикл алгоритма MD5 [1], состоящий из четырех раундов.
Пусть F, G, H, I - функции раундов, A, B, C, D - переменные, до цикла инициализируемые заданными константами, а после - содержащие MD5 хэш, T[1 .. 64] - таблица констант, используемых при вычислении, w[0 .. 15] - массив хэшируемых данных, <<< - операция циклического сдвига.
На первом раунде пусть [abcd к я г] означает следующую операцию: а = Ь + +((а + Е(Ь,с^ + м>[к] + 7[г]) <<< 5). Произведем следующие 16 операций, которые пронумеруем от 0 до 15:
0. [ЛБСБ 0 7 0],
1. [БЛБС 1 12 1],
2. [СБЛБ 2 17 2],
3. [БСБЛ 3 22 3],
4. [ЛБСБ 4 7 4],
5. [БЛБС 5 12 5],
6. [СБЛБ 6 17 6],
7. [БСБЛ 7 22 7],
8. [ЛБСБ 8 7 8],
9. [БЛБС 9 12 9],
10. [СБЛБ 10 17 10],
11. [БСБЛ 11 22 11],
12. [ЛБСБ 12 7 12],
13. [БЛБС 13 12 13],
14. [СБЛБ 14 17 14],
15. [БСБЛ 15 22 15].
На втором раунде пусть [abcd к я г] означает следующую операцию: а = Ь + +((а + 0(Ь,с,d) + м>[к] + 7[г]) <<< 5). Произведем следующие 16 операций, которые пронумеруем от 16 до 31:
16. [ЛБСБ 1 5 16],
17. [БЛБС 6 9 17],
18. [СБЛБ 11 14 18],
19. [БСБЛ 0 20 19],
20. [ЛБСБ 5 5 20],
21. [БЛБС 10 9 21],
22. [СБЛБ 15 14 22],
23. [БСБЛ 4 20 23],
24. [ЛБСБ 9 5 24],
25. [БЛБС 14 9 25],
26. [СБЛБ 3 14 26],
27. [БСБЛ 8 20 27],
28. [ЛБСБ 13 5 28],
29. [БЛБС 2 9 29],
30. [СБЛБ 7 14 30],
31. [БСБЛ 12 20 31].
На третьем раунде пусть [abcd к я г] означает следующую операцию: а = Ь + +((а + Я(Ь,с^ + w[k] + 7[г]) <<< 5). Произведем следующие 16 операций, которые пронумеруем от 32 до 47:
32. [ЛБСБ 5 4 32],
33. [БЛБС 8 11 33],
34. [СБЛБ 11 16 34],
35. [БСБЛ 14 23 35],
36. [ЛБСБ 1 4 36],
37. [БЛБС 4 11 37],
38. [СБЛБ 7 16 38],
39. [БСБЛ 10 23 39],
40. [ЛБСБ 13 4 40],
41. [БЛБС 0 11 41],
42. [СБЛБ 3 16 42],
43. [БСБЛ 6 23 43],
44. [ЛБСБ 9 4 44],
45. [БЛБС 12 11 45],
46. [СБЛБ 15 16 46],
47. [БСБЛ 2 23 47].
На четвертом раунде пусть [abcd к я г] означает следующую операцию: а = Ь+ + ((а + /(Ь^^ + н^к] + 7[г]) <<< 5). Произведем следующие 16 операций, которые пронумеруем от 48 до 63:
48. [ЛБСБ 0 6 48],
49. [БЛБС 7 10 49],
50. [СБЛБ 14 15 50],
51. [БСБЛ 5 21 51],
52. [ЛБСБ 12 6 52],
53. [БЛБС 3 10 53],
54. [СБЛБ 10 15 54],
55. [БСБЛ 1 21 55],
56. [ЛБСБ 8 6 56],
57. [БЛБС 15 10 57],
58. [СБЛБ 6 15 58],
59. [БСБЛ 13 21 59],
60. [ЛБСБ 4 6 60],
61. [БЛБС 11 10 61],
62. [СБЛБ 2 15 62],
63. [БСБЛ 9 21 63].
Можно заметить, что на четвертом раунде для шагов с номерами 49-63 не происходит обращения к первым четырем байтам хэшируемых данных (элемент w[0] массива данных). Отсюда вытекает идея ускорения опробования прообразов хэш-функции MD5.
Метод ускорения опробования прообразов хэш-функции MD5. Пусть четверка чисел Mh = {ah, bh, ch, dh} есть представление MD5 хэша, для которого необходимо вычислить прообраз, в виде четырех четырехбайтовых чисел. Последовательно применим к данному набору преобразования, обратные к преобразованиям четвертого раунда главного цикла алгоритма MD5 с номерами 49-63.
Полученную четверку чисел Mp = {ap, bp, cp, dp} назовем предхэшем.
Пространство перебора будем обходить, очевидно, последовательно изменяя w[0]. Для каждого кандидата в прообраз производим шаги с номерами 0-47 (первых трех раундов полностью, и первый шаг четвертого раунда) и получаем четверку чисел Mt = {at, bt, ct, dt}. Если Mp = Mt, то, выполнив дополнительно шаги от номера 49 до номера 63, проверяем, совпадает ли полученный хэш с заданным.
Таким образом, в результате данной оптимизации сокращается количество шагов, требуемое для проверки кандидата в прообраз.
Частный случай данного подхода реализован в коммерческих программных продуктах BarsWF и Elcomsoft Lightning Hash Cracker. В данных программных реализациях возможно восстановление прообразов длиной до 15 байт, поскольку в основном цикле алгоритма хэширования значения массива данных заменены нулями, начиная с номера 4. Также, поскольку в данных реализациях изменяются два первых байта из четырех возможных в величине w[0], то скорость опробования данных программных решений меньше теоретически возможной.
Применимость метода к базовому алгоритму MD4. Покажем, что рассуждения, приведенные для алгоритма хэширования MD5, применимы также для более раннего алгоритма хэширования - алгоритма MD4. Рассмотрим алгоритм MD4 как упрощенную версию алгоритма MD5. Алгоритм MD4 также, как и алгоритм MD5, состоит из четырех раундов.
Пусть F, G, H - функции раундов, A, B, C, D - переменные, до цикла инициализируемые заданными константами, а после - содержащие MD4 хэш, w[0 .. 15] -массив хэшируемых данных.
Развернутый основной цикл алгоритма можно представить следующим образом [2]:
На первом раунде пусть [abcd w 5] означает следующую операцию: a = (a + +F(b,c,d) + X[k]) <<< s.
Произведем 16 следующих операций:
0. [ABCD 0 3],
1. [DABC 1 7],
2. [CDAB 2 11],
3. [BCDA 3 19],
4. [ABCD 4 3],
5. [DABC 5 7],
6. [CDAB 6 11],
7. [BCDA 7 19],
8. [ABCD 8 3],
9. [DABC 9 7],
10. [СБЛБ 10 11],
11. [БСБЛ 11 19],
12. [ЛБСБ 12 3],
13. [ОЛБС 13 7],
14. [СБЛБ 14 11],
15. [БСБЛ 15 19].
На втором раунде пусть [abcd н 5] означает следующую операцию: а = (а + +0^^,^ + н[к] + 5Л827999) <<< 5. Производим 16 следующих операций:
16. [ЛБСБ 0 3],
17. [БЛБС 4 5],
18. [СБЛБ 8 9],
19. [БСБЛ 12 13],
20. [ЛБСБ 1 3],
21. [БЛБС 5 5],
22. [СБЛБ 9 9],
23. [БСБЛ 13 13],
24. [ЛБСБ 2 3],
25. [БЛБС 6 5],
26. [СБЛБ 10 9],
27. [БСБЛ 14 13],
28. [ЛБСБ 3 3],
29. [БЛБС 7 5],
30. [СБЛБ 11 9],
31. [БСБЛ 15 13].
На третьем раунде пусть [abcd н 5] означает следующую операцию: а = (а + +H(b,c,d) + н[к] + 6ЕБ9ЕБЛ1) <<< 5. Производим 16 следующих операций:
32. [ЛБСБ 0 3],
33. [БЛБС 8 9],
34. [СБЛБ 4 11],
35. [БСБЛ 12 15],
36. [ЛБСБ 2 3],
37. [БЛБС 10 9],
38. [СБЛБ 6 11],
39. [БСБЛ 14 15],
40. [ЛБСБ 1 3],
41. [БЛБС 9 9],
42. [CDAB 5 11],
43. [BCDA 13 15],
44. [ABCD 3 3],
45. [DABC 11 9],
46. [CDAB 7 11],
47. [BCDA 15 15].
Таким образом, начиная с шага номер 33 хэширующих преобразований элемент w[0] не участвует в вычислениях. Следовательно, к алгоритму MD4 применимы те же рассуждения, что и к алгоритму хэширования MD5.
Результаты экспериментальных вычислений. Для подтверждения полученных результатов были проведены экспериментальные исследования. Данные исследования проводились на тестовом стенде Intel Core i7 3GHz 4C, 2x Nvidia GTX460, 8GB RAM. Экспериментальный модуль реализован с поддержкой вычислений на видеоускорителях Nvidia посредством технологии Nvidia CUDA. Сравнение производилось с существующими реализациями ПО BarsWF [4], Elcomsoft Lightning Hash Cracker [5], который также поддерживают вычисления на видеоускорителях Nvidia. Следует отметить, что как ПО BarsWF, так и Elcomsoft Lightning Hash Cracker поддерживают размер кандидатов в прообразы только до 16 байт, что не позволяет использовать их в общем анализе сетевого трафика.
С целью установления практических результатов увеличения скорости переборного восстановления прообразов был проведен ряд инструментов по сравнению существующего программного обеспечения с экспериментальным программным модулем, реализующим описываемый в статье алгоритм.
Результаты численных экспериментов приведены в табл. 1.
Таблица 1
Результаты численных экспериментов
Программное обеспечение Скорость опробования, миллионов кандидатов в прообразы в секунду
BarsWF 1397
Lightning Hash Cracker 560
Экспериментальный модуль 1547
Экспериментальный модуль обеспечивает почти 10 % прирост в скорости опробования кандидатов в прообразы, при этом максимальная длина кандидата в прообразы составляет 55 байт, что существенно выше аналогичных результатов у существующих реализаций.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Rivest R. MD5 Algorithm. Network Working Group, Request for Comments: 1321. [Электронный ресурс] // MIT Laboratory for Computer Science and RSA Data Security, Inc., 1992 / Режим доступа: http://tools.ietf.org/html/rfc1321.
2. Rivest R. MD4 Algorithm. Network Working Group, Request for Comments: 1320. [Электронный ресурс] // MIT Laboratory for Computer Science and RSA Data Security, Inc., 1992 / Режим доступа: http://tools.ietf.org/html/rfc1320.
3. Lightning Hash Cracker [Электронный ресурс] / ООО "Элкомсофт". 2010. Режим доступа: http://www.elcomsoft.ru/lhc.html.
4. Sotirov A., Stevens M., Appelbaum J., Lenstra A., Molnar D., Osvik D.A., MD5 considered harmful today // http://www.win.tue.nl/hashclash/rogue-ca.
5. Adleman L.M., Rothemund P.W., Roweis S., Winfree E. On applying molecular computation to the data encryption standard // J. Comput. Biol. - 1999 Spring. - Vol. 6. Iss. 1. - P. 53-63.
6. Сонг Я. Криптоанализ RSA. - М.: НИЦ "Регулярная и хаотическая динамика", 2011. - 312 с.
7. Просис К., Мандиа К. Расследование компьютерных преступлений. - М.: Лори, 2012. - 496 с.
8. Ховард М., Лебланк Д., Виега Д. Уязвимости в программном коде и борьба с ними.
- СПб.: ДМК Пресс, 2011. - 288 с.
9. Низамутдинов М. Тактика защиты и нападения на Web-приложения. - СПб.: БХВ-Петербург, 2007. - 432 с.
10. Wheeler E. Security Risk Management: Building an Information Security Risk Management Program from the Ground Up. - Syngress, 2011. - 360 p.
11. Шелупанов А., Груздев С., Нахаев Ю. Аутентификация. Теория и практика обеспечения безопасного доступа к информационным ресурсам. - М.: Горячая Линия-Телеком, 2012. - 552 с.
Статью рекомендовал к опубликованию д.ф.-м.н., профессор В.С. Пилиди.
Босиков Дмитрий Николаевич - Федеральное государственное автономное научное учреждение "Научно-исследовательский институт "Специализированные вычислительные устройства защиты и автоматика" в г. Ростов-на-Дону; e-mail: [email protected]; 344002, г. Ростов-на-Дону, пер. Газетный, 51; тел.: 88632012817; ведущий научный сотрудник.
Хади Роман Ахмедович - e-mail: [email protected]; директор.
Bosikov Dmitry Nikolayevich - Federal State-Owned Science Agency "Research Institute "Specvuzavtomatika"; e-mail: [email protected]; 51, Gazetnij, Rostov-on-Don, 344002, Russia; phone: +78632012817; leading researcher.
Khadi Roman Ahmedovich - e-mail: [email protected]; director.