本發(fā)明大體上涉及存儲(chǔ)器裝置,且更確切地說涉及用以創(chuàng)建物理不可克隆函數(shù)(PUF)的方法和設(shè)備。
背景技術(shù):
物理不可克隆函數(shù)(PUF)是可用于唯一地識(shí)別集成電路的基于集成電路的電和物理特性的函數(shù)。基于集成電路對提供到集成電路的質(zhì)詢(例如輸入)的響應(yīng)(例如輸出)確定PUF。集成電路基于由此些電路的制造方法產(chǎn)生的集成電路的電和物理特性的差異(例如摻雜程度、電阻、電容等的變化)而具有對質(zhì)詢的唯一響應(yīng)。這些質(zhì)詢-響應(yīng)對可用于產(chǎn)生PUF來唯一地識(shí)別對應(yīng)的集成電路。使用PUF作為用于集成電路的唯一識(shí)別符可用于防止攻擊者輕易地克隆電路。
技術(shù)實(shí)現(xiàn)要素:
本文中所揭示的實(shí)例測量SRAM的位單元的讀存取時(shí)間以創(chuàng)建PUF。本文中所揭示的實(shí)例方法包含確定電壓的施加與第一位單元的第一輸出之間的第一持續(xù)時(shí)間,所述第一輸出對應(yīng)于存儲(chǔ)在第一位單元中的第一值。在此些實(shí)例中,計(jì)時(shí)器確定電壓的施加與第二位單元的第二輸出之間的第二持續(xù)時(shí)間,所述第二輸出對應(yīng)于存儲(chǔ)在第二位單元中的第二值。在此些實(shí)例中,處理器基于第一持續(xù)時(shí)間與第二持續(xù)時(shí)間的比較確定一函數(shù),所述函數(shù)是建立包含存儲(chǔ)器陣列的電路的識(shí)別。
附圖說明
圖1為將實(shí)例SRAM并入在實(shí)例產(chǎn)品中以供結(jié)合本文所揭示的實(shí)例PUF技術(shù)使用的實(shí)例方式。
圖2為包含用以創(chuàng)建PUF的實(shí)例控制器的實(shí)例靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)裝置的一部分。
圖3為實(shí)例SRAM與實(shí)例數(shù)據(jù)庫通信以供結(jié)合本文所揭示的實(shí)例PUF技術(shù)使用。
圖4為用以基于實(shí)例SRAM PUF創(chuàng)建實(shí)例安全密鑰且將安全密鑰存儲(chǔ)在實(shí)例數(shù)據(jù)庫中的實(shí)例設(shè)備。
圖5為基于PUF驗(yàn)證實(shí)例SRAM電路的實(shí)例。
圖6為基于帶密鑰的HMAC驗(yàn)證實(shí)例SRAM電路的實(shí)例。
圖7為用以控制SRAM電路以使用實(shí)例計(jì)時(shí)器創(chuàng)建PUF的實(shí)例存儲(chǔ)器控制器。
圖8為用以個(gè)別地確定每一位單元的讀存取時(shí)間且比較位單元的讀存取時(shí)間以創(chuàng)建PUF的實(shí)例SRAM電路。
圖9為顯示圖8的實(shí)例SRAM電路的實(shí)例讀存取時(shí)間的實(shí)例時(shí)序的曲線。
圖10為用以控制SRAM電路以使用實(shí)例計(jì)數(shù)器創(chuàng)建PUF的實(shí)例存儲(chǔ)器控制器。
圖11為用以在將讀取信號施加到位單元之后遞增地讀取位單元以確定位單元的讀存取時(shí)間來創(chuàng)建PUF的實(shí)例SRAM電路。
圖12為顯示圖11的實(shí)例SRAM電路的兩個(gè)位單元的實(shí)例讀存取時(shí)間的實(shí)例時(shí)序的曲線。
圖13為用以同時(shí)比較兩個(gè)位單元的讀存取時(shí)間以創(chuàng)建PUF的實(shí)例SRAM電路。
圖14為說明圖13的SRAM電路的實(shí)例讀存取時(shí)間的比較的實(shí)例曲線。
圖15為表示可經(jīng)執(zhí)行以實(shí)施圖7和10的實(shí)例存儲(chǔ)器控制器來創(chuàng)建PUF和/或驗(yàn)證IC的實(shí)例機(jī)器可讀指令的流程圖。
圖16為表示可經(jīng)執(zhí)行以實(shí)施圖7的實(shí)例存儲(chǔ)器控制器來基于兩個(gè)位單元的時(shí)間比較創(chuàng)建PUF的實(shí)例機(jī)器可讀指令的流程圖。
圖17為表示可經(jīng)執(zhí)行以實(shí)施圖10的實(shí)例存儲(chǔ)器控制器來基于N個(gè)位單元的時(shí)間比較創(chuàng)建PUF的實(shí)例機(jī)器可讀指令的流程圖。
圖18為表示可經(jīng)執(zhí)行以實(shí)施圖7和/或10的實(shí)例存儲(chǔ)器控制器來基于N個(gè)位單元的計(jì)數(shù)比較創(chuàng)建PUF的實(shí)例機(jī)器可讀指令的流程圖。
圖19為說明驗(yàn)證主機(jī)或PUF產(chǎn)生器選擇特定質(zhì)詢的效應(yīng)的實(shí)例曲線。
圖20為經(jīng)構(gòu)造以執(zhí)行圖15-18的實(shí)例機(jī)器可讀指令來創(chuàng)建PUF和/或驗(yàn)證集成電路(IC)的實(shí)例處理器平臺(tái)的框圖。
圖21為經(jīng)構(gòu)造以執(zhí)行圖15-18的實(shí)例機(jī)器可讀指令來創(chuàng)建PUF和/或驗(yàn)證IC的處理器平臺(tái)的替代框圖。
具體實(shí)施方式
物理不可克隆函數(shù)(PUF)是用于識(shí)別集成電路的基于集成電路的電和物理特性的函數(shù)。PUF由提供到集成電路的質(zhì)詢(例如,輸入)和對質(zhì)詢的響應(yīng)(例如,輸出)組成。存在許多不同類型的PUF。PUF可分類為弱或強(qiáng)。如果PUF產(chǎn)生對相對較少數(shù)目的質(zhì)詢的響應(yīng),那么所述PUF視為弱。如果PUF產(chǎn)生對相對較大數(shù)目的質(zhì)詢的響應(yīng),那么所述PUF視為強(qiáng)。常規(guī)靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)PUF分類為弱PUF。此弱是部分歸因于用于界定PUF的質(zhì)詢的數(shù)目有限。另外,用于創(chuàng)建常規(guī)SRAM PUF的質(zhì)詢相對單純,這使得攻擊者較容易復(fù)制PUF,從而使SRAM及其內(nèi)容易受侵入者的攻擊。本文中所揭示的實(shí)例使用比常規(guī)技術(shù)更穩(wěn)健且因此攻擊者復(fù)制起來要困難得多的質(zhì)詢類型產(chǎn)生強(qiáng)PUF。
本文中所揭示的實(shí)例可用于產(chǎn)生用于SRAM的PUF。實(shí)例SRAM具有組成存儲(chǔ)器存儲(chǔ)容量(例如256千字節(jié)(Kb)、512Kb、1兆字節(jié)(M)等)的多個(gè)位單元。實(shí)例SRAM位單元使用6個(gè)晶體管形成,例如金屬氧化物半導(dǎo)體(MOS)晶體管。因?yàn)镸OS晶體管稍微變化(例如,每一晶體管具有不同電和物理特性),所以一個(gè)位單元的讀存取時(shí)間將不同于另一位單元。多個(gè)位單元的讀存取時(shí)間的比較可用于創(chuàng)建PUF。
SRAM需要被供電以保持存儲(chǔ)在位單元中的數(shù)據(jù)。如果SRAM丟失電力,那么SRAM的位單元內(nèi)的數(shù)據(jù)將丟失。當(dāng)SRAM通電時(shí),SRAM的位單元將歸因于位單元的物理和/或電特性的差異穩(wěn)定到特定邏輯值。此些物理和/或電特性之間的差異歸因于集成電路制造工藝期間材料、時(shí)序和/或其它工藝參數(shù)的變化而跨越不同位單元和SRAM裝置是隨機(jī)的。歸因于此隨機(jī)性,SRAM的位單元的啟動(dòng)邏輯狀態(tài)用于創(chuàng)建常規(guī)PUF。因?yàn)槌R?guī)PUF產(chǎn)生技術(shù)僅使用一個(gè)質(zhì)詢來確定SRAM PUF(例如,初始化電源電壓),這產(chǎn)生一個(gè)響應(yīng)(例如所有位單元的啟動(dòng)邏輯狀態(tài)),所以常規(guī)SRAM PUF視為弱PUF。使用較多質(zhì)詢的用于確定PUF(例如,仲裁器PUF、環(huán)形振蕩器PUF等)的其它常規(guī)技術(shù)需要額外硬件,這些額外硬件要添加到集成電路的話較復(fù)雜且昂貴。
本文中所揭示的實(shí)例方法、設(shè)備和制品可用于以與常規(guī)弱SRAM PUF相比較穩(wěn)健的質(zhì)詢類型創(chuàng)建強(qiáng)SRAM PUF。因?yàn)榛赟RAM中的個(gè)別位單元的啟動(dòng)邏輯狀態(tài)確定常規(guī)SRAM PUF,所以僅存在一個(gè)質(zhì)詢(例如初始化電壓供應(yīng)器)來確定SRAM電路的響應(yīng)。此外,例如扁平化和探測集成電路(IC)等進(jìn)攻技術(shù)已經(jīng)成功地確定常規(guī)PUF來克隆所述IC。然而,本文中所揭示的實(shí)例使用個(gè)別位單元的讀存取時(shí)間來增加用于產(chǎn)生PUF的質(zhì)詢的數(shù)目和質(zhì)量。以此方式,本文中所揭示的實(shí)例可用于大大減少或防止未經(jīng)授權(quán)方(例如嘗試確定所提出的PUF的各方)扁平化和探測的情況。
為增加用于SRAM PUF的質(zhì)詢的數(shù)目和質(zhì)量,本文中所揭示的實(shí)例使用SRAM電路的位單元的讀存取時(shí)間。舉例來說,讀出放大器響應(yīng)于讀取電壓施加到位單元而發(fā)送位單元的所存儲(chǔ)邏輯所花費(fèi)的時(shí)間量取決于用于產(chǎn)生位單元的半導(dǎo)電材料的電和/或物理特性。當(dāng)提示時(shí)(例如讀存取時(shí)間)讀取位單元所花費(fèi)的持續(xù)時(shí)間在芯片之間是隨機(jī)的,但在個(gè)別芯片上可重復(fù)。每一位單元將具有不同讀存取時(shí)間。實(shí)例PUF可基于SRAM中兩個(gè)或兩個(gè)以上位單元的讀存取時(shí)間的比較來確定。計(jì)時(shí)器和/或計(jì)數(shù)器可用于測量位單元的讀存取時(shí)間。在本文中所揭示的實(shí)例中,一質(zhì)詢?yōu)榻o定所有位單元中設(shè)定的初始值的情況下兩個(gè)或兩個(gè)以上位單元的讀存取時(shí)間的比較。舉例來說,一個(gè)質(zhì)詢可為當(dāng)兩個(gè)位單元起始到‘1’時(shí)第一位單元和第二位單元的讀存取時(shí)間的比較。另外,不同質(zhì)詢可涉及相同兩個(gè)位單元或一對不同位單元,具有不同初始邏輯模式或不在測量的位單元的不同初始邏輯模式?;蛘?,兩個(gè)以上位單元的讀存取時(shí)間的比較可用作質(zhì)詢。因?yàn)槊恳毁|(zhì)詢是基于一個(gè)比較,所以本文中所揭示的實(shí)例歸因于大量的比較可能性而增加質(zhì)詢的數(shù)目。舉例來說,如果PUF是基于兩個(gè)位單元的讀存取時(shí)間的比較,那么一兆位(1Mb)SRAM電路中約2萬億相異質(zhì)詢是可能的。如果PUF是基于超過2個(gè)位單元的比較,那么可能質(zhì)詢的數(shù)目將更大。以此方式,本文中所揭示的實(shí)例使用多個(gè)質(zhì)詢以及唯一響應(yīng)來創(chuàng)建強(qiáng)PUF。
另外,本文中所揭示的實(shí)例通過使用位單元讀存取時(shí)間而使用比常規(guī)技術(shù)更復(fù)雜的質(zhì)詢。常規(guī)SRAM PUF基于位單元的啟動(dòng)值確定,此些常規(guī)SRAM PUF一直易受侵入者的攻擊,侵入者已成功地使用近紅外(NIR)光子發(fā)射來確定SRAM電路中的啟動(dòng)位單元值,因此確定對應(yīng)PUF。然而,NIR光子發(fā)射無法確定位單元的讀存取時(shí)間。因此,此些NIR光子發(fā)射技術(shù)將不能侵入地確定基于時(shí)序的PUF。進(jìn)攻SRAM PUF的其它方法包含扁平化和探測芯片以基于位單元的啟動(dòng)值讀出所存儲(chǔ)代碼。扁平化和探測電路將改變敏感時(shí)序信息,從而不能確定電路的PUF。
另外或替代地,本文中所揭示的實(shí)例可用于確定基于計(jì)數(shù)的PUF。在此些實(shí)例中,當(dāng)讀取電壓供應(yīng)到位單元時(shí),與SRAM電路相關(guān)聯(lián)的存儲(chǔ)器控制器可遞增計(jì)數(shù)器且輪詢與位單元相關(guān)聯(lián)的讀出放大器。存儲(chǔ)器控制器繼續(xù)輪詢讀出放大器且遞增計(jì)數(shù)器直至讀出放大器已完成感測位單元內(nèi)部的值為止。一旦讀出放大器接收位單元的所意圖邏輯值,存儲(chǔ)器控制器就記錄所述計(jì)數(shù)。所述計(jì)數(shù)可用于確定位單元的讀存取時(shí)間。
本文中所揭示的實(shí)例方法涉及將電壓施加到存儲(chǔ)器電路。在一些實(shí)例中,計(jì)時(shí)器確定電壓的施加與第一位單元的第一輸出之間的第一持續(xù)時(shí)間,所述第一輸出對應(yīng)于存儲(chǔ)在第一位單元中的第一值。在此些實(shí)例中,計(jì)時(shí)器進(jìn)一步確定電壓的施加與第二位單元的第二輸出之間的第二持續(xù)時(shí)間,所述第二輸出對應(yīng)于存儲(chǔ)在第二位單元中的第二值。在此些實(shí)例中,處理器基于第一持續(xù)時(shí)間與第二持續(xù)時(shí)間的比較確定一函數(shù),所述函數(shù)是建立包含存儲(chǔ)器陣列的電路的識(shí)別。
另一所揭示的實(shí)例方法涉及將電壓施加到存儲(chǔ)器陣列。在此些實(shí)例中,位單元確定器在第一時(shí)間測量來自存儲(chǔ)器陣列的位單元的第一輸出。在此些實(shí)例中,位單元確定器在比第一時(shí)間晚的第二時(shí)間進(jìn)一步測量來自位單元的第二輸出。在此些實(shí)例中,處理器基于第一輸出與第二輸出之間的差異確定一函數(shù),所述函數(shù)是表示包含存儲(chǔ)器陣列的電路的識(shí)別。
另一所揭示的實(shí)例方法涉及將第一電壓施加到存儲(chǔ)器陣列。在此些實(shí)例中,讀出放大器基于存儲(chǔ)器陣列的第一位單元的第一讀存取時(shí)間與存儲(chǔ)器陣列的第二位單元的第二讀存取時(shí)間的比較輸出第二電壓。在此些實(shí)例中,處理器基于所述輸出確定一函數(shù),所述函數(shù)是建立包含存儲(chǔ)器陣列的電路的識(shí)別。
圖1為實(shí)例產(chǎn)品中的實(shí)例SRAM芯片的制造和驗(yàn)證的過程的說明。圖1的說明包含實(shí)例晶片100、實(shí)例SRAM芯片102、實(shí)例PUF產(chǎn)生器104和實(shí)例網(wǎng)絡(luò)106,以及實(shí)例數(shù)據(jù)庫108、實(shí)例產(chǎn)品110、實(shí)例用戶112和實(shí)例驗(yàn)證主機(jī)114。
實(shí)例晶片100可由任何半導(dǎo)電材料(例如高純度硅)制成?;瘜W(xué)雜質(zhì)(例如,摻雜劑)引入到晶片100以創(chuàng)建與SRAM芯片102相關(guān)聯(lián)的電和/或物理特性。舉例來說,晶片100可經(jīng)摻雜以創(chuàng)建組成SRAM芯片102的存儲(chǔ)器位單元的晶體管。
實(shí)例SRAM芯片102由實(shí)例晶片100組裝。SRAM芯片102包含SRAM陣列和存儲(chǔ)器控制器,如圖2中進(jìn)一步描述。SRAM陣列包含存儲(chǔ)二進(jìn)制邏輯值(例如邏輯值‘1’或邏輯值‘0’)的位單元。存儲(chǔ)器控制器將邏輯值寫入到位單元,從位單元讀取邏輯值,跟蹤位單元故障,控制到位單元的信號,接收質(zhì)詢,且發(fā)射響應(yīng),如圖7中進(jìn)一步描述。歸因于制造過程期間的變化,每一SRAM芯片將含有唯一電和技術(shù)特性。本文中所揭示的實(shí)例使用SRAM芯片102的這些唯一特性來創(chuàng)建用于識(shí)別SRAM芯片102的PUF。
PUF產(chǎn)生過程期間,實(shí)例PUF產(chǎn)生器104可用于起始對SRAM芯片102的質(zhì)詢。實(shí)例PUF產(chǎn)生器104將指令提供到SRAM芯片102的存儲(chǔ)器控制器。所述指令包含待施加到SRAM陣列以開發(fā)PUF數(shù)據(jù)供稍后使用(例如驗(yàn)證、加密等)的質(zhì)詢。存在用于創(chuàng)建本文描述的質(zhì)詢以創(chuàng)建PUF數(shù)據(jù)的PUF參數(shù)的許多變化。因此,存在可施加的許多質(zhì)詢。PUF產(chǎn)生器104可在制造時(shí)將所有可能質(zhì)詢施加到SRAM芯片102?;蛘?,為節(jié)省存儲(chǔ)器,PUF產(chǎn)生器104可僅施加有限量的質(zhì)詢,且可按需要稍后施加較多質(zhì)詢。PUF產(chǎn)生器104可經(jīng)由有線連接將質(zhì)詢直接施加到SRAM芯片102,或可替代地經(jīng)由無線連接或網(wǎng)絡(luò)施加質(zhì)詢。
實(shí)例網(wǎng)絡(luò)106將指令、質(zhì)詢、響應(yīng)和其它數(shù)據(jù)傳送到圖1的系統(tǒng)中的各種裝置。實(shí)例網(wǎng)絡(luò)106可為局域網(wǎng)、廣域網(wǎng)(例如因特網(wǎng)、云等),或任何其它類型的通信網(wǎng)絡(luò)。網(wǎng)絡(luò)106允許實(shí)例數(shù)據(jù)庫108與實(shí)例PUF產(chǎn)生器104之間的通信。
實(shí)例數(shù)據(jù)庫108存儲(chǔ)與實(shí)例SRAM芯片102相關(guān)聯(lián)的PUF數(shù)據(jù)。實(shí)例數(shù)據(jù)庫108含有且組織來自各種SRAM芯片和/或產(chǎn)品的PUF數(shù)據(jù)。實(shí)例數(shù)據(jù)庫108可為外部數(shù)據(jù)庫設(shè)施、本地?cái)?shù)據(jù)庫、云,和/或能夠存儲(chǔ)數(shù)據(jù)的任何其它裝置。另外,實(shí)例數(shù)據(jù)庫108可跟蹤制造過程期間哪些質(zhì)詢施加到SRAM芯片102。以此方式,數(shù)據(jù)庫108意識(shí)到可施加到SRAM芯片102用于額外PUF數(shù)據(jù)的額外質(zhì)詢。另外,實(shí)例數(shù)據(jù)庫108可跟蹤驗(yàn)證過程期間哪些質(zhì)詢施加到SRAM芯片102。以此方式,數(shù)據(jù)庫108可與SRAM芯片102通信以施加額外質(zhì)詢來創(chuàng)建較多PUF數(shù)據(jù),使得驗(yàn)證主機(jī)114將不重復(fù)質(zhì)詢。
一旦制造實(shí)例SRAM芯片102,其就可放置在實(shí)例產(chǎn)品110上以由用戶112使用。圖2中,實(shí)例產(chǎn)品110為智能卡?;蛘?,實(shí)例產(chǎn)品110可為具有安全許可的密鑰卡、密鑰產(chǎn)生器、移動(dòng)電話、計(jì)算裝置,或含有SRAM芯片102的任何其它產(chǎn)品。通常,與SRAM芯片102相關(guān)聯(lián)的PUF充當(dāng)指紋(例如唯一識(shí)別符)來唯一地識(shí)別實(shí)例產(chǎn)品110,而無關(guān)于存儲(chǔ)在SRAM芯片102中的數(shù)據(jù)。使用PUF驗(yàn)證實(shí)例產(chǎn)品110允許具有敏感數(shù)據(jù)的產(chǎn)品的較安全使用。另外,PUF響應(yīng)可用于創(chuàng)建加密來保護(hù)實(shí)例產(chǎn)品110上或傳送到實(shí)例產(chǎn)品110/從實(shí)例產(chǎn)品110傳送的數(shù)據(jù)。
在驗(yàn)證過程期間,實(shí)例驗(yàn)證主機(jī)114通過比較來自SRAM芯片102和數(shù)據(jù)庫108的質(zhì)詢-響應(yīng)對而驗(yàn)證SRAM芯片102以及因此驗(yàn)證產(chǎn)品110。驗(yàn)證主機(jī)114可為能夠從SRAM芯片102讀取數(shù)據(jù)的任何裝置。在此實(shí)例中,驗(yàn)證主機(jī)114為智能卡讀取器。以此方式,驗(yàn)證主機(jī)114可接收存儲(chǔ)在產(chǎn)品110中的數(shù)據(jù)。然而,產(chǎn)品110可為由攻擊者克隆的無效產(chǎn)品。驗(yàn)證主機(jī)114通過基于SRAM芯片102的PUF數(shù)據(jù)驗(yàn)證產(chǎn)品110來檢驗(yàn)產(chǎn)品110為有效的。驗(yàn)證主機(jī)114將質(zhì)詢施加到SRAM芯片102,且將對質(zhì)詢的響應(yīng)與存儲(chǔ)在數(shù)據(jù)庫108中的質(zhì)詢響應(yīng)對比較?;诒容^,驗(yàn)證主機(jī)114確定SRAM芯片102是否有效。無效或克隆的產(chǎn)品無法產(chǎn)生對所有質(zhì)詢的正確響應(yīng)。因此,驗(yàn)證主機(jī)114防止使用無效產(chǎn)品。
在操作中,用實(shí)例晶片100的半導(dǎo)電材料創(chuàng)建實(shí)例SRAM芯片102。在制造SRAM芯片102之后,PUF的產(chǎn)生開始。實(shí)例PUF產(chǎn)生器104將一系列質(zhì)詢施加到SRAM芯片102。SRAM芯片102的存儲(chǔ)器控制器將質(zhì)詢施加到SRAM芯片102的SRAM陣列。SRAM芯片102將對質(zhì)詢的響應(yīng)發(fā)射到PUF產(chǎn)生器104。實(shí)例PUF產(chǎn)生器104將質(zhì)詢-響應(yīng)對(例如PUF數(shù)據(jù))經(jīng)由實(shí)例網(wǎng)絡(luò)106發(fā)射到實(shí)例數(shù)據(jù)庫108(例如以存儲(chǔ)供稍后驗(yàn)證)。在一些實(shí)例中,數(shù)據(jù)庫108可指示PUF產(chǎn)生器104施加數(shù)據(jù)庫108創(chuàng)建的質(zhì)詢。在一些實(shí)例中,SRAM芯片102的存儲(chǔ)器控制器可創(chuàng)建用于創(chuàng)建PUF數(shù)據(jù)的質(zhì)詢。在一些實(shí)例中,實(shí)例數(shù)據(jù)庫108和實(shí)例SRAM芯片102經(jīng)由網(wǎng)絡(luò)106直接傳送,而不需要PUF產(chǎn)生器104。在一些實(shí)例中,SRAM芯片102可將所有可能質(zhì)詢-響應(yīng)對組合發(fā)送到數(shù)據(jù)庫108(例如經(jīng)由數(shù)據(jù)庫108)以供SRAM芯片102的稍后驗(yàn)證?;蛘?,SRAM芯片102可將總質(zhì)詢-響應(yīng)對(例如PUF數(shù)據(jù))的一部分發(fā)送到數(shù)據(jù)庫108,且按需要將額外質(zhì)詢-響應(yīng)對(例如額外PUF數(shù)據(jù))發(fā)送到數(shù)據(jù)庫108。圖3和4中進(jìn)一步描述PUF的產(chǎn)生。
一旦已產(chǎn)生PUF,SRAM芯片102就放置在實(shí)例產(chǎn)品110上/內(nèi)嵌在實(shí)例產(chǎn)品110中以由實(shí)例用戶112使用。使用驗(yàn)證過程驗(yàn)證產(chǎn)品110以供使用。驗(yàn)證過程在驗(yàn)證主機(jī)114嘗試驗(yàn)證實(shí)例產(chǎn)品110時(shí)開始。驗(yàn)證主機(jī)114可經(jīng)由實(shí)例網(wǎng)絡(luò)106從實(shí)例數(shù)據(jù)庫108檢索質(zhì)詢-響應(yīng)對。驗(yàn)證主機(jī)114接著可使用來自質(zhì)詢-響應(yīng)對的一或多個(gè)質(zhì)詢來質(zhì)詢產(chǎn)品110上的SRAM芯片102。一旦SRAM芯片102施加所述質(zhì)詢,其就將響應(yīng)發(fā)射到驗(yàn)證主機(jī)114。在一些實(shí)例中,驗(yàn)證主機(jī)114使用來自質(zhì)詢-響應(yīng)對的許多質(zhì)詢來質(zhì)詢SRAM芯片102。以此方式,攻擊者較難隨機(jī)猜測正確響應(yīng)。驗(yàn)證主機(jī)114將來自SRAM芯片102的響應(yīng)與來自數(shù)據(jù)庫108的響應(yīng)比較。如果所述響應(yīng)匹配,那么驗(yàn)證主機(jī)114檢驗(yàn)產(chǎn)品110為有效的且可使用所述產(chǎn)品。如果所述響應(yīng)并不匹配,那么驗(yàn)證主機(jī)114確定產(chǎn)品110并不有效且可通知數(shù)據(jù)庫108、用戶112、SRAM芯片102的制造者和/或產(chǎn)品110的制造者所述偏差。另外,驗(yàn)證主機(jī)114可設(shè)定旗標(biāo)和/或停用SRAM芯片102,且/或警告用戶112已停用含有SRAM芯片102的產(chǎn)品。SRAM芯片102的驗(yàn)證過程在圖5和6中進(jìn)一步描述。
圖2為包含實(shí)例存儲(chǔ)器控制器202來控制實(shí)例SRAM陣列204的操作的圖1的實(shí)例SRAM芯片102。實(shí)例SRAM芯片102包含實(shí)例位單元206、208、210、212、214、實(shí)例讀出放大器216、218、實(shí)例電壓供應(yīng)線VDD 220、實(shí)例位線222、226、230、實(shí)例互補(bǔ)位線224、228、232,和實(shí)例字線234、236、238。實(shí)例存儲(chǔ)器控制器202控制發(fā)送到SRAM陣列204的電壓以將二進(jìn)制邏輯值讀取/寫入到SRAM陣列204的位單元中。SRAM芯片102的大小是基于與SRAM陣列204相關(guān)聯(lián)的位單元的數(shù)目(例如,1Kb、128Kb、1M等)。
實(shí)例位單元206、208、210、212、214存儲(chǔ)由存儲(chǔ)器控制器202寫入的二進(jìn)制邏輯值。位單元206、208、210、212、214具有形成鎖存電路的兩個(gè)交叉耦合的反相器。在一些實(shí)例中,位單元206、208、210、212、214含有6個(gè)金屬氧化物半導(dǎo)體場效應(yīng)晶體管(MOSFET)晶體管從而形成鎖存電路,但任何量的晶體管可用于創(chuàng)建位單元206、208、210、212、214。鎖存電路耦合在高軌與低電壓軌之間。鎖存器連接在高存儲(chǔ)節(jié)點(diǎn)與低存儲(chǔ)節(jié)點(diǎn)之間。存儲(chǔ)節(jié)點(diǎn)中的每一者經(jīng)由存取晶體管耦合到位線(例如,實(shí)例位線222、226、230)或互補(bǔ)位線(例如實(shí)例互補(bǔ)位線224、228、232),所述存取晶體管的柵極連接到字線(例如實(shí)例字線234、236、238)。在通過將低電壓施加到字線以允許位單元206、208、210、212、214保持其邏輯值而不再新來解除激活存取晶體管時(shí),使存儲(chǔ)節(jié)點(diǎn)絕緣。
實(shí)例讀出放大器216、218用于讀取存儲(chǔ)在SRAM陣列204的位單元中的邏輯值。讀出放大器216、218具有一系列晶體管,其經(jīng)配置以將連接位線(例如實(shí)例位線222、226、230)與連接互補(bǔ)位線(例如實(shí)例互補(bǔ)位線224、228、232)之間的電壓差分放大到正常邏輯電平。讀出放大器216、218基于電壓差分輸出與位單元的所存儲(chǔ)邏輯值相關(guān)聯(lián)的邏輯值。舉例來說,實(shí)例讀出放大器216可在位線BL1 222上的電壓高于互補(bǔ)位線BL1 224上的電壓時(shí)輸出邏輯值‘1’。
實(shí)例存儲(chǔ)器控制器202在實(shí)例電源電壓線VDD 220上輸出電源電壓。電源電壓將電力提供到所有位單元、位線、字線,且感測SRAM陣列204的放大器。在一些實(shí)例中,實(shí)例電源電壓線VDD 220可將第一電壓提供到位單元,且分別將第二、第三和第四電壓提供到位線、字線和讀出放大器?;蛘?,實(shí)例電源電壓線VDD 220可為將個(gè)別電源電壓供應(yīng)到個(gè)別位單元和讀出放大器的總線。
實(shí)例存儲(chǔ)器控制器202在實(shí)例位線222、226、230、實(shí)例互補(bǔ)位線224、228、232和字線234、236、238上輸出信號(例如電壓)。存儲(chǔ)器控制器202將各種信號施加到各種線以寫入/讀取存儲(chǔ)在位單元206、208、210、212、214中的邏輯值,如下文進(jìn)一步描述。
在實(shí)例位單元206的寫入操作期間(例如,以將邏輯值寫入/存儲(chǔ)到實(shí)例位單元206),實(shí)例存儲(chǔ)器控制器202基于哪些邏輯值待寫入而將信號施加到與位單元206相關(guān)聯(lián)的實(shí)例位線222和實(shí)例互補(bǔ)位線224。舉例來說,如果‘0’待寫入到(例如存儲(chǔ)在)位單元206中,那么存儲(chǔ)器控制器202將‘0’施加到位線222且將‘1’施加到互補(bǔ)位線224。存儲(chǔ)器控制器202將高電壓施加到字線234以將邏輯值(例如,‘0’)存儲(chǔ)在位單元206內(nèi)。
在實(shí)例位單元206的讀取操作期間,存儲(chǔ)器控制器202將經(jīng)預(yù)充電的電壓施加到實(shí)例位線222和實(shí)例互補(bǔ)位線224。存儲(chǔ)器控制器202隨后將讀取電壓施加到與位單元206相關(guān)聯(lián)的字線234。以此方式,實(shí)例位線222或?qū)嵗パa(bǔ)位線224取決于所存儲(chǔ)邏輯值(例如‘0’或‘1’)而放電。讀出放大器216將位線222與互補(bǔ)位線224之間的小電壓差放大到較大邏輯電平。讀出放大器216將位單元206的所存儲(chǔ)邏輯值輸出回到存儲(chǔ)器控制器202。
為使位單元206、208、210、212、214維持其邏輯值(例如‘0’或‘1’),必須在電源電壓線VDD 220上施加電源電壓到位單元206、208、210、212、214。如果并不施加電壓供應(yīng),那么所有位單元206、208、210、212、214將失去其邏輯值。然而,位單元206、208、210、212、214的讀存取時(shí)間(例如起始讀取操作之后輸出邏輯值的持續(xù)時(shí)間)將不同。位單元206、208、210、212、214的讀存取時(shí)間取決于位單元206、208、210、212、214的初始存儲(chǔ)的值(例如初始邏輯模式)和位單元206、208、210、212、214的物理和電特性。存儲(chǔ)器控制器202通過用預(yù)定邏輯值(例如初始邏輯模式)初始化位單元、讀取位單元的所存儲(chǔ)值,監(jiān)視位單元的讀存取時(shí)間,且比較位單元的讀存取時(shí)間來確定讀存取時(shí)間。
圖3為產(chǎn)生用于包含實(shí)例SRAM芯片102的實(shí)例產(chǎn)品110的PUF的過程的說明。圖3的說明包含圖1的實(shí)例SRAM芯片102、實(shí)例產(chǎn)品110、實(shí)例PUF產(chǎn)生器104、實(shí)例網(wǎng)絡(luò)106和實(shí)例數(shù)據(jù)庫108。圖3的說明進(jìn)一步包含圖2的實(shí)例存儲(chǔ)器控制器202和實(shí)例SRAM陣列204。圖3的說明進(jìn)一步包含實(shí)例質(zhì)詢Cij 302和實(shí)例響應(yīng)Rij 304。
圖3的實(shí)例PUF產(chǎn)生器104將使用質(zhì)詢Cij 302創(chuàng)建PUF數(shù)據(jù)的指令發(fā)射到實(shí)例數(shù)據(jù)庫108且發(fā)射到SRAM芯片102中的實(shí)例存儲(chǔ)器控制器202。所述指令指定用于影響SRAM陣列204的位單元的讀存取時(shí)間的PUF參數(shù)。舉例來說,所述指令可指示存儲(chǔ)器控制器202將SRAM陣列204的所有位單元初始化到‘0’。額外指令可包含設(shè)定電源電壓、指定讀取哪些位單元、何時(shí)讀取位單元、如何將測得的位單元的讀存取時(shí)間分級等等。一旦初始邏輯模式(例如哪些位單元存儲(chǔ)‘1’,以及哪些位單元存儲(chǔ)‘0’)寫入到位單元,就確定一或多個(gè)位單元的讀存取時(shí)間?;蛘?,所述指令可由存儲(chǔ)器控制器202、數(shù)據(jù)庫108起始,或從SRAM芯片102外部的任何其它源起始。存儲(chǔ)器控制器202基于本文中所描述的方法確定讀存取時(shí)間。
一旦所述指令由存儲(chǔ)器控制器202執(zhí)行,存儲(chǔ)器控制器202就產(chǎn)生響應(yīng)Rij 304(例如PUF數(shù)據(jù))且將響應(yīng)Rij 304發(fā)送到PUF產(chǎn)生器104。PUF產(chǎn)生器104將質(zhì)詢Cij 302和響應(yīng)Rij304經(jīng)由實(shí)例網(wǎng)絡(luò)106發(fā)射到實(shí)例數(shù)據(jù)庫108。數(shù)據(jù)庫108通過將響應(yīng)Rij 304與質(zhì)詢Cij 302相關(guān)聯(lián)來存儲(chǔ)PUF數(shù)據(jù)。PUF數(shù)據(jù)將用于稍后驗(yàn)證SRAM芯片305。數(shù)據(jù)庫320還存儲(chǔ)用于其它所制造SRAM芯片的PUF數(shù)據(jù)。在一些實(shí)例中,SRAM芯片102可以新質(zhì)詢集合重復(fù)所述過程以增加數(shù)據(jù)庫108中PUF數(shù)據(jù)的大小和復(fù)雜性。在一些實(shí)例中,SRAM芯片102可初始地將有限數(shù)目的質(zhì)詢響應(yīng)對發(fā)送到PUF產(chǎn)生器104以存儲(chǔ)在數(shù)據(jù)庫108中,且可按需要發(fā)送額外質(zhì)詢響應(yīng)對以擴(kuò)展PUF數(shù)據(jù)的大小(例如,當(dāng)由驗(yàn)證主機(jī)114發(fā)送的質(zhì)詢的數(shù)目已耗盡時(shí)、當(dāng)發(fā)送指令以創(chuàng)建較多PUF數(shù)據(jù)時(shí),等等)。
圖4展示產(chǎn)生用于實(shí)例SRAM芯片102的PUF的替代過程的說明。圖4的說明包含圖1的實(shí)例SRAM芯片102、實(shí)例產(chǎn)品110、實(shí)例PUF產(chǎn)生器104、實(shí)例網(wǎng)絡(luò)106和實(shí)例數(shù)據(jù)庫108。圖4的說明進(jìn)一步包含圖2的實(shí)例存儲(chǔ)器控制器202和實(shí)例SRAM陣列204。圖4的說明進(jìn)一步包含實(shí)例質(zhì)詢C0…CN-1 402、實(shí)例響應(yīng)R0…RN-1 404、實(shí)例密鑰產(chǎn)生器406、實(shí)例密鑰Ki 408。
圖4的實(shí)例PUF產(chǎn)生器104將使用質(zhì)詢C0…CN-1 402創(chuàng)建PUF數(shù)據(jù)的指令發(fā)射到實(shí)例數(shù)據(jù)庫108,且發(fā)射到SRAM芯片102中的實(shí)例存儲(chǔ)器控制器202。所述指令指定用于確定SRAM陣列204的位單元的讀存取時(shí)間的PUF參數(shù)。舉例來說,所述指令可指示存儲(chǔ)器控制器202將SRAM陣列204的所有位單元初始化到‘0’。額外指令可包含設(shè)定電源電壓、指定讀取哪些位單元、何時(shí)讀取位單元、如何將測得的位單元的讀存取時(shí)間分級等等。一旦初始邏輯模式(例如哪些位單元存儲(chǔ)‘1’,以及哪些位單元存儲(chǔ)‘0’)寫入到位單元,就確定一或多個(gè)位單元的讀存取時(shí)間?;蛘?,所述指令可由存儲(chǔ)器控制器202、數(shù)據(jù)庫108起始,或從SRAM芯片102外部的任何其它源起始。存儲(chǔ)器控制器202基于本文中所描述的方法確定讀存取時(shí)間。
一旦所述指令由存儲(chǔ)器控制器202執(zhí)行,存儲(chǔ)器控制器202就通過搜集關(guān)于響應(yīng)的數(shù)據(jù)產(chǎn)生PUF數(shù)據(jù),且將PUF數(shù)據(jù)發(fā)送到實(shí)例密鑰產(chǎn)生器406。密鑰產(chǎn)生器406基于PUF數(shù)據(jù)創(chuàng)建一或多個(gè)唯一密鑰Ki 408。密鑰Ki 408將用于稍后使用對稱密鑰或公共密鑰密碼術(shù)技術(shù)驗(yàn)證SRAM芯片102。密鑰Ki 408安全地發(fā)送到PUF產(chǎn)生器104。PUF產(chǎn)生器104經(jīng)由實(shí)例網(wǎng)絡(luò)106將Ki 408發(fā)射到實(shí)例數(shù)據(jù)庫108以供存儲(chǔ)。數(shù)據(jù)庫108還存儲(chǔ)用于其它所制造SRAM芯片的密鑰。SRAM芯片102可基于不同質(zhì)詢以新的質(zhì)詢集合重復(fù)所述過程以產(chǎn)生多個(gè)密鑰。在一些實(shí)例中,SRAM芯片102可初始地將有限數(shù)目的密鑰發(fā)送到PUF產(chǎn)生器104以存儲(chǔ)在數(shù)據(jù)庫108中,且可按需要發(fā)送額外密鑰以擴(kuò)展用于SRAM芯片102的密鑰的數(shù)目(例如,當(dāng)由驗(yàn)證主機(jī)114使用的密鑰的數(shù)目已耗盡時(shí)、當(dāng)發(fā)送指令以創(chuàng)建更多密鑰時(shí),等等)。
圖5為含有實(shí)例SRAM芯片102的實(shí)例產(chǎn)品110的實(shí)例驗(yàn)證。所述說明包含圖1的實(shí)例SRAM芯片102、實(shí)例產(chǎn)品110、實(shí)例驗(yàn)證主機(jī)114、實(shí)例網(wǎng)絡(luò)106和實(shí)例數(shù)據(jù)庫108。所述說明進(jìn)一步包含實(shí)例質(zhì)詢Cij 502、實(shí)例響應(yīng)Rij 504、實(shí)例ok/停用信號506和實(shí)例數(shù)據(jù)庫響應(yīng)dRij508。
當(dāng)實(shí)例產(chǎn)品110的用戶嘗試使用產(chǎn)品110時(shí),實(shí)例驗(yàn)證主機(jī)114驗(yàn)證與產(chǎn)品110相關(guān)聯(lián)的實(shí)例SRAM芯片102。實(shí)例驗(yàn)證主機(jī)114通過將包含實(shí)例質(zhì)詢Cij 502的指令發(fā)送到SRAM芯片102而驗(yàn)證產(chǎn)品110。實(shí)例驗(yàn)證主機(jī)114還將實(shí)例質(zhì)詢Cij 502以及產(chǎn)品110識(shí)別信息經(jīng)由實(shí)例網(wǎng)絡(luò)106發(fā)送到實(shí)例數(shù)據(jù)庫108。響應(yīng)于從驗(yàn)證主機(jī)114接收質(zhì)詢Cij 502和識(shí)別信息,實(shí)例數(shù)據(jù)庫108發(fā)送與用于SRAM芯片102的質(zhì)詢Cij 502相關(guān)聯(lián)的所存儲(chǔ)數(shù)據(jù)庫響應(yīng)dRij 508。當(dāng)SRAM芯片102從驗(yàn)證主機(jī)114接收質(zhì)詢Cij 502時(shí),SRAM芯片102的存儲(chǔ)器控制器202將質(zhì)詢施加到SRAM陣列204以確定實(shí)例響應(yīng)Rij 504且將其發(fā)射到驗(yàn)證主機(jī)114?;蛘?,驗(yàn)證主機(jī)114可首先從數(shù)據(jù)庫108檢索PUF數(shù)據(jù),隨后將質(zhì)詢Cij 502施加到SRAM芯片102。以此方式,驗(yàn)證主機(jī)114可使用來自數(shù)據(jù)庫108中的PUF數(shù)據(jù)的所存儲(chǔ)質(zhì)詢-響應(yīng)對來測試SRAM芯片102(例如,當(dāng)數(shù)據(jù)庫108含有有限數(shù)目的質(zhì)詢-響應(yīng)對時(shí))。
響應(yīng)于經(jīng)由網(wǎng)絡(luò)106接收到實(shí)例響應(yīng)Rij 504和實(shí)例數(shù)據(jù)庫響應(yīng)dRij 508,實(shí)例驗(yàn)證主機(jī)114比較響應(yīng)Rij 504和數(shù)據(jù)庫響應(yīng)dRij 508。如果從實(shí)例SRAM芯片102獲取的PUF數(shù)據(jù)(例如質(zhì)詢-響應(yīng)對)與來自數(shù)據(jù)庫108的PUF數(shù)據(jù)匹配,那么產(chǎn)品110被經(jīng)過驗(yàn)證。一旦經(jīng)過驗(yàn)證,驗(yàn)證主機(jī)114就將實(shí)例‘OK’(例如批準(zhǔn))信號506發(fā)射到產(chǎn)品110且可利用產(chǎn)品110。然而,如果來自兩個(gè)PUF的數(shù)據(jù)并不匹配,那么實(shí)例驗(yàn)證主機(jī)114將停用信號506發(fā)送到SRAM芯片102以解除激活SRAM芯片102。另外,驗(yàn)證主機(jī)114可經(jīng)由有線或無線連接聯(lián)系產(chǎn)品110的用戶(例如圖1的實(shí)例用戶112)、數(shù)據(jù)庫108和/或產(chǎn)品110和/或SRAM芯片102的制造商,以指示產(chǎn)品110已停用?;蛘撸瑢?shí)例驗(yàn)證主機(jī)114可將消息發(fā)送到另一服務(wù)器和/或數(shù)據(jù)庫以指示SRAM芯片102的PUF與存儲(chǔ)在實(shí)例數(shù)據(jù)庫108中的PUF之間的偏差?;蛘撸琒RAM芯片102可將信號發(fā)送到用戶以指示SRAM芯片102的PUF與存儲(chǔ)在數(shù)據(jù)庫108中的PUF之間的偏差。
圖6為含有實(shí)例SRAM芯片102的實(shí)例產(chǎn)品110的實(shí)例驗(yàn)證。所述說明包含圖1的實(shí)例SRAM芯片102、實(shí)例產(chǎn)品110、實(shí)例驗(yàn)證主機(jī)114、實(shí)例網(wǎng)絡(luò)106和實(shí)例數(shù)據(jù)庫108。所述說明進(jìn)一步包含實(shí)例質(zhì)詢C0…CN-1 602、實(shí)例HMAC 604、實(shí)例ok/停用信號606和實(shí)例數(shù)據(jù)庫密鑰dKi608。
當(dāng)實(shí)例產(chǎn)品110的用戶嘗試使用產(chǎn)品110時(shí),實(shí)例驗(yàn)證主機(jī)114驗(yàn)證與產(chǎn)品110相關(guān)聯(lián)的實(shí)例SRAM芯片102。實(shí)例驗(yàn)證主機(jī)114通過將包含實(shí)例質(zhì)詢C0…CN-1 602的指令發(fā)送到SRAM芯片102而驗(yàn)證產(chǎn)品110。實(shí)例驗(yàn)證主機(jī)114還經(jīng)由實(shí)例網(wǎng)絡(luò)106將實(shí)例質(zhì)詢C0…CN-1602以及產(chǎn)品110識(shí)別信息發(fā)送到實(shí)例數(shù)據(jù)庫108。響應(yīng)于從驗(yàn)證主機(jī)114接收到實(shí)例質(zhì)詢C0…CN-1 602和識(shí)別信息,實(shí)例數(shù)據(jù)庫108發(fā)送用于SRAM芯片102的實(shí)例所存儲(chǔ)數(shù)據(jù)庫密鑰dKi 608。當(dāng)SRAM芯片102從驗(yàn)證主機(jī)114接收到質(zhì)詢時(shí),SRAM芯片102中的存儲(chǔ)器控制器202將質(zhì)詢C0…CN-1 602施加到SRAM陣列204以確定對應(yīng)密鑰。SRAM芯片102使用此密鑰計(jì)算待發(fā)射到驗(yàn)證主機(jī)114的實(shí)例HMAC 604。或者,驗(yàn)證主機(jī)114可首先從數(shù)據(jù)庫108檢索質(zhì)詢C0…CN-1 602,隨后將質(zhì)詢C0…CN-1 602施加到SRAM芯片102。以此方式,驗(yàn)證主機(jī)114可使用來自數(shù)據(jù)庫108中的PUF數(shù)據(jù)的所存儲(chǔ)質(zhì)詢-響應(yīng)對來測試SRAM芯片102(例如,當(dāng)數(shù)據(jù)庫108含有有限數(shù)目的質(zhì)詢-響應(yīng)對時(shí))。
響應(yīng)于接收實(shí)例HMAC 604,實(shí)例驗(yàn)證主機(jī)114使用來自網(wǎng)絡(luò)106的數(shù)據(jù)庫密鑰dKi608計(jì)算對應(yīng)dHMACi。驗(yàn)證主機(jī)114隨后將芯片的HMAC 604與其基于來自網(wǎng)絡(luò)106的數(shù)據(jù)庫密鑰dKi 608計(jì)算的dHMACi比較。如果從實(shí)例SRAM芯片102獲取的HMAC 604與基于來自數(shù)據(jù)庫108的dKi 608計(jì)算的dHMACi匹配,那么產(chǎn)品110經(jīng)驗(yàn)證,將‘OK’(例如批準(zhǔn))信號606發(fā)送到產(chǎn)品110,且可利用產(chǎn)品110。然而,如果兩個(gè)HMAC并不匹配,那么實(shí)例驗(yàn)證主機(jī)114將停用信號606發(fā)送到SRAM芯片102以解除激活SRAM芯片102。另外,驗(yàn)證主機(jī)114可經(jīng)由有線或無線連接聯(lián)系產(chǎn)品110的用戶(例如圖1的實(shí)例用戶112)、數(shù)據(jù)庫108和/或產(chǎn)品110和/或SRAM芯片102的制造商,以指示產(chǎn)品110已停用?;蛘?,實(shí)例驗(yàn)證主機(jī)114可將消息發(fā)送到另一服務(wù)器和/或數(shù)據(jù)庫以指示SRAM芯片102的PUF與存儲(chǔ)在實(shí)例數(shù)據(jù)庫108中的PUF之間的偏差?;蛘撸琒RAM芯片102可將信號發(fā)送到用戶以指示SRAM芯片102的PUF與存儲(chǔ)在數(shù)據(jù)庫108中的PUF之間的偏差。
圖7為本文中所揭示的用以創(chuàng)建PUF和/或驗(yàn)證含有SRAM的芯片的圖2的實(shí)例存儲(chǔ)器控制器202的實(shí)例實(shí)施方案的框圖。雖然結(jié)合實(shí)例SRAM陣列204描述圖7的實(shí)例存儲(chǔ)器控制器202,但存儲(chǔ)器控制器202可用于控制任何存儲(chǔ)器陣列。實(shí)例存儲(chǔ)器控制器202經(jīng)實(shí)施以控制實(shí)例產(chǎn)品110和/或其中使用SRAM的任何裝置中的實(shí)例SRAM陣列204。
圖7的存儲(chǔ)器控制器202包含實(shí)例處理器700、實(shí)例接收器702、實(shí)例位單元確定器704、實(shí)例電壓源706、實(shí)例計(jì)時(shí)器708、實(shí)例時(shí)間比較器710和實(shí)例發(fā)射器712。處理器700接收質(zhì)詢,執(zhí)行針對存儲(chǔ)器控制器202的其余部分的指令,處理數(shù)據(jù),且將響應(yīng)發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或驗(yàn)證主機(jī)114。
實(shí)例接收器702經(jīng)由有線或無線連接接收來自外部裝置的數(shù)據(jù),且將所接收的PUF數(shù)據(jù)發(fā)送到處理器700以供進(jìn)一步處理。舉例來說,接收器702從實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114接收質(zhì)詢,且將PUF數(shù)據(jù)發(fā)送到處理器700以供進(jìn)一步處理。
實(shí)例位單元確定器704確定哪些字線和位線與位單元相關(guān)聯(lián)。舉例來說,處理器700可指示位單元確定器704從位單元讀取特定邏輯值。以此方式,實(shí)例位單元確定器704確定哪些位線和哪些字線與位單元相關(guān)聯(lián)。實(shí)例位單元確定器704經(jīng)由實(shí)例電壓源706將信號施加到適當(dāng)字線和位線以讀取存儲(chǔ)在位單元中的邏輯值。實(shí)例位單元確定器704從實(shí)例計(jì)時(shí)器708接收所讀取數(shù)據(jù)(包含讀存取時(shí)間數(shù)據(jù)),且將所讀取數(shù)據(jù)發(fā)送到處理器700以供進(jìn)一步處理。另外,實(shí)例位單元確定器704可將邏輯值寫入到SRAM陣列204的位單元。以此方式,實(shí)例位單元確定器704將信號施加到適當(dāng)字線和位線以將初始邏輯模式寫入到位單元中。
實(shí)例電壓源706將電壓施加到SRAM陣列204的各種組件。在一些實(shí)例中,實(shí)例電壓源706為能夠輸出一或多個(gè)電壓電平的電壓調(diào)節(jié)器。在一些實(shí)例中,實(shí)例電壓源706為可通過使二極管連接的晶體管能夠與電壓供應(yīng)器串聯(lián)而降低的電壓源。或者,電壓源706可為能夠輸出一或多個(gè)電壓電平的任何電路。實(shí)例電壓源706將電壓施加到SRAM陣列204的位線、字線和電源電壓線以將邏輯值讀取和/或?qū)懭氲絊RAM陣列204的位單元中。在一些實(shí)例中,實(shí)例電壓源706控制信號以啟用SRAM陣列的讀出放大器,如圖11中進(jìn)一步描述。
實(shí)例計(jì)時(shí)器708記錄和跟蹤SRAM陣列204的位單元的讀存取時(shí)間。計(jì)時(shí)器708可使用硬件、軟件和/或固件實(shí)施。實(shí)例計(jì)時(shí)器708將所記錄時(shí)間經(jīng)由位單元確定器704傳送到實(shí)例處理器700以供進(jìn)一步處理。
實(shí)例時(shí)間比較器710比較位單元的讀存取時(shí)間以確定讀存取時(shí)間的次序。實(shí)例時(shí)間比較器710可比較兩個(gè)或兩個(gè)以上位的讀存取時(shí)間。在一些實(shí)例中,實(shí)例時(shí)間比較器710確定在給定位單元的群組的讀存取時(shí)間的情況下哪一位單元最快。或者,實(shí)例時(shí)間比較器710確定位單元的讀存取時(shí)間的次序。
實(shí)例發(fā)射器712接收來自處理器700的數(shù)據(jù)且經(jīng)由有線或無線連接將PUF數(shù)據(jù)發(fā)射到外部裝置。舉例來說,發(fā)射器712將來自存儲(chǔ)器控制器202的響應(yīng)和識(shí)別數(shù)據(jù)發(fā)射到圖1的實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108。
在操作中,圖7的實(shí)例接收器702經(jīng)由有線或無線通信接收來自實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114的數(shù)據(jù)。處理器700接收和處理來自接收器702的數(shù)據(jù)。所述數(shù)據(jù)可含有包含待發(fā)送到處理器700的質(zhì)詢的指令。所述指令可包含PUF參數(shù),包含哪些位單元的讀存取時(shí)間待監(jiān)視、所述質(zhì)詢的初始參數(shù),和待發(fā)送回到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114的響應(yīng)的類型。舉例來說,所述質(zhì)詢可為SRAM電路中的五個(gè)特定位單元的讀存取時(shí)間的次序,同時(shí)SRAM電路的所有位單元的初始邏輯模式為‘1’。
在實(shí)例處理器700將質(zhì)詢施加到圖1的SRAM陣列204之前,處理器700基于接收器702接收的數(shù)據(jù)通過將與初始邏輯值相關(guān)聯(lián)的值寫入到SRAM陣列204的位單元來施加初始參數(shù)。處理器700將初始化數(shù)據(jù)發(fā)送到實(shí)例位單元確定器704。具備初始化數(shù)據(jù)的位單元確定器704確定哪些位線和字線與待寫入的位單元相關(guān)聯(lián)。位單元確定器704還確定哪一值寫入到位單元。位單元確定器704將位單元信息發(fā)送到實(shí)例電壓源706。電壓源706將適當(dāng)電壓施加到與位單元相關(guān)聯(lián)的字線和位線以寫入用于位單元的初始邏輯模式。位單元確定器704重復(fù)此過程直至所有初始位單元值已經(jīng)寫入到位單元為止。
一旦初始邏輯模式已施加到實(shí)例SRAM陣列204的位單元,圖7的實(shí)例處理器700就指示實(shí)例位單元確定器704取決于來自從實(shí)例接收器702接收的數(shù)據(jù)的PUF參數(shù)讀取一或多個(gè)位單元的所存儲(chǔ)值。具備質(zhì)詢數(shù)據(jù)的位單元確定器704確定哪一(些)位線和字線與待讀取的位單元相關(guān)聯(lián)。位單元確定器704將關(guān)于讀取操作的指令發(fā)送到電壓源706。電壓源706將適當(dāng)電壓施加到與所述位單元相關(guān)聯(lián)的字線和位線以讀取存儲(chǔ)在位單元中的值。
當(dāng)電壓源706發(fā)送讀取SRAM陣列204的位單元的信號時(shí)起始實(shí)例計(jì)時(shí)器708。實(shí)例計(jì)時(shí)器708記錄位單元的讀存取時(shí)間(例如,在讀取信號發(fā)送到位單元之后讀取位單元的值所花費(fèi)的時(shí)間)。一旦計(jì)時(shí)器708接收來自與位單元相關(guān)聯(lián)的讀出放大器的輸出,計(jì)時(shí)器708就記錄從所讀取信號由位單元確定器204起始時(shí)到位單元確定器704確定已讀取位單元時(shí)的持續(xù)時(shí)間。如果正監(jiān)視多個(gè)位單元的讀存取時(shí)間,那么計(jì)時(shí)器708將繼續(xù)監(jiān)視讀存取時(shí)間直至已讀取待讀取的每一位單元為止?;蛘撸?jì)時(shí)器708可包含時(shí)間到數(shù)字轉(zhuǎn)換器。以此方式,計(jì)時(shí)器708可將讀存取時(shí)間轉(zhuǎn)換為數(shù)字(例如二進(jìn)制)輸出。
一旦圖7的實(shí)例處理器700經(jīng)由位單元確定器704從實(shí)例計(jì)時(shí)器708接收所監(jiān)視位單元的所記錄讀存取時(shí)間,處理器700就將關(guān)于位單元的讀存取時(shí)間的數(shù)據(jù)發(fā)送到實(shí)例時(shí)間比較器710。實(shí)例時(shí)間比較器710比較所監(jiān)視位單元的讀存取時(shí)間以創(chuàng)建對應(yīng)于由質(zhì)詢數(shù)據(jù)設(shè)定的PUF參數(shù)的響應(yīng)。處理器700將PUF參數(shù)發(fā)送到時(shí)間比較器710以創(chuàng)建適當(dāng)響應(yīng)。時(shí)間比較器710可通過確定哪些所監(jiān)視的位單元最快/最慢、位單元的讀存取時(shí)間的次序,或位單元的讀存取時(shí)間的任何其它比較來創(chuàng)建響應(yīng)。時(shí)間比較器710將所述響應(yīng)發(fā)送到處理器700。處理器700匯總所述數(shù)據(jù)以創(chuàng)建PUF數(shù)據(jù)且將PUF數(shù)據(jù)中繼到實(shí)例發(fā)射器712。實(shí)例發(fā)射器712經(jīng)由有線或無線通信將響應(yīng)發(fā)射回到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114?;蛘?,實(shí)例處理器700可使用PUF數(shù)據(jù)創(chuàng)建密鑰。以此方式,加密散列函數(shù)可施加到所述密鑰從而創(chuàng)建HMAC。發(fā)射器712將HMAC發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114。
圖8為用以個(gè)別地確定每一位單元的讀存取時(shí)間且比較位單元的讀存取時(shí)間以創(chuàng)建PUF的實(shí)例SRAM電路800。實(shí)例SRAM電路800包括圖2的實(shí)例存儲(chǔ)器控制器202、實(shí)例電源電壓線VDD 220、實(shí)例位線BL1 222、實(shí)例互補(bǔ)位線BL1 224和實(shí)例字線WL2 236。實(shí)例SRAM電路800進(jìn)一步包括圖7的實(shí)例電壓源706和實(shí)例計(jì)時(shí)器708。實(shí)例SRAM電路800進(jìn)一步包括實(shí)例輸入線802、804、實(shí)例讀出放大器806、實(shí)例輸出線808、810、實(shí)例異或(XOR)門812和實(shí)例XOR輸出814。
實(shí)例輸入線802、804將實(shí)例位線BL1 222和實(shí)例互補(bǔ)位線BL1 224的電壓饋送到實(shí)例輸入線802、804中。輸入線802、804耦合到實(shí)例讀出放大器806的輸入。實(shí)例讀出放大器806將輸入電壓放大到正常邏輯電壓。實(shí)例讀出放大器812觸發(fā)之后,實(shí)例輸出線808、810提供輸入電壓的數(shù)字表示。實(shí)例XOR門812接收兩個(gè)輸入以創(chuàng)建輸入的XOR輸出814。在此實(shí)例中,兩個(gè)輸入是輸出線808、810。
在一些實(shí)例中,當(dāng)質(zhì)詢施加到SRAM電路800時(shí),位單元首先初始化到如質(zhì)詢的PUF參數(shù)設(shè)定的初始邏輯模式。另外,施加到電源電壓線VDD 220的電壓可降低到例如保持模式電壓。將電源電壓降低到保持模式電壓減緩SRAM電路的位單元的讀存取時(shí)間。減緩位單元的讀存取時(shí)間允許位單元的讀存取時(shí)間的更容易的比較。
在質(zhì)詢(例如讀存取時(shí)間測量)開始之前,存儲(chǔ)器控制器將圖8的實(shí)例位線BL1 222和互補(bǔ)位線BL1 224預(yù)充電到高電壓(例如,等于電源電壓VDD 220或電源電壓VDD 220的一半)。存儲(chǔ)器控制器還使讀出放大器806復(fù)位。以此方式,輸出線808、810兩者將輸出邏輯值‘1’。因?yàn)檩敵鼍€808、810兩者將具有邏輯值‘1’,所以實(shí)例XOR輸出814(例如來自XOR門812)將為邏輯值‘0’,從而指示尚未讀取實(shí)例位單元212。
為起始讀取操作,存儲(chǔ)器控制器202將高電壓施加到圖8的實(shí)例字線WL2 236。通過將高電壓施加到實(shí)例字線WL2 236以監(jiān)視位單元212的讀存取時(shí)間來起始實(shí)例計(jì)時(shí)器708。如實(shí)例SRAM電路800中顯示,如果邏輯值‘1’存儲(chǔ)在位單元212中,那么實(shí)例經(jīng)預(yù)充電的互補(bǔ)位線BL1 224將由位單元212放電。相比而言,位線BL1 222并不放電保持接近其經(jīng)預(yù)充電的電壓。以此方式,輸入線802與經(jīng)放電輸入線B 804(例如邏輯值‘0’)相比將具有較大電壓(例如邏輯值‘1’)。實(shí)例讀出放大器806將感測輸入線802、804之間的差異。在讀出放大器806確定輸入線802或輸入線B 804是否處于較高電壓之后,其取決于輸入的極性將實(shí)例輸出線808或?qū)嵗敵鼍€B 810設(shè)定到邏輯值‘0’。輸出線808和輸出線B 810發(fā)送到實(shí)例XOR門812。在圖8的實(shí)例中,因?yàn)檩敵鼍€808為邏輯值‘1’且輸出線B 810切換為‘0’,所以XOR輸出814切換到邏輯值‘1’,其發(fā)送到實(shí)例計(jì)時(shí)器708。從邏輯值‘0’切換到邏輯值‘1’的XOR輸出814指示已讀取位單元212。計(jì)時(shí)器708使所述切換與位單元212的讀存取時(shí)間相關(guān)聯(lián)。另外,計(jì)時(shí)器708可使用時(shí)間到數(shù)字轉(zhuǎn)換器將讀存取時(shí)間轉(zhuǎn)換為數(shù)字值。計(jì)時(shí)器708將讀存取時(shí)間發(fā)送到實(shí)例處理器700以供進(jìn)一步處理。SRAM電路800可以新位單元重復(fù)此過程以接收SRAM電路800的多個(gè)位單元的讀存取時(shí)間?;蛘撸琒RAM電路800可以相同PUF參數(shù)重復(fù)所述過程以檢驗(yàn)先前PUF響應(yīng)。
圖9為顯示圖8的實(shí)例SRAM電路800的實(shí)例讀存取時(shí)間的實(shí)例時(shí)序的曲線。所述曲線顯示讀取操作期間的電壓序列。所述曲線包括圖8的實(shí)例字線WL2 236、實(shí)例位線BL1 222、實(shí)例互補(bǔ)位線BL1 224、實(shí)例輸出線808、810和實(shí)例XOR輸出814。
如上文所解釋,在時(shí)間1之前,位線222、224預(yù)充電到高電壓。來自讀出放大器806的輸出線808、810也復(fù)位到高電壓。因?yàn)檩敵鼍€808、810兩者為高,所以XOR輸出814為低。在時(shí)間1處,字線WL2 236經(jīng)啟用以讀取位單元。一旦字線WL2 236經(jīng)啟用,位線BL1 222或互補(bǔ)位線BL1 224就將開始取決于位單元212存儲(chǔ)邏輯值‘0’還是邏輯值‘1’而放電。一旦與所存儲(chǔ)值相關(guān)聯(lián)的位線放電(例如如果位單元212存儲(chǔ)邏輯值‘1’,那么互補(bǔ)位線BL1 224放電),讀出放大器806就將與所存儲(chǔ)的經(jīng)放電位線(例如互補(bǔ)位線BL1 224)相關(guān)聯(lián)的輸出線B 810從邏輯值‘1’改變到邏輯值‘0’,同時(shí)輸出線808(例如與位線224相關(guān)聯(lián))保持在‘1’。在時(shí)間2處,實(shí)例XOR門812將XOR輸出814從‘0’調(diào)整到‘1’以指示輸出線808、810的差異。一旦XOR輸出814變?yōu)椤?’,實(shí)例計(jì)時(shí)器708就記錄時(shí)間1到時(shí)間2的持續(xù)時(shí)間。所述持續(xù)時(shí)間指示位單元212的讀存取時(shí)間。
圖10為本文中所揭示的用以創(chuàng)建實(shí)例PUF和/或驗(yàn)證SRAM芯片的圖1的實(shí)例存儲(chǔ)器控制器202的實(shí)例實(shí)施方案的框圖。雖然圖10的實(shí)例存儲(chǔ)器控制器202結(jié)合圖2的SRAM芯片102描述,但存儲(chǔ)器控制器202可用于控制任何存儲(chǔ)器陣列。實(shí)例存儲(chǔ)器控制器202經(jīng)實(shí)施以控制產(chǎn)品(例如實(shí)例產(chǎn)品110)和/或其中使用SRAM的任何裝置中的SRAM芯片(例如實(shí)例SRAM芯片102)。
圖10的存儲(chǔ)器控制器202包含實(shí)例處理器1000、實(shí)例接收器1002、實(shí)例位單元確定器1004、實(shí)例電壓源1006、實(shí)例計(jì)數(shù)器1008、實(shí)例計(jì)數(shù)比較器1010和實(shí)例發(fā)射器1012。處理器1000接收質(zhì)詢,執(zhí)行到存儲(chǔ)器控制器202的其余部分的指令,處理數(shù)據(jù),且將響應(yīng)發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或驗(yàn)證主機(jī)114。
實(shí)例接收器1002經(jīng)由有線或無線連接接收來自外部裝置的數(shù)據(jù),且將所接收的PUF數(shù)據(jù)發(fā)送到處理器1000以供進(jìn)一步處理。舉例來說,接收器1002從實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114接收質(zhì)詢,且將PUF數(shù)據(jù)發(fā)送到處理器1000以供進(jìn)一步處理。
實(shí)例位單元確定器1004確定哪些字線和位線與位單元相關(guān)聯(lián)。舉例來說,處理器1000可指示位單元確定器1004從位單元讀取特定邏輯值。以此方式,實(shí)例位單元確定器1004確定哪一位線和哪一字線與位單元相關(guān)聯(lián)。實(shí)例位單元確定器1004經(jīng)由實(shí)例電壓源1006將信號施加到適當(dāng)字線和位線以讀取/寫入存儲(chǔ)在位單元中的邏輯值。實(shí)例位單元確定器1004經(jīng)由實(shí)例電壓源1006控制讀出放大器啟用線,如圖13-15中進(jìn)一步描述。另外,實(shí)例位單元確定器1004可將邏輯值寫入到SRAM陣列204的位單元。以此方式,實(shí)例位單元確定器1004將信號施加到適當(dāng)字線和位線以將初始邏輯模式寫入到位單元中。
實(shí)例電壓源1006將電壓施加到SRAM陣列204的各種組件。在一些實(shí)例中,實(shí)例電壓源706為能夠輸出一或多個(gè)電壓電平的電壓調(diào)節(jié)器。在一些實(shí)例中,實(shí)例電壓源706為可通過使二極管連接的晶體管能夠與電壓供應(yīng)器串聯(lián)而降低的電壓源?;蛘?,電壓源706可為能夠輸出一或多個(gè)電壓電平的任何電路。實(shí)例電壓源1006將電壓施加到SRAM陣列204的位線、字線和電源電壓線以將邏輯值讀取和/或?qū)懭氲絊RAM陣列204的位單元中。在一些實(shí)例中,實(shí)例電壓源1006控制信號以啟用SRAM陣列的讀出放大器,如圖13中進(jìn)一步描述。
實(shí)例計(jì)數(shù)器1008記錄和跟蹤讀取存儲(chǔ)在SRAM陣列204的位單元中的邏輯值所需的感測啟用的數(shù)目。計(jì)數(shù)器1008可使用硬件、軟件和/或固件實(shí)施。實(shí)例計(jì)數(shù)器1008經(jīng)由位單元確定器1004將感測啟用的數(shù)目傳送到實(shí)例處理器1000以供進(jìn)一步處理。
實(shí)例計(jì)數(shù)比較器1010比較位單元的讀存取時(shí)間以便確定讀存取時(shí)間的次序。實(shí)例計(jì)數(shù)比較器1010可比較兩個(gè)或兩個(gè)以上位的讀存取時(shí)間。在一些實(shí)例中,實(shí)例計(jì)數(shù)比較器1010確定在給定位單元的群組的讀存取時(shí)間的情況下哪一位單元最快?;蛘?,實(shí)例計(jì)數(shù)比較器1010確定位單元的讀存取時(shí)間的次序。
實(shí)例發(fā)射器1012接收來自處理器1000的數(shù)據(jù)且經(jīng)由有線或無線連接將PUF數(shù)據(jù)發(fā)射到外部裝置。舉例來說,發(fā)射器1012將來自存儲(chǔ)器控制器202的響應(yīng)和識(shí)別數(shù)據(jù)發(fā)射到圖1的實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108。
在操作中,圖10的實(shí)例接收器1002經(jīng)由有線或無線通信從實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114接收數(shù)據(jù)。處理器1000接收和處理來自接收器1002的數(shù)據(jù)。所述數(shù)據(jù)可含有包含待發(fā)送到處理器1000的質(zhì)詢的指令。所述指令含有用于所述質(zhì)詢的PUF參數(shù),包含哪一位單元的讀存取時(shí)間待監(jiān)視、所述質(zhì)詢的初始參數(shù),和待發(fā)送回到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114的響應(yīng)的類型。舉例來說,所述質(zhì)詢可為SRAM電路中五個(gè)特定位單元的讀存取時(shí)間的排序,而SRAM電路的所有位單元的初始值為‘1’。
在實(shí)例處理器1000將質(zhì)詢施加到圖1的SRAM陣列204之前,處理器1000基于接收器1002接收的數(shù)據(jù)通過將與初始邏輯值相關(guān)聯(lián)的值寫入到SRAM陣列204的位單元來施加初始參數(shù)。處理器1000將初始化數(shù)據(jù)發(fā)送到實(shí)例位單元確定器1004。具備初始化數(shù)據(jù)的實(shí)例位單元確定器1004確定哪些位線和字線與待寫入的位單元相關(guān)聯(lián)。位單元確定器1004還確定哪一值寫入到位單元。位單元確定器1004將位單元信息發(fā)送到實(shí)例電壓源1006,電壓源將適當(dāng)電壓施加到與位單元相關(guān)聯(lián)的字線和位線以寫入用于所述位單元的初始邏輯模式。位單元確定器1004重復(fù)此過程直至所有初始位單元值已經(jīng)在位單元中寫入。
一旦初始邏輯模式已經(jīng)施加到實(shí)例SRAM陣列204的位單元,圖10的實(shí)例處理器1000就指示實(shí)例位單元確定器1004取決于來自從實(shí)例接收器1002接收的數(shù)據(jù)的質(zhì)詢數(shù)據(jù)讀取一或多個(gè)位單元的所存儲(chǔ)值。具備質(zhì)詢數(shù)據(jù)的位單元確定器1004確定哪一(些)位線和字線與待讀取的位單元相關(guān)聯(lián)。位單元確定器1004將關(guān)于讀取操作的指令發(fā)送到電壓源1006。電壓源1006將適當(dāng)電壓施加到與位單元相關(guān)聯(lián)的字線和位線以讀取存儲(chǔ)在位單元中的值。電壓源1006將信號發(fā)送到讀出放大器啟用線以使SRAM陣列204的讀出放大器能夠讀取位單元的所存儲(chǔ)值。以此方式,電壓源重復(fù)地以所設(shè)定的增量啟用讀出放大器直至讀出放大器讀取先前寫入的正確值為止。感測啟用的計(jì)數(shù)與位單元的讀存取時(shí)間相關(guān)。
實(shí)例計(jì)數(shù)器1008由電壓源1006在讀取操作開始時(shí)起始。實(shí)例計(jì)數(shù)器1008跟蹤用于確定位單元已讀取的感測啟用的計(jì)數(shù),如圖13-15中進(jìn)一步描述。實(shí)例計(jì)數(shù)器1008可使用硬件、軟件和/或固件實(shí)施。實(shí)例計(jì)數(shù)器1008記錄與SRAM陣列204中位單元的讀存取時(shí)間相關(guān)聯(lián)的計(jì)數(shù)。計(jì)數(shù)器1008在其接收來自位單元確定器1004的起始信號后就開始計(jì)數(shù)。一旦讀出放大器觸發(fā)來自位單元的正確輸出,計(jì)數(shù)器1008就記錄所述位單元和所述計(jì)數(shù)。如果正監(jiān)視多個(gè)位單元的讀存取時(shí)間,那么計(jì)數(shù)器1008將繼續(xù)監(jiān)視所述計(jì)數(shù)直至已讀取每一位單元為止。
一旦圖10的實(shí)例計(jì)數(shù)器1008已記錄與所監(jiān)視位單元的讀存取時(shí)間相關(guān)聯(lián)的計(jì)數(shù),處理器1000就將關(guān)于位單元的計(jì)數(shù)的數(shù)據(jù)發(fā)送到實(shí)例計(jì)數(shù)比較器1010。實(shí)例計(jì)數(shù)比較器1010比較所監(jiān)視位單元的計(jì)數(shù)以創(chuàng)建對應(yīng)于由質(zhì)詢數(shù)據(jù)設(shè)定的PUF參數(shù)的響應(yīng)。處理器1000將PUF參數(shù)發(fā)送到計(jì)數(shù)比較器1010以創(chuàng)建適當(dāng)響應(yīng)。計(jì)數(shù)比較器1010可通過確定哪一所監(jiān)視位單元最快/最慢、位單元的讀存取時(shí)間的次序或位單元的計(jì)數(shù)的任何其它比較來創(chuàng)建響應(yīng)。計(jì)數(shù)比較器1010將響應(yīng)發(fā)送到處理器1000。處理器1000匯總所述數(shù)據(jù)以創(chuàng)建PUF數(shù)據(jù),且將PUF數(shù)據(jù)中繼到實(shí)例發(fā)射器1012。實(shí)例發(fā)射器1012經(jīng)由有線或無線通信將響應(yīng)發(fā)射回到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114?;蛘?,實(shí)例處理器1000可使用PUF數(shù)據(jù)創(chuàng)建密鑰。以此方式,加密散列函數(shù)可施加到所述密鑰從而創(chuàng)建HMAC。發(fā)射器712將HMAC發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例數(shù)據(jù)庫108和/或?qū)嵗?yàn)證主機(jī)114。
圖11為同時(shí)比較兩個(gè)或兩個(gè)以上位單元212、214的讀存取時(shí)間以創(chuàng)建PUF的實(shí)例SRAM電路1100。實(shí)例SRAM電路1100包括圖2的實(shí)例存儲(chǔ)器控制器202、實(shí)例位單元212、214、實(shí)例讀出放大器216、218、實(shí)例電源電壓VDD 220、實(shí)例位線222、230、實(shí)例互補(bǔ)位線224、232、實(shí)例字線236、238。實(shí)例SRAM電路1100進(jìn)一步包括圖10的實(shí)例電壓源1006。實(shí)例SRAM電路1100進(jìn)一步包括實(shí)例讀出放大器啟用線1102。
在質(zhì)詢施加到實(shí)例SRAM電路1100之前,SRAM電路1100的位單元首先初始化到如質(zhì)詢的PUF參數(shù)設(shè)定的初始邏輯模式。盡管所說明的實(shí)例監(jiān)視和比較實(shí)例位單元1212和實(shí)例位單元2 214的讀存取時(shí)間以創(chuàng)建PUF數(shù)據(jù),但可監(jiān)視和比較任何數(shù)目的位單元。舉例來說,PUF數(shù)據(jù)可基于SRAM電路1100的四個(gè)位單元的次序產(chǎn)生。
在質(zhì)詢(例如讀存取時(shí)間測量)開始之前,存儲(chǔ)器控制器將實(shí)例位線222、230和實(shí)例互補(bǔ)位線224、232預(yù)充電到高電壓(例如等于電源電壓VDD 220或電源電壓VDD 220的一半)。此時(shí)實(shí)例讀出放大器216、218經(jīng)歷對應(yīng)位線(例如,位線1BL1 222和互補(bǔ)位線BL1 224或位線BLN 230和互補(bǔ)位線BLN 232)之間的小電壓差分,指示對應(yīng)位線的任一者都未放電,且因此對應(yīng)位單元尚未讀取。另外,施加到電源電壓線VDD 220的電壓可降低到例如保持模式電壓。將電源電壓降低到保持模式電壓減緩SRAM電路1100的位單元的讀存取時(shí)間。減緩位單元的讀存取時(shí)間允許位單元的讀存取時(shí)間的更容易的測量和比較。
存儲(chǔ)器控制器將高電壓施加到圖11的字線236、238以起始讀取序列。以此方式,如果邏輯值‘1’存儲(chǔ)在位單元1 212中,那么互補(bǔ)位線BL1 224將在位單元1 212中放電。因此,位線BL1 222將具有邏輯值‘1’,且互補(bǔ)位線BL1 224將具有邏輯值‘0’,從而導(dǎo)致位線BL1 222與互補(bǔ)位線BL1 224之間較大的電壓差分。當(dāng)讀出放大器216經(jīng)啟用時(shí),讀出放大器216可檢測表示位單元1 212已讀取的電壓差分。在檢測到電壓差分后,信號可發(fā)送到圖1的存儲(chǔ)器控制器202以指示位單元1 212已讀取。如果‘0’存儲(chǔ)在位單元1 212中,那么位線BL1 222和互補(bǔ)位線1BL1 224將切換邏輯值(例如位線BL1 222將具有邏輯值‘0’,且互補(bǔ)位線BL1 224將具有邏輯值‘1’),但位單元212被讀取的確定將相同。另外,位單元2 214的讀存取時(shí)間可由讀出放大器218通過測量位線BLN 230與互補(bǔ)位線BLN 232之間的電壓差分來監(jiān)視。類似地,信號可發(fā)送到圖1的存儲(chǔ)器控制器202以指示位單元2 214已被讀取。
在一些實(shí)例中,實(shí)例電壓源1006用于通過經(jīng)由實(shí)例讀出放大器啟用線1102發(fā)送實(shí)例啟用信號來啟用讀出放大器216、218。以此方式,電壓源1006可以各種時(shí)間增量(例如起始字線之后的各種延遲)啟用讀出放大器216、218,所述時(shí)間增量經(jīng)由圖10的實(shí)例計(jì)數(shù)器1008計(jì)數(shù)且用于比較讀存取時(shí)間。一旦經(jīng)啟用,讀出放大器216就測量例如位線BL1 222與互補(bǔ)位線BL1 224之間的電壓差分。如果讀出放大器輸出與先前寫入到位單元的值匹配,那么位單元被成功地讀取。舉例來說,電壓源1006可在讀出放大器216的輸出與位單元1 212的初始化值匹配之前啟用讀出放大器216、218五次,從而指示成功讀取。另外,電壓源1006可在讀出放大器218的輸出與位單元2 214的初始化值匹配之前啟用讀出放大器216、218八次,從而指示位單元2 214已讀取。確定位單元經(jīng)讀取所花費(fèi)的啟用的計(jì)數(shù)發(fā)送到圖1的存儲(chǔ)器控制器202以供進(jìn)一步處理。
圖12為顯示圖11的電路的實(shí)例讀存取時(shí)間的實(shí)例時(shí)序的曲線。如上文所解釋,在時(shí)間1處,位線222、224、230、232經(jīng)預(yù)充電到高電壓。在時(shí)間1將高電壓施加到字線236、238使位線BL1 222或互補(bǔ)位線BL1 224(例如取決于位單元1 212的所存儲(chǔ)值)放電,從而降低經(jīng)放電線上的電壓。類似地,位線BLN 230或互補(bǔ)位線BLN 232(例如取決于位單元2 214的所存儲(chǔ)值)將放電,從而降低經(jīng)放電線上的電壓。
在時(shí)間2處,電壓源1006在讀出放大器啟用線1102上發(fā)送信號以啟用讀出放大器216、218來確定位單元212、214的任一者是否已讀取。舉例來說,在時(shí)間2處,位單元1 212和位單元2 214都未讀取,因?yàn)槲粏卧? 212的位線222、224和位單元2 214的位線230、232全部保持在高電壓處。在時(shí)間3處,電壓源1006在讀出放大器啟用線1102上發(fā)送另一信號以啟用讀出放大器216、218來確定位單元212、214是否已經(jīng)讀取。舉例來說,在時(shí)間3處,位單元1 212的位線222、224中的一者已放電。因此,因?yàn)槲痪€BL1 222和互補(bǔ)位線1BL1 224具有較大電壓差分,所以讀出放大器216確定位單元1 212已被讀取。然而,位單元2 214的位線BLN 230和互補(bǔ)位線BLN 232仍具有充電線(例如高電壓)。因此,因?yàn)槲痪€BLN 230和互補(bǔ)位線BLN 232具有時(shí)間3處的較小電壓差分,所以讀出放大器218確定位單元2 214尚未讀取。電壓源1006繼續(xù)重復(fù)此過程直至來自質(zhì)詢的所有位單元(例如在此實(shí)例中,位單元2 214)已經(jīng)讀取為止。
在時(shí)間4處,電壓源1006在讀出放大器線1102上發(fā)送額外信號以啟用讀出放大器218來確定位單元2 214是否已經(jīng)讀取。在時(shí)間4處,位單元2 214的位線230、232中的一者已放電。因此,位線BLN 230和互補(bǔ)位線BLN 232具有大電壓差分,因此讀出放大器218確定位單元2 214已被讀取。以此方式,存儲(chǔ)器控制器可確定實(shí)例位單元1 212比實(shí)例位單元2 214快,因?yàn)樽x取位單元1 212的感測啟用的計(jì)數(shù)為2,且讀取位單元2 214的感測啟用的計(jì)數(shù)為3。
圖13為同時(shí)比較兩個(gè)或兩個(gè)以上位單元的讀存取時(shí)間以創(chuàng)建PUF的實(shí)例SRAM電路1300。實(shí)例SRAM電路1300包括圖2的實(shí)例存儲(chǔ)器控制器202、實(shí)例位單元212、214、實(shí)例電源電壓VDD 220、實(shí)例位線222、224、230、232,和實(shí)例字線236、238。實(shí)例SRAM電路1300進(jìn)一步包括圖7的電壓源706。實(shí)例SRAM電路1300進(jìn)一步包括實(shí)例切換器1302、1304、實(shí)例輸入線1306、1308、實(shí)例讀出放大器1310和實(shí)例輸出線1312。
實(shí)例切換器1302、1304允許或阻止來自實(shí)例位線222、224、230、232的電壓經(jīng)由輸入線1306、1308輸入到實(shí)例讀出放大器1310。當(dāng)切換器經(jīng)啟用時(shí),已連接位線上的電壓經(jīng)由連接到切換器的輸入線輸入到讀出放大器1310。當(dāng)切換器停用時(shí),阻止已連接位線上的電壓經(jīng)由連接到切換器的輸入線輸入到讀出放大器1310。當(dāng)對應(yīng)切換器1302、1304經(jīng)啟用時(shí),實(shí)例輸入線1306、1308將實(shí)例位線222、230和實(shí)例互補(bǔ)位線224、232的電壓饋送到實(shí)例讀出放大器1310的輸入。實(shí)例讀出放大器1310在輸入1306與輸入B 1308之間存在正電壓差分的情況下輸出邏輯值,且在輸入1306與輸入B 1308之間存在負(fù)電壓差分的情況下輸出不同(例如相反)邏輯值。所述邏輯值在輸出線1312上輸出且發(fā)送到存儲(chǔ)器控制器202以基于輸出確定哪些位單元讀存取時(shí)間較快。
在質(zhì)詢施加到實(shí)例SRAM電路1300之前,位單元首先初始化到如質(zhì)詢的PUF參數(shù)設(shè)定的初始邏輯模式。盡管所說明的實(shí)例監(jiān)視和比較位單元212、214的讀存取時(shí)間以創(chuàng)建PUF數(shù)據(jù),但可監(jiān)視和比較任何數(shù)目的位單元。舉例來說,可基于實(shí)例SRAM電路1300的四個(gè)位單元的次序產(chǎn)生PUF數(shù)據(jù)。
當(dāng)質(zhì)詢(例如讀存取時(shí)間測量)開始時(shí),存儲(chǔ)器控制器接通與將經(jīng)由讀取操作放電的位線相關(guān)聯(lián)的實(shí)例切換器1302、1304。因?yàn)榇鎯?chǔ)器控制器在施加質(zhì)詢之前寫入了初始邏輯模式,所以存儲(chǔ)器控制器202將知道在讀取操作期間針對給定位單元哪些位線將放電。此了解允許存儲(chǔ)器控制器接通用于將放電的位單元線的所有切換器,且關(guān)閉用于將不放電的位單元的所有切換器。在施加讀取操作之前,存儲(chǔ)器控制器202將圖13的位線222、224、230、232預(yù)充電到高電壓(例如等于電源電壓VDD 220或電源電壓VDD 220的一半)。以此方式,在位線222、224、230、232上施加高電荷(例如邏輯值‘1’)。因?yàn)閷?shí)例切換器1302、1304接通,所以高電荷將施加到實(shí)例輸入線IN 1306和實(shí)例輸入線B 1308,其饋送到實(shí)例讀出放大器1310。另外,施加到電源電壓線VDD 220的電壓可降低到例如保持模式電壓。將電源電壓降低到保持模式電壓減緩SRAM電路1300的位單元的讀存取時(shí)間。減緩位單元的讀存取時(shí)間允許位單元的讀存取時(shí)間的更容易的比較。
存儲(chǔ)器控制器202將高電壓施加到圖13的字線WL2 236和字線WLN 238以起始讀取序列。在此實(shí)例中,位單元212、214兩者已經(jīng)起始以存儲(chǔ)邏輯值‘0’。以此方式,位線BL1 222和位線BLN 230將分別在位單元212、214中放電。實(shí)例互補(bǔ)位線BL1 224和實(shí)例互補(bǔ)位線BLN 232將保持充電。位線BL1 222和位線BLN 230的放電將針對那些位線將邏輯值‘1’改變到邏輯值‘0’。因此,因?yàn)閷?shí)例切換器1302、1304接通,所以實(shí)例輸入線IN 1306和實(shí)例輸入線B 1308也將從邏輯值‘1’改變到邏輯值‘0’。
實(shí)例讀出放大器1310測量輸入線1306與輸入線B 1308之間的電壓差分。響應(yīng)于輸入線1306或輸入線B 1308上邏輯值的改變,初始地從經(jīng)預(yù)充電的輸入線1306、1308兩者接收邏輯值‘1’的實(shí)例讀出放大器1310將取決于哪一輸入線1306、1308放電較快而輸出邏輯值‘0’或‘1’。位單元的放電表示用于所述位單元的讀存取時(shí)間。舉例來說,如果實(shí)例輸入1306首先放電,那么實(shí)例讀出放大器1310可輸出邏輯值‘0’?;蛘撸绻麑?shí)例輸入B 1308首先放電,那么實(shí)例讀出放大器1310可輸出邏輯值‘1’。相反,輸出邏輯值可切換以表示哪一位單元的讀存取時(shí)間最快。實(shí)例輸出1312中繼回到存儲(chǔ)器控制器202用于進(jìn)一步處理。
圖14為說明圖13的SRAM電路1300的實(shí)例讀存取時(shí)間的比較的實(shí)例曲線。如上文所解釋,在時(shí)間1之前,位線222、230經(jīng)預(yù)充電到高電壓,因此到讀出放大器1310的輸入線1306、1308也為高。因?yàn)檩斎刖€1306、1308兩者為高,所以讀出放大器輸出1312為低。在時(shí)間1處,實(shí)例感測啟用線1400(其在此實(shí)例中為有效低)設(shè)定為低以啟用讀出放大器1310。為了起始讀取序列,實(shí)例字線2 236和實(shí)例字線N 238設(shè)定成高電壓。
在時(shí)間2處,實(shí)例位線222、230兩者已開始以不同速率放電,因此實(shí)例輸入1306、1308也已開始放電(例如因?yàn)槠溥B接在一起)。實(shí)例讀出放大器1310測量輸入1306與輸入B 1308之間的電壓差分,其足夠大以觸發(fā)讀出放大器1310來感測且因此確定哪一位單元已較快放電。在此實(shí)例中,因?yàn)檩斎隑 1308較快放電,所以讀出放大器輸出1312輸出邏輯值‘1’。或者,如果輸入1306較快放電,那么讀出放大器輸出1312將輸出邏輯值‘0’。讀出放大器輸出1312發(fā)送到存儲(chǔ)器控制器202用于進(jìn)一步處理。
雖然圖7和10中說明實(shí)施圖2的實(shí)例存儲(chǔ)器控制器202的實(shí)例方式,但圖7和10中說明的元件、過程和/或裝置可以任何其它方式組合、劃分、再布置、省略、消除和/或?qū)嵤4送?,圖7的實(shí)例處理器700、實(shí)例接收器702、實(shí)例位單元確定器704、實(shí)例電壓源706、實(shí)例計(jì)時(shí)器708、實(shí)例時(shí)間比較器710、實(shí)例發(fā)射器712和/或(更一般地說)實(shí)例存儲(chǔ)器控制器202、圖10的實(shí)例處理器1000、實(shí)例接收器1002、實(shí)例位單元確定器1004、實(shí)例電壓源1006、實(shí)例計(jì)數(shù)器1008、實(shí)例計(jì)數(shù)比較器1010、實(shí)例發(fā)射器1012和/或(更一般地說)實(shí)例存儲(chǔ)器控制器202可由硬件、機(jī)器可讀指令、軟件、固件和/或硬件、機(jī)器可讀指令軟件和/或固件的任何組合實(shí)施。因此,舉例來說,圖7的實(shí)例處理器700、實(shí)例接收器702、實(shí)例位單元確定器704、實(shí)例電壓源706、實(shí)例計(jì)時(shí)器708、實(shí)例時(shí)間比較器710、實(shí)例發(fā)射器712和/或(更一般地說)實(shí)例存儲(chǔ)器控制器202、圖10的實(shí)例處理器1000、實(shí)例接收器1002、實(shí)例位單元確定器1004、實(shí)例電壓源1006、實(shí)例計(jì)數(shù)器1008、實(shí)例計(jì)數(shù)比較器1010、實(shí)例發(fā)射器1012和/或(更一般地說)實(shí)例存儲(chǔ)器控制器202中的任一者可由模擬和/或數(shù)字電路、邏輯電路、可編程處理器、專用集成電路(ASIC)、可編程邏輯裝置(PLD)和/或場可編程邏輯裝置(FPLD)實(shí)施。當(dāng)將此專利的設(shè)備或系統(tǒng)權(quán)利要求中的任一者解讀為涵蓋純軟件和/或固件實(shí)施方案時(shí),實(shí)例處理器700、實(shí)例接收器702、實(shí)例位單元確定器704、實(shí)例電壓源706、實(shí)例計(jì)時(shí)器708、實(shí)例時(shí)間比較器710、實(shí)例發(fā)射器712和/或(更一般地說)實(shí)例存儲(chǔ)器控制器202、圖10的實(shí)例處理器1000、實(shí)例接收器1002、實(shí)例位單元確定器1004、實(shí)例電壓源1006、實(shí)例計(jì)數(shù)器1008、實(shí)例計(jì)數(shù)比較器1010、實(shí)例發(fā)射器1012和/或(更一般地說)實(shí)例存儲(chǔ)器控制器202中的至少一者在此明確地界定為包含存儲(chǔ)軟件和/或固件的有形計(jì)算機(jī)可讀存儲(chǔ)裝置或存儲(chǔ)盤,例如存儲(chǔ)器、數(shù)字通用光盤(DVD)、緊密光盤(CD)、藍(lán)光光盤等。此外,圖7和10的實(shí)例存儲(chǔ)器控制器202包含作為圖15-18中說明的元件、過程和/或裝置的補(bǔ)充或替代的元件、過程和/或裝置,且/或可包含所說明的元件、過程和裝置中的任一者或全部中的一個(gè)以上。
圖15-18中展示表示用于實(shí)施圖7和10的存儲(chǔ)器控制器202的實(shí)例機(jī)器可讀指令的流程圖。在所述實(shí)例中,機(jī)器可讀指令包括供處理器執(zhí)行的程序,所述處理器例如下文結(jié)合圖20論述的實(shí)例處理器平臺(tái)2000中展示的處理器2012。在所述實(shí)例中,機(jī)器可讀指令包括供處理器執(zhí)行的程序,所述處理器例如下文結(jié)合圖21論述的實(shí)例處理器平臺(tái)2100中展示的處理器2112。所述程序可體現(xiàn)在存儲(chǔ)在有形計(jì)算機(jī)可讀存儲(chǔ)媒體上的機(jī)器可讀指令中,所述有形計(jì)算機(jī)可讀存儲(chǔ)媒體例如與處理器2012或2112相關(guān)聯(lián)的CD-ROM、軟盤、硬盤驅(qū)動(dòng)器、數(shù)字通用光盤(DVD)、藍(lán)光盤或存儲(chǔ)器,但整個(gè)程序和/或其部分或者可由除處理器2012或2112外的裝置執(zhí)行和/或體現(xiàn)在固件或?qū)iT硬件中。此外,盡管參看圖15-18中說明的流程圖描述實(shí)例程序,但或者可使用實(shí)施圖7和10的實(shí)例存儲(chǔ)器控制器202的許多其它方法。舉例來說,執(zhí)行框的次序可改變,和/或所描述的框的一些可改變、消除或組合。
如上文所提及,圖15-18的實(shí)例過程可使用存儲(chǔ)在有形計(jì)算機(jī)可讀存儲(chǔ)媒體上的經(jīng)譯碼指令(例如計(jì)算機(jī)和/或機(jī)器可讀指令)實(shí)施,所述有形計(jì)算機(jī)可讀存儲(chǔ)媒體例如硬盤驅(qū)動(dòng)器、快閃存儲(chǔ)器、只讀存儲(chǔ)器(ROM)、緊密光盤(CD)、數(shù)字通用光盤(DVD)、高速緩沖存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(RAM)和/或其中存儲(chǔ)信息持續(xù)任何持續(xù)時(shí)間(例如,持續(xù)延長的時(shí)間周期、永久地、持續(xù)短暫時(shí)間、用于信息的臨時(shí)緩沖和/或用于高速緩存)的任何其它存儲(chǔ)裝置或存儲(chǔ)盤。如本文所使用,術(shù)語有形計(jì)算機(jī)可讀存儲(chǔ)媒體經(jīng)明確地界定以包含任何類型的計(jì)算機(jī)可讀存儲(chǔ)裝置和/或存儲(chǔ)盤,且排除傳播信號并排除發(fā)射媒體。如本文所使用,“有形計(jì)算機(jī)可讀存儲(chǔ)媒體”和“有形機(jī)器可讀存儲(chǔ)媒體”可互換地使用。另外或替代地,圖15-18的實(shí)例過程可使用存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)和/或機(jī)器可讀媒體上的經(jīng)譯碼指令(例如計(jì)算機(jī)和/或機(jī)器可讀指令)實(shí)施,所述非暫時(shí)性計(jì)算機(jī)和/或機(jī)器可讀媒體例如硬盤驅(qū)動(dòng)器、快閃存儲(chǔ)器、只讀存儲(chǔ)器、緊密光盤、數(shù)字通用光盤、高速緩沖存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器和/或其中存儲(chǔ)信息持續(xù)任何持續(xù)時(shí)間(例如,持續(xù)延長的時(shí)間周期、永久地、持續(xù)短暫時(shí)間、用于信息的臨時(shí)緩沖和/或用于高速緩存)的任何其它存儲(chǔ)裝置或存儲(chǔ)盤。如本文所使用,術(shù)語非暫時(shí)性計(jì)算機(jī)可讀媒體經(jīng)明確地界定以包含任何類型的計(jì)算機(jī)可讀存儲(chǔ)裝置和/或存儲(chǔ)盤,且排除傳播信號并排除發(fā)射媒體。如本文所使用,當(dāng)短語“至少”用作權(quán)利要求的前言中的轉(zhuǎn)變術(shù)語時(shí),其以與術(shù)語“包括”為開放的相同方式為開放的。
圖15中說明的實(shí)例機(jī)器可讀指令可經(jīng)執(zhí)行以致使圖7和/或10的存儲(chǔ)器控制器202創(chuàng)建和/或驗(yàn)證PUF。盡管圖15的流程圖以給定次序描繪實(shí)例步驟,但這些步驟并非詳盡的,所屬領(lǐng)域的技術(shù)人員可在本發(fā)明的精神和范圍內(nèi)作出各種改變和修改。舉例來說,流程圖中說明的框可以替代的次序執(zhí)行或可并行執(zhí)行。
圖15為表示可經(jīng)執(zhí)行以實(shí)施圖7和10的實(shí)例存儲(chǔ)器控制器以創(chuàng)建和/或驗(yàn)證PUF的實(shí)例機(jī)器可讀指令的流程圖。所述指令可從實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108發(fā)送。舉例來說,指令可由PUF產(chǎn)生器104在制造SRAM芯片102時(shí)或在已確定當(dāng)前存儲(chǔ)在數(shù)據(jù)庫中的質(zhì)詢已經(jīng)施加到SRAM陣列且需要更多質(zhì)詢-響應(yīng)對以增加數(shù)據(jù)庫108中的PUF數(shù)據(jù)的大小時(shí)發(fā)送?;蛘?,指令可由驗(yàn)證主機(jī)114發(fā)送以檢驗(yàn)對存儲(chǔ)在實(shí)例數(shù)據(jù)庫108中的質(zhì)詢的響應(yīng)。在一些實(shí)例中,所述指令可由實(shí)例存儲(chǔ)器控制器202的實(shí)例處理器700、1000在內(nèi)部創(chuàng)建。
在框1500處,存儲(chǔ)器控制器202經(jīng)由實(shí)例接收器702、1002從實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108接收質(zhì)詢。所述質(zhì)詢可含有任何數(shù)目的位單元(其讀存取時(shí)間應(yīng)經(jīng)測量和/或比較)、初始邏輯模式、電源電壓電平,和關(guān)于待發(fā)送回到實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108的響應(yīng)PUF數(shù)據(jù)的PUF參數(shù)(例如,哪一位單元最快,哪一位單元最慢,以及位單元的次序、基于PUF數(shù)據(jù)的密鑰等)。
在框1502處,存儲(chǔ)器控制器202在給定由質(zhì)詢設(shè)定的PUF參數(shù)的情況下在SRAM電路上執(zhí)行所述質(zhì)詢。對質(zhì)詢的響應(yīng)可使用任何實(shí)例方法基于圖8的實(shí)例SRAM電路800、圖11的1100和/或圖13的1300確定。舉例來說,位單元的讀存取時(shí)間可由時(shí)間比較器710和/或計(jì)數(shù)比較器1010結(jié)合圖10個(gè)別地測量和比較。或者,可直接比較位單元的讀存取時(shí)間以確定用于結(jié)合圖11確定何時(shí)讀取位單元的讀出放大器啟用的計(jì)數(shù)。或者,可直接比較兩個(gè)或兩個(gè)以上位單元的讀存取時(shí)間以結(jié)合圖13基于位單元的讀存取時(shí)間確定排序。
在框1504處,實(shí)例發(fā)射器712、1012將如處理器700、1000確定的PUF響應(yīng)和/或密鑰發(fā)送到實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108。在一些實(shí)例中,PUF響應(yīng)、密鑰和/或任何其它數(shù)據(jù)可發(fā)送到實(shí)例PUF產(chǎn)生器104和/或?qū)嵗龜?shù)據(jù)庫108以存儲(chǔ)來用于稍后驗(yàn)證。在一些實(shí)例中,驗(yàn)證主機(jī)114可將響應(yīng)和/或密鑰與存儲(chǔ)在數(shù)據(jù)庫中的PUF數(shù)據(jù)比較以確定SRAM芯片102是否有效。另外,驗(yàn)證主機(jī)114可基于PUF數(shù)據(jù)與所述響應(yīng)的比較將信號發(fā)送回到SRAM芯片102。舉例來說,如果PUF數(shù)據(jù)與響應(yīng)匹配,那么信號可發(fā)送到SRAM芯片102,從而檢驗(yàn)可利用含有SRAM芯片102的產(chǎn)品。如果PUF數(shù)據(jù)并不與響應(yīng)匹配,那么可發(fā)送信號以停用和/或擦除SRAM芯片102上的任何數(shù)據(jù)或停用和/或擦除含有SRAM芯片102的產(chǎn)品中的另一電路上的任何數(shù)據(jù)。
圖16中說明的實(shí)例機(jī)器可讀指令可經(jīng)執(zhí)行以致使圖2和7的存儲(chǔ)器控制器202創(chuàng)建結(jié)合圖8描述的PUF。盡管圖16的流程圖以給定次序描繪實(shí)例步驟,但這些步驟并非詳盡的,所屬領(lǐng)域的技術(shù)人員可在本發(fā)明的精神和范圍內(nèi)作出各種改變和修改。舉例來說,流程圖中說明的框可以替代的次序執(zhí)行或可并行執(zhí)行。
圖16為表示可經(jīng)執(zhí)行以實(shí)施圖7的實(shí)例存儲(chǔ)器控制器來結(jié)合圖8的SRAM電路800基于位單元的讀存取時(shí)間創(chuàng)建PUF數(shù)據(jù)的實(shí)例機(jī)器可讀指令的流程圖。圖16的方法在圖7的實(shí)例接收器702接收指令以創(chuàng)建PUF數(shù)據(jù)和/或驗(yàn)證PUF數(shù)據(jù)時(shí)開始。所述指令可在產(chǎn)生SRAM電路時(shí)(例如登記階段期間)或在已確定存儲(chǔ)在數(shù)據(jù)庫中的唯一質(zhì)詢已經(jīng)耗盡且需要更多質(zhì)詢-響應(yīng)對來增加數(shù)據(jù)庫108中PUF數(shù)據(jù)的大小時(shí)從數(shù)據(jù)庫(例如圖1的數(shù)據(jù)庫108)發(fā)送。以此方式,處理器700可創(chuàng)建新質(zhì)詢-響應(yīng)對以安全地傳送和存儲(chǔ)在數(shù)據(jù)庫108中以防止驗(yàn)證主機(jī)114施加已經(jīng)施加的質(zhì)詢?;蛘撸噶羁捎纱鎯?chǔ)器控制器202的處理器700創(chuàng)建。
在框1600處,實(shí)例處理器700選擇待結(jié)合質(zhì)詢讀取的位單元。一旦選擇位單元,實(shí)例處理器700就將選定的位單元數(shù)據(jù)發(fā)送到實(shí)例位單元確定器704以確定與位單元相關(guān)聯(lián)的行和列線。因?yàn)镾RAM電路中的不同初始邏輯模式影響位單元的讀存取時(shí)間,所以初始邏輯模式可用作用于識(shí)別SRAM電路800的PUF數(shù)據(jù)的一部分。因此,實(shí)例電壓源706施加適當(dāng)電壓以寫入第一初始邏輯模式,且初始邏輯模式可用作質(zhì)詢的PUF參數(shù)以創(chuàng)建PUF數(shù)據(jù)(框1602)。
在框1604處,處理器700可指示實(shí)例電壓源706減小SRAM電路800的電源電壓以減緩選定位單元的讀存取時(shí)間。減緩讀存取時(shí)間創(chuàng)建位單元的更精確比較。舉例來說,完全電源電壓處測得的兩個(gè)位單元的比較可產(chǎn)生10納秒差異,而減小的電源電壓處測得的兩個(gè)位單元的比較可產(chǎn)生30納秒差異。此在比較多個(gè)位單元時(shí)尤其重要。
在框1606處,電壓源706將讀取電壓指令施加到與選定位單元相關(guān)聯(lián)的位線和字線。位單元確定器704起始圖7的實(shí)例計(jì)時(shí)器708,以確定與選定位單元相關(guān)聯(lián)的讀存取時(shí)間。
在框1608處,處理器700測量和存儲(chǔ)從實(shí)例計(jì)時(shí)器708確定的位單元的讀存取時(shí)間。如圖8和9中解釋,基于從施加讀取指令時(shí)到實(shí)例XOR門812輸出邏輯值‘1’時(shí)的持續(xù)時(shí)間測量位單元的讀存取時(shí)間。一旦測得,就將時(shí)間發(fā)送到時(shí)間比較器710以稍后比較SRAM電路800的兩個(gè)或兩個(gè)以上位單元的時(shí)間?;蛘撸?jì)時(shí)器708可包含時(shí)間到數(shù)字轉(zhuǎn)換器以將時(shí)間轉(zhuǎn)換為數(shù)字格式。
在框1610處,處理器700確定是否將執(zhí)行另一測量(例如不同位的讀存取時(shí)間的測量、具有不同初始邏輯模式的相同位的讀存取時(shí)間的測量,和/或檢驗(yàn)先前PUF響應(yīng))。待執(zhí)行的測量的數(shù)目可基于PUF參數(shù)或待發(fā)送到數(shù)據(jù)庫108的PUF數(shù)據(jù)的理想大小來確定。如果處理器700確定待執(zhí)行另一測量,那么處理器700在讀取位單元之前改變待讀取的位單元和/或待寫入到位單元的初始邏輯模式(框1612)。一旦位單元和/或初始邏輯模式已改變,過程就返回到框1602以基于新參數(shù)施加新質(zhì)詢?;蛘?,所述質(zhì)詢可以相同PUF參數(shù)重復(fù)以檢驗(yàn)PUF響應(yīng)。
如果處理器700確定將不執(zhí)行另一測量,那么處理器700指示時(shí)間比較器710比較與位單元的讀存取時(shí)間相關(guān)聯(lián)的值以創(chuàng)建PUF數(shù)據(jù)(框1614)?;谫|(zhì)詢的PUF參數(shù),處理器700可確定兩個(gè)或兩個(gè)以上位單元的讀存取時(shí)間的比較。舉例來說,用于質(zhì)詢的PUF參數(shù)可由第五行和第六列處的位單元與第一行和第七列處的位單元的比較構(gòu)成。一旦時(shí)間比較器710比較位單元的讀存取時(shí)間,處理器700就匯總所述數(shù)據(jù)以創(chuàng)建PUF數(shù)據(jù)。PUF數(shù)據(jù)可包含所有位單元的初始模式值(例如用于特定位單元的寫入邏輯值‘1’和用于其它位單元的寫入邏輯值‘0’)、與位單元相關(guān)聯(lián)的讀存取時(shí)間、哪一位單元最快/最慢、讀存取時(shí)間的次序(例如是否正比較超過2個(gè)位單元),和/或關(guān)于位單元的讀存取時(shí)間的任何其它數(shù)據(jù)。或者,PUF數(shù)據(jù)可用于創(chuàng)建表示SRAM電路800的唯一密鑰。
處理器700通過借助比較位單元的讀存取時(shí)間確定位單元的次序來創(chuàng)建PUF數(shù)據(jù)。舉例來說,如果確定兩個(gè)位單元的讀存取時(shí)間,那么處理器700可通過取兩個(gè)讀存取時(shí)間的差確定哪一位單元較快。以此方式,所述差的正負(fù)號確定哪一位單元較快(例如如果所述差為正,那么第一位單元較快,且如果所述差為負(fù),那么第一位單元較慢)?;蛘?,可基于一位單元比另一位單元快/慢多少來確定PUF響應(yīng)。以此方式,PUF數(shù)據(jù)可為一個(gè)位單元比另一位單元快/慢多少(例如,實(shí)例位單元1比實(shí)例位單元2快57納秒)。在框1616處,實(shí)例發(fā)射器712將PUF數(shù)據(jù)和/或唯一密鑰發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108。在此實(shí)例中,對于兩個(gè)位比較,存在4X(X-1)/2可能的相異質(zhì)詢,其中X為SRAM電路800中位單元的數(shù)目。對于N位單元比較,每初始邏輯模式2NX!/(N!(X-N)!)相異質(zhì)詢。歸因于大量相異質(zhì)詢,處理器700可僅傳送質(zhì)詢-響應(yīng)對的一部分且按需要發(fā)送更多質(zhì)詢-響應(yīng)對?;蛘?,發(fā)射器712可將與質(zhì)詢和響應(yīng)相關(guān)聯(lián)的數(shù)據(jù)和/或密鑰的全部或部分發(fā)射到數(shù)據(jù)庫108,其中數(shù)據(jù)庫108可匯總讀存取時(shí)間以創(chuàng)建PUF數(shù)據(jù)。
圖17中說明的實(shí)例機(jī)器可讀指令可經(jīng)執(zhí)行以致使圖2和10的存儲(chǔ)器控制器202創(chuàng)建結(jié)合圖11描述的PUF。盡管圖17的流程圖以給定次序描繪實(shí)例步驟,但這些步驟并非詳盡的,所屬領(lǐng)域的技術(shù)人員可在本發(fā)明的精神和范圍內(nèi)作出各種改變和修改。舉例來說,流程圖中說明的框可以替代的次序執(zhí)行或可并行執(zhí)行。
圖17為表示可經(jīng)執(zhí)行以實(shí)施圖2和10的實(shí)例存儲(chǔ)器控制器202以基于N個(gè)位單元的計(jì)數(shù)比較創(chuàng)建PUF的實(shí)例機(jī)器可讀指令的流程圖。圖17的方法在圖10的接收器1002接收指令以創(chuàng)建PUF數(shù)據(jù)時(shí)開始。所述指令可在產(chǎn)生SRAM電路時(shí)(例如登記階段期間)或在已確定存儲(chǔ)在數(shù)據(jù)庫中的質(zhì)詢已經(jīng)耗盡且需要更多質(zhì)詢-響應(yīng)對來增加數(shù)據(jù)庫108中PUF數(shù)據(jù)的大小時(shí)從數(shù)據(jù)庫(例如圖1的數(shù)據(jù)庫108)發(fā)送。以此方式,處理器1000可創(chuàng)建新質(zhì)詢-響應(yīng)對以安全地發(fā)送和存儲(chǔ)在實(shí)例數(shù)據(jù)庫108中以防止驗(yàn)證主機(jī)施加已經(jīng)施加的質(zhì)詢。或者,指令可由存儲(chǔ)器控制器202的處理器1000創(chuàng)建。
在框1700處,實(shí)例處理器1000選擇待結(jié)合質(zhì)詢讀取的N個(gè)位單元。一旦選擇N個(gè)位單元,實(shí)例處理器1000就將選定的N個(gè)位單元的數(shù)據(jù)發(fā)送到實(shí)例位單元確定器1004以確定與所述位單元相關(guān)聯(lián)的行和列線。因?yàn)镾RAM電路1100中的不同初始邏輯模式影響N個(gè)位單元的讀存取時(shí)間,所以初始邏輯模式可用作用于識(shí)別實(shí)例SRAM芯片102的PUF數(shù)據(jù)的一部分。因此,實(shí)例電壓源1006施加適當(dāng)電壓以寫入第一初始邏輯模式,且初始邏輯模式可用作質(zhì)詢的一部分以創(chuàng)建PUF數(shù)據(jù)(框1602)。
在框1704處,處理器1000可指示實(shí)例電壓源1006減小SRAM電路1100的電源電壓以減緩選定N個(gè)位單元的讀存取時(shí)間。減緩讀存取時(shí)間創(chuàng)建位單元的更精確比較。舉例來說,完全電源電壓處測得的兩個(gè)位單元的比較可產(chǎn)生10納秒差異,而減小的電源電壓處測得的兩個(gè)位單元的比較可產(chǎn)生30納秒差異。此在比較多個(gè)位單元時(shí)尤其重要。
在框1706處,電壓源1006將所讀取指令施加到與選定N個(gè)位單元相關(guān)聯(lián)的位線和字線。在框1706處,處理器1000初始化圖10的計(jì)數(shù)器1008。計(jì)數(shù)器設(shè)定成在啟用讀出放大器之后遞增計(jì)數(shù)?;蛘撸?jì)數(shù)器可設(shè)定成對處理器1000的時(shí)鐘循環(huán)的數(shù)目計(jì)數(shù)。
在框1710處,電壓源1006啟用讀出放大器。讀出放大器基于正確值是否出現(xiàn)在讀出放大器的輸出處而確定位單元中的任一者是否已經(jīng)讀取,如圖11和12中描述。在具備經(jīng)由位單元確定器1004來自讀出放大器的數(shù)據(jù)的情況下,處理器1000確定N個(gè)位單元中的任一者是否已經(jīng)讀取(框1712)。如果尚未讀取位單元,那么計(jì)數(shù)器1008遞增(框1714)且讀出放大器再次經(jīng)啟用。如果N個(gè)位單元中的一者已讀取,那么處理器1000將與所讀取位單元相關(guān)聯(lián)的計(jì)數(shù)發(fā)送到計(jì)數(shù)比較器1010(框1716)。所述計(jì)數(shù)表示所讀取位單元的讀存取時(shí)間。
在框1718處,處理器1000確定N個(gè)位單元是否全部已經(jīng)讀取。如果N個(gè)位單元全部尚未讀取,那么計(jì)數(shù)器1008遞增(框1714),且尚未讀取的N個(gè)位單元繼續(xù)被監(jiān)視直至已確定所有N個(gè)位單元的計(jì)數(shù)為止。如果已經(jīng)讀取所有N個(gè)位單元,那么處理器1000結(jié)束監(jiān)視過程,且可確定讀存取時(shí)間的比較。
在框1720處,計(jì)數(shù)比較器1010基于每一位單元的計(jì)數(shù)確定N個(gè)位單元的次序。處理器1000確定是否執(zhí)行另一比較(例如不同位的讀存取時(shí)間的測量、具有不同初始邏輯模式的相同位的讀存取時(shí)間的測量,和/或檢驗(yàn)先前PUF響應(yīng))(框1722)。如果需要更多PUF數(shù)據(jù),那么處理器1000可改變待讀取的N個(gè)位單元和/或SRAM電路1100的所有位單元的初始邏輯模式的組合(框1724)。或者,處理器1000可以相同PUF參數(shù)重復(fù)質(zhì)詢以檢驗(yàn)先前質(zhì)詢的結(jié)果。
如果處理器1000確定不再需要更多PUF數(shù)據(jù),那么實(shí)例發(fā)射器1012將PUF數(shù)據(jù)和/或唯一密鑰發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108(框1726)。PUF數(shù)據(jù)可包含所有位單元的初始模式值(例如針對特定位單元的寫入邏輯值‘1’,和針對其它位單元的寫入邏輯值‘0’)、讀存取時(shí)間和/或與讀存取時(shí)間相關(guān)聯(lián)的計(jì)數(shù)、哪一位單元最快/最慢、讀存取時(shí)間的次序,和/或關(guān)于位單元的讀存取時(shí)間的任何其它數(shù)據(jù)。在此實(shí)例中,對于兩個(gè)位比較,存在4X(X-1)/2可能的相異質(zhì)詢,其中X為SRAM電路1100中位單元的數(shù)目。對于N位單元比較,存在2NX!/(N!(X-N)!)相異質(zhì)詢。歸因于大量相異質(zhì)詢,處理器1000可僅傳送質(zhì)詢-響應(yīng)對的一部分且按需要發(fā)送更多質(zhì)詢-響應(yīng)對。或者,發(fā)射器1012可將與質(zhì)詢和響應(yīng)相關(guān)聯(lián)的數(shù)據(jù)和/或密鑰的全部或部分發(fā)射到數(shù)據(jù)庫,其中數(shù)據(jù)庫可匯總讀存取時(shí)間以創(chuàng)建PUF數(shù)據(jù)。
圖18中說明的實(shí)例機(jī)器可讀指令可經(jīng)執(zhí)行以致使圖2、7和/或10的存儲(chǔ)器控制器202創(chuàng)建結(jié)合圖13描述的PUF。盡管圖18的流程圖以給定次序描繪實(shí)例步驟,但這些步驟并非詳盡的,所屬領(lǐng)域的技術(shù)人員可在本發(fā)明的精神和范圍內(nèi)作出各種改變和修改。舉例來說,流程圖中說明的框可以替代的次序執(zhí)行或可并行執(zhí)行。
圖18為表示可經(jīng)執(zhí)行以實(shí)施圖7和/或10的實(shí)例存儲(chǔ)器控制器以結(jié)合圖13的SRAM電路1300基于位單元的讀存取時(shí)間創(chuàng)建PUF數(shù)據(jù)的實(shí)例機(jī)器可讀指令的流程圖。圖16的方法在接收器702、1002接收指令以創(chuàng)建和/或驗(yàn)證PUF數(shù)據(jù)時(shí)開始。所述指令可在產(chǎn)生SRAM電路時(shí)(例如登記階段期間)或在已確定數(shù)據(jù)庫中的唯一質(zhì)詢已經(jīng)耗盡且需要更多質(zhì)詢-響應(yīng)對來增加數(shù)據(jù)庫108中PUF數(shù)據(jù)的大小時(shí)從數(shù)據(jù)庫(例如圖1的數(shù)據(jù)庫108)發(fā)送。以此方式,處理器700、1000可創(chuàng)建新質(zhì)詢-響應(yīng)對以存儲(chǔ)在數(shù)據(jù)庫108中以防止驗(yàn)證主機(jī)施加已經(jīng)施加的質(zhì)詢。或者,所述指令可由存儲(chǔ)器控制器202的處理器700、1000創(chuàng)建。
在框1800處,實(shí)例處理器700、1000選擇待結(jié)合PUF質(zhì)詢讀取的兩個(gè)位單元的組合。一旦選擇兩個(gè)位單元,實(shí)例處理器700、1000就將選定的位單元數(shù)據(jù)發(fā)送到實(shí)例位單元確定器704、1004以確定與所述位單元相關(guān)聯(lián)的行和列線。因?yàn)镾RAM電路1300中的位單元的不同初始邏輯模式影響位單元的讀存取時(shí)間,所以初始邏輯模式可用作用于識(shí)別SRAM電路1300的PUF數(shù)據(jù)的一部分。因此,實(shí)例電壓源706、1006施加適當(dāng)電壓以寫入第一初始邏輯模式,且初始邏輯模式可用作質(zhì)詢的一部分以創(chuàng)建PUF數(shù)據(jù)(框1602)。
在框1804處,處理器700、1000可指示電壓源706、1006減小SRAM電路1300的電源電壓以減緩選定位單元的讀存取時(shí)間。減緩讀存取時(shí)間創(chuàng)建位單元的更精確比較。舉例來說,完全電源電壓處測得的兩個(gè)位單元的比較可產(chǎn)生10納秒差異,而在減小的電源電壓處測量時(shí)兩個(gè)位單元的比較可產(chǎn)生30納秒差異。此在比較多個(gè)位單元時(shí)尤其重要。在框1806處,位單元確定器704、1004啟用與將由讀取操作放電的兩個(gè)位單元的位線相關(guān)聯(lián)的切換器。啟用兩個(gè)切換器允許實(shí)例讀出放大器1310確定兩個(gè)位單元中的哪一個(gè)較快放電,如圖13中描述。
在所述切換器初始化之后,電壓源706、1006將讀取電壓指令施加到與選定位單元相關(guān)聯(lián)的位線(例如以對位線預(yù)充電)和字線(例如以初始化讀取序列)(框1808)。在框1810處,在位單元已經(jīng)放電到實(shí)例讀出放大器1310之后,處理器700、1000基于讀出放大器輸出1330確定哪些位單元放電最快(例如具有快速讀存取時(shí)間)。
在框1812處,處理器700、1000確定是否將執(zhí)行另一測量(例如不同位的讀存取時(shí)間的測量、具有不同初始邏輯模式的相同位的讀存取時(shí)間的測量,和/或檢驗(yàn)先前PUF響應(yīng))。待執(zhí)行的測量的數(shù)目可基于PUF參數(shù)或待發(fā)送到數(shù)據(jù)庫108的PUF數(shù)據(jù)的理想大小來確定。如果處理器700、1000確定將執(zhí)行另一測量,那么處理器700、1000在比較兩個(gè)位單元的讀存取時(shí)間之前改變待讀取的兩個(gè)位單元和/或待寫入到位單元的初始邏輯模式的組合(框1814)。一旦兩個(gè)位單元和/或初始邏輯模式的組合已改變,過程就返回到框1802以基于新參數(shù)施加新質(zhì)詢?;蛘撸幚砥?00、1000可以相同PUF參數(shù)重復(fù)所述質(zhì)詢以檢驗(yàn)先前質(zhì)詢的結(jié)果。
如果處理器700、1000確定將不執(zhí)行另一比較,那么處理器700、1000匯總來自所述比較的數(shù)據(jù)以創(chuàng)建PUF數(shù)據(jù)和/或基于PUF數(shù)據(jù)的唯一密鑰。PUF數(shù)據(jù)可包含所有位單元的初始邏輯模式(例如針對特定位單元的寫入邏輯值‘1’,和針對其它位單元的寫入邏輯值‘0’)、哪一位單元最快/最慢、讀存取時(shí)間的次序(例如,是否正比較超過2個(gè)位單元),和/或關(guān)于位單元的讀存取時(shí)間的任何其它數(shù)據(jù)。
在框1816處,實(shí)例發(fā)射器712、1012將PUF數(shù)據(jù)和/或唯一密鑰發(fā)射到實(shí)例PUF產(chǎn)生器104、實(shí)例驗(yàn)證主機(jī)114和/或?qū)嵗龜?shù)據(jù)庫108。在此實(shí)例中,對于兩個(gè)位比較,存在每初始邏輯模式4X(X-1)/2可能的相異質(zhì)詢,其中X為SRAM電路1300中位單元的數(shù)目。歸因于大量相異質(zhì)詢,處理器700、1000可僅傳送質(zhì)詢-響應(yīng)對的一部分且按需要發(fā)送更多質(zhì)詢-響應(yīng)對?;蛘?,發(fā)射器712、1012可將與質(zhì)詢和響應(yīng)相關(guān)聯(lián)的數(shù)據(jù)的全部或部分發(fā)射到數(shù)據(jù)庫,其中數(shù)據(jù)庫可匯總讀存取時(shí)間以創(chuàng)建PUF數(shù)據(jù)。盡管實(shí)例方法比較兩個(gè)位單元,但可實(shí)施額外硬件以比較任何數(shù)目的位單元的讀存取時(shí)間。以此方式,PUF響應(yīng)可基于哪一位單元最快、最慢和/或位單元讀存取時(shí)間的次序。以此方式,N位單元比較,存在每初始邏輯模式2NX!/(N!(X-N)!)相異質(zhì)詢。
圖19為說明驗(yàn)證主機(jī)或PUF產(chǎn)生器選擇特定質(zhì)詢的效應(yīng)的實(shí)例曲線1900。實(shí)例曲線1900含有關(guān)于實(shí)例位錯(cuò)誤率的信息,即在PUF產(chǎn)生過程期間測得的PUF數(shù)據(jù)與一應(yīng)用中PUF的使用期間再次測得的PUF數(shù)據(jù)之間不同的位的分?jǐn)?shù)。實(shí)例曲線1900還含有關(guān)于實(shí)例質(zhì)詢選擇閾值1904的信息。所述質(zhì)詢選擇閾值指代驗(yàn)證主機(jī)選擇發(fā)布到PUF的質(zhì)詢所依據(jù)的閾值。所述閾值為與質(zhì)詢中選擇的位單元相關(guān)聯(lián)的讀存取時(shí)間或計(jì)數(shù)的最小差。如下方顯示,增加質(zhì)詢選擇閾值會(huì)減小位錯(cuò)誤率。
因?yàn)榫哂蓄愃谱x存取時(shí)間的SRAM位單元的測量值可存在一些誤差,所以驗(yàn)證主機(jī)可通過選擇讀存取時(shí)間相差閾值時(shí)間量(例如超過50個(gè)單位)的兩個(gè)位單元來作出較穩(wěn)健質(zhì)詢。以此方式,在驗(yàn)證PUF時(shí)較少需要來自驗(yàn)證主機(jī)的誤差校正或容許度。
圖20為能夠執(zhí)行圖15-18的指令以實(shí)施圖1的實(shí)例存儲(chǔ)器控制器202的實(shí)例處理器平臺(tái)2000的框圖。處理器平臺(tái)2000可為例如服務(wù)器、個(gè)人計(jì)算機(jī)、移動(dòng)裝置(例如蜂窩電話、智能電話、平板計(jì)算機(jī)(例如iPadTM))、個(gè)人數(shù)字助理(PDA)、因特網(wǎng)設(shè)備,或任何其它類型的計(jì)算裝置。
所說明的實(shí)例的處理器平臺(tái)2000包含處理器2012。所說明的實(shí)例的處理器2012為硬件。舉例來說,處理器2012可由來自任何所要家庭或制造商的集成電路、邏輯電路、微處理器或控制器實(shí)施。
所說明的實(shí)例的處理器2012包含本地存儲(chǔ)器2013(例如高速緩沖存儲(chǔ)器)。圖20的實(shí)例處理器執(zhí)行圖15-18的指令以實(shí)施圖7的實(shí)例接收器702、實(shí)例位單元確定器704、實(shí)例電壓源706、實(shí)例計(jì)時(shí)器708和實(shí)例時(shí)間比較器710來實(shí)施實(shí)例存儲(chǔ)器控制器202。所說明的實(shí)例的處理器2012經(jīng)由總線2018與包含易失性存儲(chǔ)器2014和非易失性存儲(chǔ)器2016的主存儲(chǔ)器通信。易失性存儲(chǔ)器2014可由同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、RAMBUS動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(RDRAM)和/或任何其它類型的隨機(jī)存取存儲(chǔ)器裝置實(shí)施。非易失性存儲(chǔ)器2016可由快閃存儲(chǔ)器和/或任何其它所要類型的存儲(chǔ)器裝置實(shí)施。對主存儲(chǔ)器2014、2016的存取由存儲(chǔ)器控制器控制。
所說明的實(shí)例的處理器平臺(tái)2000還包含接口電路2012。接口電路2012可由任何類型的接口標(biāo)準(zhǔn)實(shí)施,例如以太網(wǎng)接口、通用串行總線(USB)和/或PCI高速接口。
在所說明的實(shí)例中,一或多個(gè)輸入裝置2022連接到接口電路2012。輸入裝置2022準(zhǔn)許用戶將數(shù)據(jù)和命令輸入到處理器2012中。輸入裝置可由例如傳感器、麥克風(fēng)、相機(jī)(靜態(tài)或視頻)、鍵盤、按鈕、鼠標(biāo)、觸摸屏、跟蹤墊、跟蹤球、等值點(diǎn)指示器和/或話音辨識(shí)系統(tǒng)實(shí)施。
一或多個(gè)輸出裝置2024還連接到所說明的實(shí)例的接口電路2012。輸出裝置2024可例如由顯示裝置(例如發(fā)光二極管(LED)、有機(jī)發(fā)光二極管(OLED)、液晶顯示器、陰極射線管顯示器(CRT)、觸摸屏、觸覺輸出裝置和/或揚(yáng)聲器)實(shí)施。所說明的實(shí)例的接口電路2012因此通常包含圖形驅(qū)動(dòng)卡、圖形驅(qū)動(dòng)器電路或圖形驅(qū)動(dòng)器處理器。
所說明的實(shí)例的接口電路2012還包含例如發(fā)射器、接收器、收發(fā)器、調(diào)制解調(diào)器和/或網(wǎng)絡(luò)接口卡等通信裝置以促進(jìn)經(jīng)由網(wǎng)絡(luò)2026(例如以太網(wǎng)連接、數(shù)字訂戶線(DSL)、電話線、同軸電纜、蜂窩式電話系統(tǒng)等)與外部機(jī)器(例如任何種類的計(jì)算裝置)交換數(shù)據(jù)。
所說明的實(shí)例的處理器平臺(tái)2000還包含一或多個(gè)大容量存儲(chǔ)裝置2028用于存儲(chǔ)軟件和/或數(shù)據(jù)。此些大容量存儲(chǔ)裝置2028的實(shí)例包含軟盤驅(qū)動(dòng)、硬驅(qū)動(dòng)盤、緊密光盤驅(qū)動(dòng)、藍(lán)光磁盤驅(qū)動(dòng)、RAID系統(tǒng)和數(shù)字通用光盤(DVD)驅(qū)動(dòng)。
圖15-18的經(jīng)譯碼指令2032可存儲(chǔ)在大容量存儲(chǔ)裝置2028中,易失性存儲(chǔ)器2014中,非易失性存儲(chǔ)器2016中,和/或例如CD或DVD等可移除有形計(jì)算機(jī)可讀存儲(chǔ)媒體上。
圖21為能夠執(zhí)行圖15-18的指令以實(shí)施圖1的實(shí)例存儲(chǔ)器控制器202的實(shí)例處理器平臺(tái)2100的框圖。處理器平臺(tái)2100可為例如服務(wù)器、個(gè)人計(jì)算機(jī)、移動(dòng)裝置(例如蜂窩電話、智能電話、平板計(jì)算機(jī)(例如iPadTM))、個(gè)人數(shù)字助理(PDA)、因特網(wǎng)設(shè)備或任何其它類型的計(jì)算裝置。
所說明的實(shí)例的處理器平臺(tái)2100包含處理器2112。所說明的實(shí)例的處理器2112為硬件。舉例來說,處理器2112可由來自任何所要家庭或制造商的集成電路、邏輯電路、微處理器或控制器實(shí)施。
所說明的實(shí)例的處理器2112包含本地存儲(chǔ)器2113(例如高速緩沖存儲(chǔ)器)。圖21的實(shí)例處理器2112執(zhí)行圖15-18的指令以實(shí)施圖10的實(shí)例接收器1002、實(shí)例位單元確定器1004、實(shí)例電壓源1006、實(shí)例計(jì)數(shù)器1008和實(shí)例計(jì)數(shù)比較器1010來實(shí)施實(shí)例存儲(chǔ)器控制器202。所說明的實(shí)例的處理器2112經(jīng)由總線2118與包含易失性存儲(chǔ)器2114和非易失性存儲(chǔ)器2202的主存儲(chǔ)器通信。易失性存儲(chǔ)器2114可由同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、RAMBUS動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(RDRAM)和/或任何其它類型的隨機(jī)存取存儲(chǔ)器裝置實(shí)施。非易失性存儲(chǔ)器2202可由快閃存儲(chǔ)器和/或任何其它所要類型的存儲(chǔ)器裝置實(shí)施。對主存儲(chǔ)器2114、2202的存取由存儲(chǔ)器控制器控制。
所說明的實(shí)例的處理器平臺(tái)2100還包含接口電路2112。接口電路2112可由任何類型的接口標(biāo)準(zhǔn)實(shí)施,例如以太網(wǎng)接口、通用串行總線(USB)和/或PCI高速接口。
在所說明的實(shí)例中,一或多個(gè)輸入裝置2122連接到接口電路2112。輸入裝置2122準(zhǔn)許用戶將數(shù)據(jù)和命令輸入到處理器2112中。輸入裝置可由例如傳感器、麥克風(fēng)、相機(jī)(靜態(tài)或視頻)、鍵盤、按鈕、鼠標(biāo)、觸摸屏、跟蹤墊、跟蹤球、等值點(diǎn)指示器和/或話音辨識(shí)系統(tǒng)實(shí)施。
一或多個(gè)輸出裝置2124還連接到所說明的實(shí)例的接口電路2112。輸出裝置2124可例如由顯示裝置(例如發(fā)光二極管(LED)、有機(jī)發(fā)光二極管(OLED)、液晶顯示器、陰極射線管顯示器(CRT)、觸摸屏、觸覺輸出裝置和/或揚(yáng)聲器)實(shí)施。所說明的實(shí)例的接口電路2112因此通常包含圖形驅(qū)動(dòng)卡、圖形驅(qū)動(dòng)器電路或圖形驅(qū)動(dòng)器處理器。
所說明的實(shí)例的接口電路2012還包含例如發(fā)射器、接收器、收發(fā)器、調(diào)制解調(diào)器和/或網(wǎng)絡(luò)接口卡等通信裝置以促進(jìn)經(jīng)由網(wǎng)絡(luò)2126(例如以太網(wǎng)連接、數(shù)字訂戶線(DSL)、電話線、同軸電纜、蜂窩式電話系統(tǒng)等)與外部機(jī)器(例如任何種類的計(jì)算裝置)交換數(shù)據(jù)。
所說明的實(shí)例的處理器平臺(tái)2100還包含一或多個(gè)大容量存儲(chǔ)裝置2128用于存儲(chǔ)軟件和/或數(shù)據(jù)。此些大容量存儲(chǔ)裝置2128的實(shí)例包含軟盤驅(qū)動(dòng)、硬驅(qū)動(dòng)盤、緊密光盤驅(qū)動(dòng)、藍(lán)光磁盤驅(qū)動(dòng)、RAID系統(tǒng)和數(shù)字通用光盤(DVD)驅(qū)動(dòng)。
圖15-18的經(jīng)譯碼指令2132可存儲(chǔ)在大容量存儲(chǔ)裝置2128中,易失性存儲(chǔ)器2114中,非易失性存儲(chǔ)器2202中,和/或例如CD或DVD等可移除有形計(jì)算機(jī)可讀存儲(chǔ)媒體上。
從上文將理解,以上所揭示的方法、設(shè)備和制品從SRAM電路創(chuàng)建PUF。使用本文中所揭示的實(shí)例,使用對經(jīng)產(chǎn)生以測量SRAM電路內(nèi)位單元的讀存取時(shí)間的質(zhì)詢的響應(yīng)產(chǎn)生PUF。在一些實(shí)例中,個(gè)別地測量位單元的讀存取時(shí)間。在一些實(shí)例中,同時(shí)測量和比較位單元的讀存取時(shí)間。
傳統(tǒng)SRAM PUF是弱PUF且具有較少可用質(zhì)詢響應(yīng)對。因此攻擊者更容易確定所有可用質(zhì)詢響應(yīng)對。確定質(zhì)詢響應(yīng)對允許攻擊者克隆集成電路。具有強(qiáng)PUF的電路克隆起來要困難得多,因?yàn)榭赡苜|(zhì)詢響應(yīng)對的數(shù)目顯著增加。并且,因?yàn)镾RAM電路已經(jīng)在大多數(shù)集成電路中找到,所以將不需要將顯著額外電路添加到現(xiàn)有集成電路。
所屬領(lǐng)域的一般技術(shù)人員從上文將理解,以上所揭示的方法和設(shè)備可在單一裝置內(nèi)或跨越兩個(gè)合作裝置實(shí)現(xiàn),且可由軟件、硬件和/或固件實(shí)施以實(shí)施本文中所揭示的PUF。
盡管本文中已經(jīng)描述特定實(shí)例方法、設(shè)備和制品,但本專利的覆蓋范圍不限于此。相反,本專利涵蓋按字面或依據(jù)等效物原則完全落在所附權(quán)利要求書的范圍內(nèi)的所有方法、設(shè)備和制品。