ВВЕДЕНИЕ 2
1 ОСНОВНЫЕ ПОНЯТИЯ ХЕШ-ФУНКЦИИ 3
1.1 Определение хэш-функции 3
1.2 Методы хеш-функций 4
1.3 Хеш-таблицы 12
1.4 Применение хеширования 14
2 ХЭШ КОЛЛИЗИИ 16
2.1 Причины возникновения хэш-коллизии 16
2.2 Метод «Отдельная цепочка» 16
2.3 Метод «Отдельное сцепление со связанными списками» 17
2.4 Метод «Отдельное сцепление со списком заголовочных ячеек» 18
2.5 Метод «Отдельное сцепление с другими структурами» 18
2.6 Метод «Открытая адресация» 19
2.7. Метод «Объединенное хэширование» 22
2.8 Метод «Кукушечное хэширование» 22
2.9 Метод «Hopscotch хэширование» 23
2.10 Метод «Хэширования Робина Гуда» 23
2.11 Метод «Двухвариантного хэширования» 24
ЗАКЛЮЧЕНИЕ 25
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 26
Читать дальше
Хэширование (hash - смешивать, перемешивать, мешать) - это преобразование массива входных данных в короткое число цифр фиксированной длины (называемое хэшем или хэш-кодом) таким образом, чтобы, с одной стороны, это число было значительно короче исходных данных, а с другой - однозначно им соответствовало.
Преобразование выполняется хэш-функцией. В общем случае исходные данные и хэш-код не могут быть однозначно сопоставлены. Однако выбор хэш-функции должен минимизировать вероятность такого совпадения в любой конкретной задаче.
Простой пример хэширования - взять текст (или другие данные) и просуммировать коды составляющих его символов, чтобы получить циклическую контрольную сумму. Полученное число является примером исходного хэш-кода.
Это простейший пример, и сразу же очевидно, что если из одного и того же слова получить одинаковое число, произойдет коллизия. Например, слова house и mod дадут одно и то же число. Таким образом, решение заключается либо в усложнении алгоритма для гарантии уникальности и, следовательно, важности и порядка букв слов, либо в непосредственной проверке самой строки для гарантии того, что слова одинаковы, если они случайны. В любом случае, ускорение значительно, поскольку все сравнивается сразу.
Читать дальше
1. Андреев Н.Н. О некоторых направлениях исследований в области защиты информации.// Международная конференция “Безопасность информации”. Сборник материалов, М., 2017, c. 94-97
2. Баpичев С.С., Гончаров В.В., Серов Р.Е. Основы современной кpиптогpафии. М.: Мир, 2017. 176 с.
3. Болски М.И. Язык программирования Си. М.: Радио и связь, 2018. 96 с.
4. Грушо А.А. Тимонина Е.Е. Теоретические основы защиты информации М.: Яхтсмен, 2021. 31 с.
5. Домашев А. В., Попов В.О., Правиков Д.И., Прокофьев И.В., Щербаков А.Ю. Программирование алгоритмов защиты информации. М.: Нолидж, 2020. 288 с.
6. Варфоломеев А.А., Жуков А.Е., Мельников А.Б., Устюжанин Д.Д. Блочные криптосистемы. Основные свойства и методы анализа стойкости. М.: МИФИ, 2020. 200с.
7. Молдовян А.А., Молдовян Н.А., Советов Б.Я. Криптография. СПб.: Лань, 2020. 224 с.
8. Семьянов П.В. Почему криптосистемы ненадежны? Тезисы доклада на конф. «Методы и технические средства обеспечения безопасности информации», . СПб.: ГТУ, 2019. 18 с.
9. Спесивцев А. В. Защита информации в персональных ЭВМ. М.: Мир, 2012. 278 с.
10. Ростовцев А.Г., Матвеев В.А. Защита информации в компьютерных системах. Элементы криптологии. Под редакцией П.Д. Зегжды. СПб.: ГТУ, 2021. 365 с.
Читать дальше