キーの最も完全な要約はここにあります

前回の記事では、対称暗号、公開鍵暗号、メッセージ認証コード、デジタル署名などの暗号技術について説明しましたが、これらの技術はすべて、鍵と呼ばれるものを使用します。

では、キーとは正確には何ですか?キーは、最終的な平文を取得できるキーです。したがって、キーは実際にはプレーンテキストと同等です。

たとえば、金庫には10万ドルあり、金庫はロックされており、鍵を持っています。次に、キーを持つ人は10万ドルを持っていることと同等です。

さまざまなキーの概要

前回の記事では、対称暗号、公開鍵暗号、メッセージ認証コード、デジタル署名の4つの暗号化技術について説明しました。ここでもう一度確認します。

  • 対称暗号

対称パスワードは、同じキーを使用してプレーンテキストを暗号化および復号化します。

  • 公開鍵パスワード

公開鍵パスワードは、メッセージの暗号化と復号化に異なる鍵を使用します。

  • メッセージ認証コード

メッセージ認証コードは、同じキーを使用してメッセージを認証します。

  • デジタル署名

デジタル署名では、メッセージの署名と検証にさまざまなキーを使用します。

その中でも、対称パスワードと公開キーパスワードは、プレーンテキストを直接暗号化して、メッセージの機密性を確保します。

メッセージ認証コードとデジタル署名は、主にメッセージの正当性を検証するために、プレーンテキストの暗号化には使用されないメッセージの認証に使用されます。

その他の主要な分類

上記の4種類は、暗号化の方法と使用法によって分類されますが、実際には、インストールキーの使用回数は、セッションキーとマスターキーに分けることができます。

セッション鍵は、1回のセッションでのみ使用され、使用後に破棄される鍵であり、マスター鍵は、繰り返し使用される固定鍵です。

SSL / TLSプロトコルに精通している友人は、これに精通している必要があります。このプロトコルでは、セッションメッセージを暗号化するために、セッションごとに個別のキーが作成されます。つまり、セッションごとにセッションキーが作成されます。

さらに、暗号化されたオブジェクトがコンテンツであるかキーであるかに関係なく、それを暗号化メッセージのキー(CEK)と暗号化キーのキー(KEK)に分割できます。メッセージを暗号化する鍵はわかりやすく、以前の対称鍵と公開鍵はCEKでした。暗号化キーは、主にキーの数を減らすために使用されます。

キー管理

ここでは、主に次の点からキー管理について説明します。

  1. キーを生成

キーを生成するには、乱数を使用する方法とパスワードを使用する方法の2つがあります。

乱数には推測できない特性が必要ですが、一般的には、疑似乱数ジェネレータを使用して生成する必要があります。

通常、JavaコードではRandomクラスを使用しますが、このクラスを使用してキーを生成することはできません。java.security.SecureRandomを使用して、パスワードセキュリティ用の乱数を生成できます。

SecureRandomの2つの一般的な使用方法を次に示します。

        SecureRandom random = new SecureRandom();
        byte bytes[] = new byte[20];
        random.nextBytes(bytes);
 byte seed[] = random.generateSeed(20);

乱数に加えて、別の方法はパスワードです。

パスワードは人間が覚えやすいパスワードであり、パスワードによって生成されたキーがブルートフォースされないようにするために、パスワードをソルトする必要があります。

簡単に言うと、パスワードに乱数を追加し、追加後にその数値をハッシュし、計算結果をキーとして使用することです。

  1. 配送キー

鍵の配布には、事前に共有鍵、鍵配布センター、公開鍵パスワードなどを利用できます。もちろん、他の方法で配送することもできます。

  1. キーを更新

場合によっては、キーのセキュリティを確保するために、時々キーを更新する必要があります。一般的なアプローチは、現在のキーを参照値として使用し、特定のアルゴリズムを通じて新しいキーを計算することです。

  1. キーを保存

ブロックチェーンを学んだ人は、紙の鍵があることを知っているはずです。実際、それは紙に鍵を書いてそれを保存することです。

キーが多すぎる場合、キーをオフラインで保存することは非常に困難な作業になります。このとき、鍵の鍵KEKを使用できます。これらのキーを暗号化して保存します。

暗号化されたキーのセキュリティをこのように考慮する必要はありません。盗まれたとしても、以前のキーを復元することはできないからです。これらのキーを暗号化するキーを保存するだけで済みます。

  1. 無効キー

キーはキーであるため、キーを取り消すことは非常に複雑な問題です。削除しても、他の人がそのコピーを保持している可能性があります。したがって、鍵の設計は、設計で完全に考慮する必要があります。

以前の証明書では、CRLリストを使用して古いキーを保存できます。

詳細については、http://www.flydean.com/key/をご覧ください。

おすすめ

転載: www.cnblogs.com/flydean/p/key.html