Internet Draft                               Vladimir Popov, CRYPTO-PRO
                                              Igor Kurepkin, CRYPTO-PRO
Expires August 15, 2004                    Serguei Leontiev, CRYPTO-PRO
Intended Category: Informational                      February 15, 2004

      Additional cryptographic algorithms for use with GOST 28147-89,
    GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 algorithms.

                   <draft-popov-cryptopro-cpalgs-00.txt>

Status of this Memo

   This document is an Internet-Draft and is subject to 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 made obsolete 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/1id-abstracts.html

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


Abstract

   This document describes cryprographic algorithms and parameters,
   supplementary to GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001
   and GOST R 34.11-94, for use in internet applications.

Table of Contents
   1      Introduction . . . . . . . . . . . . . . . . . . . . . .  2
   1.2    Terminology. . . . . . . . . . . . . . . . . . . . . . .  3
   2      Cipher algorithms. . . . . . . . . . . . . . . . . . . .  3
   2.1    GOST 28147-89 CBC mode . . . . . . . . . . . . . . . . .  3
   2.2    Key meshing algorithms . . . . . . . . . . . . . . . . .  3
   3      HMAC_GOSTR3411 . . . . . . . . . . . . . . . . . . . . .  4
   4      PRF_GOSTR3411. . . . . . . . . . . . . . . . . . . . . .  4
   5      Key establishment algorithms . . . . . . . . . . . . . .  4
   5.1    Creating exchange key using GOST R 34.10-94 keys . . . .  4



Popov,Kurepkin,Leontiev       Informational                     [Page 1]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   5.2    Creating exchange key using GOST R 34.10-2001 keys . . .  4
   5.3    Generating export key from exchange key. . . . . . . . .  4
   5.4    Key export using export key. . . . . . . . . . . . . . .  4
   5.5    Key export using exchange key. . . . . . . . . . . . . .  4
   5.6    Key Diversification. . . . . . . . . . . . . . . . . . .  4
   5.7    VKO GOST R 34.10-94 and VKO GOST R 34.10-2001 algorithms  4
   5.7.1  'Simple export' mode . . . . . . . . . . . . . . . . . .  4
   5.7.2  'CryptoPro' mode . . . . . . . . . . . . . . . . . . . .  4
   6      Algorithm parameters . . . . . . . . . . . . . . . . . .  4
   6.1    Encryption algorithm parameters  . . . . . . . . . . . .  4
   6.2    Digest algorithm parameters. . . . . . . . . . . . . . .  4
   6.3    GOST R 34.10-94 public key algorithm parameters  . . . .  4
   6.4    GOST R 34.10-2001 public key algorithm parameters. . . .  4
   7      Security Considerations. . . . . . . . . . . . . . . . . 11
   8      Appendix ASN.1 Modules . . . . . . . . . . . . . . . . . 27
   9      References . . . . . . . . . . . . . . . . . . . . . . . 27
   10     Acknowledgments. . . . . . . . . . . . . . . . . . . . . 29
   Author's Address. . . . . . . . . . . . . . . . . . . . . . . . 29
   Full Copyright Statement. . . . . . . . . . . . . . . . . . . . 30

1  Introduction

   This document describes cryprographic algorithms, used in supplement
   to GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 and GOST R
   34.11-94, proposed by CRYPTO-PRO Company for "Russian Cryptographic
   Software Compatibility Agreement" community.  GOST 28147-89, GOST R
   34.10-94, GOST R 34.10-2001 and GOST R 34.11-94 are defined in
   corresponding national standards - [GOST28147], [GOSTR341094],
   [GOSTR34102001] and [GOSTR341194]. Their brief technical description
   in english can be found in [Schneier95].

1.2   Terminology

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

   The following functions and operators are also used in this document:


   encryptECB (K, D) - is D, encrypted with key K using GOST 28147-89 in
   "prostaya zamena" (ECB) mode

   decryptECB (K, D) - is D, decrypted with key K using GOST 28147-89 in
   ECB mode

   encryptCFB (I, K, D) - is D, encrypted with key K using GOST 28147-89
   in "gammirovanie s obratnoj svyaziyu" (64-bit CFB) mode, and I as



Popov,Kurepkin,Leontiev       Informational                     [Page 2]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   initialization vector.

   encryptOFB (I, K, D) - is D, encrypted with key K using GOST 28147-89
   in "gammirovanie" (64-bit OFB) mode, and I as initialization vector.

   gostR3411 (D) - is the 256-bit result of GOST R 34.11-94 hash
   function, used with zero intitialization vector, and UZ parameter,
   defined by gostR3411CryptoProParamSetAI (see Appendix,
   GostR3411-94-ParamSetSyntax module).

   gost28147IMIT (I, K, D) - is the 32-bit result of GOST 28147-89 in
   "imitovstavka" (MAC) mode, used with D as plaintext, K as key and I
   as initialization vector.  Note, that standard specifies it's use in
   this mode only with zero initialization vector.


2  Cipher parameters

   [GOST28147] defines only the basic cryptographic operations, which
   can be used to encrypt or decrypt data. This document defines an
   additional cipher mode GOST 28147-89 CBC, and key meshing algorithm,
   which can be used to protect a symmetric key, when it is used to
   process large amounts of data.

   The cipher mode, key meshing algorithm, padding mode and S-box are
   specified by algorithm parameters.

2.1   GOST 28147-89 CBC mode

   Algorithm GOST 28147-89 CBC mode is a block cipher with block
   chaining, based on GOST 28147-89 in ECB mode.

   Before each plaintext block is encrypted, it is combined with the
   cipher text of the previous block by a bitwise exclusive OR
   operation.  This ensures that even if the plaintext contains many
   identical blocks, they will each encrypt to a different cipher text
   block.  The initialization vector is combined with the first
   plaintext block by a bitwise exclusive OR operation before the block
   is encrypted.

   Let x (0 < x < 8) be the number of bytes in the last (possibly,
   incomplete) block of data.  There are three padding modes:
    * Zero padding: 8-x remaining bytes are filled with zero
    * PKCS#5 padding: 8-x remaining bytes are filled with value of 8-x.
      If there's no incomplete block, one extra block filled with value
   8 is added.
    * Random padding: 8-x remaining bytes of the last block are set to
   random.



Popov,Kurepkin,Leontiev       Informational                     [Page 3]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


2.2   Key meshing algorithms

   When there is a need to limit the amount of data, enciphered with the
   same key, several key meshing algorithms can be used.

       id-Gost28147-89-None-KeyMeshing OBJECT IDENTIFIER ::=
           { id-CryptoPro-algorithms keyMeshing(14) none(0) }

   This is a zero key meshing algorithm - key is never changed.

       id-Gost28147-89-CryptoPro-KeyMeshing  OBJECT IDENTIFIER ::=
           { id-CryptoPro-algorithms keyMeshing(14) cryptoPro(1) }

   This algorithm transforms the key and initialization vector every 1KB
   of plaintext data, using the following rule:

   Let K[i] be the previous key, and S[i] be the previous initialization
   vector.

   K[i+1] = decryptECB (K[i], C); S[i+1] = encryptECB (K[i+1],S[i])

   Where C = {0x22720069L, 0x2304C964L, 0x96DB3A8DL, 0xC42AE946L,
              0x94ACFE18L, 0x1207ED00L, 0xC2DC86C0L, 0x2BA94CEFL};

3  HMAC_GOSTR3411

   HMAC_GOSTR3411 (K,text) function is based on hash function GOST R
   34.11-94, as defined in [HMAC], with the following parameter values:
   B = 32, L = 32.

4  PRF_GOSTR3411

   PRF_GOSTR3411 is a pseudorandom function, based on HMAC_GOSTR3411.
   It is calculated as P_hash, defined in section 5 of [TLS].
   PRF_GOSTR3411(K,D) = P_GOSTR3411 (K,D)

5  Key establishment algorithms

   Standards [GOSTR341094] and [GOSTR34102001] do not define any key
   establishment algorithms.

   Section 5.7 specifies algorithms VKO GOST R 34.10-94 and VKO GOST R
   34.10-2001, which can be used to export/import session key using a
   one-time exchange key (symmetric key, shared by sender and
   recipient), based on sender's private key and recipient public key,
   or vice versa.

   Sections 5.1 and 5.2 describe how to create an exchange key from



Popov,Kurepkin,Leontiev       Informational                     [Page 4]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   sender's private key and recipient public key, or vice versa.

   Section 5.3 describes how to create an export key from an exchange
   key or symmetric key.

   Sections 5.4 and 5.5 describe, how a session key can be exported
   (encrypted) using export key, or using exchange key directly.

   Section 5.6 describes, how to create session keys, using secret key
   and diversification data.

5.1  Creating exchange key using GOST R 34.10-94 keys

   This algorithm creates an exchange key using sender's private key and
   recipient public key, or vice versa, using GOST R 34.10-94 public key
   algorithm and GOST R 34.11-94 hash function.

  Exchange key EK is a 256-bit hash of 1024-bit Diffie-Hellman key
  K(x,y);

   EK = gostR3411 (K(x,y))
   K(x,y) = a^(x*y) (mod p), where

   x - sender's private key, a^x - sender's public key
   y - recipient's private key, a^y - recipient's public key

   Keys x and y MUST comply with [GOSTR341094].

   This algorithm MUST NOT be used, when a^x = a (mod p) or a^y = a (mod
   p).

5.2  Creating exchange key using GOST R 34.10-2001 keys

   This algorithm creates an exchange key using sender's private key and
   recipient public key, or vice versa, using GOST R 34.10-2001 public
   key algorithm and GOST R 34.11-94 hash function.

   Exchange key EK is a 256-bit hash of K(x,y,a);

   EK(x,y,a) = gostR3411 (K(x,y,a))
   K(x,y,a) = ((a*x)(mod q)) . (y.P) (512 bit), where
   x - sender's private key (256 bit)
   x.P - sender's public key (512 bit)
   y - recipient's private key (256 bit)
   y.P - recipient's public key (512 bit)
   a - synchrovector (64 bit)
   P - base point on the elliptic curve (two 256-bit coordinates)
   a*x - x multiplied by a as integers



Popov,Kurepkin,Leontiev       Informational                     [Page 5]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   x.P - a multiple point

   Keys x and y MUST comply with [GOSTR34102001].

   This algorithm MUST NOT be used, when x.P = P, y.P = P

5.3  Generating export key from exchange key

   Given a random 64-bit synchrovector A, and an exchange key K,
   produced by algorithms from sections 5.1 and 5.2 (or other shared
   symmetric key K), this algorithm creates an export key K(A), which
   can be used to export (encrypt) session key.

   KA = K[8].  K[0]..K[8] are calculated with following algorithm:

   K[0] = K;
   K[i+1]  = encryptCFB (S[i], K[i], K[i])
   S[i] = ((a[i,0]*k[i,0] + ... + a[i,7]*k[i,7]) mod 2^32)
        | ((~a[i,0]*k[i,0] + ... + ~a[i,7]*k[i,7]) mod 2^32);

   Here a[i,j] and k[i,j] are components of A and K[i] respectively:
   K[i] = k[i,0]|k[i,1]|...|k[i,7] (k[i,j] - 32-bit integer)
   A = a[0]|...|a[7] (a[i] - byte, a[i,0]..a[i,7] - it's bits)


5.4  Key export using export key

   This algorithm exports session key SK using key K and random 64-bit
   synchrovector A. Outputs of this algorithm are 32-bit SK_mac and
   256-bit SK_enc.

   First, export key KA is created using algorithm, specified in 5.3,
   from the key K and vector A.

   Then SK_mac is calculated: SK_mac = gost28147IMIT (A, KA, SK).

   Then SK is encrypted in ECB mode, using key KA:
    SK_enc = encryptECB (KA, SK);

5.5  Key export using exchange key

   This algorithm exports session key SK using exchange key K and random
   64-bit synchrovector A. Outputs of this algorithm are 32-bit SK_mac
   and 256-bit SK_enc.

   First, SK_mac is calculated: SK_mac = gost28147IMIT (A, K, SK).

   Then SK is encrypted in ECB mode, using K for key:



Popov,Kurepkin,Leontiev       Informational                     [Page 6]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    SK_enc = encryptECB (K, SK);

5.6  Key Diversification

   This algorithm creates a session key SK, given secret key K and
   diversification data D of size 4..40 bytes.

   1) 40-byte blob B is created from D by cloning it enough to fill all
   40 bytes. For example, if D is 40-bytes long, B = D; If D is 4-bytes
   long, B = D|D|D|D|D|D|D|D|D|D.

   2) B is split into 8-byte SV and 32-byte SRCKEY (B = SV|SRCKEY).

   3) Algorithm from section 5.3 is used to create KA from key K and
   synchrovector SV, with two differences. Instead of S[i], vector
   (0,0,0,SV[i],ff,ff,ff,ff XOR SV[i]) is used, and during each
   encryption step, only 8 out of 32 GOST 28147-89 steps are done.

   4) SK is calculated:
    SK = encryptCFB (A, KA, SRCKEY).

5.7  VKO GOST R 34.10-94 and VKO GOST R 34.10-2001 algorithms.  VKO GOST
   R 34.10-94 and VKO GOST R 34.10-2001 are key establishment algorithms
   for GOST R 34.10-94 and GOST R 34.10-2001 keys accordingly.

   There are two modes they can be used in.

5.7.1 'Simple export' mode

   Identifier for this mode:

       id-Gost28147-89-None-KeyWrap OBJECT IDENTIFIER ::=
           { id-CryptoPro-algorithms keyWrap(13) none(0) }

   The first step is calculating an exchange key, using algorithms,
   defined in sections 5.1 or 5.2, depending on key type.

   Then, session key can be exported on this exchange key, using
   algorithm from section 5.5

5.7.2 'CryptoPro' mode

   Identifier for this mode:

       id-Gost28147-89-CryptoPro-KeyWrap OBJECT IDENTIFIER ::=
           { id-CryptoPro-algorithms keyWrap(13) cryptoPro(1) }

   The first step is calculating an exchange key, using algorithms,



Popov,Kurepkin,Leontiev       Informational                     [Page 7]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   defined in sections 5.1 or 5.2, depending on key type.

   Then, session key is exported on the export key (computed from this
   exchange key) using algorithm from section 5.4;

6  Algorithm parameters

   Standards [GOST28147], [GOST341194], [GOSTR341094] and
   [GOSTR34102001] do not define specific values for algorithm
   parameters.

   This document introduces the use of OIDs to specify algorithm
   parameters.

   Identifiers and corresponding parameter values for all of the
   proposed parameter sets can be found in Appendix in the form of ASN.1
   modules [X.660].

6.1 Encryption algorithm parameters

   GOST 28147-89 can be used in several modes, additional CBC mode is
   defined in section 2.1 this document. It also has an S-Box parameter
   (see Algorithm Parameters part in [GOST28147] in Russian, description
   in English see in [Schneier95] ch. 14.1, p. 331).

   This table contains the list of proposed parameter sets for GOST
   28147-89:

    Gost28147-89-ParamSetAlgorithms ALGORITHM-IDENTIFIER ::= {
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-TestParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-A-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-B-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-C-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-D-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-A-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-B-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-C-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-D-ParamSet  }
    }



Popov,Kurepkin,Leontiev       Informational                     [Page 8]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   Identifier values can be found in Appendix.

   Parameters for GOST 28147-89 are presented in the following form:

    Gost28147-89-ParamSetParameters ::= SEQUENCE {
      eUZ   Gost28147-89-UZ,
      mode  INTEGER {
              gost28147-89-OFB(0),
              gost28147-89-CFB(1),
              cryptoPro-CBC(2)
           },
      shiftBits   INTEGER { gost28147-89-block(64) },
      keyWrap  AlgorithmIdentifier {{
                 Gost28147-89-KeyWrapAlgorithms
              }},
      keyMeshing   AlgorithmIdentifier {{
                 Gost28147-89-KeyMixAlgorithms
               }}
    }
    Gost28147-89-UZ ::= OCTET STRING (SIZE (64))
    Gost28147-89-KeyMixAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { NULL IDENTIFIED BY id-Gost28147-89-CryptoPro-KeyMix } |
        { NULL IDENTIFIED BY id-Gost28147-89-None-KeyMix }
    }
    Gost28147-89-KeyWrapAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { NULL IDENTIFIED BY id-Gost28147-89-CryptoPro-KeyWrap } |
        { NULL IDENTIFIED BY id-Gost28147-89-None-KeyWrap }
    }

   where
      eUZ        - S-box value;
      mode       - cipher mode;
      shiftBits  - cipher parameter;
      keyWrap    - key export algorithm identifier;
      keyMeshing - key meshing algorithm identifier.

6.2 Digest algorithm parameters

   This table contains the list of proposed parameter sets for
   [GOST341194]:

    GostR3411-94-ParamSetAlgorithms ALGORITHM-IDENTIFIER ::= {
        { GostR3411-94-ParamSetParameters IDENTIFIED BY
          id-GostR3411-94-TestParamSet
        } |
        { GostR3411-94-ParamSetParameters IDENTIFIED BY
          id-GostR3411-94-CryptoProParamSet
        }



Popov,Kurepkin,Leontiev       Informational                     [Page 9]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    }

   Identifier values can be found in Appendix.

   Parameters for [GOST341194] are presented in the following form:

    GostR3411-94-ParamSetParameters ::=
        SEQUENCE {
            hUZ Gost28147-89-UZ,    -- S-Box for digest
            h0  GostR3411-94-Digest -- start digest value
        }
    GostR3411-94-Digest ::= OCTET STRING (SIZE (32))

6.3 GOST R 34.10-94 public key algorithm parameters

   This table contains the list of proposed parameter sets for GOST R
   34.10-94:

    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
               id-GostR3410-94-CryptoPro-XchB-ParamSet  } |
        { GostR3410-94-ParamSetParameters IDENTIFIED BY
               id-GostR3410-94-CryptoPro-XchC-ParamSet  }
    }

   Identifier values can be found in Appendix.

   Parameters for GOST R 34.10-94 are presented in the following form:

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



Popov,Kurepkin,Leontiev       Informational                    [Page 10]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


             }} OPTIONAL
       }

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

   Where
    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.

    t  - bit length of p;
    x0 - seed;
    c  - used for p and q generation;
    d  - used for a generation.

6.4 GOST R 34.10-2001 public key algorithm parameters

   This table contains the list of proposed parameter sets for GOST R
   34.10-2001:

    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  }
    }

   Identifier values can be found in Appendix.

   Parameters for GOST R 34.10-2001 are presented in the following form:




Popov,Kurepkin,Leontiev       Informational                    [Page 11]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    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.

7  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.

8  Appendix ASN.1 Modules

8.1  Gost28147-89-EncryptionSyntax

Gost28147-89-EncryptionSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gost28147-89-EncryptionSyntax(4) 1 }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN



Popov,Kurepkin,Leontiev       Informational                    [Page 12]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


-- 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-encrypts,
        cryptographic-Gost-Useful-Definitions
        FROM Cryptographic-Gost-Useful-Definitions
            { iso(1) member-body(2) ru(643) rans(2)
              cryptopro(2) other(1) modules(1)
              cryptographic-Gost-Useful-Definitions(0) 1 }
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST 28147-89 OID
    id-Gost28147-89 OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms gost28147-89(21) }
  -- GOST 28147-89 Cryptographic Parameter Sets OIDs
    id-Gost28147-89-TestParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-encrypts test(0) }
    id-Gost28147-89-CryptoPro-A-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-encrypts cryptopro-A(1) }
    id-Gost28147-89-CryptoPro-B-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-encrypts cryptopro-B(2) }
    id-Gost28147-89-CryptoPro-C-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-encrypts cryptopro-C(3) }
    id-Gost28147-89-CryptoPro-D-ParamSet OBJECT IDENTIFIER ::=
        { id-CryptoPro-encrypts cryptopro-D(4) }
    id-Gost28147-89-CryptoPro-Simple-A-ParamSet
        OBJECT IDENTIFIER ::=
           { id-CryptoPro-encrypts cryptopro-Simple-A(6) }
    id-Gost28147-89-CryptoPro-Simple-B-ParamSet
        OBJECT IDENTIFIER ::=
           { id-CryptoPro-encrypts cryptopro-Simple-B(7) }
    id-Gost28147-89-CryptoPro-Simple-C-ParamSet
        OBJECT IDENTIFIER ::=
           { id-CryptoPro-encrypts cryptopro-Simple-C(8) }
    id-Gost28147-89-CryptoPro-Simple-D-ParamSet
        OBJECT IDENTIFIER ::=
           { id-CryptoPro-encrypts cryptopro-Simple-D(9) }
  -- GOST 28147-89 Types
    Gost28147-89-Data ::= OCTET STRING (SIZE (0..4294967294))



Popov,Kurepkin,Leontiev       Informational                    [Page 13]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    Gost28147-89-EncryptedData ::=
        OCTET STRING (SIZE (0..4294967294))
    Gost28147-89-UZ ::= OCTET STRING (SIZE (64))
    Gost28147-89-IV ::= OCTET STRING (SIZE (8))
    Gost28147-89-Key ::= OCTET STRING (SIZE (32))
    Gost28147-89-MAC ::= OCTET STRING (SIZE (1..4))
    Gost28147-89-EncryptedKey ::=
        SEQUENCE {
            encryptedKey         Gost28147-89-Key,
            macKey               Gost28147-89-MAC (SIZE (4))
        }
  -- GOST 28147-89 encryption algorithm parameters
    Gost28147-89-Parameters ::=
        SEQUENCE {
            encryptionParamSet
          OBJECT IDENTIFIER (
              id-Gost28147-89-TestParamSet | -- Only for tests use
              id-Gost28147-89-CryptoPro-A-ParamSet |
              id-Gost28147-89-CryptoPro-B-ParamSet |
              id-Gost28147-89-CryptoPro-C-ParamSet |
              id-Gost28147-89-CryptoPro-D-ParamSet |
              id-Gost28147-89-CryptoPro-Simple-A-ParamSet |
              id-Gost28147-89-CryptoPro-Simple-B-ParamSet |
              id-Gost28147-89-CryptoPro-Simple-C-ParamSet |
              id-Gost28147-89-CryptoPro-Simple-D-ParamSet
          ),
            iv                   Gost28147-89-IV
        }
    Gost28147-89-Algorithms ALGORITHM-IDENTIFIER ::= {
        { Gost28147-89-Parameters IDENTIFIED BY
               id-Gost28147-89 }
    }
END -- Gost28147-89-EncryptionSyntax

8.2  Gost28147-89-ParamSetSyntax

Gost28147-89-ParamSetSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gost28147-89-ParamSetSyntax(6) 1 }
DEFINITIONS EXPLICIT TAGS ::=
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



Popov,Kurepkin,Leontiev       Informational                    [Page 14]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


-- modifications needed to maintain or improve the Russian
-- Cryptography service.
    IMPORTS
        id-CryptoPro-algorithms, id-CryptoPro-encrypts,
        gost28147-89-EncryptionSyntax,
        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,
        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,
        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
        AlgorithmIdentifier, ALGORITHM-IDENTIFIER
        FROM Cryptographic-Gost-Useful-Definitions
             cryptographic-Gost-Useful-Definitions
    ;
  -- GOST 28147-89 Cryptographic Parameters Set:
  -- algorithm & parameters
  -- OID for Parameters Set imported from
  -- Gost28147-89-EncryptionSyntax
    Gost28147-89-ParamSetParameters ::=
            SEQUENCE {
            eUZ          Gost28147-89-UZ,
            mode         INTEGER {
                   gost28147-89-OFB(0),
                   gost28147-89-CFB(1),
                        cryptoPro-CBC(2)
               },
            shiftBits    INTEGER { gost28147-89-block(64) },
            keyWrap      AlgorithmIdentifier {{
                   Gost28147-89-KeyWrapAlgorithms
               }},
            keyMix       AlgorithmIdentifier {{
                   Gost28147-89-KeyMixAlgorithms
               }}
        }
    Gost28147-89-ParamSetAlgorithms ALGORITHM-IDENTIFIER ::= {
        { Gost28147-89-ParamSetParameters IDENTIFIED BY



Popov,Kurepkin,Leontiev       Informational                    [Page 15]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


               id-Gost28147-89-TestParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-A-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-B-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-C-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-D-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-A-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-B-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-C-ParamSet  } |
        { Gost28147-89-ParamSetParameters IDENTIFIED BY
               id-Gost28147-89-CryptoPro-Simple-D-ParamSet  }
    }
    id-Gost28147-89-CryptoPro-KeyWrap OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms keyWrap(13) cryptoPro(1) }
    id-Gost28147-89-None-KeyWrap OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms keyWrap(13) none(0) }
    Gost28147-89-KeyWrapAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { NULL IDENTIFIED BY id-Gost28147-89-CryptoPro-KeyWrap } |
        { NULL IDENTIFIED BY id-Gost28147-89-None-KeyWrap }
    }
    id-Gost28147-89-CryptoPro-KeyMix  OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms keyMix(14) cryptoPro(1) }
    id-Gost28147-89-None-KeyMix OBJECT IDENTIFIER ::=
        { id-CryptoPro-algorithms keyMix(14) none(0) }
    Gost28147-89-KeyMixAlgorithms  ALGORITHM-IDENTIFIER ::= {
        { NULL IDENTIFIED BY id-Gost28147-89-CryptoPro-KeyMix } |
        { NULL IDENTIFIED BY id-Gost28147-89-None-KeyMix }
    }
  -- GOST 28147-89 Cryptographic Parameters Set: values
    -- Test Parameters Set
    gost28147-89-TestParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-TestParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   '4CDE389C2989EFB6FFEB56C55EC29B029875613B113F896
003970C798AA1D55DE210AD43375DB38EB42C77E7CD46CAFAD66A201F70F41EA4AB
03F22165B844D8'H,



Popov,Kurepkin,Leontiev       Informational                    [Page 16]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


                   mode  gost28147-89-OFB,
              shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-None-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-None-KeyMix }
          }
        }
    -- CryptoPro Parameters Sets
    gost28147-89-UZ-CryptoPro-A Gost28147-89-UZ ::=
      -- K1 K2 K3 K4 K5 K6 K7 K8
      -- 9  3  E  E  B  3  1  B
      -- 6  7  4  7  5  A  D  A
      -- 3  E  6  A  1  D  2  F
      -- 2  9  2  C  9  C  9  5
      -- 8  8  B  D  8  1  7  0
      -- B  A  3  1  D  2  A  C
      -- 1  F  D  3  F  0  6  E
      -- 7  0  8  9  0  B  0  8
      -- A  5  C  0  E  7  8  6
      -- 4  2  F  2  4  5  C  2
      -- E  6  5  B  2  9  4  3
      -- F  C  A  4  3  4  5  9
      -- C  B  0  F  C  8  F  1
      -- 0  4  7  8  7  F  3  7
      -- D  D  1  5  A  E  B  D
      -- 5  1  9  6  6  6  E  4
        '93EEB31B67475ADA3E6A1D2F292C9C9588BD8170BA31D2AC1FD3F06E70
890B08A5C0E78642F245C2E65B2943FCA43459CB0FC8F104787F37DD15AEBD51966
6E4'H
    gost28147-89-CryptoPro-A-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-A-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-A,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-CryptoPro-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }



Popov,Kurepkin,Leontiev       Informational                    [Page 17]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    --
    gost28147-89-UZ-CryptoPro-B Gost28147-89-UZ ::=
      -- K1 K2 K3 K4 K5 K6 K7 K8
      -- 8  0  E  7  2  8  5  0
      -- 4  1  C  5  7  3  2  4
      -- B  2  0  0  C  2  A  B
      -- 1  A  A  D  F  6  B  E
      -- 3  4  9  B  9  4  9  8
      -- 5  D  2  6  5  D  1  3
      -- 0  5  D  1  A  E  C  7
      -- 9  C  B  2  B  B  3  1
      -- 2  9  7  3  1  C  7  A
      -- E  7  5  A  4  1  4  2
      -- A  3  8  C  0  7  D  9
      -- C  F  F  F  D  F  0  6
      -- D  B  3  4  6  A  6  F
      -- 6  8  6  E  8  0  F  D
      -- 7  6  1  9  E  9  8  5
      -- F  E  4  8  3  5  E  C
        '80E7285041C57324B200C2AB1AADF6BE349B94985D265D1305D1AEC79C
B2BB3129731C7AE75A4142A38C07D9CFFFDF06DB346A6F686E80FD7619E985FE483
5EC'H
    gost28147-89-CryptoPro-B-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-B-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-B,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-CryptoPro-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
    --
    gost28147-89-UZ-CryptoPro-C Gost28147-89-UZ ::=
      -- K1 K2 K3 K4 K5 K6 K7 K8
      -- 1  0  8  3  8  C  A  7
      -- B  1  2  6  D  9  9  4
      -- C  7  5  0  B  B  6  0
      -- 2  D  0  1  0  1  8  5
      -- 9  B  4  5  4  8  D  A



Popov,Kurepkin,Leontiev       Informational                    [Page 18]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


      -- D  4  9  D  5  E  E  2
      -- 0  5  F  A  1  2  2  F
      -- F  2  A  8  2  4  0  E
      -- 4  8  3  B  9  7  F  C
      -- 5  E  7  2  3  3  3  6
      -- 8  F  C  9  C  6  5  1
      -- E  C  D  7  E  5  B  B
      -- A  9  6  E  6  A  4  D
      -- 7  A  E  F  F  0  1  9
      -- 6  6  1  C  A  F  C  3
      -- 3  3  B  4  7  D  7  8
        '10838CA7B126D994C750BB602D0101859B4548DAD49D5EE205FA122FF2
A8240E483B97FC5E7233368FC9C651ECD7E5BBA96E6A4D7AEFF019661CAFC333B47
D78'H
    gost28147-89-CryptoPro-C-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-C-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-C,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-CryptoPro-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
    --
    gost28147-89-UZ-CryptoPro-D Gost28147-89-UZ ::=
      -- K1 K2 K3 K4 K5 K6 K7 K8
      -- F  B  1  1  0  8  3  1
      -- C  6  C  5  C  0  0  A
      -- 2  3  B  E  8  F  6  6
      -- A  4  0  C  9  3  F  8
      -- 6  C  F  A  D  2  1  F
      -- 4  F  E  7  2  5  E  B
      -- 5  E  6  0  A  E  9  0
      -- 0  2  5  D  B  B  2  4
      -- 7  7  A  6  7  1  D  C
      -- 9  D  D  2  3  A  8  3
      -- E  8  4  B  6  4  C  5
      -- D  0  8  4  5  7  4  9
      -- 1  5  9  9  4  C  B  7



Popov,Kurepkin,Leontiev       Informational                    [Page 19]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


      -- B  A  3  3  E  9  A  D
      -- 8  9  7  F  F  D  5  2
      -- 3  1  2  8  1  6  7  E'H
        'FB110831C6C5C00A23BE8F66A40C93F86CFAD21F4FE725EB5E60AE9002
5DBB2477A671DC9DD23A83E84B64C5D084574915994CB7BA33E9AD897FFD5231281
67E'H
    gost28147-89-CryptoPro-D-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-D-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-D,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-CryptoPro-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
    --
    gost28147-89-CryptoPro-Simple-A-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-Simple-A-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-A,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-None-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
    --
    gost28147-89-CryptoPro-Simple-B-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=



Popov,Kurepkin,Leontiev       Informational                    [Page 20]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


        {
            algorithm
          id-Gost28147-89-CryptoPro-Simple-B-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-B,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-None-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
    --
    gost28147-89-CryptoPro-Simple-C-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-Simple-C-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-C,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-None-KeyWrap },
              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
    --
    gost28147-89-CryptoPro-Simple-D-ParamSetAI
        AlgorithmIdentifier {{
            Gost28147-89-ParamSetAlgorithms
        }} ::=
        {
            algorithm
          id-Gost28147-89-CryptoPro-Simple-D-ParamSet,
            parameters
          Gost28147-89-ParamSetParameters:{
              eUZ   gost28147-89-UZ-CryptoPro-D,
                   mode  gost28147-89-CFB,
                   shiftBits  64,
                   keyWrap
               { algorithm id-Gost28147-89-None-KeyWrap },



Popov,Kurepkin,Leontiev       Informational                    [Page 21]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


              keyMix
               { algorithm id-Gost28147-89-CryptoPro-KeyMix }
          }
        }
END -- Gost28147-89-ParamSetSyntax

8.3  GostR3411-94-DigestSyntax

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,
        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))



Popov,Kurepkin,Leontiev       Informational                    [Page 22]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


  -- 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

8.4  GostR3411-94-ParamSetSyntax

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
-- 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



Popov,Kurepkin,Leontiev       Informational                    [Page 23]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


             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
          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,



Popov,Kurepkin,Leontiev       Informational                    [Page 24]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


              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
                 -- 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

8.5  GostR3410-94-PKISyntax

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



Popov,Kurepkin,Leontiev       Informational                    [Page 25]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


-- 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,
        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) }



Popov,Kurepkin,Leontiev       Informational                    [Page 26]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    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 {
            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 |



Popov,Kurepkin,Leontiev       Informational                    [Page 27]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


              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

8.6  GostR3410-94-ParamSetSyntax

GostR3410-94-ParamSetSyntax
    { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)
      other(1) modules(1) gostR3410-94-ParamSetSyntax(8) 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,
        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,



Popov,Kurepkin,Leontiev       Informational                    [Page 28]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


        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
               |
               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



Popov,Kurepkin,Leontiev       Informational                    [Page 29]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


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
               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



Popov,Kurepkin,Leontiev       Informational                    [Page 30]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


               )    -- 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 } |
        { 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



Popov,Kurepkin,Leontiev       Informational                    [Page 31]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


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
          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
                       }
               }



Popov,Kurepkin,Leontiev       Informational                    [Page 32]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


          }
        }
    --
    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
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
        }} ::=
        {



Popov,Kurepkin,Leontiev       Informational                    [Page 33]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


            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: {
                        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,



Popov,Kurepkin,Leontiev       Informational                    [Page 34]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


              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
        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: {



Popov,Kurepkin,Leontiev       Informational                    [Page 35]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


                        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,
              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
                       }
                  }
          }



Popov,Kurepkin,Leontiev       Informational                    [Page 36]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


        }
    --
    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
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

8.7  GostR3410-2001-PKISyntax

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



Popov,Kurepkin,Leontiev       Informational                    [Page 37]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


-- 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,
        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) }



Popov,Kurepkin,Leontiev       Informational                    [Page 38]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    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
          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 ::= {



Popov,Kurepkin,Leontiev       Informational                    [Page 39]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


        { 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

8.8  GostR3410-2001-ParamSetSyntax

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 --
-- 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



Popov,Kurepkin,Leontiev       Informational                    [Page 40]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


    ;
    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
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  } |



Popov,Kurepkin,Leontiev       Informational                    [Page 41]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


        { 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
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



Popov,Kurepkin,Leontiev       Informational                    [Page 42]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


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
        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



Popov,Kurepkin,Leontiev       Informational                    [Page 43]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


          }
        }
    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
              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



Popov,Kurepkin,Leontiev       Informational                    [Page 44]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


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
          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

9  References


   [GOST28147]     "Cryptographic Protection for Data Processing Sys-
                   tem", GOST 28147-89, Gosudarstvennyi Standard of



Popov,Kurepkin,Leontiev       Informational                    [Page 45]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


                   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);


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


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


   [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.


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


   [HMAC]          H. Krawczyk, M. Bellare, R. Canetti, "HMAC: Keyed-
                   Hashing for Message Authentication", RFC 2104  Febru-
                   ary 1997.


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



Popov,Kurepkin,Leontiev       Informational                    [Page 46]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


10 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 aim of this agreement is to achieve mutual
   compatibility of the products and solutions.

   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 collaboration and
      critical help in creation of this document.

      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 CPALGS".

Author's Addresses

   Vladimir Popov
   CRYPTO-PRO
   38, Obraztsova,
   Moscow, 127018, Russian Federation
   EMail: vpopov@cryptopro.ru

   Igor Kurepkin
   CRYPTO-PRO
   38, Obraztsova,
   Moscow, 127018, Russian Federation
   EMail: kure@cryptopro.ru

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

   Grigorij Chudov
   CRYPTO-PRO



Popov,Kurepkin,Leontiev       Informational                    [Page 47]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   38, Obraztsova,
   Moscow, 127018, Russian Federation
   EMail: chudov@cryptopro.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

   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



Popov,Kurepkin,Leontiev       Informational                    [Page 48]


Internet-Draft     Crypto-Pro cryptographic algorithms  15 February 2004


   Copyright (C) The Internet Society (2004).  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.

   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.


























Popov,Kurepkin,Leontiev       Informational                    [Page 49]