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
        

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アルゴリズムと呼ばれるロシアの暗号化標準アルゴリズムの一つである電子暗号化、復号化、およびメッセージ認証アルゴリズム(GOST 28147から89)、ロシア連邦標準に関する情報の源であることを意図しています。最近、ロシアの暗号は、インターネットアプリケーションで使用されており、この文書は、開発者や暗号化、復号化、およびメッセージ認証のための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 Editorはその裁量でこの文書を公開することを選択し、実装や展開のためにその値についての声明を出すていません。 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.

このドキュメントの現在の状態、任意の正誤表、そしてどのようにフィードバックを提供するための情報が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.

著作権(C)2010 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。

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トラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。

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.

暗号化:特定のルールおよびキーを使用して後に行われた暗号化されたデータの組への可能な平文の組の可逆的変換のセット。

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ビットベクトルの加算は2 ^ 32を法。

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

[+]は」32ビットベクトルの加算である^ 32-1 2を法。

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ビット加算器は、2 ^ 32(CM1、CM3)モジュロ。

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

- ビットの32ビット加算器は、モジュロ2(CM2)合計します。

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

- その幅に制限付き加算モジュロ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ボックス)Kは、64ビットのメモリを有する8つの置換点K1、K2、K3、K4、K5、K6、K7、K8、から成ります。代替ボックスに来て32ビットのベクトルは、8つの連続した4ビット・ベクトルに分割され、それらの各々は、対応する置換点によって4ビットベクトルに変換されます。置換ポイントは、16行からなるテーブルであり、それぞれが4ビットを含みます。受信ベクトルは、テーブル内の行アドレスを定義し、その行の内容は、送信ベクトルです。次いで、これらの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:

KDSの値、Wqと= 0..1、Q = 1..256、キー(W1、W2、...、W256)を書き込む場合:

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

情報を書き換える際に、一つのレジスタ(加算器)のp番目のビットの値が別のレジスタ(加算器)のp番目のビットに書き込まれます。

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.

暗号化されるプレーンテキストは、64ビットのブロックに分割されます。バイナリデータブロックTpが=(A1(0)、A2(0)、...、A31(0)、A32(0)、B1(0)、B2(0)、...、B32(0の入力))A1の値(0)N1、A2の値の最初のビットに置かれるようにN1とN2が行われるレジスタに(0)等N1の第2ビット、値に入れられますA32の(0)N1の32ビット目に入れています。 B1(0)の値をN2、B2の値の最初のビットに入れられる(0)等N2、の2ビットに置かれ、そしてB32の値が(0)の32番目のビットに入力されます。 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

プッシー1 = 4と私、太田、...、P 4、P

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

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の初期値をレジスタX0の内容に加算CM1にモジュロ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に変換され、そして得られたベクターは、それが周期的に上部桁に向かって11のステップだけシフトされ、レジスタRに入れています。このシフトの結果レジスタN2の32ビットの内容に加算器CM2でビット単位のモジュロ2加算されます。 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;

- 第二ラウンドでは、X1の内容はKDSから読み出されます。

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

- 第三ラウンドでは、X2の内容はKDS等から読み出され;

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

- 24スルー16及び17を介してラウンド9において、KIDSの内容が同じ順序で読み出されます。

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、

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回のラウンドでは、加算器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)

|(J)=((J-1)[+] X(J-1)(MOD 8))* K * R(+)B(J-1)| J = 1..24; | B(j)は=(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)

|(J)=((J-1)[+] X(32-J))* K * R(+)B(J-1)| J = 25..31。 A32 = A31; | B(j)は=(J-1)

b(32) = (a(31) [+] X0)*K*R (+) b(31) j=32,

B(32)=((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;

(0)=(A32(0)、A31(0)、...、A1(0))暗号化の最初のラウンドの前にN1の初期内容を構成します。

b(0) = (b32(0), b31(0), ..., b1(0)) constitutes the initial contents of N2 before the first round of encryption;

B(0)=(B32(0)、B31(0)、...、B1(0))暗号化の最初のラウンドの前にN2の初期内容を構成します。

a(j) = (a32(j), a31(j), ..., a1(j)) constitutes the contents of N1 after the j-th round of encryption;

(J)=(A32(J)、A31(J)、...、A1(J))は、暗号化のj番目のラウンド後にN1の内容を構成しています。

b(j) = (b32(j), b31(j), ..., b1(j)) constitutes the contents of N2 after the j-th round of encryption, j = 1..32.

B(J)=(B32(J)、B31(J)、...、B1(j)は)暗号化のj番目のラウンド後にN2の内容を構成し、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)

(敬虔な改訂1、改訂0、...、改訂、T 1、満足さRa 1、Raは0、ダンスは、リット、Rakh、後ろ牧師4、RIA、記載しました)

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

暗号文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.,

第一、第二、...、レジスタN1の32番目のビットは、第一、第二、...、レジスタ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ビットの鍵が解読される暗号化されたデータを64ビットのブロックに分割し、KDSにロードされます。任意のバイナリ情報ブロックのローディング

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

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、

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)

|(32-J)=((32-J + 1)[+] X(J-1))* K * R(+)B(32-J + 1)| J = 1..8; | B(32-1)=(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)

|(32-J)=((32-J + 1)[+] X(J-1)(MOD 8))* K * R(+)B(32-J + 1)| J = 9..31; | B(32-1)=(32-J + 1)

|a(0) = a(1) | j=32. |b(0) = (a(1) [+] X0)*K*R (+) b1

|(0)=(1)| J = 32。 | B(0)=((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))

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;

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

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

- A2の値は(0)N1(等)の第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(等)の第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.

(TP)((0)、B(0))=((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:

平文は、TP(1)、TPが(2)、...、TPが(M-1)、Tpを(M)は、加算器CM5でビット単位の加算モジュロ2カウンタ暗号化モードで暗号化された64ビットのブロックに分割します64ビットのブロックで作ら実行されているキーGcので、それは次のようになります。

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

GC =(GC(1)、GC(2)、...、GC(1000-1)、GC(1000))

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番目の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:

キーの256ビットは、KDSに入れています。レジスタN1、N2は、64ビットのバイナリ・シーケンス(初期ベクトル)S =(S1、S2、...、S64)を受け入れ、それは、実行キーのMブロックの次の世代のために、これらのレジスタの初期充填であります。初期ベクトルは、そう、レジスタN1とN2に入れています。

- 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の値がN2(等)の第33ビットに書き込まれます。

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

レジスタN1とN2(初期ベクトルS)の初期充填は、セクション5.1からの要求に応じて、電子コードブックモードで暗号化されています。その暗号A(S)=(Y0、Z0)の結果は32ビットに書き換えられるN3及びN4レジスタN1の内容がN3に書き込まれ、そしてN2の内容は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と加算器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にコピーされ、そしてN3及びN4の充填が維持されつつ、N4の充填は、N2にコピーされます。

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の結果として得られる暗号化された充填(1)、このブロックがビット単位のプレーンテキストの最初の64ビットブロックと加算器CM5でモジュロ2加算される実行鍵GCを最初の64ビットブロックです。

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

都市(1)=(T(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)).

TC(1)=(タウ-1(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.

タウ-1の値は、(1)ブロックのTcは、(1)ブロックのCM5におけるモジュロ2の加算値t1(1)の結果である-TP(1)N1の最初のビットの値に、 TAU2の値は、(1)ブロックのTcは(1)CM5における加算モジュロ2 T2の値(1)ブロックから-TP(1)N1の第2のビットの値、等の結果であります; tau64の値は、(1)ブロックのTcは、(1)ブロックの値T64(1)TPのCM5における加算モジュロ2の結果である(1)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の充填は、N6から定数C1と加算器CM4にモジュロ(2 ^ 32-1)を添加します。 N3の充填はN5から定数C2と加算器CM3にモジュロ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ビットブロックです。このブロックは、ビット単位のプレーンテキスト-TP(2)の最初の64ビットブロックに加算CM5でモジュロ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

TC(I)(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])(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)は、KDSに入れされたデータを暗号化するために使用したキーの256ビット。セクションで実行されているキーの6.1 Mブロック、GC(1)、GC(2)、···、GC(M)が生成されているように初期ベクトルSは、レジスタN1およびN2に入れています。 (Tcが(1)、Tcは(2)、...、Tcは(M)が実行されているキーのブロックと加算器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

TP(i)が(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.

キーの256ビットは、KDSに入れています。セクション6.1で説明したように64ビットの初期化ベクトルS =(S1、S2、...、S64)は、N1及びN2に入れられます。

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

N1とN2の初期充填は、6.1節での要件に合わせて電子ブックモードで暗号化されています。 N1を充填暗号化N2が実行キーGcとの最初の64ビットブロックで得られた場合には(1)=(S)、このブロックは、プレーンテキストの最初の64ビットブロックTpを用いてビット単位のモジュロ2加算される(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)).

TC(1)=(タウ-1(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;

- タウ-1の値(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を第64ビットブロック(2)は、このブロックが平文の第2のブロックTpとを加算CM5でビット単位のモジュロ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.

| Tcは(1)=(S)(+)-TP(1)= GC(1)(+)-TP(1)| |のTc(I)(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の暗号化に使用する鍵の256ビットは、(1)、Tpが(2)、...、Tpは(M)は、KDSに入れています。初期ベクトル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)(S)を=され、このブロックは、暗号化されたデータブロックのTc(1)と加算器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)が得られたブロックGcは(2)(2)暗号化されたデータのTcの第2のブロックに加算CM5でビット単位のモジュロ2が追加され、サブセクション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)GC(4、(3)連続N1、N2に書き込まれ、実行キーGCをブロックされています)、...、GC(M)は、電子コードブックモードでそれらから生成されています。実行キーのブロックは、Tcは(3)、Tcは(4)、...、Tcの(M)が、これは平文TPのブロックをもたらす暗号化されたデータのブロックに加算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

| Tpが(1)=(S)(+)のTc(1)= GC(1)(+)のTc(1)| | -TP(1)=(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])

しかし、(1)=(T(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、第二のビットに書き込まれます;

- 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では、暗号化されたデータのTcの対応するブロック(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])、第二のブロックTpとにCM5モジュロ2に添加される(2)=(T(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])

(図1(a)のB DONC(a)は[0] ...、アモス(a)は図1(a)[0]、[0]、[0]のBa(A)[0]、...、アヴァ( A)[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]).

N1とN2の得られた充填は、第3ブロック-TP(3)、等、最後のブロック-TP(M)=(T1(M)、T2(M)、...、T64とCM5モジュロ2で添加されます(M))は、充填N1、N2(A1(M-1)[16]、A2(M-1)[16]を用いてCM5モジュロ2で添加される、ゼロが完全64ビットのブロックに、必要に応じてパディング、...、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])

(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])

(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ビット列I(L)(MAC)が選択されます。

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

I(L)= [(32-L + 1)(M)[16]、(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の端部に取り付けられたコンピュータメモリに送信されます。 )。

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の(2)、...、Tpは、得られた平文ブロック-TP(1)のうち、復号化され(M)。サブセクション5.3に記載され、MAC I(L)と比較してI '(L)が生成されるMACは、通信チャネルから、またはコンピュータ・メモリから暗号化されたデータとともに受信しました。 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生成に用いられる第1の平文ブロックは、(等アドレス部、タイムマーク、初期化ベクトル、)サービス情報を含むことができ、それらは暗号化されていないかもしれません。

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.

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

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)

、GOST 28147から89、ソ連、(ロシア語で)基準のソ連の政府委員会、1989年のGosudarstvennyi規格[GOST28147-89]「データ処理システムのための暗号化保護」

[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]ポポフ、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

定数C1とC2の付録A.値

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

ドミトリーKabelev Cryptocom、(株)14 Kedrovaセント、ビル。 2モスクワ、117218ロシア連邦

EMail: kdb@cryptocom.ru

メールアドレス:kdb@cryptocom.ru

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

イゴール・ユスティノフCryptocom、(株)14 Kedrovaセント、ビル。 2モスクワ、117218ロシア連邦

EMail: igus@cryptocom.ru

メールアドレス:igus@cryptocom.ru

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

アイリーンEmelianova Cryptocom株式会社14 Kedrovaセント、ビル。 2モスクワ、117218ロシア連邦

EMail: irene@cryptocom.ru

メールアドレス:irene@cryptocom.ru

Author's Address

著者のアドレス

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

ワシーリーDolmatov、エド。 Cryptocom、(株)14 Kedrovaセント、ビル。 2モスクワ、117218ロシア連邦

EMail: dol@cryptocom.ru

メールアドレス:dol@cryptocom.ru