TW202234852A - 隨機數產生器 - Google Patents

隨機數產生器 Download PDF

Info

Publication number
TW202234852A
TW202234852A TW110145615A TW110145615A TW202234852A TW 202234852 A TW202234852 A TW 202234852A TW 110145615 A TW110145615 A TW 110145615A TW 110145615 A TW110145615 A TW 110145615A TW 202234852 A TW202234852 A TW 202234852A
Authority
TW
Taiwan
Prior art keywords
random number
generator
entropy
shift register
feedback shift
Prior art date
Application number
TW110145615A
Other languages
English (en)
Other versions
TWI798982B (zh
Inventor
游鈞恆
邵啓意
莊愷莘
吳孟益
Original Assignee
熵碼科技股份有限公司
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 熵碼科技股份有限公司 filed Critical 熵碼科技股份有限公司
Publication of TW202234852A publication Critical patent/TW202234852A/zh
Application granted granted Critical
Publication of TWI798982B publication Critical patent/TWI798982B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3271Cryptographic 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/3278Cryptographic 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)
  • Pinball Game Machines (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Permanent Magnet Type Synchronous Machine (AREA)

Abstract

本發明提供一種隨機數產生器。隨機數產生器包含一第一級產生器以及一第二級產生器,第一級產生器分別在一第一時間點以及一第二時間點輸出一第一隨機數以及一第二隨機數,以及第二級產生器至少依據第一隨機數產生一最終輸出。尤其,第二級產生器包含一補種電路以用來產生一補種訊號,以控制是否依據第二隨機數產生最終輸出。另外,當第二級產生器在不使用第二隨機數的情況下於一目前資料週期產生最終輸出時,第一級產生器保留第二隨機數以用來於下個資料週期產生最終輸出。

Description

隨機數產生器
本發明是關於隨機數產生機制,尤指一種隨機數產生器。
隨機數產生器被廣泛地使用在電子系統中,以用來實施資訊安全相關的功能。相關技術已提出各種隨機數產生機制以用來產生隨機數,但這些隨機數產生機制存在某些問題。例如,真隨機數產生器需要至少一熵(entropy)源以產生隨機數,但該熵源的關於隨機性的品質典型地不足以通過美國國家標準暨技術研究院(National Institute of Standards and Technology)SP800-90B所定義的測試項目(例如上電測試)。另外,相較於真隨機數產生器,雖然偽隨機數產生器可提供較高的隨機數輸出率,但相關技術中的偽隨機數產生器所產生的隨機數的重複樣態會是需要被解決的問題。
因此,需要一種新穎的隨機數產生器的架構以及相關隨機數產生方法,以改善產生出的隨機數的隨機性相關的品質。
本發明的一目的在於提供一種隨機數產生器,以在沒有副作用或較不會帶來副作用的情況下解決提升隨機數產生器的整體效能。
本發明至少一實施例提供一種隨機數產生器,其中隨機數產生器包含一第一級產生器以及耦接至第一級產生器的一第二級產生器。第一級產生器是用來輸出複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,其中第一初步隨機數是在一第一時間點被輸出,以及第二初步隨機數是在一第二時間點被輸出。第二級產生器是用來至少依據第一初步隨機數產生一最終輸出,尤其第二級產生器包含一補種(reseed)電路以用來產生一補種訊號,其中補種訊號用來控制是否依據第二初步隨機數產生最終輸出。另外,當第二級產生器在不使用第二初步隨機數的情況下於第二級產生器的一目前資料週期產生最終輸出時,第一級產生器保留第二初步隨機數以用來於第二級產生器的下個資料週期產生最終輸出。
本發明至少一實施例提供一種隨機數產生器,其中隨機數產生器包含一動態熵(entropy)源、一第一級產生器以及一第二級產生器。動態熵源是用來提供一第一動態熵位元。第一級產生器包含一靜態熵源以及一刷新(refresh)電路。靜態熵源是用來分別依據一第一位址以及一第二位址輸出一第一靜態熵數以及一第二靜態熵數,以及刷新電路用來產生一刷新訊號,其中第一級產生器至少依據第一靜態熵數產生複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,以及刷新訊號用來控制是否依據第二靜態熵數產生複數個初步隨機數的任一者。尤其,第一初步隨機數是在一第一時間點被產生,以及第二初步隨機數是在第一時間點以後的一第二時間點被產生。第二級產生器耦接至第一級產生器,並且是用來至少依據第一初步隨機數產生一最終輸出。第二級產生器包含一補種電路以用來依據第一動態熵位元產生一補種訊號,其中補種訊號用來控制是否依據第二初步隨機數產生最終輸出。
藉助於第一級產生器的輸出控制機制,本發明的實施例所提供的隨機數產生器所產生的隨機數的品質能被大幅地改善。另外,隨機數的場域(field)能被大幅地延展。因此,相較於相關技術的偽隨機數產生器,當本發明的隨機數產生器運作在一偽隨機數模式下時,自隨機數產生器輸出的隨機數能具有較佳的品質。
第1圖為依據本發明一實施例之一隨機數產生器10的示意圖。如第1圖所示,隨機數產生器10可包含一動態熵(entropy)源20、一第一級產生器諸如一基於物理不可複製功能(Physical Unclonable Function,簡稱PUF)的隨機本質(essence)產生器100 (下稱PREG 100)、以及一第二級產生器諸如一隨機數提取器50,其中隨機數提取器50耦接至動態熵源20以及PREG 100。動態熵源20是用來提供至少一動態熵位元,例如提供一動態熵位元B DYN1給隨機數提取器50並且提供一動態熵位元B DYN2給PREG 100。自動態熵源20輸出的動態熵位元可動態地以隨機且不可預測的方式在一第一邏輯值與一第二邏輯值之間變動(例如在「0」與「1」之間變動)。動態熵源20可藉由任何能輸出不可預測且隨機的訊號的元件來實施。動態熵源20的例子可包含(但不限於)熱雜訊取樣電路、時序擾動取樣電路(例如環形振盪器)、靜態隨機存取記憶體單元的亞穩態等等。
在某些實施例中,動態熵位元B DYN1以及動態熵位元B DYN2可為互相一致的(例如動態熵元20對PREG 100以及隨機數提取器50均提供相同的動態熵位元)。在某些實施例中,動態熵位元B DYN1以及動態熵位元B DYN2可互相不同,而即使在動態熵位元B DYN1以及動態熵位元B DYN2的其中一者被破解的情況下,只要另一者未被破解,就能有至少一個動態熵位元涉及其中並從而確保隨機數產生器10的整體運作的隨機性。例如,當動態熵位元B DYN1被破解但動態熵位元B DYN2未被破解時,PREG 100的運作的隨機性(將於後續段落說明)能被確保。又例如,當動態熵位元B DYN2被破解但動態熵位元B DYN1未被破解時,隨機數提取器50的運作的隨機性能被確保。
在本實施例中,PREG 100是用來輸出複數個初步隨機數諸如初步隨機數OUT PREG,其中在一第一時間點被輸出的初步隨機數OUT PREG可作為一第一初步隨機數,以及在一第二時間點被輸出的初步隨機數OUT PREG可作為一第二初步隨機數。隨機數提取器50是用來至少依據第一初步隨機數產生一最終輸出諸如隨機數OUT RNG。如第1圖所示,隨機數提取器50可包含暫存器R1及R2、一第一線性反饋移位暫存器(linear feedback shift register, LFSR)51(在第1圖中標示為「LFSR-1」以求簡明),一新級產生器52諸如一互斥或(exclusive OR)邏輯、一補種電路諸如一補種控制電路53、以及一處理電路54(其以標示有「+」在其內的圓圈來表示以求簡明)。
例如,在一時間點t = 1(例如在PREG 100的一第一輸出週期),自PREG 100輸出的隨機數OUT PREG為RE[1];在一時間點t = 2(例如在PREG 100的一第二輸出週期),自PREG 100輸出的隨機數OUT PREG為RE[2],以及RE[1]被儲存在暫存器R1(例如自暫存器R1輸出的隨機數OUT R1為RE[1]);以及在一時間點t = 3(例如在PREG 100的一第三輸出週期),自PREG 100輸出的隨機數OUT PREG為RE[3],RE[2]被儲存在暫存器R1(例如自暫存器R1輸出的隨機數OUT R1為RE[2]),以及RE[1]被儲存在暫存器R2(例如自暫存器R2輸出的隨機數OUT R2為RE[1])。在時間點t = 3的隨機數OUT R1及OUT R2(例如RE[1]及RE[2])可作為第一初步隨機數的例子,以及在時間點t = 3的隨機數OUT PREG(例如RE[3])可作為第二初步隨機數的例子。
補種控制電路53是用來依據動態熵位元B DYN1產生一補種致能(enable)訊號EN RESEED1。例如,補種控制電路53可依據動態熵位元B DYN1以及隨機數OUT RNG產生補種致能訊號EN RESEED1,尤其補種致能訊號EN RESEED1可為動態熵位元B DYN1與隨機數OUT RNG中的一預定位元(例如隨機數OUT RNG的第L個位元,其中L為正整數)的一互斥或結果,但本發明不限於此。基於補種控制電路53的處理,低品質的動態熵(例如「0」與「1」具有不平衡的出現率)諸如動態熵位元B DYN1可與高品質的隨機位元(例如「0」與「1」具有大致相等的出現率)諸如隨機數OUT RNG中的第L個位元作混合,以產生帶有動態熵的高品質隨機控制位元涉及其中。
在本實施例中,補種致能訊號EN RESEED1是用來控制是否依據第二初步隨機數產生隨機數OUT RNG。詳細來說,補種致能訊號EN RESEED1是用來控制是否用第二初步隨機數對第一線性反饋移位暫存器51進行補種以產生一輸出(例如隨機數OUT LFSR1)。需注意的是,線性反饋移位暫存器的初始狀態可由一初始種子決定,其輸出位元是其先前狀態的線性函數,並且該線性函數較佳為藉由一本原多項式(primitive polynomial)來定義,這使得線性反饋移位暫存器的狀態(例如線性反饋移位暫存器的輸出)可對應於該本原多項式的一預定規則被切換。第一線性反饋移位暫存器51可作為線性反饋移位暫存器的例子,並且是用來輸出一線性反饋移位暫存器隨機數諸如隨機數OUT LFSR1。當補種致能訊號EN RESEED1顯示為一第一邏輯值(例如「0」)時,第一線性反饋移位暫存器51可在不使用第二初步隨機數諸如RE[3]的情況下依據一第一預定規則(對應於一第一本原多項式的規則)輸出隨機數OUT LFSR1,換言之,第一線性反饋移位暫存器51不會被補種。當補種致能訊號EN RESEED1顯示為一第二邏輯值(例如「1」),第一線性反饋移位暫存器51可依據第二初步隨機數輸出隨機數OUT LFSR1。詳細來說,新級產生器52可依據第二初步隨機數諸如RE[3]以及隨機數OUT RNG產生一新種子(例如新種子可為RE[3]與隨機數OUT RNG的互斥或結果),以及新種子可在補種致能訊號EN RESEED1顯示為該第二邏輯值(例如「1」)時被寫入至第一線性反饋移位暫存器51以作為其下個狀態,其中此運作可稱為對第一線性反饋移位暫存器51進行補種。另外,處理電路54是用來依據隨機數OUT R1、OUT R2及OUT LFSR1產生隨機數OUT RNG。例如,處理電路54可對隨機數OUT R1及OUT R2進行互斥或運作以產生一初步互斥或結果,再接著對此初步互斥或結果及隨機數OUT LFSR1進行互斥或運作以產生隨機數OUT RNG,但本發明不限於此。
在本實施例中,於隨機數產生器10的一初始程序的期間,補種控制電路53於隨機數提取器50的多個資料週期依據動態熵位元B DYN1產生補種致能訊號EN RESEED1。於初始程序以後的隨機數產生器10的一輸出程序的期間,隨機數產生器10依據一模式控制訊號MODE CTRL決定是運作在一真隨機數產生(true random number generating, TRNG)模式或是一偽隨機數產生(pseudo random number generating, PRNG)模式下。詳細來說,PREG 100以及補種控制電路53可接收模式控制訊號MODE CTRL以用來決定是運作在偽隨機數產生模式或是真隨機數產生模式。當隨機數產生器10運作在真隨機數產生模式下時(例如當模式控制訊號MODE CTRL顯示為邏輯值「0」時),補種控制電路53可如上所述依據動態熵位元B DYN1產生補種致能訊號EN RESEED1。當隨機數產生器10運作在偽隨機數產生模式下時(例如當模式控制訊號MODE CTRL顯示為邏輯值「1」時),補種控制電路53可在不使用動態熵位元B DYN1的情況下產生補種致能訊號EN RESEED1(例如補種控制電路53可將上述隨機數OUT RNG中的該預定位元輸出為補種致能訊號EN RESEED1)。
在某些實施例中,隨機數產生器10內的品質檢查電路(未顯示)可耦接至處理電路54以接收隨機數OUT RNG並且檢查隨機數OUT RNG的品質(例如檢查隨機數OUT RNG的漢明權重(hamming weight)是否符合預定標準)。若隨機數OUT RNG的漢明權重無法符合該預定標準,品質檢查電路可發出一警告至隨機數產生器10的外部,以通知耦接至隨機數產生器10的處理器此時的隨機數OUT RNG是不可用的。在某些實施例中,當耦接至隨機數產生器10的處理器接收到從該品質檢查電路發出的警告時,該處理器可傳送一重置(reset)訊號以將隨機數產生器10重置或重開機,但本發明不限於此。
第2圖為依據本發明一實施例之第1圖所示之隨機數產生器10的運作的工作流程,其中該工作流程是可應用於(applicable to)第1圖所示之隨機數產生器10。需注意的是,一或多個步驟可在第2圖所示之工作流程中被新增、刪除或修改,且若不妨礙整體結果的達成,這些步驟並非必須完全依照第2圖所示之順序執行。例如,上述的品質檢查若有需要可被新增至該工作流程中。
在步驟S21中,於隨機數產生器10被上電後,隨機數產生器10可利用具有動態熵的初始補種判定以使第一線性反饋移位暫存器51的輸出逐級地發散(diverge),其中此步驟可為上述初始程序的例子,並且在第2圖中標示為「線性反饋移位暫存器級發散:使用動態熵的初始補種判定」以求簡明。
在步驟S22中,於第一線性反饋移位暫存器51的輸出的場域以被延展至某個程度後,隨機數產生器10可依據模式控制訊號MODE CTRL決定是運作在偽隨機數產生模式或是真隨機數產生模式下,其中此步驟在第2圖中是標示為「模式選擇:PRNG/TRNG」以求簡明。若選擇偽隨機數產生模式(第2圖中標示為「PRNG」以求簡明),該工作流程進入步驟S23;以及若選擇真隨機數產生模式(第2圖中標示為「TRNG」以求簡明),該工作流程進入步驟S25。步驟S22及其後續步驟可作為上述輸出程序的例子。
在步驟S23中,隨機數產生器10可開始輸出偽隨機數。
在步驟S24中,隨機數產生器10可控制補種控制電路53在不使用動態熵位元B DYN1的情況下產生補種致能訊號EN RESEED1(例如將隨機數OUT RNG中的該預定位元作為補種致能訊號EN RESEED1),其中此步驟被標示為「不具有動態熵的補種判定」。
在步驟S25中,隨機數產生器10可開始輸出真隨機數。
在步驟S26中,隨機數產生器10可控制補種控制電路53依據動態熵位元B DYN1產生補種致能訊號EN RESEED1(例如將動態熵位元B DYN1與隨機數OUT RNG中的該預定位元的互斥或結果作為補種致能訊號EN RESEED1),其中此步驟被標示為「具有動態熵的補種判定」。
第3圖為依據本發明一實施例之真隨機數產生模式的一發散方案。假設S0代表第一線性反饋移位暫存器51的初始種子,而此初始種子可分別因應未被補種的情況與有被補種的情況發散為兩個狀態S1a及S1b。當第一線性反饋移位暫存器51的狀態為S1a時,狀態S1a可分別因應未被補種的情況與有被補種的情況發散為兩個狀態S2a及S2b。當第一線性反饋移位暫存器51的狀態為S1b時,狀態S1b可分別因應未被補種的情況與有被補種的情況發散為兩個狀態S2c及S2d。因此,在N級的發散後,初始種子S0可發散為2 N個狀態諸如SNa至SNb,並且隨機數產生器10可開始輸出隨機數。當第一線性反饋移位暫存器51的狀態為SNa時,隨機數產生器10的輸出可分別因應未被補種的情況與有被補種的情況發散為兩個狀態T1a及T1b。當第一線性反饋移位暫存器51的狀態為SNb時,隨機數產生器10的輸出可分別因應未被補種的情況與有被補種的情況發散為兩個狀態T1c及T1d。隨機數T2a~T2h可經類似的方式發散得到,為簡明起見在此不重覆贅述。如第3圖所示,隨機數產生器10在真隨機數產生模式下能藉助於上述補種判定機制來持續地延展其輸出的場域。
第4圖為依據本發明一實施例之偽隨機數產生模式的一發散方案,其中在偽隨機數產生模式下的初始N級發散的細節與真隨機數產生模式相同,為簡明起見在此不重覆贅述。在該初始N級發散完成後,隨機數產生器10可停止利用動態熵位元B DYN1控制是否對第一線性反饋移位暫存器51進行補種。因此,該補種判定僅由靜態熵來決定,其中此靜態熵可與該初始N級發散的發散結果相關,而在隨機數產生器10停止利用動態熵位元B DYN1控制是否對第一線性反饋移位暫存器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個資料週期)產生隨機數OUT RNG時,PREG 100可保留第二初步隨機數(例如RE[3])以用於在隨機數提取器50的下個資料週期(例如第(T + 1)個資料週期)產生隨機數OUT RNG
第5圖為依據本發明一實施例之PREG 100在不具備隨機本質保留機制的情況下(例如在隨機本質保留機制被禁能(disable)的情況下)的輸出方案。為便於理解低品質的動態熵位元B DYN2帶來的影響,假設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)產生隨機數OUT RNG,RE[4]、RE[5]及RE[6]是用來在一第二資料週期(例如T = 2)產生隨機數OUT RNG,以及RE[7]、RE[8]及RE[9]是用來在一第三資料週期(例如T = 3)產生隨機數OUT RNG。在隨機數產生器10的第二次上電後,PREG 100會因為動態熵位元B DYN2品質低而產生與第一次上電時類似的輸出或相同的輸出。也就是說,在第一次上電後的第T個週期之用來產生隨機數OUT RNG的成分可與在第二次上電後的第T個週期之用來產生隨機數OUT RNG的成分類似或一致,而隨機數OUT RNG則因此無法通過上電測試。因此,隨機本質保留機制較佳為被致能的。
第6圖為依據本發明一實施例之一種隨機數產生方法的工作流程,其中該工作流程是可應用於一隨機數產生器(例如第1圖所示之隨機數產生器10)。需注意的是,一或多個步驟可在第6圖所示之工作流程中被新增、刪除或修改,且若能不妨礙整體結果的達成,這些步驟並非必須完全依照第6圖所示之順序執行。
在步驟S61中,隨機數產生器可利用動態熵源提供第一動態熵位元。
在步驟S62中,隨機數產生器可利用第一級產生器輸出初步隨機數,其中於第一時間點輸出的初步隨機數是作為第一初步隨機數,以及於第二時間點輸出的初步隨機數是作為一第二初步隨機數。
在步驟S63中,隨機數產生器可利用一第二級產生器至少依據第一初步隨機數產生一最終隨機數。
在步驟S64中,隨機數產生器可利用一補種電路以依據第一動態熵位元產生一補種訊號,其中補種訊號是用來控制是否依據第二初步隨機數產生最終隨機數。
在步驟S65中,當第二級產生器在不使用第二初步隨機數的情況下於第二級產生器的一目前資料週期產生最終隨機數,隨機數產生器可利用第一級產生器保留第二初步隨機數以用來在第二級產生器的下個資料週期產生最終隨機數。
為便於理解,請參考第7圖,其為依據本發明一實施例之與第1圖所示之隨機數產生器10相關的某些訊號(例如隨機數產生器10的主時脈CLK、補種致能訊號EN RESEED1、隨機數OUT LFSR1、OUT PREG及OUT RNG、以及動態熵位元B DYN1)的示意圖。需注意的是,隨機數OUT RNG是另外藉由隨機數提取器50的一輸出時脈來同步,使得隨機數OUT RNG是主時脈CLK的每四個週期被更新一次,其中在輸出時脈的目前資料週期產生的隨機數OUT RNG是在輸出時脈的下個資料週期被輸出。在隨機數產生器10被上電後且在主時脈CLK開始切換以前,隨機數OUT LFSR1是在一初始狀態(例如第一線性反饋移位暫存器51的該初始種子)。動態熵位元B DYN1可在「0」及「1」之間以隨機的方式切換(在第7圖中標示為「H/L」以便於理解)。在第7圖的實施例中,由於補種致能訊號EN RESEED1被維持在「0」,自第一線性反饋移位暫存器51輸出的隨機數OUT LFSR1是在不進行任何補種運作的情況下依據該第一預定規則(例如第一線性反饋移位暫存器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],其中隨機數OUT RNG(例如在標記為「t = 5」的週期被輸出的隨機數RN1)是在不使用隨機數RE[3]的情況下於一目前資料週期被產生,並且PREG 100能如第7圖所示地保留隨機數RE[3],以容許隨機數RE[3]被用來在下個資料週期產生隨機數OUT RNG
請參考第8圖,其為依據本發明另一實施例之與第1圖所示之隨機數產生器10相關的某些訊號(例如隨機數產生器10的主時脈CLK、補種致能訊號EN RESEED1、隨機數OUT LFSR1、OUT PREG及OUT RNG、以及動態熵位元B DYN1)的示意圖。相較於第7圖所示之實施例,第8圖所示之補種致能訊號EN RESEED1在標示「t = 4」的週期顯示為「1」,而第一線性反饋移位暫存器51因此被補種並且在標示「t = 5」的週期輸出隨機數L5’,其中隨機數OUT LFSR1在標示「t = 6」及「t = 7」的週期時分別為L6’及L7’。另外,由於第8圖所示之補種致能訊號EN RESEED1在標示「t = 4」的週期顯示為「1」,這表示隨機數OUT RNG(例如在標示「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],其中假設補種致能訊號EN RESEED1在第一資料週期顯示為「1」,這表示隨機數OUT LFSR1是依據隨機數RE[3]被產生的。因此,在第一資料週期的隨機數OUT RNG是依據隨機數RE[1]及RE[2](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUT LFSR1(其是依據隨機數RE[3]被產生)。在第一次上電後的一第二資料週期(例如T = 2),PREG 100另輸出隨機數RE[4]、RE[5]及RE[6],其中假設補種致能訊號EN RESEED1在第二資料週期顯示為「0」,這表示隨機數OUT RNG是在不使用隨機數RE[6]的情況下被產生,而PREG 100可保留隨機數RE[6]以供在第一次上電後的一第三資料週期(例如T = 3)使用。因此,在第二資料週期隨機數OUT RNG是依據隨機數RE[4]及RE[5](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUT LFSR1(其是在不使用隨機數RE[6]的情況下被產生)。在第一次上電後的第三資料週期,PREG 100另輸出隨機數RE[7]及RE[8],其中假設補種致能訊號EN RESEED1在第三資料週期顯示為「1」,這表示隨機數OUT LFSR1是依據隨機數RE[8]被產生。因此,在第三資料週期的隨機數OUT RNG是依據隨機數RE[6]及RE[7](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUT LFSR1(其是依據隨機數RE[8]被產生)。
相較之下,在第二次上電後的一第一資料週期(例如T = 1),PREG 100輸出隨機數RE[1]、RE[2]及RE[3],其中假設補種致能訊號EN RESEED1在第一資料週期顯示為「0」,這表示隨機數OUT RNG是在不使用隨機數RE[3]的情況下被產生的,而PREG 100可保留隨機數RE[3]以供在第二次上電後的一第二資料週期(例如T = 2)使用。因此,在第一資料週期的隨機數OUT RNG是依據隨機數RE[1]及RE[2](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUT LFSR1(其是在不使用隨機數RE[3]的情況下被產生)。在第二次上電後的第二資料週期(例如T = 2),PREG 100另輸出隨機數RE[4]及RE[5],其中假設補種致能訊號EN RESEED1在第二資料週期顯示為「0」,這表示隨機數OUT RNG是在不使用隨機數RE[5]的情況下被產生的,而PREG 100可保留隨機數RE[5]以供在第二次上電後的一第三資料週期(例如T = 3)使用。因此,在第二資料週期的隨機數OUT RNG是依據隨機數RE[3]及RE[4](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUT LFSR1(其是在不使用隨機數RE[5]的情況下被產生)。在第二次上電後的第三資料週期(例如T = 3),PREG 100另輸出隨機數RE[6]及RE[7],其中假設補種致能訊號EN RESEED1在第二資料週期顯示為「0」,這表示隨機數OUT RNG是在不使用隨機數RE[7]的情況下被產生的,而PREG 100可保留隨機數RE[7]以供在第二次上電後的第三資料週期的下個資料週期使用。因此,在第三資料週期的隨機數OUT RNG是依據隨機數RE[5]及RE[6](其分別對應於暫存器R2及暫存器R1的輸出)以及隨機數OUT LFSR1(其是在不使用隨機數RE[7]的情況下被產生)。
由於在第一次上電後的補種致能訊號EN RESEED1顯示為「1」的時間點可異於在第二次上電後的補種致能訊號EN RESEED1顯示為「1」的時間點,因此用於在第一次上電後的第T個資料週期產生隨機數OUT RNG的成分可異於用於在第二次上電後的第T個資料週期產生隨機數OUT RNG的成分,而隨機數OUT RNG因此能通過上電測試。例如,假設隨機本質保留機制被禁能,在第一次上電與第二次上電時隨機數OUT R2、OUT R1及OUT PREG於第N個資料週期(例如T = N)總是分別為RE[3N - 2]、RE[3N - 1]及RE[3N],因此隨機數OUT RNG在第一次上電與第二次上電的情況下則總是為隨機數RE[3N - 2]及RE[3N - 1]以及隨機數OUT LFSR1的互斥或結果,其中若在第N個資料週期發生補種事件(例如補種致能訊號EN RESEED1顯示為「1」),被用來對第一線性反饋移位暫存器51進行補種的隨機數在第一次上電與第二次上電的情況下則總是為RE[3N]。又例如,假設第9圖的實施例所示之隨機本質保留機制被致能,被用來在第一次上電的第二資料週期(例如T = 2)產生隨機數OUT RNG的隨機數可為RE[4]及RE[5],但被用來在第二次上電的第二資料週期(例如T = 2)產生隨機數OUT RNG的隨機數可為RE[3]及RE[4]。另外,對於某個資料週期來說,被新級產生器52使用的隨機數對於不同次的上電事件來說也是不可預測的。尤其,被用來產生隨機數OUT RNG的隨機數的可能組合的複雜性隨著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是用來依據一第一位址諸如位址ADDR X輸出一第一靜態熵數諸如PUF數PUF X、依據一第二位址諸如位址ADDR Y輸出一第二靜態熵數諸如PUF數PUF Y、以及依據一第三位址諸如位址ADDR Z輸出一第三靜態熵數諸如PUF數PUF Z。位址計數器120是用來產生位址ADDR X、ADDR Y及ADDR Z以控制PUF數PUF X、PUF Y及PUF Z的輸出。為便於理解,請參考第11圖,其為依據本發明一實施例之自PUF陣列110讀取的PUF數PUF X、PUF Y及PUF Z的輸出方案。如第11圖所示,儲存於PUF陣列110的每一PUF單元的資料可用D RA, CA來表示,其中RA可代表列(row)位址,而CA可代表行(column)位址。例如,儲存在PUF陣列110的第一列的資料可為{D 1,1, D 1,2, D 1,3, …, D 1,31, D 1,32};儲存在PUF陣列110的第二列的資料可為{D 2,1, D 2,2, D 2,3, …, D 2,31, D 2,32};而其餘可依此類推,例如儲存在PUF陣列110的第三十二列的資料可為{D 32,1, D 32,2, D 32,3, …, D 32,31, D 32,32}。另外,PUF陣列110可藉由將自以一第一方向排列(例如以垂直方向排列)的一第一組PUF單元讀取的資料收集為一組以輸出PUF數PUF X,而第一組PUF單元是對應於位址ADDR X,其中位址ADDR X的值可用nx來代表,以及與位址ADDR X不同的值對應的PUF數PUF X可用{P X(nx) | nx = 1, 2, 3, …, 32} = {D 1,nx, D 2,nx, D 3,nx, …, D 31,nx, D 32,nx}。PUF陣列110可藉由將自以一第二方向排列(例如以水平方向排列)的一第二組PUF單元讀取的資料收集為一組以輸出PUF數PUF Y,而第二組PUF單元是對應於位址ADDR Y,其中位址ADDR Y的值可用ny來代表,以及與位址ADDR Y不同的值對應的PUF數PUF Y可用{P Y(ny) | ny = 1, 2, 3, …, 32} = {D ny,1, D ny,2, D ny,3, …, D ny,31, D ny,32}。PUF陣列110可藉由將自以一第三方向排列(例如以歪斜方向排列)的一第三組PUF單元讀取的資料收集為一組以輸出PUF數PUF Z,而第三組PUF單元是對應於位址ADDR Z,其中位址ADDR Z的值可用nz來代表,以及與位址ADDR Z不同的值對應的PUF數PUF Z可用{P Z(nz) | nz = 1, 2, 3, …, 32}。例如,P Z(1) = {D 1,1, D 2,2, D 3,3, …, D 31,31, D 32,32},P Z(2) = {D 1,2, D 2,3, D 3,4, …, D 31,32, D 32,1},而其餘可依此類推,例如P Z(32) = {D 1,32, D 2,1, D 3,2, …, D 31,30, D 32,31}。
在第10圖的實施例中,級刷新電路140是用來依據來自動態熵源20的動態熵位元B DYN2產生一刷新訊號,其中刷新訊號的例子可包含一刷新致能訊號EN REFRESH以及一補種致能訊號EN RESEED2,但本發明不限於此。例如,級刷新電路140可依據動態熵位元B DYN2以及隨機數OUT PREG產生刷新訊號(例如刷新致能訊號EN REFRESH以及補種致能訊號EN RESEED2的任一者),尤其刷新訊號可為動態熵位元B DYN2以及隨機數OUT PREG中的一預定位元(例如隨機數OUT PREG的第M個位元,其中M為正整數)的互斥或結果,但本發明不限於此。基於級刷新電路140的處理,具有動態熵參與的高品質隨機控制位元(例如刷新致能訊號EN REFRESH以及補種致能訊號EN RESEED2的任一者)得以被產生。PREG 100至少依據PUF數PUF X及PUF Y產生隨機數OUT PREG,以及刷新訊號(例如補種致能訊號EN RESEED2)是用來控制是否依據PUF數PUF Z產生隨機數OUT PREG。第二線性反饋移位暫存器130可為線性反饋移位暫存器的另一個例子,並且是用來輸出一線性反饋移位暫存器隨機數諸如隨機數OUT LFSR2。當刷新訊號(例如補種致能訊號EN RESEED2)顯示為一第一邏輯值(例如「0」),第二線性反饋移位暫存器130可在不使用PUF數PUF Z的情況下依據一第二預定規則(例如對應於一第二本原多項式的規則)輸出隨機數OUT LFSR2。需注意的是,第一線性反饋移位暫存器51及第二線性反饋移位暫存器130較佳為用相異的本原多項式來實施(例如第一本原多項式是異於第二本原多項式)。當刷新訊號(例如補種致能訊號EN RESEED2)顯示為一第二邏輯值(例如「1」),第二線性反饋移位暫存器130可依據PUF數PUF Z輸出隨機數OUT LFSR2。在本實施例中,級刷新電路140可依據PUF數PUF Z產生新隨機數STAGE NEW,以對第二線性反饋移位暫存器130進行補種。例如,級刷新電路140可依據PUF數PUF Z及隨機數OUT PREG產生新隨機數STAGE NEW(例如新隨機數STAGE NEW可為PUF數PUF Z及隨機數OUT PREG的互斥或結果),但本發明不限於此。處理電路150是用來依據PUF數PUF X、PUF數PUF Y以及隨機數OUT LFSR2產生隨機數OUT PREG。例如,處理電路150可對PUF數PUF X及PUF Y進行互斥或運作以產生一初步互斥或結果,並且接著對此初步互斥或結果及隨機數OUT LFSR2進行互斥或運作以產生隨機數OUT PREG,但本發明不限於此。
另外,位址ADDR X及ADDR Y在PREG 100的多個輸出週期的每個週期都會被刷新(例如增加一個單位步長),而刷新訊號(例如刷新致能訊號EN REFRESH)是另用來控制是否刷新位址ADDR Z。例如,當刷新致能訊號EN REFRESH顯示為一第一邏輯值(例如「0」),位址計數器120可避免刷新位址ADDR Z,以及當刷新致能訊號EN REFRESH顯示為一第二邏輯值(例如「1」),位址計數器120可刷新(例如增加一個單位步長)位址ADDR Z。刷新致能訊號EN REFRESH是較佳為與補種致能訊號EN RESEED2相關。在某些實施例中,級刷新電路140可提供相同的致能訊號給位址計數器120及第二線性反饋移位暫存器130(例如EN REFRESH= EN RESEED2),以確保對應於位址ADDR Z的每個值的PUF數PUF Z均能被使用到而不會被跳過。
在本實施例中,級刷新電路140可接收模式控制訊號MODE CTRL以決定運作在偽隨機數產生模式或是真隨機數產生模式下。當隨機數產生器10運作在真隨機數產生模式下時(例如當模式控制訊號MODE CTRL顯示為邏輯值「0」),級刷新電路140可依據上述動態熵位元B DYN2產生刷新訊號(例如補種致能訊號EN RESEED2及刷新致能訊號EN REFRESH的任一者)。當隨機數產生器10運作在偽隨機數產生模式下時(例如當模式控制訊號MODE CTRL顯示為邏輯值「1」),級刷新電路140可在不使用動態熵為源B DYN2的情況下產生刷新訊號(例如補種致能訊號EN RESEED2及刷新致能訊號EN REFRESH的任一者),例如級刷新電路140可將上述隨機數OUT PREG中的該預定位元輸出為刷新訊號諸如補種致能訊號EN RESEED2及刷新致能訊號EN REFRESH的任一者。
在某些實施例中,PUF陣列110傳送PUF數PUF Y及PUF Z至處理電路150並且傳送PUF數PUF X至級刷新電路140,其中位址ADDR Y及ADDR Z是在PREG 100的多個輸出週期的每個週期均被更新(例如增加一個單位步長),而刷新訊號(例如刷新致能訊號EN REFRESH)是用來控制是否刷新位址ADDR X,但本發明不限於此。在某些實施例中,PUF陣列110傳送PUF數PUF Z及PUF X至處理電路150並且傳送PUF數PUF Y至級刷新電路140,其中位址ADDR Z及ADDR X是在PREG 100的多個輸出週期的每個週期均被更新(例如增加一個單位步長),而刷新訊號(例如刷新致能訊號EN REFRESH)是用來控制是否刷新位址ADDR Y,但本發明不限於此。
另外,本質保留邏輯160是用來依據補種致能訊號EN RESEED1產生一內部時脈CLK PREG,其中級刷新電路140、位址計數器120及第二線性反饋移位暫存器130是依據內部時脈CLK PREG運作。當補種致能訊號EN RESEED1顯示為一第一邏輯值(例如「0」),這表示隨機數提取器50於隨機數提取器50的目前資料週期是在不使用到第二初步隨機數的情況下產生隨機數OUT RNG,本質保留邏輯160可禁能內部時脈CLK PREG(例如使內部時脈CLK PREG停止切換)以停止級刷新電路140、位址計數器120及第二線性反饋移位暫存器130的運作,以保留第二初步隨機數(例如保留目前資料週期產生的隨機數OUT PREG)。
第12圖為依據本發明一實施例之與第10圖所示之PREG 100相關的某些訊號(例如隨機數產生器10的主時脈CLK、刷新致能訊號EN REFRESH、隨機數OUT LFSR2、PUF X、PUF Y、PUF Z及OUT PREG、以及動態熵位元B DYN2)的示意圖。在隨機數產生器10上電後且主時脈CLK開始切換前,隨機數OUT LFSR2是在一初始狀態(例如第二線性反饋移位暫存器130的一初始種子),並且假設第二線性反饋移位暫存器130在完全不被補種的情況下可依序地輸出隨機數M1、M2、M3、M4、M5、M6及M7。動態熵位元B DYN2可在「0」及「1」之間以隨機的方式切換(在第12圖中標示為「H/L」以便於理解)。在標示「t = 1」的週期中,隨機數PUF Z為Pz[1],而第二線性反饋移位暫存器130輸出隨機數M1,其中刷新致能訊號EN REFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUF Z將不會被刷新)。在標示「t = 2」的週期中,隨機數PUF Z維持在Pz[1],而由於第二線性反饋移位暫存器130並未被補種,因此第二線性反饋移位暫存器130輸出隨機數M2,其中刷新致能訊號EN REFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUF Z將不會被刷新)。在標示「t = 3」的週期中,隨機數PUF Z維持在Pz[1],而由於第二線性反饋移位暫存器130並未被補種,因此第二線性反饋移位暫存器130輸出隨機數M3,其中刷新致能訊號EN REFRESH顯示為「1」(表示在下個週期時第二線性反饋移位暫存器130將會被補種且隨機數PUF Z將會被刷新)。在標示「t = 4」的週期中,隨機數PUF Z被刷新為Pz[2],而由於第二線性反饋移位暫存器130被補種,因此第二線性反饋移位暫存器130輸出隨機數M4’(而並非在第二線性反饋移位暫存器130未被補種的情況下所對應的M4),其中刷新致能訊號EN REFRESH顯示為「1」(表示在下個週期時第二線性反饋移位暫存器130將會被補種且隨機數PUF Z將會被刷新)。在標示「t = 5」的週期中,隨機數PUF Z被刷新為Pz[3],而由於第二線性反饋移位暫存器130被補種,因此第二線性反饋移位暫存器130輸出隨機數M5’’(而並非在第二線性反饋移位暫存器130未被補種的情況下所對應的M5’),其中刷新致能訊號EN REFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUF Z將不會被刷新)。在標示「t = 6」的週期中,隨機數PUF Z維持在Pz[3],而由於第二線性反饋移位暫存器130未被補種,因此第二線性反饋移位暫存器130輸出隨機數M6’’,其中刷新致能訊號EN REFRESH顯示為「1」(表示在下個週期時第二線性反饋移位暫存器130將會被補種且隨機數PUF Z將會被刷新)。在標示「t = 7」的週期中,隨機數PUF Z被刷新為Pz[4],而由於第二線性反饋移位暫存器130被補種,因此第二線性反饋移位暫存器130輸出隨機數M7’’’(而並非在第二線性反饋移位暫存器130未被補種的情況下所對應的M7’’),其中刷新致能訊號EN REFRESH顯示為「0」(表示在下個週期時第二線性反饋移位暫存器130將不會被補種且隨機數PUF Z將不會被刷新)。
補種控制電路53及/或級刷新電路140所執行的補種判定能用來改變/擾亂第一線性反饋移位暫存器51及/或第二線性反饋移位暫存器130的輸出樣態。另外,藉助於隨機本質保留機制,用來產生隨機數OUT RNG的任一隨機數自PREG 100輸出的時序能變得不可預測(例如RE[5]在第一次上電後是在第二週期被使用但RE[5]在第二次上電後是在第三周期被使用,如第9圖所示),這有利於上電測試的結果。因此,本發明的實施例提供之帶有多級(例如多迴圈)處理的隨機數產生器所產生的隨機數的品質能被大幅改善。尤其,即使隨機數產生器的動態熵元的品質較低,只要動態熵位元B DYN1及B DYN2的至少一者被使用,補種判定以及隨機本質保留機制即能如上所述地在具有動態熵的好處的情況下來進行,且隨機數產生器依然能輸出高品質的隨機數。另外,隨機數的場域能被大幅地延展,因此相較於相關技術,本發明的基於偽隨機數產生模式產生的隨機數的品質能被大幅地改善。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:隨機數產生器 20:動態熵源 50:隨機數提取器 51:第一線性反饋移位暫存器 52:新級產生器 53:補種控制電路 54:處理電路 100:基於PUF的隨機本質產生器 R1, R2:暫存器 OUT PREG, OUT R1, OUT R2, OUT LFSR1, OUT RNG:隨機數 B DYN1, B DYN2:動態熵位元 MODE CTRL:模式控制訊號 EN RESEED1:補種致能訊號 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:本質保留邏輯 CLK PREG:內部時脈 ADDR X, ADDR Y, ADDR Z:位址 PUF X, PUF Y, PUF Z:PUF數 OUT LFSR2:隨機數 STAGE NEW:新隨機數 EN RESEED2:補種致能訊號 EN REFRESH:刷新致能訊號 P X[1]~ P X[32], P Y[1]~ P Y[32], P Z[1]:PUF數 D 1,1~D 32,32:資料
第1圖為依據本發明一實施例之一隨機數產生器的示意圖。 第2圖為依據本發明一實施例之第1圖所示之隨機數產生器的運作的工作流程。 第3圖為依據本發明一實施例之一真隨機數產生模式的一發散方案。 第4圖為依據本發明一實施例之一偽隨機數產生模式的一發散方案。 第5圖為依據本發明一實施例之基於物理不可複製功能(簡稱PUF)的隨機本質產生器在不具備任何隨機本質保留機制的情況下的輸出方案。 第6圖為依據本發明一實施例之一種隨機數產生方法的工作流程。 第7圖為依據本發明一實施例之與第1圖所示之隨機數產生器相關的某些訊號的示意圖。 第8圖為依據本發明另一實施例之與第1圖所示之隨機數產生器相關的某些訊號的示意圖。 第9圖為依據本發明一實施例之基於PUF的隨機本質產生器在具備一隨機本質保留機制的情況下的輸出方案。 第10圖為依據本發明一實施例之第1圖所示之基於PUF的隨機本質產生器的某些細節。 第11圖為依據本發明一實施例之自PUF陣列讀取的PUF數的輸出方案。 第12圖為依據本發明一實施例之與第10圖所示之基於PUF的隨機本質產生器相關的某些訊號的示意圖。
10:隨機數產生器
20:動態熵源
50:隨機數提取器
51:第一線性反饋移位暫存器
52:新級產生器
53:補種控制電路
54:處理電路
100:基於PUF的隨機本質產生器
R1,R2:暫存器
OUTPREG,OUTR1,OUTR2,OUTLFSR1,OUTRNG:隨機數
BDYN1,BDYN2:動態熵位元
MODECTRL:模式控制訊號
ENRESEED1:補種致能訊號

Claims (21)

  1. 一種隨機數產生器,包含: 一第一級產生器,用來輸出複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,其中該第一初步隨機數是在一第一時間點被輸出,以及該第二初步隨機數是在一第二時間點被輸出;以及 一第二級產生器,耦接至該第一級產生器,用來至少依據該第一初步隨機數產生一最終輸出,其中該第二級產生器包含: 一補種(reseed)電路,用來產生一補種訊號,其中該補種訊號用來控制是否依據該第二初步隨機數產生該最終輸出; 其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的一目前資料週期產生該最終輸出時,該第一級產生器保留該第二初步隨機數以用來於該第二級產生器的下個資料週期產生該最終輸出。
  2. 如申請專利範圍第1項所述之隨機數產生器,另包含: 一動態熵(entropy)源,用來提供一第一動態熵位元以及一第二動態熵位元; 其中在一真隨機數產生(true random number generating, TRNG)模式的期間,該第一級產生器用來依據該第二動態熵位元輸出該複數個初步隨機數,且該第二級產生器的該補種電路用來依據該第一動態熵位元產生該補種訊號。
  3. 如申請專利範圍第1項所述之隨機數產生器,其中該第二級產生器另包含: 一線性反饋移位暫存器(linear feedback shift register, LFSR),用來輸出一線性反饋移位暫存器隨機數;以及 一處理電路,用來依據該第一初步隨機數以及該線性反饋移位暫存器隨機數產生該最終輸出; 其中當該補種訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第二初步隨機數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該補種訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第二初步隨機數輸出該線性反饋移位暫存器隨機數。
  4. 如申請專利範圍第1項所述之隨機數產生器,其中該第一級產生器包含: 一靜態熵陣列,用來分別依據一第一位址、一第二位址以及一第三位址輸出一第一靜態熵數、一第二靜態熵數以及一第三靜態熵數;以及 一刷新(refresh)電路,用來產生一刷新訊號; 其中該第一級產生器至少依據該第一靜態熵數以及該第二靜態熵數產生該複數個初步隨機數,且該刷新訊號用來控制是否依據該第三靜態熵數產生該複數個初步隨機數的任一者。
  5. 如申請專利範圍第4項所述之隨機數產生器,其中該第一級產生器另包含: 一線性反饋移位暫存器(linear feedback shift register, LFSR),用來輸出一線性反饋移位暫存器隨機數;以及 一處理電路,用來依據該第一靜態熵數、該第二靜態熵數以及該線性反饋移位暫存器隨機數產生該複數個初步隨機數; 其中當該刷新訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第三靜態熵數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該刷新訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第三靜態熵數輸出該線性反饋移位暫存器隨機數。
  6. 如申請專利範圍第5項所述之隨機數產生器,其中該第一級產生器另包含: 一位址計數器,用來產生該第一位址、該第二位址以及該第三位址; 其中該第一位址以及該第二位址於該第一級產生器的多個輸出週期的每一者均被刷新,以及該刷新訊號另用來控制是否刷新該第三位址。
  7. 如申請專利範圍第6項所述之隨機數產生器,其中該第一級產生器另包含: 一時脈控制電路,用來依據該補種訊號產生一內部時脈,其中該刷新電路、該位址計數器以及該線性反饋移位暫存器依據該內部時脈運作; 其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的該目前資料週期產生該最終輸出時,該時脈控制電路除能(disable)該內部時脈以停止該刷新電路、該位址計數器以及該線性反饋移位暫存器的運作,以保留該第二初步隨機數。
  8. 如申請專利範圍第4項所述之隨機數產生器,其中該靜態熵陣列藉由將從該靜態熵陣列中以一第一方向排列的一第一組靜態熵單元讀取的資料收集為一組以輸出該第一靜態熵數,該靜態熵陣列藉由將從該靜態熵陣列中以一第二方向排列的一第二組靜態熵單元讀取的資料收集為一組以輸出該第二靜態熵數,以及該靜態熵陣列藉由將從該靜態熵陣列中以一第三方向排列的一第三組靜態熵單元讀取的資料收集為一組以輸出該第三靜態熵數,其中該第一組靜態熵單元、該第二組靜態熵單元以及該第三組靜態熵單元分別對應於該第一位址、該第二位址以及該第三位址。
  9. 如申請專利範圍第8項所述之隨機數產生器,其中該第一組靜態熵單元是以垂直方向排列,該第二組靜態熵單元是以水平方向排列,以及該第三組靜態熵單元是以歪斜方向排列。
  10. 如申請專利範圍第4項所述之隨機數產生器,其中該靜態熵陣列是一物理不可複製功能(Physical Unclonable Function, PUF)陣列或儲存有自一物理不可複製功能陣列讀取的資料的一暫存器陣列。
  11. 一種隨機數產生器,包含: 一動態熵(entropy)源,用來提供一第一動態熵位元; 一第一級產生器,包含: 一靜態熵源,用來分別依據一第一位址以及一第二位址輸出一第一靜態熵數以及一第二靜態熵數;以及 一刷新(refresh)電路,用來產生一刷新訊號; 其中該第一級產生器至少依據該第一靜態熵數產生複數個初步隨機數中的一第一初步隨機數以及一第二初步隨機數,以及該刷新訊號用來控制是否依據該第二靜態熵數產生該複數個初步隨機數的任一者; 其中該第一初步隨機數是在一第一時間點被產生,以及該第二初步隨機數是在該第一時間點以後的一第二時間點被產生;以及 一第二級產生器,耦接至該第一級產生器,用來至少依據該第一初步隨機數產生一最終輸出,其中該第二級產生器包含: 一補種(reseed)電路,用來依據該第一動態熵位元產生一補種訊號; 其中該補種訊號用來控制是否依據該第二初步隨機數產生該最終輸出。
  12. 如申請專利範圍第11項所述之隨機數產生器,其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的一目前資料週期產生該最終輸出時,該第一級產生器保留該第二初步隨機數以用來於該第二級產生器的下個資料週期產生該最終輸出。
  13. 如申請專利範圍第11項所述之隨機數產生器,其中該第一級產生器另用來依據該動態熵源提供的一第二動態熵位元產生該複數個初步隨機數,以及該第一動態熵位元異於該第二動態熵位元。
  14. 如申請專利範圍第11項所述之隨機數產生器,其中該第二級產生器另包含: 一線性反饋移位暫存器(linear feedback shift register, LFSR),用來輸出一線性反饋移位暫存器隨機數;以及 一處理電路,用來藉由計算該第一初步隨機數以及該線性反饋移位暫存器隨機數以產生該最終輸出; 其中當該補種訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第二初步隨機數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該補種訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第二初步隨機數輸出該線性反饋移位暫存器隨機數。
  15. 如申請專利範圍第14項所述之隨機數產生器,其中: 於該隨機數產生器的一初始程序的期間,該補種電路於該第二級產生器的多個資料週期依據該第一動態熵位元產生該補種訊號;以及 於該初始程序以後的該隨機數產生器的一輸出程序的期間,該隨機數產生器依據一模式控制訊號決定是運作在一真隨機數產生(true random number generating, TRNG)模式或是一偽隨機數產生(pseudo random number generating, PRNG)模式下。
  16. 如申請專利範圍第11項所述之隨機數產生器,其中該第一級產生器另包含: 一線性反饋移位暫存器(linear feedback shift register, LFSR),用來輸出一線性反饋移位暫存器隨機數;以及 一處理電路,用來依據該第一靜態熵數以及該線性反饋移位暫存器隨機數產生該複數個初步隨機數; 其中當該刷新訊號顯示為一第一邏輯值時,該線性反饋移位暫存器在不使用該第二靜態熵數的情況下依據一預定規則輸出該線性反饋移位暫存器隨機數,以及當該刷新訊號顯示為一第二邏輯值時,該線性反饋移位暫存器依據該第二靜態熵數輸出該線性反饋移位暫存器隨機數。
  17. 如申請專利範圍第16項所述之隨機數產生器,其中該第一級產生器另包含: 一位址計數器,用來產生該第一位址以及該第二位址; 其中該第一位址於該第一級產生器的多個輸出週期的每一者均被刷新,以及該刷新訊號另用來控制是否刷新該第二位址。
  18. 如申請專利範圍第17項所述之隨機數產生器,其中該第一級產生器另包含: 一時脈控制電路,用來依據該補種訊號產生一內部時脈,其中該刷新電路、該位址計數器以及該線性反饋移位暫存器是依據該內部時脈運作; 其中當該第二級產生器在不使用該第二初步隨機數的情況下於該第二級產生器的該目前資料週期產生該最終輸出時,該時脈控制電路除能(disable)該內部時脈以停止該刷新電路、該位址計數器以及該線性反饋移位暫存器的運作,以保留該第二初步隨機數。
  19. 如申請專利範圍第11項所述之隨機數產生器,其中該靜態熵源是用一靜態熵陣列實施,該靜態熵陣列藉由將從該靜態熵陣列中以一第一方向排列的一第一組靜態熵單元讀取的資料收集為一組以輸出該第一靜態熵數,以及該靜態熵陣列藉由將從該靜態熵陣列中以一第二方向排列的一第二組靜態熵單元讀取的資料收集為一組以輸出該第二靜態熵數; 其中: 該第一組靜態熵單元以及該第二組靜態熵單元分別對應於該第一位址以及該第二位址;以及 該第一方向以及該第二方向的任一者代表一垂直方向、一水平方向以及一歪斜方向的其中一者,以及該第一組靜態熵單元以及該第二組靜態熵單元是以相異的方向排列。
  20. 如申請專利範圍第19項所述之隨機數產生器,其中該靜態熵源另用來藉由將從該靜態熵陣列中以一第三方向排列的一第三組靜態熵單元讀取的資料收集為一組,以依據一第三位址輸出一第三靜態熵數,該第三方向代表該垂直方向、該水平方向以及該歪斜方向的其中一者,其中該第一組靜態熵單元、該第二組靜態熵單元以及該第三組靜態熵單元是以相異的方向排列; 其中該第一級產生器至少依據該第一靜態熵數以及該第三靜態熵數產生該複數個初步隨機數。
  21. 如申請專利範圍第11項所述之隨機數產生器,其中該第一級產生器另用來輸出該複數個初步隨機數的一第三初步隨機數,以及該最終輸出是至少依據該第一初步隨機數以及該第三初步隨機數產生,其中該第三初步隨機數是在該第二時間點以前的一第三時間點被產生。
TW110145615A 2021-02-18 2021-12-07 隨機數產生器 TWI798982B (zh)

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 US20220261221A1 (en) 2021-02-18 2021-10-08 Random number generator
US17/496,782 2021-10-08

Publications (2)

Publication Number Publication Date
TW202234852A true TW202234852A (zh) 2022-09-01
TWI798982B 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) US20220261221A1 (zh)
EP (1) EP4047473A1 (zh)
JP (1) JP7312973B2 (zh)
CN (1) CN114978470A (zh)
TW (1) TWI798982B (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278749A (ja) 2001-03-15 2002-09-27 Le Tec:Kk 乱数発生装置
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
US8131789B2 (en) * 2008-03-28 2012-03-06 Atmel Corporation True random number generator
WO2012136763A2 (en) * 2011-04-05 2012-10-11 Intrinsic Id B.V. Random number generating system based on memory start-up noise
WO2013173729A1 (en) * 2012-05-18 2013-11-21 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
EP3407335B1 (en) * 2017-05-22 2023-07-26 Macronix International Co., Ltd. Non-volatile memory based physically unclonable function with random number generator
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
TWI793429B (zh) * 2019-07-25 2023-02-21 熵碼科技股份有限公司 加密金鑰生成器及傳輸系統

Also Published As

Publication number Publication date
EP4047473A1 (en) 2022-08-24
CN114978470A (zh) 2022-08-30
JP7312973B2 (ja) 2023-07-24
US20220261221A1 (en) 2022-08-18
JP2022126584A (ja) 2022-08-30
TWI798982B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
US10170174B1 (en) Apparatus and methods for refreshing memory
US10580475B2 (en) Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device
JP4248950B2 (ja) 乱数発生装置
EP3709157B1 (en) Random number generator
US20220199151A1 (en) Stable memory cell identification for hardware security
CN109656514B (zh) 随机数产生系统及其随机数产生方法
CN113539334A (zh) 用于物理不可克隆函数的测量机制
TWI798982B (zh) 隨機數產生器
KR20120082230A (ko) 랜덤 코드 발생회로를 포함하는 반도체 장치 및 반도체 시스템과, 데이터 프로그래밍 방법
TWI668630B (zh) 亂數產生器以及亂數產生方法
JP2006318475A (ja) 処理及び記憶能力に制限のある装置における乱数分布発生システム及び方法
CN113535123A (zh) 具有通过位线预充电的物理不可克隆函数
US20230420011A1 (en) Integrated circuit and memory device including sampling circuit
Mao et al. Zero-bias true random number generator using LFSR-based scrambler
US11586418B2 (en) Random number generator, random number generating circuit, and random number generating method
KR100902124B1 (ko) 반도체 메모리 장치의 테스트 회로
TWI634479B (zh) 隨機數產生系統及其隨機數產生方法
TW202004490A (zh) 真實隨機數產生裝置及其產生方法
US20240079041A1 (en) Integrated circuit and memory device including sampling circuit
KR100656433B1 (ko) 로우 어드레스 카운팅 장치
US20040143614A1 (en) Hiding the internal state of a random number generator