專利名稱:隨機數(shù)發(fā)生器和隨機數(shù)生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及隨機數(shù)的生成。更具體地,本發(fā)明涉及基于帶進位反饋移位寄存器 (FCSR ;Feedback with Carry Shift Register)的隨機數(shù)發(fā)生器和隨機數(shù)生成方法,及其 在流密碼中的應用。
背景技術(shù):
隨著計算機網(wǎng)絡的普及以及各種數(shù)字化技術(shù)的迅猛發(fā)展,人們已經(jīng)習慣了通過各 種數(shù)字化手段來傳遞重要和敏感的信息。具體地,在各種信息傳送系統(tǒng)中,對在合法設(shè)備之 間的數(shù)據(jù)傳輸需要進行加密保護,以防止被第三方竊聽、盜取。例如在數(shù)字電視領(lǐng)域,在合 法的視頻源設(shè)備與顯示設(shè)備的接口間需要進行加密保護,以防止影音內(nèi)容被非法竊取、肆 意盜版。可采用流密碼技術(shù)進行加密保護。流密碼技術(shù)需要使用隨機數(shù)發(fā)生器。在流密碼應用中,發(fā)送方用隨機數(shù)發(fā)生器順 序生成的各個隨機數(shù)加密內(nèi)容流的相應部分,并將加密的內(nèi)容以流的方式傳送到接收方。 接收方用隨機數(shù)發(fā)生器生成與發(fā)送方所使用的隨機數(shù)序列相同的(即同步的)隨機數(shù)序 列,并且隨機數(shù)序列中的隨機數(shù)解密相應的加密內(nèi)容部分,從而得到解密的內(nèi)容流。例如在寬帶數(shù)字內(nèi)容保護(HDCP)系統(tǒng)中使用了流密碼技術(shù)。HDCP的流密碼 保護機制包含三個線性反饋移位寄存器(LFSR)來形成隨機數(shù)發(fā)生器,輸入密鑰長度 為 56 比特。此夕卜,Klapper 禾口 Goresky 在“2—adic shiftregisters,,,F(xiàn)ast Software Encryption-FSE ‘ 93提出了帶進位反饋移位寄存器FCSR。在F. Arnault等人的文章 ”F-FCSR Stream Ciphers,,,卷 4986, Lecture Notes in Computer Science, 170-178 頁, Springer, 2008 (也參 JAL http://www. info.ucl.ac.be/Bienvenue/PagesPersonnelles/ lauradou/publis/ffcsr.pdf)介紹了 FCSR在流密碼技術(shù)中被應用于隨機數(shù)發(fā)生器。傳統(tǒng)的基于LFSR或FCSR的隨機數(shù)發(fā)生器與時鐘同步地逐位輸出,因而隨機數(shù)的 生成速度較低。
發(fā)明內(nèi)容
本發(fā)明的一個目的在于提供一種基于帶進位反饋移位寄存器的隨機數(shù)發(fā)生器,其 能夠以較快的速度來生成隨機數(shù)。本發(fā)明的一個實施例是一種隨機數(shù)發(fā)生器,包括帶進位反饋移位寄存器;候選 隨機數(shù)產(chǎn)生裝置,響應于所述帶進位反饋移位寄存器處于其狀態(tài)序列中的預定狀態(tài),基于 所述帶進位反饋移位寄存器的主寄存器中的位,通過指定邏輯產(chǎn)生至少兩個候選隨機數(shù), 其中所基于的主寄存器中的位的數(shù)目不少于要產(chǎn)生的隨機數(shù)的位數(shù);控制數(shù)據(jù)產(chǎn)生裝置, 基于所述預定狀態(tài)下所述主寄存器中的位,通過另一指定邏輯產(chǎn)生控制數(shù)據(jù),其中所述控 制數(shù)據(jù)的可能值的數(shù)目不少于所述候選隨機數(shù)的數(shù)目;和選擇裝置,根據(jù)所述控制數(shù)據(jù)的 值選擇所述至少兩個候選隨機數(shù)中相應的候選隨機數(shù),作為所產(chǎn)生的隨機數(shù)。在上述隨機數(shù)發(fā)生器中,至少兩個候選隨機數(shù)的相同位可以基于所述主寄存器中的相同位,并且不同位可以基于所述主寄存器中的不同位。在上述隨機數(shù)發(fā)生器中,控制數(shù)據(jù)的不同位可以基于所述主寄存器中的不同位。在上述隨機數(shù)發(fā)生器中,各候選隨機數(shù)包括至少兩個位或位組,控制數(shù)據(jù)包括分 別與各候選隨機數(shù)的每個位或位組對應的子控制數(shù)據(jù),控制數(shù)據(jù)產(chǎn)生裝置可以包括多個控 制數(shù)據(jù)產(chǎn)生單元,每個產(chǎn)生子控制數(shù)據(jù)之一,選擇裝置根據(jù)每個子控制數(shù)據(jù)選擇各候選隨 機數(shù)的相應位或位組中的位或位組,以組成隨機數(shù)。 在上述隨機數(shù)發(fā)生器中,控制數(shù)據(jù)的產(chǎn)生可以基于線性變換。在上述隨機數(shù)發(fā)生器中,帶進位反饋移位寄存器的級數(shù)可以為η ^ 160,其聯(lián)結(jié)系 數(shù)q可以是長度為n+1比特的素數(shù),且滿足以下條件2模q的階是| q卜1,( | q | _1) /2是素 數(shù)并且(|q|+l)/2的漢明重量大于η/2比特,至少兩個候選隨機數(shù)的相同位基于所述主寄 存器中的相同位,并且不同位基于所述主寄存器中的不同位,控制數(shù)據(jù)的不同位基于所述 主寄存器中的不同位,各候選隨機數(shù)包括至少兩個位或位組,控制數(shù)據(jù)包括分別與所述候 選隨機數(shù)的每個位或位組對應的子控制數(shù)據(jù),控制數(shù)據(jù)產(chǎn)生裝置包括多個控制數(shù)據(jù)產(chǎn)生單 元,每個通過線性變換產(chǎn)生子控制數(shù)據(jù)之一,選擇裝置根據(jù)每個子控制數(shù)據(jù)選擇各候選隨 機數(shù)的相應位或位組中的位或位組,以組成隨機數(shù)。進一步地,η為160,候選隨機數(shù)為8位, 數(shù)目為2,其中一個候選隨機數(shù)根據(jù)所述主寄存器中的最低8位來產(chǎn)生,另一個候選隨機數(shù) 為所述候選隨機數(shù)的取反值,并且每個子控制數(shù)據(jù)的位數(shù)為1。本發(fā)明的另一個實施例是一種隨機數(shù)生成方法,包括響應于帶進位反饋移位寄 存器處于其狀態(tài)序列中的預定狀態(tài),基于所述帶進位反饋移位寄存器的主寄存器中的位, 通過指定邏輯產(chǎn)生至少兩個候選隨機數(shù),其中所基于的主寄存器中的位的數(shù)目不少于要產(chǎn) 生的隨機數(shù)的位數(shù);基于所述預定狀態(tài)下所述主寄存器中的位,通過另一指定邏輯產(chǎn)生控 制數(shù)據(jù),其中所述控制數(shù)據(jù)的可能值的數(shù)目不少于所述候選隨機數(shù)的數(shù)目;和根據(jù)所述控 制數(shù)據(jù)的值選擇所述至少兩個候選隨機數(shù)中相應的候選隨機數(shù),作為所產(chǎn)生的隨機數(shù)。根據(jù)本發(fā)明的實施例,由于在帶進位反饋移位寄存器的每個移位狀態(tài)下能夠生成 一個隨機數(shù)而不是一個隨機位,因而能夠提高隨機數(shù)生成的速度。
參照下面結(jié)合附圖對本發(fā)明實施例的說明,會更加容易地理解本發(fā)明的以上和其 它目的、特點和優(yōu)點。在附圖中,相同的或?qū)募夹g(shù)特征或部件將采用相同或?qū)母綀D 標記來表示。在附圖中不必依照比例繪制出單元的尺寸和相對位置。圖1為帶進位反饋移位寄存器FCSR的一種示例性結(jié)構(gòu)的框圖;圖2為根據(jù)本發(fā)明一個實施例的隨機數(shù)發(fā)生器的示例性結(jié)構(gòu)的框圖;圖3為根據(jù)本發(fā)明一個實施例的隨機數(shù)生成方法的流程圖;圖4為控制數(shù)據(jù)產(chǎn)生裝置的一種示例性結(jié)構(gòu)的框圖;圖5為根據(jù)本發(fā)明一個實施例的隨機數(shù)發(fā)生器的示例性結(jié)構(gòu)的框圖;圖6為示出實現(xiàn)本發(fā)明實施例的計算機的示例性結(jié)構(gòu)的框圖。
具體實施例方式下面參照附圖來說明本發(fā)明的實施例。應當注意,為了清楚的目的,附圖和說明中省略了與本發(fā)明無關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述。為便于說明本發(fā)明的實施例,下面參考圖1來說明帶進位反饋移位寄存器FCSR的 基本結(jié)構(gòu)。如圖1所示,F(xiàn)CSR 100包括加法器101、寄存器102和進位寄存器103。寄存器 102的級數(shù)(也稱為FCSR的級數(shù))為r。抽頭系數(shù)q1; q2,...,qre GF⑵。所有抽頭系數(shù) 構(gòu)成聯(lián)結(jié)系數(shù)q。在本說明書中將寄存器也稱為主寄存器。在某時刻進位寄存器103的值為JV1 e N,寄存器102每個位的值為BlriAlrf,..., an_r+1,an_r e GF (2)。FCSR 按以下規(guī)則操作
權(quán)利要求
1. 一種隨機數(shù)發(fā)生器,包括 帶進位反饋移位寄存器;候選隨機數(shù)產(chǎn)生裝置,響應于所述帶進位反饋移位寄存器處于其狀態(tài)序列中的預定狀 態(tài),基于所述帶進位反饋移位寄存器的主寄存器中的位,通過指定邏輯產(chǎn)生至少兩個候選 隨機數(shù),其中所基于的主寄存器中的位的數(shù)目不少于要產(chǎn)生的隨機數(shù)的位數(shù);控制數(shù)據(jù)產(chǎn)生裝置,基于所述預定狀態(tài)下所述主寄存器中的位,通過另一指定邏輯產(chǎn) 生控制數(shù)據(jù),其中所述控制數(shù)據(jù)的可能值的數(shù)目不少于所述候選隨機數(shù)的數(shù)目;和選擇裝置,根據(jù)所述控制數(shù)據(jù)的值選擇所述至少兩個候選隨機數(shù)中相應的候選隨機 數(shù),作為所產(chǎn)生的隨機數(shù)。
2.如權(quán)利要求1所述的隨機數(shù)發(fā)生器,其中,所述至少兩個候選隨機數(shù)的相同位基于 所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位。
3.如權(quán)利要求1所述的隨機數(shù)發(fā)生器,其中,所述控制數(shù)據(jù)的不同位基于所述主寄存 器中的不同位。
4.如權(quán)利要求1所述的隨機數(shù)發(fā)生器,其中,所述各候選隨機數(shù)包括至少兩個位或位 組,所述控制數(shù)據(jù)包括分別與所述各候選隨機數(shù)的每個位或位組對應的子控制數(shù)據(jù),所述 控制數(shù)據(jù)產(chǎn)生裝置包括多個控制數(shù)據(jù)產(chǎn)生單元,每個產(chǎn)生所述子控制數(shù)據(jù)之一,所述選擇 裝置根據(jù)每個所述子控制數(shù)據(jù)選擇所述各候選隨機數(shù)的相應位或位組中的位或位組,以組 成所述隨機數(shù)。
5.如權(quán)利要求1所述的隨機數(shù)發(fā)生器,其中所述控制數(shù)據(jù)的產(chǎn)生基于線性變換。
6.如權(quán)利要求1所述的隨機數(shù)發(fā)生器,其中,所述帶進位反饋移位寄存器的級數(shù)為 η彡160,其聯(lián)結(jié)系數(shù)q是長度為n+1比特的素數(shù),且滿足以下條件2模q的階是q|-l, (M-l)/2是素數(shù)并且(| q |+1)/2的漢明重量大于η/2比特, 所述至少兩個候選隨機數(shù)的相同位基于所述主寄存器中的相同位,并且不同位基于所 述主寄存器中的不同位,所述控制數(shù)據(jù)的不同位基于所述主寄存器中的不同位,所述各候選隨機數(shù)包括至少兩個位或位組,所述控制數(shù)據(jù)包括分別與所述候選隨機數(shù) 的每個位或位組對應的子控制數(shù)據(jù),所述控制數(shù)據(jù)產(chǎn)生裝置包括多個控制數(shù)據(jù)產(chǎn)生單元,每個通過線性變換產(chǎn)生所述子控 制數(shù)據(jù)之一,所述選擇裝置根據(jù)每個所述子控制數(shù)據(jù)選擇所述各候選隨機數(shù)的相應位或位組中的 位或位組,以組成所述隨機數(shù)。
7.如權(quán)利要求6所述的隨機數(shù)發(fā)生器,其中,η為160,所述候選隨機數(shù)為8位,數(shù)目為 2,其中一個候選隨機數(shù)根據(jù)所述主寄存器中的最低8位來產(chǎn)生,另一個候選隨機數(shù)為所述 候選隨機數(shù)的取反值,并且每個子控制數(shù)據(jù)的位數(shù)為1。
8. 一種隨機數(shù)生成方法,包括響應于帶進位反饋移位寄存器處于其狀態(tài)序列中的預定狀態(tài),基于所述帶進位反饋移 位寄存器的主寄存器中的位,通過指定邏輯產(chǎn)生至少兩個候選隨機數(shù),其中所基于的主寄 存器中的位的數(shù)目不少于要產(chǎn)生的隨機數(shù)的位數(shù);基于所述預定狀態(tài)下所述主寄存器中的位,通過另一指定邏輯產(chǎn)生控制數(shù)據(jù),其中所述控制數(shù)據(jù)的可能值的數(shù)目不少于所述候選隨機數(shù)的數(shù)目;和根據(jù)所述控制數(shù)據(jù)的值選擇所述至少兩個候選隨機數(shù)中相應的候選隨機數(shù),作為所產(chǎn) 生的隨機數(shù)。
9.如權(quán)利要求8所述的隨機數(shù)生成方法,其中所述至少兩個候選隨機數(shù)的相同位基于 所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位。
10.如權(quán)利要求8所述的隨機數(shù)生成方法,其中,所述控制數(shù)據(jù)的不同位基于所述主寄 存器中的不同位。
11.如權(quán)利要求8所述的隨機數(shù)生成方法,其中,所述各候選隨機數(shù)包括至少兩個位或 位組,所述控制數(shù)據(jù)包括分別與所述各候選隨機數(shù)的每個位或位組對應的子控制數(shù)據(jù),所 述控制數(shù)據(jù)的產(chǎn)生包括分別產(chǎn)生所述子控制數(shù)據(jù),所述選擇包括根據(jù)每個所述子控制數(shù)據(jù) 選擇所述各候選隨機數(shù)的相應位或位組中的位或位組,以組成所述隨機數(shù)。
12.如權(quán)利要求8所述的隨機數(shù)生成方法,其中,所述控制數(shù)據(jù)的產(chǎn)生基于線性變換。
13.如權(quán)利要求8所述的隨機數(shù)生成方法,其中,所述帶進位反饋移位寄存器的級數(shù)為 η彡160,其聯(lián)結(jié)系數(shù)q是長度為n+1比特的素數(shù),且滿足以下條件2模q的階是q|-l, (M-l)/2是素數(shù)并且(| q |+1)/2的漢明重量大于η/2比特,所述至少兩個候選隨機數(shù)的相同位基于所述主寄存器中的相同位,并且不同位基于所 述主寄存器中的不同位,所述控制數(shù)據(jù)的不同位基于所述主寄存器中的不同位,所述各候選隨機數(shù)包括至少兩個位或位組,所述控制數(shù)據(jù)包括分別與所述候選隨機數(shù) 的每個位或位組對應的子控制數(shù)據(jù),所述控制數(shù)據(jù)的產(chǎn)生包括分別產(chǎn)生所述子控制數(shù)據(jù),所述選擇包括根據(jù)每個所述子控制數(shù)據(jù)選擇所述各候選隨機數(shù)的相應位或位組中的 位或位組,以組成所述隨機數(shù)。
14.如權(quán)利要求13所述的隨機數(shù)生成方法,其中,η為160,所述候選隨機數(shù)為8位,數(shù) 目為2,其中一個候選隨機數(shù)根據(jù)所述主寄存器中的最低8位來產(chǎn)生,另一個候選隨機數(shù)為 所述候選隨機數(shù)的取反值,并且每個子控制數(shù)據(jù)的位數(shù)為1。
全文摘要
隨機數(shù)發(fā)生器和隨機數(shù)生成方法。隨機數(shù)發(fā)生器包括帶進位反饋移位寄存器;候選隨機數(shù)產(chǎn)生裝置,響應于所述帶進位反饋移位寄存器處于其狀態(tài)序列中的預定狀態(tài),基于所述帶進位反饋移位寄存器的主寄存器中的位,通過指定邏輯產(chǎn)生至少兩個候選隨機數(shù),其中所基于的主寄存器中的位的數(shù)目不少于要產(chǎn)生的隨機數(shù)的位數(shù);控制數(shù)據(jù)產(chǎn)生裝置,基于所述預定狀態(tài)下所述主寄存器中的位,通過另一指定邏輯產(chǎn)生控制數(shù)據(jù),其中所述控制數(shù)據(jù)的可能值的數(shù)目不少于所述候選隨機數(shù)的數(shù)目;和選擇裝置,根據(jù)所述控制數(shù)據(jù)的值選擇所述至少兩個候選隨機數(shù)中相應的候選隨機數(shù),作為所產(chǎn)生的隨機數(shù)。
文檔編號G06F7/58GK101996065SQ200910168490
公開日2011年3月30日 申請日期2009年8月26日 優(yōu)先權(quán)日2009年8月26日
發(fā)明者曾勇, 李暉, 董麗華 申請人:索尼株式會社;西安電子科技大學