[Search] [txt|pdf|bibtex] [Tracker] [Email] [Nits]

Versions: 00                                                            
PKIX Working Group                         Serguei Leontiev, CRYPTO-PRO
INTERNET-DRAFT                        Dennis Shefanovskij, DEMOS Co Ltd
Expires December 15, 2003                                 June 15, 2003
Intended Category: Informational

      Algorithms and Identifiers for the Internet X.509 Public Key
Infrastructure Certificates and Certificate Revocation List (CRL),
corresponding to the algorithms GOST R 34.10-94, GOST R 34.10-2001, GOST
R 34.11-94

                     <draft-leontiev-cryptopro-cppk-00.txt>

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   Comments or suggestions for improvement may be done via "ietf-pkix"
   mailing list, or directly to the authors.


Abstract

   This document describes identifiers and appropriate parameters for
   the algorithms GOST R 34.10-94, GOST R 34.10-2001, GOST R 34.11-94,
   and also ASN.1 encoding scheme for digital signatures and public
   keys, used in Internet X.509 Public Key Infrastructure (PKI).  This
   specification extends [RFC 3279], "Algorithms and Identifiers for the
   Internet X.509 Public Key Infrastructure Certificate and Certificate
   Revocation List (CRL) Profile" and, correspondingly, [RFC 3280],
   "Internet X.509 Public Key Infrastructure: Certificate and
   Certificate Revocation List (CRL) Profile". All realizations of this



Leontiev, Shefanovski         Informational                     [Page 1]


Internet-Draft         GOST Public Keys for X.509              June 2003


   specification also MUST correspond [RFC 3280].

Table of Contents

   1      Introduction. . . . . . . . . . . . . . . . . . . . . .   2
   2      Algorithm Support . . . . . . . . . . . . . . . . . . .   3
   2.1    One-way Hash Functions. . . . . . . . . . . . . . . . .   4
   2.1.1  One-way Hash Function GOST R 34.11-94 . . . . . . . . .   4
   2.2    Signature Algorithms. . . . . . . . . . . . . . . . . .   4
   2.2.1  Signature Algorithm GOST R 34.10-94 . . . . . . . . . .   5
   2.2.2  Signature Algorithm GOST R 34.10-2001 . . . . . . . . .   6
   2.3    Subject Public Key Algorithms . . . . . . . . . . . . .   7
   2.3.1  GOST R 34.10-94 Keys. . . . . . . . . . . . . . . . . .   7
   2.3.2  GOST R 34.10-2001 Keys. . . . . . . . . . . . . . . . .   9
   3      Algorithm Parameters. . . . . . . . . . . . . . . . . .  11
   3.1    GOST R 34.11-94 Parameters. . . . . . . . . . . . . . .  13
   3.2    GOST R 34.10-94 Parameters. . . . . . . . . . . . . . .  13
   3.3    GOST R 34.10-2001 Parameters. . . . . . . . . . . . . .  14
   4      Security Considerations . . . . . . . . . . . . . . . .  14
   5      Appendix ASN.1 Moduls . . . . . . . . . . . . . . . . .  14
   5.1    Cryptographic-Gost-Useful-Definitions . . . . . . . . .  14
   5.2    GostR3411-94-DigestSyntax . . . . . . . . . . . . . . .  17
   5.3    GostR3411-94-ParamSetSyntax . . . . . . . . . . . . . .  18
   5.4    GostR3410-94-PKISyntax. . . . . . . . . . . . . . . . .  21
   5.5    GostR3410-94-ParamSetSyntax . . . . . . . . . . . . . .  23
   5.6    GostR3410-2001-PKISyntax. . . . . . . . . . . . . . . .  33
   5.7    GostR3410-2001-ParamSetSyntax . . . . . . . . . . . . .  35
   6      References. . . . . . . . . . . . . . . . . . . . . . .  41
   Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . .  42
   Author's Addresses . . . . . . . . . . . . . . . . . . . . . .  43
   Full Copyright Statement . . . . . . . . . . . . . . . . . . .  44

1  Introduction

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC 2119].

   This document defines identifiers and corresponding algorithm
   parameters and attributes proposed by CRYPTO-PRO Company within
   "Russian Cryptographic Software Compatibility Agreement" community
   for the algorithms GOST R 34.10-94, GOST R 34.10-2001, GOST R
   34.11-94, key establishment algorithms based on GOST R 34.10-94
   public keys, key establishment algorithms based on GOST R 34.10-2001
   public keys, and also ASN.1 encoding [X.660] for digital signatures
   and public keys, used in Internet X.509 Public Key Infrastructure
   (PKI).




Leontiev, Shefanovski         Informational                     [Page 2]


Internet-Draft         GOST Public Keys for X.509              June 2003


   This specification extends [RFC 3279], "Algorithms and Identifiers
   for the Internet X.509 Public Key Infrastructure Certificate and
   Certificate Revocation List (CRL) Profile" and, correspondingly, [RFC
   3280], "Internet X.509 Public Key Infrastructure: Certificate and
   Certificate Revocation List (CRL) Profile". All realizations of this
   specification MUST also correspond [RFC 3280].

   This specification defines the content of the signatureAlgorithm,
   signatureValue, signature, and subjectPublicKeyInfo fields within
   Internet X.509 certificates and CRLs.

   This document defines one-way hash-function GOST R 34.11-94
   [GOST3411] for use in the generation of digital signatures. This
   algorithm   is used in conjunction with digital signature algorithms.

   This specification describes the encoding of digital signatures,
   generated with the following cryptographic algorithms:

      * GOST R 34.10-94;
      * GOST R 34.10-2001.

   This document also defines the contents of the subjectPublicKeyInfo
   field for Internet X.509 certificates. For each algorithm, the
   appropriate alternatives for the keyUsage extension are provided.
   This specification describes encoding formats for public keys used
   with the following cryptographic algorithms:

      * GOST R 34.10-94 [GOST341094];
      * GOST R 34.10-2001 [GOST34102001];
      * Key establishment algorithms based on GOST R 34.10-94 public
   keys [CPALGS];
      * Key establishment algorithms based on GOST R 34.10-2001 public
   keys [CPALGS].

2  Algorithm Support

   This section is review of cryptographic algorithms, which may be used
   within the Internet X.509 certificates and CRL profile [RFC 3280].
   The one-way hash functions and digital signature algorithms, which
   may be used to sign certificates and CRLs, and identifies object
   identifiers (OIDs) for public keys contained in  a certificate are
   also described  in this section.

   The appropriate CA and/or applications MUST support digital
   signatures and public keys fully for one of the specified algorithms.
   Hence when using any of the algorithms identified in this
   specification in CA and/or applications MUST support them as
   described below.



Leontiev, Shefanovski         Informational                     [Page 3]


Internet-Draft         GOST Public Keys for X.509              June 2003


2.1  One-way Hash Functions

   This section identifies one-way, collision free hash function GOST R
   34.11-94 -  the only one could be used in digital signature
   algorithms GOST R 34.10-94/2001. The data that is hashed for
   certificates and CRL signing is fully described in [RFC 3280].

2.1.1  One-way Hash Function GOST R 34.11-94

   GOST R 34.11-94 has been developed by "GUBS of Federal Agency
   Government Communication and Information" and "All-Russian Scientific
   and Research Institute of Standardization".  The algorithm GOST R
   34.11-94 produces a 256-bit hash value of the arbitrary finite bit
   length input. This document does not contain GOST R 34.11-94 full
   specification, which could be found in [GOSTR3411] in Russian,
   [Schneier95] ch. 18.11, p. 454. contain the brief technical
   description in English.

   The initial value (IV) and S-box are optional for algorithm
   parameters (Algorithm Parameters part in [GOST28147] in Russian,
   description in English see in [Schneier95] ch. 14.1, p. 331). The
   Standard [GOST3411] does not define hash function algorithm
   parameters, which ought to be set by OID in software code.  The
   Parameters for OID prescribed below are included in appendix.

2.2  Signature Algorithms

   In according to [RFC 3280] the Certificates and CRL may be signed
   with either GOST R 34.10-94 or with GOST R 34.10-2001 signature
   algorithms. The signatureAlgorithm field of Certificates or
   CertificateRevocationList for certificate or CRL indicates the
   algorithm ID used for signature and associated parameters, essential
   as OID. In case of omitted parameters, these ones are generated
   hereditarily from top of issuers.  This section also defines
   algorithm identifiers and parameters that MUST be used in the
   signatureAlgorithm field in a Certificate or
   CertificateRevocationList.

   Signature algorithms are always used conjointly with a one-way hash
   function GOST R 34.11-94 as indicated in [GOSTR341094] and
   [GOSTR34102001].

   This section identifies OIDS for GOST R 34.10-94 and GOST R
   34.10-2001. The contents of the parameters component for each
   algorithm may vary and details are provided below for each algorithm
   separately.

   The data to be signed (per example, the one-way hash function output



Leontiev, Shefanovski         Informational                     [Page 4]


Internet-Draft         GOST Public Keys for X.509              June 2003


   value) is preformatted for the signature algorithm to be used. Then,
   a private key operation is performed to generate the signature value.
   This signature value is then ASN.1 encoded as a BIT STRING and
   included in the Certificate or CertificateRevocationList in the
   signatureValue field.

2.2.1  Signature Algorithm GOST R 34.10-94

   GOST R 34.10-94 has been developed by "GUBS of Federal Agency
   Government Communication and Information" and "All-Russian Scientific
   and Research Institute of Standardization".  This signature algorithm
   MUST be used conjointly with one-way, collision free hash function
   GOST R 34.11-94. This document does not contain GOST R 34.10-94
   standard description, which is fully described in [GOSTR341094] in
   Russian, and brief description in English could be found in
   [Schneier95] ch. 20.3, p. 495.

   The ASN.1 OID used to identify GOST R 34.10-94 signature algorithm in
   fields signatureAlgorithm in Certificate and
   CertificateRevocationList is the next:

   id-CryptoPro-algorithms OBJECT IDENTIFIER ::=
         { iso(1) member-body(2) ru(643) rans(2) cryptopro(2) }

   id-GostR3411-94-with-GostR3410-94 OBJECT IDENTIFIER ::=
         { id-CryptoPro-algorithms gostR3411-94-with-gostR3410-94(4)}

   GostR3410-94-CertificateSignatureAlgorithms
      ALGORITHM-IDENTIFIER ::= {
         { NULL IDENTIFIED BY
                       id-GostR3411-94-with-GostR3410-94 } |
         { GostR3410-94-PublicKeyParameters IDENTIFIED BY
                       id-GostR3411-94-with-GostR3410-94 } }

   See chapter Algorithms Parameters for further details.

   When the id-GostR3411-94-with-GostR3410-94 algorithm identifier
   appears in an AlgorithmIdentifier and parameters are omitted, the
   software MUST use the parameters from the signer's public key.

   Signature algorithm GOST R 34.10-94 generates digital signature in
   the form of a binary 512-bit vector (<r'>256||<s>256).  This vector
   is encoded as two data blocks, being given after decoding at the
   signature verification algorithm input. At first, <r'>256 block then
   <s>256 block. signatureValue field BIT STRING type:

   GostR3410-94-SignatureValue ::= BIT STRING




Leontiev, Shefanovski         Informational                     [Page 5]


Internet-Draft         GOST Public Keys for X.509              June 2003


   At that, least-significant of the first octet
   (GostR3410EncryptedDigest[0]) corresponds to least-significant (1-st)
   of vector <r'>256||<s>256 (s1 =  (GostR3410EncryptedDigest[0] & 1)).
   Whereas most-significant  of  64-th octet (GostData[31]) corresponds
   to most-significant  (512-d) of vector  <r'>256||<s>256 (r'256 =
   ((GostR3410EncryptedDigest[63] & 0x80)>>7)).

2.2.2  Signature Algorithm GOST R 34.10-2001

   GOST R 34.10-2001 was developed by "GUBS of Federal Agency Government
   Communication and Information" and "All-Russian Scientific and
   Research Institute of Standardization".  This signature algorithm
   MUST be used conjointly with one-way, collision free hash function
   GOST R 34.11-94. This document does not contain GOST R 34.10-2001
   standard description, which is fully described in [GOSTR34102001].

   The ASN.1 OID used to identify GOST R 34.10-2001 signature algorithm
   in fields signatureAlgorithm of Certificate and
   CertificateRevocationList is:

   id-GostR3411-94-with-GostR3410-2001 OBJECT IDENTIFIER ::=
         { id-CryptoPro-algorithms gostR3411-94-with-gostR3410-2001(3) }

   GostR3410-2001-CertificateSignatureAlgorithms
     ALGORITHM-IDENTIFIER ::= {
       { NULL IDENTIFIED BY
                       id-GostR3411-94-with-GostR3410-2001 } |
       { GostR3410-2001-PublicKeyParameters IDENTIFIED BY
                       id-GostR3411-94-with-GostR3410-2001 } }

   See chapter Algorithms Parameters for further details.

   When the id-GostR3411-94-with-GostR3410-2001 algorithm identifier
   appears in an AlgorithmIdentifier and parameters are omitted, the
   MUST use the parameters concerned with the public  key of the issuer
   of this certificate or CRL.

   Signature algorithm GOST R 34.10-2001 generates digital signature in
   the form of a binary 512-bit vector (<r'>256||<s>256). This vector
   encoded as two data blocks, piping after encoding to input of
   signature verification algorithm in according to GOST R 34.10-2001,
   first block <r>256, then block <s>256. The field signatureValue has
   type BIT STRING:

   GostR3410-2001-CertificateSignature ::= BIT STRING

   At that, least-significant of the first octet
   (GostR3410EncryptedDigest[0]) corresponds to least-significant (1-st)



Leontiev, Shefanovski         Informational                     [Page 6]


Internet-Draft         GOST Public Keys for X.509              June 2003


   of vector <r>256||<s>256 (s1 =  (GostR3410EncryptedDigest[0] & 1)).
   Whereas most-significant of 64-th octet (GostData[31]) corresponds to
   most-significant (512-d) of vector <r>256||<s>256 (r256 =
   ((GostR3410EncryptedDigest[63] & 0x80)>>7)).

2.3  Subject Public Key Algorithms

   In according to [RFC 3280] the certificates may contain a public key
   for any algorithm. Within the framework of this specification the
   only GOST R 34.10-94 and GOST R 34.10-2001 public key algorithms
   defined. The algorithm and associated parameters are definable as OID
   in certificate through ASN.1 structure AlgorithmIdentifier.

   This section identifies defines OID and public key parameters for the
   GOST R 34.10-94 and GOST R 34.10-2001 algorithms. The appropriate CA
   MUST use the predefined OID issuing certificates containing public
   keys for these algorithms. The appropriate applications supporting
   any of these algorithms MUST fully recognize the OID identified in
   this section

2.3.1  GOST R 34.10-94 Keys

   This section defines OID and parameters encoding scheme for public
   key including into certificate. Public key GOST R 34.10-94 could be
   used for digital signature verification by GOST R 34.10-94
   [GOSTR341094] algorithm and for key exchange algorithm based on GOST
   R 34.10-94 [CPALGS].

   Public key OID for GOST R 34.10-94 declared in this document is:

   id-GostR3410-94 OBJECT IDENTIFIER ::=
       { id-CryptoPro-algorithms gostR3410-94(20) }

   An assumed cryptographic key usage could be pointed in keyUsage field
   [RFC 3280]. The usage the same key for signature and for key
   establishment is NOT RECOMMENDED, but possible.

   SubjectPublicKeyInfo sintax of primary certificate context for id-
   GostR3410-94 algorithm produced in following ASN.1 structure:

   SubjectPublicKeyInfo ::=
       SEQUENCE {
      algorithm            AlgorithmIdentifier,
      subjectPublicKey     BIT STRING
       }

   GostR3410-94-PublicKeyAlgorithms  ALGORITHM-IDENTIFIER ::= {
       { GostR3410-94-PublicKeyParameters IDENTIFIED BY



Leontiev, Shefanovski         Informational                     [Page 7]


Internet-Draft         GOST Public Keys for X.509              June 2003


                       id-GostR3410-94 } }

   GostR3410-94-PublicKeyParameters ::=
       SEQUENCE {
           publicKeyParamSet
               OBJECT IDENTIFIER,
           digestParamSet
               OBJECT IDENTIFIER,
           encryptionParamSet
               OBJECT IDENTIFIER OPTIONAL
       }

   where:
     * publicKeyParamSet - public key parameters identifier for GOST
     R 34.10-94;
     * digestParamSet - parameters identifier for GOST R 34.11-94;
     * encryptionParamSet - optional parameters identifier for GOST
   28147-89  MAY be presented anytime and MUST be presented if keyUsage
   is keyAgreement or keyEnchiperment.

   AlgorithmIdentifier within subjectPublicKeyInfo could takes place
   only if a certificate contains these parameters. If GOST R 34.10-94
   algorithm parameters are omitted in subjectPublicKeyInfo, and CA
   signs subject certificate using GOST R 34.10-94, then GOST R 34.10-94
   parameters taken from subjectPublicKeyInfo field of issuer
   certificate are applicable to public key of GOST R 34.10-94 subject.
   That is, cryptographic parameters inheritance takes place. If
   subjectPublicKeyInfo AlgorithmIdentifier field contain no parameters,
   but CA sign certificate using signature algorithm different from GOST
   R 34.10-94, then certificate users MUST reject it.

   Public key GOST R 34.10-94 MUST be ASN.1 encoded in following way.

   In GOST R 34.10-94 public key is a number y = a^x (mod p), where a
   and p  - parameters, and y is a bit-vector (<y>1024), at that
   encoding should present <y>1024 (BIT STRING) as a vector holding
   data in a little-endian. At first, a key is presented as an   OCTET
   STRING, and then, being DER-encoded, presented as a BIT STRING.

   GostR3410-94-PublicKey ::= BIT STRING

   GostR3410-94-PublicKeyOctetString ::= OCTET STRING

   If the keyUsage extension is present in an end-entity certificate,
   which contains a GOST R 34.10-94 public key, the following values MAY
   be present:

      digitalSignature;



Leontiev, Shefanovski         Informational                     [Page 8]


Internet-Draft         GOST Public Keys for X.509              June 2003


      nonRepudiation.
      keyEncipherment;
      keyAgreement.

   If the keyAgreement or keyEnchiperment extension is present in a
   certificate GOST R 34.10-94 public key, the following values MAY be
   present as well:

      encipherOnly;
      decipherOnly.

   The keyUsage extension MUST NOT assert both encipherOnly and
   decipherOnly.

   If the keyUsage extension is present in an CA or CRL signer
   certificate which contain a GOST R 34.10-94 public key, the following
   values MAY be present:

      digitalSignature;
      nonRepudiation;
      keyCertSign;
      cRLSign.

2.3.2  GOST R 34.10-2001 Keys

   This section defines OID and parameters encoding for public key
   including in certificate. Public key GOST R 34.10-2001 could be used
   for digital signature generation by GOST R 34.10-2001 [GOSTR34102001]
   algorithm and for key exchange algorithm based on GOST R 34.10-2001
   [CPALGS]. Public key OID for GOST R 34.10-2001 is:

   id-GostR3410-2001 OBJECT IDENTIFIER ::=
       { id-CryptoPro-algorithms gostR3410-2001(19) }

   Assumed cryptographic key usage could be pointed in keyUsage field
   [RFC 3280]. The usage of the same key for digital signature and key
   establishment is NOT RECOMMENDED, but possible.

   SubjectPublicKeyInfo syntax of primary certificate context for id-
   GostR3410-94 algorithm produced in following ASN.1 structure:

   SubjectPublicKeyInfo ::=
       SEQUENCE {
           algorithm            AlgorithmIdentifier,
           subjectPublicKey     BIT STRING
       }

   GostR3410-2001-PublicKeyAlgorithms  ALGORITHM-IDENTIFIER ::= {



Leontiev, Shefanovski         Informational                     [Page 9]


Internet-Draft         GOST Public Keys for X.509              June 2003


       { GostR3410-2001-PublicKeyParameters IDENTIFIED BY
                       id-GostR3410-2001 } }

   GostR3410-2001-PublicKeyParameters ::=
       SEQUENCE {
           publicKeyParamSet
               OBJECT IDENTIFIER,
           digestParamSet
               OBJECT IDENTIFIER,
           encryptionParamSet
               OBJECT IDENTIFIER OPTIONAL
       }

   *  publicKeyParamSet - public key parameters identifier for  GOST R
   34.10-2001;
   *  digestParamSet - parameters identifier for GOST R 34.11-94;
   *  encryptionParamSet - optional parameters identifier for GOST
   28147-89 MAY be presented anytime and MUST be presented if keyUsage
   differs from digitalSignature, nonRepudiation, keyCertSign and
   cRLSign.

   AlgorithmIdentifier within subjectPublicKeyInfo takes place only if a
   certificate could contain parameters. If GOST R 34.10-2001 algorithm
   parameters are omitted in subjectPublicKeyInfo, and CA signs subject
   certificate using GOST R 34.10-2001, then GOST R 34.10-2001
   parameters taken from subjectPublicKeyInfo field of issuer
   certificate are applicable to public key of GOST R 34.10-2001
   subject. That is, cryptographic parameters inheritance takes place.
   If subjectPublicKeyInfo AlgorithmIdentifier field contain no
   parameters, but CA sign certificate using signature algorithm
   different from GOST R 34.10-2001, then certificate users MUST reject
   it.

   GOST R 34.10-2001 public key MUST be ASN.1 encoded in a following
   way. GOST R 34.10-2001 specifies that public key is a point on the
   elliptic curve Q = dP,  where d is a private key, P is a base point,
   and Q presents in a way of 512-bit vector  (<Xq>256||<Yq>256). This
   vector DER-encoded as two data blocks. At first, <Xq>256 block, then
   <Yq>256 block. subjectPublicKey field BIT STRING type is presented as
   a  taken up object  GostR3410-2001-PublicKeyOctetString.

   At that, least-significant of the first octet
   (GostR3410-2001-PublicKeyOctetString[0]) corresponds to least-
   significant (1-st) of vector  <Xq>256||<Yq>256 (Yq1 =
   (GostR3410-2001-PublicKeyOctetString[0] & 1)).

   Whereas most-significant of  64-th octet
   (GostR3410-2001-PublicKeyOctetString[63]) corresponds to most-



Leontiev, Shefanovski         Informational                    [Page 10]


Internet-Draft         GOST Public Keys for X.509              June 2003


   significant  (512-d)  of vector  <Xq>256||<Yq>256 (Xq256 =
   ((GostR3410-2001-PublicKeyOctetString[63] & 0x80)>>7)).

   In other words, <Xq>256||<Yq>256 vector is stored in little-endian,
   that correspond binary vector form and their concatenation in GOST R
   34.10-2001 ch. 5.3.  At first, key is placed in OCTET STRING, than is
   DER-encoded and placed in BIT STRING.

   GostR3410-2001-PublicKey ::= BIT STRING

   GostR3410-2001-PublicKeyOctetString ::= OCTET STRING

   If the keyUsage extension is present in an end-entity certificate,
   which conveys a GOST R 34.10-2001 public key, the following values
   MAY be present:

      digitalSignature;
      nonRepudiation.
      keyEncipherment;
      keyAgreement.

   If the keyAgreement or keyEnchiperment extension is present in a
   certificate, the following values MAY be present:

      encipherOnly;
      decipherOnly.

   The keyUsage extension MUST NOT assert both encipherOnly and
   decipherOnly.

   If the keyUsage extension is present in an CA or CRL signer
   certificate which contain a GOST R 34.10-2001 public key, the
   following values MAY be present:

      digitalSignature;
      nonRepudiation;
      keyCertSign;
      cRLSign.

3  Algorithm Parameters

   Cryptographic algorithm parameters in certificates and CRL are
   indicated by appropriate OID. Algorithm parameters OID, proposed
   hereby, are the next.

   For hash function parameters GOST R 34.11-94:

   id-CryptoPro-hashes OBJECT IDENTIFIER ::=



Leontiev, Shefanovski         Informational                    [Page 11]


Internet-Draft         GOST Public Keys for X.509              June 2003


      { iso(1) member-body(2) ru(643) rans(2) cryptopro(2) hashes(30) }

   id-GostR3411-94-TestParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-hashes test(0) }

   id-GostR3411-94-CryptoProParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-hashes cryptopro(1) }

   For public key parameters GOST R 34.10-94:

   id-CryptoPro-signs OBJECT IDENTIFIER ::=
      { iso(1) member-body(2) ru(643) rans(2) cryptopro(2) signs(32) }

   id-GostR3410-94-TestParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-signs test(0) }

   id-GostR3410-94-CryptoPro-A-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-signs cryptopro-A(2) }

   id-GostR3410-94-CryptoPro-B-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-signs cryptopro-B(3) }

   id-GostR3410-94-CryptoPro-C-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-signs cryptopro-C(4) }

   id-GostR3410-94-CryptoPro-D-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-signs cryptopro-D(5) }

   For public key parameters GOST R 34.10-2001:

   id-CryptoPro-ecc-signs OBJECT IDENTIFIER ::= { iso(1) member-body(2)
   ru(643) rans(2) cryptopro(2) ecc-signs(35) }

   id-GostR3410-2001-TestParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-ecc-signs test(0) }

   id-GostR3410-2001-CryptoPro-A-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-ecc-signs cryptopro-A(1) }

   id-GostR3410-2001-CryptoPro-B-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-ecc-signs cryptopro-B(2) }

   id-GostR3410-2001-CryptoPro-C-ParamSet OBJECT IDENTIFIER ::=
      { id-CryptoPro-ecc-signs cryptopro-C(3) }

   Specific further parameter values are presented in Appendix.

   If any organization needs to assign their own parameters, they should



Leontiev, Shefanovski         Informational                    [Page 12]


Internet-Draft         GOST Public Keys for X.509              June 2003


   be described and MUST be  published in a way of appendix to this
   document or in other way in following forms:

3.1  GOST R 34.11-94 Parameters

   Hash function parameters GOST R 34.11-94 according to [GOSTR3411]:

   GostR3411-94-ParamSetParameters ::=
      SEQUENCE {
          hUZ Gost28147-89-UZ,
          h0  GostR3411-94-Digest
      }

   hUZ - S-box [GOSTR3411], [GOST28147].

   h0  - initializing value(IV) [GOSTR3411].

3.2  GOST R 34.10-94 Parameters

    algorithm parameters GOST R 34.10-94 according to [GOSTR341094]:

   GostR3410-94-ParamSetParameters ::=
      SEQUENCE {
          p       INTEGER,
          q       INTEGER,
          a       INTEGER,
          validationAlgorithm
         AlgorithmIdentifier {{
            GostR3410-94-ValidationAlgorithms
            }} OPTIONAL
      }

   p - modulus, prime number, 2^1023<p<2^1024;
   q - order of cyclic group, prime number, 2^254<q<2^256, q is a factor
   of p-1;
   a - generator, integer, 1<a<p-1, at that aq (mod p) = 1;
   validationAlgorithm - constant p, q and a calculating algorithm.

GostR3410-94-ValidationParameters ::=
      SEQUENCE {
          t       INTEGER,
          x0      INTEGER,
          c       INTEGER,
          d       INTEGER OPTIONAL
      }

   t  - bit length of p;
   x0 - seed;



Leontiev, Shefanovski         Informational                    [Page 13]


Internet-Draft         GOST Public Keys for X.509              June 2003


   c  - used for p and q generation;
   d  - used for a generation.

3.3  GOST R 34.10-2001 Parameters

   Public key algorithm parameters GOST R 34.11-2001 according to
   [GOSTR34102001]:

   GostR3410-2001-ParamSetParameters ::=
      SEQUENCE {
          abj CHOICE {
              ab SEQUENCE {
                  a       INTEGER,
                  b       INTEGER,
              },
              j       INTEGER,
          },
          p       INTEGER ,
          q       INTEGER ,
          x       INTEGER ,
          y       INTEGER
      }

   a, b - coefficients a and b of the elliptic curve E;
   j    - invariant;
   p    - prime number - elliptic curve modulus;
   q    - prime number - order of cyclic group;
   x, y - base point p coordinates.

4  Security Considerations

   Parameter values for using cryptographic algorithms affect rigidity
   of information protection system. It is RECCOMENDED, that software
   applications verify signature values, subject public keys and
   algorithm parameters to conform to [GOSTR34102001], [GOSTR341094]
   standards prior to their use.

   The algorithm parameters proposed hereby and described in this
   document, have been analyzed by special certification laboratory of
   Scientific and Technical Centre "ATLAS" and by Centre of
   Certificational Investigations in appropriate levels of
   target_of_evaluation (TOE).

   In case of different parameters usage, it is RECCOMENDED that they
   are to be examined by authorized agency with an approved  methods of
   cryptographic analysis.

5  Appendix ASN.1 Moduls



Leontiev, Shefanovski         Informational                    [Page 14]


Internet-Draft         GOST Public Keys for X.509              June 2003


5.1  Cryptographic-Gost-Useful-Definitions

-- Copyright(C) CRYPTO-PRO Company
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 }
DEFINITIONS ::=
BEGIN
-- EXPORTS All --
-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
  -- Crypto-Pro OID branch
    id-CryptoPro OBJECT IDENTIFIER ::=
        { iso(1) member-body(2) ru(643) rans(2) cryptopro(2) }
    id-CryptoPro-algorithms OBJECT IDENTIFIER ::=
        id-CryptoPro
    id-CryptoPro-modules OBJECT IDENTIFIER ::=
        { id-CryptoPro other(1) modules(1) }
    id-CryptoPro-hashes OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms hashes(30) }
    id-CryptoPro-encrypts OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms encrypts(31) }
    id-CryptoPro-signs OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms signs(32) }
    id-CryptoPro-exchanges OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms exchanges(33) }
    id-CryptoPro-extensions OBJECT IDENTIFIER ::=
            { id-CryptoPro extensions(34) }
    id-CryptoPro-ecc-signs OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms ecc-signs(35) }
    id-CryptoPro-ecc-exchanges OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms ecc-exchanges(36) }
    id-CryptoPro-private-keys OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms private-keys(37) }
    id-CryptoPro-policyQt OBJECT IDENTIFIER ::=
            { id-CryptoPro policyQt(39) }
    id-CryptoPro-policyIds OBJECT IDENTIFIER ::=
      { id-CryptoPro policyIds(38) }
    id-CryptoPro-attributes OBJECT IDENTIFIER ::=
      { id-CryptoPro-algorithms attributes(38) }
    id-CryptoPro-pkixcmp-infos OBJECT IDENTIFIER ::=



Leontiev, Shefanovski         Informational                    [Page 15]


Internet-Draft         GOST Public Keys for X.509              June 2003


      { id-CryptoPro-algorithms pkixcmp-infos(39) }
  -- ASN.1 modules of Russian Cryptography "GOST" & "GOST R"
  -- Specifications
    cryptographic-Gost-Useful-Definitions OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules
          cryptographic-Gost-Useful-Definitions(0) 1 }
  -- GOST R 34.11-94

    gostR3411-94-DigestSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gostR3411-94-DigestSyntax(1) 1 }
    gostR3411-94-ParamSetSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gostR3411-94-ParamSetSyntax(7) 1 }
  -- GOST R 34.10-94

    gostR3410-94-PKISyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules  gostR3410-94-PKISyntax(2) 1 }
    gostR3410-94-SignatureSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gostR3410-94-SignatureSyntax(3) 1 }
    gostR3410-94-EncryptionSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gostR3410-94-EncryptionSyntax(5) 2 }
    gostR3410-94-ParamSetSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules  gostR3410-94-ParamSetSyntax(8) 1 }
  -- GOST R 34.10-2001

    gostR3410-2001-PKISyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules  gostR3410-2001-PKISyntax(9) 1 }
    gostR3410-2001-SignatureSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules
          gostR3410-2001-SignatureSyntax(10) 1 }
    gostR3410-2001-EncryptionSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules
          gostR3410-2001-EncryptionSyntax(11) 2 }
    gostR3410-2001-ParamSetSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules
          gostR3410-2001-ParamSetSyntax(12) 1 }
  -- GOST 28147-89

    gost28147-89-EncryptionSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gost28147-89-EncryptionSyntax(4) 1 }
    gost28147-89-ParamSetSyntax OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gost28147-89-ParamSetSyntax(6) 1 }
  -- Extended Key Usage for Crypto-Pro

    gost-CryptoPro-ExtendedKeyUsage OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules
          gost-CryptoPro-ExtendedKeyUsage(13) 1 }
  -- Crypto-Pro Private keys




Leontiev, Shefanovski         Informational                    [Page 16]


Internet-Draft         GOST Public Keys for X.509              June 2003


    gost-CryptoPro-PrivateKey OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gost-CryptoPro-PrivateKey(14) 1 }
  -- Crypto-Pro Policy
    gost-CryptoPro-Policy OBJECT IDENTIFIER ::=
        { id-CryptoPro-modules gost-CryptoPro-Policy(15) 1 }
  -- Crypto-Pro PKIXCMP structures

    gost-CryptoPro-PKIXCMP OBJECT IDENTIFIER ::=
      { id-CryptoPro-modules gost-CryptoPro-PKIXCMP(16) 1 }

  -- External ASN.1 modules for Russian Cryptography
    id-external-PKIX1Explicit93 OBJECT IDENTIFIER ::=
        { iso(1) identified-organization(3)
          dod(6) internet(1) security(5) mechanisms(5) pkix(7)
          id-mod(0) id-pkix1-explicit-93(3)
        }
  -- Useful types
    ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER
    AlgorithmIdentifier { ALGORITHM-IDENTIFIER:InfoObjectSet } ::=
        SEQUENCE {
            algorithm
          ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
            parameters
          ALGORITHM-IDENTIFIER.&Type({InfoObjectSet} {@algorithm})
               OPTIONAL
        }
END -- Cryptographic-Gost-Useful-Definitions

5.2  GostR3411-94-DigestSyntax

-- Copyright(C) CRYPTO-PRO Company
GostR3411-94-DigestSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3411-94-DigestSyntax(1) 1 }
DEFINITIONS ::=
BEGIN
-- EXPORTS All --
-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms, id-CryptoPro-hashes,
        gost28147-89-EncryptionSyntax,



Leontiev, Shefanovski         Informational                    [Page 17]


Internet-Draft         GOST Public Keys for X.509              June 2003


        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 }
        Gost28147-89-Data, Gost28147-89-UZ
        FROM Gost28147-89-EncryptionSyntax
             gost28147-89-EncryptionSyntax
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST R 34.11-94 OID
    id-GostR3411-94 OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms gostR3411-94(9) }
  -- GOST R 34.11-94 Cryptographic Parameters Set OIDs
    id-GostR3411-94-TestParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-hashes test(0) }
    id-GostR3411-94-CryptoProParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-hashes cryptopro(1) }
  -- GOST R 34.11-94 Data Types
    GostR3411-94-Data ::= Gost28147-89-Data
    GostR3411-94-Digest ::= OCTET STRING (SIZE (32))
  -- GOST R 34.11-94 Digest Parameters & Algorithms
    GostR3411-94-DigestParameters ::=
        OBJECT IDENTIFIER (
          id-GostR3411-94-TestParamSet |     -- Only for tests use
          id-GostR3411-94-CryptoProParamSet
        )
    GostR3411-94-DigestAlgorithms ALGORITHM-IDENTIFIER ::= {
        { NULL IDENTIFIED BY id-GostR3411-94 } |
          -- Assume id-GostR3411-94-CryptoProParamSet
        { GostR3411-94-DigestParameters
          IDENTIFIED BY id-GostR3411-94 }
    }
END -- GostR3411-94-DigestSyntax

5.3  GostR3411-94-ParamSetSyntax

-- Copyright(C) CRYPTO-PRO Company
GostR3411-94-ParamSetSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3411-94-ParamSetSyntax(7) 1 }
DEFINITIONS ::=
BEGIN
-- EXPORTS All --
-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian



Leontiev, Shefanovski         Informational                    [Page 18]


Internet-Draft         GOST Public Keys for X.509              June 2003


-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms, id-CryptoPro-hashes,
        gost28147-89-EncryptionSyntax,
        gostR3411-94-DigestSyntax,
        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 }
        Gost28147-89-UZ
        FROM Gost28147-89-EncryptionSyntax
             gost28147-89-EncryptionSyntax
        id-GostR3411-94-TestParamSet,
        id-GostR3411-94-CryptoProParamSet,
        GostR3411-94-Digest
        FROM GostR3411-94-DigestSyntax gostR3411-94-DigestSyntax
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST R 34.11-94 Cryptographic Parameters Set:
  -- algorithm & parameters
  -- OID for Parameters Set imported from GostR3411-94-DigestSyntax
    GostR3411-94-ParamSetParameters ::=
        SEQUENCE {
            hUZ Gost28147-89-UZ,    -- S-Box for digest
            h0  GostR3411-94-Digest -- start digest value
        }
    GostR3411-94-ParamSetAlgorithms ALGORITHM-IDENTIFIER ::= {
        { GostR3411-94-ParamSetParameters IDENTIFIED BY
          id-GostR3411-94-TestParamSet
        } |
        { GostR3411-94-ParamSetParameters IDENTIFIED BY
          id-GostR3411-94-CryptoProParamSet
        }
    }
    -- GOST R 34.11-94 Tests parameters set
    -- (GOST R 34.11-94 Annex A. Test vector)
    gostR3411TestParamSetAI AlgorithmIdentifier
     {{ GostR3411-94-ParamSetAlgorithms }} ::=
        {
            algorithm



Leontiev, Shefanovski         Informational                    [Page 19]


Internet-Draft         GOST Public Keys for X.509              June 2003


          id-GostR3411-94-TestParamSet,
            parameters
          GostR3411-94-ParamSetParameters:{
              hUZ
                 -- pi1 pi2 pi3 pi4 pi5 pi6 pi7 pi8
                 -- 4   E   5   7   6   4   D   1
                 -- A   B   8   D   C   B   B   F
                 -- 9   4   1   A   7   A   4   D
                 -- 2   C   D   1   1   0   1   0
                 -- D   6   A   0   5   7   3   5
                 -- 8   D   3   8   F   2   F   7
                 -- 0   F   4   9   D   1   5   A
                 -- E   A   2   F   8   D   9   4
                 -- 6   2   E   E   4   3   0   9
                 -- B   3   F   4   A   6   A   2
                 -- 1   8   C   6   9   8   E   3
                 -- C   1   7   C   E   5   7   E
                 -- 7   0   6   B   0   9   6   6
                 -- F   7   0   2   3   C   8   B
                 -- 5   5   9   5   B   F   2   8
                 -- 3   9   B   3   2   E   C   C
                   '4E5764D1AB8DCBBF941A7A4D2CD11010D6A057358D38F2F7
0F49D15AEA2F8D9462EE4309B3F4A6A218C698E3C17CE57E706B0966F7023C8B559
5BF2839B32ECC'H,
              h0   '000000000000000000000000000000000000000000000000
0000000000000000'H
          }
        }
    -- CryptoPro parameters
    gostR3411CryptoProParamSetAI AlgorithmIdentifier
    {{ GostR3411-94-ParamSetAlgorithms }} ::=
        {
            algorithm
          id-GostR3411-94-CryptoProParamSet,
            parameters
          GostR3411-94-ParamSetParameters:{
              hUZ
                 -- pi1 pi2 pi3 pi4 pi5 pi6 pi7 pi8
                 -- A   5   7   4   7   7   D   1
                 -- 4   F   F   A   6   6   E   3
                 -- 5   4   C   7   4   2   4   A
                 -- 6   0   E   C   B   4   1   9
                 -- 8   2   9   0   9   D   7   5
                 -- 1   D   4   F   C   9   0   B
                 -- 3   B   1   2   2   F   5   4
                 -- 7   9   0   8   A   0   A   F
                 -- D   1   3   E   1   A   3   8
                 -- C   7   B   1   8   1   C   6



Leontiev, Shefanovski         Informational                    [Page 20]


Internet-Draft         GOST Public Keys for X.509              June 2003


                 -- E   6   5   6   0   5   8   7
                 -- 0   3   2   5   E   B   F   E
                 -- 9   C   6   D   F   8   6   D
                 -- 2   E   A   B   D   E   2   0
                 -- B   A   8   9   3   C   9   2
                 -- F   8   D   3   5   3   B   C
                'A57477D14FFA66E354C7424A60ECB41982909D751D4FC90B3B122F5
47908A0AFD13E1A38C7B181C6E65605870325EBFE9C6DF86D2EABDE20BA893C92F8
D353BC'H,
              h0   '000000000000000000000000000000000000000000000000
0000000000000000'H
          }
        }
END -- GostR3411-94-ParamSetSyntax

5.4  GostR3410-94-PKISyntax

-- Copyright(C) CRYPTO-PRO Company
GostR3410-94-PKISyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3410-94-PKISyntax(2) 1 }
DEFINITIONS ::=
BEGIN
-- EXPORTS All --
-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms,
        id-CryptoPro-signs, id-CryptoPro-exchanges,
        gost28147-89-EncryptionSyntax,
        gostR3411-94-DigestSyntax,
        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 }
        id-Gost28147-89-TestParamSet,
        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,



Leontiev, Shefanovski         Informational                    [Page 21]


Internet-Draft         GOST Public Keys for X.509              June 2003


        id-Gost28147-89-CryptoPro-Simple-B-ParamSet,
        id-Gost28147-89-CryptoPro-Simple-C-ParamSet,
        id-Gost28147-89-CryptoPro-Simple-D-ParamSet
        FROM Gost28147-89-EncryptionSyntax
             gost28147-89-EncryptionSyntax
        id-GostR3411-94-TestParamSet,
        id-GostR3411-94-CryptoProParamSet
        FROM GostR3411-94-DigestSyntax gostR3411-94-DigestSyntax
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST R 34.10-94 OIDs
    id-GostR3410-94 OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms gostR3410-94(20) }
    id-GostR3411-94-with-GostR3410-94 OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms
          gostR3411-94-with-gostR3410-94(4) }
  -- GOST R 34.10-94 Public Key Cryptographic Parameters Set OIDs
    id-GostR3410-94-TestParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-signs test(0) }
    id-GostR3410-94-CryptoPro-A-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-signs cryptopro-A(2) }
    id-GostR3410-94-CryptoPro-B-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-signs cryptopro-B(3) }
    id-GostR3410-94-CryptoPro-C-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-signs cryptopro-C(4) }
    id-GostR3410-94-CryptoPro-D-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-signs cryptopro-D(5) }
    id-GostR3410-94-CryptoPro-XchA-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-exchanges cryptopro-XchA(1) }
    id-GostR3410-94-CryptoPro-XchB-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-exchanges cryptopro-XchB(2) }
    id-GostR3410-94-CryptoPro-XchC-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-exchanges cryptopro-XchC(3) }
  -- GOST R 34.10-94 Data Types
    GostR3410-94-CertificateSignature ::=
        BIT STRING ( SIZE(256..512) )
    GostR3410-94-PublicKeyOctetString ::=
        OCTET STRING ( SIZE(
               64 | -- Only for tests use
               128
               ) )
    GostR3410-94-PublicKey ::=
        BIT STRING ( SIZE(16..1048) )
               -- Container for GostR3410-94-PublicKeyOctetString
    GostR3410-94-PublicKeyParameters ::=
            SEQUENCE {



Leontiev, Shefanovski         Informational                    [Page 22]


Internet-Draft         GOST Public Keys for X.509              June 2003


            publicKeyParamSet
          OBJECT IDENTIFIER (
              id-GostR3410-94-TestParamSet | -- Only for tests use
              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
          ),
            digestParamSet
          OBJECT IDENTIFIER (
              id-GostR3411-94-TestParamSet | -- Only for tests use
              id-GostR3411-94-CryptoProParamSet
          ),
            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
          ) OPTIONAL
        }
    GostR3410-94-PublicKeyAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { GostR3410-94-PublicKeyParameters IDENTIFIED BY
               id-GostR3410-94 }
    }
    GostR3410-94-CertificateSignatureAlgorithms
        ALGORITHM-IDENTIFIER ::= {
          { NULL IDENTIFIED BY
               id-GostR3411-94-with-GostR3410-94 } |
          { GostR3410-94-PublicKeyParameters IDENTIFIED BY
               id-GostR3411-94-with-GostR3410-94 }
        }
END -- GostR3410-94-PKISyntax

5.5  GostR3410-94-ParamSetSyntax

-- Copyright(C) CRYPTO-PRO Company
GostR3410-94-ParamSetSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3410-94-ParamSetSyntax(8) 1 }



Leontiev, Shefanovski         Informational                    [Page 23]


Internet-Draft         GOST Public Keys for X.509              June 2003


DEFINITIONS ::=
BEGIN
-- EXPORTS All --
-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms,
        id-CryptoPro-signs, id-CryptoPro-exchanges,
        gostR3410-94-PKISyntax,
        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 }
        id-GostR3410-94,
        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
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST R 34.10-94 Public Key Cryptographic Parameters Set:
  -- algorithm & parameters
  -- OID for Parameters Set imported from GostR3410-94-PKISyntax
    GostR3410-94-ParamSetParameters ::=
        SEQUENCE {
            t    INTEGER (512 | 1024),  -- 512 - only for tests use
            p    INTEGER (
               167597599124282463744675312477573076593492072757404917221
5445180465220503759193372100234287270862928461253982273310756356719
235351493321243304206125760513
               ..
               134078079299425970995740249982058461274793658205923933777
2356144372176403007354697680187429816690342769003185818648605085375
3882811946569946433649006084095



Leontiev, Shefanovski         Informational                    [Page 24]


Internet-Draft         GOST Public Keys for X.509              June 2003


               |
               112355820928894744233081574424314045851123561183894160795
8938007235829223784381019579427983265047100132000711749196208485367
4360550901038905802964414967132773610493339054092829768888725077880
8824658176845053128605523844176464039300921195694088017023227094069
17786643639996702871154982269052209770601514008577
               ..
               179769313486231590772930519078902473361797697894230657273
4300811577326758055009631327084773224075360211201138798713933576587
8976881441662249284743063947412437776789342486548527630221960124609
4119453082952085005768838150682342462881473913110540827237163350510
684586298239947245938479716304835356329624224137215
               ),   -- 2^509 < p < 2^512 or 2^1020 < p < 2^1024
            q       INTEGER (
               289480223093290488558927462521719769633174961664101410098
64396001978282409985
               ..
               115792089237316195423570985008687907853269984665640564039
457584007913129639935
               ),   -- 2^254 < q < 2^256
            a       INTEGER (
               2
               ..
               179769313486231590772930519078902473361797697894230657273
4300811577326758055009631327084773224075360211201138798713933576587
8976881441662249284743063947412437776789342486548527630221960124609
4119453082952085005768838150682342462881473913110540827237163350510
684586298239947245938479716304835356329624224137214
               ),   -- 1 < a < p-1 < 2^1024-1
            validationAlgorithm
          AlgorithmIdentifier {{
                    GostR3410-94-ValidationAlgorithms
               }} OPTIONAL
        }
    GostR3410-94-ParamSetAlgorithm ALGORITHM-IDENTIFIER ::= {
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-TestParamSet } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-A-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-B-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-C-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-D-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-XchA-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY



Leontiev, Shefanovski         Informational                    [Page 25]


Internet-Draft         GOST Public Keys for X.509              June 2003


               id-GostR3410-94-CryptoPro-XchB-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-XchC-ParamSet  }
    }
  -- GOST R 34.10-94 validation/constructor
    id-GostR3410-94-a         OBJECT IDENTIFIER ::=
        { id-GostR3410-94 a(1) }
    id-GostR3410-94-aBis OBJECT IDENTIFIER ::=
        { id-GostR3410-94 aBis(2) }
    id-GostR3410-94-b         OBJECT IDENTIFIER ::=
        { id-GostR3410-94 b(3) }
    id-GostR3410-94-bBis OBJECT IDENTIFIER ::=
        { id-GostR3410-94 bBis(4) }
    GostR3410-94-ValidationParameters ::=
        SEQUENCE {
            t    INTEGER (512 | 1024),  -- 512 - only for tests use
            x0   INTEGER (0 .. 65535),
            c    INTEGER (0 .. 65535),
            d    INTEGER (
               2
               ..
               179769313486231590772930519078902473361797697894230657273
4300811577326758055009631327084773224075360211201138798713933576587
8976881441662249284743063947412437776789342486548527630221960124609
4119453082952085005768838150682342462881473913110540827237163350510
684586298239947245938479716304835356329624224137214
               )    -- 1 < d < p-1 < 2^1024-1
               OPTIONAL
        }
    GostR3410-94-ValidationBisParameters ::=
        SEQUENCE {
            t    INTEGER (512 | 1024),  -- 512 - only for tests use
            x0   INTEGER (0 .. 4294967295),
            c    INTEGER (0 .. 4294967295),
            d    INTEGER (
               2
               ..
               179769313486231590772930519078902473361797697894230657273
4300811577326758055009631327084773224075360211201138798713933576587
8976881441662249284743063947412437776789342486548527630221960124609
4119453082952085005768838150682342462881473913110540827237163350510
684586298239947245938479716304835356329624224137214
               )    -- 1 < d < p-1 < 2^1024-1
               OPTIONAL
        }
    GostR3410-94-ValidationAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { GostR3410-94-ValidationParameters IDENTIFIED BY
               id-GostR3410-94-a } |



Leontiev, Shefanovski         Informational                    [Page 26]


Internet-Draft         GOST Public Keys for X.509              June 2003


        { GostR3410-94-ValidationBisParameters IDENTIFIED BY
               id-GostR3410-94-aBis } |
        { GostR3410-94-ValidationParameters IDENTIFIED BY
               id-GostR3410-94-b } |
        { GostR3410-94-ValidationBisParameters IDENTIFIED BY
               id-GostR3410-94-bBis }
    }
  -- GOST R 34.10-94 Keys Parameters sets
    -- GOST R 34.10-94 Tests parameters set
    -- (GOST R 34.10-94 Annex A. Test vector)
    gostR3410-94-TestParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-TestParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       512,
              p       1249155479661639739200729184536168101998078908
4728846304013646795466302633346425772369277064638881858428879662416
202925770315709968465491470753112581700067,
              q       6900839799123747821852952871175357885746435622
1556536838757636132646301588781,
              a       8305821956779628193852750508811757244889982632
8218435214910357131733714685287987538317442674072307045274610623217
32669034432746173786958142572929772413468,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-a,
                   parameters
                    GostR3410-94-ValidationParameters: {
                        t       512,
                        x0      24265,
                        c       29505,
                        d       2
                       }
                  }
          }
        }
    -- CryptoPro parameters
    gostR3410-94-CryptoPro-A-ParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm



Leontiev, Shefanovski         Informational                    [Page 27]


Internet-Draft         GOST Public Keys for X.509              June 2003


          id-GostR3410-94-CryptoPro-A-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,
              p       1270212482889324174659070427771764435257876535
0891653581281750726570503126098509849742318833348340118092599999512
0988934130659205614996724254121049274349357074920312769561451689224
1105793112488126102296785346384016935200132889950003622606842227508
13532307004517341633685004541062586971416883686778842537820383,
              q       6836319614495570078444416561182725289510217088
8761442055095051287550314083023,
              a       1009979067550553047720818155359252248698410825
7205345787482351587557714799052927277724415285269929879648335669968
2842027972896052747173175480590485607134746852141928680912561502802
2221856475391909026561163678472701450190667942909301854462163997308
72221732889830323194097355403213400972588322876850946740663962,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {
                        t       1024,
                        x0      1376285941,
                        c       3996757427
                       }
               }
          }
        }
    --
    gostR3410-94-CryptoPro-B-ParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-CryptoPro-B-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,
              p       1394548711991158256014096551076907131070417070
5992803179775800145437576535772298409412436852228823983303911468164
8076688236921220737322672160740747771700911134550432053804647694904
6861201130878162407401848004770471573366629262494235712488239685422
21753660143391485680840520336859458494803187341288580489525163,
              q       7988514166341097689762711893575632374730795191
6507639758300472692338873533959,
              a       4294182614861580414387344773795550239267234596
8607143066798112994089471231420027060385216699563848719957657284814



Leontiev, Shefanovski         Informational                    [Page 28]


Internet-Draft         GOST Public Keys for X.509              June 2003


8989097707594626134376694563648827303708389347910808359326479767786
0191534347440096103423131667257868692048219493287863336020338479709
2684342247621055760235016132614780652761028509445403338652341,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {
                        t       1024,
                        x0      1536654555,
                        c       1855361757,
                        d
   14408629386140014567655490293928205654785780
2241461782996702017713059974755104394739915140611528479102443906273
5788342744854120601660303926203867703556828005895720381811489539897
6594425537561271800850306
                       }
                  }
          }
        }
    --
    gostR3410-94-CryptoPro-C-ParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-CryptoPro-C-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,
              p       1106246792335119630405189524170170402485862954
8198313837741963962985843959489706089561702242106285255603278638246
7166554392976544029218447478930795186699928278807921929927011428546
5514338758063771104435342935540667126530349962770993207157743542287
62128367184370370914135017194504580505029177050363451780493801,
              q       1134688611998193505648682333788751980432679477
76488510997961231672532899549103,
              a       8165527179708810160178931914153003482262544051
3533581624682494676818766212834782128842865458440139551426222087723
4850237228680222750095022248278662017444940216977164820083536398202
2980248926204808986993355080643323135297253322088194568951085155178
1002210034593705882910730711865530059621499368407371287108323,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {



Leontiev, Shefanovski         Informational                    [Page 29]


Internet-Draft         GOST Public Keys for X.509              June 2003


                        t       1024,
                        x0      113275885,
                        c       3037364845,
                        d       9175906676429839327
                       }
                  }
          }
        }
    --
    gostR3410-94-CryptoPro-D-ParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-CryptoPro-D-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,
              p       9054576496219299659042909587746253156113056083
9073897669714048125244222625125560544746208559960915707867135849550
2367419155841859906278010664658095100957847139898194138208715964648
9144930534079207370788905204827306230388377677101736648382398574828
7878912864712014604743266126978496936655180738644364978932149,
              q       1089884357963535069123745914989721926201904875
57619582334771735390599299211593,
              a       7569766110217073017821287578016106280855283803
1095711588295742814192085325890416600170178598582163414003714687551
4127944005628789352666307543926770145985821033659831191739244732511
2254647122523868033159027077276687153434760863504720252982827271461
6901250506168582383843663310897774635410130339267237432548337,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {
                        t       1024,
                        x0      333089693,
                        c       2699681355,
                        d
   69158877639013014811917446652402788947864438
22142755842460366243252
                       }
                  }
          }
        }
    --
    gostR3410-94-CryptoPro-XchA-ParamSetAI



Leontiev, Shefanovski         Informational                    [Page 30]


Internet-Draft         GOST Public Keys for X.509              June 2003


        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-CryptoPro-XchA-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,
              p       1420117415975634811963682860223180897432761383
9524373876287257344192745939351271897363116607846760036084894662356
7625795282774719212241929071046134208380636394084512691828894000571
5246254452957693493567527289568315417754417631393844571917550968471
07846595662547942312293338483924514339614727760681880609734239,
              q       9177152989655460594558814901838275021729685839
3520724172743325725474374979801,
              a       1335318132727206734338595199483190012179423759
6784748689948235959936964252873471246159040332773182141032801252925
3871914788598993103310567744136196364803064721377826656898686468463
2777101508094011826087702016153249904683329312949209127762411378780
30224355746606283971659376426832674269780880061631528163475887,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {
                        t       1024,
                        x0      3495862036,
                        c       1177570399,
                        d
   35478896102409188951396470647720832819623918
6534141058228233456746622201867258017799725121699052644608624377641
60334831107459
                       }
                  }
          }
        }
    --
    gostR3410-94-CryptoPro-XchB-ParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-CryptoPro-XchB-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,



Leontiev, Shefanovski         Informational                    [Page 31]


Internet-Draft         GOST Public Keys for X.509              June 2003


              p       1028946126624994859676552074360530315217970499
9893048882484132448474923022758470167998871003604670704877377286176
1712276940986331539089568784129110109512690503345393869871295783467
2572648683417200196629860561193666752429682367397084815179752036423
59573653368957392061769855284593965042530895046088067160269433,
              q       9109671391802626916582318050603555673628769498
1825930883887968885281641595199,
              a       8890864727828423151699995801875757891031463338
6525791400519736593048131440685857067369829407947744496306656291505
5036082523994437900272386749145996230867832228661977543992816745254
8232986298598753575466286051738837854736167685769017780335804511440
7733371962538423532919394477873664752824509986617878992443177,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {
                        t       1024,
                        x0      2046851076,
                        c       3541716983,
                        d
   57332667610989476056615969728891533566058787
317492748441827236576904274546146
                       }
                  }
          }
        }
    --
    gostR3410-94-CryptoPro-XchC-ParamSetAI
        AlgorithmIdentifier {{
            GostR3410-94-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-94-CryptoPro-XchC-ParamSet,
            parameters
          GostR3410-94-ParamSetParameters:{
              t       1024,
              p       1246996366993477513607147265794064436203408861
3950559892172484557299870737698999651480662364723992859320868822848
7511654383509433276647222625940615560580450040947211826027729977563
5402371690630448079715771649447778447000597419032457722226253269698
37444652835352729304393746106576383349151001715930924115499549,
              q       6787876137336591234380295020065682527118129468
0501479431146754294748422492761,
              a       4430618464297584182473135030809859326863990650
1189417569952700748609973181426950235239623239110557450826919295792
8789387521018677047181623251027516953100431855964837602657827828194



Leontiev, Shefanovski         Informational                    [Page 32]


Internet-Draft         GOST Public Keys for X.509              June 2003


2496055618936965865325513137194483136247773653468410118796740709840
8254969979375560722345106704721086025979309968763193072908334,
              validationAlgorithm {
                   algorithm
                    id-GostR3410-94-bBis,
                   parameters
                    GostR3410-94-ValidationBisParameters: {
                        t       1024,
                        x0      371898640,
                        c       2482514131,
                        d
   39341170171309491894611690922945474002657559
0650016887148241594213466186452691964676993
                       }
                  }
          }
        }
END -- GostR3410-94-ParamSetSyntax

5.6  GostR3410-2001-PKISyntax

-- Copyright(C) CRYPTO-PRO Company
GostR3410-2001-PKISyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3410-2001-PKISyntax(9) 1 }
DEFINITIONS ::=
BEGIN
-- EXPORTS All --
-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms,
        id-CryptoPro-ecc-signs, id-CryptoPro-ecc-exchanges,
        gost28147-89-EncryptionSyntax,
        gostR3411-94-DigestSyntax,
        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 }
        id-Gost28147-89-TestParamSet,
        id-Gost28147-89-CryptoPro-A-ParamSet,



Leontiev, Shefanovski         Informational                    [Page 33]


Internet-Draft         GOST Public Keys for X.509              June 2003


        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
        FROM Gost28147-89-EncryptionSyntax
             gost28147-89-EncryptionSyntax
        id-GostR3411-94-TestParamSet,
        id-GostR3411-94-CryptoProParamSet
        FROM GostR3411-94-DigestSyntax gostR3411-94-DigestSyntax
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST R 34.10-2001 OIDs
    id-GostR3410-2001 OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms gostR3410-2001(19) }
    id-GostR3411-94-with-GostR3410-2001 OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms
          gostR3411-94-with-gostR3410-2001(3) }
  -- GOST R 34.10-2001 Public Key Cryptographic Parameters Set OIDs
    id-GostR3410-2001-TestParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-ecc-signs test(0) }
    id-GostR3410-2001-CryptoPro-A-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-ecc-signs cryptopro-A(1) }
    id-GostR3410-2001-CryptoPro-B-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-ecc-signs cryptopro-B(2) }
    id-GostR3410-2001-CryptoPro-C-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-ecc-signs cryptopro-C(3) }
    id-GostR3410-2001-CryptoPro-XchA-ParamSet
        OBJECT IDENTIFIER ::=
          { id-CryptoPro-ecc-exchanges cryptopro-XchA(0) }
    id-GostR3410-2001-CryptoPro-XchB-ParamSet
        OBJECT IDENTIFIER ::=
          { id-CryptoPro-ecc-exchanges cryptopro-XchB(1) }
  -- GOST R 34.10-2001 Data Types
    GostR3410-2001-CertificateSignature ::=
        BIT STRING ( SIZE(256..512) )
    GostR3410-2001-PublicKeyOctetString ::=
        OCTET STRING ( SIZE(64) )
    GostR3410-2001-PublicKey ::=
        BIT STRING ( SIZE(16..524) )
               -- Container for GostR3410-2001-PublicKeyOctetString
    GostR3410-2001-PublicKeyParameters ::=
            SEQUENCE {
            publicKeyParamSet



Leontiev, Shefanovski         Informational                    [Page 34]


Internet-Draft         GOST Public Keys for X.509              June 2003


          OBJECT IDENTIFIER (
              id-GostR3410-2001-TestParamSet |    -- Only for tests use
              id-GostR3410-2001-CryptoPro-A-ParamSet |
              id-GostR3410-2001-CryptoPro-B-ParamSet |
              id-GostR3410-2001-CryptoPro-C-ParamSet |
              id-GostR3410-2001-CryptoPro-XchA-ParamSet |
              id-GostR3410-2001-CryptoPro-XchB-ParamSet
          ),
            digestParamSet
          OBJECT IDENTIFIER (
              id-GostR3411-94-TestParamSet | -- Only for tests use
              id-GostR3411-94-CryptoProParamSet
          ),
            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
          ) OPTIONAL
        }
    GostR3410-2001-PublicKeyAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { GostR3410-2001-PublicKeyParameters IDENTIFIED BY
               id-GostR3410-2001 }
    }
    GostR3410-2001-CertificateSignatureAlgorithms
        ALGORITHM-IDENTIFIER ::= {
          { NULL IDENTIFIED BY
               id-GostR3411-94-with-GostR3410-2001 } |
          { GostR3410-2001-PublicKeyParameters IDENTIFIED BY
               id-GostR3411-94-with-GostR3410-2001 }
      }
END -- GostR3410-2001-PKISyntax

5.7  GostR3410-2001-ParamSetSyntax

-- Copyright(C) CRYPTO-PRO Company
GostR3410-2001-ParamSetSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3410-2001-ParamSetSyntax(12) 1 }
DEFINITIONS ::=
BEGIN
-- EXPORTS All --



Leontiev, Shefanovski         Informational                    [Page 35]


Internet-Draft         GOST Public Keys for X.509              June 2003


-- The types and values defined in this module are exported for
-- use in the other ASN.1 modules contained within the Russian
-- Cryptography "GOST" & "GOST R" Specifications, and for the use
-- of other applications which will use them to access Russian
-- Cryptography services. Other applications may use them for
-- their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms,
        id-CryptoPro-ecc-signs, id-CryptoPro-ecc-exchanges,
        gostR3410-2001-PKISyntax,
        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 }
        id-GostR3410-2001,
        id-GostR3410-2001-TestParamSet,
        id-GostR3410-2001-CryptoPro-A-ParamSet,
        id-GostR3410-2001-CryptoPro-B-ParamSet,
        id-GostR3410-2001-CryptoPro-C-ParamSet,
        id-GostR3410-2001-CryptoPro-XchA-ParamSet,
        id-GostR3410-2001-CryptoPro-XchB-ParamSet
        FROM GostR3410-2001-PKISyntax gostR3410-2001-PKISyntax
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
    GostR3410-2001-ParamSetParameters ::=
        SEQUENCE {
            a       INTEGER (
               1
                  ..
               115792089237316195423570985008687907853269984665640564039
457584007913129639935
               ),   -- 0 < a < p < 2^256
            b       INTEGER (
               1
                  ..
               115792089237316195423570985008687907853269984665640564039
457584007913129639935
               ),   -- 0 < b < p < 2^256
            p       INTEGER (
               289480223093290488558927462521719769633174961664101410098
64396001978282409985
               ..
               115792089237316195423570985008687907853269984665640564039



Leontiev, Shefanovski         Informational                    [Page 36]


Internet-Draft         GOST Public Keys for X.509              June 2003


457584007913129639935
               ),   -- 2^254 < p < 2^256
            q       INTEGER (
               289480223093290488558927462521719769633174961664101410098
64396001978282409985
               ..
               115792089237316195423570985008687907853269984665640564039
457584007913129639935
               ),   -- 2^254 < q < 2^256
            x       INTEGER (0
                  ..
               115792089237316195423570985008687907853269984665640564039
457584007913129639935
               ),   -- 0 < x < p < 2^256
            y       INTEGER (0
                  ..
               115792089237316195423570985008687907853269984665640564039
457584007913129639935
               )    -- 0 < y < p < 2^256
        }
  -- GOST R 34.10-2001 Public Key Cryptographic Parameters Set:
  -- algorithm & parameters
  -- OID for Parameters Set imported from GostR3410-2001-PKISyntax
    GostR3410-2001-ParamSetAlgorithm ALGORITHM-IDENTIFIER ::= {
        { GostR3410-2001-ParamSetParameters IDENTIFIED BY
               id-GostR3410-2001-TestParamSet } |
        { GostR3410-2001-ParamSetParameters IDENTIFIED BY
               id-GostR3410-2001-CryptoPro-A-ParamSet  } |
        { GostR3410-2001-ParamSetParameters IDENTIFIED BY
               id-GostR3410-2001-CryptoPro-B-ParamSet  } |
        { GostR3410-2001-ParamSetParameters IDENTIFIED BY
               id-GostR3410-2001-CryptoPro-C-ParamSet  } |
        { GostR3410-2001-ParamSetParameters IDENTIFIED BY
               id-GostR3410-2001-CryptoPro-XchA-ParamSet  } |
        { GostR3410-2001-ParamSetParameters IDENTIFIED BY
               id-GostR3410-2001-CryptoPro-XchB-ParamSet  }
    }
    gostR3410-2001-TestParamSet
        AlgorithmIdentifier {{
            GostR3410-2001-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-2001-TestParamSet,
            parameters
          GostR3410-2001-ParamSetParameters:{
              a   7,
              b   43308876546767276905765904595650931995942111794451



Leontiev, Shefanovski         Informational                    [Page 37]


Internet-Draft         GOST Public Keys for X.509              June 2003


039583252968842033849580414,
                        -- 5FBFF498AA938CE739B8E022FBAFEF40563F6E6A
3472FC2A514C0CE9DAE23B7E
              p   57896044618658097711785492504343953926634992332820
282019728792003956564821041,
                  -- 80000000000000000000000000000000000000000000000
00000000000000431
              q   57896044618658097711785492504343953927082934583725
450622380973592137631069619,
                        -- 8000000000000000000000000000000150FE8A18
92976154C59CFC193ACCF5B3
              x   2,
              y   40189740565903750333544942293705977563573938990554
5080690979365213431566280
                  -- 8E2A8A0E65147D4BD6316030E16D19C85C97F0A9CA26712
2B96ABBCEA7E8FC8
          }
        }
    gostR3410-2001-CryptoPro-A-ParamSet
        AlgorithmIdentifier {{
            GostR3410-2001-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-2001-CryptoPro-A-ParamSet,
            parameters
          GostR3410-2001-ParamSetParameters:{
              a   11579208923731619542357098500868790785326998466564
0564039457584007913129639316,
               -- -3 == p - 3
              b   166,
                        -- a6
              p   11579208923731619542357098500868790785326998466564
0564039457584007913129639319,
                  -- fffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffd97
              q   11579208923731619542357098500868790785307376290849
9243225378155805079068850323,
                        -- ffffffffffffffffffffffffffffffff6c611070
995ad10045841b09b761b893
              x   1,
              y   64033881142927202683649881450433473985931760268884
941288852745803908878638612
                  -- 8d91e471e0989cda27df505a453f2b7635294f2ddf23e3b
122acc99c9e9f1e14
          }
        }
    gostR3410-2001-CryptoPro-B-ParamSet



Leontiev, Shefanovski         Informational                    [Page 38]


Internet-Draft         GOST Public Keys for X.509              June 2003


        AlgorithmIdentifier {{
            GostR3410-2001-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-2001-CryptoPro-B-ParamSet,
            parameters
          GostR3410-2001-ParamSetParameters:{
              a   57896044618658097711785492504343953926634992332820
282019728792003956564823190,
               -- -3 == p - 3
              b   28091019353058090096996979000309560759124368558014
865957655842872397301267595,
                  -- 3e1af419a269a5f866a7d3c25c3df80ae979259373ff2b1
82f49d4ce7e1bbc8b
              p   57896044618658097711785492504343953926634992332820
282019728792003956564823193,
                  -- 80000000000000000000000000000000000000000000000
00000000000000c99
              q   57896044618658097711785492504343953927102133160255
826820068844496087732066703,
                        -- 800000000000000000000000000000015f700cff
f1a624e5e497161bcc8a198f
              x   1,
              y   28792665814854611296992347458380284135028636778229
113005756334730996303888124
                  -- 3fa8124359f96680b83d1c3eb2c070e5c545c9858d03ecf
b744bf8d717717efc
          }
        }
    gostR3410-2001-CryptoPro-C-ParamSet
        AlgorithmIdentifier {{
            GostR3410-2001-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-2001-CryptoPro-C-ParamSet,
            parameters
          GostR3410-2001-ParamSetParameters:{
              a   70390085352083305199547718019018437841079516630045
180471284346843705633502616,
               -- -3 == p - 3
              b   32858,
                        -- 805a
              p   70390085352083305199547718019018437841079516630045
180471284346843705633502619,
                  -- 9b9f605f5a858107ab1ec85e6b41c8aacf846e86789051d
37998f7b9022d759b



Leontiev, Shefanovski         Informational                    [Page 39]


Internet-Draft         GOST Public Keys for X.509              June 2003


              q   70390085352083305199547718019018437840920882647164
081035322601458352298396601,
                        -- 9b9f605f5a858107ab1ec85e6b41c8aa582ca351
1eddfb74f02f3a6598980bb9
              x   0,
              y   29818893917731240733471273240314769927240550812383
695689146495261604565990247
                  -- 41ece55743711a8c3cbf3783cd08c0ee4d4dc440d4641a8
f366e550dfdb3bb67
          }
        }
    gostR3410-2001-CryptoPro-ExA-ParamSet
        AlgorithmIdentifier {{
            GostR3410-2001-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-2001-CryptoPro-XchA-ParamSet,
            parameters
          GostR3410-2001-ParamSetParameters:{
              a   11579208923731619542357098500868790785326998466564
0564039457584007913129639316,
               -- -3 == p - 3
              b   166,
                        -- a6
              p   11579208923731619542357098500868790785326998466564
0564039457584007913129639319,
                  -- fffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffd97
              q   11579208923731619542357098500868790785307376290849
9243225378155805079068850323,
                        -- ffffffffffffffffffffffffffffffff6c611070
995ad10045841b09b761b893
              x   1,
              y   64033881142927202683649881450433473985931760268884
941288852745803908878638612
                  -- 8d91e471e0989cda27df505a453f2b7635294f2ddf23e3b
122acc99c9e9f1e14
          }
        }
    gostR3410-2001-CryptoPro-ExB-ParamSet
        AlgorithmIdentifier {{
            GostR3410-2001-ParamSetAlgorithm
        }} ::=
        {
            algorithm
          id-GostR3410-2001-CryptoPro-XchB-ParamSet,
            parameters



Leontiev, Shefanovski         Informational                    [Page 40]


Internet-Draft         GOST Public Keys for X.509              June 2003


          GostR3410-2001-ParamSetParameters:{
              a   70390085352083305199547718019018437841079516630045
180471284346843705633502616,
               -- -3 == p - 3
              b   32858,
                  -- 805a
              p   70390085352083305199547718019018437841079516630045
180471284346843705633502619,
                  -- 9b9f605f5a858107ab1ec85e6b41c8aacf846e86789051d
37998f7b9022d759b
              q   70390085352083305199547718019018437840920882647164
081035322601458352298396601,
                        -- 9b9f605f5a858107ab1ec85e6b41c8aa582ca351
1eddfb74f02f3a6598980bb9
              x   0,
              y   29818893917731240733471273240314769927240550812383
695689146495261604565990247
                  -- 41ece55743711a8c3cbf3783cd08c0ee4d4dc440d4641a8
f366e550dfdb3bb67
          }
        }
END -- GostR3410-2001-ParamSetSyntax

6  References


   [GOST28147]     "Cryptographic Protection for Data Processing Sys-
                   tem", GOST 28147-89, Gosudarstvennyi Standard of
                   USSR, Government Committee of the USSR for Standards,
                   1989. (In Russian);


   [GOSTR341094]   "Information technology. Cryptographic Data Security.
                   Produce and check procedures of Electronic Digital
                   Signatures based on Asymmetric Cryptographic Algo-
                   rithm.", GOST R 34.10-94, Gosudarstvennyi Standard of
                   Russian Federation, Government Committee of the Rus-
                   sia for Standards, 1994. (In Russian);


   [GOSTR34102001] "Information technology. Cryptographic data security.
                   Signature and verification processes of [electronic]
                   digital signature.", GOST R 34.10-2001, Gosudarstven-
                   nyi Standard of Russian Federation, Government Com-
                   mittee of the Russia for Standards, 2001. (In Rus-
                   sian);





Leontiev, Shefanovski         Informational                    [Page 41]


Internet-Draft         GOST Public Keys for X.509              June 2003


   [GOSTR341194]   "Information technology. Cryptographic Data Security.
                   Hashing function.", GOST R 34.10-94, Gosudarstvennyi
                   Standard of Russian Federation, Government Committee
                   of the Russia for Standards, 1994. (In Russian);


   [CPALGS]        Cryptographic Algorithm "CryptoPro CSP"


   [Schneier95]    B.  Schneier, Applied cryptography, second edition,
                   John Wiley & Sons, Inc., 1995;


   [RFC 3280]      Housley, R., Polk, W., Ford, W.  and D.  Solo,
                   "Internet X.509 Public Key Infrastructure Certificate
                   and Certificate Revocation List (CRL) Profile", RFC
                   3280, April 2002.


   [RFC 3279]      Algorithms and Identifiers for the Internet X.509
                   Public Key Infrastructure Certificate and Certificate
                   Revocation List (CRL) Profile.  L.  Bassham, W.
                   Polk, R.  Housley.  April 2002.


   [RFC 2219]      Bradner, S., "Key Words for Use in RFCs to Indi-
                   cateRequirement Levels", BCP 14, RFC 2119, March
                   1997.


   [TLS]           The TLS Protocol Version 1.0.  T.  Dierks, C.  Allen.
                   January 1999, RFC 2246.


   [X.660]         ITU-T Recommendation X.660 Information Technology -
                   ASN.1 encoding rules: Specification of Basic Encoding
                   Rules (BER), Canonical Encoding Rules (CER) and Dis-
                   tinguished Encoding Rules (DER), 1997.


Acknowledgments

   This document was created in accordance with "Russian Cryptographic
   Software Compatibility Agreement", signed by FGUE STC "Atlas",
   CRYPTO-PRO, Factor-TC, MD PREI, Infotecs GmbH, SPRCIS (SPbRCZI),
   Cryptocom, R-Alpha.  The goal of this agreement is to achieve mutual
   compatibility of the products and solutions.




Leontiev, Shefanovski         Informational                    [Page 42]


Internet-Draft         GOST Public Keys for X.509              June 2003


   The authors wish to thank:

   Microsoft Corporation Russia for provided information about company
   products and solutions, and also for technical consulting in PKI.

   RSA Security Russia and Demos Co Ltd for active colaboration and
   critical help in creation of this document.

   RSA Security Inc for compatibility testing of the proposed data
   formats while incorporating them into RSA Keon product.

   Baltimore Technology plc for compatibility testing of the proposed
   data formats while incorporating them into UniCERT product.

   Russ Hously (Vigil Security, LLC, housley@vigilsec.com) and Vasilij
   Sakharov (DEMOS Co Ltd, svp@dol.ru) for initiative creating this
   document.

   This document is based on a contribution of CRYPTO-PRO company.  Any
   substantial use of the text from this document must acknowledge
   CRYPTO-PRO.  CRYPTO-PRO requests that all material mentioning or
   referencing this document identify this as "CRYPTO-PRO CPPK".

   Author's Addresses

   Serguei Leontiev
   CRYPTO-PRO
   38, Obraztsova,
   Moscow, 127018, Russian Federation
   EMail: lse@CryptoPro.ru

   Dennis Shefanovski
   DEMOS Co Ltd
   6/1, Ovchinnikovskaja naberezhnaya,
   Moscow, 113035, Russian Federation
   EMail: sdb@dol.ru

   Alexandr Afanasiev
   Factor-TC
   office 711, 14, Presnenskij val,
   Moscow, 123557, Russian Federation
   EMail: aaaf@factor-ts.ru

   Nikolaj Nikishin
   Infotecs GmbH
   p/b 35, 80-5, Leningradskij prospekt,
   Moscow, 125315, Russian Federation
   EMail: nikishin@infotecs.ru



Leontiev, Shefanovski         Informational                    [Page 43]


Internet-Draft         GOST Public Keys for X.509              June 2003


   Boleslav Izotov
   FGUE STC "Atlas"
   38, Obraztsova,
   Moscow, 127018, Russian Federation
   EMail: izotov@stcnet.ru

   Elena Minaeva
   MD PREI
   build 3, 6A, Vtoroj Troitskij per.,
   Moscow, Russian Federation
   EMail: evminaeva@mo.msk.ru

   Serguei Murugov
   R-Alpha
   4/1, Raspletina,
   Moscow, 123060, Russian Federation
   EMail: msm@office.ru

   Igori Ustinov
   Cryptocom
   office 239, 51, Leninskij prospekt,
   Moscow, 119991, Russian Federation
   EMail: igus@cryptocom.ru

   Anatolij Erkin
   SPRCIS (SPbRCZI)
   1, Obrucheva,
   St.Petersburg, 195220, Russian Federation
   EMail: erkin@nevsky.net


Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.



Leontiev, Shefanovski         Informational                    [Page 44]


Internet-Draft         GOST Public Keys for X.509              June 2003


   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.










































Leontiev, Shefanovski         Informational                    [Page 45]