如何利用DES加密算法對QR碼進(jìn)行加密與解密
為了避免QR碼所包含的信息被無關(guān)機(jī)構(gòu)、組織和個人隨意識讀,在其傳輸和存儲前,有必要對其進(jìn)行加密處理。那么我們今天就借鑒信息加密原理和數(shù)字圖像加密的特點(diǎn),給大家介紹一個QR碼二值圖像文件加密方法。

一、QR碼二值圖像加密原理
在充分研究DES對稱加密算法工作原理和QR碼的結(jié)構(gòu)特征的基礎(chǔ)上,將二者有機(jī)地結(jié)合起來,運(yùn)用DES加密算法,對QR碼進(jìn)行加密,以保證其在傳輸和存儲過程中的安全性。
二、DES加密算法
DES加密算法數(shù)據(jù)加密標(biāo)準(zhǔn)DES(DataEncryptionStandard)是一種分組加密算法,以64比特位為基本單位,對數(shù)據(jù)進(jìn)行加密。64比特的明文經(jīng)DES加密后,得到64比特的密文;反之密文經(jīng)DES解密后,得到64比特的明文。
DES同時也是一種對稱加密算法,加密和解密采用相同的算法,加密密鑰和解密密鑰完全相同,只是加密和解密所使用的子密鑰的順序相反。
DES加密算法是公開的,因此其安全性完全依賴于密鑰。利用DES加密信息時,應(yīng)避免使用弱密鑰和半弱密鑰。DES加密或解密的數(shù)據(jù)的每個分組(64比特)進(jìn)行同樣的操作,首先進(jìn)行一次線性變換的初始置換,接著在密鑰的控制下,進(jìn)行16輪迭代的非線性變換,最后進(jìn)行一次線性變換的逆置換。因此,當(dāng)要加密的數(shù)據(jù)量特別大時,應(yīng)采用加密速度更快的加密算法。
QR碼編碼以矩陣形式組織二進(jìn)制數(shù)據(jù)(0和1),數(shù)據(jù)量一般不會太大,因此,在滿足加密信息安全要求的前提下,采用DES加密QR碼是一種不錯的選擇。
三、QR碼二值圖像加密
由于QR碼二值圖像四周區(qū)域?yàn)榘咨?,為了不給破譯者有機(jī)可乘,對QR碼的四周白色區(qū)域不進(jìn)行加密,只對QR碼中間有規(guī)律排列的黑白相間區(qū)域進(jìn)行加密。對QR碼二值圖像進(jìn)行DES加密的主要步驟:
(1)任意選取一個合適的加密密鑰用于QR碼二值圖像加密,避免選取弱密鑰和半弱密鑰;
(2)讀取需要加密的QR碼二值圖像數(shù)據(jù);
(3)以64比特位為單位,運(yùn)用DES加密算法對QR碼二值圖像中間黑白相間區(qū)域數(shù)據(jù)進(jìn)行加密;
(4)將原始QR碼四周白色區(qū)域未加密的數(shù)據(jù)與加密后的QR碼中間黑白相間區(qū)域數(shù)據(jù)組合起來,并寫成二值數(shù)字圖像格式,將其存儲為圖像文件,即為加密后的QR二值圖像。
某244×244大小的原始QR碼二值圖像如圖1所示;經(jīng)DES加密后的QR碼二值圖像如圖2所示。
比較圖1和圖2可以看出,DES加密使QR碼原來進(jìn)行有規(guī)律排列的黑白相間區(qū)域變成毫無規(guī)律排列的雜亂無章的黑白相間區(qū)域,加密后的QR碼二值圖像破壞了QR碼平面(或二維)編碼結(jié)構(gòu),因此無法從加密的QR碼二值圖像中識讀任何信息。這樣,通過DES加密措施就對原始的QR碼所包含的信息進(jìn)行了保護(hù),以保證其傳輸過程和存儲的安全性。
四、QR碼二值圖像的解密
對加密的QR碼二值圖像進(jìn)行DES解密的主要步驟如下:
(1)選取與加密密鑰完全一樣的解密密鑰,用于解密加密后的QR碼二值圖像;
(2)讀取加密后的QR碼二值圖像數(shù)據(jù);
(3)以64比特位為單位運(yùn)用DES加密算法,對加密后的QR碼中間黑白相間區(qū)域數(shù)據(jù)進(jìn)行解密;
(4)將加密QR碼的未加密的四周白色區(qū)域數(shù)據(jù)與解密后的黑白相間區(qū)域數(shù)據(jù)組合起來,并寫成二值數(shù)字圖像格式,將其存儲為圖像文件,即為解密后的QR碼二值圖像。
對圖2所示的加密QR碼進(jìn)行解密,正確解密的QR碼如圖3所示,與圖1所示的原始QR碼完全一樣。如果不能正確解密加密的QR碼,就無法識讀原始QR碼所包含的信息。

五、QR碼二值圖像DES加密與解密性能分析
下面主要從加密效果、解密效果和安全性三方面,對QR碼二值圖像的DES加密與解密性能進(jìn)行分析。
1、QR碼二值圖像的DES加密效果
對QR碼進(jìn)行DES加密,對QR碼的四周白色區(qū)域不進(jìn)行加密,只對QR碼中間黑白相間的區(qū)域進(jìn)行加密。圖2為圖1所示原始QR碼對應(yīng)的加密圖像,圖1所示原始QR碼的中間有規(guī)律排列的黑白相間區(qū)域被加密成如圖2所示的中間雜亂無章的黑白相間的區(qū)域,破壞了QR碼的平面(二維)編碼結(jié)構(gòu),可見DES加密QR碼效果理想。因此通過圖2所示的加密QR碼,無法識讀圖1所示的原始QR碼所包含的任何信息。只有正確解密圖2所示的加密QR碼,才能正確識讀原始QR碼所包含的全部信息。
2、加密QR碼二值圖像的DES解密效果
取與加密圖1所示原始QR碼的加密密鑰完全一樣的解密密鑰,解密圖2所示的加密QR碼,得到如圖3所示的正確解密的QR碼,與圖1所示的原始QR碼完全一樣,可見DES解密加密的QR碼效果理想。
只要加密密鑰不是弱密鑰或半弱密鑰,解密密鑰與加密密鑰相比,即使只有微小的差別,也不能保證正確解密。盡管DES的加密或解密密鑰為64位,但首先要通過一個置換將其由64位變?yōu)?6位,再由這56位密鑰通過循環(huán)移位和置換分別產(chǎn)生16個48位的子密鑰。因此加密或解密密鑰實(shí)際上只有56位。假設(shè)56位解密密鑰與56位加密密鑰只有微小的差別,即56位中只有某一位不同,也不能正確解密,錯誤解密的QR碼如圖4所示。根據(jù)圖4所示的錯誤解密QR碼無法識讀原始QR碼所包含的信息。
3、DES加密的QR碼二值圖像的安全性
運(yùn)用DES加密算法對QR碼進(jìn)行加密,可以通過DES加密算法分析進(jìn)行破譯,也可以直接對加密QR碼進(jìn)行破譯。DES的初始加密密鑰或解密密鑰為64位,首先需要經(jīng)過一個置換將其變成56位,再由這56位通過循環(huán)移位和置換分別產(chǎn)生16個子密鑰。因此,64位的密鑰對16個子密鑰真正產(chǎn)生影響的只有其中的56位,DES的密鑰空間為256。DES分析又可分為三種情況:
(1)通過蠻力攻破譯密文,大約需要嘗試255≈3.60×1016次,即平均需要搜索密鑰空間256的一半;
(2)利用差分密碼分析法破譯密文,大約需要嘗試247≈1.41×1014次;
(3)利用線性密碼分析法破譯密文,大約需要嘗試243≈8.80×1012次。
如果直接通過加密的QR碼進(jìn)行破譯,并且假設(shè)不考慮QR碼的編碼方法等有利于破譯的因素,假設(shè)QR碼中間黑白相間區(qū)域大小為N×N,則正確破譯加密的QR碼大約需要嘗試2N*N次。
綜上所述,在不知道加密密鑰或解密密鑰的前提下,不論采用何種破譯方法,即使利用QR碼編碼特點(diǎn)等有利于破譯的一些因素,在很短的時間內(nèi),利用一般常規(guī)的設(shè)備破譯較大尺寸的加密QR碼是比較困難的。因此,利用DES加密算法加密尺寸稍大的QR碼,只要加密的QR碼傳輸或存儲的時間不長,是能夠保證其安全的。
DES加密算法加密或解密時是對明文或密文比特流進(jìn)行加密或解密運(yùn)算,因此,很適合用于QR碼二值圖像的加密。如果QR碼二值圖像不特別大,即需要加密的數(shù)據(jù)量不特別大,用DES加密或解密迅速,只需要很短的時間。用DES加密QR碼,根據(jù)上節(jié)分析,只要避免使用弱密鑰或半弱密鑰加密QR碼,一般情況下,安全性是有保證的。如果對加密的QR碼安全性要求很高,或要求加密的QR碼存儲較長的時間,可采用3DES加密或采用DES與其他加密算法相結(jié)合的混合加密算法。
小知識之QR 碼
QR 碼是二維條碼的一種,QR來自英文 “Quick Response” 的縮寫,即快速反應(yīng)的意思,源自發(fā)明者希望 QR 碼可讓其內(nèi)容快速被解碼。QR碼比普通條碼可儲存更多資料,亦無需像普通條碼般在掃描時需直線對準(zhǔn)掃描器。









