公鑰超過 Mod P?關於離散對數問題的澄清請求
我試圖觀察/實現離散對數問題,但我注意到了一些事情;但在我開始之前,讓我做一些澄清,可以更正。
> > a = b^x 模 P > > >
然而
a = 地址的公鑰;
b = secp256k1 koblitz 曲線的生成點(這是上下文中的曲線);
x = 離散對數;
P = 模整數。
我耦合了以下所有參數:
A = 044f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa385b6b1b8ead809ca67454d9683fcf2ba03456d6fe2c4abe2b07f0fbdbb2f1c1(未壓縮公鑰)
034f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa:(壓縮公鑰)
B = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10未壓縮發生器點
02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798(壓縮發生器點)
X = ?
P = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
我實際上不知道我應該使用哪一部分參數(壓縮或未壓縮)
N. B:我嘗試了 Mod P 的未壓縮公鑰,但未壓縮公鑰的大小超過了 Mod P。
我該怎麼辦?
值得注意的是,橢圓曲線離散對數問題 (ECDLP) 與普通離散對數問題 (DLP) 略有不同。
在 DLP 中,
^
運算符實際上是求冪運算,它對整數進行運算,因此mod p
只是正常的模數。然而對於 ECDLP,^
實際上是橢圓曲線點乘法。這與求冪不同,是一個更複雜的過程。你也不mod p
能用一個點,因為它們不是整數。雖然有一個模,但它是點乘過程本身的一部分。您使用的參數的壓縮程度並不重要。最後,壓縮只是一個點的編碼。您需要解析此編碼以確定該點的 X 和 Y 座標;未壓縮和壓縮都允許您確定它們。未壓縮的只是直接為您提供 X 和 Y 座標,而壓縮的則為您提供 X 以及 Y 是偶數還是奇數,以便您可以計算正確的 Y 座標。當您進行點乘時,您不會將編碼點作為整數處理,而只是將其與
x
. 你正在做橢圓曲線點乘法,這要復雜得多。