Разница между ОСВ и КЛЮЧОМ. шифрование

Хорошо, поэтому я пытаюсь немного узнать о шифровании сообщений в своем приложении java. Я только что узнал, что СОЛЬ и КЛЮЧ не являются одинаковыми.

Может кто-нибудь помочь мне понять, какая разница между этими двумя?

Ответ 1

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

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

  • Чтобы заблокировать злоумышленника, у которого есть доступ к хешированным данным от идентификации collision, используя таблицу радуги.
  • Чтобы замедлить атакующего, который пытается атаковать грубой силой.

Ответ 2

Клавиша - это, по сути, пароль, с помощью которого вы блокируете исходное содержимое.

Чтобы сделать пароль более сложным для обратного проектирования, вы можете добавить соль к полученному шифрованию.


Чтобы дать явно простой пример, скажем, вы хотите зашифровать строку символов. Ваша процедура шифрования - это отмена слова. Итак, для строки "Hello, World" после запуска шифрования ваша строка будет "dlroW, olleH". Затем вы можете добавить к нему соль. В этом примере соль будет "foo", поэтому результатом после соления будет "dlroW, olleHfoo". Теперь, если кому-то удалось перепроектировать алгоритм шифрования, они получат "oofHello World", который не является исходным сообщением, и, следовательно, ваша информация по-прежнему безопасна!

Это действительно используется, когда вы итеративно шифруете, например,
result = salt + encrypt (соль + шифрование (соль + шифрование (сообщение))).