Elliptic-Curves

DH 橢圓曲線:為什麼選擇固定基點?

  • September 13, 2020

我首先看一下使用 Diffie Hellman 的 TLS 密鑰交換,並嘗試了解它的橢圓曲線變體。

因此,如果客戶端和伺服器同意使用 ECDH 進行密鑰交換並且他們使用secp256r1曲線,則似乎給出了基點 G,並且他們從標準( 04 6B17D1F2 E12C4247 F8BCE6E5 63A440F2 77037D81 2DEB33A0F4A13945 D898C296 4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE33576B315ECE CBB64068 37BF51F5)

據我了解,我可以使用任意基點 G 並獲得一個可用於我的密鑰交換的組。使用固定的有什麼好處?知道了基點,就不能創建某種彩虹表,從而破解一些連接嗎?

對我來說,每次選擇一個新的基點 G 會增加安全性似乎更直覺。但據我了解,這不是 TLS 所做的。誰能告訴我們為什麼我們選擇一個固定的基點而不是為每個密鑰交換生成一個新的基點?

知道了基點,就不能創建某種彩虹表,從而破解一些連接嗎?

如果您可以創建這樣一個彩虹表,它允許您將隨機值的離散對數計算為基數 $ G $ 具有非平凡機率 $ p $ ,然後您可以將離散對數求解到任何基數(使用預期的工作 $ O(1/p) $ 時間。

以下是它的工作原理:

  • 你明白了 $ H $ 和 $ J $ ,並且想要計算的離散對數 $ J $ 基地有 $ H $ ,也就是值 $ x $ 英石 $ xH = J $
  • 第一步,計算離散對數 $ H $ 到基地 $ G $ ,也就是值 $ y $ 英石 $ yG = H $ . 你所做的是選擇隨機值 $ r $ , 計算 $ rH $ ,並使用您的彩虹表查找嘗試找到離散日誌 $ y’ $ 的 $ rH $ . 這需要一個預期的 $ 1/p $ 嘗試(因為 $ rH $ 是一個隨機點),我們偶然發現了一個 $ r $ 行得通,我們有 $ y = r^{-1}y’ $
  • 第二步,使用相同的程序計算離散對數 $ z $ 的 $ J $ 到基地 $ G $ ; 再次,這需要一個預期的 $ 1/p $ 嘗試。
  • 第三步很簡單; $ x = y^{-1}z $ ; 我們完成了;那行得通,因為 $ yH=G $ 因此 $ H = y^{-1}G $ , 和 $ J = zG $ , 因此 $ J = z(y^{-1})H $

另一方面,對於我們認為安全的任何曲線,創建這樣的彩虹表是不可行的;如果曲線的階是 $ n $ ,那麼創作至少需要 $ pn $ 點乘法;出於所有實際目的,採用標準離散對數算法 $ O(\sqrt{n}) $ 時間更可行。

知道了基點,就不能創建某種彩虹表,從而破解一些連接嗎?

除了具有相同的安全性之外,事實證明,如果我們知道 $ G $ 提前,我們可以計算 $ rG $ 快得多;因此,它使誠實方的系統更快,並且同樣安全。

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