1

RC2 のキー スケジュールがどのように機能するか (特にその最初の部分) を誰か説明できますか? リトルエンディアンを使用していることはわかっていますが、「0000 0000 0000 0000」以外のキーでは実装が機能しません。

Test Vector
Key = 88bc a90e 9087 5a
Plaintext = 0000 0000 0000 0000
Ciphertext = 6ccf 4308 974c 267f

キーで最初に行うことは、キーを次のように変更することだと思います

bc88 0ea9 8790 5a

はい、RC2はもう使用されていないことは知っていますが、それでも知りたいです

4

1 に答える 1

1

RFC は次のように述べています。

鍵拡張アルゴリズムは、提供された T バイト鍵を鍵バッファーのバイト L[0]、...、L[T-1] に配置することから始まります。

したがって、あなたのキー88bc a90e 9087 5aL[0]=0x88, L[1]=0xbc, ... L[6]=0x5a.

ここでエンディアンを考慮する必要はありません。

キー バッファーを 16 ビット ワードとして扱いたい場合は、次のようになります。

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

すなわちK[0] = 0xbc88, K[1] = 0xa90e, K[2] = 0x8790。L[7] はキー拡張ステップの後半でのみ割り当てられるため、厳密に言えば、K[3] はこの時点では未定義です。ただし、アルゴリズムに違いはないため、任意の値を自由に選択してください。0 を選択すると、 が得られますK[3] = 0x005a

于 2010-05-30T20:51:13.713 に答える