TWI811642B - 亂數產生電路及亂數產生方法 - Google Patents

亂數產生電路及亂數產生方法 Download PDF

Info

Publication number
TWI811642B
TWI811642B TW110108071A TW110108071A TWI811642B TW I811642 B TWI811642 B TW I811642B TW 110108071 A TW110108071 A TW 110108071A TW 110108071 A TW110108071 A TW 110108071A TW I811642 B TWI811642 B TW I811642B
Authority
TW
Taiwan
Prior art keywords
random number
clock signal
random
circuit
generate
Prior art date
Application number
TW110108071A
Other languages
English (en)
Other versions
TW202236085A (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 新唐科技股份有限公司
Priority to TW110108071A priority Critical patent/TWI811642B/zh
Priority to CN202111002833.8A priority patent/CN115033206A/zh
Publication of TW202236085A publication Critical patent/TW202236085A/zh
Application granted granted Critical
Publication of TWI811642B publication Critical patent/TWI811642B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Manipulation Of Pulses (AREA)
  • Stereo-Broadcasting Methods (AREA)

Abstract

一種亂數產生電路,用以產生一亂數碼,並包括一數碼產生電路、一除頻器、一取樣電路以及一處理電路。數碼產生電路根據一第一設定值,採用一第一運算規則,並根據第一運算規則,產生一隨機變數。除頻器根據一第二設定值,處理一第一時脈信號,用以產生一第二時脈信號。取樣電路根據第二時脈信號,對隨機變數進行取樣,用以產生亂數碼。處理電路根據一核心邏輯的一上電時間,提供第一設定值及第二設定值。

Description

亂數產生電路及亂數產生方法
本發明係有關於一種電子電路,特別是有關於一種亂數產生電路。
隨著電子裝置的發展,亂數(random number)被應用於電腦安全防護等領域,特別在電腦安全防護的領域中。然而,當亂數出現的規則容易地被預測出時,將會影響電腦內部資料的安全性。
本發明之一實施例提供一種亂數產生電路,用以產生一亂數碼,並包括一數碼產生電路、一除頻器、一取樣電路以及一處理電路。數碼產生電路根據一第一設定值,採用一第一運算規則,並根據第一運算規則,產生一隨機變數。除頻器根據一第二設定值,處理一第一時脈信號,用以產生一第二時脈信號。取樣電路根據第二時脈信號,對隨機變數進行取樣,用以產生亂數碼。處理電路根據一核心邏輯的一上電時間,提供第一設定值及第二設定值。
本發明之另一實施例提供一種亂數產生電路,用以產生一亂數碼,並包括一數碼產生電路、一除頻器以及一取樣電路。數碼產生電路根據一設定值,由複數運算規則中選擇一第一特定規則,並根據第一特定規則,產生一隨機變數。除頻器根據設定值,處理一第一時脈信號,用以產生一第二時脈信號。取樣電路根據第二時脈信號,對隨機變數進行取樣,用以產生亂數碼。設定值係為亂數碼。
本發明另提供一種亂數產生方法,用以產生一第一亂數碼。本發明之亂數產生方法包括,偵測一核心邏輯的一上電時間;根據上電時間,採用一第一運算規則,用以產生一隨機變數;根據該上電時間,處理一第一時脈信號,用以產生一第二時脈信號;以及根據第二時脈信號,對隨機變數進行取樣,用以產生一亂數碼。
本發明之亂數產生方法可經由本發明之亂數產生電路來實作,其為可執行特定功能之硬體或韌體,亦可以透過程式碼方式收錄於一紀錄媒體中,並結合特定硬體來實作。當程式碼被電子裝置、處理器、電腦或機器載入且執行時,電子裝置、處理器、電腦或機器變成用以實行本發明之亂數產生電路。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出實施例,並配合所附圖式,做詳細之說明。本發明說明書提供不同的實施例來說明本發明不同實施方式的技術特徵。其中,實施例中的各元件之配置係為說明之用,並非用以限制本發明。另外,實施例中圖式標號之部分重覆,係為了簡化說明,並非意指不同實施例之間的關聯性。
第1圖為本發明之亂數產生電路的一可能示意圖。亂數產生電路100包括一數碼產生電路110、一取樣電路120、一除頻器130以及一處理電路140。數碼產生電路110根據一設定值N, 採用一第一運算規則,並根據第一運算規則,產生一隨機變數randbit。在一可能實施例中,數碼產生電路110儲存複數運算規則,並根據不同的設定值N,選擇並使用不同的運算規則。在其它實施例中,該等運算規則係儲存於數碼產生電路110外部的一記憶體(未顯示)中。在此例中,數碼產生電路110根據設定值N,讀取外部的記憶體,用以擷取相對應的運算規則。
在本實施例中,數碼產生電路110接收一操作時脈信號OCK。在一可能實施例中,操作時脈信號OCK係由一振盪電路(未顯示)所產生。本發明並不限定數碼產生電路110的架構。在一可能實施例中,數碼產生電路110包括一線性回授移位暫存器(linear feedback shift register;LFSR)。設定值N可能作為線性回授移位暫存器的抽頭位元(bit)。由於線性回授移位暫存器所產生的隨機變數randbit具有週期性,故當設定值N改變時,隨機變數randbit的週期性也會隨之改變。由於隨機變數randbit的週期性無法預期,故大幅提高了亂數產生電路100的安全性。
除頻器130根據一設定值M,對一時脈信號SCK1的頻率進行處理,用以產生時脈信號SCK2。在本實施例中,時脈信號SCK2的頻率小於時脈信號SCK1的頻率。在一可能實施例中,時脈信號SCK1係由另一振盪電路(未顯示)所產生。時脈信號SCK1的頻率小於操作時脈信號OCK的頻率。在一些實施例中,操作時脈信號OCK的頻率為時脈信號SCK1的頻率的兩倍以上。
取樣電路120根據時脈信號SCK2,對隨機變數randbit進行取樣,用以產生一亂數碼RDN。本發明並不限定取樣電路120的架構。在一可能實施例中,取樣電路120係為一D型正反器,但並非用以限制本發明。
處理電路140偵測一核心邏輯(core logic)150的上電(power on)時間,並根據核心邏輯150的上電時間,產生設定值N及M。在積體電路(IC)的上電過程中,核心邏輯150的穩定時間受到許多因素影響,如製程-電壓-溫度(process voltage temperature;PVT)變化。核心邏輯150在一開始上電及後來下電(power down),再重新上電時,核心邏輯150每次的上電時間皆不同。因此,處理電路140根據核心邏輯150的上電時間,提供不同的種子(即設定值N及M),用以增加亂數碼RDN的隨機性。
在一些實施例中,核心邏輯150根據電壓V15,設定就緒信號V15_RDY的位準。在一可能實施例中,電壓V15係為核心邏輯的操作電壓(power voltage)。在此例中,電壓V15可能由一低壓差穩壓器(Low-dropout regulator;LDO)所產生。當電壓V15低於一第一目標值時,核心邏輯150設定就緒信號V15_RDY為一第一位準。當電壓V15達第一目標值時,核心邏輯150設定就緒信號V15_RDY由第一位準變化至一第二位準。在本實施例中,第一位準相對於第二位準。舉例而言,第一位準可能為一低位準,而第二位準為一高位準。
本發明並不限定處理電路140如何偵測核心邏輯150的上電時間。在一可能實施例中,處理電路140根據就緒信號V15_RDY,得知核心邏輯150的上電時間。舉例而言,當處理電路140接收到一時脈信號SCK3時,處理電路140開始進行一計數操作。當就緒信號V15_RDY由一第一位準變化至一第二位準時,處理電路140停止該計數操作。在此例中,處理電路140將計數操作的執行時間作為核心邏輯150的上電時間。在一可能實施例中,時脈信號SCK3的頻率約等於操作時脈信號OCK或是時脈信號SCK1的頻率。在其它實施例中,時脈信號SCK3的頻率大於時脈信號SCK1的頻率。在一些實施例中,時脈信號SCK3的頻率約等於時脈信號SCK1的頻率的兩倍。
在另一可能實施例中,處理電路140更接收一就緒信號POR50。在此例中,處理電路140根據就緒信號POR50及V15_RDY,執行一計數操作。舉例而言,當就緒信號POR50由一第三位準變化至一第四位準時,處理電路140開始進行一計數操作。當就緒信號V15_RDY由第一位準變化至第二位準時,處理電路140停止該計數操作。在此例中,處理電路140將計數操作的執行時間作為核心邏輯150的上電時間。第三位準相對於第四位準。舉例而言,當第三位準為一低位準時,第四位準為一高位準。當第三位準為一高位準時,第四位準為一低位準。在其它實施例中,第三位準可能相同於第一位準或第二位準。
在其它實施例中,就緒信號POR50係由一偵測電路160所提供。在此例中,當電壓VDDA低於一第二目標值時,偵測電路160設定就緒信號POR50為第三位準。當電壓VDDA達第二目標值時,偵測電路160設定就緒信號POR50由第三位準變化至第四位準。在本實施例中,電壓VDDA大於電壓V15。在一可能實施例中,電壓VDDA係為一電池的電壓。在此例中,一電壓調節器(未顯示)轉換電壓VDDA,並將轉換後的結果作為電壓V15。
第2圖為電壓VDDA及V15的示意圖。在時間點T1前,電壓VDDA由0V開始,逐漸往上升。在時間點T1,電壓VDDA達第二目標值(如5V)。因此,偵測電路160致能就緒信號POR50,使得就緒信號POR50由一低位準L變化至一高位準H。在其它實施例中,當偵測電路160致能就緒信號POR50時,就緒信號POR50由一高位準變化至一低位準。在時間點T2前,電壓V15由0V開始,逐漸往上升。在時間點T2,電壓V15達第一目標值(如1.5V)。因此,核心邏輯150致能就緒信號V15_RDY。此時,就緒信號V15_RDY由低位準L變化至高位準H。在其它實施例中,當核心邏輯150致能就緒信號V15_RDY時,就緒信號V15_RDY由一高位準變化至一低位準。
在一可能實施例中,處理電路140根據時間點T1與T2之間的差異210,提供設定值N及M。在另一可能實施例中,在時間點T3,電壓VDDA上升至一特定值(如4V)。因此,一振盪電路(未顯示)開始動作,用以產生時脈信號SCK3。此時,處理電路140開始進行一計數操作。在時間點T2,由於就緒信號V15_RDY被致能,故處理電路140停止計數操作。在此例中,處理電路140根據時間點T3與T2之間的差異220,提供設定值N及M。
在其它實施例中,處理電路140可能直接接收電壓V15。在此例中,當處理電路140接收到時脈信號SCK3時,處理電路140開始執行一計數操作。當電壓V15達第一目標值時,處理電路140停止計數操作。處理電路140根據計數操作的執行時間,產生設定值N及M。
在一些實施例中,處理電路140可能直接接收電壓VDDA。在此例中,當電壓VDDA達第二目標值時,處理電路140開始執行一計數操作。當電壓V15達第一目標值時,處理電路140停止計數操作。處理電路140根據計數操作的執行時間,產生設定值N及M。
第3A圖為本發明之亂數產生電路的另一示意圖。第3A圖相似第1圖,不同之處在於,處理電路340A更接收亂數碼RDN。由於亂數產生電路300A的數碼產生電路310、取樣電路320及除頻器330的特性相似於第1圖的數碼產生電路110、取樣電路120及除頻器130的特性,故不再贅述。
在本實施例中,處理電路340A根據亂數碼RDN,調整設定值N及M。舉例而言,在一初始期間,處理電路340A根據一核心邏輯350的上電時間,產生設定值N及M。在一正常操作期間(接續該初始期間),處理電路340A根據亂數碼RDN,調整設定值N及M之至少一者。在一些實施例中,在正常操作期間,處理電路340A每隔一固定時間,根據亂數碼RDN,調整設定值N及M之至少一者。
假設,在正常操作期間,處理電路340A根據亂數碼RDN,調整設定值N,但未調整設定值M。在此例中,數碼產生電路310根據調整後的設定值N,採用一第二運算規則,用以調整隨機變數randbit。此時,由於處理電路340A未改變設定值M,故除頻器330不改變時脈信號SCK2的頻率。換句話說,在初始期間及正常操作期間,時脈信號SCK2的頻率維持不變。在此例中,取樣電路320根據未被改變的時脈信號SCK2,對調整後的隨機變數randbit進行取樣,用以產生新的亂數碼RDN。
在另一可能實施例中,在正常操作期間,處理電路340A根據亂數碼RDN,調整設定值M,但未調整設定值N。在此例中,除頻器330根據調整後的設定值M,改變時脈信號SCK2的頻率。此時,由於處理電路340A未改變設定值N,故數碼產生電路310繼續採用第一運算規則。取樣電路320根據被調整的時脈信號SCK2,對隨機變數randbit進行取樣,用以產生新的亂數碼RDN。
在一些實施例中,在正常操作期間,處理電路340A根據亂數碼RDN,調整設定值N及M。在此例中,數碼產生電路310根據調整後的設定值N,採用一第二運算規則,用以調整隨機變數randbit。除頻器330根據調整後的設定值M,改變時脈信號SCK2的頻率。取樣電路320根據被調整的時脈信號SCK2,對調整後隨機變數randbit進行取樣,用以產生新的亂數碼RDN。
第3B圖為本發明之亂數產生電路的另一示意圖。第3B圖相似第3A圖,不同之處在於,第3B圖的亂數產生電路300B更包括一開關360。在一初始期間,處理電路340B不導通開關360。此時,處理電路340B根據核心邏輯350的上電時間,控制數碼產生電路310及除頻器330。在正常操作期間,處理電路340B導通開關360。此時,數碼產生電路310及除頻器330根據亂數碼RDN而動作。
第4圖為本發明之處理電路的一可能示意圖。如圖所示,處理電路400包括一計數器(counter)410以及一處理器420。當計數器410接收到時脈信號SCK3時,計數器410開始調整一計數值CNV。當就緒信號V15_RDY被致能時,計數器410停止調整計數值CNV。本發明並不限定計數器410的種類。計數器410可能係為一上數計數器或是一下數計數器。在其它實施例中,計數器410係為一計時器(timer)。
在一些實施例中,計數器410直接接收電壓V15。在此例中,計數器410根據時脈信號SCK3,調整計數值CNV。當電壓V15到達第一目標值時,計數器410停止調整計數值CNV。
在其它實施例中,計數器410可能更接收就緒信號POR50。在此例中,當就緒信號POR50被致能時,計數器410開始調整計數值CNV。當就緒信號V15_RDY被致能時,計數器410停止調整計數值CNV。在一些實施例中,計數器410直接接收電壓VDDA。當電壓VDDA達第二目標值時,計數器410開始調整計數值CNV。在此例中,當電壓V15到達第一目標值時,計數器410停止調整計數值CNV。
處理器420根據計數值CNV,產生設定值N及M。本發明並不限定處理器420如何產生設定值N及M。在一可能實施例中,處理器420儲存一查找表(look-up table)。查找表記錄複數計數區間、複數第一設定值以及複數第二設定值。每一記數區間對應該等第一設定值之一者以及該等第二設定值之一者。在此例中,處理器420根據查找表,得知計數值CNV落於哪一特定計數區間,並根據該特定計數區間所對應的第一及第二設定值,產生設定值N及M。在其它實施例中,處理器420直接將特定計數區間所對應的第一及第二設定值作為設定值N及M。在一些實施例中,查找表係儲存於處理器420之外的一記憶體(未顯示)中。
第5圖為本發明之亂數產生電路的另一示意圖。亂數產生電路500包括一數碼產生電路510、一取樣電路520以及一除頻器530。數碼產生電路510接收操作時脈信號OCK,並根據亂數碼RDN,由複數運算規則中選擇一第一特定規則,再根據第一特定規則,產生隨機變數randbit。在一可能實施例中,該等運算規則儲存於數碼產生電路510中。在另一可能實施例中,該等運算規則儲存於一外部記憶體(未顯示)。
除頻器530根據亂數碼RDN,處理時脈信號SCK1,用以產生時脈信號SCK2。在本實施例中,除頻器530係調整時脈信號SCK1的頻率,並將調整後的結果作為時脈信號SCK2。取樣電路520根據時脈信號SCK2,對隨機變數randbit進行取樣,用以更新亂數碼RDN。
在一可能實施例中,在一初始期間,亂數碼RDN等於一初始值。此時,數碼產生電路510及除頻器530根據亂數碼RDN而動作。取樣電路520根據數碼產生電路510及除頻器530的輸出,更新亂數碼RDN。然後,數碼產生電路510及除頻器530再根據更新後的亂數碼RDN而動作。
在一些實施例中,在一固定時間後,數碼產生電路510再度根據亂數碼RDN,由複數運算規則中選擇另一規則,用以調整隨機變數randbit。在一可能實施例中,當數碼產生電路510選擇新的運算規則時,除頻器530也重新調整時脈信號SCK2,或是不改變時脈信號SCK2。同樣地,在一固定時間後,除頻器530可能重新調整時脈信號SCK2。此時,數碼產生電路510可能選擇新的運算規則,或是仍採用同一運算規則。藉由亂數碼RDN動態地調整取樣頻率(即時脈信號SCK2)或是數碼產生電路510的運算規則,便可增加亂數碼RDN不可預期性。
第6A圖為本發明之亂數產生方法的一可能流程圖。本發明之亂數產生方法用以產生一亂數碼。首先,偵測一核心邏輯的一上電時間(步驟S611)。在一可能實施例中,步驟S611係判斷一第一電壓(如V15)是否達一第一目標值(如1.5V),以及判斷一第二電壓(如VDDA)是否達一第二目標值(如5V)。當第二電壓達第二目標值時,執行一計數操作。當第一電壓達該第二目標值時,停止計數操作。在此例中,執行該計數操作的持續時間係為核心邏輯的上電時間。在一些實施例中,第二目標值大於第一目標值。
在其它實施例中,步驟S611係判斷一特定時脈信號(或稱第三時脈信號)是否產生,以及判斷一就緒信號是否被致能。當特定時脈信號產生時,開始執行一計數操作。當該就緒信號被致能時,停止執行計數操作。在此例中,執行計數操作的持續時間係為核心邏輯的上電時間。另外,該就緒信號與第一電壓(如V15)有關。當第一電壓達第一目標值時,該就緒信號被致能。在本實施例中,特定時脈信號係為一高頻信號。
接著,根據核心邏輯的上電時間,採用一第一運算規則,用以產生一第一隨機變數(步驟S612)。在一可能實施例中,步驟S612係利用一LFSR,產生第一隨機變數。在此例中,第一運算規則可能儲存於LFSR之中。
根據核心邏輯的上電時間,處理一第一時脈信號,用以產生一第二時脈信號(步驟S613)。在一可能實施例中,步驟S613係調整第一時脈信號的頻率,並將調整後的結果作為第二時脈信號。在一些實施例中,第一時脈信號的頻率小於第三時脈信號的頻率。
然後,根據第二時脈信號,對第一隨機變數進行取樣,用以產生一第一亂數碼(步驟S614)。在此例中,由於核心邏輯每次的上電時間皆不同,故若將上電時間作為亂數種子,則第一亂數碼的週期性將無法預測。
第6B圖為本發明之亂數產生方法的另一可能流程圖。第6B圖相似第6A圖,不同之處在於,第6B圖多了步驟S615~S617。在本實施例中,步驟S611~S614係在一初始期間執行,而步驟S615~S617係為一正常操作期間執行。
在正常操作期間,根據步驟S614所產生的第一亂數碼,採用一第二運算規則,用以產生一第二隨機變數(步驟S615)。第二運算規則不同於步驟S612的第一運算規則。另外,根據第一亂數碼,再次調整第二時脈信號(步驟S616)。最後,根據調整後的第二時脈信號,對第二隨機變數進行取樣,用以產生一第二亂數碼(步驟S617)。
在一些實施例中,在一初始期間,利用核心邏輯的上電時間,產生一第一亂數碼。在一正常操作期間,利用第一亂數碼,產生第二亂數碼。因此,本發明所產生的亂數碼具有更高的隨機性。
在其它實施例中,步驟S615可省略。在此例中,在正常操作期間,步驟S616根據第一亂數碼,調整第二時脈信號(步驟S616)。步驟S617根據步驟S616調整後的第二時脈信號,對步驟S612所產生的第一隨機變數進行取樣,用以產生一第二亂數碼。
在一些實施例中,步驟S616可省略。在此例中,步驟S615根據步驟S614所產生的第一亂數碼,採用一第二運算規則,用以產生一第二隨機變數。步驟S617根據步驟S613所產生的第二時脈信號,對第二隨機變數進行取樣,用以產生一第二亂數碼。
第7圖為本發明之亂數產生方法的另一可能流程圖。首先,根據一亂數碼,由複數運算規則中選擇一第一特定規則,並根據第一特定規則,產生一隨機變數(步驟S711)。另外,根據亂數碼,處理一第一時脈信號,用以產生一第二時脈信號(步驟S712)。在一可能實施例中,步驟S712係調整第一時脈信號的頻率。
然後,根據第二時脈信號,對隨機變數進行取樣,用以更新亂數碼(步驟S713),再回到步驟S711。在一些實施例中,步驟S711根據步驟S713所更新的亂數碼,由複數運算規則中選擇一第二特定規則,並根據第二特定規則,產生一第二隨機變數。在此例中,步驟S712根據步驟S713所更新的亂數碼,調整第二時脈信號的頻率。步驟S713根據調整後的第二時脈信號,對第二隨機變數進行取樣,再度更新亂數碼。
本發明之亂數產生方法方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之亂數產生電路。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之亂數產生電路。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
除非另作定義,在此所有詞彙(包含技術與科學詞彙)均屬本發明所屬技術領域中具有通常知識者之一般理解。此外,除非明白表示,詞彙於一般字典中之定義應解釋為與其相關技術領域之文章中意義一致,而不應解釋為理想狀態或過分正式之語態。雖然“第一”、“第二”等術語可用於描述各種元件,但這些元件不應受這些術語的限制。這些術語只是用以區分一個元件和另一個元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾。舉例來說,本發明實施例所述之系統、裝置或是方法可以硬體、軟體或硬體以及軟體的組合的實體實施例加以實現。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100、300A、300B、500:亂數產生電路 110、310、510:數碼產生電路 120、320、520:取樣電路 130、330、530:除頻器 140、340A、340B、400:處理電路 150、350:核心邏輯 160:偵測電路 360:開關 410:計數器 420:處理器 N、M:設定值 randbit:隨機變數 OCK:操作時脈信號 SCK1~SCK3:時脈信號 RDN:亂數碼 V15、VDDA:電壓 V15_RDY、POR50:就緒信號 T1~T3:時間點 210、220:差異 S611~S617、S711~S713:步驟
第1圖為本發明之亂數產生電路的一可能示意圖。 第2圖為電壓VDDA及V15的示意圖。 第3A圖為本發明之亂數產生電路的另一示意圖。 第3B圖為本發明之亂數產生電路的另一示意圖。 第4圖為本發明之處理電路的一可能示意圖。 第5圖為本發明之亂數產生電路的另一示意圖。 第6A圖為本發明之亂數產生方法的一可能流程圖。 第6B圖為本發明之亂數產生方法的另一可能流程圖。 第7圖為本發明之亂數產生方法的另一可能流程圖。
100:亂數產生電路
110:數碼產生電路
120:取樣電路
130:除頻器
140:處理電路
150:核心邏輯
160:偵測電路
N、M:設定值
randbit:隨機變數
OCK:操作時脈信號
SCK1~SCK3:時脈信號
RDN:亂數碼
V15、VDDA:電壓
V15_RDY、POR50:就緒信號

Claims (18)

  1. 一種亂數產生電路,用以產生一亂數碼,包括:一數碼產生電路,根據一第一設定值,存取一記憶體,用以採用該記憶體所儲存的一第一運算規則,並根據該第一運算規則,產生一隨機變數;一除頻器,根據一第二設定值,處理一第一時脈信號,用以產生一第二時脈信號;一取樣電路,根據該第二時脈信號,對該隨機變數進行取樣,用以產生該亂數碼;以及一處理電路,包括一計數器以及一處理器,並根據一核心邏輯的一上電時間,提供該第一設定值及該第二設定值;其中:該數碼產生電路包括一線性回授移位暫存器,該設定值作為該線性回授移位暫存器的抽頭位元;當該核心邏輯未致能一就緒信號時,該計數器調整一計數值,當該核心邏輯致能該就緒信號時,該計數器停止調整該計數值,該處理器根據該計數值產生該第一設定值及該第二設定值。
  2. 如請求項1之亂數產生電路,其中該數碼產生電路接收一操作時脈信號,該操作時脈信號的頻率大於該第一時脈信號的頻率,該數碼產生電路包括一線性回授移位暫存器。
  3. 如請求項1之亂數產生電路,其中該處理電路包括:一計數器,根據一第三時脈信號,調整一計數值,當一第一電壓到達一第一目標值時,該計數器停止調整該計數值;以及 一處理器,根據該計數值,產生該第一設定值及該第二設定值。
  4. 如請求項3之亂數產生電路,其中該第三時脈信號的頻率大於該第一時脈信號的頻率。
  5. 如請求項4之亂數產生電路,其中當該計數器接收到該第三時脈信號時,該計數器開始調整該計數值。
  6. 如請求項3之亂數產生電路,其中該第三時脈信號的頻率等於該第一時脈信號的頻率。
  7. 如請求項6之亂數產生電路,其中當一第二電壓達一第二目標值時,該計數器開始調整該計數值,該第二目標值高於該第一目標值。
  8. 如請求項1之亂數產生電路,其中:在一初始期間,該處理電路根據該核心邏輯的該上電時間,控制該數碼產生電路及該除頻器;以及在一正常操作期間,該數碼產生電路及該除頻器根據該亂數碼而動作。
  9. 如請求項8之亂數產生電路,其中在該正常操作期間,該數碼產生電路根據該亂數碼,採用一第二運算規則,該第二運算規則不同於該第一運算規則。
  10. 一種亂數產生電路,用以產生一亂數碼,包括:一數碼產生電路,根據該亂數碼,由一記憶體所儲存的複數運算規則中選擇一第一特定規則,並根據該第一特定規則,產生一隨機變數;一除頻器,根據該亂數碼,處理一第一時脈信號,用以產生一第二時脈信號;以及 一取樣電路,根據該第二時脈信號,對該隨機變數進行取樣,用以更新該亂數碼;其中:該數碼產生電路包括一線性回授移位暫存器,該亂數碼作為該線性回授移位暫存器的抽頭位元。
  11. 如請求項10之亂數產生電路,其中該數碼產生電路接收一操作時脈信號,該操作時脈信號的頻率大於該第一時脈信號的頻率。
  12. 如請求項11之亂數產生電路,其中在一固定時間後,該數碼產生電路根據該亂數碼,由該等運算規則中選擇一第二特定規則,再根據該第二特定規則,調整該隨機變數。
  13. 如請求項12之亂數產生電路,其中在該固定時間後,該除頻器根據該亂數碼,調整該第二時脈信號。
  14. 一種亂數產生方法,用以產生一第一亂數碼,並包括:偵測一核心邏輯的一上電時間;根據該上電時間,採用一第一運算規則,用以產生一第一隨機變數;根據該上電時間,處理一第一時脈信號,用以產生一第二時脈信號;以及根據該第二時脈信號,對該第一隨機變數進行取樣,用以產生該第一亂數碼。
  15. 如請求項14之亂數產生方法,其中偵測該核心邏輯的該上電時間的步驟包括:偵測一第一電壓是否達一第一目標值; 偵測一第二電壓是否達一第二目標值;當該第二電壓達該第二目標值時,執行一計數操作;以及當該第一電壓達該第二目標值時,停止該計數操作;其中執行該計數操作的持續時間係為該上電時間,該第二目標值大於該第一目標值。
  16. 如請求項14之亂數產生方法,偵測該核心邏輯的該上電時間的步驟包括:判斷一第三時脈信號是否產生;判斷一就緒信號是否被致能;當該第三時脈信號產生時,執行一計數操作;以及當該就緒信號被致能時,停止該計數操作;其中執行該計數操作的持續時間係為該上電時間,該第三時脈信號的頻率大於該第一時脈信號的頻率,當一第一電壓達一第一目標值時,該就緒信號被致能。
  17. 如請求項14之亂數產生方法,更包括:在一正常操作期間:根據該第一亂數碼,採用一第二運算規則,用以產生一第二隨機變數;根據該第一亂數碼,調整該第二時脈信號;以及根據調整後的該第二時脈信號,對該第二隨機變數進行取樣,用以產生一第二亂數碼。
  18. 如請求項17之亂數產生方法,其中該第二運算規則不同於該第一運算規則。
TW110108071A 2021-03-08 2021-03-08 亂數產生電路及亂數產生方法 TWI811642B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110108071A TWI811642B (zh) 2021-03-08 2021-03-08 亂數產生電路及亂數產生方法
CN202111002833.8A CN115033206A (zh) 2021-03-08 2021-08-30 随机数产生电路及随机数产生方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110108071A TWI811642B (zh) 2021-03-08 2021-03-08 亂數產生電路及亂數產生方法

Publications (2)

Publication Number Publication Date
TW202236085A TW202236085A (zh) 2022-09-16
TWI811642B true TWI811642B (zh) 2023-08-11

Family

ID=83118101

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110108071A TWI811642B (zh) 2021-03-08 2021-03-08 亂數產生電路及亂數產生方法

Country Status (2)

Country Link
CN (1) CN115033206A (zh)
TW (1) TWI811642B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586927A (zh) * 2022-10-24 2023-01-10 中科可控信息产业有限公司 一种服务器错峰上电方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1483159A (zh) * 2001-01-24 2004-03-17 �����ɷ� 随机数产生器及产生随机数之方法
US20140040338A1 (en) * 2011-04-05 2014-02-06 Intrinsic Id B.V. Random number generating system based on memory start-up noise
CN110071803A (zh) * 2019-05-05 2019-07-30 北京万协通信息技术有限公司 一种纯数字电路真随机数发生器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1483159A (zh) * 2001-01-24 2004-03-17 �����ɷ� 随机数产生器及产生随机数之方法
US20140040338A1 (en) * 2011-04-05 2014-02-06 Intrinsic Id B.V. Random number generating system based on memory start-up noise
CN110071803A (zh) * 2019-05-05 2019-07-30 北京万协通信息技术有限公司 一种纯数字电路真随机数发生器

Also Published As

Publication number Publication date
CN115033206A (zh) 2022-09-09
TW202236085A (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
JP4916699B2 (ja) Zqキャリブレーション回路及びこれを備えた半導体装置
US7376687B2 (en) Pseudo-random number generator
US8659962B2 (en) Semiconductor device, semiconductor system having the same and operating method thereof
EP3709157B1 (en) Random number generator
EP3476045A1 (en) Supply voltage tracking clock generator in adaptive clock distribution systems
TWI811642B (zh) 亂數產生電路及亂數產生方法
JP2013183415A (ja) 半導体装置及びクロック信号の位相調整方法
US20160026209A1 (en) Calibration Unit for Calibrating an Oscillator, Oscillator Arrangement and Method for Calibrating an Oscillator
JP2011197789A (ja) メモリ制御装置及びマスクタイミング制御方法
US20080016135A1 (en) Method and apparatus for generating an initial value for a pseudo-random number generator
US20030185392A1 (en) Random number generator
US10613832B2 (en) Random number generating system and random number generating method thereof
TWI778557B (zh) 真實亂數產生器及真實亂數產生方法
US11762413B2 (en) Clock duty cycle correction
KR20080113970A (ko) 반도체 집적회로의 드라이버 저항값 조정장치
JPH08139575A (ja) パルス出力回路
US8907732B2 (en) Oscillation frequency regulating circuit and method
CN115085696A (zh) 具有可控概率分布的确定性抖动生成器
CN113535123A (zh) 具有通过位线预充电的物理不可克隆函数
KR20170004990A (ko) 엔트로피 소스
KR20220014234A (ko) 전압의 변화를 이용한 전력분석 공격 방지 장치 및 방법
TWI634479B (zh) 隨機數產生系統及其隨機數產生方法
CN112882531B (zh) 基于双计数器实现的时序拉偏方法及系统、设备
TWI725773B (zh) 溫度感測電路及其感測方法
TWI798982B (zh) 隨機數產生器