web-dev-qa-db-ja.com

ふぐの鍵が正しいかどうかどうやってわかりますか?

ここでは暗号化の初心者なので、この質問は意味をなさないかもしれません...明らかに、平文が何であるかを知っていて、それが正しく復号化されれば、あなたはそれを持っています。しかし、誰かが暗号化を破るためにキーを実行している場合、彼らはそれが正しいことをどうやって知るのでしょうか?あなたは読みやすいテキストをチェックする必要がありますか、それともあなたはそれが正しいことを数学から知ることができますか?余りのように常に0か何かに等しい。

1
Hepcat

Blowfishはブロック暗号であり、ECBまたはCBCのブロック暗号では、長さがブロックサイズの倍数である必要があります。そうでない場合は、最後のブロックが埋め込まれます。パディングにはいくつかの方法があります。重要なのは、復号化によって正しいパディングが得られない場合は、間違ったキーで暗号文を復号化したことがわかっているということです。

ランダム性テストを使用して、復号化された平文を分析することもできます。正しく復号化された暗号文の平文には、通常、間違ったキーで復号化された平文と比較して、ランダム性がはるかに少なくなります。平文に含まれると予想される場合

最近、HoneyEncryptionと呼ばれる研究プロジェクトが発表されました。今年コペンハーゲンで開催されるEurocryptカンファレンスで発表されます。暗号化されたデータが間違ったキーで復号化されると、復号化アルゴリズムによって生成されるプレーンテキストがもっともらしく見えるという考え方です。攻撃者は、正しくないがもっともらしい見た目の平文と正しい平文を区別できません。このアプローチの欠点は、すべての平文で機能するとは限らないことです。これは主に、クレジットカード番号またはパスワードの暗号化に使用するために設計されました。

3
DanielE

それがblowfishにも当てはまるかどうかはわかりませんが、通常、暗号化アルゴリズムの長所は、基本的にすべての復号化が有効復号化であるということです。復号化がsenseになることを確認するには、テキストが期待を満たしているかどうかを確認する必要があります。

一部の暗号文を復号化すると、パスワード「foo」を使用するとhello worldになり、パスワード「bar」を使用するとhonkey donkになる可能性があります。

したがって、読み取り可能なテキストをチェックすることは(これが期待どおりである場合)正しい選択です。残りはありません。

1
fr00tyl00p