TW201319930A - 用於亂數產生器的帶有磁阻元件的熵源 - Google Patents

用於亂數產生器的帶有磁阻元件的熵源 Download PDF

Info

Publication number
TW201319930A
TW201319930A TW101134319A TW101134319A TW201319930A TW 201319930 A TW201319930 A TW 201319930A TW 101134319 A TW101134319 A TW 101134319A TW 101134319 A TW101134319 A TW 101134319A TW 201319930 A TW201319930 A TW 201319930A
Authority
TW
Taiwan
Prior art keywords
random
random value
entropy
coupled
values
Prior art date
Application number
TW101134319A
Other languages
English (en)
Inventor
David M Jacobson
Xiaochun Zhu
Wenqing Wu
Kendrick Hoy Leong Yuen
Seung H Kang
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201319930A publication Critical patent/TW201319930A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1695Protection circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1697Power supply circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Hall/Mr Elements (AREA)
  • Measuring Magnetic Variables (AREA)

Abstract

本發明揭示熵源和亂數(RN)產生器。在一個態樣中,低能熵源包括磁阻(MR)元件和感測電路。該MR元件被施加靜態電流並且具有基於該MR元件的磁化來決定的可變電阻。該感測電路感測該MR元件的電阻並且基於感測出的該MR元件的電阻來提供隨機值。在另一態樣中,RN產生器包括熵源和後處理模組。該熵源包括至少一個MR元件並且基於該至少一個MR元件來提供諸第一隨機值。該後處理模組接收並且處理該等第一隨機值(例如,基於密碼術散列函數、檢錯碼、串流密碼演算法等)並且提供具有改良的隨機性特性的諸第二隨機值。

Description

用於亂數產生器的帶有磁阻元件的熵源
本申請案主張於2011年9月20日提出申請、題為「ENTROPY SOURCE WITH STT-MTJ SEMICONDUCTOR DEVICE FOR RANDOM NUMBER GENERATOR(用於亂數產生器的帶有STT-MTJ半導體裝置的熵源)」的美國臨時申請案第61/536,769號的優先權,該臨時申請案之全部內容經由援引納入於此。
本揭示案大體係關於電子電路,尤其關於用於產生隨機值的技術。
亂數(RN)產生器被廣泛用於為各種應用程式產生隨機值。例如,實施密碼術安全演算法的類電腦設備通常需要隨機值(經常是隨機二進位位元)源。RN產生器可用於為類電腦設備提供隨機值供用於密碼術安全演算法。RN產生器通常亦指稱RNG或隨機位元產生器(RBG)。
RN產生器可用可提供隨機位元序列的熵源來實現。該熵源可用具有可最大程度地由簡單一階瑪律科夫程序建模的狀態轉移的實體設備來實現,從而熵品質和相關安全強度可被更容易地量化以確保足夠的安全強度。隨機位元可從該實體設備的狀態轉移序列推導出。然而,可用於熵源的絕大多數實體設備是昂貴的,需要高功率並且緩慢地產生資料。而且,將該等實體設備的狀態轉移建模成簡單 瑪律科夫程序可能是困難的或不切實際的,此情況使得要量化該等實體設備的效能更加困難。
本文中描述了可基於一或多個磁阻(MR)元件來產生隨機值的熵源和RN產生器。在一個態樣中,低能熵源可包括MR元件和感測電路。該MR元件可被施加靜態電流(且無電流脈衝)並且可具有基於該MR元件的磁化來決定的可變電阻。靜態電流是具有恆定振幅和極性的電流,例如,無電流脈衝。該MR元件可在不同磁化狀態之間自發地且隨機地轉移,並且該等轉移可影響該MR元件的電阻。感測電路可感測該MR元件的電阻並且基於感測出的該MR元件的電阻來提供隨機值。
在另一態樣,RN產生器可包括熵源和後處理模組。該熵源可包括至少一個MR元件並且可基於該至少一個MR元件來提供諸第一隨機值。後處理模組可接收並且處理該等第一隨機值(例如,基於密碼術散列函數、檢錯碼、串流密碼演算法等)並且提供具有改良的隨機性特性的諸第二隨機值。
在又一態樣中,熵源可包括MR單元陣列和感測電路。該MR單元陣列可被佈置成複數個列和複數個行。每個MR單元可包括至少一個MR元件。複數條字線可耦合到該複數個MR單元列。複數條選擇線可耦合到該複數個MR單元行。複數條位元線亦可耦合到此複數個MR單元 行。感測電路可耦合到該複數條選擇線並且可感測該陣列中的該等MR單元的電阻。該陣列中的該等MR單元可被選擇(例如,以交錯方式)並且以第一速率被感測從而以第二速率產生隨機值,該第二速率可比該第一速率高。
在又一態樣中,竄改偵測模組可包括熵源和偵測模組。該熵源可包括至少一個MR元件並且可基於該至少一個MR元件來提供諸第一值。該偵測模組可接收並且處理該等第一值並且提供對該熵源的竄改的指示。該偵測模組可基於各種準則來偵測對該熵源的竄改,該等準則諸如是該等第一值中零的百分比和一的百分比,或該等第一值中的零的連串和一的連串,或該等第一值中的零和一的預定模式的出現數目,或該等第一值的壓縮輸出率等等。
以下更加詳細地描述本揭示案的各個態樣和特徵。
本文中揭示可基於一或多個MR元件來產生隨機值的熵源和RN產生器。MR元件係具有隨該元件之磁化而改變的電阻的元件。MR元件可以是磁穿隧接面(MTJ)半導體裝置、自旋扭矩傳輸磁穿隧接面(STT-MTJ)半導體裝置,或具有對照磁化可變的電阻的某種其他裝置。STT-MTJ裝置係經由使電流流過該裝置來被程式設計/寫入的MTJ裝置(而非如其他MTJ裝置一樣用磁場來程式設計)。為熵源使用MR元件(例如,STT-MTJ裝置)可提供諸如易製造、低成本、高效能,以及能夠量化熵和安全強度的能 力等某些優勢。
熵源和RN產生器可用於各種電子設備,諸如無線設備、蜂巢式電話、智慧型電話、平板電腦、個人數位助手(PDA)、膝上型電腦、桌上型電腦、小筆電、智慧型電腦等。熵源和RN產生器亦可用於各種應用程式,諸如密碼術、噪音源(例如,用於測試裝備)、用於概率邏輯的序列產生(例如,表示隨機變數的序列)、蒙特卡羅類比、最佳化間題、遺傳演算法等。
圖1圖示RN產生器100的設計的方塊圖。在此設計中,RN產生器100包括熵源110和後處理模組120。熵源110包括一或多個MR元件(例如,一或多個STT-MTJ裝置)並且產生諸第一隨機值,該等第一隨機值可以是「1」或「0」的隨機位元。術語「隨機」和「不可預測」可以被可互換地使用。在圖1所圖示的設計中,後處理模組120從熵源110接收該等第一隨機值並且產生(統計上)更接近匹配於來自真隨機源的隨機值的諸第二隨機值。由模組120進行的後處理可改良隨機性性質。該等第二隨機值可以是二進位值或非二進位值。在圖1未圖示的另一設計中,諸第一隨機值可以不作任何後處理地直接作為諸第二隨機值來提供。在此設計中,RN產生器將僅包括熵源110。
在一個態樣中,低能熵源可包括基於靜態電流(例如,低DC電流)來操作的一或多個MR元件。該靜態電流亦可稱為感測電流並且可比切換MR元件的狀態通常所需的電流量低。不是將電流脈衝施加於該一或多個MR元件來 誘發電阻變化。相反,由於熱雜訊及/或其他現象引起的(諸)MR元件的電阻變化被偵測出並且用來產生隨機值。為(諸)MR元件使用靜態電流可提供各種優勢,諸如低功耗、簡化的電路設計等。低能熵源使用低能現象(例如,熱雜訊)來產生熵,而高能熵源使用更高能量激勵(例如,電流脈衝)來產生熵。低能熵源可產生具有合適數量和品質的熵,該熵可與來自高能熵源的熵相當。
圖2A圖示低能熵源110x的示意圖,低能熵源110x是圖1中的熵源110的一種設計。熵源110x包括電阻器210、MR元件220和感測電路230。電阻器210的一端耦合到第一參考電壓(VREF1)並且第二端耦合到節點X。電阻器210亦可耦合到電源電壓(VDD)而非電壓VREF1。MR元件220的一端耦合到節點X並且另一端耦合到電路接地。感測電路230包括感測放大器240(例如,比較器)和D正反器250。感測放大器240的非反相輸入耦合到節點X,感測放大器240的反相輸入接收第二參考電壓(VREF2),並且感測放大器240的輸出耦合到正反器250的D輸入。正反器250亦在正反器250之時鐘輸入處接收時鐘並且在正反器250之Q輸出處提供諸第一隨機值(例如,隨機位元)。使用正反器250的優勢在於該正反器的輸出處的所有轉移是與該時鐘同步的。
MR元件220可包括STT-MTJ裝置或某種其他類型的MR元件。STT-MTJ裝置由兩個磁性材料層與處在中間的磁穿隧效應層夾合來形成。兩個電導體被連接到此兩個磁 性材料層。STT-MTJ裝置的電阻是可變的並且取決於此兩層的相對磁化。此兩個磁性材料層之一者通常具有固定磁化(自旋極化)並且可稱為固定層。此兩個磁性材料層的另一層可被切換並且可稱為自由層。此兩層的相對磁化即使在沒有施加驅動電流時亦可自發地切換(例如,由於熱雜訊/能量)。STT-MTJ裝置的電阻取決於此兩層的相對磁化。
在圖2A所圖示的設計中,電阻性分壓器被用來感測MR元件220的電阻。具體而言,節點X處的電壓(VX)取決於電阻器210的固定電阻R1、MR元件220的可變電阻R2和施加到該電阻性分壓器的電壓VREF1。該電壓VX可被表達為:
如式(1)所示,當MR元件220的電阻R2由於此兩個磁性材料層的相對磁化的自發切換而改變時,電壓VX亦相應地改變。感測放大器240將電壓VX與電壓VREF2進行對比,若電壓VX比電壓VREF2高則提供高輸出電壓,否則提供低輸出電壓。電阻器210的電阻R1、電壓VREF1及/或電壓VREF2可被選擇成使得電壓VX在MR元件220的電阻處於目標值時接近於電壓VREF2
感測放大器240可感測MR元件220的電阻並且基於所感測出的電阻來提供二進位輸出值。來自感測放大器240的該等二進位輸出值由正反器250基於時鐘來取樣以獲得 諸第一隨機值。用正反器250對來自感測放大器240的該等輸出值進行取樣可確保與後續數位電路的建立時間和保持時間的一致性。
圖2A中的設計基於低能現象來偵測MR元件220的電阻的改變。具體而言,MR元件220的電阻由於自由振盪而改變而無任何驅動電流。此設計可為熵源110x得到相對簡單的電路。此設計亦可減輕耗損並且改良MR元件220的可靠性。MR元件亦可被設計並且製造成使得MR元件能更易於在來自熱雜訊及/或其他能量源的攪動下經歷自發的狀態切換。例如,STT-MTJ裝置可被實現成具有弱留存性及/或不具有穩定軸,以使得STT-MTJ裝置可經歷自發的狀態切換。
圖2B圖示低能熵源110y的示意圖,低能熵源110y是圖1中的熵源110的另一設計。熵源110y包括電阻器210、MR元件220和感測電路230,該等元件如以上就圖2A所述地被耦合,儘管電阻器210被耦合到電壓VDD而非電壓VREF1。熵源110y進一步包括由電阻器212和214形成的分壓器。電阻器212被耦合在電壓VDD和節點Y之間。電阻器214被耦合在節點Y和電路接地之間。感測放大器240的非反相輸入耦合到節點X,感測放大器240的反相輸入耦合到節點Y,並且感測放大器240的輸出耦合到正反器250的D輸入。正反器250亦在正反器250之時鐘輸入處接收時鐘並且在正反器250之Q輸出處提供諸第一隨機值(例如,隨機位元)。
圖2B使用電橋電路來量測MR元件220的電阻。該電橋電路允許感測放大器240將節點X處的電壓與節點Y處的電壓進行對比。由此,無需參考電壓VREF1和VREF2來感測MR元件220的阻抗,此情況可簡化電路設計。
圖2A和圖2B圖示使用電阻性分壓器來感測MR元件220的可變電阻的兩種設計。MR元件220的可變電阻亦可以其他方式來感測。在另一設計中,電流源可對MR元件220施加靜態電流(例如,省略了電阻器210)。節點X處的電壓VX隨後將取決於該靜態電流(該靜態電流為已知的)和MR元件220的電阻(該電阻正被量測)。在又一設計中,可將另一電阻器與MR元件220串聯連接,並且可對該串聯組合施加一電壓。跨該等元件(MR元件或該電阻器)之一者的該電壓可被感測出。在又一設計中,MR元件220可被放置在「電橋」電路中,該「電橋」電路可以是本領域技藝人士所知的任何電橋電路。該電橋電路可避免對參考電壓(例如,圖2A中的電壓VREF2)的需要。
在又一設計中,第二MR元件可被耦合到感測放大器240的反相輸入並且可被用來產生參考電壓。電阻器可被耦合在該第二MR元件和電源電壓之間,或者電流源可向該第二MR元件提供靜態電流。耦合到非反相輸入的MR元件220和耦合到感測放大器240的反相輸入的該第二MR元件可具有不同設計、不同形狀、不同尺寸、不同厚度及/或其他不同的特性,從而為參考電壓提供良好匹配和更好追蹤。
一般而言,MR元件220的電阻可經由(i)使電流流過該MR元件並且感測電壓,或者(ii)對該MR元件施加電壓並且感測電流來量測。對於選項(i),可使用小的電流量來感測MR元件220的阻抗(以及由此感測MR元件220的狀態)。此小的電流量可以遠低於概率性地翻轉MR元件220的磁化所需的量。MR元件220的總磁矩亦可被量測出。
圖2A和圖2B圖示帶有單個MR元件220的低能熵源的兩種設計。一般而言,低能熵源可包括任何數目的MR元件,該等MR元件可以任何方式耦合。在一個設計中,多個MR元件可串聯耦合。在另一設計中,多個MR元件可並聯耦合。MR元件的串聯或並聯組合可被耦合在節點X和電路接地之間。使用多個MR元件可(i)從更多MR元件來改良熵的採集,(ii)用冗餘MR元件來改良積體電路(IC)產出,因為任何給定MR元件上的產出將會低於100%,並且(iii)最小程度地增加成本和電路/晶粒面積,因為MR元件通常尺寸較小。
熵源可包括具有可經由施加寫脈衝(例如,電流脈衝)來改變的電阻的一或多個MR元件。在此情形中,(諸)MR元件的電阻的改變可基於高能現象來偵測出。基於高能現象來操作(諸)MR元件可為熵源得到更穩健的操作但是可能造成(諸)MR元件的更快耗損。
圖3圖示高能熵源110z的示意圖,高能熵源110z是圖1中的熵源110的另一設計。在熵源110z內,電阻器310、312和314的一端耦合到節點E並且另一端耦合到控制電 路340的三個埠。MR元件320的一端耦合到節點E並且另一端耦合到電路接地。感測放大器330(例如,比較器)的非反相輸入耦合到節點E,感測放大器330之反相輸入接收參考電壓(VREF),並且感測放大器330之輸出耦合到控制電路340的輸入。控制電路340亦在控制電路340之時鐘輸入處接收時鐘並且在控制電路340之輸出處提供諸第一隨機值。在另一設計中,感測放大器330可直接提供諸第一隨機值。
控制電路340可產生寫脈衝來改變MR元件320的狀態。MR元件320在任何給定時刻可處在狀態「0」或「1」。狀態「0」可與MR元件320的電阻比目標值低相對應,並且狀態「1」可與MR元件320的電阻比目標值高相對應。
一般而言,脈衝可以是電流脈衝或電壓脈衝並且可具有正極性或負極性。在一個設計中,控制電路340可包括(i)經由第一開關耦合到電阻器312的正脈衝產生器和(ii)經由第二開關耦合到電阻器314的負脈衝產生器。正電流脈衝可經由電阻器312來施加於MR元件320以使MR元件320的狀態從「0」翻轉到「1」。負電流脈衝可經由電阻器314來施加於MR元件320以使MR元件320的狀態從「1」翻轉到「0」。可經由使第二開關開路、啟用正脈衝產生器並且使第一開關閉路來將正脈衝經由電阻器312施加於MR元件320。可經由使第一開關開路、啟用負脈衝產生器並且使第二開關閉路來將負脈衝經由電阻器314施加於MR元件320。電阻器312和314亦可用兩條電流路徑來替 換。每個脈衝產生器可產生具有合適振幅的電壓或電流脈衝,例如,100微安(μA)或某個其他值的電流脈衝。該等脈衝可以某種概率使MR元件320的此兩個磁性材料層的相對磁化發生改變。該相對磁化的改變可使MR元件320的電阻發生改變。
在另一設計中,控制電路340可包括單個脈衝產生器。第一組開關可連接此脈衝產生器以使得此脈衝產生器可產生(i)經由電阻器312用於MR元件320的正脈衝或(ii)經由電阻器314用於MR元件320的負脈衝。在又一設計中,可經由控制耦合在電阻器312和314以及供電源之間的開關來形成一或多個脈衝產生器。脈衝的寬度可由開關閉路的歷時來決定。在一個設計中,寫脈衝可被施加於MR元件320,並且在施加該寫脈衝之後MR元件320的電阻可被感測出。在另一設計中,MR元件320的電阻可被感測出,並且寫脈衝可隨後被施加於MR元件320從而有可能改變MR元件320的狀態。在又一設計中,MR元件320的阻抗可在寫脈衝被施加於MR元件320的同時被感測出。
圖4圖示由圖3中的控制電路340執行的程序400的設計的流程圖。初始,感測/讀電流可經由圖3中的電阻器310來接通,並且MR元件320的狀態可由感測放大器330來感測(方塊412)。可作出所感測出的MR元件320的狀態是「0」還是「1」的決定(方塊414)。若在方塊414中感測出狀態「0」,則邏輯「0」可被提供給熵累加器(方 塊416)。經由電阻器310的感測電流可被關斷,並且可施加趨於將MR元件320的磁化翻轉到狀態「1」的寫脈衝(例如,正電流脈衝)(方塊418)。否則,若在方塊414中感測出狀態「1」,則邏輯「1」可被提供給熵累加器(方塊420)。經由電阻器310的感測電流可被關斷,並且可施加趨於將MR元件320的磁化翻轉到狀態「0」的寫脈衝(例如,負電流脈衝)(方塊422)。該程序在方塊418或422之後返回到方塊412。
圖3中的控制電路340可以各種方式來實現。在一個設計中,如上所述,控制電路340可包括耦合到電阻器312的正脈衝產生器、耦合到電阻器314的負脈衝產生器和諸開關。該等開關可在任何給定時刻啟用並且或將正脈衝產生器或將負脈衝產生器連接到MR元件320。在另一設計中,控制電路340可包括單個脈衝產生器,該單個脈衝產生器之輸出可經由諸開關以正的或負的方式跨MR元件320的此兩個端子來放置。在此設計中,MR元件320的此兩個端子可跨該脈衝產生器來放置,並且電阻器312和314可被兼併到包含該脈衝產生器的塊中。在又一設計中,電路可將MR元件320的一個端子連接到電源(例如,經由電阻器310)並且可將MR元件320的另一端子連接到電路接地。連接到電源或連接到電路接地之間的切換可基於是期望將MR元件320翻轉到「0」還是「1」狀態來選擇。
在一個設計中,熵源110z可操作以使得由控制電路340為MR元件320產生的每個寫脈衝具有近似50%的使MR 元件320的狀態發生切換的概率。控制電路340可包括控制諸寫脈衝的振幅及/或歷時及/或諸寫脈衝之間的時間量以獲得近似50%的使狀態發生切換的概率的電路系統。例如,控制電路340內的回饋電路(諸如狀態機)可在充分長的時間上對由感測放大器330提供的「0」和「1」值的數目進行拉平並且可將該等寫脈衝調向MR元件320的50%概率的切換點(例如,調節該等寫脈衝的電壓、電流及/或歷時)以從感測放大器330獲得更無偏的輸出。
在另一設計中,控制電路340可對MR元件320施加一系列寫脈衝直至MR元件320反轉狀態。被施加以反轉MR元件320的狀態的寫脈衝的數目可作為第一隨機值來提供。MR元件320在該系列的寫脈衝被施加之前可被重定到初始狀態。
以與圖2A和圖2B中的電阻器210和MR元件220相類似的方式,由具有固定電阻的電阻器310和具有可變電阻的MR元件320形成電阻性分壓器。可經由由感測放大器330將節點E處的電壓(VE)與電壓VREF進行對比來感測出MR元件320的電阻。MR元件320的電阻亦可以其他方式感測出。在任何情形中,感測放大器330均可基於所感測出的MR元件320的電阻來提供二進位輸出值。來自感測放大器330的該等二進位輸出值可由控制電路340基於時鐘來取樣以獲得諸第一隨機值。
圖3圖示用寫脈衝來改變MR元件320的電阻並且用電阻性分壓器來感測MR元件320的電阻的設計。MR元件 320的電阻亦可以其他方式改變。例如,MR元件320的電阻可由強外部磁場來改變。
圖3圖示帶有單個MR元件320的熵源的設計。一般而言,熵源可包括任何數目的MR元件,該等MR元件可串聯、並聯或以某種其他方式耦合。使用多個MR元件可改良熵採集以及IC產出。
圖5圖示熵源110w的示意圖,熵源110w是圖1中的熵源110的又一設計。熵源110w包括具有M列和N行MR單元520的M×N陣列510,其中一般而言M>1及/或N>1。如下所述,每個MR單元520可基於各種設計來實現。每行包括M個MR單元520aj至520mj、開關522j至528j,以及程式設計(「Prog.」)源532j和534j,其中j是行索引並且j{a,...,n}。每行j中的此M個MR單元520aj至520mj被連接到用於該行的位元線(BL)542j和選擇線(SL)544j。每行j中的此M個MR單元520aj至520mj被進一步分別連接到M條字線(WL)546a至546m。對於每行j,開關522j被耦合在程式設計源532j和位元線542j的第一端之間,並且開關524j被耦合在程式設計源534j和選擇線544j的第一端之間。對於每行j,開關526j被耦合在位元線542j的第二端和電路接地之間,並且開關528j被耦合在選擇線544j的第二端和電路接地之間。對於每行j,位元線542j的該第二端和選擇線544j的該第二端被提供給感測電路550。感測電路550可感測由相關聯的字線和位元線選中之每一MR單元的電阻。感測電路550基於感 測出的該等選中的MR單元的電阻來提供諸第一隨機值。
對於每行j,程式設計源532j可被用來將行j中的MR單元520aj至520mj的狀態從「0」改變到「1」。程式設計源534j可被用來將MR單元520aj至520mj的狀態從「1」改變到「0」。程式設計源532j和534j可由此被用來對MR單元520aj至520mj進行寫入。在一個設計中,相同程式設計源532j和534j可被使用於以下兩者:(i)用於改變MR元件520aj至520mj的狀態的寫電路系統和(ii)用於感測MR元件520aj至520mj的狀態的讀電路系統。
在一個設計中,程式設計源532和534可以是電流源,例如,用於包括如圖6B所示的串聯耦合的MR元件的MR單元520。在另一設計中,程式設計源532和534可以是電壓源,例如,用於包括如圖6C所示的並聯耦合的MR元件的MR單元520。
在一個設計中,程式設計源532和534可以是提供具有固定振幅/幅度和寬度的電流或電壓脈衝的固定電流或電壓源。在另一設計中,程式設計源532和534可以是提供具有可調節振幅及/或寬度的電流或電壓脈衝的可配置電流或電壓源。MR單元可以在任何給定時刻或處於狀態P或處於AP中。狀態P可等效於MR元件的邏輯「0」,並且狀態AP可等效於MR元件的邏輯「1」。在一個設計中,程式設計源532和534可被獨立地配置成提供在兩個方向(從狀態P到狀態AP的第一方向和從狀態AP到狀態P的第二方向)上對MR單元520的期望程式設計。
使給定MR單元的狀態發生切換的概率可取決於施加於該MR單元的程式設計脈衝(例如,電流脈衝或電壓脈衝)的振幅。使狀態發生第一方向上的切換的期望/目標概率可經由調節來自程式設計源532的程式設計脈衝的振幅來獲得。使狀態發生第二方向上的切換的期望概率可經由調節來自程式設計源534的程式設計脈衝的振幅來獲得。例如,來自程式設計源532的脈衝可被施加於第一MR單元以使該MR單元以近似50%的概率切換到AP狀態。來自程式設計源534的脈衝可被施加於第二MR單元以使該MR單元以近似50%的概率切換到P狀態。一般而言,使狀態發生第一方向或第二方向上的切換的期望/目標概率可經由調整程式設計脈衝的振幅及/或程式設計脈衝的歷時來獲得。
程式設計源532或534可被配置成提供具有能夠(i)概率性地使MR單元的狀態發生切換(例如,以20%到80%之間的概率)或(ii)決定性地使MR單元的狀態發生切換(例如,以90%以上的高概率)的合適振幅的程式設計脈衝。例如,程式設計源532或534可提供(i)具有用於20%概率性切換的第一振幅(例如,80 μA)的程式設計脈衝或者(ii)具有用於99%決定性切換的第二振幅(例如,150 μA)的程式設計脈衝。程式設計源532和534可允許在兩個方向上,即從狀態P到狀態AP以及從狀態AP到狀態P皆能對MR單元進行期望/最優的概率性程式設計。
MR單元可在單個操作中(例如,用來自一個程式設計 源532或534的單個程式設計脈衝)進行或第一方向或第二方向上的概率性地程式設計。MR單元亦可以在多個操作中被概率性地程式設計從而改良來自該MR單元的熵的品質和數量。例如,MR單元可以在第一操作中以第一切換概率被概率性地程式設計,並且隨後在第二操作中以第二切換概率被概率性地程式設計。該第一和第二切換概率可以接近於或可以不接近於較佳的50%切換概率。
在一個設計中,MR單元可如下被程式設計。程式設計計數可被初始化為零。該MR單元可被讀取以決定該MR單元之當前狀態。該MR單元可隨後被程式設計為以特定概率切換到相反狀態,該特定概率可以接近於或可以不接近於較佳的50%切換概率。程式設計計數可隨後被遞增。若該程式設計計數小於總計數(例如,16),則該MR單元可經由重複上述步驟來被再一次程式設計。一般而言,來自該MR單元的熵的品質隨著逐漸增大的總計數和逐漸增多的程式設計操作而改良,即使在切換概率遠遠偏離於較佳的50%切換概率時亦是如此。
在一個設計中,來自熵源110w的諸第一隨機值可被直接用作諸第二隨機值。在另一設計中,來自熵源110w的諸第一隨機值可進一步由後處理模組120處理以產生具有更佳隨機性特性的諸第二隨機值。在此設計中,熵源110w可用於熵產生,並且期望品質和數量的熵可經由調節總計數來獲得。
熵源110w可為很寬範圍的狀態間切換概率(例如,從 1%到99%)產生具有期望品質和數量的熵。例如,熵源110w可以近似50%為「0」的概率和近似50%為「1」的概率來產生每個隨機位元,即使在切換概率並不接近於較佳的50%切換概率時並且即使在切換概率是未知時亦是如此,只要該等切換概率不是0或100%即可。總計數可被選擇成提供具有期望品質和數量的熵。熵源110w可產生具有期望品質和數量的熵,而不一定要調整來自程式設計源532和534的程式設計脈衝的振幅及/或寬度來獲得近似50%的切換概率。能夠以很寬範圍的切換概率來產生具有近似相等的為「0」或「1」的概率的隨機位元的能力可以是高度期望的,因為在IC製程、電壓和溫度(PVT)變動上要獲得50%的切換概率可能是困難且不切實際的。
圖5中的開關522至528可用N溝道金屬氧化物半導體(NMOS)電晶體、P溝道金屬氧化物半導體(PMOS)電晶體及/或其他類型的電晶體來實現。對於每行j,開關524j和526j由用於行j的第一控制信號Uj控制,並且開關522j和528j由用於行j的第二控制信號Vj控制。
圖6A圖示MR單元520a的設計,MR單元520a可用於圖5中的該等MR單元520中的每一者。在此設計中,MR單元520a包括單個MR元件620(例如,STT-MTJ裝置),以及NMOS電晶體622。NMOS電晶體622的汲極耦合到選擇線(SL),NMOS電晶體622的閘極耦合到字線(WL),並且NMOS電晶體622的源極耦合到MR元件620的一個端子。MR元件620的另一端子被耦合到位元線(BL)。 NMOS電晶體622可被(i)導通以將MR元件620連接在源線和位元線之間或者(ii)截止以將MR元件620從源線和位元線斷開。
圖6B圖示MR單元520b的設計,MR單元520b亦可用於圖5中的該等MR單元520中的每一者。在此設計中,MR單元520b包括串聯耦合的多個(K個)MR元件620a至620k,以及NMOS電晶體622。NMOS電晶體622的汲極耦合到選擇線(SL),NMOS電晶體622的閘極耦合到字線(WL),並且NMOS電晶體622的源極耦合到用於最頂上的MR元件620a的自由層的端子。諸MR元件620可以是STT-MTJ裝置,該等STT-MTJ裝置可被耦合成使得一個STT-MTJ裝置(例如,STT-MTJ裝置620a)的固定層被耦合到下一STT-MTJ裝置(例如,STT-MTJ裝置620b)的自由層。用於最底下的MR元件620k的固定層的端子被耦合到位元線(BL)。NMOS電晶體622可被(i)導通以將MR元件620a至620k連接在源線和位元線之間或者(ii)截止以將MR元件620a至620k從源線和位元線斷開。
圖6C圖示MR單元520c的設計,MR單元520c亦可用於圖5中的該等MR單元520中的每一者。在此設計中,MR單元520c包括並聯耦合的多個(K個)MR元件620a至620k,以及NMOS電晶體622。NMOS電晶體622的汲極耦合到選擇線(SL),NMOS電晶體622的閘極耦合到字線(WL),並且NMOS電晶體622的源極耦合到用於此K個MR元件620a至620k的自由層的端子。諸MR元件 620可以是STT-MTJ裝置,該等STT-MTJ裝置可被耦合成使得所有STT-MTJ裝置的自由層被耦合在一起並且所有STT-MTJ裝置的固定層亦被耦合在一起。用於此K個MR元件620a至620k的固定層的端子被耦合到位元線(BL)。NMOS電晶體622可被(i)導通以將MR元件620a至620k連接在源線和位元線之間或者(ii)截止以將MR元件620a至620k從源線和位元線斷開。
回到圖5,若諸MR單元520是以圖6B中的串聯耦合的MR單元520b實現的,則程式設計源532和534可以是電流源。若諸MR單元520是以圖6C中的並聯耦合的MR單元520c實現的,則程式設計源532和534可以是電壓源。
圖5中的熵源110w可如下操作。列i和行j中的給定MR單元520ij的狀態可經由以下來感測:(i)啟動用於列i的字線WLi來導通用於MR單元520ij的NMOS電晶體622,(ii)使用於行j的開關522j至528j開路,並且(iii)感測BLj和SLj線之間的電阻。MR單元520ij的狀態可經由以下來從「0」改變到「1」:(i)啟動用於列i的字線WLi,(ii)將用於行j的程式設計源532j施加於MR單元520ij,(iii)使用於行j的開關522i和528i閉路,並且(iv)使用於行j的開關524j和526j開路。MR單元520ij的狀態可經由以下來從「1」改變到「0」:(i)啟動用於列i的字線WLi,(ii)將用於行j的程式設計源534j施加於MR單元520ij,(iii)使用於行j的開關524i和526i閉路,並且(iv)使用於行j的開關522j和528j開路。給定行中的多個MR元件可 經由啟動用於該等MR元件的字線來併發地感測。不同MR單元520可經由恰當地啟動用於該等MR單元的控制線來在不同時鐘循環中被感測。
在一個設計中,參考陣列可被用來感測陣列510中的諸MR元件520的電阻和狀態。在一個設計中,該參考陣列可以類似於(例如,等同於)MR陣列510。在另一設計中,該參考陣列可與MR陣列510不同。例如,陣列510中的MR元件可與該參考陣列中的MR元件不同,例如,由於不同設計、不同形狀、尺寸、厚度等等。該參考陣列亦可用多晶矽電阻器取代MR元件來實現。
熵源可包括多個MR元件或單元(例如,如圖5所示)以便獲得上述優勢。此類熵源可以各種方式來操作以改良熵產生的效能。
在一個設計中,可經由對多個MR元件(例如,幾百個或幾千個MR元件)的輸出進行交錯或多工來提高熵產生速率。例如,單個MR元件可以10 MHz的速率被感測並且可支援10 MHz的熵產生速率。10 GHz的高得多的熵產生速率可經由順序地感測1000個MR元件並且對該等MR元件的輸出進行交錯來實現。
在另一設計中,可經由對多個MR元件的輸出進行多工處理來減小功耗和切換電流。例如,單個MR元件可用100 ns或更短的切換脈衝以10 MHz的速率被感測以獲得10 MHz的熵產生速率。相同的10 MHz熵產生速率可經由用1 μs或更短的切換脈衝順序地感測10個MR元件並且對該 等MR元件的輸出進行交錯來實現。較長的切換脈衝可減小功耗。
在另一態樣中,例如,如圖1所示,RN產生器可包括熵源和後處理模組。該熵源可基於一或多個MR元件來產生諸第一隨機值。該後處理模組可從該熵源接收該等第一隨機值並且可產生具有更佳隨機性性質的諸第二隨機值。該後處理模組可以各種方式來實現,並且該後處理模組的一些示例性設計在以下描述。
圖7A圖示RN產生器100a的方塊圖,產生器100a為圖1中的RN產生器100的一個設計。在此設計中,RN產生器100a包括熵源110和密碼術散列模組120a,密碼術散列模組120a是圖1中的後處理模組120的一種設計。散列模組120a從熵源110接收諸第一隨機值(例如,隨機位元)並且產生諸第二隨機值。在一個設計中,散列模組120a聚集來自熵源110的每塊L個隨機位元以形成L位元隨機值,其中L可以是任何合適的整數值。散列模組120a隨後基於密碼術/安全散列演算法來散列數個L位元隨機值並且提供N位元散列值,其中N可以是任何合適的整數值。該N位元散列值通常亦稱為散列摘要並且作為第二隨機值被提供。散列模組120a可實現SHA-1(安全散列演算法)、SHA-2(包括SHA-224、SHA-256、SHA-384和SHA-512)、MD-4(訊息摘要)、MD-5,或本領域所知的某種其他安全散列演算法。安全散列演算法具有密碼術性質以使得輸入訊息與輸入訊息之摘要之間的函數是不可逆 的並且兩個輸入訊息映射到相同摘要的可能性非常小。安全散列演算法可接收任何長度的輸入訊息並且可提供固定長度的散列摘要。
圖7B圖示RN產生器100b的方塊圖,RN產生器100b為圖1中的RN產生器100的另一設計。在此設計中,RN產生器110b包括K個熵源110a至110k和密碼術散列模組120b,密碼術散列模組120b是圖1中的後處理模組120的另一設計。一般而言,K可以是任何大於1的整數值。使用多個熵源可改良隨機性。此K個熵源110a至110k之每一熵源可用圖2A中的熵源110x、圖2B中的熵源110y、圖3中的熵源110z、圖5中的熵源110w,或某個其他熵源來實現。圖7B之每一熵源110可基於一或多個MR元件來產生第一隨機值(例如,隨機位元)序列。
在散列模組120b內,K個移位暫存器720a至720k可分別從K個熵源110a至110k接收該等第一隨機值。每個移位暫存器720可聚集來自相關聯熵源110的每塊Q個隨機位元以形成Q位元隨機值,其中Q可以是任何大於1的整數值。散列模組120b可從移位暫存器720a至720k接收Q位元隨機值並且可組合該等Q位元隨機值以形成L位元隨機值。在一個設計中,散列模組120b可聚集來自移位暫存器720a至720k的每組K個Q位元隨機值以獲得一個L位元隨機值,其中K*Q=L。在另一設計中,散列模組120b可用互斥或(XOR)函數來組合來自移位暫存器720a至720k的每組K個Q位元隨機值以獲得一個L位元隨機值, 其中Q=L。散列模組120b亦可以其他方式組合來自移位暫存器720a至720k的每組K個Q位元隨機值。在任何情形中,散列函數730均可基於密碼術/安全散列演算法來散列數個L位元隨機值並且提供N位元散列值,其中N可以是任何合適的整數值。
在一個設計中,散列函數730可具有L個位元的很寬的輸入寬度,其中L可以是該散列函數的塊大小,L對於SHA-256可以是256位元。在另一設計中,散列函數730可具有整數個位元組(例如1、2、4或8位元組)的輸入寬度。如圖7B所示,移位暫存器720可被用來累加來自熵源110a至110k的諸第一隨機值(例如,隨機位元)。在又一設計中,散列函數730可從熵源110a至110k直接接收諸第一隨機值,並且諸移位暫存器720可被省略。
圖8A圖示RN產生器100c的方塊圖,RN產生器100c為圖1中的RN產生器100的又一設計。在此設計中,RN產生器100c包括熵源110和循環冗餘檢查(CRC)模組120c,CRC模組120c是圖1中的後處理模組120的另一設計。CRC模組120c從熵源110接收諸第一隨機值(例如,隨機位元)並且產生諸第二隨機值。CRC模組120c可用包括R個暫存器的線性回饋移位暫存器(LFSR)來實現,其中R可以是任何整數值。此R個暫存器可基於能提供具有良好統計性質的輸出的生成多項式來連接。在一個設計中,諸第一隨機值可以與資料封包被提供給CRC模組相類似的方式來提供給CRC模組120c。CRC模組120c可 在特定數目的第一隨機值已被提供給該CRC模組之後(例如,以與在整個資料封包已被提供給該CRC模組之後產生CRC相類似的方式)提供N位元第二隨機值,其中NR。來自熵源110的隨機位元亦可被用來播種決定性假性隨機位元產生器,或基於檢錯碼產生位元的模組,或某種其他位元產生器。
圖8B圖示RN產生器100d的方塊圖,RN產生器100d為圖1中的RN產生器100的又一設計。在此設計中,RN產生器110d包括多個(K個)熵源110a至110k,以及CRC模組120d,CRC模組120d是圖1中的後處理模組120的又一設計。每個熵源110可基於一或多個MR元件來產生第一隨機值(例如,隨機位元)序列。
在圖8B所示的設計中,CRC模組120d包括K個XOR閘820a至820k,以及LFSR 830。LFSR 830可包括串聯耦合的R個暫存器。此R個暫存器的輸出可在每個時鐘循環中向左移位K個位元。XOR閘820a至820k可分別從K個熵源110a至110k接收第一隨機值。每個XOR閘820亦可接收LFSR 830中的一或多個位元,其中此一或多個位元是基於由CRC模組120d實現的生成多項式來決定的。每個XOR閘820可對所有輸入位元執行模2加法並且在每個時鐘循環中提供1位元輸出。K個XOR閘820a至820k可向LFSR 830的首K個暫存器提供該K個XOR閘820a至820k的輸出。在一個設計中,CRC模組120d可從熵源110a至110k接收第一隨機值並且可在特定數目的第 一隨機值已被提供給該CRC模組之後提供N位元第二隨機值,其中NR。
在一個示例性設計中,K可以等於4,R可等於34,並且N可等於32。四個熵源110可向CRC模組120d內的四個XOR閘820提供該四個熵源110的隨機位元。CRC模組120d亦可包括34位元LFSR 830並且可實現以下生成多項式:x33+x11+1=0。 式(2)
在該示例性設計中,第一XOR閘820a可接收來自第一熵源110a的隨機位元並且亦接收LFSR 830的位元10和位元33。第二XOR閘820b可接收來自第二熵源110b的隨機位元並且亦接收LFSR 830的位元9和位元32。第三XOR閘可接收來自第三熵源的隨機位元並且亦接收LFSR 830的位元8和位元31。第四XOR閘可接收來自第四熵源的隨機位元並且亦接收LFSR 830的位元7和位元30。第一到第四XOR閘可分別向LFSR 830的暫存器3、2、1和0提供該等第一到第四XOR閘的輸出。LFSR 830可在每個時鐘循環中向左移位4個位元。32位元第二隨機值可由LFSR 830的32個暫存器(例如,暫存器2至33)在每16個或更多的時鐘循環(例如,在來自此四個熵源的64個或更多的隨機位元已經被提供給LFSR 830之後)中提供。
圖9圖示RN產生器100e的方塊圖,RN產生器100e為圖1中的RN產生器100的又一設計。在此設計中,RN產生器100e包括熵源110和後處理模組120e。後處理模組 120e包括熵累加器122和密碼術模組124。熵累加器122可從熵源110接收並且累加諸第一隨機值並且提供諸中間隨機值。熵累加器122可基於生成多項式(polynomial generator)、碼等來執行熵累加。密碼術模組124可接收該等中間隨機值並且提供諸第二隨機值。密碼術模組124可實現任何密碼術演算法,諸如在聯邦資訊處理標準(FIPS)特別出版物800-90中列出的演算法或FIPS 140及其附錄所允許的其他演算法,該等資料皆是公眾可獲取的。密碼術模組124亦可實現本領域技藝人士所知的某種其他密碼術演算法。
圖10圖示RN產生器100f的方塊圖,RN產生器100f為圖1中的RN產生器100的又一設計。在此設計中,RN產生器110f包括K個熵源110a至110k,以及組合器120f,組合器120是圖1中的後處理模組120的又一設計。此K個熵源110a至110k可產生K個第一隨機值(例如,隨機位元)序列。組合器120f可從此K個熵源110a至110k接收此K個第一隨機值序列並且可產生諸第二隨機值。在圖10所示的一個設計中,組合器120f可用具有接收此K個第一隨機值序列的K個輸入的XOR閘126來實現。在圖10未圖示的另一設計中,組合器模組120f可實現模M求和器,其中M可以是任何合適值。
RN產生器100f可以各種方式產生N位元第二隨機值。
在一個設計中,在每個時鐘循環中,此K個序列中的K個第一隨機值可被模2N求和來為該時鐘循環獲得N位元 第二隨機值。例如,若N=2並且K4,則在每個時鐘循環中,來自K個熵源110a至110k的K個第一隨機值可被模4求和來為該時鐘循環獲得2位元第二隨機值。在另一設計中,在每個時鐘循環中,此K個序列中的K個第一隨機值可被模2求和來為該時鐘循環獲得1位元組合值。N位元第二隨機值可用由組合器120f在N個時鐘循環中提供的N個組合值來形成。組合器120f亦可用其他電路來實現。
圖11圖示RN產生器100g的方塊圖,RN產生器100g為圖1中的RN產生器100的又一設計。在此設計中,RN產生器110g包括兩個熵源110a和110b以及串流密碼模組120g,串流密碼模組120g是圖1中的後處理模組120的另一設計。每個熵源110基於一或多個MR元件來產生隨機位元序列。
串流密碼模組120g包括兩個LFSR 1120和1130以及非線性函數1140,該等元件共同實現經修改K2串流密碼演算法。LFSR 1120實現第一生成多項式並且包括串聯耦合的五個Q位元暫存器1122a至1122e,其中Q可以是任何大於1的整數值,例如,Q=8、16、32等。乘法器1124接收來自最後的暫存器1122e的Q位元值並且將該Q位元值乘以係數α0。求和器1126接收來自乘法器1124和暫存器1122b的Q位元值,基於有限域加法對此兩個Q位元值求和,並且向暫存器1122a提供Q位元結果。兩個Q位元值的有限域加法可經由對此兩個Q位元值執行逐位XOR來實現。LFSR 1130實現第二生成多項式並且包括串聯耦 合的十一個Q位元暫存器1132a至1122k。乘法器1134a接收來自暫存器1132c的Q位元值並且將該Q位元值或乘以係數1或乘以係數α3,該係數是基於來自熵源110a的隨機位元選擇的。乘法器1134b接收來自暫存器1132k的Q位元值並且將該Q位元值乘以係數α1或α2,該係數是基於來自熵源110b的隨機位元選擇的。求和器1136a接收來自乘法器1134b和暫存器1122j的該等Q位元值並且對該等Q位元值求和。求和器1136b接收來自求和器1136a和暫存器1132e的該等Q位元值並且對該等Q位元值求和。求和器1136c接收來自乘法器1134a和求和器1136b的該等Q位元值並且對該等Q位元值求和。每個求和器1136基於有限域加法對該求和器1136之兩個Q位元值求和並且提供Q位元結果。
非線性函數1140接收來自LFSR 1120的暫存器1122a和1122e的Q位元值以及來自LFSR 1130的暫存器1132a、1132b、1132g和1132k的Q位元值。非線性函數1140基於非線性函數處理所接收的該等Q位元值並且提供N位元第二隨機值。該等第二隨機值可為加密、解密及/或其他密碼術和非密碼術函數用作密碼術金鑰。非線性函數和K2串流密碼演算法在由Kiyomoto等人所著的題為「AWord-Oriented Stream Cipher Using Clock Control(使用時鐘控制的面向字的串流密碼)」的論文中具體描述,該論文為公眾可獲取的。
在圖11所示的設計中,一個熵源110a被用來為乘法器 1134a動態地選擇係數,並且另一熵源110b被用來為乘法器1134b動態地選擇係數。在此設計中,用於LFSR 1130的回饋多項式具有取決於來自熵源110a和110b的隨機值的四個可能值。在另一設計中,單個熵源可被用來僅為乘法器1134a選擇係數,或者僅為乘法器1134b選擇係數,或者為乘法器1134a和1134b兩者選擇係數。例如,來自該熵源的具有偶數索引的隨機位元可為乘法器1134a選擇係數,並且來自該熵源的具有奇數索引的隨機位元可為乘法器1134b選擇係數。在又一設計中,多個熵源可被組合(例如,被互斥或)並且用來為乘法器1134a選擇係數。或者或其他,多個熵源可被組合並且用來為乘法器1134b選擇係數。使用多個熵源來為乘法器1134a及/或1134b選擇係數可改良對個別MR元件失效的抵抗力並且亦可使每個狀態「0」或「1」的百分比更接近於50%。一或多個熵源亦可用來以其他方式為LFSR 1130的一或多個乘法器動態地選擇係數。
來自一或多個熵源的隨機值亦可以其他方式變更LFSR1130的操作及/或狀態。在一個設計中,該等隨機值可與該LFSR中選中的位元相組合(例如,被互斥或)。在另一設計中,該等隨機值可選擇LFSR中的不同分接點。在又一設計中,暫存器(例如,移位暫存器)可接受來自此Q個熵源的許多位元。當該暫存器滿時,來自LFSR的一組位元之每一位元可用該位元之先前值與該暫存器的選中位元相互斥或的結果來替換。
圖12圖示RN產生器100h的方塊圖,RN產生器100h為圖1中的RN產生器100的又一設計。在此設計中,RN產生器100h包括Q個熵源110a至110q,以及串流密碼模組120h,串流密碼模組120h是圖1中的後處理模組120的另一設計,其中Q可以是任何大於1的整數值。熵源110a至110q產生Q個隨機位元序列。在圖12圖示的設計中,串聯-並聯(S/P)轉換器1210接收此Q個隨機位元序列並且提供Q位元隨機值序列。每個Q位元隨機值可包括來自此Q個隨機位元序列之每一序列的一個位元。S/P轉換器1210可用直通線來實現。在圖12未圖示的另一設計中,S/P轉換器1210從單個熵源110接收單個隨機位元序列並且提供Q位元隨機值序列。每個Q位元隨機值可基於該單個隨機位元序列中的Q個位元來形成。一般而言,S/P轉換器1210可從一或多個熵源接收一或多個隨機位元序列並且可提供Q位元隨機值序列。
串流密碼模組120h實現經修改SNOW 3G串流密碼演算法並且包括LFSR 1220、有限狀態機(FSM)1230,以及求和器1240和1242。LFSR 1220包括串聯耦合的16個Q位元暫存器1222a至1222p並且實現生成多項式α.x15+x13-1.x4+1=0。有限域乘法器1224a接收來自最後的暫存器1222p的Q位元值並且將該Q位元值乘以係數α0。有限域乘法器1224b接收來自暫存器1222e的Q位元值並且將該Q位元值乘以係數α-1。求和器1226a接收來自乘法器1224a和FSM 1230的Q位元值並且對該等Q位元值求 和。求和器1226b接收來自求和器1226a和暫存器1222n的Q位元值並且對該等Q位元值求和。求和器1226c接收來自求和器1226b和乘法器1224b的Q位元值並且對該等Q位元值求和。每個求和器1226基於有限域加法對該求和器1226之兩個Q位元值求和並且提供Q位元結果。
FSM 1230包括三個Q位元暫存器1232a至1232c和兩個替換盒(S盒)1234a和1234b。整數求和器1236a接收來自暫存器1222a和1232a的Q位元值並且基於模2Q加法對該等Q位元值求和。求和器1238a接收來自求和器1236a和暫存器1232b的Q位元值並對該等Q位元值求和,並且提供求和器1238a之Q位元輸出作為FSM 1230的輸出。求和器1242接收來自暫存器1222k和S/P轉換器1210的Q位元值並且對該等Q位元值求和。求和器1238b接收來自求和器1242和暫存器1232c的Q位元值並且對該等Q位元值求和。求和器1238和1242中的每一者基於有限域加法對求和器1238和1242中的每一者之兩個Q位元值求和並且提供Q位元結果。整數求和器1236b接收來自求和器1238b和暫存器1232b的Q位元值並基於模2Q加法對該等Q位元值求和,並且向暫存器1232a提供該整數求和器1236b之Q位元輸出。求和器1240對來自暫存器1222p和FSM 1230的Q位元值求和並且提供N位元第二隨機值,其中NQ。S盒1234a接收暫存器1232a的輸出並且向暫存器1232b提供輸入。S盒1234b接收暫存器1232b的輸出並且向暫存器1232c提供輸入。每個S盒1234 基於預定義函數來將Q位元輸入映射到Q位元輸出。
在一個設計中,FSM 1230和求和器1242可被操作長達數個時鐘循環以初始化LFSR 1220。LFSR、FSM 1230和求和器1240可隨後被操作以產生諸第二隨機值。RN產生器100h亦可以其他方式操作。
在一個設計中,熵源110和S/P轉換器1210可基於用於LFSR 1220和FSM 1230的相同時鐘來工作。在另一設計中,LFSR 1220和FSM 1230可基於第一時鐘來工作,並且熵源110和S/P轉換器1210可基於比該第一時鐘快的第二時鐘來工作。此設計在若每個時鐘循環使LFSR 1220和FSM 1230移步一次的情況下尤其適用。
圖11和圖12圖示持續將熵注入到RN產生器中的兩個實例。在圖11中,RN產生器100g接受兩個隨機位元並且提供32個隨機位元。由此,RN產生器100g不夠格成為根據NIST定義的非決定性隨機位元產生器(NRBG)。在圖12中,RN產生器100h從諸MR設備接收近似等於輸出速率的熵。由此,RN產生器100h夠格成為根據NIST定義的NRBG。
圖11和圖12圖示基於一或多個熵源來修改兩個示例性密碼術函數(例如,串流密碼演算法)的內部狀態的兩個設計,其中每個熵源可包括一或多個MR元件。除圖11和圖12中提供的具體實例以外,密碼術函數的操作亦可以其他方式基於一或多個熵源來修改。熵源亦可用來修改其他密碼術函數的內部狀態及/或運算。
後處理模組120的各種示例性設計已經在以上描述。一般而言,後處理電路120可從單個熵源串列接收諸第一隨機值(例如,如圖7A、8A或9所示)或者從多個熵源並行接收諸第一隨機值(例如,如圖7B、8B、10、11或12所示)。後處理模組120可以是可統計性地或計算性地組合該等第一隨機值的熵提取器。統計性熵提取器可基於模型的假定(例如,某些事件的實例是獨立同分佈的假定)來操作,並且可產生無偏且不相關並與真隨機源在統計上不可區分的隨機值。計算性熵提取器可將該等第一隨機值饋送到諸如散列函數之類的函數中,並且可以隨機位元塊的形式來呈現輸出。若選中的散列函數密切近似於理想散列函數,則該計算性熵提取器應當能夠基於從一或多個MR元件推導出的諸第一隨機值來產生與真隨機源不可區分的諸第二隨機值。
在另一態樣中,偵測電路可被用來偵測對包括一或多個MR元件的熵源的竄改。MR元件具有基於磁場改變的可變電阻。例如,如上所述,STT-MTJ裝置的電阻可基於此兩個磁性材料層的相對磁化而改變。MR元件可易受竄改,例如,用放置在密切鄰近該MR元件處的磁體。可如下所述地來偵測對該MR元件的竄改。
圖13圖示可用來偵測對MR元件1320的竄改的類比竄改偵測電路1300的示意圖。竄改偵測電路1300包括熵源1310和偵測模組1330。在熵源1310內,電阻器1312的一端耦合到第一參考電壓(VREF1)並且另一端耦合到節點 A。MR元件1320的一端耦合到節點A並且另一端耦合到電路接地。
在偵測模組1330內,感測放大器1332的輸入耦合到節點A並且感測放大器1332的輸出耦合到電阻器1334的一端。感測放大器1332亦可接收參考電壓,如圖2A或2B所示但為了簡化未在圖13中圖示。電阻器1334的另一端被耦合到節點B。電容器1336被耦合在節點B和電路接地之間。第一比較器1340a的非反相輸入耦合到節點B,第一比較器1340a的反相輸入接收第二參考電壓(VREF2),並且第一比較器1340a的輸出耦合到OR(或)閘1350的第一輸入。第二比較器1340b的非反相輸入耦合到節點B,第二比較器1340b的非反相輸入接收第三參考電壓(VREF3),並且第二比較器1340b的輸出耦合到OR閘1350的第二輸入。OR閘1350提供誤差信號。電壓VREF2比電壓VREF3高。電壓VREF2和VREF3為正常操作下的MR元件1320定義電阻值的目標範圍。竄改偵測器1360從OR閘1350接收該誤差信號,如下所述地決定MR元件1320是否已經被竄改,並且提供竄改指示。
感測放大器1332感測節點A處的電壓(VA),該電壓取決於MR元件1320的電阻。感測出的電壓由包括電阻器1334和電容器1336的低通濾波器濾波。由比較器1340a將節點B處的經濾波電壓(VB)與電壓VREF2進行對比並且亦由比較器1340b將VB與電壓VREF3進行對比。誤差信號在比較器1340a或1340b任一者的輸出為高時處於邏輯 高。
MR元件1320被用作感測器以偵測例如用強磁場或溫度之類來操縱該MR元件的操作的外部嘗試。在一個設計中,MR元件1320可與在熵源中使用的MR元件不同。在另一設計中,在熵源中使用的MR元件亦可被用作竄改偵測電路1300中的MR元件1320。在任何情形中,電壓VB均與感測放大器1332的輸出的工作循環線性相關,其中該工作循環取決於為諸輸出位元為「1」的分數。比較器1340a偵測該工作循環是否超過由電壓VREF2決定的高臨限值。比較器1340b偵測該工作循環是否低於由電壓VREF3決定的低臨限值。誤差信號在該工作循環不在該高臨限值和低臨限值以內時處在邏輯高。儘管未在圖13中圖示,但是OR閘1350的輸出可被提供給正反器,該正反器可提供該誤差信號。在任何情形中,該誤差信號均可包括基於所偵測出的工作循環決定的一和零的序列,該工作循環取決於感測到的MR元件1320的電阻。
模組1360可以各種方式基於該誤差信號來偵測對MR元件1320的竄改。在一個設計中,模組1360可對該誤差信號在預定時間區間上一的連串和零的連串進行計數。若對一的連串的計數或對零的連串的計數太小或是太大,則模組1360可聲明竄改。在另一設計中,模組1360可對在預定時間區間上預定模式(例如,模式「11」、「10」、「01」和「11」)的出現數目進行計數。若任何模式的計數太小或是太大,則模組1360可聲明竄改。在又一設計中,模組 1360可向壓縮演算法提供誤差信號中的一和零的序列。若該壓縮演算法的輸出速率太小,則模組1360可聲明竄改。模組1360亦可以其他方式基於該誤差信號來偵測對MR元件1320的竄改。
在另一設計中,感測放大器1332的輸出可例如用連接到感測放大器1332的輸出的正反器來數位化。感測放大器1332的數位化輸出可用類比低通濾波器來濾波,該低通濾波器可用電阻器1334和電容器1336來形成。該低通濾波器可執行對該數位化輸出的取平均。比較器1340a和1340b可將經濾波信號與高臨限值和低臨限值進行對比。若經濾波信號高於高臨限值或低於低臨限值,則來自OR閘1350的誤差信號可被設置成邏輯高,該邏輯高指示竄改。
圖3中的熵源110c(帶有或不帶有回饋電路)亦可用來偵測竄改。例如,由感測放大器330提供的「1」值與「0」值的比率可被決定並且與低臨限值和高臨限值進行對比。該高臨限值和低臨限值可基於該比率的允許值訊窗來定義,該訊窗應以50%為中心。在該比率超過該高臨限值或落至該低臨限值以下時可偵測出竄改。
在一個設計中,一裝置(例如,IC、無線設備、電子模組等)可包括MR元件和感測電路,例如,如圖2A或圖2B所示。該MR元件(例如,MR元件210)可被施加靜態電流並且可具有基於該MR的磁化來決定的可變電阻。該MR元件可包括STT-MTJ裝置或具有對照磁化可變的電 阻的其他類型的裝置。感測電路可感測該MR元件的電阻並且基於感測出的該MR元件的電阻來提供隨機值。
在一個設計中,該感測電路可包括感測放大器(例如,圖2A中的感測放大器240),該感測放大器的第一輸入耦合到該MR元件、第二輸入接收參考電壓,並且該感測放大器的輸出提供用以產生諸第一隨機值的感測值。該感測電路可進一步包括串聯耦合在該MR元件內的電阻器(例如,電阻器210),其中該電阻器和該MR元件的組合形成電阻性分壓器。在一個設計中,該參考電壓(例如,圖2A中的電壓VREF2)可由參考電壓產生器來產生。在另一設計中,該參考電壓(例如,圖2B中的電壓VY)可基於電阻性分壓器來產生,該電阻性分壓器可與該MR元件形成電橋電路並且可用來量測該MR元件的電阻(例如,如圖2B所示)。在又一設計中,第二MR元件可被耦合到該感測放大器的第二輸入並且可被用來產生參考電壓。
在一個設計中,電阻器(例如,電阻器210)可耦合在該MR元件和一電壓之間並且可為該MR元件提供靜態電流(例如,如圖2A和圖2B所示)。在另一設計中,電流源可被耦合到該MR元件並且可為該MR元件提供該靜態電流。
在一個設計中,該感測電路可進一步包括耦合到該感測放大器的正反器(例如,正反器250)。該正反器可從該感測放大器接收感測值並且提供隨機值。用該正反器對感測值進行鎖存可確保該等隨機值可滿足接收該等隨機值的 數位電路的建立時間和保持時間。
在一個設計中,至少一個附加MR元件可與該MR元件串聯耦合(例如,如圖6B所示)或並聯耦合(例如,如圖6C所示)。使用多個MR元件可改良熵產生以及可靠性。
在另一設計中,一裝置(例如,IC、無線設備、電子模組等)可包括熵源和後處理模組,例如,如圖1所示。該熵源可包括至少一個MR元件並且可基於該至少一個MR元件來提供諸第一隨機值。該後處理模組可接收並且處理該等第一隨機值並且提供諸第二隨機值。
在一個設計中,該後處理模組可從單個熵源接收單個第一隨機值序列並且可基於該單個第一隨機值序列來產生該等第二隨機值。在另一設計中,該後處理模組可從多個熵源接收多個第一隨機值序列並且可基於該多個第一隨機值序列來產生該等第二隨機值。
在一個設計中,該後處理模組可散列該等第一隨機值(例如,基於如圖7A所示的密碼術散列函數)並且提供諸第二隨機值。在另一設計中,該後處理模組可包括複數個移位暫存器以及散列模組,例如,如圖7B所示。該複數個移位暫存器可從包括該熵源在內的複數個熵源接收複數個第一隨機值序列。該散列模組可從此複數個移位暫存器接收複數個中間值序列,散列該等中間值,並且提供諸第二隨機值。每個第一隨機值可包括1位元值,每個中間值可包括Q位元值,並且每個第二隨機值可包括N位元值,其中Q和N可以大於1。在一個設計中,每個第二隨 機值的總位元數可比用來產生該第二隨機值的所有第一隨機值的總位元數少,從而輸入位元的總數比輸出位元的總數大。
在又一設計中,該後處理模組可基於諸第一隨機值以及例如在圖8A中圖示的CRC之檢錯碼來產生諸第二隨機值。該後處理模組可包括實現生成多項式的LFSR。該LFSR可接收諸第一隨機值並且提供諸第二隨機值。
在又一設計中,該後處理模組可包括串聯耦合的複數個暫存器(例如,圖8B中的暫存器830)和至少兩個組合器。每個組合器可以是XOR閘(例如,如圖8B所示)、模2加法器等等。該至少兩個組合器可被耦合到此複數個暫存器中的至少兩個暫存器並且可從至少兩個熵源接收至少兩個第一隨機值序列。此複數個暫存器和該至少兩個組合器可用至少兩個回饋位元來實現生成多項式。
在又一設計中,該後處理模組可包括熵累加器和密碼術模組,例如,如圖9所示。該熵累加器可接收諸第一隨機值並且提供諸中間隨機值。該密碼術模組可接收該等中間隨機值並且提供諸第二隨機值。該密碼術模組可基於密碼術散列函數、串流密碼演算法等來產生諸第二隨機值。
在又一設計中,該後處理模組可包括組合器。該組合器可包括如圖10所示的XOR閘,或模M求和器(其中M是大於1的整數),或某種其他電路。該組合器可從複數個熵源接收並且處理複數個第一隨機值序列並且提供諸第二隨機值。該組合器可執行對此複數個第一隨機值序列 中的複數個第一隨機值的模M求和以獲得對應的第二隨機值。
在又一設計中,該後處理模組可包括串流密碼產生器,例如,如圖11或圖12所示。該串流密碼產生器可產生諸第二隨機值。第一隨機值可變更該串流密碼產生器的操作和/內部狀態。在一個設計中,該串流密碼產生器可基於K2串流密碼演算法來產生諸第二隨機值,例如,如圖11所示。第一隨機值可選擇該K2串流密碼演算法的係數。在另一設計中,該串流密碼產生器可基於SNOW 3G串流密碼演算法來產生諸第二隨機值,例如,如圖12所示。第一隨機值可改變該SNOW 3G串流密碼演算法的內部狀態。
在一個設計中,熵源可以是低能熵源並且可包括偏壓電路和感測電路,例如,如圖2A或圖2B所示。該偏壓電路(例如,電阻器210)可為該至少一個MR元件提供靜態電流。該感測電路(例如,感測電路230)可感測該至少一個MR元件的電阻並且基於感測出的電阻來提供諸第一隨機值。在另一設計中,熵源可以是高能熵源並且可包括控制電路和感測電路,例如,如圖3所示。該控制電路可產生電流或電壓脈衝以改變該至少一個MR元件的狀態。該感測電路可感測該至少一個MR元件的電阻並且基於感測出的電阻來提供隨機值。
在一個設計中,第一隨機值可包括1位元值,並且第二隨機值可包括多位元值。一般而言,該等第一和第二隨機 值可各自包括任何數目個位元的值。
熵源可在硬體中實現,例如,在IC、電子模組等上實現。如下所述,後處理模組可以各種方式在硬體、軟體及/或韌體中實現。
在又一設計中,一裝置(例如,IC、無線設備、電子模組等)可包括MR單元陣列、感測電路和複數個程式設計源,例如,如圖5所示。該MR單元陣列(例如,MR陣列510)可被佈置成多列和多行。複數條字線可被耦合到此複數個MR單元列。複數條選擇線可被耦合到此複數個MR單元行。複數條位元線亦可耦合到此複數個MR單元行。感測電路(例如,感測電路550)可被耦合到此複數條選擇線並且可感測該陣列中的選中MR單元的電阻並且提供隨機值。複數個程式設計源(例如,程式設計源532和534)可被耦合到此複數條選擇線並且可提供脈衝以改變該陣列中的MR單元的狀態。此複數個程式設計源可包括(i)在所選中MR單元要在第一方向上被切換時耦合到該選中的MR單元的第一程式設計源(例如,程式設計源532a)和(ii)在所選中MR單元要在第二方向上被切換時耦合到該選中MR單元的第二程式設計源(例如,程式設計源534a)。
每個MR單元可包括至少一個MR元件。在一個設計中,每個MR單元可包括單個MR元件,例如,如圖6A所示。在另一設計中,每個MR元件可包括串聯耦合的複數個MR元件(例如,如圖6B所示)或並聯耦合的複數個MR 元件(例如,如圖6C所示)。在一個設計中,該陣列中的該等MR單元可包括相同MR元件。在另一設計中,該陣列中的該等MR單元可包括具有不同設計、形狀、尺寸、厚度等的MR元件以便改良IC產出。
在一個設計中,所選中MR單元可以在單個操作中被程式設計並且可以在該單個操作中被施加以來自第一或第二程式設計源的電流脈衝或電壓脈衝。在另一設計中,所選中MR單元可以在複數個操作中被程式設計並且可在每個操作中被施加以來自第一或第二程式設計源的電流脈衝或電壓脈衝。在一個設計中,至少一個MR單元可被用來為感測電路提供參考電壓。
此複數個程式設計源可提供電流脈衝或電壓脈衝以改變該陣列中的MR單元的狀態。在一個設計中,第一和第二程式設計源的至少一者可提供具有可變振幅的脈衝,該可變振幅基於所選中MR單元的目標切換概率來決定。在另一設計中,該第一和第二程式設計源的至少一者可提供具有可變歷時的脈衝,該可變歷時基於該目標切換概率來決定。在又一設計中,該第一和第二程式設計源的至少一者可提供具有可變振幅和可變歷時的脈衝,該可變振幅和可變歷時基於該目標切換概率來決定。在一個設計中,此複數個程式設計源可具有個別配置的脈衝振幅及/或脈衝歷時。
在一個設計中,該陣列中的該等MR單元可以第一速率被選擇並感測來以第二速率產生隨機值,該第二速率可比 該第一速率高。該等MR單元可被交錯從而以更高速率獲得隨機值。
在又一設計中,一裝置(例如,IC、無線設備、電子模組等)可包括熵源和偵測模組,例如,如圖13所示。該熵源可包括至少一個MR元件(例如,至少一個STT-MTJ裝置)並且可基於該至少一個MR元件來提供諸第一值。該偵測模組可接收並且處理該等第一值並且可提供對該熵源的竄改的指示。
該偵測模組可以各種方式偵測竄改。在一個設計中,該偵測模組可基於諸第一值中的零和一的百分比來偵測對熵源的竄改。在另一設計中,該偵測模組可基於諸第一值中的零的連串和一的連串來偵測對熵源的竄改。在又一設計中,該偵測模組可基於零和一的預定模式的出現數目來偵測對熵源的竄改。在又一設計中,該偵測模組可執行對諸第一值的壓縮並且可基於該壓縮的輸出速率來偵測對熵源的竄改。該偵測模組亦可以其他方式偵測竄改。
圖14圖示用於產生隨機值的程序1400的設計。靜態電流可被施加於MR元件,該MR元件具有基於該MR元件的磁化來決定的可變電阻(方塊1412)。該MR元件的電阻可用施加於該MR元件的該靜態電流來感測(方塊1414)。諸第一隨機值可基於感測出的該MR元件的電阻來產生(方塊1416)。在方塊1414和1416的一個設計中,該MR元件的電阻可與參考值進行對比以獲得感測值。該等感測值可隨後被鎖存以獲得諸第一隨機值。
該等第一隨機值可由需要隨機值的應用程式直接使用。或者,該等第一隨機值可被處理以獲得諸第二隨機值(方塊1418)。例如,該等第一隨機值可基於密碼術散列函數、檢錯碼、串流密碼演算法等來處理。
在一個設計中,可經由感測包括該MR元件在內的複數個MR元件的電阻來產生複數個第一隨機值序列。此複數個第一隨機值序列可被處理(例如,用如圖7B所示的散列函數、如圖8B所示的檢錯碼,或如圖10所示的組合器)以獲得第二隨機值。
來自包括至少一個MR元件的熵源的諸第一隨機值可具有以下特性中的一或更多者:˙某種不可預測性,甚至在有無限計算能力的情況下亦是如此,˙對於敵方是未知的,˙不受敵方影響,˙不一定是無偏或不相關的,以及˙熵可比輸出位元速率小。
來自包括熵源和後處理模組的RN產生器的諸第二隨機值可具有以下特性中的一或更多者:˙不可預測,甚至在有無限計算能力的情況下亦是如此,˙對於敵方是未知的,˙不受敵方影響,˙可忽略的偏差和相關,以及˙等於或非常接近輸出位元速率的熵。
使用至少一個MR元件來為RN產生器產生諸第一隨機值可提供各種優勢。第一,MR元件可具有比其他熵源更好的特性並且可被用來構建良好熵源。該MR元件的電阻改變形成隨機程序。該MR元件可由基於該MR元件的實體性質的簡單的可驗證模型來表徵。該模型的參數可基於對該MR元件的量測來估計。該MR元件可基於量測、電腦模擬等來驗證該MR元件遵守該模型。熵源可用該MR元件來構建而無需使用高增益裝置(用於感測電阻的感測放大器除外)。該熵源可以為低成本且低功率的,可佔用很小電路面積,並且可以在半導體裝置上容易地製造。該熵源可具有很快的產生速率並且可以能夠以高速率(有可能在GHz範圍中)來提供諸第一隨機值。來自該熵源的該等第一隨機值可被調理或後處理以改良隨機性。
如上所述,包括至少一個MR元件的熵源和RN產生器可在各種電子設備中使用。以下描述該熵源和該RN產生器在無線設備中的使用。
圖15圖示無線設備1500的方塊圖,無線設備1500可包括一或多個熵源及/或一或多個RN產生器。無線設備1500可以是蜂巢式電話、智慧型電話、平板電腦、PDA、膝上型電腦、小筆電、智慧型電腦、終端、手持機等。無線設備1500可支援經由一或多個無線通訊網路的通訊,此一或多個無線通訊網路可包括分碼多工存取(CDMA)網路、行動通訊全球系統(GSM)網路、長期進化(LTE)網路、無線區域網路(WLAN)等。
無線設備1500可支援經由接收路徑和發射路徑的雙向通訊。在該接收路徑中,由基地台及/或其他設備發射的信號可由天線1512接收並被提供給接收器(RCVR)1514。接收器1514可調理並數位化收到信號並向數位區段1520提供輸入取樣以供進一步處理。在該發射路徑中,發射器(TMTR)1516可從數位區段1520接收要傳送的資料。發射器1516可處理並且調理該資料並且可產生經調變信號,該經調變信號可經由天線1512向基地台及/或其他設備發射。
數位區段1520可包括各種處理、介面以及記憶體模組,諸如舉例而言,數據機處理器1522、中央處理單元(CPU)/精簡指令集電腦(RISC)1524、主控制器1526、靜態隨機存取記憶體(SRAM)1528、安全模組1530、唯讀記憶體(ROM)1532、NAND快閃記憶體控制器1534和同步動態RAM(SDRAM)控制器1536,所有該等裝置可經由一或多個匯流排1560來與彼此通訊。數據機處理器1522可為資料傳送和接收執行處理,例如,編碼、調變、解調變、解碼等等。CPU/RISC 1524可為諸如舉例而言語音撥叫、web流覽、多媒體、遊戲、使用者介面、定位等各種應用程式執行通用處理。主控制器1526可指導數位區段1520內的各種單元的操作。SRAM 1528可儲存由數位區段1520內的控制器和處理器使用的程式碼和資料。ROM 1532可為無線設備1500儲存引導代碼及/或其他代碼以及資料。NAND快閃記憶體控制器1534可促成資料在NAND 快閃記憶體1544與數位區段1520之間的傳遞。SDRAM控制器1536可促成資料在SDRAM 1546與數位區段1520之間的傳遞。
安全模組1530可為設備1500安全地儲存敏感資訊(例如,個人資訊、商業資訊、密碼等)及/或其他資訊。安全模組1530可包括熵源及/或RN產生器1540以產生隨機值。RN產生器1540可包括後處理電路以從熵源1540接收諸第一隨機值並且產生諸第二隨機值。安全模組1530可實現可使用由熵源及/或RN產生器1540產生的該等隨機值的密碼術演算法。安全模組1530亦可向無線設備1500內的其他模組提供隨機值。無線設備1500內的其他模組和處理器亦可包括熵源及/或RN產生器以產生隨機值。諸如處理器1524之處理器亦可包括RN產生器(例如,供執行在該處理器上的軟體使用)。
一般而言,數位區段1520可包括任何數目個處理、介面和記憶體模組。數位區段1520亦可用一或多個數位訊號處理器(DSP)、微處理器、RISC處理器等來實現。數位區段1520可製造在一或多個特殊應用積體電路(ASIC)及/或某些其他類型的積體電路(IC)上。
本領域技藝人士應理解,資訊和信號可使用各種不同技術和技藝中的任何一種來表示。例如,貫穿上面描述始終可能被述及的資料、指令、命令、資訊、信號、位元、符號和晶片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子,或以上之任何組合來表示。
本領域技藝人士將進一步領會,結合本文揭示內容所描述的各種解說性邏輯區塊、模組、電路和演算法步驟可被實現為電子硬體、電腦軟體,或兩者的組合。為清楚地解說硬體與軟體的此一可互換性,以上已經以該等硬體與軟體的功能性的形式一般化地描述了各種解說性組件、區塊、模組、電路和步驟。此類功能性是被實現為硬體還是軟體取決於具體應用程式和加諸於整體系統的設計約束。技藝人士可針對每種特定應用程式以不同方式來實現所描述的功能性,但此類實現決策不應被解讀為致使脫離本揭示案的範圍。
結合本文揭示內容描述的各種解說性邏輯區塊、模組以及電路可用通用處理器、DSP、ASIC、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯裝置、個別閘或電晶體邏輯、個別的硬體組件,或以上設計成執行本文中描述的功能的任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何習知的處理器、控制器、微控制器或狀態機。處理器亦可以被實現為計算設備的組合,例如DSP與微處理器的組合、複數個微處理器、與DSP核心協調的一或多個微處理器,或任何其他此類配置。
結合本文揭示內容描述的方法或演算法的步驟可直接在硬體中、在由處理器執行的軟體模組中,或在此兩者的組合中實施。軟體模組可常駐在RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫 存器、硬碟、可移除磁碟、CD-ROM,或本領域中所知的任何其他形式的儲存媒體中。示例性儲存媒體耦合到處理器以使得該處理器能從/向該儲存媒體讀寫資訊。在替換方案中,儲存媒體可以被整合到處理器。處理器和儲存媒體可常駐在ASIC中。ASIC可常駐在使用者終端中。在替換方案中,處理器和儲存媒體可作為個別組件常駐在使用者終端中。
在一或多個示例性設計中,所描述的功能可以在硬體、軟體、韌體,或以上之任何組合中實現。若在軟體中實現,則諸功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或藉由該電腦可讀取媒體進行傳送。電腦可讀取媒體包括電腦儲存媒體和通訊媒體兩者,該電腦可讀取媒體包括促成電腦程式從一地向另一地轉移的任何媒體。儲存媒體可以是能被通用或專用電腦存取的任何可用媒體。作為實例而非限定,此種電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁儲存裝置,或能被用來攜帶或儲存指令或資料結構形式的期望程式碼手段且能被通用或專用電腦或者通用或專用處理器存取的任何其他媒體。另外,任何連接亦被正當地稱為電腦可讀取媒體。例如,若軟體是使用同軸電纜、光纖電纜、雙絞線、數位用戶線(DSL),或諸如紅外、無線電以及微波之無線技術從web網站、伺服器或其他遠端源傳送的,則該同軸電纜、光纖電纜、雙絞線、DSL,或諸如紅外、無線電以及微波之類的無線技術就被 包括在媒體的定義之中。如本文中所使用的,磁碟(disk)和光碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟(disk)往往以磁的方式再現資料,而光碟(disc)用鐳射以光學方式再現資料。上述的組合亦應被包括在電腦可讀取媒體的範圍內。
提供對本揭示案的先前描述是為使得本領域任何技藝人士皆能夠製作或使用本揭示案。對本揭示案的各種修改對本領域技藝人士來說皆將是顯而易見的,且本文中所定義的普適原理可被應用到其他變體而不會脫離本揭示案的精神或範圍。由此,本揭示案並非意欲被限定於本文中所描述的實例和設計,而是應被授予與本文中所揭示的原理和新穎性特徵相一致的最廣範圍。
100‧‧‧RN產生器
100a‧‧‧RN產生器
100b‧‧‧RN產生器
100c‧‧‧RN產生器
100e‧‧‧RN產生器
100f‧‧‧RN產生器
100g‧‧‧RN產生器
100h‧‧‧RN產生器
110‧‧‧熵源
110a‧‧‧熵源
110b‧‧‧熵源
110k‧‧‧熵源
110q‧‧‧熵源
110w‧‧‧熵源
110x‧‧‧熵源
110y‧‧‧熵源
110z‧‧‧熵源
120‧‧‧後處理模組
120a‧‧‧模組
120b‧‧‧模組
120c‧‧‧模組
120d‧‧‧模組
120e‧‧‧模組
120f‧‧‧模組
120g‧‧‧模組
120h‧‧‧模組
122‧‧‧熵累加器
124‧‧‧密碼術模組
126‧‧‧XOR閘
210‧‧‧電阻器
212‧‧‧電阻器
214‧‧‧電阻器
220‧‧‧MR元件
230‧‧‧感測電路
240‧‧‧感測放大器
250‧‧‧正反器
310‧‧‧電阻器
312‧‧‧電阻器
314‧‧‧電阻器
320‧‧‧MR元件
330‧‧‧感測放大器
340‧‧‧控制電路
400‧‧‧程序
412‧‧‧方塊
414‧‧‧方塊
416‧‧‧方塊
418‧‧‧方塊
420‧‧‧方塊
422‧‧‧方塊
520a‧‧‧MR單元
520aa‧‧‧MR單元
520aj‧‧‧MR單元
520b‧‧‧MR單元
520ba‧‧‧MR單元
520bj‧‧‧MR單元
520c‧‧‧MR單元
520ma‧‧‧MR單元
520mj‧‧‧MR單元
522a‧‧‧開關
522j‧‧‧開關
524a‧‧‧開關
524j‧‧‧開關
526a‧‧‧開關
526j‧‧‧開關
528a‧‧‧開關
528j‧‧‧開關
532a‧‧‧程式設計源
532j‧‧‧程式設計源
534a‧‧‧程式設計源
534j‧‧‧程式設計源
542a‧‧‧位元線
542j‧‧‧位元線
544a‧‧‧選擇線
544j‧‧‧選擇線
546a‧‧‧字線
546b‧‧‧字線
546m‧‧‧字線
550‧‧‧感測電路
620‧‧‧MR元件
620a‧‧‧MR元件
620b‧‧‧MR元件
620k‧‧‧MR元件
622‧‧‧NMOS電晶體
720a‧‧‧移位暫存器
720k‧‧‧移位暫存器
730‧‧‧散列函數
820a‧‧‧XOR閘
820b‧‧‧XOR閘
820k‧‧‧XOR閘
830‧‧‧LFSR
1120‧‧‧LFSR
1122a‧‧‧Q位元暫存器
1122b‧‧‧Q位元暫存器
1122c‧‧‧Q位元暫存器
1122d‧‧‧Q位元暫存器
1122e‧‧‧Q位元暫存器
1124‧‧‧Q位元暫存器
1126‧‧‧Q位元暫存器
1130‧‧‧LFSR
1132a‧‧‧Q位元暫存器
1132b‧‧‧Q位元暫存器
1132c‧‧‧Q位元暫存器
1132d‧‧‧Q位元暫存器
1132e‧‧‧Q位元暫存器
1132f‧‧‧Q位元暫存器
1132g‧‧‧Q位元暫存器
1132h‧‧‧Q位元暫存器
1132i‧‧‧Q位元暫存器
1132j‧‧‧Q位元暫存器
1132k‧‧‧Q位元暫存器
1134a‧‧‧乘法器
1134b‧‧‧乘法器
1136a‧‧‧求和器
1136b‧‧‧求和器
1136c‧‧‧求和器
1140‧‧‧非線性函數
1210‧‧‧轉換器
1222a‧‧‧Q位元暫存器
1222b‧‧‧Q位元暫存器
1222c‧‧‧Q位元暫存器
1222d‧‧‧Q位元暫存器
1222e‧‧‧Q位元暫存器
1222f‧‧‧Q位元暫存器
1222g‧‧‧Q位元暫存器
1222h‧‧‧Q位元暫存器
1222i‧‧‧Q位元暫存器
1222j‧‧‧Q位元暫存器
1222k‧‧‧Q位元暫存器
12221‧‧‧Q位元暫存器
1222m‧‧‧Q位元暫存器
1222n‧‧‧Q位元暫存器
1222o‧‧‧Q位元暫存器
1222p‧‧‧Q位元暫存器
1224a‧‧‧乘法器
1224b‧‧‧乘法器
1226a‧‧‧求和器
1226b‧‧‧求和器
1226c‧‧‧求和器
1230‧‧‧FSM
1232a‧‧‧Q位元暫存器
1232b‧‧‧Q位元暫存器
1232c‧‧‧Q位元暫存器
1234a‧‧‧替換盒
1234b‧‧‧替換盒
1236a‧‧‧求和器
1236b‧‧‧求和器
1238a‧‧‧求和器
1238b‧‧‧求和器
1240‧‧‧求和器
1242‧‧‧求和器
1300‧‧‧偵測電路
1310‧‧‧熵源
1312‧‧‧電阻器
1320‧‧‧MR元件
1330‧‧‧偵測模組
1332‧‧‧感測放大器
1334‧‧‧電阻器
1336‧‧‧電容器
1340a‧‧‧第一比較器
1340b‧‧‧第二比較器
1350‧‧‧OR閘
1360‧‧‧竄改偵測器
1400‧‧‧程序
1412‧‧‧方塊
1414‧‧‧方塊
1416‧‧‧方塊
1418‧‧‧方塊
1512‧‧‧天線
1514‧‧‧接收器
1516‧‧‧發射器
1522‧‧‧數據機處理器
1524‧‧‧CPU/RISC
1526‧‧‧主控制器
1528‧‧‧SRAM
1530‧‧‧安全模組
1532‧‧‧ROM
1534‧‧‧NAND快閃記憶體控制器
1536‧‧‧SDRAM
1540‧‧‧熵源及/或RN產生器
1544‧‧‧NAND快閃記憶體
1546‧‧‧SDRAM
1560‧‧‧匯流排
圖1圖示RN產生器的方塊圖。
圖2A和圖2B圖示低能熵源的兩種設計。
圖3圖示高能熵源的設計。
圖4圖示由圖3中的控制電路執行的程序。
圖5圖示帶有MR單元陣列的熵源的設計。
圖6A、6B和6C圖示MR單元的三種設計。
圖7A至圖12圖示RN產生器的各種設計。
圖13圖示竄改偵測電路。
圖14圖示用於產生隨機值的程序。
圖15圖示無線設備的方塊圖。
110x‧‧‧熵源
210‧‧‧電阻器
220‧‧‧MR元件
230‧‧‧感測電路
240‧‧‧感測放大器
250‧‧‧正反器

Claims (56)

  1. 一種裝置,包括:一磁阻(MR)元件,該MR元件被施加有一靜態電流並且具有基於該MR元件的磁化來決定的一可變電阻;及一感測電路,該感測電路配置成感測該MR元件的該電阻並且基於感測出的該MR元件的該電阻來提供隨機值。
  2. 如請求項1述及之裝置,其中該MR元件包括一自旋轉矩轉移(STT)磁穿隧接面(MTJ)裝置。
  3. 如請求項1述及之裝置,其中該感測電路包括:一感測放大器,該感測放大器具有耦合到該MR元件的一第一輸入、接收一參考電壓的一第二輸入和提供用來產生第一隨機值的感測值的一輸出。
  4. 如請求項3述及之裝置,亦包括:與該MR元件串聯耦合的一電阻器,並且電阻器和該MR元件形成一電阻性分壓器。
  5. 如請求項3述及之裝置,亦包括:耦合到該感測放大器的該第二輸入的一第二MR元件。
  6. 如請求項5述及之裝置,其中該MR元件和該第二MR元件具有不同形狀,或不同尺寸,或不同厚度,或以上之組合。
  7. 如請求項3述及之裝置,亦包括:一電流源,該電流源耦合到該MR元件並且配置成提供用來量測該MR元件的該電阻的該靜態電流。
  8. 如請求項3述及之裝置,其中該感測電路亦包括:一正反器,該正反器耦合到該感測放大器並且配置成接收該等感測值並且提供該等隨機值。
  9. 如請求項1述及之裝置,亦包括:與該MR元件串聯或並聯耦合的至少一個附加MR元件。
  10. 一種裝置,包括:一熵源,該熵源包括至少一個磁阻(MR)元件並且配置成基於該至少一個MR元件來提供第一隨機值;及一後處理模組,該後處理模組配置成接收並且處理該等第一隨機值並且提供第二隨機值。
  11. 如請求項10述及之裝置,其中該後處理模組被配置成散列該等第一隨機值並且提供該等第二隨機值。
  12. 如請求項11述及之裝置,其中該後處理模組被配置成基於一密碼術散列函數來散列該等第一隨機值。
  13. 如請求項10述及之裝置,其中每個第二隨機值的一總位元數比用來產生該第二隨機值的所有第一隨機值的一總位元數高。
  14. 如請求項10述及之裝置,其中該後處理模組包括:複數個移位暫存器,該複數個移位暫存器配置成從包括該熵源在內的複數個熵源接收複數個第一隨機值序列;及一散列模組,該散列模組配置成從該複數個移位暫存器接收複數個中間值序列,散列該等中間值,並且提供該等第二隨機值。
  15. 如請求項14述及之裝置,其中每個第一隨機值包括一1位元值,每個中間值包括一Q位元值,並且每個第二隨機值包括一N位元值,其中Q和N各自均大於1。
  16. 如請求項10述及之裝置,其中該後處理模組被配置成基於該等第一隨機值和一檢錯碼來產生該等第二隨機值。
  17. 如請求項16述及之裝置,其中該檢錯碼包括一循環冗餘檢查(CRC)。
  18. 如請求項10述及之裝置,其中該後處理模組包括:一線性回饋移位暫存器(LFSR),該線性回饋移位暫存器實現一生成多項式並且配置成接收該等第一隨機值並且提供該等第二隨機值。
  19. 如請求項10述及之裝置,其中該後處理模組包括:串聯耦合的複數個暫存器,以及至少兩個組合器,該等組合器耦合到該複數個暫存器中的至少兩個暫存器並且配置成從至少兩個熵源接收至少兩個第一隨機值序列,該複數個暫存器和該至少兩個組合器用至少兩個回饋位元來實現一生成多項式,並且該至少兩個熵源包括該熵源。
  20. 如請求項10述及之裝置,其中該後處理模組包括:一熵累加器,該熵累加器配置成接收該等第一隨機值並且提供中間隨機值;及一密碼術模組,該密碼術模組配置成接收該中間隨機值並且提供第二隨機值。
  21. 如請求項10述及之裝置,其中該後處理模組包括:一組合器,該組合器配置成從複數個熵源接收並且處理複數個第一隨機值序列並且提供該等第二隨機值,該複數個熵源包括該熵源。
  22. 如請求項21述及之裝置,其中該組合器包括互斥或(XOR)電路。
  23. 如請求項21述及之裝置,其中該組合器配置成對該複數個第一隨機值序列中的複數個第一隨機值執行模M求和以獲得對應的第二隨機值,其中M是大於1的整數。
  24. 如請求項10述及之裝置,其中該後處理模組包括:一串流密碼產生器,該串流密碼產生器配置成產生該第二隨機值,該第一隨機值變更該串流密碼產生器的操作或內部狀態。
  25. 如請求項24述及之裝置,其中該串流密碼產生器被配置成基於一串流密碼演算法來產生該第二隨機值,該第一隨機值選擇該串流密碼演算法的係數。
  26. 如請求項24述及之裝置,其中該串流密碼產生器被配置成基於一串流密碼演算法來產生該等第二隨機值,該等第一隨機值改變該串流密碼演算法的該內部狀態。
  27. 如請求項10述及之裝置,其中該等第一隨機值包括1位元隨機值並且該等第二隨機值包括多位元隨機值。
  28. 如請求項10述及之裝置,其中該熵源包括: 一偏壓電路,該偏壓電路配置成為該至少一個MR元件提供一靜態電流,以及一感測電路,該感測電路配置成感測該至少一個MR元件的電阻並且基於該感測出的電阻來提供隨機值。
  29. 如請求項10述及之裝置,其中該熵源包括:配置成產生電流或電壓脈衝來改變該至少一個MR元件的一狀態的一電路,以及一感測電路,配置成感測該至少一個MR元件的電阻並且基於感測出的電阻來提供隨機值。
  30. 一種裝置,包括:一磁阻(MR)單元陣列,該磁阻單元陣列被佈置成複數個列和複數個行,每個MR單元包括至少一個MR元件;複數條字線,該複數條字線耦合到該複數個MR單元列;複數條選擇線,該複數條選擇線耦合到該複數個MR單元行;一感測電路,該感測電路耦合到該複數條選擇線並且配置成感測該陣列中的一選中MR單元的電阻並且提供隨機值;及複數個程式設計源,該複數個程式設計源耦合到該複數條選擇線並且配置成提供脈衝以改變該陣列中的該等MR單元的狀態,該複數個程式設計源包括:一第一程式設計源,該第一程式設計源在該選中MR單元 要在一第一方向上被切換時耦合到該選中MR單元,以及一第二程式設計源,該第二程式設計源在該選中MR單元要在一第二方向上被切換時耦合到該選中MR單元。
  31. 如請求項30述及之裝置,其中該複數個程式設計源被配置成提供電流脈衝或電壓脈衝來改變該陣列中的該等MR單元的該狀態。
  32. 如請求項30述及之裝置,其中該第一和第二程式設計源的至少一者被配置成提供具有基於該選中MR單元的一目標切換概率來決定的一可變振幅,或一可變脈衝歷時,或一可變振幅和一可變脈衝歷時兩者的脈衝。
  33. 如請求項30述及之裝置,其中該複數個程式設計源具有個別配置的脈衝振幅,或脈衝歷時,或脈衝振幅和脈衝歷時兩者。
  34. 如請求項30述及之裝置,其中該選中MR單元在一單個操作中被程式設計,並且在該單個操作中被施加來自該第一或第二程式設計源的一電流脈衝或一電壓脈衝。
  35. 如請求項30述及之裝置,其中該選中MR單元在複數個操作中被程式設計,並且在該複數個操作的每個操作中被施加來自該第一或第二程式設計源的一電流脈衝或一 電壓脈衝。
  36. 如請求項30述及之裝置,其中該陣列中的該等MR單元可以一第一速率被選擇並感測來以比該第一速率高的一第二速率產生隨機值。
  37. 如請求項30述及之裝置,其中每個MR單元包括串聯耦合的複數個MR元件。
  38. 如請求項30述及之裝置,其中每個MR單元包括並聯耦合的複數個MR元件。
  39. 如請求項38述及之裝置,其中每個MR單元中的該複數個MR元件具有耦合在一起的自由層和同樣耦合在一起的固定層。
  40. 如請求項30述及之裝置,亦包括:用來為該感測電路提供一參考電壓的至少一個MR單元。
  41. 如請求項30述及之裝置,其中該陣列中的該等MR單元包括具有不同形狀,或不同尺寸,或不同厚度,或以上之組合的該等MR元件。
  42. 一種裝置,包括: 一熵源,該熵源包括至少一個磁阻(MR)元件並且配置成基於該至少一個MR元件來提供第一值;及一偵測模組,該偵測模組配置成接收並且處理該第一值並且提供對該熵源的一竄改的指示。
  43. 如請求項42述及之裝置,其中該偵測模組被配置成基於該等第一值中的零的百分比和一的百分比來偵測對該熵源的竄改。
  44. 如請求項42述及之裝置,其中該偵測模組被配置成基於該等第一值中的零的連串和一的連串來偵測對該等熵源的竄改。
  45. 如請求項42述及之裝置,其中該偵測模組被配置成基於零和一的預定模式的出現數目來偵測對該熵源的竄改。
  46. 如請求項42述及之裝置,其中該偵測模組被配置成執行對該等第一值的壓縮並且基於該壓縮的一輸出速率來偵測對該熵源的竄改。
  47. 一種用於產生隨機值的方法,該方法包括以下步驟:將一靜態電流施加於一磁阻(MR)元件,該MR元件具有基於該MR元件的磁化來決定的一可變電阻;用施加於該MR元件的該靜態電流來感測該MR元件的該 電阻;及基於感測出的該MR元件的該電阻來產生第一隨機值。
  48. 如請求項47述及之方法,其中感測該MR元件的電阻之該步驟包括將該MR元件的電阻與一參考值進行對比以獲得感測值,並且其中產生該第一隨機值之該步驟包括鎖存該等感測值以獲得該等第一隨機值。
  49. 如請求項47述及之方法,亦包括以下步驟:處理該等第一隨機值以獲得第二隨機值。
  50. 如請求項49述及之方法,其中處理該等第一隨機值之該步驟包括基於一密碼術散列函數、一檢錯碼或一串流密碼演算法的至少一者來處理該等第一隨機值。
  51. 如請求項47述及之方法,亦包括以下步驟:經由感測包括該MR元件在內的複數個MR元件的電阻來產生複數個第一隨機值序列;及處理該複數個第一隨機值序列以獲得第二隨機值。
  52. 如請求項47述及之方法,亦包括以下步驟:偵測對該MR元件的竄改。
  53. 一種設備,包括: 用於將一靜態電流施加於一磁阻(MR)元件的構件,該MR元件具有基於該MR元件的磁化來決定的一可變電阻;用於用施加於該MR元件的該靜態電流來感測該MR元件的該電阻的構件;及用於基於感測出的該MR元件的該電阻來產生第一隨機值的構件。
  54. 如請求項53述及之設備,亦包括:用於處理該等第一隨機值以獲得第二隨機值的構件。
  55. 如請求項53述及之設備,亦包括:用於經由感測包括該MR元件在內的複數個MR元件的電阻來產生複數個第一隨機值序列的構件;及用於處理該複數個第一隨機值序列以獲得第二隨機值的構件。
  56. 一種電腦程式產品,包括:一電腦可讀取媒體,包括:用於使至少一個處理器指導將一靜態電流施加於一磁阻(MR)元件的代碼,該MR元件具有基於該MR元件的磁化來決定的一可變電阻;用於使該至少一個處理器指導用施加於該MR元件的該靜態電流來感測該MR元件的該電阻的代碼;及用於使該至少一個處理器指導基於感測出的該MR元件的 該電阻來產生第一隨機值的代碼。
TW101134319A 2011-09-20 2012-09-19 用於亂數產生器的帶有磁阻元件的熵源 TW201319930A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161536769P 2011-09-20 2011-09-20
US13/367,322 US9189201B2 (en) 2011-09-20 2012-02-06 Entropy source with magneto-resistive element for random number generator

Publications (1)

Publication Number Publication Date
TW201319930A true TW201319930A (zh) 2013-05-16

Family

ID=47881665

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101134319A TW201319930A (zh) 2011-09-20 2012-09-19 用於亂數產生器的帶有磁阻元件的熵源

Country Status (8)

Country Link
US (2) US9189201B2 (zh)
EP (1) EP2758865B1 (zh)
JP (1) JP5826400B2 (zh)
KR (1) KR101617832B1 (zh)
CN (1) CN103890712B (zh)
IN (1) IN2014CN02071A (zh)
TW (1) TW201319930A (zh)
WO (1) WO2013043543A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399328A (zh) * 2017-02-08 2018-08-14 新唐科技股份有限公司 系统存储器内容认证设备及方法
TWI686808B (zh) * 2018-01-04 2020-03-01 美商超捷公司 用於在非揮發性記憶體中使用電流乘數儲存並檢索多位元資料的系統及方法

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464141B2 (en) * 2008-08-13 2013-06-11 Infineon Technologies Ag Programmable error correction capability for BCH codes
US9053071B2 (en) * 2012-03-15 2015-06-09 Qualcomm, Incorporated Spin torque transfer magnetic tunnel junction intelligent sensing
GB2504457A (en) * 2012-06-06 2014-02-05 Univ Bruxelles Message authentication via distributed secret keys
US9110746B2 (en) * 2012-09-04 2015-08-18 Qualcomm Incorporated Magnetic tunnel junction based random number generator
US20140108478A1 (en) * 2012-10-15 2014-04-17 Qualcomm Incorporated Magnetic tunnel junction based random number generator
US9311051B2 (en) * 2013-01-10 2016-04-12 Advanced Micro Devices, Inc. Hardware random number generator
US9214214B2 (en) * 2013-09-09 2015-12-15 Qualcomm Incorporated Physically unclonable function based on the random logical state of magnetoresistive random-access memory
EP3050132A4 (en) * 2013-09-27 2017-05-24 Intel Corporation Voltage controlled nano-magnetic random number generator
US9417845B2 (en) * 2013-10-02 2016-08-16 Qualcomm Incorporated Method and apparatus for producing programmable probability distribution function of pseudo-random numbers
TWI545580B (zh) 2014-01-07 2016-08-11 群聯電子股份有限公司 隨機數產生方法、記憶體儲存裝置及控制電路
US9459835B2 (en) * 2014-01-15 2016-10-04 HGST Netherlands B.V. Random number generator by superparamagnetism
US9270455B1 (en) * 2014-02-14 2016-02-23 Google Inc. CPU assisted seeding of a random number generator in an externally provable fashion
EP3114690B1 (en) * 2014-03-07 2020-02-12 Intel Corporation Physically unclonable function circuit using resistive memory device
US9529570B2 (en) 2014-03-19 2016-12-27 Seagate Technology Llc Random number generation using pulsed programming parameters
JP6380804B2 (ja) * 2014-04-16 2018-08-29 パナソニックIpマネジメント株式会社 乱数処理装置および乱数処理方法
EP2940923B1 (en) * 2014-04-28 2018-09-05 Université de Genève Method and device for optics based quantum random number generator
KR102368507B1 (ko) 2014-05-09 2022-02-25 퀀텀 넘버스 코포레이션 난수 생성 방법 및 난수 생성기
WO2015172352A1 (en) 2014-05-15 2015-11-19 Seagate Technology Llc Storage device tampering detection
US10317480B2 (en) * 2014-10-15 2019-06-11 Infineon Technologies Ag Magneto resistive device
US9846569B1 (en) 2014-11-17 2017-12-19 Seagate Technology Llc Random values based on a random components of noise
US9489999B2 (en) 2014-11-26 2016-11-08 Qualcomm Incorporated Magnetic tunnel junction resistance comparison based physical unclonable function
JP6423270B2 (ja) * 2014-12-26 2018-11-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
DE102015102363A1 (de) * 2015-02-19 2016-08-25 Infineon Technologies Ag Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
EP3062215B1 (en) * 2015-02-24 2018-04-04 Crocus Technology S.A. Mram-based programmable magnetic device for generating random numbers
KR102416979B1 (ko) * 2015-06-17 2022-07-05 인텔 코포레이션 난수 발생기
JP6617924B2 (ja) * 2015-06-18 2019-12-11 パナソニックIpマネジメント株式会社 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
JP6587188B2 (ja) * 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
US9813049B2 (en) * 2015-08-12 2017-11-07 Qualcomm Incorporated Comparator including a magnetic tunnel junction (MTJ) device and a transistor
US10521618B1 (en) * 2015-10-20 2019-12-31 Marvell International Ltd. Methods and apparatus for secure root key provisioning
EP3182638B1 (en) * 2015-12-18 2019-12-25 ID Quantique S.A. Apparatus and method for adding an entropy source to quantum key distribution systems
DE102016207451A1 (de) * 2016-04-29 2017-11-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
CN106168896B (zh) * 2016-07-05 2018-10-09 北京大学深圳研究生院 一种真随机数发生器
US10217498B2 (en) * 2016-09-12 2019-02-26 Qualcomm Incorporated Techniques for preventing tampering with PROM settings
US10536266B2 (en) 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
TWI634478B (zh) * 2017-07-18 2018-09-01 展達通訊股份有限公司 真亂數產生系統及其真亂數產生之方法
US10965456B2 (en) 2017-09-25 2021-03-30 The Boeing Company Systems and methods for facilitating data encryption and decryption and erasing of associated information
US10924263B2 (en) 2017-09-25 2021-02-16 The Boeing Company Systems and methods for facilitating iterative key generation and data encryption and decryption
US10860403B2 (en) * 2017-09-25 2020-12-08 The Boeing Company Systems and methods for facilitating truly random bit generation
US11036472B2 (en) 2017-11-08 2021-06-15 Samsung Electronics Co., Ltd. Random number generator generating random number by using at least two algorithms, and security device comprising the random number generator
US11082432B2 (en) * 2017-12-05 2021-08-03 Intel Corporation Methods and apparatus to support reliable digital communications without integrity metadata
US10168996B1 (en) 2018-01-15 2019-01-01 Quantum Numbers Corp. Method and system for generating a random bit sample
US10698658B2 (en) * 2018-02-12 2020-06-30 Seagate Technology Llc Random number generation from spin torque oscillator noise
CN108345446B (zh) * 2018-03-08 2021-08-10 太原理工大学 一种高速随机数产生方法及装置
EP3544014B1 (en) 2018-03-20 2020-07-15 Crocus Technology S.A. Mlu-based magnetic device having an authentication and physical unclonable function and authentication method using said mlu device
US10311930B1 (en) * 2018-04-05 2019-06-04 Qualcomm Incorporated One-time programming (OTP) magneto-resistive random access memory (MRAM) bit cells in a physically unclonable function (PUF) memory in breakdown to a memory state from a previous read operation to provide PUF operations
CN108509180B (zh) * 2018-04-13 2021-04-06 太原理工大学 一种基于二输入异或门低功耗随机数产生装置
US10732933B2 (en) * 2018-05-10 2020-08-04 Sandisk Technologies Llc Generating random bitstreams with magnetic tunnel junctions
KR102483374B1 (ko) 2018-05-11 2022-12-30 한국전자통신연구원 양자 난수 생성 장치 및 방법
US10515697B1 (en) * 2018-06-29 2019-12-24 Intel Corporation Apparatuses and methods to control operations performed on resistive memory cells
US11416416B2 (en) * 2019-01-13 2022-08-16 Ememory Technology Inc. Random code generator with non-volatile memory
KR102182232B1 (ko) * 2019-01-17 2020-11-24 한양대학교 산학협력단 자기터널접합구조체 기반 연산 소자
US11023209B2 (en) * 2019-01-25 2021-06-01 International Business Machines Corporation On-chip hardware random number generator
KR102191305B1 (ko) * 2019-07-09 2020-12-15 국민대학교산학협력단 경량 엔트로피 관리 장치 및 방법
US11521664B2 (en) * 2019-08-30 2022-12-06 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device with tunable probabilistic state
DE102020119273A1 (de) 2019-08-30 2021-03-04 Taiwan Semiconductor Manufacturing Co. Ltd. Speichervorrichtung mit abstimmbarem probabilistischem Zustand
JP7553293B2 (ja) 2019-10-18 2024-09-18 国立大学法人東北大学 乱数生成器
US11573768B2 (en) * 2020-02-11 2023-02-07 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device and method for generating random bit stream with configurable ratio of bit values
KR102495632B1 (ko) * 2020-11-26 2023-02-06 포항공과대학교 산학협력단 아날로그 신호를 확률 신호로 변환하는 역치 변환 소자 기반의 아날로그-확률 변환 장치
KR102499682B1 (ko) * 2020-11-26 2023-02-14 한국과학기술연구원 확률론적 자기터널접합구조를 이용한 랜덤 넘버 발생기
CN112835556B (zh) * 2021-01-28 2024-01-16 广东省大湾区集成电路与系统应用研究院 一种基于mtj的真随机数发生器
US20220343030A1 (en) * 2021-04-26 2022-10-27 Everspin Technologies, Inc. Cryptographic mram and methods thereof
KR102690367B1 (ko) * 2021-08-19 2024-07-31 한성대학교 산학협력단 의사 난수 생성기를 학습시키는 방법, IoT 디바이스에 난수를 제공하는 방법 및 의사 난수 생성기를 구비하는 전자장치
CN114461178A (zh) * 2022-02-15 2022-05-10 清华大学 随机数生成器、电子装置和操作方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246970B1 (en) * 1998-07-10 2001-06-12 Silverbrook Research Pty Ltd Method for making a chip tamper-resistant
US6480072B1 (en) 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US7571199B1 (en) 2000-11-15 2009-08-04 Microsoft Corporation Method and apparatus for generating random numbers
US8166296B2 (en) 2004-10-20 2012-04-24 Broadcom Corporation User authentication system
EP1686458B1 (en) 2005-01-28 2008-07-23 Infineon Technologies AG Oscillator-based random number generator
USRE44097E1 (en) 2005-07-22 2013-03-19 Psigenics Corporation Device and method for responding to influences of mind
DE102006030888B4 (de) * 2006-07-04 2009-06-25 Infineon Technologies Ag Verfahren und Vorrichtung zum Erzeugen eines Startwertes für einen Pseudo-Zufallszahlengenerator
TWI393415B (zh) 2006-10-12 2013-04-11 Interdigital Tech Corp 使用廣播的隨機雜訊來增強無線裝置的加密能力的方法和系統
US7728622B2 (en) 2007-03-29 2010-06-01 Qualcomm Incorporated Software programmable logic using spin transfer torque magnetoresistive random access memory
JP4625936B2 (ja) 2007-06-12 2011-02-02 独立行政法人産業技術総合研究所 乱数発生器
US8495118B2 (en) 2008-10-30 2013-07-23 Seagate Technology Llc Tunable random bit generator with magnetic tunnel junction
US20100174766A1 (en) 2009-01-06 2010-07-08 Seagate Technology Llc Magnetic Precession Based True Random Number Generator
US8886692B2 (en) * 2009-02-09 2014-11-11 Samsung Electronics Co., Ltd. Apparatus for generating random number
JP5100677B2 (ja) 2009-02-09 2012-12-19 株式会社東芝 乱数発生器および乱数発生方法
US8526252B2 (en) 2009-03-17 2013-09-03 Seagate Technology Llc Quiescent testing of non-volatile memory array
JP2011013901A (ja) 2009-07-01 2011-01-20 Sony Corp 乱数発生装置
CN101620523B (zh) * 2009-07-29 2011-04-13 深圳国微技术有限公司 一种随机数发生器电路
JP2011113136A (ja) 2009-11-24 2011-06-09 Sony Corp 乱数発生装置、乱数発生方法及びセキュリティチップ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399328A (zh) * 2017-02-08 2018-08-14 新唐科技股份有限公司 系统存储器内容认证设备及方法
CN108399328B (zh) * 2017-02-08 2021-04-27 新唐科技股份有限公司 系统存储器内容认证设备及方法
TWI686808B (zh) * 2018-01-04 2020-03-01 美商超捷公司 用於在非揮發性記憶體中使用電流乘數儲存並檢索多位元資料的系統及方法
US10878897B2 (en) 2018-01-04 2020-12-29 Silicon Storage Technology, Inc. System and method for storing and retrieving multibit data in non-volatile memory using current multipliers

Also Published As

Publication number Publication date
CN103890712A (zh) 2014-06-25
JP5826400B2 (ja) 2015-12-02
KR101617832B1 (ko) 2016-05-03
US20170010864A1 (en) 2017-01-12
WO2013043543A2 (en) 2013-03-28
EP2758865B1 (en) 2017-10-18
JP2014531669A (ja) 2014-11-27
US20130073598A1 (en) 2013-03-21
WO2013043543A3 (en) 2013-06-06
EP2758865A2 (en) 2014-07-30
CN103890712B (zh) 2017-02-15
KR20140069195A (ko) 2014-06-09
US9189201B2 (en) 2015-11-17
IN2014CN02071A (zh) 2015-05-29

Similar Documents

Publication Publication Date Title
EP2758865B1 (en) Entropy source with magneto-resistive element for random number generator
Zhang et al. Highly reliable memory-based physical unclonable function using spin-transfer torque MRAM
EP2933720B1 (en) Random number processing apparatus
TWI496075B (zh) 隨機化數值之產生
Yang et al. A 28NM integrated true random number generator harvesting entropy from MRAM
TWI843758B (zh) 積體電路
Zhang et al. Highly reliable spin-transfer torque magnetic RAM-based physical unclonable function with multi-response-bits per cell
US10579339B2 (en) Random number generator that includes physically unclonable circuits
Zhao et al. A 108 F 2/Bit fully reconfigurable RRAM PUF based on truly random dynamic entropy of jitter noise
Wu et al. Flam-puf: A response–feedback-based lightweight anti-machine-learning-attack puf
Ali et al. A reconfigurable arbiter MPUF with high resistance against machine learning attack
Tseng et al. ReRAM-based pseudo-true random number generator With high throughput and unpredictability characteristics
Chen et al. On the hardware implementation of MRAM physically unclonable function
Equbal et al. Hybrid CMOS-RRAM true random number generator exploiting coupled entropy sources
Yang et al. A low cost and high reliability true random number generator based on resistive random access memory
Khaleghi et al. An stt-MRAM based strong PUF
Ali et al. A reconfigurable arbiter PUF based on STT-MRAM
Yang et al. The applications of NVM technology in hardware security
Carboni et al. Applications of resistive switching memory as hardware security primitive
Du et al. Intrinsic MRAM Properties Enable Security Circuits
Xu et al. All-spin PUF: An Area-efficient and Reliable PUF Design with Signature Improvement for Spin-transfer Torque Magnetic Cell-based All-spin Circuits
Zhang et al. Design and security evaluation of PCM-based rPUF using cyclic refreshing strategy
Shao et al. A Novel FeFET Array-Based PUF: Co-optimization of Entropy Source and CRP Generation for Enhanced Robustness in IoT Security
Uddin A PUF based Lightweight Hardware Security Architecture for IoT
US20220020410A1 (en) Asynchronous true random number generator using stt-mtj