Encryption

安全列印的安全性如何?

  • May 31, 2014

Armory 提供了用於製作紙質備份的安全列印選項。我了解開發人員會提供此選項,以防您的列印機儲存記憶體,或者錢包在從您的電腦傳輸到列印機的過程中可能會受到損害。換句話說,它的目的不是作為加密的紙質備份,而只是作為一種幫助安全列印紙質錢包的功能。

我的問題是,即使此功能並非旨在進行加密的紙質備份,它是否足夠安全,可以廣泛分散紙質備份,假設只有實際的錢包所有者控制生成的密碼(我認為大約 10 個字元) ? 它使用什麼類型的加密密碼?

原始碼 ( qtdialogs.py ) 對 SecurePrint 有這樣的說法:

 # USE PRINTER MASK TO PREVENT NETWORK DEVICES FROM SEEING PRIVATE KEYS
 # Hardcode salt & IV because they should *never* change.
 # Rainbow tables aren't all that useful here because the user
 # is not creating the password -- it's *essentially* randomized
 # with 64-bits of real entropy. (though, it is deterministic
 # based on the private key, so that printing the backup multiple
 # times will produce the same password).

所以它是 64 位,或 ~10^19 組合。Armory 對 SecurePrint 程式碼使用基於 scrypt 的密鑰派生函式。在我的電腦上從 SecurePrint 程式碼計算錢包密鑰/ID 需要相當長的時間(一點也不長,但似乎不是即時的)。假設攻擊者有你的列印輸出,每次嘗試需要 0.1 秒。他需要大約580 億 CPU 年才能通過猜測 SecurePrint 程式碼找到正確的私鑰。所以是的,只要你不會擁有一個非常有價值(例如數十億美元)的錢包,它似乎足以安全地分散紙質備份。

您可能會考慮 scrypt ASIC(它將以某種形式出現,除非萊特幣及其同類產品消亡)是否也可以攻擊您的密鑰。我不認為它會快 5000 億倍(這將使時間縮短近一個月),但如果你認為這是一個“終身錢包”,你可能不希望將其作為潛力最脆弱的聯繫。

警告:我不是軍械庫方面的專家,只是一些看過程式碼並且對密碼學有所了解的人。如果您決定在整個 Internet 上發布您的 SecurePrint 安全紙質錢包並且有人竊取了您的比特幣,請不要來找我哭。

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