[要約] RFC 8891は、GOST R 34.12-2015で規定されるブロック暗号"Magma"に関する標準化された仕様です。このRFCの目的は、Magma暗号のセキュリティと適合性を確保し、その実装と使用に関するガイダンスを提供することです。

Independent Submission                                  V. Dolmatov, Ed.
Request for Comments: 8891                          JSC "NPK Kryptonite"
Updates: 5830                                               D. Baryshkov
Category: Informational                                     Auriga, Inc.
ISSN: 2070-1721                                           September 2020
        

GOST R 34.12-2015: Block Cipher "Magma"

GOST R 34.12-2015:ブロック暗号「マグマ」

Abstract

概要

In addition to a new cipher with a block length of n=128 bits (referred to as "Kuznyechik" and described in RFC 7801), Russian Federal standard GOST R 34.12-2015 includes an updated version of the block cipher with a block length of n=64 bits and key length of k=256 bits, which is also referred to as "Magma". The algorithm is an updated version of an older block cipher with a block length of n=64 bits described in GOST 28147-89 (RFC 5830). This document is intended to be a source of information about the updated version of the 64-bit cipher. It may facilitate the use of the block cipher in Internet applications by providing information for developers and users of the GOST 64-bit cipher with the revised version of the cipher for encryption and decryption.

ブロック長N = 128ビット(「Kuznyechik」と呼ばれ、RFC 7801と呼ばれる)の新しい暗号に加えて、ロシア連邦標準GOST R 34.12-2015はブロック長のブロック暗号の更新版を含む。「マグマ」とも呼ばれるk = 256ビットのn = 64ビットおよびキー長。アルゴリズムは、GOST 28147-89(RFC 5830)に記載されているN = 64ビットのブロック長を持つ古いブロック暗号の更新版です。このドキュメントは、64ビット暗号の更新版に関する情報の源となることを目的としています。GOST 64ビット暗号の開発者やユーザのための情報を、暗号化および復号化のための修正版と共に提供することによって、インターネットアプリケーションのブロック暗号の使用を容易にすることができる。

Status of This Memo

本文書の状態

This document is not an Internet Standards Track specification; it is published for informational purposes.

この文書はインターネット標準のトラック仕様ではありません。情報提供のために公開されています。

This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.

これは、他のRFCストリームとは無関係にRFCシリーズへの貢献です。RFCエディタは、この文書を裁量で公開することを選択し、実装または展開のためのその値についてのステートメントを作成しません。RFCエディタによる出版の承認済みの文書は、インターネット規格のレベルレベルの候補者ではありません。RFC 7841のセクション2を参照してください。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8891.

この文書の現在のステータス、任意のエラータ、およびフィードバックを提供する方法は、https://www.rfc-editor.org/info/rfc8891で入手できます。

Copyright Notice

著作権表示

Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved.

Copyright(C)2020 IETFの信頼と文書著者として識別された人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://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.

この文書は、この文書の公開日に有効なIETF文書(https://truste.ietf.org/License-info)に関するBCP 78とIETF信頼の法的規定を受けています。この文書に関してあなたの権利と制限を説明するので、これらの文書を慎重に見直してください。

Table of Contents

目次

   1.  Introduction
   2.  General Information
   3.  Definitions and Notation
     3.1.  Definitions
     3.2.  Notation
   4.  Parameter Values
     4.1.  Nonlinear Bijection
     4.2.  Transformations
     4.3.  Key Schedule
   5.  Basic Encryption Algorithm
     5.1.  Encryption
     5.2.  Decryption
   6.  IANA Considerations
   7.  Security Considerations
   8.  References
     8.1.  Normative References
     8.2.  Informative References
   Appendix A.  Test Examples
     A.1.  Transformation t
     A.2.  Transformation g
     A.3.  Key Schedule
     A.4.  Test Encryption
     A.5.  Test Decryption
   Appendix B.  Background
   Authors' Addresses
        
1. Introduction
1. はじめに

The Russian Federal standard [GOSTR3412-2015] 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.

ロシア連邦標準[GOSTR 3412-2015]は、情報処理および情報保護のための暗号化技術として使用される基本的なブロック暗号を指定して、コンピュータ支援システムにおける情報伝送、処理、および記憶域における情報の情報の完全性を含む。

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.

本明細書で定義されている暗号化アルゴリズムは、ハードウェアとソフトウェアの実装の両方に設計されています。彼らは現代の暗号化要件を遵守し、保護された情報の機密性レベルに制限を与えません。

This document is intended to be a source of information about the updated version of the 64-bit cipher. It may facilitate the use of the block cipher in Internet applications by providing information for developers and users of a GOST 64-bit cipher with the revised version of the cipher for encryption and decryption.

このドキュメントは、64ビット暗号の更新版に関する情報の源となることを目的としています。GOST64ビット暗号の開発者およびユーザのための情報を、暗号化および復号化のための修正版で提供することによって、インターネットアプリケーションにおけるブロック暗号の使用を容易にすることができる。

2. General Information
2. 一般情報

The Russian Federal standard [GOSTR3412-2015] 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 June 19, 2015.

ロシア連邦標準[GOSTR 3412-2015]は、オープンジョイント会社「情報技術と通信システム」(Infotecs JSC)の参加を除いて、ロシア連邦の連邦保護サービスの情報保護および特別通信のためのセンターによって開発されました。。GOST R 34.12-2015は、2015年6月19日の技術的規制および計測に関する連邦機関の連邦機関のDECRED#749によって承認され、紹介されました。

Terms and concepts in the specification comply with the following international standards:

仕様の用語と概念は、以下の国際規格に準拠しています。

* ISO/IEC 10116 [ISO-IEC10116]

* ISO / IEC 10116 [ISO-IEC10116]

* series of standards ISO/IEC 18033 [ISO-IEC18033-1][ISO-IEC18033-3]

* スタンダードISO / IEC 18033【IEC18033-1】【ISO-IEC18033-3】

3. Definitions and Notation
3. 定義と表記法

The following terms and their corresponding definitions are used in the specification.

以下の用語とそれらの対応する定義が本明細書で使用されています。

3.1. Definitions
3.1. 定義

encryption algorithm: process that transforms plaintext into ciphertext (Clause 2.19 of [ISO-IEC18033-1])

暗号化アルゴリズム:平文を暗号文に変換するプロセス([ISO-IEC18033-1]の2.19節)

decryption algorithm: process that transforms ciphertext into plaintext (Clause 2.14 of [ISO-IEC18033-1])

復号化アルゴリズム:暗号文を平文に変換するプロセス([ISO-IEC18033-1]の2.14節)

basic block cipher: block cipher that, 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 [ISO-IEC18033-1])

ブロック:定義された長さのビットの文字列([ISO-IEC18033-1]の2.6節)

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 [ISO-IEC18033-1])

ブロック暗号:暗号化アルゴリズムが平文のブロックで動作するプロパティを持つ対称暗号化システム - すなわち定義された長さの一連のビット - 暗号文のブロックを生み出します(ISO-IEC18033-1の2.7節。)

Note: In GOST R 34.12-2015, it is established that the terms "block cipher" and "block encryption algorithm" are synonyms.

注:GOST R 34.12-2015では、「ブロック暗号」と「ブロック暗号化アルゴリズム」という用語は同義語であることが確立されています。

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 [ISO-IEC18033-1])

暗号化:暗号化アルゴリズムによるデータの可逆的変換 - すなわちデータの情報内容を非表示([ISO - IEC18033-1]の2.18節)

round key: sequence of symbols that is calculated from the key and controls a transformation for one round of a block cipher

ラウンドキー:キーから計算されたシンボルのシーケンスとブロック暗号の1ラウンドの変換を制御

key: sequence of symbols that controls the operation of a cryptographic transformation (e.g., encipherment, decipherment) (Clause 2.21 of [ISO-IEC18033-1])

キー:暗号変換(例えば、暗号化、解読)の動作を制御するシンボルのシーケンス([ISO-IEC18033-1]の2.21)

Note: In GOST R 34.12-2015, the key must be a binary sequence.

注:GOST R 34.12-2015では、キーはバイナリシーケンスでなければなりません。

plaintext: unencrypted information (Clause 3.11 of [ISO-IEC10116])

平文:暗号化されていない情報([ISO-IEC10116]の3.11)

key schedule: calculation of round keys from the key,

キースケジュール:キーからの丸キーの計算、

decryption: reversal of a corresponding encipherment (Clause 2.13 of [ISO-IEC18033-1])

復号化:対応する暗号化の反転([ISO-IEC18033-1]の2.13節)

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 [ISO-IEC18033-1])

対称暗号化技術:創始者の変換と受信者の両方の変換に同じ秘密鍵を使用する暗号技術([ISO-IEC18033-1]の2.32)

cipher: alternative term for encipherment system (Clause 2.20 of [ISO-IEC18033-1])

暗号:暗号化システムの代替項([ISO-IEC18033-1]の第2.20号)

ciphertext: data that has been transformed to hide its information content (Clause 3.3 of [ISO-IEC10116])

暗号文:その情報内容を非表示にしたデータ([ISO-IEC10116]の第3.3節)

3.2. Notation
3.2. 表記

The following notation is used in the specification:

仕様では以下の表記法が使用されています。

V* the set of all binary vector strings of a finite length (hereinafter referred to as the strings), including the empty string

v *空の文字列を含む有限長(以下、文字列と呼ぶ)のすべての2値ベクトル文字列の集合

V_s the set of all binary strings of length s, where s is a nonnegative integer; substrings and string components are enumerated from right to left, starting from zero

v_s長さsのすべてのバイナリ文字列のセット。ここで、sは非負整数です。部分文字列と文字列コンポーネントはゼロから始めて右から左へ列挙されています

U[*]W direct (Cartesian) product of two sets U and W

U [*] Wダイレクト(デカニアン)2セットUとWの製品

|A| the number of components (the length) of a string A belonging to V* (if A is an empty string, then |A| = 0)

A||B concatenation of strings A and B both belonging to V* -- i.e., a string from V_(|A|+|B|), where the left substring from V_|A| is equal to A and the right substring from V_|B| is equal to B

A.

A<<<_11 cyclic rotation of string A belonging to V_32 by 11 components in the direction of components having greater indices

インデックスが大きい部品の方向にV_32に属するストリングAの<<< _ 11繰り返し回転

   Z_(2^n)  ring of residues modulo 2^n
        

(xor) exclusive-or of two binary strings of the same length

(XOR)同じ長さの2値文字列

   [+]  addition in the ring Z_(2^32)
        
   Vec_s: Z_(2^s) -> V_s  bijective mapping that maps an element from
      ring Z_(2^s) into its binary representation; i.e., for an element
      z of the ring Z_(2^s), represented by the residue z_0 + (2*z_1) +
      ... + (2^(s-1)*z_(s-1)), where z_i in {0, 1}, i = 0, ..., n-1, the
      equality Vec_s(z) = z_(s-1)||...||z_1||z_0 holds
        
   Int_s: V_s -> Z_(2^s)  the mapping inverse to the mapping Vec_s,
      i.e., Int_s = Vec_s^(-1)
        

PS composition of mappings, where the mapping S applies first

マッピングSが最初に適用されるマッピングのPS構成

   P^s  composition of mappings P^(s-1) and P, where P^1=P
        
4. Parameter Values
4. パラメータ値
4.1. Nonlinear Bijection
4.1. 非線形の伝播

The bijective nonlinear mapping is a set of substitutions:

放射線非線形マッピングは一連の置換です。

Pi_i = Vec_4 Pi'_i Int_4: V_4 -> V_4,

PI_I = VEC_4 PI'_I INT_4:V_4 - > V_4、

where

ただし

Pi'_i: Z_(2^4) -> Z_(2^4), i = 0, 1, ..., 7.

PI'_I:Z_(2 ^ 4) - > Z_(2 ^ 4)、i = 0,1、...、7。

The values of the substitution Pi' are specified below as arrays.

置換PI 'の値は以下のアレイとして指定されています。

   Pi'_i = (Pi'_i(0), Pi'_i(1), ... , Pi'_i(15)), i = 0, 1, ..., 7:
        
   Pi'_0 = (12, 4, 6, 2, 10, 5, 11, 9, 14, 8, 13, 7, 0, 3, 15, 1);
   Pi'_1 = (6, 8, 2, 3, 9, 10, 5, 12, 1, 14, 4, 7, 11, 13, 0, 15);
   Pi'_2 = (11, 3, 5, 8, 2, 15, 10, 13, 14, 1, 7, 4, 12, 9, 6, 0);
   Pi'_3 = (12, 8, 2, 1, 13, 4, 15, 6, 7, 0, 10, 5, 3, 14, 9, 11);
   Pi'_4 = (7, 15, 5, 10, 8, 1, 6, 13, 0, 9, 3, 14, 11, 4, 2, 12);
   Pi'_5 = (5, 13, 15, 6, 9, 2, 12, 10, 11, 7, 8, 1, 4, 3, 14, 0);
   Pi'_6 = (8, 14, 2, 5, 6, 9, 1, 12, 15, 4, 11, 0, 13, 10, 3, 7);
   Pi'_7 = (1, 7, 14, 13, 0, 5, 8, 3, 4, 15, 10, 6, 9, 12, 11, 2);
        
4.2. Transformations
4.2. 変換

The following transformations are applicable for encryption and decryption algorithms:

以下の変換は、暗号化および復号化アルゴリズムに適用可能です。

t: V_32 -> V_32 t(a) = t(a_7||...||a_0) = Pi_7(a_7)||...||Pi_0(a_0), where a=a_7||...||a_0 belongs to V_32, a_i belongs to V_4, i=0, 1, ..., 7.

T:V_32 - > V_32 T(a)= t(a_7

   g[k]: V_32 -> V_32
      g[k](a) = (t(Vec_32(Int_32(a) [+] Int_32(k)))) <<<_11, where k, a
      belong to V_32
        
   G[k]: V_32[*]V_32 -> V_32[*]V_32
      G[k](a_1, a_0) = (a_0, g[k](a_0) (xor) a_1), where k, a_0, a_1
      belong to V_32
        
   G^*[k]: V_32[*]V_32 -> V_64
      G^*[k](a_1, a_0) = (g[k](a_0) (xor) a_1) || a_0, where k, a_0, a_1
      belong to V_32.
        
4.3. Key Schedule
4.3. キースケジュール

Round keys K_i belonging to V_32, i=1, 2, ..., 32 are derived from key K = k_255||...||k_0 belonging to V_256, k_i belongs to V_1, i=0, 1, ..., 255, as follows:

v_32に属する丸型キーK_i、i = 1,2、...、32はキーk = k_255から派生している

   K_1 = k_255||...||k_224;
   K_2 = k_223||...||k_192;
   K_3 = k_191||...||k_160;
   K_4 = k_159||...||k_128;
   K_5 = k_127||...||k_96;
   K_6 = k_95||...||k_64;
   K_7 = k_63||...||k_32;
   K_8 = k_31||...||k_0;
   K_(i+8) = K_i, i = 1, 2, ..., 8;
   K_(i+16) = K_i, i = 1, 2, ..., 8;
   K_(i+24) = K_(9-i), i = 1, 2, ..., 8.
        
5. Basic Encryption Algorithm
5. 基本暗号化アルゴリズム
5.1. Encryption
5.1. 暗号化

Depending on the values of round keys K_1,...,K_32, the encryption algorithm is a substitution E_(K_1,...,K_32) defined as follows:

ラウンドキーK_1、...、k_32の値に応じて、暗号化アルゴリズムは次のように定義された代替e_(k_1、...、k_32)です。

E_(K_1,...,K_32)(a)=G^*[K_32]G[K_31]...G[K_2]G[K_1](a_1, a_0),

E_(k_1、...、k_32)(a)= g ^ * [k_32] g [k_31] ... g [k_2] g [k_1](a_1、a_0)、

where a=(a_1, a_0) belongs to V_64, and a_0, a_1 belong to V_32.

A =(A_1、A_0)はV_64に属し、A_0、A_1はV_32に属する。

5.2. Decryption
5.2. 復号化

Depending on the values of round keys K_1,...,K_32, the decryption algorithm is a substitution D_(K_1,...,K_32) defined as follows:

ラウンドキーK_1、...、k_32の値に応じて、復号化アルゴリズムは次のように定義された置換D_(...、k_32)です。

D_(K_1,...,K_32)(a)=G^*[K_1]G[K_2]...G[K_31]G[K_32](a_1, a_0),

D_(k_1、...、k_32)(a)= g ^ * [k_1] g [K_2] ... G [K_31] G [K_32](A_1、A_0)、

where a=(a_1, a_0) belongs to V_64, and a_0, a_1 belong to V_32.

A =(A_1、A_0)はV_64に属し、A_0、A_1はV_32に属する。

6. IANA Considerations
6. IANAの考慮事項

This document has no IANA actions.

この文書にはIANAの行動がありません。

7. Security Considerations
7. セキュリティに関する考慮事項

This entire document is about security considerations.

この文書全体はセキュリティ上の考慮事項についてです。

Unlike [RFC5830] (GOST 28147-89), but like [RFC7801], this specification does not define exact block modes that should be used together with the updated Magma cipher. One is free to select block modes depending on the protocol and necessity.

[RFC5830](GOST 28147-89)とは異なり、[RFC7801]のように、この仕様は更新されたMAGMA暗号と一緒に使用する必要がある正確なブロックモードを定義しません。1つはプロトコルと必要性に応じてブロックモードを選択できます。

8. References
8. 参考文献
8.1. Normative References
8.1. 引用文献

[GOSTR3412-2015] Federal Agency on Technical Regulating and Metrology, "Information technology. Cryptographic data security. Block ciphers.", GOST R 34.12-2015, 2015.

[GOSTR3412-2015]技術規制と計測学のための連邦機関「情報技術。暗号データセキュリティ。ブロック暗号。」、GOST R 34.12-2015,2015。

[RFC5830] Dolmatov, V., Ed., "GOST 28147-89: Encryption, Decryption, and Message Authentication Code (MAC) Algorithms", RFC 5830, DOI 10.17487/RFC5830, March 2010, <https://www.rfc-editor.org/info/rfc5830>.

[RFC5830] Dolmatov、V.、Ed。、 "Gost 28147-89:暗号化、復号化、およびメッセージ認証コード(Mac)Algorithms"、RFC 5830、DOI 10.17487 / RFC5830、2010年3月、<https://www.rfc-editor.org/info/rfc5830>。

[RFC7801] Dolmatov, V., Ed., "GOST R 34.12-2015: Block Cipher "Kuznyechik"", RFC 7801, DOI 10.17487/RFC7801, March 2016, <https://www.rfc-editor.org/info/rfc7801>.

[RFC7801]ドルマトフ、V.、ED。、「GOST R 34.12-2015:ブロック暗号「Kuznyechik」、RFC 7801、DOI 10.17487 / RFC7801、2016年3月、<https://www.rfc-editor.org/info/ RFC7801>。

8.2. Informative References
8.2. 参考引用

[GOST28147-89] Government Committee of the USSR for Standards, "Cryptographic Protection for Data Processing System, GOST 28147-89, Gosudarstvennyi Standard of USSR", 1989.

[GOST28147-89]標準化のためのUSSRの政府委員会、「データ処理システムの暗号保護、GOST 28147-89、Gosudarstvennyi StandardのUSSR」、1989年。

[ISO-IEC10116] ISO/IEC, "Information technology -- Security techniques -- Modes of operation for an n-bit block cipher", ISO/ IEC 10116, 2017.

[ISO-IEC10116] ISO / IEC、「情報技術 - セキュリティ技術 - Nビットブロック暗号の動作モード」、ISO / IEC 10116,2017。

[ISO-IEC18033-1] ISO/IEC, "Information technology -- Security techniques -- Encryption algorithms -- Part 1: General", ISO/ IEC 18033-1:2015, 2015.

[ISO-IEC18033-1] ISO / IEC、「情報技術 - セキュリティテクニック - 暗号化アルゴリズム - 第1部:一般」、ISO / IEC 18033-1:2015,2015。

[ISO-IEC18033-3] ISO/IEC, "Information technology -- Security techniques -- Encryption algorithms -- Part 3: Block ciphers", ISO/ IEC 18033-3:2010, 2010.

[ISO-IEC18033-3] ISO / IEC、「情報技術 - セキュリティテクニック - 暗号化アルゴリズム - パート3:ブロック暗号」、ISO / IEC 18033-3:2010,2010。

[RFC7836] Smyshlyaev, S., Ed., Alekseev, E., Oshkin, I., Popov, V., Leontiev, S., Podobaev, V., and D. Belyavsky, "Guidelines on the Cryptographic Algorithms to Accompany the Usage of Standards GOST R 34.10-2012 and GOST R 34.11-2012", RFC 7836, DOI 10.17487/RFC7836, March 2016, <https://www.rfc-editor.org/info/rfc7836>.

[RFC7836] SmyShlyaev、S、ED。、AlekSeev、E.、Oshkin、I.、Podov、V.、Leontiev、S.、Podobaev、V.、およびD. Belyavsky、 "Cryptographicアルゴリズムのガイドライン2016年3月、<https://www.rfc-editor.org/info/rfc- editor.org/info/rfc7836、<https://www.rfc-editor.org/info/rfc- editor.org/info/rfc7836>。

Appendix A. Test Examples
付録A.テスト例

This section is for information only and is not a normative part of the specification.

このセクションは情報のみを目的としており、仕様の規範的な部分ではありません。

A.1. Transformation t
A.1. 変換T.

t(fdb97531) = 2a196f34, t(2a196f34) = ebd9f03a, t(ebd9f03a) = b039bb3d, t(b039bb3d) = 68695433.

T(FDB97531)= 2A196F34、T(2A196F34)= EBD9F03A、T(EBD9F03A)= B039BB3D、T(B039BB3D)= 68695433。

A.2. Transformation g
A.2. 変態G.

g[87654321](fedcba98) = fdcbc20c, g[fdcbc20c](87654321) = 7e791a4b, g[7e791a4b](fdcbc20c) = c76549ec, g[c76549ec](7e791a4b) = 9791c849.

G [87654321](FDCBC20C)(FDCBC20C](87654321)= 7E791A4B、G [7E791A4B](FDCBC20C)= C76549EC、G [C76549EC](7E791A4B)= 9791C849。

A.3. Key Schedule
A.3. キースケジュール

With key set to

に設定されている

K = ffeeddccbbaa99887766554433221100f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,

K = FFEEDDCCBAA99887766554433221100F0F1F2F3F4F5F6F7F8F9FAFFFCFDFEFF

the following round keys are generated:

次の丸いキーが生成されます。

K_1 = ffeeddcc, K_2 = bbaa9988, K_3 = 77665544, K_4 = 33221100, K_5 = f0f1f2f3, K_6 = f4f5f6f7, K_7 = f8f9fafb, K_8 = fcfdfeff,

K_1 = FFEEDDCC、K_2 = BBAA9988、K_3 = 77665544、K_4 = 33221100、K_5 = F0F1F2F3、K_6 = F4F5F6F7、K_7 = F8F9FAFB、K_8 = FCFDFEFF、

K_9 = ffeeddcc, K_10 = bbaa9988, K_11 = 77665544, K_12 = 33221100, K_13 = f0f1f2f3, K_14 = f4f5f6f7, K_15 = f8f9fafb, K_16 = fcfdfeff,

K_9 = ffeeddcc、k_10 = 77665544、K_11 = 77665544、K_12 = 3321100、K_13 = F0F1F2F3、K_14 = F4F5F6F7、K_15 = F8F9FAFB、K_16 = FCFDFEFF、

K_17 = ffeeddcc, K_18 = bbaa9988, K_19 = 77665544, K_20 = 33221100, K_21 = f0f1f2f3, K_22 = f4f5f6f7, K_23 = f8f9fafb, K_24 = fcfdfeff,

K_17 = FFEEDDCC、K_18 = BBAA9988、K_19 = 77665544、K_20 = 3321100、K_21 = F0F1F2F3、K_22 = F4F5F6F7、K_23 = F8F9FAFB、K_24 = FCFDFEFF、

K_25 = fcfdfeff, K_26 = f8f9fafb, K_27 = f4f5f6f7, K_28 = f0f1f2f3, K_29 = 33221100, K_30 = 77665544, K_31 = bbaa9988, K_32 = ffeeddcc.

K_25 = FCFDFEFF、K_26 = F4F5F6F7、K_27 = F0F1F2F3、K_29 = 3321100、K_39 = 77665544、K_31 = BBAA9988、K_32 = FFEEDDCC。

A.4. Test Encryption
A.4. テスト暗号化

In this test example, encryption is performed on the round keys specified in Appendix A.3. Let the plaintext be

この試験例では、付録A.3に規定されている丸型キーに対して暗号化が行われる。平文をさせましょう

a = fedcba9876543210,

A = Fedcba9876543210、

then

それから

   (a_1, a_0) = (fedcba98, 76543210),
   G[K_1](a_1, a_0) = (76543210, 28da3b14),
   G[K_2]G[K_1](a_1, a_0) = (28da3b14, b14337a5),
   G[K_3]...G[K_1](a_1, a_0) = (b14337a5, 633a7c68),
   G[K_4]...G[K_1](a_1, a_0) = (633a7c68, ea89c02c),
   G[K_5]...G[K_1](a_1, a_0) = (ea89c02c, 11fe726d),
   G[K_6]...G[K_1](a_1, a_0) = (11fe726d, ad0310a4),
   G[K_7]...G[K_1](a_1, a_0) = (ad0310a4, 37d97f25),
   G[K_8]...G[K_1](a_1, a_0) = (37d97f25, 46324615),
   G[K_9]...G[K_1](a_1, a_0) = (46324615, ce995f2a),
   G[K_10]...G[K_1](a_1, a_0) = (ce995f2a, 93c1f449),
   G[K_11]...G[K_1](a_1, a_0) = (93c1f449, 4811c7ad),
   G[K_12]...G[K_1](a_1, a_0) = (4811c7ad, c4b3edca),
   G[K_13]...G[K_1](a_1, a_0) = (c4b3edca, 44ca5ce1),
   G[K_14]...G[K_1](a_1, a_0) = (44ca5ce1, fef51b68),
   G[K_15]...G[K_1](a_1, a_0) = (fef51b68, 2098cd86)
   G[K_16]...G[K_1](a_1, a_0) = (2098cd86, 4f15b0bb),
   G[K_17]...G[K_1](a_1, a_0) = (4f15b0bb, e32805bc),
   G[K_18]...G[K_1](a_1, a_0) = (e32805bc, e7116722),
   G[K_19]...G[K_1](a_1, a_0) = (e7116722, 89cadf21),
   G[K_20]...G[K_1](a_1, a_0) = (89cadf21, bac8444d),
   G[K_21]...G[K_1](a_1, a_0) = (bac8444d, 11263a21),
   G[K_22]...G[K_1](a_1, a_0) = (11263a21, 625434c3),
   G[K_23]...G[K_1](a_1, a_0) = (625434c3, 8025c0a5),
   G[K_24]...G[K_1](a_1, a_0) = (8025c0a5, b0d66514),
   G[K_25]...G[K_1](a_1, a_0) = (b0d66514, 47b1d5f4),
   G[K_26]...G[K_1](a_1, a_0) = (47b1d5f4, c78e6d50),
   G[K_27]...G[K_1](a_1, a_0) = (c78e6d50, 80251e99),
   G[K_28]...G[K_1](a_1, a_0) = (80251e99, 2b96eca6),
   G[K_29]...G[K_1](a_1, a_0) = (2b96eca6, 05ef4401),
   G[K_30]...G[K_1](a_1, a_0) = (05ef4401, 239a4577),
   G[K_31]...G[K_1](a_1, a_0) = (239a4577, c2d8ca3d).
        

Then the ciphertext is

その後、暗号文

b = G^*[K_32]G[K_31]...G[K_1](a_1, a_0) = 4ee901e5c2d8ca3d.

B = G ^ * [K_32] G [K_31] ... G [K_1](A_1、A_0)= 4E901E5C2D8CA3D。

A.5. Test Decryption
A.5. テスト復号化

In this test example, decryption is performed on the round keys specified in Appendix A.3. Let the ciphertext be

この試験例では、付録A.3に規定されている丸キーに対して復号化を行う。暗号文をさせてください

b = 4ee901e5c2d8ca3d,

B = 4EE901E5C2D8CA3D、

then

それから

   (b_1, b_0) = (4ee901e5, c2d8ca3d),
   G[K_32](b_1, b_0) = (c2d8ca3d, 239a4577),
   G[K_31]G[K_32](b_1, b_0) = (239a4577, 05ef4401),
   G[K_30]...G[K_32](b_1, b_0) = (05ef4401, 2b96eca6),
   G[K_29]...G[K_32](b_1, b_0) = (2b96eca6, 80251e99),
   G[K_28]...G[K_32](b_1, b_0) = (80251e99, c78e6d50),
   G[K_27]...G[K_32](b_1, b_0) = (c78e6d50, 47b1d5f4),
   G[K_26]...G[K_32](b_1, b_0) = (47b1d5f4, b0d66514),
   G[K_25]...G[K_32](b_1, b_0) = (b0d66514, 8025c0a5),
   G[K_24]...G[K_32](b_1, b_0) = (8025c0a5, 625434c3),
   G[K_23]...G[K_32](b_1, b_0) = (625434c3, 11263a21),
   G[K_22]...G[K_32](b_1, b_0) = (11263a21, bac8444d),
   G[K_21]...G[K_32](b_1, b_0) = (bac8444d, 89cadf21),
   G[K_20]...G[K_32](b_1, b_0) = (89cadf21, e7116722),
   G[K_19]...G[K_32](b_1, b_0) = (e7116722, e32805bc),
   G[K_18]...G[K_32](b_1, b_0) = (e32805bc, 4f15b0bb),
   G[K_17]...G[K_32](b_1, b_0) = (4f15b0bb, 2098cd86),
   G[K_16]...G[K_32](b_1, b_0) = (2098cd86, fef51b68),
   G[K_15]...G[K_32](b_1, b_0) = (fef51b68, 44ca5ce1),
   G[K_14]...G[K_32](b_1, b_0) = (44ca5ce1, c4b3edca),
   G[K_13]...G[K_32](b_1, b_0) = (c4b3edca, 4811c7ad),
   G[K_12]...G[K_32](b_1, b_0) = (4811c7ad, 93c1f449),
   G[K_11]...G[K_32](b_1, b_0) = (93c1f449, ce995f2a),
   G[K_10]...G[K_32](b_1, b_0) = (ce995f2a, 46324615),
   G[K_9]...G[K_32](b_1, b_0) = (46324615, 37d97f25),
   G[K_8]...G[K_32](b_1, b_0) = (37d97f25, ad0310a4),
   G[K_7]...G[K_32](b_1, b_0) = (ad0310a4, 11fe726d),
   G[K_6]...G[K_32](b_1, b_0) = (11fe726d, ea89c02c),
   G[K_5]...G[K_32](b_1, b_0) = (ea89c02c, 633a7c68),
   G[K_4]...G[K_32](b_1, b_0) = (633a7c68, b14337a5),
   G[K_3]...G[K_32](b_1, b_0) = (b14337a5, 28da3b14),
   G[K_2]...G[K_32](b_1, b_0) = (28da3b14, 76543210).
        

Then the plaintext is

それから平文のものです

a = G^*[K_1]G[K_2]...G[K_32](b_1, b_0) = fedcba9876543210.

A = G ^ * [K_1] G [K_2] ... G [K_32](B_1、B_0)= FedcBA9876543210。

Appendix B. Background
付録B.背景

This specification is a translation of relevant parts of the [GOSTR3412-2015] standard. The order of terms in both parts of Section 3 comes from the original text. Combining [RFC7801] with this document will create a complete translation of [GOSTR3412-2015] into English.

この仕様は[GOSTR3412-2015]の標準の関連部分の翻訳です。セクション3の両方の部分における用語の順序は元のテキストから来ています。[RFC7801]をこの文書に組み合わせると、[GOSTR3412-2015]の英語への完全な翻訳が作成されます。

Algorithmically, Magma is a variation of the block cipher defined in [RFC5830] ([GOST28147-89]) with the following clarifications and minor modifications:

アルゴリズム的には、MAGMAは、以下の説明と小さな変更を加えて、[RFC5830]([GOST28147-89])で定義されているブロック暗号の変動です。

1. S-BOX set is fixed at id-tc26-gost-28147-param-Z (see Appendix C of [RFC7836]);

1. SボックスセットはID-TC26-GOST-28147-Param-Zで固定されています([RFC7836]の付録Cを参照)。

2. key is parsed as a single big-endian integer (compared to the little-endian approach used in [GOST28147-89]), which results in different subkey values being used;

2. キーは単一のビッグエンディアン整数として解析されます([GOST28147-89]で使用されているリトルエンディアンアプローチ)。これにより、さまざまなサブキー値が使用されます。

3. data bytes are also parsed as a single big-endian integer (instead of being parsed as little-endian integer).

3. データバイトは、(リトルエンディアン整数として解析されるのではなく)単一のビッグエンディアン整数として解析されます。

Authors' Addresses

著者の住所

Vasily Dolmatov (editor) JSC "NPK Kryptonite" Spartakovskaya sq., 14, bld 2, JSC "NPK Kryptonite" Moscow 105082 Russian Federation

Vasily Dolmatov(編集者)JSC「NPKクリプトナイト」Spartakovskaya SQ。、14、BLD 2、JSC「NPKクリプトナイト」モスクワ105082ロシア連邦

   Email: vdolmatov@gmail.com
        

Dmitry Baryshkov Auriga, Inc. office 1410 Torfyanaya Doroga, 7F Saint-Petersburg 197374 Russian Federation

Dmitry Baryshkov Auriga、Inc。Office 1410 Torfyanaya Doroga、7Fサンピーターズバーグ197374ロシア連邦

   Email: dbaryshkov@gmail.com