專利名稱:隨機(jī)數(shù)發(fā)生器的制作方法
技術(shù)領(lǐng)域:
本公開涉及隨機(jī)數(shù)發(fā)生器,并且更具體地涉及對攻擊免疫的真隨機(jī)數(shù)發(fā)生器。
背景技術(shù):
密碼技術(shù)需要良好的隨機(jī)數(shù)。可能需要隨機(jī)數(shù)發(fā)生器產(chǎn)生公/私
密鑰對用于非對稱算法,如Rivest、 Shamir、 Adelman (RSA)、數(shù)字簽名算法(DSA)和Diff ie-Helman。隨機(jī)數(shù)發(fā)生器可以是計(jì)算裝置,其被設(shè)計(jì)成產(chǎn)生缺乏任何可識別模式的一系列數(shù)字和/或符號。由于安全協(xié)議可能依賴于他們使用的密鑰的不可預(yù)知性,因此用于密碼應(yīng)用的隨機(jī)數(shù)發(fā)生器必需滿足有時(shí)非常嚴(yán)格的要求。
有兩種主要方法用于產(chǎn)生隨機(jī)數(shù)。偽隨機(jī)數(shù)發(fā)生器(PRNG)使用確定性過程從初始籽(seed)狀態(tài)產(chǎn)生一系列輸出。即,在系統(tǒng)的未來狀態(tài)的發(fā)展中不涉及隨機(jī)性。相反,真隨機(jī)數(shù)發(fā)生器(TRNG)使用非確定性源以產(chǎn)生隨機(jī)性。有些TRNG通過測量不可預(yù)知的自然過程,如熱噪聲、大氣噪聲或核衰變來工作??赡苄枰糜谄帘蜗到y(tǒng)不受各種攻擊弱點(diǎn)影響的隨機(jī)數(shù)發(fā)生器。
通過下面隨著參照附圖而進(jìn)行的詳細(xì)說明將使所要求保護(hù)的主
題的實(shí)施例的特征和優(yōu)點(diǎn)更加顯而易見,其中
圖1示出了根據(jù)本發(fā)明的系統(tǒng)的示型性實(shí)施例;圖2示出了根據(jù)本發(fā)明的可操作性引擎的示例性實(shí)施例;圖3示出了根據(jù)本發(fā)明的真隨機(jī)數(shù)發(fā)生器的示例性實(shí)施例;圖4示出了根據(jù)本發(fā)明的功率降檢測器的示例性實(shí)施例;圖5示出了根據(jù)本發(fā)明的電壓檢測器的示例性實(shí)施例;以及圖6示出了根據(jù)本發(fā)明的方法的示例性實(shí)施例。 盡管下面的具體實(shí)施方式
將參照示意性的實(shí)施例來進(jìn)行說明,但 是其多種替換方式、變形方式和變化對于本領(lǐng)域技術(shù)人員來說是顯而 易見的。相應(yīng)地,所要求保護(hù)的主題趨于更寬的保護(hù),并且僅由所附 權(quán)利要求中所闡述的那樣來限定。
具體實(shí)施例方式
大體上,本公開內(nèi)容介紹了對攻擊免疫的真隨機(jī)數(shù)發(fā)生器。在這 里所述的至少一個(gè)實(shí)施例中,提供了一種集成電路,其用于根據(jù)至少 一種安全應(yīng)用來產(chǎn)生隨機(jī)比特。該集成電路可以包括具有模擬內(nèi)核的 真隨機(jī)數(shù)發(fā)生器。該真隨機(jī)數(shù)發(fā)生器還可以包括電壓調(diào)節(jié)器,該電壓 調(diào)節(jié)器用于向該模擬內(nèi)核提供內(nèi)部產(chǎn)生的電源。
圖1示出了符合本公開內(nèi)容的系統(tǒng)實(shí)施例100。系統(tǒng)100可以包 括主處理器102、芯片組電路104和系統(tǒng)存儲器106。主處理器102 可以包括一個(gè)或多個(gè)處理器內(nèi)核,并且可用于執(zhí)行系統(tǒng)軟件(未示 出)。系統(tǒng)軟件可包括例如操作系統(tǒng)代碼(例如OS kernel代碼)和 局域網(wǎng)(LAN)驅(qū)動器代碼。芯片組電路120通常可包括"北橋"電 路104以控制處理器102、系統(tǒng)存儲器106和總線電路108之間的通 信。總線電路可以包括可與PCI—Express通信協(xié)議相符或兼容的I/O 總線電路,以在"北橋"電路104和部件110a-c之間提供通信。部 件110a-c可以包括視頻/圖形110a和/或其他外圍控制器110c,但 不限于此。而且,芯片組電路120可包括"南橋"電路110b,其用 于控制主系統(tǒng)和各種部件之間的1/0通信,所述各種部件包括總線架 構(gòu)、I/O、存儲器、音頻codecs、內(nèi)存、固件、功率管理、時(shí)鐘發(fā)生 器、局域網(wǎng)(LAN)和無線LAN (WLAN),但不限于此。當(dāng)然,也可以 根據(jù)系統(tǒng)100使用各種其他部件。
在有些實(shí)施例中,芯片組120的"北橋"104可以包括真隨機(jī)數(shù) 發(fā)生器(TRNG) 112。 TRNG112可以由可操作性引擎(ME) 114控制, 該可操作性引擎114也可以位于芯片組120的"北橋"104內(nèi)。TRNG 112可包括模擬內(nèi)核,其用于產(chǎn)生隨機(jī)數(shù)比特流。如果模擬內(nèi)核經(jīng)受外部電壓變化或噪聲,則可能改變在模擬內(nèi)核中產(chǎn)生的數(shù)據(jù)的隨機(jī)性 (熵)。因此,由該數(shù)據(jù)產(chǎn)生的密鑰和加密代碼可能不太安全。在這 里所述的實(shí)施例中,模擬內(nèi)核可以由用于保護(hù)它不受外部影響的各種
電路所包圍。來自TRNG 112中的模擬內(nèi)核的數(shù)據(jù)可以被傳輸?shù)娇刹?作性引擎114,用于進(jìn)一步精煉和收集。
現(xiàn)在參考圖2,其示出了可操作性引擎200的示例性實(shí)施例。在 有些實(shí)施例中,可操作性引擎200可用作芯片組120的北橋104內(nèi)的 嵌入式微控制器。ME 200可用于結(jié)合和/或獨(dú)立于主處理器102來執(zhí) 行任務(wù)。ME 200可包括其自己的微代碼和寄存器文件。有些微代碼 可以被儲存在ROM中,并且可經(jīng)由安全裝置從存儲器加載其他例程 (routine)。 ME 200可通過隨機(jī)數(shù)發(fā)生器控制(RNG CTRL)和狀態(tài) 機(jī)電路202來控制TRNG 112的操作。響應(yīng)某個(gè)微代碼的執(zhí)行,TRNG 112 可被啟動以產(chǎn)生隨機(jī)比特流,或者被停止以節(jié)省功率。
從TRNG 112傳輸?shù)組E 200的數(shù)據(jù)可以被傳輸?shù)絍on Neumann校 正器(VNC)電路204。由模擬內(nèi)核產(chǎn)生的數(shù)據(jù)可以具有偏向,即,1 比0多,反之亦然。VNC電路204可用于分析比特對,并且在它們不 一樣時(shí)選擇第一個(gè)。比特對"00"和"11"可以完全被放棄。因此, VNC電路204可以被配置用于偏向的隨機(jī)流中的一些或所有偏向。在 有些實(shí)施例中,位于由VNC電路204處理的數(shù)據(jù)對之間的比特還可以 被丟棄以減少之前狀態(tài)相關(guān)性。例如,當(dāng)處于一種狀態(tài)的觸發(fā)器具有 比改變狀態(tài)稍高的想保持在該狀態(tài)的可能性時(shí),可能發(fā)生這種情況。 由于,比特對具有相同值的機(jī)會基本上相等因此平均來說,六位中大 約只有一個(gè)可以經(jīng)過(past) VNC電路204。經(jīng)過VNC電路204的數(shù) 據(jù)轉(zhuǎn)換的一個(gè)可能例子示于下面的表1中。表1示出了 VNC電路204 的輸入和輸出數(shù)據(jù)。在有些實(shí)施例中,3-比特序列的最后一個(gè)比特可 以被丟棄而不管其值如何。當(dāng)?shù)谝槐忍嘏c第二比特不匹配時(shí),VNC電 路204的輸出可以是3-比特序列的第一比特。
8VNC輸入數(shù)據(jù)序列(3比特)VNC輸出數(shù)據(jù)
OOX沒有數(shù)據(jù)
01X0
10X1
11X沒有數(shù)據(jù)
表l: Von Neumann校正器數(shù)據(jù)轉(zhuǎn)換表
一旦數(shù)據(jù)已經(jīng)被VNC電路204過濾,它就可以被移位到移位寄存 器電路206中(例如,32比特)。當(dāng)移位寄存器電路206滿時(shí),數(shù)據(jù) 可以被轉(zhuǎn)移到第二數(shù)據(jù)寄存器208,從那里它可以通過移位寄存器控 制(S/R Ctrl)電路212被ME內(nèi)核210讀取。讀取數(shù)據(jù)寄存器208 的操作可以使寄存器208 "清空"。同時(shí),移位寄存器電路206可以 再次被填充。如果數(shù)據(jù)寄存器208是空的,則新的隨機(jī)數(shù)據(jù)可以被轉(zhuǎn) 移到數(shù)據(jù)寄存器208。如果數(shù)據(jù)寄存器208不是空的(即,沒有被ME 內(nèi)核210讀取),則S/R Ctrl 212可以保持移位寄存器電路206直到 數(shù)據(jù)寄存器208是空的。從VNC電路204接收的任何數(shù)據(jù)可以被放棄。 在有些實(shí)施例中,ME內(nèi)核電路210可以用于捕獲和處理通過VNC電 路204產(chǎn)生的一些或所有數(shù)據(jù)。
現(xiàn)在參照圖3,其示出了真隨機(jī)數(shù)發(fā)生器(TRNG)電路300的示 例性實(shí)施例。TRNG電路300可操作地與可操作性引擎200連接。TRNG 電路300可包括模擬內(nèi)核電路302、電壓調(diào)節(jié)器電路304、功率降檢 測電路306、電壓檢測電路308和可觀察性端口 310。
模擬內(nèi)核302可包括用于給至少一個(gè)放大器305提供噪聲輸入 303的至少一個(gè)電阻器(例如,兩個(gè)50kQ電阻器)、低頻壓控振蕩器
(LFO)電路307、高頻振蕩器(HFO)電路309和數(shù)據(jù)鎖存器311。 可以用差分電路來構(gòu)成這些關(guān)鍵部件以使它們盡可能對電源上的噪 聲免疫。這些部件還可被構(gòu)成為具有相對于電源電壓的低靈敏度。例 如,某些實(shí)施例可采用共發(fā)共基(cascoding)技術(shù)來降低)^電源噪 聲或復(fù)制偏向的靈敏度,和/或可以采用校準(zhǔn)技術(shù)來抵償任何電源感應(yīng)的變化。
在有些實(shí)施例中,隨機(jī)數(shù)據(jù)的源(即熵源)可以是與至少一個(gè)電 阻器相關(guān)的熱噪聲。熱噪聲可以是在所有頻率當(dāng)中具有平坦功率密度
的白噪聲。例如,兩個(gè)基本相同的電阻器可以向至少一個(gè)放大器305 提供差分熱噪聲輸入303。在有些實(shí)施例中,可以選擇電阻器使其具 有在50kQ到75kQ之間的電阻值,由此產(chǎn)生根據(jù)以下等式1給出的 大約60uV的標(biāo)稱熱噪聲。當(dāng)然,也可以采用其他電阻值以產(chǎn)生不同 的熱噪聲值。
噪聲vRMS=V4*^*r*/ *A/ (i)
其中K是Boltzmann常數(shù);T是開氏溫標(biāo)的溫度;R是電阻器 的值;Af是測量噪聲的帶寬。
在有些實(shí)施例中,可以將差分噪聲熱輸入303發(fā)送到放大器305 (例如三級放大器),該放大器305可以具有大約250到600的增益。 放大器305可以與lKHz偏移消除循環(huán)(offset cancellation cycle) 進(jìn)行AC耦合(例如,包括在各級之間的電容器以捕獲偏移噪聲)。為 了實(shí)現(xiàn)所需的增益,放大器可以被配置為具有大增益的單級或者也可 以將幾級級聯(lián)在一起。每級可具有相對低的和穩(wěn)定的增益(例如4到 10)和低偏移(例如〈5mV)。在規(guī)定的時(shí)幀(例如每毫妙)期間,放 大器305可經(jīng)歷簡短序列,在允許電阻器的噪聲再次通過之前,該簡 短序列可以捕獲每一級的偏移。這不僅可以消除偏移(其可以完全控 制小噪聲信號),而且還可以消除低于lKHz的低頻1/f噪聲(其可以 改變頻率功率譜)。當(dāng)放大器305進(jìn)行偏移消除時(shí),可操作性引擎200 可以用于忽視來自TRNG電路300的數(shù)據(jù),因?yàn)樗诖藭r(shí)可能不是足 夠隨機(jī)。ME 200還可用于有時(shí)允許放大器305在接收比特之前重新 開始適當(dāng)?shù)牟僮?。例如,在放大器喚醒、消除偏移或穩(wěn)定化的階段, 產(chǎn)生的比特可具有一定程度的非隨機(jī)性。通過將ME配置為在這個(gè)喚 醒、偏移取消和穩(wěn)定化階段抑制這些比特,可以增加所產(chǎn)生的比特的 隨機(jī)性。在有些實(shí)施例中,消除和穩(wěn)定化序列可能只占用總的比特生 成時(shí)間的5%。
在有些實(shí)施例中,放大器305的輸出可以作為差分電壓信號輸送給LF0電路307。 LF0電路307可以被配置為在大約600KHz的中心頻 率下操作。放大器輸出電壓可使LFO電路307以大約2. 0MHz/V的頻 率增益與輸入信號電平成比例地改變頻率。結(jié)果,由熵源產(chǎn)生的隨機(jī) 電壓可以改變?yōu)閺腖FO電路307擴(kuò)展的隨機(jī)頻率。LFO輸出可以被波 形整形(準(zhǔn)一正弦曲線)為快速過渡互補(bǔ)金屬一氧化物半導(dǎo)體(CMOS) 信號以減少來自電源噪聲的沖擊。
在有些實(shí)施例中,高頻振蕩器(HFO)電路309可包括環(huán)型振蕩器, 其被配置為在大約300和500MHz之間運(yùn)行。該頻率可能主要取決于 工藝(process),但是對于給定單位來說也可以是固定的。該頻率可 以稍微與溫度相關(guān)。HFO頻率可以被選擇為對電壓相對不靈敏的,因 為電壓可能是主要攻擊機(jī)理。
在有些實(shí)施例中,HF0電路309的輸出可以被512分割以驅(qū)動RNG CTRL和ME 200的狀態(tài)機(jī)電路202。這可以給RNG CTRL電路202提供 可以與外部影響無關(guān)的時(shí)鐘。如下所述,從RNG CTRL和狀態(tài)機(jī)電路 202到TRNG電路300的輸出對于適當(dāng)?shù)腡RNG操作可以在規(guī)定的定時(shí) 范圍內(nèi)。其他時(shí)鐘源可以依賴于可外部改變的時(shí)鐘,所述時(shí)鐘可能是 對于TRNG電路300而言可能的攻擊點(diǎn)。
HFO電路309可以被配置為產(chǎn)生時(shí)鐘數(shù)據(jù)信號并且將這個(gè)信號作 為輸入提供給數(shù)據(jù)鎖存器311。 HFO電路309的輸出可以作為差分信 號發(fā)送給鎖存器311,以便使其基本上對噪聲免疫。鎖存器311可以 由LFO電路307來提供時(shí)鐘。HFO電路309可以快大約1000倍,并 且LFO頻率調(diào)制將其邊緣移動到等于大于20 HFO周期的范圍之上。 由于LFO電路307的頻率輸出可以是隨機(jī)的,它釆樣HFO振蕩器輸出 的點(diǎn)可以是隨機(jī)的,并且由于被采樣的HFO循環(huán)的范圍可以是寬的, LFO電路采樣一或零的概率是均勻的,假設(shè)在HFO電路309上的占空 比為50%。 HFO電路309可被配置為具有標(biāo)稱50%占空比。例如, HFO電路309可被配置為在輸出級上具有除2電路,以提供來自HFO 的50%占空比。有些偏壓仍可能進(jìn)入數(shù)據(jù)流??墒褂肰NC電路204 來除去這些偏壓。
在有些實(shí)施例中,數(shù)據(jù)鎖存器311可以不具有在先狀態(tài)相關(guān)性,并且可以用于對來自HF0電路309的輸出進(jìn)行采樣。例如,數(shù)據(jù)鎖存 器311的各級可以使用反向緩沖器進(jìn)行隔離。數(shù)據(jù)鎖存器311的輸出 可以通過門控電平移位器(未示出)輸送給ME 200中的VNC電路204。 該電平移位器可以用于將模擬內(nèi)核302的信號(signaling)電平轉(zhuǎn) 換成ME信號的不同電壓。從ME 200到TRNG電路300的控制信號也 可以通過電平移位器在相反方向進(jìn)行轉(zhuǎn)換。該電平移位器可以被門 控,以便當(dāng)ME 200關(guān)閉TRNG電路300電源時(shí),或者當(dāng)ME 200打開 之前給TRNG電路300供電時(shí),這兩個(gè)域之間的信號傳輸是無效的。 ME 200和TRNG電路300可以在不同的電源上。
在有些實(shí)施例中,模擬內(nèi)核302可以被配置為具有完差分?jǐn)?shù)據(jù)一 路徑,以便抑制系統(tǒng)中的共模噪聲。如這里所述,電源上存在噪聲可 能影響差分電路。這種影響對于影響內(nèi)核302中的共模電平來說在模 擬內(nèi)核302的兩側(cè)可能是相同的。下一個(gè)差分輸入可以被設(shè)計(jì)成具有 優(yōu)異的共模抑制,由此消除噪聲的影響。例如,放大器電路305可具 有300dB的理論抑制,盡管數(shù)字處理中的實(shí)際限制可能將其限制到 80dB。由電壓調(diào)節(jié)器304提供的噪聲減少和差分電路的PSRR可以組 合以減少電源上的噪聲。
在有些實(shí)施例中,這里所述的模擬電路可以是共發(fā)共基 (cascode)以改進(jìn)電源抑制比。共發(fā)共基是一種電路技術(shù),其可以 增加模擬電路的輸出阻抗,由此使模擬電路對電源變化更具免疫力。 在一個(gè)示例性實(shí)施例中,共發(fā)共基設(shè)計(jì)可以被配置為在0.9V (對于 制做TRNG電路300的硅工藝的典型電壓可以為1.25V)的低電壓下 工作。此外,可使用折疊共發(fā)共基方法來減少所需的工作電源電壓。 電壓調(diào)節(jié)器304可以以1. 05V為目標(biāo)。由于這些電路可以在較低電壓 下工作,因此在功率降檢測電路306切斷(trip)之前使其經(jīng)過電壓 調(diào)節(jié)器304的即使很小的變化也可能不會使模擬內(nèi)核302失效。
電壓調(diào)節(jié)器304、功率降檢測電路(PDDET) 306、電壓檢測電路 308和可觀察性端口 310可以用于防止或檢測可能影響數(shù)據(jù)流的熵的 外部影響或攻擊。這些部件各自可操作地與模擬內(nèi)核電路302連接。 這些部件中的每一個(gè)將在下面更詳細(xì)地進(jìn)行介紹。在有些實(shí)施例中,電壓調(diào)節(jié)器304可用于向TRNG電路300的模 擬內(nèi)核電路302提供電壓。模擬內(nèi)核電路302可在經(jīng)由電壓調(diào)節(jié)器電 路304輸送的內(nèi)部產(chǎn)生的電源上工作。這種配置可以降低潛在的黑客 通過調(diào)制電源來泄露電路元件行為的能力。電壓調(diào)節(jié)器電路304可以 從由內(nèi)核電壓供電的低電壓帶隙接收參考電壓。這可以用于穩(wěn)定該電 壓和向低頻噪聲或在該帶隙的操作范圍內(nèi)的電壓調(diào)制提供免疫力。在 較高的頻率(例如10固z左右),該帶隙抑制電源噪聲的能力(通過 PSRR測量的)可能變壞,并且實(shí)際上開始放大噪聲。在有些實(shí)施例 中,為了屏蔽模擬內(nèi)核電源,參考電壓可以通過簡單兩極(pole) RC 濾波器進(jìn)行低通濾波,以便除去這個(gè)放大的噪聲和任何其他較高頻率 的噪聲。
在有些實(shí)施例中,用于電壓調(diào)節(jié)器電路304的供給電壓可以被選 擇為噪聲源,如存儲器電源(例如雙數(shù)據(jù)率(DDR))。這個(gè)噪聲源可 以消耗比TRNG電路300更多的功率并且可以防止脫離(out of)供 給電流信號的比特檢測。由電壓調(diào)節(jié)器電路304驅(qū)動的電路消耗的電 流可能是由電源供給的總電流的一小部分。當(dāng)從電源汲取電流時(shí)電源 電流可能下降(dip),由此表示"l"。如果汲取的電流的量是由電壓 源供給的凈電流的一小部分,則可能難以檢測"1"或"0"的概率。 讀取模擬內(nèi)核電路302的供給電流可給這里產(chǎn)生的數(shù)據(jù)流提供信息。 所有關(guān)鍵部件都使用完全差分電路可使凈電流更穩(wěn)定并且對于不同 的數(shù)據(jù)輸出基本上不會有不同。電壓調(diào)節(jié)器304電源可以重重地被過 濾以避免高頻噪聲的進(jìn)入或離開。此外,DDR模塊的數(shù)量級更高的噪 聲可以掩蓋可能逃逸的任何電流信號(signature)。例如,DDR供給 電壓上的噪聲可以為大約200mV峰-峰,而由TRNG產(chǎn)生的噪聲可能僅 有幾毫伏。
在有些實(shí)施例中,TRNG電路300可以被保護(hù)不被外部侵入。換 言之,可能不存在能夠提供對TRNG電路300直接訪問的電源、管腳 或球。此外,TRNG電路300可被屏蔽,使其不能經(jīng)由任何不安全的 軟件機(jī)制來訪問。除了下述的測試模式之外,TRNG電路300可能不 允許由用戶、黑客或其他不安全的訪問機(jī)制進(jìn)行的控制訪問。TRNG
13電路300可以通過ME固件進(jìn)行控制。對于TRNG電路300的控制可以 通過這個(gè)固件的安全性進(jìn)行保護(hù)。
在有些實(shí)施例中,TRNG電路300可以通過在模擬內(nèi)核電路302 內(nèi)產(chǎn)生的時(shí)鐘來控制。因此,通過不使用在平臺上可獲得的時(shí)鐘來控 制TRNG電路300,就可以避免通過危及這些時(shí)鐘來進(jìn)行攻擊的任何 可能性。不使用外部時(shí)鐘,因此避免了使用不安全固件的操縱。HF0 電路309可以是到TRNG控制邏輯的時(shí)鐘源。這個(gè)時(shí)鐘可以被配置為 在工藝、電壓和溫度上具有相對穩(wěn)定的配置,并且它可以比簡單的振 蕩器更穩(wěn)定。由HF0電路309產(chǎn)生的頻率的范圍可以通過常數(shù)跨導(dǎo) (Gm)電路進(jìn)行穩(wěn)定化,其中該常數(shù)跨導(dǎo)電路可以用于跟蹤和減少該 電路的可變性。該時(shí)鐘可以通過電壓調(diào)節(jié)器電路304和/或PDDET電 路306來保護(hù)。因此,這里所述的實(shí)施例可以不利用通常由芯片組 120 (例如,對于前端總線而言,存儲器或圖形)的"北橋"104使 用的外部時(shí)鐘驅(qū)動器源,并且可以不利用在南橋上的實(shí)時(shí)時(shí)鐘(RTC) 來產(chǎn)生。這些源可能被攻擊,從而危及時(shí)鐘周期,并且可能影響TRNG 控制邏輯時(shí)序。
在有些實(shí)施例中,HF0電路309可以被設(shè)計(jì)成電流控制振蕩器, 其拖尾電流可以由穩(wěn)定的參考電路來提供。參考電路可以被設(shè)計(jì)成通 過使用折疊共發(fā)共基(Gm)偏壓基電流參考電路設(shè)計(jì)提供相對穩(wěn)定的 電流。HF0電路309的每一級可以被配置為包括折疊共發(fā)共基級。電 流控制振蕩器和參考發(fā)生器可以由電壓調(diào)節(jié)器電路304供電。這可以 保證時(shí)鐘在工藝、電壓和溫度上是相對穩(wěn)定的。
現(xiàn)在參照圖4,其示出了功率降檢測器電路.(PDDET) 400的示例 性實(shí)施例。如果在電源線上檢測到威脅,例如,如果功率降低到預(yù)定 最小閾值以下,則TRNG 300可利用功率降檢測器電路400來停止比 特產(chǎn)生。如果供給電壓上的噪聲(AC+DC)接近于帶隙不再能產(chǎn)生穩(wěn) 定電壓的水平,或者在電壓調(diào)節(jié)器電路304停止充分地過濾噪聲的情 況下,PDDET 400可發(fā)送信號以停止比特產(chǎn)生并使?fàn)顟B(tài)機(jī)202復(fù)位。 如果功率不穩(wěn)定并且下降到瞬間的最小閾值之下,則PDDET400中的 比較器可發(fā)送信號給RNG CTRL和狀態(tài)機(jī)電路202。例如,如果檢測是兩納秒寬,則RNG CTRL 202可捕獲它,立即使VNC 204的管路中 的任何比特?zé)o效,并在最短時(shí)間內(nèi)將TRNG模擬內(nèi)核電路302送回其 偏移消除狀態(tài)。如果PDDET400繼續(xù)檢測壞電壓電平,TRNG電路300 可保持在這個(gè)無效狀態(tài)。只有當(dāng)PDDET 400變?yōu)闊o效時(shí),TRNG電路 300才通過偏移序列的剩余部分被發(fā)送,并可以繼續(xù)進(jìn)行比特產(chǎn)生。 在有些實(shí)施例中,由于可能存在向TRNG 300的部件(aspect)饋電 的兩個(gè)電源(例如VCCA_DDR和VCC一DDR電壓),這兩個(gè)可具有固定于 他們上的檢測器,從而可以在任何供給上檢測到攻擊。
在有些實(shí)施例中,帶隙402可向比較器404和406提供大約640mV
(V640)的參考電壓。帶隙可以由內(nèi)核供給"VCCA—DDR"供電。帶隙 402可能不能保證在給定電壓(例如1. OV)之下操作。如果"VCCA—DDR" 上的電壓高于1. 0V,則電阻分壓器410可向比較器404產(chǎn)生高于參 考電壓V640的電壓,并且比較器404的輸出電壓可以為零。如果
"VCCA—DDR"下降到1. OV以下,則電阻分壓器410可產(chǎn)生低于參考 電壓V640的電壓,并且比較器404的輸出電壓可以為邏輯1。 OR門 408的輸出也可以變?yōu)檫壿?,并且可以觸發(fā)PDDET信號以停止比特 產(chǎn)生。供給到比較器404的電源可以來自DDR存儲器電源"VCC—DDR"。 因此比較器可獨(dú)立于其正在監(jiān)控的電源。
供給用于TRNG模擬內(nèi)核302的內(nèi)部電壓調(diào)節(jié)器的電源可以來自 DDR存儲器電源"VCC—DDR",并且可以通過電阻分壓器412和比較器 406進(jìn)行監(jiān)控。可以不保證電壓調(diào)節(jié)器304工作在給定電壓(例如 1. 15V)以下。當(dāng)"VCC—DDR"下降到低于1.15V時(shí),電阻分壓器412 可產(chǎn)生低于參考電壓V640的電壓,這將使比較器406的輸出變?yōu)檫?輯1,并且可能導(dǎo)致OR門408發(fā)送PDDET信號以停止比特產(chǎn)生。與 比較器404相似,比較器406可以由它不監(jiān)控的電源"VCCA一DDR"供 電。
雖然上述說明主要涉及外部電源電壓下降到由電阻分壓器410 和412形成的閾值電壓以下,但是也可以檢測外部電壓是否超過安全 操作范圍或閾值電壓。在有些實(shí)施例中,這可以由第二組電阻分壓器 形成的第二組閾值來實(shí)現(xiàn),其中第二組電阻分壓器連接到第二組比較
15器(未示出),其輸出連接到OR門408上的兩個(gè)附加輸入以驅(qū)動PDDET 信號。
現(xiàn)在參照圖5,其示出了電壓檢測器電路500的示例性實(shí)施例。 如上參照圖3所述,TRNG電路300可包括用于測試內(nèi)部DC電壓和操 作點(diǎn)的可觀察性端口 310。通過這種方式,可使用球來提供用于調(diào)試 和/或制造測試的測試模式。對這個(gè)測試模式的訪問可以通過熔絲來 使其無效,并且測試模式球可以連接到VSS。電壓檢測器電路500可 用于防止可能的攻擊者識別并且接下來使用該球來達(dá)到進(jìn)入TRNG電 路300。電壓檢測器電路500可以被設(shè)置在可觀察性端口 310 (例如, 管腳)上以感測球電壓,并且如果該球被提升到接近或者超出電壓調(diào) 節(jié)器304的內(nèi)部電壓就停止比特產(chǎn)生。在有些實(shí)施例中,電壓檢測器 電路500可包括類似于PDDET 400的電路。如果測試球上的電壓升高 到足夠高,該球周圍的電路中的寄生二極管可提供電流給TRNG模擬 內(nèi)核電路302。這可以通過檢測該球上的電壓來防止。如果電壓太高, 則來自TRNG電路300的比特產(chǎn)生可以被停止,直到停止攻擊。這種 方案可能類似于上面參照圖4所述的PDDET 400。
在有些實(shí)施例中,電阻分壓器508可從用于比較器502的內(nèi)核電 壓"VCCA一DDR"產(chǎn)生不超過電壓調(diào)節(jié)器的輸出的參考電壓。這個(gè)參考 電壓可以與可觀察性端口 310 (管腳"VCC—TSTRNG" 506)上的電壓 相比較。如果"VCC—TSTRNG" 506上的電壓超過來自電阻分壓器508 的參考電壓,則來自比較器502的輸出可能變?yōu)檫壿?電平,使OR 門504發(fā)送新的PDDET信號以停止比特產(chǎn)生。當(dāng)使用球用于測試目的 時(shí),可以使比較器無效。在正常操作期間,比較器可以被啟動,并且 可使用下拉晶體管和電阻器組合510下拉"VCC—TSTRNG" 506以保證
在缺乏任何其他驅(qū)動源情況下506可以為低。
如上面參照圖3所述,可觀察性端口 310可以可操作地連接到電 壓檢測器電路308,該電壓檢測器電路308可用于檢測球電壓,并且 如果球電壓位于電壓調(diào)節(jié)器電路304的電壓范圍以外就停止比特產(chǎn) 生。盡管制作TRNG電路的硅工藝不容易受可觀察性端口上的地電位 以下的電壓影響,但是一些其他工藝可能具有那個(gè)問題。低電壓的檢測可以通過另一比較器(未示出)來進(jìn)行,該另一比較器的輸出連接
到OR門504上的附加輸入以驅(qū)動PDDETNEW信號。
圖6示出與本公開內(nèi)容一致的典型操作的流程圖600。在一個(gè)示 例性實(shí)施例中,這些操作可包括經(jīng)由集成電路根據(jù)至少一個(gè)安全應(yīng)用 產(chǎn)生隨機(jī)比特,所述集成電路包括具有模擬內(nèi)核(602)的真隨機(jī)數(shù) 發(fā)生器。這些操作還可包括經(jīng)由與所述真隨機(jī)數(shù)發(fā)生器(604)相關(guān) 聯(lián)的電壓調(diào)節(jié)器向所述模擬內(nèi)核提供內(nèi)部產(chǎn)生的電源。當(dāng)然,各種附 加操作也包括在本公開內(nèi)容的范圍之內(nèi)。
這里任何實(shí)施例中使用的術(shù)語"存儲器"可包括一個(gè)或多個(gè)以下 類型的存儲器半導(dǎo)體固件存儲器、可編程存儲器、非易失性存儲器、 只讀存儲器、電可編程存儲器、隨機(jī)存取存儲器、閃速存儲器、磁盤
存儲器、和/或光盤存儲器。
附加的或替代的,存儲器可包括其他和/或以后研制的計(jì)算機(jī)可 讀存儲器類型。這里所述的方法的實(shí)施例可以用計(jì)算機(jī)程序來執(zhí)行, 該計(jì)算機(jī)程序可以儲存在具有指令的存儲介質(zhì)上以對系統(tǒng)進(jìn)行編程, 從而執(zhí)行該方法。該存儲介質(zhì)可包括,但不限于,任何類型的磁盤, 包括軟盤、光盤、壓縮盤只讀存儲器(CD-ROM)、壓縮盤可重寫(CD-RW) 和磁-光盤、半導(dǎo)體器件,諸如只讀存儲器(ROM)、隨機(jī)存取存儲器 (RAM)如動態(tài)和靜態(tài)RAM、可擦可編程只讀存儲器(EPROM)、電可 擦可編程只讀存儲器(EEPROM)、閃速存儲器、磁卡或光卡、或者適 合于儲存電子指令的任何類型的介質(zhì)。其他實(shí)施例可以作為通過可編 程控制器件執(zhí)行的軟件模塊來實(shí)現(xiàn)。
這里任何實(shí)施例中所使用的術(shù)語"電路"可包括例如硬線電路、 可編程電路、狀態(tài)機(jī)電路、和/或儲存由可編程電路執(zhí)行的指令的固 件,這些電路或部件可單獨(dú)使用或組合使用。.
這里任何實(shí)施例中所使用的術(shù)語"安全應(yīng)用"可包括例如密碼應(yīng) 用或協(xié)議、密鑰管理方案、旨在保護(hù)密碼或者一塊代碼的任何應(yīng)用和 /或用于產(chǎn)生至少一個(gè)比特的任何系統(tǒng)。
這里已經(jīng)采用的術(shù)語和短語作為說明的術(shù)語,但并不限于此,在 使用這些術(shù)語和短語時(shí),不排除所示和所述的特征(或其部分)的任何等效形式,并且應(yīng)該認(rèn)識到在權(quán)利要求的范圍內(nèi)可以進(jìn)行各種修 改。相應(yīng)地,權(quán)利要求趨于覆蓋所有這種等效形式。
權(quán)利要求
1、一種裝置,包括集成電路,其用于根據(jù)至少一種安全應(yīng)用產(chǎn)生隨機(jī)比特,所述集成電路包括具有模擬內(nèi)核的真隨機(jī)數(shù)發(fā)生器,所述真隨機(jī)數(shù)發(fā)生器包括電壓調(diào)節(jié)器,該電壓調(diào)節(jié)器被配置為包括用于向所述模擬內(nèi)核提供功率的內(nèi)部產(chǎn)生的電源。
2、 根據(jù)權(quán)利要求1所述的裝置,還包括功率降檢測電路,其用 于監(jiān)控所述內(nèi)部產(chǎn)生的電源,并且如果輸送給所述模擬內(nèi)核的所述功 率下降到第一閾值以下或超過第一閾值,或者下降到第二閾值以下或 超過第二閾值,則所述功率降檢測電路就停止比特產(chǎn)生。
3、 根據(jù)權(quán)利要求1所述的裝置,還包括可觀察性端口,其用于 測試與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的內(nèi)部電壓。
4、 根據(jù)權(quán)利要求3所述的裝置,其中所述可觀察性端口可操作 地連接到電壓檢測器電路,該電壓檢測器電路用于檢測球電壓,并且 如果所述球電壓位于所述電壓調(diào)節(jié)器的電壓范圍以外,則該電壓檢測 器電路就停止比特產(chǎn)生。
5、 根據(jù)權(quán)利要求1所述的裝置,其中所述內(nèi)部產(chǎn)生的電源得自 所述電壓調(diào)節(jié)器,所述電壓調(diào)節(jié)器由外部電壓源供電。
6、 根據(jù)權(quán)利要求1所述的裝置,其中通過所述模擬內(nèi)核產(chǎn)生的 時(shí)鐘來控制所述真隨機(jī)數(shù)發(fā)生器。
7、 一種系統(tǒng),包括 主處理器;至少一個(gè)存儲器;和集成電路,其用于根據(jù)至少一種安全應(yīng)用產(chǎn)生隨機(jī)比特,所述集 成電路包括具有模擬內(nèi)核的真隨機(jī)數(shù)發(fā)生器,所述真隨機(jī)數(shù)發(fā)生器包 括電壓調(diào)節(jié)器,該電壓調(diào)節(jié)器具有用于向所述模擬內(nèi)核提供功率的內(nèi) 部產(chǎn)生的電源。
8、 根據(jù)權(quán)利要求7所述的裝置,還包括與所述集成電路相關(guān)聯(lián) 的可操作性引擎,所述可操作性弓I擎包括用于控制所述真隨機(jī)數(shù)發(fā)生 器的固件。
9、 根據(jù)權(quán)利要求7所述的系統(tǒng),還包括功率降檢測電路,其用 于監(jiān)控所述內(nèi)部產(chǎn)生的電源,并且如果輸送給所述模擬內(nèi)核的所述功 率下降到第一閾值以下或超過第一閾值,或者下降到第二閾值以下或 超過第二閾值,則所述功率降檢測電路就停止比特產(chǎn)生。
10、 根據(jù)權(quán)利要求7所述的系統(tǒng),還包括可觀察性端口,其用于 測試與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的內(nèi)部電壓。
11、 根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述可觀察性端口可操 作地連接到電壓檢測器電路,該電壓檢測器電路用于檢測球電壓,并 且如果所述球電壓位于所述電壓調(diào)節(jié)器的電壓范圍以外,則該電壓檢 測器電路就停止比特產(chǎn)生。
12、 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述內(nèi)部產(chǎn)生的電源得自 所述電壓調(diào)節(jié)器,所述電壓調(diào)節(jié)器由外部電壓源供電。
13、 根據(jù)權(quán)利要求7所述的系統(tǒng),其中通過所述模擬內(nèi)核產(chǎn)生的 時(shí)鐘來控制所述真隨機(jī)數(shù)發(fā)生器。
14、 一種方法,包括通過集成電路根據(jù)至少一種安全應(yīng)用來產(chǎn)生隨機(jī)比特,所述集成電路包括具有模擬內(nèi)核的真隨機(jī)數(shù)發(fā)生器;并且通過與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的電壓調(diào)節(jié)器,經(jīng)由內(nèi)部產(chǎn)生 的電源向所述模擬內(nèi)核提供功率。
15、 根據(jù)權(quán)利要求14所述的方法,還包括通過功率降檢測電路 監(jiān)控所述內(nèi)部產(chǎn)生的電源,并且如果輸送給所述模擬內(nèi)核的所述功率 下降到第一閾值以下或超過第一閾值,或者下降到第二閾值以下或超 過第二閾值,則停止比特產(chǎn)生。
16、 根據(jù)權(quán)利要求14所述的方法,還包括通過可觀察性端口測 試與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的內(nèi)部電壓。
17、 根據(jù)權(quán)利要求15所述的方法,其中所述可觀察性端口可操 作地連接到電壓檢測器電路,該電壓檢測器電路用于檢測球電壓,并 且如果所述球電壓在所述電壓調(diào)節(jié)器的電壓范圍以外,則停止比特產(chǎn) 生。
18、 一種制品,包括具有儲存在其上的指令的存儲介質(zhì),當(dāng)這些 指令被機(jī)器執(zhí)行時(shí)導(dǎo)致以下操作通過集成電路根據(jù)至少一種安全應(yīng)用來產(chǎn)生隨機(jī)比特,所述集成 電路包括具有模擬內(nèi)核的真隨機(jī)數(shù)發(fā)生器;并且通過與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的電壓調(diào)節(jié)器,經(jīng)由內(nèi)部產(chǎn)生 的電源向所述模擬內(nèi)核提供功率。
19、 根據(jù)權(quán)利要求18所述的制品,還包括通過功率降檢測電路 監(jiān)控所述內(nèi)部產(chǎn)生的電源,并且如果輸送給所述模擬內(nèi)核的所述功率 下降到第一閾值以下或超過第一閾值,或者下降到第二閾值以下或超 過第二閾值,則停止比特產(chǎn)生。
20、 根據(jù)權(quán)利要求18所述的制品,還包括通過可觀察性端口測試與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的內(nèi)部電壓。
全文摘要
大體上,本公開內(nèi)容介紹了一種用于產(chǎn)生隨機(jī)數(shù)的系統(tǒng)和方法。在這里所述的至少一個(gè)實(shí)施例中,該方法可包括通過集成電路根據(jù)至少一種安全應(yīng)用來產(chǎn)生隨機(jī)比特,所述集成電路包括具有模擬內(nèi)核的真隨機(jī)數(shù)發(fā)生器。該方法還可以包括通過與所述真隨機(jī)數(shù)發(fā)生器相關(guān)聯(lián)的電壓調(diào)節(jié)器,經(jīng)由內(nèi)部產(chǎn)生的電源向所述模擬內(nèi)核提供功率。當(dāng)然,附加的操作也包括在本公開內(nèi)容的范圍內(nèi)。
文檔編號G06F7/58GK101477450SQ20081019033
公開日2009年7月8日 申請日期2008年12月31日 優(yōu)先權(quán)日2007年12月31日
發(fā)明者A·M·沃爾克, P·普拉丹, P·達(dá)尼 申請人:英特爾公司