From: Paul Wolneykien <manowar@altlinux.org> To: oss-gost-crypto@lists.altlinux.org Subject: [oss-gost-crypto] ГОСТ в OpenPGP Date: Tue, 13 Aug 2019 14:28:30 +0300 Message-ID: <e9b4ad67-ae30-149f-338b-1a097a8b4373@altlinux.org> (raw) Всем привет. Вернувшись к работе над 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 про ГОСТ.
next reply other threads:[~2019-08-13 11:28 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-13 11:28 Paul Wolneykien [this message] 2019-08-13 13:22 ` Dmitry Eremin-Solenikov 2019-08-13 13:47 ` Paul Wolneykien 2019-08-13 14:08 ` Dmitry Eremin-Solenikov 2019-08-14 9:27 ` Paul Wolneykien 2019-08-14 11:23 ` Paul Wolneykien 2019-08-14 11:30 ` Paul Wolneykien
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=e9b4ad67-ae30-149f-338b-1a097a8b4373@altlinux.org \ --to=manowar@altlinux.org \ --cc=oss-gost-crypto@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Open-source aspects of GOST Cryptography This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/oss-gost-crypto/0 oss-gost-crypto/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 oss-gost-crypto oss-gost-crypto/ http://lore.altlinux.org/oss-gost-crypto \ oss-gost-crypto@lists.altlinux.org oss-gost-crypto@lists.altlinux.ru oss-gost-crypto@lists.altlinux.com public-inbox-index oss-gost-crypto Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.oss-gost-crypto AGPL code for this site: git clone https://public-inbox.org/public-inbox.git