【摘要】 提出一種基于logistic混沌序列與私鑰圖像相結合的圖像加密技術。將待加密圖像與從100張私鑰圖像中隨機抽取出的圖像合成,進而利用混沌序列對其進行行、列置亂,保證了足夠大的密鑰空間,最后將程序轉化為具有易操作性與可移植性的加密軟件。實驗證明,該加密軟件應用便捷安全性較高。
【關鍵字】 logistic 混沌與私鑰 圖像加密
混沌加密技術是近年來發展較快的非線性科學的重要分支,因其具有非周期、連續寬頻帶、類噪聲和長期不可預測等特點,所以特別適用于保密通信等領域[1]。現有的混沌序列的研究是建立在統計分析上,或是通過實驗測試給出的,這難以保證其每個實現序列的周期足夠大,復雜性足夠高,因而不能讓人們放心地采用它來加密[2]。
本文提出一種基于logistic混沌序列與私鑰圖像相結合的圖像加密技術。加密算法的程序開發平臺為Matlab2012a,涉及計算機模擬環境為 Windows XP。借助于VC++版本的Matlab Compiler編譯器將程序轉化為具有易操作性與可移植性的加密軟件。
程序設計流程基本思路如下,引入100張私鑰圖像,通過序號對私鑰圖像進行身份識別,將密鑰圖像預處理后與待加密圖像合成,進而進行logistic映射置亂加密,從而得到加密圖像。為了增加加密程序的隱蔽性,將私鑰圖片存儲在移動存儲器(如u盤)上,在程序的設計上使用try……catch……語句,當能按照所設置路徑正確讀取到私鑰圖像時,啟動解密程序,否則顯示一張預設圖像。解密過程為加密過程的逆運算,其基本原理與加密過程一致。
Matlab所編程序都要在Matlab環境中運行,其操作較專業且可移植性較差,為此我們借助于Matlab自帶的編譯器Matlab Compiler將GUI程序中的.m文件與.fig文件進行封裝,轉換成exe文件。首先配置編譯器,我們選擇使用VC++6.0版本的編譯器;其次,安裝
最后,對該加密算法進行了安全性、實時性分析。首先,將本文所采用的加密算法應用于BMP圖像的解密效果如圖1。其中圖1(a)為正確解密圖像,1(b)為錯誤解密后圖像,1(c)為無私鑰圖像的解密圖像。
由圖1(a)可見,正確密鑰解密后的圖像是清晰的、正確的、沒有任何失真。圖1(b)顯示了用錯誤密鑰(僅將密鑰二改變0.01)解密后的圖像,圖像是模糊的、無法分辨的。圖1(c)則給出了一張清晰但與原始圖像毫不相干的圖像,該圖像具有一定的誤導性可很好的隱藏原始圖像。
第二、密鑰空間分析。在本文所涉及的加密算法中,兩個方程的參數和初始值都能作為密鑰。matlab默認的數據類型是雙精度(8個字節),數據具有16位有效數字,因此該算法的密鑰空間可以達到1064,再加上100張私鑰圖像所占空間,此算法具有足夠大的密鑰空間抵抗攻擊[3]。
第三、對此加密方案做實時性分析。本文所涉及的圖像加密算法包含像素的置換、圖像的加合等,雖然密鑰空間較大但迭代次數較少,因此計算速度較快,可做到對圖像的實時處理。
綜上,本文所涉及的基于混沌與私鑰圖像結合的加密算法,經數值仿真實驗證明,加密效果好,具有較強的抗攻擊性,加密效率較高,能滿足實時圖像加密的要求;基于該算法的加密軟件具有較強的移植性且操作方便,應用范圍較廣。