TWI782540B - 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法 - Google Patents

基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法 Download PDF

Info

Publication number
TWI782540B
TWI782540B TW110118674A TW110118674A TWI782540B TW I782540 B TWI782540 B TW I782540B TW 110118674 A TW110118674 A TW 110118674A TW 110118674 A TW110118674 A TW 110118674A TW I782540 B TWI782540 B TW I782540B
Authority
TW
Taiwan
Prior art keywords
seed
random number
entropy
circuit
volatile memory
Prior art date
Application number
TW110118674A
Other languages
English (en)
Other versions
TW202147097A (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
Priority claimed from US17/211,799 external-priority patent/US11487505B2/en
Application filed by 熵碼科技股份有限公司 filed Critical 熵碼科技股份有限公司
Publication of TW202147097A publication Critical patent/TW202147097A/zh
Application granted granted Critical
Publication of TWI782540B publication Critical patent/TWI782540B/zh

Links

Images

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Seasonings (AREA)
  • Saccharide Compounds (AREA)
  • Adhesives Or Adhesive Processes (AREA)
  • Storage Device Security (AREA)

Abstract

本發明提供一種基於物理不可複製功能(簡稱PUF)的真隨機數產生器以及用於產生真隨機數的方法。該基於PUF的隨機數產生器可包含一第一混淆電路、耦接至該第一混淆電路的一密碼電路、以及耦接至該密碼電路的一第二混淆電路。該第一混淆電路自該電子裝置的一PUF池取得一第一PUF值,並且基於該第一PUF值對一初步種子進行一第一混淆功能以產生一最終種子。該密碼電路利用該最終種子作為一密碼功能的金鑰以產生多個初步隨機數。該第二混淆電路自該PUF池取得一第二PUF值,並且基於該第二PUF值對該多個初步隨機數進行一第二混淆功能以產生多個最終隨機數。

Description

基於物理不可複製功能的真隨機數產生器以及用於產生真隨 機數的方法
本發明係關於真隨機數產生器,尤指一種基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法。
物理不可複製功能可視為晶片上的指紋,由於不同晶片的物理特性會因為製造過程中的某些不可控因素而有些微差異,這些差異是無法被複製或預測的,因此可被用以當作靜態熵(entropy)值以用於資安相關應用。在某些相關技術中,物理不可複製功能池在電子裝置中需要儲存空間,尤其,為了改善基於物理不可複製功能的輸出值的隨機性,所需的硬體資運也會相應地增加。因此,需要一種新穎的架構以及相關方法,以在沒有副作用或較不會帶來副作用的情況下改善基於物理不可複製功能的真隨機數產生器的輸出隨機性。
因此,本發明的目的在於提供一種基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法,以在不大幅增加整體硬體成本的情況下改善基於物理不可複製功能的真隨機數產生器的整體效能。
本發明至少一實施例提供一種用於一電子裝置之基於物理不可複製功能(Physical Unclonable Function,PUF)的真隨機數產生器。該基於物理不可 複製功能的真隨機數產生器可包含一第一混淆(obfuscation)電路、耦接至該第一混淆電路的一密碼(cryptography)電路、以及耦接至該密碼電路的一第二混淆電路。該第一混淆電路是用以自該電子裝置的一物理不可複製功能池取得一第一物理不可複製功能值,並且基於該第一物理不可複製功能值對一初步種子進行一第一混淆功能以產生一最終種子。該密碼電路是用以利用該最終種子作為一密碼功能的一金鑰(key)以產生一初步隨機數序列。該第二混淆電路是用以自該物理不可複製功能池取得一第二物理不可複製功能值,並且基於該第二物理不可複製功能值對該初步隨機數序列進行一第二混淆功能以產生一最終隨機數序列。
本發明的至少一實施例提供了一種用於產生真隨機數的方法,其中該方法是可應用於(applicable to)一電子裝置。該方法可包含:利用一第一混淆電路基於一第一物理不可複製功能值對一初步種子進行一第一混淆功能以產生一最終種子;利用一密碼電路將該最終種子當作一密碼功能的一金鑰以產生一初步隨機數序列;以及利用一第二混淆電路基於一第二物理不可複製功能值對該初步隨機數序列進行一第二混淆功能以產生一最終隨機數序列。尤其,該第一物理不可複製功能值以及該第二物理不可複製功能值是自該電子裝置的一物理不可複製功能池取得。
本發明的實施例提供的基於物理不可複製功能的真隨機數產生器以及相關方法能以各種特性諸如密碼功能(例如良好的安全性、以及良好的偽隨機性)、動態熵(例如提供「活的」(live)熵給系統,尤指該電子裝置)以及靜態熵(例如物理不可複製功能,其可視為晶片上的指紋)來提升整體效能。因此,本發明的實施例能在沒有副作用或較不會帶來副作用的情況下改善基於物理不可複製功能的真隨機數產生器的安全性以及輸出隨機性。
10,20,40,50:電子裝置
15:物理不可複製功能池
100,200,400,500:基於物理不可複製功能池的真隨機數產生器
110:混淆電路
120:密碼電路
130:混淆電路
140:熵電路
141:振盪器
142:互斥或邏輯電路
143:多工器
144:熵收集器
145:選擇性熵收集器
150:非揮發性記憶體
160:健康測試電路
170:多工器
180:解多工器
PUF1,PUF2:物理不可複製功能值
SEEDDYN:動態熵種子
SEEDNVM:非揮發性記憶體種子
SEEDPRE:初步種子
SEEDFINAL:最終種子
{RNPRE}:初步隨機數序列
{RNFINAL}:最終隨機數序列
TEST:測試結果
610,620,630,640,650:步驟
第1圖為依據本發明一實施例之一電子裝置的示意圖。
第2圖為依據本發明一實施例之一電子裝置的示意圖。
第3圖為依據本發明另一實施例之一電子裝置的示意圖。
第4圖為依據本發明一實施例之一電子裝置的示意圖。
第5圖為依據本發明一實施例之一電子裝置的示意圖。
第6圖為依據本發明一實施例之一種用於產生真隨機數的方法的工作流程。
第1圖為依據本發明一實施例之一電子裝置10的示意圖,其中電子裝置10可包含一物理不可複製功能(Physical Unclonable Function,簡稱PUF)池15、以及耦接至PUF池15的一基於PUF的真隨機數產生器100。如第1圖所示,基於PUF的真隨機數產生器100可包含一第一混淆(obfuscation)電路諸如混淆電路110、一密碼(cryptography)電路120、以及一第二混淆電路諸如混淆電路130,其中密碼電路120耦接至混淆電路110,而混淆電路130耦接至密碼電路120。在本實施例中,混淆電路110可用來自PUF池15取得一第一PUF值諸如PUF值PUF1,並且基於PUF值PUF1對一初步種子進行一第一混淆功能以產生一最終種子SEEDFINAL。密碼電路120可用來利用最終種子SEEDFINAL作為一密碼功能的一金鑰(key)以產生一初步隨機數序列{RNPRE}。例如,密碼電路120可進行DES、AES、RSA或MD5的密碼演算法。混淆電路130可用來自PUF池15取得一第二PUF值諸如PUF值PUF2,並且基於PUF值PUF2對初步隨機數序列{RNPRE}進行一第二混淆功能以產生一序列最終隨機數{RNFINAL},其中最終隨機數序列{RNFINAL}中的每個隨機數在需要時可作為基於PUF的真隨機數產生器100的一輸出隨機數。
在本實施例中,基於PUF的真隨機數產生器100可另包含一熵(entropy)電路140以用來提供一熵種子諸如動態熵種子SEEDDYN以作為該初步種子。例如,熵電路140可至少包含一振盪器以用來輸出多個隨機單位元值。詳細來說,該振盪器能產生一週期性訊號,該週期性訊號是在一振盪頻率下於邏輯值「0」與邏輯值「1」之間變動,以及該週期性訊號的值是在一取樣頻率下被取樣(例如藉由建置在該振盪器的輸出端子的取樣器來取樣,其中該取樣器是由該取樣頻率來控制),以輸出該多個隨機單位元值,其中該取樣頻率異於該振盪頻率(例如該取樣頻率可低於該振盪頻率)。因為某些因素諸如溫度、雜訊等,該週期性訊號所產生的邏輯值「1」及邏輯值「0」會以隨機的方式被取樣,從而使得邏輯值「1」與邏輯值「0」隨機地出現在該多個隨機單位元值中。另外,不同晶片的物理特性會因為在製造過程中的某些不可控因素而有些微差異,這些差異是無法被複製或預測的,而差異會反映在電子裝置10的PUF池15中的PUF值(例如PUF1及PUF2)上。因此,這些PUF值可被視為晶片上的指紋,而在本實施例中這些PUF值提供了靜態熵。在某些實施例中,該第一PUF值可異於該第二PUF值(例如PUF1≠PUF2)。
為了判斷一隨機數序列是否為可用的(available),該隨機數序列需要通過國家標準暨技術研究院(National Institute of Standards and Technology,簡稱NIST)-800-22所定義的某些測試項目。雖然基於一振盪器種子所產生的動態熵種子SEEDDYN具有某個程度的隨機性,但動態熵種子SEEDDYN可能仍然難以通過NIST-800-22的全部測試項目。例如,動態熵SEEDDYN或許能通過二進制矩陣秩測試(binary matrix rank test)、非重疊模板匹配測試(non-overlapping template matching test)、線性複雜度測試(linear complexity test)以及隨機偏移變異測試(random excursion variant test),但可能無法通過頻率測試諸如單位元測試(monobit test)、區塊內頻率測試(frequency within a block test)、連串測試(runs test)、區塊內運行時間最長者測試(longest run ones in a block test)、離散傅立葉變換測試(discrete Fourier transform test)諸如離散傅立葉變換頻譜測試(discrete Fourier transform spectral test)、重疊模板匹配測試(Overlapping template matching test)、馬尤厄通用統計測試(Maurer’s universal statistical test)、串列測試(serial test)、近似熵測試、累積總和測試(cumulative sums test)以及隨機偏移測試(random excursion test)。然而,經過混淆電路110與密碼電路120的處理後,初步隨機數序列{RNPRE}能通過上列的全部測試項目。頻率(單位元)測試是用來偵測「0」與「1」出線的機率是否互相接近,連串測試是用來偵測最長的連續「0」與最長的連續「1」是否合理(例如是否低於一預定臨界值),非重疊模板匹配測試是用來偵測一隨機數序列的重複形態是否合理(例如判斷該形態是否規律地重複或隨機地重複)。由於這些測試項目是被定義在為人熟知的NIST-800-22標準,因此本領域中具通常知識者理應了解這些測試項目的涵義,而相關細節為簡明起見在此不贅述。
在本實施例中,該第一混淆功能以及該第二混淆功能的任一者(例如每一者)可包含加法算數(例如加法運算)、乘法算數(例如乘法運算)、置換(permutation)、代換(substitution)、單向函式(one-way function)、加密(encryption)或其組合。例如,混淆電路110及130的任一者(例如每一者)可為互斥或(exclusive-OR,XOR)邏輯電路,以實施加法算術功能。本領域中具通常知識者理應了解如何實施與上述其他類型的混淆功能對應的邏輯電路,而相關細節為簡明起見在此不贅述。在某些實施例中,該第一混淆功能可和該第二混淆功能相同(例如混淆電路110及130可由相同類型的邏輯電路實施)。在某些實施例中,該第一混淆功能可異於該第二混淆功能(例如混淆電路110及130可由不同類型的邏輯電路實施)。當混淆電路110及130的每一者均為互斥或邏輯電路時,混淆電路110對動態熵種子SEEDDYN與PUF值PUF1進行互斥或運作以產 生最終種子SEEDFINAL,而混淆電路130對初步隨機數序列{RNPRE}與PUF值PUF2進行互斥或運作以產生最終隨機數序列{RNFINAL}。
在一實施例中,混淆電路110可將該初步種子諸如動態熵種子SEEDDYN與PUF值PUF1進行串接(concatenation),例如藉由依序地排列動態熵種子SEEDDYN與PUF值PUF1,以產生最終種子SEEDFINAL。例如,假設動態熵種子SEEDDYN為M位元數位值而PUF值PUF1為N位元數位值,而混淆電路110可將動態熵種子SEEDDYN作為最終種子SEEDFINAL的前M個位元並且另將PUF值PUF1作為最終種子SEEDFINAL的後N個位元,以產生M+N位元的最終種子SEEDFINAL
在一實施例中,該密碼功能可包含一密文函式(cipher function)(例如串流加密(stream cipher)諸如Trivium密碼)或雜湊函式(hash function)。當一特定金鑰(例如最終種子SEEDFINAL)被輸入至密碼電路120,一對應的位元串流會被輸出且此位元串流具備良好安全性與良好偽隨機性。若該金鑰在電子裝置10每一次開機時都時不變的,該對應的位元串流在每一次也會是不變的。為了進一步改善安全性與隨機性,密碼電路120所使用的金鑰可為動態的。由於最終種子SEEDFINAL是基於動態熵種子SEEDDYN以及PUF值PUF1產生的,初步隨機數序列{RNPRE}可帶有使用動態熵種子與PUF值PUF1的好處,從而改善安全性以及隨機性。此外,即使該密碼功能是藉由為人熟知的方法或標準實施,本領域具通常知識者依然難以自最終隨機數序列{RNFINAL}回溯以對該密碼功能進行解密(decipher),這是因為最終輸出(即{RNFINAL})是藉由混淆電路130基於不可預測的PUF值PUF2產生。因此,最終隨機數序列{RNFINAL}的安全性能被進一步提升。需注意的是,該密碼功能並不限於特定類型的密碼功能,而某些為人熟知的演算法也能被採用於本發明的密碼功能。
第2圖為依據本發明一實施例之一電子裝置20的示意圖,其中電子裝置20可包含PUF池15、以及耦接至PUF池15的一基於PUF的真隨機數產生器 200。第2圖的實施例與第1圖類似,而其主要差異在於基於PUF的真隨機數產生器200可包含一非揮發性記憶體(non-volatile memory,NVM)150(在圖中標示為「NVM」以求簡明)以用來提供該初步種子,尤其是提供儲存於非揮發性記憶體150內的一非揮發性記憶體種子(簡稱NVM種子)SEEDNVM以作為該初步種子。另外,一反饋隨機數可在一或多個預定時間點被寫入非揮發性記憶體150,以更新儲存於非揮發性記憶體150內的NVM種子SEEDNVM。在一實施例中,該反饋隨機數可自初步隨機數序列{RNPRE}取得,如第2圖所示。在另一實施例中,該反饋隨機數可自最終隨機數序列{RNFINAL}取得,如第3圖所示。與第1圖的實施例類似,最終隨機數序列{RNFINAL}中的每個隨機數在需要時可作為基於PUF的真隨機數產生器200的一輸出隨機數。
需注意的是,更新儲存於非揮發性記憶體150內的NVM種子SEEDNVM的時間點並非對本發明的限制。例如,該反饋隨機數可為初步隨機數序列{RNPRE}或最終隨機數序列{RNFINAL}於電子裝置20開機後的第一個隨機數,而一旦第一個隨機數被產生,這個第一個隨機數即可被寫入非揮發性記憶體150中。又例如,該反饋隨機數可每隔一段預定時間區間就將該反饋隨機數寫入非揮發性記憶體150以更新NVM種子SEEDNVM。又例如,當電子裝置20接收到關機指令時,該反饋隨機數可為初步隨機數序列{RNPRE}或最終隨機數序列{RNFINAL}於電子裝置20開機後的最新的隨機數,而該最新的隨機數可在電子裝置20被關閉前寫入非揮發性記憶體150以更新NVM種子SEEDNVM
第4圖為依據本發明一實施例之一電子裝置40的示意圖。如第4圖所示,電子裝置40可包含PUF池15、以及耦接至PUF池15的一基於PUF的真隨機數產生器400,其中基於PUF的真隨機數產生器400可視為第1圖所示之基於PUF的真隨機數產生器100、第2圖與第3圖中任一者所示之基於PUF的真隨機數產生器200、以及一或多個額外電路的組合。具體來說,基於PUF的真隨機數產生器400 可包含以上實施例所提及的混淆電路110、密碼電路120、混淆電路130、熵電路140以及非揮發性記憶體150,並且可另包含一測試電路諸如一健康測試電路160、以及一多工器(multiplexer,MUX)170(在圖中標示為「MUX」以求簡明)。在本實施例中,健康測試電路160耦接至熵電路140,而多工器170耦接至熵電路140、非揮發性記憶體150以及健康測試電路160。例如,健康測試電路160可用來測試動態熵種子SEEDDYN(或任意與熵電路140的運作相關的資料/訊號)以產生一測試結果TEST,尤其健康測試電路160是對動態熵種子SEEDDYN進行健康程度測試,而多工器170可用來因應測試結果TEST從動態熵種子SEEDDYN與NVM種子SEEDNVM選擇其中一者,以供作為該初步種子(例如SEEDPRE)被輸出至混淆電路110。
具體來說,當測試結果TEST指出熵電路140處在一健康狀態時,多工器170可選擇動態熵種子SEEDDYN作為初步種子SEEDPRE,而當測試結果TEST指出熵電路140處在一非健康狀態時,多工器170可選擇NVM種子SEEDNVM作為初步種子SEEDPRE。例如,健康測試電路160能每隔一段預定時間區間自熵電路140中的振盪器收集一次某個數量的隨機單位元值以作為一組資料。若健康測試電路160偵測到一組資料內的邏輯值「0」(或邏輯值「1」)的覆蓋率落在一預定範圍內(例如自20%至80%),健康測試電路160可輸出帶有第一邏輯狀態(例如「0」)的測試結果TEST以指出熵電路140是「健康的」,並且多工器170可選擇動態熵種子SEEDDYN作為初步種子SEEDPRE。若健康測試電路160偵測到一組資料內的邏輯值「0」(或邏輯值「1」)的覆蓋率並未落在該預定範圍內(例如大於一預定上限諸如80%或低於一預定下限諸如20%),健康測試電路160可輸出帶有第二邏輯狀態(例如「1」)的測試結果TEST以指出熵電路140是「不健康的」,並且多工器170可選擇NVM種子SEEDNVM作為初步種子SEEDPRE。需注意的是,與上述至少一測試相關的詳細運作僅為了說明之目的,並非對本發明的限制, 例如NIST-800-22標準所定義的測試項目中的一或多者也能被採用於上述至少一測試。
在某些情況下,熵電路140及非揮發性記憶體150中之任一者會有遭受從電子裝置40以外被駭/入侵(hack)或破壞的風險,從而導致安全性的問題。由於混淆電路110具有兩個來源以供取得初步種子SEEDPRE,若熵電路140及非揮發性記憶體150的其中一者被駭/入侵或破壞,另一者能取而代之以提供初步種子SEEDPRE。因此,基於PUF的真隨機數產生器400的強韌性與安全性能被提升。
在某些實施例中,健康測試電路160可被省略,而多工器170能因應另一控制訊號以從動態熵種子SEEDDYN與NVM種子SEEDNVM選擇其中一者,以供被輸出為初步種子SEEDPRE,其中這個控制訊號能從電子裝置40的外部取得。例如,藉由控制這個控制訊號的邏輯狀態,使用者能手動的控制多工器170從動態熵種子SEEDDYN與NVM種子SEEDNVM選擇其中一者以供被輸出為初步種子SEEDPRE,而健康測試電路160可被省略,但本發明不限於此。
第5圖為依據本發明一實施例之一電子裝置50的示意圖。如第5圖所示,電子裝置50可包含PUF池15、以及耦接至PUF池15的一基於PUF的真隨機數產生器500,其中基於PUF的真隨機數產生器500可被視為第4圖所示之基於PUF的真隨機數產生器400的例子,而健康測試電路160並未繪示於第5圖以求簡明。具體來說,第5圖繪示了熵電路140的實施細節。在本實施例中,熵電路140可包含一振盪器141、以及耦接至振盪器141的一收集電路諸如選擇性熵收集器(selective entropy collector)145,其中振盪器141可用來輸出一隨機控制位元SEL(例如上述多個隨機單位元值的每一者),而選擇性熵收集器145可因應隨機控制位元SEL來決定是否藉助於一反饋隨機數RNFB來更新動態熵種子SEEDDYN。在第5圖的實施例中,反饋隨機數RNFB是自最終隨機數序列{RNFINAL}取得,但本發明不限於此。在某些實施例中,反饋隨機數RNFB是自初步隨機數序列{RNPRE} 取得,但本發明不限於此。詳細來說,選擇性熵收集器145可包含一第三混淆電路諸如互斥或邏輯電路142(在圖中標示為「XOR」以求簡明)、耦接至振盪器141及互斥或邏輯電路142的一多工器143(在圖中標示為「MUX」以求簡明)、以及耦接至多工器143及互斥或邏輯電路142的一熵收集器144。例如,該第三混淆電路諸如互斥或邏輯電路142可用來基於反饋隨機數RNFB對動態熵種子SEEDDYN進行一第三混淆功能諸如一互斥或運作以產生一更新後熵種子,而多工器143可用來因應隨機控制位元SEL自更新前的熵種子(即來自熵收集器144的輸出的熵種子)與該更新後熵種子選擇其中一者,以輸出一最新熵種子(例如動態熵種子SEEDDYN的最新版本)。此外,熵收集器144可接收並輸出該最新熵種子以作為動態熵種子SEEDDYN,以及動態熵種子SEEDDYN是一反饋熵種子以被傳送至多工器143以及互斥或邏輯電路142。因此,互斥或邏輯電路142進行該互斥或運作以產生該更新後熵種子(其為動態熵種子SEEDDYN與反饋隨機數RNFB的互斥或結果),而多工器143可依據隨機控制位元SEL將該更新後熵種子或更新前的動態熵種子SEEDDYN輸出至熵收集器144,其中熵收集器144可藉由正反器(flip-flop)實施,但本發明不限於此。由於隨機控制位元SEL是隨機地在邏輯狀態「0」與「1」之間切換,因此更新動態熵種子SEEDDYN的運作能被隨機地執行。例如,當隨機控制位元SEL為「0」,動態熵種子SEEDDYN不會改變;而當隨機控制位元SEL為「1」,動態熵種子SEEDDYN則會被更新。需注意的是,互斥或邏輯電路142並非對第三混淆電路的實施方式作限制,其中能改變動態熵種子SEEDDYN的任意邏輯電路均隸屬於本發明的範疇。
在第5圖的實施例中,當多工器170選擇NVM種子SEEDNVM且多工器143選擇該更新後熵種子時,動態熵種子SEEDDYN能依據NVM種子SEEDNVM被產生。詳細來說,當多工器170選擇NVM種子SEEDNVM作為初步種子SEEDPRE時,反饋隨機數RNFB是依據初步種子SEEDPRE產生(表示反饋隨機數RNFB是依據 NVM種子SEEDNVM產生),且互斥或邏輯電路142依據反饋隨機數RNFB產生該互斥或結果。接著,多工器143輸出該互斥或結果以作為該更新後熵種子,而由於該更新後熵種子是依據NVM種子SEEDNVM產生,因此熵收集器144能依據NVM種子SEEDNVM產生動態熵種子SEEDDYN
另外,第5圖的實施例並非對本發明的限制。在某些實施例中,第1圖及第4圖所示之熵電路140可藉由不同的架構實施。例如,熵電路140可包含一振盪器以及耦接至該振盪器的一收集電路,其中該振盪器可用來輸出多個隨機單位元值,而該收集電路可用來收集這些隨機單位元值以產生動態熵種子SEEDDYN(例如藉由自這些隨機單位元值串接諸如依序地排列一預定數量的隨機單位元值以產生動態熵種子SEEDDYN),但本發明不限於此。
此外,最終隨機數序列{RNFINAL}中的每一最終隨機數較佳為僅傳送至一個客體。例如,基於PUF的真隨機數產生器500可另包含耦接至混淆電路130的一解多工器(de-multiplexer,DEMUX)180(在圖中標示為「DEMUX」以求簡明)。在本實施例中,最終隨機數序列{RNFINAL}可具有三個可能路徑,包含一第一路徑以用來提供一輸出隨機數至基於PUF的真隨機數產生器500的外部、一第二訊號路徑以用來更新NVM種子SEEDNVM、以及一第三訊號路徑以用來更新動態熵種子SEEDDYN,其中解多工器180控制這些訊號路徑在單一時間點僅有其中一者被致能(enabled)。因此,自最終隨機數序列{RNFINAL}取得的任何單一最終隨機數不會被不同元件重複使用,因此可確保基於PUF的真隨機數產生器500的安全性。例如,最終隨機數序列{RNFINAL}於電子裝置50上電後的第一個最終隨機數可預設被寫入非揮發性記憶體150(例如該第二訊號路徑於電子裝置50上電後的第一個運作週期會被致能);接著,在儲存於非揮發性記憶體150內的NVM種子SEEDNVM被更新完成後,該第二訊號路徑會被除能(disabled)而該第三訊號路徑會被致能;而只有當電子裝置50內的另一元件請求依隨機數時,該第一 訊號路徑才會被致能。需注意的是,上述致能該第一訊號路徑、該第二訊號路徑以及該第三訊號路徑的排程只是為了說明之目的,並非對本發明的限制。
第6圖為依據本發明一實施例之一種用於產生真隨機數的方法的工作流程,其中該方法是可應用於(applicable to)一電子裝置諸如第1圖至第5圖所示之電子裝置10、20、40及50。需注意的是,第6圖所示之工作流程僅為了說明之目的,而並非對本發明的限制。只要不影響整體結果,一或多個步驟可在第6圖所示之工作流程中被新增、刪除或修改,而且這些步驟也並非必須完全依照第6圖所示之順序執行。
在步驟610中,混淆電路110自PUF池15取得一第一PUF值(例如PUF1)。
在步驟620中,混淆電路110基於該第一PUF值(例如PUF1)對一初步種子(例如SEEDPRE)進行一第一混淆功能以產生一最終種子(例如SEEDFINAL)。
在步驟630,密碼電路120利用該最終種子(例如SEEDFINAL)作為一密碼功能的一金鑰以產生一初步隨機數序列(例如{RNPRE})。
在步驟640,混淆電路130自PUF池15取得一第二PUF值(例如PUF2)。
在步驟650,混淆電路130基於該第二PUF值(例如PUF2)對該初步隨機數序列(例如{RNPRE})進行一第二混淆功能(例如互斥或)以產生一最終隨機數序列(例如{RNFINAL})。
本發明的基於PUF的真隨機數產生器以及相關方法能搭配密碼功能、動態熵及靜態熵的特性來控制相關運作。另外,本發明能在不降低隨機性與安全性的情況下減少PUF池的尺寸需求。因此,本發明能在沒有副作用或較不會帶來副作用的情況下改善基於PUF的真隨機數產生器的整體效能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
15:物理不可複製功能池
100:基於物理不可複製功能池的真隨機數產生器
110:混淆電路
120:密碼電路
130:混淆電路
140:熵電路
PUF1,PUF2:物理不可複製功能值
SEEDDYN:動態熵種子
SEEDFINAL:最終種子
{RNPRE}:初步隨機數序列
{RNFINAL}:最終隨機數序列

Claims (20)

  1. 一種用於一電子裝置之基於物理不可複製功能(Physical Unclonable Function,PUF)的真隨機數產生器,該基於物理不可複製功能的真隨機數產生器包含:一第一混淆(obfuscation)電路,用以自該電子裝置的一物理不可複製功能池取得一第一物理不可複製功能值,並且基於該第一物理不可複製功能值對一初步種子進行一第一混淆功能以產生一最終種子;一密碼(cryptography)電路,耦接至該第一混淆電路,用以利用該最終種子作為一密碼功能的一金鑰(key)以產生一初步隨機數序列;以及一第二混淆電路,耦接至該密碼電路,用以自該物理不可複製功能池取得一第二物理不可複製功能值,並且基於該第二物理不可複製功能值對該初步隨機數序列進行一第二混淆功能以產生一最終隨機數序列。
  2. 如申請專利範圍第1項所述之基於物理不可複製功能的真隨機數產生器,其中該第一混淆電路將該初步種子與該第一物理不可複製功能值進行串接(concatenation)以產生該最終種子。
  3. 如申請專利範圍第1項所述之基於物理不可複製功能的真隨機數產生器,其中該基於物理不可複製功能的真隨機數產生器另包含一熵(entropy)電路以提供該初步種子,以及該熵電路包含:一振盪器,用以輸出多個隨機單位元值;以及一收集電路,用以收集該多個隨機單位元值以產生該初步種子。
  4. 如申請專利範圍第1項所述之基於物理不可複製功能的真隨機數 產生器,其中該基於物理不可複製功能的真隨機數產生器另包含一非揮發性記憶體(non-volatile memory,NVM)以提供該初步種子,其中一反饋隨機數於一或多個預定時間點被寫入該非揮發性記憶體,以更新儲存於該非揮發性記憶體內的該初步種子,以及該反饋隨機數是自該初步隨機數序列或該最終隨機數序列取得。
  5. 如申請專利範圍第1項所述之基於物理不可複製功能的真隨機數產生器,其中該基於物理不可複製功能的真隨機數產生器另包含:一熵電路,用以提供一熵種子;一非揮發性記憶體,用以提供一非揮發性記憶體種子,其中一反饋隨機數於一或多個預定時間點被寫入該非揮發性記憶體中,以更新儲存於該非揮發性記憶體內的該非揮發性記憶體種子,以及該反饋隨機數是自該初步隨機數序列或該最終隨機數序列取得;一測試電路,耦接至該熵電路,用以測試該熵種子以產生一測試結果;以及一多工器,耦接至該熵電路、該非揮發性記憶體以及該測試電路,用以因應該測試結果以自該熵種子與該非揮發性記憶體種子選擇其中一者,以供輸出為該初步種子。
  6. 如申請專利範圍第5項所述之基於物理不可複製功能的真隨機數產生器,其中該測試電路是對該熵種子進行健康程度測試,當該測試結果指出該熵電路處在一健康狀態時,該多工器選擇該熵種子以作為該初步種子,以及當該測試結果指出該熵電路處在一非健康狀態時,該多工器選擇該非揮發性記憶體種子作為該初步種子。
  7. 如申請專利範圍第1項所述之基於物理不可複製功能的真隨機數產生器,其中該基於物理不可複製功能的真隨機數產生器另包含一熵電路以提供一熵種子,以及該熵電路包含:一振盪器,用以輸出一隨機控制位元;以及一收集電路,耦接至該振盪器,其中該收集電路因應該隨機控制位元以決定是否藉助於一反饋隨機數來更新該熵種子,以及該反饋隨機數是自該初步隨機數序列或該最終隨機數序列取得。
  8. 如申請專利範圍第7項所述之基於物理不可複製功能的真隨機數產生器,其中該收集電路包含:一第三混淆電路,用以基於該反饋隨機數對該熵種子進行一第三混淆功能以產生一更新後熵種子;以及一第一多工器,耦接至該振盪器,用以因應該隨機控制位元以自更新前的該熵種子與該更新後熵種子選擇其中一者,以輸出一最新熵種子。
  9. 如申請專利範圍第8項所述之基於物理不可複製功能的真隨機數產生器,其中該基於物理不可複製功能的真隨機數產生器另包含:一非揮發性記憶體,用以提供一非揮發性記憶體種子,其中該反饋隨機數於一或多個預定時間點被寫入該非揮發性記憶體中,以更新儲存於該非揮發性記憶體中的該非揮發性記憶體種子;以及一第二多工器,耦接至該非揮發性記憶體以及該收集電路,用以自該非揮發性記憶體種子與該最新熵種子選擇其中一者以作為該初步種子。
  10. 如申請專利範圍第1項所述之基於物理不可複製功能的真隨機數產生器,其中該基於物理不可複製功能的真隨機數產生器另包含一熵電路以用以提供該初步種子,以及該熵電路至少包含:一振盪器,用以輸出多個隨機單位元值,其中該振盪器產生一週期性訊號,該週期性訊號是在一振盪頻率下於一第一邏輯值與一第二邏輯值之間變動,以及該週期性訊號是在一取樣頻率下被取樣,以使得該第一邏輯值與該第二邏輯值隨機地出現在該多個隨機單位元值中;其中該取樣頻率異於該振盪頻率。
  11. 一種用於產生真隨機數的方法,可應用於(applicable to)一電子裝置,包含:利用一第一混淆(obfuscation)電路基於一第一物理不可複製功能(Physical Unclonable Function,PUF)值對一初步種子進行一第一混淆功能以產生一最終種子;利用一密碼(cryptography)電路將該最終種子當作一密碼功能的一金鑰(key)以產生一初步隨機數序列;以及利用一第二混淆電路基於一第二物理不可複製功能值對該初步隨機數序列進行一第二混淆功能以產生一最終隨機數序列;其中該第一物理不可複製功能值以及該第二物理不可複製功能值是自該電子裝置的一物理不可複製功能池取得。
  12. 如申請專利範圍第11項所述之方法,其中利用該第一混淆電路基於該第一物理不可複製功能值對該初步種子進行該第一混淆功能以產生該最終種子包含: 利用該第一混淆電路將該初步種子與該第一物理不可複製功能值進行串接(concatenation)以產生該最終種子。
  13. 如申請專利範圍第11項所述之方法,另包含:產生多個隨機單位元值;以及依據該多個隨機單位元值取得該初步種子。
  14. 如申請專利範圍第11項所述之方法,另包含:自一非揮發性記憶體(non-volatile memory,NVM)取得該初步種子,其中一反饋隨機數於一或多個預定時間點被寫入該非揮發性記憶體,以更新儲存於該非揮發性記憶體內的該初步種子,以及該反饋隨機數是自該初步隨機數序列或該最終隨機數序列取得。
  15. 如申請專利範圍第11項所述之方法,另包含:自一熵(entropy)電路取得一熵種子;自一非揮發性記憶體取得一非揮發性記憶體種子,其中一反饋隨機數於一或多個預定時間點被寫入該非揮發性記憶體中,以更新儲存於該非揮發性記憶體內的該非揮發性記憶體種子,以及該反饋隨機數是自該初步隨機數序列或該最終隨機數序列取得;利用一測試電路測試該熵種子以產生一測試結果;以及利用一多工器因應該測試結果以自該熵種子與該非揮發性記憶體種子選擇其中一者,以供輸出為該初步種子。
  16. 如申請專利範圍第15項所述之方法,其中該測試電路是對該熵種 子進行健康程度測試,自該熵種子與該非揮發性記憶體種子選擇其中一者的步驟包含:當該測試結果指出該熵電路處在一健康狀態時,選擇該熵種子以作為該初步種子;以及當該測試結果指出該熵電路處在一非健康狀態時,選擇該非揮發性記憶體種子作為該初步種子。
  17. 如申請專利範圍第11項所述之方法,另包含:產生一隨機控制位元;以及因應該隨機控制位元以決定是否藉助於一反饋隨機數來更新一熵種子,其中該反饋隨機數是自該初步隨機數序列或該最終隨機數序列取得。
  18. 如申請專利範圍第17項所述之方法,其中因應該隨機控制位元以決定是否藉助於該反饋隨機數來更新該熵種子的步驟包含:基於該反饋隨機數對該熵種子進行一第三混淆功能以產生一更新後熵種子;以及因應該隨機控制位元以自更新前的該熵種子與該更新後熵種子選擇其中一者,以輸出一最新熵種子。
  19. 如申請專利範圍第18項所述之方法,另包含:自一非揮發性記憶體取得一非揮發性記憶體種子,其中該反饋隨機數於一或多個預定時間點被寫入該非揮發性記憶體中,以更新儲存於該非揮發性記憶體中的該非揮發性記憶體種子;以及自該非揮發性記憶體種子與該最新熵種子選擇其中一者以作為該初步種 子。
  20. 如申請專利範圍第17項所述之方法,其中產生該隨機控制位元的步驟包含:利用一振盪器產生一週期性訊號,該週期性訊號是在一振盪頻率下於一第一邏輯值與一第二邏輯值之間變動;以及在一取樣頻率下對該週期性訊號進行取樣,以使得該第一邏輯值與該第二邏輯值隨機地出現在該振盪器輸出的多個隨機單位元值中以產生該隨機控制位元;其中該取樣頻率異於該振盪頻率。
TW110118674A 2020-06-04 2021-05-24 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法 TWI782540B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063034410P 2020-06-04 2020-06-04
US63/034,410 2020-06-04
US17/211,799 US11487505B2 (en) 2020-06-04 2021-03-24 Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device
US17/211,799 2021-03-24

Publications (2)

Publication Number Publication Date
TW202147097A TW202147097A (zh) 2021-12-16
TWI782540B true TWI782540B (zh) 2022-11-01

Family

ID=78787220

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110118674A TWI782540B (zh) 2020-06-04 2021-05-24 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法

Country Status (2)

Country Link
CN (1) CN113760221B (zh)
TW (1) TWI782540B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079281A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Systems and methods for diversification of encryption algorithms and obfuscation symbols, symbol spaces and/or schemas
CN106020771A (zh) * 2016-05-31 2016-10-12 东南大学 一种基于puf的伪随机序列发生器
US9558358B2 (en) * 2013-06-27 2017-01-31 Visa International Service Association Random number generator in a virtualized environment
TWI663604B (zh) * 2017-05-22 2019-06-21 旺宏電子股份有限公司 操作具非揮發性記憶胞電路的方法及使用所述方法的電路
TWI673721B (zh) * 2017-05-22 2019-10-01 旺宏電子股份有限公司 具有物理不可複製功能及隨機數產生器的電路及其操作方法
TW201944231A (zh) * 2018-04-18 2019-11-16 力旺電子股份有限公司 具有物理不可複製功能的真亂數生成系統

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11562230B2 (en) * 2017-03-22 2023-01-24 Visa International Service Association Privacy-preserving machine learning
CN108664234A (zh) * 2018-01-17 2018-10-16 北京智芯微电子科技有限公司 真随机数发生器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079281A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Systems and methods for diversification of encryption algorithms and obfuscation symbols, symbol spaces and/or schemas
US9558358B2 (en) * 2013-06-27 2017-01-31 Visa International Service Association Random number generator in a virtualized environment
CN106020771A (zh) * 2016-05-31 2016-10-12 东南大学 一种基于puf的伪随机序列发生器
TWI663604B (zh) * 2017-05-22 2019-06-21 旺宏電子股份有限公司 操作具非揮發性記憶胞電路的方法及使用所述方法的電路
TWI673721B (zh) * 2017-05-22 2019-10-01 旺宏電子股份有限公司 具有物理不可複製功能及隨機數產生器的電路及其操作方法
TW201944231A (zh) * 2018-04-18 2019-11-16 力旺電子股份有限公司 具有物理不可複製功能的真亂數生成系統

Also Published As

Publication number Publication date
TW202147097A (zh) 2021-12-16
CN113760221B (zh) 2024-02-23
CN113760221A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
Zalivaka et al. Reliable and modeling attack resistant authentication of arbiter PUF in FPGA implementation with trinary quadruple response
JP5248328B2 (ja) 信号発生器をベースとした装置セキュリティ
Herder et al. Trapdoor computational fuzzy extractors and stateless cryptographically-secure physical unclonable functions
KR101727130B1 (ko) 암호화 키를 획득하기 위한 디바이스 및 방법
US8468186B2 (en) Combination of values from a pseudo-random source
US11487505B2 (en) Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device
O’donnell et al. PUF-based random number generation
JP7006887B2 (ja) 乱数発生器及び出力乱数を生成する方法
Maes et al. Secure key generation from biased PUFs: extended version
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
Wang et al. Lattice PUF: A strong physical unclonable function provably secure against machine learning attacks
Sunar True random number generators for cryptography
Torii et al. ASIC implementation of random number generators using SR latches and its evaluation
Avaroğlu The implementation of ring oscillator based PUF designs in Field Programmable Gate Arrays using of different challenge
JP2014075082A (ja) 乱数生成器および乱数生成方法
Nassar et al. CaPUF: Cascaded PUF structure for machine learning resiliency
Shariffuddin et al. Review on arbiter physical unclonable function and its implementation in FPGA for IoT security applications
JPWO2014013680A1 (ja) ユニバーサルハッシュ関数演算装置、方法およびプログラム
Garcia-Bosque et al. Suitability of generalized GAROs on FPGAs as PUFs or TRNGs considering spatial correlations
JP6372295B2 (ja) 物理乱数生成回路の品質テスト方法、乱数発生器および電子装置
Liu et al. A novel security key generation method for SRAM PUF based on Fourier analysis
TWI782540B (zh) 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法
US20230139712A1 (en) Circuit apparatus and methods for puf source and generating random digital sequence
JP2000242470A (ja) 乱数生成装置および方法および記録媒体
Yu et al. On designing PUF-based TRNGs with known answer tests