Research

環境感測驅動主動式穩壓穩溫 PUF 後量子金鑰系統

PUF 讓晶片不必把私鑰存在記憶體裡,很適合當後量子密碼的信任根;但 FPGA 上的環形振盪器 PUF 怕溫度和電壓變化,傳統做法是加一個很吃邏輯資源的 BCH 糾錯碼。這個研究用 FPGA 內建的 XADC 量溫度與電壓,透過進位鏈延遲線從源頭補償漂移,讓輕量的重複碼就能取代 BCH,再用 SHAKE-256 產生 ML-KEM 的 512 位元種子。

研究專題國科會大專生研究計畫Verilog・Nexys A7-100T(Xilinx Artix-7 XC7A100T)・Vivado

01

金鑰怎麼從晶片裡長出來

溫度與電壓一變,就查表調整延遲線,讓 PUF 的指紋在冷熱之間維持穩定;最後由 SHAKE-256 導出 ML-KEM 的種子。

XADC晶片溫度・電壓
校正表4096×8 BRAM
delay_ctrl遲滯控制
可調式 RO-PUFCARRY4 進位鏈延遲
重複碼helper data 重建
LEARN 建表掃描 0–255,取漢明距離最小
TRNGSP 800-90B 健康測試
ML-KEM 種子512 位元 (d‖z)
SHAKE-256金鑰導出

← 左右滑動看完整流程 →

研究專題

實作與量測結果

Verilog 實作於 Nexys A7-100T,數字來自研究的進度報告。

穩定位元的平均漢明距離(31 票多數決建檔+遮罩不穩定配對)
0.03 / 128
穩定位元的平均漢明距離(31 票多數決建檔+遮罩不穩定配對)
位元錯誤率(2¹⁷ 週期計數窗)
0.008%
位元錯誤率(2¹⁷ 週期計數窗)
40–50 °C 加熱掃描中,重建的金鑰全部一致
250 / 250
40–50 °C 加熱掃描中,重建的金鑰全部一致
128 對時,補償+重複碼比 BCH(127,64) 少用的 LUT(254 對時 −58.7%)
−70.5%
128 對時,補償+重複碼比 BCH(127,64) 少用的 LUT(254 對時 −58.7%)
TRNG 輸出通過 NIST SP 800-22 全部測試
15 / 15
TRNG 輸出通過 NIST SP 800-22 全部測試

國科會大專生研究計畫

研究計畫書

基於 FPGA XADC 環境感測機制之高穩定性 PUF 後量子金鑰生成系統設計

  1. 01步驟一以 CARRY4 打造可調式 RO-PUF
  2. 02步驟二建立 D_opt = f(T, V) 校正表
  3. 03步驟三XADC DRP+狀態機+遲滯迴路
  4. 04步驟四SHAKE-256 → ML-KEM 種子,與 BCH 比較資源

計畫目標

  • 位元錯誤率從 5% 以上降到 3% 以下
  • Slice LUT 比 PUF+BCH(127,64) 少至少 30%
  • 通過 NIST SP 800-22 全部 15 項測試
閱讀計畫書(PDF)
系統架構圖
系統架構圖
回應位元為 1 的比例對 A 側延遲碼(128 對,晶片約 40 °C)
回應位元為 1 的比例對 A 側延遲碼(128 對,晶片約 40 °C)
每對的計數窗口長度對同晶片位元錯誤率(晶片 40.4 °C)
每對的計數窗口長度對同晶片位元錯誤率(晶片 40.4 °C)
晶片內加熱器:8 與 16 組的開迴路階躍,接著在兩個設定點閉迴路穩溫,最後降溫
晶片內加熱器:8 與 16 組的開迴路階躍,接著在兩個設定點閉迴路穩溫,最後降溫
平均漢明距離(128 位元中)對晶片溫度,每點 50 筆
平均漢明距離(128 位元中)對晶片溫度,每點 50 筆

目前的限制

  • 晶片內加熱器的溫度範圍太窄,還不足以驗證補償的效果。
  • 進位鏈 RO 讓這顆晶片大約只放得下 250–380 對。
  • Vivado 無法在重新建置之間鎖住 RO 的繞線。

下一步

  1. 0120–75 °C 恆溫箱實驗,量化補償的效益
  2. 02對原始熵源做 SP 800-90B 評估
  3. 03整合 ML-KEM 核心並以 FIPS 203 測試向量驗證
  4. 04更小的 RO 單元,湊滿 256 位元的熵預算
  5. 05多片開發板的唯一性量測