web-dev-qa-db-ja.com

一部の暗号文字列の「P」値は何ですか?

私が見る暗号文字列のほとんどは、次の形式です。

TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

ただし、追加の「P」値を持つ暗号文字列が含まれるワークステーションに遭遇しました。

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521

「P」の値は何ですか(何を表していますか)?また、一部は一般的なハッシュの長さに似ていますが、上記の「521」はタイプミスではありません。

更新:

申し訳ありませんが、もっと具体的に質問する必要がありました。

1。 P値がある場合とない場合の暗号スイートの違いは何ですか?
2。 P値を持つ暗号文字列はより強いですか、それとも弱いですか?
3。基本的に、P値の追加はPKIプロセスに対して何をしますか?それはある種のネストされた/追加のメッセージ認証ですか?
4。 521はハッシュ長ですか?そうでない場合、それは何ですか?

6
user58446

P521は楕円曲線です

「P521」は、SECGとTLSが正式に secp521r1 と呼ぶ 楕円曲線NIST FIPS 186-4 はP-521を呼び出します。楕円曲線は、ECDHやECDSAなどの楕円曲線アルゴリズムで使用される数学的領域です。

カーブは一般に、カーブのタイプとキーサイズに関する情報を含む名前で知られています¹。文字「sec」は [〜#〜] secg [〜#〜] (効率的な暗号化グループの標準)を表し、特に SEC2 。次のPは、曲線が素体(要素数が素数である 有限体 )上にあるためです。 521は、曲線に関連付けられているビットサイズです。 Rは、曲線の特定のパラメーターがランダムに生成されたことを示します。最後の1は、これが最初の(これまでのところ)secp521r曲線であるためです。

曲線パラメーターは通常、パラメーターが必要なセキュリティプロパティを備えていることを確認するための数学的制約を前提として、計算を高速化するような方法で選択されます。特に、フィールドのサイズが2の累乗と可能な限り少ないビットで異なる場合に役立ちます。これにより、高速 モジュロリダクション が可能になるためです。たまたまその2521-1が素数です。ニースとほぼ同じで、512ビット以下の素数はありません。

sizes に関して、今日では、一時鍵交換(ECDH)および署名(ECDSA)の楕円曲線には256ビットで十分と考えられています。いつものように、サイズが大きくなると、パフォーマンスは低下しますが、耐性が高くなります(ただし、「実際に解読できない」というのは実用的な利点ではないため、耐性は高くなります)。

楕円曲線とTLS暗号スイート

TLS 暗号スイート は、TLSプロトコルが通信に使用されるキーをセットアップする方法を説明するパラメーターのセットです。詳細については、 SSL/TLSの仕組み を参照してください。たとえば、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256は、使い捨ての楕円曲線Diffie-Hellman(ECDH)を使用して鍵交換を実行し(一時鍵の場合はE)、RSAでサーバーの署名を検証し、AES-128-CBCを使用してセキュアチャネルとHMAC-SHA-256を暗号化して認証します。クライアントとサーバーは、TLS接続の最初に使用する暗号スイートをネゴシエートします(クライアントは、サポートする暗号スイートのリストを送信し、サーバーはそれを選択してクライアントに通知します)。 ECDHの楕円曲線の選択は、 暗号スイートエンコーディング の一部ではありません。曲線は個別にネゴシエートされます(ここでも、クライアントが提案し、サーバーが決定します)。

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256と異なるものではありません。これは、ECDHEパーツに対してsecp521r1でTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256を使用することを意味します。

ほとんどのTLSサーバーソフトウェアでは、管理者がサポートするセキュリティパラメータを構成できます。時々、これは各部分に対して独立して行われます(どの鍵交換タイプ、どの鍵合意アルゴリズム、署名のハッシュ、どの楕円曲線、HMACのハッシュ、対称暗号、どのAEADアルゴリズム、…)。ここでは、暗号スイートごとにサポートする楕円曲線を選択します。一緒に構成するパラメーターの選択は、利便性と柔軟性の問題です。

¹ より正確には、曲線上の点の座標のビット単位のサイズです。しかし、すべての一般的な曲線について、それは秘密鍵のビット単位のサイズでもあります。

これらはECDHE鍵交換で使用される曲線、つまりNIST P-256、NIST P-384、NIST P-521を意味することをお勧めします。これらは実際には暗号自体(TLSハンドシェイクで使用される16ビットの暗号ID)の一部ではありませんが、Microsoftが暗号構文に追加したようです。

「P値」の有無にかかわらず、暗号スイートに実際の違いはありません。ただし、一方が使用している楕円曲線を明示しているのに対し、もう一方はシステムのデフォルトを使用します。

7
Steffen Ullrich

それらは NIST ECC Curves の命名です。 NIST.FIPS.186-4 も参照してください

NIST  RFC 4492

P-256 secp256r1  
P-384 secp384r1 
P-521 secp521r1 
5
kelalaka