0

文字列を暗号化したいとしましょう...ユーザーのメールアドレスとしましょう。この状況では、たとえば、電子メール アドレスを文字列として暗号化することをお勧めします。

"sometext:" + email

(そして復号化するとき、余分なプレフィックスを削除します)

メールアドレス自体の代わりに?私の懸念は、暗号化された文字列をどこかで公開した場合、誰かが十分な数の暗号化された文字列 (およびそれらのプレーン テキスト バージョン) を生成し、暗号化された電子メール アドレスを独自に設計できる可能性があることです。

考え?

4

4 に答える 4

1

平文の全部または一部がわかっている暗号化された暗号文を攻撃することは、既知平文​​攻撃と呼ばれます。AESなどの最新の暗号は、このような攻撃に対する証拠です。必要に応じて追加のソルトを追加できますが、AESのような最新の優れたサイファーを使用している場合は、セキュリティが実際に向上することはありません。

于 2012-09-12T12:48:21.497 に答える
1

この手法は、すでに塩漬けとして知られており、かなり一般的です。

ソルトを秘密にしておく場合は、それを入力と混ぜて、それを暗号化ハッシュ関数にフィードすると、安全になります。それにもかかわらず、特に暗号化を行う場合は、自分が何をしているのかを確認する必要があります! sha1 を使用したソルトの例:

saltedHash = sha1(salt + input)

結果のハッシュを保存できるようになりました。与えられた入力を保存されたものと比較する必要がある場合は、同じ手順を実行して、ソルトされたハッシュを比較します。

サイトノート: これを使用しているMAC場合は、シークレット プレフィックス/サフィックス ハッシュについて読み、暗号化を実践することなく先に進まないでください。

于 2012-09-12T12:25:15.910 に答える
1

AES またはその他の安全な暗号は、プレーン テキスト攻撃から保護されています。ただし、誤って使用した場合でも、それらからデータを取得できます。たとえば、ストリーム暗号モードを使用する場合、一意の NONCE を使用しなければプレーン テキストを取得できます。情報を取得するもう 1 つの一般的な方法は、単純に暗号文のサイズを確認することです。

CBC 暗号化などのより一般的なモードを使用する場合は、(攻撃者にとって) 乱数と区別できない IV を使用する必要があります。次に、その IV を暗号文の先頭に追加できます。そうしないと、攻撃者は暗号文の最初のバイトを他の暗号文と単純に比較できます。これらが同一である場合、攻撃者はおそらく共通の名前を見ています。IVはこれを防ぎます。

テキストをもう一度読んでみると、あなたが達成しようとしているのは、他の誰かがあなたに暗号文を送信するのを防ぐことです。この暗号文は、復号化後に有効なメールとして解釈される可能性があります。これは、MAC または HMAC (別のキーを使用) を使用して完全性保護を追加するか、GCM などの完全性保護を提供するモードを使用することで回避できます。これにより、そのような慣行からは保護されますが、リプレイ攻撃からは保護されません。そのシナリオに対する保護を実現するには、ある種の一意のトークン (送信者 + シーケンス番号) を暗号化または検証する必要があります。

残念ながら、その静的なテキストを追加しても、どのシナリオにも役立ちません。

于 2012-09-12T15:14:24.733 に答える
0

それはすべて、使用するアルゴリズムに依存します。弱いものを使用する場合、はい、追加する可能性のある文字列が何であれ、それでもクラック可能です.

非常に強力な暗号化メカニズムを使用すると、セキュリティが大幅に強化されます。

于 2012-09-12T12:20:48.160 に答える