Using the GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms with the Internet X.509 Public Key Infrastructure Certificate and CRL Profile
updates
- rfc-3279 — Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
Extracted elements (20)
This document supplements RFC 3279 specifically to support the 'Russian Cryptographic Software Compatibility Agreement' community, providing encoding formats and identifiers for GOST algorithms to achieve mutual compatibility among Russian PKI products and solutions.
Some erroneous applications discard zero bits at the end of the BIT STRING containing the GOST R 34.10-2001 public key. It is RECOMMENDED to pad the bit string with zeroes up to 528 bits (66 octets) on decoding to handle such applications.
Certification authorities (CAs) and/or applications conforming to this standard MUST support at least one of the specified public key and signature algorithms.
The GOST R 34.10-94 and GOST R 34.10-2001 signature algorithms MUST always be used with the one-way hash function GOST R 34.11-94.
The GOST R 34.11-94 hash function MUST always be used with parameter set identified by id-GostR3411-94-CryptoProParamSet.
The keyUsage extension MUST NOT assert both encipherOnly and decipherOnly for a certificate containing a GOST R 34.10-94 public key.
To convert a GOST signature octet string to a bit string for use in certificates and CRLs, the most significant bit of the first octet SHALL become the first bit of the bit string, continuing through the least significant bit of the last octet.
Use of the same GOST key for both signature and key derivation is NOT RECOMMENDED. The intended application for the key MAY be indicated in the keyUsage certificate extension.
When parameters are absent from a GOST R 34.10-94 or GOST R 34.10-2001 AlgorithmIdentifier, they are inherited per RFC 3280 Section 6.1. When working_public_key_parameters is null, the certificate and any verifiable signature SHALL be rejected.
GOST R 34.10-2001 public keys are identified by OID id-GostR3410-2001 (1 2 643 2 2 19). The SubjectPublicKeyInfo.algorithm.algorithm field MUST be set to id-GostR3410-2001 for such keys.
GOST R 34.10-94 public keys are identified by OID id-GostR3410-94 (1 2 643 2 2 20). The SubjectPublicKeyInfo.algorithm.algorithm field MUST be set to this OID for such keys.
The OID for the GOST R 34.10-2001 signature algorithm combined with GOST R 34.11-94 hash is id-GostR3411-94-with-GostR3410-2001 (1 2 643 2 2 3). When this identifier appears in an AlgorithmIdentifier, the parameters field SHALL be omitted.
It is RECOMMENDED that applications verify signature values and subject public keys conform to GOST R 34.10-2001 and GOST R 34.10-94 standards prior to use.
It is RECOMMENDED that CAs and applications ensure the private key for creating signatures is not used beyond its allowed validity period, typically 15 months for both GOST R 34.10-94 and GOST R 34.10-2001 algorithms.
When a certificate is used to support digital signatures as an analogue to manual signatures under Russian Federal Electronic Digital Signature Law, the certificate MUST contain a critical keyUsage extension, and keyUsage MUST NOT include keyEncipherment or keyAgreement.
The GOST R 34.10-2001 public key (GostR3410-2001-PublicKey) MUST be an OCTET STRING of exactly 64 octets: the first 32 octets contain the little-endian representation of the elliptic curve point x-coordinate, and the second 32 octets contain the little-endian representation of the y-coordinate.
The GOST R 34.10-2001 signature value is a 64-octet string: the first 32 octets contain the big-endian representation of s, and the second 32 octets contain the big-endian representation of r. The same octet-string-to-bit-string conversion process as GOST R 34.10-94 MUST be used for certificates and CRLs.
The GOST R 34.10-94 public key (GostR3410-94-PublicKey) MUST be ASN.1 DER encoded as an OCTET STRING of 128 octets containing the little-endian representation of Y = a^x (mod p), encapsulated within the BIT STRING subjectPublicKey field.
The GOST R 34.10-94 signature value is a 64-octet string: the first 32 octets contain the big-endian representation of s, and the second 32 octets contain the big-endian representation of r'. When used in certificates and CRLs, this octet string must be converted to a bit string.
The GostR3410-94-PublicKeyParameters structure is a SEQUENCE containing publicKeyParamSet (OID), digestParamSet (OID), and optionally encryptionParamSet (OID, defaulting to id-Gost28147-89-CryptoPro-A-ParamSet).