2007-09-11

成本超低的真正隨機與物理性指印

Ultra-low-cost true randomness AND physical fingerprinting
http://tshb.livejournal.com/2989.html

Sep. 10th, 2007 01:01 pm

作者建議閱讀作者朋友 Dan Holcomb 最近關於低成本隨機亂數序列產生的文章: "Initial SRAM State as a Fingerprint and Source of True Random Numbers for RFID Tags" (PDF 檔,http://prisms.cs.umass.edu/~kevinfu/papers/holcomb-FERNS-RFIDSec07.pdf,免責聲明,作者涉入討論,並導致這篇論文的發表。


為何這麼酷?

這在 IC 當中利用變化穩定度(meta-stability)與熱雜訊(thermal noise)的構想並不新奇,事實上那是許多熱門的,真正隨機的亂數產生方案的基礎。這個方案新鮮之處在於 Halcomb 所提議,利用電腦現存之 RAM 收穫真正的隨機亂數,而不用增加認一個電晶體的技術。此外,這個方案還有一個附加利益,與裝置相關的熵(tied entropy)能被收集,這能夠可靠地鑑別單一裝置。

這些新技術適用於幾乎是所有種類的電腦,從桌上型 PC 到便宜的 RFID 晶片,而且有可能帶來更好的隨機亂數產生與裝置相關的功能,以降低裝置的成本與資源。更棒的是,某些裝置或許只要經由軟體升級,就能夠享有其裝置的新利益。


它如何辦到?

如同我們所知,當電腦關機時,它的記憶體會釋放(looses)其狀態(state)。不過當電腦先關機時,何謂 RAM 的狀態呢?答案是 RAM 在其 power cycle 中首次被寫入之前,每一位元的狀態。這有很大的部份是依賴其電晶體在製造時所採用的印刷方式。這些位元會落入三類型:

1. 起先(幾乎)都是 0
2. 起先是 0 或 1,並具有某些機率均等的或然率(even probability)
3. 起先(幾乎)都是 1

藉由完成數次 power cycles,並且在每一 bank RAM 的開機狀態上做某些統計,一台電腦就能夠創造出每一個 bank 的 profile,記錄位元的上述三種狀態。這些 profile 可以當成指印(fingerprint),每一 bank 的 RAM 都會獨一無二。既然知道每一位元都會在每一個 power cycle 改變,這些位元就能當作真正隨機的來源。(而非「虛擬隨機 [pseudo-randomess]」,那沒有什麼價值。)作者在此並沒有提到特殊的演算法,那用來確保所有過程安全無虞,你能在論文中找到它。


未來工作

雖然熱雜訊被廣泛地認可適合用來作為硬體隨機序列產生,但作者想見到這項研究能以(很酷的方式)基於溫度的鑑定攻擊(identification attacks)來檢驗,一如它像 Steven Murdoch 的 "Hot or Not: Revealing Hidden Services by their Clock Skew" 那樣影響時脈偏斜(clock skew)。

作者幫不上忙,不過想知道敵方是否有辦法(例如透過時脈偏斜)得知一個晶片的細緻溫度資訊,以攻擊 Holcomb 的隨機方案。

※ 相關報導:

真正隨機的亂數產生器上線

沒有留言: