1

私は大学の暗号学の改訂演習に取り組んでいます(試験の準備のために)、この質問には困惑しています:

ほとんどのブロック暗号の実装は、S ボックスをルックアップ テーブルとして扱います。DES は、それぞれが 6 ビットを取り込み、4 ビットを出力する 8 つの S ボックスを使用します。AES は、8 ビットを取り込み、8 ビットを出力する 1 つの S ボックスのみを使用します。それぞれの場合、どのくらいのストレージが必要ですか?

何も思いつきません?この質問が何を求めているのか正確にはわかりません。ストレージと s-box に関する概念が欠けているように感じますか?

誰かがこれに光を当てることができれば、それは素晴らしいことです! ありがとう。

4

1 に答える 1

3

少し奇妙な質問のように思えますが、これが私がそれに取り組む方法だと思います:

ルックアップテーブルとして実装されている場合、基本的には、配列にインデックス付けされている「ルックアップ」を持つ単なる配列です。

したがって、配列要素の数は、入力が取り得る個別の値の数に対応する必要があります。たとえば、S ボックス入力が 8 ビットの場合、2 8 = 256 の可能な入力値があります。

配列要素自体のサイズは、出力ビット数に対応します。通常、8 ビット (1 バイト) より小さい要素を持つ配列を定義することはできませんが、出力をエンコードして、「無駄な」スペースのない配列を構築できると仮定します (発生するように)。たとえば、8 ビットの配列要素に 4 ビットの値を格納する必要がある場合)。

これを念頭に置いて、次のようにストレージを計算できるはずです。

ストレージ (バイト単位) = S-box 数 x 2入力ビット数x (出力ビット数 / 8)

そう:

DES = 8 x 2 6 x (4 / 8) = 256 バイト
AES = 1 x 2 8 x (8 / 8) = 256 バイト
于 2013-09-04T07:51:19.487 に答える