王對 韓盛
摘要:由于企業對產品防偽需求不斷提高,該文提出了基于AES加密算法的二維碼防偽系統,通過對產品序列號AES加密生成二維碼,使其唯一標識該產品,并通過該二維碼不斷更新產品動態信息,依靠加密二維碼和產品的動態信息對其進行防偽識別,加強了二維碼不可偽造性,降低了產品被造假的風險。該系統運用于防偽領域,打擊盜版,減少企業損失。該系統特點:加密算法較為安全,防偽模式效果較好。
關鍵詞:二維碼防偽;AES加密算法
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)11-0064-03
Abstract: Because of the increasing demand for anti-counterfeiting products, this paper proposes a QR code anti-counterfeiting system based on AES encryption algorithm. By encrypting the serial number AES, the two-dimensional code is generated to uniquely identify the product. Through the QR code, the dynamic information of the product is constantly updated, and the anti-counterfeiting identification is carried out by encrypting the QR code and the dynamic information of the product. Forger ability reduces the risk of forgery. The system is applied in the field of anti-counterfeiting, combating piracy and reducing enterprise losses. The characteristics of the system are: the encryption algorithm is more secure and the anti-counterfeiting mode is better.
Key words: QR code anti-counterfeiting; AES encryption algorithm
在當代產品中,防偽技術越來越得到重視,但是多數使用的還是傳統防偽技術,如激光防偽,磁性防偽,溫變防偽,熒光防偽,摻雜特殊成分等,這些防偽人體感官不是特別敏銳,會造成真和假防偽標記無法區分,且傳統印刷技術容易被破譯從而被盜版商家使用,如今數字化防偽已經成為防偽的新力量,依靠二維碼防偽,信息明確,且直接,消費者可以直接通過企業設計的專用二維碼查詢APP查詢出產品的動態信息,如出廠地點,銷售渠道等等輔助唯一標識商品的信息,這樣可讓二維碼防偽效果達到最佳。
二維碼防偽的優勢:
(1)造價低。二維印刷為黑白,無其他印刷技術要求,成本低廉;
(2)不可篡改。二維碼防偽,一旦人為篡改,就會造成無法通過APP識別,所以篡改只會造成APP識別為假,依舊達到預期防偽效果;
(3)不可被仿制,該二維碼加密技術,添加了動態信息,實時追蹤產品動態信息,極大地增強了防偽性能,即使被仿造,根據產品的動態信息也可識別出真偽;
(4)二維碼保存時間長,通過糾錯算法,使得二維碼污損較低的情況下,依舊能夠識別二維碼相關信息,獲取該產品真偽性。
1 AES算法加密
1.1 AES的參數
· 密鑰長度:128位,192位,256位
· 分組長度:128
·輪數 10,12,14 輪
·每輪的密鑰長度:128位
·擴展密鑰長度:176位,208位,240位
不同參數都是代表著不同的AES不同的加密參數,本文介紹密鑰長度為128,輪數十輪,每輪密鑰長度為44位的加密模式。
1.2 AES結構
輸入分組為矩陣S描述,密鑰拓展為矩陣,進行9/11/13輪迭代,每一輪迭代,都有固定的操作,總共有四種操作:
⑴字節代換:S盒
⑵行位移:置換
⑶列混淆:GF(2^8)
⑷輪密鑰加:XOR
矩陣state轉換為分組,且以上步驟均可逆,解密時按照上述步驟進行逆操作就可以得到原文。
具體操作流程如圖1所示。
1.2.1 AES加密字節代換
輸入的分組是以矩陣形式,對矩陣內所有元素進行字節代換,即映射查表,首先介紹S盒,S盒是由16*16字節的矩陣,包含8Bit值的256種可能變換,字節的低四位作為列值,字節的高四位作為行值,生成坐標后,輸出即為S盒對應坐標的元素–例:(95)被映射為S盒中 第9行第5列的值(2A),S盒結構如圖2所示。
1.2.2 AES加密行移位變換
行移位變換,即:矩陣的第一行不變,第二行所有元素循環左移一個字節,第三行所有元素循環左移兩個字節,第四行所有元素循環左移三個字節,如果要進行逆操作那就將左移改成右移,具體行移位變換如圖3所示。
1.2.3 AES加密列混淆變換
列混淆變化,是對每列進行單獨操作,每一列乘左乘一個矩陣得到新的矩陣列,如圖4所示。
正向列混合可用基于state矩陣乘法表示,乘積矩陣中每個元素均滿足矩陣乘法定義,即都是由一個矩陣的行和一個矩陣的列乘積得到;乘法和加法都是定義在GF(2^8)上的。
1.2.4 AES加密輪密鑰加密
每一輪輸入矩陣的一列(4個字節)和一輪密鑰的一列(1個字)進行異或,由于要進行10輪輪密鑰加密,所以密鑰要擴展9次,密鑰擴展總共有44字節,根據異或原理,進行解密操作時,步驟依舊是與該輪密鑰進行異或,就可以得到初始輸入矩陣,所操作如圖5所示。
密鑰擴展描述,初始密鑰輸入值為4個字,共擴展9次,一次擴展四個字,最后共有44個字,密鑰擴展算法 – 偽代碼描述:
· 輸入密鑰直接復制到擴展密鑰數組的前四個字
· 在擴展密鑰數組中,w[i]的值依賴于w[i-1]和w[i-4]
· 對于數組w中,下標為4的倍數,即w[i](i%4==0),進行更復雜的處理,處理函數用g表示:
·函數g操作為:
-字循環:四個字節循環左移一個字節。[b0, b1, b2, b3]變換成[b1, b2, b3 ,b0]
-字節代換:用S盒對每個字節進行代換
-與輪常量Rcon[j]相異或
– 輪常量是一個字,這個字最右邊三個字節總為0。 每輪的輪常量均不同,其定義為Rcon[j] =(RC[j],0,0,0),其中:
· RC[1]=1
· RC[j]=2R· C[j-1],乘法定義在域GF(28)上:
總體操作流程和函數g如圖6所示。
2 防偽模式
除了對二維碼內信息AES加密外,還將關聯動態信息,具體防偽流程如下:當一個產品出產時,為其標識唯一二維碼,通過識別二維碼,更新數據庫中的信息,如何時何地出產,安檢員編碼,物流信息,銷售渠道,銷售時間地點等信息,若一個用戶想要購買產品時,通過專用APP成功識別二維碼后得到關聯數據庫中的信息,如發現這款商品和自己所購買的渠道以及信息都相同,那就可以認定為真品,如果發現該產品的信息和所購買的途徑不相符,有兩種原因,一種是該防偽二維碼被仿造在假冒商品上,第二種是該商品是正品,但是沒有進行二維碼及時更新信息,第二種情況可歸納為員工沒有及時按照規定進行更新產品動態信息,不是出于偽造的目的,所以綜上所述,該方案可以較好地處理防偽問題,如下圖7所示為產品二維碼防偽流程。
3 結束語
二維碼安全問題不容小覷,若發現二維碼的高危漏洞,將會對企業造成巨大損失,本文提出的基于AES加密算法的二維碼防偽體系,可以有效避免假冒產品仿造二維碼,保護了正版企業的權利,有助于版權規范的不斷進步發展,除此之外,運用大數據技術,可以很好地跟蹤產品銷售和售后等信息,生成大量數據,給企業決策和產品維護等方面提供方便和參考,本系統還在進一步開發當中,一些功能算法和防偽加密流程還在不斷改進之中,最后感謝我的指導老師,學校以及對本文直接或間接提供幫助的人。
參考文獻:
[1] 薛蓬,王達婭.二維條碼在商品防偽上的應用[J].科技信息,2009( 33) :427.
[2] 李燕.二維條形碼技術在防偽標簽中的應用[J].通訊世界:下半月,2016( 9) :289290.
[3] 李娜.基于輕量級數字簽名的藥品防偽追溯系統的設計[D].北京:北京工業大學,2013.
[4] 謝仁康.非對稱加密二維碼防偽系統的設計[D].成都:電子科技大學,2013.
[5] William Stallings.王張宜,等,譯.密碼編碼學與網絡安全——原理與實踐(第五版)[M]. 北京:電子工業出版社,2012.
[6] Daemen J, Rijmen V. AES proposal: Rijndael[J]. 1998.
[7] Advanced Encryption Standard, https://en.wikipedia.org/wiki/Advanced_Encryption_Standard, 2017年3月獲取.
[8] Joan Daemen and Vincent Rijmen, The Design of Rijndael, AES - The Advanced Encryption Standard, Springer-Verlag 2002:238.
[9] SSE, SSE2, AVX, AVX512等, https://software.intel.com/sites/landingpage/IntrinsicsGuide/, 2017年6月獲取.
【通聯編輯:代影】