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