Журнал «Компьютерра» 2007 № 09 (677) 06.03.2007 | страница 45



Еще одно важное приложение - верификация правильности пароля доступа. Пароли обычно не хранят в открытом виде - чтобы они не становились легкой добычей похитителей и злоумышленников. Вместо этого в базе хранятся дайджесты паролей. Тогда система, чтобы проверить подлинность пользователя, хеширует представленный им пароль и сравнивает результат со значением, хранящимся в базе дайджестов паролей. И это, конечно, далеко не все. Благодаря свойствам рандомизации, хеш-функции могут использоваться в качестве генераторов псевдослучайных чисел, а благодаря блочной структуре, они иногда выступают в качестве основы алгоритмов шифрования - блочных и поточных. Бывает и наоборот, когда блочный шифр становится основой криптопреобразования, применяемого в циклах хеш-функции.

Короче говоря, хеш-функции стали чуть ли не важнейшим элементом современной криптографии. Они обеспечивают безопасность в повсеместно применяемом протоколе защищенных веб-соединений SSL. Они помогают организовывать эффективное управление ключами в защищенной электронной почте и в программах шифрования телефонии, начиная от самых известных, вроде PGP или Skype, и заканчивая всеми остальными. Если говорить о сетевой безопасности, то хеш-функции используются и в виртуальных частных сетях, и в защите системы доменных имен DNS, и для подтверждения того, что автоматические обновления программ являются подлинными. Внутри операционной системы хеш-функции так или иначе задействованы практически во всех структурах, обеспечивающих безопасность. Иными словами, каждый раз, когда в компьютере или сети происходит что-то, подразумевающее защиту информации, рано или поздно в действие непременно вступает хеш-функция.


Что применяют?

Наиболее широко используемые в мире алгоритмы криптографического хеширования - это SHA-1, MD5 и RIPEMD-160 (если же говорить о России, то еще и ГОСТ Р34.11-94, она же «центробанковская» хеш-функция).

Все самые популярные криптоалгоритмы хеширования построены на единой основе - семействе функций MD (от Message Digest - «дайджест сообщения»), разработанных известным американским ученым Рональдом Райвестом. Поначалу самым удачным считался алгоритм MD4, а когда в нем нашли слабости, Райвест придумал усиленную модификацию под названием MD5.

На основе идей 128-битного MD4 математики Агентства национальной безопасности США создали более стойкий вариант - 160-битный «Безопасный алгоритм хеширования», или SHA. Но если Райвест подробно разъяснял в своих описаниях, чему служит и каким образом повышает безопасность каждый из этапов его алгоритма, то АНБ в присущей спецслужбе манере никаких комментариев не дало. Более того, через некоторое время после публикации SHA был отозван и переиздан в модифицированной, очевидно более сильной версии SHA-1, ставшей федеральным стандартом (прежняя получила название SHA-0).