工程加密中混沌動力學Logistic模型的應用

結合現(xiàn)代集成電路的設計規(guī)模和現(xiàn)代數(shù)字電路ASIC設計的優(yōu)勢,提出并實現(xiàn)了64位精度的算法器,外界通過簡單控制就可高速實現(xiàn)Logistic算法中的大量迭代運算,并且輸出的混沌序列的周期長度達到實用標準。

一、Logistic模型的基本特性

Logistic模型:

工程加密中混沌動力學Logistic模型的應用

其中,u為控制參數(shù),且0≤u<4,z∈[0.1]

該模型只有一個變量x,屬于一維方程,但具有極其復雜的動力學規(guī)律。根據(jù)模型的定義,我們可以通過Logistlc模型的分岔圖可以直觀了解u的取值對迭代過程的影響和迭代結果的分布情況。 在圖l中以u為x軸,迭代多次的Xn的平均值為了軸。

工程加密中混沌動力學Logistic模型的應用

從圖1中可以看出該模型的迭代值強烈依賴u,隨著u的不同xn的最終分布可以分為兩個區(qū)域:周期區(qū)和混沌區(qū)。當u的值很小時,當?shù)螖?shù)趨于無窮大時,迭代值趨于一個定值;隨著擾的增大,迭代值的周期數(shù)以倍周期分岔的方式不斷地增長。當u值大于3.57時,時間序列面,x0,x1,x2,…xn,…依次排列得到的時間序列如同分布在區(qū)間[0,1]上的隨機數(shù),稱之為混沌狀態(tài)。

1)周期區(qū)

結論1通過分析圖1可以得出結論1:從周期2n-1到2n(n>1),各分岔點un存在如下關系:

工程加密中混沌動力學Logistic模型的應用

即各分岔點之間的距離以比例δ倍縮小,且δ為一無理數(shù),這個數(shù)被稱為費根包姆(Feigenbaum)δ常數(shù)。

結論2通過分析圖2我們得出每分岔一次,在x方向上的結構也在較小的標度上重復出現(xiàn)一次疊周期2n中接近于xi處各之間的距離△1,△2,…,△n漸近的按因子a衰減:

工程加密中混沌動力學Logistic模型的應用

這里的費根包姆δ和α常數(shù)是一種普適常量,在倍周期分岔現(xiàn)象中具有普遍意義,與函數(shù)的形式無關。這兩個常數(shù)也說明了倍周期分岔進入混沌是一種相當普遍的自然現(xiàn)象。

2)混沌區(qū)

指出在混沌區(qū)也存在一些周期窗口,如周期3, 5,6…等,并且通過這些周期又不斷岔分出周期3*21,3* 22,…等,最終進入混沌?;煦鐓^(qū)中包含周期窗口,窗口區(qū)內又有混沌,這種不斷重復的自相似結構有無窮多個層次,最終形成了我們現(xiàn)在看到的混沌區(qū)域。這里需要說明的是由于圖形分辨率的限制,周期大于5的窗口在圖1中沒能被直觀體現(xiàn)。

工程加密中混沌動力學Logistic模型的應用

二、Logistlc算法器的設計

在這一節(jié)中將著重介紹算法的設計思想和具體實現(xiàn)。

1、算法器數(shù)字電路的工作狀態(tài)

在本次設計中要實現(xiàn)的迭代乘法算法為:

工程加密中混沌動力學Logistic模型的應用

通過分析算法特點和加密過程,我們將實現(xiàn)一次加密工作乘法器內部要經歷的狀態(tài)分為四種狀態(tài),其狀態(tài)圖如圖3所示。

工程加密中混沌動力學Logistic模型的應用

狀態(tài)1:算法器處于復位狀態(tài),由輸入信號sta控制。

狀態(tài)2:算法器處于初始化狀態(tài),X(64Bit),U(64Bit) ,NUM(迭代次數(shù))的順序依次輸入初始化數(shù)據(jù)。

狀態(tài)3:算法器完成規(guī)定的迭代次數(shù)后Ready有效,進入混沌態(tài)。

狀態(tài)4:算法器將需加密的數(shù)據(jù)在寫信號有效時的第一個時鐘周期生成密文,當密文被讀走的同時,并準備好下一次加密數(shù)據(jù)時所需的數(shù)據(jù),直至加密全過程結束,sta腳重新回到有效態(tài)。這樣就可以周而復始的加密任意大小的文件。

2、Logistic模型算法的實現(xiàn)

為了保證迭代運算保持在混沌態(tài),U的取值為3.8~4之間的數(shù),在帶人運算前先將U值通過除4轉換為小數(shù)(64Bit),然后在每一次的迭代運算中積分兩次乘以二。X.(l-X)積最大為1/4,所以在每于次的迭代運算不會產生大于1的數(shù)。

在實現(xiàn)迭代運算的設計中,設計的重點之一是超長度數(shù)據(jù)間的乘法。乘法運算占用的資源是最大的,如果對一些無效位不進行處理,64位與64位數(shù)據(jù)相乘后生成l28位的結果中冗余數(shù)據(jù)還將占用大量的硬件資源;并且如果直接利用兩個寬為64位的數(shù)據(jù)相乘,這里采用的Xilinx公司軟件2.1版的Foundation將不能對設計進行綜合(synthe-
sis)形成宏單元。對算法進行改進,將兩個64位數(shù)據(jù)A[63:0]、B[63:0]分成兩部分同時相乘,將結果處理后再相加,得到精度仍為64位的積。這樣在輸出時宏單元就可以少占用64位的輸出,內部珍貴的資源就可以節(jié)省下來。其工作流程圖如圖4所示。

工程加密中混沌動力學Logistic模型的應用

在每一次Logistlc運算中要進行兩次乘法運算,為了節(jié)省資源,兩次乘法用同一個乘法器,這樣是以降低運算速度為代價,損失大約一半時間。通過外部控制信號(sel)和時鐘信號(clk)來控制乘法運算的順序:在第一個時鐘周期完成z=x.(1-z),有效數(shù)據(jù)取前[126: 63]位,實現(xiàn)乘2;在第2個時鐘周期完成y=u.2,有效數(shù)據(jù)仍取前[126:63]位,實現(xiàn)乘2。所得結果反饋給Logistic函數(shù)發(fā)生器的控制部分作為下一次運算的x。

在乘法器中,我們將每組的u值存入一個模塊中,這個控制模塊負責控制64×64位的乘法模塊的輸入和時鐘信號;并且1-x產生64位有效數(shù)據(jù)的運算過程也由它完成。

三、算法器的具體實現(xiàn)及分析

1、算法器的原理圖和時序仿真

u13是算法器中的控制器,通過握手信號和外部交換信息,控制每次加密過程中初始化、明文輸入、和密文輸出的全過程;H1實現(xiàn)乘法的宏器件。u13利用控制信號線控制乘法器實現(xiàn)Logistic算法。

我們將原理圖通過綜合過程后,利用產生的時間延遲參數(shù)進行后時序仿真來校驗設計功能。因為篇幅原因,這里僅分析算法器在數(shù)據(jù)加密狀態(tài)下的時序。

工程加密中混沌動力學Logistic模型的應用

通過后時序仿真可以看出,算法器達到設計要求。當將初始化數(shù)據(jù)寫入算法器,輸入要求的時鐘數(shù)目后,算法器進入混沌狀態(tài),ready變?yōu)楦唠娖?。通過寫命令wr將要加密的明文數(shù)據(jù)流和混沌產生密鑰流異或形成密文,然后通過讀命令rd將密文取走。由于明文寫入和密文輸出公用一個總線,所以設計使用讀信號控制數(shù)據(jù)總線方向引腳dir的電氣特性。這里讀信號和寫信號的操作均是在其有效后的第一個時鐘開始進行,寫信號需—個時鐘,讀信號需兩個時鐘。從圖6中可以看出硬件完成每項動作的時序,包括施加控制信號到得到響應的延時,如rd和dir邊沿間的延時等,這些特征只能在后時序仿真中才能觀察到。通過對仿真后時序結果進行分析后重新設計,有效避免這些特殊延時可能導致的設計對象的邏輯功能混亂。

工程加密中混沌動力學Logistic模型的應用

2、乘法器的原理圖和時序仿真

本設計依據(jù)頂層設計的方法實現(xiàn)了乘法器MMM,由它具體實現(xiàn)乘法,乘數(shù)和被乘數(shù)均為64位。其管腳定義如表1所示。

工程加密中混沌動力學Logistic模型的應用

同樣在后時序仿真時,我們也測試了作為算法器中最重要的部件一乘法器的功能。

工程加密中混沌動力學Logistic模型的應用

通過后時序仿真圖8可以清楚地看到乘法器實現(xiàn)兩次乘法的全過程,這里需要說明的是:因為進行每次的乘法運算均在load的上升沿發(fā)生,load由控制器的clkout信號驅動。而clk-out信號是由瀆信號和時鐘信號共同驅動的,所以要求讀密文時的讀信號的有效時間長度必須大于兩個時鐘周期。

工程加密中混沌動力學Logistic模型的應用

小知識之混沌動力學

混沌動力學是復雜性科學的一個重要分支,也是近三十年來的一個熱門學科,混沌動力學已發(fā)展成相對完備的體系,并在眾多領域顯示出強大的生命力。