用於隨機數產生器的延遲裝置及方法及其隨機數產生器的製造方法
2023-04-28 13:19:21
用於隨機數產生器的延遲裝置及方法及其隨機數產生器的製造方法
【專利摘要】本發明公開了一種用於一隨機數產生器中的延遲裝置,用來產生一信號以提供予一隨機組件,該延遲裝置包括有一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間;一多任務器,耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值;以及一延遲選擇裝置,耦接至該多任務器,用來產生一選擇信號,該選擇信號控制該多任務器選擇輸出該延遲信號作為該延遲觸發信號。
【專利說明】用於隨機數產生器的延遲裝置及方法及其隨機數產生器
【技術領域】
[0001]本發明涉及一種用於一隨機數產生器的延遲裝置及方法及其隨機數產生器,尤其涉及一種可產生延遲的輸入信號以提供予隨機組件,進而提升隨機性的延遲裝置及方法及其隨機數產生器。
【背景技術】
[0002]隨機數產生器普遍應用於密碼學中,用來提供隨機的數值或不定值,以產生可用於同步或異步加密算法的隨機數、隨機數或金鑰。公知隨機數產生器的隨機數源(entropysource)具有數個相同或不同的隨機組件,而每一隨機組件的輸出值可相互結合,進而產生一隨機的輸出結果。
[0003]公知隨機組件可分為二種類型:延遲變異型(jitter-based)及亞穩態型(metastability-based),此二種類型的隨機組件都可用來產生隨機位值。一般來說,隨機位值的隨機性會受到環境因素的影響,如工藝過程、電壓及溫度等。舉例來說,工藝偏移會影響隨機性。由於工藝偏移造成隨機組件出現某種程度的一致性,使得隨機組件所輸出的隨機位值因此偏離真正的隨機。在某些情況下,此一致性可能造成隨機組件持續產生相同的位值輸出(如一連串的I或一連串的0),抑或輸出的隨機位值具有周期性。如此一來,隨機數產生器的隨機性會降低。
[0004]為達到較高的隨機性,公知隨機數產生器的隨機數源往往使用大量的隨機組件並結合這些隨機組件的輸出結果。然而,大量的隨機組件會消耗大量的電能並佔據大幅電路面積。除此之外,隨機組件通常是通過半導體工藝中的標準邏輯單元(standard logiccell)電路來實現,而每一標準邏輯單元都具有某種程度的一致性,因此,將這些具有同構型的隨機組件的輸出值結合,所產生的結果往往不具有令人滿意的隨機性。再者,用於隨機組件的觸發信號通常來自於同一個系統頻率,而系統頻率的周期性使得不同隨機組件可能具有相似的觸髮結果。有鑑於此,公知技術實有改善的必要。
【發明內容】
[0005]因此,本發明的主要目的即在於提供一種可產生延遲的輸入信號以提供予隨機組件,進而提升隨機性的延遲裝置及方法及其隨機數產生器。
[0006]本發明公開一種用於一隨機數產生器中的延遲裝置,用來產生一信號以提供予一隨機組件,該延遲裝置包括有一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間;一多任務器,耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值;以及一延遲選擇裝置,耦接至該多任務器,用來產生一選擇信號,該選擇信號控制該多任務器選擇輸出該延遲信號作為該延遲觸發信號。
[0007]本發明還公開一種隨機數產生器,包括有一隨機組件;以及一延遲裝置,用來產生一信號以提供予該隨機組件。該延遲裝置包括有一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間;一多任務器,耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值;以及一延遲選擇裝置,耦接至該多任務器,用來產生一選擇信號,該選擇信號控制該多任務器選擇輸出該延遲信號作為該延遲觸發信號。
[0008]本發明還公開一種隨機數產生器,包括有多個隨機組件;以及一延遲裝置,用來產生一信號以提供予該多個隨機組件中每一隨機組件。該延遲裝置包括有一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間;多個多任務器,其中每一多任務器都耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該多個隨機組件中每一隨機組件產生一隨機位值;以及一延遲選擇裝置,耦接至該多個多任務器,用來產生一選擇信號,該選擇信號控制該多個多任務器中每一多任務器選擇輸出該延遲信號作為該延遲觸發信號。
[0009]本發明還公開一種在一隨機數產生器中產生一信號以提供予一隨機組件的方法,包括有產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間;以及產生一選擇信號,該選擇信號選擇輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值。
【專利附圖】
【附圖說明】[0010]圖1為本發明實施例一亞穩態型隨機組件的示意圖。
[0011]圖2A為亞穩態型隨機組件在振蕩模式時的等效電路示意圖。
[0012]圖2B為亞穩態型隨機組件在解析模式時的等效電路示意圖。
[0013]圖3為本發明實施例亞穩態型隨機組件的波形示意圖。
[0014]圖4A為使用延遲觸發信號的亞穩態型隨機組件的波形示意圖。
[0015]圖4B為圖4A的波形的細部示意圖。
[0016]圖5為本發明實施例一亞穩態的示意圖。
[0017]圖6為本發明實施例一延遲裝置搭配隨機組件的示意圖。
[0018]圖7為本發明實施例一隨機數值產生流程的示意圖。
[0019]圖8為本發明另一實施例一隨機數值產生流程的示意圖。
[0020]圖9A為本發明實施例一隨機數產生器的示意圖。
[0021]圖9B為圖9A所示的延遲觸發信號的詳細說明的示意圖。
[0022]圖10為本發明另一實施例一隨機數產生器的示意圖。
[0023]圖1lA為公知一隨機數產生器的一隨機數源的示意圖。
[0024]圖1lB為本發明實施例具有一隨機數源搭配一延遲裝置的一隨機數產生器的示意圖。
[0025]其中,附圖標記說明如下:
[0026]10亞穩態型隨機組件
[0027]100、102反相器
[0028]110、112延遲單元
[0029]120、122多任務器
[0030]Q輸出信號[0031]TRIG觸發信號
[0032]TRIG_D延遲觸發信號
[0033]60隨機數產生器
[0034]600延遲裝置
[0035]602延遲模塊
[0036]604多任務器
[0037]606延遲選擇裝置
[0038]Sdl選擇信號
[0039]Nd_l~Nd_N延遲信號
[0040]70流程
[0041]700 ~712步驟
[0042]80流程
[0043]800 ~814步驟
[0044]90隨機數產生器
[0045]900延遲裝置
[0046]902延遲模塊
[0047]904_1 ~904_X多任務器
[0048]906延遲選擇裝置
[0049]910隨機數產生器控制單元
[0050]950_1 ~950_X隨機組件
[0051]TRIG_D1~TRIG_DX延遲觸發信號
[0052]1000隨機數產生器
[0053]1002延遲模塊
[0054]1004_1 ~1004_X多任務器
[0055]1006延遲選擇裝置
[0056]1010延遲裝置
[0057]1050_1 ~1050_X隨機組件
[0058]FF_1 ~FF_X正反器
[0059]1100隨機數源
[0060]RC_1~RC_Y隨機組件
[0061]1150隨機數源
[0062]RC_1』~RC_X』隨機組件
[0063]1152延遲裝置
【具體實施方式】
[0064] 本發明的實施例主要應用於隨機組件。在上述二種類型的隨機組件中,由於亞穩態型(metastability-based)隨機組件使用較少電路組件且耗電量較低,相較於須使用環式振蕩器(ring oscillator)的延遲變異型(jitter-based)隨機組件來說,亞穩態型隨機組件更容易實現。因此,較佳地,亞穩態型隨機組件可實施於隨機數產生器中作為隨機數源(entropy source)。請參考圖1,圖1為本發明實施例一亞穩態型隨機組件10的示意圖。亞穩態型隨機組件10通過一雙重單反相器交互反饋電路(dual single-1nvertercross-feedback circuit)來實現,其包括有反相器100、102、延遲單元110、112及多任務器120、122。如圖1所示,延遲單元110的輸入端耦接至反相器100的輸出端,而延遲單元112的輸入端耦接至反相器102的輸出端。多任務器120、122都具有二輸入端、一輸出端及一控制端。在多任務器120中,一輸入端耦接至延遲單元110的輸出端,另一輸入端耦接至反相器102的輸出端,輸出端耦接至反相器100的輸入端,以及控制端接收一觸發信號TRIG。在多任務器122中,一輸入端耦接至延遲單元112的輸出端,另一輸入端耦接至反相器100的輸出端,輸出端耦接至反相器102的輸入端,以及控制端接收觸發信號TRIG。
[0065]請繼續參考圖1。觸發信號TRIG同時控制多任務器120、122,使隨機組件10可在一振蕩模式(oscillation mode)及一解析模式(resolution mode)之間切換。舉例來說,當觸發信號TRIG為「I」時,多任務器120會控制延遲單元110的輸出端耦接至反相器100的輸入端,而多任務器122會控制延遲單元112的輸出端耦接至反相器102的輸入端,使隨機組件10處在振蕩模式。請參考圖2A,圖2A為亞穩態型隨機組件10在振蕩模式時的等效電路示意圖。如圖2A所示,隨機組件10可簡化為二振蕩器。一輸出信號Q可產生於反相器100、102其中之一的輸出端,在振蕩模式中,輸出信號Q在「I」與「O」之間振蕩。另一方面,當觸發信號TRIG為「O」時,多任務器120會控制反相器102的輸出端耦接至反相器100的輸入端,而多任務器122會控制反相器100的輸出端耦接至反相器102的輸入端,使隨機組件10處在解析模式。請參考圖2B,圖2B為亞穩態型隨機組件10在解析模式時的等效電路示意圖。如圖2B所示,隨機組件10可簡化為二個以交互反饋方式連接的反相器。在解析模式中,輸出信號Q會隨機趨向於一輸出值「I」或「O」。
[0066]請參考圖3,圖3為本發明實施例亞穩態型隨機組件10的波形示意圖。如圖3所示,當觸發信號TRIG為「I」時,隨機組件10處在振蕩模式,且輸出信號Q為振蕩的狀態。當觸發信號TRIG轉換為「O」時,多任務器120、122同時被觸發信號TRIG所觸發,而隨機組件10進入解析模式,使得輸出信號Q趨向於一輸出值「I」或「O」。接著,一取樣時鐘對輸出信號Q進行取樣,以輸出取樣結果作為隨機組件10的一隨機位值。如圖3所示,輸出信號Q在隨機組件10進入解析模式且經過一個頻率以後被取樣,但在其它實施例中,只要隨機組件10仍落在解析模式且輸出信號Q為穩定狀態,取樣時鐘可在任何時間對輸出信號Q進行取樣,而不限於此。
[0067]然而,如上所述,隨機組件的隨機性會受到環境因素(如工藝過程、電壓及溫度)影響,使得隨機組件所輸出的隨機位值偏離真正的隨機。為提升隨機數產生器的隨機性,可將觸發信號TRIG延遲不同時間,以在不同時間點對多任務器120、122進行觸發。使用延遲的觸發信號TRIG_D的亞穩態型隨機組件10的波形繪示於圖4A。如圖4A所示,延遲觸發信號TRIG_D在不同時間點由「I」改變至「0」,亦即,延遲觸發信號TRIG_D在不同時間點對隨機組件10進行觸發,使得隨機組件10在不同時間點由振蕩模式切換至解析模式,因此,輸出信號Q可在不同條件之下由振蕩的狀態轉換為固定輸出值「I」或「0」,進而提升輸出信號Q數值的隨機性。
[0068]更具體而言,請參考圖4B,圖4B繪示圖4A的波形的細部。圖4B包括取樣時鐘、延遲觸發信號TRIG_D及輸出信號Q的詳細波形。如圖4B所示,延遲觸發信號TRIG_D可將原始的觸發信號TRIG延遲一段時間,進而在一個時序區間內的不同時間點觸發隨機組件10,使其由振蕩模式轉換至解析模式。若隨機組件10在某一點A被觸發,此時由於輸出信號Q振蕩至一較高電壓,隨機組件10較可能傾向於輸出「I」。若隨機組件10在某一點B被觸發,此時由於輸出信號Q振蕩至一較低電壓,隨機組件10較可能傾向於輸出「O」。若隨機組件10在某一點C被觸發,此時由於輸出信號Q振蕩至一中間電壓,則隨機組件10輸出「I」或「O」的機率相近。當輸出信號Q位於點C時可視為亞穩態,其詳細原理繪示於圖5中。當隨機組件10在點C被觸發時,其呈現的狀態如同放置在一鐘形曲線頂端的一顆球。這顆球可能會在鐘的頂端停留一段時間,接著隨機地往右側(邏輯「I」)或左側(邏輯「O」)落下。因此,上述實施例的高隨機性不僅來自於觸發點在時序區間內的不確定性,同時也來自於亞穩態狀況下的不確定性。
[0069]延遲觸發信號TRIG_D的不同延遲時間可通過一延遲裝置來實現。請參考圖6,圖6為本發明實施例一延遲裝置600搭配隨機組件10的示意圖。延遲裝置600所產生的信號可用於隨機組件10,其包括有一延遲模塊602、一多任務器604及一延遲選擇裝置606。延遲模塊602可用來產生N個延遲信號Nd_l~Nd_N,其中N可為大於I的任意正整數。每一延遲信號Nd_l~Nd_N具有大於或等於零的延遲時間,且每一延遲時間都不同於其它延遲信號的延遲時間。多任務器604耦接至延遲模塊602,用來輸出延遲信號Nd_l~Nd_N中任一延遲信號作為一延遲觸發信號TRIG_D,以控制隨機組件10產生一隨機位值。延遲選擇裝置606稱接至多任務器604,用來產生一選擇信號Sm,選擇信號Sd1j控制多任務器604選擇輸出任一延遲信號作為延遲觸發信號TRIG_D。 [0070]詳細來說,當隨機組件10需要產生一隨機位值時,觸發信號TRIG不直接觸發隨機組件10,而是先由延遲裝置600中的延遲模塊602所接收。延遲模塊602接收觸發信號TRIG以後,將觸發信號TRIG分別延遲一段不同的時間,以產生延遲信號Nd_l~Nd_N,其中每一延遲時間都大於或等於零且不同於其它延遲信號的延遲時間。接著,延遲信號Nd_l~Nd_N分別由多任務器604的N個輸入端所接收。延遲選擇裝置606並產生選擇信號SDL以控制多任務器604選擇任一延遲信號Nd_l~Nd_N並將其輸出,作為延遲觸發信號TRIG_D。隨機組件10接收到延遲觸發信號TRIG_D以後,再由振蕩模式轉換為解析模式,以產生隨機位值。由於延遲觸發信號TRIG_D可能的延遲時間具有一定的變異程度,因此隨機位值也會具有一定的隨機性。
[0071]在部分實施例中,由於延遲裝置600搭配隨機組件10輸出的隨機位值已具有足夠的隨機性,其足以構成一隨機數產生器60。在系統應用上,隨機數產生器60用來產生具有一預設長度的隨機位值序列。因此,可在隨機數產生器60中利用一判斷單元來判斷隨機數產生器60所產生的隨機位值的數量是否已達到預設長度(即需要產生的隨機位值數量)。每當系統需要一串隨機位值序列時,觸發信號TRIG經由延遲裝置600的延遲,產生具有任意延遲時間的延遲觸發信號TRIG_D,以觸發隨機組件10由振蕩模式轉換至解析模式,進而產生一隨機位值。接著,判斷單元判斷隨機數產生器60所產生的隨機位值的數量是否達到預設長度。若判斷單元判斷隨機數產生器60所產生的隨機位值的數量未達到預設長度時,觸發信號TRIG再次被延遲,以產生下一次的延遲觸發信號了1?16_0來觸發隨機組件10,進而產生下一個隨機位值。若判斷單元判斷隨機數產生器60所產生的隨機位值的數量已達到預設長度時,即完成隨機位值序列的產生流程。[0072]為了產生具有較高隨機性的隨機位值序列,延遲信號Nd_l~Nd_N的數量必須夠大。具體來說,數量N必須足以提供延遲選擇裝置606進行選擇,以確保隨機位值序列中每一隨機位值都可對應至延遲信號Nd_l~Nd_N中的不同延遲信號,進而達到較高的隨機性。一般來說,當延遲信號Nd_l~Nd_N的數量愈大,隨機性就會愈高。換句話說,若隨機數產生器60需要產生的隨機位值序列的長度愈長,則隨機數產生器60需要更多延遲信號Nd_l~Nd_N來達到較高的隨機性。
[0073]對一串隨機位值序列而言,延遲選擇裝置606可控制多任務器604依任何順序選擇延遲信號Nd_l~Nd_N。舉例來說,多任務器604可依直接順序選擇延遲信號Nd_l~Nd_N,即Nd_l、Nd_2、Nd_3...。此方式可通過一計數器來實現,例如上數/下數計數器(up /down counter)、環形計數器(ring counter)、強生計數器(Johnson counter)或格雷碼計數器(Gray-code counter).計數器可用於延遲選擇裝置606中,以根據計數器的類型,依序產生選擇信號、。選擇信號、可通過具有1g2 (N)位的二進位信號來實現,其可控制多任務器604在N個延遲信號之間進行選擇。若延遲選擇裝置606通過一計數器來實現時,選擇信號Sm可視為計數器的輸出信號,使得延遲信號Nd_l~Nd_N可根據計數器的類型,依照一特定順序進行選擇。一般來說,計數器的結構較為簡單,可降低延遲裝置600的耗電及電路面積。
[0074]若需要產生具有更高隨機性的隨機位值序列,延遲信號Nd_l~Nd_N的選擇可通過更複雜的方式進行。舉例來說,延遲信號Nd_l~Nd_N可依照一虛擬隨機(pseudorandom)的順序進行選擇。此選擇方式可通過一線性反饋移位寄存器(Linear FeedbackShift Register, LFSR)來實現,線性反饋移位寄存器用於延遲選擇裝置606中,以產生虛擬隨機順序的選擇信號Sm。在部分實施例中,隨機數產生器60還包括一隨機數產生器控制單元(未繪示)。隨機數產生器控制單元會產生一種子值,種子值可用來輸入延遲選擇裝置606,進而產生選擇信號Sm,隨機數產生器控制單元並產生觸發信號TRIG以提供予延遲模塊602。種子值可針對用於延遲選擇裝置606的計數器或線性反饋移位寄存器進行初始化。每當系統需要一隨機位值序列而啟動隨機數產生器60時,隨機數產生器控制單元可產生不同種子值,用以初始化計數器或線性反饋移位寄存器,進而提升隨機數產生器60的隨機性。
[0075]上述關於隨機數產生器60的運作可歸納為一隨機數值產生流程70。如圖7所示,隨機數值產生流程70包括以下步驟:
[0076]步驟700:開始。
[0077]步驟702:產生一種子值,以對延遲選擇裝置606進行初始化。
[0078]步驟704:產生觸發信號TRIG,以提供予延遲模塊602。
[0079]步驟706:延遲模塊602延遲觸發信號TRIG以產生延遲信號Nd_l~Nd_N,其中每一延遲信號Nd_l~Nd_N具有一延遲時間,且每一延遲信號Nd_l~Nd_N的延遲時間互不相同。
[0080]步驟708:延遲選擇裝置606產生選擇信號S1^以控制多任務器604選擇輸出延遲信號Nd_l~Nd_N中一延遲信號作為延遲觸發信號TRIG_D,延遲觸發信號TRIG_D則控制隨機組件10產生一隨機位值。
[0081]步驟710:判斷單元判斷隨機數產生器60所產生的隨機位值的數量是否達到需要產生的一預設數量。若是,則執行步驟712 ;若否,則執行步驟704。
[0082]步驟712:結束。
[0083]在部分實施例中,延遲信號Nd_l~Nd_N的選擇可由隨機數產生器60先前輸出的隨機位值或其它隨機數源進行控制。此選擇方式可依據隨機數產生器60先前輸出的一隨機位值或數個隨機位值的結合來決定,或通過其它隨機數源來決定。舉例來說,隨機數產生器控制單元或延遲選擇裝置606可接收隨機組件10的輸出信號Q,並根據先前接收的一輸出信號Q或部分輸出信號Q的結合來產生選擇信號Sm。如此一來,選擇信號、可依照真正隨機的順序來控制多任務器604選擇延遲信號Nd_l~Nd_N,可更進一步提升隨機數產生器60的隨機性。
[0084]上述關於隨機數產生器60根據先前的隨機位值選擇延遲信號Nd_l~Nd_N的運作可歸納為一隨機數值產生流程80。隨機數值產生流程80與隨機數值產生流程70略有不同。如圖8所示,隨機數值產生流程80包括以下步驟:
[0085]步驟800:開始。
[0086]步驟802:產生一種子值,以根據隨機數產生器60先前輸出的隨機位值,對延遲選擇裝置606進行初始化。
[0087]步驟804:產生觸發信號TRIG,以提供予延遲模塊602。
[0088]步驟806:延遲模塊602延遲觸發信號TRIG以產生延遲信號Nd_l~Nd_N,其中每一延遲信號Nd_l~Nd_N具有一延遲時間,且每一延遲信號Nd_l~Nd_N的延遲時間互不相同。
[0089]步驟808:延遲選擇裝置606產生選擇信號Si^以控制多任務器604選擇輸出延遲信號Nd_l~Nd_N中一延遲信號作為延遲觸發信號TRIG_D,延遲觸發信號TRIG_D則控制隨機組件10產生一隨機位值。
[0090]步驟810:隨機數產生器控制單元接收隨機組件10所輸出的隨機位值。
[0091]步驟812:判斷單元判斷隨機數產生器60所產生的隨機位值的數量是否達到需要產生的一預設數量。若是,則執行步驟814 ;若否,則執行步驟802。
[0092]步驟814:結束。
[0093]為達到更高的隨機性,一隨機數產生器可使用多個隨機組件搭配一延遲裝置來實現,多個隨機組件產生的每一隨機位值可相互結合(如使用互斥或(exclusive-or)邏輯閘),以產生具有更高隨機性的另一隨機位值。請參考圖9,圖9為本發明另一實施例一隨機數產生器90的示意圖。隨機數產生器90包括一延遲裝置900及隨機組件950_1~950_X。延遲裝置900包括一延遲模塊902、多任務器904_1~904_X及一延遲選擇裝置906。延遲模塊902及延遲選擇裝置906的架構及功能分別與延遲模塊602及延遲選擇裝置606相似,且每一多任務器904_1~904_X的架構及功能也相似於多任務器604,因此,用於這些模塊的相同信號都以相同符號表示。實際上,具有多個隨機組件的隨機數產生器也可通過複製多個隨機數產生器60來實現。然而,多個隨機數產生器的結合可能造成更多耗電及更大的電路面積。相較之下,隨機數產生器90僅使用一個延遲模塊902及一個延遲選擇裝置906,使得耗電及電路面積大幅降低。
[0094]隨機數產生器90與隨機數產生器60的主要差異在於隨機數產生器90具有X個隨機組件950_1~950_X。由於每一隨機組件都必須接收一延遲觸發信號,因此須使用X個多任務器904_1~904_X來產生X個延遲觸發信號,以分別提供予X個隨機組件950_1~950_X。此外,隨機數產生器90還包括一隨機數產生器控制單元910,用來產生一種子值,以對延遲選擇裝置906進行初始化,進而產生選擇信號Sm。隨機數產生器控制單元910可能還產生觸發信號TRIG以提供予延遲模塊902。
[0095]詳細來說,當隨機數產生器90需要產生一隨機位值時,觸發信號TRIG先由延遲模塊902所接收。延遲模塊902接收觸發信號TRIG以後,將觸發信號TRIG分別延遲一段不同的時間,以產生延遲信號Nd_l~Nd_N,其中每一延遲時間都大於或等於零且不同於其它延遲信號的延遲時間。接著,延遲信號Nd_l~Nd_N同時由每一多任務器904_1~904_X的輸入端所接收。延遲選擇裝置906利用選擇信號S11來控制每一多任務器904_1~904_X選擇任一延遲信號Nd_l~Nd_N,接著,每一多任務器904_1~904_X輸出所選擇的延遲信號,以分別作為延遲觸發信號TRIG_D1~TRIG_DX中相對應的延遲觸發信號。每一隨機組件950_1~950_X可接收延遲觸發信號TRIG_D1~TRIG_DX中相對應的延遲觸發信號,從而由振蕩模式轉換為解析模式,以產生隨機位值。由於延遲觸發信號了1?16_0可能的延遲時間具有一定的變異程度,因此隨機位值也會具有一定的隨機性。除此之外,隨機組件950_1~950_X所產生的X個隨機位值也可相互結合(如使用互斥或邏輯閘),以產生具有更高隨機性的另一隨機位值作為隨機數產生器90的輸出隨機位值,進而提升隨機數產生器90的隨機性。[0096]值得注意的是,不同延遲觸發信號TRIG_D1~TRIG_DX可由每一多任務器904_1~904_X依照不同方式選擇而得。在部分實施例中,多任務器904_1~904_X可依照不同方式耦接至延遲模塊902,以依照不同方式選擇延遲觸發信號TRIG_D1~TRIG_DX。換句話說,延遲模塊902與不同多任務器904_1~904_X之間可具有不同的接線方式。舉例來說,延遲模塊902與多任務器904_1的輸入端之間的接線可能依照延遲信號Nd_l、Nd_2、Nd_3...、Nd_N的順序連接,延遲模塊902與多任務器904_2的輸入端之間的接線可能依照延遲信號Nd_2、Nd_3…、Nd_N、Nd_l的順序連接,延遲模塊902與多任務器904_3的輸入端之間的接線可能依照延遲信號Nd_3、Nd_4…、Nd_N、Nd_l、Nd_2的順序連接等等。不同接線方式使得多任務器904_1~904_X接收到相同選擇信號Sm時,可選擇具有不同延遲時間的不同延遲信號Nd_l~Nd_N,如此更大幅提升隨機數產生器90的隨機性。在部分實施例中,延遲模塊902與多任務器904_1~904_X中任一多任務器之間的接線可通過其它方式配置甚至以打亂方式配置。此外,選擇不同延遲觸發信號TRIG_D1~TRIG_DX的方式也可通過使用不同類型的多任務器或使多任務器904_1~904_X接收不同選擇信號來實現,而不限於此。
[0097]請參考圖9B,圖9B涉及圖9A所示的延遲觸發信號TRIG_D1~TRIG_DX的詳細說明,其繪示隨機數產生器90的隨機性如何被提升。詳細來說,隨機數產生器90在延遲信號Nd_l~Nd_N中選擇一延遲信號,以產生每一延遲觸發信號TRIG_D1~TRIG_DX,因此,存在於每一延遲觸發信號TRIG_D1~TRIG_DX的延遲時間位於延遲信號Nd_l~Nd_N延遲的時間範圍內且具有一定程度的變異性,因而具有一定程度的隨機性。對每一延遲觸發信號TRIG_D1~TRIG_DX而言,隨機性來自於延遲不同時間長度的觸發點所造成的不確定性。除此之外,更高的隨機性也可來自於延遲模塊902及不同多任務器904_1~904_X之間的接線差異,使得不同多任務器904_1~904_X在接收到相同的選擇信號S11時,選擇具有不同延遲時間的不同延遲信號Nd_l?Nd_N,進而產生具有不同延遲時間的延遲觸發信號TRIG_Dl?TRIG_DX。更進一步地,X個隨機位值輸出可相互結合併產生一具有較高隨機性的隨機位值。在此情況下,若水平線代表根據延遲時間的不確定性所產生的隨機性且垂直線代表根據不同接線所產生的隨機性時,更高的隨機性即來自於對應於水平線及垂直線的兩種隨機性的結合。換句話說,對應於水平線的隨機性以及對應於垂直線的隨機性可相互結合,進而產生一種對應於面的更高隨機性。
[0098]值得注意的是,本發明的主要精神在於提供一種用於一隨機數產生器的延遲裝置及方法,以產生用於隨機數產生器中的隨機組件的延遲輸入信號,進而提升隨機數產生器的隨機性。本領域的技術人員當可據以修飾或變化,而不限於此。換句話說,只要隨機數產生器的隨機性可通過延遲其觸發信號的時間來提升,都屬於本發明的範疇,其任何修飾或變化都可根據系統需求進行調整。舉例來說,一隨機數產生器可根據系統對隨機性的需求,使用任何數量的隨機組件,而不限於此。
[0099]除此之外,上述實施例中的隨機組件也可通過環式振蕩器來實現。請參考圖10,圖10為本發明另一實施例一隨機數產生器1000的示意圖。如圖10所示,隨機數產生器1000包括一延遲裝置1010、隨機組件1050_1?1050_X及正反器(flip-flop)FF_l?FF_X。延遲裝置1010包括一延遲模塊1002、多任務器1004_1?1004_X及一延遲選擇裝置1006。延遲模塊1002、多任務器1004_1?1004_X及延遲選擇裝置1006的架構及功能都分別與延遲模塊902、多任務器904_1?904_X及延遲選擇裝置906相似,因此,相關於這些模塊的相同信號都以相同符號表示。隨機數產生器1000與隨機數產生器90之間的主要差異在於隨機數產生器1000使用延遲變異型隨機組件1050_1?1050_X (即環式振蕩器)作為隨機數源。隨機組件1050_1?1050_X的輸出分別由正反器FF_1?FF_X進行取樣,以產生X個隨機位值。正反器FF_1?FF_X分別接收延遲裝置1010所產生的延遲觸發信號TRIG_D1?TRIG_DX作為取樣時鐘,以分別對隨機組件1050_1?1050_X的輸出進行取樣。如此一來,隨機組件1050_1?1050_X的輸出可通過具有不同延遲時間的延遲取樣時鐘來進行取樣,進而提升隨機數產生器1000的隨機性。除此之外,每一隨機組件1050_1?1050_X也可使用不同數量的反相器,以進一步提升隨機性。關於隨機數產生器1000及延遲裝置1010的詳細運作方式已詳述於前文,在此不再贅述。
[0100]根據本發明的上述實施例,使用少量隨機組件即可達到一定的隨機性,然而,在公知技術中,同樣程度的隨機性必須使用更多隨機組件才能達到。請參考圖1lA及圖11B,其中圖1lA為一公知隨機數產生器的一隨機數源1100的示意圖,而圖1lB為本發明實施例具有一隨機數源1150搭配一延遲裝置1152的一隨機數產生器的示意圖。隨機數源1100包括Y個隨機組件RC_1?RC_Y,同時隨機數源1150包括X個隨機組件RC_1』?RC_X』。假設所有隨機組件RC_1?RC_Y及RC_1』?RC_X』都相同,若隨機數源1100的隨機性與隨機數源1150相等時,隨機組件RC_1?RC_Y的數量必須大於隨機組件RC_1』?RC_X』的數量(即Y>X)。如此一來,相較於公知隨機數產生器,本發明上述實施例的隨機數產生器使用較少隨機組件即可達到相同的隨機性,因而大幅節省耗電及電路面積,有時還可節省產生隨機位值須耗費的時間。舉例來說,若系統需要32個隨機位值時,隨機數源1100可使用32個隨機組件(即Υ=32),並結合32個隨機組件的隨機輸出值(如使用互斥或邏輯閘)來實現,因此每一周期可產生具有足夠隨機性的一隨機位值,接著,隨機數源1100可在32個周期中重複同樣的流程32次,以產生所需的32個隨機位值。相較之下,隨機數源1150僅須使用一隨機組件(即X=l),即可在每一周期產生具有足夠隨機性的一隨機位值,接著,隨機數源1150可在32個周期中重複同樣的流程32次,以產生所需的32個隨機位值。在其它實施例中,隨機數源1150也可使用32個隨機組件(即X=32),直接產生32個具有足夠隨機性的隨機位值。如此一來,產生隨機位值所花費的時間可大幅降低。
[0101]在公知技術中,公知隨機數產生器的隨機數源往往使用大量的隨機組件並結合這些隨機組件的輸出結果以達到較高的隨機性,此大量的隨機組件會消耗大量的電能並佔據大幅電路面積。此外,每一標準邏輯單元都具有某種程度的一致性,因此,將這些具有同構型的隨機組件的輸出值結合,所產生的結果往往不具有令人滿意的隨機性。相較之下,本發明提供一種用於隨機數產生器的延遲裝置及方法,其可產生延遲的輸入信號以提供予隨機數產生器中的隨機組件。因此,相較於公知隨機數產生器而言,通過本發明實施例,僅須使用較少隨機組件即可達到相同的隨機性,進而節省耗電及電路面積,產生隨機位值所花費的時間也可大幅降低。
[0102]以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種用於一隨機數產生器中的延遲裝置,用來產生一信號以提供予一隨機組件,該延遲裝置包括有: 一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間; 一多任務器,耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值;以及 一延遲選擇裝置,耦接至該多任務器,用來產生一選擇信號,該選擇信號控制該多任務器選擇輸出該延遲信號作為該延遲觸發信號。
2.如權利要求1所述的延遲裝置,其特徵在於,該隨機數產生器還包括一隨機數產生器控制單元,用來初始化該延遲選擇裝置,並產生一觸發信號以提供予該延遲模塊,使得該延遲模塊延遲該觸發信號以產生該多個延遲信號。
3.如權利要求1所述的延遲裝置,其特徵在於,該隨機組件是一亞穩態型隨機組件。
4.如權利要求1所述的延遲裝置,其特徵在於,該隨機組件是一延遲變異型隨機組件。
5.如權利要求1所述的延遲裝置,其特徵在於,該延遲選擇裝置包括一計數器,以根據該計數器的類型,依序選擇該延遲信號作為該延遲觸發信號並輸出。
6.如權利要求1所述的延遲裝置,其特徵在於,該延遲選擇裝置包括一線性反饋移位寄存器,用來依照一虛擬隨機的順序選擇該延遲信號作為該延遲觸發信號並輸出。
7.如權利要求6所述的延遲裝置,其特徵在於,該線性反饋移位寄存器根據一種子值進行初始化。
8.如權利要求7所述的延遲裝置,其特徵在於,該種子值是由一隨機數產生器控制單元或該隨機組件所產生。
9.如權利要求1所述的延遲裝置,其特徵在於,該隨機數產生器還包括一判斷單元,用來判斷由該隨機數產生器所產生的隨機位值的數量是否達到需要產生的一預設數量。
10.如權利要求9所述的延遲裝置,其特徵在於,當該判斷單元判斷所產生的該隨機位值的數量未達到該預設數量時,該延遲選擇裝置產生另一選擇信號,來控制該多任務器選擇輸出另一延遲信號作為該延遲觸發信號,以控制該隨機組件產生另一隨機位值。
11.一種隨機數產生器,包括有: 一隨機組件;以及 一延遲裝置,用來產生一信號以提供予該隨機組件,該延遲裝置包括有: 一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間; 一多任務器,耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值;以及 一延遲選擇裝置,耦接至該多任務器,用來產生一選擇信號,該選擇信號控制該多任務器選擇輸出該延遲信號作為該延遲觸發信號。
12.如權利要求11所述的隨機數產生器,其特徵在於,該隨機數產生器還包括一隨機數產生器控制單元,用來初始化該延遲選擇裝置,並產生一觸發信號以提供予該延遲模塊,使得該延遲模塊延遲該觸發信號以產生該多個延遲信號。
13.如權利要求11所述的隨機數產生器,其特徵在於,該隨機組件是一亞穩態型隨機組件。
14.如權利要求11所述的隨機數產生器,其特徵在於,該隨機組件是一延遲變異型隨機組件。
15.如權利要求11所述的隨機數產生器,其特徵在於,該延遲選擇裝置包括一計數器,以根據該計數器的類型,依序選擇該延遲信號作為該延遲觸發信號並輸出。
16.如權利要求11所述的隨機數產生器,其特徵在於,該延遲選擇裝置包括一線性反饋移位寄存器,用來依照一虛擬隨機的順序選擇該延遲信號作為該延遲觸發信號並輸出。
17.如權利要求16所述的隨機數產生器,其特徵在於,該線性反饋移位寄存器根據一種子值進行初始化。
18.如權利要求17所述的隨機數產生器,其特徵在於,該種子值是由一隨機數產生器控制單元或該隨機組件所產生。
19.如權利要求11所述的隨機數產生器,其特徵在於,該隨機數產生器還包括一判斷單元,用來判斷由該隨機數產生器所產生的隨機位值的數量是否達到需要產生的一預設數量。
20.如權利要求19所述的隨機數產生器,其特徵在於,當該判斷單元判斷所產生的該隨機位值的數量未達到該預設數量時,該延遲選擇裝置產生另一選擇信號,來控制該多任務器選擇輸出另一延遲信號作為該延遲觸發信號,以控制該隨機組件產生另一隨機位值。
21.一種隨機數產生器,包括有: 多個隨機組件;以及 一延遲裝置,用來產生一信號以提供予該多個隨機組件中每一隨機組件,該延遲裝置包括有: 一延遲模塊,用來產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間; 多個多任務器,其中每一多任務器都耦接至該延遲模塊,用來輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該多個隨機組件中每一隨機組件產生一隨機位值;以及 一延遲選擇裝置,耦接至該多個多任務器,用來產生一選擇信號,該選擇信號控制該多個多任務器中每一多任務器選擇輸出該延遲信號作為該延遲觸發信號。
22.如權利要求21所述的隨機數產生器,其特徵在於,該隨機數產生器還包括一隨機數產生器控制單元,用來初始化該延遲選擇裝置,並產生一觸發信號以提供予該延遲模塊,使得該延遲模塊延遲該觸發信號以產生該多個延遲信號。
23.如權利要求21所述的隨機數產生器,其特徵在於,該多個隨機組件中每一隨機組件都為一亞穩態型隨機組件。
24.如權利要求21所述的隨機數產生器,其特徵在於,該多個隨機組件中每一隨機組件都為一延遲變異型隨機組件。
25.如權利要求23所述的隨機數產生器,其特徵在於,該延遲選擇裝置包括一計數器,以根據該計數器的類型,依序選擇該延遲信號作為該延遲觸發信號並輸出。
26.如權利要求21所述的隨機數產生器,其特徵在於,該延遲選擇裝置包括一線性反饋移位寄存器,用來依照一虛擬隨機的順序選擇該延遲信號作為該延遲觸發信號並輸出。
27.如權利要求26所述的隨機數產生器,其特徵在於,該線性反饋移位寄存器根據一種子值進行初始化。
28.如權利要求27所述的隨機數產生器,其特徵在於,該種子值是由一隨機數產生器控制單元或該隨機組件所產生。
29.如權利要求21所述的隨機數產生器,其特徵在於,該延遲觸發信號是由該多個多任務器中每一多任務器依照不同方式選擇而得,以控制該多個隨機組件中每一隨機組件。
30.如權利要求29所述的隨機數產生器,其特徵在於,該多個多任務器依照不同方式耦接至該延遲模塊,使得該多個多任務器中每一多任務器依照不同方式選擇該延遲觸發信號,以控制該多個隨機組件中每一隨機組件。
31.如權利要求21所述的隨機數產生器,其特徵在於,該隨機數產生器還包括一判斷單元,用來判斷由該隨機數產生器所產生的隨機位值的數量是否達到需要產生的一預設數量。
32.如權利要求31所述的隨機數產生器,其特徵在於,當該判斷單元判斷所產生的該隨機位值的數量未達到該預設數量時,該延遲選擇裝置產生另一選擇信號,來控制該多個多任務器中每一多任務器選擇 輸出另一延遲信號作為該延遲觸發信號,以控制該多個隨機組件中每一隨機組件產生另一隨機位值。
33.一種在一隨機數產生器中產生一信號以提供予一隨機組件的方法,包括有: 產生多個延遲信號,其中每一延遲信號具有一延遲時間,且該延遲時間不同於其它延遲信號的延遲時間;以及 產生一選擇信號,該選擇信號選擇輸出該多個延遲信號中一延遲信號作為一延遲觸發信號,以控制該隨機組件產生一隨機位值。
34.如權利要求33所述的方法,其特徵在於,該方法還包括初始化該延遲觸發信號的選擇,並產生一觸發信號,用來產生該多個延遲信號。
35.如權利要求33所述的方法,其特徵在於,產生該選擇信號,以選擇輸出該多個延遲信號中該延遲信號作為該延遲觸發信號的步驟包括根據一計數器的類型產生該選擇信號,以依序選擇該延遲信號作為該延遲觸發信號並輸出。
36.如權利要求33所述的方法,其特徵在於,產生該選擇信號,以選擇輸出該多個延遲信號中該延遲信號作為該延遲觸發信號的步驟包括利用一線性反饋移位寄存器產生該選擇信號,以依照一虛擬隨機的順序選擇該延遲信號作為該延遲觸發信號並輸出。
37.如權利要求36所述的方法,其特徵在於,該線性反饋移位寄存器根據一種子值進行初始化。
38.如權利要求37所述的方法,其特徵在於,該種子值是由一隨機數產生器控制單元或該隨機組件所產生。
39.如權利要求33所述的方法,其特徵在於,該方法還包括判斷由該隨機數產生器所產生的隨機位值的數量是否達到需要產生的一預設數量。
40.如權利要求39所述的方法,其特徵在於,當判斷所產生的該隨機位值的數量未達到該預設數量時,產生另一選擇信號來選擇輸出另一延遲信號作為該延遲觸發信號,以控制該隨機組件產生另一隨機位值。
【文檔編號】G06F7/58GK103927147SQ201310143391
【公開日】2014年7月16日 申請日期:2013年4月23日 優先權日:2013年1月16日
【發明者】朱奉升 申請人:擎泰科技股份有限公司