Шаг 1. Выравнивание потока




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 году, тогда они использовались для защиты сообщений в электронной почте. Сейчас-же хеширование используется практически везде.

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

Цель работы: изучить хэш-функции и их применение.

Задачи исследования:

1. Узнать, что такое хэширование, изучить различные хэш-функции.

2. Ознакомиться с принципом работы некоторых хэш-алгоритмов.

3. Проверить на практике наши исследования.

 

 

Виды хэш-функций

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

 

Мы рассмотрим следующие алгоритмы хэширования:

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

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

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

На данный момент существуют несколько видов «взлома» хэшей MD5 — подбора сообщения с заданным хэшем:

• Перебор по словарю

• Brute-force

• RainbowCrack

• Коллизия хеш-функции

Атаки переборного типа

Для полного перебора можно использовать некоторые из множества существующих программ: PasswordsPro, MD5BFCPF, John the Ripper.
Для перебора по словарю существуют готовые словари. Самым большим недостатком и сложностью данной атаки является непосредственно высокая вычислительная сложность.

Коллизии MD5

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

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

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

Но с применением солей такой подход становится ресурсоёмким.

SHA

В 1995 г. Появился, также произошедший от MD4 вид хэширования – SHA-1 (Secure Hash Algorithm-1), разработанный NSA(Агентство национальной безопасности) совместно с NIST(Национальный институт стандартов и технологий США).

Принципы, положенные в основу SHA-1, аналогичны тем, которые использовались Рональдом Ривестом при проектировании MD4.

Сравнение MD5 и SHA-1

Рассматривая схожести MD5 и SHA1 можно смело сказать, что и MD5, и SHA-1 являются, по сути, улучшенными продолжениями MD4.

Они имеют следующие сходства:

• Четыре этапа.

• Каждое действие прибавляется к ранее полученному результату.

• Размер блока обработки равный 512 бит.

• Оба алгоритма выполняют сложение по модулю 232, они рассчитаны на 32-битную архитектуру.

Но по мере развития хэширования и в целом криптографии, то следовательно они имели различия, которые делали их отличными от других:

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

• SHA-1 использует циклический код исправления ошибок.

• В MD5 длина дайджеста составляет 128 бит, в SHA-1 — 160 бит.

• SHA-1 содержит больше раундов (80 вместо 64) и выполняется на 160-битном буфере по сравнению со 128-битным буфером MD5. Таким образом, SHA-1 должен выполняться приблизительно на 25 % медленнее, чем MD5 на той же аппаратуре.

Примеры SHA-1 хэша:

SHA-1 ("Hello, world!")= 943a702d06f34599aee1f8da8ef9f7296031d699

Пример «нулевой» (пустой) строки:

SHA-1 ("") = da39a3ee5e6b4b0d3255bfef95601890afd80709

В августе 2002-го г. Был представлен SHA-2 (Secure Hash Algorithm Version 2 — безопасный алгоритм хеширования, версия 2). Можно заметить, что SHA-2 стал семейством криптографических алгоритмов — однонаправленных хеш-функций. Также SHA -2 ста включать в себя алгоритмы SHA-224, SHA-256, SHA-384, SHA-512.

Примеры и сравнения всех видов SHA:

К примеру, захэшируем строку «Криптография»

• SHA-1 = c61817189f9d2270207d6022a9c2e47b0d35167d

• SHA -224 = ba7206f147fdbaeba42d971ec8f378240a524861d75008ec563ad737

• SHA- 256 = 8d68be6bb25cb091c1774ca7058f6d8165f4cc430aaedf739d4c2036e7aa2f1b

• SHA- 384 = 33658a940aa8fdbd217b8174d1416b4a403ad0a95811d0688ccf36acccb004e04e0159b5d134ba7e5d7351186ef95a5a

• SHA – 512 = 3930140d8627e8a37c1c4d216dd323bb3308d5b0a1fd769d5738d01128b06ecb1a1f6829f6cab6548c48824414f9e6e42df37f45517272fd4522da5314228c0a

Существует один немаловажный факт, который дает преимущество SHA-2 над другими алгоритмами, - У данной хэш-функции пока что не было найдено коллизий. Это делает её более безопасной.

Механизм хэширования

Давайте пошагово рассмотрим принцип работы и механизм хэш-функции MD5:

Шаг 1. Выравнивание потока

Преобразуем строку «MD5» в двоичный код: 010011010100010000110101

Теперь, посчитав количество символов в данной последовательности, мы приравняем q к полученному количеству. В данном случае q = 24

Переводим q в 2-ный код (64 бита) с ведущими нулями:
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 1000

Далее мы дописываем единичный бит в конце потока (байт 80h) и необходимое число нулевых бит.

В последовательности мы приписываем нули до тех пор, пока длина последовательности не станет по модулю 512 равна 448
010011010100010000110101 1 0{423}

({423} – оставшееся число нулей(0), которые нужно дописать)

Далее к последовательности дописываются младшие 32 бита числа q, а затем старшие.
010011010100010000110101 1 0{423} 0000 0000 0000 0000 0000 0000 0001 1000 0000 0000 0000 0000 0000 0000 0000 0000

()

Сейчас же длина последовательности становится кратной 512. Полученную последовательность назовем S.

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

A: 01 23 45 67

B: 89 ab cd ef

C: fe dc ba 98

D: 76 54 32 10

Потребуются 4 функции для четырёх раундов. Введём функции от трёх параметров — слов, результатом также будет слово:

1-й раунд: ,

2-й раунд: ,

3-й раунд: ,

4-й раунд: ,

X, Y, Z — это двойные слова. Результаты функций, также двойные слова. Для подсчета используется еще одна функция (назовем её W). Она обрабатывает данные и возвращает результат.

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

1. Запоминаем первые 512 бит последовательности S.

2. Вызываем функцию W. Параметры A, B, C, D — это текущие значения соответствующих двойных слов. Параметр T — это запомненные 512 бит.

3. Прибавляем к A A0.

4. B=B+B0.

5. C=C+C0.

6. D=D+D0.

7. Если длина последовательности 0, выходим.

8. Переходим к шагу 1.


 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: