Security-Key

破解比特幣私鑰

  • June 26, 2020

假設我的私鑰已正確生成。我的公鑰是眾所周知的。我不在乎隱私。

在有人從我的所有交易數據中獲得足夠的資訊來破解我的私鑰之前,我可以重複使用我的比特幣地址多少次?

假設我是一名銷售 USDT 的 eBay 賣家(零損失購買,任何人以後都可以以相同的價格轉售),對手可以自由地與我交易以獲取交易數據、簽名等。

這個案例/事項的術語是什麼?是“選擇密文攻擊”,“明文攻擊”等。

在有人從我的所有交易數據中獲得足夠的資訊來破解我的私鑰之前,我可以重複使用我的比特幣地址多少次?

任意次數。

假設 secp256k1 的離散對數問題很困難(比特幣數字簽名的基本安全假設),那麼攻擊者看到多少簽名並不重要。他將無法找到私鑰,也無法偽造簽名。

不重複使用密鑰的建議出現在兩種情況下:

  • 隱私。重複使用地址會增加交易的可連結性,從而降低您的隱私以及您通過該地址與之互動的其他所有人。
  • 後量子安全。一旦您花費了一次分配給給定地址的輸出,它的公鑰就會成為公共知識。在此之前,擁有可以從公鑰計算私鑰的假設機器的人甚至無法開始搜尋。我個人認為這不是不重用地址的特別強烈的理由(不重用地址的真正原因是隱私);請參閱如果我們使用原始公鑰作為地址,可能會對 ECDSA 進行哪些潛在攻擊?為什麼。

這個案例/事項的術語是什麼?是“選擇密文攻擊”,“明文攻擊”等。

這個加密 SE 答案是相關的:https ://crypto.stackexchange.com/a/32715/72983

您真正想要的是防止存在偽造(攻擊者能夠簽署他從未見過簽名的消息)。這比您所說的安全概念更強(因為偽造不需要攻擊者實際學習您的私鑰)。

有一種情況會洩露私鑰:Nonce 重用。對於相同的私鑰,如果兩個不同的消息使用相同的 nonce 簽名,您的私鑰將變為“公共”。

Secp256k1 簽名使用 256 位隨機數。如果你簽署了大約 2^256 筆交易,我保證你的私鑰會被洩露。(但理論上!雖然你需要一台超級超級超級電腦來掃描重複項。複雜度 O(n^2) 對於 2^256,這比暴力破解私鑰更不可行)

預設情況下,在大多數實現中,隨機數是按照 RFC6979 中的定義生成的。隨機數被定義為一些簽名數據以某種順序的散列。

如果你要簽署 2^128 筆交易,一個隨機數被重用的機率約為 39%。因此,使用櫃檯簽署大量交易更安全。

請注意,即使是 2^128 筆交易也不現實。

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