TW201901442A - 電子系統及其操作方法 - Google Patents
電子系統及其操作方法 Download PDFInfo
- Publication number
- TW201901442A TW201901442A TW107117219A TW107117219A TW201901442A TW 201901442 A TW201901442 A TW 201901442A TW 107117219 A TW107117219 A TW 107117219A TW 107117219 A TW107117219 A TW 107117219A TW 201901442 A TW201901442 A TW 201901442A
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- memory cells
- physical non
- host
- integrated circuit
- Prior art date
Links
Landscapes
- Semiconductor Memories (AREA)
Abstract
一種電子系統包括主機與客端裝置,其中客端裝置可被實作為單個晶片封裝式積體電路或多晶片電路,且具有邏輯以使用物理不可複製功能以產生安全金鑰。所述裝置可包括位於客端上的邏輯以藉由安全的方式將物理不可複製功能金鑰提供至主機。物理不可複製功能可使用由非揮發性記憶體胞元得到的熵以產生初始金鑰。所述的邏輯用以停用對物理不可複製功能資料的改變,且因此在金鑰儲存於所述資料集後凍結所述金鑰。
Description
本發明是有關於包括快閃記憶體或其他非揮發性記憶體等記憶體電路的積體電路、電子裝置以及其操作方法,所述積體電路具有利用獨有金鑰或獨有辨識碼的安全特徵。
正在開發具有極高容量的包括非揮發性記憶體(例如快閃記憶體)的積體電路記憶體裝置。某些技術被視為有可能會在積體電路上達成百萬兆位元級陣列(terabit scale array)。此外,記憶體裝置正被部署於藉由網路內連的所謂的「物聯網(internet of things,IoT)」裝置中,所述網路係以例如網際網路協定通訊技術進行運作。對物聯網裝置及其他儲存資料的裝置的擔憂是資料安全性。因此,正在部署安全協定及查問/回應(challenge/response)技術,所述安全協定需要以獨有金鑰進行加密並以獨有ID進行鑑認。
安全協定需要使用金鑰管理技術來產生、更新、儲存及保護所利用的獨有金鑰及ID。
物理不可複製功能(physical unclonable function,PUF)是一種可用於為物理實體(例如積體電路)創建獨有隨機金鑰的程序。使用物理不可複製功能是一種用於產生供支援硬體固有安全(hardware intrinsic security,HIS)技術的晶片ID使用的金鑰的解決方案。產生物理不可複製功能的電路為,或包括,實現於實體結構中的物理實體,其中所述實體結構產生可輕易評估但難以預測的碼。
在具有高安全要求的應用(例如行動裝置及嵌入式裝置)中,已使用物理不可複製功能來創建金鑰。一種示例性物理不可複製功能是環形振盪器物理不可複製功能(ring-oscillator PUF),其使用閘的電路傳播延遲所固有的製造變化性(manufacturing variability)。另一種示例性物理不可複製功能是靜態隨機存取記憶體(SRAM)物理不可複製功能,其中各電晶體中的臨限電壓差使得靜態隨機存取記憶體以邏輯「0」或邏輯「1」來接通電源。參見查爾斯-赫爾德(Charles Herder)等人所著的「物理不可複製功能及應用:教程(Physical Unclonable Functions and Applications: A Tutorial
)」,第1126頁至第1141頁,電機電子工程師學會的學報(Proceedings of the IEEE)|第102卷,第8期,2014年8月。
習知技術已提出一種使用電阻式隨機存取記憶體(resistive random access memory)的物理性質的物理不可複製功能。參見吉本(Yoshimoto)等人所著的「10年後用於40奈米嵌入式應用且在125℃下具有< 0.5%的位元錯誤率的基於電阻式隨機存取記憶體的物理不可複製功能(A ReRAM-based Physically Unclonable Function with Bit Error Rate < 0.5% after 10 years at 125°C for 40nm embedded application
)」,第198頁至第199頁,2016 VLSI技術論文科技文摘研討會(2016 Symposium on VLSI Technology Digest of Technical Papers)。在此論文中所呈現的應用提出了對會因老化劣化而提高位元錯誤率的電阻式隨機存取記憶體-物理不可複製功能(ReRAM-PUF)的傳統ID產生方法進行改良。然而,在此種基於電阻式隨機存取記憶體的物理不可複製功能中,所創建的資料仍可能因記憶體胞元的電阻漂移(drift)而受到破壞(corrupt),此可使得位元錯誤率在存取或使用所儲存金鑰時是不可接受的。此種電阻漂移於在積體電路的某些應用中(例如在汽車應用中)所遇到的高溫條件下可能更突出。
在使用利用物理不可複製功能電路產生的資料集時,由於高位元錯誤率的問題,先前技術已依賴於錯誤校正碼來提高可靠性。例如,參見李(Lee)等人在2016年6月2日發佈的美國專利申請公開案第2016/0156476號「物理不可複製功能電路及在物理不可複製功能電路中執行金鑰登記的方法(Physically Unclonable Function Circuits And Methods Of Performing Key Enrollment In Physically Unclonable Function Circuits
)」。
一種提供支援使用由物理不可複製功能產生的金鑰及其他獨有金鑰的技術的期望為包括非揮發性記憶體的積體電路是被期待的。此外,期望即使在了解佈署此技術的裝置的確切製造製程的情況下,此裝置可簡單地被製造但能夠產生現實上不可能複製或預測的碼。
以下所敘述的實現於積體電路上的物理不可複製功能電路可經配置以達到高安全性的需求。在一些科技應用中,需要獨有且私有的安全金鑰以進行鑑認或資料加密/解密的功能。積體電路上的物理不可複製功能電路可經使用以產生獨有且私有的安全金鑰。藉由以下所敘述的技術,可安全地將此獨有且私有的安全金鑰由積體電路傳送至主機,且用於安全功能。
此外,可使利用物理不可複製功能且利用一般隨機數產生器以產生改良的金鑰(enhanced key)的安全電路系統靈活性及可靠性提高的電子裝置及系統被提出。此處所敘述的技術藉由使用擬隨機數產生器(pseudo-random number generator)與物理不可複製功能電路的組合以提高安全金鑰的熵值(entropy)。
此處所敘述的裝置與系統適用於物聯網裝置的使用,且可在各種環境下被實作。
此處所描述的裝置可被實作於單個封裝式積體電路或多晶片模組,其中單個封裝式積體電路或多晶片模組包括執行物理不可複製功能以產生物理不可複製功能金鑰的電路,且可選擇性地包括隨機數產生器。所述裝置可包括邏輯,以藉由邏輯地合併物理不可複製功能金鑰與隨機數以產生改良的金鑰。物理不可複製功能可包括使用非揮發性記憶體胞元的第一子集合,且改良的金鑰可被儲存於此裝置上的非揮發性記憶體胞元的第二子集合。在此處所敘述的實施例中,用於產生改良的金鑰的邏輯可包括互斥或(XOR)功能以進行物理不可複製功能金鑰與隨機數的位元(bit-wise)或位元組(byte-wise)的互斥或,以產生改良的金鑰。在另一方式中,所述邏輯組合可包括雜湊功能(hash function,或稱雜湊函數)。雜湊函數映射(mapping)物理不可複製功能金鑰與隨機數,以對數值進行雜湊運算(hash)以作為改良的金鑰。在此處所敘述的實施例中,物理不可複製功能可使用由多個非揮發性記憶體胞元中的非揮發性記憶體胞元導出的熵,以產生物理不可複製功能金鑰。隨機數產生器可包括擬隨機數產生器或確定性隨機數產生器(determinative random number generator),以產生為變化的種值(seed value)的函數的隨機數。
舉例而言,一種如所述的電子裝置(記憶體電路)被實作於包括非揮發性記憶體陣列的單個封裝式積體電路或多晶片模組,所述非揮發性記憶體陣列包括由記憶體胞元形成的多個區塊,所述多個區塊中的特定區塊中儲存有金鑰。所述記憶體電路包括用於自所述陣列進行外部通訊的埠。所述記憶體電路包括耦接至所述記憶體陣列的安全邏輯(security logic),以在協定中利用所述改良的金鑰來允許存取儲存於所述多個區塊中的各區塊中的資料、或允許對儲存於所述多個區塊中的各區塊中的資料進行解密或加密。所述記憶體電路並包括存取控制電路(access control circuit),所述存取控制電路耦接至所述陣列,且包括用於允許所述安全邏輯對儲存所述改良的金鑰的所述特定區塊進行唯讀存取,以供在所述協定中使用、並阻止外部通訊網路或裝置經由所述埠存取所述特定區塊的邏輯。所述存取控制電路可具有其中允許經由所述埠存取所述特定區塊以寫入所述金鑰的第一狀態;以及其中禁止經由所述埠存取所述特定區塊來進行讀取或寫入;但允許所述安全邏輯在與主機或其他外部裝置執行安全協定期間存取所述特定區塊來進行讀取的第二狀態。所述封裝式積體電路或多晶片模組可包括用於使用記憶體陣列中的一組記憶體胞元來執行功能(包括物理不可複製功能,例如本揭露所述的依賴於電荷陷獲非揮發性記憶體胞元作為物理電路的示例性功能)以生成初始物理不可複製金鑰的邏輯,以及用於產生隨機數的隨機數產生器,而藉由組合邏輯(combinatorial logic)結合以產生改良的金鑰。在本揭露所述的實施例中,多個金鑰與改良的金鑰可儲存於積體電路上的特定區塊中或不同區塊中。此外,所述安全邏輯可被配置成使所述多個金鑰中的特定金鑰被使用一次或有限數目的次數來允許存取儲存於所述多個區塊中的各區塊中的資料。在一些實施例中,儲存於特定區塊中的金鑰可為例如包括數千或數百萬個位元的大金鑰。
本揭露提供一種在積體電路上使用由包括浮置閘極及介電電荷陷獲技術的電荷陷獲非揮發性記憶體胞元導出的熵且在一些實施例中使用其他類型的非揮發性記憶體胞元,且合併由隨機數產生器導出的熵,產生可用作獨有辨識符或獨有金鑰的資料集的操作方法。所述操作方法可包括物理不可複製功能,所述物理不可複製功能會使得在一組中的記憶體胞元內建立相異臨限值(例如臨限電壓)。所述方法可用於生成可以零位元錯誤率或極低位元錯誤率而使用的基於物理不可複製功能的穩定資料集。
一種如所述的電子裝置包括一組電荷陷獲記憶體胞元,例如快閃記憶體胞元。包括電路系統,所述電路系統位於積體電路上、位於能夠存取所述積體電路的處理器系統上、或者在所述積體電路上及在所述處理器系統上均包括某些部分,所述電路系統能夠存取所述一組電荷陷獲記憶體胞元,以用於使用所述一組電荷陷獲記憶體胞元來提供資料集。所述資料集與隨機數結合以提供改良的金鑰,所述改良的金鑰具有較所述資料集更大的熵,且具有較所述隨機數更大的熵。
在一實施例中,在提高隨機數產生器的輸出的熵的方法中使用物理不可複製功能金鑰與隨機數產生器產生改良的金鑰,此是藉由將物理不可複製金鑰提供為隨機數產生器的種子(seed),且物理不可複製金鑰為現實上不可能被預測的。
一種在包括可程式化記憶體胞元(例如快閃記憶體胞元)的積體電路上產生資料集的操作方法被提出。所述操作方法包括:使曝露於所述積體電路上具有位址的所述一組可程式化記憶體胞元經過共同處理後引入相異的臨限值,且所述一組可程式化記憶體胞元位於一個起始分佈的範圍內。所述操作方法包括:查找所述一組可程式化記憶體胞元的具有位於所述分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有位於所述起始分佈的第二部分中的臨限值的第二子集。所述操作方法包括使用所述第一子集及所述第二子集中的至少一者的位址以及隨機數產生器來產生資料集。
在一個實施例中,藉由以下方式來產生所述資料集:使用所述位址來選擇所述第一子集及所述第二子集中的一者中的記憶體胞元,並對所選擇的記憶體胞元應用偏壓施加操作以在記憶體胞元的所述第一子集與所述第二子集之間建立感測容限。在一個實施例中,可藉由以下方式來建立所述感測容限:對所述子集中所選擇的一者中的記憶體胞元進行定址,並對所述經定址的記憶體胞元應用偏壓施加操作,以使其臨限值改變成所述起始分佈之外的臨限值分佈。此後,可藉由使用處於所述感測容限內的讀取電壓對所述一組可程式化記憶體胞元中的記憶體胞元進行讀取來產生所述資料集。
在另一實施例中,藉由根據所述第一子集及所述第二子集中的至少一者中的成員身份,並根據所述至少一者中的記憶體胞元的位址將所述記憶體胞元的位址進行組合來產生所述資料集。一種用於組合所述位址的技術可包括依序對所述子集中的一者或每一者的位址進行數列(concatenate)。可將包括經組合的位址的所述資料集儲存於所述積體電路上與所述一組可程式化記憶體胞元不同的記憶體中。
在本揭露所述的另一種技術中,藉由以下方式來產生所述資料集:查找所述起始分佈中的第一分界線及與所述第一分界線不同的第二分界線;辨識所述一組可程式化記憶體胞元的具有位於所述起始分佈的第一部分中所述第一分界線以下的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有位於所述起始分佈的第二部分中所述第二分界線以上的臨限值的第二子集;以及使用所述第一子集及所述第二子集中的至少一者的位址來產生資料集。
一種用於查找所述分界線的方法包括:確定所述起始分佈中的臨限電壓,所述臨限電壓使具有低於所述臨限電壓的臨限值的記憶體胞元的計數,對具有高於所述臨限電壓的臨限值的記憶體胞元的計數的比率處於目標比率範圍內;以及藉由自所述臨限電壓減去第一常數來設定所述第一分界線,並藉由對所述臨限電壓加上第二常數來設定所述第二分界線。另一種用於查找所述分界線的方法包括:使用移動的第一讀取電壓迭代地讀取所述一組可程式化記憶體胞元中的所述資料值,並對所述一組中具有低於所述第一讀取電壓的臨限值的記憶體胞元進行計數,且使用使所述計數處於第一目標計數範圍內的所述第一讀取電壓來設定所述分界線;以及使用移動的第二讀取電壓迭代地讀取所述一組可程式化記憶體胞元中的所述資料值,並對所述一組中具有高於所述第二讀取電壓的臨限值的記憶體胞元進行計數,且使用使所述計數處於第二目標計數範圍內的所述第二讀取電壓來設定所述第二分界線。
一種操作包括多個非揮發性記憶體胞元以及隨機數產生器的電路的方法被提出。所述方法包括執行物理不可複製功能以產生初始金鑰;將所述初始金鑰儲存於非揮發性記憶體胞元的集合中;執行隨機數產生器以產生隨機數;邏輯地合併初始金鑰與隨機數以產生改良的金鑰;將改良的金鑰儲存於多個非揮發性記憶體胞元的非揮發性記憶體胞元的第二集合中;且在儲存初始金鑰之後,使對於儲存在非揮發性記憶體的集合中的資料的改變失能。一種根據本揭露所提供的用於產生資料集的方法來製造積體電路的方法亦被提出。
一種電子裝置被提出,其包括位於積體電路上的一組可程式化記憶體胞元以及用於藉由本揭露所述程序來產生資料集的邏輯。
在查閱以下圖式、詳細說明及申請專利範圍後,可明白本發明的其他態樣及優點。
參照各圖來提供對本技術實施例的詳細說明。應理解,並非旨在將本技術限制於所具體揭露的結構性實施例及方法,而是可使用其他特徵、元件、方法、及實施例來實踐本技術。闡述較佳實施例以對本技術進行說明,而非對本技術的範圍進行限制,其範圍是由申請專利範圍界定。此項技術中具有通常知識者將認識到以下說明的各種等效變化形式。以相同的參考編號來共同指代各種實施例中相同的元件。
圖1是包括多個可程式化記憶體胞元及控制器的裝置的簡化方塊圖,所述控制器用於使用所述多個可程式化記憶體胞元來執行物理不可複製功能與隨機數產生器以提供資料集。在此實例中,所述裝置包括具有使用可程式化記憶體胞元形成的記憶體的積體電路100。記憶體130可由物理不可複製功能用於提供獨有資料集。以下參照圖17闡述其中任務功能電路110是包括多個記憶體胞元區塊的快閃記憶體陣列的另一實施例。本揭露亦闡述其他實施例。
積體電路100包括任務功能電路(mission function circuit)110,任務功能電路110可包括專用邏輯(有時稱為應用專用積體電路邏輯(application-specific integrated circuit logic))、例如在微處理器及數位訊號處理器中所使用的資料處理器資源、大型(large-scale)記憶體(例如快閃記憶體、靜態隨機存取記憶體、動態隨機存取記憶體(DRAM)、可程式化電阻記憶體(programmable resistance memory))、以及各種類型的電路的組合(被稱為系統晶片(system-on-a-chip,SOC)配置或應用專用積體電路(application specific integrated circuit,ASIC))。積體電路100包括輸入/輸出介面120,輸入/輸出介面120可包括無線埠或有線埠,以提供對其他裝置或網路的存取。在本簡化說明中,存取控制區塊(access control block)115安置於輸入/輸出介面120與任務功能電路110之間。存取控制區塊115藉由匯流排116耦接至輸入/輸出介面120且藉由匯流排111耦接至任務功能電路110。存取控制區塊115執行存取控制協定,以允許或禁止在任務功能電路110與輸入/輸出介面120之間進行通訊、提供對越過輸入/輸出介面120的資料的加密或解密、且提供支援安全邏輯的其他服務、或提供上述功能的組合。
為支援存取控制區塊115,在此實例中,於晶片上安置安全邏輯125。安全邏輯125耦接至可為記憶體130(快閃記憶體陣列)一部分的一組快閃記憶體胞元。物理不可複製功能儲存於非揮發性記憶體胞元的集合中,且接著提供或被使用以提供獨有資料集以作為初始金鑰。安全邏輯125亦耦接至隨機數產生器150。隨機數產生器150在匯流排151上產生隨機數。邏輯電路系統160可合併初始金鑰與隨機數以經由匯流排161產生改良的金鑰170。在實施例中,邏輯電路系統160可包括使用初始金鑰與隨機數作為輸入且產生作為改良的金鑰的輸出互斥或功能,且包括映射初始金鑰與隨機數以雜湊數值而作為改良的金鑰的雜湊功能。在一些實例中,在線(匯流排131)上的初始物理不可複製功能金鑰可具有N個位元,在線(匯流排151)上的隨機數可具有M個位元,且在線(匯流排161)上的改良的金鑰可具有X個位元。X小於N與M的總和(亦即N+M)。或者,在其他實施例中,X小於N與M的至少其中一者。在匯流排171上的改良的金鑰170可被安全邏輯125存取,且由所述安全邏輯125用於與存取控制區塊115在線路122上進行的通訊中。
在裝置的此實例中,物理不可複製功能程式控制器140(例如被實作為具有記憶體130(快閃記憶體陣列)的積體電路上的狀態機)提供訊號以控制偏壓設置供電電壓的應用,以實施用於產生資料集的程序、以及在存取記憶體130時所涉及的其他操作、及用於讀取使用記憶體130所提供的資料集的其他操作。位於積體電路上的電路系統(例如位元線、字元線、用於位元線及字元線的驅動器等)達成對一組電荷陷獲記憶體胞元的存取,以使用所述一組電荷陷獲記憶體胞元來提供資料集。
積體電路上的物理不可複製功能程式控制器140包括用於執行用以產生資料集的某些或全部操作的邏輯。在一個實施例中,積體電路上的物理不可複製功能程式控制器140包括執行偏壓施加操作所必需的邏輯且可回應於來自外部源的設置命令(set up command)來執行所述邏輯,而無需由晶片外系統(off-chip system)進行控制。
在一些實施例中,物理不可複製功能程式控制器140包括回應於指示(indicator)而抑止程式化或抹除在物理不可複製功能記憶體胞元上的偏壓施加的操作。
可包括此項技術中已知的使用狀態機在內的專用邏輯電路系統來實作所述控制器。在替代實施例中,所述控制器包括可被實作於同一積體電路上的通用處理器,所述通用處理器執行電腦程式來控制裝置的操作。在又一些實施例中,可利用專用邏輯電路系統與通用處理器的組合來實作控制器。
在一些實施例中,外部處理器系統可包括用於達成對積體電路及用於產生資料集的邏輯的存取的電路系統。所述外部處理器系統可包括用於結合積體電路上的電路系統來提供資料集的電路系統,例如晶圓探測電路(wafer probe circuit)、控制匯流排、電壓源等。用於對程序進行控制的能夠存取所述一組記憶體胞元的邏輯電路及偏壓施加電路系統可包括外部處理器系統上及在積體電路上的部分構件。
本揭露所述的實例利用例如在某些種類的快閃記憶體中所利用的電荷陷獲記憶體胞元(charge trapping memory cell)。電荷陷獲記憶體胞元中的電荷儲存結構可包括多晶矽浮置閘極結構、或者其他導電性或半導電性浮置閘極結構,且可包括在快閃記憶體技術中已知的多層式介電電荷陷獲結構,例如氧化物-氮化物-氧化物(oxide-nitride-oxide,ONO);氧化物-氮化物-氧化物-氮化物-氧化物(oxide-nitride-oxide-nitride-oxide,ONONO);矽-氧化物-氮化物-氧化物-矽(silicon-oxide-nitride-oxide-silicon,SONOS);帶隙工程設計矽-氧化物-氮化物-氧化物-矽(bandgap engineered silicon-oxide-nitride-oxide-silicon,BE-SONOS);氮化鉭、氧化鋁、氮化矽、氧化矽、矽(tantalum nitride, aluminum oxide, silicon nitride, silicon oxide, silicon,TANOS);以及金屬高介電常數帶隙工程設計矽-氧化物-氮化物-氧化物-矽(metal-high-k bandgap-engineered silicon-oxide-nitride-oxide-silicon,MA BE-SONOS)。
在其他實施例中,物理不可複製功能記憶體胞元中用於提供資料集的可程式化記憶體胞元可包括可程式化電阻記憶體胞元或其他類型的記憶體胞元。用於提供資料集的可程式化電阻記憶體胞元可包括具有可參考臨限電阻讀取的可程式化電阻的可程式化元件。所述可程式化電阻元件可例如包含金屬氧化物或相變材料。
圖2說明包括位於積體電路上的一組可程式化記憶體胞元,以及用於使用所述一組可程式化記憶體胞元產生資料集的邏輯的裝置的另一實例。在此實例中,所述裝置包括處理器系統410,以用於在積體電路440上執行或引發執行如本揭露所述產生資料集的程序。積體電路440在製造期間於封裝之前被連接至處理器系統410,例如在一些實施例中是以晶圓形式進行連接。在其他實施例中,處理器系統410連接至呈封裝形式的積體電路。
用於執行在積體電路上產生基於物理不可複製功能的資料集的程序的示例性系統可包括在生產線(manufacturing line)中使用測試用設備或使用類似測試用設備那樣的設備(其包括用於存取積體電路的電路系統,例如晶圓探測電路、電壓源等)而執行的經程式化程序。舉例而言,製造線可具有被配置成與積體電路連接且可被配置成對本揭露所述程序的執行進行控制的多個裝置測試機(device tester)、多個裝置探測器(device prober)、多個裝置搬運機(device handler)、及多個介面測試配接器(interface test adapter)。作為另一選擇,系統可被配置成與封裝式積體電路介接,且可被部署成遠離積體電路的製造線,例如部署於利用積體電路的原始設備製造商的總成安裝處。
如圖2中所示,示例性處理器系統410包括物理不可複製功能邏輯與驅動器420及裝置搬運機/探測器430。欲受到物理不可複製功能邏輯與驅動器420作用的積體電路440耦接至裝置搬運機/探測器430。積體電路440包括安全電路450。在此實例中,安全電路450中的大型快閃記憶體陣列460用於使用物理不可複製功能來產生資料集。
處理器系統410中的示例性積體電路可為如參照圖1所述的積體電路100。在製造積體電路100期間,處理器系統410執行本揭露中所表示的動作來生成包括改良的金鑰的資料集,且可保存所述資料集的複本或自所述資料集導出的資料來作為積體電路與工廠中的處理器系統(例如,處理器系統410)之間的共享秘密。
在替代實施例中,在製造出積體電路之後,在現場,使用者可例如使用處理器系統410作為主機而在積體電路上的快閃記憶體陣列460中產生資料集,因此可保存所述資料集來作為積體電路與現場(而非工廠中)的處理器系統(例如處理器系統410)之間的共享秘密。
產生目標秘密金鑰且使用物理不可複製功能碼的方法包括:使主機向安全裝置發出物理不可複製功能讀取指令;在接收物理不可複製功能讀取指令之後,安全裝置向主機發送作為使用暫時安全金鑰加密的密文(cipher text)的物理不可複製功能碼,或向主機發送作為未經加密的明文(plain text)的物理不可複製功能碼;在接收物理不可複製功能碼之後,主機依據物理不可複製功能碼為密文或明文而對物理不可複製功能碼進行解密或不對物理不可複製功能碼進行解密,以得到目標秘密金鑰;主機向安全裝置發出物理不可複製功能轉移(transfer)指令;以及在接收物理不可複製功能轉移指令之後,安全裝置程式化物理不可複製功能碼為目標金鑰位址,以作為目標秘密金鑰。在物理不可複製功能碼被程式化為安全裝置中的目標金鑰位址之後,主機與安全裝置具有用於加密/解密的相同的目標秘密金鑰。
在實施例中,主機發出狀態讀取指令以判斷物理不可複製功能碼是否成功地被程式化為作為目標秘密金鑰的目標金鑰位址。
在實施例中,主機停用(block)物理不可複製功能讀取指令,使得物理不可複製功能讀取指令不再被發出。
在實施例中,主機停用物理不可複製轉移指令,使得物理不可複製轉移指令不再被發出。
在實施例中,目標金鑰位址被定義為轉移指令的附屬物(appendant)。
在實施例中,暫時秘密金鑰為預先被程式化的(pre-programmed)。
圖33說明系統以及用於系統的各種通訊協定,包括經由通訊連結(communication link)耦接至積體電路3301的主機3300。積體電路3301使用積體電路3301上的電路系統佈署物理不可複製功能,以符合安全目的。此處詳細描述實施圖33上的構件的各種技術。圖34至圖38說明使用相同元件符號的相同系統,其中各種通訊協定支援系統的安全功能中的物理不可複製功能金鑰的使用。
在此實例中,主機3300可包括電腦系統或處理器積體電路,此電腦系統或處理器積體電路包括支援安全功能的各種邏輯構件。圖33所說明的構件包括介面控制器3302,藉由介面控制器3302建立與客端裝置(例如是積體電路3301或多晶片模組)之間的通訊連結;安全邏輯電路3304,執行安全功能,例如是廣為採用的金鑰雜湊訊息鑑認碼(keyed-hash message authentication code;HMAC)功能、高階加密標準(advanced encryption standard;AES)功能或其類似者、用於鑑認的功能、加密/解密功能、或其組合的功能。此外,更說明主機3300的構件包括隨機數產生器3308與金鑰儲存區塊(金鑰儲存器)3306。主機包括處理電路(processing circuit)與邏輯(未示出),以協調此些構件的操作,主機例如是包括執行電腦程式的用於一般用途的處理器、特殊用途的邏輯電路、用於一般用途與特殊用途兩者組合的電路及其類似者。主機可使用可在積體電路3301上被解碼且被執行的指令以協調操作。
此實例中的積體電路3301包括介面控制器3303,其與主機3300上的介面控制器3302互補。在此實例中,指令解碼器3315被耦接至介面控制器,且可接收並解碼來自主機的指令,並向積體電路上的構件提供需要用於解碼指令的控制與時序(timming)訊號。相似地,積體電路3301包括與主機上的邏輯電路3304互補的安全邏輯電路3305。如此處已詳細討論,可選擇地在積體電路3301上提供隨機數產生器3309。在此實施例中,積體電路3301包括記憶體陣列3311,例如是非揮發性記憶體陣列、動態隨機存取記憶體(dynamic random access memory;DRAM)、靜態隨機存取記憶體(static random access memory;SRAM)、或其類似者,以適於特定的實作。金鑰儲存區塊(金鑰儲存器)3335耦接於記憶體陣列3311,其中金鑰儲存區塊(金鑰儲存器)3335可為記憶體陣列3311的一部分,或分離的儲存器。舉例而言,金鑰儲存區塊3335可包括靜態隨機存取記憶體暫存器(register)、快閃記憶體胞元暫存器、單次可程式化暫存器(one time programmable register)及其類似者。此實例中的積體電路3301包括物理不可複製功能電路3337,其可執行物理不可複製功能以產生物理不可複製功能資料集。另外,緩衝器3339包括於此實施例中,以在與主機3300的通訊中被使用為工作記憶體,以及用於裝置的其他選擇性的工作記憶體應用。
圖33所示的系統可被實施於多個實施例中,其應用任一或所有此處所敘述的技術。一般而言,圖33所示的系統具有主機3300與客端裝置,其中主機3300包括處理器、安全邏輯以及通訊介面,且客端裝置包括積體電路3301或多晶片模組。積體電路或多晶片模組包括安全邏輯、通訊介面與邏輯以使用物理不可複製功能而產生物理不可複製功能金鑰,且將物理不可複製功能金鑰儲存於物理不可複製功能金鑰儲存器中。此外,在積體電路或多晶片模組上提供邏輯,以基於各種配置而將物理不可複製金鑰提供至主機。
如此處所描述,在一些實施例中,物理不可複製功能使用藉由使用在積體電路或多晶片模組上的多個非揮發性記憶體胞元中的非揮發性記憶體產生的熵。在其他實施例中,可應用不同類型的物理不可複製功能。
在圖33中,說明在用於存在有可信任的主機的環境中將物理不可複製功能金鑰提供至主機的協定。在此環境中,所述協定可包括傳送指令或一系列指令(1)至客端裝置,亦即積體電路3301。客端裝置上的指令解碼器3315對指令或一系列指令進行解碼,且控制需要產生物理不可複製功能金鑰的時序與電路系統,並提供物理不可複製功能金鑰(2)至主機3300。一旦在主機接收到物理不可複製功能金鑰,物理不可複製功能金鑰經由介面控制器3302轉移至主機上的金鑰儲存器(3)。此時,主機與客端裝置兩者具有物理不可複製功能金鑰的複本,且可於安全功能應用物理不可複製功能金鑰。隨後,將另一指令或指令集中的額外指令(4)轉移至客端,在客端處於物理不可複製功能金鑰被提供至主機後積體電路或多晶片模組上的電路系統停用對於物理不可複製功能金鑰儲存器的改變。
圖34說明用於與主機分享物理不可複製功能金鑰的另一協定。在此實施例中,於客端裝置接收指令或一系列指令,且藉由指令解碼器對指令或一系列指令進行解碼,以進行一系列功能。指令或指令集可包括第一指令(1),第一指令(1)造成物理不可複製功能金鑰由物理不可複製功能電路3337轉移(2)至金鑰儲存器3335。指令或指令集可識別記憶體陣列3311且對記憶體陣列3311定址,以提供金鑰儲存器3335的記憶體陣列中的位置,或另一方面識別物理不可複製功能金鑰儲存器。在一些實施例中,在儲存於金鑰儲存器之前,藉由緊連邏輯(glue logic)修改物理不可複製金鑰,緊連邏輯例如是雜湊功能或其他由安全邏輯控制的功能,其中上述的安全邏輯在主機具有互補邏輯。在指令集中的接下來或隨後的指令(3)可發出金鑰狀態讀取操作的訊號,以回應客端(積體電路3301)將金鑰由金鑰儲存器3335轉移至主機3300。在主機處,金鑰藉由安全邏輯電路3304轉移至金鑰儲存器3306,或直接被轉移至金鑰儲存器3306。在接下來或隨後的指令(5)中,主機可停用用於金鑰狀態讀取操作的指令或指令集,或停用其他客端裝置中需要用來傳遞金鑰的動作。
圖35說明用於金鑰置換演算的協定。系統藉由此協定而經應用以將基於物理不可複製功能資料集的金鑰置換先前分享的金鑰。根據此協定,解碼來自主機的指令或指令集(1)以導致執行物理不可複製功能讀取操作。回應於此指令,客端裝置(積體電路3301)將來自物理不可複製功能電路3337的物理不可複製功能資料集的複本與金鑰儲存器3335中的共享的金鑰的電路側(circuit-side)複本轉移(2)至積體電路3301上的安全邏輯電路3305。安全邏輯電路3305使用共享的金鑰加密物理不可複製功能資料集,且藉由將加密的物理不可複製功能金鑰轉移至主機而將物理不可複製功能金鑰提供至主機。在此實例中,在主機3300上的互補安全邏輯電路3304自金鑰儲存器3306讀取暫時共享的秘密金鑰(3)的主機側(host-side)複本。此外,主機3300上的安全邏輯電路3304接收加密的物理不可複製功能金鑰,使用暫時共享的秘密金鑰以對加密的物理不可複製功能金鑰進行解密,而提供新的物理不可複製功能金鑰,且將此新的物理不可複製功能金鑰(4)轉移至金鑰儲存器3306。在此階段,主機3300與客端(積體電路3301)兩者具有基於物理不可複製功能資料集的新金鑰的複本。主機可接著傳送指令(5)以停用用於物理不可複製功能狀態讀取或需要用以產生新金鑰的其他操作的指令或指令集的進一步使用。
圖35所示的金鑰置換演算包含提供共用於主機與客端之間的暫時金鑰。圖36至圖38說明共享暫時金鑰的各種協定。在圖36中,主機3300使用隨機數產生器3308以產生隨機數,以經使用以作為暫時金鑰,且將暫時金鑰轉移(1)至安全邏輯電路3304。暫時金鑰可選擇性地被暫時儲存於金鑰儲存器3306中,或被儲存於其他處。接著,主機將隨機數轉移(2)至客端裝置(積體電路3301)上的緩衝器3339。在此實例中,客端裝置3301接著將暫時隨機數金鑰轉移(3)至金鑰儲存器3335。
在圖37中,使用客端裝置(積體電路3301)上的隨機數產生器3309第一次產生共享的暫時金鑰。在此實例中,此隨機數被轉移(1)至客端裝置上的緩衝器3339。另外,亦將此隨機數由緩衝器轉移(2)至客端裝置上的金鑰儲存器3335。將被應用為暫時金鑰的此隨機數被轉移(3)至主機,且經由介面控制器3302而被轉移(4)至安全邏輯電路。
在圖38中,經由不同的程序產生暫時金鑰且將暫時金鑰儲存在主機上的金鑰儲存器3306中。此金鑰被轉移(1)至主機介面控制器3302,在此處以金鑰寫入指令或指令集將此金鑰轉移(2)至客端裝置上的金鑰儲存器3335。
回到圖3,圖3說明大型快閃記憶體陣列470,大型快閃記憶體陣列470可為與本揭露所述安全電路一起使用的積體電路上的任務功能電路或所述任務功能電路的一部分。大型快閃記憶體陣列470可包括由快閃可程式化記憶體胞元形成的區塊(例如,記憶體區塊0、1、…N)、物理不可複製功能區塊471、啟動區塊(boot block)472、及參數區塊473。另外,快閃記憶體陣列可包括用於控制對陣列中各種記憶體區塊的存取的保護邏輯474,保護邏輯474包括用於保護位元(protection bit)的記憶體。物理不可複製功能區塊471可為記憶體陣列中被保留以用以在一些實施例中被專門配置以儲存金鑰的目的的特定區塊。
在包括如圖3所示快閃記憶體陣列的積體電路的實施例中,所述積體電路的安全電路450中的快閃記憶體陣列460可包括大型快閃記憶體陣列470中,例如物理不可複製功能區塊471等區塊。在其他實施例中,安全電路450中的快閃記憶體陣列460與快閃記憶體陣列470分開,且可包括結構不同於大型快閃記憶體陣列470的記憶體胞元以及架構不同於大型快閃記憶體陣列470。以下參照圖17提出的包括大型快閃記憶體的另一實施例。
大型快閃記憶體陣列470可包括反或(NOR)快閃架構、反及(NAND)快閃架構、或其他類型的快閃架構。由於本揭露所述的物理不可複製功能演算法是在一組記憶體胞元內執行,因而物理不可複製功能區塊471可包括足夠的記憶體胞元以涵蓋一個組或諸多個組,並提供供安全電路450以用於創建一個物理不可複製功能資料集或諸多物理不可複製功能資料集。物理不可複製功能邏輯與驅動器420、或如上所述積體電路上的狀態機、或不可複製功能邏輯驅動器420與積體電路上的狀態機的組合,可利用與大型快閃記憶體陣列470相關聯的周邊電路系統475中的讀取、程式化與抹除邏輯來根據本揭露所述的物理不可複製功能程序應用偏壓施加方案,以改變物理不可複製功能區塊471中的記憶體胞元的臨限電壓。
物理不可複製功能區塊可由保護邏輯474支援,以阻止對基於物理不可複製功能的資料集或對儲存所述資料集的記憶體胞元進行意外性存取或未經授權的存取。所述啟動區塊可包括寫入鎖定特徵(write lock-out feature),以為包括記憶體陣列的積體電路保證資料完整性(data integrity)。所述啟動區塊可儲存將積體電路初始化所必需的碼,且在所述碼丟失時調用恢復常式(recovery routine)。所述啟動區塊可儲存對積體電路中的快閃記憶體陣列進行程式化及抹除所必需的碼。所述參數區塊可儲存參數資料。所述保護邏輯474被耦接至記憶體區塊及物理不可複製功能區塊471,以被保護免遭意外性修改或未經授權的修改。保護記憶體區塊免遭修改(包括利用保護碼(rotection code))的一個實例示出於洪(Hung)等人在2015年8月27日發佈且名稱為「使用非揮發性保護碼及揮發性保護碼來進行非揮發性記憶體資料保護(Nonvolatile Memory Data Protection Using Nonvolatile Protection Codes and Volatile Protection Codes
)」的美國專利申請公開案第US 2015-0242158號中,所述美國專利申請公開案併入本揭露供參考,就像完全陳述於本揭露中一樣。
在一些實施例中,保護邏輯474經配置以抑止回應於在抑止狀態的指示(indicator)的程式化及/或抹除程序,以使得對於物理不可複製功能資料集的改變被抑止。因此,若指示(indicator)被設定,相關聯於被物理不可複製功能邏輯與驅動器420應用的快閃記憶體陣列470的周邊電路系統475將不應用程式化與抹除脈衝至物理不可複製功能區塊471。指示(indicator)可為熔絲(fuse)、單次程式化胞元(one-time-programming;OPT)、以及暫存器。
在一些實施例中,保護邏輯474可被實作以在執行用於在物理不可複製功能區塊471中執行產生與儲存金鑰的操作之前進行鑑認程序。可藉由使用例如是密碼、指紋以及硬體金鑰實作鑑認程序。
參照圖4A至圖4D來說明可用於依賴於已經歷共同處理(例如製造序列或共同偏壓施加方案)的電荷陷獲記憶體胞元中臨限電壓的相異性來產生資料集的程序,所述共同處理會使得電荷穿隧進或穿隧出記憶體胞元中的電荷儲存結構,進而改變儲存於所述電荷儲存結構中的電荷的量。使得起始分佈被建立的共同處理在以下意義上可為「不可複製」的:由此共同處理得到的臨限電壓基於各組中的個別電荷陷獲胞元中的程序、電壓及溫度(process, voltage and temperature)的變化而在一組電荷陷獲記憶體胞元與另一組電荷陷獲記憶體胞元之間以及在一個積體電路與另一積體電路之間不同。出於此種原因,即使知曉所述共同處理,人們仍無法預測臨限電壓的變化,且因此無法預測根據彼等變化而產生的所得資料集。
圖4A是臨限電壓與胞元計數關係的曲線圖,其說明一組可程式化記憶體胞元中的各記憶體胞元的起始臨限值分佈500,起始臨限值分佈500是在物理不可複製功能程序開始時建立的。出於示例性目的,在所述分佈內表示出某些點,以代表位址Addr=0、1、2、3、4、及5處的記憶體胞元的臨限電壓。可看出,特定胞元的臨限電壓與記憶體胞元的位址無關。
本揭露使用用語「位址」來代表可用於根據記憶體胞元的物理次序來選擇記憶體胞元的邏輯訊號。在記憶體技術中,對位址進行解碼以產生邏輯訊號,進而對用於存取記憶體胞元的偏壓施加電路系統進行控制。在一些實施方案中,「位址」可為不需要進行解碼的邏輯訊號。在一些實施方案中,胞元的「位址」可為例如以下在圖20所示的遮罩(mask)或映射表(mapping table)中的位元。可藉由形成遮罩來對位址進行組合,且可以遮罩的形式儲存經組合的位址,其中所述遮罩中的每一條目啟用(enable)或停用(block)對應位址處的記憶體胞元。
起始臨限值分佈500可因作為蝕刻程序或沈積程序(例如在製造中使用的涉及將積體電路暴露於電漿或離子中以在記憶體胞元上方形成經圖案化金屬層的程序)的結果在製造完成時自然發生的電荷陷獲而出現。在替代實施例中,可例如使用由積體電路上的控制器控制的偏壓施加操作(例如以下所述的抹除操作等)來建立起始臨限值分佈500。在一個實例中,起始分佈是使用頁面抹除操作或區塊抹除操作針對一組可程式化記憶體胞元中的所有成員而建立,其中區塊包括多個由可程式化記憶體胞元形成的頁面。參見2016年9月29日發佈且名稱為「快閃記憶體中的頁面抹除(Page Erase in Flash Memory
)」的美國專利申請公開案第2016/0284413 A1號。使得起始分佈被建立的程序是在未按照位址在一組中的記憶體胞元中進行區分的情況下執行。使得起始分佈被建立的程序可為物理不可複製功能,以使起始分佈對於經歷所述程序的每一組可程式化記憶體胞元而言是獨有的。
在本說明中,起始臨限值分佈500具有如圖所示的上部臨限位準(upper threshold level),所述上部臨限位準表示使一組中的記憶體胞元具有較高臨限值的概率是極低的臨限位準。可例如在用於建立起始臨限值分佈500的演算法中將此上部臨限位準設定為例如抹除驗證位準(erase verify level)。
圖4B說明物理不可複製功能中的下一階段,其中將具有位於分界線以下的臨限值的記憶體胞元辨識為具有處於起始分佈的第一部分510中的臨限電壓的記憶體胞元的子集中的成員。此外,將具有位於分界線以上的臨限值的記憶體胞元辨識為具有處於起始分佈的第二部分520中的臨限電壓的記憶體胞元的子集中的成員。因此,一組可程式化記憶體胞元具有臨限值處於起始分佈的第一部分中的第一子集(例如Addr=0、3、及4)、以及臨限值處於起始分佈的第二部分中的第二子集(例如,Addr=1、2、及5)。
可藉由以下方式來確立第一子集及第二子集中的記憶體胞元的位址:使用分界線上的讀取電壓對可程式化記憶體胞元應用掃描操作,且將返回第一邏輯狀態的記憶體胞元的位址記錄為第一子集並將返回第二邏輯狀態的記憶體胞元的位址記錄為第二子集。對所述位址的記錄可保存關於用於提供資料集的子集中的每一者中的記憶體胞元的位置的資訊。
在一些實施例中,可使用查找操作(finding operation)來確定分界線,所述查找操作產生第一子集(具有位於分界線以下的臨限值)中的可程式化記憶體胞元的計數及第二子集(具有位於分界線以上的臨限值)中的可程式化記憶體胞元的計數。可將所述計數進行比較,以生成所述比率。可將所述比率設定成能確保使資料集中0及1的數目足以維持安全資料集的值。舉例而言,可期望使0對1的比率接近1。對於實際的實施例,目標比率範圍可例如介於2/3與3/2之間,在此情形中,每一子集具有一整組中記憶體胞元的40%至60%。可根據使用本揭露所述技術的特定積體電路的設計規格來調整目標比率範圍。
一組中的個別電荷陷獲胞元的臨限電壓可隨時間漂移,以致起始臨限值分佈500代表的是僅在短時間內穩定的分佈。因此,依賴於起始分佈來生成穩定資料集對於某些類型的記憶體胞元是不切實際的,在該些類型的記憶體胞元中,此種漂移可使臨限值位於分界線一側上的某些胞元中的臨限電壓在一個時間點漂移至分界線的另一側。因此,應用某些技術來將起始分佈轉變成對臨限電壓的此種漂移不敏感的穩定資料集。
一種用於將起始分佈轉變成穩定資料集的技術涉及使用第一子集及第二子集中的記憶體胞元的位址。在此種技術中,基於該些相異臨限值的資料集可包括子集中的一或二者的位址的數列、或包括對位址處的胞元進行停用或啟用的條目的遮罩。在圖4A所示實例中,第一子集及第二子集的位址的數列可為圖中以二進制形式表達的0、3、4、…、1、2、5…、或者此序列的變化形式。當然,在特定實施例中,在位址的數列中可存在數百、數千、或數百萬個位址。經數列化的位址可儲存於積體電路上的記憶體(例如,與圖4D所示一組不同的受保護記憶體區塊)中。此種受保護記憶體區塊可為提供以極低位元錯誤率、且在一些實例中於不使用錯誤校正碼的情況下遞送資料集這一能力的非揮發性穩定記憶體。在替代實施例中,第一子集及第二子集中的胞元的位址可由例如以下參照圖20所述的遮罩表示。
如圖中所示,根據另一種技術,可使用相同的組的非揮發性記憶體胞元來創建基於臨限電壓的穩定資料集。為達成此種實施例,可對第二子集中的記憶體胞元執行程式化操作以使其臨限電壓如在圖4C所示,被移動至第一驗證位準以上的分佈525中,在此實例中,所述第一驗證位準可高於起始臨限值分佈500的上部臨限位準。在其他實施例中,第一驗證位準可低於起始臨限值分佈500的上部臨限位準,只要可如下所述生成充足的感測容限(read margin)即可。
在使用第一驗證位準執行程式化操作之後,可得到類似圖4C所示分佈那樣的改變後分佈(changed distribution)。所述程式化操作改變第二子集中的記憶體胞元的臨限電壓,以在第一子集與第二子集之間建立感測容限530。感測容限530可被設計成寬至足以確保以下操作的可靠性:讀取資料集,以判斷特定記憶體胞元是第一子集中還是第二子集中的成員。在建立圖4C所示改變後分佈之後,可使用處於感測容限530內的用於讀取的讀取電壓VR
來讀取所述一組記憶體胞元。感測容限530可為顯著(足夠大)的,以使讀取操作中出現錯誤的可能性是極低的。
表1是代表儲存於同一組記憶體胞元中的資料集的表,其在第一行中示出所述一組中的記憶體胞元的順序位址且在第二行中示出代表由物理不可複製功能程序產生的資料集的資料值(或金鑰)。在此表中,對位址0至5處的記憶體胞元進行讀取會得到資料值1 0 0 1 1 0。在實際的實施例中,資料集的長度可為數百、數千、或數百萬個位元。
表1:
圖5A至圖5D及表2是正如圖4A至圖4D及表1一樣的圖式序列,其代表對一組電荷陷獲記憶體胞元執行相同物理不可複製功能程序的另一實例。在此實例中,即使物理不可複製功能程序相同,所得資料集亦不同。
圖5A說明包括位址Addr=0、1、2、3、4、及5處的記憶體胞元在內的一組可程式化記憶體胞元的起始臨限值分佈600。所述起始分佈具有上部臨限位準。
圖5B說明起始分佈的第一部分610及第二部分620。所述一組可程式化記憶體胞元具有臨限值處於起始分佈的第一部分中的第一子集(例如,Addr=1、2、3及4)、以及臨限值處於起始分佈的第二部分中的第二子集(例如,Addr=0及5)。基於該些相異臨限值的資料集可包括子集中的一或二者中的某些或全部胞元的位址的數列。在圖5A所示實例中,第一子集中的某些或全部胞元的位址與第二子集中的某些或全部胞元的位址的數列可為以數位形式表達的(1, 2, 3, 4, …); (0, 5…)、或此序列的變化形式。如上所述,經數列的位址可儲存於積體電路上的記憶體(例如與其中以二進制形式示出位址的圖5D所示一組不同的受保護記憶體區塊)中。此種受保護記憶體區塊可為提供以極低位元錯誤率、且在一些實例中於不使用錯誤校正碼的情況下遞送資料集這一能力的非揮發性穩定記憶體。
圖5C說明在對可程式化記憶體胞元的第二子集應用偏壓施加操作(例如,程式化)以在第一子集與第二子集之間建立感測容限630之後所得的結果。舉例而言,當比率處於目標比率範圍內時,第二子集可包括具有位於分界線以上的臨限值的可程式化記憶體胞元。所述偏壓施加操作將第二子集中的可程式化記憶體胞元的臨限值改變成臨限值分佈625。臨限值分佈625可位於第一驗證位準以上。
圖5D示出基於該些相異臨限值的資料集,所述資料集包括子集中的一或二者的位址的數列、或者包括關於所述位址處的胞元的條目的遮罩。在圖5B所示實例中,第一子集的位址與第二子集的位址的數列可為圖中以二進制形式表達的(1, 2, 3, 4, …); (0, 5…)、或此序列的變化形式。當然,在特定實施例中,在位址的數列中可存在諸多位址。經數列位址可儲存於積體電路上的記憶體(例如與圖5D所示一組不同的受保護記憶體區塊)中。此種受保護記憶體區塊可為提供以極低位元錯誤率、且在一些實例中於不使用錯誤校正碼的情況下遞送資料集這一能力的非揮發性穩定記憶體。
表2是在第一行中示出所述一組中的記憶體胞元的順序位址且在第二行中示出代表由物理不可複製功能程序產生的資料集的資料值(或金鑰)的表。在此表中,對位址0至5處的記憶體胞元進行讀取會得到與圖4A至圖4D及表1所示實例中所產生的資料值不同的資料值0 1 1 1 1 0。
表2:
因此,所述資料集是所述一組電荷陷獲記憶體胞元中的不同成員由於在所述一組中引發電荷陷獲的共同處理而具有的相異臨限電壓的函數。可使用不同組的可程式化記憶體胞元為物理不可複製功能程序的每一實例來達成此種結果。對於某些類型的記憶體胞元,可使用同一組可程式化記憶體胞元藉由為每一新的資料集創建新的起始分佈來產生多個資料集。此外,對於儲存於與用於建立相異分佈的一組相同的記憶體胞元中的資料集,可由新的資料集來替換舊資料集。
圖6是以參照圖4A至圖4D、表1及圖5A至圖5D及表2所解釋的方式在包括可程式化電荷陷獲記憶體胞元的積體電路上產生穩定資料集的流程圖200。在此實例中,程序以使一組快閃記憶體胞元具有臨限值的起始分佈而開始(步驟201),所述起始分佈是由如上所述得到相異臨限電壓的共同物理不可複製功能程序而建立。在此實例中,所述程序包括查找記憶體胞元,例如藉由確定所述一組記憶體胞元內具有位於分界線以上的臨限值的第一子集的位址以及具有位於分界線以下的臨限值的第二子集的位址(步驟210)。可憑經驗來選取所述分界線並將其作為參數儲存於對物理不可複製功能的執行進行控制的系統中。作為另一選擇,如此實例中所說明,可根據起始分佈的特性及資料集的期望特性來調整分界線。在此種替代方案中,所述程序確定第一子集中記憶體胞元的計數對第二子集中記憶體胞元的計數的比率(步驟220)。此比率可為例如1/1等的數值或可例如落入根據資料集的預期用途而選取的可接受範圍3/2至2/3中。
若所述比率是不可接受的(步驟230),則所述程序調整分界線(步驟240)並返回至步驟210以辨識第一子集及第二子集。若所述比率是可接受的(步驟230),則所述程序移動至基於記憶體胞元的被辨識出的第一子集及第二子集來建立穩定資料集的步驟。如上所述,在一種替代方案中,所述程序可按順序儲存第一子集中的位址並按順序儲存第二子集中的位址,且使用經數列位址作為穩定資料集。
在圖6所說明的替代方案中,用於建立穩定資料集的程序包括:對第二子集中的記憶體胞元應用偏壓施加操作以在所述一組記憶體胞元中建立改變後分佈,所述改變後分佈在第一子集中的記憶體胞元與第二子集中的記憶體胞元之間具有感測容限(步驟250)。對於電荷陷獲記憶體胞元,此偏壓施加操作可包括使用充分高於臨限電壓的分界線的驗證位準來進行程式化操作(例如遞增步階脈衝程式化(incremental step pulsed programming,ISPP)),以建立感測容限。可僅對第二子集中具有位址的記憶體胞元應用偏壓施加操作。如此一來,可藉由使用位於感測容限內的讀取電壓進行讀取操作來達成對第一子集中的記憶體胞元的辨識及第二子集中的記憶體胞元的辨識。圖6所示程序因此包括藉由使用感測容限中的讀取電壓讀取所述一組中的記憶體胞元序列來輸出資料集的步驟(260)。可將所輸出資料集提供至外部系統(例如對物理不可複製功能的執行進行控制的系統),以在安全協定中用作共享秘密。所述資料集可穩定地儲存於所述一組記憶體胞元中,乃因感測容限使以下情形具有極低的可能性:最初被辨識為第二子集中的成員的記憶體胞元將使其臨限電壓漂移至為第一子集所辨識的範圍中。
圖7A至圖7D以及表3說明可用於基於臨限值的起始分佈來產生穩定資料集的另一種技術。
圖7A說明包括位址Addr=0、1、2、3、4、5及6處的記憶體胞元在內的一組可程式化記憶體胞元的起始臨限值分佈700。
圖7B說明起始分佈的第一部分710、第二部分720、及第三部分730。起始分佈的第一部分包括小於上部臨限位準且位於第一分界線以下的臨限值,起始分佈的第二部分包括小於上部臨限位準且位於較第一分界線大的第二分界線以上的臨限值,且起始分佈的第三部分包括位於第一分界線與第二分界線之間的臨限值。可包括用於基於資料集的期望特性來查找第一分界線及第二分界線中的一或二者的程序。
所述一組可程式化記憶體胞元具有臨限值處於起始分佈的第一部分中的子集(例如,Addr=0及3)、臨限值處於起始分佈的第二部分中的子集(例如,Addr=2及5)、以及臨限值處於起始分佈的位於第一讀取位準與第二讀取位準之間的第三部分中的子集。
所述一組中的個別電荷陷獲胞元的臨限電壓可隨時間漂移,以致起始臨限值分佈700代表的是僅在短時間內穩定的分佈。因此,依賴於起始分佈來生成穩定資料集對於某些類型的記憶體胞元是不切實際的,在該些類型的記憶體胞元中,此種漂移可使臨限值位於分界線一側上的某些胞元中的臨限電壓在一個時間點漂移至分界線的另一側。因此,應用某些技術來將起始分佈轉變成對臨限電壓的此種漂移不敏感的穩定資料集。
如圖中所示,一種用於基於臨限電壓來建立穩定資料集的技術可使用同一組非揮發性記憶體胞元。為達成此種實施例,可對具有位於第一分界線與第二分界線之間的臨限值的子集中的記憶體胞元執行程式化操作,以使其臨限電壓移動至第一驗證位準以上,在此實例中,所述第一驗證位準高於起始臨限值分佈500的上部臨限位準。在其他實施例中,所述第一驗證位準可小於起始臨限值分佈500的上部臨限位準,只要可如下所述生成充足的感測容限即可。
在使用第一驗證位準執行程式化操作之後,會得到類似圖7C所示分佈那樣的改變後分佈。所述程式化操作改變記憶體胞元的臨限電壓,以在第一子集與第二子集之間建立感測容限740。感測容限740可被設計成寬至足以確保以下操作的可靠性:使用感測容限中的讀取電壓來讀取資料集,以判斷特定記憶體胞元是第一子集中還是第二子集中的成員。在建立圖7C所示改變後分佈之後,可使用處於感測容限740內的讀取電壓VR
來讀取所述一組記憶體胞元。感測容限740可為顯著的,以使讀取操作中出現錯誤的可能性是極低的。
表3是代表儲存於同一組記憶體胞元中的資料集的表,其在第一行中示出所述一組中的記憶體胞元的順序位址且在第二行中示出代表由物理不可複製功能程序產生的資料集的資料值(或金鑰)。在此表中,對位址0至6處的記憶體胞元進行讀取會得到資料值1 X 0 1 X 0 X,其中「X」是隨意值(don’t care),乃因其與對為建立感測容限而經歷偏壓施加操作的子集中的記憶體胞元進行感測所得的結果相對應。在實際的實施例中,所述資料集的長度可為數百或數千個位元。
表3:
在此實例中,使用所述一組可程式化記憶體胞元的第一子集及第二子集來提供資料集(例如,「金鑰資料」)。舉例而言,使用位址Addr=0、2、3、及5處的第一子集及第二子集中的可程式化記憶體胞元提供資料集1010,其中資料「1」是使用位址Addr=0及3處的第一子集中的可程式化記憶體胞元而提供,且資料「0」是使用位址Addr=2及5處的第二子集中的可程式化記憶體胞元而提供。所述資料集並不包括所述一組可程式化記憶體胞元的用於建立感測容限的子集(例如,位址Addr = 1、4、及6處)中的資料,所述子集具有位於起始分佈之外的臨限值分佈735中的臨限值。在此實例中,所示「X」表示不用於資料集的記憶體胞元。
在一些實施例中,此實例中的偏壓施加操作亦可在子集中的其他者之間建立第二感測容限750,第二感測容限750寬至足以甚至在其中程序、電壓、溫度(process, voltage, temperature,PVT)變化相對較大的條件下亦能為感測可程式化記憶體胞元的第二子集與第三子集之間的臨限電壓差別確保可靠性。此資訊可用於產生資料集。
位址映射(address map)可藉由對所述一組可程式化記憶體胞元中的可程式化記憶體胞元,應用掃描操作,以記錄第一子集、第二子集、及第三子集中用於提供資料集的可程式化記憶體胞元的位址來構建。舉例而言,可用跳過旗標(skip flag)來標記第三子集中的可程式化記憶體胞元的位址,因此在提供資料集時將不讀取第三子集中的可程式化記憶體胞元,所述資料集可用作鑑認協定或加密協定的金鑰或者用作其他類型的秘密資料值或獨有資料值。作為另一選擇,可如以下參照圖20所述來使用遮罩邏輯。
回應於查問,物理不可複製功能ID電路系統邏輯(例如,安全邏輯125,圖1;安全電路450,圖2)可使用以如下方式提供的資料集來提供金鑰:根據在位址映射中所記錄的一組可程式化記憶體胞元的第一子集及第二子集的位址,使用具有在位址映射中所記錄的位址的可程式化記憶體胞元,藉此跳過或不使用所述一組可程式化記憶體胞元的第三子集中具有位址的可程式化記憶體胞元。
如上所述,在替代程序中,基於該些相異臨限值的資料集可包括子集中的一或二者中的某些或全部胞元的位址的組合(例如數列)。圖7D示出基於該些相異臨限值的資料集,所述資料集包括子集中的一或多者的位址的數列。在圖7D所示實例中,包括存在於各分界線之間的記憶體胞元的第一子集的位址與包括存在於第一分界線以下的記憶體胞元的第二子集的位址的數列,其中可為圖中以二進制形式表達的(1, 4, 6, …); (0, 3,…),或此序列的變化形式。當然,在特定實施例中,在位址的數列中可存在數百或數千個位址。經數列的位址可儲存於積體電路上的記憶體(例如與具有起始分佈的一組記憶體胞元不同的受保護記憶體區塊)中。此種受保護記憶體區塊可為提供以極低位元錯誤率、且在一些實例中於不使用錯誤校正碼的情況下遞送資料集這一能力的非揮發性穩定記憶體。
在圖4D、圖5D、及圖7D所示實例中,資料集是各子集中的一或多者(例如第一子集中的某些或全部胞元、第二子集中的某些或全部胞元、以及第三子集中的某些或全部胞元)的位址的數列、或此序列的變化形式。在一些實施例中,可使用各子集中僅一者(例如第三子集)中的記憶體胞元的位址作為資料集。可使用不同於數列或除了數列之外的邏輯函數(例如雜湊函數或遮罩形式)來組合位址,以形成包括位址組合的資料集。
圖8是以參照圖7A至圖7D以及表3所解釋的方式在包括可程式化電荷陷獲記憶體胞元的積體電路上產生穩定資料集的流程圖800。在此實例中,程序以使一組快閃記憶體胞元具有臨限值的起始分佈而開始(步驟801),所述起始分佈是由如上所述得到相異臨限電壓的共同處理而建立。在此實例中,所述程序包括確定所述一組記憶體胞元內的位址,所述一組記憶體胞元包括具有位於第一分界線以下的臨限值的胞元的第一子集、具有位於第二分界線以上的臨限值的胞元的第二子集、以及具有位於所述分界線之間的臨限值的胞元的第三子集(步驟810)。所述分界線可憑經驗或以其他方式來選取,並將其作為參數儲存於對物理不可複製功能的執行進行控制的系統中。作為另一選擇,如此實例中所說明,可根據起始分佈的特性及資料集的期望特性來調整分界線。在此種替代方案中,所述程序確定第一子集中記憶體胞元的計數對第二子集中記憶體胞元的計數的比率(步驟820)。接著,演算法判斷所述比率是否與預期範圍相匹配(步驟830)。若在步驟830處判斷出所述比率並不恰當,則調整所述分界線(步驟835),且所述程序返回至步驟810直至達成適當比率為止。若在步驟830處所述比率是恰當的,則演算法繼續進行以建立代表所述分佈的可用作獨有金鑰的穩定資料集。如上所述,在一種替代方案中,可組合各個子集中的記憶體胞元的位址以形成獨有資料集,並將所述獨有資料集儲存於受保護記憶體中。在圖8所說明的實施例中,所述程序繼續進行以對第三子集中的記憶體胞元應用偏壓施加操作,進而建立在第一子集與第二子集之間具有感測容限的臨限值的改變後分佈(步驟832),並且記錄第三子集中的記憶體胞元的位址。如此一來,可藉由第三子集的位址以及自使用感測容限內的讀取電壓在跳過第三子集中的記憶體胞元的同時感測的第一子集及第二子集所讀取的資料值來代表穩定資料集(834)。可如以上在各種替代方案中所述使用資訊的其他組合來建立穩定資料集。此外,在一些實施例中,可省略偏壓施加步驟832。
圖9是在一組快閃記憶體胞元中使用臨限值的起始分佈來建立穩定資料集的流程圖900。程序開始於使一組快閃記憶體胞元具有臨限值的起始分佈(步驟901)。接下來,所述程序確定具有位於第一分界線以上的臨限值的記憶體胞元的第一子集的位址、具有位於第二分界線以下的臨限值的記憶體胞元的第二子集的位址、以及具有位於所述分界線之間的臨限值的記憶體胞元的第三子集的位址(步驟910)。將各子集中的至少一者中的記憶體胞元的位址序列儲存於與所述一組記憶體胞元分開的記憶體中(步驟920)。可輸出作為儲存於所述位址序列中的位址的函數或與儲存於所述位址序列中的位址相等的資料集(步驟930)。如此處所討論,資料集可與隨機數合併而產生改良的金鑰。
圖10A至圖10C說明一種可用於將一組記憶體胞元中的電荷陷獲記憶體胞元的臨限值設定成具有相異臨限電壓的起始分佈的程序。圖10A說明一組可程式化記憶體胞元的初始臨限值分佈816。在此實例中,所述初始臨限值分佈是在程式化操作或抹除操作之前的分佈,所述程式化操作引發電子或負電荷穿隧進電荷儲存結構以增大胞元的臨限電壓,所述抹除操作引發電子穿隧出電荷儲存結構或引發正電荷穿隧進電荷儲存結構以減小胞元的臨限電壓。在此實例中,所述一組中的記憶體胞元可具有任何初始臨限值分佈。在此實例中,所述初始臨限值分佈包括位於第一驗證位準以下的相對低的臨限值範圍。
圖10B說明將所述一組可程式化記憶體胞元中的所有成員程式化至較第一驗證位準大的臨限值範圍817所得的結果。此類似在快閃記憶體中使用的預程式化操作。
圖10C說明對所述一組可程式化記憶體胞元中的所有成員進行抹除以建立起始分佈818中的臨限值所得的結果,其中所述起始分佈包括位於第二驗證位準以下的臨限值。在步驟830中的分佈可用作上述程序的起始分佈。亦可應用其他技術,包括使用圖10B所示臨限值範圍817作為起始分佈。
本揭露所述的用於建立起始分佈的技術(包括參照圖10A至圖10C所述的技術)可應用於電荷陷獲記憶體胞元。圖10D、圖10E、及圖10F中說明電荷陷獲記憶體胞元的實例。
圖10D是形成於基板840上的平坦浮置閘極記憶體胞元的簡化圖。源極區841及汲極區842安置於電荷陷獲結構的相對兩側上。控制閘極843上覆於電荷陷獲結構上,且可為例如字元線的一部分。所述電荷陷獲結構包括通常由氧化矽形成的穿隧層844、通常由多晶矽形成的浮置閘極層845、包括多層式氧化物-氮化物-氧化物結構的阻擋介電結構,所述多層式氧化物-氮化物-氧化物結構具有氧化物層846、氮化物層847、及氧化物層848。對類似圖10D所示浮置閘極記憶體胞元那樣的浮置閘極記憶體胞元進行程式化及抹除等物理功能會引發電荷穿隧而改變被陷獲於浮置閘極845中的電荷。被陷獲電荷的量根據每一胞元的物理特性而有所變化,包括程序變化、溫度變化、電壓變化等。因此,用於建立類似上述起始臨限值那樣的起始臨限值的操作會在單個裝置上的大量記憶體胞元內得到處於相對寬廣的分佈中的臨限電壓。
圖10E是形成於基板850上的平坦介電電荷陷獲記憶體胞元的簡化圖。源極區851及汲極區852安置於電荷陷獲結構的相對兩側上。控制閘極853上覆於所述電荷陷獲結構上,且可為例如字元線的一部分。所述電荷陷獲結構包括通常由氧化物或由多個薄介電層形成的穿隧層856。在穿隧層856上方安置有通常包含氮化矽或其他介電材料的電荷陷獲層857。在電荷陷獲層857上方具有通常由另一種介電氧化物(例如氧化矽)形成的阻擋層858。與浮置閘極記憶體胞元一樣,對類似圖10E所示記憶體胞元那樣的記憶體胞元進行程式化及抹除等物理功能會引發電荷穿隧而改變被陷獲於電荷陷獲層857中的電荷。被陷獲電荷的量會根據每一胞元的物理特性而有所變化,包括程序變化、溫度變化、電壓變化等。因此,用於建立類似上述起始臨限值那樣的起始臨限值的操作會在單個裝置上的大量記憶體胞元內得到處於相對寬廣的分佈中的臨限電壓。
圖10F是形成於基板860上的三維(3D)垂直反及快閃記憶體結構的簡化圖。垂直通道結構(例如,863)安置於由字元線(例如,867)形成的堆疊之間。例如介電電荷陷獲結構或浮置閘極結構等電荷儲存結構安置於字元線與垂直通道結構863之間。垂直通道結構863耦接至位元線869。在所述基板中,安置有共用源極導體,進而經由垂直通道結構863在位元線869與基板860之間為反及串建立電流路徑。圖10F所示快閃記憶體結構亦可用於使用程式化操作或抹除操作在裝置上的大量記憶體胞元內建立臨限電壓的相對寬廣的分佈。
其他類型的快閃記憶體胞元結構(包括其他三維記憶體技術)亦可部署以用於本揭露所述的物理不可複製功能程序。
圖11示出應用初始化偏壓施加操作以將一組中的可程式化記憶體胞元的臨限值設定成起始分佈的示例性流程圖300,所述初始化偏壓施加操作可應用於電荷儲存記憶體胞元,包括類似上述記憶體胞元那樣的記憶體胞元。在步驟310處,將所述一組可程式化記憶體胞元中的所有成員程式化至較第一驗證位準大的臨限值範圍。在一個實例中,可使用被稱為遞增步階脈衝程式化(ISPP)序列的程式化演算法來對所述一組可程式化記憶體胞元中的所有成員進行程式化,其中增大脈衝高度並執行程式化驗證步驟直至滿足期望臨限位準為止。在步驟320處,對所述一組可程式化記憶體胞元中的所有成員進行抹除,以建立起始分佈中的臨限值,所述起始分佈包括位於第二驗證位準以下的臨限值。
根據此種建立起始分佈的程序用於程式化操作或抹除操作的驗證位準可與用於對同一積體電路上的大型記憶體所應用的程式化操作及抹除操作的驗證位準相同。作為另一選擇,可視特定實施方案的需要來調整用於建立起始分佈的驗證位準,以使起始分佈具有對於用於如本揭露所述創建資料集所期望的特性。雖然在此實例中使用其中將淨正電荷添加至電荷陷獲結構以減小胞元的臨限值的「抹除」程序來生成起始分佈,然而,亦可使用其中將淨負電荷添加至電荷陷獲結構以增大胞元的臨限值的「程式化」程序。此外,如上所述,起始分佈可為由製造程序或使一組記憶體胞元經歷的其他程序而得到的臨限值的「初始」分佈。「初始」分佈及由抹除操作或程式化操作而得到的分佈均可被視為物理不可複製功能。
此外,對於基於可程式化電阻記憶體胞元的非揮發性記憶體,可使用其中引起電阻的淨減小以為胞元的讀取電流減小臨限電壓的「設定(set)」程序來生成起始分佈。作為另一選擇,亦可使用其中引起電阻的淨增大以為胞元的讀取電流增大臨限電壓的「重設(reset)」程序。此外,如上所述,起始分佈可為由製造程序或使一組可程式化電阻記憶體胞元經歷的其他程序而得到的臨限值的「初始」分佈。「初始」分佈及由設定操作或重設操作得到的分佈均可被視為物理不可複製功能。
圖12A至圖12C說明另一種用於使用物理不可複製功能來為參照圖9所述類型的電荷陷獲記憶體胞元產生資料集的技術。在圖12A中,說明例如可使用物理不可複製功能(如使用抹除驗證功能來使一組記憶體胞元中的各記憶體胞元的臨限值移動至上部臨限位準以下的抹除操作)生成的起始臨限值分佈1200。可將所述起始分佈表徵為具有圖中所示的上部臨限位準及下部臨限位準,且為便於進行本說明,可針對為記憶體陣列而配置的標準讀取操作將具有處於起始臨限值分佈1200內的臨限值的記憶體胞元表徵為代表資料值「0」。
圖12B說明在建立資料集時的下一步驟。在此實例中,使用自起始臨限值分佈1200的一側開始移動的讀取電壓VR
的位準來讀取所述一組中的記憶體胞元。假定所述移動的讀取電壓是自下部臨限位準開始,則使用讀取電壓來讀取所述一組記憶體胞元,並確定具有位於所述臨限值以上及以下的臨限值的記憶體胞元的數目的計數。使此讀取電壓移動直至處於所述讀取電壓以上及以下的記憶體胞元的數目與期望參數相匹配(例如約相等、或具有約為1的比率)為止。在此階段,可將具有在子分佈1210內位於讀取電壓VR
以下的臨限值的記憶體胞元表徵為代表資料值「1」,且可將具有在子分佈1220內位於讀取電壓VR
以上的臨限值的記憶體胞元表徵為具有資料值「0」。舉例而言,讀取操作可持續進行至具有低於讀取位準的臨限位準的可程式化記憶體胞元的計數,具有高於讀取位準的臨限位準的可程式化記憶體胞元的計數的比率處於目標比率範圍內為止。舉例而言,當具有低於讀取位準的臨限位準的可程式化記憶體胞元的計數,對應於一組中的記憶體胞元的約50%時,目標比率範圍內的比率可實質上等於1。可建立使所述比率處於目標比率範圍(例如40%至60%)內的讀取位準來作為用於對一組可程式化記憶體胞元中的各記憶體胞元進行讀取以產生穩定資料集的讀取電壓VR
。
圖12C說明在建立資料集時的下一步驟。根據此種技術,對上部讀取電壓VR
+及下部讀取電壓VR
-進行選取,以界定起始臨限值分佈1200的其中使記憶體胞元對資料值進行強儲存的子分佈。一旦如結合圖12B所述確定出讀取電壓VR
,便可藉由在讀取電壓VR
周圍建立感測容限,而在分佈中建立第一分界線及第二分界線,使得對應於VR
-與VR
+之間的差值1240的感測容限1230位於第一分界線與第二分界線之間,且使讀取電壓VR
處於感測容限內。例如,對於一種特定類型的快閃記憶體胞元,第一分界線可位於與讀取位準減去300毫伏(mV)對應的臨限位準處,而第二分界線可位於與讀取位準加上300毫伏對應的臨限位準處。在另一實例中,第一分界線可位於與讀取電壓VR
的位準減去讀取位準的30%對應的臨限位準(下部讀取電壓VR
-)處,而第二分界線可位於與讀取電壓VR
的位準加上讀取位準的30%對應的臨限位準(上部讀取電壓VR
+)處。
可使用子分佈1211及子分佈1221內對資料值「1」及「0」進行強儲存的記憶體胞元來產生資料集。將此種記憶體胞元的位址記錄於積體電路上的記憶體中(例如穩定快閃記憶體區塊中、不同類型的非揮發性記憶體中、或例如靜態隨機存取記憶體或動態隨機存取記憶體等揮發性記憶體中)以供積體電路在例如加密及鑑認等安全協定中使用。可使用中心的讀取電壓值VR
以及提供強感測容限的所記錄位址來執行讀取操作。如此一來,僅利用了相對於讀取電壓對資料值進行強儲存的記憶體胞元,進而使在讀取資料時,因臨限值漂移而發生錯誤的概率是極低的。
圖13是以參照圖12A至圖12C所解釋的方式在包括可程式化電荷陷獲記憶體胞元的積體電路上產生穩定資料集的示例性流程圖1300。在此實例中,程序以使一組快閃記憶體胞元具有臨限值的起始分佈而開始(步驟1301),所述起始分佈是由如上所述得到相異臨限電壓的共同處理而建立。在此種替代方案中,使用移動的讀取位準(讀取電壓VR
)對所述一組中的記憶體胞元執行讀取操作(步驟1310)。所述程序確定具有低於當前讀取位準的臨限位準的可程式化記憶體胞元的計數,對具有高於當前讀取位準的臨限位準的可程式化記憶體胞元的計數的比率(步驟1320)。接著,所述程序判斷所述比率是否處於目標比率範圍內(步驟1330)。例如,當具有低於當前讀取位準的臨限位準的可程式化記憶體胞元的計數,對應於一組中的記憶體胞元的約130%時,目標比率範圍內的比率可實質上等於1。若所述比率並非處於目標比率範圍內(步驟1330,否),則可例如藉由使讀取位準遞增來調整讀取位準(步驟1340),其中對於步驟1310的第一次迭代,所述讀取位準可自位於分佈的最小臨限位準處或以下的臨限位準開始。接著,讀取操作返回至步驟1310並持續進行至所述比率處於目標比率範圍內(步驟1330,是)為止。建立使所述比率處於目標比率範圍內的讀取位準,來作為用於對所述一組可程式化記憶體胞元中的各記憶體胞元進行讀取以產生穩定資料集的讀取電壓VR
(圖12B)(步驟1350)。
若在步驟1330處所述比率處於目標比率範圍內,則所述程序繼續進行以基於資料集的期望特性來在分佈中,建立第一分界線及第二分界線中的一或二者(步驟1340)。例如,所述程序可在起始分佈(圖4B)中於讀取電壓VR
周圍建立感測容限,以使感測容限(例如,530,圖4C)位於第一分界線與第二分界線之間,且使讀取電壓VR
處於感測容限內。例如,第一分界線可位於與讀取位準減去300毫伏對應的臨限位準(下部讀取電壓VR
-)處,而第二分界線可位於與讀取位準加上300毫伏對應的臨限位準(上部讀取電壓VR
+)處。例如,第一分界線可位於與讀取位準減去讀取位準的30%對應的臨限位準處,而第二分界線可位於與讀取位準加上讀取位準的30%對應的臨限位準處。
圖13所示程序包括以下步驟1360:確定所述一組記憶體胞元內具有由第一分界線界定的第一子集的位址、由第二分界線界定的第二子集的位址、以及具有位於第一分界線與第二分界線之間的臨限值的第三子集的位址,並使用所確定位址來建立代表所述分佈的可用作獨有金鑰的穩定資料集。
圖13所示程序包括以下步驟1370:藉由使用感測容限530(圖4)中的讀取電壓VR
對所述一組中的記憶體胞元序列進行讀取來輸出資料集。可將所輸出資料集提供至外部系統(例如對物理不可複製功能的執行進行控制的系統),以在安全協定中用作共享秘密。所述資料集可穩定地儲存於所述一組記憶體胞元中,乃因感測容限使以下情形具有極低的可能性:最初被辨識為第二子集中的成員的記憶體胞元將使其臨限電壓漂移至為第一子集所辨識的範圍中。
使用此種技術,資料集相依於被確定為對資料值進行強儲存的記憶體胞元的數目。此數目在一個起始分佈與下一起始分佈間可有所變化。因此,在產生資料集時,若胞元的數目大於資料集的期望大小,則可截去記憶體胞元序列,或者若胞元的數目小於資料集的期望大小,則可填補記憶體胞元序列。
圖14A至圖14C說明使用物理不可複製功能來為參照圖9所述類型的電荷陷獲記憶體胞元產生資料集的又一實例。在圖14A中,說明例如可如上所述使用物理不可複製功能生成的起始分佈1400。起始分佈1400可為隨著臨限位準遠離中心峰值延伸而具有相對對稱的下降(drop-off)的粗略高斯(Gaussian)分佈。然而,所述分佈不可能是實際上對稱的。如上所述,對稱性的此種缺失可在參照圖13所述的程序中使得不同數目的記憶體胞元對資料進行「強」儲存。根據圖14A至圖14C所示技術,可對強儲存資料的記憶體胞元的數目達成更嚴格控制。
如圖14A中所說明,可藉由使用第一讀取操作並執行使用當前讀取電壓迭代地讀取所述一組記憶體胞元中的各記憶體胞元以及對具有低於當前讀取位準的臨限值的記憶體胞元的數目進行計數的程序來查找可被表徵為對資料值「1」進行強儲存的記憶體胞元的子分佈1410,所述第一讀取操作施加以位於起始分佈1400的下部邊界處或附近的臨限值開始移動的讀取位準。當所述計數達到所規定臨限值時,則儲存當前讀取位準作為第一下部分界線電壓(下部讀取電壓VR
-)。
如圖14B中所說明,可藉由使用第二讀取操作並執行使用當前讀取電壓迭代地讀取所述一組記憶體胞元中的各記憶體胞元以及對具有高於當前讀取位準的臨限值的記憶體胞元的數目進行計數來查找可被表徵為對資料值「0」進行強儲存的記憶體胞元的第二子分佈1420,所述第二讀取操作施加以位於起始分佈1400的上部邊界處或附近的臨限值開始移動的讀取位準。當所述計數達到所規定臨限值時,接著儲存當前讀取位準作為第二上部分界線電壓(上部讀取電壓VR
+)。
如圖14C中所說明,第三子分佈1430包括具有位於第一分界線電壓(下部讀取電壓VR
-)與第二分界線電壓(上部讀取電壓VR
+)之間的臨限值的記憶體胞元。使用落入對資料值「1」進行「強」儲存的第一子分佈1410內以及落入對資料值「0」進行「強」儲存的第二子分佈1420內的記憶體胞元的位址,可藉由使用位於第一分界線與第二分界線之間的讀取電壓VR
對記憶體胞元進行讀取來產生資料集。在起始分佈可被表徵為粗略高斯分佈的情況下,可藉由對第一分界線電壓(下部讀取電壓VR
-)與第二分界線電壓(上部讀取電壓VR
+)求平均值來生成此讀取電壓。在其中起始分佈可朝更高臨限值或更低臨限值偏斜(skew)的實施例中,則可使用將分佈中的偏斜考量在內的公式來生成所述讀取電壓。
圖15是以參照圖14A至圖14C所解釋的方式在包括可程式化電荷陷獲記憶體胞元的積體電路上產生穩定資料集的示例性流程圖1500。在此實例中,程序以使一組快閃記憶體胞元具有臨限值的起始分佈而開始(步驟1501),所述起始分佈是由如上所述得到相異臨限電壓的共同處理而建立。在此實例中,所述程序包括確定所述一組記憶體胞元內,具有位於第一分界線以下的臨限值的第一子集的位址,及具有位於第二分界線以上的臨限值的第二子集的位址。以一種提供預定數目個對資料值「0」進行強儲存的記憶體胞元及預定數目個對資料值「1」進行強儲存的記憶體胞元的方式,來確定所述分界線。可將所述分界線作為參數儲存於對物理不可複製功能的執行進行控制的系統中。
在此種替代方案中,使用第一移動的讀取位準對所述一組中的記憶體胞元執行第一讀取操作(步驟1510)。所述程序確定具有位於第一讀取位準(下部讀取電壓VR
-)以下的臨限位準的可程式化記憶體胞元的第一計數(步驟1512)。接著,所述程序判斷所述第一計數是否與預定數目T1相匹配,或是否落入數目範圍內(步驟1514)。
若第一計數不被接受(步驟1514,否),則可例如藉由使第一讀取位準遞增來調整第一讀取位準(步驟1516),其中對於步驟1510的第一次迭代,所述第一讀取位準可自位於分佈的下部臨限位準處或以下的臨限位準開始。第一讀取操作接著返回至步驟1510並持續進行至第一計數被接受(步驟1514,是)為止。
圖15所示程序包括在起始分佈中建立第一分界線電壓(下部讀取電壓VR
-)作為使第一計數是預定數目或接近預定數目T1的第一讀取位準(步驟1518)。可確定並儲存具有位於第一分界線(下部讀取電壓VR
-)以下的臨限位準的記憶體胞元的位址,以在此步驟處或在稍後的步驟處當第二分界線被建立時建立代表所述分佈的可用作獨有金鑰的穩定資料集。
圖15所示程序包括使用第二移動的讀取位準(上部讀取電壓VR
+)對所述一組中的記憶體胞元進行第二讀取操作(步驟1520)。所述程序確定具有高於第二讀取位準的臨限位準的可程式化記憶體胞元的第二計數(步驟1522)。接著,所述程序判斷所述第二計數是否為可接受的,例如其是否與預定數目T2相匹配,或是否落入數目範圍內(步驟1524)。在一些實施例中,若第一讀取操作中的計數與第二讀取操作中的計數之和等於資料集的目標位元數目或資料集的目標位址數目或者處於所述目標位元數目的範圍內或所述目標位址數目的範圍內,則所述數目可被接受。
若第二計數不被接受(步驟1524,否),則可例如藉由使第二讀取位準遞減來調整第二讀取位準(步驟1526),其中對於步驟1520的第一次迭代,第二讀取位準可自位於分佈的上部臨限位準處或以上的臨限位準開始。第二讀取操作接著返回至步驟1520並持續進行至第二計數被接受(步驟1524,是)為止。
圖15所示程序包括在起始分佈中建立第二分界線作為使第二計數被接受的第二讀取位準(上部讀取電壓VR
+),並使用第一分界線及第二分界線來建立讀取電壓VR
,例如藉由根據以下方程式求平均值:VR
= (VR
- + VR
+) / 2 (步驟1528)。
雖然如圖15中所示,用於建立第一分界線的包括步驟1510、1512、1514、及1516的迭代是在用於建立第二分界線的包括步驟1520、1522、1524、及1526的迭代之前執行,然而,在其他實施例中,用於建立第二分界線的包括步驟1520、1522、1524、及1526的迭代可在用於建立第一分界線的包括步驟1510、1512、1514、及1516的迭代之前執行。
圖15所示程序可以類似圖13所示程序的步驟1360那樣的步驟繼續:確定所述一組記憶體胞元內由第一分界線界定的對資料值「1」進行強儲存的記憶體胞元的第一子集的位址以及由第二分界線界定的對資料值「0」進行強儲存的第二子集的位址。在一些實施例中,亦可使用具有位於第一分界線與第二分界線之間的臨限值的不對資料值進行強儲存的記憶體胞元的第三子集的位址來建立資料集。
圖15所示程序可以類似圖13所示程序的步驟1340那樣的步驟繼續:藉由使用感測容限中的讀取電壓VR
對所述一組中的記憶體胞元序列進行讀取來輸出資料集。可將所輸出資料集提供至外部系統(例如對物理不可複製功能的執行進行控制的系統),以在安全協定中用作共享秘密。所述資料集可穩定地儲存於所述一組記憶體胞元中,因VR
-與VR
+之間的感測容限使以下情形具有極低的可能性:最初被辨識為第一子集及第二子集中的成員的記憶體胞元將使其臨限電壓漂移至為另一子集所辨識的範圍中。
在一個實施例中,可藉由將一組可程式化記憶體胞元中的第一子集及第二子集分別規定成第一預定數目T1及第二預定數目T2,而對完整資料集(以胞元的數目來計算)的預定長度T進行設定,其中T = T1 + T2,其表示所述資料集中位元的數目。例如,第一目標計數範圍及第二目標計數範圍可包括第一預定長度T1及第二預定長度T0,以便可在起始分佈中建立第一分界線及第二分界線,以作為使第一計數及第二計數分別與第一預定長度T1及第二預定長度T0相匹配的第一讀取位準及第二讀取位準。當在資料集受此限制時各數目之和不與所規定長度相匹配時,由於移動的讀取操作的細微度(granularity)可大於一個胞元,因而可自資料集去除多餘的胞元或者可用資料來填補資料集,以形成經校正的長度。
圖16說明包括快閃記憶體陣列1610的積體電路1600,快閃記憶體陣列1610包括一組物理不可複製功能記憶體胞元,所述一組物理不可複製功能記憶體胞元可如上所述受到物理不可複製功能作用建立臨限值的分佈。積體電路1600包括如以上結合圖1所述的物理不可複製功能控制器1630及安全邏輯1640。物理不可複製功能控制器1630在匯流排1631上提供初始金鑰。積體電路1600包括在匯流排1651上產生隨機數的隨機數產生器1650。積體電路1600包括合併匯流排1631上的初始金鑰與匯流排1651上的隨機數的邏輯電路系統1660,而藉由以線(匯流排1671)耦接至安全邏輯1640的匯流排1661產生改良的金鑰1670。在實施例中,邏輯電路系統1660可包括使用初始金鑰與隨機數作為輸入且產生作為改良的金鑰的輸出的互斥或功能,且包括映射初始金鑰與隨機數的雜湊功能以雜湊數值而作為改良的金鑰。此外,提供使快閃記憶體陣列1610能夠被使用的存取與偏壓電路1620,包括字元線驅動器、感測放大器、位元線驅動器、電壓源、及其他位於快閃記憶體陣列周邊的電路。在此實例中,物理不可複製功能控制器1630連接至快閃記憶體陣列1610的存取與偏壓電路1620且包括用於實施本揭露所述程序(例如,包括圖6、圖8、圖9、圖11、圖13、及圖15所示程序中的某些或全部程序)的邏輯及記憶體資源。
在所說明的實施例中,物理不可複製功能控制器1630中包括狀態機1633以及位址與參數儲存器1632。狀態機1633可包括用於基於對快閃記憶體陣列1610中的所述一組記憶體胞元應用的物理不可複製功能來產生資料集的邏輯。在本揭露所述技術的實施例中,所述邏輯可執行以下步驟:查找在產生資料集時所讀取的記憶體胞元的子集或子分佈,將參數(例如用於上述分界線的臨限值、用於自所辨識子集讀取資料值的臨限值)記錄於位址與參數儲存器1632中,並將被辨識出供在產生資料集時使用的記憶體胞元的位址記錄於位址與參數儲存器1632中。所述邏輯亦可執行以下步驟:應用儲存於位址與參數儲存器1632中的讀取電壓及位址,以自快閃記憶體陣列1610生成資料值序列。
所述狀態機亦可包括用於引起對一組可程式化記憶體胞元中的可程式化記憶體胞元進行掃描並應用本揭露所述的程序以基於物理不可複製功能產生穩定資料集的邏輯。
安全邏輯1640可包括用於處置查問輸入並使用自快閃記憶體陣列1610、自位址與參數儲存器1632、或自匯流排1631上的初始金鑰讀取的資料集提供回應輸出的邏輯。安全邏輯1640可包括使用資料集的加密與解密資源,且可包括用於使用資料集來控制鑑認協定的邏輯。在一些實施例中,回應可為在積體電路上應用於啟用例如任務功能電路的通過/失敗(pass/fail)訊號。在其他實施例中,回應可應用於積體電路1600之外的在安全協定中會使用到所述資料集的電路系統。在一些實施例中,所述安全邏輯包括使用專用邏輯、被進行適當程式化的通用處理器、被進行適當程式化的可程式化閘陣列、或該些類型的邏輯電路的組合來實作的狀態機。此外,在一些實施方案中,安全邏輯1640可共享用於實作狀態機1633的邏輯。
可使用例如快閃記憶體、可程式化電阻記憶體、單次可程式化記憶體(one-time-programmable memory)等非揮發性記憶體來實作位址與參數儲存器1632。此外,所述儲存器可使用其他類型的記憶體來實作,包括例如靜態隨機存取記憶體等揮發性記憶體,其中所述位址及參數的備份複本儲存於快閃記憶體陣列1610中或儲存於可由積體電路存取的其他記憶體中。
狀態機1633可使用專用邏輯、被進行適當程式化的通用處理器、被進行適當程式化的可程式化閘陣列、或該些類型的邏輯電路的組合來進行實作。隨機數產生器1650可為確定性隨機數產生器或擬隨機數產生器,且可使用專用邏輯、被進行適當程式化的通用處理器、被進行適當程式化的可程式化閘陣列、或該些類型的邏輯電路的組合來進行實作。在一些實施例中,隨機數產生器1650可為狀態機器1633的一部分。
因此,圖16說明積體電路的實例,其包括:一組可程式化記憶體胞元,位於積體電路上,具有臨限值的分佈;記憶體,儲存所述一組可程式化記憶體胞元中具有處於臨限值的所述分佈的第一子分佈中的臨限值的記憶體胞元的位址;以及邏輯,用於使用所儲存位址產生資料集。
所述分佈的特徵可在於是使用物理不可複製功能而形成。
在一些實施例中,第一子分佈藉由感測容限與第二子分佈分開,且所述用於產生資料集的邏輯包括用於按照位址次序讀取所述一組可程式化記憶體胞元中的各記憶體胞元以產生資料值的邏輯,所述資料集根據是否為第一子分佈中的成員身份而變化。
在一些實施例中,所述記憶體另外儲存所述一組記憶體胞元中臨限值處於所述一組中的記憶體胞元的臨限值的分佈的第二子分佈中的記憶體胞元的位址;且所述用於產生資料集的邏輯包括使用關於第一子分佈及第二子分佈的所儲存位址。
在一些實施例中,所述記憶體另外為臨限值的分佈儲存第一分界線及與所述第一分界線不同的第二分界線;且第一子分佈中的記憶體胞元包括所述一組記憶體胞元中具有位於第一分界線以下的臨限值的第一子集,且第二子分佈中的記憶體胞元包括所述一組記憶體胞元中具有位於第二分界線以上的臨限值的第二子集。
在一些實施例中,所述用於產生資料集的邏輯使用所述位址來選擇第一子集及第二子集中的一者中的記憶體胞元;以及使用第一分界線與第二分界線之間的讀取電壓對所述一組可程式化記憶體胞元中的記憶體胞元進行讀取。
在一些實施例中,所述一組中的可程式化記憶體胞元是電荷陷獲記憶體胞元,且所述臨限值是臨限電壓。
在一些實施例中,所述積體電路可包括用於使用偏壓施加電路對積體電路應用偏壓施加操作的邏輯,所述偏壓施加操作在所述一組中的可程式化記憶體胞元的電荷儲存結構中引發電荷的改變以建立所述分佈。
在一些實施例中,所述邏輯包括所述積體電路上的狀態機。
在一些實施例中,所述積體電路包括對查問輸入作出回應以使用資料集產生回應輸出的邏輯。
圖17說明包括封裝式積體電路或多晶片模組180的系統,封裝式積體電路或多晶片模組180包括輸入/輸出介面181(包括用於來自於主機的接收及通訊指令以及用於啟用與協調控制電路的操作的指令解碼器,或耦接至此指令解碼器)以及非揮發性快閃記憶體陣列185。在本文中,電子系統意指包括主機與客端裝置(例如是封裝式積體電路或多晶片模組)的系統。輸入/輸出介面181提供用於在外部裝置或通訊網路與非揮發性記憶體陣列185之間進行外部通訊的埠。記憶體陣列185包括由記憶體胞元形成的多個區塊(例如,參見以上圖3),所述多個區塊中的特定區塊187中儲存有金鑰。安全邏輯190耦接至非揮發性記憶體陣列185,以在協定中利用金鑰來允許存取儲存於所述多個區塊中的各區塊中的資料。圖17與圖17A所示的系統亦可包括產生隨機數的隨機數產生器(例如圖16所標示的1650)、合併由物理不可複製功能程式化控制器(例如圖16所標示的1630與圖17所標示的193)提供的初始金鑰的邏輯電路系統(例如圖16所標示的1660),以產生改良的金鑰1670。安全邏輯190可使用初始金鑰或改良的金鑰。參照圖16的有關於隨機數產生器1650、邏輯電路系統1660以及改良的金鑰1670可應用於圖17與圖17A,在此不再贅述。包括存取控制開關(access control switch)183的存取控制電路耦接至所述陣列,且包括用於允許所述安全邏輯對特定區塊進行唯讀存取以供在協定中使用、並阻止外部裝置或通訊網路經由所述埠存取特定區塊的邏輯。在各種實施例中,可使用存取規則的其他組合,進而容許安全邏輯在對特定區塊的利用方面具有更大靈活性。
在此實例中,非揮發性記憶體陣列185包括快閃記憶體。儲存金鑰的特定區塊187可在物理上位於陣列中的任何之處,但如所說明可在物理上位於具有最低物理位址的頂部區塊中或可鄰近具有最低物理位址的啟動區塊,此處僅舉幾例。
非揮發性記憶體陣列185耦接至感測放大器/緩衝器184,以使得資料能夠流入及流出快閃記憶體陣列,包括流入及流出儲存金鑰的特定區塊187。在此實例中,存取控制開關183安置於感測放大器/緩衝器184與輸入/輸出介面181之間。自陣列185讀取的資料可在線路182上被路由至輸入/輸出介面181或可在線路191上被路由至安全邏輯190。
在所說明的實施例中,位址解碼器186連同區塊鎖位元(block lock bit)一起耦接至陣列185,所述區塊鎖位元用於控制在陣列中的對應區塊中讀取及寫入資料的權限。在此實例中,在特定區塊187中設置儲存安全金鑰的一組非揮發性記憶體,且特定區塊187耦接至對應的鎖定位元或位元186A。耦接於特定區塊187的鎖定位元或位元186A可包括相異於用於陣列中其他區塊的鎖定位元的結構的邏輯結構或實體結構,且可進行邏輯上不同的功能。用於儲存區塊鎖定位元的實體結構包括熔絲、單次程式化胞元(one-time-programming;OPT)、以及暫存器或其他可用於儲存例如是區塊鎖定位元的狀態指示記憶體構件。用於特定區塊的區塊鎖定位元或位元可耦接至感測放大器/緩衝器184中的緩衝器,以抑止金鑰儲存於其中的一組記憶體胞元的寫入,故在金鑰在此被寫入以及選擇性地測試與驗證之後凍結儲存於特定區塊的金鑰。快閃記憶體控制狀態機器193或裝置上的其他控制邏輯執行例如是以下參照圖29、30所述的藉由設定對於特定區塊或對於區塊中儲存金鑰的胞元集的區塊鎖定位元以凍結金鑰。
另外,與儲存金鑰的特定區塊187相關聯的區塊鎖定位元186A可控制耦接至存取控制開關183的邏輯,以在用於存取陣列的位址對應於特定區塊187的位址時阻止資料自特定區塊187經由感測放大器/緩衝器在線路形成的路徑182上流至輸入/輸出介面181,同時容許資料自特定區塊187在線路形成的路徑191上流至安全邏輯190。
此外,在所說明的實施例中,具有物理不可複製功能程式控制器的快閃控制狀態機193在線路194上耦接至記憶體陣列185且在線路192上耦接至安全邏輯190。出於生成欲用作金鑰的資料集的目的,物理不可複製功能可使用記憶體陣列185中的特定一組記憶體胞元189中的記憶體胞元來執行本揭露所述的程序。在裝置的此實例中,快閃控制狀態機193提供訊號來控制偏壓方案供電電壓的施加,以實施用於產生資料集的程序以及在存取記憶體陣列185時所涉及的其他操作。在一些實施例中,裝置上包括有隨機數產生器,隨機數產生器耦接於快閃記憶體控制狀態機器的物理不可複製功能程式化控制器193,隨機數產生器的輸出邏輯上與物理不可複製功能金鑰合併。
位於積體電路上的電路系統(例如位元線、字元線、用於位元線及字元線的驅動器等)達成對所述一組快閃記憶體胞元的存取,以用於提供用於生成金鑰的資料集。
如所說明,封裝式積體電路或多晶片模組180亦可包括例如可在系統晶片系統(system-on-a-chip system)或電路系統與記憶體的其他組合中遇到的其他電路系統195。
在所示實例中,封裝式積體電路或多晶片模組180藉由內連線(interconnect)199耦接至主機198,其中對於包括那些對於許多裝置的配置的系統而言,主機198可為登記系統(enrollment system)。主機198可維持金鑰資料庫198A,金鑰資料庫198A中可維持有依賴於特定區塊187中所儲存的金鑰來執行安全協定所需的資訊。在一些實施例中,執行安全協定所需的資訊包括金鑰的複本。
在一種示例性操作方法中,在製造或封裝期間,快閃控制狀態機193可如以上參照圖2所述與主機198協作地執行物理不可複製功能。所述物理不可複製功能可利用所述一組記憶體胞元189來生成可用於形成金鑰的資料集。在完成物理不可複製功能的執行後,可接著將資料集自所述一組記憶體胞元189複製至被保留或被配置用於儲存金鑰的特定區塊187。所述系統可生成一個或諸多金鑰以儲存於為此目的而保留的特定區塊187中。在此階段,亦可將金鑰複製至主機198中並維持於金鑰資料庫198A中。在執行物理不可複製功能、合併物理不可複製功能金鑰與隨機數、且將改良的金鑰複製至特定區塊187中並將任何必需資訊複製至登記系統中之後,可使用熔絲(fuse)或其他類型的單次寫入記憶體元件(write once memory element)來設定與特定區塊187相關聯的鎖位元186A,以阻止外部電路或通訊網路存取金鑰。此外,在物理不可複製功能中使用的所述特定一組記憶體胞元189可被抹除或被以其他方式覆寫,以消除可儲存於記憶體陣列185中的金鑰的跡象。
圖17A說明實現於封裝型積體電路或多晶片模組中的電路的替代實施例,在圖17A中再次使用相似於顯示在圖17中的用於標記元件的元件符號,且不再贅述。在圖17A中,包括物理不可複製功能胞元189A的多個非揮發性記憶體胞元實作於除陣列185之外的電路中,且耦接至使用物理不可複製功能胞元189A來執行物理不可複製功能的控制電路,其中此實例的控制電路為快閃記憶體控制狀態機器193的一部分。在此實例中,鎖定位元與解碼器結構186’耦接至陣列的所有區塊。此實施例的物理不可複製功能胞元189A為實作於陣列之外的胞元區塊的一部分,而具有不同的周邊電路以允許對區塊進行唯讀存取或經由安全邏輯190對區塊進行唯讀存取。在其他實施例中,物理不可複製功能胞元189A可被實作為陣列的一部分的佈局(layout)中,但具有不支援非為物理不可複製功能的一部分的程式化或抹除操作的存取電路。在此實施例中,用於陣列185的周邊電路並未連接至(或並非可用於存取)物理不可複製功能胞元189A。具體而言,物理不可複製功能胞元189A在分離且在控制電路中與物理不可複製功能協調的控制下進行讀取、程式化與抹除。指示胞元193A耦接於物理不可複製功能胞元189A或耦接於控制電路,以藉由啟用/停用物理不可複製功能或啟用/停用在物理不可複製功能胞元189A中的程式化或抹除來凍結儲存於物理不可複製功能胞元189A中的一組非揮發性記憶體胞元的金鑰。用作指示胞元193A的實體結構的實例包括熔絲、單次程式化胞元(one-time-programming;OPT)、以及暫存器或其他可用於儲存類似於區塊鎖定位元的狀態指示的其他記憶體構件。
快閃記憶體控制狀態機器193或裝置上的其他控制邏輯可執行類似於以下參照圖31與圖32所描述的程序,此程序例如是在指示胞元193A中設定指示以啟用或停用在控制電路中的物理不可複製功能,且因此凍結金鑰。在一些實施例中,裝置上包括隨機數產生器,所述隨機數產生器耦接於快閃記憶體控制狀態機器的物理不可複製功能程式化控制器193,所述隨機數產生器的輸出與物理不可複製功能金鑰合併。
圖18及圖19說明對於不同實施例,非揮發性記憶體陣列的配置的不同實例。在圖18中,其中儲存有金鑰的記憶體胞元的特定區塊包括第一子區塊187A及第二子區塊187B。在第一子區塊187A中定位有由物理不可複製功能用於生成金鑰的一組記憶體胞元。此外,金鑰可保持於用於生成資料集的所述一組記憶體胞元中或被移動至第一子區塊187A中的另一組記憶體胞元。第二子區塊187B維持在根據例如參照圖7A至圖7E、圖8、圖12A至圖12C、及圖13所述程序等的程序執行物理不可複製功能期間產生的一個胞元映射或多個胞元映射。
圖19是其中由物理不可複製功能使用的一組記憶體胞元189位於記憶體陣列185(快閃記憶體陣列)中以及用於儲存金鑰的特定區塊187之外的替代方案。在此實例中,用於儲存金鑰的特定區塊包括其中在記憶體中維持所述一個金鑰或多個金鑰的第一子區塊187C。第二子區塊187B維持在物理不可複製功能期間產生的所述一個胞元映射或多個胞元映射。
圖20說明在類似圖17至圖19所示實施例那樣的實施例中可用於儲存金鑰及胞元映射的資料結構。用於生成金鑰(在此實例中,為安全ID)的一組記憶體胞元由安全ID產生器區塊代表。在圖中,此區塊具有辨識起始位置的「區塊」位址且具有位元位址1至10。在較佳系統中,安全ID產生器區塊可具有數千個位元。此外,與每一位元位址相關聯的是提供「碼資訊」的資料值,所述資料值表示使用例如圖8所示程序或例如圖19所示程序所感測的資料值。在利用圖20所示映射表或胞元映射來對資料集進行定址的實施例中,某些胞元中的資料值未被用於金鑰中且因此被視為「隨意值」胞元。所述映射表辨識「隨意值」胞元的位址以及用於金鑰的胞元的位址。因此,此實例中的映射表具有起始位址以及位址位元1至10,所述位址位元對應於安全ID產生器區塊中的胞元的位元位址1至10。在記憶體胞元中設定與位址位元中的每一者對應的旗標,進而指示安全ID產生器區塊中的有效胞元(用於金鑰中)或無效胞元(未用於金鑰中)。可藉由對映射表與碼資訊進行邏輯及(AND)運算來產生金鑰資料,其中所述映射表用作遮罩。如上所述,安全ID產生器區塊是可位於非揮發性記憶體陣列中任何之處或位於用於儲存安全ID的特定區塊中的一組記憶體胞元。在其中所述一組記憶體胞元是位於用於儲存安全ID的特定區塊之外的實施例中,可接著將安全ID產生器區塊中的資料複製至所述特定區塊。
圖21說明利用物理不可複製功能產生金鑰且將所述金鑰儲存於非揮發性記憶體中的系統的高級配置。所述系統包括耦接至積體電路或多晶片模組1710的主機1720。積體電路或多晶片模組1710包括物理不可複製功能電路1711、控制器1712、及安全邏輯1713。控制器1712耦接至物理不可複製功能電路1711及非揮發性記憶體1714。
可參照圖22針對一些實施例來理解圖21所示系統的操作。因此,為生成可使用的金鑰,自物理不可複製功能電路1711產生金鑰資料(步驟1730)。對所述金鑰進行分析,以判斷其是否滿足安全規範,例如是否具有充足隨機性(步驟1731)。若所述金鑰滿足規範,則經由控制器1712將所述金鑰儲存至非揮發性記憶體1714中(步驟1732)。若所述金鑰不滿足規範,則程序循環至步驟1730,以重試物理不可複製功能,進而生成金鑰。所述物理不可複製功能可如以上所述使用一組非揮發性記憶體胞元來生成具有任何長度的金鑰並重試基於物理不可複製功能的金鑰生成程序。如所說明,物理不可複製功能電路1711與控制器1712將協作來產生另一金鑰,進而循環回至步驟1730直至生成令人滿意的金鑰為止。否則,金鑰產生即完成,一或多個金鑰被儲存並準備好供安全邏輯利用。為使用所述金鑰,所述程序包括:自非揮發性記憶體獲取金鑰資料(1733),並在協定中執行安全功能,所述協定涉及主機1720、以及非揮發性記憶體中關於一或多個金鑰的金鑰資料(1734)。可由登記系統為主機1720提供執行依賴於金鑰的安全協定所需的資料,或者主機1720可為在設置金鑰期間所使用的系統。可與登記系統或通訊伺服器協作地配置安全功能,以利用多個金鑰。在一些實施例中,所產生及所儲存的金鑰被利用僅一次或有限數目的次數,以維持高安全性及高防窺探性。此外,在一些實施例中,可以一種對於每一通訊會話依賴於單個大金鑰的子集的方式來利用所述大金鑰。可根據特定使用環境的需要來實作其他安全協定。在圖22所示程序中,在安全程序利用金鑰期間,可執行發出訊號來通知應對金鑰進行更新的金鑰更新協定。此可包括在一時間週期之後或在固定使用次數之後替換金鑰。此外,若所使用的數次登入(log in)嘗試均失敗或者偵測到表明正嘗試猜測金鑰的其他事件,則可替換金鑰。因此,圖22所示程序包括判斷是否更新金鑰的步驟(步驟1735)。若金鑰需要更新,則程序循環至步驟1730,且執行物理不可複製功能以更新一或多個金鑰。若在1735處金鑰不需要更新,則程序循環至繼續使用金鑰來支援安全功能的執行。
當在例如由圖22的步驟1731及1735所示的循環中使用物理不可複製功能來創建新的金鑰時,可在一些實施例中使在物理不可複製功能中所使用的參數移位,以提高在每一循環中生成實質上不同的金鑰的可能性。當然,在使用快閃記憶體胞元的一些實施例中,對相同胞元應用相同物理不可複製功能參數可生成充分不同的金鑰。在其他實例中,可為每一新的物理不可複製功能循環改變用於生成初始分佈的偏壓電壓。此外,作為物理不可複製功能的一部分,可在生成各分佈時改變在遞增步階脈衝程式化(ISPP)演算法中施加的脈衝的數目。在又一些實例中,在生成脈衝時所利用的記憶體胞元可自陣列的一個區域中的一組改變成陣列的另一區域中不同的一組。
在例如圖23及圖24所示的一些實施例中,可以二個部分來考量高級功能。圖23說明可在製造期間、或在運送至客戶之前、或否則在金鑰由系統使用之前執行的功能。在圖23中,程序以電源開啟事件而開始(步驟1750)。執行物理不可複製功能,且擷取包括一或多個金鑰的金鑰資料,並將所述金鑰資料提供至登記系統或其他將需要所述金鑰資料的外部系統(步驟1751)。將金鑰資料儲存於如上所述的非揮發性記憶體中(步驟1752)。在所述金鑰資料已被儲存於非揮發性記憶體中之後,保護所述金鑰資料不被外部通訊網路或裝置存取(步驟1753)。在現場,程序大體如圖24所示而進行,其中以電源開啟事件而開始(步驟1760)。所述程序包括:自非揮發性記憶體獲取受保護的金鑰資料(1761),並使用金鑰來與外部裝置執行包括通訊協定(例如查問-回應交換)的安全功能(步驟1762)。
如圖25中所說明,物理不可複製功能可使用物理電路1770,例如靜態隨機存取記憶體電路、可程式化電阻記憶體胞元電路(RRAM)、基於金屬的電路、基於延遲的電路、基於振盪器的電路等。通常,在物理不可複製功能中所使用的電路具有相對低的穩定性,因而需要特殊邏輯或錯誤校正以可靠地使用金鑰。用於儲存金鑰的非揮發性記憶體1771可包括高度穩定的非揮發性記憶體,例如快閃記憶體、可程式化電阻記憶體(RRAM)、相變記憶體(PCRAM)、單次可程式化記憶體等。在其他實施例中,由物理不可複製功能使用的電路1775可具有相對高的穩定性。然而,金鑰亦可儲存於非揮發性記憶體1776中,非揮發性記憶體1776亦具有高穩定性,而且可提供更佳的存取控制以及其他通常可不與物理不可複製功能電路1775相關聯的功能。
在一些實施例中,如圖27所示,可利用隨機數產生器(random number generator)1780來生成金鑰,所述安全金鑰接著可被儲存於非揮發性記憶體1781中並在例如本揭露所述系統等的系統中使用。
在一些實施例中,如圖28所示,物理不可複製功能電路1785可以第一等級來生成具有例如1024個位元的安全資訊以作為初始金鑰。隨機數產生器1784可產生隨機數。可將此種處於第一等級的初始金鑰與隨機數提供至邏輯電路1786,邏輯電路1786使用例如雜湊功能將由初始金鑰與隨機數表示的第一等級資料轉換成具有例如128個位元的作為改良的金鑰的第二等級資訊、或者根據處於第一等級的安全資訊而產生的其他位元組合。在改良的金鑰中的第二等級資訊可接著儲存至非揮發性記憶體1787中。所述程序由開機(步驟2900)開始。舉例而言,此可發生在裝置安裝於測試治具(test jig)或如上所述的登記系統中。此外,此程序可開始於其他發出物理不可複製功能電路的啟動訊號的事件,以產生初始金鑰。在步驟2900之後,啟用用於進行物理不可複製功能的電路系統(步驟2901)。接下來,執行物理不可複製功能以產生初始金鑰(步驟2902)。初始金鑰接著被儲存在一組非揮發性記憶體胞元中,例如是在非揮發性記憶體陣列中的胞元的特定區塊中的胞元(步驟2903)。如上述的實例,所述一組非揮發性記憶體胞元可等同於被物理不可複製功能使用的該組非揮發性記憶體胞元,或可為在物理不可複製功能的執行之後初始金鑰所寫入的該組非揮發性記憶體胞元。
圖29為在例如是圖17或圖17A所示的裝置中的控制器執行的程序的簡化流程圖,此程序用以凍結藉由使用物理不可複製功能產生的初始金鑰。在此流程圖中,此程序起始於開機(步驟2900)。舉例而言,此可發生在裝置安裝於測試治具(test jig)或如上所述的登記系統中。此外,此程序可開始於其他發出物理不可複製功能電路的啟動訊號的事件,以產生初始金鑰。在步驟2900之後,啟用用於進行物理不可複製功能的電路系統(步驟2901)。接下來,執行物理不可複製功能以產生初始金鑰(步驟2902)。初始金鑰接著被儲存在一組非揮發性記憶體胞元中,例如是在非揮發性記憶體陣列中的胞元的特定區塊中的胞元(步驟2903)。如上述的實例,所述一組非揮發性記憶體胞元可等同於被物理不可複製功能使用的該組非揮發性記憶體胞元,或可為在物理不可複製功能的執行之後初始金鑰所寫入的該組非揮發性記憶體胞元。執行隨機數產生器以產生隨機數(步驟2904)。執行邏輯電路系統以合併初始金鑰與隨機數以產生改良的金鑰(步驟2905)。隨後將改良的金鑰儲存在多個非揮發性記憶體胞元的第二組非揮發性記憶體胞元中(步驟2906)。在實施例中,邏輯電路系統可包括使用初始金鑰與隨機數作為輸入且產生作為改良的金鑰的輸出的互斥或功能,且可包括映射初始金鑰與隨機數以對數值進行雜湊而作為改良的金鑰的雜湊功能。在初始金鑰儲存在一組非揮發性記憶體胞元之後,設定指示(indicator)以停用對於初始金鑰的改變,例如是抑止特定區塊中的程式化與抹除操作(步驟2907)。
圖30為在例如是圖17或圖17A所示的裝置中的控制器執行的替代程序的簡化流程圖,此替代程序用以凍結藉由使用物理不可複製功能產生的初始金鑰。在流程圖中,此程序開始於開機(步驟3000)。舉例而言,此可發生在裝置安裝於測試治具(test jig)或如上所述的登記系統中。此外,此程序可開始於其他發出物理不可複製功能電路的啟動訊號的事件,以產生初始金鑰。在步驟3000之後,啟用用於進行物理不可複製功能的電路系統(步驟3001)。接下來,執行物理不可複製功能以產生初始金鑰(步驟3002)。初始金鑰接著被儲存在一組非揮發性記憶體胞元中,例如是在非揮發性記憶體陣列中的胞元的特定區塊中的胞元(步驟3003)。如上述的實例,所述一組非揮發性記憶體胞元可等同於被物理不可複製功能使用的該組非揮發性記憶體胞元,或可為在物理不可複製功能的執行之後初始金鑰所寫入的該組非揮發性記憶體胞元。執行隨機數產生器以產生隨機數(步驟S3004)。執行邏輯電路系統以合併初始金鑰與隨機數以產生改良的金鑰(步驟3005)。隨後將改良的金鑰儲存在多個非揮發性記憶體胞元的第二組非揮發性記憶體胞元中(步驟3006)。在實施例中,邏輯電路系統可包括使用初始金鑰與隨機數作為輸入且產生作為改良的金鑰的輸出的互斥或功能,且可包括映射初始金鑰與隨機數以對數值進行雜湊而作為改良的金鑰的雜湊功能。在此程序中,隨後評估藉由使用物理不可複製功能產生的改良的金鑰與隨機數的適應性(suitability),此評估例如是藉由判斷改良的金鑰是否具有充足的隨機性(步驟3007)。演算法接著判斷改良的金鑰是否為符合要求的(步驟3008)。若對改良的金鑰的測試是在外部進行,則可經由記憶體裝置上的端口(port)提供來自於外部裝置的訊號,以指示測試成功。若改良的金鑰不符合要求,則可經由記憶體裝置上的端口提供來自於外部裝置的訊號,以指示測試失敗,且可重試產生改良的金鑰的程序(步驟3009)。若在步驟3008中改良的金鑰為滿足要求的,則可設定指示(indicator)以停用儲存初始金鑰的一組非揮發性記憶體胞元中的資料的改變,因此凍結在裝置中使用初始金鑰(步驟3010)。
如上所述,在產生金鑰之後用於凍結此金鑰的另一技術包括停用物理不可複製功能,例如是藉由停用用於執行此功能的電路系統。
圖31為可被例如是位於圖17或圖17A的裝置中的控制器執行的程序的流程圖。在此實例中,所述程序由開機(步驟3100)開始。如上所述,此程序可開始於其他啟動事件。在啟動程序之後,邏輯首先判斷金鑰是否已經被儲存於用於儲存金鑰的一組非揮發性記憶體胞元中。因此,可比較此組非揮發性記憶體胞元與預定的物理不可複製功能區塊圖案(步驟3101)。指出沒有金鑰被寫入的圖案可為,例如是,皆為0的圖案或皆為1的圖案。在檢查圖案之後,判斷是否找到預定圖案的配對(步驟3102)。若未找到配對,則邏輯藉由,例如是,停用用於執行物理不可複製功能的電路或藉由抑止控制電路的狀態機器進展至執行物理不可複製功能的狀態以停用物理不可複製功能(步驟3103)。若找到配對,則邏輯藉由,例如是,啟用用於執行物理不可複製功能的電路或藉由使狀態機器進展到執行物理不可複製功能的狀態以啟用物理不可複製功能(步驟3104)。在啟用物理不可複製功能之後,接著執行產生初始金鑰(步驟3105)。接著,將初始金鑰儲存於一組非揮發性記憶體胞元中,例如是依據不同實施例而儲存於陣列中的特定物理不可複製功能區塊中、或儲存於不同組的記憶體胞元中(步驟3106)。執行隨機數產生器以產生隨機數(步驟3107)。執行邏輯電路系統以合併初始金鑰與隨機數以產生改良的金鑰(步驟3108)。接著,將改良的金鑰儲存於多個非揮發性記憶體胞元中的第二組非揮發性記憶體胞元中(步驟3109)。在實施例中,邏輯電路系統可包括使用初始金鑰與隨機數作為輸入且產生作為改良的金鑰的輸出的互斥或功能,且可包括映射初始金鑰與隨機數以雜湊數值而作為改良的金鑰的雜湊功能。在成功地創造出改良的金鑰之後,則可選擇性地設定指示(indicator)以停用儲存初始金鑰的一組記憶體胞元的改變(步驟3110)。如上所述,在一些實施例中,儲存初始金鑰的一組記憶體胞元可能不具有支援除使用於物理不可複製功能中的操作的程式化操作或抹除操作的周邊電路。在此情況下,可不需要設定指示(indicator)以防止程式化以及抹除。
圖32為可被位於例如是圖17或圖17A的裝置中的控制器執行的替代程序的流程圖。在此實例中,此程序開始於開機事件(步驟3200)。如上所述,此程序可開始於其他的起動事件。在啟動程序之後,邏輯可進入需要在利用包括與外部裝置通訊以啟動金鑰產生程序的物理不可複製功能之前執行鑑認協定的狀態。當啟動此鑑認協定,邏輯執行此協定(步驟3201)。若在此鑑認協定下金鑰產生循環的起始並未成功(步驟3202),則邏輯可使用例如是那些參照圖31討論的技術停用物理不可複製功能電路,且在一些情況下也停用測距(RNG)(步驟3203)。若在此鑑認協定下金鑰產生循環的起始成功(步驟3202),則邏輯啟用物理不可複製功能電路(步驟3204)。接著,可執行物理不可複製功能以產生初始金鑰(步驟3205)。在產生初始金鑰之後,初始金鑰可儲存於一組非揮發性記憶體胞元中(步驟3206)。執行隨機數產生器以產生隨機數(步驟3207)。執行邏輯電路系統以合併初始金鑰與隨機數以產生改良的金鑰(步驟3208)。接著將改良的金鑰儲存在多個非揮發性記憶體胞元中的第二組非揮發性記憶體胞元中(步驟3209)。在實施例中,邏輯電路系統可包括使用初始金鑰與隨機數作為輸入且產生作為改良的金鑰的輸出的互斥或功能,且可包括映射初始金鑰與隨機數以雜湊數值而作為改良的金鑰的雜湊功能。可選擇地,在成功儲存金鑰之後,可設定指示(indicator)以停用儲存在一組非揮發性記憶體胞元的資料的改變(步驟3210)。
在各種實施例中,參照圖29至圖32所敘述的技術可以各種組合而被利用。舉例而言,檢查一組記憶體胞元的程序可與成功執行鑑認協定的需求合併,以啟用物理不可複製功能電路。另外,在物理不可複製功能儲存在一組非揮發性記憶體胞元之後驗證或測試物理不可複製功能的程序可與對於預定圖案檢查一組非揮發性記憶體胞元的程序合併、或可與成功執行鑑認協定的需求合併、或可與上述兩者合併。
在本揭露的一個態樣中,對類似圖6、圖8、圖9、圖11、圖13、圖15以及圖29至圖32所示程序那樣的程序以及本揭露所述的其他程序的執行進行控制的電腦程式,可作為指令儲存於一個電腦可讀取記憶體或多於一個記憶體上,其中所述記憶體包括非暫時性電腦可讀取資料儲存媒體。使用所述電腦可讀取記憶體,物理不可複製功能機器(例如,處理器系統410,圖2)可引起對一組可程式化記憶體胞元中的可程式化記憶體胞元進行掃描,且可應用本揭露所述的程序來基於物理不可複製功能生成穩定資料集。
此外,如上所述,包括所述一組可程式化記憶體胞元的積體電路可包括狀態機或其他被配置成執行該些程序的邏輯資源。在又一些替代方案中,可利用由物理不可複製功能機器執行的電腦程式與在積體電路上實作的邏輯的組合。
在本揭露所述的實施例中,使用具有臨限電壓的起始分佈的一組記憶體胞元來建立穩定資料集。此一組記憶體胞元可為大型記憶體陣列的一部分,例如圖3、圖16、圖17以及圖17A中所示。作為另一選擇,所述一組記憶體胞元可為專門提供的一組記憶體胞元。在其中積體電路的任務功能包括記憶體陣列的實施例中,用於此種目的的所述一組記憶體胞元可具有與所述陣列中的記憶體胞元相同的結構或者可具有不同的結構。此外,所使用的所述一組記憶體胞元可在積體電路上安置成任一圖案,包括緊湊式陣列圖案或分散式圖案。
在實施例中,可多次重新使用用於建立起始分佈的一組記憶體胞元來生成具有相異內容的多個穩定資料集。因此,可在部署此種實施例的系統中提供邏輯,以對一個積體電路上的記憶體胞元利用物理不可複製功能程序,進而產生可在與所述一個積體電路進行通訊的其他裝置中共享的獨有資料集。
如上所述,本揭露所述的實例是基於使用電荷陷獲記憶體胞元,例如快閃記憶體。在一些實施例中(包括在如圖3、圖16、圖17以及圖17A所示而配置的實施例中),所述技術可擴展至其他可程式化記憶體胞元技術,包括基於金屬氧化物的可程式化電阻胞元、基於相變材料的可程式化電阻胞元、磁阻式記憶體(magneto-resistive memory)、以及其他種類的特徵在於能夠用於建立起始分佈的記憶體胞元技術,在所述起始分佈中,作為經歷共同處理的結果,臨限電壓或臨限電阻相對於記憶體胞元的位址而隨機地變化。
如本揭露所述而產生的資料集可具有為特定積體電路所獨有的內容。例如在安全協定的實例中,所述資料集可用於形成對查問的回應。所述資料集可用作加密協定中的金鑰。所述資料集可用作獨有辨識符。所述資料集可用作隨機金鑰。
本揭露所述技術的各種態樣包括以下實施例。
在一個實施例中,闡述一種在包括一組可程式化記憶體胞元的積體電路上產生資料集的方法。所述方法可包括:使曝露於所述積體電路上具有位址的所述一組可程式化記憶體胞元經過共同處理後引入相異的臨限值,且所述一組可程式化記憶體胞元位於一個起始分佈的範圍內。所述方法亦可包括:(1)查找所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中的臨限值的第二子集;以及(2)使用所述第一子集及所述第二子集中的至少一者的所述位址來產生所述資料集。
所述共同處理可包括:在製造期間的蝕刻步驟或沈積步驟,所述蝕刻步驟或所述沈積步驟在所述一組中的所述可程式化記憶體胞元的電荷儲存結構中引發電荷陷獲。所述共同處理亦可包括:使用所述積體電路上的偏壓施加電路進行偏壓施加操作,以在所述一組中的所述可程式化記憶體胞元的電荷儲存結構中引發電荷。
在一個實施例中,闡述一種製造積體電路的方法。所述方法可包括:在所述積體電路上形成多個可程式化記憶體胞元;將所述積體電路連接至系統,所述系統被配置成與所述積體電路交換訊號;以及使用所述系統藉由以下方式在所述多個可程式化記憶體胞元中具有臨限值的起始分佈的一組可程式化記憶體胞元中產生資料集:(1)查找所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中的臨限值的第二子集;以及(2)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
在一個實施例中,闡述一種電子裝置。所述電子裝置可包括:一組可程式化記憶體胞元,位於積體電路上;邏輯,用於使用所述一組可程式化記憶體胞元藉由以下方式來產生資料集,其中所述一組可程式化記憶體胞元具有臨限值的起始分佈:(1)查找所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中的臨限值的第二子集;以及(2)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
在一個實施例中,闡述一種產品。所述產品可包括電腦可讀取非暫時性資料儲存媒體,所述電腦可讀取非暫時性資料儲存媒體儲存用於在包括一組可程式化記憶體胞元的積體電路上產生資料集的程序的指令,所述指令能夠由被配置成連接至所述積體電路的系統執行。所述的程序可包括:(1)查找所述一組可程式化記憶體胞元的具有處於起始分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中的臨限值的第二子集;以及(2)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
實施例中所述的查找步驟可包括:確定所述起始分佈的所述第一部分與所述起始分佈的所述第二部分之間的分界線,以使所述一組中具有位於所述分界線以下的臨限值的所述可程式化記憶體胞元的計數對所述一組中具有位於所述分界線以上的臨限值的所述可程式化記憶體胞元的計數的比率處於目標比率範圍內。
實施例中所述的使用位址步驟可包括:使用所述第一子集及所述第二子集中的所述至少一者中的可程式化記憶體胞元的所述位址來選擇所述可程式化記憶體胞元;對所述所選擇的可程式化記憶體胞元應用偏壓施加操作,以為所述一組可程式化記憶體胞元建立臨限值的改變後分佈,所述改變後分佈在所述第一子集與所述第二子集之間具有感測容限;以及使用所述感測容限中的讀取電壓來讀取所述一組中的所述可程式化記憶體胞元,以產生所述資料集。所述使用位址步驟亦可包括:根據所述第一子集及所述第二子集中的所述至少一者中的成員身份來組合所述第一子集及所述第二子集中的所述至少一者中的記憶體胞元的所述位址;以及使用所述經組合的位址作為所述資料集。
在一個實施例中,闡述一種在積體電路上產生資料集的方法。所述積體電路包括一組可程式化記憶體胞元,且所述可程式化記憶體胞元具有起始分佈中的臨限值。所述方法包括:查找所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中的臨限值的第二子集。所述方法可包括:應用偏壓施加操作,以為所述一組中的所述可程式化記憶體胞元建立臨限值的改變後分佈,所述改變後分佈在所述第一子集與所述第二子集之間具有感測容限;以及使用所述改變後分佈來提供所述資料集。
在一個實施例中,闡述一種在積體電路上產生資料集的方法。所述積體電路包括一組可程式化記憶體胞元,且所述可程式化記憶體胞元具有起始分佈中的臨限值。所述方法包括:查找所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中的臨限值的第二子集。所述方法可包括:組合所述第一子集及所述第二子集中的至少一者中的所述可程式化記憶體胞元的位址;以及使用經組合的位址來提供所述資料集。
在一個實施例中,闡述一種裝置。所述裝置可包括:一組電荷陷獲記憶體胞元;以及電路系統,能夠存取所述一組電荷陷獲記憶體胞元,以使用所述一組電荷陷獲記憶體胞元來提供資料集,所述資料集是所述一組電荷陷獲記憶體胞元的不同成員由於在所述一組中的所述電荷陷獲記憶體胞元中的電荷儲存結構中引發電荷陷獲的共同處理而具有的相異臨限電壓的函數。所述的一組電荷陷獲記憶體胞元具有次序且所述相異臨限電壓具有起始分佈,並且所述資料集是所述一組電荷陷獲記憶體胞元的具有位於所述起始分佈的一部分中的臨限電壓的子集的按照所述次序的位置的函數。
在一個實施例中,闡述一種在包括一組可程式化記憶體胞元的積體電路上產生資料集的方法。所述方法包括:使使曝露於所述積體電路上具有位址的所述一組可程式化記憶體胞元經過共同處理後引入相異的臨限值,且所述一組可程式化記憶體胞元位於一個起始分佈的範圍內。所述方法亦包括:(1)查找所述起始分佈中的第一分界線及與所述第一分界線不同的第二分界線;(2)辨識所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中所述第一分界線以下的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中所述第二分界線以上的臨限值的第二子集;以及(3)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
在一個實施例中,闡述一種製造積體電路的方法。所述方法可包括:在所述積體電路上形成多個可程式化記憶體胞元;將所述積體電路連接至系統,所述系統被配置成與所述積體電路交換訊號;以及使用所述系統藉由以下方式在所述多個可程式化記憶體胞元中具有臨限值的起始分佈的一組可程式化記憶體胞元中產生資料集:(1)查找所述起始分佈中的第一分界線及與所述第一分界線不同的第二分界線;(2)辨識所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中所述第一分界線以下的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中所述第二分界線以上的臨限值的第二子集;以及(3)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
在一個實施例中,闡述一種裝置。所述裝置包括:一組可程式化記憶體胞元,位於積體電路上;以及邏輯,用於使用所述一組可程式化記憶體胞元藉由以下方式來產生資料集,其中所述一組記憶體胞元具有臨限值的起始分佈:(1)查找所述起始分佈中的第一分界線及與所述第一分界線不同的第二分界線;(2)辨識所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中所述第一分界線以下的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中所述第二分界線以上的臨限值的第二子集;以及(3)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
在一個實施例中,闡述一種產品。所述產品包括電腦可讀取非暫時性資料儲存媒體,所述電腦可讀取非暫時性資料儲存媒體儲存用於在包括可程式化記憶體胞元的積體電路上產生資料集的程序的指令,所述指令能夠由被配置成連接至積體電路的系統執行。所述程序包括:(1)查找所述起始分佈中的第一分界線及與所述第一分界線不同的第二分界線;(2)辨識所述一組可程式化記憶體胞元的具有處於所述起始分佈的第一部分中所述第一分界線以下的臨限值的第一子集、以及所述一組可程式化記憶體胞元的具有處於所述起始分佈的第二部分中所述第二分界線以上的臨限值的第二子集;以及(3)使用所述第一子集及所述第二子集中的至少一者的位址來產生所述資料集。
實施例中所述的查找所述第一分界線及所述第二分界線的步驟可包括:確定所述起始分佈中的臨限電壓,所述臨限電壓使具有低於所述臨限電壓的臨限值的記憶體胞元的計數對具有高於所述臨限電壓的臨限值的記憶體胞元的計數的比率處於目標比率範圍內,並藉由自所述臨限電壓減去第一常數來設定所述第一分界線,並且藉由對所述臨限電壓加上第二常數來設定所述第二分界線。所述查找步驟亦可包括:使用移動的第一讀取電壓來迭代地讀取所述一組可程式化記憶體胞元中的資料值,並對所述一組中具有低於所述第一讀取電壓的臨限值的記憶體胞元進行計數,並且使用使所述計數處於第一目標計數範圍內的所述第一讀取電壓來設定所述第一分界線。所述查找步驟亦可包括:使用移動的第二讀取電壓迭代地讀取所述一組可程式化記憶體胞元中的資料值,並對所述一組中具有高於所述第二讀取電壓的臨限值的記憶體胞元進行計數,並且使用使所述計數處於第二目標計數範圍內的所述第二讀取電壓來設定所述第二分界線。
實施例中所述的產生所述資料集的步驟可包括:使用所述位址來選擇所述第一子集及所述第二子集中的一者中的所述可程式化記憶體胞元;以及使用所述第一分界線與所述第二分界線之間的讀取電壓來讀取所述一組可程式化記憶體胞元中的所述可程式化記憶體胞元。所述產生步驟亦可包括:根據所述第一子集及所述第二子集中的所述至少一者中的成員身份來組合所述第一子集及所述第二子集中的所述至少一者中的所述可程式化記憶體胞元的所述位址。
實施例中所述的共同處理可包括在製造期間的蝕刻步驟或沈積步驟,所述蝕刻步驟或所述沈積步驟在所述一組中的所述可程式化記憶體胞元的電荷儲存結構中引發電荷陷獲。所述共同處理亦可包括:使用所述積體電路上的偏壓施加電路進行偏壓施加操作,以在所述一組中的所述可程式化記憶體胞元的電荷儲存結構中引發電荷。
在一個實施例中,闡述一種在包括可程式化記憶體胞元的積體電路上產生資料集的方法。所述方法包括:儲存一組記憶體胞元中具有處於所述一組中的記憶體胞元的臨限值的分佈的第一子分佈中的臨限值的記憶體胞元的位址;以及使用所述所儲存位址來產生所述資料集。
在一個實施例中,闡述一種積體電路。所述積體電路包括:一組可程式化記憶體胞元,位於積體電路上且具有臨限值的分佈;記憶體,儲存所述一組可程式化記憶體胞元中具有處於臨限值的所述分佈的第一子分佈中的臨限值的記憶體胞元的位址;以及邏輯,用於使用所述所儲存位址來產生資料集。
所述分佈的特徵在於是使用物理不可複製功能而形成。所述第一子分佈藉由感測容限與第二子分佈分開,且所述邏輯被配置成藉由以下方式來產生所述資料集:按照位址次序讀取所述一組可程式化記憶體胞元中的所述記憶體胞元,以產生根據是否為所述第一子分佈中的成員身份而變化的資料值。所述記憶體另外儲存所述一組記憶體胞元中臨限值處於所述一組中的記憶體胞元的臨限值的分佈的第二子分佈中的記憶體胞元的位址;且所述邏輯被配置成產生所述資料集包括使用所述第一子分佈及所述第二子分佈的所述所儲存位址。所述記憶體另外為臨限值的分佈儲存第一分界線及與所述第一分界線不同的第二分界線,其中所述第一子分佈中的所述記憶體胞元包括所述一組記憶體胞元的具有位於所述第一分界線以下的臨限值的第一子集,且所述第二子分佈中的所述記憶體胞元包括所述一組記憶體胞元的具有位於所述第二分界線以上的臨限值的第二子集。
實施例中所述的邏輯被配置成藉由以下方式來產生所述資料集:使用所述位址來選擇所述第一子集及所述第二子集中的一者中的記憶體胞元;以及使用所述第一分界線與所述第二分界線之間的讀取電壓來讀取所述一組可程式化記憶體胞元中的記憶體胞元。
所述的邏輯可被配置成使用所述積體電路上的偏壓施加電路應用在所述一組中的所述可程式化記憶體胞元的電荷儲存結構中引發改變以建立所述分佈的偏壓施加操作;以及對查問輸入作出回應以使用所述資料集來產生回應輸出。所述邏輯可包括所述積體電路上的狀態機。
在本揭露所述的實施例中,所述一組中的所述可程式化記憶體胞元是電荷陷獲記憶體胞元,且所述臨限值是臨限電壓。
在一個實施例中,闡述一種記憶體電路。所述記憶體電路包括:(1)非揮發性記憶體陣列,包括由記憶體胞元形成的多個區塊且包括儲存於所述多個區塊中的特定區塊中的金鑰;(2)埠,用於自所述陣列進行外部通訊;(3)安全邏輯,耦接至所述記憶體陣列,所述安全邏輯在協定中利用所述安全金鑰來允許存取儲存於所述多個區塊中的各區塊中的資料;以及(4)存取控制電路,耦接至所述陣列,所述存取控制電路包括用於允許所述安全邏輯對所述特定區塊進行唯讀存取以供在所述協定中使用、並阻止經由所述埠存取所述特定區塊的邏輯。
在一實施例中,敘述一種包括封裝式積體電路或多晶片模組的裝置。所述裝置包括(1)非揮發性記憶體陣列,包括記憶體胞元的多個區塊,且包括儲存於多個區塊的特定區塊中的金鑰;(2)端口,用於來自於陣列的資料的外部通訊;(3)安全邏輯,耦合至記憶體陣列,且利用協定中的金鑰以啟用儲存於多個區塊中的區塊的資料的存取:以及(4)存取控制電路,耦合至陣列,包括藉由用於協定中的安全邏輯對特定區塊啟用唯讀存取的邏輯,且防止經由端口對特定區塊存取。
在一個實施例中,闡述一種操作包括非揮發性記憶體陣列的電路的方法。所述方法包括:(1)將金鑰儲存於所述非揮發性記憶體陣列的多個區塊中的特定區塊中;(2)由外部裝置或通訊網路使用埠自所述陣列存取資料;(3)由耦接至所述非揮發性記憶體陣列的安全邏輯電路在協定中利用儲存於所述特定區塊中的所述金鑰來允許存取儲存於所述多個區塊中的各區塊中的資料;(4)允許所述安全邏輯對所述特定區塊進行唯讀存取以供在所述協定中使用,並阻止經由所述埠存取所述特定區塊。
本揭露所述的協定可包括查問/回應協定,所述查問/回應協定包括經由所述埠進行資料交換。
本揭露所述的存取控制電路具有其中允許經由所述埠存取所述特定區塊以寫入所述金鑰的第一狀態、其中禁止經由所述埠存取所述特定區塊來進行讀取或寫入、並允許所述安全邏輯存取所述特定區塊來進行讀取的第二狀態。所述的存取控制電路包括允許及禁止存取所述多個區塊中的對應區塊的區塊鎖位元。
在實施例中,所述封裝式積體電路或多晶片模組中包括邏輯。所述邏輯可將使用所述一組記憶體胞元生成的金鑰儲存至所述特定區塊中,且可使用記憶體陣列中的一組記憶體胞元來執行功能以生成所述金鑰。所述一組記憶體胞元位於所述特定區塊中。
所述的金鑰包括位於所述一組記憶體胞元的子集中的資料值、以及辨識所述子集中的成員以供所述安全邏輯使用的位址映射。
所述記憶體陣列、所述埠、所述安全邏輯、及所述存取控制電路可安置於單個積體電路上。
在一實施例中描述一種記憶體裝置。記憶體裝置包括物理不可複製功能電路;以及保護電路,經配置以抑止在物理不可複製功能電路中的記憶體胞元的程式化程序以及抹除程序。在實施例中,保護電路包括指示(indicator),指出程式化或抹除物理不可複製功能電路的可存取性(accessibility),且指示是在抑止物理不可複製功能電路的程式化程序或抹除程序的狀態中。在實施例中,指示為熔絲、單次程式化胞元(one-time-programming;OPT)、或暫存器。在實施例中,物理不可複製功能電路包括在非揮發性記憶體陣列中的經選擇的一組胞元,且所述電路包括寫入偏壓產生器(write bias generator),產生寫入偏壓配置以在陣列中寫入記憶體胞元;且其中寫入偏壓產生器被抑止連接至物理不可複製功能電路的經選擇的一組記憶體胞元,寫入偏壓產生器在物理不可複製功能電路被啟用時被停用。
在實施例中,保護電路經配置以執行鑑認演算,以判斷程式化或抹除物理不可複製功能電路的存取性。鑑認演算可包括密碼鑑認(passcode authentication)。
在實施例中,鑑認演算連接(interface)於指紋鑑認機制或實體金鑰(hardware key)。
例中描述一種記憶體裝置。記憶體裝置包括物理不可複製功能電路,提供初始金鑰;隨機數產生器,產生隨機數;以及邏輯電路系統,合併初始金鑰與隨機數為改良的金鑰;以及控制電路,經配置以檢查改良的金鑰的內容的特定圖案以允許(permit)或抑止(inhibit)物理不可複製功能電路的寫入程序。舉例而言,需要允許寫入程序的特定圖案可皆為1或皆為零。
儘管參照以上所詳述的較佳實施例及實例揭露了本發明,然而,應理解,該些實例旨在具有說明性意義而非限制性意義。預期熟習此項技術者將易於想到潤飾及組合,所述潤飾及組合將處於本發明的精神及以下申請專利範圍的範圍內。
100、440、1600‧‧‧積體電路
110‧‧‧任務功能電路
111、116、131、141、151、161、171、1631、1651、1661、1671‧‧‧匯流排
115‧‧‧存取控制區塊
120、181‧‧‧輸入/輸出介面
122、192、194‧‧‧線路
125、1640‧‧‧安全邏輯
130‧‧‧記憶體
140‧‧‧物理不可複製功能程式控制器
150、1650、1784‧‧‧隨機數產生器
160、1660‧‧‧邏輯電路系統
170、1670‧‧‧金鑰
180‧‧‧封裝式積體電路或多晶片模組
182、191‧‧‧線路
183‧‧‧存取控制開關
184‧‧‧感測放大器/緩衝器
185‧‧‧陣列
186‧‧‧位址解碼器
186’‧‧‧解碼器結構
186A‧‧‧鎖定位元/位元
187‧‧‧特定區塊
187A、187B、187C‧‧‧子區塊
189‧‧‧記憶體胞元
189A‧‧‧物理不可複製功能胞元
190、1640、1713‧‧‧安全邏輯
193‧‧‧控制狀態機器
193A‧‧‧指示胞元
195‧‧‧其他電路系統
198‧‧‧主機
198A‧‧‧金鑰資料庫
199‧‧‧內連線
200、300、800、900、1300、1500‧‧‧流程圖
201、210、220、230、240、250、260、310、320、801、810、820、830、832、834、835、901、910、920、930、1301、1310、1320、1330、1340、1350、1360、1370、1501、1510、1512、1514、1516、1518、1520、1522、1524、1526、1528、1730、1731、1732、1733、1734、1735、1750、1751、1752、1753、1760、1761、1762、2900、2901、2902、2903、2904、2905、2906、2907、3000、3001、3002、3003、3004、3005、3006、3007、3008、3009、3010、3100、3101、3102、3103、3104、3105、3106、3107、3108、3109、3110、3200、3201、3202、3203、3204、3205、3206、3207、3208、3209、3210‧‧‧步驟
410‧‧‧處理器系統
420‧‧‧物理不可複製功能邏輯與驅動器
430‧‧‧裝置搬運機/探測器
450‧‧‧安全電路
460‧‧‧快閃記憶體陣列
470‧‧‧快閃記憶體陣列
471‧‧‧物理不可複製功能區塊
472‧‧‧啟動區塊
473‧‧‧參數區塊
474‧‧‧保護邏輯
475‧‧‧周邊電路系統
500、700‧‧‧起始臨限值分佈
510、610、710‧‧‧起始分佈的第一部分
520、620、720‧‧‧起始分佈的第二部分
525‧‧‧分佈
530‧‧‧感測容限
600‧‧‧起始臨限值分佈
625、735‧‧‧臨限值分佈
630、740‧‧‧感測容限
730‧‧‧起始分佈的第三部分
750‧‧‧第二感測容限
816‧‧‧初始臨限值分佈
817‧‧‧臨限值範圍/範圍
818‧‧‧起始分佈
840、850、860‧‧‧基板
841、851‧‧‧源極區
842、852‧‧‧汲極區
843、853‧‧‧控制閘極
844、856‧‧‧穿隧層
845‧‧‧浮置閘極
846、848‧‧‧氧化物層
847‧‧‧氮化物層
857‧‧‧電荷陷獲層
858‧‧‧阻擋層
863‧‧‧垂直通道結構
867‧‧‧字元線
869‧‧‧位元線
1200‧‧‧起始臨限值分佈
1210、1211、1220、1221‧‧‧子分佈
1240‧‧‧VR-與VR+之間的差值
1400‧‧‧起始分佈
1410、1420、1430‧‧‧子分佈
1610‧‧‧快閃記憶體陣列
1620‧‧‧存取與偏壓電路
1630‧‧‧物理不可複製功能控制器
1632‧‧‧位址與參數儲存器
1633‧‧‧狀態機器
1710‧‧‧積體電路或多晶片模組
1711、1785‧‧‧物理不可複製功能電路
1712‧‧‧控制器
1714、1771、1776、1781、1787‧‧‧非揮發性記憶體
1720‧‧‧主機
1770‧‧‧物理電路
1775‧‧‧電路/物理不可複製功能電路
1780‧‧‧隨機數產生器
1786‧‧‧邏輯電路
3300‧‧‧主機
3301‧‧‧積體電路
3302、3303‧‧‧介面控制器
3304、3305‧‧‧邏輯電路
3306、3335‧‧‧金鑰儲存區塊/金鑰儲存器
3309‧‧‧隨機數產生器
3311‧‧‧記憶體陣列
3315‧‧‧指令解碼器
3337‧‧‧物理不可複製功能電路
3339‧‧‧緩衝器
VR‧‧‧讀取電壓
VR+‧‧‧上部讀取電壓
VR-‧‧‧下部讀取電壓
圖1是包括多個快閃記憶體胞元及控制器的裝置的簡化方塊圖,所述控制器用於使用所述多個快閃記憶體胞元來執行物理不可複製功能與隨機數產生器以提供資料集。 圖2是包括多個可程式化記憶體胞元及控制器的裝置的另一實例,所述控制器用於使用所述多個可程式化記憶體胞元來執行物理不可複製功能以提供資料集。 圖3說明積體電路上的快閃記憶體中的可程式化記憶體胞元的區塊,其中包括物理不可複製功能區塊。 圖4A至圖4D說明藉由查找一組可程式化記憶體胞元的第一子集及第二子集並基於所辨識的第一子集及第二子集而建立穩定資料集來產生資料集的實例。 圖5A至圖5D說明如參照圖4A至圖4D及表1所述來產生資料集的另一實例,其示出即使應用相同程序,資料集中亦存在變化(variation)。 圖6示出如參照圖4A至圖4D及表1及圖5A至5D及表2所述在包括可程式化記憶體胞元的積體電路上產生穩定資料集的示例性流程圖。 圖7A至圖7D說明藉由查找一組可程式化記憶體胞元的第一子集、第二子集及第三子集來產生資料集並為所述資料集構建位址映射的實例。 圖8示出如參照圖7A至圖7D及表3所述在包括可程式化記憶體胞元的積體電路上產生資料集的示例性流程圖。 圖9示出如參照圖7A至圖7D及表3所述在包括可程式化記憶體胞元的積體電路上產生資料集的另一示例性流程圖。 圖10A至圖10C說明將一組中的可程式化記憶體胞元的臨限值設定成起始分佈。 圖10D至圖10F說明可用於如本揭露所述產生資料集的示例性快閃記憶體胞元技術。 圖11示出應用初始化偏壓施加操作以將一組中的可程式化記憶體胞元的臨限值設定成起始分佈的示例性流程圖。 圖12A至圖12C說明可用於依賴於電荷陷獲記憶體胞元中臨限電壓的相異性來產生資料集的程序。 圖13是以參照圖12A至圖12C所解釋的方式在包括可程式化電荷陷獲記憶體胞元的積體電路上產生穩定資料集的示例性流程圖。 圖14A至圖14C說明可用於依賴於電荷陷獲記憶體胞元中臨限電壓的相異性來產生資料集的替代程序。 圖15是以參照圖14A至圖14C所解釋的方式在包括可程式化電荷陷獲記憶體胞元的積體電路上產生穩定資料集的示例性流程圖1500。 圖16是包括快閃記憶體陣列及利用所述記憶體陣列以及隨機數產生器提供資料集的控制器的積體電路的簡化方塊圖。 圖17是示出與登記系統(enrollment system)耦接的包括物理不可複製功能電路系統及非揮發性記憶體的封裝式積體電路或多晶片模組的系統圖。 圖17A是示出包括替代的物理不可複製功能電路系統以及非揮發性記憶體的封裝式積體電路或多晶片模組的系統圖,其中所述封裝式積體電路或多晶片模組可耦接於相似於圖17所示的登記系統。 圖18說明可在類似圖17所示系統那樣的系統中使用的非揮發性記憶體的替代配置。 圖19說明可在類似圖17所示系統那樣的系統中使用的非揮發性記憶體的另一替代配置。 圖20說明可用於儲存安全ID及位址映射的資料結構,所述安全ID及位址映射是根據本揭露所述物理不可複製功能的一些實施例而生成且可儲存於例如圖17所示系統等的系統中。 圖21是包括封裝式積體電路或多晶片模組及主機的簡化系統圖,所述主機將物理不可複製功能電路與非揮發性記憶體一起使用。 圖22至圖24是說明在各種實施例中類似圖21所示系統那樣的系統的操作的簡化流程圖。 圖25至圖27提供對如本揭露所述物理不可複製電路系統與非揮發性記憶體的組合的各種替代配置的簡化說明。 圖28說明包括物理不可複製功能電路以及隨機數產生器的配置。 圖29是藉由控制器在積體電路上執行的程序的簡化流程圖,其中所述程序用以執行物理不可複製功能與隨機數產生器,以及凍結(freeze)產生的金鑰。 圖30是藉由控制器在積體電路上執行的替代的程序的簡化流程圖,其中所述替代程序用以執行物理不可複製功能與隨機數產生器,以及凍結產生的金鑰。 圖31是藉由控制器在積體電路上執行的另一替代程序的簡化流程圖,其中所述另一替代程序用以執行物理不可複製功能與隨機數產生器,以及凍結產生的金鑰。 圖32是藉由控制器在積體電路上執行的又一替代程序的簡化流程圖,其中所述又一替代程序用以執行物理不可複製功能與隨機數產生器,以及凍結產生的金鑰。 圖33至圖38說明用於應用物理不可複製功能金鑰的協定,且此協定是用於安全功能。
Claims (24)
- 一種電子系統,包括客端裝置與主機,所述主機包括處理器、安全邏輯與通訊介面,所述客端裝置對應於所述主機,且所述客端裝置包括: 積體電路或多晶片模組,具有安全邏輯、通訊介面以及邏輯以使用物理不可複製功能而產生物理不可複製功能金鑰且儲存所述物理不可複製功能金鑰於物理不可複製金鑰儲存器;以及 邏輯,位於所述積體電路或所述多晶片模組上,以將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括多個非揮發性記憶體胞元,位於所述積體電路或所述多晶片模組上,且其中所述物理不可複製功能使用藉由使用所述多個非揮發性記憶體胞元中的非揮發性記憶體胞元產生的熵。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括指令解碼器與電路系統,位於所述積體電路或所述多晶片模組上,回應於經由所述通訊介面接收來自於所述主機的指令或一組指令,以在提供所述物理不可複製功能至所述主機之後停用所述物理不可複製功能金鑰儲存器的改變。
- 如申請專利範圍第1項所述的電子系統,其中所述物理不可複製功能金鑰儲存器包括一組非揮發性記憶體胞元。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括: 多個非揮發性記憶體胞元,位於所述積體電路或所述多晶片模組上;以及 指令解碼器與電路系統,位於所述積體電路或所述多晶片模組上,回應於經由所述通訊介面接收來自於所述主機的指令或一組指令,以使用特定於來自於所述主機的所述指令或所述一組指令中的位址來在所述多個非揮發性記憶體胞元中識別所述物理不可複製功能金鑰儲存器。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的指令解碼器,經配置以使: 經由所述通訊介面接收的來自於所述主機的指令或一組指令造成所述邏輯使用物理不可複製功能以產生物理不可複製功能金鑰且將所述物理不可複製金鑰傳送至所述主機的執行。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的指令解碼器,經配置以使: 經由所述通訊介面接收的來自於所述主機的指令或一組指令接收來自於所述主機的暫時金鑰,且使用所述暫時金鑰以加密所述物理不可複製功能金鑰,且藉由發送經加密的所述物理不可複製功能金鑰而將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的指令解碼器,經配置以使: 經由所述通訊介面接收的來自於所述主機的指令或一組指令使用儲存在所述積體電路或所述多晶片模組上的暫時金鑰以加密所述物理不可複製功能金鑰,且藉由發送經加密的所述物理不可複製功能金鑰而將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的指令解碼器,經配置以使: 經由所述通訊介面接收的來自於所述主機的指令或一組指令造成隨機數產生器的使用,以產生暫時金鑰,且將所述暫時金鑰傳送至所述主機,且將所述暫時金鑰儲存於所述積體電路或所述多晶片模組上;以及 回應於所述指令或所述一組指令以加密所述物理不可複製功能金鑰,且藉由發送經加密的所述物理不可複製功能金鑰而將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的指令解碼器,經配置以使: 經由所述通訊介面接收的來自於所述主機的金鑰置換指令或金鑰置換指令序列造成所述邏輯使用物理不可複製功能以產生物理不可複製功能金鑰、藉由使用與所述主機共享的秘密金鑰加密所述物理不可複製功能金鑰、且發送經加密的所述物理不可複製功能金鑰至所述主機的執行。
- 如申請專利範圍第10項所述的電子系統,其中位於所述積體電路或所述多晶片模組上的所述指令解碼器更經配置以停用所述金鑰置換指令或所述金鑰置換指令序列的後續使用。
- 如申請專利範圍第1項所述的電子系統,其中所述客端裝置包括多個非揮發性記憶體胞元,位於所述積體電路或所述多晶片模組上,且其中所述物理不可複製功能使用藉由使用所述多個非揮發性記憶體胞元中的非揮發性記憶體胞元產生的熵以產生物理不可複製功能資料集,且合併所述物理不可複製功能資料集與來自於隨機數產生器的隨機數,以產生所述物理不可複製功能金鑰。
- 一種電子系統的操作方法,所述電子系統包括客端裝置與主機,所述主機包括處理器、安全邏輯與通訊介面,所述客端裝置包括積體電路或多晶片模組,且所述客端裝置對應於所述主機,所述電子系統的操作方法包括: 使用位於所述積體電路或所述多晶片模組上的物理不可複製功能以產生物理不可複製功能金鑰且將所述物理不可複製功能金鑰儲存在物理不可複製功能金鑰儲存器中;以及 將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第13項所述的電子系統的操作方法,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的多個非揮發性記憶體胞元,其中所述物理不可複製功能使用藉由使用所述多個非揮發性記憶體胞元中的非揮發性記憶體胞元產生的熵。
- 如申請專利範圍第13項所述的電子系統的操作方法,包括:回應於接收來自於所述主機的指令或一組指令,在在將所述物理不可複製功能金鑰提供至所述主機之後停用所述物理不可複製功能金鑰儲存器的改變。
- 如申請專利範圍第13項所述的電子系統的操作方法,其中所述物理不可複製功能金鑰儲存器包括一組非揮發性記憶體胞元。
- 如申請專利範圍第13項所述的電子系統的操作方法,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的多個非揮發性記憶體胞元,且包括:回應於從所述主機接收的指令或一組指令,使用所述指令或所述一組指令中的特定位址以辨識儲存於所述多個非揮發性記憶體胞元中的所述物理不可複製功能金鑰。
- 如申請專利範圍第13項所述的電子系統的操作方法,包括:回應於從所述主機接收的指令或一組指令,造成所述積體電路或所述多晶片模組上的邏輯的執行,以使用所述物理不可複製功能以產生所述物理不可複製功能金鑰,且將所述物理不可複製功能金鑰發送至所述主機。
- 如申請專利範圍第13項所述的電子系統的操作方法,包括:回應於從所述主機接收的指令或一組指令,從所述主機接收暫時金鑰,使用所述暫時金鑰加密所述物理不可複製功能金鑰,且藉由發送經加密的所述物理不可複製功能金鑰以將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第13項所述的電子系統的操作方法,包括:回應於從所述主機接收的指令或一組指令,使用暫時金鑰以加密所述物理不可複製功能金鑰,且藉由發送經加密的所述物理不可複製功能金鑰以將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第13項所述的電子系統的操作方法,包括:回應於從所述主機接收的指令或一組指令,使用隨機數產生器產生暫時金鑰,將所述暫時金鑰發送至所述主機,且將所述暫時金鑰儲存於所述積體電路或所述多晶片模組上;以及 回應於所述指令或所述一組指令,加密所述物理不可複製功能金鑰,且藉由發送經加密的所述物理不可複製功能金鑰以將所述物理不可複製功能金鑰提供至所述主機。
- 如申請專利範圍第13項所述的電子系統的操作方法,包括:回應於從主機接收的金鑰置換指令或一組金鑰置換指令,造成邏輯使用所述物理不可複製功能以產生物理不可複製功能金鑰的執行、使用與所述主機共享的秘密金鑰加密所述物理不可複製功能金鑰、以及將經加密的所述物理不可複製功能金鑰發送至所述主機。
- 如申請專利範圍第22項所述的電子系統的操作方法,包括:回應於從所述主機接收的金鑰置換指令或一組金鑰置換指令,停用所述金鑰置換指令或所述一組金鑰置換指令的後續使用。
- 如申請專利範圍第13項所述的電子系統的操作方法,其中所述客端裝置包括位於所述積體電路或所述多晶片模組上的多個非揮發性記憶體胞元,其中所述物理不可複製功能使用藉由使用所述多個非揮發性記憶體胞元中的非揮發性記憶體胞元產生的熵以產生物理不可複製功能資料集,且包括合併所述物理不可複製功能資料集與來自於隨機數產生器的隨機數以產生所述物理不可複製功能金鑰。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/601,582 US10715340B2 (en) | 2016-08-04 | 2017-05-22 | Non-volatile memory with security key storage |
US15/601,582 | 2017-05-22 | ||
US201762594547P | 2017-12-05 | 2017-12-05 | |
US62/594,547 | 2017-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201901442A true TW201901442A (zh) | 2019-01-01 |
TWI716685B TWI716685B (zh) | 2021-01-21 |
Family
ID=65803296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107117219A TWI716685B (zh) | 2017-05-22 | 2018-05-21 | 電子系統及其操作方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI716685B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI825522B (zh) * | 2020-12-11 | 2023-12-11 | 熵碼科技股份有限公司 | 用來控制電子裝置的安全開機的方法及安全開機控制電路以及用來控制電子裝置的註冊的方法 |
TWI841087B (zh) * | 2022-12-02 | 2024-05-01 | 國立陽明交通大學 | 自適應物理不可仿製功能(puf)的穩定集成電路 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117396855A (zh) * | 2021-09-02 | 2024-01-12 | 铠侠股份有限公司 | 储存系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8290150B2 (en) * | 2007-05-11 | 2012-10-16 | Validity Sensors, Inc. | Method and system for electronically securing an electronic device using physically unclonable functions |
US8130955B2 (en) * | 2007-12-21 | 2012-03-06 | Spansion Llc | Random number generation through use of memory cell activity |
CN102165458B (zh) * | 2008-09-26 | 2015-05-27 | 皇家飞利浦电子股份有限公司 | 认证装置和用户 |
US8861736B2 (en) * | 2012-11-19 | 2014-10-14 | International Business Machines Corporation | Reliable physical unclonable function for device authentication |
-
2018
- 2018-05-21 TW TW107117219A patent/TWI716685B/zh active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI825522B (zh) * | 2020-12-11 | 2023-12-11 | 熵碼科技股份有限公司 | 用來控制電子裝置的安全開機的方法及安全開機控制電路以及用來控制電子裝置的註冊的方法 |
TWI841087B (zh) * | 2022-12-02 | 2024-05-01 | 國立陽明交通大學 | 自適應物理不可仿製功能(puf)的穩定集成電路 |
Also Published As
Publication number | Publication date |
---|---|
TWI716685B (zh) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10680809B2 (en) | Physical unclonable function for security key | |
TWI666547B (zh) | 電子裝置、產品及製造積體電路方法及產生資料集的方法 | |
TWI673721B (zh) | 具有物理不可複製功能及隨機數產生器的電路及其操作方法 | |
US11895236B2 (en) | Unchangeable physical unclonable function in non-volatile memory | |
US10855477B2 (en) | Non-volatile memory with physical unclonable function and random number generator | |
CN108958650B (zh) | 电子系统及其操作方法 | |
US11258599B2 (en) | Stable physically unclonable function | |
TWI663604B (zh) | 操作具非揮發性記憶胞電路的方法及使用所述方法的電路 | |
TWI716685B (zh) | 電子系統及其操作方法 | |
TWI758697B (zh) | 積體電路、記憶體電路以及用於操作積體電路的方法 | |
JP7170999B2 (ja) | 機密データを保護することが可能な電子機器 |