draft-ietf-smime-gost-01.txt   draft-ietf-smime-gost-02.txt 
S/MIME Working Group Serguei Leontiev, CRYPTO-PRO S/MIME Working Group Serguei Leontiev, CRYPTO-PRO
Internet Draft Gregory Chudov, CRYPTO-PRO Internet Draft Gregory Chudov, CRYPTO-PRO
Expires August 15, 2004 February 15, 2004 Expires October 1, 2004 April 1, 2004
Intended Category: Informational Intended Category: Informational
Using the GOST 28147-89, GOST R 34.11-94, Using the GOST 28147-89, GOST R 34.11-94,
GOST R 34.10-94 and GOST R 34.10-2001 algorithms with the GOST R 34.10-94 and GOST R 34.10-2001 algorithms with the
Cryptographic Message Syntax (CMS) Cryptographic Message Syntax (CMS)
<draft-ietf-smime-gost-01.txt> <draft-ietf-smime-gost-02.txt>
Status of this Memo Status of this Memo
This document is an Internet-Draft and is subject to all provisions This document is an Internet-Draft and is subject to all provisions
of Section 10 of RFC2026. of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 2, line 29 skipping to change at page 2, line 29
6.1 HMAC with GOST R 34.11-94. . . . . . . . . . . . . . . . 9 6.1 HMAC with GOST R 34.11-94. . . . . . . . . . . . . . . . 9
7 Using with S/MIME. . . . . . . . . . . . . . . . . . . . 9 7 Using with S/MIME. . . . . . . . . . . . . . . . . . . . 9
7.1 Parameter micalg . . . . . . . . . . . . . . . . . . . . 9 7.1 Parameter micalg . . . . . . . . . . . . . . . . . . . . 9
7.2 Atribute SMIMECapabilities . . . . . . . . . . . . . . . 9 7.2 Atribute SMIMECapabilities . . . . . . . . . . . . . . . 9
8 Security Considerations. . . . . . . . . . . . . . . . . 10 8 Security Considerations. . . . . . . . . . . . . . . . . 10
9 Appendix Examples. . . . . . . . . . . . . . . . . . . . 11 9 Appendix Examples. . . . . . . . . . . . . . . . . . . . 11
9.1 Signed message . . . . . . . . . . . . . . . . . . . . . 11 9.1 Signed message . . . . . . . . . . . . . . . . . . . . . 11
9.2 Enveloped message using Key Agreement. . . . . . . . . . 12 9.2 Enveloped message using Key Agreement. . . . . . . . . . 12
9.2 Enveloped message using Key Transport. . . . . . . . . . 15 9.2 Enveloped message using Key Transport. . . . . . . . . . 15
10 Appendix ASN.1 Modules . . . . . . . . . . . . . . . . . 17 10 Appendix ASN.1 Modules . . . . . . . . . . . . . . . . . 17
10.1 Gost28147-89-EncryptionSyntax. . . . . . . . . . . . . . 17 10.1 GostR3410-EncryptionSyntax . . . . . . . . . . . . . . . 19
10.2 GostR3410-EncryptionSyntax . . . . . . . . . . . . . . . 19 10.2 GostR3410-94-SignatureSyntax . . . . . . . . . . . . . . 21
10.3 GostR3410-94-SignatureSyntax . . . . . . . . . . . . . . 21 10.3 GostR3410-2001-SignatureSyntax . . . . . . . . . . . . . 22
10.4 GostR3410-2001-SignatureSyntax . . . . . . . . . . . . . 22
10 References . . . . . . . . . . . . . . . . . . . . . . . 23 10 References . . . . . . . . . . . . . . . . . . . . . . . 23
11 Acknowledgments. . . . . . . . . . . . . . . . . . . . . 25 11 Acknowledgments. . . . . . . . . . . . . . . . . . . . . 25
Author's Address. . . . . . . . . . . . . . . . . . . . . . . . 25 Author's Address. . . . . . . . . . . . . . . . . . . . . . . . 25
Full Copyright Statement. . . . . . . . . . . . . . . . . . . . 27 Full Copyright Statement. . . . . . . . . . . . . . . . . . . . 27
1 Introduction 1 Introduction
The Cryptographic Message Syntax [CMS] is used for digital signature, The Cryptographic Message Syntax [CMS] is used for digital signature,
digest, authentication and encryption arbitrary message contents. digest, authentication and encryption arbitrary message contents.
This companion specification describes the usage of cryptographic This companion specification describes the usage of cryptographic
skipping to change at page 4, line 5 skipping to change at page 3, line 51
The hash algorithm GOST R 34.11-94 has the following identifier: The hash algorithm GOST R 34.11-94 has the following identifier:
id-GostR3411-94 OBJECT IDENTIFIER ::= id-GostR3411-94 OBJECT IDENTIFIER ::=
{ id-CryptoPro-algorithms gostr3411(9) } { id-CryptoPro-algorithms gostr3411(9) }
The AlgorithmIdentifier parameters field MUST be present, and the The AlgorithmIdentifier parameters field MUST be present, and the
parameters field MUST contain NULL. Implementations MAY accept the parameters field MUST contain NULL. Implementations MAY accept the
GOST R 34.11-94 AlgorithmIdentifiers with absent parameters as well GOST R 34.11-94 AlgorithmIdentifiers with absent parameters as well
as NULL parameters. as NULL parameters.
This function is always used with default parameter set
gostR3411CryptoProParamSetAI (see section 8.2 of [CPALGS]).
When Message Digest authenticated attribute is present, DigestedData When Message Digest authenticated attribute is present, DigestedData
digest contains 32-byte digest in little-endian representation: digest contains 32-byte digest in little-endian representation:
GostR3411-94-Digest ::= OCTET STRING (SIZE (32)) GostR3411-94-Digest ::= OCTET STRING (SIZE (32))
3 Signature Algorithms 3 Signature Algorithms
This section specifies the CMS procedures for GOST R 34.10-94 and This section specifies the CMS procedures for GOST R 34.10-94 and
GOST R 34.10-2001 signature algorithms. GOST R 34.10-2001 signature algorithms.
skipping to change at page 5, line 20 skipping to change at page 5, line 22
Signature algorithm GOST R 34.10-2001 generates digital signature in Signature algorithm GOST R 34.10-2001 generates digital signature in
the form of a binary 512-bit vector (<r'>256||<s>256). the form of a binary 512-bit vector (<r'>256||<s>256).
signatureValue contains its little endian representation. signatureValue contains its little endian representation.
GostR3410-2001-Signature ::= OCTET STRING (SIZE (64)) GostR3410-2001-Signature ::= OCTET STRING (SIZE (64))
4 Key Management Algorithms 4 Key Management Algorithms
This chapter describes the key agreement and key transport This chapter describes the key agreement and key transport
algorithms, based on key establishment algorithms VKO GOST R 34.10-94 algorithms, based on VKO GOST R 34.10-94 and VKO GOST R 34.10-2001
and VKO GOST R 34.10-2001, described in [CPALGS]. They can be used key derivation algorithms, CryptoPro and GOST 28147-89 key wrap
only with content encryption algorithm GOST 28147-89, defined in algorithms, described in [CPALGS]. They MUST be used only with
section 5 of this document. content encryption algorithm GOST 28147-89, defined in section 5 of
this document.
4.1 Key Agreement Algorithms 4.1 Key Agreement Algorithms
This section specifies the conventions employed by CMS This section specifies the conventions employed by CMS
implementations that support key agreement using both VKO GOST R implementations that support key agreement using both VKO GOST R
34.10-94 and VKO GOST R 34.10-2001 algorithms, described in section 5 34.10-94 and VKO GOST R 34.10-2001 algorithms, described in [CPALGS].
of [CPALGS].
Key agreement algorithm identifiers are located in the EnvelopedData Key agreement algorithm identifiers are located in the EnvelopedData
RecipientInfos KeyAgreeRecipientInfo keyEncryptionAlgorithm and RecipientInfos KeyAgreeRecipientInfo keyEncryptionAlgorithm and
AuthenticatedData RecipientInfos KeyAgreeRecipientInfo AuthenticatedData RecipientInfos KeyAgreeRecipientInfo
keyEncryptionAlgorithm fields. keyEncryptionAlgorithm fields.
Wrapped content-encryption keys are located in the EnvelopedData Wrapped content-encryption keys are located in the EnvelopedData
RecipientInfos KeyAgreeRecipientInfo RecipientEncryptedKeys RecipientInfos KeyAgreeRecipientInfo RecipientEncryptedKeys
encryptedKey field. Wrapped message-authentication keys are located encryptedKey field. Wrapped message-authentication keys are located
in the AuthenticatedData RecipientInfos KeyAgreeRecipientInfo in the AuthenticatedData RecipientInfos KeyAgreeRecipientInfo
skipping to change at page 6, line 37 skipping to change at page 6, line 40
optional. optional.
encryptedKey MUST encapsulate Gost28147-89-EncryptedKey. encryptedKey MUST encapsulate Gost28147-89-EncryptedKey.
Gost28147-89-EncryptedKey ::= SEQUENCE { Gost28147-89-EncryptedKey ::= SEQUENCE {
encryptedKey Gost28147-89-Key, encryptedKey Gost28147-89-Key,
macKey Gost28147-89-MAC macKey Gost28147-89-MAC
} }
Using the secret key, corresponding to originatorKey publicKey, and Using the secret key, corresponding to originatorKey publicKey, and
sender's public key are used to produce an exchange key, algorithm recipient's public key, algorithm VKO GOST R 34.10-94 or VKO GOST R
VKO GOST R 34.10-94 or VKO GOST R 34.10-2001 (described in section 5 34.10-2001 (described in [CPALGS]) is applied to produce KEK.
of [CPALGS]) is applied as follows: GostR3410-TransportParameters
encryptionParamSet is used for all encryption operations, and
GostR3410-TransportParameters ukm is used as synchrovector. Keywrap
mode is selected based on encryptionParamSet. The resulting encoded
key (SK_enc) is placed in Gost28147-89-EncryptedKey encryptedKey
field, and it's mac (SK_mac) is placed in Gost28147-89-EncryptedKey
macKey field.
4.2 Key Transport Algorithms Then key wrap algorithm, specified by encryptionParamSet, is applied
to produce CEK_ENC, CEC_MAC, and IV. GostR3410-TransportParameters
encryptionParamSet is used for all encryption operations.
The resulting encrypted key (CEK_ENC) is placed in
Gost28147-89-EncryptedKey encryptedKey field, it's mac (CEK_MAC) is
placed in Gost28147-89-EncryptedKey macKey field, and synchrovector
(IV) is placed in GostR3410-TransportParameters ukm field.
4.2 Key Transport Algorithms
This section specifies the conventions employed by CMS This section specifies the conventions employed by CMS
implementations that support key transport using both VKO GOST R implementations that support key transport using both VKO GOST R
34.10-94 and VKO GOST R 34.10-2001 algorithms, described in section 5 34.10-94 and VKO GOST R 34.10-2001 algorithms, described in [CPALGS].
of [CPALGS].
Key transport algorithm identifiers are located in the EnvelopedData Key transport algorithm identifiers are located in the EnvelopedData
RecipientInfos KeyTransRecipientInfo keyEncryptionAlgorithm field. RecipientInfos KeyTransRecipientInfo keyEncryptionAlgorithm field.
Key transport encrypted content-encryption keys are located in the Key transport encrypted content-encryption keys are located in the
EnvelopedData RecipientInfos KeyTransRecipientInfo encryptedKey EnvelopedData RecipientInfos KeyTransRecipientInfo encryptedKey
field. field.
4.2.1 Key Transport Algorithm Based on GOST R 34.10-94/2001 Public Keys 4.2.1 Key Transport Algorithm Based on GOST R 34.10-94/2001 Public Keys
The EnvelopedData RecipientInfos KeyTransRecipientInfo field is used The EnvelopedData RecipientInfos KeyTransRecipientInfo field is used
as follows: as follows:
version MUST be 0 or 3. version MUST be 0 or 3.
keyEncryptionAlgorithm and parameters MUST be identical to the keyEncryptionAlgorithm and parameters MUST be identical to the
recipient public key algorithm and parameters. recipient public key algorithm and parameters.
encryptedKey encapsulates encryptedKey encapsulates GostR3410-KeyTransport, which consists
GostR3410-KeyTransportEncryptedKeyOctetString, which contains of encrypted content-encryption key, it's MAC, GOST 28147-89
encrypted content-encryption key, it's MAC, GOST 28147-89
algorithm parameters used for key encryption, sender's ephemeral algorithm parameters used for key encryption, sender's ephemeral
public key, and UKM (UserKeyingMaterial, see [CMS], 10.2.6). public key, and UKM (UserKeyingMaterial, see [CMS], 10.2.6).
transportParameters MUST be present. transportParameters MUST be present.
ephemeralPublicKey MUST be present, and its parameters, if ephemeralPublicKey MUST be present, and its parameters, if
present, MUST be equal to the recipient public key parameters; present, MUST be equal to the recipient public key parameters;
GostR3410-KeyTransportEncryptedKeyOctetString ::= SEQUENCE { GostR3410-KeyTransport ::= SEQUENCE {
sessionEncryptedKey Gost28147-89-EncryptedKey, sessionEncryptedKey Gost28147-89-EncryptedKey,
transportParameters transportParameters
[0] IMPLICIT GostR3410-TransportParameters OPTIONAL [0] IMPLICIT GostR3410-TransportParameters OPTIONAL
} }
GostR3410-TransportParameters ::= SEQUENCE { GostR3410-TransportParameters ::= SEQUENCE {
encryptionParamSet OBJECT IDENTIFIER, encryptionParamSet OBJECT IDENTIFIER,
ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL, ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL,
ukm OCTET STRING ukm OCTET STRING
} }
Using the secret key, corresponding to GostR3410-TransportParameters Using the secret key, corresponding to GostR3410-TransportParameters
ephemeralPublicKey, and sender's public key are used to produce an ephemeralPublicKey, and recipient's public key, algorithm VKO GOST R
exchange key, algorithm VKO GOST R 34.10-94 or VKO GOST R 34.10-2001 34.10-94 or VKO GOST R 34.10-2001 (described in [CPALGS]) is applied
(described in section 5 of [CPALGS]) is applied as follows: to produce KEK.
GostR3410-TransportParameters encryptionParamSet is used for all
encryption operations, and GostR3410-TransportParameters ukm is used Then key wrap algorithm, specified by encryptionParamSet, is applied
as synchrovector. Keywrap mode is selected based on to produce CEK_ENC, CEC_MAC, and IV. GostR3410-TransportParameters
encryptionParamSet. The resulting encoded key (SK_enc) is placed in encryptionParamSet is used for all encryption operations.
Gost28147-89-EncryptedKey encryptedKey field, and it's mac (SK_mac)
is placed in Gost28147-89-EncryptedKey macKey field. The resulting encrypted key (CEK_ENC) is placed in
Gost28147-89-EncryptedKey encryptedKey field, it's mac (CEK_MAC) is
placed in Gost28147-89-EncryptedKey macKey field, and synchrovector
(IV) is placed in GostR3410-TransportParameters ukm field.
5 Content Encryption Algorithms 5 Content Encryption Algorithms
This section specifies the conventions employed by CMS This section specifies the conventions employed by CMS
implementations that support content encryption using GOST 28147-89. implementations that support content encryption using GOST 28147-89.
Content encryption algorithm identifiers are located in the Content encryption algorithm identifiers are located in the
EnvelopedData EncryptedContentInfo contentEncryptionAlgorithm and the EnvelopedData EncryptedContentInfo contentEncryptionAlgorithm and the
EncryptedData EncryptedContentInfo contentEncryptionAlgorithm fields. EncryptedData EncryptedContentInfo contentEncryptionAlgorithm fields.
skipping to change at page 8, line 47 skipping to change at page 8, line 52
Gost28147-89-Parameters ::= Gost28147-89-Parameters ::=
SEQUENCE { SEQUENCE {
iv Gost28147-89-IV, iv Gost28147-89-IV,
encryptionParamSet OBJECT IDENTIFIER encryptionParamSet OBJECT IDENTIFIER
} }
Gost28147-89-IV ::= OCTET STRING (SIZE (8)) Gost28147-89-IV ::= OCTET STRING (SIZE (8))
encryptionParamSet specifies the set of corresponding encryptionParamSet specifies the set of corresponding
Gost28147-89-ParamSetParameters (see section 6.1 of [CPALGS]) Gost28147-89-ParamSetParameters (see section 8.1 of [CPALGS])
6 MAC Algorithms 6 MAC Algorithms
This section specifies the conventions employed by CMS This section specifies the conventions employed by CMS
implementations that support the message authentication code (MAC) implementations that support the message authentication code (MAC)
based on GOST R 34.11-94 HMAC. This MAC can also be used as a based on GOST R 34.11-94 HMAC. This MAC can also be used as a
pseudo-random function with 256 bits (32 bytes) internal state size, pseudo-random function with 256 bits (32 bytes) internal state size,
which can be used to derive keys. which can be used to derive keys.
MAC algorithm identifiers are located in the AuthenticatedData MAC algorithm identifiers are located in the AuthenticatedData
skipping to change at page 10, line 37 skipping to change at page 10, line 40
unique. unique.
It is RECCOMENDED, that applications verify signature values and It is RECCOMENDED, that applications verify signature values and
subject public keys to conform to [GOSTR34102001], [GOSTR341094] subject public keys to conform to [GOSTR34102001], [GOSTR341094]
standards prior to their use. standards prior to their use.
Cryptographic algorithm parameters affect rigidity of algorithms. Cryptographic algorithm parameters affect rigidity of algorithms.
The use of parameters, which are not listed in [CPALGS], is NOT The use of parameters, which are not listed in [CPALGS], is NOT
RECOMENDED (see Security Considerations section of [CPALGS]). RECOMENDED (see Security Considerations section of [CPALGS]).
When signed CMS document is used as analogue to a manual signing, in Use of the same key for signature and key derivation is NOT
the context of Russian Federal Digital Signature Law [RFDSL], signer RECOMMENDED. When signed CMS document is used as analogue to a
certificate MUST contain keyUsage extension, it MUST be critical, and manual signing, in the context of Russian Federal Digital Signature
keyUsage MUST NOT include keyEncipherment and keyAgreement. It SHOULD Law [RFDSL], signer certificate MUST contain keyUsage extension, it
be submited for examination by an authorized agency in appropriate MUST be critical, and keyUsage MUST NOT include keyEncipherment or
levels of target_of_evaluation (TOE), according to [RFDSL], [RFLLIC] keyAgreement. Application SHOULD be submited for examination by an
and [CRYPTOLIC]. authorized agency in appropriate levels of target_of_evaluation
(TOE), according to [RFDSL], [RFLLIC] and [CRYPTOLIC].
9 Appendix Examples 9 Appendix Examples
9.1 Signed message 9.1 Signed message
0 30 272: SEQUENCE { 0 30 272: SEQUENCE {
4 06 9: OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) 4 06 9: OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2)
15 A0 257: [0] { 15 A0 257: [0] {
19 30 254: SEQUENCE { 19 30 254: SEQUENCE {
22 02 1: INTEGER 1 22 02 1: INTEGER 1
skipping to change at page 17, line 20 skipping to change at page 17, line 20
: } : }
467 80 3: [0] 467 80 3: [0]
: E5 CE CA : E5 CE CA
: } : }
: } : }
: } : }
: } : }
10 Appendix ASN.1 Modules 10 Appendix ASN.1 Modules
10.1 Gost28147-89-EncryptionSyntax Additional ASN.1 modules, referenced here, can be found in [CPALGS].
Gost28147-89-EncryptionSyntax
{ iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
other(1) modules(1) gost28147-89-EncryptionSyntax(4) 1 }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
IMPORTS
id-CryptoPro-algorithms, id-CryptoPro-encrypts,
cryptographic-Gost-Useful-Definitions
FROM Cryptographic-Gost-Useful-Definitions
{ iso(1) member-body(2) ru(643) rans(2)
cryptopro(2) other(1) modules(1)
cryptographic-Gost-Useful-Definitions(0) 1 }
AlgorithmIdentifier, ALGORITHM-IDENTIFIER
FROM Cryptographic-Gost-Useful-Definitions
cryptographic-Gost-Useful-Definitions
;
-- GOST 28147-89 OID
id-Gost28147-89 OBJECT IDENTIFIER ::=
{ id-CryptoPro-algorithms gost28147-89(21) }
-- GOST 28147-89 Cryptographic Parameter Sets OIDs
id-Gost28147-89-TestParamSet OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts test(0) }
id-Gost28147-89-CryptoPro-A-ParamSet OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-A(1) }
id-Gost28147-89-CryptoPro-B-ParamSet OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-B(2) }
id-Gost28147-89-CryptoPro-C-ParamSet OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-C(3) }
id-Gost28147-89-CryptoPro-D-ParamSet OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-D(4) }
id-Gost28147-89-CryptoPro-Simple-A-ParamSet
OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-Simple-A(6) }
id-Gost28147-89-CryptoPro-Simple-B-ParamSet
OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-Simple-B(7) }
id-Gost28147-89-CryptoPro-Simple-C-ParamSet
OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-Simple-C(8) }
id-Gost28147-89-CryptoPro-Simple-D-ParamSet
OBJECT IDENTIFIER ::=
{ id-CryptoPro-encrypts cryptopro-Simple-D(9) }
-- GOST 28147-89 Types
Gost28147-89-Data ::= OCTET STRING (SIZE (0..4294967294))
Gost28147-89-EncryptedData ::=
OCTET STRING (SIZE (0..4294967294))
Gost28147-89-UZ ::= OCTET STRING (SIZE (64))
Gost28147-89-IV ::= OCTET STRING (SIZE (8))
Gost28147-89-Key ::= OCTET STRING (SIZE (32))
Gost28147-89-MAC ::= OCTET STRING (SIZE (1..4))
Gost28147-89-EncryptedKey ::=
SEQUENCE {
encryptedKey Gost28147-89-Key,
macKey Gost28147-89-MAC (SIZE (4))
}
-- GOST 28147-89 encryption algorithm parameters
Gost28147-89-Parameters ::=
SEQUENCE {
encryptionParamSet
OBJECT IDENTIFIER (
id-Gost28147-89-TestParamSet | -- Only for tests use
id-Gost28147-89-CryptoPro-A-ParamSet |
id-Gost28147-89-CryptoPro-B-ParamSet |
id-Gost28147-89-CryptoPro-C-ParamSet |
id-Gost28147-89-CryptoPro-D-ParamSet |
id-Gost28147-89-CryptoPro-Simple-A-ParamSet |
id-Gost28147-89-CryptoPro-Simple-B-ParamSet |
id-Gost28147-89-CryptoPro-Simple-C-ParamSet |
id-Gost28147-89-CryptoPro-Simple-D-ParamSet
),
iv Gost28147-89-IV
}
Gost28147-89-Algorithms ALGORITHM-IDENTIFIER ::= {
{ Gost28147-89-Parameters IDENTIFIED BY
id-Gost28147-89 }
}
END -- Gost28147-89-EncryptionSyntax
10.2 GostR3410-EncryptionSyntax 10.1 GostR3410-EncryptionSyntax
GostR3410-EncryptionSyntax GostR3410-EncryptionSyntax
{ iso(1) member-body(2) ru(643) rans(2) cryptopro(2) { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
other(1) modules(1) gostR3410-EncryptionSyntax(5) 2 } other(1) modules(1) gostR3410-EncryptionSyntax(5) 2 }
DEFINITIONS ::= DEFINITIONS ::=
BEGIN BEGIN
-- EXPORTS All -- -- EXPORTS All --
-- The types and values defined in this module are exported for -- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian -- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use -- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian -- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for -- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and -- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian -- modifications needed to maintain or improve the Russian
-- Cryptography service. -- Cryptography service.
IMPORTS IMPORTS
id-CryptoPro-algorithms, id-CryptoPro-algorithms,
gost28147-89-EncryptionSyntax, gost28147-89-EncryptionSyntax,
gostR3410-94-PKISyntax, gostR3410-94-PKISyntax,
gostR3410-2001-PKISyntax, gostR3410-2001-PKISyntax,
ALGORITHM-IDENTIFIER,
cryptographic-Gost-Useful-Definitions cryptographic-Gost-Useful-Definitions
FROM Cryptographic-Gost-Useful-Definitions FROM Cryptographic-Gost-Useful-Definitions
{ iso(1) member-body(2) ru(643) rans(2) { iso(1) member-body(2) ru(643) rans(2)
cryptopro(2) other(1) modules(1) cryptopro(2) other(1) modules(1)
cryptographic-Gost-Useful-Definitions(0) 1 } cryptographic-Gost-Useful-Definitions(0) 1 }
id-GostR3410-94, id-GostR3410-94,
GostR3410-94-PublicKeyParameters, GostR3410-94-PublicKeyParameters,
GostR3410-94-PublicKeyAlgorithms GostR3410-94-PublicKeyAlgorithms
FROM GostR3410-94-PKISyntax gostR3410-94-PKISyntax FROM GostR3410-94-PKISyntax gostR3410-94-PKISyntax
id-GostR3410-2001, id-GostR3410-2001,
skipping to change at page 20, line 11 skipping to change at page 18, line 21
id-Gost28147-89-CryptoPro-B-ParamSet, id-Gost28147-89-CryptoPro-B-ParamSet,
id-Gost28147-89-CryptoPro-C-ParamSet, id-Gost28147-89-CryptoPro-C-ParamSet,
id-Gost28147-89-CryptoPro-D-ParamSet, id-Gost28147-89-CryptoPro-D-ParamSet,
id-Gost28147-89-CryptoPro-Simple-A-ParamSet, id-Gost28147-89-CryptoPro-Simple-A-ParamSet,
id-Gost28147-89-CryptoPro-Simple-B-ParamSet, id-Gost28147-89-CryptoPro-Simple-B-ParamSet,
id-Gost28147-89-CryptoPro-Simple-C-ParamSet, id-Gost28147-89-CryptoPro-Simple-C-ParamSet,
id-Gost28147-89-CryptoPro-Simple-D-ParamSet, id-Gost28147-89-CryptoPro-Simple-D-ParamSet,
Gost28147-89-EncryptedKey Gost28147-89-EncryptedKey
FROM Gost28147-89-EncryptionSyntax FROM Gost28147-89-EncryptionSyntax
gost28147-89-EncryptionSyntax gost28147-89-EncryptionSyntax
-- id-external-PKIX1Explicit93, SubjectPublicKeyInfo, AlgorithmIdentifier
SubjectPublicKeyInfo, AlgorithmIdentifier, ALGORITHM-IDENTI
FIER
FROM PKIX1Explicit88 {iso(1) identified-organization(3) FROM PKIX1Explicit88 {iso(1) identified-organization(3)
dod(6) internet(1) security(5) mechanisms(5) pkix(7) dod(6) internet(1) security(5) mechanisms(5) pkix(7)
id-mod(0) id-pkix1-explicit(1)} id-mod(0) id-pkix1-explicit-88(1)}
; ;
-- CMS/PKCS#7 Key transport OID, Algorithm & Parameters -- CMS/PKCS#7 key transport algorithm & parameters
-- OID for CMS/PKCS#7 Key transport is id-GostR3410-94 from -- OID for CMS/PKCS#7 Key transport is id-GostR3410-94 from
-- GostR3410-94-PKISyntax or id-GostR3410-2001 from -- GostR3410-94-PKISyntax or id-GostR3410-2001 from
-- GostR3410-2001-PKISyntax -- GostR3410-2001-PKISyntax
-- Parameters for CMS/PKCS#7 Key transport is -- Parameters for CMS/PKCS#7 Key transport are
-- GostR3410-94-PublicKeyParameters from -- GostR3410-94-PublicKeyParameters from
-- GostR3410-94-PKISyntax with encryptionParameterOID or -- GostR3410-94-PKISyntax with encryptionParameterOID
or
-- GostR3410-2001-PublicKeyParameters from -- GostR3410-2001-PublicKeyParameters from
-- GostR3410-2001-PKISyntax with encryptionParameterOID -- GostR3410-2001-PKISyntax with encryptionParameterOI
-- Algorithm for CMS/PKCS#7 Key transport is D
-- Algorithm for CMS/PKCS#7 Key transport iare
-- GostR3410-94-PublicKeyAlgorithms from -- GostR3410-94-PublicKeyAlgorithms from
-- GostR3410-94-PKISyntax or -- GostR3410-94-PKISyntax or
-- GostR3410-2001-PublicKeyAlgorithms from -- GostR3410-2001-PublicKeyAlgorithms from
-- GostR3410-2001-PKISyntax -- GostR3410-2001-PKISyntax
-- SMIMECapability for CMS/PKCS#7 Key transport is -- SMIMECapability for CMS/PKCS#7 Key transport are
-- id-GostR3410-94 from GostR3410-94-PKISyntax or -- id-GostR3410-94 from GostR3410-94-PKISyntax or
-- id-GostR3410-2001 from GostR3410-2001-PKISyntax -- id-GostR3410-2001 from GostR3410-2001-PKISyntax
id-GostR3410-94-KeyTransportSMIMECapability id-GostR3410-94-KeyTransportSMIMECapability
OBJECT IDENTIFIER ::= id-GostR3410-94 OBJECT IDENTIFIER ::= id-GostR3410-94
id-GostR3410-2001-KeyTransportSMIMECapability id-GostR3410-2001-KeyTransportSMIMECapability
OBJECT IDENTIFIER ::= id-GostR3410-2001 OBJECT IDENTIFIER ::= id-GostR3410-2001
GostR3410-KeyTransportEncryptedKeyOctetString ::= GostR3410-KeyTransport ::=
SEQUENCE { SEQUENCE {
sessionEncryptedKey Gost28147-89-EncryptedKey, sessionEncryptedKey Gost28147-89-EncryptedKey,
transportParameters [0] IMPLICIT GostR3410-TransportPar transportParameters [0] IMPLICIT GostR3410-TransportPar
ameters OPTIONAL ameters OPTIONAL
} }
GostR3410-TransportParameters ::= GostR3410-TransportParameters ::=
SEQUENCE { SEQUENCE {
encryptionParamSet encryptionParamSet
OBJECT IDENTIFIER ( OBJECT IDENTIFIER (
id-Gost28147-89-TestParamSet | -- Only for tests use id-Gost28147-89-TestParamSet | -- Only for
testing purposes
id-Gost28147-89-CryptoPro-A-ParamSet | id-Gost28147-89-CryptoPro-A-ParamSet |
id-Gost28147-89-CryptoPro-B-ParamSet | id-Gost28147-89-CryptoPro-B-ParamSet |
id-Gost28147-89-CryptoPro-C-ParamSet | id-Gost28147-89-CryptoPro-C-ParamSet |
id-Gost28147-89-CryptoPro-D-ParamSet | id-Gost28147-89-CryptoPro-D-ParamSet |
id-Gost28147-89-CryptoPro-Simple-A-ParamSet | id-Gost28147-89-CryptoPro-Simple-A-ParamSet |
id-Gost28147-89-CryptoPro-Simple-B-ParamSet | id-Gost28147-89-CryptoPro-Simple-B-ParamSet |
id-Gost28147-89-CryptoPro-Simple-C-ParamSet | id-Gost28147-89-CryptoPro-Simple-C-ParamSet |
id-Gost28147-89-CryptoPro-Simple-D-ParamSet id-Gost28147-89-CryptoPro-Simple-D-ParamSet
), ),
ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo
OPTIONAL, OPTIONAL,
ukm OCTET STRING ( SIZE(8) ) ukm OCTET STRING ( SIZE(8) )
} }
GostR3410-KeyEncryptionAlgorithms GostR3410-KeyEncryptionAlgorithms
ALGORITHM-IDENTIFIER ::= { ALGORITHM-IDENTIFIER ::= {
{ GostR3410-94-PublicKeyParameters IDENTIFIED BY { GostR3410-94-PublicKeyParameters IDENTIFIED BY
id-GostR3410-94 } | id-GostR3410-94 } |
{ GostR3410-2001-PublicKeyParameters IDENTIFIED BY { GostR3410-2001-PublicKeyParameters IDENTIFIED BY
id-GostR3410-2001 } id-GostR3410-2001 }
} }
END -- GostR3410-94-EncryptionSyntax END -- GostR3410-EncryptionSyntax
10.3 GostR3410-94-SignatureSyntax 10.2 GostR3410-94-SignatureSyntax
GostR3410-94-SignatureSyntax GostR3410-94-SignatureSyntax
{ iso(1) member-body(2) ru(643) rans(2) cryptopro(2) { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
other(1) modules(1) gostR3410-94-SignatureSyntax(3) 1 } other(1) modules(1) gostR3410-94-SignatureSyntax(3) 1 }
DEFINITIONS ::= DEFINITIONS ::=
BEGIN BEGIN
-- EXPORTS All -- -- EXPORTS All --
-- The types and values defined in this module are exported for -- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian -- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use -- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian -- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for -- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and -- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian -- modifications needed to maintain or improve the Russian
-- Cryptography service. -- Cryptography service.
IMPORTS IMPORTS
gostR3411-94-DigestSyntax, gostR3410-94-PKISyntax, ALGORITHM-IDENTIFIER,
gostR3410-94-PKISyntax,
cryptographic-Gost-Useful-Definitions cryptographic-Gost-Useful-Definitions
FROM Cryptographic-Gost-Useful-Definitions FROM Cryptographic-Gost-Useful-Definitions
{ iso(1) member-body(2) ru(643) rans(2) { iso(1) member-body(2) ru(643) rans(2)
cryptopro(2) other(1) modules(1) cryptopro(2) other(1) modules(1)
cryptographic-Gost-Useful-Definitions(0) 1 } cryptographic-Gost-Useful-Definitions(0) 1 }
id-GostR3411-94, GostR3411-94-Digest,
GostR3411-94-DigestParameters,
id-GostR3411-94-TestParamSet,
id-GostR3411-94-CryptoProParamSet
FROM GostR3411-94-DigestSyntax gostR3411-94-DigestSyntax
id-GostR3410-94, id-GostR3410-94,
GostR3410-94-PublicKeyParameters, GostR3410-94-PublicKeyParameters
id-GostR3410-94-TestParamSet,
id-GostR3410-94-CryptoPro-A-ParamSet,
id-GostR3410-94-CryptoPro-B-ParamSet,
id-GostR3410-94-CryptoPro-C-ParamSet,
id-GostR3410-94-CryptoPro-D-ParamSet,
id-GostR3410-94-CryptoPro-XchA-ParamSet,
id-GostR3410-94-CryptoPro-XchB-ParamSet,
id-GostR3410-94-CryptoPro-XchC-ParamSet
FROM GostR3410-94-PKISyntax gostR3410-94-PKISyntax FROM GostR3410-94-PKISyntax gostR3410-94-PKISyntax
AlgorithmIdentifier, ALGORITHM-IDENTIFIER
FROM Cryptographic-Gost-Useful-Definitions
cryptographic-Gost-Useful-Definitions
; ;
-- GOST R 34.10-94 Signature Data Type -- GOST R 34.10-94 signature data type
GostR3410-94-Signature ::= GostR3410-94-Signature ::=
OCTET STRING (SIZE (64)) OCTET STRING (SIZE (64))
-- GOST R 34.10-94 Signature Parameters & Algorithm -- GOST R 34.10-94 signature algorithm & parameters
GostR3410-94-CMSSignatureAlgorithms ALGORITHM-IDENTIFIER ::= { GostR3410-94-CMSSignatureAlgorithms ALGORITHM-IDENTIFIER ::= {
{ GostR3410-94-PublicKeyParameters IDENTIFIED BY { GostR3410-94-PublicKeyParameters IDENTIFIED BY
id-GostR3410-94 } id-GostR3410-94 }
} }
END -- GostR3410-94-SignatureSyntax END -- GostR3410-94-SignatureSyntax
10.4 GostR3410-2001-SignatureSyntax 10.3 GostR3410-2001-SignatureSyntax
GostR3410-2001-SignatureSyntax GostR3410-2001-SignatureSyntax
{ iso(1) member-body(2) ru(643) rans(2) cryptopro(2) { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
other(1) modules(1) gostR3410-2001-SignatureSyntax(10) 1 } other(1) modules(1) gostR3410-2001-SignatureSyntax(10) 1 }
DEFINITIONS ::= DEFINITIONS ::=
BEGIN BEGIN
-- EXPORTS All -- -- EXPORTS All --
-- The types and values defined in this module are exported for -- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian -- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use -- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian -- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for -- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and -- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian -- modifications needed to maintain or improve the Russian
-- Cryptography service. -- Cryptography service.
IMPORTS IMPORTS
gostR3410-2001-PKISyntax, gostR3410-2001-PKISyntax, ALGORITHM-IDENTIFIER,
cryptographic-Gost-Useful-Definitions cryptographic-Gost-Useful-Definitions
FROM Cryptographic-Gost-Useful-Definitions FROM Cryptographic-Gost-Useful-Definitions
{ iso(1) member-body(2) ru(643) rans(2) { iso(1) member-body(2) ru(643) rans(2)
cryptopro(2) other(1) modules(1) cryptopro(2) other(1) modules(1)
cryptographic-Gost-Useful-Definitions(0) 1 } cryptographic-Gost-Useful-Definitions(0) 1 }
id-GostR3410-2001, id-GostR3410-2001,
GostR3410-2001-PublicKeyParameters GostR3410-2001-PublicKeyParameters
FROM GostR3410-2001-PKISyntax gostR3410-2001-PKISyntax FROM GostR3410-2001-PKISyntax gostR3410-2001-PKISyntax
AlgorithmIdentifier, ALGORITHM-IDENTIFIER
FROM Cryptographic-Gost-Useful-Definitions
cryptographic-Gost-Useful-Definitions
; ;
-- GOST R 34.10-2001 Signature Data Type -- GOST R 34.10-2001 signature data type
GostR3410-2001-Signature ::= GostR3410-2001-Signature ::=
OCTET STRING (SIZE (64)) OCTET STRING (SIZE (64))
-- GOST R 34.10-2001 Signature Parameters & Algorithm -- GOST R 34.10-2001 signature algorithms and parameters
GostR3410-2001-CMSSignatureAlgorithms GostR3410-2001-CMSSignatureAlgorithms
ALGORITHM-IDENTIFIER ::= { ALGORITHM-IDENTIFIER ::= {
{ GostR3410-2001-PublicKeyParameters IDENTIFIED BY { GostR3410-2001-PublicKeyParameters IDENTIFIED BY
id-GostR3410-2001 } id-GostR3410-2001 }
} }
END -- GostR3410-2001-SignatureSyntax END -- GostR3410-2001-SignatureSyntax
11 References 11 References
[GOST28147] "Cryptographic Protection for Data Processing Sys- [GOST28147] "Cryptographic Protection for Data Processing Sys-
skipping to change at page 24, line 38 skipping to change at page 22, line 31
[X.209-88] CCITT. Recommendation X.209: Specification of Basic [X.209-88] CCITT. Recommendation X.209: Specification of Basic
Encoding Rules for Abstract Syntax Notation One Encoding Rules for Abstract Syntax Notation One
(ASN.1). 1988.. (ASN.1). 1988..
[CPPK] S. Leontiev, D. Shefanovskij, "Algorithms and Identi- [CPPK] S. Leontiev, D. Shefanovskij, "Algorithms and Identi-
fiers for the Internet X.509 Public Key Infrastruc- fiers for the Internet X.509 Public Key Infrastruc-
ture Certificates and Certificate Revocation List ture Certificates and Certificate Revocation List
(CRL), corresponding to the algorithms GOST R (CRL), corresponding to the algorithms GOST R
34.10-94, GOST R 34.10-2001, GOST R 34.11-94", draft- 34.10-94, GOST R 34.10-2001, GOST R 34.11-94", draft-
leontiev-cryptopro-cppk-00.txt ietf-pkix-gost-cppk-00.txt
[CPALGS] V. Popov, I. Kurepkin, S. Leontiev "Additional cryp- [CPALGS] V. Popov, I. Kurepkin, S. Leontiev "Additional cryp-
tographic algorithms for use with GOST 28147-89, GOST tographic algorithms for use with GOST 28147-89, GOST
R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
algorithms.", draft-popov-cryptopro-cpalgs-00.txt algorithms.", draft-popov-cryptopro-cpalgs-00.txt
[HMAC] H. Krawczyk, M. Bellare, R. Canetti, "HMAC: Keyed- [HMAC] H. Krawczyk, M. Bellare, R. Canetti, "HMAC: Keyed-
Hashing for Message Authentication", RFC 2104 Febru- Hashing for Message Authentication", RFC 2104 Febru-
ary 1997. ary 1997.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/