白金鑫 宋運娜
利用函數迭代生成偽隨機數列的方法研究
白金鑫 宋運娜
偽隨機數列以它的內在隨機性、對初始條件的高度敏感性以及預先確定性和可重復性等特性,在當代的密碼學、通訊、以及仿真實驗等多個領域有著重要的應用。本文用實驗的方法找出兩個函數和迭代生成偽隨機數列。并通過分析他們的圖像的混沌行為,找出其生成偽隨機序列的區間分別為和判斷它們生成的偽隨機數服從均勻分布。通過對初值加入一個小擾動ε并提取后十一位隨機數做對比,證明了兩個函數均對初值具有敏感性。并通過大量實驗估計出函數初值的取值范圍是
偽隨機序列的混沌系統具有確定性系統中的內在隨機性、對初始條件高度敏感、長期不可預測性、有界性等特征,這些特性被各種領域所關注,并被廣泛應用到系統控制、密碼學、保密通訊、信息隱藏中。真正意義下的隨機數只存在數學理論中,通過計算機仿真所產生的隨機數又稱為偽隨機數。這種內在隨機性被普遍應用于密碼學領域,作為產生密鑰的有效機制之一。本文的目的是通過函數迭代的方法,建立一個符合均勻分布的偽隨機序列的數學模型。經過多次嘗試找出符合偽隨機數性質的迭代函數,編寫matlab程序,并畫出此隨機數的分布圖。通過對圖形的分析找出此隨機序列的初值的取值范圍以及常數的選取范圍,并通過給定初值的小增量ε后,將前后所得的隨機數做對比的方法來檢驗此隨機序列的初值敏感性。最后給出我的猜想及結論。
本文的實驗原理是根據數學實驗中混沌實驗和分形實驗。
設D 是實數R 的一個子集,并且又設f:D →D是一個連續映射,用fk表示函數f 的第k 次迭代,即f0(x)=x ,f1(x)=f(x),f2(x)=f(f(x)),……如果我們將函數的迭代次數k=0,1,2,…視為時刻,而在時刻k=n的函數值則是函數的第n 次迭代值,則給定迭代初值x,則會通過上面的迭代系統依次產生一個序列:

此迭代序列稱為離散動力系統,對于給定的迭代初值x,此序列也稱為離散動力系統的一條軌道。如果將迭代次數作為橫軸,迭代值作為縱軸,就可以觀察軌道的性態,不同的函數,不同的初值,會產生不同的結果。
迭代函數的選取。在此類函數中最經典的兩個模型為

偽隨機數對初值的敏感性分析:對于固定的函數f 及很小的ε,若初值x0與x0+ε當迭代次數足夠多的時候,最終兩條軌道重合(開始的時候一般不會重合),則這個隨機序列發生器就沒有實際的應用價值。因此,生成偽隨機序列的函數f要求對初值具有敏感性,即對不同的初值,即使相差很小,都不會產生相同的序列。
利用上述原理編寫的matlab程序程序中的a1和a2為函數中a的取值范圍,此處給定的初值x=0.8,a1=0,a2=30,可以得到如下圖形。

發現這個函數在a取a≥5以后,y在0附近符合隨機數的性質,這樣我們保持初值不變,將a值區間變成15-20,將y值范圍變成(-4,4),這樣只需在程序中加入語句:ylim([-4,4]);這樣得到的圖形如下。

從實驗圖形中可以看到,我們得到了服從均勻分布的隨機數序列。
討論這個隨機數列對初值的敏感性
選取小的ε=0.0000001,初值0.8不變,計算后取出隨機數的后十一位來觀察對比:(在源程序中最后加入h=t(90:100,2)),將提取的數字做出如下表格。

X=0.8 X=0.8000001 -5.8181 0.5527 0.0051 11.4135 0.0773 9.2396 1.1499 2.5869 -9.1646 3.5347 -3.3648 -4.0799 3.0104 -3.6611 1.9049 3.7946 -11.1777 -2.3968 -13.8536 -0.8297 12.2066 0.9833
從表格中可以發現,當初值有很小的變化ε時,得到的兩組隨機數完全不同,說明這個隨機數列對初值有敏感性。
討論隨機數列初值的取值范圍
信息化建設過程中,首先要建立信息化的辦公平臺,通過辦公平臺,實現數據信息的共享和互通有無,提高信息的使用率和高效性,所以加強基礎設施的建設,是信息化建設的基礎內容。同時,企業中要建立內部信息系統,為企業的工作人員提供便利的信息服務條件,方便各個部門能夠進行信息的互通,提高了工作的效率,同時也節省了許多運行成本,最終提高了企業的管理水平。
從函數的形式上看,這個函數為奇函數,x取值的正負只影響到結果的符號,不會影響函數的收斂性。當初值x取0時,可以得到圖形如下,可以看到這個序列的值全為0.當x不為0時,經過大量實驗發現,得到的均為隨機數序列形式。所以猜測此函數的初值的取值范圍是x≠0。

對此函數取初值0.8,a1=1,a2=10,可得到如下圖形。

從圖中我們可以看出,其混沌行為與logistic函數比較相似,經過試驗調整選擇a1=3.85,a2=4,x=0.8,y的取值范圍為(1,3.5)則有:

取x=0.8000001時后十一位隨機數的對比:

X=0.8 X=0.8000001 3.0043 3.2508 3.2432 2.7391 2.2126 3.2494 3.7898 2.1966 0.5139 3.7976 1.7532 0.4856 3.8084 1.6704 0.4458 3.7668 1.5514 0.5976 3.6830 1.9886 0.8297 3.8516
可以發現此函數對初值也具有敏感性。
偽隨機序列是具有某種隨機特性的確定的序列,它是由隨機序列產生器產生的確定的序列,然而它們卻是具有某種隨機特性的隨機序列。其具有良好的隨機性并且具有預先的確定性和可重復性。由于偽隨機序列的這種特性,它可以作為以下幾種應用。
測量通信系統的性能時,經常需要使用噪聲產生器,由它給出具有所要求的統計特性和頻率特性的噪聲,并且可以隨意控制其強度,以便得到不同的信噪比條件下的系統性能。同樣在圖像處理等領域,可以用隨機序列做噪聲的仿真實驗。
2密碼學的應用
可以用這個函數列作為密碼的密鑰。即可以用其產生的隨機數當做密碼,由于其對初值具有敏感性,在被截獲時不容易被破譯。只要發送和接受密碼的人同時知道函數列就可以完成加密和解密。
3通訊中的應用
偽隨機序列的這些特性使得它在偽碼測距、導航、遙控遙測、擴頻通信、多址通信、分離多徑、數據加擾、信號同步等方面得到了廣泛的應用。

白金鑫1宋運娜2
1.齊齊哈爾醫學院基礎醫學院;2.齊齊哈爾醫學院 高數教研室
白金鑫(1991.11-)女,本科,學生。通訊作者:宋運娜(1978.05-),女,碩士,講師。
10.3969/j.issn.1001-8972.2015.16.003
齊齊哈爾醫學院大學生課外科研課題 黑龍江省大學生創新創業訓練計劃面上項目 齊齊哈爾醫學院教育科研項目(JY20141008)