|
|
|
| в чем суть хэша и почему его нельзя сломать | |
|
|
|
|
|
|
|
для: winflip
(14.09.2007 в 18:29)
| | Хеш - контрольная сумма какой-то информации, полученная с помощью какого криптографического алгоритма.
Взломать хеш действительно нельзя. Байты не ломают. Можно найти уязвимость в алгоритме генерации хеша, если, конечно, таковая там существует. | |
|
|
|
|
|
|
|
для: Unkind
(15.09.2007 в 13:14)
| | Несколько неточное, вернее неполное определение.
>Хеш - контрольная сумма какой-то информации, полученная с помощью какого криптографического алгоритма.
Это можно с некоторой натяжкой назвать описанием криптохеша.
Хеш - функция, которая вычисляет по входному набору данных (определенного формата либо произвольному массиву битов - зависит от применения) и выдает в качестве результата детерминированное значение из определенного множеста (области значений), причем вычисления таким образом, чтоб статистически возможно более равномерно размазать попадание значения по всей области значений в зависимости от входного параметра.
Алгоритмы вычисления хеша могут быть совершенно различными. Главное , чтоб он с как можно более близкими вероятностями выбирал значение из выходного множества.
Для контрольного суммирования этого вполне хватает, поскольку проверка целостности данных не ставит задачу защиты от подделок - только от случайных искажений.
Для криптологических применений (построение дайджеста сообщения, генерация ЭЦП, формирование ключа по паролю и т.п.) формулируется еще одно важное требование -
нужно, чтобы обратная задача - поиск строки аргумента по известному значению хеша - была возможно более трудоемкой. В идеале - полный перебор по входному множеству с полным вычислением хеша для каждого кандидата и сравнением вычисленного с искомым.
В любом случае, хеш сужает множество значений из области определения входного параметра до множества значений области определения результата. Причем обычно мощность множества понижается даже не в разы, а на порядки.
К примеру из квинтилиона (10^18 ) возможных строк хеш создает миллион (10^6) значений.
Если он близок к идеальному, то каждому конкретному из значений результата будет соответствовать приблизительно 10^(18-6) = 10^12 т.е. триллион входных строк.
И никакой возможности установить, какая из строк в действительности была хеширована, невозможно, поскольку такой могла оказаться любая из них. | |
|
|
|
|
|
|
|
для: Trianon
(15.09.2007 в 13:39)
| | Спасибо | |
|
|
|