Academy Central
----
Weather

Fuzzy Extractor 與 ECC 的兩階段修復機制

傳統 PUF 產生的指紋(Response)在每次讀取時,會因為溫度或雜訊而產生微小的差異。Fuzzy Extractor 的任務,就是允許這些「模糊」的差異存在,並透過密碼學演算法將其收斂回唯一且正確的密鑰。

它的運作分為兩個核心階段:

  1. 註冊階段 (Enrollment - 工廠端): 晶片在安全且穩定的環境下首次通電,讀取出一組最純淨的 PUF 初始指紋 $R$ 。此時,Fuzzy Extractor 內部的生成演算法 $Gen()$ 會計算出一組輔助資料 (Helper Data) $W$ 。這組 $W$ 會被燒錄到晶片外部或內部的非揮發性記憶體中。請注意,$W$ 本身不包含密鑰資訊,它只是一張「糾錯地圖」。

  2. 重建階段 (Reconstruction - 應用端): 當晶片在實際場域運作時(可能伴隨高溫或電壓不穩),再次讀取 PUF 會得到一組帶有雜訊的指紋 $R'$ 。此時,系統會載入先前存好的 Helper Data $W$,並透過重建演算法 $Rep(R', W)$,搭配強大的硬體 ECC 電路(如 BCH 碼或 Reed-Muller 碼),將錯誤的位元精準翻轉回來,完美還原出最初的密鑰 $R$ 。

不同 PUF 技術的應用與架構比較

Fuzzy Extractor 雖然解決了傳統 PUF 的可靠度問題,但也帶來了硬體負擔。這正是為什麼業界要發展出無需 ECC 的 neoPUF。以下是兩者在系統層面的深度比較:

比較項目SRAM PUF (傳統延遲/亞穩態型)neoPUF (高階量子穿隧型)
物理原理交叉耦合反相器通電時的亞穩態競爭極高電場下閘極氧化層的量子穿隧與不可逆崩潰
錯誤率 (BER)易受環境與老化 (NBTI) 影響,極端環境下錯誤率可達 5%~15%物理破壞不可逆,達到 100% 可靠度 (0% BER)
ECC 與 Fuzzy Extractor絕對需要。需消耗大量邏輯閘面積與功耗來實作糾錯電路完全不需要 (Zero Helper Data)。無須糾錯即可直接輸出穩定密鑰
安全性副作用Helper Data 的儲存與處理過程,可能成為側信道攻擊的漏洞狀態隱藏於奈米級氧化層中,抗物理探測與側信道攻擊
應用層面與場域適合對成本極度敏感、但安全層級與環境要求較普通的消費型電子適合高安全性需求的國防、金融、車用電子、以及資源極度受限的 IoT 節點

   # 安全開機 (Secure Boot) 機制 安全開機是系統啟動的第一道防線 。要達成端到端的資料安全,我們必須以 PUF 作為不可動搖的基石,往上堆疊出完整的信任鏈 (Chain of Trust)。 6.

信任鏈的核心概念

信任鏈的運作就像是一場嚴格的「接力賽」。每一位跑者(開機階段)在交出接力棒(系統控制權)給下一位跑者之前,都必須先檢查對方的識別證(數位簽章)。

這條鏈條的起點被稱為信任根 (Root of Trust, RoT)。在我們的情境中,neoPUF 提供了最底層、無法被篡改的晶片安全信任根 。因為這個起點是基於硬體物理特性且絕對安全的,後續由它驗證過的每一個軟體層級,也都能被賦予信任。

安全開機的運作階段

當 SoC 通電的那一刻起,系統會嚴格遵循以下驗證流程:

  1. 硬體信任根啟動 (Boot ROM): 系統通電後,首先執行的程式碼會被燒死在唯讀記憶體 (ROM) 中,無法被任何人修改。這是信任鏈的第一棒。

  2. 驗證初始開機程式 (FSBL): Boot ROM 會利用源自 PUF 的公鑰,去驗證第一階段開機程式 (First Stage Bootloader, FSBL) 的數位簽章。

  3. 阻斷或放行: 系統會比對計算出的雜湊值。只有確認韌體沒有被駭客篡改過,系統才會獲准繼續執行 。如果簽章不符,系統會立即中斷開機程序 (System Halt),防止惡意程式取得控制權。

  4. 信任延伸 (OS 與應用程式): 如果 FSBL 驗證通過,它會接管系統,並用同樣的數位簽章機制去驗證下一階段的作業系統 (OS) 核心。最終,OS 再去驗證各個應用程式。

透過這種「先驗證,再執行」的機制,系統確保了每一行被執行的程式碼,都是經過原廠授權且未經竄改的。

互動探索:安全開機信任鏈模擬

為了讓你直觀地理解信任鏈是如何阻斷威脅的,你可以透過下方的模擬器,扮演駭客嘗試篡改不同階段的韌體,觀察 Secure Boot 機制如何在威脅發生的當下切斷啟動流程。