本發明涉及安全技術領域,具體涉及一種基于二維混沌雙螺旋的真隨機數發生器。
背景技術:
隨著信息技術的普及,信息傳輸的安全性得到了越來越廣泛的重視,信息安全離不開密碼算法,傳統的對稱密鑰密碼算法如aes,非對稱密鑰密碼算法如rsa,ecc都需要初始化一個密鑰。其密鑰通常采用隨機數來生成,因此隨機數的質量直接決定了整個安全體系安全性。
隨機數是由隨機數發生器來產生,根據產生的隨機數的種類不同,隨機數發生器分為真隨機數發生器和偽隨機數發生器,對于集成電路及安全芯片的設計,偽隨機數由于其周期性的限制,通常不能滿足安全性的要求,因此不能單獨使用偽隨機數發生器來產生隨機數。(可以作為真隨機數發生器的后處理模塊使用)
真隨機數發生器主要利用自然界的隨機物理現象來產生隨機數,比如基于熱噪聲的真隨機數發生器,利用環形振蕩器輸出的隨機抖動的真隨機數發生器,利用亞穩態的真隨機數發生器等。
基于混沌系統的真隨機數發生器是通過設計電路結構構造出混沌現象,然后再采樣得到真隨機數的一種實現。混沌現象通常有混沌函數的輸出表示,混沌函數包括帳篷映射,伯努利映射,邏輯映射,分段線性映射等。對比傳統的真隨機數發生器,基于混沌系統的真隨機數發生器具有參數可控,仿真較為容易,輸出信號偏置小,不易受周期性噪聲信號干擾等特點。對比偽隨機數發生器,又因為其本身混沌函數的計算復雜度大,而使攻擊者無法通過觀察等行為根據軌跡猜測混沌系統的構成,除此之外,對比計算機實現隨機數發生器受限的精度問題,硬件設計保證了參數和變量精度的無窮大,由于混沌函數的李雅普諾夫常數大于0,因此初值的一點微小的不同都會導致后面軌跡較大的差異性,使得攻擊者難以通過暴力窮舉的方法找到混沌函數的初始值。
但是,目前的混沌系統的真隨機數發生器在設計電路上存在的缺點是:電路結構復雜,成本高,適用性弱。
技術實現要素:
針對上述問題,本申請提供一種基于二維混沌雙螺旋的真隨機數發生器,包括混沌電路和采樣電路;
混沌電路用于產生具有雙螺旋混沌特性的第一電壓信號和第二電壓信號,混沌電路的狀態方程為:
采樣電路的輸入端分別耦合至混沌電路的輸出端,用于根據第一電壓信號和第二電壓信號產生具有隨機特性的數字信號。
一種實施例中,混沌電路包括:第一電路、第二電路和第三電路;
第一電路的輸出端分別耦合至第二電路的輸入端和第三電路的輸入端,所述第一電路的輸入端分別耦合至自身電路的輸出端、所述第二電路的輸出端和第三電路的輸出端,用于根據所述自身電路的輸出、第二電路的輸出和第三電路的輸出產生所述第一電壓信號;
第二電路的輸出端耦合至所述第一電路的輸入端,所述第二電路的輸入端耦合至所述第一電路的輸出端和第三電路的輸出端,用于根據所述第二電路的輸出和第三電路的輸出產生所述第二電壓信號;
第三電路的輸出端分別耦合至所述第一電路的輸入端和第二電路的輸入端,所述第三電路的輸入端耦合至所述第一電路的輸出端,用于根據所述第一電路的輸出產生所述擴展電壓。
一種實施例中,第一電路包括第一加法器和第一積分器;
第一加法器為反相三輸入加法器,第一加法器的輸出端耦合至第一積分器的輸入端,第一加法器的輸入端分別耦合至第一積分器的輸出端、第二電路的輸出端和第三電路的輸出端;
第一加法器根據所述第一積分器、第二電路和第三電路的輸出獲得第一電壓信號的被積函數;
第一積分器對被積函數積分后獲取第一電壓信號。
一種實施例中,第二電路包括第二加法器和第二積分器;
第二加法器為同相兩輸入加法器,第二加法器的輸出端耦合至第二積分器的輸入端,第二加法器的輸出入分別耦合至第一積分器的輸出端和第三電路的輸出端,第二積分器的輸出端耦合至第一加法器的輸入端;
第二加法器根據第一積分器和第三電路的輸出獲得第二電壓信號的被積函數;
第二積分器對被積函數積分后獲取第二電壓信號。
一種實施例中,第三電路為滯回比較器。
一種實施例中,采樣電路包括第一施密特觸發器、第二施密特觸發器和異或門;
第一施密特觸發器的輸入端與第一積分器的輸出端耦合,第二施密特觸發器的輸入端與第二積分器的輸出端耦合,第一施密特觸發器和第二施密特觸發器的輸出端均耦合至異或門的輸入端。
依據上述實施例的真隨機數發生器,根據本申請的混沌電路的狀態方程設計的電路結構簡單,功耗低,便于在各種工藝下進行移植,比較容易加入到真隨機數發生器電路中。
附圖說明
圖1為混沌電路結構圖;
圖2為滯回比較器輸出關系圖;
圖3為采樣電路結構圖;
圖4為參數a為最優值時的仿真圖;
圖5為參數a為另一值時的仿真圖;
圖6為參數a為另一值時的仿真圖。
具體實施方式
下面通過具體實施方式結合附圖對本發明作進一步詳細說明。
本例通過設計模擬電路實現一個二維混沌雙螺旋的動力系統,該動力系統由兩個矩陣表達式表示的混沌系統s1、s2和一個切換狀態,其中s1的表達式和s2的表達式分別如下:
s1:
當系統在s1狀態下,當x1正向穿過x1=1時,啟用動力系統s2,當系統在s2狀態下,當x1負向穿過x1=-1時,啟用動力系統s1。
基于上述的二維混沌雙螺旋的動力系統,本例提供一種基于二維混沌雙螺旋動力系統的真隨機數發生器,包括混沌電路1和采樣電路2,其中,混沌電路1用于產生具有雙螺旋混沌特性的第一電壓信號和第二電壓信號,采集電路2根據采集的第一電壓信號和第二電壓信號產生具有隨機特性的數字信號。
為了設計簡單結構的混沌電路1,本例基于上述的二維混沌動力系統構建混沌電路1的狀態方程:
根據上述的狀態方程設計的混沌電路1的電路結構圖如圖1所示,包括第一電路11、第二電路12和第三電路13,其中,第三電路13為滯回比較器,所以,第三電路13的輸出s(v1)是滯回比較器的輸入輸出函數,第三電路13的關系圖如圖2所示,當v1正向穿過1v時,s(v1)由1.5v變為-1.5v;當v1負向穿過-1v時,s(v1)由-1.5v變為1.5v。
其中,第一電路11的輸出端分別耦合至第二電路12的輸入端和第三電路13的輸入端,第一電路11的輸入端分別耦合至自身電路的輸出端、第二電路12的輸出端和第三電路13的輸出端,用于根據自身電路的輸出、第二電路12的輸出和第三電路13的輸出產生第一電壓信號;第二電路12的輸出端耦合至第一電路11的輸入端,第二電路12的輸入端耦合至第一電路11的輸出端和第三電路13的輸出端,用于根據第二電路12的輸出和第三電路13的輸出產生第二電壓信號;第三電路13的輸出端分別耦合至第一電路11的輸入端和第二電路12的輸入端,第三電路13的輸入端耦合至第一電路11的輸出端,用于根據第一電路11的輸出產生擴展電壓。
具體的,第一電路11包括第一加法器111和第一積分器112,第一加法器111為反相三輸入加法器,第一加法器111的輸出端耦合至第一積分器112的輸入端,第一加法器111的三輸入端分別通過第一電阻r1耦合至第一積分器112的輸出端,通過第二電阻r2耦合至第二電路12的輸出端,通過第三電阻r3耦合至第三電路13的輸出端,進一步,第一加法器111于三輸入端的耦合處通過第四電阻r4耦合至第一加法器111的輸出端,其中,第一電阻r1、第二電阻r2、第三電阻r3和第四電阻r4的阻值根據a的取值而設定;第一積分器112的輸出為第一電壓信號v1,第二電路12的輸出為第二電壓信號v2,第三電路13的輸出為擴展電壓s(v1),根據第一加法器111的虛短特性,并將第一加法器111的輸出作為第一電壓信號的被積函數,因此,第一加法器111的運算結果為:
第二電路12包括第二加法器121和第二積分器122,第二加法器121為同相兩輸入加法器,第二加法器121的輸出端耦合至第二積分器122的輸入端,第二加法器121的兩輸出入端分別通過第五電阻r5耦合至第一積分器112的輸出端,通過第六電阻r6耦合至第三電路13的輸出端,并于兩輸入端的耦合處通過第七電阻r7耦合至第二積分器122的輸入端,第二積分器122的輸出端通過第二電阻r2耦合至第一加法器111的輸入端,其中,第五電阻r5、第六電阻r6和第七電阻r7的阻值根據a的取值而設定;第一積分器112的輸出為第一電壓信號v1,第三電路13的輸出為擴展電壓s(v1),根據第二加法器121的虛短特性,并將第二加法器121的輸出作為第二電壓信號的被積函數,因此,第二加法器121的運算結果為:
如圖3所示,采樣電路2包括第一施密特觸發器21、第二施密特觸發器22和異或門23,第一施密特觸發器21的輸入端與第一積分器112的輸出端耦合,第二施密特觸發器22的輸入端與第二積分器122的輸出端耦合,第一施密特觸發器21和第二施密特觸發器22的輸出端均耦合至異或門23的輸入端,第一施密特觸發器21和第二施密特觸發器22的參考電壓均為接地點電壓,第一施密特觸發器21和第二施密特觸發器22分別將第一電壓信號和第二電壓信號整形為方波信號后輸出至異或門23,異或門23將第一電壓信號和第二電壓信號異或的結果作為隨機數字信號輸出。
本例中的a值及各電阻值和電容值優選的參數是:a的取值為108時,第一積分器112和第二積分器122中電阻設置為1kω,電容設置為1pf,第一電阻值r1設置為10kω,第二電阻值設置為1kω,第三電阻值設置為15kω,第四電阻值設置為1kω,第五電阻值設置為1kω,第六電阻值設置為15kω,第七電阻值設置為1kω,則根據混沌電路1的電路設計,獲得的第一電壓信號的被積函數和第二電壓信號的被積函數分別為:
如果將a設置為107,則電容值相應設置為100ff,同樣每隔10-12s,并連續記錄106個v1與v2電壓值的仿真結果如圖5所示;進一步,如果將a設置為106時,則仿真結果如圖6所示;由圖4、圖5和圖6可知:不當的a值選取,將造成隨機數解空間的縮小,甚至無法形成二維雙螺旋軌跡,因此產生的隨機數相關性較強,安全性較低,易于被攻擊。
因此,本申請設計的狀態方程,需要根據實際需求設置合適的參數a,然后再根據參數a設置相應的電阻值和電容值,最終使得設計的電路能提高隨機數發生器輸出隨機數序列的統計特性,同時,與根據其他混沌系統的設計的隨機數發生器相比,該電路使用的元器件較少,功耗較低。
由于混沌系統自身的不確定性,因此對混沌電路輸出電壓采樣后就能得到一個不確定的隨機序列,而通過二維雙螺旋混沌動力系統的matlab仿真圖可知,本例的混沌電路統計特性良好,取值分布平均,適用于作為真隨機數發生器的隨機源模塊,而且,本例的混沌電路結構簡單,功耗低,便于在各種工藝下進行移植。
以上應用了具體個例對本發明進行闡述,只是用于幫助理解本發明,并不用以限制本發明。對于本發明所屬技術領域的技術人員,依據本發明的思想,還可以做出若干簡單推演、變形或替換。