Какая хэш функция сейчас считается самой надежной?
Какая хэш функция сейчас считается самой надежной? И какой симметричный алгоритм вы бы порекомендовали?
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
Нормы пользования. Некоторые права на материалы сайта защищены по условиям лицензии CreativeCommons. Движок
openSpace 0.8.25a и дизайн сайта © 2006-2007 Vlad "SATtva" Miller.
|
||||||||||||||||||||||||||
комментариев: 9796 документов: 488 редакций: 5664
Для чего конкретно? Для какого протокола? Если просто хэшировать пароль, то пока что без разницы.
Для чего? Для встраивания в миниатюрную микросхему, для многопроцессорного сервера или обычного ПК? Для шифрования почтовых сообщений, {мало, много}интенсивно используемых дисков, VPN?
После конкурса AES все агитировали за него, даже авторы других шифров.
Но если реальностью окажутся алгебраические атаки, то он будет худшим выбором.
Если не доверяете AES, то для обычного ПК лучше использовать TWOFISH. Для коротких почтовых сообщений – возможно BLOWFISH.
Интересен алгоритм Anubis, но он отчасти близок к AES-RIJNDAEL и не был широко проанализирован.
Нет не пароль а сообщение, типа e-mail-a
Для обычного ПК, для почтовых сообщений.
А почему для коротких почтовых сообщений BLOWFISH? И как у TWOFISH-a с патентами, можно его свободно использовать?
комментариев: 9796 документов: 488 редакций: 5664
Речь вероятно идёт о подписях в ключах и цифровых подписях самих писем. После взлома md5 и sha-1 следовало бы держаться подальше от этих функций. Хотя этот взлом непрактичен и затрагивает больше свойство генерации случайных сообщений с идентичными подписями. Но область этих атак расширяется и на создание заведомо фальшивых подписей. Из-за чего может быть риск подмены открытого ключа или сообщения.
Если будут серьёзные прорывы во взломах SHA, то и RIPEMD скорее всего не устоит.
Реальная альтернатива – пока использольвать из всех имеющихся SHA-512, т.е. функцию с самым большим выходным значением.
Интересная альтернатива – хэш-функция WHIRLPOOL, но она стойка при прочих равных условиях, только как встроенный в неё блочный шифр "W", являющийся производным от RIJNDAEL.
Так или иначе, с хэш-функциями дело теоретически обстоит не очень хорошо, проработанных кандидатов нет.
По отношению к дизайну шифров применяют термин "агрессивная оптимизация". Относительно легко создать очень стойкий, но неоптимальный по скорости шифр, который можно будет запустить только на современном персональном компьютере, но не на специализированных микросхемах или серверах с большими нагрузками.
По этому "заоптимизированные" шифры балансируют на грани, как экономичные современные здания, которые держутся на одной, к примеру, хорошо просчитанной колонне, но при минимуме затрат на всё остальноё.
RIJNDAEL – относительно "агрессивно оптимизирован". Подключи из основного ключа получается по простому правилу. Один алгебраический 8x8 S-блок и т.д.
BLOWFISH оптимизирован только по общей скорости, но по всем остальным параметрам он "тяжеловес": имеет высокие требования к памяти (для миниатюрных устройств, наподобие микроконтроллеров, но несущественные для ПК) для размещения всех подключей и больших S-блоков 4x(8x32). Он имеет мощное ключевое расписание (для генерации весх подключей и самих S-блоков используется сама функция шифрования BLOWFISH. Это дает идеальные свойства диффузии и позволяет противостоять почти всем известным и вновь открываемым видам криптоанализа. Неудивительно, что за столько лет он выглядит наиболее эффективным и даже предпринимаются попытки переделать его на 128-битный размер блока (KAWEICHEL)
Но цена – для первоначального разворачивания всех ключей и S-блоков нужно относительно (но абсолютно незаметно на ПК) много времени.
Эти свойства делают непрактичным его использование там, где нужно часто менять ключи – например VPN-серверы, станции мобильной связи и т.д., но делают его идеальным для шифрования отдельных сообщений, в штучных экземплярах, а не в количестве тысяч в секунду.
Единственно, что возможно устарело в BLOWFISH (кроме размера блока) это использование операций смешивания (XOR-ADD) mod32 и с точки зрения масштабируемости и возможно криптостойкости.
Поэтому в TWOFISH использовали для смешивания операции с матрицами, дополненные циклическими сдвигами и сложениями псевдоадамара.
Кроме того нужно учитывать, что в старых шифрах, в т.ч. BLOWFISH размер блока был 64 бит. В соответствии с парадоксом дней рождений на одном ключе нельзя шифровать более примерно 2^(64/2) битов данных, т.е. не более нескольких десятков гигабайт. Это потенциально может облегчить атаки.
Размер каждого письма с уникальным сеансовым ключом много меньше.
Для современных шифров (TWOFISH, RIJNDAEL, SERPENT) эта величина равна 2^(128/2), что напорядки больше, чем терабайты.
Использование TWOFISH, BLOWFISH, AES_RIJNDAEL и SERPENT абсолютно свободно и не подлежит никаким патентным ограничениям.