Симметричное шифрование – пассфраза и ключ
Здравствуйте.
Народ, объясните идиоту. Никак не могу понять.
При *симметричном* шифровании файла программами PGP/GnuPG генерится ключ, которым шифруется файл. Ключ длинный, например, 256bit. Он генерится без непосредственного участия пользователя. Затем пользователю предлагается ввести пароль, чтобы зашифровать ключ.
Зачем???
Почему не шифровать файл ПАРОЛЕМ ПОЛЬЗОВАТЕЛЯ?
комментариев: 43 документов: 0 редакций: 7
паролем пользователя операционной системы? А потому что нигде не хранится никакого пароля пользователя и поэтому его нельзя узнать и использовать
комментариев: 11558 документов: 1036 редакций: 4118
А пачиму Ви спrашиваите? 256 бит мало?
Принятый подход правильнее с инженерной точки зрения — сообщение всегда зашифровывается случайным сеансовым ключом, а способ защиты сеансового ключа является надстройкой.
комментариев: 43 документов: 0 редакций: 7
комментариев: 11558 документов: 1036 редакций: 4118
gpg --passphrase PWD
Матчасть, матчасть.
комментариев: 11558 документов: 1036 редакций: 4118
"Ключи" OpenPGP — асимметричные. Длина сеансовых симметричных ключей, используемых для шифрования, зависит только от используемого шифра, выбор которого происходит согласно настройкам предпочтений у получателя. Настоятельно советую прочитать это от начала и до конца, чтобы не было банальных вопросов.
Случайный ключ, реально используемый для шифрования, выводится из того пароля, что вводит пользователь. К паролю пользователя добавляется случайным образом сгенерённый и нескрываемый хэш (вектор инициализации, IV), после чего результат (пароль+хэш) многократно хэшируется для получения ключа шифрования (это — если грубо, подробности читайте в спеках на key derivation function — например, на PBKDF2).
Чтобы симметрично шифровать, иметь сгенерённых PGP-ключей не нужно (и даже если они имеются, они не будут использоваться) — достаточно иметь PGP/GnuPG установленными в системе.
комментариев: 11558 документов: 1036 редакций: 4118
Случайный ключ всегда случаен и не зависит ни от чего, кроме текущего состояния ГСЧ. При симметричном шифровании в OpenPGP используется два ключа: первый, случайный, шифрует данные; второй, детерминированный, вырабатываемый из пользовательского пароля, шифрует первый.