PDA

Просмотр полной версии : PGP и почта



HATTIFNATTOR
25.08.2005, 00:00
Некоторые детали реализации гибридной криптосистемы и цифровой подписи.

Прежде всего, следует заметить, что гибридная криптосистема (PGP) стоит как на "трёх китах" на следующих криптоалгоритмах:

- несимметричный криптоалгоритм (RSA, "DH/DSS" (он же ElGamal) и т.п.)
- симметричный криптоалгоритм (IDEA, AES(RIJNDAEL), CAST, BLOWFISH, DES, GOST 28147-89 и т.п.)
- хэш-функция (MD5, SHA-1, и т.д)
(генерацию случайных чисел и стойких ключей оставим за скобками )

Начнём с цифровой подписи:

Рассмотрим два ключа несимметричного криптоалгоритма – так называемые "открытый"(публичный) и "секретный"(приватный). Они функционально эквивалентны! Любой из них может быть использован как для за- так и для расшифровывания. Что зашифровано одним ключом – расшифровывается другим. И наоборот! Просто секретный ключ – известен только нам, а открытый, публичный – широко распубликован (например, помещён на домашней страничке и на серверах ключей.)

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

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

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

Это в принципе всё.

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

P.S.
В настоящее время, обе хэш-функции MD5 и SHA-1 не могут считаться достаточно надёжными. Как известно, хэш MD5 практически полностью скомпрометирован. Стойкость SHA-1 тоже существенно ухудшиласть... Хотя считается, что для практическогог осуществления успешных атак на SHA-1 ещё довольно далеко, тем не менее этот хэш не должен использоваться во вновь создаваемых ключах.
Новая версия PGP 9 использует хэш SHA-256


Источник: Дайджест сообщений пользователя Ghola ветки "PGP и почта (TheBat!)" форума imho.ws