COMIC CLASSROOM

硬體安全入門第 2 / 5 課

PUF 漫畫小教室:從晶片指紋到 NeoPUF

這篇先把 PUF 想成晶片天生的指紋:每顆晶片因製程微小差異而不同,安全系統可以用這個差異生成或保護金鑰。四張漫畫會從 PUF 原理講到 SRAM PUF、NeoPUF 與 enrollment/extraction。

7 分鐘

先把 PUF 想成晶片自己的指紋

PUF 的直覺很簡單:即使兩顆晶片設計圖一樣,製程中仍會留下極微小、難以複製的差異。安全設計可以把這些差異當成晶片自己的指紋。

這篇會從 PUF 是什麼開始,再看常見類型、SRAM PUF 的啟動特性,以及 NeoPUF 的 enrollment 與 extraction。先看懂『每顆晶片天生不同』,後面的金鑰與認證就比較好懂。

重點不是把秘密寫進晶片後藏起來,而是讓晶片用自己的物理特徵,在需要時生成或保護安全資料。

同一份電路版圖、同一套製程做出的晶片,微觀上仍然不可能完全相同。PUF(Physical Unclonable Function,實體不可複製函數)利用這些製程差異,產生能代表個別晶片的回應。

它不是把一組固定序號寫進晶片,而是讓晶片的物理特性參與運算。因此,PUF 常被用於晶片識別、裝置認證、金鑰衍生與硬體信任根。

讀這篇時,可以先把 PUF 想成「把製程差異變成可用安全材料」的技術。製程差異本來是設計者想控制、想降低的變動;但在安全應用裡,這些不可完全複製的微小差異,反而可以成為每顆晶片與生俱來的識別來源。

不過,PUF 不是只要「夠隨機」就好。真正進入產品時,要同時考慮唯一性、可靠度、讀取條件、Enrollment 流程、helper data 是否洩漏資訊、金鑰如何衍生,以及攻擊者能不能透過量測或建模推回內部狀態。換句話說,PUF 是安全系統的一個根,不是整棵樹。

1. 什麼是 PUF?

PUF 可以想成晶片在製造過程中自然形成的「物理指紋」。外部給定 Challenge,電路根據內部微小差異產生 Response;不同晶片通常會得到不同結果。

PUF 漫畫小教室第一篇:什麼是 Physical Unclonable Function,以及如何利用製程差異形成晶片指紋
MY 帶讀 · PUF 利用晶片內生的製程差異,產生具有個體特徵的回應

評估 PUF 時,常關注三項特性:

  • Uniqueness(唯一性):不同晶片的回應要有足夠差異。
  • Reliability(可靠度):同一晶片在溫度、電壓與老化變化下,仍應盡量重現相同回應。
  • Unclonability(難以複製):攻擊者不容易精準重建同樣的物理差異與輸入輸出行為。

PUF 的「不可複製」是安全設計目標,不代表任何 PUF 架構都天然免疫所有建模、旁通道或實體攻擊。

從工程角度看,PUF 的價值在於它降低了「秘密必須被寫入與保存」的壓力。傳統金鑰若直接存在非揮發性記憶體,攻擊者可能把目標放在讀出、複製或搬移那份資料;PUF 則嘗試讓秘密與晶片本身的物理狀態綁定。這也是為什麼 PUF 常被放在 secure boot、device authentication、anti-clone、root of trust 等議題中討論。

但這也帶來另一個要求:同一顆晶片在合法條件下必須能重現結果。若 response 今天是 1010、明天因溫度或老化變成 1110,系統就需要有篩選、校正、錯誤更正或重新建構 key 的方法。PUF 的難點通常就在這裡:它要夠物理、夠不可複製,又要夠穩定、夠工程化。

2. 常見的 PUF 類型

不同 PUF 利用的物理來源並不相同。SRAM PUF 觀察記憶體上電狀態;RO PUF 比較環形振盪器的頻率或延遲;NeoFuse 型 NeoPUF 則在 Enrollment 階段形成一次性的隨機物理路徑。

PUF 漫畫小教室第二篇:比較 SRAM PUF、Ring Oscillator PUF 與使用成對 NeoFuse 的 NeoPUF
MY 帶讀 · PUF 的差異在於使用哪一種物理不匹配,以及如何把差異讀成位元
類型主要物理來源讀取概念
SRAM PUFSRAM cell 元件失配觀察上電後偏向 01
RO PUF邏輯閘與繞線延遲差比較振盪頻率或計數值
NeoFuse 型 NeoPUF氧化層微觀差異形成的隨機路徑讀取成對 NeoFuse 中哪一側形成路徑

不同架構在面積、功耗、可靠度、Enrollment 方式與安全模型上各有取捨,不能只用「隨機」兩個字判斷優劣。

SRAM PUF 的好處是容易理解,也可能利用既有 SRAM 陣列作為物理來源;缺點是 raw bits 不一定都穩定,常需要多次量測、stable-bit selection、ECC 或 fuzzy extractor。RO / Arbiter PUF 則把延遲差轉成輸出,設計上可能簡潔,但若 challenge-response pair 暴露太多,會面臨建模攻擊與 PVT sensitivity 的問題。

Analog / Sensor PUF 代表另一種思路:把漏電流、電流 mismatch、溫度、濕度、感測器偏差等類比特性拿來用。這類 PUF 對 IoT 或感測器產品很有想像空間,但也會把類比設計、校準、雜訊濾波與環境補償納入安全設計範圍。

所以選 PUF 架構時,最好不要問「哪一種最強」,而是問「哪一種物理來源最適合我的產品生命週期」。例如:是否需要 field enrollment?是否能承受 ECC 面積?是否要求高溫可靠?是否有大量 challenge-response 認證需求?是否要跟 OTP、secure storage 或 key manager 整合?這些問題比名稱本身更重要。

3. SRAM PUF 的原理

SRAM cell 由互相回授的元件構成。電源剛升起時,理想電路看似對稱;實際上,電晶體臨界電壓、尺寸與寄生效應存在微小製程差異,使每個 cell 通常偏向某個啟動狀態。

PUF 漫畫小教室第三篇:SRAM PUF 利用記憶體單元失配,在上電時形成偏好的初始位元
MY 帶讀 · SRAM PUF 讀的是上電偏好,不是一般記憶體中預先寫入的資料

把許多 SRAM cells 的啟動值排列起來,就能形成晶片特有的 bit pattern。不過,接近平衡的 cells 可能受溫度、供應電壓、雜訊與老化影響而翻轉,因此實際系統常搭配:

  • 穩定 bit 篩選或 masking。
  • 多次 Enrollment 與可靠度評估。
  • Error Correction Code(ECC)或 fuzzy extractor。
  • Helper data 與金鑰衍生流程。

SRAM PUF 的教學重點是「上電競賽」。一個 6T SRAM cell 可以看成兩個互相回授的 inverter。電源剛打開時,理想狀態下左右兩邊看似對稱;但實際電晶體的 threshold voltage、尺寸、寄生電容與線阻不可能完全一樣,於是某一側會先贏,最後穩定成 01

若把很多 cells 的啟動狀態串起來,就得到一串看似隨機、但與該晶片物理狀態相關的 bit pattern。問題是,不是每個 bit 都一樣可靠。有些 cell 會每次都偏向同一邊,是好 bit;有些 cell 太接近平衡,受到溫度、電壓、雜訊或老化影響就容易翻轉,是不穩定 bit。

因此,真正的 SRAM PUF 系統通常不會直接把第一次 power-up 的 raw bits 當 key,而是先收集多次讀值、找出穩定位元、丟掉弱位元,再透過 ECC/helper data/fuzzy extractor 讓 key 可以被穩定重建。這些週邊設計才是把「物理現象」變成「安全產品」的關鍵。

4. From SRAM PUF to NeoPUF

NeoFuse 型 NeoPUF 的 bit-cell 使用一對 NeoFuse。它的重點不是持續比較一般漏電流,而是分成 EnrollmentExtraction 兩個階段。

PUF 漫畫小教室第四篇:成對 NeoFuse 在 Enrollment 形成左側或右側隨機穿隧路徑,Extraction 時讀出 PUF 位元
MY 帶讀 · Enrollment 決定物理路徑;Extraction 以較低讀取電壓判斷路徑位於哪一側

Enrollment:形成隨機物理路徑

對成對 NeoFuse 施加高電壓 V+++。由於兩側氧化層存在微小的內生差異,量子穿隧造成的導電路徑會在其中一側先形成。以單一 bit-cell 的概念來看,路徑可能出現在左側或右側;實際分布與偏差仍需由製程與量測結果確認。

Extraction:把路徑位置讀成位元

讀取時使用較低的讀取電壓 VR,判斷導電路徑位於哪一側。依圖中的編碼:

  • 左側形成路徑 → 1
  • 右側形成路徑 → 0

Enrollment 後形成的物理狀態可供後續重複讀取。系統仍須驗證讀取裕量、PVT 變化、老化、位元偏差與可能的攻擊面,不能只用理想的 50/50 圖示推論整體安全性。

NeoPUF 這類設計的重點,是把 PUF 的物理差異和產品可用性拉近。eMemory 官方資料把 NeoPUF 描述為基於矽製程中 physically unclonable variations 的硬體安全技術,並強調 uniqueness、unpredictability、secure key generation、identification、authentication 等用途。這也說明了 NeoPUF 不是單純的隨機數展示,而是要服務 root of trust 與安全 IP 的產品需求。

從圖 4 來看,可以把 NeoPUF 的流程拆成兩個層次:第一層是 Enrollment,也就是把微觀氧化層差異透過受控條件固定成可讀的物理狀態;第二層是 Extraction,也就是在正常讀取條件下,把該物理狀態穩定讀成 10。這和 raw SRAM PUF「每次上電讀啟動偏好」的直覺不同。

對安全架構師來說,這裡的核心問題不是「NeoPUF 是否比較炫」,而是它如何降低產品整合負擔:能否減少複雜 ECC、能否提升 aging / voltage variation 下的穩定性、能否和 NeoFuse OTP、secure storage、key manager、PUFrt/PUF-based security IP 流程整合。這些才是量產導入時會被真正檢查的地方。

PUF 可以用在哪裡?

  • 晶片與裝置身分識別。
  • Challenge–Response Authentication。
  • Device-bound key 或金鑰衍生。
  • Secure Boot、韌體保護與硬體信任根。
  • 防偽、供應鏈追蹤與授權管理。

PUF 通常不是單獨完成整套安全功能,而是與密碼演算法、金鑰管理、存取控制及防攻擊設計共同構成安全系統。

帶走一句話

SRAM PUF 從「上電偏好」讀出製程差異;NeoFuse 型 NeoPUF 則先在 Enrollment 形成隨機物理路徑,再於 Extraction 讀出路徑位置。兩者都利用製程差異,但物理機制與使用流程不同。

References

  1. eMemory, NeoPUF:eMemory 官方 NeoPUF 產品頁,說明 NeoPUF 基於矽製程中的 physically unclonable variations,並列出 identification、authentication、security key generation 等用途。
  2. PUFsecurity, NeoPUF, A Reliable and Non-traceable Quantum Tunneling PUF:說明 SRAM PUF 與 NeoPUF 的機制與穩定性差異,可作為理解圖 3 與圖 4 的補充資料。
  3. PUF Series 3: The Quantum Tunneling Mechanism of NeoPUF:介紹 NeoPUF quantum-tunneling PUF 的物理機制與氧化層差異。
  4. Gassend et al., Silicon Physical Random Functions:早期 PUF 概念的重要論文,可作為 Physical Random Function / PUF 概念的歷史背景。

學習指南

硬體安全入門

0 / 5

先備知識

  • 基本數位邏輯與裝置身分

我學會了什麼

  • 說明製程差異如何形成身分
  • 區分 Enrollment 與 Extraction
  • 解釋回應為何需要穩定化

本課術語

查看術語字典 →

延伸閱讀

課後小測驗

1. PUF 回應的物理來源是?
2. Enrollment 主要做什麼?
3. 為何常需要錯誤修正?

讀到這裡,辛苦了。

把概念帶走,比把術語背走更重要。

#PUF#Physical Unclonable Function#Hardware Security#硬體安全#SRAM PUF#NeoPUF#NeoFuse#Chip Fingerprint#Root of Trust#Secure Key#Device Identity#eMemory#PUFsecurity#漫畫小教室