Что такое Хеширование?

K

Kelvin

Модератор
12 Ноя 2018
4,086
55
48
Преде,чем понять что такое SHA-3 (Keccak ) разберёмся,что такое хэширование.
Хеширование – это одна из главных составляющих протокола блокчейнов да и современной криптографии в целом. Еще Хеширование могут называть хеш-функцией. Однако что же это такое на самом деле? Как человеку представить сущность хеш-функции наглядно?
Следует начать с объяснения того, что же означает данный процесс. Хеширование – это некое преобразование блока информации, в результате которого образуется некое отображение, которое и называется хешем (по англ: hash). В свою очередь хеш – это такая уникальная строка из символов (цифр и букв), которая может отвечать лишь одному определенному блоку входящей информации
То есть получается, что для любого объема некой информации есть свой уникальный хеш, который состоится из короткой символьной строки. Причем не важно, сколько этой информации: хоть один символ, хоть целая книжка. Ну и стоит отметить, что при изменении хоть малейших данных в потоке информации (например, изменить лишь одну букву в целой книжке) меняется и ее хеш.

Но как большому потоку информации может отвечать короткая символьная строчка, спросите вы? А все просто: в данном случае хеш подобен нашему человеческому отпечатку пальца или структуре ДНК.
Всем известно, что отпечатки пальцев все уникальны и нет «двойников» с одинаковыми отпечатками пальцев. Даже у, казалось бы, одинаковых близнецов отпечатки пальцев будут разные. Вот и структура ДНК у каждого человека уникальная и неповторима.
Да, отпечаток пальца или ДНК отвечает не за столь большое количество информации, но все же это своеобразный код, который отвечает за конкретного человека. По сути, это и есть человеческий «хеш», лишь с один отличие: с возрастом он не меняется.
И вот тут мы подобрались к свойствам хеша. Давайте же в них разберемся.
Первое и, пожалуй, самое важное свойство хеша – его уникальность.
Повторимся: Разному набору информации принадлежит уникальный хеш.
Однако бывают своеобразные коллизии, когда хеш-функция для разных вводных данных выдает один и тот же результат (одинаковый хеш). Над этим постоянно и активно работают математики-криптографы, но пока им не удалось создать хеш-функции с вероятностью коллизии равной «нулю». На данный момент вероятность коллизии существует, и она лишь близка к «нулю».
Примечательно, что функций, вычисляющих хеш, крайне много, но самой популярной их них является хеш-функция с названием SHA-256. Аббревиатура расшифровывается как Secure Hash Algorithm, что в дословном переводе означает «безопасный алгоритм хеширования». Данная функция формирует хеш в виде строки, состоящей из 64 символов, а длина данной строки будет 256 бит или 32 байта. Именно данная функция и используется в самом известном блокчейне – в сети Bitcoin.
Хеш кардинально меняется даже при незначительном изменении вводной информации.

Это весьма важное и полезно свойство, ведь благодаря ему Хеширование используется в цифровой подписи. То есть подписанную информацию невозможно изменить во время передачи между каналами.
Третьим же важным свойством хеша является тот факт, что хеш-функций необратима. То есть обратной функции, превращающей из хеша определенный массив информации, просто не существует.
Получается, что восстановить информацию лишь с помощью хеша невозможно. Нет, можно восстановить информацию подбором, но из-за обилия информация это практически невозможно и вряд ли кто станет таким заниматься.
Почему же необратимость хеш-функции настолько важная функция? Да все просто: это свойство не позволяет взломать хеш, ну или, как минимум, делает то занятие весьма длительным и дорогостоящим.
Четвертым из самых важных свойств хеша является высокая скорость работы. На самом деле хеширования вычисляет искомый хеш практически моментально, и это с учетом того, что вычисление происходит из огромного массива информации.
Именно данным свойством хеш и отличается от шифрования/кодирования и дешифрования/декодирования.
Заключение
Хеширования в нынешнее время используется много где: во многих алгоритмах и протоколах. Криптовалюта же и вовсе тесно связана с хеш-функциями, ведь Хеширование постоянно используется в блокчейне и цифровой подписи при проведении транзакций.



ссылка
 
Последнее редактирование: