国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      偽隨機數發(fā)生器的制作方法

      文檔序號:6397319閱讀:306來源:國知局
      專利名稱:偽隨機數發(fā)生器的制作方法
      技術領域
      本發(fā)明涉及一種偽隨機數發(fā)生器,其運用一個線性反饋移位寄存器(以下簡稱“LFSR”)來產生偽隨機數。
      背景技術
      盡管隨機數在傳統(tǒng)上被用于加密算法等,但比隨機數更容易產生的偽隨機數往往被更頻繁地使用,因為它們很容易操作和處理。
      用于產生偽隨機數的偽隨機數發(fā)生器通常采用LFSR來產生具有長周期的隨機數。該LFSR包括多個串連寄存器,和一個異或邏輯電路(以下稱為XOR電路),其中,預定寄存器的輸出數據通過該XOR電路被反饋到第一個寄存器。由于在反饋路徑中提供所述XOR電路,所述LFSR產生具有較長周期的隨機數。
      例如,包含n個寄存器的LFSR產生隨機數,這些隨機數的周期是n階線性最大循環(huán)序列(稱為M-序列)2n-1。應當注意,由LFSR提供的隨機數是重復產生的M序列的隨機數,且LFSR的周期所指的不是時間周期,而是所述M序列的長度。
      在使用偽隨機數產生密碼的加密電路等中,如果顯示偽隨機數序列或偽隨機邏輯,則可以從一個所獲得的密碼還原一個原始的明碼,從而使得有效地產生不可預測的隨機數序列非常重要。
      盡管LFSR的階數n(寄存器的個數)越大,由其產生的隨機數的位數越大,偽隨機數序列或偽隨機數發(fā)生邏輯就越難以破解,但有些情況下,由于諸如電路規(guī)模等的限制,只能使用具有少數位的LFSR。為了解決這一問題,已經研究了各種技術來提高由低階LFSR產生的偽隨機數的隨機性。例如,日本專利No.2937919描述了一種偽隨機數發(fā)生器,包括不同頻率的多個時鐘,并利用LFSR的一個預定輸出切換為LFSR中的每個寄存器提供的一個操作時鐘(移位時鐘)。
      當固定一個移位時鐘時,該LFSR以預定周期從一個預定的初始值(種籽(SEED))重復產生相同的隨機數序列。另一方面,在上述日本專利No.2937919中描述的偽隨機數發(fā)生器使用LFSR的預定輸出切換移位時鐘,以便引起移位操作的定時變化,結果使得視在周期比由LFSR的階數確定的周期更長。
      但是,盡管上述配置依賴于移位操作中的變化,以改變產生隨機數的定時,但SEED和由此產生的隨機數序列與那些用固定移位時鐘產生的相同。具體地,如圖1所示,盡管隨機數是以隨機時間間隔產生的(但是請注意,從某個短周期來看,它們是以恒定間隔連續(xù)產生(分布)的),但它們不會打亂用固定移位時鐘產生的隨機數的順序。因此,盡管在日本專利No.2937919中描述的偽隨機數發(fā)生器比具有固定移位時鐘的配置提高了隨機性,但它仍然不能提供足夠高的隨機性,因為對所述偽隨機數序列或偽隨機數發(fā)生邏輯的識別具有很高的易受攻擊性。

      發(fā)明內容
      因此,本發(fā)明的一個目的是提供一種偽隨機數發(fā)生器,其能夠實現(xiàn)高度隨機性,并使得從其產生的隨機數序列分析其電路結構更加困難。
      為了實現(xiàn)上述目的,根據本發(fā)明的偽隨機數發(fā)生器具有一個LFSR,該LFSR包括第一邏輯運算電路,用于輸出從預定寄存器輸出的數據的邏輯運算結果;和第二邏輯運算電路,用于輸出從外部提供的輸入數據和第一邏輯運算電路的輸出信號的邏輯運算結果,給LFSR的任一個寄存器。在上述結構中,給一個寄存器反饋從外部提供的輸入數據的邏輯運算結果和從預定寄存器輸出的數據的邏輯運算結果,使得所述線性反饋寄存器產生更不規(guī)則的隨機數序列以提高隨機性。
      此外,當所述偽隨機數發(fā)生器通電時,在振蕩器的振蕩穩(wěn)定之前所產生的,因此也是頻率不穩(wěn)定的一個時鐘被提供給所述線性反饋寄存器作為移位時鐘,以產生原種籽(Pre-SEED),根據該Pre-SEED為所述線性反饋寄存器產生一個初始值(SEED)。這樣構成的偽隨機數發(fā)生器可以提高Pre-SEED和在Pre-SEED的基礎上產生的SEED的隨機性。
      此外,所述偽隨機數發(fā)生器可以將從外部輸入的任意數據與線性反饋寄存器的輸出數據的邏輯運算結果寫入該線性反饋寄存器的每個寄存器。該結構可進一步提高由線性反饋寄存器產生的SEED的隨機性。
      因此,所得到的本發(fā)明的隨機數發(fā)生器電路提供高度的隨機性,從所產生的隨機數序列分析電路結構更加困難。
      根據以下參考描述本發(fā)明實例的附圖所進行的說明,本發(fā)明的上述和其它目的、特征、和優(yōu)點將變得更清楚。


      圖1示出由傳統(tǒng)的偽隨機數發(fā)生器產生的隨機數序列的示意圖;圖2示出根據本發(fā)明的偽隨機數發(fā)生器的結構的框圖,與其正常運行關聯(lián);圖3示出圖2所示偽隨機數發(fā)生器的結構的框圖,與其復位時間關聯(lián);圖4示出由本發(fā)明的偽隨機數發(fā)生器產生的隨機數序列的示意圖;圖5示出圖2所示信號發(fā)生器中所包含的用于產生輸入數據的電路的示例結構的電路圖;圖6是表示圖5所示電路的操作的時序圖;圖7示出圖2所示信號發(fā)生器中所包含的用于產生移位時鐘的電路的示例結構的電路圖;圖8是表示圖7所示電路的操作的時序圖;圖9示出圖2所示訪問控制器的示例電路結構的電路圖;圖10是表示圖9所示電路的操作的時序圖;圖11是表示圖2所示訪問控制器的操作的示意圖。
      具體實施例方式
      如圖2所示,根據本發(fā)明的偽隨機數發(fā)生器包括LFSR1;信號發(fā)生器2,用于產生操作LFSR1的移位時鐘(LFSR時鐘)和預定輸入數據(datain);訪問控制器3,用于控制由LFSR1產生的隨機數的讀??;和寫入電路4,用于將從外部提供的數據寫入LFSR1的每個寄存器。此外,根據本發(fā)明的偽隨機數發(fā)生器還包括Pre-SEED電路5,用于產生Pre-SEED,根據該Pre-SEED來在通電之后緊接著的復位時間定義LFSR 1的初始值(SEED),如圖3所示。
      圖2和3用兩部分示出根據本發(fā)明的偽隨機數發(fā)生器的結構,以便于解釋其操作,這在下面描述,其中,圖2示出與正常操作關聯(lián)的結構,圖3示出與偽隨機數發(fā)生器通電后緊接著的復位時間關聯(lián)的結構。本發(fā)明的偽隨機數發(fā)生器可以包括圖2和3中所示的全部或部分組件。當該偽隨機數發(fā)生器包括圖2和3中所示的全部組件時,可以根據正常操作或復位時間切換LFSR1的輸入,或者可選地,可以在所有時間給LFSR1提供信號發(fā)生器2的輸出信號和Pre-SEED電路5的輸出信號,只要該電路的操作不受這些信號的影響即可。
      如圖2所示供給信號發(fā)生器2的第一時鐘CLK1是由環(huán)形振蕩器等產生的恒定周期時鐘。第二時鐘CLK2是利用觸發(fā)器等與第一時鐘CLK1同步的時鐘,由圖中未示出的振蕩器提供或從外部提供,該振蕩器可以包括石英振蕩器等。
      另一方面,如圖3所示,供給Pre-SEED電路5的第三時鐘CLK3是由振蕩器6如環(huán)形振蕩器按照類似于第一時鐘CLK1的方式產生的恒定周期時鐘。第四時鐘CLK4是與第一時鐘CLK1異步的時鐘,由圖中未示出的振蕩器提供或從外部提供,該振蕩器可以包括石英振蕩器等。
      對于第三時鐘CLK3,由包括環(huán)形振蕩器等的振蕩器6產生的時鐘用于提高Pre-SEED的隨機性,這將在下面說明。第一時鐘CLK1沒有這樣的限制,因此,第一時鐘CLK1可以是由如圖中所示應用的振蕩器6產生的時鐘,或者是通過例如一個用于控制時鐘的傳遞/停止的電路(未示出)的時鐘。
      如圖2和3所示,LFSR1包括多個串聯(lián)寄存器;用于對預定寄存器的輸出進行異或運算來傳遞邏輯運算結果的第一XOR電路(XOR1);用于將從信號發(fā)生器2提供的輸入數據與第一XOR電路的輸出數據的異或結果提供給LFSR1的第一寄存器的第二XOR電路(XOR2)。這樣,在本發(fā)明的偽隨機數發(fā)生器中,從第一XOR電路提供并反饋回LFSR1的第一個寄存器的數據被通過第二XOR電路從外部提供的輸入數據改變,從而LFSR1產生更隨機的數據序列,從而提高隨機性,如圖4所示。所述第一XOR電路和第二XOR電路可以是異或非(exclusive NOR)邏輯電路、與(AND)邏輯電路、與非(NAND)邏輯電路、或(OR)邏輯電路、或非(NOR)邏輯電路的邏輯運算電路或由其組成的電路等。第二XOR電路可以提供給LFSR1的任一個寄存器。
      此外,本發(fā)明的偽隨機數發(fā)生器運用LFSR1,該LFSR1的階數大于由其產生的隨機數的位數。例如,當產生16位偽隨機數時,使用26位LFSR1。這是因為這樣的LFSR1產生的偽隨機數的隨機性與利用16位LFSR1產生的偽隨機數相比更高,如上所述。
      此外,在本發(fā)明的偽隨機數發(fā)生器中,信號發(fā)生器2產生多個不同頻率的移位時鐘,從而提供給LFSR1的移位時鐘的頻率以預定間隔切換。具體地,信號發(fā)生器2從第一時鐘CLK1(全頻率)產生一半頻率的分頻時鐘(半頻率),并以預定間隔切換第一時鐘CLK1和分頻時鐘,以便傳遞給LFSR1作為移位時鐘。分頻時鐘不一定要是第一時鐘CLK1的頻率的一半,而可以是任何頻率,例如第一時鐘CLK1的頻率的1/4、1/8、1/16等。
      此外,在本發(fā)明的偽隨機數發(fā)生器中,由LFSR1產生的隨機數在訪問控制器3的控制下被以預定間隔讀取。具體地,在正常操作中,每次給LFSR1提供一個移位時鐘時,它就產生一個隨機數,但訪問控制器3不是按照移位時鐘的定時讀取LFSR1產生的隨機數,而是按照不同周期的時鐘的定時讀取。
      提供寫入電路4,供用戶給LFSR1的每個寄存器寫入任意數據,以便進一步提高LFSR1的初始值(SEED)的隨機性。該寫入電路4包括多個XOR電路,用于對LFSR1的輸出數據和寫入信號進行異或運算,所述寫入信號是由用戶寫入的數據,以便產生邏輯運算的結果。寫入電路4可以包括例如等于所產生初始值位數的多個XOR電路。每個XOR電路的輸出數據通過一個選擇器等(重寫裝置)被寫入LFSR1的預定寄存器。圖2示出由一個XOR電路構成的寫入電路4的結構,但寫入電路4的XOR電路的個數可以是兩個或更多。在該情況下,每個XOR電路的輸出數據可以被寫入LFSR的任一寄存器。寫入電路4的XOR電路可以是異或非(exclusive NOR)邏輯電路、與(AND)邏輯電路、與非(NAND)邏輯電路、或(OR)邏輯電路、或非(NOR)邏輯電路的邏輯運算電路或由其組成的電路等。
      如圖3所示,Pre-SEED電路5包括一個XOR電路,該XOR電路接收第三時鐘CLK3和第四時鐘CLK4,并將該兩個時鐘的異或運算結果提供給LFSR1作為移位時鐘。在通電后緊接著的復位時間內,給LFSR1提供第四時鐘CLK4作為輸入數據。Pre-SEED電路5的XOR電路可以是異或非(exclusiveNOR)邏輯電路、與(AND)邏輯電路、與非(NAND)邏輯電路、或(OR)邏輯電路、或非(NOR)邏輯電路的邏輯運算電路或由其組成的電路等。
      下面將參考圖2、3和5-11描述本發(fā)明的偽隨機數發(fā)生器的操作。
      本發(fā)明的偽隨機數發(fā)生器在通電后緊接著的復位時間內和正常狀態(tài)下呈現(xiàn)不同的操作。首先參考圖3描述復位時間內的操作。
      如上所述,在復位時間內所用的第三時鐘CLK3與包含一個環(huán)形振蕩器等的振蕩器6產生的時鐘相同。因為復位時間緊跟在偽隨機數發(fā)生器通電之后,所以環(huán)形振蕩器的操作還不穩(wěn)定,導致第三時鐘CLK3的頻率變化。
      在本發(fā)明中,為LFSR1提供一個移位時鐘,該移位時鐘是從這樣的不穩(wěn)定第三時鐘CLK3和與第三時鐘CLK3異步的第四時鐘CLK4獲得的異或運算結果。因此,可以給LFSR1提供具有更高隨機性的Pre-SEED。
      下面將參考圖5-11以及圖2描述本發(fā)明的偽隨機數發(fā)生器在正常狀態(tài)的操作。
      圖5是闡明圖2所示信號發(fā)生器2中包括的用于產生輸入數據的電路的典型結構的電路圖。圖6是表示圖5所示電路的操作的時序圖。圖7是闡明圖2所示信號發(fā)生器2中包括的用于產生移位時鐘的電路的典型結構的電路圖。圖8是表示圖7所示電路的操作的時序圖。圖9是闡明圖2所示訪問控制器3的典型結構的電路圖。圖10是表示圖9所示電路的操作的時序圖。圖11是表示圖2所示訪問控制器3的操作的原理圖。
      在本發(fā)明的偽隨機數發(fā)生器中,一旦復位時間終止,LFSR1首先根據在復位時間內產生的Pre-SEED生成隨機數的初始值(SEED)。
      此外,因為本發(fā)明的偽隨機數發(fā)生器包括寫入電路4供用戶從外部將任意數據寫入LFSR1的每個寄存器中,如上所述,所以由用戶輸入的數據(寫入信號)與LFSR1生成的初始值進行異或運算的結果可以寫入LFSR1的每個寄存器。這一功能的應用使得LFSR1能夠產生具有更高隨機性的初始值(SEED)。生成初始值(SEED)后,LFSR1接著從SEED開始產生隨機數。在該情況下,信號發(fā)生器2利用圖5和7所示電路以預定間隔切換提供給LFSR1的移位時鐘的頻率。
      圖5示出用于產生控制用于改變輸入數據(data in)和提供給LFSR1的移位時鐘的定時的時鐘速度控制信號(speed cont sig.)的典型電路。
      在圖5所示電路中,第二時鐘CLK2首先根據第一時鐘CLK1被鎖存到一個觸發(fā)器中(如圖6中的A所示),第二時鐘CLK2的上升沿和下降沿分別被相關的邏輯門檢測到(圖6中到B和C)。然后,電路產生輸入數據(圖6中的data in),該輸入數據在第二時鐘CLK2的上升沿從“1”過渡到“0”,或從“0”過渡到“1”,還產生時鐘速度控制信號(圖6中的speed contsig.),該信號在第二時鐘CLK2的下降沿從“1”過渡到“0”,或從“0”過渡到“1”。
      由圖5所示電路產生的時鐘速度控制信號(speed cont sig.)被提供給圖7所示電路,該電路產生一個時鐘使能信號(CLK enable),用于控制改變所示移位時鐘的定時。如圖7所示,時鐘使能信號(CLK enable)可以通過鎖存一個4值選擇器(MUX)的輸出來產生,其中所述時鐘速度控制信號(speed cont sig.)用作所述4值選擇器的切換信號。具體地,當時鐘速度控制信號(speed cont sig.)為“0”時,用于鎖存所述4值選擇器(MUX)的輸出的鎖存電路(F/F)在第一時鐘CLK1的上升時刻輸出饋送到端子D的在先值的翻轉值,并用2除第一時鐘CLK1,以產生結果信號作為時鐘使能信號(CLK enable)。
      另一方面,當時鐘速度控制信號(speed cont sig.)為“1”時,用于鎖存所述4值選擇器(MUX)的輸出的鎖存電路(F/F)產生一個固定的“1”作為時鐘使能信號(CLK enable),因為輸入端子D上的輸入數據固定為“1”。
      移位時鐘例如由一個門電路產生,該門電路接收所述時鐘使能信號和第一時鐘CLK1。在該情況下,所述門電路在時鐘使能信號為“1”時原封不動地傳遞第一時鐘CLK1,而當時鐘使能信號為“0”時,傳遞頻率為第一時鐘CLK1的一半的移位時鐘。
      當偽隨機數發(fā)生器被測試時,圖5和圖7所示電路中的每一個都可以利用一個測試切換信號被切換到用于測試的輸入信號,其中第二時鐘CLK2、輸入數據(data in)、以及時鐘速度控制信號(speed cont sig.)分別可以被切換到通過相關的選擇器(NUX)提供的測試時鐘、測試數據、和測試控制信號。當測試切換信號有效時(為“1”),圖7所示測試初始值信號的值變?yōu)橛行А?br> 產生用于讀取由LFSR1以預定間隔產生的隨機數的定時信號的訪問控制器3包括例如利用一個3位LFSR的計數器電路,如圖9所示。
      為了從本發(fā)明的偽隨機數發(fā)生器讀取隨機數,將一個讀取控制信號(req sampling)送到所述偽隨機數發(fā)生器。如圖10所示,在接收到該讀取控制信號后,訪問控制器3開始操作3位LFSR1,并在計數器電路計了預定個數的第一時鐘CLK1后(在圖9所示結構中是6個),傳遞一個隨機數讀取使能信號(ack sampling)。這樣傳遞的隨機數讀取使能信號導致傳遞此時由LFSR1產生并存儲在一個寄存器(未示出)中的隨機數。在對第一時鐘CLK1的組數計數的計數器電路中可以設定任何數。隨機數讀取周期可以通過改變接收器電路的結構來改變。
      圖11簡化示出如何每16個時鐘讀取一個隨機數。
      根據按照本發(fā)明配置的偽隨機數發(fā)生器,LFSR1包括一個第一XOR電路,用于將從預定寄存器輸出的數據進行異或運算并將結果輸出;和第二XOR電路,用于將從信號發(fā)生器2提供的輸入數據與第一XOR電路的輸出信號進行異或運算,將其結果提供給LFSR1的第一寄存器,從而將來自預定寄存器的輸出與來自外部的輸入數據的異或運算結果反饋給第一寄存器,從而從LFSR1產生更加不規(guī)則的隨機數序列,提高隨機性。
      此外,當偽隨機數發(fā)生器通電時,在振蕩器的振蕩還不穩(wěn)定時產生的,因而頻率不穩(wěn)定的第三時鐘CLK3被提供給LFSR1作為移位時鐘,以產生Pre-SEED,根據該Pre-SEED產生LFSR1的初始值(SEED),從而有可能提高Pre-SEED的隨機性和根據該Pre-SEED產生的SEED的隨機性。
      通過將從外部通過寫入電路4輸入的任意數據與LFSR1的輸出數據進行異或的結果寫入一個寄存器,可以進一步提高SEED的隨機性。
      從LFSR1輸出的數據的隨機性與現(xiàn)有技術相比明顯提高,這種提高是由信號發(fā)生器2帶來的,該信號發(fā)生器2以預定間隔切換第一時鐘CLK1和通過分頻第一時鐘CLK1產生的分頻時鐘,并將其中任一個提供給LFSR1作為移位時鐘。此外,還為LFSR1提供多個寄存器,這些寄存器的數量大于由其產生的隨機數的位數,從而與現(xiàn)有技術相比,從LFSR1產生的數據的隨機性顯著提高。
      因此,本發(fā)明的隨機數發(fā)生器電路提供了高隨機性,從其所產生的隨機數序列分析電路結構更加困難。
      盡管利用特定例子描述了本發(fā)明的優(yōu)選實施例,但這樣的說明只是為了示例目的,應當理解,在不背離下面的權利要求的精神和范圍的條件下,可以進行各種變化和修改。
      權利要求
      1.一種偽隨機數發(fā)生器,包括線性反饋寄存器,其包括多個串聯(lián)連接的寄存器;第一邏輯運算電路,用于對從預定寄存器輸出的數據進行邏輯運算,以產生邏輯運算的結果;和第二邏輯運算電路,用于對從外部提供的輸入數據和所述第一邏輯運算電路的輸出數據進行邏輯運算,以便給所述多個寄存器中的任一個提供該邏輯運算的結果,所述線性反饋寄存器從所述多個寄存器產生偽隨機數;和信號發(fā)生器,用于產生操作所述線性反饋寄存器的移位時鐘,和用于利用恒定周期的第一時鐘和與該第一時鐘同步的第二時鐘產生所述輸入數據。
      2.根據權利要求1所述的偽隨機數發(fā)生器,進一步包括振蕩器,用于產生頻率不穩(wěn)定的第三時鐘,和原種籽(Pre-SEED)發(fā)生器電路,用于給所述線性反饋寄存器提供所述移位時鐘,該移位時鐘是通過對所述第三時鐘和與該第三時鐘異步的第四時鐘進行邏輯運算而產生的,還用于給所述線性反饋寄存器提供包含所述第四時鐘的所述輸入數據。
      3.根據權利要求1所述的偽隨機數發(fā)生器,其中所述信號發(fā)生器傳遞所述移位時鐘,該移位時鐘是所述第一時鐘和通過對該第一時鐘分頻而產生的時鐘中的一個,所述第一時鐘和所述分頻時鐘以預定間隔切換。
      4.根據權利要求1所述的偽隨機數發(fā)生器,進一步包括訪問控制器,用于讀取由所述線性反饋寄存器以不同于所述移位時鐘的周期產生的隨機數。
      5.根據權利要求1所述的偽隨機數發(fā)生器,進一步包括寫入電路,用于提供從所述線性反饋寄存器輸出的數據和從外部輸入的任意數據的邏輯運算;其中所述線性反饋寄存器利用從所述寫入電路傳遞的數據將一個初始值重新寫入所述寄存器。
      6.根據權利要求1所述的偽隨機數發(fā)生器,其中所述線性反饋寄存器包括多個寄存器,這些寄存器的數量大于所述隨機數的位數。
      全文摘要
      一種偽隨機數發(fā)生器包括一個線性反饋寄存器,用于產生偽隨機數;一個信號發(fā)生器,用于產生操作一個線性反饋寄存器和預定輸入數據。所述線性反饋寄存器具有多個串聯(lián)連接的寄存器,用于對從預定寄存器輸出的數據進行邏輯運算以傳遞其結果的第一邏輯運算電路,和用于對從外部提供的輸入數據和第一邏輯運算電路的輸出數據進行邏輯運算并將運算結果提供給任一個寄存器的第二邏輯運算電路。
      文檔編號G06F7/58GK1534454SQ20041003324
      公開日2004年10月6日 申請日期2004年3月31日 優(yōu)先權日2003年3月31日
      發(fā)明者島崎真也 申請人:恩益禧電子股份有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1