This section defines the ASN.1 syntax for the key derivation functions, the encryption schemes, the message authentication scheme, and supporting techniques (see [
RFC 8018]).
rsadsi OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) 113549 }
pkcs OBJECT IDENTIFIER ::= { rsadsi 1 }
pkcs-5 OBJECT IDENTIFIER ::= { pkcs 5 }
The Object Identifier (OID) id-PBKDF2 identifies the PBKDF2 key derivation function:
id-PBKDF2 OBJECT IDENTIFIER ::= { pkcs-5 12 }
The parameters field associated with this OID in an AlgorithmIdentifier
SHALL have type PBKDF2-params:
PBKDF2-params ::= SEQUENCE
{
salt CHOICE
{
specified OCTET STRING,
otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}
},
iterationCount INTEGER (1000..MAX),
keyLength INTEGER (32..MAX) OPTIONAL,
prf AlgorithmIdentifier {{PBKDF2-PRFs}}
}
The fields of type PBKDF2-params have the following meanings:
-
salt contains the random value S in OCTET STRING.
-
iterationCount specifies the iteration count c.
-
keyLength is the length of the derived key in octets. It is an optional field for the PBES2 scheme since it is always 32 octets. It MUST be present for the PBMAC1 scheme and MUST be at least 32 octets since the HMAC_GOSTR3411 function has a variable key size.
-
prf identifies the pseudorandom function. The identifier value MUST be id-tc26-hmac-gost-3411-12-512 and the parameters value must be NULL:
id-tc26-hmac-gost-3411-12-512 OBJECT IDENTIFIER ::=
{
iso(1) member-body(2) ru(643) reg7(7)
tk26(1) algorithms(1) hmac(4) 512(2)
}
The OID id-PBES2 identifies the PBES2 encryption scheme:
id-PBES2 OBJECT IDENTIFIER ::= { pkcs-5 13 }
The parameters field associated with this OID in an AlgorithmIdentifier
SHALL have type PBES2-params:
PBES2-params ::= SEQUENCE
{
keyDerivationFunc AlgorithmIdentifier { { PBES2-KDFs } },
encryptionScheme AlgorithmIdentifier { { PBES2-Encs } }
}
The fields of type PBES2-params have the following meanings:
-
keyDerivationFunc identifies the key derivation function in accordance with Section 7.1.
-
encryptionScheme identifies the encryption scheme in accordance with Section 7.3.
The Gost34.12-2015 encryption algorithm identifier
SHALL take one of the following values:
id-gostr3412-2015-magma-ctracpkm OBJECT IDENTIFIER ::=
{
iso(1) member-body(2) ru(643) rosstandart(7)
tc26(1) algorithms(1) cipher(5)
gostr3412-2015-magma(1) mode-ctracpkm(1)
}
When the id-gostr3412-2015-magma-ctracpkm identifier is used, the data is encrypted by the GOST R 34.12-2015 Magma cipher in CTR_ACPKM mode in accordance with [
RFC 8645]. The block size is 64 bits and the section size is fixed within a specific protocol based on the requirements of the system capacity and the key lifetime.
id-gostr3412-2015-magma-ctracpkm-omac OBJECT IDENTIFIER ::=
{
iso(1) member-body(2) ru(643) rosstandart(7)
tc26(1) algorithms(1) cipher(5)
gostr3412-2015-magma(1) mode-ctracpkm-omac(2)
}
When the id-gostr3412-2015-magma-ctracpkm-omac identifier is used, the data is encrypted by the GOST R 34.12-2015 Magma cipher in CTR_ACPKM mode in accordance with [
RFC 8645] and the MAC is computed by the GOST R 34.12-2015 Magma cipher in MAC mode (MAC size is 64 bits). The block size is 64 bits and the section size is fixed within a specific protocol based on the requirements of the system capacity and the key lifetime.
id-gostr3412-2015-kuznyechik-ctracpkm OBJECT IDENTIFIER ::=
{
iso(1) member-body(2) ru(643) rosstandart(7)
tc26(1) algorithms(1) cipher(5)
gostr3412-2015-kuznyechik(2) mode-ctracpkm(1)
}
When the id-gostr3412-2015-kuznyechik-ctracpkm identifier is used, the data is encrypted by the GOST R 34.12-2015 Kuznyechik cipher in CTR_ACPKM mode in accordance with [
RFC 8645]. The block size is 128 bits and the section size is fixed within a specific protocol based on the requirements of the system capacity and the key lifetime.
id-gostr3412-2015-kuznyechik-ctracpkm-omac OBJECT IDENTIFIER ::=
{
iso(1) member-body(2) ru(643) rosstandart(7)
tc26(1) algorithms(1) cipher(5)
gostr3412-2015-kuznyechik(2) mode-ctracpkm-omac(2)
}
When the id-gostr3412-2015-kuznyechik-ctracpkm-omac identifier is used, the data is encrypted by the GOST R 34.12-2015 Kuznyechik cipher in CTR_ACPKM mode in accordance with [
RFC 8645] and MAC is computed by the GOST R 34.12-2015 Kuznyechik cipher in MAC mode (MAC size is 128 bits). The block size is 128 bits and the section size is fixed within a specific protocol based on the requirements of the system capacity and the key lifetime.
The parameters field in an AlgorithmIdentifier
SHALL have type Gost3412-15-Encryption-Parameters:
Gost3412-15-Encryption-Parameters ::= SEQUENCE
{
ukm OCTET STRING
}
The field of type Gost3412-15-Encryption-Parameters have the following meanings:
-
ukm MUST be present and MUST contain n octets. Its value depends on the selected encryption algorithm:
-
GOST R 34.12-2015 "Kuznyechik" n = 16 (see [RFC 7801])
-
GOST R 34.12-2015 "Magma" n = 12 (see [RFC 8891])
The OID id-PBMAC1 identifies the PBMAC1 message authentication scheme:
id-PBMAC1 OBJECT IDENTIFIER ::= { pkcs-5 14 }
The parameters field associated with this OID in an AlgorithmIdentifier
SHALL have type PBMAC1-params:
PBMAC1-params ::= SEQUENCE
{
keyDerivationFunc AlgorithmIdentifier { { PBMAC1-KDFs } },
messageAuthScheme AlgorithmIdentifier { { PBMAC1-MACs } }
}
The fields of type PBMAC1-params have the following meanings:
-
keyDerivationFunc is the identifier and parameters of key derivation function in accordance with Section 7.1.
-
messageAuthScheme is the identifier and parameters of the HMAC_GOSTR3411 algorithm.