摘 要:随着人们生活水平提升,食品质量安全特别是生鲜水果蔬菜的质量安全受到普遍关注,社会各界都致力于农产品全过程质量安全管控,保障消费者食用安全,农产品追溯技术应运而生。本文运用改进RSA算法,结合二维码技术设计果蔬农产品追溯系统,重点分析了在果蔬农产品供应链流通过程中的重要环节以及重点溯源信息,应用改进RSA算法保障追溯系统核心数据安全,提升了农产品追溯系统的可靠性和易用性。
关键词:RSA算法;二维码;农产品;追溯系统
中图分类号:TP 39 文献标志码:A
农产品追溯系统是强化农产品质量安全管理和风险控制的重要工具,是指运用RFID、大数据和区块链等物联网技术追踪农产品在生产、加工和流通过程中的任何阶段的能力[1]。二维码技术作为追溯体系中的关键技术之一,广泛应用于各类产品的质量追溯中,由于制作二维码的成本较低,因此部分不法商家仿制二维码篡改数据达到以次充好的目的,无法保障二维码中的数据安全,普通的二维码查询只能做到“溯源”,无法满足消费者“防伪”的需求,目前信息加密的二维码须用专用App或设备配合使用,对普通消费者来说不具备便捷性。
综上所述,本文的主要工作是详细分析果蔬农产品供应链在流通过程中的重要环节以及重点溯源信息,结合消费者和企业需求,使用改进RSA算法对溯源关键信息进行加密,利用加密后数据生成二维码,防止农产品信息在流通过程中被篡改,防伪效果很好。本系统无须下载专用App,消费者查询溯源信息更便捷,保障农产品市场安全,提高公信度。
1 果蔬农产品追溯流程及关键技术分析
1.1 果蔬农产品追溯流程分析
农产品从“田地”到“餐桌”涉及供应链多个环节,其核心环节包括生产、加工、仓储、运输以及销售,参与的主体包括农户、中间商、加工企业、物流企业、市场监督部门和消费者,这些主体之间利用物流形成信息流,构成一个高度协作的网络[2]。分析相关企业的果蔬农产品供应链流程,结合现有果蔬农产品产业链,本文根据HACCP管理思想将果蔬农产品追溯系统的流程总结为生产、加工、仓储、运输和销售5个关键环节,如图1所示,具体介绍如下。
1.1.1 生产环节
此环节参与主体是农户,农户根据气候、土壤特性等条件选择适宜的果蔬作物栽种,在作物生产期间进行农药防治、施肥和除草等农事操作。果蔬作物成熟后进行采摘,对采摘的作物进行除杂、分类等基本的初加工。在追溯系统中,生产环节需要记录的信息包括作物名称、品种、保质期、环境信息(土壤的pH值、日照等)以及农事操作信息(作业类型、作业时间和作业人员等),根据《良好农业规范》规定,当使用化学品对土壤消毒时应记录所用化学品类别、消毒方式和操作时间;在施肥方面应记录施肥日期、化肥名称和施肥剂量;在农药方面应记录施药时间、施药种类、施药量、施药浓度和施药方式等,作业人员使用传感器设备将这些数据信息上传至系统数据库。
1.1.2 加工环节
该环节参与主体是加工企业,对产品进行清洗、烘干等加工处理,并送往有资质的检测机构进行检测。根据《水果蔬菜中农药最大残留标准》和《食品中卫生指标》,检测项目包括农药残留、重金属含量、微生物污染和营养成分等,检测完成后获取相关检测报告。由于果蔬农产品易腐烂,因此应当在适宜的温度、湿度环境中进行称重、分类和包装。加工环节需要采集的数据信息包括加工企业名称、环境温度、环境湿度以及产品质量检测报告等。
1.1.3 仓储环节
仓储是在果蔬农产品供应链流通过程中的重要环节,需要建立科学的管理体系,将不同种类的果蔬分类、分区存放,为种类不同的水果蔬菜设置不同的温度、湿度环境,定期对产品进行检查和清理,及时发现问题并处理。仓储环节的追溯信息主要包括仓储环境的温度、湿度和出库入库时间等。
1.1.4 运输环节
该环节参与主体是物流企业,运输环节涉及果蔬农产品供应链全过程,主要包括产品的装卸搬运和在途运输等。果蔬类农产品具有易变质、易腐烂的特点,物流运输条件要求苛刻,在物流运输过程中应尽量避免碰撞,同时需要保证运输车的温度、湿度在合理范围内,防止果蔬腐烂变质,降低果蔬类农产品的货损率。《易腐食品冷藏链技术要求——果蔬类》要求装运车辆符合食品卫生要求,车辆必须配有能连续记录并输出不可人为更改的温度、湿度数据的仪器,在装运前对果蔬质量进行检测,在运输过程中时刻将温度、湿度保持在文件要求的范围内。运输环节需要采集的数据包括运输车辆信息、车厢温湿度和运输时长等。
1.1.5 销售环节
该环节的参与主体是批发商和零售商,批发商调查市场需求,根据需求采买果蔬产品,将产品发送至各地区的批发商或零售商,零售商利用实体店等多种途径将产品销售给消费者。在销售过程中应记录经销企业、销售量等销售信息。根据相关农产品售卖标准验收采购的果蔬类农产品,销售环节的追溯信息主要包括销售企业名称、销售地、销售日期、销售批号、果蔬名称和果蔬来源等。
1.2 系统关键技术
1.2.1 二维码技术
二维码是以一种机器可读形式存储信息的编码格式,可以在多个方向上编码信息,因此与一维条形码相比,它可以存储更多的信息[3]。同时二维码中存储的信息可以被智能手机或PAD自带的摄像头扫描读取出来,对普通用户来说,使用二维码读取信息十分便捷。目前,二维码以其存储容量大、纠错能力强和生产成本低等多方面优势,广泛应用于各个行业,尤其是在产品质量追溯方面,使用二维码降低了追溯成本,为生产企业和消费者都带来了便利。
在质量追溯方面,利用二维码溯源的方式主要有2种,以本文研究的果蔬农产品追溯为例进行说明。第一种是文本型溯源二维码,将果蔬农产品供应链中产生的相关信息直接以文本形式存储于二维码中,这种溯源方式必须安装厂家指定的App进行扫码才能核验二维码中的信息;第二种是网址型溯源二维码,二维码内容是一个网络地址,在网络地址中存储果蔬农产品的溯源信息,包括生产日期、地址、检测报告和供应商等,消费者使用微信或支付宝的扫一扫功能便可以跳转至相应网页阅读信息。与第一种溯源码相比,第二种溯源码具有以下优势:1)信息量大。不仅包括文字和数字信息,还可以记录在生产过程中的图片和视频信息。2)方便性。消费者无须下载特定App,使用微信或支付宝扫描商品二维码就可以获得农产品追溯信息,提升消费者的使用体验,使系统具有易用性、快捷性和安全性。由于农产品供应链环节较多,需要追溯的数据信息量大,因此本研究采用第二类网址型溯源二维码来构建果蔬农产品追溯系统。
1.2.2 改进RSA算法
RSA算法是目前使用最广泛的非对称加密算法,是一种公钥密码学算法,该算法基于数学中的欧拉定理和大数分解难题,使用公钥和私钥2个不同的密钥来进行加密、解密。RSA算法的加密流程是接受信息的一方(下面称为乙方)生成一对密钥,即公钥和私钥,将公钥对外公开,私钥不能对外泄露,发送信息方(下面称为甲方)使用公钥对信息进行加密后再发送给乙方,乙方使用配对的私钥进行解密。传统RSA加密算法的安全性与随机生成的2个素数乘积n的正确分解有统计学意义[4],随着计算机CPU的运算能力越来越强,超级计算机不断更新迭代,2个大素数分解的难题可能已经解决,RSA算法的安全性受到威胁。针对传统RSA算法存在的安全缺陷,将2个素数的乘积n作为突破口,可以采用将n隐藏或者用其他值覆盖的思路对其进行优化,从源头上避免算法被恶意攻击。因此本文采用Mcintosh C[5]提出的3个素数因子的思路对RSA算法进行改进,引入新的N值代替原有的n值在密钥对中进行传输,将3个素数的乘积N作为生成密钥的依据,消除密钥中原有的n,正确分解3个素数的难度很大,能够很好地防止密钥被攻破,提升传统RSA算法的运算效率和安全性。
2 果蔬农产品追溯系统设计
本系统对果蔬农产品种植、收获、销售以及消费者购买的全过程进行详实记录,当发生食品质量安全问题时能够有效识别问题责任方,保障消费者食用安全。在果蔬农产品追溯系统中,将果蔬供应链各个环节数据信息采集汇总为溯源信息,消费者扫描生成的二维码可以查看果蔬产品的基本信息、种植情况以及相关检测报告等,对农产品进行全过程安全质量监管,向消费者提供可查询的产品相关信息,有效提升消费者对农产品市场的信任度。
2.1 总体架构设计
系统有果蔬农产品产业链各个环节重点信息采集、改进RSA算法加密解密、二维码生成以及数据库查询等功能。采用B/S模式,以C#为开发语言,采用ASP.net三层架构,分别为数据访问层、业务逻辑层和应用表现层,系统总体框架如图2所示。
使用SQL Server数据库设计并开发数据层,该数据库使用广泛,效果可靠,能够使系统性能稳定、高效,系统数据库中存储果蔬农产品从田地到餐桌全过程的数据信息,包括生产、加工、仓储、运输和销售5个环节,数据表为农产品信息表和用户信息表;业务逻辑层是系统结合业务和数据需求,利用数据库完成数据的增删改查功能、溯源ID编码功能和加密二维码生成等功能;在应用表现层中,利用菜单与操作界面完成系统业务功能,果蔬农产品供应链企业登录系统上传并管理农产品溯源信息,消费者使用手机扫描二维码查询溯源信息。
2.2 功能模块设计
本文研究的果蔬农产品追溯系统流程如图3所示,主要功能模块包括数据信息采集、加密解密以及二维码生成和识别。
2.2.1 信息采集和编码
分析现有果蔬农产品供应链流程,总结归纳如图1所示的产品追溯流程,本系统采集果蔬生产、加工、仓储、运输和销售5个环节的数据信息并进行管理,主要采集果蔬农产品的基本信息、产地以及储存运输状况,包括产品名称、种类、等级、收获时间、仓储和运输信息等。在每个环节的不同关键节点设置专人记录重要溯源信息,上传至系统数据库,必须保证上传的数据真实并尽量详细。
系统编码是在产品所有信息采集完成后,根据“一物一码”的原则设置产品唯一的溯源ID,利用系统运行的即时性设计溯源ID为16位时间序列。RSA算法有加密、解密时长会随加密内容增多而增加的缺点,因此将其设计为使用改进RSA算法对溯源ID进行加密,能够有效缩短加密、解密时长,提高系统运行效率。
2.2.2 信息加密
为避免发生不法商家恶意复制、篡改数据等现象,本系统采用改进RSA算法对溯源ID进行加密。改进RSA加密算法具体操作过程如下。
密钥生成:改进的RSA加密算法生成公钥和私钥,算法流程如图4所示。
选择3个素数p、q和r,这三者互不相等。计算三者乘积,如公式(1)所示。
n=p×q×r " " " (1)
由公式(1)计算欧拉函数,如公式(2)所示。
φ(n)=(p-1)(q-1)(r-1) " " " " (2)
式中:φ(n)为欧拉函数。
随机选择一个整数k1,使k1和φ(n)为互素数,如公式(3)所示。
GCD(k1,φ(n))=1且≤k1≤φ(n) " " (3)
式中:GCD(k1,φ(n))为求k1和φ(n)的最大公约数,最大公约数为1,即k1和φ(n)为互素数。
根据p、q和r的值,利用最大公约数计算新的正整数N,代替n,如公式(4)所示。
GCD(N,n)=1,n-max≤N≤n " "(4)
式中:max为p、q和r三者中的最大值。
利用取模运算计算私钥k2,如公式(5)所示。
k2=k1-1Mod(N) (5)
公钥为(k1,N),私钥为(k2,N)。
加密:利用私钥k2对果蔬农产品溯源ID进行加密,如公式(6)所示。
C=Mk2Mod(N) (6)
式中:M为加密前的明文,即溯源ID;C为加密后产生的密文。
解密:选择公钥k1来解密,如公式(7)所示。
M=Ck1Mod(N) (7)
比较使用传统RSA算法和使用改进RSA算法生成1024位密钥的时间,试验结果表明,传统算法生成1024位密钥所用时间为7456ms,改进RSA算法生成1024位密钥所用时间为4876ms,改进RSA算法提升了密钥生成效率。
2.2.3 二维码生成和识别
生成加密二维码的具体过程如下。1)系统生成一对公钥和私钥。2)利用私钥对16位溯源ID加密,生成溯源ID密文。3)考虑数据传输的可读性和系统兼容性,须对加密后的密文进行Base64编码后再传输,因此对溯源ID的密文进行Base64编码,生成系统可读的ASCII字符集。4)本系统使用谷歌推出的ZXing开源条码图形处理库来生成和解析二维码。二维码的编码由果蔬农产品溯源ID经过加密形成,宽度和高度根据需求自行设置,二维码内容是溯源信息的网页链接。将果蔬产品的名称、采收日期和生产地址等信息以及二维码打印在农产品质量追溯标签上,将标签粘贴在产品外包装上,质量追溯标签如图5所示。
当消费者想了解所购产品的溯源信息时,使用手机自带的摄像头扫描二维码,获取链接地址,访问链接的溯源信息,具体过程如下。1)消费者使用微信扫描质量追溯标签上的二维码。2)进入农产品追溯系统查询网页页面。3)系统后台对参数(经Base64运算后的密文ID)进行Base64逆运算,得到密文ID;公钥对密文ID进行解密,得到明文溯源ID。4)使用明文溯源ID查询所购产品的溯源信息,信息显示在网页中,消费者可以将这些信息与商品标签上的可见信息进行比对,如果不一致就说明商品信息有篡改,农产品可能存在问题;如果一致,那么消费者可以阅读所购产品的全部溯源信息。加密二维码生成和扫描二维码解码示意如图6所示。
3 结论
本文提出并设计了基于加密二维码技术的果蔬农产品追溯系统,针对追溯系统“防伪”功能存在的不足,重点分析改进RSA加密算法在二维码追溯系统中的应用原理及过程,加密技术的应用一定程度上保障了农产品产业链全过程数据信息的安全性。此外,目前多数追溯系统需要配合专用App或设备使用,于消费者而言不具备便捷性,本文提出将商品的重要信息和加密二维码一同打印在商品标签上,消费者无须下载专有的App,利用微信扫码便可验证信息的真伪为查询提供了便利,提高了消费者查询溯源信息的意愿,使农产品追溯系统的可使用性得到提升。
参考文献
[1]刘岩.基于食品安全的农产品供应链追溯系统研究综述[J].大庆师范学院学报,2023,43(6):53-59.
[2]杨信廷,王明亭,徐大明,等.基于区块链的农产品追溯系统信息存储模型与查询方法[J].农业工程学报,2019,35(22):323-330.
[3]吴晓庆,詹晓娟,胡峻豪.基于RFID和二维码的食品安全溯源系统设计与实现[J].高师理科学刊,2021,41(1):32-35,55.
[4]邵佳莉,张建科,吴远红.加密二维码在海产品质量溯源系统中的应用[J].现代食品,2023,29(19):92-96.
[5]MCINTOSH C.Finding prime numbers: miller rabin and beyond[J].
Furman university electronic journal of undergraduate mathematics,2016,12(1):1-4.