① 如何實現matlab 中基於混沌序列的文本加密。。。謝謝
如何實現matlab 中基於混沌序列的文本加密。。。謝謝
x(1)=0.1;
for i = 2 : 1000
x(i)=4*x(i-1)*(1-x(i-1));
end
L=1000;
NFFT = 1024;
Y = fft(x,NFFT)/L;
f = 1/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)))
title('功率譜')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
百世歲月當代好 千古江山今朝新 萬象更新
② 基於混沌影射的文件加密器的設計
這個比較難 你先得了解密碼學 密碼演算法 應用
我建議你去一些相關論壇看看下載些資料 或者你可以發郵件給我要 我這里有一些IDEA RSA HASH MD5 等一些源程序 感興趣可以給我信息 我的郵箱[email protected]
比如這些代碼
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "En Decrypt - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x804 /d "NDEBUG"
# ADD RSC /l 0x804 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "En Decrypt - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x804 /d "_DEBUG"
# ADD RSC /l 0x804 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "En Decrypt - Win32 Release"
# Name "En Decrypt - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\des.cpp
# End Source File
# Begin Source File
SOURCE=".\Encrypt-Decrypt 01.cpp"
# End Source File
# Begin Source File
SOURCE=.\key.cpp
# End Source File
# Begin Source File
SOURCE=.\stdafx.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\des.h
# End Source File
# Begin Source File
SOURCE=.\global.h
# End Source File
# Begin Source File
SOURCE=.\stdafx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project
③ 憶阻器混沌加密系統什麼時間被提出的
在如今的信息時代中,計算機已成為人們必不可少的工具,但隨之產生而來的信息安全問題已成為一個重要的挑戰性課題。混沌對參數和初始值的極度敏感性使其具有不可預測性,這使得它具有傳統密碼的優良特性,混沌密碼學已成為一種極具潛力的新型密碼設計方法。憶阻器是一個具有記憶特性的非線性電阻,除在非遺失性存儲器、人工神經網路等領域有著重要的應用前景外,它還能構成性能優良的非線性振盪電路。基於以上背景,本文研究復雜混沌系統的設計方法,構造了憶阻器混沌振盪電路和含有自然指數項的混沌系統,並利用它們產生的良好偽隨機序列,設計了一個可以對計算機以及與計算機相連接的移動硬碟、U盤等存儲設備中的文件進行加密的密碼系統。本文主要的研究內容如下。 (1)基於惠普實驗室的TiO2憶阻器建立了磁控記憶電導的數學模型,嘗試利用兩個TiO2憶阻器設計實現了一種憶阻器混沌振盪電路,對其進行了動力學分析,包括平衡點及其穩定性、耗散性、李氏指數和分岔圖,對其進行了MATLAB模擬和DSP數字化實現。為了產生復雜的混沌序列,還設計了一個含有雙指數項的混沌系統,對其進行了分析、模擬和數字化實現,與單指數混沌系統相比它較具有更復雜的動力學特性。 (2)研究了連續混沌系統的離散量化方法,建立了連續混沌系統的離散數學模型,分別利用門限閾值法和位抽取法對構造的構造的TiO2憶阻器混沌系統和雙指數混沌系統進行量化,獲得了混沌數字偽隨機序列
④ 怎麼用MATLAB實現對文本的混沌加密呀基於logistic映射的,大蝦們,親們,幫幫我吧~~~~~~~~~~~~~
% x(n+1)=1-ux(n)^2 %混沌的迭代表達式
% u in (0,2];
% x in (-1,1);
clear all
u=linspace(0,2,200); %u在0到2之間均勻取200個點
for k=1:200 %循環控制,迭代200次
x0=0.42212; %對x0賦初值
for p=1:200 %嵌套循環200次
xn=1-u(k)*x0*x0; %迭代控制語句
if p<100 %迭代100次以前為0
plot(0,0)
else
hold on
plot(u(k),xn,'.','Markersize',2) %當迭代大於100次時,每迭代一次,在圖上將迭代的x值畫出
end
x0=xn; %迭代結果為下一次迭代賦初值
end
end
⑤ 用51單片機來實現語音混沌加密,求Logistic混沌密鑰序列程序
這個範例你看看適不適用
http://arxiv.org/pdf/1112.5791.pdf
Visualizing the logistic map with a microcontroller
Juan D. Serna∗
School of Mathematical and Natural Sciences
University of Arkansas at Monticello, Monticello, AR 71656
Amitabh Joshi†
Department of Physics
Eastern Illinois University, Charleston, IL 61920
December 25, 2011
⑥ 混沌演算法是什麼
混沌演算法是指混沌序列加密演算法 。該演算法首先用單向Hash函數把密鑰散列為混沌映射的迭代初值 ,混沌序列經過數次迭代後才開始取用 ;然後將迭代生成的混沌序列值映射為ASCII碼後與地圖數據逐位元組進行異或運算,考慮到實際計算中的有限精度效應 ,隨步長改變混沌映射參數,採用實際的地圖數據 。
⑦ 量子加密與混沌加密
混沌加密沒有聽說過,不過了解過混沌的概念,混沌和量子加密一丁點關系也沒有。混沌是一種數學現象,而量子加密的基礎量子力學中的量子糾纏態
⑧ 目前常用的加密解密演算法有哪些
加密演算法
加密技術是對信息進行編碼和解碼的技術,編碼是把原來可讀信息(又稱明文)譯成代碼形式(又稱密文),其逆過程就是解碼(解密)。加密技術的要點是加密演算法,加密演算法可以分為對稱加密、不對稱加密和不可逆加密三類演算法。
對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對用戶每次使用對稱加密演算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,密鑰管理成為用戶的負擔。對稱加密演算法在分布式網路系統上使用較為困難,主要是因為密鑰管理困難,使用成本較高。在計算機專網系統中廣泛使用的對稱加密演算法有DES和IDEA等。美國國家標准局倡導的AES即將作為新標准取代DES。
不對稱加密演算法不對稱加密演算法使用兩把完全不同但又是完全匹配的一對鑰匙—公鑰和私鑰。在使用不對稱加密演算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時採用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。不對稱加密演算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密信息,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。顯然,採用不對稱加密演算法,收發信雙方在通信之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由於不對稱演算法擁有兩個密鑰,因而特別適用於分布式系統中的數據加密。廣泛應用的不對稱加密演算法有RSA演算法和美國國家標准局提出的DSA。以不對稱加密演算法為基礎的加密技術應用非常廣泛。
不可逆加密演算法 不可逆加密演算法的特徵是加密過程中不需要使用密鑰,輸入明文後由系統直接經過加密演算法處理成密文,這種加密後的數據是無法被解密的,只有重新輸入明文,並再次經過同樣不可逆的加密演算法處理,得到相同的加密密文並被系統重新識別後,才能真正解密。顯然,在這類加密過程中,加密是自己,解密還得是自己,而所謂解密,實際上就是重新加一次密,所應用的「密碼」也就是輸入的明文。不可逆加密演算法不存在密鑰保管和分發問題,非常適合在分布式網路系統上使用,但因加密計算復雜,工作量相當繁重,通常只在數據量有限的情形下使用,如廣泛應用在計算機系統中的口令加密,利用的就是不可逆加密演算法。近年來,隨著計算機系統性能的不斷提高,不可逆加密的應用領域正在逐漸增大。在計算機網路中應用較多不可逆加密演算法的有RSA公司發明的MD5演算法和由美國國家標准局建議的不可逆加密標准SHS(Secure Hash Standard:安全雜亂信息標准)等。
加密技術
加密演算法是加密技術的基礎,任何一種成熟的加密技術都是建立多種加密演算法組合,或者加密演算法和其他應用軟體有機結合的基礎之上的。下面我們介紹幾種在計算機網路應用領域廣泛應用的加密技術。
非否認(Non-repudiation)技術 該技術的核心是不對稱加密演算法的公鑰技術,通過產生一個與用戶認證數據有關的數字簽名來完成。當用戶執行某一交易時,這種簽名能夠保證用戶今後無法否認該交易發生的事實。由於非否認技術的操作過程簡單,而且直接包含在用戶的某類正常的電子交易中,因而成為當前用戶進行電子商務、取得商務信任的重要保證。
PGP(Pretty Good Privacy)技術 PGP技術是一個基於不對稱加密演算法RSA公鑰體系的郵件加密技術,也是一種操作簡單、使用方便、普及程度較高的加密軟體。PGP技術不但可以對電子郵件加密,防止非授權者閱讀信件;還能對電子郵件附加數字簽名,使收信人能明確了解發信人的真實身份;也可以在不需要通過任何保密渠道傳遞密鑰的情況下,使人們安全地進行保密通信。PGP技術創造性地把RSA不對稱加密演算法的方便性和傳統加密體系結合起來,在數字簽名和密鑰認證管理機制方面採用了無縫結合的巧妙設計,使其幾乎成為最為流行的公鑰加密軟體包。
數字簽名(Digital Signature)技術 數字簽名技術是不對稱加密演算法的典型應用。數字簽名的應用過程是,數據源發送方使用自己的私鑰對數據校驗和或其他與數據內容有關的變數進行加密處理,完成對數據的合法「簽名」,數據接收方則利用對方的公鑰來解讀收到的「數字簽名」,並將解讀結果用於對數據完整性的檢驗,以確認簽名的合法性。數字簽名技術是在網路系統虛擬環境中確認身份的重要技術,完全可以代替現實過程中的「親筆簽字」,在技術和法律上有保證。在公鑰與私鑰管理方面,數字簽名應用與加密郵件PGP技術正好相反。在數字簽名應用中,發送者的公鑰可以很方便地得到,但他的私鑰則需要嚴格保密。
PKI(Public Key Infrastructure)技術 PKI技術是一種以不對稱加密技術為核心、可以為網路提供安全服務的公鑰基礎設施。PKI技術最初主要應用在Internet環境中,為復雜的互聯網系統提供統一的身份認證、數據加密和完整性保障機制。由於PKI技術在網路安全領域所表現出的巨大優勢,因而受到銀行、證券、政府等核心應用系統的青睞。PKI技術既是信息安全技術的核心,也是電子商務的關鍵和基礎技術。由於通過網路進行的電子商務、電子政務等活動缺少物理接觸,因而使得利用電子方式驗證信任關系變得至關重要,PKI技術恰好能夠有效解決電子商務應用中的機密性、真實性、完整性、不可否認性和存取控制等安全問題。一個實用的PKI體系還必須充分考慮互操作性和可擴展性。PKI體系所包含的認證中心(CA)、注冊中心(RA)、策略管理、密鑰與證書管理、密鑰備份與恢復、撤銷系統等功能模塊應該有機地結合在一起。
加密的未來趨勢
盡管雙鑰密碼體制比單鑰密碼體制更為可靠,但由於計算過於復雜,雙鑰密碼體制在進行大信息量通信時,加密速率僅為單鑰體制的1/100,甚至是 1/1000。正是由於不同體制的加密演算法各有所長,所以在今後相當長的一段時期內,各類加密體制將會共同發展。而在由IBM等公司於1996年聯合推出的用於電子商務的協議標准SET(Secure Electronic Transaction)中和1992年由多國聯合開發的PGP技術中,均採用了包含單鑰密碼、雙鑰密碼、單向雜湊演算法和隨機數生成演算法在內的混合密碼系統的動向來看,這似乎從一個側面展示了今後密碼技術應用的未來。
在單鑰密碼領域,一次一密被認為是最為可靠的機制,但是由於流密碼體制中的密鑰流生成器在演算法上未能突破有限循環,故一直未被廣泛應用。如果找到一個在演算法上接近無限循環的密鑰流生成器,該體制將會有一個質的飛躍。近年來,混沌學理論的研究給在這一方向產生突破帶來了曙光。此外,充滿生氣的量子密碼被認為是一個潛在的發展方向,因為它是基於光學和量子力學理論的。該理論對於在光纖通信中加強信息安全、對付擁有量子計算能力的破譯無疑是一種理想的解決方法。
由於電子商務等民用系統的應用需求,認證加密演算法也將有較大發展。此外,在傳統密碼體制中,還將會產生類似於IDEA這樣的新成員,新成員的一個主要特徵就是在演算法上有創新和突破,而不僅僅是對傳統演算法進行修正或改進。密碼學是一個正在不斷發展的年輕學科,任何未被認識的加/解密機制都有可能在其中佔有一席之地。
目前,對信息系統或電子郵件的安全問題,還沒有一個非常有效的解決方案,其主要原因是由於互聯網固有的異構性,沒有一個單一的信任機構可以滿足互聯網全程異構性的所有需要,也沒有一個單一的協議能夠適用於互聯網全程異構性的所有情況。解決的辦法只有依靠軟體代理了,即採用軟體代理來自動管理用戶所持有的證書(即用戶所屬的信任結構)以及用戶所有的行為。每當用戶要發送一則消息或一封電子郵件時,代理就會自動與對方的代理協商,找出一個共同信任的機構或一個通用協議來進行通信。在互聯網環境中,下一代的安全信息系統會自動為用戶發送加密郵件,同樣當用戶要向某人發送電子郵件時,用戶的本地代理首先將與對方的代理交互,協商一個適合雙方的認證機構。當然,電子郵件也需要不同的技術支持,因為電子郵件不是端到端的通信,而是通過多個中間機構把電子郵件分程傳遞到各自的通信機器上,最後到達目的地。
⑨ 混沌密碼學的分類和特徵
混沌流密碼研究
胡漢平1 董占球2
(華中科技大學圖像識別與人工智慧研究所/圖像信息處理與智能控制教育部重點實驗室
中國科學院研究生院,)
摘要:在數字化混沌系統和基於混沌同步的保密通信系統的研究中存在一些亟待解決的重要問題:數字化混沌的特性退化,混沌時間序列分析對混沌系統安全性的威脅等,已嚴重影響著混沌流密碼系統的實用化進程。為此,提出了通過變換的誤差補償方法克服數字混沌的特性退化問題;構建混沌編碼模型完成對混沌序列的編碼、采樣,由此得到滿足均勻、獨立分布的驅動序列;引入非線性變換,以抵抗對混沌流密碼系統安全性的威脅。
關鍵詞:混沌流密碼系統;特性退化;非線性變換;混沌時間序列分析
1. 引言
隨著以計算機技術和網路通信技術為代表的信息技術的不斷發展和迅速普及,通信保密問題日益突出。信息安全問題已經成為阻礙經濟持續穩定發展和威脅國家安全的一個重要問題。眾所周知,密碼是信息安全的核心,設計具有自主知識產權的新型高性能的密碼體制是目前最亟待解決的重要問題。
混沌是確定性系統中的一種貌似隨機的運動。混沌系統都具有如下基本特性:確定性、有界性、對初始條件的敏感性、拓撲傳遞性和混合性、寬頻性、快速衰減的自相關性、長期不可預測性和偽隨機性[1],正是因為混沌系統所具有的這些基本特性恰好能夠滿足保密通信及密碼學的基本要求:混沌動力學方程的確定性保證了通信雙方在收發過程或加解密過程中的可靠性;混沌軌道的發散特性及對初始條件的敏感性正好滿足Shannon提出的密碼系統設計的第一個基本原則――擴散原則;混沌吸引子的拓撲傳遞性與混合性,以及對系統參數的敏感性正好滿足Shannon提出的密碼系統設計的第二個基本原則――混淆原則;混沌輸出信號的寬頻功率譜和快速衰減的自相關特性是對抗頻譜分析和相關分析的有利保障,而混沌行為的長期不可預測性是混沌保密通信安全性的根本保障等。因此,自1989年R.Mathews, D.Wheeler, L.M.Pecora和Carroll等人首次把混沌理論使用到序列密碼及保密通信理論以來,數字化混沌密碼系統和基於混沌同步的保密通信系統的研究已引起了相關學者的高度關注[2]。雖然這些年的研究取得了許多可喜的進展,但仍存在一些重要的基本問題尚待解決。
1.1 數字混沌的特性退化問題
在數字化的混沌密碼系統的研究方向上,國內外學者已經提出了一些比較好的數字混沌密碼系統及其相應的密碼分析方法:文獻[3]提出基於帳篷映射的加解密演算法;文獻[4]1998年Fridrich通過定義一種改進的二維螺旋或方形混沌映射來構造一種新的密碼演算法;文獻[5,6]提出把混沌吸引域劃分為不同的子域,每一子域與明文一一對應,把混沌軌道進入明文所對應的混沌吸引域子域的迭代次數作為其密文;在文獻[7]中,作者把一個位元組的不同比特與不同的混沌吸引子聯系起來實現加/解密;文獻[8]較為詳細地討論了通過混沌構造S盒來設計分組密碼演算法的方法;文獻[9,10]給出了混沌偽隨機數產生的產生方法;英國的SafeChaos公司將混沌用於公鑰密碼體制,推出了CHAOS+Public Key (v4.23)系統[11];等等。但是,這些數字混沌系統一般都是在計算機或其它有限精度的器件上實現的,由此可以將混沌序列生成器歸結為有限自動機來描述,在這種條件下所生成的混沌序列會出現特性退化:短周期、強相關以及小線性復雜度等[12-15],即數字混沌系統與理想的實值混沌系統在動力學特性上存在相當大的差異。它所帶來的混沌密碼系統安全的不穩定性是困擾混沌密碼系統進入實用的重要原因[16]。盡管有人指出增加精度可以減小這一問題所造成的後果,但其代價顯然是非常大的。
1.2 對混沌流密碼系統的相空間重構分析
目前,對混沌保密通信系統的分析工作才剛剛起步,主要方法有:統計分析(如周期及概率分布分析和相關分析等)、頻譜分析(包括傅立葉變換和小波變換等)和混沌時間序列分析[17]。前兩者都是傳統的信號分析手段,在此就不再贅述,而混沌時間序列是近20年來發展的一門紮根於非線性動力學和數值計算的新興學科方向。
從時間序列出發研究混沌系統,始於Packard等人於1980年提出的相空間重構(Phase Space Reconstruction)理論。眾所周知,對於決定混沌系統長期演化的任一變數的時間演化,均包含了混沌系統所有變數長期演化的信息(亦稱為全息性),這是由混沌系統的非線性特點決定的,這也是混沌系統難以分解和分析的主要原因。因此,理論上可以通過決定混沌系統長期演化的任一單變數的時間序列來研究混沌系統的動力學行為,這就是混沌時間序列分析的基本思想。
混沌時間序列分析的目的是通過對混沌系統產生的時間序列進行相空間重構分析,利用數值計算估計出混沌系統的宏觀特徵量,從而為進一步的非線性預測[18](包括基於神經網路或模糊理論的預測模型)提供模型參數,這基本上也就是目前對混沌保密通信系統進行分析或評價的主要思路。描述混沌吸引子的宏觀特徵量主要有:Lyapunov指數(系統的特徵指數)、Kolmogorov熵(動力系統的混沌水平)和關聯維(系統復雜度的估計)等[17]。而這些混沌特徵量的估計和Poincare截面法都是以相空間重構以及F.Takens的嵌入定理為基礎的,由此可見相空間重構理論在混沌時間序列分析中的重大意義。
1.3 對混沌流密碼系統的符號動力學分析
我們在以往的實驗分析工作中都是針對混沌密碼系統的統計學特性進行研究的,如周期性、平衡性、線性相關性、線性復雜度、混淆和擴散特性等,即使涉及到非線性也是從混沌時間序列分析(如相圖分析或分數維估計等)的角度出發進行研究的。然而,符號動力學分析表明,混沌密碼系統的非線性動力學分析同樣非常主要,基於實用符號動力學的分析可能會很快暴露出混沌編碼模型的動力學特性。基於Gray碼序數和單峰映射的符號動力學之間的關系,文獻[20]提出了一種不依賴單峰映射的初始條件而直接從單峰映射產生的二值符號序列來進行參數估計的方法。分析結果表明,基於一般混沌編碼模型的密碼系統並不如人們想像的那麼安全,通過對其產生的一段符號序列進行分析,甚至能以較高的精度很快的估計出其根密鑰(系統參數或初始條件)。
上述結論雖然是針對以單峰映射為主的混沌編碼模型進行的分析,但是,混沌流密碼方案的安全性不應該取決於其中採用的混沌系統,而應該取決於方案本身,而且單峰映射的低計算復雜度對於實際應用仍是非常有吸引力的。因此,我們認為,如果希望利用混沌編碼模型來設計更為安全的密碼系統,必須在混沌編碼模型產生的符號序列作為偽隨機序列輸出(如用作密鑰流或擴頻碼)之前引入某種擾亂策略,這種擾亂策略實質上相當於密碼系統中的非線性變換。
該非線性變換不應影響混沌系統本身的特性,因為向混沌系統的內部注入擾動會將原自治混沌系統變為了非自治混沌系統,但當自治混沌系統變為非自治混沌系統之後,這些良好特性可能會隨之發生較大的變化,且不為設計者所控制。這樣有可能引入原本沒有的安全隱患,甚至會為分析者大開方便之門。
上述非線性變換還應該能被混沌編碼模型產生的符號序列所改變。否則,分析者很容易通過輸出的偽隨機序列恢復出原符號序列,並利用符號動力學分析方法估計出混沌編碼模型的系統參數和初始條件。因此,非線性變換的構造就成了設計高安全性數字混沌密碼系統的關鍵之一。
2. 混沌流密碼系統的總體方案
為克服上述問題,我們提出了如下的混沌流密碼系統的總體方案,如圖1所示:
在該方案中,首先利用一個混沌映射f產生混沌序列xi,再通過編碼C產生符號序列ai,將所得符號序列作為驅動序列ai通過一個動態變化的置換Bi以得到密鑰流ki,然後據此對置換進行動態變換T。最後,將密鑰流(即密鑰序列)與明文信息流異或即可產生相應的密文輸出(即輸出部分)。圖1中的初始化過程包括對混沌系統的初始條件、迭代次數,用於組合編碼的順序表以及非線性變換進行初始化,初始化過程實質上是對工作密鑰的輸入。
在圖1所示的混沌編碼模型中,我們對實數模式下的混沌系統的輸出進行了編碼、采樣。以Logistic為例,首先,以有限群論為基本原理對驅動序列進行非線性變換,然後,根據有限群上的隨機行走理論,使非線性變換被混沌編碼模型產生的驅動序列所改變。可以從理論上證明,我們對非線性變換採用的變換操作是對稱群的一個生成系,所以,這里所使用的非線性變換的狀態空間足夠大(一共有256!種)。
3. 克服數字混沌特性退化的方法
增加精度可以在某些方面減小有限精度所造成的影響,但效果與其實現的代價相比顯然是不適宜的。為此,周紅等人在文獻[22]中提出將m序列的輸出值作為擾動加到數字混沌映射系統中,用於擴展數字混沌序列的周期;王宏霞等人在文獻[23]中提出用LFSR的輸出值控制數字混沌序列輸出,從而改善混沌序列的性質;李匯州等人在文獻[24]中提出用雙解析度的方法解決離散混沌映射系統的滿映射問題。上述方法又帶來新的問題:使用m序列和LFSR方法,混沌序列的性質由外加的m序列的性質決定;使用雙解析度時,由於輸入的解析度高於輸出的解析度,其效果與實現的代價相比仍然沒有得到明顯的改善。
為此,我們提出了一種基於Lyapunov數的變參數補償方法。由於Lyapunov數是混沌映射在迭代點處斜率絕對值的幾何平均值,所以,可以將它與中值定理結合對數字混沌進行補償。以一維混沌映射為例,該補償方法的迭代式為:
(1)
式中, 為Lyapunov數,ki是可變參數。
參數ki的選擇需要滿足下面幾個條件:
(1)ki的選取應使混沌的迭代在有限精度下達到滿映射;
(2)ki的選取應使混沌序列的分布近似地等於實值混沌的分布;
(3)ki的選取應使混沌序列的周期盡可能的長。
根據上述幾個條件,我們已經選取了合適的80個參數,並且以Logistic為例對該變參數補償方法輸出的混沌序列進行了分析。在精度為32位的條件下,我們計算了混沌序列的周期,其結果如下:
除周期外,我們還對復雜度、相關性和序列分布進行了檢測。從結果可知,該變參數補償方法,使得在不降低混沌的復雜度基礎上,增長其周期,減弱相關性,使其逼近實值混沌系統。該方法不僅非常明顯地減小了有限精度所造成的影響,使數字混沌序列的密度分布逼近實值混沌序列的理論密度分布,改善數字混沌偽隨機序列的密碼學性質,而且極大地降低實現其方法的代價。
4. 非線性變換
為克服符號動力學分析對混沌密碼系統的威脅,我們根據有限群上的隨機行走理論提出了一種非線性變換方法,並對引入了非線性變換的混沌密碼系統進行了符號動力學分析,分析結果表明,引入了非線性變換的模型相對一般混沌編碼模型而言,在符號動力學分析下具有較高的安全性。以二區間劃分的模型為例,我們選用Logistic映射作為圖1中的混沌映射f,並根據符號動力學分析中的Gray碼序數[20,21]定義二進制碼序數,見2式。
(2)
二值符號序列S的二進制碼序數W(S)∈(0, 1)。注意,這里的Wr(xi)並不是單值的,因為同樣的狀態xi可能對應不同的置換Bi。
圖2 在2區間劃分下產生的二值符號序列的Wr(xi)分析
圖2中的Wr(xi)為參數r控制下從當前狀態xi出發產生的二值符號序列的二進制碼序數。圖2(a)是未進行非線性變換時的情形,可以看出,其它三種進行非線性變換時的情形都較圖2(a)中的分形結構更為復雜。由此可見,引入了非線性變換的混沌模型相對一般混沌編碼模型而言,在符號動力學分析下具有較高的安全性。
5. 混沌流密碼系統的理論分析和數值分析結果
5.1 理論分析結果
密鑰流的性質直接關繫到整個流密碼系統的安全性,是一個極為重要的指標。我們對密鑰流的均勻、獨立分布性質和密鑰流的周期性質給出了證明,其結果如下:
(1)密鑰留在0,1,…,255上均勻分布。
(2)密鑰流各元素之間相互獨立。
(3)密鑰流出現周期的概率趨向於零。
(4)有關密鑰流性質的證明過程並不涉及改變非線性變換的具體操作,也不涉及具體的驅動序列產生演算法,僅僅要求驅動序列服從獨立、均勻分布,並且驅動序列和非線性變換之間滿足一定的條件,這為該密碼系統,特別是系統驅動部分的設計和改進留下餘地。
總之,該密碼系統可擴展,可改進,性能良好且穩定。
5.2 數值分析結果
目前,基本密碼分析原理有:代替和線性逼近、分別征服攻擊、統計分析等,為了阻止基於這些基本原理的密碼分析,人們對密碼流生成器提出了下列設計准則:周期准則、線性復雜度准則、統計准則、混淆准則、擴散准則和函數非線性准則。
我們主要根據以上准則,對本密碼系統的密鑰流性質進行保密性分析,以證明其安全性。分析表明:混沌流密碼系統符合所有的安全性設計准則,產生的密鑰序列具有串分布均勻、隨機統計特性良好、相鄰密鑰相關性小、周期長、線性復雜度高、混淆擴散性好、相空間無結構出現等特點;該密碼系統的工作密鑰空間巨大,足以抵抗窮舉密鑰攻擊。並且,由於我們採用了非線性變換,所以該密碼系統可以抵抗符號動力學分析。
6. 應用情況簡介
該混沌流密碼系統既有效的降低了計算復雜度,又極大的提高了密碼的安全強度,從而為混沌密碼學及其實現技術的研究提供了一條新的途徑。該系統已於2002年10月30日獲得一項發明專利:「一種用於信息安全的加解密系統」(00131287.1),並於2005年4月獲得國家密碼管理局的批准,命名為「SSF46」演算法,現已納入國家商用密碼管理。該演算法保密性強,加解密速度快,適合於流媒體加密,可在銀行、證券、網路通信、電信、移動通信等需要保密的領域和行業得到推廣。該加密演算法被應用在基於手機令牌的身份認證系統中,並且我們正在與華為公司合作將加密演算法應用於3G的安全通信之中。
參考文獻
[1] Kocarev L, Jakimoski G, Stojanovski T, Parlitz U, From chaotic maps to encryption schemes, In Proc. IEEE Int. Sym. CAS. 1998, 4: 514-517
[2] Kocarev L, Chaos-based cryptography: A brief overview, IEEE Circuits and Systems, 2001, 1(3): 6-21
[3] Habutsu T, Nishio Y, Sasase I, Mori S, A secret key cryptosystem by iterating a chaotic map, in Proc. Advances in Cryptology-EUROCRYPT』91, Springer, Berlin, 1991, 127-140
[4] Fridrich J, Symmetric ciphers based on two-dimensional chaotic maps, Int. J. Bifurcation Chaos, vol.8, no.6, 1998, 1259-1284
[5] Baptista M S, Cryptography with chaos, Phys. Lett. A., 1998, 240: 50-54
[6] Wai-kit W, Lap-piu L, Kwok-wo W, A modified chaotic cryptographic method, Computer Physics Communications, 2001, 138:234-236
[7] Alvarez E, Fernandez A, Garcia P, Jimenez J, et al, New approach to chaotic encryption, Phys. Lett. A, 1999, 263: 373-375
[8] Jakimoski G, Kocarev L, Chaos and cryptography: Block encryption ciphers based on chaotic maps, IEEE Tran. CAS-I, 2001, 48: 163-169
[9] Stojanovski T, Kocarev L, Chaos-based random number generators—Part I: Analysis, IEEE Tran. CAS-I, 2001, 48(3):281-288
[10] Stojanovski T, Pihl J, Kocarev L, Chaos-based random number generators—Part II: Practical Realization, IEEE Tran. CAS-I, 2001, 48(3):382-385
[11] http://www.safechaos.com/chpk.htm
[12] 王育民,信息安全理論與技術的幾個進展情況,中國科學基金,2003,2,76-81
[13] Borcherds P.H., Mccauley G.P., The digital tent map and the trapezoidal map, Chaos, Solitons & Fractal, 1993, 3(4): 451-466
[14] Palmore L, et al, Computer arithmetic, chaos and fractals, Physica, 1990, D42:99-110
[15] Shujun L, Qi L, Wenmin L, Xuanqin M and Yuanlong C, Statistical properties of digital piecewise linear chaotic maps and their roles in cryptography and pseudo-random coding, Cryptography and Coding, 8th IMA International Conference Proceedings, LNCS, vol.2260, pp.205-221, Springer-Verlag, Berlin, 2001
[16] 王育民,混沌序列密碼實用化問題,西安電子科技大學學報,1997,24(4):560-562
[17] 呂金虎,陸君安,陳士華,混沌時間序列分析及其應用,武漢大學出版社,2002
[18] 馮登國 著,密碼分析學,北京:清華大學出版社,2000
[19] B.Schneier著,吳世忠等譯,應用密碼學-協議、演算法與C原程序,北京:機械工業出版社,2000
[20] Xiaogang Wu, Hanping Hu, Baoliang Zhang, Parameter estimation only from the symbolic sequences generated by chaos system, Chaos, Solitons & Fractals, 2004, 22(2):359-366
[21] Hanping Hu, Xiaogang Wu, Zuxi Wang, Synchronizing chaotic map from two-valued symbolic sequences, Chaos, Solitons & Fractals, 2005, 24(4):1059-1064
[22] Zhou H., Ling X.T., Realizing finite precision chaotic systems via perturbation of m-sequences, Acta Electron. Sin, 1997, vol.25, no.7, 95-97
[23] 王宏霞,虞厥邦,Logistic-map混沌擴頻序列的有限精度實現新方法,系統工程與電子技術,2002,vol.24, no.2
[24] Zhou L.H., Feng Z.J., A new idea of using one-dimensional PWL map in digital secure communications—al resolution approach, IEEE Tran. On Circuits and Systems—II: Analog and Digital Signal Proceedings, 2000, vol.47, no.10, Oct.