id: Гость   вход   регистрация
текущее время 09:56 16/04/2024
Автор темы: Гость, тема открыта 10/07/2012 13:14 Печать
Категории: криптография, алгоритмы, симметричное шифрование
http://www.pgpru.com/Форум/Криптография/СимметричноеШифрование-ПассфразаИКлюч
создать
просмотр
ссылки

Симметричное шифрование – пассфраза и ключ


Здравствуйте.
Народ, объясните идиоту. Никак не могу понять.
При *симметричном* шифровании файла программами PGP/GnuPG генерится ключ, которым шифруется файл. Ключ длинный, например, 256bit. Он генерится без непосредственного участия пользователя. Затем пользователю предлагается ввести пароль, чтобы зашифровать ключ.


Зачем???


Почему не шифровать файл ПАРОЛЕМ ПОЛЬЗОВАТЕЛЯ?


 
Комментарии
— neverward (10/07/2012 13:38)   профиль/связь   <#>
комментариев: 43   документов: 0   редакций: 7
Почему не шифровать файл ПАРОЛЕМ ПОЛЬЗОВАТЕЛЯ?

паролем пользователя операционной системы? А потому что нигде не хранится никакого пароля пользователя и поэтому его нельзя узнать и использовать
— SATtva (10/07/2012 13:57)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Почему не шифровать файл ПАРОЛЕМ ПОЛЬЗОВАТЕЛЯ?

А пачиму Ви спrашиваите? 256 бит мало?

Принятый подход правильнее с инженерной точки зрения — сообщение всегда зашифровывается случайным сеансовым ключом, а способ защиты сеансового ключа является надстройкой.
— neverward (10/07/2012 14:17)   профиль/связь   <#>
комментариев: 43   документов: 0   редакций: 7
А, я таки опять не понял вопрос. Спасибо SATtva
— Гость (10/07/2012 17:23)   <#>
сложный вопрос.. в чем конфликт ситуации? ну ставьте пароль как у пользователя. только шифровать автоматом все-равно не будет. и с длиной что-то не соображу, а что 256 бит это длинный? я делаю ключ 8192 бита – это длиннющий? или тут фишка в байтах и битах?
— SATtva (10/07/2012 17:38)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
только шифровать автоматом все-равно не будет.

gpg --passphrase PWD

и с длиной что-то не соображу, а что 256 бит это длинный? я делаю ключ 8192 бита – это длиннющий? или тут фишка в байтах и битах?

Матчасть, матчасть.
— Гость (10/07/2012 18:59)   <#>
Матчасть, матчасть.
спасибо. с теорией знаком, но лишний раз почитать не мешает. в своей работе мы не используем симметричное шифрование, а при создании ключей не встречал возможность выбора по виду шифрования. создаем пару ключей, вводим данные и выбираем длину.. ну как-то так. а для симметричного или асимметричного шифрования будет ключ, ничего не сказано.
— SATtva (10/07/2012 19:29)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
а при создании ключей не встречал возможность выбора по виду шифрования.

"Ключи" OpenPGP — асимметричные. Длина сеансовых симметричных ключей, используемых для шифрования, зависит только от используемого шифра, выбор которого происходит согласно настройкам предпочтений у получателя. Настоятельно советую прочитать это от начала и до конца, чтобы не было банальных вопросов.
— Гость (10/07/2012 22:33)   <#>

Случайный ключ, реально используемый для шифрования, выводится из того пароля, что вводит пользователь. К паролю пользователя добавляется случайным образом сгенерённый и нескрываемый хэш (вектор инициализации, IV), после чего результат (пароль+хэш) многократно хэшируется для получения ключа шифрования (это — если грубо, подробности читайте в спеках на key derivation function — например, на PBKDF2).


Чтобы симметрично шифровать, иметь сгенерённых PGP-ключей не нужно (и даже если они имеются, они не будут использоваться) — достаточно иметь PGP/GnuPG установленными в системе.
— SATtva (11/07/2012 08:20)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Случайный ключ, реально используемый для шифрования, выводится из того пароля, что вводит пользователь.

Случайный ключ всегда случаен и не зависит ни от чего, кроме текущего состояния ГСЧ. При симметричном шифровании в OpenPGP используется два ключа: первый, случайный, шифрует данные; второй, детерминированный, вырабатываемый из пользовательского пароля, шифрует первый.
— Гость (11/07/2012 13:23)   <#>
Да, правильно. Ошибся. Должно быть так:

Ключ, реально используемый для шифрования, генерируется случайным образом и не зависит ни от чего, кроме текущего состояния ГСЧ. Этот ключ шифруется другим ключом, который выводится из пароля пользователя следующим образом: к паролю пользователя добавляется случайным образом сгенерированная и нескрываемая строка (соль, вектор инициализации, IV), после чего результат (пароль+соль) многократно хэшируется для выведения ключа (это — если грубо, подробности читайте в спеках на key derivation function — например, на PBKDF2). Соответственно, итоговый шифртекст всегда содержит и ключ шифрования, зашифрованный вышеуказаным способом другим ключом, и соль для вывода этого другого ключа из пароля пользователя.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3