RSA算法在二维码防伪技术中的应用研究
2018-09-12俞陟杰
◆俞陟杰
RSA算法在二维码防伪技术中的应用研究
◆俞陟杰
(上海智觅智能科技有限公司 上海 200082)
在二维码防伪技术中,应用改进RSA算法可以提升二维码防伪系统安全性。本文首先针对传统RSA算法的弊端提出改进方法,然后对二维码防伪系统需求进行分析,针对其具体需求,设计一种应用改进RSA算法的二维码防伪系统,希望可以对业内起到一定参考作用。
RSA算法;二维码;防伪技术
0 前言
在二十世纪七十年代,三位数学家依照Martin Hellman和Whitfield理论框架共同设计出一种非对称加密算法,即RSA算法。现阶段,在世界各国中,RSA算法均得到了广泛应用,且目前并没有一种方法可以对RSA算法进行完全破解,因此,此种算法也受到了国际标准化组织的推荐。
1 RSA算法的改进
在传统RSA算法中,主要存在两个主要缺点:
(1)大素数选取时间长。需要通过大素数p与大素数q相乘才能得到传统RSA算法中模n,而随着模n长度的提升,大素数选取时间会变长。
(2)容易被因子分解。传统RSA算法需要对模n进行因子分解,以此来得到私钥d,这会对RSA密码体制安全造成破坏。因此,在本文中将应用一种改进的RSA算法,在该算法中,对三个素数因子进行引进,并利用多个步骤来对密钥n进行消除,三素数因子可以让选取素数因子位数得到减少,而在替换n之后,攻击者不能利用因式分解n来得到因子p、q,可以让算法安全性能得到有效提升。
2 二维码防伪系统需求分析
二维码防伪系统需求主要包含四个方面:
2.1 实用需求
就消费者而言,消费者应用此系统软件可以对商品真伪进行直接扫描验证,并不需要通过输入验证码等复杂方法验证商品真伪性;就生产企业而言,生产企业可以自行发布扫描解码软件,这样可以让企业和认证中心的工作压力得到减轻。
2.2 安全需求
在二维码防伪系统中,需要保证系统及系统数据安全性,数据主要为每件商品的密钥、防伪标识以及黑名单数据等。在系统设计中,可以利用非对称密钥机制进行设计,利用私钥进行解密,利用公钥进行加密。在移动端验证中,可以在手机应用商店公布具有黑名单的扫描解码软件,而此黑名单可以得到联网更新,在进行扫描时,依托黑名单数据,在无网条件下也可以完成验证工作。
2.3 扩展需求
在该系统中,主要包含生成本地密钥、加密模块、二维码生成模块等,系统采用模块化设计方法,这种方法可以让系统满足未来扩展需求,可以依照消费者实际情况对其功能进行增加或去除。
2.4 可靠需求
在开发设计此系统过程中,需要对开发流程、管理进程予以严格遵循,需要保证该软件具有较高容错率,具有完善的功能,且可以对数据进行有效恢复[1]。
3 RSA算法在二维码防伪技术中的应用
3.1 总体设计
在二维码防伪系统中,可以分成两个主要模块,即二维码加密生成模块和扫描解码认证模块。利用本地二维码加密生成软件,可以让一组密钥对得到随机生成,利用密钥对的私钥,可以加密输入唯一商品信息,利用条码生成算法,可以让对应QR二维码防伪标识得以生成,在粘贴工作完成后,利用手机等移动端设备可以对app扫码软件进行下载,该软件内置黑名单,通过扫描,公钥解密对比黑名单内具体数据,可以得到验证结果[2]。
3.2 模块设计
(1)二维码加密生成模块
在二维码加密生成模块中,主要包含两个子模块,即RSA算法加密子模块、二维码编码生成子模块。前者主要为利用密钥对生成算法计算得出公、私钥,在需要上传软件中放入公钥,可以让移动端扫描解码认证模块得到使用,利用私钥,可以加密处理输入明文数据,进而让密文得出;后者主要是分析、编码应用RSA算法加密子模块处理得到的密文信息,同时,利用此模块可以对其进行纠错处理,可以对格式信息进行编码处理,进而得到QR二维码图形。这种图形可以在商品上进行打印或是作为防伪标识在商品上进行粘贴。
为让RSA算法应用安全性得到保证,在该系统中,做好了四项主要工作:
①大素数p、q为强素数。p1、p2、p1-1、p1+1、p2-1、p2+1为p+1与p-1的大素数因子。
②大素数p、q足够大。在该系统模块中,大素数p、q均为大于一百位二进制数。
④p-1、q-1最大公因子足够小。最大公因子的大小和其受到迭代供给概率为正比例关系,需要确保其最大公因子足够小。
数据库内容分析主要为在编码之前研究其主要内容,依照所输入的数据流内容可以对数据编码模式进行确认;数据编码主要是利用数据内容分析结果,对合适编码版本进行选择,首先,需要转化输入数据流为0、1位流,其次,需要分组处理位流,具体分组原则为一组8个,一码字为一组,最后,可以依照编码版本规则,在图像区域中填充具体数据;纠错处理主要为利用编码版本与纠错级别来分块处理二维码图形码字内容,利用Reed Solomon对每一块码字完成纠错计算工作,在数据块中填入纠错码;在模块布局中,需要将图像校正模块、定位符号、分隔符号、寻像图像与格式说明填入在版本规定固定区域中;在填充掩模中,主要是根据一定比例来对二维码图形黑白模块完成分配处理,保证内容模块中没有定义功能模块出现[3]。
(2)扫描解码认证模块
在扫描解码认证模块中,主要包含四个部分:
第一,图像预处理。图像预处理过程可以概括为:图像灰度化;滤波去噪;形态学闭运算去阴影;图像校正;边缘检测提取四条边线;图像灰度级调整和二值化。利用平均值法、加权平均法、最大值法、分量法可以进行灰度化处理;应用空域滤波与频域滤波方法可以对图像噪声进行处理,在本文中,主要采用非线性滤波去噪方法中的中值滤波方法,这种方法可以在对噪声进行去除的同时让边缘信息得到保留;利用灰度图像闭运算去阴影方式可以对阴影采集图像有效数据进行去除,利用灰度级调整,可以得出清晰图像;图像校正主要为对图像因畸变、拍摄角度而产生失真情况进行恢复的处理环节;利用黑白色模块属性,可以判断、识别二维码图像,利用固定阈值可以对图像进行二值化处理,在本文中,主黑白像素点灰度值分别设置为255、0。
第二,QR二维码解码。二维码解码与其编码具有相逆性,其流程可以概括为:识别深浅模块;译码格式信息;确认版本;消除掩模;恢复数据,纠错码字;错误检查;纠错;数据码字译码;输出结果。如果在错误检查中并无发现错误情况,那么可以直接进行数据码字译码。
第三,RSA解密。RSA私钥加密与其公钥解密流程具有相逆性,其流程主要为:二进制密文;转码;分组转码密文;公钥解密;模幂运算;输出明文。
第四,黑名单真伪校验。伪劣商品黑名单设置于二维码扫描软件之中,通过对商品二维码进行扫描,依照扫描信息解码软件,可以将此信息对比黑名单数据,如果该数据存在,那么表明该商品为伪劣产品,进而完成验证工作。
4 结论
综上所述,应用改进RSA算法,可以设计二维码加密生成模块与扫描解码认证模块,利用这两个主要模块,可以提升二维码防伪系统安全性,可以对大素数选取时间过长、模数易被分解问题进行解决,进而满足实用需求、安全需求、扩展需求及可靠需求。
[1]韩天悦,谢静.RSA加密解密算法及相关攻击方法[J].电脑与信息技术,2018.
[2]方文和,李国和,周晓明.面向Android的RSA算法优化与二维码加密防伪系统设计[J].计算机科学,2017.
[3]杨奕成.RSA加密解密算法的分析与实现[J].通讯世界,2017.