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 後量子金鑰生成系統設計
- 01步驟一以 CARRY4 打造可調式 RO-PUF
- 02步驟二建立 D_opt = f(T, V) 校正表
- 03步驟三XADC DRP+狀態機+遲滯迴路
- 04步驟四SHAKE-256 → ML-KEM 種子,與 BCH 比較資源
計畫目標
- 位元錯誤率從 5% 以上降到 3% 以下
- Slice LUT 比 PUF+BCH(127,64) 少至少 30%
- 通過 NIST SP 800-22 全部 15 項測試





目前的限制
- 晶片內加熱器的溫度範圍太窄,還不足以驗證補償的效果。
- 進位鏈 RO 讓這顆晶片大約只放得下 250–380 對。
- Vivado 無法在重新建置之間鎖住 RO 的繞線。
下一步
- 0120–75 °C 恆溫箱實驗,量化補償的效益
- 02對原始熵源做 SP 800-90B 評估
- 03整合 ML-KEM 核心並以 FIPS 203 測試向量驗證
- 04更小的 RO 單元,湊滿 256 位元的熵預算
- 05多片開發板的唯一性量測