web-dev-qa-db-ja.com

暗号化アルゴリズムの倍増または循環

暗号化アルゴリズムを2倍にする(1つのアルゴリズムでメッセージを一度暗号化してから、別の暗号化アルゴリズムで再度暗号文を暗号化する)か、暗号化アルゴリズムのリストを定期的に循環することで、セキュリティを強化する提案をときどき読みました。

これは、適切に選択され、適切に実装された単一の暗号化アルゴリズムよりもかなり安全ではないかと思いますが、私が主張することができるかどうかはわかりません。

暗号化アルゴリズムを2倍にしたり循環させたりすると、セキュリティが向上しますか?なぜですか、なぜそうではありませんか?

17
Josh Kelley

暗号化アルゴリズムのカスケードまたは循環は、実装の複雑さを増大させ、それはセキュリティにとって本当に悪いことです。アルゴリズムの本質的セキュリティ(自家製のデザインではなく、公開され、十分に分析されたアルゴリズムを使用する場合)は、常に実装のセキュリティよりもはるかに優れています。ほとんどの実装では、実行タイミング、キャッシュメモリアクセス、または動作が不十分な場合、秘密鍵ビットなどのさまざまな要素が漏洩する可能性があります不正なデータに遭遇したとき。

もしあなたがすべての実装の危険をカバーしているなら、アルゴリズム自体について心配する時になります。その時点で、あなたは訓練を受けた暗号学者であり、カスケードやダブリングなどの不合理なトリックに頼るよりもよく知っています。基本的に、アルゴリズムの倍加または循環が保証することの1つは、提案をする人は誰でも暗号化実装の領域で過度に能力がないため、彼のコードを使用したくないということです。

歴史的に、カスケードまたは循環は、弱い暗号化アルゴリズムに対処する方法です。これは、すべてのアルゴリズムが壊れると想定し、損傷を制御しようとすることを想定しています。これは、70年代以降の暗号化に関するすべての研究を否定するものです。実際には、セキュリティの問題は、アルゴリズムの使用方法(ブロック暗号を使用したチェーンモードなど)、アルゴリズムの実装方法、そして最も重要なのは、キーの管理方法(作成、保存、破棄...)にあります。アルゴリズム自体を弱点にするには、多大な労力を費やす必要があります(たとえば、DVDコンソーシアムとして独自のアルゴリズムを設計する did )。一例として、現代のゲームコンソールがハッキングされた場合、アルゴリズム自体(AES、ECDSA ...)は壊れませんが、回避されます(ECDSAおよびSony/PS3の場合、これは実に実装上のバグでした)。

あなたがしたいことアルゴリズムの俊敏性を持ちたい:プロトコルを定義する使用されるアルゴリズムは構成可能なパラメーターです。したがって、特定のアルゴリズムが不安定であることが判明した場合(まったく発生しないことが多い)、別のアルゴリズムに切り替えることができます。

21
Thomas Pornin

固定サイズの鍵で暗号を使用する場合、暗号化ラウンドの連鎖が有効な鍵の長さを増やす正当な方法であると私は主張します。長いキーをパーツに分割し、パーツを異なるラウンドで使用します。

それがtriple-DESが存在する理由です。 1977年には56ビットで十分であるように見えましたが、現在のハードウェアではブルートフォース攻撃を受けています。

1
Hugh Allen