[oss-gost-crypto] ГОСТ в OpenPGP

Dmitry Belyavsky beldmit at gmail.com
Tue Aug 13 14:58:53 MSK 2019


Привет!


On Tue, Aug 13, 2019 at 2:28 PM Paul Wolneykien <manowar at altlinux.org>
wrote:

>
>   Всем привет. Вернувшись к работе над GnuPG я понял, что то, о чём мне
> несколько раз говорил Дима — что здесь нужен RFC, — действительно правда.
>

Ура.


>
>   Согласно https://tools.ietf.org/html/rfc6637 , к каждому открытому
> ключу, для которого разрешено шифрование, прикладываются параметры KDF —
> key derivation function, т.е., в конечном счёте — рецепт: как для
> данного публичного ключа зашифровать симметричный ключ. Но для ГОСТ
> рецепт требуется свой, специфический. К тому же, есть уже несколько
> таких рецептов.
>
>   Если следовать логике RFC 6637, то для открытого ключа ГОСТ нужно
> определить целых три группы параметров:
>
>   * параметры ВКО (длина UKM, хэш-функция [+ её параметры]);
>   * собственно KDF (диверсификация КриптоПро / KDF_TREE (количество
> итераций, сообщение-метка));
>   * параметры шифрования (wrapping) симметричного ключа (вариант
> упаковки + шифр + вариант имитовставки).
>
>   Если так сделать, то получится, конечно, очень и очень гибкий вариант.
> Но в этом как бы и заключается его отрицательная сторона: можно будет
> такой рецепт составить, который ослабит защиту (?) или будет противоречив.
>

Ну, внутри у нас всё равно схема Диффи-Хеллмана с вариациями.


>   Другой очевидный подход — вместо кучи параметров определить в самом
> стандарте готовые варианты (как это сделано у Смышляева в TLS —
> https://tools.ietf.org/html/draft-smyshlyaev-tls12-gost-suites-05), и
> потом указывать для публичного ключа просто номер варианта. Примерно так
> сделано сейчас в OpenSSL, где длина UKM неявным образом определяет выбор
> между "старым" вариантом и вариантом "2018 года" (я прав, Дима?).
>

Оно по факту так, но вообще этот выбор однозначно следует из выбранного
шифронабора.


>   Ситуация, однако, осложняется ещё тем, что в OpenPGP выбор алгоритма
> симметричного шифрования архитектурно отделён от параметров KDF:
> приоритет симметричных шифров определяется глобально, на стороне
> _отправителя_, в то время как предпочтительные параметры KDF определяет
> _получатель_ сообщения (поскольку он передаёт их отправителю вместе со
> своим публичным ключём).
>   И вот тут я вообще пока не представляю как быть: теоретически,
> наверное, ГОСТовым KEK-ом можно зашифровать произвольный симметричный
> ключ — хоть AES, хоть Blowfish и, конечно, хоть ГОСТ 28147 или
> "Кузнечик". Но с другой стороны, в том же Смышляевском TLS чётко
> определены случаи, какой вариант KDF с каким шифром использовать.
>

С шифром? Не с длиной ключа?


>   В итоге я пока не вижу простого и очевидного решения, которое хорошо
> вписалось бы в OpenPGP и не противоречило имеющимся RFC про ГОСТ.
>

У меня вопрос ровно один. Зачем мы хотим ГОСТ в OpenPGP?

-- 
SY, Dmitry Belyavsky
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.altlinux.org/pipermail/oss-gost-crypto/attachments/20190813/b4aba7a5/attachment.html>


More information about the oss-gost-crypto mailing list