RFC 5933

Use of GOST Signature Algorithms in DNSKEY and RRSIG Resource Records for DNSSEC

Internet Engineering Task Force (IETF) V. Dolmatov, Ed.
Request for Comments: 5933 A. Chuprina
Category: Standards Track I. Ustinov
ISSN: 2070-1721 Cryptocom Ltd.
July 2010 Use of GOST Signature Algorithms in DNSKEY
and RRSIG Resource Records for DNSSEC
Abstract
This document describes how to produce digital signatures and hash
functions using the GOST R 34.10-2001 and GOST R 34.11-94 algorithms
for DNSKEY, RRSIG, and DS resource records, for use in the Domain
Name System Security Extensions (DNSSEC).
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc5933.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.

GOST 28147-89 [RFC5830]. Since GOST 28147-89 is not used in DNSSEC,
"GOST" will only refer to GOST R 34.10-2001 and GOST R 34.11-94 in
this document.
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. DNSKEY Resource Records
The format of the DNSKEY RR can be found in RFC 4034 [RFC4034].
GOST R 34.10-2001 public keys are stored with the algorithm
number 12.
The wire format of the public key is compatible with RFC 4491
[RFC4491]:
According to [GOST3410] and [RFC5832], a public key is a point on the
elliptic curve Q = (x,y).
The wire representation of a public key MUST contain 64 octets, where
the first 32 octets contain the little-endian representation of x and
the second 32 octets contain the little-endian representation of y.
Corresponding public key parameters are those identified by
id-GostR3410-2001-CryptoPro-A-ParamSet (1.2.643.2.2.35.1) [RFC4357],
and the digest parameters are those identified by
id-GostR3411-94-CryptoProParamSet (1.2.643.2.2.30.1) [RFC4357].
2.1. Using a Public Key with Existing Cryptographic Libraries
At the time of this writing, existing GOST-aware cryptographic
libraries are capable of reading GOST public keys via a generic X509
API if the key is encoded according to RFC 4491 [RFC4491],
Section 2.3.2.
To make this encoding from the wire format of a GOST public key with
the parameters used in this document, prepend the 64 octets of key
data with the following 37-byte sequence:
0x30 0x63 0x30 0x1c 0x06 0x06 0x2a 0x85 0x03 0x02 0x02 0x13 0x30
0x12 0x06 0x07 0x2a 0x85 0x03 0x02 0x02 0x23 0x01 0x06 0x07 0x2a
0x85 0x03 0x02 0x02 0x1e 0x01 0x03 0x43 0x00 0x04 0x40

2.2. GOST DNSKEY RR Example
Given a private key with the following value (the value of the
GostAsn1 field is split here into two lines to simplify reading; in
the private key file, it must be in one line):
Private-key-format: v1.2
Algorithm: 12 (ECC-GOST)
GostAsn1: MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQg/9M
iXtXKg9FDXDN/R9CmVhJDyuzRAIgh4tPwCu4NHIs=
The following DNSKEY RR stores a DNS zone key for example.net:
example.net. 86400 IN DNSKEY 256 3 12 (
aRS/DcPWGQj2wVJydT8EcAVoC0kXn5pDVm2I
MvDDPXeD32dsSKcmq8KNVzigjL4OXZTV+t/6
w4X1gpNrZiC01g==
) ; key id = 59732
3. RRSIG Resource Records
The value of the signature field in the RRSIG RR follows RFC 4490
[RFC4490] and is calculated as follows. The values for the RDATA
fields that precede the signature data are specified in RFC 4034
[RFC4034].
hash = GOSTR3411(data)
where "data" is the wire format data of the resource record set that
is signed, as specified in RFC 4034 [RFC4034].
The hash MUST be calculated with GOST R 34.11-94 parameters
identified by id-GostR3411-94-CryptoProParamSet [RFC4357].
The signature is calculated from the hash according to the
GOST R 34.10-2001 standard, and its wire format is compatible with
RFC 4490 [RFC4490].
Quoting RFC 4490:
"The signature algorithm GOST R 34.10-2001 generates a digital
signature in the form of two 256-bit numbers, r and s. Its octet
string representation consists of 64 octets, where the first
32 octets contain the big-endian representation of s and the second
32 octets contain the big-endian representation of r".

5. Deployment Considerations
5.1. Key Sizes
According to RFC 4357 [RFC4357], the key size of GOST public keys
MUST be 512 bits.
5.2. Signature Sizes
According to the GOST R 34.10-2001 digital signature algorithm
specification ([GOST3410], [RFC5832]), the size of a GOST signature
is 512 bits.
5.3. Digest Sizes
According to GOST R 34.11-94 ([GOST3411], [RFC5831]), the size of a
GOST digest is 256 bits.
6. Implementation Considerations
6.1. Support for GOST Signatures
DNSSEC-aware implementations MAY be able to support RRSIG and DNSKEY
resource records created with the GOST algorithms as defined in this
document.
6.2. Support for NSEC3 Denial of Existence
Any DNSSEC-GOST implementation MUST support both NSEC [RFC4035] and
NSEC3 [RFC5155].
7. Security Considerations
Currently, the cryptographic resistance of the GOST R 34.10-2001
digital signature algorithm is estimated as 2**128 operations of
multiple elliptic curve point computations on prime modulus of order
2**256.
Currently, the cryptographic resistance of the GOST R 34.11-94 hash
algorithm is estimated as 2**128 operations of computations of a step
hash function. (There is a known method to reduce this estimate to
2**105 operations, but it demands padding the colliding message with
1024 random bit blocks each of 256-bit length; thus, it cannot be
used in any practical implementation).