Перейти к содержанию

Наборы параметров, идентификаторы OID и совместимость

Канонический источник: Математические определения и RFC: ГОСТ Р 34.10-2012/256, ГОСТ Р 34.10-2012/512, VKO. Здесь — команды и OID конкретного OpenSSL engine.

Имя алгоритма описывает семейство криптографической операции, а параметр paramset задаёт конкретную эллиптическую кривую или набор параметров. Для совместимости нужны оба значения; они включаются в кодировку открытого ключа и сертификата.

Наборы параметров в gost-engine

Алгоритм ключа Имена paramset
gost2001 0, A, B, C, XA, XB
gost2012_256 0, A, B, C, XA, XB, TCA, TCB, TCC, TCD
gost2012_512 A, B, C

0 используется как тестовый набор параметров — его не выбирают для рабочих ключей. Наборы с префиксом X исторически применяются в сценариях согласования ключей, остальные — в сценариях подписи. Конкретное применение задаёт профиль принимающей системы.

Примеры создания по разным профилям

umask 077
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCA -out tc-a.pem
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCB -out tc-b.pem
openssl genpkey -algorithm gost2012_512 -pkeyopt paramset:A -out 512-a.pem

Параметр задают при генерации. Нельзя изменить кривую в уже сформированном ключе: требуется новая пара.

OID, которые встречаются при работе

OID Значение
1.2.643.7.1.1.1.1 ГОСТ Р 34.10-2012, 256
1.2.643.7.1.1.1.2 ГОСТ Р 34.10-2012, 512
1.2.643.7.1.1.2.2 ГОСТ Р 34.11-2012, Стрибог-256
1.2.643.7.1.1.2.3 ГОСТ Р 34.11-2012, Стрибог-512
1.2.643.7.1.1.3.2 Подпись ГОСТ 2012/256 со Стрибог-256
1.2.643.7.1.1.3.3 Подпись ГОСТ 2012/512 со Стрибог-512
1.2.643.2.2.19 ГОСТ Р 34.10-2001

Узнать OID в DER

openssl pkey -in tc-a.pem -pubout -outform DER -out tc-a.der
openssl asn1parse -inform DER -in tc-a.der -i

Для сертификата:

openssl x509 -in server.crt -noout -text \
  | grep -E 'Signature Algorithm|Public Key Algorithm|ASN1 OID'

Команда для сертификата предполагает, что server.crt создан в предыдущем упражнении.

Как согласовать обмен ключами с получателем

Запрашивайте у принимающей стороны: тип ключа, OID кривой, формат (PKCS#8, SubjectPublicKeyInfo), допустимый сертификатный профиль, способы передачи открытого ключа и требования к ГОСТ-хэшу. Это помогает избежать ошибки, при которой криптографически корректный ключ не распознаётся приложением.

Дополнительно: RFC 7091, форматы ключей, КриптоПро.