為什麼SRAM PUF被認為是弱PUF?
我在很多地方讀到 SRAM PUF 被認為是弱 PUF,因為它會產生單一響應(基於上電時所有 RAM 單元的值)。
為什麼我不能只使用 RAM 空間中有限數量的字節來創建 CRP?例如,如果我有一個 64kB 的 RAM,我可以將它分成 256 個部分,每個部分 256B 長,獲得 256 個 CRP?(假設所有的 RAM 單元都是穩定的,可以用於 PUF ……)
存在強大的 SRAM PUF,這就是設計強大的 PUF 設備的方式。挑戰(用於響應)是訪問模式。SRAM 往往是連續的,因此如果矽的可靠性良好,則可以很容易地劃分為 CRP。這可能並非總是如此,因為它取決於死亡/家庭。所以你可以將你的 64KB 分割成兩個單元。“弱”命名法可能是對較小 RAM 尺寸時代的倒退,並考慮到以下內容……
你不能說*“假設所有的 RAM 單元都是穩定的並且可以用於 PUF”*。RAM 單元肯定不穩定,可重複行為是 PUF 概念的基礎。否則,SRAM 會形成隨機數發生器的熵源。這種可變性在某些 INFINEON TRICORE 上可能高達 1 位/字節(來源)。你正在平衡可預測的狀態和不可預測的狀態。
您對 256 字節的想法可能太低,無法提取足夠數量的可靠位。糾錯是絕對必須的,不能忽視,否則整個 PUF 概念就會失敗。32 字節的 SHA256ing 塊將不起作用。量子、電壓、時間和熱效應將確保雜湊不會產生一致的輸出。嵌入式系統中用於設備身份驗證的基於記憶體的組合 PUF顯示通過使用 16 個這樣的塊進行糾錯來改善這種效果。這裡有一份白皮書,需要 1KB 的單元才能獲得 256 個可靠位。這是一個 32:1 的比例。
因此,如果您仔細挑選/篩選您的矽片,它可能會起作用,但如果不實際嘗試就很難說。晶片的可變性太高,無法推測 256 字節,但這個概念是有效的。
PS。挑戰的數量可以是 CRP 細胞的排列,而不僅僅是每個細胞的單一反應。這在基於開源軟體的 SRAM-PUF 中進行了說明,用於使用現成的 SRAM 進行安全數據和密鑰儲存。他們在那裡創造了一種可能 $ 10^{12,626} $ 對,使用 Arduino Mega 2560 和 COTS SRAM。