RFC2268 日本語訳

2268 A Description of the RC2(r) Encryption Algorithm. R. Rivest. March 1998. (Format: TXT=19048 bytes) (Status: INFORMATIONAL)
プログラムでの自動翻訳です。
RFC一覧
英語原文

Network Working Group                                          R. Rivest
Request for Comments: 2268           MIT Laboratory for Computer Science
Category: Informational                      and RSA Data Security, Inc.
                                                              March 1998

Rivestがコメントのために要求するワーキンググループR.をネットワークでつないでください: 2268年のMITコンピュータサイエンス研究所カテゴリ: 1998年の情報とRSA Data Security Inc.行進

            A Description of the RC2(r) Encryption Algorithm

RC2(r)暗号化アルゴリズムの記述

Status of this Memo

このMemoの状態

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

このメモはインターネットコミュニティのための情報を提供します。 それはどんな種類のインターネット標準も指定しません。 このメモの分配は無制限です。

Copyright Notice

版権情報

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

Copyright(C)インターネット協会(1998)。 All rights reserved。

1. Introduction

1. 序論

   This memo is an RSA Laboratories Technical Note.  It is meant for
   informational use by the Internet community.

このメモはRSA研究所Technical Noteです。 それは情報の使用のためにインターネットコミュニティによって意味されます。

   This memo describes a conventional (secret-key) block encryption
   algorithm, called RC2, which may be considered as a proposal for a
   DES replacement. The input and output block sizes are 64 bits each.
   The key size is variable, from one byte up to 128 bytes, although the
   current implementation uses eight bytes.

このメモはDES交換のための提案であるとみなされるかもしれないRC2と呼ばれる従来の(秘密鍵)ブロック暗号化アルゴリズムを説明します。 入出力ブロック・サイズはそれぞれ64ビットです。 現在の実現は8バイトを使用しますが、主要なサイズは128バイトまでの1バイトから可変です。

   The algorithm is designed to be easy to implement on 16-bit
   microprocessors. On an IBM AT, the encryption runs about twice as
   fast as DES (assuming that key expansion has been done).

アルゴリズムは、16ビットのマイクロプロセッサの上で実行するのが簡単であるように設計されています。 IBM ATでは、暗号化はDESの2倍およそ速く動きます(主要な拡大が完了していたと仮定して)。

1.1 Algorithm description

1.1 アルゴリズム記述

   We use the term "word" to denote a 16-bit quantity. The symbol + will
   denote twos-complement addition. The symbol & will denote the bitwise
   "and" operation. The term XOR will denote the bitwise "exclusive-or"
   operation. The symbol ~ will denote bitwise complement.  The symbol ^
   will denote the exponentiation operation.  The term MOD will denote
   the modulo operation.

私たちは、16ビットの量を指示するのに「単語」という用語を使用します。 シンボル+は2補数の添加を指示するでしょう。 シンボルと意志はbitwise “and"操作を指示します。 XORという用語が指示する、bitwiseする、「排他的論理和」操作。 ~、が指示するシンボルは補数をbitwiseします。 シンボル^は羃法操作を指示するでしょう。 MODという用語は法操作を指示するでしょう。

   There are three separate algorithms involved:

別々のアルゴリズムが伴った3があります:

     Key expansion. This takes a (variable-length) input key and
     produces an expanded key consisting of 64 words K[0],...,K[63].

主要な拡大。 これは、(可変長)の入力キーを取って、64単語K[0]から成る拡張キーを生産します…K[63]。

Rivest                       Informational                      [Page 1]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[1ページ]RFC2268RC2(r)暗号化アルゴリズム行進

     Encryption. This takes a 64-bit input quantity stored in words
     R[0], ..., R[3] and encrypts it "in place" (the result is left in
     R[0], ..., R[3]).

暗号化。 これは単語R[0]、…に格納された64ビットの入力量を取ります。, 「適所。」R[3]、それをコード化する、(R[3])、R[0]、…に結果は残されます。

     Decryption. The inverse operation to encryption.

復号化。 暗号化への逆さの操作。

2. Key expansion

2. 主要な拡大

   Since we will be dealing with eight-bit byte operations as well as
   16-bit word operations, we will use two alternative notations

16ビットの単語操作と同様に8ビットのバイト操作に対処するので、私たちは2つの代替の記法を使用するつもりです。

   for referring to the key buffer:

キーについて言及するには、以下をバッファリングしてください。

        For word operations, we will refer to the positions of the
             buffer as K[0], ..., K[63]; each K[i] is a 16-bit word.

単語操作について、私たちはバッファの位置についてK[0]に言及するつもりです…, K[63]。 各K[i]は16ビットの単語です。

        For byte operations,  we will refer to the key buffer as
             L[0], ..., L[127]; each L[i] is an eight-bit byte.

バイト操作について、私たちは主要なバッファをL[0]と呼ぶつもりです…, L[127]。 各L[i]は8ビットのバイトです。

   These are alternative views of the same data buffer. At all times it
   will be true that

これらは同じデータバッファの代替の視点です。 いつも、本当になる、それ

                       K[i] = L[2*i] + 256*L[2*i+1].

K[i]はL[2*i]+256*Lと等しいです[2*i+1]。

   (Note that the low-order byte of each K word is given before the
   high-order byte.)

(それぞれのK単語の下位バイトが高位バイトの前に与えられることに注意してください。)

   We will assume that exactly T bytes of key are supplied, for some T
   in the range 1 <= T <= 128. (Our current implementation uses T = 8.)
   However, regardless of T, the algorithm has a maximum effective key
   length in bits, denoted T1. That is, the search space is 2^(8*T), or
   2^T1, whichever is smaller.

私たちは、ちょうどTバイトのキーが供給されると思うつもりです、範囲1<=T<=128のいくつかのTのために。 (私たちの現在の実現はT=8を使用します。) T1は、しかしながら、Tにかかわらずアルゴリズムにはビットの最大の有効なキー長があるのを指示しました。 どれがさらに小さいかなら、すなわち、検索スペースは、2の^(8*T)、または2^T1です。

   The purpose of the key-expansion algorithm is to modify the key
   buffer so that each bit of the expanded key depends in a complicated
   way on every bit of the supplied input key.

主要な拡大アルゴリズムの目的が主要なバッファを変更することであるので、拡張キーの各ビットは複雑な方法で供給された入力キーのあらゆるビットによります。

   The key expansion algorithm begins by placing the supplied T-byte key
   into bytes L[0], ..., L[T-1] of the key buffer.

主要な拡大アルゴリズムはバイトに主要な供給されたT-バイトL[0]を置くことによって、始まります…, 主要なバッファのL[T-1]。

   The key expansion algorithm then computes the effective key length in
   bytes T8 and a mask TM based on the effective key length in bits T1.
   It uses the following operations:

そして、主要な拡大アルゴリズムはT8とマスクTMがビットT1の有効なキー長に基礎づけたバイトで表現される有効なキー長を計算します。 それは以下の操作を使用します:

   T8 = (T1+7)/8;
   TM = 255 MOD 2^(8 + T1 - 8*T8);

T8は/8と等しいです(T1+7)。 Tm=255のモッズ風の2^(8+T1--8*T8)。

   Thus TM has its 8 - (8*T8 - T1) least significant bits set.

したがって、TMには、8があります--(8*T8--T1)最下位ビットはセットしました。

Rivest                       Informational                      [Page 2]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[2ページ]RFC2268RC2(r)暗号化アルゴリズム行進

   For example, with an effective key length of 64 bits, T1 = 64, T8 = 8
   and TM = 0xff.  With an effective key length of 63 bits, T1 = 63, T8
   = 8 and TM = 0x7f.

例えば、64ビットの有効なキー長で、T1=64、T8=8、およびTMは0xffと等しいです。 63ビットの有効なキー長で、T1=63、T8=8、およびTMは0x7fと等しいです。

   Here PITABLE[0], ..., PITABLE[255] is an array of "random" bytes
   based on the digits of PI = 3.14159... . More precisely, the array
   PITABLE is a random permutation of the values 0, ..., 255. Here is
   the PITABLE in hexadecimal notation:

ここ、PITABLE[0]…, PITABLE[255]はPI=3.14159のケタに基づく「無作為」のバイトの勢ぞろいです… . より正確に、アレイPITABLEは値0の無作為の順列です…, 255. ここに、16進法におけるPITABLEがあります:

        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
   00: d9 78 f9 c4 19 dd b5 ed 28 e9 fd 79 4a a0 d8 9d
   10: c6 7e 37 83 2b 76 53 8e 62 4c 64 88 44 8b fb a2
   20: 17 9a 59 f5 87 b3 4f 13 61 45 6d 8d 09 81 7d 32
   30: bd 8f 40 eb 86 b7 7b 0b f0 95 21 22 5c 6b 4e 82
   40: 54 d6 65 93 ce 60 b2 1c 73 56 c0 14 a7 8c f1 dc
   50: 12 75 ca 1f 3b be e4 d1 42 3d d4 30 a3 3c b6 26
   60: 6f bf 0e da 46 69 07 57 27 f2 1d 9b bc 94 43 03
   70: f8 11 c7 f6 90 ef 3e e7 06 c3 d5 2f c8 66 1e d7
   80: 08 e8 ea de 80 52 ee f7 84 aa 72 ac 35 4d 6a 2a
   90: 96 1a d2 71 5a 15 49 74 4b 9f d0 5e 04 18 a4 ec
   a0: c2 e0 41 6e 0f 51 cb cc 24 91 af 50 a1 f4 70 39
   b0: 99 7c 3a 85 23 b8 b4 7a fc 02 36 5b 25 55 97 31
   c0: 2d 5d fa 98 e3 8a 92 ae 05 df 29 10 67 6c ba c9
   d0: d3 00 e6 cf e1 9e a8 2c 63 16 01 3f 58 e2 89 a9
   e0: 0d 38 34 1b ab 33 ff b0 bb 48 0c 5f b9 b1 cd 2e
   f0: c5 f3 db 47 e5 a5 9c 77 0a a6 20 68 fe 7f c1 ad

b c d e f00あたり0 1 2 3 4 5 6 7 8 9: d9 78f9 c4 19dd b5教育28e9 fd79 4a a0 d8 9d10: c6 7e37 83 2b76 53 8e62 4c64 88 44 8b fb a2 20: 17 9a59f5 87b3 4f13 61 45 6d 8d09 81 7d32 30: bd 8f40eb86b7 7b 0b f0 95 21 22 5c 6b 4e82 40: 54 d6 65 93Ce60b2 1c73 56c0 14a7 8c f1 dc50: 12 75ca 1f 3b、e4 d1 42 3d d4 30a3 3c b6 26 60になってください: 6f bf 0e da46 69 07 57 27f2 1d 9b bc94 43 03 70: f8 11c7 f6 90ef 3e e7 06c3 d5 2f c8 66 1e d7 80: 08 e8 ea de80 52ee f7 84aa72ac35 4d 6a 2a90: 96 1a d2 71 5a15 49 74 4b 9f d0 5e04 18a4 ec a0: c2 e0 41 6e 0f51cb cc24 91af50a1 f4 70 39b0: 99 7c 3a85 23b8 b4 7a fc02 36 5b25 55 97 31c0: 2d 5dファ98e3 8a92ae05df29 10 67 6c Ba c9 d0: d3 00e6Cf e1 9e a8 2c63 16 01 3f58e2 89a9 e0: 0d38 34 1b腹筋33ff b0 bb48 0c 5f b9 b1 cd 2e f0: c5 f3 db47e5 a5 9c77 0a a6 20 68fe 7f c1広告

   The key expansion operation consists of the following two loops and
   intermediate step:

主要な拡大操作は以下の2つの輪と途中経過から成ります:

   for i = T, T+1, ..., 127 do
     L[i] = PITABLE[L[i-1] + L[i-T]];

i=T、T+1のために…, 127 L[i]=PITABLE[L[i-1]+L[i-T]]をしてください。

   L[128-T8] = PITABLE[L[128-T8] & TM];

L[128-T8]はPITABLE[L[128-T8]とTm]と等しいです。

   for i = 127-T8, ..., 0 do
     L[i] = PITABLE[L[i+1] XOR L[i+T8]];

i=127-T8のために…, 0 L[i]=PITABLE[L[i+1]XOR L[i+T8]]をしてください。

   (In the first loop, the addition of L[i-1] and L[i-T] is performed
   modulo 256.)

(最初の輪では、L[i-1]とL[i-T]の添加は実行された法256です。)

   The "effective key" consists of the values L[128-T8],..., L[127].
   The intermediate step's bitwise "and" operation reduces the search
   space for L[128-T8] so that the effective number of key bits is T1.
   The expanded key depends only on the effective key bits, regardless

「有効なキー」は値L[128-T8]から成ります…, L[127]。 途中経過のbitwise “and"操作がL[128-T8]のために検索スペースを減少させるので、キービットの有効な数はT1です。 拡張キーは不注意に有効なキービットだけに依存します。

Rivest                       Informational                      [Page 3]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[3ページ]RFC2268RC2(r)暗号化アルゴリズム行進

   of the supplied key K. Since the expanded key is not itself modified
   during encryption or decryption, as a pragmatic matter one can expand
   the key just once when encrypting or decrypting a large block of
   data.

供給された主要なK.Sinceでは、暗号化か復号化の間、変更されて、拡張キーはそれ自体ではありません、1大量株のデータをコード化するか、または解読するとき、実践的な件1が一度だけキーを広くすることができるとき。

3. Encryption algorithm

3. 暗号化アルゴリズム

   The encryption operation is defined in terms of primitive "mix" and
   "mash" operations.

暗号化操作は原始の「ミックス」と「どろどろの状態」操作で定義されます。

   Here the expression "x rol k" denotes the 16-bit word x rotated left
   by k bits, with the bits shifted out the top end entering the bottom
   end.

ここで、表現「x rol k」は回転というkビットで残っている16ビットの知らせxを指示して、外のビットが移動している状態で、下部に入る最先端は終わります。

3.1 Mix up R[i]

3.1 混乱R[i]

   The primitive "Mix up R[i]" operation is defined as follows, where
   s[0] is 1, s[1] is 2, s[2] is 3, and s[3] is 5, and where the indices
   of the array R are always to be considered "modulo 4," so that R[i-1]
   refers to R[3] if i is 0 (these values are

原始の「混乱R[i]」操作は以下の通り定義されます、そのR[i-1]がiが0であるならs[0]が1であり、s[1]が2であり、s[2]が3であり、s[3]が5であるので「法4」であるといつも考えられるアレイRのインデックスリストがことであるところとR[3]を呼ぶところで(これらの値はそうです。

   "wrapped around" so that R always has a subscript in the range 0 to 3
   inclusive):

Rがいつも範囲0〜3の添字を包括的にするように「巻きつける」、)、:

   R[i] = R[i] + K[j] + (R[i-1] & R[i-2]) + ((~R[i-1]) & R[i-3]);
   j = j + 1;
   R[i] = R[i] rol s[i];

R[i]は+ R[i]+K[j](R[i-1]とR[i-2])+((~[i-1]R)とR[i-3])と等しいです。 j=j+1。 R[i]はR[i] rol s[i]と等しいです。

   In words: The next key word K[j] is added to R[i], and j is advanced.
   Then R[i-1] is used to create a "composite" word which is added to
   R[i]. The composite word is identical with R[i-2] in those positions
   where R[i-1] is one, and identical to R[i-3] in those positions where
   R[i-1] is zero. Then R[i] is rotated left by s[i] bits (bits rotated
   out the left end of R[i] are brought back in at the right). Here j is
   a "global" variable so that K[j] is always the first key word in the
   expanded key which has not yet been used in a "mix" operation.

単語で: 次のキーワードK[j]はR[i]に加えられます、そして、jは高度です。 そして、R[i-1]は、R[i]に加えられる「合成している」単語を作成するのに使用されます。 合成語は、R[i-1]が1であるそれらの位置でR[i-2]と同じであって、R[i-1]がゼロであるそれらの位置でR[i-3]と同じです。 そして、R[i]はs[i]ビットによって左に回転させられます(R[i]の左の端のときに外に回転したビットは権利で持って入って戻されています)。 jがここの、「グローバルな」変数であるので、いつもK[j]は「ミックス」操作にまだ使用されていない拡張キーで最初のキーワードです。

3.2 Mixing round

3.2 かき混ぜること。

   A "mixing round" consists of the following operations:

「ぐるりと混入」であることは以下の操作から成ります:

   Mix up R[0]
   Mix up R[1]
   Mix up R[2]
   Mix up R[3]

混乱R[0]混乱R[1]混乱R[2]混乱R[3]

Rivest                       Informational                      [Page 4]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[4ページ]RFC2268RC2(r)暗号化アルゴリズム行進

3.3 Mash R[i]

3.3 どろどろの状態R[i]

   The primitive "Mash R[i]" operation is defined as follows (using the
   previous conventions regarding subscripts for R):

原始の「どろどろの状態R[i]」操作は以下の通り定義されます(Rに添字に関して前のコンベンションを使用して):

   R[i] = R[i] + K[R[i-1] & 63];

R[i]はR[i]+K[R[i-1]と63]と等しいです。

   In words: R[i] is "mashed" by adding to it one of the words of the
   expanded key. The key word to be used is determined by looking at the
   low-order six bits of R[i-1], and using that as an index into the key
   array K.

単語で: R[i]は、拡張キーの単語の1つをそれに加えることによって、「潰されます」。 使用されるべきキーワードは、R[i-1]の下位の6ビットを見て、インデックスとして主要なアレイKにそれを使用することによって、決定します。

3.4 Mashing round

3.4 ぐるりといちゃつくこと。

   A "mashing round" consists of:

「ぐるりといちゃつくこと」は以下から成ります。

   Mash R[0]
   Mash R[1]
   Mash R[2]
   Mash R[3]

どろどろの状態R[0]どろどろの状態R[1]どろどろの状態R[2]どろどろの状態R[3]

3.5 Encryption operation

3.5 暗号化操作

   The entire encryption operation can now be described as follows. Here
   j is a global integer variable which is affected by the mixing
   operations.

現在、以下の通り全体の暗号化操作について説明できます。 ここで、jは混合操作で影響を受けるグローバルな整数変数です。

        1. Initialize words R[0], ..., R[3] to contain the
           64-bit input value.

1. 単語R[0]、…を初期化してください。, 64ビットを含むR[3]は値を入力しました。

        2. Expand the key, so that words K[0], ..., K[63] become
           defined.

2. それがK[0]を言い表すように、キーを広げてください…, K[63]は定義されるようになります。

        3. Initialize j to zero.

3. jをゼロに初期化してください。

        4. Perform five mixing rounds.

4. かき混ぜる5を実行してください。

        5. Perform one mashing round.

5. ぐるりといちゃついて、1つを実行してください。

        6. Perform six mixing rounds.

6. かき混ぜる6を実行してください。

        7. Perform one mashing round.

7. ぐるりといちゃついて、1つを実行してください。

        8. Perform five mixing rounds.

8. かき混ぜる5を実行してください。

   Note that each mixing round uses four key words, and that there are
   16 mixing rounds altogether, so that each key word is used exactly

それぞれの混合ラウンドが4つのキーワードを使用して、全体でかき混ぜる16があることに注意してください、各キーワードがまさに使用されるように

Rivest                       Informational                      [Page 5]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[5ページ]RFC2268RC2(r)暗号化アルゴリズム行進

   once in a mixing round. The mashing rounds will refer to up to eight
   of the key words in a data-dependent manner. (There may be
   repetitions, and the actual set of words referred to will vary from
   encryption to encryption.)

混合ラウンドで一度。 いちゃつくラウンドは最大データ依存する方法による8つのキーワードについて言及するでしょう。 (反復があるかもしれなくて、暗号化によって示された実際のセットの言葉は異なるでしょう。)

4. Decryption algorithm

4. 復号化アルゴリズム

   The decryption operation is defined in terms of primitive operations
   that undo the "mix" and "mash" operations of the encryption
   algorithm. They are named "r-mix" and "r-mash" (r- denotes the
   reverse operation).

復号化操作は「ミックス」を元に戻して、暗号化アルゴリズムの操作を「潰す」原始の操作で定義されます。 それらは「r-ミックス」と「r-どろどろの状態」と命名されます(rは逆の操作を指示します)。

   Here the expression "x ror k" denotes the 16-bit word x rotated right
   by k bits, with the bits shifted out the bottom end entering the top
   end.

ここで、表現「x ror k」はまさしくkビットに応じてxが回転したという16ビットの単語を指示して、外のビットが移動している状態で、下部は、最先端に入りながら、終わります。

4.1 R-Mix up R[i]

4.1 R-混乱R[i]

   The primitive "R-Mix up R[i]" operation is defined as follows, where
   s[0] is 1, s[1] is 2, s[2] is 3, and s[3] is 5, and where the indices
   of the array R are always to be considered "modulo 4," so that R[i-1]
   refers to R[3] if i is 0 (these values are "wrapped around" so that R
   always has a subscript in the range 0 to 3 inclusive):

原始の「R-混乱R[i]」操作は以下の通り定義されます、そのR[i-1]がiが0(これらの値はRがいつも範囲0〜3の添字を包括的にするための「巻きつける」であった)であるならs[0]が1であり、s[1]が2であり、s[2]が3であり、s[3]が5であるので「法4」であるといつも考えられるアレイRのインデックスリストがことであるところとR[3]を呼ぶところで:

   R[i] = R[i] ror s[i];
   R[i] = R[i] - K[j] - (R[i-1] & R[i-2]) - ((~R[i-1]) & R[i-3]);
   j = j - 1;

R[i]はR[i] ror s[i]と等しいです。 R[i]はR[i]と等しいです--K[j]--(R[i-1]とR[i-2])--(~R[i-1)とR[i-3]) jはjと等しいです--1

   In words: R[i] is rotated right by s[i] bits (bits rotated out the
   right end of R[i] are brought back in at the left). Here j is a
   "global" variable so that K[j] is always the key word with greatest
   index in the expanded key which has not yet been used in a "r-mix"
   operation. The key word K[j] is subtracted from R[i], and j is
   decremented. R[i-1] is used to create a "composite" word which is
   subtracted from R[i].  The composite word is identical with R[i-2] in
   those positions where R[i-1] is one, and identical to R[i-3] in those
   positions where R[i-1] is zero.

単語で: R[i]はまさしくs[i]ビットによって回転させられます(R[i]の正しい端から回転するビットは左で持って入って戻されています)。 jがここの、「グローバルな」変数であるので、いつもK[j]は「r-ミックス」操作にまだ使用されていない拡張キーにおける最大級のインデックスがあるキーワードです。 キーワードK[j]はR[i]から引き算されます、そして、jは減少します。 R[i-1]は、R[i]から引き算される「合成している」単語を作成するのに使用されます。 合成語は、R[i-1]が1であるそれらの位置でR[i-2]と同じであって、R[i-1]がゼロであるそれらの位置でR[i-3]と同じです。

4.2 R-Mixing round

4.2 R-混合ラウンド

   An "r-mixing round" consists of the following operations:

「r-混合ラウンド」は以下の操作から成ります:

   R-Mix up R[3]
   R-Mix up R[2]
   R-Mix up R[1]
   R-Mix up R[0]

R-混乱R[3]R-混乱R[2]R-混乱R[1]R-混乱R[0]

Rivest                       Informational                      [Page 6]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[6ページ]RFC2268RC2(r)暗号化アルゴリズム行進

4.3 R-Mash R[i]

4.3 R-どろどろの状態R[i]

   The primitive "R-Mash R[i]" operation is defined as follows (using
   the previous conventions regarding subscripts for R):

原始の「R-どろどろの状態R[i]」操作は以下の通り定義されます(Rに添字に関して前のコンベンションを使用して):

   R[i] = R[i] - K[R[i-1] & 63];

R[i]はR[i]と等しいです--K[R[i-1]と63]

   In words: R[i] is "r-mashed" by subtracting from it one of the words
   of the expanded key. The key word to be used is determined by looking
   at the low-order six bits of R[i-1], and using that as an index into
   the key array K.

単語で: R[i]は、それから拡張キーの単語の1つを引き算することによって、「rで、潰されます」。 使用されるべきキーワードは、R[i-1]の下位の6ビットを見て、インデックスとして主要なアレイKにそれを使用することによって、決定します。

4.4 R-Mashing round

4.4 R-いちゃつくラウンド

   An "r-mashing round" consists of:

「r-いちゃつくラウンド」は以下から成ります。

   R-Mash R[3]
   R-Mash R[2]
   R-Mash R[1]
   R-Mash R[0]

R-どろどろの状態R[3]R-どろどろの状態R[2]R-どろどろの状態R[1]R-どろどろの状態R[0]

4.5 Decryption operation

4.5 復号化操作

   The entire decryption operation can now be described as follows.
   Here j is a global integer variable which is affected by the mixing
   operations.

現在、以下の通り全体の復号化操作について説明できます。 ここで、jは混合操作で影響を受けるグローバルな整数変数です。

        1. Initialize words R[0], ..., R[3] to contain the 64-bit
           ciphertext value.

1. 単語R[0]、…を初期化してください。, 64ビットの暗号文値を含むR[3]。

        2. Expand the key, so that words K[0], ..., K[63] become
           defined.

2. それがK[0]を言い表すように、キーを広げてください…, K[63]は定義されるようになります。

        3. Initialize j to 63.

3. jを63に初期化してください。

        4. Perform five r-mixing rounds.

4. 5r-混合ラウンドを実行してください。

        5. Perform one r-mashing round.

5. 1r-いちゃつくラウンドを実行してください。

        6. Perform six r-mixing rounds.

6. 6r-混合ラウンドを実行してください。

        7. Perform one r-mashing round.

7. 1r-いちゃつくラウンドを実行してください。

        8. Perform five r-mixing rounds.

8. 5r-混合ラウンドを実行してください。

5. Test vectors

5. テストベクトル

   Test vectors for encryption with RC2 are provided below.

RC2との暗号化のためのテストベクトルを以下に提供します。

Rivest                       Informational                      [Page 7]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[7ページ]RFC2268RC2(r)暗号化アルゴリズム行進

   All quantities are given in hexadecimal notation.

16進法ですべての量を与えます。

   Key length (bytes) = 8
   Effective key length (bits) = 63
   Key = 00000000 00000000
   Plaintext = 00000000 00000000
   Ciphertext = ebb773f9 93278eff

00000000 00000000 00000000 00000000 63キー長(バイト)=8Effectiveキー長(ビット)=Key=Plaintext=Ciphertextはebb773f9 93278effと等しいです。

   Key length (bytes) = 8
   Effective key length (bits) = 64
   Key = ffffffff ffffffff
   Plaintext = ffffffff ffffffff
   Ciphertext = 278b27e4 2e2f0d49

キー長(バイト)=8Effectiveキー長(ビット)=64Key=ffffffff ffffffff Plaintext=ffffffff ffffffff Ciphertextは278b27e4 2e2f0d49と等しいです。

   Key length (bytes) = 8
   Effective key length (bits) = 64
   Key = 30000000 00000000
   Plaintext = 10000000 00000001
   Ciphertext = 30649edf 9be7d2c2

10000000 00000001 30000000 00000000 64キー長(バイト)=8Effectiveキー長(ビット)=Key=Plaintext=Ciphertextは30649edf 9be7d2c2と等しいです。

   Key length (bytes) = 1
   Effective key length (bits) = 64
   Key = 88
   Plaintext = 00000000 00000000
   Ciphertext = 61a8a244 adacccf0

00000000 00000000 88 64キー長(バイト)=1Effectiveキー長(ビット)=Key=Plaintext=Ciphertextは61a8a244 adacccf0と等しいです。

   Key length (bytes) = 7
   Effective key length (bits) = 64
   Key = 88bca90e 90875a
   Plaintext = 00000000 00000000
   Ciphertext = 6ccf4308 974c267f

00000000 00000000キー長(バイト)=64 7Effectiveキー長(ビット)=Key=88bca90e 90875a Plaintext=Ciphertextは6ccf4308 974c267fと等しいです。

   Key length (bytes) = 16
   Effective key length (bits) = 64
   Key = 88bca90e 90875a7f 0f79c384 627bafb2
   Plaintext = 00000000 00000000
   Ciphertext = 1a807d27 2bbe5db1

00000000 00000000キー長(バイト)=64 16Effectiveキー長(ビット)=Key=88bca90e 90875a7f 0f79c384 627bafb2 Plaintext=Ciphertextは1a807d27 2bbe5db1と等しいです。

   Key length (bytes) = 16
   Effective key length (bits) = 128
   Key = 88bca90e 90875a7f 0f79c384 627bafb2
   Plaintext = 00000000 00000000
   Ciphertext = 2269552a b0f85ca6

00000000 00000000キー長(バイト)=128 16Effectiveキー長(ビット)=Key=88bca90e 90875a7f 0f79c384 627bafb2 Plaintext=Ciphertextは2269552a b0f85ca6と等しいです。

   Key length (bytes) = 33
   Effective key length (bits) = 129
   Key = 88bca90e 90875a7f 0f79c384 627bafb2 16f80a6f 85920584
         c42fceb0 be255daf 1e

キー長(バイト)=33Effectiveキー長(ビット)=129Key=88bca90e 90875a7f 0f79c384 627bafb2 16f80a6f85920584c42fceb0 be255daf 1e

Rivest                       Informational                      [Page 8]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[8ページ]RFC2268RC2(r)暗号化アルゴリズム行進

   Plaintext = 00000000 00000000
   Ciphertext = 5b78d3a4 3dfff1f1

平文=00000000 00000000暗号文=5b78d3a4 3dfff1f1

6. RC2 Algorithm Object Identifier

6. RC2アルゴリズム物の識別子

   The Object Identifier for RC2 in cipher block chaining mode is

暗号ブロック連鎖モードによるRC2のためのObject Identifierはそうです。

   rc2CBC OBJECT IDENTIFIER
     ::= {iso(1) member-body(2) US(840) rsadsi(113549)
          encryptionAlgorithm(3) 2}

rc2CBC物の識別子:、:= iso(1)は(2) 米国(840)rsadsi(113549) encryptionAlgorithm(3)2をメンバーと同じくらい具体化させます。

   RC2-CBC takes parameters

RC2-CBCはパラメタを取ります。

   RC2-CBCParameter ::= CHOICE {
     iv IV,
     params SEQUENCE {
       version RC2Version,
       iv IV
     }
   }

RC2-CBCParameter:、:= 選択iv IV、params SEQUENCE、バージョンRC2Version、iv IV

   where

どこ

   IV ::= OCTET STRING -- 8 octets
   RC2Version ::= INTEGER -- 1-1024

IV:、:= OCTET STRING--8 八重奏RC2Version:、:= 整数--1-1024

   RC2 in CBC mode has two parameters: an 8-byte initialization vector
   (IV) and a version number in the range 1-1024 which specifies in a
   roundabout manner the number of effective key bits to be used for the
   RC2 encryption/decryption.

CBCモードによるRC2には、2つのパラメタがあります: RC2暗号化/復号化に使用されるために回りくどい態度で有効なキービットの数を指定する8バイトの初期化ベクトル(IV)と範囲1-1024のバージョン番号。

   The correspondence between effective key bits and version number is
   as follows:

有効なキービットとバージョン番号との通信は以下の通りです:

   1. If the number EKB of effective key bits is in the range 1-255,
      then the version number is given by Table[EKB], where the 256-byte
      translation table Table[] is specified below. Table[] specifies a
      permutation on the numbers 0-255; note that it is not the same
      table that appears in the key expansion phase of RC2.

1. 有効なキービットの数のEKBが範囲1-255にあるなら、バージョン番号はTable[EKB]によって与えられます。そこでは、256バイトの変換テーブルTable[]が以下で指定されます。 テーブル[]はNo.0-255で順列を指定します。 それがRC2の主要な拡張局面に現れるのと同じテーブルでないことに注意してください。

   2. If the number EKB of effective key bits is in the range
      256-1024, then the version number is simply EKB.

2. 有効なキービットの数のEKBが範囲256-1024にあるなら、バージョン番号は単にEKBです。

      The default number of effective key bits for RC2 is 32. If RC2-CBC
      is being performed with 32 effective key bits, the parameters
      should be supplied as a simple IV, rather than as a SEQUENCE
      containing a version and an IV.

RC2に、有効なキービットのデフォルト番号は32です。 32個の有効なキービットでRC2-CBCを実行しているなら、簡単なIVとしてパラメタを提供するべきです、むしろバージョンとIVを含むSEQUENCEより。

Rivest                       Informational                      [Page 9]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[9ページ]RFC2268RC2(r)暗号化アルゴリズム行進

        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

b c d e fあたり0 1 2 3 4 5 6 7 8 9

   00: bd 56 ea f2 a2 f1 ac 2a b0 93 d1 9c 1b 33 fd d0
   10: 30 04 b6 dc 7d df 32 4b f7 cb 45 9b 31 bb 21 5a
   20: 41 9f e1 d9 4a 4d 9e da a0 68 2c c3 27 5f 80 36
   30: 3e ee fb 95 1a fe ce a8 34 a9 13 f0 a6 3f d8 0c
   40: 78 24 af 23 52 c1 67 17 f5 66 90 e7 e8 07 b8 60
   50: 48 e6 1e 53 f3 92 a4 72 8c 08 15 6e 86 00 84 fa
   60: f4 7f 8a 42 19 f6 db cd 14 8d 50 12 ba 3c 06 4e
   70: ec b3 35 11 a1 88 8e 2b 94 99 b7 71 74 d3 e4 bf
   80: 3a de 96 0e bc 0a ed 77 fc 37 6b 03 79 89 62 c6
   90: d7 c0 d2 7c 6a 8b 22 a3 5b 05 5d 02 75 d5 61 e3
   a0: 18 8f 55 51 ad 1f 0b 5e 85 e5 c2 57 63 ca 3d 6c
   b0: b4 c5 cc 70 b2 91 59 0d 47 20 c8 4f 58 e0 01 e2
   c0: 16 38 c4 6f 3b 0f 65 46 be 7e 2d 7b 82 f9 40 b5
   d0: 1d 73 f8 eb 26 c7 87 97 25 54 b1 28 aa 98 9d a5
   e0: 64 6d 7a d4 10 81 44 ef 49 d6 ae 2e dd 76 5c 2f
   f0: a7 1c c9 09 69 9a 83 cf 29 39 b9 e9 4c ff 43 ab

00: bd56ea f2 a2 f1 ac 2a b0 93d1 9c 1b33fd d0 10: 30 04b6 dc 7d df32 4b f7 cb45 9b31bb21 5a20: 41 9f e1 d9 4a 4d 9e da a0 68 2c c3 27 5f80 36 30: 3e ee fb95 1a fe Ce a8 34a9 13f0 a6 3f d8 0c40: 78 24af23 52c1 67 17f5 66 90e7 e8 07b8 60 50: 48 e6 1e53f3 92a4 72 8c08 15 6e86 00 84ファ60: f4 7f 8a42 19f6 db cd14 8d50 12Ba3c06 4e70: ec b3 35 11a1 88 8e 2b94 99b7 71 74d3 e4 bf80: 3a de96 0e bc 0a教育77fc37 6b03 79 89 62c6 90: d7 c0 d2 7c 6a 8b22a3 5b05 5d02 75d5 61e3 a0: 18 8f55 51広告1f 0b 5e85e5 c2 57 63ca 3d 6c b0: b4 c5cc70b2 91 59 0d47 20c8 4f58e0 01e2 c0: 16 38c4 6f 3b 0f65 46、7e 2d 7b82f9 40b5 d0になってください: 1d73f8 eb26c7 87 97 25 54b1 28aa98 9d a5 e0: 64 6d 7a d4 10 81 44ef49d6 ae 2e dd76 5c 2f f0: a7 1c c9 09 69 9a83Cf29 39b9 e9 4c ff43腹筋

A. Intellectual Property Notice

A。 知的所有権通知

   RC2 is a registered trademark of RSA Data Security, Inc. RSA's
   copyrighted RC2 software is available under license from RSA Data
   Security, Inc.

RC2によるRSA Data Security Inc.RSAの版権を取っているRC2ソフトウェアの登録商標がRSA Data Security Inc.からライセンスの下で利用可能であるということです。

B. Author's Address

B。 作者のアドレス

   Ron Rivest
   RSA Laboratories
   100 Marine Parkway, #500
   Redwood City, CA  94065  USA

ロンRivest RSA研究所100の海洋のレッドウッドシティー、カリフォルニア94065#500パークウェイ(米国)

   Phone: (650) 595-7703
   EMail: rsa-labs@rsa.com

以下に電話をしてください。 (650) 595-7703 メールしてください: rsa-labs@rsa.com

Rivest                       Informational                     [Page 10]

RFC 2268              RC2(r) Encryption Algorithm             March 1998

1998年の最もRivestに情報の[10ページ]RFC2268RC2(r)暗号化アルゴリズム行進

C.  Full Copyright Statement

C。 完全な著作権宣言文

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

Copyright(C)インターネット協会(1998)。 All rights reserved。

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

それに関するこのドキュメントと翻訳は、コピーして、それが批評するか、またはそうでなければわかる他のもの、および派生している作品に提供するか、または準備されているかもしれなくて、コピーされて、発行されて、全体か一部広げられた実現を助けるかもしれません、どんな種類の制限なしでも、上の版権情報とこのパラグラフがそのようなすべてのコピーと派生している作品の上に含まれていれば。 しかしながら、このドキュメント自体は何らかの方法で変更されないかもしれません、インターネット協会か他のインターネット組織の版権情報か参照を取り除くのなどように、それを英語以外の言語に翻訳するのが著作権のための手順がインターネットStandardsの過程で定義したどのケースに従わなければならないか、必要に応じてさもなければ、インターネット標準を開発する目的に必要であるのを除いて。

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

上に承諾された限られた許容は、永久であり、インターネット協会、後継者または案配によって取り消されないでしょう。

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

このドキュメントとそして、「そのままで」という基礎とインターネットの振興発展を目的とする組織に、インターネット・エンジニアリング・タスク・フォースが速達の、または、暗示しているすべての保証を放棄するかどうかというここにことであり、他を含んでいて、含まれて、情報の使用がここに侵害しないどんな保証も少しもまっすぐになるという情報か市場性か特定目的への適合性のどんな黙示的な保証。

Rivest                       Informational                     [Page 11]

最もRivestに情報です。[11ページ]

一覧

 RFC 1〜100  RFC 1401〜1500  RFC 2801〜2900  RFC 4201〜4300 
 RFC 101〜200  RFC 1501〜1600  RFC 2901〜3000  RFC 4301〜4400 
 RFC 201〜300  RFC 1601〜1700  RFC 3001〜3100  RFC 4401〜4500 
 RFC 301〜400  RFC 1701〜1800  RFC 3101〜3200  RFC 4501〜4600 
 RFC 401〜500  RFC 1801〜1900  RFC 3201〜3300  RFC 4601〜4700 
 RFC 501〜600  RFC 1901〜2000  RFC 3301〜3400  RFC 4701〜4800 
 RFC 601〜700  RFC 2001〜2100  RFC 3401〜3500  RFC 4801〜4900 
 RFC 701〜800  RFC 2101〜2200  RFC 3501〜3600  RFC 4901〜5000 
 RFC 801〜900  RFC 2201〜2300  RFC 3601〜3700  RFC 5001〜5100 
 RFC 901〜1000  RFC 2301〜2400  RFC 3701〜3800  RFC 5101〜5200 
 RFC 1001〜1100  RFC 2401〜2500  RFC 3801〜3900  RFC 5201〜5300 
 RFC 1101〜1200  RFC 2501〜2600  RFC 3901〜4000  RFC 5301〜5400 
 RFC 1201〜1300  RFC 2601〜2700  RFC 4001〜4100  RFC 5401〜5500 
 RFC 1301〜1400  RFC 2701〜2800  RFC 4101〜4200 

スポンサーリンク

シェルスクリプトを実行すると『そのようなファイルやディレクトリはありません』や『コマンドが見つかりません』と出る場合

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る