一種基于ChaCha20和CCSDS的選擇性衛(wèi)星圖像壓縮加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種圖像處理方法,主要是衛(wèi)星圖像壓縮加密方法。
【背景技術(shù)】
[0002] 衛(wèi)星圖像不受國界、地域限制,包含了豐富的觀測數(shù)據(jù)和情報(bào)信息,對(duì)全球經(jīng)濟(jì)、 政治、軍事等產(chǎn)生深遠(yuǎn)影響,但在存儲(chǔ)、傳輸和使用過程中存在一定的泄密隱患,因而尋求 高效的衛(wèi)星圖像加密技術(shù)具有重要的理論意義和工程應(yīng)用價(jià)值。相對(duì)于一般數(shù)字圖像壓縮 加密,衛(wèi)星圖像數(shù)據(jù)量較大,且受傳輸帶寬限制,需要先對(duì)衛(wèi)星圖像壓縮形成編碼數(shù)據(jù)流再 進(jìn)行傳輸和存儲(chǔ),因而傳統(tǒng)的圖像壓縮加密算法推廣到衛(wèi)星圖像并不能達(dá)到最佳壓縮加密 效果。另外,現(xiàn)有的一些衛(wèi)星圖像加密技術(shù)一般通過傳統(tǒng)加密算法或者安全協(xié)議進(jìn)行端對(duì) 端傳輸,未充分考慮衛(wèi)星圖像分辨率高、容量大、信息量豐富、圖像價(jià)值高等特點(diǎn),存在加密 時(shí)間長、實(shí)時(shí)性處理差、安全性不高、自適應(yīng)性差等局限性。
【發(fā)明內(nèi)容】
[0003] 為克服現(xiàn)有技術(shù)不足,本發(fā)明提供一種基于化a化曰20和CCSDS的選擇性衛(wèi)星圖像 壓縮加密方法(簡稱為SECC加密方法)。
[0004] 本發(fā)明目的在于針對(duì)衛(wèi)星圖像數(shù)據(jù)量大、價(jià)值高且難W再次獲取、加密強(qiáng)度要求 高,現(xiàn)有加密算法自適應(yīng)差、加密效率低等問題,提出一種基于化a化曰20和CCSDS的選擇性 衛(wèi)星圖像壓縮加密方法,實(shí)現(xiàn)衛(wèi)星圖像加密效果好、自適應(yīng)性強(qiáng)、且對(duì)壓縮性能影響小的效 果。
[0005] 為實(shí)現(xiàn)上述目的,本發(fā)明技術(shù)方案的基本思想為:針對(duì)衛(wèi)星圖像特點(diǎn),首先利用 CCSDS圖像壓縮算法中9/7整型小波對(duì)圖像進(jìn)行S級(jí)二維離散小波變換,得到變換后的DC系 數(shù)和AC系數(shù)。其次,通過編碼選項(xiàng)中的頭信息與512位初始密鑰,采用化aCha20流密碼運(yùn)算 產(chǎn)生化aCha20初始字節(jié)流;混濁迭代初始密鑰和明文圖像歸一化均值,通過分段線性混濁 映射(Piecewise Linear Chaotic Map,PWLCM)迭代產(chǎn)生的字節(jié)流與ChaCha20初始字節(jié)流 求和取模生成畑aCha20字節(jié)流。然后,將畑aCha20字節(jié)流與DC系數(shù)和部分AC系數(shù)(每個(gè) block中的父、子系數(shù))、所有AC系數(shù)符號(hào)進(jìn)行異或加密。DC系數(shù)加密^segment為單位,前一 個(gè)加密過的系數(shù)反饋?zhàn)饔玫疆?dāng)前系數(shù)的加密,并且每個(gè)segment中最后一個(gè)已加密DC系數(shù) 會(huì)作用到下一個(gè)segment中的第一個(gè)DC系數(shù),使得一個(gè)segment中系數(shù)的變化擴(kuò)散到W后所 有segment的系數(shù)中;AC系數(shù)Wblock為單位和化a化曰20字節(jié)流進(jìn)行異或加密,AC系數(shù)符號(hào) 位與ChaCha20字節(jié)流轉(zhuǎn)化成的比特流進(jìn)行異或加密。最后,將加密過的DC、AC系數(shù)W segment為單位進(jìn)行編碼壓縮,完成衛(wèi)星圖像壓縮加密?;痑化曰20字節(jié)流的產(chǎn)生與待加密衛(wèi) 星圖像、壓縮編碼參數(shù)相關(guān),增強(qiáng)加密的自適應(yīng)性。
[0006] 本發(fā)明基于化a畑曰20和CCSDS的選擇性衛(wèi)星圖像壓縮加密SECC方法包括如下步 驟:
[0007] 步驟1:小波變換
[0008] 對(duì)大小為MXN的輸入圖像進(jìn)行S級(jí)二維整型9/7離散小波變換,產(chǎn)生與輸入圖像 像素?cái)?shù)量相同的變換系數(shù),其中DC系數(shù)占總系數(shù)的1/64 ,AC系數(shù)占總系數(shù)的63/64;
[0009] 步驟2:化a化a20字節(jié)流生成
[0010] ChaCha20的每個(gè)狀態(tài)(state)共16個(gè)狀態(tài)字(state word),每個(gè)32位,分別為4個(gè) 常數(shù)constant,8個(gè)輸入密鑰key,2個(gè)塊計(jì)數(shù)器counter,2個(gè)隨機(jī)數(shù)nonce,Cha化日20狀態(tài)的 排列方式如公式(1)所示;本發(fā)明將原始的化a化曰20密鑰略加修改,使化a化曰20的256位密 鑰key擴(kuò)充到512位,即把密鑰key與consent ,counter、nonce共同作為QiaQia20的輸入密 鑰(外部密鑰),擴(kuò)充后狀態(tài)的排列方式如公式(2)所示。為了增強(qiáng)圖像加密的自適應(yīng)性, SECC加密方法采用化a化曰20流密碼結(jié)合圖像明文像素總和、編碼選項(xiàng)參數(shù)頭信息(即,子帶 加權(quán)系數(shù)、一個(gè)segment容許的最大字節(jié)數(shù)Se濁yteLimit)產(chǎn)生初始字節(jié)流,再與PWLCM映射 共同作用生成化a化曰20字節(jié)流。
[OOU] 1)輸入512位外部密鑰,按照*日,機(jī),'\¥2,*3,*4,*日,'\¥6,*7,則,*9,機(jī)日,機(jī)1,機(jī)2,機(jī)3,訊14, W15順序,依次將外部密鑰W小端字節(jié)序方式,賦給化a化a20狀態(tài)字作為初始值,每個(gè)32位, 得到化a化日20初始態(tài)(Initial S化te);將子帶加權(quán)系數(shù)組s[i] ,i=0,1,. . .9按照公式(3) 合并成20比特的整數(shù)number;
H)
[0015] 2)為增強(qiáng)加密方法的自適應(yīng)性,將畑a化曰20初始態(tài)中的W12與明文圖像像素總和 Siim(P) ,number、56濁八61^;[1]1;[1:進(jìn)行異或,如公式(4)所示。異或處理后的初始態(tài)稱為基準(zhǔn)狀 態(tài),作為擴(kuò)散操作的起點(diǎn);
[001W 二',Vp ?踩"/(巧貨乃輯玻er皆及巧卻化左知城 (4》
[0017]式中,貨表示異或操作;
[0018] 3) W基準(zhǔn)狀態(tài)為基礎(chǔ)進(jìn)行20輪化a化a20擴(kuò)散操作,產(chǎn)生化a化a20最終狀態(tài)。從上 到下逐行讀取最終狀態(tài)的每個(gè)狀態(tài)字,依據(jù)小端字節(jié)序方式將其轉(zhuǎn)換成字節(jié)流,連接成512 位哈希密鑰流;8位一組(單字節(jié)整數(shù)e[0~255])分割成長度為64的化a化a20初始字節(jié)流 keyO。每次將上一次的狀態(tài)字W12加1,其它狀態(tài)字保持不變,進(jìn)行20輪擴(kuò)散過程,每次產(chǎn)生64 個(gè)字節(jié),如此重復(fù)M*N/256次,拼接產(chǎn)生長度為M*N/4的初始字節(jié)流by testreamo;
[0019] 4)計(jì)算明文圖像歸一化均值XO = mean (P) /256,mean (P)表示對(duì)明文圖像P中的像 素求均值,將歸一化均值XO和輸入初值Io作為公式(5)中PWLCM映射參數(shù)Xn,1的初值,迭代 ki+M*N/4次,產(chǎn)生長度為ki+M*N/4的混濁序列,舍棄前ki項(xiàng)(避免暫態(tài)效應(yīng)),生成長度為M* (5 ) N/4的混濁序列c;
[0021] 5)采用公式(6)將序列C轉(zhuǎn)換成整數(shù)序列0={〇1,…,〇v,-'om*n/4},〇vE[0,255],
[0022] 〇v=floo;r(mod(Cv*l〇i5,256)) ,V=I ,2,...M*N/4 (6)
[0023] 根據(jù)公式(7)構(gòu)建 QiaQia20 字節(jié)流 bytestream;
[0024] bytestream(i) =mod(bytestream〇(i)+0(i),化6),i = 1,2,...M*N/4 (7)
[0025] 其中,mod(x,y)表示X對(duì)y取模;
[0026] 步驟3:加密小波變換系數(shù)
[0027] 設(shè)一個(gè)segment由S個(gè)block組成,即一個(gè)segment中包含S個(gè)DC系數(shù)。
[002引1)加密DC系數(shù)
[0029] 第t個(gè)segment的DC系數(shù)序列表示為DCbytest( j),j = 1,2,…S。圖像變換后的DC系 數(shù)占全部系數(shù)總數(shù)的1/64,而且8位深度圖像變換后的系數(shù)值基本上為(0,255)之間的整 數(shù)。SECC加密方法將生成的ChaCha20字節(jié)流bytestream的前M*N/64個(gè)字節(jié)與DC系數(shù)逐個(gè)進(jìn) 行異或操作,并且使用明文圖像像素值總和加密首個(gè)segment的第一個(gè)DC系數(shù)。為了增強(qiáng)DC 系數(shù)間的擴(kuò)散性能,將前一個(gè)加密后的DC系數(shù)作為反饋來影響當(dāng)前DC系數(shù)加密。同時(shí),為了 增強(qiáng)segment間的擴(kuò)散性能,將一個(gè)segment中最后一個(gè)已加密DC系數(shù)反饋到下一個(gè) segment中的第一個(gè)DC系數(shù)加密過程。
[0030] (1)獲得異或初值日日;初值ao = mod(sum(P) ,256) ,Siim(P)表示明文圖像像素總和。 ao用來加密第一個(gè)segment中的第一個(gè)DC系數(shù),如公式(8)所示,得到加密后的第一個(gè)DC系 數(shù)DCb}ftesi'(1);
[0031 ] DCAj'化 v;(lj =DC妙&^i(I)貨'卸給S托知奶巧想(?. (致)
[0032] (2)加密第t個(gè)segment的DC系數(shù);如公式(9)、(10)所示,得到第t個(gè)segment加密后 的DC系數(shù)DCb}ftest'( j),j = l,2,…S; D(7n 化 V. (1) ? /"'化"化""Z(I) ? <2。 擴(kuò)=1
[003;3] DCAv/化(1)叫 ? ' . (9) ? ' 吟(7嚇/巧(1)黃 Aj/e'v/r化'"z((/ -1)+ I)? 0<:7,,,他'(S) / 卓 1 DCh\'tcs,( f)二 lX:hYU,s,U)?h\'h,strc(!m(〇 - V)* S + j)承 lX:hYU,s,i j - 1%
[0034].可 . HO) J = 2,3.---5
[00對(duì) 2)加密AC系數(shù)
[0036] AC系數(shù)子帶的最大值和平均值均遠(yuǎn)小于DC系數(shù),如果直接加密所有的AC系數(shù)將大 幅度增加編碼碼流。AC系數(shù)在編碼過程中,一個(gè)