◆俞陟杰
RSA算法在二維碼防偽技術中的應用研究
◆俞陟杰
(上海智覓智能科技有限公司 上海 200082)
在二維碼防偽技術中,應用改進RSA算法可以提升二維碼防偽系統(tǒng)安全性。本文首先針對傳統(tǒng)RSA算法的弊端提出改進方法,然后對二維碼防偽系統(tǒng)需求進行分析,針對其具體需求,設計一種應用改進RSA算法的二維碼防偽系統(tǒng),希望可以對業(yè)內(nèi)起到一定參考作用。
RSA算法;二維碼;防偽技術
在二十世紀七十年代,三位數(shù)學家依照Martin Hellman和Whitfield理論框架共同設計出一種非對稱加密算法,即RSA算法?,F(xiàn)階段,在世界各國中,RSA算法均得到了廣泛應用,且目前并沒有一種方法可以對RSA算法進行完全破解,因此,此種算法也受到了國際標準化組織的推薦。
在傳統(tǒng)RSA算法中,主要存在兩個主要缺點:
(1)大素數(shù)選取時間長。需要通過大素數(shù)p與大素數(shù)q相乘才能得到傳統(tǒng)RSA算法中模n,而隨著模n長度的提升,大素數(shù)選取時間會變長。
(2)容易被因子分解。傳統(tǒng)RSA算法需要對模n進行因子分解,以此來得到私鑰d,這會對RSA密碼體制安全造成破壞。因此,在本文中將應用一種改進的RSA算法,在該算法中,對三個素數(shù)因子進行引進,并利用多個步驟來對密鑰n進行消除,三素數(shù)因子可以讓選取素數(shù)因子位數(shù)得到減少,而在替換n之后,攻擊者不能利用因式分解n來得到因子p、q,可以讓算法安全性能得到有效提升。
二維碼防偽系統(tǒng)需求主要包含四個方面:
就消費者而言,消費者應用此系統(tǒng)軟件可以對商品真?zhèn)芜M行直接掃描驗證,并不需要通過輸入驗證碼等復雜方法驗證商品真?zhèn)涡?;就生產(chǎn)企業(yè)而言,生產(chǎn)企業(yè)可以自行發(fā)布掃描解碼軟件,這樣可以讓企業(yè)和認證中心的工作壓力得到減輕。
在二維碼防偽系統(tǒng)中,需要保證系統(tǒng)及系統(tǒng)數(shù)據(jù)安全性,數(shù)據(jù)主要為每件商品的密鑰、防偽標識以及黑名單數(shù)據(jù)等。在系統(tǒng)設計中,可以利用非對稱密鑰機制進行設計,利用私鑰進行解密,利用公鑰進行加密。在移動端驗證中,可以在手機應用商店公布具有黑名單的掃描解碼軟件,而此黑名單可以得到聯(lián)網(wǎng)更新,在進行掃描時,依托黑名單數(shù)據(jù),在無網(wǎng)條件下也可以完成驗證工作。
在該系統(tǒng)中,主要包含生成本地密鑰、加密模塊、二維碼生成模塊等,系統(tǒng)采用模塊化設計方法,這種方法可以讓系統(tǒng)滿足未來擴展需求,可以依照消費者實際情況對其功能進行增加或去除。
在開發(fā)設計此系統(tǒng)過程中,需要對開發(fā)流程、管理進程予以嚴格遵循,需要保證該軟件具有較高容錯率,具有完善的功能,且可以對數(shù)據(jù)進行有效恢復[1]。
在二維碼防偽系統(tǒng)中,可以分成兩個主要模塊,即二維碼加密生成模塊和掃描解碼認證模塊。利用本地二維碼加密生成軟件,可以讓一組密鑰對得到隨機生成,利用密鑰對的私鑰,可以加密輸入唯一商品信息,利用條碼生成算法,可以讓對應QR二維碼防偽標識得以生成,在粘貼工作完成后,利用手機等移動端設備可以對app掃碼軟件進行下載,該軟件內(nèi)置黑名單,通過掃描,公鑰解密對比黑名單內(nèi)具體數(shù)據(jù),可以得到驗證結果[2]。
(1)二維碼加密生成模塊
在二維碼加密生成模塊中,主要包含兩個子模塊,即RSA算法加密子模塊、二維碼編碼生成子模塊。前者主要為利用密鑰對生成算法計算得出公、私鑰,在需要上傳軟件中放入公鑰,可以讓移動端掃描解碼認證模塊得到使用,利用私鑰,可以加密處理輸入明文數(shù)據(jù),進而讓密文得出;后者主要是分析、編碼應用RSA算法加密子模塊處理得到的密文信息,同時,利用此模塊可以對其進行糾錯處理,可以對格式信息進行編碼處理,進而得到QR二維碼圖形。這種圖形可以在商品上進行打印或是作為防偽標識在商品上進行粘貼。
為讓RSA算法應用安全性得到保證,在該系統(tǒng)中,做好了四項主要工作:
①大素數(shù)p、q為強素數(shù)。p1、p2、p1-1、p1+1、p2-1、p2+1為p+1與p-1的大素數(shù)因子。
②大素數(shù)p、q足夠大。在該系統(tǒng)模塊中,大素數(shù)p、q均為大于一百位二進制數(shù)。
④p-1、q-1最大公因子足夠小。最大公因子的大小和其受到迭代供給概率為正比例關系,需要確保其最大公因子足夠小。
數(shù)據(jù)庫內(nèi)容分析主要為在編碼之前研究其主要內(nèi)容,依照所輸入的數(shù)據(jù)流內(nèi)容可以對數(shù)據(jù)編碼模式進行確認;數(shù)據(jù)編碼主要是利用數(shù)據(jù)內(nèi)容分析結果,對合適編碼版本進行選擇,首先,需要轉化輸入數(shù)據(jù)流為0、1位流,其次,需要分組處理位流,具體分組原則為一組8個,一碼字為一組,最后,可以依照編碼版本規(guī)則,在圖像區(qū)域中填充具體數(shù)據(jù);糾錯處理主要為利用編碼版本與糾錯級別來分塊處理二維碼圖形碼字內(nèi)容,利用Reed Solomon對每一塊碼字完成糾錯計算工作,在數(shù)據(jù)塊中填入糾錯碼;在模塊布局中,需要將圖像校正模塊、定位符號、分隔符號、尋像圖像與格式說明填入在版本規(guī)定固定區(qū)域中;在填充掩模中,主要是根據(jù)一定比例來對二維碼圖形黑白模塊完成分配處理,保證內(nèi)容模塊中沒有定義功能模塊出現(xiàn)[3]。
(2)掃描解碼認證模塊
在掃描解碼認證模塊中,主要包含四個部分:
第一,圖像預處理。圖像預處理過程可以概括為:圖像灰度化;濾波去噪;形態(tài)學閉運算去陰影;圖像校正;邊緣檢測提取四條邊線;圖像灰度級調(diào)整和二值化。利用平均值法、加權平均法、最大值法、分量法可以進行灰度化處理;應用空域濾波與頻域濾波方法可以對圖像噪聲進行處理,在本文中,主要采用非線性濾波去噪方法中的中值濾波方法,這種方法可以在對噪聲進行去除的同時讓邊緣信息得到保留;利用灰度圖像閉運算去陰影方式可以對陰影采集圖像有效數(shù)據(jù)進行去除,利用灰度級調(diào)整,可以得出清晰圖像;圖像校正主要為對圖像因畸變、拍攝角度而產(chǎn)生失真情況進行恢復的處理環(huán)節(jié);利用黑白色模塊屬性,可以判斷、識別二維碼圖像,利用固定閾值可以對圖像進行二值化處理,在本文中,主黑白像素點灰度值分別設置為255、0。
第二,QR二維碼解碼。二維碼解碼與其編碼具有相逆性,其流程可以概括為:識別深淺模塊;譯碼格式信息;確認版本;消除掩模;恢復數(shù)據(jù),糾錯碼字;錯誤檢查;糾錯;數(shù)據(jù)碼字譯碼;輸出結果。如果在錯誤檢查中并無發(fā)現(xiàn)錯誤情況,那么可以直接進行數(shù)據(jù)碼字譯碼。
第三,RSA解密。RSA私鑰加密與其公鑰解密流程具有相逆性,其流程主要為:二進制密文;轉碼;分組轉碼密文;公鑰解密;模冪運算;輸出明文。
第四,黑名單真?zhèn)涡r灐瘟由唐泛诿麊卧O置于二維碼掃描軟件之中,通過對商品二維碼進行掃描,依照掃描信息解碼軟件,可以將此信息對比黑名單數(shù)據(jù),如果該數(shù)據(jù)存在,那么表明該商品為偽劣產(chǎn)品,進而完成驗證工作。
綜上所述,應用改進RSA算法,可以設計二維碼加密生成模塊與掃描解碼認證模塊,利用這兩個主要模塊,可以提升二維碼防偽系統(tǒng)安全性,可以對大素數(shù)選取時間過長、模數(shù)易被分解問題進行解決,進而滿足實用需求、安全需求、擴展需求及可靠需求。
[1]韓天悅,謝靜.RSA加密解密算法及相關攻擊方法[J].電腦與信息技術,2018.
[2]方文和,李國和,周曉明.面向Android的RSA算法優(yōu)化與二維碼加密防偽系統(tǒng)設計[J].計算機科學,2017.
[3]楊奕成.RSA加密解密算法的分析與實現(xiàn)[J].通訊世界,2017.