Работа с хэш-функциями
Авторы:
https://vk.com/kmno9
https://vk.com/petrkamnev
Empire of Truth
2017
Оглавление
Введение 3
Виды хэш-функций 6
MD5 8
Безопасность MD5 8
Атаки переборного типа 9
Коллизии MD5 9
SHA 10
Сравнение MD5 и SHA-1 10
Примеры SHA-1 хэша: 11
Механизм шифрования 12
Безопасность и Актуальность 15
Использование хэширования 18
Хранение данных, паролей 18
Вывод 19
Введение
Хэширование – неотъемлемая часть современного мира информационных технологий. Хеширование просто необходимо в таких областях как шифрование, хранение паролей, электронная цифровая подпись.
Хеш-функции зародились еще в 1989 году, тогда они использовались для защиты сообщений в электронной почте. Сейчас-же хеширование используется практически везде.
В этой работе будет подробно рассказано про хэширование, его принцип работы и использование в современном мире. Вашему вниманию будут предоставлены наши исследования: мы изучили некоторые алгоритмы хеширования, а также написали программу, которая может выводить хэш-сумму введенного текста и проверять возможность ее дешифровки.
Цель работы: изучить хэш-функции и их применение.
Задачи исследования:
Узнать, что такое хэширование, изучить различные хэш-функции.
Ознакомиться с принципом работы некоторых хэш-алгоритмов.
Проверить на практике наши исследования.
Виды хэш-функций
Хэш-функцией называется алгоритм, конвертирующий строку произвольной длины (сообщение) в битовую строку фиксированной длины, называемой хэш-кодом, проверочной суммой или цифровым отпечатком.
Мы рассмотрим следующие алгоритмы хэширования:
MD2, MD4, MD5, SHA2, SHA1, BASE64
Хотя base-64 и не является хэш-функцией и относится к транспортному кодированию, он играет достаточно большую роль в информационных технологиях, поэтому мы также расскажем про него в данной работе.
Первой известной хэш-функцией стала MD2 (Message-Digest), созданная Рональдом Ривестом в 1989 году, а опубликована в 1992 году. Этот алгоритм шифрования был изначально создан для использования в качестве одного из алгоритмов, входящих в стандарт защищенной электронной почты PEM. А в 1990 году MD2 был предложен в качестве замены BMAC. Впоследствии спецификация и обновленная реализация MD2 были опубликованы в RFC 1319. В 2011 году было официально прекращено использование хэш-функции MD2. Её стали рекомендовать только для использования в старых программах, которые основаны на данном алгоритме.
Следом за MD2 последовало создание такой хэш-функции, как MD4, чье создание было закончено в 1990 году и выпущено в Октябре этого же года. Создателем MD4 также является Рональд Ривест. Эта хэш-функция является предшественником MD5, о которой будет сказано позже.
Рассматривая безопасность MD4, можно отметить тот факт, что уровень безопасности был рассчитан на создание достаточно устойчивых гибридных систем электронной цифровой подписи, основанных на MD4 и криптосистеме с открытым ключом.
Создатель считал, что MD4 можно использовать и для систем, нуждающихся в сильной криптостойкости, но помимо этого он не отрицал того факта, что сам алгоритм подразумевал быстрое хэширование, из-за чего мог быть плох в плане криптостойкости.
Поскольку это было так, то для приложений и систем, где важна криптостойкость стали использовать MD5.
MD5
В 1991 г. Был создан 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом – MD5.
Сравнивая MD5 с предыдущим алгоритмом(MD4) можно заметить, что MD5 происходит от MD4, но с достаточно множеством изменений. В отличии от MD4 в MD5 добавили еще один раунд, которых до этого было 3, сейчас в md5 4 раунда. Добавили новую константу для того, чтобы свести к минимуму влияние входного сообщения.
Примеры MD5 хэша:
MD5("md5") = 1BC29B36F623BA82AAF6724FD3B16718
Если же строка будет «нулевая» (пустая), то алгоритм выдает нам следующий хэш:
MD5("") = D41D8CD98F00B204E9800998ECF8427E
