摘要:QR碼因存儲信息量大、使用方便而得到廣泛應用。本文從QR碼信息安全的角度,探討了使用非對稱密碼體制RSA加密算法對QR碼生成前進行數據加密和解碼的過程,并使用C實現這一系列過程。
關鍵詞:RSA密碼算法 QR二維碼 非對稱密碼體制
1 概述
在現代社會,信息顯得越來越重要,進入到人們生活的各個領域,因而信息安全、隱藏技術越來越受到人們的重視。條碼技術是在條碼理論、光電技術、計算機技術和通信技術等基礎上發展起來的集編碼、印刷、識別、數據采集與處理于一體的綜合性技術。由于工業中產生的數據信息量不斷增加,一維條碼技術已經不能滿足社會的需求,人們開始廣泛使用二維條碼技術。二維條碼具有信息容量大、密度高、糾錯能力強、譯碼可靠性高等特點,可以將文字、圖形、圖像等一切可以數字化的信息進行編碼。雖然二維條碼本身具有一定的保密性,但這遠遠不能滿足人們對其在各種通訊網絡傳輸時的保密性的要求,所以如何對二維碼進行加密,成為了二維碼信息安全必須考慮的問題。本文介紹通過對QR二維碼進行加密和解碼,介紹使用RSA加密算法,加強二維碼信息的安全方法。
2 QR二維碼簡介
QR碼是快速識別矩陣碼(quick response code)的簡稱,上世紀90年代推出,我國于2000年底頒布了QR碼的國家標準。QR碼具有信息容量大、高速全方位識讀、支持加密算法、容易制造、使用成本低、誤碼率低、容錯能力強等特點,它由功能圖形區和編碼區組成,如圖1所示。功能圖形區又分為空白區、位置探測圖形、分隔符、定位圖形和校正圖形組成,用于符號定位和特征識別的特定圖形,不用于數據編碼;編碼區由格式信息、版本信息以及數據和糾錯碼字組成,該區域用來保存數據。
3 RSA密碼算法基礎
RSA算法是目前應用最為廣泛的非對稱加密算法,或者說公鑰密碼算法,它不僅可以用來加密,而且可以用來進行數字簽名。RSA密碼算法自1978年由Ron Rivest、Adi Shamir以及Leonard Adleman提出以來,一直被認為是一種安全性能很高的密碼算法。RSA密碼算法具體描述如下:
4 RSA加密算法在二維碼信息安全上的應用
RSA加密算法應用到二維碼上,主要是在二維碼編碼前對數據進行加密,在驗證時對數據進行解密。
4.1 QR碼的生成
QR碼的生成步驟為:
①將相關數據信息通過RSA加密模塊進行加密;
②使用ZXing類庫提供的編碼功能將加密后的數據進行編碼形成QR二維碼圖形;
③將此圖形保存在系統指定的位置。
4.2 QR碼驗證的實現
QR碼的驗證步驟為:
①通過CMOS(或CCD)攝像頭、手持式掃描設備將QR碼圖形讀取到系統中;
②使用ZXing類庫提供的解碼功能將QR碼中的數據解析出來;
③通過RSA解密模塊將數據還原;
④通過人工模式或自動識別模式對QR碼的持有者進行身份比對。
5 RSA算法的C語言實現
RSA加密算法的關鍵是冪的取余運算,限于篇幅,只寫出該部分的實現程序。
6 結論
由于使用靈活、方便,被認為是一種“零成本”技術,QR二維碼目前得到了廣泛使用。本文將QR二維碼與密碼技術結合起來可以保證二維條碼的信息安全,探討解決二維碼使用過程中的防偽問題,并列出了C語言實現RSA算法的部分程序。
參考文獻:
[1]解龍,等.基于加密QR二維碼的商品包裝防偽技術[J].北京印刷學院學報,Vol.14,No.4,2013:16-20.
[2]廖東方.二維碼電子標簽的安全技術研究[M].北京:北京郵電大學出版社,2008.
[3]周娣.淺談二維碼的應用[J].山東輕工業學院學報,No.2,2011:
62-64.
基金項目:廣東遠程開放教育科研基金項目,編號:YJ1402
作者簡介:
李逢玲(1963-),女,湖南衡陽人,廣東省佛山科學技術學院,實驗師,主要研究方向:物聯網、系統安全。
鄭飛(1965-),男,湖北監利人,廣東省佛山市佛山廣播電視大學,博士,副教授,主要研究方向:物聯網、系統安全等。