AES-256で暗号化したファイルをBlowfish ( 448 bit )で重ねて暗号化する方法は、704 bitの暗号化といえるのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/10/30 00:01:30
  • 終了:--

回答(3件)

id:rafile No.1

rafile回答回数662ベストアンサー獲得回数242005/10/30 00:29:54

ポイント20pt

http://www.hatena.ne.jp/1130598090

人力検索はてな - AES-256で暗号化したファイルをBlowfish ( 448 bit )で重ねて暗号化する方法は、704 bitの暗号化といえるのでしょうか?

AES-256で暗号化したものがランダムであれば、その後Blowfish 448を行えば事実上704bitの暗号化相当になります。


ただし、AES-256の出力結果に偏りがあったり、AES暗号化後にヘッダやチェックサムを付加する処理を行っていれば 448bit相当になるでしょう。


質問では、AES256暗号化したファイルとありますから、ここでどんな処理がされているかが肝心ですね。

id:tmoriya

TrueCryptとう暗号ツールを使うことを念頭に質問してました。

このツールの暗号化のひとつに

<引用>

AES-Blowfish

Inner-CBCモードで2つの暗号がカスケード(多段処理)されます。それぞれのセクターは、まずBlowfish(448-bit キー, 64-bit ブロック)で暗号化され、つぎにAES (256-bit キー, 128-bit ブロック)で暗号化されます。カスケードの暗号のそれぞれは、それ自身のキーを使います。それぞれのキーは相互に独立しています。(補足: ヘッダーキーは一つのパスワードから作られるものの、きちんと独立しています。「ヘッダーキーの生成、ソルト、反復回数」を参照) カスケードのそれぞれの暗号については、上記の個別解説を参照してください。

http://www.geocities.jp/blackbird_and_sun/TrueCryptUsersGuid...

より

</引用>

という方法があります(Blowfishの後にAESでした)。

「ヘッダやチェックサムを付与する」のかどうかは、よく分かりません。マニュアルをもっとよく読んで見ます。

2005/10/30 00:48:00
id:Kumappus No.2

くまっぷす回答回数3784ベストアンサー獲得回数1852005/10/30 00:31:45

ポイント20pt

http://www.seil.jp/seilseries/faq/_vpn.html

IIJ | SEIL Series [ FAQ - VPNについてのFAQ ]

どのぐらいの強度になるか、はちょっとわからないのですが、少なくとも「704bitの暗号化」と言えないのは間違いないです。

1)暗号強度は同じアルゴリズムであれば一般に「何bitの強度がある」と言えますが、アルゴリズムが異なる場合はそういう比較はできません。例えばこれは公開鍵暗号の場合ですが

http://www.watch.impress.co.jp/internet/www/article/2000/0414/10...

109�r�b�g�̑ȉ~�Ȑ��Í������ǂ������\�\RSA��600�r�b�g�ȏ��ɑ���

楕円暗号の109bitはRSAの600bit以上、というように。

2)暗号処理を直列化した場合も単純にビット長の加算だけの強度にはなりません。DESを3回かける3DESの強度はDESの56bitに対して2倍の112bit~3倍の168bit程度、という言い方をされます。

id:tmoriya

アルゴリズムによって、総当りのしやすさの違いということなのでしょうか?

2005/10/30 00:57:07
id:T-pon No.3

T-pon回答回数424ベストアンサー獲得回数42005/10/30 01:11:42

ポイント20pt

僕もKumappusさんと同意見です。すでに詳しく説明されていますが、一言だけ回答させてください。


仮に同じアルゴリズムを2回重ねて用いたとしても、単純にbitを足し算した強度にはなりません。


たとえば64bitの暗号があったとして、さらに128bitの暗号化を行ったとします。これを解除するための暗号A(64bit)とB(128bit)が存在します。一方でAにBを並べたC(64+128=192bit)を想定します。


①今AとBを知らない人がこれを総当りで予測するなら、まずAについて総当りをしてAが見つかれば、つぎにBについて総当りをすることになります。

②今Cを知らない人がこれを総当りで予測するなら192bitのCについて総当りをすることになります。


①も②もありうる暗号の場合の数は2^192です。しかし①では初めの64bitの正誤を知った上で残りの128bitを推測できますが、②では初めの64bitの正誤を知らずに192bit全てを解読しなければならないので、時間がかかるでしょう。

id:tmoriya

よく分かりました。

2005/10/30 01:35:49
  • id:rafile
    暗号。。。

    3点ほど

    ブロック暗号と楕円暗号/RSAは種類が違います。
    これらの間で鍵長を比べるのは無意味です。
    blowfishとAESはブロック暗号です。
    ブロック暗号内では鍵長を比較してもかまいません。
    たとえば、AESの256とBlowFishの256では同程度の強度が得られるでしょう。(得られない場合は暗号に弱点があるということなので使わないほうが無難です)

    3番目の①は普通は不可能です。なぜならば、正解かどうかはさらに次の暗号を解かなければならないからです。
    暗号が弱くなるのであれば、暗号がたこであるか、ツールがたこであるかなだけです。AESとblowfishがたこであるとは聞いたことがないですし、ツールも(多分)暗号の専門家が注意深くつくったのであれば問題ないと思います。(もちろん将来弱点が発見されるかもしれませんが)

    ということで、704ビット相当と胸をはってよろしいと思います。

    あと、AESの256だけでも相当な強度を持っています。これ以上を求めると暗号の強度そのものよりも、鍵の作り方、暗号の組み合わせ方、鍵の配送・保管、暗号化前のデータが残っていたり、OSのパスワードが破られたり、キーロガーや、データロガーが仕掛けられたりといったことを真剣に検討する必要があると思います。

    あとは想像ですが、AESにBlowFishを組み合わせるのは、暗号強度を高めるためよりも、どちらかの暗号に脆弱性が見つかった場合にも他方でカバーすることをねらっているんじゃないかとも思います。
  • id:tmoriya
    Re:暗号。。。

    704 bit とはいえません。bit 数は、448+αです。
    一つ目の暗号を解いた後に、続けて二つ目の暗号を得場合は、
    log2(2^256+2^448)=448+α
    となります。

    また想像の通り、暗号を2つ使う主目的は脆弱性発見のリスクヘッジです。量子コンピュータの実用化まで、重ね合わせの暗号で機密を守り抜くことを考えています。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません