国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于魔方密碼的圖像加密解密技術(shù)

2021-08-05 07:47孫光民
關(guān)鍵詞:密文密鑰魔方

孫光民,王 皓

(1.北京工業(yè)大學(xué)信息學(xué)部,北京 100124;2.北京工業(yè)大學(xué)信息化建設(shè)與管理中心,北京 100124)

圖像加密與解密技術(shù)經(jīng)過多年的發(fā)展已經(jīng)有了較為可靠的算法,如動(dòng)態(tài)DNA序列加密方法[1]、多重混沌映射法[2]、橢圓曲線密碼方法[3]、斜帳篷映射方法[4]等,這些方法的特征是破解難度較高,但是算法復(fù)雜,計(jì)算資源消耗較多,在互聯(lián)網(wǎng)產(chǎn)品進(jìn)行實(shí)時(shí)計(jì)算的過程中都會有較大的延時(shí)問題.基于傳統(tǒng)的像素排序變換方法,如混沌圖像置亂法[5],雖然在B/S架構(gòu)下容易實(shí)現(xiàn)實(shí)時(shí)加密解密,但是對于不經(jīng)過訪問控制的互聯(lián)網(wǎng)應(yīng)用,極其容易遭受暴力破解.通常情況下基于混沌理論加密系統(tǒng)的原理是將人工設(shè)定的初值作為密鑰,劉向東等[5]、耿彬彬等[6]的方法是通過n次Logistic函數(shù)迭代后可將待加密的像素信息形成非周期離散數(shù)據(jù).實(shí)驗(yàn)結(jié)果表明,u值越接近4時(shí),離散程度越高,因?yàn)槠浼用艿拿艽a取值范圍非常確定,Logistic系數(shù)常常集中于(3.57,4.00].該方法的執(zhí)行效率很高,但在已知其中任意明文密碼的基礎(chǔ)上最多通過1.2×106次嗅探即可獲取設(shè)定值,從而導(dǎo)致整個(gè)加密系統(tǒng)的失效,因?yàn)樵?4位Web服務(wù)器下,浮點(diǎn)運(yùn)算有效位數(shù)為7,這就造成了密碼位數(shù)具備較強(qiáng)的局限性,導(dǎo)致該加密理論在互聯(lián)網(wǎng)應(yīng)用的可靠性降低.

本文對2個(gè)方面進(jìn)行了研究:一方面是對像素信息進(jìn)行動(dòng)態(tài)密碼加密,其特征是打破計(jì)算機(jī)浮點(diǎn)運(yùn)算位數(shù)的限制,初值最大可擴(kuò)展至135個(gè)字符,并且不需要手動(dòng)設(shè)定初值或密碼,算法將密碼轉(zhuǎn)化為8位二進(jìn)制與圖像的某一通道進(jìn)行換位;另一方面,引入魔方密碼(Rubik’s cube and dynamic password,RCDP)算法,將圖像的3個(gè)通道和密碼組成6個(gè)矩陣,即模擬六面體結(jié)構(gòu),按照魔方原理旋轉(zhuǎn)各個(gè)通道的數(shù)據(jù)組成新矩陣.因?yàn)樵趫D像中注入了冗余的像素信息,并且進(jìn)行了通道數(shù)據(jù)轉(zhuǎn)置,所以圖像尺寸和內(nèi)容均發(fā)生變化.此方法有助于增加紋理解密難度,旨在保障速度的前提下提升加密解密算法的安全性,杜絕了傳統(tǒng)算法由于存在位置序列與像素具有一一對應(yīng)的關(guān)系而被破解.

1 動(dòng)態(tài)密碼實(shí)現(xiàn)方法

動(dòng)態(tài)密碼的核心是生成隨機(jī)密文,即同一明文在不同時(shí)刻對應(yīng)不同密文,在驗(yàn)證階段,密文與明文進(jìn)行真假校驗(yàn),其校驗(yàn)過程如圖1所示.

圖1 動(dòng)態(tài)密文原理圖Fig.1 Schematic diagram of dynamic ciphertext

1.1 密鑰生成方法

為了減少遍歷時(shí)間,需要對圖像中的有效像素和密碼信息進(jìn)行區(qū)分,將“$”開頭的數(shù)據(jù)標(biāo)記為密碼.

1.1.1 密碼哈希優(yōu)化

經(jīng)MD5運(yùn)算后的密文為64位,為了能夠使密文擴(kuò)展至135位,將密文進(jìn)行分段處理,密文取自16位字符型數(shù)組,字符取值為0~9和A~Z組成的隨機(jī)集合記為P.算法過程記為Phash(input,count),流程如圖2所示.其中:simplify過程代表手動(dòng)設(shè)定迭代頻率的取值范圍,虛線部分為P集合取值后與μs時(shí)間戳的二進(jìn)制位的連接過程(符號為“.+”);uniqid取(0,1)的7位小數(shù).

圖2 Phash算法流程圖Fig.2 Phash algorithm flow chart

Pkey為私鑰,是生成的uniqid經(jīng)過MD5函數(shù)散列后的二進(jìn)制count次取值輸出的集合.該私鑰用于加密過程且密文可通過simplify參數(shù)設(shè)定位長,密碼開始位在(3,32/2)的隨機(jī)位置.

1.1.2 編碼字符化

為了增加服務(wù)器的密文長度,方便密碼與像素?cái)M合后的調(diào)試,也為了數(shù)據(jù)能夠在瀏覽器中按Json格式輸出,需要將二進(jìn)制碼轉(zhuǎn)換成字符串形式,與base64算法不同,本算法具備數(shù)據(jù)混淆功能,函數(shù)記為en64(input,count),如圖3所示.

圖3 en64算法流程圖Fig.3 Flow chart of en64 algorithm

算法要求輸入input和計(jì)數(shù)值count,如果input長度大于count值則返回,k為循環(huán)次數(shù),每次自加,“|”代表并操作,“&”代表與操作,“?”代表向左移位,hashpass是初值進(jìn)行混淆后的字符化編碼.

1.1.3 河豚加密算法

河豚加密法(blowfish algorithm)是密碼專家Bruce Schneier開發(fā)的可變長度分組密碼算法,速度是數(shù)據(jù)加密標(biāo)準(zhǔn)(data encryption standard,DES)加密算法的20倍,本文將該算法的對稱密鑰通過Pkey進(jìn)行加密,保證速度沒有明顯降低的同時(shí)增加破解難度,這種方法可以降低信息被加密后出現(xiàn)重復(fù)密文的概率,并且不浪費(fèi)額外的字節(jié)熵.河豚加密法的指針無法兼容奇數(shù)字節(jié),參考bcrypt算法[7],將數(shù)據(jù)末尾右移至偶數(shù)位,最后1個(gè)字節(jié)單獨(dú)運(yùn)算,前4位為校驗(yàn)位,后4位為結(jié)束位.算法函數(shù)記為bf_salt(x),設(shè)輸入為input,與河豚算法產(chǎn)生的數(shù)據(jù)相加,再進(jìn)行m次MD5運(yùn)算,得到的字節(jié)序列反轉(zhuǎn)后和input經(jīng)過en64函數(shù)產(chǎn)生的字節(jié)序列進(jìn)行與操作而后再反轉(zhuǎn),不斷迭代直到輸出$0或$3開頭的密文值,此時(shí)m值分別記為mx和mu.

該算法密文內(nèi)部保留原始密鑰信息,密碼起始位置處于密文3至16位,由simplify控制.

1.2 加密

設(shè)輸入明文為pwd,隨機(jī)數(shù)指針為random,count=6.

1.2.1 自適應(yīng)加鹽性能

設(shè)random=Phash(pwd,count),Rblowfish=bf_salt(random),此時(shí)系統(tǒng)可以自定義加鹽效率:如果環(huán)境開啟了CRYPT_BLOWFISH功能,將明文pwd與Rblowfish做一次crypt[8]運(yùn)算,散列值長度為60;如果環(huán)境未開啟該功能,則對Rblowfish進(jìn)行count次MD5操作,輸出散列值的性能可隨系統(tǒng)環(huán)境變量自適應(yīng)變化.

1.2.2 私有化椒鹽密鑰

如果random長度小于6,則Rsalt=Phash(random,6),設(shè)輸出output默認(rèn)值為0x2A 0x00(*0),如果Rsalt的第0~2位也為0x2A 0x00,則output的值改為0x2A 0x01,此時(shí),密鑰id設(shè)為Rsalt的第0~3位,當(dāng)id不等于0x24 0x00且不等于0x24 0x03時(shí),直接輸出output值,進(jìn)程結(jié)束.

在P中查找Rsalt的第4個(gè)字符,并設(shè)該字符為log2(count),如果log2(count)小于7或者大于30,直接輸出此時(shí)的output值,否則,log2(count)向左移動(dòng)一位,生成新的count.

此時(shí)復(fù)制Rsalt中的第4~8位到參量salt中,如果salt非零長度大于8位,輸出output,如圖4所示.

圖4 椒鹽密鑰私有化過程Fig.4 Salt-pepper keys privatization process

為了兼容運(yùn)行環(huán)境版本,實(shí)驗(yàn)中算法使用MD5散列方法,在生產(chǎn)環(huán)境應(yīng)采用更高級別的方法,位長要求為[32,448].將salt與pwd連接,公式為

pwd′=(salt?length)+pwd

(1)

式中l(wèi)ength為密碼的位長.pwd′進(jìn)行一次MD5運(yùn)算,得到的值再進(jìn)行count次MD5運(yùn)算,得到散列值Rhash,抽取Rsalt的0~12位存入output,將Rhash作為input,設(shè)置count值為6,帶入en64(input,count),其結(jié)果與output連接成Rout并輸出,得到最終密文.

1.3 解密

利用Rsalt對明文和密文進(jìn)行椒鹽私有化運(yùn)算,得到一組值T,如果T0為“*”,pwd和密文進(jìn)行crypt[9]操作,若得到的散列值等于密文,返回真,否則為假.

2 圖像加密與還原

傳統(tǒng)圖像加密通常是對像素信息進(jìn)行有規(guī)律的混淆,將可逆信息隱藏在明文圖像中[10],這類方法可以抵抗人眼識別,但基于像素特征的識別算法依然可以提取圖像內(nèi)容.本文提出的RCDP算法是將密碼轉(zhuǎn)換為像素?cái)?shù)據(jù),參與圖像通道矩陣置換,即可解決傳統(tǒng)圖像加密易被破解的問題,并且只要通過密碼校驗(yàn),還原圖像過程與傳統(tǒng)方法相比并未增加復(fù)雜程度.

2.1 像素置亂方法

像素置亂方法主要是將圖像中的像素以位置信息為基礎(chǔ),按照一定規(guī)律進(jìn)行重新排列以達(dá)到混淆圖像內(nèi)容的目的.

2.1.1 Logistic單通道置亂方法

根據(jù)映射公式[11]

xt+1=uxt(1-xt)

(2)

可知,給定t=0時(shí)的值,可進(jìn)行迭代運(yùn)算,t=h-1后,形成數(shù)組X,進(jìn)行冒泡法排序,得到數(shù)組,X→映射記作的鍵作為的鍵,的值作為的值.

圖5 Logistic置亂算法Fig.5 Logistic reorder algorithm

2.1.2 魔方算法

魔方算法是在像素置亂算法基礎(chǔ)上,加入魔方控制理論,對多維矩陣進(jìn)行關(guān)聯(lián)性位移,26塊體魔方分為角色塊、楞色塊、朝向元,理論組合為4.3×1019種.由于矩陣元素丟失了位置信息,無校驗(yàn)的還原會導(dǎo)致數(shù)碼轉(zhuǎn)換錯(cuò)誤,從而無法完全輸出圖像特征.進(jìn)行魔方算法的步驟如下:

圖6 圖像三圍變換及區(qū)域補(bǔ)齊Fig.6 Three channel transformation and region complement of image

2)手動(dòng)或自動(dòng)設(shè)置一個(gè)初值x0,通過動(dòng)態(tài)密碼方法得到密文,每8位二進(jìn)制為一組,從(0,w)坐標(biāo)開始向(w,w)方向排列,完成密碼面置數(shù),其他通道同理.

3)采用Logistic映射排序,經(jīng)過t輪迭代,形成無序數(shù)組.

5)t次旋轉(zhuǎn)后,形成新的立方體數(shù)據(jù),參照步驟1)還原圖像,尺寸變成2w×w,如圖7所示.

在信息熵公式中,mi表示像素值,p(mi)表示其出現(xiàn)的概率,H(m)為

(3)

圖中天空的像素L=0x065DCE的理論熵值為:原圖像6.642,加密后的圖像7.990.這說明加密算法可以有效掩蓋圖像特征信息.

2.2 面與位的復(fù)原方法

將加密后的圖像分割成2個(gè)w×w的圖像,左邊圖片的(0,0)點(diǎn)作為立方體零點(diǎn)(0,0,0),按照魔方算法的步驟1)進(jìn)行展開,圖像展開后形成立方體,將該立方體按魔方的基本定律分7個(gè)步驟進(jìn)行還原[12],如圖8所示.

圖8 魔方還原過程示意圖Fig.8 Schematic diagram of Rubik’s cube restoration process

2.3 圖像中的密碼與密碼矩陣

圖9 L、U、F三面的密碼分布Fig.9 Cipher distribution of faces L,U,and F

2.4 圖像還原

(4)

(5)

式中:r越接近1,說明2個(gè)像素的相關(guān)性就越強(qiáng);若r<0.5,則進(jìn)行過濾處理,跳過相關(guān)性驗(yàn)證.

魔方密碼算法一般會增加圖像尺寸,將原圖像填充為1∶1或2∶1,算法的主要目的是高效地隱藏和還原圖像隱私,如果在解密后還原尺寸,計(jì)算資源將無法得到有效控制,故算法舍棄了尺寸還原步驟,得到了尺寸增加的圖像,如圖10所示.

圖10 圖像解密Fig.10 Image decryption

被還原的圖像所在區(qū)域幾乎包含所有原圖像特征,只有少許高斯噪聲,如圖11所示.這些噪聲是在通道轉(zhuǎn)換時(shí)進(jìn)行了余數(shù)取整和反轉(zhuǎn)一次B通道產(chǎn)生的,通過像素對齊可解決這個(gè)問題,方法是將圖像奇數(shù)行列補(bǔ)0變?yōu)榕紨?shù).

圖11 還原后的圖像與原圖像對比Fig.11 Comparison between decrypted image and original image

3 性能分析

3.1 椒鹽迭代次數(shù)性能對比

設(shè)初值密文mx=$0,mu=$3,密文中根據(jù)頭信息(HEADER)判斷輸入的位置.iteration為Phash()中設(shè)置的迭代次數(shù),當(dāng)前椒鹽信號在P中的取值為

椒鹽輸出salt為第i次遍歷P[si]的序列與en64(input,count)函數(shù)輸出值的數(shù)碼位連接,實(shí)驗(yàn)結(jié)果表明count最佳取值為6,迭代取值見表1.

表1 椒鹽密鑰迭代的次數(shù)與性能關(guān)系Table 1 Relationship between iterations and performance of salt-pepper keys

3.2 密碼生成性能測試

在線模擬密碼生成過程如圖12所示,每輪迭代可手動(dòng)輸入密碼明文和迭代次數(shù),接口地址為/apis/images/testForPassword,注入?yún)?shù)為password=123和loop=10 000.計(jì)算結(jié)果符合嚴(yán)格雪崩性準(zhǔn)則(strict avalanche criterion,SAC)[14],密文輸出序列的比特有一半以上發(fā)生改變.

圖12 在線密碼生成器測試Fig.12 Online password generator test

在不同處理器上對同明文和不同明文分別進(jìn)行10 000輪測試,Intel i3處理器生成密碼平均2.495 ms/次,Intel i7處理器為1.343 ms/次,如表2所示.

表2 密碼生成性能對比Table 2 Performance comparison of password generation

實(shí)驗(yàn)表明,算法可自適應(yīng)計(jì)算機(jī)算力,運(yùn)行效率和cpu性能不是正比關(guān)系.

3.3 密碼解密性能測試

安全性要求一般是針對密文的特性而言[15],將加密模型生成的密文輸入至解碼接口,在線解密過程如圖13所示,每輪迭代10 000次,接口地址為/apis/images/testFordecrypt,注入?yún)?shù)password=123&hash=file和密文文件存儲地址.

圖13 在線密碼解碼器測試Fig.13 Online password decoder test

Intel i3和i7處理器分別進(jìn)行10萬輪解碼測試,平均解碼時(shí)間分別為2.4、1.4 ms/次,與加密性能結(jié)論一致.

3.4 密碼性能對比

用魔方密碼、Logistic、橢圓曲線、斜帳篷4種加密方法進(jìn)行1 000輪對比實(shí)驗(yàn),結(jié)果如圖14所示.圖像大于180×180像素、小于730×560像素時(shí),魔方密碼、Logistic兩種算法的效率最高且性能相似,橢圓曲線算法沒有明顯性能優(yōu)勢,斜帳篷算法性能最差;大于800×600像素時(shí)魔方密碼算法和橢圓曲線算法性能急劇降低,Logistic和斜帳篷算法相對穩(wěn)定.

圖14 Logistic與魔方密碼算法的加密性能對比Fig.14 Comparison of encryption performance between logistic and RCDP algorithm

在180×180像素到730×560像素圖像尺寸區(qū)間內(nèi)魔方密碼算法和Logistic算法加密性能接近,并且高出另外2種算法2倍.為了不影響互聯(lián)網(wǎng)應(yīng)用的用戶體驗(yàn),不采用性能較低的加密算法,故只對魔方密碼算法和Logistic算法做圖像還原性能對比.由圖15可知,圖像小于1 000×1 000像素時(shí)魔方密碼算法和Logistic算法還原性能無明顯差異.

圖15 Logistic與魔方密碼算法還原圖像性能對比Fig.15 Comparison of restoration performance between logistic and RCDP algorithm

因此,圖像尺寸在180×180像素到730×560像素時(shí),加密還原性能和破解難度綜合對比表明,魔方密碼算法性能最佳.

3.5 神經(jīng)網(wǎng)絡(luò)攻擊性能測試

在深度學(xué)習(xí)環(huán)境下,通??梢岳肂P神經(jīng)網(wǎng)絡(luò)輔以語義分割對像素信息進(jìn)行預(yù)測和重組.假設(shè)所有網(wǎng)絡(luò)輸入均是未知,初始權(quán)值和閾值均是隨機(jī)給定,參考頭腦風(fēng)暴優(yōu)化(brain storm optimization,BSO)算法[16]構(gòu)建破解網(wǎng)絡(luò)對加密圖像進(jìn)行還原.

Logistic輸入破解神經(jīng)網(wǎng)絡(luò)后,可以在5 s內(nèi)提取主要信息,如建筑物和植物,雖然樓宇和樹木的位置與原始圖像有所差異,但肉眼已經(jīng)可以識別,如圖16所示,說明加密算法失效.

圖16 傳統(tǒng)像素置亂算法的破解結(jié)果Fig.16 Cracking result of traditional pixel chaos algorithm

當(dāng)密鑰與正確密鑰值發(fā)生非常微小的變化時(shí),將解密出完全錯(cuò)誤的圖像,說明該算法對密鑰具有高度敏感性,從而具有很強(qiáng)的抵御攻擊的能力[17].經(jīng)魔方密碼算法加密過的圖像輸入網(wǎng)絡(luò)后,無法得到真實(shí)的圖像,破解網(wǎng)絡(luò)只是將圖像存在較多的天空元素輸出于顯著區(qū)域,其余信息均勻地向圖像邊緣分布,肉眼依然無法識別圖像內(nèi)容,如圖17所示,說明魔方密碼算法可有效地抵抗神經(jīng)網(wǎng)絡(luò)破解.

圖17 魔方密碼算法的破解結(jié)果Fig.17 Cracking result of RCDP algorithm

4 結(jié)論

1)本文算法可以顯著提升圖像加密后的破解難度.

2)本文算法在分辨率180×180像素至730×560像素時(shí)性能最佳,可以有效防止圖像被濫用,授權(quán)后可以快速在線還原圖像.

3)所有實(shí)驗(yàn)的算法均通過互聯(lián)網(wǎng)程序開發(fā)和驗(yàn)證,可以直接應(yīng)用于B/S架構(gòu),互聯(lián)網(wǎng)尚未有此類在線應(yīng)用,該算法通過集成RESTful和Oauth2.0接口,可以無縫對接任何系統(tǒng).

猜你喜歡
密文密鑰魔方
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
嵌入式異構(gòu)物聯(lián)網(wǎng)密文數(shù)據(jù)動(dòng)態(tài)捕獲方法
一種新的密文策略的屬性基加密方案研究
一種抗攻擊的網(wǎng)絡(luò)加密算法研究
成語魔方
Android密鑰庫簡析
樓房魔方
小魔方