Development
FIPS 140-2 加密認證對比特幣很重要嗎?
我正在用 C# 實現部分比特幣客戶端,並註意到我可以在FIPS 140-2和未經認證的 SHA256 版本之間進行選擇。據說兩個版本都給出了相同的雜湊值。
SHA-2 庫的選擇對比特幣有影響嗎?FIPS-2 庫是否存在於 Mono 和移動設備中?
除非您別無選擇,否則您基本上*不應該選擇 FIPS-140。*FIPS-140 合規性主要提供給出於監管或政策原因必須遵守 FIPS-140 的人員。
請注意,這並不是說 FIPS-140驗證不好。這很棒。如果它發現錯誤或問題,那是一個純粹的勝利。如果您可以在經過 FIPS 驗證的實現和未經過 FIPS 驗證的實現之間進行選擇,則前者是更好的選擇。但這與您是否啟用 FIPS-140 模式無關。
您的實施已通過 FIPS 驗證。不要腦損傷它。
以下是迄今為止我為我的 C# 實現提出的一些性能統計數據:
單個 ECC 公鑰(在 ECC 操作之後)可以以此速率應用 Base58Checked 算法
Algorithm Time for 100,000 Base58Check(byte[] key) ------------------------------ --------------------------------------------- SHA256Managed() 4500ms SHA256CryptoServiceProvider() 3640ms <--- CSP FIPS version
所以是的,經過 FIPS 驗證的版本更快並且可能更好。