圖像加密

圖像加密

圖像加密是利用數字圖像的二維矩陣特徵,在圖像的空域(或頻域),按某種可逆的變換規則,改變像素(或頻域係數)的位置或值,將包含有效信息且可識別的圖像轉化為不可辨別的類似隨機噪聲圖像,即類似於老式電視機信號不好時所呈現的“雪花”狀,接收方只有獲得正確密鑰才能解密出原始圖像,以此來保護圖像內容安全的目的。該技術旨在保護圖像內容在傳輸或存儲過程中不被未授權的人員訪問。

基本介紹

  • 中文名:圖像加密
  • 外文名:Image encryption
  • 所屬學科:跨學科
  • 用 途:保護圖像內容安全
引言,置亂方法,(1)混沌排序,(2)Arnold變換,(3)螺旋變換,(4)Zigzag變換,擴散方法,(1)異或運算,(2)S盒代換,(3)DNA編碼,(4)位平面分解,評價指標,(1)加密效率,(2)安全性,(3)魯棒性,(4)視覺質量分析,

引言

數字圖像已廣泛套用到軍事、醫療、商業和日常生活等諸多領域。隨著網際網路和圖像處理技術的快速發展,數字圖像的產生和散布變得十分容易。數字圖像比聲音蘊涵更多的信息量,同時又是形成視頻的基礎,在多媒體信息中占有舉足輕重的地位。在實際套用中,部分數字圖像會涉及核心機密和重要數據的“敏感”信息,例如,軍事圖像、非公開會議圖像、醫療圖像、私人圖像和證件圖像等。如何保護圖像內容的網路傳輸和存儲安全是成為一個迫切需要解決的問題。
一個典型的數字圖像加密技術的執行過程,如圖1所示。首先,利用密鑰生成器生成密鑰,在安全通道中分別給傳送方和接收方傳送加密密鑰和解密密鑰;其次,傳送方使用加密密鑰和加密算法對傳輸的明文圖像進行加密,獲得加密圖像;再次,傳送方通過不安全通道向接收方傳輸加密圖像。在傳輸過程中,圖像被竊取或截獲的風險性極高。然而,若圖像是經加密的,則無法從視覺上獲取任何信息,且沒有正確密鑰的前提下難以破解;最後,接收方利用解密密鑰和解密算法,可將獲得的加密圖像轉換為解密圖像,即呈現明文圖像信息。通常情況下,解密過程是加密過程的逆過程。
圖像加密
圖1 典型的數字圖像加密技術
以標準測試圖像集中的飛機場圖像為例,原始圖像和加密圖像分別,如圖2和3所示。
圖像加密
圖2 飛機場原始圖像
圖像加密
圖3 飛機場加密圖像
圖像加密技術用於保護圖像內容的安全,是圖像安全技術的核心。目前,在中國知網上能查到的第1篇關於圖像加密技術報導的文獻發表在1994年。它可初步認定為圖像加密技術發展的起點。
經過研究者們30年的不斷努力,已設計出成千上萬種圖像加密算法。
從研究對象來分,圖像加密算法可分為:黑白圖像加密、灰色圖像加密、彩色圖像加密、感興趣區域圖像加密、雙圖像加密和多圖像加密等。
從加密粒度來分,圖像加密算法可分為:塊級圖像加密、像素級圖像加密、位(Bit)級圖像加密和DNA鹼基級圖像加密等。
從加密操作所在空間來分,圖像加密算法可分為:空域加密和頻域加密。頻域加密又可細分為:離散餘弦變換域加密、傅立葉變換域加密和小波變換域加密等。
圖像加密算法的經典設計框架為置亂+擴散。圖像置亂(Scrambling)操作用來改變原始圖像的像素位置,進而削弱相鄰像素點之間的關聯性。圖像擴散(Diffusion)操作用來改變原始圖像的像素值,增強抵抗統計攻擊的能力。常見的圖像置亂手段包括:混沌序列排序、Arnold變換、螺旋變換和Zigzag變換等。常見的圖像擴散手段包括:異或運算、S盒代換、DNA編碼和位平面分解等。

置亂方法

下面詳細介紹下常見的圖像置亂手段。

(1)混沌排序

混沌排序置亂是通過對混沌序列進行升序或降序排列,得到混沌序列的索引值,再利用該索引值打亂明文圖像的像素位置。該算法的具體步驟如下:
步驟1:明文圖像重塑
令明文圖像為P,大小為m×n,將P重塑成一個長度為mn的向量S,即S=reshape(P, mn),其中reshape(·)是重塑函式;
步驟2:混沌序列排序
令混沌序列為X,長度為mn,對X進行升序或降序排列,可得新的混沌序列Y和索引值I,即[Y, I]=sort(X),其中sort(·)是排序函式;
步驟3:圖像置亂
利用I置亂S,可得加密序列Q,即Q=S(I(i)),i=1, 2, …, mn;
步驟4:加密序列重塑
將Q重塑為一個大小為m×n的矩陣,可得置亂圖像C,即C=reshape(Q, m, n)。

(2)Arnold變換

1967年,俄國數學家Vladimir Arnold在研究遍歷理論時,以一幅貓臉的圖像為研究對象,發現了Arnold變換,也常稱為貓臉變換。Arnold變換作為一種常用的圖像置亂手段。目前,已廣泛套用於圖像加密領域。
Arnold變換的基本思路,將原圖像中的像素點從位置(x, y)移動到新位置(x’, y’),從而實現了對圖像中像素點的移動,用Arnold變換對圖像中所有的像素點進行處理,就完成了一次圖像的Arnold變換。
Arnold變換具有周期性。它的具體定義為:
[x’,y’]=A[x,y] mod n,(1)
其中,T為轉置操作,A=[1 1; 1 2],x, y∈{0, 1, ..., n-1}。
利用Arnold變換,對圖像進行加密的具體步驟如下:
步驟1:令原始圖像為P,大小為n×n,計算Arnold變換的周期為t;
步驟2:隨機選取[1, t-1]中的任意一個整數r作為密鑰。當r=0或t時,圖像沒有加密,仍為原始圖像;
步驟3:利用Arnold,對P疊代r次變換後,可得到加密圖像E。
利用Arnold變換,對加密圖像進行解密的具體步驟如下:
步驟1:計算Arnold變換的周期為t;
步驟2:利用Arnold變換,對E疊代t-r次變換後,可得解密圖像D。

(3)螺旋變換

螺旋變換是在給定的螺旋起點和方向上,以一種螺旋狀的方式對圖像中所有的像素進行掃描,將圖像變成一維向量,再將該一維向量重塑成一個二維矩陣,從而完成置亂。以大小為5×5的圖像為例,採用右上角為起點,將矩陣元素與箭頭軌跡一起排序,可將矩陣轉換為一個長度為25的向量,得到掃描後的矩陣,螺旋變換的掃描過程,如圖4所示。
圖像加密
圖4 螺旋變換的簡單示意圖

(4)Zigzag變換

Zigzag變換是從圖像的左上角的第一個像素開始,以“Z”字形的方式對圖像中所有的像素進行掃描,將圖像變成一維向量,再將該一維向量重塑成一個二維矩陣,從而完成置亂。以大小為4×4的圖像為例,將矩陣元素與箭頭軌跡一起排序,可將矩陣轉換為一個長度為16的向量,得到掃描後的矩陣,Zigzag變換的掃描過程,如圖5所示。
圖像加密
圖5 Zigzag變換的簡單示意圖

擴散方法

下面詳細介紹下常見的圖像擴散手段。

(1)異或運算

異或(Exclusive OR,XOR)是一種計算機中的位運算,也是設計加密算法時最基本的運算。
異或運算擴散是通過對混沌序列進行整數化處理後,得到整數混沌序列,再利用該整數混沌序列與明文圖像的像素值進行逐一進行異或運算,實現圖像擴散操作。該算法的具體步驟如下:
步驟1:明文圖像重塑
令明文圖像為P,大小為m×n,將P重塑成一個長度為mn的向量S,即S=reshape(P, mn);
步驟2:混沌序列整數化
令混沌序列為X,長度為mn,對X進行整數化處理,可得整數混沌序列Y,即Y=mod(X×10,256),其中mod(·)為取模運算函式;
步驟3:圖像擴散
對S和Y進行異或運算,可得加密序列Q,即Q=S⊕Y;
步驟4:加密序列重塑
將Q重塑為一個大小為m×n的矩陣,可得擴散圖像C,即C=reshape(Q, m, n)。

(2)S盒代換

S盒(Substitution-box)在密碼學中是對稱加密算法執行置換計算的基本結構,主要用於分組密碼算法中,是唯一的非線性結構。S盒的功能是一種簡單的“代替”操作。在圖像加密領域,以圖6所示的16×16的S盒為例,明文像素的具體替換過程為:
圖像加密
圖6 16×16的S盒
令某像素值為d,對應的二進制為d=d7d6d5d4d3d2d1d0,其中di∈{0,1},i=0,1, …, 7。將d表示為:x=d7d6d5d4,y=d3d2d1d0。然後,用x, y的十進制數值查詢S盒中(x, y)位置的值w,即為像素值d對應的密文。

(3)DNA編碼

在1953年,Watson和Crick聯合提出了DNA鏈雙螺旋結構,其中每個DNA序列由腺嘌呤(Adenine,A)、胞嘧啶(Cytosine,C)、鳥嘌呤(Guanine,G)和胸腺嘧啶(Thymine,T)四種鹼基組成,兩個DNA序列間通過A-T和C-G的互補配對規律鍵接在一起。
在現代電子計算機理論中,所有信息都是用二進制表示的。在DNA編碼理論中,所有信息都是由包含四種鹼基A、C、G和T的DNA序列表示的。在二進制序列中,0和1是互補的;可推斷出00和11是互補的;另外,01和10也是互補的。因此,00、01、10和11可被用來編碼DNA序列。所有編碼方案有4! = 24種,但只有8種編碼方案符合Watson Crick互補配對規則,如表1所示。
表1 DNA編碼規則
規則
1
2
3
4
5
6
7
8
A
00
00
01
01
10
10
11
11
T
11
11
10
10
01
01
00
00
C
01
10
00
11
00
11
01
10
G
10
01
11
00
11
00
10
01
DNA運算是指DNA序列中鹼基之間的運算。根據表1中的DNA編碼規則1,定義的DNA加法、DNA減法、DNA異或和DNA同或運算規則,如表2-5所示。通過DNA運算,可改變明文圖像的像素值,即DNA運算在圖像加密算法中能起到擴散作用。
表2 DNA加法運算規則
加法
A
T
C
G
A
A
T
C
G
T
T
G
A
C
C
C
A
G
T
G
G
C
T
A
表3 DNA減法運算規則
減法
A
T
C
G
A
A
C
T
G
T
T
A
G
C
C
C
G
A
T
G
G
T
C
A
表4 DNA異或運算規則
異或
A
T
C
G
A
A
T
C
G
T
T
A
G
C
C
C
G
A
T
G
G
C
T
A
表5 DNA同或運算規則
同或
A
T
C
G
A
T
A
G
C
T
A
T
C
G
C
G
C
T
A
G
C
G
A
T

(4)位平面分解

一幅灰度圖像每個像素點的灰度值都可用8位二進制數表示,提取出一幅圖像所有像素點二進制數的每一個比特位組成一個矩陣,共8個矩陣,每一個矩陣可看作一幅二值圖像,稱為位平面(Bit Plane)。提取最高位構成第一幅位平面,記為A1,提取第7位構成第二幅位平面,記為A2,以此類推,最低位位平面記為A8。這樣就將一幅灰度圖像分解成8幅位平面圖像。這個圖像分解過程,稱為位平面分解。位平面分解示意圖,如圖7所示。在設計圖像加密算法時,可將每個位平面作為單獨的加密通道進行處理,也可僅對高位平面進行處理。
圖像加密
圖7 位平面分解示意圖
以圖8灰色圖像Peppers為例,進行位平面分解,可得8個位平面,如圖9所示。
圖像加密
圖8 Peppers圖像
圖像加密
圖9 Peppers的8個位平面
從圖9可看出:高位平面中包含了圖像的很多信息量,這些信息可反映出原始圖像的一些重要特徵,比如邊緣、紋理和灰度分布等。然而,低位平面中包含的信息量很少,幾乎看不到原始圖像的主要特徵。表3是每個位平面所包含原始圖像的信息量。
表3 每個位平面包含原始圖像的信息量
位平面
信息量
1
50.196%
2
25.098%
3
12.549%
4
6.275%
5
3.137%
6
1.568%
7
0.784%
8
0.393%

評價指標

圖像加密算法的常用評價指標主要包括加密效率、安全性、魯棒性和視覺質量分析等四個方面。

(1)加密效率

加密效率方面評價指包括:加密耗時和算法複雜度分析。
①加密耗時:加密時間作為效率的另一個衡量標準,其直接影響著加密性能。加密算法提出是為了套用到各個領域,能保證快速實時傳輸很重要。如果加密一幅圖像耗時很久,即使它的安全性非常高,也很難得到廣泛套用。一般認為,圖像加密所耗時間不光依賴於原始圖像的尺寸和算法的設計,還與特定的軟、硬體操作環境有著緊密聯繫,如計算機配置(CPU、記憶體、硬碟)、作業系統和仿真軟體等。
②算法複雜度分析:計算複雜度是評估加密算法優劣的一個標準。所設計算法的計算複雜度與原始圖像的尺寸密不可分。對於經典的“置亂-擴散”框架的算法,其消耗的時間資源主要體現在置亂和擴散操作這兩部分。通常,具有低計算複雜度的加密算法,實用性更強。

(2)安全性

安全性方面評價指包括:密鑰空間、密鑰敏感性、直方圖分析、信息熵、差分攻擊和相關性分析等。
①密鑰空間:是指算法中所有可能且有效的密鑰的容量。密鑰空間是衡量加密算法的重要因素之一,優秀的加密算法應具有複雜的密鑰和較大的密鑰空間。目前,普遍認為密鑰空間大於2時,對加密算法進行暴力窮舉攻擊是無效的。密鑰空間越龐大,抵禦窮舉搜尋的能力越強,安全係數越高。然而,也不是密鑰空間越大越好,過長的密鑰也會增加密鑰傳輸的數據量。
②密鑰敏感性:是指利用一個正確密鑰和一個含有微小差異的密鑰,對同一幅原始圖像生成兩幅雜亂無章且完全不同的加密圖像,並分析這兩幅加密圖像之間差異的過程。如果兩幅加密圖像相差不大,即它們的像素點灰度值類似,那么表明密鑰的變化對加密結果影響較小,加密算法的密鑰敏感性差。反之,如果兩幅加密圖像差值很大,那么意味著加密算法具有極強的密鑰敏感性。
③直方圖分析:是指反映圖像像素分布的量化標準,而優秀圖像加密算法處理後的加密圖像應當具有均勻的直方圖。一般而言,明文圖像能反映真實世界,其能量分布存在很大的差別,灰度值出現的頻率顯著不同,導致直方圖分布有很大的波動。然而,對於理想的加密圖像,相鄰像素之間的相關性極低,其直方圖基本是均勻分布的。因此,加密算法的設計應儘量破壞像素間的關聯性,使加密圖像的直方圖能均勻分布。
④信息熵:是指對圖像信息的不確定性和混亂程度的度量。它定義為:
h=-sum(p(mi)log2p(mi)), (2)
其中,i=0, 1, …, 255,mi代表像素值,p(mi)是灰度值出現的機率,sum(·)是求和函式。若圖像的各灰度值出現的機率相差不大,灰度值分布越均勻,則圖像的信息熵越大。若圖像中的各像素灰度值出現的機率相等時,則信息熵達到最大值8。事實上,加密圖像的信息熵與理想值8相接近的情況下,所設計的加密算法對統計攻擊的抵禦能力很強。
⑤差分攻擊:是指攻擊者利用提出的算法對明文圖像和對一定像素值進行輕微修改的明文圖像分別加密處理,並對修改前後的加密圖像進行比較分析。差分攻擊的抵抗能力很大程度上受加密算法對原始圖像的敏感程度的影響。像素數變化率(Number ofPixels Change Rate,NPCR)和統一平均變化強度(UnifiedAverage Changing Intensity,UACI)可用來測試抗差分攻擊的能力。它們分別定義為:
D(i,j)=0 if c1(i, j)=c2(i, j), (3)
D(i,j)=1 if c1(i, j)≠c2(i, j), (4)
NPCR=[1/(m×n)]sum(sum(D(i,j)))×100%, (5)
UACI=[1/(m×n)]sum(sum(|c1(i,j)-c2(i, j)|/255))×100%, (6)
其中,i=0, 1, …, m,j=0, 1, …, n,m和n分別表示原始圖像的行數和列數。c1和c2表示加密圖像,它們分別對應原始明文圖像和僅一個像素值發生變化的明文圖像。若c1(i, j)≠c2(i, j),則D(i, j)=1;否則,D(i, j)=0。總之,NPCR和UACI的理論值分別為99.6094%和33.4635%。為很好地抵禦差分攻擊,NPCR和UAC的值必須儘量接近這些值。
⑥相關性分析:相關性反映了圖像不同方向上相鄰位置間的關聯性。對於有意義的圖像,在某些方向上存在較強相關性的相鄰像素。相關係數的絕對值越小,像素之間越不相關,安全性越好。優秀的圖像加密算法可削弱像素之間的這種強相關性,使原始圖像變成一個相關性很弱或幾乎沒有相關性的類噪聲圖像。對於圖像來說,像素相鄰相關性包括三個方向,即水平方向、垂直方向和對角方向。相關係數定義為:
rxy=cov(x, y)/(sqrt(D(x))×sqrt(D(y))),(7)
cov(x, y)=(1/n)×sum((xi-E(x))×(yi-E(y))), (8)
E(x)=(1/n)×sum(xi), (9)
D(x)=(1/n)×sum(xi-E(x)), (10)
其中,i=0, 1, …, t,x和y代表兩組相鄰像素,sqrt(·)是開平方函式,t表示從圖像中選擇的總像素值;rxy表示這些像素的相關性,cov(x, y)是協方差,E(x)是期望,且D(x)是方差。原始圖像的解析度高,相鄰像素位置的關聯性強,且具有很大的相關係數,像素三個方向上的相關性基本上是直線分布,即呈現出了顯著的線性相關。而加密圖像相鄰像素位置的關聯性很弱,其相關係數幾乎為0,像素三個方向上的相關性大致上呈現出雜亂無章的狀態,表明加密圖像已有效地消除了相鄰像素之間的關聯性。因此,經加密後的圖像,其相關係數越接近於0,且各方向上的相關性分布越雜亂無序,加密效果越理想。

(3)魯棒性

魯棒性方面評價指包括:裁剪攻擊和噪聲攻擊。
①裁剪攻擊:在現實網路中傳輸和存儲圖像過程中,圖像可能遭受某種特殊攻擊導致部分像素信息缺失,從而破壞加密圖像的完整性。裁剪攻擊是指遮擋不同程度和不同區域的加密圖像來模擬裁剪攻擊,對其進行解密,並觀察它們解密圖像的視覺效果。如果遮擋後的解密圖像的大部分信息仍然存在,且視覺上影響較小,表明裁剪攻擊後的加密圖像解密後依舊含有大量的原始圖像,足以抵抗裁剪攻擊。
②噪聲攻擊:在傳輸過程中,加密圖像可能會遇到各種噪聲,容易把噪聲作為干擾嵌入到加密圖像中,對加密圖像造成影響,降低圖像質量。通常,在加密圖像中添加不同密度的椒鹽噪聲或高斯噪聲,並對其解密。然後,從視覺上觀察解密圖像是否能識別。如果解密圖像仍能保留原始圖像的大部分有效信息,那么表明加密算法具備一定的抗噪聲能力。

(4)視覺質量分析

頻域圖像加密通常會涉及到整數和小數之間的相互轉換,解密圖像往往存在一定程度的失真。均方誤差(MeanSquare Error,MSE)和峰值信噪比(Peak Signal to NoiseRatio,PSNR)可評價解密圖像的失真情況。它們分別定義為:
MSE=[1/(m×n)]sum(sum((X(i,j)-Y(i, j)))), (11)
PSNR=20log10(255/MSE), (12)
其中,m和n分別表示圖像的行數和列數。X(i,j)和Y(i,j)分別代表原始圖像的像素值和對應解密圖像的像素值。若X(i, j)=Y(i,j),表示原始圖像與加密圖像完全相同,則MSE=0,表明解密圖像無失真。由公式推出,MSE越大,PSNR值越小,表明解密圖像失真越嚴重。
這兩個指標也可以用來客觀評估加密圖像的質量。此時,X(i,j)和Y(i,j)分別代表原始圖像的像素值和對應加密圖像的像素值。由公式推出,MSE越大,PSNR值越小,表明加密圖像的效果越好。通常,當MSE值大且PSNR值不超過10 dB時,加密算法具有良好的加密效果。

相關詞條

熱門詞條

聯絡我們