Random-Number-Generator
用於乙太坊私鑰生成的嵌入式系統上的 DIY TRNG
我正在嘗試在定制設計的嵌入式系統上建構這個乙太坊硬體錢包,但我不是專家。Google搜尋後,我發現了這篇用於嵌入式系統安全論文的穩健、低成本、可審計的隨機數生成。當我讀到這篇論文中的提議時,聽起來很安全。一個真正的TRNG。儘管如此,當我努力在任何線上電路建構器中模擬電路時,我想也許我不需要那麼複雜的系統。也許使用一些感測器(濕度、光線、振動、聲音)我可以收集外部數據,用它來播種 PRNG,這樣就足夠安全了。但我既不是密碼學專家,也不是私鑰生成實踐方面的專家。
你怎麼看?使用簡單的外部感測器收集熵並播種 PRNG 是否足夠安全?或者我應該建立這個 TRNG 無論掙扎嗎?使用其中一個有什麼缺點?有什麼好處?
前面的底線:不要這樣做。
首先,您做了哪些威脅建模?換句話說,如果有人實際擁有錢包(設備)並且他們將其破解,則熵的來源是可攻擊的(因為它是饋入微控制器的外部電路)。這些電路中的大多數都存在以下問題:
- 容易受到物理/環境攻擊(溫度、電壓故障、EMI 等)的影響或攻擊
- 老化。這些電路中的許多都存在問題,即使僅僅幾個月後,熵就會下降一個數量級。
此外,看起來(來自您引用的PDF),不包括NRE成本,每單位成本約為1.44美元左右?那是數量 10K。Atmel(現為 Microchip)生產的 RNG 晶片(也有其他)經過完全驗證,它們可以抵抗物理攻擊(網狀),並且 1 數量的價格約為 0.50 美元(參見 ATSHA204 只是一個範例)。我認為 Atmel 晶片以 10K 的數量下降到約 30 美分。
如果您想在實驗室工作台和 LTSPICE 中使用這種電路,那很好,但如果您希望在安全產品中這樣做,則有更好的途徑可供選擇。
注意:帶有內置 HRNG/TRNG 的 MCU 更難攻擊,儘管電源/溫度/故障等仍然是可能的。但攻擊者必須拆開晶片以篡改從 RNG 到微控制器 CPU 的介面。