Encryption

使用ECC時pre-master secret如何加密?

  • January 26, 2017

https://de.wikipedia.org/wiki/Authenticated_Encryption中使用的證書 有

  • 公鑰ECC
  • 公鑰參數 ECDSA
  • 密鑰使用數字簽名

它用於設置安全的 TLS 連接。

到目前為止,我知道,所謂的 pre-master-secret 是由客戶端 ant 生成的,它使用其證書加密發送到伺服器。

但是在這種情況下使用什麼加密原語進行加密呢?公鑰用於數字簽名 ECDSA,但簽名不是加密。

那麼預主密鑰是如何加密的呢?

那麼預主密鑰是如何加密的呢?

它不是。

您正在查看的是ECDHETLS 的密鑰交換

簡短的描述是伺服器和客戶端執行經典的Diffie-Hellman 密鑰交換在橢圓曲線上),並將生成的共享密鑰用作預主密鑰。這與 RSA 密鑰傳輸的情況不同,在這種情況下,客戶端選擇預主密鑰並將公鑰加密的副本發送到伺服器。


現在了解技術細節(來自RFC 5246:“傳輸層安全性 (TLS) 協議版本 1.2”):

客戶端發送其支持的密碼套件列表ClientHelloTLS_ECDHE_ECDSA_CHACHA20_POLY1305在案例(發生在ServerHello)。在同一執行中,伺服器發送其公共的、臨時的 ECDH 密鑰(in ServerKeyExchange),這很可能是 Curve25519 的一個點。客戶端收到這個並用他的公鑰(又是一個點)進行響應,客戶端還計算共享點,然後使用完整的 x 座標作為預主密鑰. 一旦伺服器接收到客戶端的公鑰,它也會計算預主密鑰(即共享點的 x 座標)。

現在雙方共享相同的預主密鑰,使用 ECDHE 交換。

引用自:https://crypto.stackexchange.com/questions/43290