В чем разница между шифрованием SHA и SHA-1?
SHA — это аббревиатура от Secure Hash Algorithm, стандарта шифрования, разработанного Агентством национальной безопасности и опубликованного Национальным институтом стандартов и технологий. В исходном алгоритме SHA были обнаружены недостатки в методах шифрования, и он был заменен на SHA-1 для большей безопасности.
Алгоритм безопасного хеширования
SHA — это криптографическая хэш-функция. Хэш-функция берет исходный незашифрованный текст, называемый открытым текстом, и создает теоретически уникальный номер, составляющий зашифрованное сообщение. SHA создает 160-битное число, представляющее собой число от 0 до 1,46 x 10^48. Невозможно, чтобы это число было гарантированно уникальным для всех возможных сообщений с открытым текстом, поскольку количество таких сообщений теоретически бесконечно, но шансы примерно равны 2 ^ 80 или 1,21 x 10 ^ 24 против двух сообщений, создающих одно и то же зашифрованное сообщение. результат. Если это происходит, это называется столкновением. Коллизия обеспечивает математическую атаку на алгоритм шифрования, позволяя криптографу расшифровать открытый текст.
SHA-0 и SHA-1
После его публикации были обнаружены недостатки в исходном алгоритме SHA, которые позволили криптографической атаке вызвать коллизии хэшей, что сильно ослабило его эффективность. Была разработана переработанная версия SHA, SHA-1, которая давала те же 160-битные результаты без первоначальных недостатков алгоритма. Исходный SHA был задним числом переименован в SHA-0, чтобы различать его использование и использование SHA-1.
Изменения в SHA-1
Первоначальные недостатки в SHA-0 никогда не публиковались, поскольку эти недостатки предоставляют набор инструментов для любого злоумышленника, пытающегося расшифровать сообщение с использованием шифрования SHA-0. Единственная общедоступная информация о слабых сторонах исходного алгоритма указывает на то, что коллизии хэшей более вероятны, чем случайные при использовании SHA-0, и что коллизии при использовании неопубликованного метода исключаются при использовании SHA-1. Поскольку алгоритмы SHA-1 и SHA-0 дают математические результаты одинаковой длины, SHA-1 можно использовать в качестве простой замены исходного алгоритма SHA-0 в компьютерном программном обеспечении, не требуя серьезной перезаписи остальной части программного обеспечения.Р>
SHA-2 и SHA-3
Было обнаружено, что SHA-1 более надежен, чем SHA-0, но оставляет место для улучшений. Математический анализ результатов SHA-1 продемонстрировал метод, с помощью которого шифрование SHA-1 может быть взломано в 2000 раз быстрее, чем это теоретически возможно, путем проверки всех 10^48 возможных комбинаций его вывода. Поскольку идеальный криптографический алгоритм предотвращает такого рода улучшения скорости дешифрования, алгоритм SHA-2 позволяет избежать этой атаки и увеличить возможный размер хеш-функции до 512 бит, или 1,34 x 10^154. SHA-3, еще более мощный алгоритм шифрования, в настоящее время находится в разработке.