Подтвердить что ты не робот

SHA1 VS RSA: какая разница между ними?

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

4b9b3361

Ответ 1

Принципиально разные.

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

Фактически для SHA1 это уже не так - алгоритм (по крайней мере, в криптографических терминах), с атакой столкновения, описанной Xiaoyun Wang et al, которая бьет классическую атаку на день рождения. Семейство SHA2 не нарушено, и NIST пытается выполнить согласование алгоритма SHA3 или семейства алгоритмов.

Изменить. Google теперь создал и опубликовал фактическое столкновение SHA1.

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

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

Ответы до этого уже достаточные объяснения. Но я думаю, вы задаете этот вопрос только потому, что 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-битных данных, чтобы увидеть, соответствуют ли они.

Ответ 5

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

Ответ 6

Алгоритм Secure Hash Algorithm (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 является как алгоритмом шифрования, так и алгоритмом подписи.

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