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