[要約] RFC 5830は、GOST 28147-89というソビエト連邦/ロシアの標準化された対称鍵ブロック暗号に関する文書です。このRFCは、暗号化、復号化、およびメッセージ認証コード(MAC)アルゴリズムの詳細を提供し、データの機密性と完全性を保護するための手段を提供します。主に政府や金融機関などのセキュアな通信が必要な場面で利用されます。このRFCは、GOST 28147-89に基づく暗号技術の国際的な理解と利用を促進することを目的としています。関連するRFCには、GOST鍵交換やデジタル署名に関するRFCがありますが、RFC 5830自体は独立しており、直接的な関連RFCは特定されていません。

Independent Submission                                  V. Dolmatov, Ed.
Request for Comments: 5830                               Cryptocom, Ltd.
Category: Informational                                       March 2010
ISSN: 2070-1721
        

GOST 28147-89: Encryption, Decryption, and Message Authentication Code (MAC) Algorithms

GOST 28147-89:暗号化、復号化、およびメッセージ認証コード(MAC)アルゴリズム

Abstract

概要

This document is intended to be a source of information about the Russian Federal standard for electronic encryption, decryption, and message authentication algorithms (GOST 28147-89), which is one of the Russian cryptographic standard algorithms called GOST algorithms). Recently, Russian cryptography is being used in Internet applications, and this document has been created as information for developers and users of GOST 28147-89 for encryption, decryption, and message authentication.

このドキュメントは、電子暗号化、復号化、およびメッセージ認証アルゴリズムのロシア連邦基準(GOST 28147-89)に関する情報源であり、GOSTアルゴリズムと呼ばれるロシアの暗号標準アルゴリズムの1つです)。最近、ロシアの暗号化がインターネットアプリケーションで使用されており、このドキュメントは、暗号化、復号化、およびメッセージ認証のためにGOST 28147-89の開発者とユーザー向けの情報として作成されています。

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 a candidate for any level of Internet Standard; see Section 2 of RFC 5741.

これは、他のRFCストリームとは無関係に、RFCシリーズへの貢献です。RFCエディターは、このドキュメントの裁量でこのドキュメントを公開することを選択しており、実装または展開に対する価値について声明を発表しません。RFCエディターによって公開が承認されたドキュメントは、インターネット標準のレベルの候補者ではありません。RFC 5741のセクション2を参照してください。

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

このドキュメントの現在のステータス、任意のERRATA、およびそのフィードバックを提供する方法に関する情報は、http://www.rfc-editor.org/info/rfc5830で取得できます。

Copyright Notice

著作権表示

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

Copyright(c)2010 IETF Trustおよび文書著者として特定された人。全著作権所有。

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.

このドキュメントは、BCP 78およびIETFドキュメント(http://trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。

This document may not be modified, and derivative works of it may not be created, except to format it for publication as an RFC or to translate it into languages other than English.

このドキュメントは変更されておらず、RFCとして公開するためにフォーマットしたり、英語以外の言語に翻訳したりすることを除いて、その派生作業は作成されない場合があります。

Table of Contents

目次

   1. Introduction ....................................................3
      1.1. General Information ........................................3
   2. Applicability ...................................................3
   3. Definitions and Notations .......................................3
      3.1. Definitions ................................................3
      3.2. Notation ...................................................4
   4. General Statements ..............................................4
   5. The Electronic Codebook Mode ....................................6
      5.1. Encryption of Plain Text in the Electronic Codebook Mode ...6
      5.2. Decryption of the Ciphertext in the Electronic
           Codebook Mode ..............................................9
   6. The Counter Encryption Mode ....................................10
      6.1. Encryption of Plain Text in the Counter Encryption Mode ...10
      6.2. Decryption of Ciphertext in the Counter Encryption Mode ...13
   7. The Cipher Feedback Mode .......................................13
      7.1. Encryption of Plain Text in the Cipher Feedback Mode ......13
      7.2. Decryption of Ciphertext in the Cipher Feedback Mode ......14
   8. Message Authentication Code (MAC) Generation Mode ..............15
   9. Security Considerations ........................................17
   10. Normative References ..........................................17
   Appendix A. Values of the Constants C1 and C2 .....................18
   Appendix B. Contributors ..........................................19
        
1. Introduction
1. はじめに
1.1. General Information
1.1. 一般情報

[GOST28147-89] is the unified cryptographic transformation algorithm for information processing systems of different purposes, defining the encryption/decryption rules and the message authentication code (MAC) generation rules.

[GOST28147-89]は、暗号化/復号化ルールとメッセージ認証コード(MAC)生成ルールを定義する、さまざまな目的の情報処理システムの統一された暗号化変換アルゴリズムです。

This cryptographic transformation algorithm is intended for hardware or software implementation and corresponds to the cryptographic requirements. It puts no limitations on the encrypted information secrecy level.

この暗号化変換アルゴリズムは、ハードウェアまたはソフトウェアの実装を目的としており、暗号化要件に対応しています。暗号化された情報秘密レベルに制限はありません。

2. Applicability
2. 適用性

GOST 28147-89 defines the encryption/decryption model and MAC generation for a given message (document) that is meant for transmission via insecure public telecommunication channels between data processing systems of different purposes.

GOST 28147-89は、さまざまな目的のデータ処理システム間の安全でない公開通信チャネルを介して送信を目的とした、特定のメッセージ(ドキュメント)の暗号化/復号化モデルとMAC生成を定義します。

GOST 28147-89 is obligatory to use in the Russian Federation in all data processing systems providing public services.

GOST 28147-89は、公共サービスを提供するすべてのデータ処理システムでロシア連邦で使用する必要があります。

3. Definitions and Notations
3. 定義と表記
3.1. Definitions
3.1. 定義

The following terms are used in the standard:

標準では、次の用語が使用されています。

Running key: a pseudo-random bit sequence generated by a given algorithm for encrypting plain texts and decrypting encrypted texts.

実行キー:プレーンテキストを暗号化し、暗号化されたテキストを復号化するための特定のアルゴリズムによって生成された擬似ランダムビットシーケンス。

Encryption: the process of transforming plain text to encrypted data using a cipher.

暗号化:暗号を使用して、平易なテキストを暗号化されたデータに変換するプロセス。

MAC: an information string of fixed length that is generated from plain text and a key according to some rule and added to the encrypted data for protection against data falsification.

MAC:プレーンテキストから生成された固定長の情報文字列と、何らかのルールに従ってキーから生成され、データの改ざんに対する保護のために暗号化されたデータに追加されました。

Key: a defined secret state of some parameters of a cryptographic transformation algorithm, that provides a choice of one transformation out of all the possible transformations.

キー:すべての可能な変換から1つの変換の選択を提供する暗号化変換アルゴリズムのいくつかのパラメーターの定義された秘密の状態。

Cryptographic protection: data protection using the data cryptographic transformations.

暗号化保護:データ保護データ保護暗号化された変換。

Cryptographic transformation: data transformation using encryption and (or) MAC.

暗号化変換:暗号化と(または)Macを使用したデータ変換。

Decryption: the process of transforming encrypted data to plain text using a cipher.

復号化:暗号化されたデータを暗号を使用してプレーンテキストに変換するプロセス。

Initialisation vector: initial values of plain parameters of a cryptographic transformation algorithm.

初期化ベクトル:暗号化変換アルゴリズムの平易なパラメーターの初期値。

Encryption equation: a correlation showing the process of generating encrypted data out of plain text as a result of transformations defined by the cryptographic transformation algorithm.

暗号化方程式:暗号化変換アルゴリズムによって定義された変換の結果として、平易なテキストから暗号化されたデータを生成するプロセスを示す相関。

Decryption equation: a correlation showing the process of generating plain text out of encrypted data as a result of transformations defined by the cryptographic transformation algorithm.

復号化方程式:暗号化変換アルゴリズムによって定義された変換の結果として、暗号化されたデータから平易なテキストを生成するプロセスを示す相関。

Cipher: a set of reversible transformations of the set of possible plain texts onto the set of encrypted data, made after certain rules and using keys.

Cipher:特定のルールの後に作成されたキーを使用して、暗号化されたデータのセットに可能なプレーンテキストのセットの可逆的変換のセット。

3.2. Notation
3.2. 表記

In this document, the following notations are used:

このドキュメントでは、次の表記が使用されています。

^ is a power operator.

^はパワーオペレーターです。

(+) is a bitwise addition of the words of the same length modulo 2.

()は、同じ長さモジュロ2の単語を少し追加します。

[+] is an addition of 32-bit vectors modulo 2^32.

[]は、32ビットベクトル測定値の追加です。

[+]' is an addition of the 32-bit vectors modulo 2^32-1.

[] 'は、32ビットベクトルModulo 2^32-1の追加です。

1..N is all values from 1 to N.

1..nはすべて1からnまでの値です。

4. General Statements
4. 一般的な声明

The structure model of the cryptographic transformation algorithm (a cryptographic model) contains:

暗号化変換アルゴリズム(暗号化モデル)の構造モデルには次のものが含まれています。

- a 256-bit key data store (KDS) consisting of eight 32-bit registers (X0, X1, X2, X3, X4, X5, X6, X7);

- 8つの32ビットレジスタ(x0、x1、x2、x3、x4、x5、x6、x7)で構成される256ビットキーデータストア(KDS)。

- four 32-bit registers (N1, N2, N3, N4);

- 4つの32ビットレジスタ(N1、N2、N3、N4);

- two 32-bit registers (N5 and N6) containing constants C1 and C2;

- 定数C1およびC2を含む2つの32ビットレジスタ(N5およびN6)。

- two 32-bit adders modulo 2^32 (CM1, CM3);

- 2つの32ビット加算器Modulo 2^32(cm1、cm3);

- a 32-bit adder of bitwise sums modulo 2 (CM2);

- ビットワイズサムモジュロ2(cm2)の32ビット加算器。

- a 32-bit adder modulo (2^32-1) (CM4);

- 32ビットアデターモジュロ(2^32-1)(CM4);

- an adder modulo 2 (CM5), with no limitation to its width;

- 幅に制限されていない、Adder Modulo 2(CM5)。

- a substitution box (K);

- 代替ボックス(k);

- a register for a cyclic shift of 11 steps to the top digit (R).

- 最上位桁(R)への11ステップの周期的なシフトの登録。

A substitution box (S-box) K consists of eight substitution points K1, K2, K3, K4, K5, K6, K7, K8, with 64-bit memory. A 32-bit vector coming to the substitution box is divided into eight successive 4-bit vectors, and each of them is transformed into a 4-bit vector by a corresponding substitution point. A substitution point is a table consisting of 16 lines, each containing four bits. The incoming vector defines the line address in the table, and the contents of that line is the outgoing vector. Then, these 4-bit outgoing vectors are successively combined into a 32-bit vector.

置換ボックス(S-Box)Kは、64ビットメモリを備えた8つの置換点K1、K2、K3、K4、K5、K6、K7、K8で構成されています。置換ボックスに来る32ビットベクトルは、8つの連続した4ビットベクトルに分割され、それぞれが対応する置換点によって4ビットベクトルに変換されます。置換点は、それぞれが4ビットを含む16本の線で構成されるテーブルです。着信ベクトルはテーブル内の線アドレスを定義し、そのラインの内容は発信ベクトルです。次に、これらの4ビットの発信ベクトルは、32ビットベクトルに連続して結合されます。

Remark: the standard doesn't define any S-boxes. Some of them are defined in [RFC4357].

注:標準はSボックスを定義しません。それらのいくつかは[RFC4357]で定義されています。

When adding and cyclically shifting binary vectors, the registers with larger numbers are considered the top digits.

バイナリベクトルを循環的に変更して追加する場合、数値が多いレジスタは最上桁と見なされます。

When writing a key (W1, W2, ..., W256), Wq = 0..1, q = 1..256, in the KDS the value:

キー(w1、w2、...、w256)を書くとき、wq = 0..1、q = 1..256、kdsの値:

- W1 is written into the 1st bit of the register X0;

- W1は、レジスタx0の1ビットに書き込まれます。

- the value W2 is written into the 2nd bit of the register X0 (etc.);

- 値W2は、レジスタx0(など)の2番目のビットに書き込まれます。

- the value W32 is written into the 32nd bit of the register X0;

- 値w32は、レジスタx0の32番目のビットに書き込まれます。

- the value W33 is written into the 1st bit of the register X1;

- 値w33は、レジスタx1の最初のビットに書き込まれます。

- the value W34 is written into the 2nd bit of the register X1 (etc.);

- 値w34は、レジスタx1(など)の2番目のビットに書き込まれます。

- the value W64 is written into the 32nd bit of the register X1;

- 値w64は、レジスタx1の32番目のビットに書き込まれます。

- the value W65 is written into the 1st bit of the register X2 (etc.);

- 値w65は、レジスタx2(など)の1ビットに書き込まれます。

- the value W256 is written into the 32nd bit of the register X7.

- 値w256は、レジスタx7の32番目のビットに書き込まれます。

When rewriting the information, the value of the p-th bit of one register (adder) is written into the p-th bit of another register (adder).

情報を書き換えると、1つのレジスタ(ADDER)のPTHビットの値は、別のレジスタ(ADDER)のPthビットに書き込まれます。

The values of the constants C1 and C2 in the registers N5 and N6 are in the Appendix 1.

レジスタN5およびN6の定数C1およびC2の値は、付録1にあります。

The keys defining fillings of KDS and the substitution box K tables are secret elements and are provided in accordance with the established procedure.

KDSと置換ボックスKテーブルの詰め物を定義するキーは秘密の要素であり、確立された手順に従って提供されます。

The filling of the substitution box K is described in GOST 28147-89 as a long-term key element common for a whole computer network. Usually, K is used as a parameter of algorithm, some possible sets of K are described in [RFC4357].

代替ボックスKの充填は、GOST 28147-89で、コンピューターネットワーク全体に共通の長期的なキー要素として説明されています。通常、Kはアルゴリズムのパラメーターとして使用され、Kのいくつかの可能なセットは[RFC4357]で説明されています。

The cryptographic model contemplates four working modes:

暗号化モデルは、4つの作業モードを熟考しています。

- data encryption (decryption) in the electronic codebook (ECB) mode,

- 電子コードブック(ECB)モードのデータ暗号化(復号化)、

- data encryption (decryption) in the counter (CNT) mode,

- カウンター(CNT)モードのデータ暗号化(復号化)、

- data encryption (decryption) in the cipher feedback (CFB) mode, and

- 暗号フィードバック(CFB)モードでのデータ暗号化(復号化)、および

- the MAC generation mode.

- Mac生成モード。

[RFC4357] also describes the CBC mode of GOST 28147-89, but this mode is not a part of the standard.

[RFC4357]は、GOST 28147-89のCBCモードも説明していますが、このモードは標準の一部ではありません。

5. The Electronic Codebook Mode
5. 電子コードブックモード
5.1. Encryption of Plain Text in the Electronic Codebook Mode
5.1. 電子コードブックモードでのプレーンテキストの暗号化
   The plain text to be encrypted is split into 64-bit blocks.  Input of
   a binary data block Tp = (a1(0), a2(0), ... , a31(0), a32(0), b1(0),
   b2(0), ..., b32(0)) into the registers N1 and N2 is done so that the
   value of a1(0) is put into the first bit of N1, the value of a2(0) is
   put into the second bit of N1, etc., and the value of a32(0) is put
   into the 32nd bit of N1.  The value of b1(0) is put into the first
   bit of N2, the value of b2(0) is put into the 2nd bit of N2, etc.,
   and the value of b32(0) is input into the 32nd bit of N2.
        

The result is the state (a32(0), a31(0), ..., a2(0), a1(0)) of the register N1 and the state (b32(0), b31(0), ..., b1(0)) of the register N2.

結果は、レジスタN1および状態(B32(0)、B31(0)、..の状態(A32(0)、A31(0)、...、A2(0)、A1(0))、..レジスタN2の。、B1(0))。

The 256 bits of the key are entered into the KDS. The contents of eight 32-bit registers X0, X1, ..., X7 are:

キーの256ビットがKDSに入力されます。8つの32ビットレジスタx0、x1、...、x7の内容は次のとおりです。

X0 = W32, W31, ..., W2, W1

x0 = w32、w31、...、w2、w1

X1 = W64, W63, ..., W34, W33

x1 = w64、w63、...、w34、w33

      . . . . . . . . . . . . . . .
        

X7 = W256, W255, ..., W226, W225

X7 = W256、W255、...、W226、W225

The algorithm for enciphering 64-bit blocks of plain text in the electronic codebook mode consists of 32 rounds.

電子コードブックモードで64ビットブロックのプレーンテキストを取り付けるためのアルゴリズムは、32ラウンドで構成されています。

In the first round, the initial value of register N1 is added modulo 2^32 in the adder CM1 to the contents of the register X0. Note: the value of register N1 is unchanged.

最初のラウンドでは、レジスタn1の初期値が、アダーCM1に登録X0の内容に測定値2^32を追加します。注:レジスタN1の値は変更されていません。

The result of the addition is transformed in the substitution block K, and the resulting vector is put into the register R, where it is cyclically shifted by 11 steps towards the top digit. The result of this shift is added bitwise modulo 2 in the adder CM2 to the 32-bit contents of the register N2. The result produced in CM2 is then written into N1, and the old contents of N1 are written in N2. Thus, the first round ends.

添加の結果は置換ブロックkで変換され、結果のベクトルがレジスタRに配置され、そこで最上位桁に向かって11ステップで周期的にシフトされます。このシフトの結果は、Adder CM2のビットワイズモジュロ2をレジスタN2の32ビットコンテンツに追加します。次に、CM2で生成された結果はN1に書き込まれ、N1の古い内容物はN2で記述されます。したがって、最初のラウンドは終了します。

The subsequent rounds are similar to the first one:

後続のラウンドは最初のラウンドに似ています。

- in the second round, the contents of X1 are read from the KDS;

- 第2ラウンドでは、X1の内容がKDSから読み取られます。

- in the third round, the contents of X2 are read from the KDS, etc.;

- 第3ラウンドでは、X2の内容がKDなどから読み取られます。

- in the 8th round, the contents of X7 are read from the KDS.

- 第8ラウンドでは、X7の内容がKDSから読み取られます。

- in rounds 9 through 16 and 17 through 24, the contents of the KDS are read in the same order:

- ラウンド9〜16および17〜24では、KDの内容が同じ順序で読み取られます。

X0, X1, X2, X3, X4, X5, X6, X7.

x0、x1、x2、x3、x4、x5、x6、x7。

- in the last eight rounds from the 25th to the 32nd, the contents of the KDS are read backwards:

- 25日から32日までの最後の8ラウンドでは、KDSの内容が後方に読まれます。

X7, X6, X5, X4, X3, X2, X1, X0.

x7、x6、x5、x4、x3、x2、x1、x0。

Thus, during the 32 rounds of encryption, the following order of choosing the registers' contents is implemented:

したがって、32ラウンドの暗号化中に、レジスタの内容を選択する次の順序が実装されます。

X0, X1, X2, X3, X4, X5, X6, X7, X0, X1, X2, X3, X4, X5, X6, X7,

x0、x1、x2、x3、x4、x5、x6、x7、x0、x1、x2、x3、x4、x5、x6、x7、x7、

X0, X1, X2, X3, X4, X5, X6, X7, X7, X6, X5, X4, X3, X2, X1, X0

x0、x1、x2、x3、x4、x5、x6、x7、x7、x6、x5、x4、x3、x2、x1、x0

In the 32nd round, the result in the adder CM2 is written into the register N2, and the old contents of register N1 are unchanged.

32回目のラウンドでは、Adder CM2の結果がレジスタN2に書き込まれ、レジスタN1の古い内容は変更されていません。

After the 32nd round, the contents of the registers N1 and N2 are an encrypted data block corresponding to a block of plain text.

32回目のラウンドの後、レジスタN1とN2の内容は、プレーンテキストのブロックに対応する暗号化されたデータブロックです。

The equations for enciphering in the electronic codebook mode are:

電子コードブックモードでのエンキングの方程式は次のとおりです。

      |a(j) = (a(j-1) [+] X(j-1)(mod 8))*K*R (+) b (j-1)
      |                                                      j = 1..24;
      |b(j) = a(j-1)
        
      |a(j) = (a(j-1) [+] X(32-j))*K*R (+) b(j-1)
      |                                          j = 25..31; a32 = a31;
      |b(j) = a(j-1)
        
      b(32) = (a(31) [+] X0)*K*R (+) b(31)                        j=32,
        

where:

ただし:

   a(0) = (a32(0), a31(0), ..., a1(0)) constitutes the initial contents
   of N1 before the first round of encryption;
        
   b(0) = (b32(0), b31(0), ..., b1(0)) constitutes the initial contents
   of N2 before the first round of encryption;
        
   a(j) = (a32(j), a31(j), ..., a1(j)) constitutes the contents of N1
   after the j-th round of encryption;
        
   b(j) = (b32(j), b31(j), ..., b1(j)) constitutes the contents of N2
   after the j-th round of encryption, j = 1..32.
        

R is the operation of cyclic shift towards the top digit by 11 steps, as follows:

rは、次のように、11段階で上部数字に向かう周期シフトの動作です。

R(r32, r31, r30, r29, r28, r27, r26, r25, r24, r23, r22, r21, r20, ..., r2, r1) =

R(R32、R31、R30、R29、R28、R27、R26、R25、R24、R23、R22、R21、R20、...、R2、R1)=)

(r21, r20, ..., r2, r1, r32, r31, r30, r29, r28, r27, r26, r25, r24, r23, r22)

(R21、R20、...、R2、R1、R32、R31、R30、R29、R28、R27、R26、R25、R24、R23、R22)

The 64-bit block of ciphertext Tc is taken out of the registers N1, N2 in the following order:

Ciphertext TCの64ビットブロックは、次の順序でレジスタN1、N2から取り出します。

the first, second, ..., 32nd bit of the register N1, then the first, second, ..., 32nd bit of the register N2, i.e.,

1番目、2番目、...、レジスタn1の32ビット、次に、1番目、2番目、...、レジスタn2の32番目のビット、つまり、つまり、

Tc = a1(32), a2(32), ..., a32(32), b1(32), b2(32), ..., b32(32)).

TC = A1(32)、A2(32)、...、A32(32)、B1(32)、B2(32)、...、B32(32))。

The remaining blocks of the plain text in electronic codebook mode are encrypted in the same fashion.

電子コードブックモードのプレーンテキストの残りのブロックは、同じ方法で暗号化されます。

5.2. Decryption of the Ciphertext in the Electronic Codebook Mode
5.2. 電子コードブックモードでの暗号文の復号化

The same 256-bit key that was used for encryption is loaded into the KDS, the encrypted data to be deciphered is divided into 64-bit blocks. The loading of any binary information block

暗号化に使用された同じ256ビットキーがKDSにロードされ、解読される暗号化されたデータは64ビットブロックに分割されます。バイナリ情報ブロックの読み込み

      Tc = (a1(32), a2(32), ..., a32(32), b1(32), b2(32), ..., b32(32))
        

into the registers N1 and N2 is done in such a way that:

レジスタにN1とN2は次のように行われます。

- the contents of a1(32) are written into the first bit of N1;

- A1(32)の内容は、N1の最初のビットに書き込まれます。

- the contents of a2(32) are written into the second bit of N1 (and so on);

- A2(32)の内容は、N1の2番目のビット(など)に書き込まれます。

- the contents of a32(32) are written into the 32nd bit of N1;

- A32(32)の内容は、N1の32ビットに書き込まれます。

- the contents of b1(32) are written into the first bit of N2 (and so on);

- B1(32)の内容は、N2の最初のビット(など)に書き込まれます。

- and the contents of b32(32) are written into the 32nd bit of N2.

- B32(32)の内容は、N2の32ビットに書き込まれます。

The decryption procedure uses the same algorithm as the encryption of plain text, with one exception: the contents of the registers X0, X1, ..., X7 are read from the KDS in the decryption rounds in the following order:

復号化手順では、平易なテキストの暗号化と同じアルゴリズムを使用します。1つの例外を除きます。レジスタx0、x1、...、x7の内容は、次の順序で復号化ラウンドのKDSから読み取られます。

X0,X1,X2,X3,X4,X5,X6,X7, X7,X6,X5,X4,X3,X2,X1,X0,

x0、x1、x2、x3、x4、x5、x6、x7、x7、x6、x5、x4、x3、x2、x1、x0、x0、

X7,X6,X5,X4,X3,X2,X1,X0, X7,X6,X5,X4,X3,X2,X1,X0.

x7、x6、x5、x4、x3、x2、x1、x0、x7、x6、x5、x4、x3、x2、x1、x0。

The decryption equations are:

復号化方程式は次のとおりです。

      |a(32-j) = (a(32-j+1) [+] X(j-1))*K*R (+) b(32-j+1)
      |                                                        j = 1..8;
      |b(32-1) = a(32-j+1)
        
      |a(32-j) = (a(32-j+1) [+] X(j-1)(mod 8))*K*R (+) b(32-j+1)
      |                                                       j = 9..31;
      |b(32-1) = a(32-j+1)
        
      |a(0) = a(1)
      |                                                            j=32.
      |b(0) = (a(1) [+] X0)*K*R (+) b1
        

The fillings of the adders N1 and N2 after 32 working rounds are a plain text block.

32回の作業ラウンドの後の加算器N1とN2の詰め物は、単純なテキストブロックです。

      Tp = (a1(0), a2(0), ... , a32(0), b1(0), b2(0), ..., b32(0))
        

corresponding to the encrypted data block:

暗号化されたデータブロックに対応する:

- the value of a1(0) of the block Tp corresponds to the contents of the first bit of N1;

- ブロックTPのA1(0)の値は、N1の最初のビットの内容に対応します。

- the value of a2(0) corresponds to the contents of the second bit of N1 (etc.);

- A2(0)の値は、N1(ETC)の2番目のビットの内容に対応します。

- the value of b1(0) corresponds to the contents of the first bit of N2;

- B1(0)の値は、N2の最初のビットの内容に対応します。

- the value of b2(0) corresponds to the contents of the second bit of N2 (etc.);

- B2(0)の値は、N2(ETC)の2番目のビットの内容に対応します。

- the value of b32(0) corresponds to the contents of 32nd bit of N2;

- B32(0)の値は、N2の32ビットの内容に対応しています。

- the remaining blocks of encrypted data are decrypted similarly.

- 暗号化されたデータの残りのブロックも同様に復号化されます。

The encryption algorithm in the electronic codebook mode of a 64-bit block Tp is denoted by A, that is:

64ビットブロックTPの電子コードブックモードの暗号化アルゴリズムは、A、つまり、次のことで示されます。

      A(Tp) is A(a(0), b(0)) = (a(32), b(32)) = Tc.
        
6. The Counter Encryption Mode
6. カウンター暗号化モード
6.1. Encryption of Plain Text in the Counter Encryption Mode
6.1. カウンター暗号化モードでのプレーンテキストの暗号化

The plain text divided into 64-bit blocks Tp(1), Tp(2), ..., Tp(M-1), Tp(M) is encrypted in the counter encryption mode by bitwise addition modulo 2 in the adder CM5 with the running key Gc produced in 64-bit blocks, that is:

64ビットブロックTP(1)、TP(2)、...、TP(M-1)、TP(M)に分割されたプレーンテキストは、Adder CM5のビットワイズ加算モジュロ2によってカウンター暗号化モードで暗号化されます。ランニングキーGCが64ビットブロックで生成された場合、つまり:

      Gc = (Gc(1), Gc(2), ..., Gc(M-1), Gc(M))
        

where M is defined by the size of the plain text being encrypted. Gc(i) is the i-th 64-bit block where i=1..M, the number of bits in a block Tp(M) can be less than 64. In this case, the unused part of the running key block Gc(M) is discarded.

ここで、Mは暗号化されているプレーンテキストのサイズによって定義されます。GC(I)はI = 1..Mで、ブロックTP(M)のビット数が64未満であるI-TH 64ビットブロックです。この場合、実行中のキーブロックの使用されていない部分はGC(M)が破棄されます。

   256 bits of the key are put into the KDS.  The registers N1 and N2
   accept a 64-bit binary sequence (an initialisation vector) S = (S1,
   S2, ..., S64), that is, the initial filling of these registers for
   subsequent generation of M blocks of the running key.  The
   initialisation vector is put into the registers N1 and N2 so:
        

- the value of S1 is written into the first bit of N1;

- S1の値は、N1の最初のビットに書き込まれます。

- the value of S2 is written into the second bit of N1 (etc.);

- S2の値は、N1(など)の2番目のビットに書き込まれます。

- the value of S32 is written into the 32nd bit of N1;

- S32の値は、N1の32ビットに書き込まれます。

- the value of S33 is written into the first bit of N2;

- S33の値は、N2の最初のビットに書き込まれます。

- the value of S34 is written into the 33th bit of N2 (etc.);

- S34の値は、33ビットN2(など)に書き込まれます。

- the value of S64 is written into the 32nd bit of N2.

- S64の値は、N2の32ビットに書き込まれます。

   The initial filling of the registers N1 and N2 (the initialisation
   vector S) is encrypted in the electronic codebook mode in accordance
   with the requirements from section 5.1.  The result of that
   encryption A(S) = (Y0, Z0) is rewritten into the 32-bit registers N3
   and N4 so as the contents of N1 are written into N3, and the contents
   of N2 are written into N4.
        

The filling of the register N4 is added modulo (2^32-1) in the adder CM4 to the 32-bit constant C1 from the register N6; the result is written into N4. The filling of the register N3 is added modulo 2^32 in the adder CM3 with the 32-bit constant C2 from the register N5; the result is written into N3.

レジスタN4の充填は、レジスタN6から32ビット定数C1に加算器CM4にモジュロ(2^32-1)を追加します。結果はN4に書き込まれます。レジスタN3の充填は、レジスタN5から32ビット定数C2を使用して、ADDER CM3にモジュロ2^32を追加します。結果はN3に書き込まれます。

The filling of N3 is copied into N1, and the filling of N4 is copied into N2, while the fillings of N3 and N4 are kept.

N3の充填はN1にコピーされ、N4の詰め物はN2にコピーされ、N3とN4の詰め物は保持されます。

The filling of N1 and N2 is encrypted in the electronic codebook mode according to the requirements of section 5.1. The resulting encrypted filling of N1 and N2 is the first 64-bit block of the running key Gc(1), this block is bitwise added modulo 2 in the adder CM5 with the first 64-bit block of the plain text:

N1とN2の充填は、セクション5.1の要件に従って電子コードブックモードで暗号化されます。結果の暗号化されたN1とN2の充填は、実行中のキーGC(1)の最初の64ビットブロックです。このブロックは、プレーンテキストの最初の64ビットブロックを備えたAdder CM5にビットワイズで追加されたモジュロ2です。

      Tp(1) = (t1(1), t2(1), ..., t63(1), t64(1)).
        

The result of this addition is a 64-bit block of the encrypted data:

この追加の結果、暗号化されたデータの64ビットブロックがあります。

      Tc(1) = (tau1(1), tau2(1), ..., tau63(1), tau64(1)).
        

The value of tau1(1) of the block Tc(1) is the result of the addition of modulo 2 in the CM5 the value t1(1) of the block Tp(1) to the value of the first bit of N1; the value of tau2(1) of the block Tc(1) is the result of addition modulo 2 in the CM5 the value of t2(1) from the block Tp(1) to the value of the second bit of N1, etc.; the value of tau64(1) of the block Tc(1) is the result of addition modulo 2 in the CM5 of the value t64(1) of the block Tp(1) to the value of the 32nd bit of N2.

ブロックTc(1)のTau1(1)の値は、cm5に測度2を添加した結果です。ブロックTp(1)の値T1(1)は、N1の最初のビットの値に値になります。ブロックTC(1)のTau2(1)の値は、CM5の追加モジュロ2の結果であり、ブロックTP(1)からN1などの2番目のビットの値までのT2(1)の値です。;ブロックTC(1)のTau64(1)の値は、ブロックTP(1)の値T64(1)のCM5の追加モジュロ2の結果であり、N2の32ビットの値です。

To get the next 64-bit block of the running key Gc(2), the filling of N4 is added modulo (2^32-1) in the adder CM4 with the constant C1 from N6; the filling of N3 is added modulo 2^32 in the adder CM3 with the constant C2 from N5. The new filling of N3 is copied into N1; the new filling of N4 is copied into N2; the fillings of N3 and N4 are kept.

実行中のキーGC(2)の次の64ビットブロックを取得するために、N4の補充CM4でN4の充填がADDER CM4にモジュロ(2^32-1)を追加します。N5のN3の充填は、ADDER CM3にN5からの定数C2を含むモジュロ2^32を追加します。N3の新しい詰め物がN1にコピーされます。N4の新しい詰め物がN2にコピーされます。N3とN4の詰め物が保持されます。

The filling of N1 and N2 is encrypted in the electronic codebook mode according to the requirements of section 5.1. The resulting encrypted filling of N1 and N2 is the second 64-bit block of the running key Gc(2); this block is bitwise added modulo 2 in the adder CM5 with the first 64-bit block of the plain text Tp(2). The remaining running key blocks Gc(3), Gc(4), ..., Gc(M) are generated and the plain text blocks Tp(3), Tp(4), ..., Tp(M) are encrypted similarly. If the length of the last M-th block of the plain text is less than 64 bits, then only the corresponding number of bits from the last M-th block of the running key is used; remaining bits are discarded.

N1とN2の充填は、セクション5.1の要件に従って電子コードブックモードで暗号化されます。結果の暗号化されたN1とN2の充填は、実行中のキーGCの2番目の64ビットブロックです(2)。このブロックは、プレーンテキストTP(2)の最初の64ビットブロックで、Adder CM5にModulo 2をビットごとに追加しています。残りの実行キーブロックGC(3)、GC(4)、...、GC(M)が生成され、プレーンテキストブロックTP(3)、TP(4)、...、TP(M)が暗号化されます同様に。プレーンテキストの最後のm番目のブロックの長さが64ビット未満の場合、実行中のキーの最後のm番目のブロックからの対応する数のビットのみが使用されます。残りのビットは破棄されます。

The initialisation vector S and the blocks of encrypted data Tc(1), Tc(2), ..., Tc(M) are transmitted to the telecommunication channel or to the computer memory.

初期化ベクトルSおよび暗号化データTC(1)、TC(2)、...、TC(M)のブロックは、通信チャネルまたはコンピューターメモリに送信されます。

The encryption equation is:

暗号化方程式は次のとおりです。

      Tc(i) = A(Y[i-1] [+] C2, Z[i-1]) [+]' C1) (+) Tp(i)
            = Gc(i) (+) Tp(i)     i=1..M
        

where:

ただし:

Y[i] is the contents of the register N3 after encrypting the i-th block of the plain text Tp(i);

y [i]は、プレーンテキストTP(i)のi番目のブロックを暗号化した後のレジスタN3の内容です。

Z(i) is the contents of the register N4 after encrypting the i-th block of the plain text Tp(i);

z(i)は、プレーンテキストTP(i)のi番目のブロックを暗号化した後のレジスタN4の内容です。

(Y[0], Z[0]) = A(S).

(y [0]、z [0])= a(s)。

6.2. Decryption of Ciphertext in the Counter Encryption Mode
6.2. カウンター暗号化モードでの暗号文の復号化

256 bits of the key that was used for encrypting the data Tp(1), Tp(2), ..., Tp(M) are put into the KDS. The initialisation vector S is put into the registers N1 and N2 and, like in the section 6.1 M blocks of the running key, Gc(1), Gc(2), ..., Gc(M) are generated. The encrypted data blocks Tc(1), Tc(2), ..., Tc(M) are added bitwise modulo 2 in the adder CM5 with the blocks of the running key, and this results in the blocks of plain text Tp(1), Tp(2), ..., Tp(M), and Tp(M) may contain less than 64 bit.

データTP(1)、TP(2)、...、TP(M)の暗号化に使用されたキーの256ビットがKDSに入れられます。初期化ベクトルsはレジスタN1およびN2に配置され、実行キーのセクション6.1 mブロックのように、GC(1)、GC(2)、...、GC(M)が生成されます。暗号化されたデータブロックTC(1)、TC(2)、...、TC(M)は、実行中のキーのブロックを使用してAdder CM5にビットワイズモジュロ2を追加し、プレーンテキストTPのブロックになります(1)、TP(2)、...、TP(M)、およびTP(M)には64ビット未満が含まれる場合があります。

The decryption equation is:

復号化方程式は次のとおりです。

      Tp(i) = A (Y[i-1] [+] C2, Z[i-1] [+]' C1) (+) Tc(i)
            = Gc(i) (+) Tc(i)     i = 1..M
        
7. The Cipher Feedback Mode
7. 暗号フィードバックモード
7.1. Encryption of Plain Text in the Cipher Feedback Mode
7.1. 暗号フィードバックモードでのプレーンテキストの暗号化
   The plain text is divided into 64-bit blocks Tp(1), Tp(2), ..., Tp(M)
   and encrypted in the cipher feedback mode by bitwise addition modulo
   2 in the adder CM5 with the running key Gc generated in 64-bit
   blocks, i.e., Gc(i)=(Gc(1), Gc(2), ..., Gc(M)), where M is defined by
                                                                   ___
   the length of the plain text, Gc(i) is the i-th 64-bit block, i=1,M.
   The number of bits in the block Tp(M) may be less than 64.
        
   256 bits of the key are put into the KDS.  The 64-bit initialisation
   vector S = (S1, S2, ..., S64) is put into N1 and N2 as described in
   section 6.1.
        
   The initial filling of N1 and N2 is encrypted in the electronic
   codebook mode in accordance with the requirements in section 6.1.  If
   resulting encrypted filling N1 and N2 is the first 64-bit block of
   the running key Gc(1)=A(S), then this block is added bitwise modulo 2
   with the first 64-bit block of plain text Tp(1) = (t1(1), t2(1), ...,
   t64(1)).
        

The result is a 64-bit block of encrypted data

結果は、暗号化されたデータの64ビットブロックです

      Tc(1) = (tau1(1), tau2(1), ..., tau64(1)).
        

The block of encrypted data Tc(1) is simultaneously the initial state of N1 and N2 for generating the second block of the running key Gc(2) and is written on feedback in these registers. Here:

暗号化されたデータTC(1)のブロックは、同時に、実行中のキーGC(2)の2番目のブロックを生成するためのN1とN2の初期状態であり、これらのレジスタでフィードバックに記載されています。ここ:

- the value of tau1(1) is written into the first bit of N1;

- Tau1(1)の値は、N1の最初のビットに書き込まれます。

- the value of tau2(1) is written into the second bit of N1, etc.;

- Tau2(1)の値は、N1などの2番目のビットに書き込まれます。

- the value of tau32(1) is written into the 32nd bit of N1;

- Tau32(1)の値は、N1の32ビットに書き込まれます。

- the value of tau33(1) is written into the first bit of N2;

- Tau33(1)の値は、N2の最初のビットに書き込まれます。

- the value of tau34(1) is written into the second bit of N2, etc.;

- Tau34(1)の値は、N2などの2番目のビットに書き込まれます。

- the value of tau64(1) is written into the 32nd bit of N2.

- Tau64(1)の値は、N2の32ビットに書き込まれます。

The filling of N1 and N2 is encrypted in the electronic codebook mode in accordance with the requirements in the section 6.1. The encrypted filling of N1 and N2 makes the second 64-bit block of the running key Gc(2), this block is added bitwise modulo 2 in the adder CM5 to the second block of the plain text Tp(2).

N1とN2の充填は、セクション6.1の要件に従って電子コードブックモードで暗号化されます。N1とN2の暗号化された充填により、実行中のキーGC(2)の2番目の64ビットブロックが作成されます。このブロックは、Adder CM5のビットワイズモジュロ2をプレーンテキストTP(2)の2番目のブロックに追加します。

The generation of subsequent blocks of the running key Gc(i) and the encryption of the corresponding blocks of the plain text Tp(i) (i = 3..M) are performed similarly. If the length of the last M-th block of the plain text is less than 64 bits, only the corresponding number of bits of the M-th block of the running key Gc(M) is used; remaining bits are discarded.

実行中のキーGC(I)の後続ブロックの生成と、プレーンテキストTP(i)(i = 3..M)の対応するブロックの暗号化も同様に実行されます。プレーンテキストの最後のm番目のブロックの長さが64ビット未満の場合、実行中のキーGC(M)のm番目のブロックのビット数のみが使用されます。残りのビットは破棄されます。

The encryption equations in the cipher feedback mode are:

暗号フィードバックモードの暗号化方程式は次のとおりです。

      |Tc(1) = A(S) (+) Tp(1) = Gc(1) (+) Tp(1)
      |
      |Tc(i) = A(Tc(i-1)) (+) Tp(i) = Gc(i) + Tp(i), i = 2..M.
        

The initialisation vector S and the blocks of encrypted data Tc(1), Tc(2), ..., Tc(M) are transmitted into the telecommunication channel or to the computer memory.

初期化ベクトルSおよび暗号化データTC(1)、TC(2)、...、TC(M)のブロックは、通信チャネルまたはコンピューターメモリに送信されます。

7.2. Decryption of Ciphertext in the Cipher Feedback Mode
7.2. 暗号フィードバックモードでの暗号文の復号化

256 bits of the key used for the encryption of Tp(1), Tp(2), ..., Tp(M) are put into the KDS. The initialisation vector S is put into N1 and N2 similar to 6.1.

TP(1)、TP(2)、...、TP(M)の暗号化に使用されるキーの256ビットがKDに入れられます。初期化ベクトルsは、6.1と同様のN1とN2に配置されます。

The initial filling of N1 and N2 (the initialisation vector S) is encrypted in the electronic codebook mode in accordance with the subsection 6.1. The encrypted filling of N1, N2 is the first block of the running key Gc(1) = A(S), this block is added bitwise modulo 2 in the adder CM5 with the encrypted data block Tc(1). This results in the first block of plain text Tp(1).

N1とN2(初期化ベクトルS)の初期充填は、サブセクション6.1に従って電子コードブックモードで暗号化されます。N1の暗号化された充填、N2は実行中のキーGC(1)= a(s)の最初のブロックです。このブロックは、暗号化されたデータブロックTC(1)で、Adder CM5にビットワイズモジュロ2を追加します。これにより、プレーンテキストTP(1)の最初のブロックが発生します。

The block of encrypted data Tc(1) makes the initial filling of N1, N2 for generating the second block of the running key Gc(2). The block Tc(1) is written in N1 and N2 in accordance with the requirements in the subsection 6.1, the resulted block Gc(2) is added bitwise modulo 2 in the adder CM5 to the second block of the encrypted data Tc(2). This results in the block of plain text Tc(2).

暗号化されたデータTC(1)のブロックは、実行中のキーGC(2)の2番目のブロックを生成するためにN1、N2の初期充填を行います。ブロックTC(1)は、サブセクション6.1の要件に従ってN1およびN2で記述されています。。これにより、プレーンテキストTC(2)がブロックされます。

Similarly, the blocks of encrypted data Tc(2), Tc(3), ..., Tc(M-1) are written in N1, N2 successively, and the blocks of the running key Gc(3), Gc(4), ..., Gc(M) are generated out of them in the electronic codebook mode. The blocks of the running key are added bitwise modulo 2 in the adder CM5 to the blocks of the encrypted data Tc(3), Tc(4), ..., Tc(M), this results in the blocks of plain text Tp(3), Tp(4), ..., Tp(M); here, the number of bits in the last block of the plain text Tp(M) can be less than 64 bit.

同様に、暗号化されたデータTC(2)、TC(3)、...、TC(M-1)のブロックはN1、N2で連続して記述され、実行中のキーGC(3)、GC(4)で記述されています。)、...、GC(M)は、電子コードブックモードでそれらから生成されます。ランニングキーのブロックは、暗号化されたデータTC(3)、TC(4)、...、TC(M)のブロックにAdder CM5のビットワイズモジュロ2が追加されます。(3)、tp(4)、...、tp(m);ここでは、プレーンテキストTP(m)の最後のブロックのビット数は64ビット未満です。

The decryption equations in the cipher feedback mode are:

暗号フィードバックモードの復号化方程式は次のとおりです。

      |Tp(1) = A(S) (+) Tc(1) = Gc(1) (+) Tc(1)
      |
      |Tp(1) = A(Tc(i-1)) (+) Tc(i) = Gc(i) (+) Tc(i), i=2..M
        
8. Message Authentication Code (MAC) Generation Mode
8. メッセージ認証コード(MAC)生成モード

To provide the protection from falsification of plain text consisting of M 64-bit blocks Tp(1), Tp(2), ..., Tp(M), M >= 2, an additional l-bit block is generated (the message authentication code I(l)). The process of MAC generation is the same for all the encryption/decryption modes.

M 64ビットブロックTP(1)、TP(2)、...、TP(M)、M> = 2で構成されるプレーンテキストの改ざんから保護を提供するために、追加のLビットブロックが生成されます(メッセージ認証コードI(L))。Mac生成のプロセスは、すべての暗号化/復号化モードで同じです。

- The first block of plain text:

- プレーンテキストの最初のブロック:

      Tp(1) = (t1(1), t1(2), ..., t64(1)) = (a1(1)[0], a2(1)[0], ...,
              a32(1)[0], b1(1)[0], b2(1)[0], ..., b32(1)[0])
        

is written to the registers N1 and N2;

レジスタN1およびN2に書き込まれます。

- the value of t1(1) = a1(1)[0] is written into the first bit of N1;

- T1(1)= A1(1)[0]の値は、N1の最初のビットに書き込まれます。

- the value of t2(1) = a2(1)[0] is written into the second bit of N1, etc.;

- T2(1)= A2(1)[0]の値は、N1などの2番目のビットに書き込まれます。

- the value of t32(1) = a32(1)[0] is written into the 32nd bit of N1;

- T32(1)= A32(1)[0]の値は、N1の32ビットに書き込まれます。

- the value of t33(1) = b1(1)[0] is written into the first bit of N2, etc.;

- T33(1)= B1(1)[0]の値は、N2の最初のビットなどに書き込まれます。

- the value of t64(1) = b32(1)[0] is written into the 32nd bit of N2.

- T64(1)= B32(1)[0]の値は、N2の32ビットに書き込まれます。

The filling of N1 and N2 is transformed in accordance with the first 16 rounds of the encryption algorithm in the electronic codebook mode (see the subsection 6.1). In the KDS, there exists the same key that is used for encrypting the blocks of plain text Tp(1), Tp(2), ..., Tp(M) in the corresponding blocks of encrypted data Tc(1), Tc(2), ..., Tc(M).

N1とN2の充填は、電子コードブックモードの暗号化アルゴリズムの最初の16ラウンドに従って変換されます(サブセクション6.1を参照)。KDSには、暗号化されたデータ(1)、TCの対応するブロックに、プレーンテキストTP(1)、TP(2)、...、TP(M)のブロックを暗号化するために使用される同じキーが存在します。(2)、...、TC(M)。

The filling of N1 and N2 after the 16 working rounds, looking like (a1(1)[16], a2(1)[16], ..., a32(1)[16], b1(1)[16], b2(1)[16], ..., b32(1)[16]), is added in CM5 modulo 2 to the second block Tp(2) = (t1(2), t2(2), ..., t64(2)).

16回の作業ラウンドの後のN1とN2の充填、(A1(1)[16]、A2(1)[16]、...、A32(1)[16]、B1(1)[16]のように見えます。、、B2(1)[16]、...、B32(1)[16])は、CM5 Modulo 2に2番目のブロックTP(2)=(T1(2)、T2(2)、..。、T64(2))。

The result of this addition

この追加の結果

       (a1(1)[16](+)t1(2), a2(1)[16](+)t2(2), ..., a32(1)[16](+)t32(2),
       b1(1)[16](+)t33(2), b2(1)[16](+)t34(2), ..., b32(1)[16](+)t64(2))
        

=

=

       (a1(2)[0], a2(2)[0] ..., a32(2)[0], b1(2)[0], b2(2)[0], ...,
       b32(2)[0])
        

is written into N1 and N2 and is transformed in accordance with the first 16 rounds of the encryption algorithm in the electronic codebook mode.

N1とN2に書き込まれ、電子コードブックモードの暗号化アルゴリズムの最初の16ラウンドに従って変換されます。

   The resulting filling of N1 and N2 is added in the CM5 modulo 2 with
   the third block Tp(3), etc., the last block Tp(M) = (t1(M), t2(M),
   ..., t64(M)), padded if necessary to a complete 64-bit block by
   zeros, is added in CM5 modulo 2 with the filling N1, N2 (a1(M-1)[16],
   a2(M-1)[16], ..., a32(M-1)[16], b1(M-1)[16], b2(M-1)[16], ...,
   b32(M-1)[16]).
        

The result of the addition

追加の結果

        (a1(M-1)[16](+)t1(M), a2(M-1)[16](+)t2(M), ..., a32(M-1)[16](+)
        t32(M), b1(M-1)[16](+)t33(M), b2(M-1)[16](+)t34(M), ...,
        b32(M-1)[16](+)t64(M))
        

=

=

        (a1(M)[0], a2(M)[0] ..., a32(M)[0], b1(M)[0], b2(M)[0], ...,
        b32(M)[0])
        

is written into N1, N2 and encrypted in the electronic codebook mode after the first 16 rounds of the algorithm's work. Out of the resulting filling of the registers N1 and N2:

N1、N2に書き込まれ、アルゴリズムの最初の16ラウンドの後に電子コードブックモードで暗号化されます。結果として生じるレジスタN1とN2の充填から:

      (a1(M)[16], a2(M)[16] ..., a32(M)[16], b1(M)[16], b2(M)[16], ...,
      b32(M)[16])
        

an l-bit string I(l) (the MAC) is chosen:

l-bit文字列i(l)(Mac)が選択されています。

      I(l) = [a(32-l+1)(M)[16], a(32-l+2)(M)[16], ..., a32(M)[16]].
        

The MAC I(l) is transmitted through the telecommunication channel or to the computer memory attached to the end of the encrypted data, i.e., Tc(1), Tc(2), ..., Tc(M), I(l).

Mac I(L)は、電気通信チャネルまたは暗号化されたデータの端に接続されたコンピューターメモリ、つまりTc(1)、Tc(2)、...、Tc(m)、i(l(l)を介して送信されます。)。

The encrypted data Tc(1), Tc(2), ..., Tc(M), when arriving, are decrypted, out of the resulting plain text blocks Tp(1), Tp(2), ..., Tp(M). The MAC I'(l) is generated as described in the subsection 5.3 and compared with the MAC I(l) received together with the encrypted data from the telecommunication channel or from the computer memory. If the MACs are not equal, the resulting plain text blocks Tp(1), Tp(2), ..., Tp(M) are considered false.

暗号化されたデータTC(1)、TC(2)、...、TC(M)、到着時に復号化され、結果のプレーンテキストブロックTP(1)、TP(2)、...、TP(m)。Mac I '(l)は、サブセクション5.3で説明されているように生成され、Mac I(L)と比較して、電気通信チャネルまたはコンピューターメモリから暗号化されたデータとともに受信しました。MACが等しくない場合、結果のプレーンテキストはTP(1)、TP(2)、...、TP(M)をブロックします。

The MAC I(l) (I'(l)) can be generated either before encryption (after decryption, respectively) of the whole message or simultaneously with the encryption (decryption) in blocks. The first plain text blocks, used in the MAC generation, can contain service information (the address section, a time mark, the initialisation vector, etc.) and they may be unencrypted.

Mac I(l)(i '(l))は、メッセージ全体の暗号化(それぞれ復号化後)の前に、またはブロック内の暗号化(復号化)と同時に生成できます。MAC世代で使用される最初のプレーンテキストブロックには、サービス情報(アドレスセクション、タイムマーク、初期化ベクトルなど)を含めることができ、暗号化されていない場合があります。

The parameter l value (the bit length of the MAC) is defined by the actual cryptographic requirements, while considering that the possibility of imposing false data is 2^-l.

パラメーターL値(MACのビット長)は、実際の暗号化要件によって定義され、誤ったデータを課す可能性は2^-Lであると考えています。

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

This entire document is about security considerations.

このドキュメント全体は、セキュリティ上の考慮事項に関するものです。

10. Normative References
10. 引用文献

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

[GOST28147-89]「データ処理システムの暗号化保護」、GOST 28147-89、Gosudarstvennyi Standard of USSR、Standardsのソ連政府委員会、1989年(ロシア語)

[RFC4357] Popov, V., Kurepkin, I., and S. Leontiev, "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", RFC 4357, January 2006.

[RFC4357] Popov、V.、Kurepkin、I。、およびS. Leontiev、「GOST 28147-89、GOST R 34.10-94、GOST R 34.10-2001、およびGOST R 34.11-94アルゴリスムで使用する追加の暗号化アルゴリズム」、RFC 4357、2006年1月。

Appendix A. Values of the Constants C1 and C2
付録A. 定数C1およびC2の値

The constant C1 is:

定数C1は次のとおりです。

The bit of N6 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

n6 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

The bit value 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

ビット値0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

The bit of N6 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

n6 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

The bit value 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0

ビット値1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0

The constant C2 is:

定数C2は次のとおりです。

The bit of N6 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

n6 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

The bit value 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

ビット値0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

The bit of N6 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

n6 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

The bit value 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

ビット値1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Appendix B. Contributors
付録B. 貢献者

Dmitry Kabelev Cryptocom, Ltd. 14 Kedrova St., Bldg. 2 Moscow, 117218 Russian Federation

Dmitry Kabelev Cryptocom、Ltd。14 Kedrova St.、Bldg。2モスクワ、117218ロシア連邦

   EMail: kdb@cryptocom.ru
        

Igor Ustinov Cryptocom, Ltd. 14 Kedrova St., Bldg. 2 Moscow, 117218 Russian Federation

Igor Ustinov Cryptocom、Ltd。14 Kedrova St.、Bldg。2モスクワ、117218ロシア連邦

   EMail: igus@cryptocom.ru
        

Irene Emelianova Cryptocom Ltd. 14 Kedrova St., Bldg. 2 Moscow, 117218 Russian Federation

Irene Emelianova Cryptocom Ltd. 14 Kedrova St.、Bldg。2モスクワ、117218ロシア連邦

   EMail: irene@cryptocom.ru
        

Author's Address

著者の連絡先

Vasily Dolmatov, Ed. Cryptocom, Ltd. 14 Kedrova St., Bldg. 2 Moscow, 117218 Russian Federation

Vasily Dolmatov、編Cryptocom、Ltd。14 Kedrova St.、Bldg。2モスクワ、117218ロシア連邦

   EMail: dol@cryptocom.ru