Вопрос

В чем разница между SHA1 и RSA?Это просто разные алгоритмы или они фундаментальны (т.используется для разных вещей) отличается на каком-то уровне.

Это было полезно?

Решение

Принципиально другое.

SHA1 — это хеш-алгоритм, который представляет собой одностороннюю функцию, превращающую входные данные любого размера в выходные данные фиксированной длины (в данном случае 160 бит).Криптографическая хеш-функция — это функция, для которой невозможно найти два входа, дающих один и тот же результат, кроме как с помощью грубой силы (например, для 128-битной функции вам нужно будет попробовать в среднем 2^64 сообщения, чтобы найти такое «столкновение» из-за так называемого парадокса дня рождения — погуглите, чтобы узнать больше).

На самом деле для SHA1 это уже не так — алгоритм (по крайней мере, в криптографическом смысле) теперь сломан: атака коллизией, описанная Сяоюнь Ван и др., превосходит классическую атаку на день рождения.Семейство SHA2 не нарушено, и NIST находится в процессе согласования алгоритма или семейства алгоритмов SHA3.

Редактировать - Google уже сгенерировал и опубликовал фактическое столкновение SHA1.

ЮАР — это алгоритм асимметричного шифрования, шифрующий входные данные в выходные данные, которые затем можно расшифровать (в отличие от алгоритма хеширования, который невозможно обратить вспять).Он использует другой ключ для шифрования (публичный), чем для дешифрования (частный).Таким образом, его можно использовать для получения зашифрованных сообщений от других — вы можете опубликовать свой открытый ключ, но только вы, обладающий закрытым ключом, сможете расшифровать сообщения, зашифрованные с его помощью.

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

Другие советы

Ответы выше уже являются достаточными пояснениями.Но я думаю, вы задаете этот вопрос только потому, что SHA и RSA часто работают вместе. Позвольте мне объяснить, почему.

Во-первых, имейте в виду, что

RSA неэффективен, а SHA — эффективен.

Предположим, вы загружаете Windows 7 и хотите убедиться, что это оригинальная Windows 7 от Microsoft.Если Microsoft просто зашифрует Windows 7 с помощью RSA, это займет очень много времени, и мы вообще этого не выдержим.Итак, Microsoft использует SHA1 в Windows 7 и генерирует данные длиной 128 бит.А затем Microsoft шифрует эти 128-битные данные с помощью RSA (используйте свой закрытый ключ).

Затем все, что вам нужно сделать, это убедиться, что ваш открытый ключ принадлежит Microsoft.А затем используйте SHA1 для генерации данных длиной 128 бит.А затем используйте открытый ключ RSA для расшифровки подписи Microsoft.Затем вы просто сравниваете два данных длиной 128 бит, чтобы увидеть, совпадают ли они.

SHA1 — это алгоритм хеширования (подпись документов и сертификатов), а RSA — алгоритм шифрования/дешифрования (безопасная связь).

Как отмечали другие, это принципиально разные вещи, выполняющие разные функции.Вы используете RSA для шифрования информации в, казалось бы, случайной форме, а SHA1 используете для обеспечения целостности сообщения (т.ни один бит не изменился).В приложении безопасности вы будете использовать один или оба, в зависимости от того, какая функциональность вам нужна.

SHA1 — это криптографическая хеш-функция, тогда как RSA — это алгоритм шифрования.

Хэш-функция принимает фрагмент данных и возвращает строку фиксированной длины.В криптографической хэш-функции все возвращаемые строки имеют одинаковую вероятность.Учитывая только номер хеша, вы не можете определить ввод и не можете найти другой ввод, который дает тот же хэш (исключение с очень-очень маленькой вероятностью).У Sha1 есть некоторые недостатки безопасности.

Алгоритм шифрования дает фрагмент данных, но на выходе не фиксированной длины — ваше шифрование.Учитывая выходные данные (шифрование), вы можете (если у вас есть правильные ключи) определить входные данные.

Алгоритм безопасного хеширования (SHA) принимает сообщение длиной менее 264 бит и создает 160-битный дайджест сообщения.Алгоритм немного медленнее, чем MD5, но больший дайджест сообщения делает его более защищенным от коллизий методом грубой силы и атак инверсии.Алгоритм, указанный в стандарте Secure Hash Standard (SHS, FIPS 180), был разработан NIST.SHA-1 — это версия SHA, опубликованная в 1994 году;в этой версии исправлен неопубликованный недостаток в SHA.Его конструкция очень похожа на семейство хэш-функций MD4, разработанное Rivest.SHA-1 также описан в стандарте ANSI X9.30.

RSA — это алгоритм криптографии с открытым ключом.Это первый алгоритм, который, как известно, подходит как для подписи, так и для шифрования, и один из первых значительных достижений в криптографии с открытым ключом.RSA широко используется в протоколах электронной коммерции и считается безопасным при наличии достаточно длинных ключей и использовании современных реализаций.

Наиболее заметное отличие состоит в том, что SHA — это алгоритм шифрования, тогда как RSA — это одновременно алгоритм шифрования и подписи.

16.08.2005 было объявлено, что в SHA-1 можно найти коллизию за 2^63 операции.Этот результат исследования принадлежит профессору Сяоюнь Вану из Университета Цинхуа в Пекине совместно с профессорами Эндрю Яо и Фрэнсис Яо.Он расширяет работу Ванга, Инь и Ю, которые продемонстрировали, что столкновение можно найти за 2^69 операций.Это означает, что в SHA легче возникнуть коллизия, чем в RSA, но, что примечательно, никогда не было обнаружено двух похожих ключей, которые бы конфликтовали.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top