基于二維條碼的信息隱藏與隱藏信息提取方法及系統(tǒng)的制作方法
【專利摘要】基于二維條碼的信息隱藏與隱藏信息提取方法及系統(tǒng),屬于信息安全領(lǐng)域。選擇二維條碼作為信息隱藏的載體,二維條碼中補(bǔ)齊碼區(qū)域?qū)儆谌哂鄥^(qū)域,正常情況下是被忽視的部分,因此將信息隱藏在此區(qū)域中將難以被察覺,且可隱藏的信息容量也可以滿足需求。利用編碼器使用密鑰對(duì)中的公鑰對(duì)待隱藏的秘密信息進(jìn)行加密,利用解碼器使用密鑰對(duì)中的私鑰對(duì)加密后的隱藏信息進(jìn)行解密,由此保證了所隱藏的秘密信息的安全性。采用C/S結(jié)構(gòu)的驗(yàn)證方式,用戶通過客戶端向服務(wù)器發(fā)送驗(yàn)證請(qǐng)求,服務(wù)器驗(yàn)證后返回結(jié)果,只有驗(yàn)證通過的用戶才能繼續(xù)解碼操作,由此保證了用戶的合法性。
【專利說明】
基于二維條碼的信息隱藏與隱藏信息提取方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于信息安全領(lǐng)域,具體涉及一種基于二維條碼的信息隱藏與隱藏信息提取方法及系統(tǒng)。
【背景技術(shù)】
[0002]信息隱藏是將一則消息、圖片或文件隱藏于其他消息、圖片或文件中的技術(shù),因?yàn)樾畔⒈浑[藏之前通常會(huì)被加密,所以信息隱藏技術(shù)比簡(jiǎn)單加密技術(shù)安全性更高,可以有效保障信息的安全。信息隱藏技術(shù)主要應(yīng)用在保密通信、身份認(rèn)證、數(shù)字版權(quán)保護(hù)和追蹤以及信息完整性、真實(shí)性鑒定與內(nèi)容恢復(fù)等方面。其在保密通信上的應(yīng)用是把秘密信息隱藏在數(shù)字載體中并利用公開信道進(jìn)行傳遞,這在軍事、商業(yè)、金融等領(lǐng)域都普遍存在。圖1是信息隱藏技術(shù)的模型,信息隱藏執(zhí)行階段使用密鑰對(duì)秘密信息進(jìn)行加密預(yù)處理,之后使用嵌入算法把加密后的密文嵌入到載體中,然后包含秘密信息的載密載體經(jīng)由公共信道傳遞給接收者,接收者使用提取算法提取密文并使用解密密鑰解密出秘密信息。其中,信息隱藏載體的選擇以及對(duì)應(yīng)嵌入、提取算法的設(shè)計(jì)是信息隱藏研究的重要基礎(chǔ)問題。
[0003]二維條碼是一種特殊的條碼技術(shù),簡(jiǎn)稱二維碼,它采用矩形、點(diǎn)、六邊形等幾何圖案表示信息,編碼時(shí)使用若干個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息,解碼時(shí)則通過圖像輸入或光電掃描設(shè)備自動(dòng)識(shí)讀信息。二維條碼具有快速易讀和高存儲(chǔ)能力的優(yōu)勢(shì),因此應(yīng)用十分廣泛,尤其得益于智能移動(dòng)終端技術(shù)的發(fā)展,二維條碼技術(shù)被廣泛的應(yīng)用于產(chǎn)品跟蹤,物品標(biāo)識(shí),實(shí)時(shí)追蹤,文檔管理,市場(chǎng)營銷等一系列領(lǐng)域。比如,移動(dòng)即時(shí)通信軟件中用戶之間可以通過掃描二維條碼來相互添加好友、登陸網(wǎng)站等,自動(dòng)販賣機(jī)亦可以使用二維條碼進(jìn)行商品識(shí)別和購買等等??傊S條碼正作為一種廣泛使用的信息傳播載體在不斷的得到普及。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的技術(shù)方案是:
[0005]—種基于二維條碼的信息隱藏方法,采用二維條碼作為信息隱藏的載體,即將秘密信息嵌入到二維條碼中進(jìn)行隱藏,包括如下步驟:
[0006]步驟1:獲取需存儲(chǔ)于二維條碼中的普通信息a和待隱藏的秘密信息明文m,并將a和m輸入到編碼器中;
[0007]步驟2:對(duì)秘密信息進(jìn)行加密預(yù)處理;
[0008]步驟2.1:在編碼器中生成若干個(gè)密鑰對(duì),并給每個(gè)密鑰對(duì)進(jìn)行編號(hào),且將該編號(hào)設(shè)定為每個(gè)密鑰對(duì)所對(duì)應(yīng)的密鑰特征值;
[0009]步驟2.2:利用密鑰對(duì)中的公鑰對(duì)秘密信息做加密處理;
[0010]編碼器在所生成的密鑰對(duì)中隨機(jī)選取一個(gè)密鑰對(duì),并利用這個(gè)密鑰對(duì)中的公鑰將所述待隱藏秘密信息的明文m進(jìn)行加密處理生成待隱藏秘密信息的密文;
[0011 ] 步驟2.3:編碼器將選取的密鑰對(duì)所對(duì)應(yīng)的密鑰特征值添加到所述密文的首部,同時(shí)將該密鑰對(duì)中用來解密的私鑰與該密鑰對(duì)編號(hào)捆綁在一起發(fā)送到服務(wù)器中進(jìn)行存放;
[0012]步驟3:對(duì)所述普通信息a和所述帶有密鑰特征值的密文進(jìn)行數(shù)據(jù)分析,確定二者的字符類型,并按相應(yīng)的字符集轉(zhuǎn)換成符號(hào)字符,并根據(jù)所述普通信息a的長(zhǎng)度和類型及所述帶有密鑰特征值的密文的長(zhǎng)度和類型,選定出作為信息隱藏載體的二維條碼的版本和糾錯(cuò)碼的等級(jí),并將所述二維條碼的版本和糾錯(cuò)碼的等級(jí)輸入編碼器中;
[0013]步驟4:編碼器根據(jù)所述二維條碼的版本和糾錯(cuò)碼的等級(jí),確定作為信息隱藏載體的二維條碼的規(guī)格;
[0014]步驟5:按照QR條碼編碼規(guī)則,將所述普通信息a和所述帶有密鑰特征值密文的數(shù)據(jù)字符分別轉(zhuǎn)換為二進(jìn)制位流的形式,分別形成普通信息的二進(jìn)制數(shù)據(jù)碼字和待隱藏秘密信息的二進(jìn)制數(shù)據(jù)碼字;
[0015]步驟6:將所述普通信息a的數(shù)據(jù)碼字和所述帶有密鑰特征值的密文的數(shù)據(jù)碼字嵌入到所述二維條碼中,完成對(duì)該二維條碼的編碼;
[0016]步驟6.1:依照QR條碼的編碼規(guī)則將普通信息a的數(shù)據(jù)碼字嵌入到所述二維條碼中,并在普通信息數(shù)據(jù)碼字的最后添加結(jié)束位“0000” ;
[0017]步驟6.2:標(biāo)定出該二維條碼中所存儲(chǔ)的普通信息的末位和糾錯(cuò)碼的首位,進(jìn)而相應(yīng)地獲得該二維條碼的補(bǔ)齊碼區(qū)域的起始位和終止位;
[0018]步驟6.3:將所述帶有密鑰特征值的秘密信息的密文的數(shù)據(jù)碼字從該二維條碼的補(bǔ)齊碼區(qū)域的起始位開始依次嵌入,直到該密文結(jié)束為止,若還有剩余位置用補(bǔ)齊碼補(bǔ)齊,并完成最終的二維條碼編碼;
[0019]步驟7:將該二維條碼最終的編碼依次填入到二維條碼的對(duì)應(yīng)區(qū)域中,完成該二維條碼矩陣的構(gòu)造。
[0020]—種基于二維條碼的隱藏信息提取方法,針對(duì)的是所述基于二維條碼的信息隱藏方法中隱藏信息的提取,包括如下步驟:
[0021 ]步驟S1:用戶于客戶端輸入其個(gè)人的登錄信息,同時(shí)等待服務(wù)器驗(yàn)證其身份的有效性;
[0022]步驟S2:服務(wù)器驗(yàn)證該用戶身份是否為合法的注冊(cè)用戶,若服務(wù)器驗(yàn)證該用戶身份不是合法的用戶則驗(yàn)證不通過,客戶端顯示內(nèi)容為驗(yàn)證失敗的提示信息,即該用戶將無法獲取到掃描二維條碼的權(quán)限;若服務(wù)器驗(yàn)證該用戶身份是合法的用戶則驗(yàn)證通過,則即刻跳轉(zhuǎn)到客戶端中解碼器的二維條碼掃描界面,并執(zhí)行步驟S3;
[0023]步驟S3:用戶利用解碼器對(duì)準(zhǔn)作為信息隱藏載體的二維條碼進(jìn)行掃描,掃描后將獲取到密鑰特征值和隱藏信息的密文,同時(shí)將密鑰特征值發(fā)送給服務(wù)器;
[0024]步驟S4:服務(wù)器根據(jù)密鑰特征值選擇出對(duì)應(yīng)的私鑰并發(fā)送回客戶端,客戶端中的解碼器隨即利用獲取到的私鑰對(duì)隱藏信息的密文進(jìn)行解密得到隱藏信息的明文,并在客戶端進(jìn)行顯示。
[0025]根據(jù)所述的基于二維條碼的信息隱藏方法與所述的基于二維條碼的隱藏信息提取方法建立的基于二維條碼的信息隱藏與隱藏信息提取系統(tǒng),包括:編碼器、服務(wù)器、解碼器和客戶端;所述編碼器與所述服務(wù)器連接;所述解碼器存放于客戶端中;
[0026]所述編碼器:(a)接收需存儲(chǔ)于二維條碼中的普通信息a和待隱藏的秘密信息明文m;(b)生成若干個(gè)密鑰對(duì),并給每個(gè)密鑰對(duì)進(jìn)行編號(hào),且將編號(hào)設(shè)定為對(duì)應(yīng)密鑰對(duì)的密鑰特征值;(C)在所生成的密鑰對(duì)中隨機(jī)選取一個(gè)密鑰對(duì),并利用這個(gè)密鑰對(duì)中的公鑰將所述待隱藏秘密信息的明文m進(jìn)行加密處理生成待隱藏秘密信息的密文;(d)將選取的密鑰對(duì)所對(duì)應(yīng)的密鑰特征值添加到所述密文的首部,同時(shí)將該密鑰對(duì)中用來解密的私鑰與該密鑰對(duì)編號(hào)捆綁在一起發(fā)送給服務(wù)器中;(e)接收將作為信息隱藏載體的二維條碼的版本和糾錯(cuò)碼的等級(jí),確定作為信息隱藏載體的二維條碼的規(guī)格;(f)按照QR條碼編碼規(guī)則,將所述普通信息a和所述帶有密鑰特征值的密文分別轉(zhuǎn)換為其各自的二進(jìn)制數(shù)據(jù)碼字;(g)將所述普通信息a的數(shù)據(jù)碼字存儲(chǔ)到所述二維條碼中后,再將所述帶有密鑰特征值的密文的數(shù)據(jù)碼字嵌入二維條碼的補(bǔ)齊碼區(qū)域,并完成該二維條碼的編碼;(h)將該二維條碼的最終編碼依次填入到二維條碼的對(duì)應(yīng)區(qū)域中,完成該二維條碼矩陣的構(gòu)造,并生成最終的二維條碼圖像;
[0027]所述服務(wù)器,(a)從編碼器接收用于解密二維條碼中所隱藏的秘密信息的私鑰及與該私鑰捆綁在一起的對(duì)應(yīng)的密鑰對(duì)的編號(hào);(b)存儲(chǔ)注冊(cè)用戶身份信息,并對(duì)客戶端發(fā)送來的用戶身份信息進(jìn)行驗(yàn)證,且將驗(yàn)證結(jié)果發(fā)送給客戶端;(C)從客戶端接收密鑰特征值,并通過該密鑰特征值找出對(duì)應(yīng)的私鑰并將該私鑰發(fā)送至客戶端;
[0028]所述客戶端,(a)用于接收用戶輸入的其個(gè)人的登錄信息,并將該登錄信息發(fā)送給服務(wù)器;(b)用于從服務(wù)器接收用戶身份驗(yàn)證結(jié)果,若驗(yàn)證結(jié)果為不通過,則顯示驗(yàn)證失敗的提示信息,若驗(yàn)證通過,則即刻跳轉(zhuǎn)到解碼器的二維條碼掃描界面;(C)從解碼器中接收解碼器掃描得到的密鑰特征值和隱藏信息的密文,并將密鑰特征值發(fā)送給服務(wù)器;(d)客戶端從服務(wù)器接收私鑰,并將該私鑰發(fā)送給解碼器;(e)在客戶端的顯示界面上給出解碼器解密出的隱藏信息的明文;
[0029]所述解碼器,(a)為用戶所使用對(duì)準(zhǔn)作為信息隱藏載體的二維條碼進(jìn)行掃描,掃描后獲取到密鑰特征值和隱藏信息的密文并傳至客戶端;(b)從客戶端接收私鑰,并利用該私鑰對(duì)二維條碼中隱藏信息的密文進(jìn)行解密得到隱藏信息的明文并將其發(fā)送給客戶端。
[0030]本發(fā)明的有益效果:本發(fā)明具有以下幾方面的優(yōu)點(diǎn):
[0031]1.選擇二維條碼作為信息隱藏的載體,二維條碼中補(bǔ)齊碼區(qū)域?qū)儆谌哂鄥^(qū)域,正常情況下是被忽視的部分,因此將信息隱藏在此區(qū)域中將難以被察覺,且可隱藏的信息容量也可以滿足需求。
[0032]2.利用編碼器使用密鑰對(duì)中的公鑰對(duì)待隱藏的秘密信息進(jìn)行加密,利用解碼器使用密鑰對(duì)中的私鑰對(duì)加密后的隱藏信息進(jìn)行解密,由此保證了所隱藏的秘密信息的安全性。
[0033]3.采用C/S結(jié)構(gòu)的驗(yàn)證方式,用戶通過客戶端向服務(wù)器發(fā)送驗(yàn)證請(qǐng)求,服務(wù)器驗(yàn)證后返回結(jié)果,只有驗(yàn)證通過的用戶才能繼續(xù)解碼操作,由此保證了用戶的合法性。
【附圖說明】
[0034]圖1為一種信息隱藏模型的示意圖;
[0035]圖2為本發(fā)明一種實(shí)施方式的基于二維條碼的信息隱藏方法流程圖;
[0036]圖3為本發(fā)明一種實(shí)施方式的二維條碼信息嵌入示意圖;
[0037]圖4為本發(fā)明一種實(shí)施方式的基于二維條碼的隱藏信息提取方法流程圖;
[0038]圖5為本發(fā)明一種實(shí)施方式的基于二維條碼的信息隱藏與隱藏信息提取系統(tǒng)結(jié)構(gòu)框圖;
【具體實(shí)施方式】
[0039]下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0040]本實(shí)施方式的基于二維條碼的信息隱藏方法,如圖2所示,采用二維條碼作為信息隱藏的載體,即將秘密信息嵌入到二維條碼中進(jìn)行隱藏,包括如下步驟:
[0041]步驟1:獲取需存儲(chǔ)于二維條碼中的普通信息a和待隱藏的秘密信息明文m,并將a和m輸入到編碼器中;
[0042]步驟2:對(duì)秘密信息進(jìn)行加密預(yù)處理;
[0043]正常情況下從作為信息隱藏載體的二維條碼中提取隱藏信息是要經(jīng)過服務(wù)器認(rèn)證的,但是,若隱藏信息直接以信息碼字的形式儲(chǔ)存在二維條碼中,一旦二維條碼中嵌入隱藏信息的區(qū)域被攻擊者發(fā)現(xiàn)了,攻擊者將直接獲取到隱藏信息的明文,因此在本實(shí)施方案中首先選擇一種現(xiàn)有的公鑰加密算法對(duì)待隱藏的秘密信息進(jìn)行加密處理。
[0044]步驟2.1:選擇一種現(xiàn)有的公鑰加密算法在編碼器中生成若干個(gè)密鑰對(duì),并給每個(gè)密鑰對(duì)進(jìn)行編號(hào),所編號(hào)碼均為十進(jìn)制的兩位數(shù),且將該編號(hào)設(shè)定為每個(gè)密鑰對(duì)所對(duì)應(yīng)的密鑰特征值;其中每個(gè)密鑰對(duì)都包含一個(gè)公鑰和一個(gè)私鑰,公鑰是用來對(duì)信息進(jìn)行加密的,而私鑰是用來對(duì)信息進(jìn)行解密的。
[0045]步驟2.2:利用密鑰對(duì)中的公鑰對(duì)秘密信息做加密處理;
[0046]編碼器在所生成的密鑰對(duì)中隨機(jī)選取一個(gè)密鑰對(duì),(n,k)和(n,d),其中(n,k)為公鑰,(n,d)為私鑰;其中η是兩個(gè)大質(zhì)數(shù)p,q的積,η代表在用二進(jìn)制表示時(shí)所占用的位數(shù),就是所謂的密鑰長(zhǎng)度;k和d是一對(duì)相關(guān)的值,k為可以任意取的常數(shù),但k與(ρ-lMq-l)互質(zhì);而關(guān)于 d 的要求是(d*k)mod((p-l)*(q-l)) = l。
[0047]利用這個(gè)選定的密鑰對(duì)中的公鑰(n,k)將所述待隱藏秘密信息的明文m進(jìn)行加密處理生成待隱藏秘密信息的密文mk,且滿足:m=mk~d mod n;mk=m'k mod η。
[0048]步驟2.3:編碼器將選定的密鑰對(duì)所對(duì)應(yīng)的密鑰特征值設(shè)為t并將t添加到所述密文mk的首部,同時(shí)將該密鑰對(duì)中用來解密的私鑰與該密鑰對(duì)編號(hào)捆綁在一起發(fā)送到服務(wù)器中進(jìn)行存放;
[0049]步驟3:依照QR條碼的編碼流程,首先進(jìn)行數(shù)據(jù)分析,確定所述普通信息a及帶有密鑰特征值的密文的字符類型,并按相應(yīng)的字符集轉(zhuǎn)換成符號(hào)字符,同時(shí)根據(jù)字符長(zhǎng)度及類型選定作為信息隱藏載體的二維條碼的版本和糾錯(cuò)碼的等級(jí),并將所述二維條碼的版本和糾錯(cuò)碼的等級(jí)輸入編碼器中;
[0050]選擇該二維條碼的版本V和糾錯(cuò)等級(jí)w時(shí),二維條碼版本V越高,或者糾錯(cuò)等級(jí)w越低,則容量C越高。選擇的二維條碼版本和糾錯(cuò)等級(jí)應(yīng)滿足容量大于等于普通信息和待隱藏的秘密信息所形成的最終數(shù)據(jù)流所需容量的大小,即C(V,w)> = C(a)+C(m);
[0051]步驟4:編碼器根據(jù)所述二維條碼的版本和糾錯(cuò)碼的等級(jí),確定作為信息隱藏載體的二維條碼的規(guī)格;
[0052]步驟5:分別根據(jù)普通信息a的類型和待隱藏的秘密信息的字符類型選擇相應(yīng)的QR條碼編碼模式,添加相應(yīng)的模式指示符和字符計(jì)數(shù)指示符等。并按照QR條碼編碼規(guī)則,將所述普通信息a和所述帶有密鑰特征值的密文的數(shù)據(jù)字符分別轉(zhuǎn)換為二進(jìn)制位流的形式,SP按照每8位二進(jìn)制數(shù)形成一個(gè)碼字的方法,分別形成普通信息的數(shù)據(jù)碼字和待隱藏秘密信息的數(shù)據(jù)碼字;
[0053]將普通信息a和密文mk的數(shù)據(jù)字符按照二維條碼中QR條碼的編碼規(guī)則轉(zhuǎn)換為二進(jìn)制位流的形式,其中mk中十進(jìn)制的兩位數(shù)密鑰特征值t均以8位的二進(jìn)制數(shù)來表示。轉(zhuǎn)換完畢后形成普通信息數(shù)據(jù)位流Sa和密文數(shù)據(jù)位流Smk,所形成的二進(jìn)制位流的位數(shù)如果不是8的倍數(shù),則在末尾以O(shè)補(bǔ)齊。然后分別對(duì)Sa和Smk按8位一個(gè)碼字的處理方式劃分,形成最終的普通信息的數(shù)據(jù)碼字和待隱藏秘密信息的數(shù)據(jù)碼字。
[0054]步驟6:將所述普通信息a的數(shù)據(jù)碼字和所述帶有密鑰特征值的密文的數(shù)據(jù)碼字嵌入到所述二維條碼中,并完成對(duì)該二維條碼的編碼;
[0055]步驟6.1:依照QR條碼的編碼規(guī)則將普通信息a的數(shù)據(jù)碼字嵌入到所述二維條碼中,并在普通信息數(shù)據(jù)碼字的最后添加結(jié)束位“0000” ;
[0056]步驟6.2:標(biāo)定出該二維條碼中所存儲(chǔ)的普通信息的末位和糾錯(cuò)碼的首位,進(jìn)而相應(yīng)地獲得該二維條碼的補(bǔ)齊碼區(qū)域的起始位和終止位;由于二維條碼中的數(shù)據(jù)碼部分所占其整體面積的比例較小,而指定版本和糾錯(cuò)等級(jí)的二維條碼的信息碼字部分容量是固定的,并且一定不小于嵌入信息所需的容量,所以信息碼字之后一般都會(huì)存在剩余碼字。通常二維條碼嵌入普通信息之后的剩余容量都是用補(bǔ)齊碼填充,因此可以在嵌入二維條碼的普通信息的碼字之后的補(bǔ)齊碼位置上嵌入所要隱藏的秘密信息碼字。
[0057]步驟6.3:將秘密信息密文的數(shù)據(jù)碼字添加在普通信息的數(shù)據(jù)碼字的結(jié)束位后,SP將所述帶有密鑰特征值的秘密信息的密文的數(shù)據(jù)碼字從該二維條碼的補(bǔ)齊碼區(qū)域的起始位開始依次嵌入,直到該密文結(jié)束為止,若添加完秘密信息的數(shù)據(jù)碼字后補(bǔ)齊碼區(qū)域仍有剩余碼字,則以補(bǔ)齊碼(I 1101100和/或00010001)補(bǔ)齊,形成二維條碼的最終碼字序列。
[0058]步驟7:布置完功能圖形后,將該二維條碼的最終編碼序列依次填入到二維條碼的對(duì)應(yīng)區(qū)域中,完成該二維條碼矩陣的構(gòu)造。如圖3所示為二維條碼信息嵌入示意圖,將最終的編碼從圖中二維條碼的右下角位置開始沿著連續(xù)的灰色線條依次填入到對(duì)應(yīng)區(qū)域,形成最終編碼的二進(jìn)制位流所對(duì)應(yīng)的二維條碼圖像,其中二進(jìn)制數(shù)I用黑色填充,O用白色填充,如果遇到非數(shù)據(jù)區(qū),則繞開或跳過,直到完成整個(gè)二維條碼圖像的構(gòu)造。
[0059]本實(shí)施方式的基于二維條碼的隱藏信息提取方法,如圖4所示,針對(duì)的是所述基于二維條碼的信息隱藏方法中隱藏信息的提取,包括如下步驟:
[0060]步驟S1:用戶于客戶端輸入其個(gè)人的登錄信息,同時(shí)等待服務(wù)器驗(yàn)證其身份的有效性。
[0061]步驟S2:服務(wù)器驗(yàn)證該用戶身份是否為合法的注冊(cè)用戶,若服務(wù)器驗(yàn)證該用戶身份不是合法的用戶則驗(yàn)證不通過,客戶端顯示內(nèi)容為驗(yàn)證失敗的提示信息,即該用戶將無法獲取到掃描二維條碼的權(quán)限;若服務(wù)器驗(yàn)證該用戶身份是合法的用戶則驗(yàn)證通過,則即刻跳轉(zhuǎn)到客戶端中解碼器的二維條碼掃描界面,并執(zhí)行步驟S3。
[0062]只有使用本實(shí)施方案中所設(shè)計(jì)的解碼器+客戶端系統(tǒng)進(jìn)行登錄,并且身份得到有效驗(yàn)證,才能通過客戶端連接的解碼器掃描帶有隱藏信息的二維條碼來獲取到秘密信息;而沒有采用此系統(tǒng)登錄的用戶只是使用帶有掃碼功能的任意普通解碼器對(duì)帶有隱藏信息的二維條碼進(jìn)行掃描,其掃描過程中只會(huì)執(zhí)行普通的讀取功能,由于二維條碼中的補(bǔ)齊碼區(qū)域?qū)儆谌哂鄥^(qū)域,正常情況下是被普通解碼器所忽視的部分,所以普通解碼器只能讀取至IJ結(jié)束位“0000”之前的普通信息a的數(shù)據(jù)碼字,因此只能獲取到普通信息。
[0063]步驟S3:用戶利用解碼器對(duì)準(zhǔn)作為信息隱藏載體的二維條碼進(jìn)行掃描,掃描后將獲取到密鑰特征值和隱藏信息的密文,同時(shí)將密鑰特征值發(fā)送給服務(wù)器;若用戶使用的是普通解碼器對(duì)所生成的帶有隱藏信息的二維條碼圖像進(jìn)行掃描,則只能讀取到二維條碼中存儲(chǔ)的普通信息,而獲取不到隱藏在其中的秘密信息;
[0064]客戶端中的解碼器的工作原理是通過掃描二維條碼得到所有信息碼字的內(nèi)容,在信息碼字最前面的部分為普通信息的數(shù)據(jù)碼字,直到結(jié)束位”0000”為止,普通信息數(shù)據(jù)碼字部分結(jié)束;從結(jié)束位開始依次記錄,由于秘密信息的密文是從結(jié)束位后開始嵌入,而密鑰特征值又填充在密文的最前面,并且設(shè)定了密鑰特征值t的位數(shù)固定為8位,因此結(jié)束位后的8位數(shù)據(jù)碼字為t值;密鑰特征值t記錄完畢后,將密鑰特征值發(fā)送給服務(wù)器;接下來開始記錄所隱藏的秘密信息的密文的數(shù)據(jù)碼字,因?yàn)槊芪那度虢Y(jié)束后的剩余碼字是由固定的補(bǔ)齊碼字段(11101100和/或00010001)來填充的,因此記錄直到出現(xiàn)補(bǔ)齊碼為止,秘密信息的密文數(shù)據(jù)碼字獲取結(jié)束,從而得到隱藏的秘密信息密文mk。
[0065]若有攻擊者發(fā)現(xiàn)了二維條碼中可能帶有隱藏信息并試圖破解這種編碼方式進(jìn)行秘密信息的獲取,那么首先他就需要找到隱藏的秘密信息的數(shù)據(jù)碼字的起始位,這一點(diǎn)就有一定的難度;即使攻擊者找到了秘密信息數(shù)據(jù)碼字嵌入的起始位,但由于我們還對(duì)秘密信息還采取了加密預(yù)處理過程,因此無法破解加密過程獲得的也只是加密后的秘密信息密文,還是無法獲得秘密信息的明文。所以最終被隱藏的秘密信息明文的安全性是有保障的。
[0066]步驟S4:服務(wù)器根據(jù)密鑰特征值選擇出對(duì)應(yīng)的私鑰并發(fā)送回客戶端,客戶端中的解碼器隨即利用獲取到的私鑰對(duì)隱藏信息的密文進(jìn)行解密得到隱藏信息的明文,并在客戶端進(jìn)行顯示。服務(wù)器將根據(jù)其收到的密鑰特征值即所選取密鑰對(duì)的編號(hào)與之前存放在服務(wù)器的所有秘鑰對(duì)進(jìn)行依次比對(duì),篩選出相同編號(hào)的私鑰(n,d),并將該私鑰(n,d)發(fā)送回客戶端,客戶端中的解碼器通過已知的密文mk和解密私鑰(n,d),并根據(jù)公鑰加密算法的公式:m=mk~d mod n;mk=m'k mod n,對(duì)隱藏的秘密信息的密文mk進(jìn)行解密處理,最終將獲取到最初所要隱藏的秘密信息的明文m,并在客戶端進(jìn)行顯示。
[0067]根據(jù)本實(shí)施方式的基于二維條碼的信息隱藏方法與基于二維條碼的隱藏信息提取方法建立的本實(shí)施方式的基于二維條碼的信息隱藏與隱藏信息提取系統(tǒng),如圖5所示,包括:編碼器、服務(wù)器、解碼器和客戶端;所述編碼器與所述服務(wù)器連接;所述解碼器存放于客戶端中;
[0068]所述編碼器:(a)接收需存儲(chǔ)于二維條碼中的普通信息a和待隱藏的秘密信息明文m;(b)生成若干個(gè)密鑰對(duì),并給每個(gè)密鑰對(duì)進(jìn)行編號(hào),且將編號(hào)設(shè)定為對(duì)應(yīng)密鑰對(duì)的密鑰特征值;(C)在所生成的密鑰對(duì)中隨機(jī)選取一個(gè)密鑰對(duì),并利用這個(gè)密鑰對(duì)中的公鑰將所述待隱藏秘密信息的明文m進(jìn)行加密處理生成待隱藏秘密信息的密文;(d)將選取的密鑰對(duì)所對(duì)應(yīng)的密鑰特征值添加到所述密文的首部,同時(shí)將該密鑰對(duì)中用來解密的私鑰與該密鑰對(duì)編號(hào)捆綁在一起發(fā)送給服務(wù)器中;(e)接收將作為信息隱藏載體的二維條碼的版本和糾錯(cuò)碼的等級(jí),確定作為信息隱藏載體的二維條碼的規(guī)格;(f)按照QR條碼編碼規(guī)則,將所述普通信息a和所述帶有密鑰特征值的密文分別轉(zhuǎn)換為其各自的二進(jìn)制數(shù)據(jù)碼字;(g)將所述普通信息a的數(shù)據(jù)碼字存儲(chǔ)到所述二維條碼中后,再將所述帶有密鑰特征值的密文的數(shù)據(jù)碼字嵌入二維條碼的補(bǔ)齊碼區(qū)域,并完成該二維條碼的最終碼字序列;(h)將該二維條碼的最終編碼依次填入到二維條碼的對(duì)應(yīng)區(qū)域中,完成該二維條碼矩陣的構(gòu)造,并生成最終的二維條碼圖像;
[0069]所述服務(wù)器,(a)從編碼器接收用于解密二維條碼中所隱藏的秘密信息的私鑰及與該私鑰捆綁在一起的對(duì)應(yīng)的密鑰對(duì)的編號(hào);(b)存儲(chǔ)注冊(cè)用戶身份信息,并對(duì)客戶端發(fā)送來的用戶身份信息進(jìn)行驗(yàn)證,且將驗(yàn)證結(jié)果發(fā)送給客戶端;(C)從客戶端接收密鑰特征值,并通過該密鑰特征值找出對(duì)應(yīng)的私鑰并將該私鑰發(fā)送至客戶端;
[0070]所述客戶端,(a)用于接收用戶輸入的其個(gè)人的登錄信息,并將該登錄信息發(fā)送給服務(wù)器;(b)用于從服務(wù)器接收用戶身份驗(yàn)證結(jié)果,若驗(yàn)證結(jié)果為不通過,則顯示驗(yàn)證失敗的提示信息,若驗(yàn)證通過,則即刻跳轉(zhuǎn)到解碼器的二維條碼掃描界面;(C)從解碼器接收解碼器掃描得到的密鑰特征值和隱藏信息的密文,并將密鑰特征值發(fā)送給服務(wù)器;(d)客戶端從服務(wù)器接收私鑰,并將該私鑰發(fā)送給解碼器;(e)在客戶端的顯示界面上給出解碼器解密出的隱藏信息的明文;
[0071]所述解碼器,(a)為用戶所使用對(duì)準(zhǔn)作為信息隱藏載體的二維條碼進(jìn)行掃描,掃描后獲取到密鑰特征值和隱藏信息的密文并傳至客戶端;(b)從客戶端接收私鑰,并利用該私鑰對(duì)二維條碼中隱藏信息的密文進(jìn)行解密得到隱藏信息的明文并將其發(fā)送給客戶端。
【主權(quán)項(xiàng)】
1.一種基于二維條碼的信息隱藏方法,其特征在于:采用二維條碼作為信息隱藏的載體,即將秘密信息嵌入到二維條碼中進(jìn)行隱藏,包括如下步驟: 步驟1:獲取需存儲(chǔ)于二維條碼中的普通信息a和待隱藏的秘密信息明文m,并將8和!11輸入到編碼器中; 步驟2:對(duì)秘密信息進(jìn)行加密預(yù)處理; 步驟2.1:在編碼器中生成若干個(gè)密鑰對(duì),并給每個(gè)密鑰對(duì)進(jìn)行編號(hào),且將該編號(hào)設(shè)定為每個(gè)密鑰對(duì)所對(duì)應(yīng)的密鑰特征值; 步驟2.2:利用密鑰對(duì)中的公鑰對(duì)秘密信息做加密處理; 編碼器在所生成的密鑰對(duì)中隨機(jī)選取一個(gè)密鑰對(duì),并利用這個(gè)密鑰對(duì)中的公鑰將所述待隱藏秘密信息的明文m進(jìn)行加密處理生成待隱藏秘密信息的密文; 步驟2.3:編碼器將選取的密鑰對(duì)所對(duì)應(yīng)的密鑰特征值添加到所述密文的首部,同時(shí)將該密鑰對(duì)中用來解密的私鑰與該密鑰對(duì)編號(hào)捆綁在一起發(fā)送到服務(wù)器中進(jìn)行存放; 步驟3:對(duì)所述普通信息a和所述帶有密鑰特征值的密文進(jìn)行數(shù)據(jù)分析,確定二者的字符類型,并按相應(yīng)的字符集轉(zhuǎn)換成符號(hào)字符,并根據(jù)所述普通信息a的長(zhǎng)度和類型及所述帶有密鑰特征值的密文的長(zhǎng)度和類型,選定出作為信息隱藏載體的二維條碼的版本和糾錯(cuò)碼的等級(jí),并將所述二維條碼的版本和糾錯(cuò)碼的等級(jí)輸入編碼器中; 步驟4:編碼器根據(jù)所述二維條碼的版本和糾錯(cuò)碼的等級(jí),確定作為信息隱藏載體的二維條碼的規(guī)格; 步驟5:按照QR條碼編碼規(guī)則,將所述普通信息a和所述帶有密鑰特征值密文的數(shù)據(jù)字符分別轉(zhuǎn)換為二進(jìn)制位流的形式,分別形成普通信息的二進(jìn)制數(shù)據(jù)碼字和待隱藏秘密信息的二進(jìn)制數(shù)據(jù)碼字; 步驟6:將所述普通信息a的數(shù)據(jù)碼字和所述帶有密鑰特征值的密文的數(shù)據(jù)碼字嵌入到所述二維條碼中,并完成對(duì)該二維條碼最終的編碼; 步驟7:將該二維條碼最終的編碼依次填入到二維條碼的對(duì)應(yīng)區(qū)域中,完成該二維條碼矩陣的構(gòu)造。2.根據(jù)權(quán)利要求1所述的基于二維條碼的信息隱藏方法,其特征在于:所述步驟6包括如下步驟: 步驟6.1:依照QR條碼的編碼規(guī)則將普通信息a的數(shù)據(jù)碼字嵌入到所述二維條碼中,并在普通信息數(shù)據(jù)碼字的最后添加結(jié)束位“0000” ; 步驟6.2:標(biāo)定出該二維條碼中所存儲(chǔ)的普通信息的末位和糾錯(cuò)碼的首位,進(jìn)而相應(yīng)地獲得該二維條碼的補(bǔ)齊碼區(qū)域的起始位和終止位; 步驟6.3:將所述帶有密鑰特征值的秘密信息的密文的數(shù)據(jù)碼字從該二維條碼的補(bǔ)齊碼區(qū)域的起始位開始依次嵌入,直到該密文結(jié)束為止,若還有剩余位置用補(bǔ)齊碼補(bǔ)齊,并完成最終的二維條碼編碼。3.—種基于二維條碼的隱藏信息提取方法,其特征在于:針對(duì)的是所述基于二維條碼的信息隱藏方法中隱藏信息的提取,包括如下步驟:步驟SI:用戶于客戶端輸入其個(gè)人的登錄信息,同時(shí)等待服務(wù)器驗(yàn)證其身份的有效性;步驟S2:服務(wù)器驗(yàn)證該用戶身份是否為合法的注冊(cè)用戶,若服務(wù)器驗(yàn)證該用戶身份不是合法的用戶則驗(yàn)證不通過,客戶端顯示內(nèi)容為驗(yàn)證失敗的提示信息,即該用戶將無法獲取到掃描二維條碼的權(quán)限;若服務(wù)器驗(yàn)證該用戶身份是合法的用戶則驗(yàn)證通過,則即刻跳轉(zhuǎn)到客戶端中解碼器的二維條碼掃描界面,并執(zhí)行步驟S3; 步驟S3:用戶利用解碼器對(duì)準(zhǔn)作為信息隱藏載體的二維條碼進(jìn)行掃描,掃描后將獲取到密鑰特征值和隱藏信息的密文,同時(shí)將密鑰特征值發(fā)送給服務(wù)器; 步驟S4:服務(wù)器根據(jù)密鑰特征值選擇出對(duì)應(yīng)的私鑰并發(fā)送回客戶端,客戶端中的解碼器隨即利用獲取到的私鑰對(duì)隱藏信息的密文進(jìn)行解密得到隱藏信息的明文,并在客戶端進(jìn)行顯示。4.一種基于二維條碼的信息隱藏與隱藏信息提取系統(tǒng),其特征在于:包括:編碼器、月艮務(wù)器、解碼器和客戶端;所述編碼器與所述服務(wù)器連接;所述解碼器存放于客戶端中; 所述編碼器:(a)接收需存儲(chǔ)于二維條碼中的普通信息a和待隱藏的秘密信息明文m;(b)生成若干個(gè)密鑰對(duì),并給每個(gè)密鑰對(duì)進(jìn)行編號(hào),且將編號(hào)設(shè)定為對(duì)應(yīng)密鑰對(duì)的密鑰特征值;(C)在所生成的密鑰對(duì)中隨機(jī)選取一個(gè)密鑰對(duì),并利用這個(gè)密鑰對(duì)中的公鑰將所述待隱藏秘密信息的明文m進(jìn)行加密處理生成待隱藏秘密信息的密文;(d)將選取的密鑰對(duì)所對(duì)應(yīng)的密鑰特征值添加到所述密文的首部,同時(shí)將該密鑰對(duì)中用來解密的私鑰與該密鑰對(duì)編號(hào)捆綁在一起發(fā)送給服務(wù)器中;(e)接收將作為信息隱藏載體的二維條碼的版本和糾錯(cuò)碼的等級(jí),確定作為信息隱藏載體的二維條碼的規(guī)格;(f)按照QR條碼編碼規(guī)則,將所述普通信息a和所述帶有密鑰特征值的密文分別轉(zhuǎn)換為其各自的二進(jìn)制數(shù)據(jù)碼字;(g)將所述普通信息a的數(shù)據(jù)碼字存儲(chǔ)到所述二維條碼中后,再將所述帶有密鑰特征值的密文的數(shù)據(jù)碼字嵌入二維條碼的補(bǔ)齊碼區(qū)域,并完成該二維條碼的編碼;(h)將該二維條碼的最終編碼依次填入到二維條碼的對(duì)應(yīng)區(qū)域中,完成該二維條碼矩陣的構(gòu)造,并生成最終的二維條碼圖像;所述服務(wù)器,(a)從編碼器接收用于解密二維條碼中所隱藏的秘密信息的私鑰及與該私鑰捆綁在一起的對(duì)應(yīng)的密鑰對(duì)的編號(hào);(b)存儲(chǔ)注冊(cè)用戶身份信息,并對(duì)客戶端發(fā)送來的用戶身份信息進(jìn)行驗(yàn)證,且將驗(yàn)證結(jié)果發(fā)送給客戶端;(C)從客戶端接收密鑰特征值,并通過該密鑰特征值找出對(duì)應(yīng)的私鑰并將該私鑰發(fā)送至客戶端; 所述客戶端,(a)用于接收用戶輸入的其個(gè)人的登錄信息,并將該登錄信息發(fā)送給服務(wù)器;(b)用于從服務(wù)器接收用戶身份驗(yàn)證結(jié)果,若驗(yàn)證結(jié)果為不通過,則顯示驗(yàn)證失敗的提示信息,若驗(yàn)證通過,則即刻跳轉(zhuǎn)到解碼器的二維條碼掃描界面;(C)從解碼器中接收解碼器掃描得到的密鑰特征值和隱藏信息的密文,并將密鑰特征值發(fā)送給服務(wù)器;(d)客戶端從服務(wù)器接收私鑰,并將該私鑰發(fā)送給解碼器;(e)在客戶端的顯示界面上給出解碼器解密出的隱藏信息的明文; 所述解碼器,(a)為用戶所使用對(duì)準(zhǔn)作為信息隱藏載體的二維條碼進(jìn)行掃描,掃描后獲取到密鑰特征值和隱藏信息的密文并傳至客戶端;(b)從客戶端接收私鑰,并利用該私鑰對(duì)二維條碼中隱藏信息的密文進(jìn)行解密得到隱藏信息的明文并將其發(fā)送給客戶端。
【文檔編號(hào)】H04L29/06GK105825257SQ201610134624
【公開日】2016年8月3日
【申請(qǐng)日】2016年3月9日
【發(fā)明人】王冬琦, 司馬東芳, 王志鵬
【申請(qǐng)人】東北大學(xué)