矽PUF在什麼意義上是不可複製的?
我看到很多關於使用正常矽 IC 技術實現的物理不可複製功能的出版物;例如,在 2014 年 IEEE 國際固態電路會議上,用於 22nm CMOS 中 100% 穩定安全密鑰生成的 0.19pJ/b PVT 容變混合物理不可複製功能電路,可免費預覽。該設備總結為
..在測試儀執行期間的第一次陣列上電時創建一個金鑰匙,然後在正常現場執行期間從固有的雜訊原始 PUF 值重新創建這個黃金值。金鑰匙用於計算糾錯碼簽名,該簽名作為保險絲儲存在晶片上。在正常操作期間,糾錯電路將原始 PUF 位與 ECC 熔絲值混合,以 100% 的準確度重新生成金鑰匙。
該原則的參考文獻如下:FPGA Intrinsic PUFs and Its Use for IP Protection(飛利浦的 4 位作者),在CHES 2007 的會議記錄中。
我想知道這些東西在什麼意義上是不可複製的。
特別是,我不明白為什麼不能用 ROM 替換嘈雜的 PUF 陣列及其感測器,內容是(探測的)原始 PUF 值,也不能用 ROM 替換 ECC 數據/簽名,讓糾錯電路做它的事;或者用定義金鑰匙的小ROM或電線替換整個東西。
答案在於“複雜性”,但我不相信它們在明確意義上是不可複製的,但我可以根據它們的製作方式來想辦法獲取數據。我很容易在 SEM 下看到“ROM”型門,而 PUF 給你的是結構均勻但你不知道電氣特性。
在 PUF 陣列中,你給它一些電輸入,你會得到一個看似隨機但可重複的輸出,因為
$$ PVT $$設備的(過程電壓溫度)1. 您實際上可以認為這只是位寬和時鐘深度複雜性的巨大查找表。一個 32 位數字在 X 的某個時鐘為您提供一個 32 位數字。輸入通常很容易獲得,但輸出隱藏在佈局中。可以完全探測輸出,但您會得到單個輸入的答案。(在逆向工程方面,我可以使事情成為目前模式,因此我無法探測它們,因為探測它們會導致錯誤)。現在假設您有一個 PUF 陣列,它採用單個時鐘並且由於單個 32 位輸入而具有 32 位輸出,這意味著您的 ROM 中需要一個 32 位值來模擬 PUF。否則,您需要為每個時鐘和輸入向量輸入一個條目。如果您有 32 位可能的輸入,對於一個時鐘,您需要 $ 2^{32} $ ROM中的條目,它從那裡變得很大。 所以,(1)如果你在輸出上有一個電壓模式電路,(2)有一個映射條目,(3)有一個半導體實驗室,你沒有理由不能得到一個輸出並用 ROM 替換它.
至少在英特爾 ISSCC 2014 論文中,包括對 7 個數字的訪問,我沒有看到 PUF 塊具有任何類型的變數輸入。PUF 和配套電路的目的似乎是:生成一個小的隨機值,
- 主要源於矽製造過程的不平衡,而不是由測試程序注入;
- 在 IC 的使用壽命中保持不變。
沒有任何關於如何通過探測或其他側通道保護生成的值不被洩露,或者電路的修改如何使得不可能製作一個可以選擇該值的不同電路。
我得出的結論是,本文中描述的矽 PUF 無法被以下對手複製:
- 無法找到生成的值(通過探測或任一側通道)
- 或者必然會盲目地複制電路而不是製造引起的不平衡(而不是修改或模擬它)
有雙重防線這一事實是一個很好的特點。第 1 點表明,生成的值最好用作密碼原語的密鑰,例如塊密碼或 MAC,靠近生成的位置。