2017-08-18 22 views
0

私はWeb上で通知をプッシュできるようにaes128gcm暗号化アルゴリズムを実装しようとしています。しかし、塩をどこにでも使用する目的が見つからないので、私が行方不明になっているものがあります。AES128GCM暗号化アルゴリズムのSALTロールとは

暗号化コンテンツコーディングヘッダーは16バイト長のsalt値を持つ必要があります。それは提供された公開鍵に沿って128ビット鍵を生成するために使用されていますか?あるいは、私はaesgcm暗号化の間に他の場所でそれを使うべきですか?

私はこの世にちょっと新しく、どこでも答えを見つけられないようです。

+1

多分https://en.wikipedia.org/wiki/Salt_(cryptography) –

+0

私は塩が一般的であることを知っていますが、私はこのアルゴリズムにどのステップを適用する必要があるのか​​分かりません。 –

+4

AFAIK GCMは「塩」値を使用しません。私はあなたが "ノンス"を指していると仮定します。 – Robert

答えて

1

完全に確定的な暗号化アルゴリズムをお持ちの場合は、辞書攻撃に脆弱です。

たとえば、「password」が常に「qbttxpse」に暗号化されている場合、攻撃者は暗号化されたパスワードのリストを調べ、「qbttxpse」が表示されているどこにいても普通のパスワードが「パスワード」であることを知ることができます。

メッセージが暗号化されずに暗号化されて格納されているメッセージングシステムに遭遇しました。ある顧客が同じメッセージを頻繁に送信しました。内容が何であるかを知ることはできませんでしたが、どれくらいのメッセージが同一であるかを知ることができます。攻撃者がこれを悪用する可能性があります。

もちろん、このプロパティを利用することができる微妙な方法がたくさんあります。

これを避けるには、を紹介します。

  • 暗号化の入力には、平文、鍵、ランダムに生成されたソルト値が含まれています。
  • 目的の受信者に送信されたペイロード復号化への入力は、暗号文、だから、キーと塩

が含まれている暗号文と塩

  • が含まれている、あなたは、ランダムにあなたの16バイトの塩を生成する必要がありますメッセージごとに送信する必要があります。送信プロトコルでは、暗号文とともに通信するためのスペースを確保する必要があります。それを暗号文の前に置くだけで簡単にできます。

    固定塩をハードコードして両端で使用すると、暗号化と復号化が同じメッセージで終了するという意味で "動作"しますが、私が説明した脆弱性があります。ところで


    - 暗号化アルゴリズムを中心にプロトコルを設計するには、非常に微妙な落とし穴をはらんでいる、そしておそらく最高の本当の専門家に委ねられている(私は、セキュアなインターネットプロトコルとかなり低いレベルで働いて20年以上の経験を持っている - と私は防弾暗号層を設計するために自分自身を信頼しないだろう)。可能な場合は、何かを確立してください(SSLやS/MIMEなど)。

  • 0

    AES128GCM暗号化アルゴリズム

    なしでSALTの役割は何ですか。 Saltは一般にパスワードのハッシュをランダム化するために使用されますが、AES-GCMの一部ではなく、パスワード(パスワードではありません)、IVと平文で暗号文と認証タグを生成します。

    鍵を派生させるためにパスワードと一緒に塩を使用することも可能ですが、それはAES-GCMの一部ではありません。

    関連する問題