Re: [crypto] Feistel構造の時代は終わったのか?
In article <867j3rnrjn.fsf@bsd2.4bn.ne.jp>,
Yoshitaka Ikeda <ikeda@bsd2.4bn.ne.jp> writes:
> manmos@stellar.co.jp (Hideo "Sir MaNMOS" Morishita) writes:
>
> > In article <e67g3f$fp8$1@caraway.media.kyoto-u.ac.jp>,
> > Yoshitaka Ikeda <ikeda@4bn.ne.jp> writes:
> > 自分で実装した関係上、私がよく使うCAST-[56]もFeistel構造ですね。
>
> CAST-256ですよね? いや、56bit版もあるんですか?
> CASTはぜんぜん構造は知りませんでしたが、すくなくとも、
> Applied Cryptgraphyを読む限りでは、Feistel構造でビット数可変
> なんですよね?
ごめんなさい。わかりにくかったです。
CASt-5(64bit block)とCAST-6(128bit block)のことを書くのに正規表現を使
用してしまいました。
#因みにCAST-5には56bit鍵長の選択はありません。最低80bitです。
bit長可変というのは鍵長のことで、複数の鍵長さを使用でき、その長さによっ
てラウンド数が変わります。(もちろん副鍵生成も)
> > > 個人的には、設計の容易さや復号が暗号化と同一であることから考えると
> > > Feistel構造にもそれなりの利点はあると思う。
> >
> > あと、CASTで判る通り、64bitブロックから128bitブロックへの拡張も、簡単
> > に行えたりします。
>
> RC5とかRC6も同様ですよね。
> これも、たぶんラウンド関数が全単射である必要がない
> (構造自体から全単射であることが保障される)というFeistel構造のメリット
> でしょうね。
CAST-5では64bitを2つに分割した、単純はFeistel構造をとりますが、CAST-6
では128bitを4つに分割し
X2 ^= f1(X3,Km0i,Kr0i);
X1 ^= f2(X2,Km0i,Kr0i);
X0 ^= f3(X1,Km0i,Kr0i);
X3 ^= f1(X0,Km0i,Kr0i);
というような(後半は少し違う)拡張したFeistel構造をとります。
>
> > ハードウェア実装などではfの部分はいじらずに、ちょっとネットワークをい
> > じるだけでよいです。
>
> あんまりハードウェア実装はまじめに見たことはないんですが、
> SPNだと、そのまんまダイレクトにビット幅が影響してきますよね。
上記で判る通り、ラウンド関数(や、それに付随するS-box等)は新しく作成す
る必要は無く、ひとつのチップに同系統の2つの暗号を実装することも容易に
なると考えられます。
> > あと、(私が知っている限り、既知平文攻撃とか線形攻撃とかで)どのようなf
> > を使えば、攻撃に強くなるかの論文は豊富です。
>
> これについては、どっちが豊富なんだろうなぁ。
> ただ、3段繰り返し攻撃とか見てると、Feistel構造は、線形攻撃・差分攻撃では
> 糸口は見つけやすいような気がします。
まあ、Feistelにしてもラウンド関数の設計ひとつひとつに対して、論文があ
るでしょうが、ものが簡単な分、発見された脆弱性も改良しやすいのかとは思
うのです。
> > SPN構造だと、そのあたり、自分で考えなきゃならないので、社内内部で使用
> > するために、ちょっとした暗号を設計しましょう、なんてことはとてもできま
> > せん。
>
> これは難しいでしょうね。
>
> そういえば、暗号アルゴリズムの名前は失念したんですが、うまくSPN構造を
> 使って、暗号化と復号が同一処理(鍵の順番入れ替えるだけ)でできるような
> 暗号がありました。ゼミで誰かが論文紹介してたんだけどな。忘れちゃいました。
もし、思い出したら教えてください。引っ張ってきて読んでみたいです
>
> > その点Feistelだと、ちょっと、SHA-1にあわせて160bitブロックの暗号をCAST
> > のS-Boxとf[1-3]使って作ってみようとか、簡単にできます。
>
> まあ、速度さえ気にしなければ簡単に実現できますよね。
上記のような拡張で行っていくと、案外、速度は落ちないのです。まあ、ラウ
ンド数が効いてくるだけですが。
--
___ わしは、山吹色のかすてーらが大好きでのぅ
[[o o]] ふぉっふぉっふぉ
'J' 森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D 02 74 87 52 7C B7 39 37
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735