GOST R 34.12-2015: Block Cipher "Magma"
JSC "NPK Kryptonite"
Spartakovskaya sq., 14, bld 2, JSC "NPK Kryptonite"
Moscow
`105082`

Russian Federation
vdolmatov@gmail.com
Auriga, Inc
Torfyanaya Doroga, 7F, office 1410
Saint-Petersburg
`197374`

Russian Federation
dbaryshkov@gmail.com
General
Internet Engineering Task Force
Magma
Block Cipher
The Russian Federal standard for electronic encryption, decryption,
and message authentication algorithms (GOST 28147-89), which is one
of the Russian cryptographic standard algorithms is described in
RFC 5830. Since its publication, an update to the Russian Federal
standard was published as GOST R 34.12-2015 that includes the
specification of the block cipher known as "Kuznyechik" which has been
described in RFC7801.
GOST R 34.12-2015 also includes an updated version of the block
cipher with block length of n=64 bits and key length k=256 bits, which
is also referred as "Magma". This document is intended to be a source
of information about the updated version of 64-bit cipher. It may
facilitate the use of the block cipher in Internet applications by
providing information for developers and users of GOST 64-bit
cipherwith the revised version of the cipherfor encryption and
decryption.
Unlike RFC 5830 (GOST 28147-89) and like RFC 7801 this specification
does not define exact block modes which should be used together with
updated Magma cipher. One is free to select block modes depending on
the protocol and necessity.
The Russian Federal standard
specifies basic block ciphers used as cryptographic techniques for
information processing and information protection including the
provision of confidentiality, authenticity, and integrity of information
during information transmission, processing and storage in
computer-aided systems.
The cryptographic algorithms defined in this specification are
designed both for hardware and software implementation. They comply
with modern cryptographic requirements, and put no restrictions on the
confidentiality level of the protected information.
The Russian Federal standard was
developed by the Center for Information Protection and Special
Communications of the Federal Security Service of the Russian Federation
with participation of the Open Joint-Stock company "Information
Technologies and Communication Systems" (InfoTeCS JSC). GOST R
34.12-2015 was approved and introduced by Decree #749 of the Federal
Agency on Technical Regulating and Metrology on 19.06.2015.
Terms and concepts in the specification comply with the following
international standards:
ISO/IEC 10116 ,
series of standards ISO/IEC 18033 , .

The following terms and their corresponding definitions are used in
the specification.
Definitions
encryption algorithm: process which transforms plaintext into
ciphertext (Clause 2.19 of ),
decryption algorithm: process which transforms ciphertext into
plaintext (Clause 2.14 of ),
basic block cipher: block cipher which for a given key provides
a single invertible mapping of the set of fixed-length plaintext
blocks into ciphertext blocks of the same length,
block: string of bits of a defined length (Clause 2.6 of ),
block cipher: symmetric encipherment system with the property
that the encryption algorithm operates on a block of plaintext,
i.e. a string of bits of a defined length, to yield a block of
ciphertext (Clause 2.7 of ),
Note: In GOST R 34.12-2015, it is established that the
terms "block cipher" and "block encryption algorithm" are
synonyms.

encryption: reversible transformation of data by a
cryptographic algorithm to produce ciphertext, i.e., to hide the
information content of the data (Clause 2.18 of ),
round key: sequence of symbols which is calculated from the key
and controls a transformation for one round of a block cipher,
key: sequence of symbols that controls the operation of a
cryptographic transformation (e.g., encipherment, decipherment)
(Clause 2.21 of ),
Note: In GOST R 34.12-2015, the key must be a binary
sequence.

plaintext: unencrypted information (Clause 3.11 of ),
key schedule: calculation of round keys from the key,
decryption: reversal of a corresponding encipherment (Clause
2.13 of ),
symmetric cryptographic technique: cryptographic technique that
uses the same secret key for both the originator's and the
recipient's transformation (Clause 2.32 of ),
cipher: alternative term for encipherment system (Clause 2.20
of ),
ciphertext: data which has been transformed to hide its
information content (Clause 3.3 of ).

The following notations are used in the specification:
the set of all binary vector-strings of a
finite length (hereinafter referred to as the strings) including
the empty string,
the set of all binary strings of length s,
where s is a non-negative integer; substrings and string
components are enumerated from right to left starting from
zero,
direct (Cartesian) product of two set U and
W,
the number of components (the length) of a
string A belonging to V* (if A is an empty string, then |A| =
0),