◆廖 宇 李佩珊
基于視覺加密的可視標簽認證系統設計
◆廖 宇1李佩珊2
(1. 92569部隊 海南 572000;2. 91458部隊 海南 572000)
隨著二維碼技術的發展及應用,其面臨的安全威脅也越來越嚴重,針對此問題,作者用基于視覺加密技術和SM2密碼算法設計了一種基于視覺加密的可防欺騙的QR碼安全認證系統,實現了QR碼圖像的視覺密碼信息嵌入式保護。系統分為兩部分,服務器端生成QR碼并且向QR碼加入驗證機制,手持端進行QR碼安全認證與信息的讀取。綜合利用信息隱藏技術、視覺加密、SM2數字簽名等手段,使得手持設備端在讀取QR信息時,可以快速實現對QR碼進行安全認證,保證獲取的信息真實、準確、可靠。
視覺加密;信息隱藏;QR碼;安全認證
近年來,隨著移動互聯網技術的發展,二維碼也開始被廣泛應用,尤其是其與電子商務的緊密結合,使二維碼深入到社會生活的各個領域[1]。然而由于缺少相關的統一市場標準和嚴格監管,二維碼的使用也面臨越來越多的安全威脅。據騰訊《2017上半年互聯網安全報告》顯示,2017年上半年,二維碼成為最主要的手機病毒渠道來源,占比高達20.80%。隨著二維碼的使用越來越普遍,而制毒者和制毒機構也進一步利用該渠道傳播惡意軟件與惡意網址鏈接,用戶刷碼后往往會安裝惡意扣費軟件或隱私竊取等病毒,這種情況日趨嚴峻。
針對QR碼面臨的安全問題,現階段主要的應對方法是對QR碼進行加密保護。常見的方式有二種:一是針對QR碼所編碼的數據信息進行加密,如文獻[2]中采用二維碼信息分組加密技術,將Rijndael和SHA512加密算法相結合,由Rijndael二次加密保護和SHA512身份校驗碼生成二維碼等方法組成一種新的加密方法,對QR碼數據進行保護。二是針對QR碼圖像本身進行加密,如文獻[3]將二維碼圖像視為普通的二值圖像,并利用DES算法直接對QR碼二值圖像進行加密。
本文結合本文利用數字簽名算法和視覺密碼以及信息隱藏技術,對QR碼圖像進行處理,解決QR碼的信息真偽識別的問題。
QR碼全稱為快速識別矩陣碼[4-5],是近年移動設備上十分流行的一種編碼方式,相比傳統的Bar Code條形碼,可存儲的信息量更大,種類更加豐富。還具有超高速識別度、全方位識讀、糾錯能力強、能有效表示漢字等特點[6]。優點在于其輸入輸出的數據流均可用“0”、“1”分別表示圖像中的白、黑像素。由于其灰度值為0,所以可用設備易掃描QR碼中的圖形值。QR碼由編碼區和包括熏香圖形、分隔符、定位圖形和校正圖形在內的功能圖形組成,具體的結構如圖1所示。

圖1 QR碼圖形結構
信息隱藏,就是用一種技術將信息嵌進另外一種信號中,掩護媒體通過嵌入信息生成偽裝媒。該嵌入流程需要滿足下述條件:符號信息無法被感知。通常符號信號不易被去除,因此具有魯棒性。符號信號嵌入不增加主信號,主要為符號信號安全保密性服務。基于數字圖像的信息隱藏技術即是以數字圖像作為載體,在不改變數字圖像的外觀特性的基礎上,將信息隱含在圖像當中[7]。
基于DCT的數字圖像隱藏算法大致分為三步:首先將二維DCT轉換載體圖像分塊,接著以秘密信息來調制DCT系數。然后,對新的系數作離散余弦最終獲得隱藏圖像[8]。


圖2 簡單視覺加密過程
結合QR碼的圖像特點,本文設計了一種面向QR碼的可視標簽認證系統。該系統分為手持設備和服務端兩個部分,服務端主要負責對物流信息計算生成QR碼,QR除含有物流信息外,并包含了隨機生成的信息m和數字簽名Sig(MD1);而手持設備具備對QR碼安全認證的功能,主要表現在對相對應QR碼生成共享圖像P2且能做異或運算得到驗證圖像S,在通過數字簽名驗證m信息的真偽的同時將m的含義與驗證圖像做比較,用戶通過視覺感知讀出秘密圖像的信息,判斷與解碼后m的含義是否相同。系統總體流程如圖3所示。

圖3 系統總體流程設計
系統服務端主要完成帶有雙重可認證信息的QR碼生成任務,具體主要包括以下三個步驟:
(1)提取圖像特征值
首先將26個字母分別生成的26張圖像,之后對QR碼圖像進行濾波處理,并將處理結果與原圖像作二維卷積運算,得到特征圖像;之后將所得到的特征圖像錄入數據庫中。
(2)生成初始QR碼
生成QR碼的過程可分為以下幾個步驟:
Step1:編輯物流信息;
Step2:SM2公私鑰對的產生;
Step3:隨機產生驗證信息m,并通過消息摘要算法生成MD,并對MD做SM2數字簽名,得到Sig(MD);其中驗證信息m為7位(十進制),m賦有一定的含義,所以對應不同的位有著不同范圍及意義。我們將m分為4個組:起始位置(設為a);圖像信息(設為b);放大倍數(設為c);校驗位置(設為d)。
Step4:綜合上述的物流信息、m和Sig(MD),并生成對應的QR碼。
(3)服務端生成載有視覺認證圖像的QR碼
由服務端的工作流程圖可知,要將視覺加密信息嵌入QR碼中,主要有以下步驟:
Step1:根據原有的驗證信息m,選取對應的特征圖像S1,并對圖像S1進行CI插值運算,得到圖像S;
Step2:初始QR碼圖像與特征圖像S做“異或”運算,得到加密圖像P2;
Step3:將共享圖像P2隱藏在初始QR碼圖像P1中,得到最終的加密QR圖像Q。
主要工作流程如圖4。

圖4 服務端工作流程
在服務端能生成QR碼,其中手持設備掃描即為相反的過程,為了驗證QR碼的安全性,所以在掃描時雖提取了QR碼中的所有信息,但必須經過對QR碼的安全認證后,再讀取物流信息。即先提取m及其簽名信息,利用服務端的公鑰,對簽名信息進行認證,根據認證結果,判斷信息的合法性;如果認證合法,通過視覺解密算法,還原驗證圖像,用戶通過肉眼視覺感知判斷圖像的可讀性及與驗證信息m的匹配度,判斷QR碼信息的完整性。實現步驟主要包括以下內容:
Step1:獲取服務端的公鑰,依據SM2簽名認證算法,對Sig(hash(m))進行解密,得到hash(m);
Step2:利用相同的消息摘要算法對m進行散列運算,得到hash(m)1,比較與hash(m)是否一致。如果不一致,則該QR碼不合法,不可信。如果一致,則進行下一步操作;
Step3:利用信息隱藏技術將共享圖像P2從加密的QR碼中提取出來,結合視覺解密算法,P2與QR碼圖像進行“異或”處理,可得到驗證圖像S。并將其顯示到界面中,用戶通過視覺觀察,檢驗圖像S是否驗證信息m中提示的信息相符合,已達到檢驗QR碼信息完整性的要求,并以此對用戶進行提醒。
主要工作流程如圖5。

圖5 手持端主要工作流程
本文針對QR碼應用過程中面臨的安全問題,結合QR碼的圖形特點,設計了一種可視標簽認證方案。方案利用SM2數字簽名技術和視覺加密算法,實現了QR碼的信息傳輸過程的雙重加密認證,能夠極大地增強用戶掃碼過程的安全性。
[1]徐霖,畢桂.談談二維碼安全問題[J].河北農機,2019(04):84.
[2]肖本海,鄭瑩娜,龍建明,等. 基于SHA512哈希函數和Rijndael加密算法QR二維碼信息安全設計[J].計算機系統應用,2015,(07):149-154.
[3]張定會,單俊濤,江平. QR碼DES加密與解密[J].數據通信,2011,(03):40-42.
[4] GB/T18284-2000,QRcode[S].
[5]馮漢祿,黃穎為,牛曉嬌,錢銀超.QR碼糾錯碼原理及實現[J].計算機應用,2011,31(S1):40-42.
[6]萬浩.QR碼識別算法研究[D].南京理工大學,2017.
[7]程航,王子馳,張新鵬.基于圖像塊分組的加密域可逆信息隱藏[J].北京工業大學學報,2016,(05):722-728.
[8]張曌.數字圖像下的信息隱藏技術[J].電子技術與軟件工程,2018(04):58.
[9]武雪芹.視覺密碼技術應用與研究[D].中北大學,2016.