Хеш-функция: различия между версиями

Перейти к навигации Перейти к поиску
[непроверенная версия][досмотренная версия]
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{#seo:
{{#seo:
                     |title= Хеш-функция
                     |title= Хеш-функция — материал из Decimal Wiki
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= Хеш-функция
                     |keywords= Хеш-функция
                     |description= Хеш-функция
                     |description= Хеш-функция: как работают криптографические хеш-функции
                     }}
                     }}
[[File:Wiki-images.jpg|700px|thumb|right]]
[[File:Wiki-images.jpg|700px|thumb|right]]
'''Хеш-функция''' — это математическое преобразование информации в короткую строку определённой длины.
'''Хеш-фу́нкция''' или '''хэш-функция'''  (англ. ''hash function'' от ''to hash'' — «превращать в фарш, мешанину») — математическое преобразование информации в короткую строку определённой длины.


Логика этого процесса такова: '''вы вводите что-то длинное, а на выходе получается что-то короткое, олицетворяющее то длинное.'''
Логика этого процесса такова: '''вы вводите что-то длинное, а на выходе получается что-то короткое, олицетворяющее то длинное.'''
Строка 12: Строка 12:
В случае криптографических хеш-функций '''ввод''' не обязательно является длинным. Это может быть что-то очень короткое, например, слово «бит», или очень длинное, например, весь текст [[Yellow Paper]] [[DecimalChain]], и на выходе вы получите уникальную строку установленной длины.
В случае криптографических хеш-функций '''ввод''' не обязательно является длинным. Это может быть что-то очень короткое, например, слово «бит», или очень длинное, например, весь текст [[Yellow Paper]] [[DecimalChain]], и на выходе вы получите уникальную строку установленной длины.


Кроме того, '''в отличие от простых «сокращателей»''' ссылок, хеш-функции в критовлютах действуют только в одном направлении. Несмотря на то что одни и те же данные всегда дадут один и тот же хеш, воспроизвести изначальную информацию по полученному из них хешу невозможно.
Кроме того, '''в отличие от простых «сокращателей» ссылок''', хеш-функции в [[криптовалюта]]х действуют только в одном направлении. Несмотря на то что одни и те же данные всегда дадут один и тот же хеш, воспроизвести изначальную информацию по полученному из них хешу невозможно.


'''Понятие «хэширование»''' означает однозначное и точно известное вычисление набора символов фиксированной длины на основе входных данных произвольной длины. При этом изменение хотя бы одного символа в исходных данных гарантирует, что и полученная фиксированная строка будет иной. Можно сказать, что хеширование — это «снятие отпечатка» с большого набора данных.
'''Понятие «хеширование»''' означает однозначное и точно известное вычисление набора символов фиксированной длины на основе входных данных произвольной длины. При этом изменение хотя бы одного символа в исходных данных гарантирует, что и полученная фиксированная строка будет иной. Можно сказать, что хеширование — это «снятие отпечатка» с большого набора данных.


Анализ при помощи хеш-функций часто используют для контроля целостности важных файлов операционной системы, программ и данных. Контроль может производиться как по необходимости, так и на регулярной основе.
Анализ при помощи хеш-функций часто используют для контроля целостности важных файлов операционной системы, программ и данных. Контроль может производиться как по необходимости, так и на регулярной основе.
Строка 20: Строка 20:
Вначале определяют, целостность каких файлов нужно контролировать. Для каждого файла производятся вычисления значения его хеша по специальному алгоритму с сохранением результата. Через необходимое время делают аналогичный расчёт и сравнивают результаты. Если значения отличаются, значит, информация содержащаяся в файле была изменена.
Вначале определяют, целостность каких файлов нужно контролировать. Для каждого файла производятся вычисления значения его хеша по специальному алгоритму с сохранением результата. Через необходимое время делают аналогичный расчёт и сравнивают результаты. Если значения отличаются, значит, информация содержащаяся в файле была изменена.


'''Давайте рассмотрим пример''': вы скачали большой файл (положим, zip-архив) и желаете убедиться, что в нём нет ошибок. Вы можете узнать «хэш-сумму» (тот самый отпечаток) этого файла и сверить его с опубликованным на сайте. Если строки хеш-сумм различаются, то файл однозначно «битый».
{{комментарий|'''Давайте рассмотрим пример''': вы скачали большой файл (положим, zip-архив) и желаете убедиться, что в нём нет ошибок. Вы можете узнать хеш-сумму (тот самый отпечаток) этого файла и сверить его с опубликованным на сайте. Если строки хеш-сумм различаются, то файл однозначно «битый».}}
 
== Как работают криптографические хеш-функции ==
== Как работают криптографические хеш-функции ==
Существуют разные виды криптографических хеш-функций, и каждая из них работает по-разному.
Существуют разные виды криптографических хеш-функций, и каждая из них работает по-разному.
Строка 39: Строка 38:
Представим, что хакер атакует блок 9 и пытается внести коррективы в данные. Из-за свойств хеш-функций даже небольшое изменение сильно трансформирует хеш. Это означает, что любые незначительные исправления, произведённые в блоке 9, изменят хеш, хранящийся в блоке 8, что, в свою очередь, изменит данные и хеш блока 2, а это приведёт к изменениям в блоке 1 и так далее. Цепочка будет полностью изменена, а это невозможно.
Представим, что хакер атакует блок 9 и пытается внести коррективы в данные. Из-за свойств хеш-функций даже небольшое изменение сильно трансформирует хеш. Это означает, что любые незначительные исправления, произведённые в блоке 9, изменят хеш, хранящийся в блоке 8, что, в свою очередь, изменит данные и хеш блока 2, а это приведёт к изменениям в блоке 1 и так далее. Цепочка будет полностью изменена, а это невозможно.


[[Категория:Commoninfo]]
[[Категория:Терминология]]
[[Категория:Криптобезопасность]]