TWI798982B - 隨機數產生器 - Google Patents
隨機數產生器 Download PDFInfo
- Publication number
- TWI798982B TWI798982B TW110145615A TW110145615A TWI798982B TW I798982 B TWI798982 B TW I798982B TW 110145615 A TW110145615 A TW 110145615A TW 110145615 A TW110145615 A TW 110145615A TW I798982 B TWI798982 B TW I798982B
- Authority
- TW
- Taiwan
- Prior art keywords
- random number
- entropy
- generator
- shift register
- linear feedback
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Permanent Magnet Type Synchronous Machine (AREA)
- Pinball Game Machines (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本發明提供一種隨機數產生器。隨機數產生器包含一第一級產生器以及一第二級產生器,第一級產生器分別在一第一時間點以及一第二時間點輸出一第一隨機數以及一第二隨機數,以及第二級產生器至少依據第一隨機數產生一最終輸出。尤其,第二級產生器包含一補種電路以用來產生一補種訊號,以控制是否依據第二隨機數產生最終輸出。另外,當第二級產生器在不使用第二隨機數的情況下於一目前資料週期產生最終輸出時,第一級產生器保留第二隨機數以用來於下個資料週期產生最終輸出。
Description
本發明是關於隨機數產生機制,尤指一種隨機數產生器。
隨機數產生器被廣泛地使用在電子系統中,以用來實施資訊安全相關的功能。相關技術已提出各種隨機數產生機制以用來產生隨機數,但這些隨機數產生機制存在某些問題。例如,真隨機數產生器需要至少一熵(entropy)源以產生隨機數,但該熵源的關於隨機性的品質典型地不足以通過美國國家標準暨技術研究院(National Institute of Standards and Technology)SP800-90B所定義的測試項目(例如上電測試)。另外,相較於真隨機數產生器,雖然偽隨機數產生器可提供較高的隨機數輸出率,但相關技術中的偽隨機數產生器所產生的隨機數的重複樣態會是需要被解決的問題。
因此,需要一種新穎的隨機數產生器的架構以及相關隨機數產生方法,以改善產生出的隨機數的隨機性相關的品質。
本發明的一目的在於提供一種隨機數產生器,以在沒有副作用或較不會帶來副作用的情況下解決提升隨機數產生器的整體效能。
本發明至少一實施例提供一種隨機數產生器,其中隨機數產生器包含一第一級產生器以及耦接至第一級產生器的一第二級產生器。第一級產生器是用來輸出複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,其中第一初步隨機數是在一第一時間點被輸出,以及第二初步隨機數是在一第
二時間點被輸出。第二級產生器是用來至少依據第一初步隨機數產生一最終輸出,尤其第二級產生器包含一補種(reseed)電路以用來產生一補種訊號,其中補種訊號用來控制是否依據第二初步隨機數產生最終輸出。另外,當第二級產生器在不使用第二初步隨機數的情況下於第二級產生器的一目前資料週期產生最終輸出時,第一級產生器保留第二初步隨機數以用來於第二級產生器的下個資料週期產生最終輸出。
本發明至少一實施例提供一種隨機數產生器,其中隨機數產生器包含一動態熵(entropy)源、一第一級產生器以及一第二級產生器。動態熵源是用來提供一第一動態熵位元。第一級產生器包含一靜態熵源以及一刷新(refresh)電路。靜態熵源是用來分別依據一第一位址以及一第二位址輸出一第一靜態熵數以及一第二靜態熵數,以及刷新電路用來產生一刷新訊號,其中第一級產生器至少依據第一靜態熵數產生複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,以及刷新訊號用來控制是否依據第二靜態熵數產生複數個初步隨機數的任一者。尤其,第一初步隨機數是在一第一時間點被產生,以及第二初步隨機數是在第一時間點以後的一第二時間點被產生。第二級產生器耦接至第一級產生器,並且是用來至少依據第一初步隨機數產生一最終輸出。第二級產生器包含一補種電路以用來依據第一動態熵位元產生一補種訊號,其中補種訊號用來控制是否依據第二初步隨機數產生最終輸出。
藉助於第一級產生器的輸出控制機制,本發明的實施例所提供的隨機數產生器所產生的隨機數的品質能被大幅地改善。另外,隨機數的場域(field)能被大幅地延展。因此,相較於相關技術的偽隨機數產生器,當本發明的隨機數產生器運作在一偽隨機數模式下時,自隨機數產生器輸出的隨機數能具有較佳的品質。
10:隨機數產生器
20:動態熵源
50:隨機數提取器
51:第一線性反饋移位暫存器
52:新級產生器
53:補種控制電路
54:處理電路
100:基於PUF的隨機本質產生器
R1,R2:暫存器
OUTPREG,OUTR1,OUTR2,OUTLFSR1,OUTRNG:隨機數
BDYN1,BDYN2:動態熵位元
MODECTRL:模式控制訊號
ENRESEED1:補種致能訊號
S21~S26:步驟
S0,S1a,S1b,S2a~S2d,SNa~SNb:狀態
T1a~T1d,T2a~T2h,P1a~P1b,P2a~P2b:狀態
RE[1]~RE[9]:隨機數
S61~S65:步驟
CLK:主時脈
L1~L7,L5’,L6’,L7’:隨機數
RN1:隨機數
110:PUF陣列
120:位址計數器
130:第二線性反饋移位暫存器130
140:級刷新電路
150:處理電路
160:本質保留邏輯
CLKPREG:內部時脈
ADDRX,ADDRY,ADDRZ:位址
PUFX,PUFY,PUFZ:PUF數
OUTLFSR2:隨機數
STAGENEW:新隨機數
ENRESEED2:補種致能訊號
ENREFRESH:刷新致能訊號
PX[1]~PX[32],PY[1]~PY[32],PZ[1]:PUF數
D1,1~D32,32:資料
第1圖為依據本發明一實施例之一隨機數產生器的示意圖。
第2圖為依據本發明一實施例之第1圖所示之隨機數產生器的運作的工作流程。
第3圖為依據本發明一實施例之一真隨機數產生模式的一發散方案。
第4圖為依據本發明一實施例之一偽隨機數產生模式的一發散方案。
第5圖為依據本發明一實施例之基於物理不可複製功能(簡稱PUF)的隨機本質產生器在不具備任何隨機本質保留機制的情況下的輸出方案。
第6圖為依據本發明一實施例之一種隨機數產生方法的工作流程。
第7圖為依據本發明一實施例之與第1圖所示之隨機數產生器相關的某些訊號的示意圖。
第8圖為依據本發明另一實施例之與第1圖所示之隨機數產生器相關的某些訊號的示意圖。
第9圖為依據本發明一實施例之基於PUF的隨機本質產生器在具備一隨機本質保留機制的情況下的輸出方案。
第10圖為依據本發明一實施例之第1圖所示之基於PUF的隨機本質產生器的某些細節。
第11圖為依據本發明一實施例之自PUF陣列讀取的PUF數的輸出方案。
第12圖為依據本發明一實施例之與第10圖所示之基於PUF的隨機本質產生器相關的某些訊號的示意圖。
第1圖為依據本發明一實施例之一隨機數產生器10的示意圖。如第1圖所示,隨機數產生器10可包含一動態熵(entropy)源20、一第一級產生器諸
如一基於物理不可複製功能(Physical Unclonable Function,簡稱PUF)的隨機本質(essence)產生器100(下稱PREG 100)、以及一第二級產生器諸如一隨機數提取器50,其中隨機數提取器50耦接至動態熵源20以及PREG 100。動態熵源20是用來提供至少一動態熵位元,例如提供一動態熵位元BDYN1給隨機數提取器50並且提供一動態熵位元BDYN2給PREG 100。自動態熵源20輸出的動態熵位元可動態地以隨機且不可預測的方式在一第一邏輯值與一第二邏輯值之間變動(例如在「0」與「1」之間變動)。動態熵源20可藉由任何能輸出不可預測且隨機的訊號的元件來實施。動態熵源20的例子可包含(但不限於)熱雜訊取樣電路、時序擾動取樣電路(例如環形振盪器)、靜態隨機存取記憶體單元的亞穩態等等。
在某些實施例中,動態熵位元BDYN1以及動態熵位元BDYN2可為互相一致的(例如動態熵元20對PREG 100以及隨機數提取器50均提供相同的動態熵位元)。在某些實施例中,動態熵位元BDYN1以及動態熵位元BDYN2可互相不同,而即使在動態熵位元BDYN1以及動態熵位元BDYN2的其中一者被破解的情況下,只要另一者未被破解,就能有至少一個動態熵位元涉及其中並從而確保隨機數產生器10的整體運作的隨機性。例如,當動態熵位元BDYN1被破解但動態熵位元BDYN2未被破解時,PREG 100的運作的隨機性(將於後續段落說明)能被確保。又例如,當動態熵位元BDYN2被破解但動態熵位元BDYN1未被破解時,隨機數提取器50的運作的隨機性能被確保。
在本實施例中,PREG 100是用來輸出複數個初步隨機數諸如初步隨機數OUTPREG,其中在一第一時間點被輸出的初步隨機數OUTPREG可作為一第一初步隨機數,以及在一第二時間點被輸出的初步隨機數OUTPREG可作為一第二初步隨機數。隨機數提取器50是用來至少依據第一初步隨機數產生一最終輸出諸如隨機數OUTRNG。如第1圖所示,隨機數提取器50可包含暫存器R1及R2、一第一線性反饋移位暫存器(linear feedback shift register,LFSR)51(在第1圖中標示
為「LFSR-1」以求簡明),一新級產生器52諸如一互斥或(exclusive OR)邏輯、一補種電路諸如一補種控制電路53、以及一處理電路54(其以標示有「+」在其內的圓圈來表示以求簡明)。
例如,在一時間點t=1(例如在PREG 100的一第一輸出週期),自PREG 100輸出的隨機數OUTPREG為RE[1];在一時間點t=2(例如在PREG 100的一第二輸出週期),自PREG 100輸出的隨機數OUTPREG為RE[2],以及RE[1]被儲存在暫存器R1(例如自暫存器R1輸出的隨機數OUTR1為RE[1]);以及在一時間點t=3(例如在PREG 100的一第三輸出週期),自PREG 100輸出的隨機數OUTPREG為RE[3],RE[2]被儲存在暫存器R1(例如自暫存器R1輸出的隨機數OUTR1為RE[2]),以及RE[1]被儲存在暫存器R2(例如自暫存器R2輸出的隨機數OUTR2為RE[1])。在時間點t=3的隨機數OUTR1及OUTR2(例如RE[1]及RE[2])可作為第一初步隨機數的例子,以及在時間點t=3的隨機數OUTPREG(例如RE[3])可作為第二初步隨機數的例子。
補種控制電路53是用來依據動態熵位元BDYN1產生一補種致能(enable)訊號ENRESEED1。例如,補種控制電路53可依據動態熵位元BDYN1以及隨機數OUTRNG產生補種致能訊號ENRESEED1,尤其補種致能訊號ENRESEED1可為動態熵位元BDYN1與隨機數OUTRNG中的一預定位元(例如隨機數OUTRNG的第L個位元,其中L為正整數)的一互斥或結果,但本發明不限於此。基於補種控制電路53的處理,低品質的動態熵(例如「0」與「1」具有不平衡的出現率)諸如動態熵位元BDYN1可與高品質的隨機位元(例如「0」與「1」具有大致相等的出現率)諸如隨機數OUTRNG中的第L個位元作混合,以產生帶有動態熵的高品質隨機控制位元涉及其中。
在本實施例中,補種致能訊號ENRESEED1是用來控制是否依據第二初步隨機數產生隨機數OUTRNG。詳細來說,補種致能訊號ENRESEED1是用來控制是
否用第二初步隨機數對第一線性反饋移位暫存器51進行補種以產生一輸出(例如隨機數OUTLFSR1)。需注意的是,線性反饋移位暫存器的初始狀態可由一初始種子決定,其輸出位元是其先前狀態的線性函數,並且該線性函數較佳為藉由一本原多項式(primitive polynomial)來定義,這使得線性反饋移位暫存器的狀態(例如線性反饋移位暫存器的輸出)可對應於該本原多項式的一預定規則被切換。第一線性反饋移位暫存器51可作為線性反饋移位暫存器的例子,並且是用來輸出一線性反饋移位暫存器隨機數諸如隨機數OUTLFSR1。當補種致能訊號ENRESEED1顯示為一第一邏輯值(例如「0」)時,第一線性反饋移位暫存器51可在不使用第二初步隨機數諸如RE[3]的情況下依據一第一預定規則(對應於一第一本原多項式的規則)輸出隨機數OUTLFSR1,換言之,第一線性反饋移位暫存器51不會被補種。當補種致能訊號ENRESEED1顯示為一第二邏輯值(例如「1」),第一線性反饋移位暫存器51可依據第二初步隨機數輸出隨機數OUTLFSR1。詳細來說,新級產生器52可依據第二初步隨機數諸如RE[3]以及隨機數OUTRNG產生一新種子(例如新種子可為RE[3]與隨機數OUTRNG的互斥或結果),以及新種子可在補種致能訊號ENRESEED1顯示為該第二邏輯值(例如「1」)時被寫入至第一線性反饋移位暫存器51以作為其下個狀態,其中此運作可稱為對第一線性反饋移位暫存器51進行補種。另外,處理電路54是用來依據隨機數OUTR1、OUTR2及OUTLFSR1產生隨機數OUTRNG。例如,處理電路54可對隨機數OUTR1及OUTR2進行互斥或運作以產生一初步互斥或結果,再接著對此初步互斥或結果及隨機數OUTLFSR1進行互斥或運作以產生隨機數OUTRNG,但本發明不限於此。
在本實施例中,於隨機數產生器10的一初始程序的期間,補種控制電路53於隨機數提取器50的多個資料週期依據動態熵位元BDYN1產生補種致能訊號ENRESEED1。於初始程序以後的隨機數產生器10的一輸出程序的期間,隨機數產生器10依據一模式控制訊號MODECTRL決定是運作在一真隨機數產生(true
random number generating,TRNG)模式或是一偽隨機數產生(pseudo random number generating,PRNG)模式下。詳細來說,PREG 100以及補種控制電路53可接收模式控制訊號MODECTRL以用來決定是運作在偽隨機數產生模式或是真隨機數產生模式。當隨機數產生器10運作在真隨機數產生模式下時(例如當模式控制訊號MODECTRL顯示為邏輯值「0」時),補種控制電路53可如上所述依據動態熵位元BDYN1產生補種致能訊號ENRESEED1。當隨機數產生器10運作在偽隨機數產生模式下時(例如當模式控制訊號MODECTRL顯示為邏輯值「1」時),補種控制電路53可在不使用動態熵位元BDYN1的情況下產生補種致能訊號ENRESEED1(例如補種控制電路53可將上述隨機數OUTRNG中的該預定位元輸出為補種致能訊號ENRESEED1)。
在某些實施例中,隨機數產生器10內的品質檢查電路(未顯示)可耦接至處理電路54以接收隨機數OUTRNG並且檢查隨機數OUTRNG的品質(例如檢查隨機數OUTRNG的漢明權重(hamming weight)是否符合預定標準)。若隨機數OUTRNG的漢明權重無法符合該預定標準,品質檢查電路可發出一警告至隨機數產生器10的外部,以通知耦接至隨機數產生器10的處理器此時的隨機數OUTRNG是不可用的。在某些實施例中,當耦接至隨機數產生器10的處理器接收到從該品質檢查電路發出的警告時,該處理器可傳送一重置(reset)訊號以將隨機數產生器10重置或重開機,但本發明不限於此。
第2圖為依據本發明一實施例之第1圖所示之隨機數產生器10的運作的工作流程,其中該工作流程是可應用於(applicable to)第1圖所示之隨機數產生器10。需注意的是,一或多個步驟可在第2圖所示之工作流程中被新增、刪除或修改,且若不妨礙整體結果的達成,這些步驟並非必須完全依照第2圖所示之順序執行。例如,上述的品質檢查若有需要可被新增至該工作流程中。
在步驟S21中,於隨機數產生器10被上電後,隨機數產生器10可利用
具有動態熵的初始補種判定以使第一線性反饋移位暫存器51的輸出逐級地發散(diverge),其中此步驟可為上述初始程序的例子,並且在第2圖中標示為「線性反饋移位暫存器級發散:使用動態熵的初始補種判定」以求簡明。
在步驟S22中,於第一線性反饋移位暫存器51的輸出的場域以被延展至某個程度後,隨機數產生器10可依據模式控制訊號MODECTRL決定是運作在偽隨機數產生模式或是真隨機數產生模式下,其中此步驟在第2圖中是標示為「模式選擇:PRNG/TRNG」以求簡明。若選擇偽隨機數產生模式(第2圖中標示為「PRNG」以求簡明),該工作流程進入步驟S23;以及若選擇真隨機數產生模式(第2圖中標示為「TRNG」以求簡明),該工作流程進入步驟S25。步驟S22及其後續步驟可作為上述輸出程序的例子。
在步驟S23中,隨機數產生器10可開始輸出偽隨機數。
在步驟S24中,隨機數產生器10可控制補種控制電路53在不使用動態熵位元BDYN1的情況下產生補種致能訊號ENRESEED1(例如將隨機數OUTRNG中的該預定位元作為補種致能訊號ENRESEED1),其中此步驟被標示為「不具有動態熵的補種判定」。
在步驟S25中,隨機數產生器10可開始輸出真隨機數。
在步驟S26中,隨機數產生器10可控制補種控制電路53依據動態熵位元BDYN1產生補種致能訊號ENRESEED1(例如將動態熵位元BDYN1與隨機數OUTRNG中的該預定位元的互斥或結果作為補種致能訊號ENRESEED1),其中此步驟被標示為「具有動態熵的補種判定」。
第3圖為依據本發明一實施例之真隨機數產生模式的一發散方案。假設S0代表第一線性反饋移位暫存器51的初始種子,而此初始種子可分別因應未被補種的情況與有被補種的情況發散為兩個狀態S1a及S1b。當第一線性反饋移位暫存器51的狀態為S1a時,狀態S1a可分別因應未被補種的情況與有被補種的
情況發散為兩個狀態S2a及S2b。當第一線性反饋移位暫存器51的狀態為S1b時,狀態S1b可分別因應未被補種的情況與有被補種的情況發散為兩個狀態S2c及S2d。因此,在N級的發散後,初始種子S0可發散為2N個狀態諸如SNa至SNb,並且隨機數產生器10可開始輸出隨機數。當第一線性反饋移位暫存器51的狀態為SNa時,隨機數產生器10的輸出可分別因應未被補種的情況與有被補種的情況發散為兩個狀態T1a及T1b。當第一線性反饋移位暫存器51的狀態為SNb時,隨機數產生器10的輸出可分別因應未被補種的情況與有被補種的情況發散為兩個狀態T1c及T1d。隨機數T2a~T2h可經類似的方式發散得到,為簡明起見在此不重覆贅述。如第3圖所示,隨機數產生器10在真隨機數產生模式下能藉助於上述補種判定機制來持續地延展其輸出的場域。
第4圖為依據本發明一實施例之偽隨機數產生模式的一發散方案,其中在偽隨機數產生模式下的初始N級發散的細節與真隨機數產生模式相同,為簡明起見在此不重覆贅述。在該初始N級發散完成後,隨機數產生器10可停止利用動態熵位元BDYN1控制是否對第一線性反饋移位暫存器51進行補種。因此,該補種判定僅由靜態熵來決定,其中此靜態熵可與該初始N級發散的發散結果相關,而在隨機數產生器10停止利用動態熵位元BDYN1控制是否對第一線性反饋移位暫存器51進行補種以後即不再改變(停止發散)。由於針對第一線性反饋移位暫存器51的補種判定不再受到任何動態熵的影響,因此第一線性反饋移位暫存器51可充當一靜態熵源。在某些實施例中,此靜態熵源可與PUF陣列實施的靜態熵相關,並且將於後續與第10圖所示之PREG 100的細節相關的段落中進一步說明。由於動態熵不再涉及上述補種判定,因此對於第一線性反饋移位暫存器51的每一狀態(例如SNa至SNb的任一者)的隨機數的輸出可具有一單一樣態(例如對於狀態SNa的P1a到P2a、以及對於狀態SNb的P1b到P2b)而不再發散。雖然運作在偽隨機數產生模式下的隨機數產生器10在該初始N級發散完成後即無法持續
地延展其輸出的場域,隨機數的輸出能在不花費時間收集動態熵的情況下進行,因此相較於真隨機數產生模式能達到較高的輸出率。
為了改善與上電測試(power on test)相關的效能,PREG 100可具備一隨機本質保留(random-essence-hold)機制。詳細來說,當隨機數提取器50在不使用第二初步隨機數(例如RE[3])的情況下於隨機數提取器50的一目前資料週期(例如第T個資料週期)產生隨機數OUTRNG時,PREG 100可保留第二初步隨機數(例如RE[3])以用於在隨機數提取器50的下個資料週期(例如第(T+1)個資料週期)產生隨機數OUTRNG。
第5圖為依據本發明一實施例之PREG 100在不具備隨機本質保留機制的情況下(例如在隨機本質保留機制被禁能(disable)的情況下)的輸出方案。為便於理解低品質的動態熵位元BDYN2帶來的影響,假設PREG 100是只基於其內的靜態熵(例如其內的靜態熵源諸如PUF陣列)輸出隨機數。在隨機數產生器10的第一次上電後,PREG 100依序地輸出隨機數RE[1]、RE[2]、RE[3]、RE[4]、RE[5]、RE[6]、RE[7]、RE[8]及RE[9],其中隨機數RE[1]、RE[2]及RE[3]是用來在一第一資料週期(例如T=1)產生隨機數OUTRNG,RE[4]、RE[5]及RE[6]是用來在一第二資料週期(例如T=2)產生隨機數OUTRNG,以及RE[7]、RE[8]及RE[9]是用來在一第三資料週期(例如T=3)產生隨機數OUTRNG。在隨機數產生器10的第二次上電後,PREG 100會因為動態熵位元BDYN2品質低而產生與第一次上電時類似的輸出或相同的輸出。也就是說,在第一次上電後的第T個週期之用來產生隨機數OUTRNG的成分可與在第二次上電後的第T個週期之用來產生隨機數OUTRNG的成分類似或一致,而隨機數OUTRNG則因此無法通過上電測試。因此,隨機本質保留機制較佳為被致能的。
第6圖為依據本發明一實施例之一種隨機數產生方法的工作流程,其中該工作流程是可應用於一隨機數產生器(例如第1圖所示之隨機數產生器
10)。需注意的是,一或多個步驟可在第6圖所示之工作流程中被新增、刪除或修改,且若能不妨礙整體結果的達成,這些步驟並非必須完全依照第6圖所示之順序執行。
在步驟S61中,隨機數產生器可利用動態熵源提供第一動態熵位元。
在步驟S62中,隨機數產生器可利用第一級產生器輸出初步隨機數,其中於第一時間點輸出的初步隨機數是作為第一初步隨機數,以及於第二時間點輸出的初步隨機數是作為一第二初步隨機數。
在步驟S63中,隨機數產生器可利用一第二級產生器至少依據第一初步隨機數產生一最終隨機數。
在步驟S64中,隨機數產生器可利用一補種電路以依據第一動態熵位元產生一補種訊號,其中補種訊號是用來控制是否依據第二初步隨機數產生最終隨機數。
在步驟S65中,當第二級產生器在不使用第二初步隨機數的情況下於第二級產生器的一目前資料週期產生最終隨機數,隨機數產生器可利用第一級產生器保留第二初步隨機數以用來在第二級產生器的下個資料週期產生最終隨機數。
為便於理解,請參考第7圖,其為依據本發明一實施例之與第1圖所示之隨機數產生器10相關的某些訊號(例如隨機數產生器10的主時脈CLK、補種致能訊號ENRESEED1、隨機數OUTLFSR1、OUTPREG及OUTRNG、以及動態熵位元BDYN1)的示意圖。需注意的是,隨機數OUTRNG是另外藉由隨機數提取器50的一輸出時脈來同步,使得隨機數OUTRNG是主時脈CLK的每四個週期被更新一次,其中在輸出時脈的目前資料週期產生的隨機數OUTRNG是在輸出時脈的下個資料週期被輸出。在隨機數產生器10被上電後且在主時脈CLK開始切換以前,隨機數OUTLFSR1是在一初始狀態(例如第一線性反饋移位暫存器51的該初始種子)。
動態熵位元BDYN1可在「0」及「1」之間以隨機的方式切換(在第7圖中標示為「H/L」以便於理解)。在第7圖的實施例中,由於補種致能訊號ENRESEED1被維持在「0」,自第一線性反饋移位暫存器51輸出的隨機數OUTLFSR1是在不進行任何補種運作的情況下依據該第一預定規則(例如第一線性反饋移位暫存器51在標記「t=1」、「t=2」、「t=3」、「t=4」、「t=5」、「t=6」及「t=7」的週期依序輸出L1、L2、L3、L4、L5、L6及L7)被切換。PREG 100依序地輸出隨機數RE[1]、RE[2]及RE[3],其中隨機數OUTRNG(例如在標記為「t=5」的週期被輸出的隨機數RN1)是在不使用隨機數RE[3]的情況下於一目前資料週期被產生,並且PREG 100能如第7圖所示地保留隨機數RE[3],以容許隨機數RE[3]被用來在下個資料週期產生隨機數OUTRNG。
請參考第8圖,其為依據本發明另一實施例之與第1圖所示之隨機數產生器10相關的某些訊號(例如隨機數產生器10的主時脈CLK、補種致能訊號ENRESEED1、隨機數OUTLFSR1、OUTPREG及OUTRNG、以及動態熵位元BDYN1)的示意圖。相較於第7圖所示之實施例,第8圖所示之補種致能訊號ENRESEED1在標示「t=4」的週期顯示為「1」,而第一線性反饋移位暫存器51因此被補種並且在標示「t=5」的週期輸出隨機數L5’,其中隨機數OUTLFSR1在標示「t=6」及「t=7」的週期時分別為L6’及L7’。另外,由於第8圖所示之補種致能訊號ENRESEED1在標示「t=4」的週期顯示為「1」,這表示隨機數OUTRNG(例如在標示「t=5」的週期被輸出的隨機數R1)是依據隨機數RE[1]、RE[2]及RE[3]產生的,因此PREG 100分別在標示「t=5」、「t=6」及「t=7」的週期時分別輸出隨機數RE[4]、RE[5]及RE[6]。
第9圖為依據本發明一實施例之PREG 100在具備隨機本質保留機制的情況下(例如在隨機本質保留機制被致能的情況下)的輸出方案。在第一次上電後的一第一資料週期(例如T=1),PREG 100輸出隨機數RE[1]、RE[2]及
RE[3],其中假設補種致能訊號ENRESEED1在第一資料週期顯示為「1」,這表示隨機數OUTLFSR1是依據隨機數RE[3]被產生的。因此,在第一資料週期的隨機數OUTRNG是依據隨機數RE[1]及RE[2](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUTLFSR1(其是依據隨機數RE[3]被產生)。在第一次上電後的一第二資料週期(例如T=2),PREG 100另輸出隨機數RE[4]、RE[5]及RE[6],其中假設補種致能訊號ENRESEED1在第二資料週期顯示為「0」,這表示隨機數OUTRNG是在不使用隨機數RE[6]的情況下被產生,而PREG 100可保留隨機數RE[6]以供在第一次上電後的一第三資料週期(例如T=3)使用。因此,在第二資料週期隨機數OUTRNG是依據隨機數RE[4]及RE[5](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUTLFSR1(其是在不使用隨機數RE[6]的情況下被產生)。在第一次上電後的第三資料週期,PREG 100另輸出隨機數RE[7]及RE[8],其中假設補種致能訊號ENRESEED1在第三資料週期顯示為「1」,這表示隨機數OUTLFSR1是依據隨機數RE[8]被產生。因此,在第三資料週期的隨機數OUTRNG是依據隨機數RE[6]及RE[7](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUTLFSR1(其是依據隨機數RE[8]被產生)。
相較之下,在第二次上電後的一第一資料週期(例如T=1),PREG 100輸出隨機數RE[1]、RE[2]及RE[3],其中假設補種致能訊號ENRESEED1在第一資料週期顯示為「0」,這表示隨機數OUTRNG是在不使用隨機數RE[3]的情況下被產生的,而PREG 100可保留隨機數RE[3]以供在第二次上電後的一第二資料週期(例如T=2)使用。因此,在第一資料週期的隨機數OUTRNG是依據隨機數RE[1]及RE[2](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUTLFSR1(其是在不使用隨機數RE[3]的情況下被產生)。在第二次上電後的第二資料週期(例如T=2),PREG 100另輸出隨機數RE[4]及RE[5],其中假設補種致能訊號ENRESEED1在第二資料週期顯示為「0」,這表示隨機數OUTRNG是在不使用隨機數
RE[5]的情況下被產生的,而PREG 100可保留隨機數RE[5]以供在第二次上電後的一第三資料週期(例如T=3)使用。因此,在第二資料週期的隨機數OUTRNG是依據隨機數RE[3]及RE[4](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUTLFSR1(其是在不使用隨機數RE[5]的情況下被產生)。在第二次上電後的第三資料週期(例如T=3),PREG 100另輸出隨機數RE[6]及RE[7],其中假設補種致能訊號ENRESEED1在第二資料週期顯示為「0」,這表示隨機數OUTRNG是在不使用隨機數RE[7]的情況下被產生的,而PREG 100可保留隨機數RE[7]以供在第二次上電後的第三資料週期的下個資料週期使用。因此,在第三資料週期的隨機數OUTRNG是依據隨機數RE[5]及RE[6](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUTLFSR1(其是在不使用隨機數RE[7]的情況下被產生)。
由於在第一次上電後的補種致能訊號ENRESEED1顯示為「1」的時間點可異於在第二次上電後的補種致能訊號ENRESEED1顯示為「1」的時間點,因此用於在第一次上電後的第T個資料週期產生隨機數OUTRNG的成分可異於用於在第二次上電後的第T個資料週期產生隨機數OUTRNG的成分,而隨機數OUTRNG因此能通過上電測試。例如,假設隨機本質保留機制被禁能,在第一次上電與第二次上電時隨機數OUTR2、OUTR1及OUTPREG於第N個資料週期(例如T=N)總是分別為RE[3N-2]、RE[3N-1]及RE[3N],因此隨機數OUTRNG在第一次上電與第二次上電的情況下則總是為隨機數RE[3N-2]及RE[3N-1]以及隨機數OUTLFSR1的互斥或結果,其中若在第N個資料週期發生補種事件(例如補種致能訊號ENRESEED1顯示為「1」),被用來對第一線性反饋移位暫存器51進行補種的隨機數在第一次上電與第二次上電的情況下則總是為RE[3N]。又例如,假設第9圖的實施例所示之隨機本質保留機制被致能,被用來在第一次上電的第二資料週期(例如T=2)產生隨機數OUTRNG的隨機數可為RE[4]及RE[5],但被用來在第二次上電的第二資料週期(例如T=2)產生隨機數OUTRNG的隨機數可為RE[3]及
RE[4]。另外,對於某個資料週期來說,被新級產生器52使用的隨機數對於不同次的上電事件來說也是不可預測的。尤其,被用來產生隨機數OUTRNG的隨機數的可能組合的複雜性隨著T增加(例如更多資料週期以後)也能增加。因此,隨機本質保留機制能有利於上電測試的結果。
第10圖為依據本發明一實施例之第1圖所示之PREG 100的某些細節。在本實施例中,之PREG 100可包含藉由一靜態熵陣列實施的一靜態熵源值諸如PUF陣列110、一位址計數器120、一第二線性反饋移位暫存器130(在第10圖中標示為「LFSR-2」以求簡明)、一刷新(refresh)電路諸如一級刷新電路140、一處理電路150(其以標示有「+」在其內的圓圈來表示以求簡明)以及一時脈控制電路諸如一本質保留邏輯160。PUF陣列110可被視為一晶片上指紋。由於不同晶片的物理特性會因為某些在製造過程中不可控的因素而互相存在些微差異,這些差異是無法被複製或預測的。另外,由於這些差異在晶片被製造完成後即已被決定且不會被改變,PUF陣列110可被用來當作一「靜態」熵源。在某些實施例中,靜態熵陣列可為儲存有自與隨機數產生器10連接的一外部PUF陣列讀取的資料的一暫存器陣列。在某些情況下,讀取暫存器陣列的速度能較讀取外部PUF陣列的速度快上許多。因此,當隨機數產生器10被上電時,儲存在外部PUF陣列的全部PUF資料可先被存入暫存器陣列,而全部後續與該PUF資料相關的運作可藉由讀取暫存器陣列來進行,而不需讀取外部PUF陣列,但本發明不限於此。
在本實施例中,PUF陣列110是用來依據一第一位址諸如位址ADDRX輸出一第一靜態熵數諸如PUF數PUFX、依據一第二位址諸如位址ADDRY輸出一第二靜態熵數諸如PUF數PUFY、以及依據一第三位址諸如位址ADDRZ輸出一第三靜態熵數諸如PUF數PUFZ。位址計數器120是用來產生位址ADDRX、ADDRY及ADDRZ以控制PUF數PUFX、PUFY及PUFZ的輸出。為便於理解,請參考第11
圖,其為依據本發明一實施例之自PUF陣列110讀取的PUF數PUFX、PUFY及PUFZ的輸出方案。如第11圖所示,儲存於PUF陣列110的每一PUF單元的資料可用DRA,CA來表示,其中RA可代表列(row)位址,而CA可代表行(column)位址。例如,儲存在PUF陣列110的第一列的資料可為{D1,1,D1,2,D1,3,...,D1,31,D1,32};儲存在PUF陣列110的第二列的資料可為{D2,1,D2,2,D2,3,...,D2,31,D2,32};而其餘可依此類推,例如儲存在PUF陣列110的第三十二列的資料可為{D32,1,D32,2,D32,3,...,D32,31,D32,32}。另外,PUF陣列110可藉由將自以一第一方向排列(例如以垂直方向排列)的一第一組PUF單元讀取的資料收集為一組以輸出PUF數PUFX,而第一組PUF單元是對應於位址ADDRX,其中位址ADDRX的值可用nx來代表,以及與位址ADDRX不同的值對應的PUF數PUFX可用{PX(nx)|nx=1,2,3,...,32}={D1,nx,D2,nx,D3,nx,...,D31,nx,D32,nx}。PUF陣列110可藉由將自以一第二方向排列(例如以水平方向排列)的一第二組PUF單元讀取的資料收集為一組以輸出PUF數PUFY,而第二組PUF單元是對應於位址ADDRY,其中位址ADDRY的值可用ny來代表,以及與位址ADDRY不同的值對應的PUF數PUFY可用{PY(ny)|ny=1,2,3,...,32}={Dny,1,Dny,2,Dny,3,...,Dny,31,Dny,32}。PUF陣列110可藉由將自以一第三方向排列(例如以歪斜方向排列)的一第三組PUF單元讀取的資料收集為一組以輸出PUF數PUFZ,而第三組PUF單元是對應於位址ADDRZ,其中位址ADDRZ的值可用nz來代表,以及與位址ADDRZ不同的值對應的PUF數PUFZ可用{PZ(nz)|nz=1,2,3,...,32}。例如,PZ(1)={D1,1,D2,2,D3,3,...,D31,31,D32,32},PZ(2)={D1,2,D2,3,D3,4,...,D31,32,D32,1},而其餘可依此類推,例如PZ(32)={D1,32,D2,1,D3,2,...,D31,30,D32,31}。
在第10圖的實施例中,級刷新電路140是用來依據來自動態熵源20的動態熵位元BDYN2產生一刷新訊號,其中刷新訊號的例子可包含一刷新致能訊號ENREFRESH以及一補種致能訊號ENRESEED2,但本發明不限於此。例如,級刷新電
路140可依據動態熵位元BDYN2以及隨機數OUTPREG產生刷新訊號(例如刷新致能訊號ENREFRESH以及補種致能訊號ENRESEED2的任一者),尤其刷新訊號可為動態熵位元BDYN2以及隨機數OUTPREG中的一預定位元(例如隨機數OUTPREG的第M個位元,其中M為正整數)的互斥或結果,但本發明不限於此。基於級刷新電路140的處理,具有動態熵參與的高品質隨機控制位元(例如刷新致能訊號ENREFRESH以及補種致能訊號ENRESEED2的任一者)得以被產生。PREG 100至少依據PUF數PUFX及PUFY產生隨機數OUTPREG,以及刷新訊號(例如補種致能訊號ENRESEED2)是用來控制是否依據PUF數PUFZ產生隨機數OUTPREG。第二線性反饋移位暫存器130可為線性反饋移位暫存器的另一個例子,並且是用來輸出一線性反饋移位暫存器隨機數諸如隨機數OUTLFSR2。當刷新訊號(例如補種致能訊號ENRESEED2)顯示為一第一邏輯值(例如「0」),第二線性反饋移位暫存器130可在不使用PUF數PUFZ的情況下依據一第二預定規則(例如對應於一第二本原多項式的規則)輸出隨機數OUTLFSR2。需注意的是,第一線性反饋移位暫存器51及第二線性反饋移位暫存器130較佳為用相異的本原多項式來實施(例如第一本原多項式是異於第二本原多項式)。當刷新訊號(例如補種致能訊號ENRESEED2)顯示為一第二邏輯值(例如「1」),第二線性反饋移位暫存器130可依據PUF數PUFZ輸出隨機數OUTLFSR2。在本實施例中,級刷新電路140可依據PUF數PUFZ產生新隨機數STAGENEW,以對第二線性反饋移位暫存器130進行補種。例如,級刷新電路140可依據PUF數PUFZ及隨機數OUTPREG產生新隨機數STAGENEW(例如新隨機數STAGENEW可為PUF數PUFZ及隨機數OUTPREG的互斥或結果),但本發明不限於此。處理電路150是用來依據PUF數PUFX、PUF數PUFY以及隨機數OUTLFSR2產生隨機數OUTPREG。例如,處理電路150可對PUF數PUFX及PUFY進行互斥或運作以產生一初步互斥或結果,並且接著對此初步互斥或結果及隨機數OUTLFSR2進行互斥或運作以產生隨機數OUTPREG,但本發明不限於此。
另外,位址ADDRX及ADDRY在PREG 100的多個輸出週期的每個週期都會被刷新(例如增加一個單位步長),而刷新訊號(例如刷新致能訊號ENREFRESH)是另用來控制是否刷新位址ADDRZ。例如,當刷新致能訊號ENREFRESH顯示為一第一邏輯值(例如「0」),位址計數器120可避免刷新位址ADDRZ,以及當刷新致能訊號ENREFRESH顯示為一第二邏輯值(例如「1」),位址計數器120可刷新(例如增加一個單位步長)位址ADDRZ。刷新致能訊號ENREFRESH是較佳為與補種致能訊號ENRESEED2相關。在某些實施例中,級刷新電路140可提供相同的致能訊號給位址計數器120及第二線性反饋移位暫存器130(例如ENREFRESH=ENRESEED2),以確保對應於位址ADDRZ的每個值的PUF數PUFZ均能被使用到而不會被跳過。
在本實施例中,級刷新電路140可接收模式控制訊號MODECTRL以決定運作在偽隨機數產生模式或是真隨機數產生模式下。當隨機數產生器10運作在真隨機數產生模式下時(例如當模式控制訊號MODECTRL顯示為邏輯值「0」),級刷新電路140可依據上述動態熵位元BDYN2產生刷新訊號(例如補種致能訊號ENRESEED2及刷新致能訊號ENREFRESH的任一者)。當隨機數產生器10運作在偽隨機數產生模式下時(例如當模式控制訊號MODECTRL顯示為邏輯值「1」),級刷新電路140可在不使用動態熵為源BDYN2的情況下產生刷新訊號(例如補種致能訊號ENRESEED2及刷新致能訊號ENREFRESH的任一者),例如級刷新電路140可將上述隨機數OUTPREG中的該預定位元輸出為刷新訊號諸如補種致能訊號ENRESEED2及刷新致能訊號ENREFRESH的任一者。
在某些實施例中,PUF陣列110傳送PUF數PUFY及PUFZ至處理電路150並且傳送PUF數PUFX至級刷新電路140,其中位址ADDRY及ADDRZ是在PREG 100的多個輸出週期的每個週期均被更新(例如增加一個單位步長),而刷新訊號(例如刷新致能訊號ENREFRESH)是用來控制是否刷新位址ADDRX,但本
發明不限於此。在某些實施例中,PUF陣列110傳送PUF數PUFZ及PUFX至處理電路150並且傳送PUF數PUFY至級刷新電路140,其中位址ADDRZ及ADDRX是在PREG 100的多個輸出週期的每個週期均被更新(例如增加一個單位步長),而刷新訊號(例如刷新致能訊號ENREFRESH)是用來控制是否刷新位址ADDRY,但本發明不限於此。
另外,本質保留邏輯160是用來依據補種致能訊號ENRESEED1產生一內部時脈CLKPREG,其中級刷新電路140、位址計數器120及第二線性反饋移位暫存器130是依據內部時脈CLKPREG運作。當補種致能訊號ENRESEED1顯示為一第一邏輯值(例如「0」),這表示隨機數提取器50於隨機數提取器50的目前資料週期是在不使用到第二初步隨機數的情況下產生隨機數OUTRNG,本質保留邏輯160可禁能內部時脈CLKPREG(例如使內部時脈CLKPREG停止切換)以停止級刷新電路140、位址計數器120及第二線性反饋移位暫存器130的運作,以保留第二初步隨機數(例如保留目前資料週期產生的隨機數OUTPREG)。
第12圖為依據本發明一實施例之與第10圖所示之PREG 100相關的某些訊號(例如隨機數產生器10的主時脈CLK、刷新致能訊號ENREFRESH、隨機數OUTLFSR2、PUFX、PUFY、PUFZ及OUTPREG、以及動態熵位元BDYN2)的示意圖。在隨機數產生器10上電後且主時脈CLK開始切換前,隨機數OUTLFSR2是在一初始狀態(例如第二線性反饋移位暫存器130的一初始種子),並且假設第二線性反饋移位暫存器130在完全不被補種的情況下可依序地輸出隨機數M1、M2、M3、M4、M5、M6及M7。動態熵位元BDYN2可在「0」及「1」之間以隨機的方式切換(在第12圖中標示為「H/L」以便於理解)。在標示「t=1」的週期中,隨機數PUFZ為PZ[1],而第二線性反饋移位暫存器130輸出隨機數M1,其中刷新致能訊號ENREFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUFZ將不會被刷新)。在標示「t=2」的週期中,隨機數PUFZ
維持在Pz[1],而由於第二線性反饋移位暫存器130並未被補種,因此第二線性反饋移位暫存器130輸出隨機數M2,其中刷新致能訊號ENREFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUFZ將不會被刷新)。在標示「t=3」的週期中,隨機數PUFZ維持在Pz[1],而由於第二線性反饋移位暫存器130並未被補種,因此第二線性反饋移位暫存器130輸出隨機數M3,其中刷新致能訊號ENREFRESH顯示為「1」(表示在下個週期時第二線性反饋移位暫存器130將會被補種且隨機數PUFZ將會被刷新)。在標示「t=4」的週期中,隨機數PUFZ被刷新為Pz[2],而由於第二線性反饋移位暫存器130被補種,因此第二線性反饋移位暫存器130輸出隨機數M4’(而並非在第二線性反饋移位暫存器130未被補種的情況下所對應的M4),其中刷新致能訊號ENREFRESH顯示為「1」(表示在下個週期時第二線性反饋移位暫存器130將會被補種且隨機數PUFZ將會被刷新)。在標示「t=5」的週期中,隨機數PUFZ被刷新為Pz[3],而由於第二線性反饋移位暫存器130被補種,因此第二線性反饋移位暫存器130輸出隨機數M5”(而並非在第二線性反饋移位暫存器130未被補種的情況下所對應的M5’),其中刷新致能訊號ENREFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUFZ將不會被刷新)。在標示「t=6」的週期中,隨機數PUFZ維持在Pz[3],而由於第二線性反饋移位暫存器130未被補種,因此第二線性反饋移位暫存器130輸出隨機數M6”,其中刷新致能訊號ENREFRESH顯示為「1」(表示在下個週期時第二線性反饋移位暫存器130將會被補種且隨機數PUFZ將會被刷新)。在標示「t=7」的週期中,隨機數PUFZ被刷新為Pz[4],而由於第二線性反饋移位暫存器130被補種,因此第二線性反饋移位暫存器130輸出隨機數M7’’’(而並非在第二線性反饋移位暫存器130未被補種的情況下所對應的M7”),其中刷新致能訊號ENREFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUFZ將不會被刷新)。
補種控制電路53及/或級刷新電路140所執行的補種判定能用來改變/擾亂第一線性反饋移位暫存器51及/或第二線性反饋移位暫存器130的輸出樣態。另外,藉助於隨機本質保留機制,用來產生隨機數OUTRNG的任一隨機數自PREG 100輸出的時序能變得不可預測(例如RE[5]在第一次上電後是在第二週期被使用但RE[5]在第二次上電後是在第三周期被使用,如第9圖所示),這有利於上電測試的結果。因此,本發明的實施例提供之帶有多級(例如多迴圈)處理的隨機數產生器所產生的隨機數的品質能被大幅改善。尤其,即使隨機數產生器的動態熵元的品質較低,只要動態熵位元BDYN1及BDYN2的至少一者被使用,補種判定以及隨機本質保留機制即能如上所述地在具有動態熵的好處的情況下來進行,且隨機數產生器依然能輸出高品質的隨機數。另外,隨機數的場域能被大幅地延展,因此相較於相關技術,本發明的基於偽隨機數產生模式產生的隨機數的品質能被大幅地改善。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:隨機數產生器
20:動態熵源
50:隨機數提取器
51:第一線性反饋移位暫存器
52:新級產生器
53:補種控制電路
54:處理電路
100:基於PUF的隨機本質產生器
R1,R2:暫存器
OUTPREG,OUTR1,OUTR2,OUTLFSR1,OUTRNG:隨機數
BDYN1,BDYN2:動態熵位元
MODECTRL:模式控制訊號
ENRESEED1:補種致能訊號
Claims (21)
- 一種隨機數產生器,包含:一第一級產生器,用來輸出複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,其中該第一初步隨機數是在一第一時間點被輸出,以及該第二初步隨機數是在一第二時間點被輸出;以及一第二級產生器,耦接至該第一級產生器,用來至少依據該第一初步隨機數產生一最終輸出,其中該第二級產生器包含:一補種(reseed)電路,用來產生一補種訊號,其中該補種訊號用來控制是否依據該第二初步隨機數產生該最終輸出;其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的一目前資料週期產生該最終輸出時,該第一級產生器保留該第二初步隨機數以用來於該第二級產生器的下個資料週期產生該最終輸出。
- 如申請專利範圍第1項所述之隨機數產生器,另包含:一動態熵(entropy)源,用來提供一第一動態熵位元以及一第二動態熵位元;其中在一真隨機數產生(true random number generating,TRNG)模式的期間,該第一級產生器用來依據該第二動態熵位元輸出該複數個初步隨機數,且該第二級產生器的該補種電路用來依據該第一動態熵位元產生該補種訊號。
- 如申請專利範圍第1項所述之隨機數產生器,其中該第二級產生器另包含: 一線性反饋移位暫存器(linear feedback shift register,LFSR),用來輸出一線性反饋移位暫存器隨機數;以及一處理電路,用來依據該第一初步隨機數以及該線性反饋移位暫存器隨機數產生該最終輸出;其中當該補種訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第二初步隨機數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該補種訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第二初步隨機數輸出該線性反饋移位暫存器隨機數。
- 如申請專利範圍第1項所述之隨機數產生器,其中該第一級產生器包含:一靜態熵陣列,用來分別依據一第一位址、一第二位址以及一第三位址輸出一第一靜態熵數、一第二靜態熵數以及一第三靜態熵數;以及一刷新(refresh)電路,用來產生一刷新訊號;其中該第一級產生器至少依據該第一靜態熵數以及該第二靜態熵數產生該複數個初步隨機數,且該刷新訊號用來控制是否依據該第三靜態熵數產生該複數個初步隨機數的任一者。
- 如申請專利範圍第4項所述之隨機數產生器,其中該第一級產生器另包含:一線性反饋移位暫存器(linear feedback shift register,LFSR),用來輸出一線性反饋移位暫存器隨機數;以及一處理電路,用來依據該第一靜態熵數、該第二靜態熵數以及該線性反饋 移位暫存器隨機數產生該複數個初步隨機數;其中當該刷新訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第三靜態熵數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該刷新訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第三靜態熵數輸出該線性反饋移位暫存器隨機數。
- 如申請專利範圍第5項所述之隨機數產生器,其中該第一級產生器另包含:一位址計數器,用來產生該第一位址、該第二位址以及該第三位址;其中該第一位址以及該第二位址於該第一級產生器的多個輸出週期的每一者均被刷新,以及該刷新訊號另用來控制是否刷新該第三位址。
- 如申請專利範圍第6項所述之隨機數產生器,其中該第一級產生器另包含:一時脈控制電路,用來依據該補種訊號產生一內部時脈,其中該刷新電路、該位址計數器以及該線性反饋移位暫存器依據該內部時脈運作;其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的該目前資料週期產生該最終輸出時,該時脈控制電路除能(disable)該內部時脈以停止該刷新電路、該位址計數器以及該線性反饋移位暫存器的運作,以保留該第二初步隨機數。
- 如申請專利範圍第4項所述之隨機數產生器,其中該靜態熵陣列藉由將從該靜態熵陣列中以一第一方向排列的一第一組靜態熵單元讀取的資料收集為一組以輸出該第一靜態熵數,該靜態熵陣列藉由將從該靜態熵陣 列中以一第二方向排列的一第二組靜態熵單元讀取的資料收集為一組以輸出該第二靜態熵數,以及該靜態熵陣列藉由將從該靜態熵陣列中以一第三方向排列的一第三組靜態熵單元讀取的資料收集為一組以輸出該第三靜態熵數,其中該第一組靜態熵單元、該第二組靜態熵單元以及該第三組靜態熵單元分別對應於該第一位址、該第二位址以及該第三位址。
- 如申請專利範圍第8項所述之隨機數產生器,其中該第一組靜態熵單元是以垂直方向排列,該第二組靜態熵單元是以水平方向排列,以及該第三組靜態熵單元是以歪斜方向排列。
- 如申請專利範圍第4項所述之隨機數產生器,其中該靜態熵陣列是一物理不可複製功能(Physical Unclonable Function,PUF)陣列或儲存有自一物理不可複製功能陣列讀取的資料的一暫存器陣列。
- 一種隨機數產生器,包含:一動態熵(entropy)源,用來提供一第一動態熵位元;一第一級產生器,包含:一靜態熵源,用來分別依據一第一位址以及一第二位址輸出一第一靜態熵數以及一第二靜態熵數;以及一刷新(refresh)電路,用來產生一刷新訊號;其中該第一級產生器至少依據該第一靜態熵數產生複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,以及該刷新訊號用來控制是否依據該第二靜態熵數產生該複數個初步隨機數的任一者; 其中該第一初步隨機數是在一第一時間點被產生,以及該第二初步隨機數是在該第一時間點以後的一第二時間點被產生;以及一第二級產生器,耦接至該第一級產生器,用來至少依據該第一初步隨機數產生一最終輸出,其中該第二級產生器包含:一補種(reseed)電路,用來依據該第一動態熵位元產生一補種訊號;其中該補種訊號用來控制是否依據該第二初步隨機數產生該最終輸出。
- 如申請專利範圍第11項所述之隨機數產生器,其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的一目前資料週期產生該最終輸出時,該第一級產生器保留該第二初步隨機數以用來於該第二級產生器的下個資料週期產生該最終輸出。
- 如申請專利範圍第11項所述之隨機數產生器,其中該第一級產生器另用來依據該動態熵源提供的一第二動態熵位元產生該複數個初步隨機數,以及該第一動態熵位元異於該第二動態熵位元。
- 如申請專利範圍第11項所述之隨機數產生器,其中該第二級產生器另包含:一線性反饋移位暫存器(linear feedback shift register,LFSR),用來輸出一線性反饋移位暫存器隨機數;以及一處理電路,用來藉由計算該第一初步隨機數以及該線性反饋移位暫存器隨機數以產生該最終輸出;其中當該補種訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使 用該第二初步隨機數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該補種訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第二初步隨機數輸出該線性反饋移位暫存器隨機數。
- 如申請專利範圍第14項所述之隨機數產生器,其中:於該隨機數產生器的一初始程序的期間,該補種電路於該第二級產生器的多個資料週期依據該第一動態熵位元產生該補種訊號;以及於該初始程序以後的該隨機數產生器的一輸出程序的期間,該隨機數產生器依據一模式控制訊號決定是運作在一真隨機數產生(true random number generating,TRNG)模式或是一偽隨機數產生(pseudo random number generating,PRNG)模式下。
- 如申請專利範圍第11項所述之隨機數產生器,其中該第一級產生器另包含:一線性反饋移位暫存器(linear feedback shift register,LFSR),用來輸出一線性反饋移位暫存器隨機數;以及一處理電路,用來依據該第一靜態熵數以及該線性反饋移位暫存器隨機數產生該複數個初步隨機數;其中當該刷新訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第二靜態熵數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該刷新訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第二靜態熵數輸出該線性反饋移位暫存器隨機數。
- 如申請專利範圍第16項所述之隨機數產生器,其中該第一級產生器另包含:一位址計數器,用來產生該第一位址以及該第二位址;其中該第一位址於該第一級產生器的多個輸出週期的每一者均被刷新,以及該刷新訊號另用來控制是否刷新該第二位址。
- 如申請專利範圍第17項所述之隨機數產生器,其中該第一級產生器另包含:一時脈控制電路,用來依據該補種訊號產生一內部時脈,其中該刷新電路、該位址計數器以及該線性反饋移位暫存器是依據該內部時脈運作;其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的一目前資料週期產生該最終輸出時,該時脈控制電路除能(disable)該內部時脈以停止該刷新電路、該位址計數器以及該線性反饋移位暫存器的運作,以保留該第二初步隨機數。
- 如申請專利範圍第11項所述之隨機數產生器,其中該靜態熵源是用一靜態熵陣列實施,該靜態熵陣列藉由將從該靜態熵陣列中以一第一方向排列的一第一組靜態熵單元讀取的資料收集為一組以輸出該第一靜態熵數,以及該靜態熵陣列藉由將從該靜態熵陣列中以一第二方向排列的一第二組靜態熵單元讀取的資料收集為一組以輸出該第二靜態熵數;其中:該第一組靜態熵單元以及該第二組靜態熵單元分別對應於該第一位址以及該第二位址;以及該第一方向以及該第二方向的任一者代表一垂直方向、一水平方向以 及一歪斜方向的其中一者,以及該第一組靜態熵單元以及該第二組靜態熵單元是以相異的方向排列。
- 如申請專利範圍第19項所述之隨機數產生器,其中該靜態熵源另用來藉由將從該靜態熵陣列中以一第三方向排列的一第三組靜態熵單元讀取的資料收集為一組,以依據一第三位址輸出一第三靜態熵數,該第三方向代表該垂直方向、該水平方向以及該歪斜方向的其中一者,其中該第一組靜態熵單元、該第二組靜態熵單元以及該第三組靜態熵單元是以相異的方向排列;其中該第一級產生器至少依據該第一靜態熵數以及該第三靜態熵數產生該複數個初步隨機數。
- 如申請專利範圍第11項所述之隨機數產生器,其中該第一級產生器另用來輸出該複數個初步隨機數的一第三初步隨機數,以及該最終輸出是至少依據該第一初步隨機數以及該第三初步隨機數產生,其中該第三初步隨機數是在該第二時間點以前的一第三時間點被產生。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163151020P | 2021-02-18 | 2021-02-18 | |
| US63/151,020 | 2021-02-18 | ||
| US17/496,782 US12493449B2 (en) | 2021-02-18 | 2021-10-08 | Random number generator |
| US17/496,782 | 2021-10-08 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202234852A TW202234852A (zh) | 2022-09-01 |
| TWI798982B true TWI798982B (zh) | 2023-04-11 |
Family
ID=78617298
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110145615A TWI798982B (zh) | 2021-02-18 | 2021-12-07 | 隨機數產生器 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12493449B2 (zh) |
| EP (1) | EP4047473A1 (zh) |
| JP (1) | JP7312973B2 (zh) |
| CN (1) | CN114978470B (zh) |
| TW (1) | TWI798982B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12431185B2 (en) * | 2024-01-02 | 2025-09-30 | Nanya Technology Corporation | Memory devices including mechanism of protecting a vulnerable word line based on the previous refreshed word lines and relevant methods |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140040338A1 (en) * | 2011-04-05 | 2014-02-06 | Intrinsic Id B.V. | Random number generating system based on memory start-up noise |
| US10078462B2 (en) * | 2012-05-18 | 2018-09-18 | Cornell University | Methods and systems for providing hardware security functions using flash memories |
| US20180287793A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Random number generation with unstable bit states of non-volatile memory |
| TW201901675A (zh) * | 2017-05-22 | 2019-01-01 | 旺宏電子股份有限公司 | 具有物理不可複製功能及隨機數產生器的電路及其操作方法 |
| TW202105168A (zh) * | 2019-07-25 | 2021-02-01 | 熵碼科技股份有限公司 | 亂數產生器及產生亂數輸出的方法 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09179726A (ja) | 1995-12-25 | 1997-07-11 | Nec Corp | 擬似乱数発生装置 |
| JP2002278749A (ja) | 2001-03-15 | 2002-09-27 | Le Tec:Kk | 乱数発生装置 |
| JPWO2005073842A1 (ja) | 2004-01-30 | 2007-09-13 | 日本ビクター株式会社 | 擬似乱数生成装置および擬似乱数生成プログラム |
| US7496616B2 (en) | 2004-11-12 | 2009-02-24 | International Business Machines Corporation | Method, apparatus and system for resistance to side channel attacks on random number generators |
| US8595277B2 (en) * | 2008-02-13 | 2013-11-26 | Infineon Technologies Ag | Hybrid random number generator |
| US8131789B2 (en) | 2008-03-28 | 2012-03-06 | Atmel Corporation | True random number generator |
| CN102707923A (zh) | 2011-04-25 | 2012-10-03 | 中国电子科技集团公司第三十八研究所 | 一种伪随机数生成电路及伪随机数产生方法 |
| CN103188075B (zh) | 2013-02-01 | 2016-01-06 | 广州大学 | 一种密钥和真随机数发生器及生成密钥和真随机数的方法 |
| CN106293617B (zh) | 2016-08-12 | 2018-11-09 | 上海坚芯电子科技有限公司 | 真随机数发生器 |
| US11055065B2 (en) | 2018-04-18 | 2021-07-06 | Ememory Technology Inc. | PUF-based true random number generation system |
| US11294640B2 (en) | 2019-03-13 | 2022-04-05 | Ememory Technology Inc. | Random number generator |
| CN110413257B (zh) | 2019-07-30 | 2021-04-23 | 北京智芯微电子科技有限公司 | 随机数产生电路 |
-
2021
- 2021-10-08 US US17/496,782 patent/US12493449B2/en active Active
- 2021-11-12 EP EP21207981.8A patent/EP4047473A1/en active Pending
- 2021-12-02 JP JP2021195812A patent/JP7312973B2/ja active Active
- 2021-12-07 TW TW110145615A patent/TWI798982B/zh active
-
2022
- 2022-02-10 CN CN202210123872.1A patent/CN114978470B/zh active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140040338A1 (en) * | 2011-04-05 | 2014-02-06 | Intrinsic Id B.V. | Random number generating system based on memory start-up noise |
| US10078462B2 (en) * | 2012-05-18 | 2018-09-18 | Cornell University | Methods and systems for providing hardware security functions using flash memories |
| US20180287793A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Random number generation with unstable bit states of non-volatile memory |
| TW201901675A (zh) * | 2017-05-22 | 2019-01-01 | 旺宏電子股份有限公司 | 具有物理不可複製功能及隨機數產生器的電路及其操作方法 |
| TW202105168A (zh) * | 2019-07-25 | 2021-02-01 | 熵碼科技股份有限公司 | 亂數產生器及產生亂數輸出的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7312973B2 (ja) | 2023-07-24 |
| US20220261221A1 (en) | 2022-08-18 |
| TW202234852A (zh) | 2022-09-01 |
| JP2022126584A (ja) | 2022-08-30 |
| EP4047473A1 (en) | 2022-08-24 |
| US12493449B2 (en) | 2025-12-09 |
| CN114978470A (zh) | 2022-08-30 |
| CN114978470B (zh) | 2025-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10490252B2 (en) | Apparatus and methods for refreshing memory | |
| US10573370B2 (en) | Apparatus and methods for triggering row hammer address sampling | |
| EP3709157B1 (en) | Random number generator | |
| JP4248950B2 (ja) | 乱数発生装置 | |
| CN114121124A (zh) | 用于更新存储器中的散列键的设备、系统和方法 | |
| US11309018B2 (en) | Stable memory cell identification for hardware security | |
| CN113539334A (zh) | 用于物理不可克隆函数的测量机制 | |
| US11586418B2 (en) | Random number generator, random number generating circuit, and random number generating method | |
| TWI798982B (zh) | 隨機數產生器 | |
| CN113535123A (zh) | 具有通过位线预充电的物理不可克隆函数 | |
| US10922055B2 (en) | Random number generator and method for generating random numbers | |
| CN109656514B (zh) | 随机数产生系统及其随机数产生方法 | |
| US12100472B2 (en) | Integrated circuit and memory device including sampling circuit | |
| Mao et al. | Zero-bias true random number generator using LFSR-based scrambler | |
| US7668893B2 (en) | Data generator having linear feedback shift registers for generating data pattern in forward and reverse orders | |
| TWI662471B (zh) | 真實隨機數產生裝置及其產生方法 | |
| TWI729938B (zh) | 記憶體裝置以及記憶體的測試方法 | |
| WO2025085065A1 (en) | Circuit hardware architecture configured to generate randomness | |
| TWI634479B (zh) | 隨機數產生系統及其隨機數產生方法 | |
| KR100656433B1 (ko) | 로우 어드레스 카운팅 장치 | |
| CN117116320A (zh) | 刷新电路、刷新方法、存储器及存储系统 |