專利名稱:從任意的混沌系統(tǒng)中獲得均勻分布的偽隨機(jī)序列的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種從任意的混沌系統(tǒng)中獲得均勻分布的偽隨機(jī)序列的方法。
背景技術(shù):
偽隨機(jī)數(shù)發(fā)生器(PRNG)是一種重要的密碼源,廣泛地應(yīng)用于信息加密、 數(shù)值仿真、電子游戲、統(tǒng)計(jì)分析、分布式計(jì)算等領(lǐng)域。偽隨機(jī)數(shù)發(fā)生器產(chǎn)生 的偽隨機(jī)數(shù)序列必須服從均勻分布,不幸的是,這樣的PRNG并不多見。有 許多方法產(chǎn)生偽隨機(jī)數(shù),計(jì)算機(jī)語言中常見有RAND表,線性同余發(fā)生器 LCG,線性反饋移位寄存器LFSR, ANSI X9.17偽隨機(jī)數(shù)發(fā)生器;以及目前 研究得比較多的基于混沌系統(tǒng)的隨機(jī)數(shù)發(fā)生器等。用分段線性映射系統(tǒng)和復(fù)合離散混沌系統(tǒng)構(gòu)造的PRNG具有均勻性,但 用于信息加密時(shí)存在參數(shù)空間太小等其它缺陷;又如用TD-ERCS混沌系統(tǒng)構(gòu) 造的PRNG,需要通過一個(gè)反余弦函數(shù)和一個(gè)反正切函數(shù)變換才具有均勻分 布的特性,影響了計(jì)算速度,用FPGA硬件實(shí)現(xiàn)時(shí)遇到了極大的困難;另外 由z-logistic映射構(gòu)造具有均勻性的PRNG的新方法,雖然可以精確預(yù)測其周 期性,但涉及素?cái)?shù)、三角函數(shù)運(yùn)算,同樣是速度慢而不宜硬件實(shí)現(xiàn)。在現(xiàn)有 理論下,絕大多數(shù)混沌系統(tǒng)目前都還不能構(gòu)造出具有均勻分布特性的PRNG, 極大地限制了混沌系統(tǒng)在電子信息領(lǐng)域中的應(yīng)用。 發(fā)明內(nèi)容為了克服現(xiàn)有的混沌系統(tǒng)難以快速構(gòu)造分布均勻的偽隨機(jī)數(shù)序列的技術(shù) 問題,本發(fā)明提供一種從任意的混沌系統(tǒng)中獲得均勻分布的偽隨機(jī)序列的方 法。本發(fā)明可從任意的混沌系統(tǒng)中獲得均勻性良好的偽隨機(jī)數(shù),特別便于數(shù) 字系統(tǒng)實(shí)現(xiàn)。本發(fā)明解決上述技術(shù)問題的技術(shù)方案包括以下步驟對(duì)于來自混沌映射系統(tǒng)或來自混沌微分動(dòng)力系統(tǒng)任一實(shí)型混沌序列,若混沌序列的定義域?yàn)?[-l,l],則由實(shí)數(shù)變換器對(duì)該實(shí)型混沌序列的每個(gè)元素的尾數(shù)依次進(jìn)行右移位 6操作,尾數(shù)的bit位變換,尾數(shù)的左移位6操作,并對(duì)符號(hào)位賦值"0"、有 偏指數(shù)位賦值"1023-6",得到均勻分布的偽隨機(jī)序列;否則則由實(shí)數(shù)變換器 對(duì)實(shí)型混沌序列的每個(gè)元素的尾數(shù)依次進(jìn)行bit位變換,尾數(shù)的左移位6操作, 并對(duì)符號(hào)位賦值"0"、有偏指數(shù)位賦值"1023-6"。上述的可以從任意混沌系統(tǒng)中獲取均勻偽隨機(jī)序列的方法中,所述尾數(shù) 的右移位6操作是尾數(shù)依次從低位向高位移6位得到一新的尾數(shù)的操作,左 移位6操作是尾數(shù)依次從高位向低位移6位得到一新的尾數(shù)的操作。上述的可以從任意混沌系統(tǒng)中獲取均勻偽隨機(jī)序列的方法中,所述尾數(shù) 的bit位變換是先將尾數(shù)分成高26-bit子塊和低26-bit子塊,再將低26-bit子 塊倒置,然后與高26-bit子塊進(jìn)行異或運(yùn)算,所得新的子塊取代原尾數(shù)中的高 26-bit子塊得到一個(gè)新的尾數(shù)的變換。本發(fā)明的技術(shù)效果在于本發(fā)明只需將混沌系統(tǒng)產(chǎn)生的實(shí)型混沌序列的每 個(gè)元素依次進(jìn)行bit位的移位、變換及賦值三種簡單操作,就可構(gòu)造分布均勻 的偽隨機(jī)數(shù)序列,與混沌序列的具體分布無關(guān),很容易用軟件和硬件實(shí)現(xiàn)。下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
圖UEEE754標(biāo)準(zhǔn)實(shí)數(shù)表示法。圖2.本發(fā)明的流程圖1。圖3.本發(fā)明的流程圖2。圖4. Lorenz系統(tǒng)序列經(jīng)本發(fā)明變換前后均勻性的測試結(jié)果。圖5. Logistic映射序列經(jīng)本發(fā)明變換前后均勻性的測試結(jié)果。圖4和圖5中符號(hào)"。"標(biāo)記的曲線表示變換前的概率密度,符號(hào)'V'標(biāo)記的曲線表示變換后的概率密度。
具體實(shí)施方式
任意的混沌系統(tǒng)構(gòu)造的實(shí)型混沌序列一般用式(l)或圖1表示,IEEE754 標(biāo)準(zhǔn)規(guī)定, 一個(gè)實(shí)數(shù);c的雙精度浮點(diǎn)表示由三部分組成(圖l所示)l-bit符 號(hào)位(用s表示),ll-bit有偏指數(shù)位(用e表示),52-bit尾數(shù)位(用/表示), 由下式x = (-l)sx2e-1023 xi./,0<e<2047, ^{0,1}. (1) 給出雙精度實(shí)數(shù),其中,小數(shù)點(diǎn)前的"1"始終隱含在表示法中,故實(shí)際精度 為53-bit。由于數(shù)字系統(tǒng)表示的實(shí)數(shù)是可數(shù)的,其數(shù)目是有限的,用G表示數(shù)字系統(tǒng) 所能表示的所有實(shí)數(shù)的集合。對(duì)于數(shù)字系統(tǒng),將式(1)右邊簡記為"e,/), 即式(1)為義=^,/}. (2) bit位的移位操作定義l 設(shè)"1,2,…,52,如果尾數(shù)/中第51-bit, 50-bit,…,(51陽6+2)-bit 均為"0",而第(51-6+l)-bit為"1",則將/的前6位依次移到/的右邊構(gòu)成 一個(gè)新尾數(shù)/,這樣的操作稱為左移位6操作,新尾數(shù)/記為/w。 例如移位前/: 000001010100001111......10,移位后/—6: 010100001111......10000001.左移位6操作用于二進(jìn)制小數(shù)轉(zhuǎn)換為IEEE754標(biāo)準(zhǔn)的雙精度數(shù)的尾數(shù)。 定義2設(shè)6 = 1,2,3—,52 ,將尾數(shù)/中第0-bit設(shè)置為"1",第l-bit, 2-bit,…,(6-l)-bit均設(shè)置為"0",然后將此6位依次移到/的左邊構(gòu)成一個(gè)新尾數(shù)/,這樣的操作稱為右移位6操作,新尾數(shù)/記為厶6。 例如移位前/: 010100001111......10011000,重設(shè)置/: 010100001111......10000001,移位后厶6: 000001010100001111......10.右移位6操作用于將IEEE754標(biāo)準(zhǔn)的雙精度數(shù)的尾數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)。 尾數(shù)/的bit位變換 式(1)中尾數(shù)/可視為52bit的二進(jìn)制碼/:/"/50…/2,/0, /'"1,0}, / = 0,1,2,…,51,51. (3) 將其分成高位26bit和低位26bit的兩個(gè)碼塊,記為A = /si/so.. /27力6 ,// = /25/24... /1A (4)將/,倒置,記為定義3 A與/,'對(duì)應(yīng)bit位進(jìn)行異或運(yùn)算,記為A' = A // = /5'。. /2'7 /2'6, (6)其中/,' = /51_,①/',/ = 0,1,2廣.,24,25 ,再將厶'與/,按照高位和低位合并構(gòu)成一個(gè)新的尾數(shù),即' / =A// =/51/50…/27/26/25/24…/2/1/0 (7)稱/'為尾數(shù)/的bit位變換,記為BitW,即/':Bit(/" 實(shí)數(shù)的bit位變換定義4實(shí)數(shù)^,e,/)的第一類bit位變換,用5,w表示,定義為物(0,e',Bit(U, (8) 其中e、1023"; Bit{/U是對(duì){^,/}中/先進(jìn)行bit位變換,然后左移位操作。 變換AOO的具體操作系統(tǒng)又稱為第一類實(shí)數(shù)變換器,由圖2中虛線所示。 定義5實(shí)數(shù)"e,乃的第二類bit位變換,用AW表示,定義為 £2W = {0,e',Bit{/—山 (9) 其中e、1023-6; 8"{厶(1。23_。}^是對(duì)"e,/}中/先進(jìn)行右移位操作,再進(jìn)行bit位變換,最后左移位操作。變換^W的具體操作系統(tǒng)又稱為第一類實(shí)數(shù)變換器,由圖3中虛線所示。 若Re,/)eG,且存在"e,/m-l,l],實(shí)數(shù)的bit位變換采用第一類實(shí)數(shù)變換 器^(;0;若"e,/b[-l,l],不存在"e,/^[-l,l],則實(shí)數(shù)的bit位變換采用第二類實(shí)數(shù)變換器52(小顯然,A(;c)e[O,l] , 52(;c)e
。 由混沌序列獲得均勻分布的偽隨機(jī)數(shù)任取一個(gè)混沌系統(tǒng),不論是混沌映射系統(tǒng)還是混沌微分動(dòng)力系統(tǒng),只要 選取系統(tǒng)參數(shù)使它們?nèi)∮诨煦鐮顟B(tài)。設(shè)獲得的混沌序列為{^"1,2,3,...},若 AeG, :1,2,3,…,且存在;c,^[-l,l],則采用第一類變換器^") , ,1,2,3,…,令 <=A0O,則;c;是區(qū)間[O,l]上均勻分布的偽隨機(jī)序列,混沌序列元素的處理過 程由圖2所示;若;c,e[-l,l], h1,2,3,…,則采用第二類變換器^(x,) , / = 1,2,3,-, 令x卜A(;c,),則;c;也是區(qū)間[O,l]上均勻分布的偽隨機(jī)序列,混沌序列元素的處 理過程由圖3所示。本發(fā)明以數(shù)字系統(tǒng)中實(shí)數(shù)的浮點(diǎn)表示法為基礎(chǔ),利用bit位的移位、異或 和賦值操作定義了尾數(shù)/的bit位變換BW力和兩種實(shí)數(shù)變換器S,W和52(;c); 一個(gè)混沌序列通過5, W或52 (;c)便能產(chǎn)生均勻分布的偽隨機(jī)序列。本發(fā)明具有如下特點(diǎn)1) 獲得的偽隨機(jī)序列具有優(yōu)良的統(tǒng)計(jì)特性如分布的均勻性、均衡性、 游程特性、相關(guān)性等。2) 方法的普適性本發(fā)明不針對(duì)任何具體的混沌系統(tǒng),因而極大地開拓 了產(chǎn)生均勻偽隨機(jī)序列的來源,也為混沌理論的應(yīng)用打開了一扇窗戶。3) 容易軟硬件實(shí)現(xiàn)由于算法基于數(shù)字系統(tǒng)的位操作,不涉及數(shù)學(xué)運(yùn)算 和函數(shù)變換,因而速度快,易于實(shí)現(xiàn),硬件實(shí)現(xiàn)可以標(biāo)準(zhǔn)模塊化設(shè)計(jì),軟件 實(shí)現(xiàn)可以寫成專用變換函數(shù)。具體實(shí)施例分別以Lorenz系統(tǒng)和Logistc映射為例說明本發(fā)明,前者是混沌微分動(dòng) 力系統(tǒng),后者是混沌映射系統(tǒng)。Lorenz系統(tǒng)的狀態(tài)序列;c。采用實(shí)數(shù)的第一類 bit位變換^ W; Logistc映射的狀態(tài)序列x"采用實(shí)數(shù)的第二類bit位變換52 w 。 系統(tǒng)迭代計(jì)算10萬次,分別統(tǒng)計(jì)變換前后序列的分布(分成100個(gè)盒計(jì)數(shù))。 實(shí)驗(yàn)結(jié)果表明,無論是映射系統(tǒng)還是微分動(dòng)力系統(tǒng),只要系統(tǒng)是混沌的,混沌序列呈現(xiàn)隨機(jī)性,通過本發(fā)明的算法進(jìn)行變換,都能獲得均勻性非常好的 偽隨機(jī)序列。Lorenz系統(tǒng)是混沌微分動(dòng)力系統(tǒng),表示為i 二 cr(j; — ;c),少=rx — jkz — ,i = Ay — fe (10)取系統(tǒng)參數(shù)^10 " = 28 , ,產(chǎn)生著名的Lorenz吸引子;步長取"=0.01 , 初始點(diǎn);c廣QJ, ^=0.4, ^=0.5,取其中狀態(tài)變量^, " = 0,1,2廣'為測試的混沌序列,k |s20,所得序列分布曲線/^ )由圖4中符號(hào)"。"標(biāo)記,是一種非均勻的很難用具體的函數(shù)表示的分布。采用本發(fā)明方法中第一類實(shí)數(shù)變換,可得《^co。其分布曲線pOO由圖4中符號(hào)、"標(biāo)記,是一條水平的直線, 表明《是均勻分布的。表1列出了對(duì)應(yīng)的前20個(gè)混沌序列與變換后的偽隨機(jī) 序列。為了更清晰地說明實(shí)數(shù)變換A0O的執(zhí)行過程,結(jié)合圖2分解變換器中 的每一個(gè)步驟,給出中間操作結(jié)果。取表1中,^ =0.31,雙精度浮點(diǎn)表示0 01111111101 00111101011100001010001111 01011100001010001111010111尾數(shù)的bit位變換構(gòu)成新的尾數(shù)尾數(shù)左移1位并給符號(hào)位和指數(shù)位賦值表示成十進(jìn)制數(shù)為0.8387096726894379。 Logistic映射采用形式;c +1 =卜/ : 2, ;c"e[-U], " = 0,1,2,".. (11) 當(dāng)// = 2時(shí),狀態(tài)序列^的概率分布有規(guī)律可循,所得序列分布曲線/^J由圖5 中符號(hào)"。"標(biāo)記,是一種有規(guī)律的分布,服從p" )=^_^,x e[-l,l]," = 0,1,2,... (12)這種分布可通過變量代換^=^=^得到標(biāo)準(zhǔn)的均勻分布;^ ) = 1, Ae[o,i], 但是,這種變換用FPGA硬件實(shí)現(xiàn)非常困難,且運(yùn)算速度慢。采用本發(fā)明方法中第二類實(shí)數(shù)變換,可得《=^00,其分布曲線/Kx。由圖5中符號(hào)、"標(biāo)記,是一條水平的直線,表明"是均勻分布的。這里初始值取x^0.3345 ,表2列出了對(duì)應(yīng)的前20個(gè)混沌序列與變換后的偽隨機(jī)序列。同樣,為了清晰地說 明實(shí)數(shù)變換AOO的執(zhí)行過程,結(jié)合圖3分解變換器中的每一個(gè)步驟,給出中 間操作結(jié)果。取表2中,;c, =0.7762195 ,其雙精度浮點(diǎn)表示為 0 01111111110 10001101011011001010010001 10111000001000111100100001尾數(shù)的右移1位操作0 01111111110 11000110101101100101001000 11011100000100011110010000尾數(shù)的bit位變換構(gòu)成新的尾數(shù)0 01111111110 11001111010101000101110011 11011100000100011110010000尾數(shù)左移1位并給符號(hào)位和指數(shù)位賦值表示成十進(jìn)制數(shù)為0.8098810294218062。表1 Lorenz系統(tǒng)的前20個(gè)混沌序列與變換后的偽隨機(jī)序列迭代次數(shù)10.310.838709672689437920.326850.0628195374250410930.35006526133333330.813707233306355840.37939610211291920.88967348151361980.41478936935949240.522134490429874860.45636033111398670.0276978698804082370.50437282658613030.094978419681316680.55922601955277440.613149386388912190.6214464940412220.6263120398488395100.69168473685603870.5589141081734803110.77071528791910030.1153116506243868120.85944002120646240.8262020647317647130,95889415700876920.610252725276236141.0702547078827530.9353622889021549151.194851130816020.5780205434289354161.3341779990594140.5717273785273782171.4899095184997050.7108198888495891181.6639156922893330.6463809743718905191.8582798774370680.7088828469643125202.0753173679628140.1035232320685271表2 Logistic映射的前20個(gè)混沌序列與變換后的偽隨機(jī)序列迭代次數(shù)、10.77621950.80988102942180622-0.20503342436049990.0545015959570269730.91592258979001440.90932222474732784-0.67782838097529410.222423100981283250.081097371888823160.431545995188421760.98684643254545180.96611116872098897-0.94773176285536990.19871877106936688-0.79639098864989410.88065790456729079-0.26847721360551160.5546216341100816100.85583997154924110.580584798104493211-0.46492411380281150.2709232736157388120.56769113680934070.6195144846162712130.35545354637623680.9630195901107872140.74730555273711290.536363716499205515-0.11693117830344350.6979355743844142160.97265419908113660.169074242788030517-0.89211238198033450.940544747040187118-0.59172900416525250.826057303926071190.29971357125919710.283261527010616200.82034355040611640.2132554167133749
權(quán)利要求
1.從任意混沌系統(tǒng)中獲取均勻偽隨機(jī)序列的方法,包括以下步驟對(duì)于來自混沌映射系統(tǒng)或來自混沌微分動(dòng)力系統(tǒng)的任意一個(gè)實(shí)型混沌序列,若該混沌序列的定義域?yàn)閇-1,1],則由實(shí)數(shù)變換器對(duì)該實(shí)型混沌序列的每個(gè)元素的尾數(shù)依次進(jìn)行右移位b操作,尾數(shù)的bit位變換,尾數(shù)的左移位b操作,并對(duì)符號(hào)位賦值“0”,有偏指數(shù)位賦值“1023-b”,得到均勻分布的偽隨機(jī)序列;否則則由實(shí)數(shù)變換器對(duì)實(shí)型混沌序列的每個(gè)元素的尾數(shù)依次進(jìn)行bit位變換,尾數(shù)的左移位b操作,并對(duì)符號(hào)位賦值“0”,有偏指數(shù)位賦值“1023-b”,得到均勻分布的偽隨機(jī)序列。
2. 根據(jù)權(quán)利要求1所述的可以從任意混沌系統(tǒng)中獲取均勻偽隨機(jī)序列的 方法,所述尾數(shù)的右移位6操作是尾數(shù)依次從低位向高位移6位得到一新的 尾數(shù)的操作,左移位6操作是尾數(shù)依次從高位向低位移6位得到一新的尾數(shù) 的操作。
3. 根據(jù)權(quán)利要求1所述的可以從任意混沌系統(tǒng)中獲取均勻偽隨機(jī)序列的方法,所述尾數(shù)的bit位變換是先將尾數(shù)分成高26-bit子塊和低26-bit子塊, 再將低26-bit子塊倒置,然后與高26-bit子塊進(jìn)行異或運(yùn)算,所得新的子塊取 代原尾數(shù)中的高26-bit子塊得到一個(gè)新的尾數(shù)的變換。
全文摘要
本發(fā)明公開了一種可以從任意混沌系統(tǒng)中獲取均勻偽隨機(jī)序列的方法,包括以下步驟對(duì)于來自混沌映射系統(tǒng)或來自混沌微分動(dòng)力系統(tǒng)的任意一個(gè)實(shí)型混沌序列,若該混沌序列的定義域?yàn)閇-1,1],則由實(shí)數(shù)變換器對(duì)實(shí)型混沌序列中的每個(gè)元素的尾數(shù)依次進(jìn)行右移位b操作,尾數(shù)的bit位變換,尾數(shù)的左移位b操作,并對(duì)符號(hào)位賦值“0”,有偏指數(shù)位賦值“1023-b”,得到均勻分布的偽隨機(jī)序列;否則則由實(shí)數(shù)變換器對(duì)該實(shí)型混沌序列的每個(gè)元素的尾數(shù)依次進(jìn)行bit位變換,尾數(shù)的左移位b操作,并對(duì)符號(hào)位賦值“0”,有偏指數(shù)位賦值“1023-b”,得到均勻分布的偽隨機(jī)序列。本發(fā)明可從任意的混沌系統(tǒng)中獲得均勻性良好的偽隨機(jī)數(shù),特別便于數(shù)字系統(tǒng)實(shí)現(xiàn)。
文檔編號(hào)H04L9/00GK101217360SQ200710303428
公開日2008年7月9日 申請(qǐng)日期2007年12月28日 優(yōu)先權(quán)日2007年12月28日
發(fā)明者曹莉凌, 李更強(qiáng), 喆 盛, 盛利元, 肖燕予 申請(qǐng)人:中南大學(xué)