Public-Key

公鑰超過 Mod P?關於離散對數問題的澄清請求

  • February 7, 2021

我試圖觀察/實現離散對數問題,但我注意到了一些事情;但在我開始之前,讓我做一些澄清,可以更正。

> > 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. 你正在做橢圓曲線點乘法,這要復雜得多。

引用自:https://bitcoin.stackexchange.com/questions/102334