• 締切済み

AES(Rijndael)、繰り返し変換

AES-128、AES-256、すなわち Rijndael(ブロック長128bit)おける鍵長効果について教えてください。 仮に256bitの鍵があるとします。 AES-256を単純に用いる以外に、鍵を 128bit に二分して、AES-128の変換操作を二重に適用する方法も考えられます。 総ラウンド数からすれば後者の方が多いですが、強度も期待のものとなるのでしょうか。 さらに512bitなどの鍵があり、128bitで四回操作すれば、それに見合う暗号強度が得られるのでしょうか。 例え四回操作しても、実は一回操作で到達できる(置き換えられる)等価な128bit鍵が存在するというのであれば、総当り攻撃に関して原理上の価値は無いことになります。 128bitブロックの全単射の関数は、2^128 の階乗 通りもあると思います。 この内、128bit 鍵で指定できるのは、高々 2^128 種類にすぎません。 一回の変換操作では、ごく限られた関数しか使用できていない事になります。 二回の変換操作をまとめて一つの関数と見なした場合、「いかなる値の128bit鍵をもってしても一回操作では置き換えられない関数」になっていると期待したいところです。 そうなら鍵長とともに単純に暗号強度が高まることになります。 しかしどんなに多くの変換回数を費やしても到達できない関数があるかもしれません。 Rijndaelの場合、多重変換で関数(写像)の種類は増すでしょうか、どのような飽和傾向があるのでしょうか。

みんなの回答

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.1

Rijndaelのブロック長は、 128,160,192,224,256ビットの5通りです。 暗号化鍵の長さも上の5種類です。 これらは、独立に設定できます。 たとえば、暗号化で 最初は、ブロックサイズ128ビット、鍵は128ビット 2回目は、ブロックサイズ224ビット、鍵は128ビットで 多重暗号化すれば、 256ビットの鍵では、1回では決して復号化出来ないと思います。 理由は、 ブロックのデータが混在すると考えて、 ブロックの最小公倍数1792ビット のブロックを同時に復元しなくてはならなくなります。 暗号強度を増すには、ブロック長の最小公倍数が 大きくなるようにしたら良いと考えています。 AESではなく、本来のRijndaelのよさはそこにあると思います。

pivot_shaf
質問者

補足

ご回答ありがとうございます。 しかし申し訳ありません。オリジナルのRijndaelのブロック長、鍵長選択の幅が広い事を利用し、暗号強度を高める手段はいくつもあると思いますが、私の目先の疑問は、「同一ブロック長の変換の繰り返しがどのような様相を呈するか、写像の種類は増加するか」にあります。 ところで、ご提示いただいた方法、 > 最初は、ブロックサイズ128ビット、鍵は128ビット > 2回目は、ブロックサイズ224ビット、鍵は128ビットで > 多重暗号化 は、確かに256bitの鍵の1回では決して復号できない例でしょうが、例えば、 最初は、ブロックサイズ128bit、鍵は128bit 2回目は、ブロック境界を1bitずらし、同一ブロックサイズ128bit、鍵は128bitで 多重暗号化 というようにしても256bitの鍵の1回では決して復号できないと思います。そのような方法がいくつもある中で、異なるブロック長の混在ならではの真価が良く見えませんでした。また、 > ブロックのデータが混在すると考えて、 > ブロックの最小公倍数1792ビット > のブロックを同時に復元しなくてはならなくなります。 に関してですが、最小公倍数がどうして必要なのかがわかりませんでした。単純に考えると、まず224bitの2ブロックを復号すれば、少なくとも二つの128bitブロックが完全に含まれるので、たとえCBCであっても部分的な復号は可能になりそうなのですが。