Elliptic-Curves
Diffie-Hellman 與橢圓曲線 Diffie-Hellman 有何不同?
我不明白 ECDH 是如何工作的。免責聲明:我對橢圓曲線知之甚少。
以下是 DH 的工作原理:
- 愛麗絲和鮑勃就質數達成一致 $ P $ 和一個發電機 $ G $ . (他們使用RFC 3526中的一個)
- Alice 生成一個足夠長(多長時間?)的秘密 $ S $ 併計算 $ R = G^S \pmod{P} $ 並發送結果 $ R $ 給鮑勃
- Bob 和 Alice 在 2 中做的一樣。
- Alice 和 Bob 交換 $ R $
- 他們都計算 $ R^S \pmod{P} $ 與對方發送的值,並找到相同的值 $ SS $ .
$ SS $ 是共享的秘密。
使用橢圓曲線時,點 1..4 有何不同?
EC 的 RFC 3526 的“等效”值是什麼?
您可能想查看橢圓曲線的維基百科頁面以獲得基本概述。
DH 和 ECDH 之間的區別主要在於選擇計算密鑰的組。雖然 DH 使用以素數為模的乘法整數組 $ p $ , ECDH 使用橢圓曲線上的一組乘法點:
- 愛麗絲和鮑勃在橢圓曲線上達成一致 $ E $ 在一個領域 $ \mathbb{F}_q $ 和一個基點 $ P \in E/\mathbb{F}_q $ .
- Alice 生成一個(隨機的)秘密 $ k_A $ 併計算 $ P_A = k_A P $ .
- Bob 生成一個(隨機)秘密 $ k_B $ 併計算 $ P_B = k_B P $ .
- 愛麗絲和鮑勃交換 $ P_A $ 和 $ P_B $ .
- Alice 和 Bob 計算 $ P_{AB} = k_A P_B = k_B P_A $ .
秘密 $ k_A $ 和 $ k_B $ 是一個隨機值 $ \in {1, …, n-1} $ 在哪裡 $ n $ 是生成的組的順序 $ G $ .
等效的 RFC 可能是 RFC 4753(不確定,根本不在 RFC 中)。
為了就共同曲線達成一致,Alice 和 Bob 可以自己生成曲線,也可以使用預定義的曲線和基點。為此,定義了幾個標準,請參閱:
- 腦池
- IEEE P1363
- NIST
- NSA 套房 B
- ANSI X9.63
- …
根據 ECDH 的應用,您可能希望選擇不同的曲線,因為某些曲線有好處,例如點乘的計算步驟量。
它以同樣的方式工作。
唯一的區別是您進行數學運算的組。在橢圓曲線密碼學中,群由曲線上的點給出,群運算記為
+
,而在標準Diffie-Hellman 算法中,群運算記為 $ \cdot $ .我建議您閱讀以下連結。我認為它寫得很好,很容易理解。在那之後,橢圓曲線密碼學不會為您提供任何秘密(有點。這是密碼學和數學的一個相當困難和復雜的分支,但理解所有原理非常好)。