Хеширование – один из способов зашифровки информации для ее сохранения. В основном различными методами хеширования шифруются пароли в различных системах. Например, в операционках Linux, Windows XP/NT/2000/ME, FreeBSD, OpenBSD и др.; в различных форумах, гостевых книг, админках и т.д. и т.п. – в сети пароли, защищенные методом хеширования, можно встретить где угодно. Принято хранить пароли в хешированном виде т.к. хранить пароль в системе в открытом виде глупо. Тем более, считалось, что хеши не поддаются взлому и им доверяли, как надежной крипто-защите. Так что повелось, что все пароли, хранятся в хешах. Поскольку этот вопрос интересует нас с точки зрения безопасности – давай разберемся, как действует этот алгоритм и в чем различия методов хеширования. Суть хеширования в том, что какая-нить секретная текстовая инфа (в основном пароли) разбивается на несколько кусков (сегментов), в основном одинаковых по размеру. После разбиения, эти сегменты, независимо друг от друга шифруются хеш-функцией, например в определенный сегмент побитово (к каждому биту информации) дописываются случайные битовые значения. Если не понял, то проще - пароль делится на части и к каждому символу, включая пробелы (то есть к каждому биту части) дописывается набор случайных символов. Это в общем понятии. Теперь разберемся с различными методами хеширования отдельно. Сейчас я перечислю самые распространенные:
• DES/Triple DES • AES • RSA • MD4/5 , SHA
DES/Triple DES (Data Encryption Standard, стандарт шифрования данных). Это очень старый стандарт, хотя используется и сегодня. Он применяется в разных местах – в сети, в программном шифровании и т.д. В его основе лежит добавление 8-битовое случайных букв или цифр. Так как со времени его выпуска такое шифрование уже не трудно подобрать на современных компах, то был выпущен алгоритм Triple DES, представляющий собой тот же DES, но повторяющийся 3 раза.
AES (Advanced Encryption Standard, улучшенный стандарт шифрования). Этот способ хеширования использует 16 байтовое разбиение на блоки и поддерживает размеры ключей (то есть дописываемых символов) – 16, 24 и 32 бита. Этот алгоритм довольно быстрый и относительно надежный, хотя и не очень часто встречается в сети.
RSA Известный алгоритм шифрования. Один из самых попсовых на сегодняшний день, хотя мне кажется, он не популярнее md5, которому пока нет равных.
MD4/5, SHA MD (Message Digest). Самый известный метод хеширования, не слышал о нем только ленивый. Когда был выпущен md5, дядя Сэм сказал, что этот алгоритм нереально вломать, и что его надо использовать всем и вся. К сожалению, к его словам многие прислушиваются и поэтому этот алгоритм стал применятся везде: во всех операционках, в форумах, в админках – просто везде. Но после некоторого времени умные люди нашли уязвимость в md5, и теперь ты можешь найти множество прог, подбирающих md5-хеши. Из-за повсеместности этого алгоритма рассмотрим его подробнее. MD5 разбивает пароль на части, по 64 байта. Затем дописывает последовательности 64 битового значения случайных символов. После создаются 4 переменных с определенным значением. Дальше идет 4 круга по 4 оператора, где с помощью специальной функции эти переменные тасуются и после каждого круга записываются в хеш. Таким образом, в конце, от первоначального значения не остается ничего:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
Вот такие получаются хеши. Подробнее о md5 ты можешь прочитать в RFC 1321. Там будут приведены все функции и последовательности этого метода.
Вот и все. Я перечислил основные методы криптографического хеширования. Надеюсь, тебе это пошло на пользу :-). Удачи!
Скопировано с http://www.gfs-team.ru/
|