本發(fā)明涉及dna數(shù)據(jù)隱藏技術(shù)在qr二維碼中的應(yīng)用方法,屬于圖像處理技術(shù)領(lǐng)域。
背景技術(shù):
隨著信息及網(wǎng)絡(luò)技術(shù)的出現(xiàn)及迅速發(fā)展,智能手機(jī)在人們的日常生活中越來越普及,二維碼作為一種全新的信息存儲及傳遞方式融入到了社會生活當(dāng)中,qr碼應(yīng)用逐步廣泛,在電子票務(wù)領(lǐng)域如電子優(yōu)惠券、電影票以及電子會員卡等方面,都給人們的生活帶來了無限的便利。但是,隨著二維碼廣泛的應(yīng)用,隨之而來的安全問題也逐漸引起人們的關(guān)注。近幾年,用戶私人信息被二維碼泄密問題及病毒通過二維碼傳播的消息不脛而走。目前,國內(nèi)針對qr二維碼的加密技術(shù)的研究并不多見,而討論數(shù)字加密的只針對一般的圖像加密,未能很好的結(jié)合qr二維碼自身的編碼規(guī)則,所能負(fù)載的加密信息量也是極少。
針對現(xiàn)有典型qr碼的加密方法不能保證速度與安全性兼顧,同時(shí)會使加密后的圖像隨著隱藏信息量的增多而降低圖像的質(zhì)量,從而在視覺上造成噪聲誤差。
技術(shù)實(shí)現(xiàn)要素:
針對以上存在的信息安全性及實(shí)效性缺陷,本發(fā)明提出了一種既能保持qr碼原有優(yōu)勢與特征,又能保證加密的安全性和實(shí)效性的算法變得尤為重要。
本發(fā)明采取的技術(shù)方案如下:
dna數(shù)據(jù)隱藏技術(shù)在qr二維碼中的應(yīng)用方法,包括如下步驟:
第一步:采用dna編碼技術(shù)將明文信息進(jìn)行編碼,編碼方法如下:
一個(gè)dna序列包含四個(gè)核苷酸,它們分別是a﹑c﹑g及t,所述a﹑c﹑t及g稱之為互補(bǔ)對;正如我們所熟知的二進(jìn)制一樣,0和1就是互補(bǔ)對,那么0(00)和3(11),1(01)和2(10)也是互補(bǔ)對;對于任何核苷酸x,c(x)代表x的互補(bǔ)核苷酸,則x,c(x),c(c(x)),c(c(c(x)))不能相等;互補(bǔ)規(guī)則可以定義為:(at),(gc),(ca),(tg),表示c(a)=t,c(g)=c,c(c)=a,c(t)=g,利用上述互補(bǔ)規(guī)則將明文信息進(jìn)行編碼;
第二步:然后使用切比雪夫映射將編碼后的信息進(jìn)行加密,編碼方法如下:
由xn+1=cos(acos-1xn),-1≤xn≤1,2≤a≤6,公式多次迭代產(chǎn)生迭代序列,式中,xn+1表示xn迭代一次后產(chǎn)生的值,xn表示初始值迭代第n次后產(chǎn)生的值,a表示控制參數(shù),為固定值,取值范圍為[2,6],將產(chǎn)生的迭代值xn進(jìn)行量化處理:
式中,yn表示量化處理后產(chǎn)生的混沌序列,將dna編碼后轉(zhuǎn)換成二進(jìn)制的信息與產(chǎn)生的混沌序列進(jìn)行異或處理,得到異或后的結(jié)果即為加密后的消息;
第三步:信息的嵌入,其方法如下:
將加密后的信息嵌入到矩陣式二維碼中,即qr二維碼,也就是說,qr二維碼只是一個(gè)掩飾載體,加密后的信息得依靠掩飾載體而傳輸;進(jìn)一步,設(shè)加密后的信息為s,具體的嵌入步驟如下:
步驟1.計(jì)算s的總?cè)萘縯c;
式中:tc表示s的總?cè)萘?,ecc表示qr碼中糾錯(cuò)碼的數(shù)量,其中tc的值由qr碼的版本及糾錯(cuò)等級決定;
步驟2.統(tǒng)計(jì)qr碼中數(shù)據(jù)模塊的個(gè)數(shù),將其進(jìn)行分組,一組為黑色數(shù)據(jù)模塊,另一組為白色模塊,其中黑色模塊的值為1,白色模塊的值為0;
步驟3.設(shè)置一個(gè)秘鑰k,用它來隨機(jī)選擇2個(gè)不同顏色的數(shù)據(jù)模塊,設(shè)為dx和dy,x和y表示任意兩個(gè)模塊的編號,這里的x和y是不相等的;
步驟4.假設(shè)需要將n位秘密數(shù)據(jù)(s1s2s3……sn)嵌入數(shù)據(jù)模塊中,其中n≤tc,嵌入公式如下:
di=s1,
dj=s2,
∶
∶
∶
dm=sn-1,
dn=sn,
其中i,j,m,n為數(shù)據(jù)模塊的編號,模塊的數(shù)量由qr碼儲存信息量決定,儲存信息量越大,模塊的數(shù)量越多;
步驟5.嵌入秘密數(shù)據(jù)后,根據(jù)di,dj,dm的值相應(yīng)的改變qr碼中數(shù)據(jù)模塊的顏色;如果值為1,數(shù)據(jù)模塊的顏色為黑色,反之,數(shù)據(jù)模塊顏色為白色;
步驟6.累加顏色改變的數(shù)據(jù)模塊的個(gè)數(shù),如果,沒有數(shù)據(jù)模塊顏色改變,則tc的值不變,如果有模塊的顏色從白色變?yōu)楹谏蛘邚暮谏優(yōu)榘咨?,則tc=tc-1,數(shù)據(jù)模塊改變的數(shù)量即為tc值減少的量;
步驟7.重復(fù)步驟3-6,直到tc的值等于0,此時(shí)已完成秘密數(shù)據(jù)的嵌入;
第四步:信息的提?。汉戏ǖ慕邮照吣軌蚴褂妹罔€k將秘密信息從載有秘密信息的qr碼中提取出來,具體的提取步驟如下:
步驟1.再一次操作信息嵌入步驟1-2;
步驟2.輸入一個(gè)秘鑰k,用它來選擇dx和dy,x和y表示任意兩個(gè)模塊的編號,這里的x和y是不相等的;
步驟3.秘密信息提取公式如下:
s1=di,
s2=dj,
∶
∶
∶
sn-1=dm,
sn=dn,
其中i,j,m,n為數(shù)據(jù)模塊的編號,模塊的數(shù)量由qr碼儲存信息量決定,儲存信息量越大,模塊的數(shù)量越多;
步驟4.找到di,dj,……dn所對應(yīng)的數(shù)據(jù)模塊,使用糾錯(cuò)碼復(fù)原相應(yīng)的qr碼,糾錯(cuò)編碼后,如果一個(gè)模塊由黑色變?yōu)榘咨蛘哂砂咨優(yōu)楹谏?,則tc=tc-1。
步驟5.重復(fù)操作步驟2-4,直到tc等于0;到此為止,秘密信息的提取已經(jīng)完成;
第五步:秘密信息解密:信息加密與解密互為逆過程,具體的解密過程如下:
步驟1.使用切比雪夫映射將提取出的信息進(jìn)行解密;
由xn+1=cos(acos-1xn),-1≤x≤1,2≤a≤6,公式多次迭代產(chǎn)生迭代序列,式中,xn+1表示xn迭代一次后產(chǎn)生的值,xn表示初始值迭代第n次后產(chǎn)生的值,a表示控制參數(shù),為固定值,取值范圍為[2,6],將產(chǎn)生的迭代值xn進(jìn)行量化處理:
式中,yn表示量化處理后產(chǎn)生的混沌序列,將提取出來的秘密信息與產(chǎn)生的混沌序列進(jìn)行異或處理,得到異或后的結(jié)果即為解密后的消息;
步驟2.將解密后的消息進(jìn)行dna解碼,得到最終的秘密消息,解碼與編碼互為逆過程。
本發(fā)明的有益效果:對于一個(gè)普通用戶而言,使用qr二維碼掃描器只能掃描出公開的信息,而授權(quán)的用戶能從公開信息中提取出秘密信息。此用途可用在商業(yè)、軍事領(lǐng)域中。
具體實(shí)施方式
dna數(shù)據(jù)隱藏技術(shù)在qr二維碼中的應(yīng)用方法,包括如下步驟:
第一步:采用dna編碼技術(shù)將明文信息進(jìn)行編碼,編碼方法如下:一個(gè)dna序列包含四個(gè)核苷酸,它們分別是a﹑c﹑g及t;所述a﹑c﹑t及g稱之為互補(bǔ)對;正如我們所熟知的二進(jìn)制一樣,0和1就是互補(bǔ)對,那么0(00)和3(11),1(01)和2(10)也是互補(bǔ)對;對于任何核苷酸x,c(x)代表x的互補(bǔ)核苷酸,則x,c(x),c(c(x)),c(c(c(x)))不能相等;互補(bǔ)規(guī)則可以定義為:(at),(gc),(ca),(tg),表示c(a)=t,c(g)=c,c(c)=a,c(t)=g,利用上述互補(bǔ)規(guī)則將明文信息進(jìn)行編碼;
第二步:然后使用切比雪夫映射將編碼后的信息進(jìn)行加密,編碼方法如下:
由xn+1=cos(acos-1xn),-1≤xn≤1,2≤a≤6,公式多次迭代產(chǎn)生迭代序列,式中,xn+1表示xn迭代一次后產(chǎn)生的值,xn表示初始值迭代第n次后產(chǎn)生的值,a表示控制參數(shù),為固定值,取值范圍為[2,6],將產(chǎn)生的迭代值xn進(jìn)行量化處理:
式中,yn表示量化處理后產(chǎn)生的混沌序列,將dna編碼后轉(zhuǎn)換成二進(jìn)制的信息與產(chǎn)生的混沌序列進(jìn)行異或處理,得到異或后的結(jié)果即為加密后的消息;
第三步:信息的嵌入,其方法如下:
將加密后的信息嵌入到矩陣式二維碼中,即qr二維碼,也就是說,qr二維碼只是一個(gè)掩飾載體,加密后的信息得依靠掩飾載體而傳輸;進(jìn)一步,設(shè)加密后的信息為s,具體的嵌入步驟如下:
步驟1.計(jì)算s的總?cè)萘縯c;
式中:tc表示s的總?cè)萘?,ecc表示qr碼中糾錯(cuò)碼的數(shù)量,其中tc的值由qr碼的版本及糾錯(cuò)等級決定;
步驟2.統(tǒng)計(jì)qr碼中數(shù)據(jù)模塊的個(gè)數(shù),將其進(jìn)行分組,一組為黑色數(shù)據(jù)模塊,另一組為白色模塊,其中黑色模塊的值為1,白色模塊的值為0;
步驟3.設(shè)置一個(gè)秘鑰k,用它來隨機(jī)選擇2個(gè)不同顏色的數(shù)據(jù)模塊,設(shè)為dx和dy,x和y表示任意兩個(gè)模塊的編號,這里的x和y是不相等的;
步驟4.假設(shè)需要將n位秘密數(shù)據(jù)(s1s2s3……sn)嵌入數(shù)據(jù)模塊中,其中n≤tc,嵌入公式如下:
di=s1,
dj=s2,
∶
∶
∶
dm=sn-1,
dn=sn,
其中i,j,m,n為數(shù)據(jù)模塊的編號,模塊的數(shù)量由qr碼儲存信息量決定,儲存信息量越大,模塊的數(shù)量越多;
步驟5.嵌入秘密數(shù)據(jù)后,根據(jù)di,dj,dm的值相應(yīng)的改變qr碼中數(shù)據(jù)模塊的顏色;如果值為1,數(shù)據(jù)模塊的顏色為黑色,反之,數(shù)據(jù)模塊顏色為白色;
步驟6.累加顏色改變的數(shù)據(jù)模塊的個(gè)數(shù),如果,沒有數(shù)據(jù)模塊顏色改變,則tc的值不變,如果有模塊的顏色從白色變?yōu)楹谏蛘邚暮谏優(yōu)榘咨?,則tc=tc-1,數(shù)據(jù)模塊改變的數(shù)量即為tc值減少的量;
步驟7.重復(fù)步驟3-6,直到tc的值等于0,此時(shí)已完成秘密數(shù)據(jù)的嵌入;
第四步:信息的提?。汉戏ǖ慕邮照吣軌蚴褂妹罔€k將秘密信息從載有秘密信息的qr碼中提取出來,具體的提取步驟如下:
步驟1.再一次操作信息嵌入步驟1-2;
步驟2.輸入一個(gè)秘鑰k,用它來選擇dx和dy,x和y表示任意兩個(gè)模塊的編號,這里的x和y是不相等的;
步驟3.秘密信息提取公式如下:
s1=di,
s2=dj,
∶
∶
∶
sn-1=dm,
sn=dn,
其中i,j,m,n為數(shù)據(jù)模塊的編號,模塊的數(shù)量由qr碼儲存信息量決定,儲存信息量越大,模塊的數(shù)量越多;
步驟4.找到di,dj,……dn所對應(yīng)的數(shù)據(jù)模塊,使用糾錯(cuò)復(fù)原相應(yīng)的qr碼,糾錯(cuò)后,如果一個(gè)模塊由黑色變?yōu)榘咨蛘哂砂咨優(yōu)楹谏?,則tc=tc-1。
步驟5.重復(fù)操作步驟2-4,直到tc等于0;到此為止,秘密信息的提取已經(jīng)完成;
第五步:秘密信息解密:信息加密與解密互為逆過程,具體的解密過程如下:
步驟1.使用切比雪夫映射將提取出的信息進(jìn)行解密;
由xn+1=cos(acos-1xn),-1≤x≤1,2≤a≤6,公式多次迭代產(chǎn)生迭代序列,式中,xn+1表示xn迭代一次后產(chǎn)生的值,xn表示初始值迭代第n次后產(chǎn)生的值,a表示控制參數(shù),為固定值,取值范圍為[2,6],將產(chǎn)生的迭代值xn進(jìn)行量化處理:
式中,yn表示量化處理后產(chǎn)生的混沌序列,將提取出來的秘密信息與產(chǎn)生的混沌序列進(jìn)行異或處理,得到異或后的結(jié)果即為解密后的消息;
步驟2.將解密后的消息進(jìn)行dna解碼,得到最終的秘密消息,解碼與編碼互為逆過程。
具體實(shí)施例:
某公司想通過qr碼來宣傳自己公司,但是又想對一般的普通用戶有所保留,這時(shí)就可以將不愿對一般用戶公開的消息隱藏到qr碼中,隱藏的消息對一般用戶是不可見的,但是也不會影響一般用戶對公開信息的可見度。然而由公司授權(quán)的用戶不僅可以看到公開信息,而且可以成功獲取隱藏信息的具體內(nèi)容的。
加密過程:
采用dna編碼技術(shù)將需要嵌入的明文信息進(jìn)行編碼,利用編碼規(guī)則對明文進(jìn)行編碼,假設(shè)需要嵌入的信息為:warship6,dna編碼后的結(jié)果為:ccgcgatcaacgcgcatgggaataggg,總長度為27。將上述dna編碼轉(zhuǎn)成二進(jìn)制,轉(zhuǎn)換規(guī)則為:a=10,c=00,g=11,t=01.
最終得到一串待嵌入信息為:000011001110010010100011001100100111111110100110111111。
利用切比雪夫映射產(chǎn)生混沌序列,固定值a=4.301,初始值x0=0.2001,迭代次數(shù)27,迭代次數(shù)的選取取決于信息編碼后的長度。迭代值進(jìn)行量化處理后的結(jié)果,即為所需的混沌序列,產(chǎn)生的混沌序列為:110111010000111011010000111101101100110000001110111011.
dna編碼后轉(zhuǎn)為二進(jìn)制的信息與產(chǎn)生的混沌序列進(jìn)行異或處理,異或后的結(jié)果即為加密后待嵌入的消息,結(jié)果為:110100011110101001110011110001001011001110101000000100。
嵌入過程:
在嵌入數(shù)據(jù)前,先計(jì)算嵌入信息量的多少,而后在根據(jù)嵌入的信息量,選擇qr碼的版本及糾錯(cuò)等級。原則上只要qr碼容量大于嵌入信息量即可,實(shí)際使用中可根據(jù)需要選擇相應(yīng)版本及糾錯(cuò)等級。選好版本及等級之后,輸入一個(gè)數(shù)據(jù)模塊選擇秘鑰,這時(shí)會隨機(jī)選擇出兩個(gè)顏色不同的模塊,按照嵌入規(guī)則將信息嵌入進(jìn)去,信息嵌入之后,數(shù)據(jù)模塊的值會有相應(yīng)的變化,此時(shí)的秘密數(shù)據(jù)容量也會有相應(yīng)減少,重復(fù)上述過程,直到秘密數(shù)據(jù)容量減少至0為止,此時(shí)已完成秘密信息嵌入。
提取過程與嵌入過程互逆;解密過程與加密過程互逆。具體實(shí)現(xiàn)過程可參照上文所述。
對于本領(lǐng)域的普通技術(shù)人員而言,具體實(shí)施例只是對本發(fā)明進(jìn)行了示例性描述,顯然本發(fā)明具體實(shí)現(xiàn)并不受上述方式的限制,只要采用了本發(fā)明的方法構(gòu)思和技術(shù)方案進(jìn)行的各種非實(shí)質(zhì)性的改進(jìn),或未經(jīng)改進(jìn)將本發(fā)明的構(gòu)思和技術(shù)方案直接應(yīng)用于其它場合的,均在本發(fā)明的保護(hù)范圍之內(nèi)。