Схема работы хеширования
Посмотрим, как это работает на примере хеш-функции SHA-1, которая очень популярна при выборе защиты с помощью хеш (как и SHA-2 и MD5). Обратимся для этого к любому сервису, бесплатно предоставляющему услугу онлайн-хеширования. Предположим, у нас есть значение «Иван», которое нужно преобразовать в цифровой код. Результат всегда будет таким: «4D2902EB21DDE2404DE35677284A7DD4B44756D7». Но если допустить ошибку даже в написании одной буквы или поставить имя в другой падеж, код будет выглядеть совершенно по-другому.
Убедимся в этом и поставим слово в дательный падеж. Входные данные: «Ивану». Хеш-код: «4D13F6131C770A220BBF1BD34E3698D99DDD0CCB». Как мы видим, итоговый результат не имеет ничего общего с предыдущим, хотя к имени была добавлена лишь одна буква. Заметим и другую важную особенность: если в информации, которую необходимо зашифровать, заглавную букву поменять на строчную, вы тоже получите абсолютно новый цифровой ключ. Входные данные: «иван». Хеш-код: «ACAB2D9993D6893A442754E35781025B66A5B486».
Единственное, что объединяет результаты выше, это одинаковая длина строки при выводе — 40 символов. Можно подумать, что такой объем определило количество букв у входных данных: в имени Иван их 5. На самом деле, даже если массив будет состоять из всего текста с этой страницы, длина строки с результатом получится такой же, взгляните: «DFB13520C775C03211EA5D41E767A0DD2BDF4840».
Сорок символов хеш-кода вы получите и после размещения в исходных данных всех томов произведения Льва Толстого «Война и Мир». Следовательно, вне зависимости от количества букв, цифр, знаков препинания и пробелов, алгоритмы сжатия будут выдавать цифровой ключ одинаковой длины. Также важно понимать, что каждому уникальному массиву всегда присваивается уникальный код.
Рассмотрим один из способов проверки. Итоговая сумма может передаваться по определенному коммуникационному каналу вместе с остальными данными. В пункте получения контрольная сумма может быть пересчитана, а полученный результат проверен на соответствие оригиналу. Если значения будут отличаться, функция это определит, что может привести к повторному запросу.
Приведем пример. При сложении чисел 2 и 5 образуется число 7. Контрольное значение передано программистом вместе с условиями его получения в компьютерную программу по обучению арифметике. Во время урока ученик решает задачу «5+2=?» за компьютером. Предположим, ребенок дает ответ «8». Хеш-алгоритм проверки определит, что итоговые данные не соответствуют оригиналу. В этом случае софт может предложить ребенку решить пример еще раз.
Свойства и требования к криптографическому хешированию
Особенности криптографических хеш-функций:
- Безвозвратность. Все попытки извлечь входные данные после хеширования обречены на провал, поскольку большая часть информации теряется в процессе преобразования в код (в отличие от обычного шифрования).
- Предопределенность. При вводе одной и той же информации для выполнения хеш-функции полученное значение всегда будет одинаковым. Это дает возможность проверять подлинность имеющихся данных с помощью хеш.
- Уникальность. Потенциально хеш-функция может всегда возвращать уникальный код. Но пока это не реализовано на практике, и изредка случаются «дубли» — одно и то же значение для разных данных. Тем не менее качество хеш сокращает риск образования копий до минимума.
- Многообразие. Даже при незначительном отличии двух отдельных данных (например, прописная и заглавная буквы) результатом будут два абсолютно разных кода.
- Большая скорость преобразования. Она характерна для всех хеш-функций: по сравнению со стандартным шифрованием файлов, хеширование генерирует значения гораздо быстрее, вне зависимости от объема исходных данных.
Вообщем, вот по этой ссылке можно подробно почитать и понять, что такое хеш.
Пишите нам в суппорт в телеграмме @Altcoinshub_Support, ответим вам лично по всем вопросам в области крипты.