Принципиальная разница между алгоритмами хеширования и шифрования - PullRequest
483 голосов
/ 09 февраля 2011

Я вижу много путаницы между хэшами и алгоритмами шифрования, и мне хотелось бы услышать еще несколько советов экспертов о:

  1. Когда использовать хеши против шифрования

  2. Что отличает алгоритм хеширования или шифрования (от теоретического / математического уровня) то есть то, что делает хеши необратимыми (без помощи радуги)

Вот несколько похожих ТАК вопросов, которые не вдавались в подробности, которые я искал:

В чем разница между обфускацией, хэшированием и шифрованием?
Разница между шифрованием и хэшированием

Ответы [ 12 ]

0 голосов
/ 22 июня 2018

Криптография имеет дело с числами и строками.По сути, каждая цифровая вещь во всей вселенной - это числа.Когда я говорю числа, это 0 и 1. Вы знаете, что они, двоичные.Изображения, которые вы видите на экране, музыка, которую вы слушаете через наушники, все это двоичные файлы.Но наши уши и глаза не поймут двоичные файлы, верно?Только мозг мог понять это, и даже если он мог понимать двоичные файлы, он не мог наслаждаться двоичными файлами.Поэтому мы конвертируем двоичные файлы в понятные человеку форматы, такие как mp3, jpg и т. Д.Давайте назовем процесс как Кодировка .Это двусторонний процесс, который можно легко декодировать обратно в исходную форму.

Хеширование

Хеширование - это еще один метод криптографии, в котором данныепреобразованный в какую-то другую форму никогда не может быть восстановлен обратно.По словам Леймана, нет процесса под названием дешифрование .Есть много хеш-функций для выполнения этой работы, таких как sha-512, md5 и так далее.

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

Кредиты: wikimedia Применяя хэш к паролю, мы можем гарантировать, что злоумышленник никогда не получит наш пароль, даже если он украл сохраненный парольфайл.У злоумышленника будет хеш пароля.Он может найти список наиболее часто используемых паролей и применить sha-512 к каждому из них и сравнить его со значением в своей руке.Это называется словарная атака .Но как долго он будет это делать?Если ваш пароль достаточно случайный, как вы думаете, этот метод взлома будет работать?Все пароли в базах данных Facebook, Google и Amazon хешируются, или, по крайней мере, они должны быть хешированы.

Тогда есть шифрование

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

шифрование с симметричным ключом

Я стараюсь сделать все как можно проще.Итак, давайте разберемся в симметричном шифровании с помощью алгоритма сдвига.Этот алгоритм используется для шифрования алфавитов путем смещения букв влево или вправо.Давайте возьмем строку CRYPTO и рассмотрим число +3.Тогда зашифрованный формат CRYPTO будет FUBSWR.Это означает, что каждая буква сдвинута вправо на 3 места.Здесь слово CRYPTO называется Plaintext , выход FUBSWR называется Ciphertext , значение +3 называется Encryption ключ (симметричный ключ) и весь процесс представляет собой шифр .Это один из старейших и основных алгоритмов шифрования с симметричным ключом, и о его первом использовании было сообщено во времена Юлия Цезаря.Так, его назвали в честь него и это знаменитый Цезарь Шифр ​​.Любой, кто знает ключ шифрования и может применить обратное алгоритму Цезаря и получить исходный открытый текст.Следовательно, это называется Симметричное шифрование .

Асимметричное шифрование ключа

Мы знаем, чтов симметричном шифровании один и тот же ключ используется как для шифрования, так и для дешифрования. Как только этот ключ украден, все данные исчезли. Это огромный риск, и нам нужна более сложная техника. В 1976 году Уитфилд Диффи и Мартин Хеллман впервые опубликовали концепцию асимметричного шифрования, и алгоритм был известен как обмен ключами Диффи-Хеллмана . Затем в 1978 году Рон Ривест, Ади Шамир и Леонард Адлеман из MIT опубликовали алгоритм RSA . Их можно считать основой асимметричной криптографии.

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

Источник: SSL / TLS для чайников, часть 1: Ciphersuite, Hashing, Encryption | WST (https://www.wst.space/ssl-part1-ciphersuite-hashing-encryption/)

0 голосов
/ 21 марта 2017

Шифрование Цель шифрования - преобразовать данные, чтобы сохранить их в секрете, например (отправка секретного текста, который он только может прочитать, отправка паролей через Интернет).

Вместо того, чтобы сосредоточиться на удобстве использования, цель состоит в том, чтобы гарантировать, что отправленные данные могут быть отправлены тайно, и их может видеть только пользователь, которого вы отправили.

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

Шифрование может выглядеть просто так FhQp6U4N28GITVGjdt37hZN

Хеширование Технически мы можем сказать, что это занимаетПроизвольный ввод и получение строки фиксированной длины.

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

Если хеш неверен и не совпадает с хешем, мыне вижу никакой информации.Например (MD5, SHA .....)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...