視頻加密算法之基于混沌序列和掃描模式的加密

基于混沌序列和掃描模式的視頻序列加密算法是利用掃描模式通過對二維存儲空間的不同訪問方法來產(chǎn)生非常大的掃描路徑或空間填充曲線,并使用正規(guī)語言來確定掃描模式。視頻加密的過程通過求解視頻序列中的相鄰幀之間的差值矩陣,然后壓縮該差值矩陣,最后再用掃描模式和混沌序列對該差值矩陣進(jìn)行加密?;诨煦缧蛄泻蛼呙枘J降闹脫Q和替代操作,組合成了具有良好密碼特性的非線性耦合結(jié)構(gòu),而且在每次迭代過程中使用了密鑰的融合操作,提高了視頻加密算法的安全性。

一、掃描模式的原理

重排視頻中每一幀視頻圖像的像素點的位置可以通過一系列的掃描模式(密鑰)來完成,該掃描模式由一個具有加密特性的掃描語言來產(chǎn)生。通常我們用一個文法G=(τ,∑,A,Ⅱ)來定義掃描語言‘盯,非終結(jié)符τ ={A,S,P,U,V,T}終結(jié)符∑={c,d,o,s,r,a,e,m,y,w,b,z,x,B,Z,X,(,),spac, o,1,2,3,4,5,6,7},起始標(biāo)識符是A,產(chǎn)生式規(guī)則Ⅱ如下:

視頻加密算法之基于混沌序列和掃描模式的加密

上述具有加密特性的掃描語言的具體語義描述如下:

(a) A→S IP表示通過掃描模式5或者剖分模式P來處理像素塊。

(b)S→UT表示通過掃描模式u和變換模式T來處理像素塊。

(c)P→VT(AAAA)表示通過剖分模式y(tǒng)和變換模式T來處理像素塊,然后再分別對每一個子區(qū)域從左到右進(jìn)行A次剖分模式處理。

(d)U→c|d|o| s| r|a|e|m|y|w|b|z|x表示用連續(xù)光柵或?qū)腔蜻B續(xù)正交等經(jīng)典掃描模式分別對像素塊進(jìn)行掃描處理(見圖1)。

視頻加密算法之基于混沌序列和掃描模式的加密
(e)V→B|Z|X表示用字母B或者字母z或者字母x分別對像素塊進(jìn)行剖分。

(f) T→0|1|2|3|4|5|6|7表示用8種掃描或剖分方式中的一種變換模式進(jìn)行處理。

對于所有的掃描模式,0表示如圖1所示的恒等變換,而2

表示對其進(jìn)行90度的順時針旋轉(zhuǎn)。對于掃描模式c,o,s,a,e,m,y,w,b,x,4表示順時針旋轉(zhuǎn)270度;而對于掃描模式r,z,4表示對其做垂直映像,6表示對其做水平映像,然后再順時針旋轉(zhuǎn)90度。對于掃描模式d,4表示順時針旋轉(zhuǎn)90度,然后再對其做水平映像;6表示順時針旋轉(zhuǎn)180度,然后對其做垂直映像。

二、基于混沌序列和掃描模式的視頻序列加密算法

本文提出的基于混沌序列和掃描模式的視頻序列加密算法的核心思想是先求解相鄰幀之間的差值矩陣,然后再壓縮該差值矩陣,最后再加密該差值矩陣。

視頻文件加密算法流程如下:

(1)求解相鄰幀之間的差異矩陣G= (G1,G2,…,GN)。輸入:視頻文件V=(F1,F(xiàn)2,…,F(xiàn)N);輸出:差異矩陣G=(G1,G2,…,Q)。定義視頻序列的幀數(shù)為N,G=F1,G1=F1,
閾值矩陣T= F1,閾值TH由用戶指定。對視頻中的每相鄰兩幀進(jìn)行如下運算:如果|Fk[i,j]- T[i,j]|≤TH,那么Gk[i,j]=-1,否則q[i,j]=0;其中1≤i≤h,1≤j≤w,2≤k≤N;w,h分
別為單幀圖像的寬度和高度。

(2)壓縮上述差異矩陣G,求得差異壓縮矩陣X。

輸入:差異矩陣G:輸出:差異壓縮矩陣X。

定義X=φ,Count=0,分解G為4×4大小的窗口。對其中每一個窗口W進(jìn)行計算,如果W中包含至少一個不是-1的元素,那么X =Append (X,EncodeW indow (W)),Count=Count+1;
然后賦值X =Append (BaCount+n-4,X)。此處符號m,n分別表示用于表述橫坐標(biāo)x和縱坐標(biāo)y的位數(shù),C =Append (A,B)表示合并矩陣A,B得到C的操作。

函數(shù)EncodeW indow (W)的計算如下:定義U=φ(x,y)為W的左上角的坐標(biāo)位置,U =Append (U,B。/4,m -2),U=Append(U,By/4,n-2),以光柵掃描順序訪問W中的每一個元素p,如果p= - 1,U =Append (U,O),否則U=Append (U,1),U=Append(U,Bp.k)。

(3)對視頻序列V=(F1,F(xiàn)2,…,F(xiàn)N)進(jìn)行加密,得到加密后的視頻差異壓縮矩陣。

輸入:視頻序列V=(F1,F(xiàn)2,…,F(xiàn)N);輸出:加密后的差異壓縮矩陣X和加密后的第一幀F(xiàn),1。加密密鑰K= {k1,k2,n,xo}由四部分組成,其中k1,b是掃描加密密鑰,n是加密迭代次數(shù),X是混沌序列的初始值,O<xo <1,利用Logistic映射產(chǎn)生密碼流。函數(shù)J= Encrpt(L K)具體的加密算法如下:

輸入矩陣A,由用戶輸入初始密鑰K和迭代次數(shù)n以及初始值xo,由(2)式和k1生成混沌序列{X’k |k =0,1,2,…3 (w+h) n-1}。

定義矩陣A,D,G為二維矩陣,大小是w Xh;定義B,C,E,F(xiàn)為一維向量,長度為:

視頻加密算法之基于混沌序列和掃描模式的加密

G= scan_decryp t(F,Xk2);J=G;對上述得到的矩陣J進(jìn)行多次迭代加密,運算次數(shù)由用戶輸入的密鑰迭代次數(shù)n決定,就可以得到多次加密后的矩陣J。

運用步驟(1),(2)對原始視頻序列V進(jìn)行加密,求得差異壓縮矩陣,然后再用加密密鑰K對x和F1進(jìn)行加密得到X'=Encript(X,K),F,1=EncI)pt(F,K)。

反之亦然,視頻文件解密過程是視頻文件加密過程的逆運算。

三、實驗結(jié)果與分析

為驗證本文提出的視頻加密算法和解密算法的正確性,應(yīng)用本文提出的視頻加密算法,在PInL 8GHz +512 MRAM的計算機(jī)上進(jìn)行了算法仿真實驗,實驗結(jié)果見圖2。

視頻加密算法之基于混沌序列和掃描模式的加密

圖2是對一段352×240×20(w=352,h=240,幀數(shù)20)的彩色Tennis標(biāo)準(zhǔn)視頻序列進(jìn)行加密和解密實驗的結(jié)果,掃描加密密鑰分別為:B2(x0,y3 ,s6,r 4),c4,加密迭代次數(shù)n=10。xo=0 73152836。從仿真結(jié)果可以看出,k1,k2的初值的微小差別都會造成不能正確解密,實驗結(jié)果表明了本文提出的視頻加密算法的可行性。

小知識之掃描模式

掃描模式是指條碼設(shè)備在讀取條碼信息時所采用的方式,一般的劃分方式如下: 按照讀取設(shè)備所采用的讀取方式可分為:CCD和激光兩種掃描模式。