摘 要:隨著人們生活水平提升,食品質(zhì)量安全特別是生鮮水果蔬菜的質(zhì)量安全受到普遍關(guān)注,社會各界都致力于農(nóng)產(chǎn)品全過程質(zhì)量安全管控,保障消費者食用安全,農(nóng)產(chǎn)品追溯技術(shù)應(yīng)運而生。本文運用改進RSA算法,結(jié)合二維碼技術(shù)設(shè)計果蔬農(nóng)產(chǎn)品追溯系統(tǒng),重點分析了在果蔬農(nóng)產(chǎn)品供應(yīng)鏈流通過程中的重要環(huán)節(jié)以及重點溯源信息,應(yīng)用改進RSA算法保障追溯系統(tǒng)核心數(shù)據(jù)安全,提升了農(nóng)產(chǎn)品追溯系統(tǒng)的可靠性和易用性。
關(guān)鍵詞:RSA算法;二維碼;農(nóng)產(chǎn)品;追溯系統(tǒng)
中圖分類號:TP 39 文獻標(biāo)志碼:A
農(nóng)產(chǎn)品追溯系統(tǒng)是強化農(nóng)產(chǎn)品質(zhì)量安全管理和風(fēng)險控制的重要工具,是指運用RFID、大數(shù)據(jù)和區(qū)塊鏈等物聯(lián)網(wǎng)技術(shù)追蹤農(nóng)產(chǎn)品在生產(chǎn)、加工和流通過程中的任何階段的能力[1]。二維碼技術(shù)作為追溯體系中的關(guān)鍵技術(shù)之一,廣泛應(yīng)用于各類產(chǎn)品的質(zhì)量追溯中,由于制作二維碼的成本較低,因此部分不法商家仿制二維碼篡改數(shù)據(jù)達到以次充好的目的,無法保障二維碼中的數(shù)據(jù)安全,普通的二維碼查詢只能做到“溯源”,無法滿足消費者“防偽”的需求,目前信息加密的二維碼須用專用App或設(shè)備配合使用,對普通消費者來說不具備便捷性。
綜上所述,本文的主要工作是詳細分析果蔬農(nóng)產(chǎn)品供應(yīng)鏈在流通過程中的重要環(huán)節(jié)以及重點溯源信息,結(jié)合消費者和企業(yè)需求,使用改進RSA算法對溯源關(guān)鍵信息進行加密,利用加密后數(shù)據(jù)生成二維碼,防止農(nóng)產(chǎn)品信息在流通過程中被篡改,防偽效果很好。本系統(tǒng)無須下載專用App,消費者查詢溯源信息更便捷,保障農(nóng)產(chǎn)品市場安全,提高公信度。
1 果蔬農(nóng)產(chǎn)品追溯流程及關(guān)鍵技術(shù)分析
1.1 果蔬農(nóng)產(chǎn)品追溯流程分析
農(nóng)產(chǎn)品從“田地”到“餐桌”涉及供應(yīng)鏈多個環(huán)節(jié),其核心環(huán)節(jié)包括生產(chǎn)、加工、倉儲、運輸以及銷售,參與的主體包括農(nóng)戶、中間商、加工企業(yè)、物流企業(yè)、市場監(jiān)督部門和消費者,這些主體之間利用物流形成信息流,構(gòu)成一個高度協(xié)作的網(wǎng)絡(luò)[2]。分析相關(guān)企業(yè)的果蔬農(nóng)產(chǎn)品供應(yīng)鏈流程,結(jié)合現(xiàn)有果蔬農(nóng)產(chǎn)品產(chǎn)業(yè)鏈,本文根據(jù)HACCP管理思想將果蔬農(nóng)產(chǎn)品追溯系統(tǒng)的流程總結(jié)為生產(chǎn)、加工、倉儲、運輸和銷售5個關(guān)鍵環(huán)節(jié),如圖1所示,具體介紹如下。
1.1.1 生產(chǎn)環(huán)節(jié)
此環(huán)節(jié)參與主體是農(nóng)戶,農(nóng)戶根據(jù)氣候、土壤特性等條件選擇適宜的果蔬作物栽種,在作物生產(chǎn)期間進行農(nóng)藥防治、施肥和除草等農(nóng)事操作。果蔬作物成熟后進行采摘,對采摘的作物進行除雜、分類等基本的初加工。在追溯系統(tǒng)中,生產(chǎn)環(huán)節(jié)需要記錄的信息包括作物名稱、品種、保質(zhì)期、環(huán)境信息(土壤的pH值、日照等)以及農(nóng)事操作信息(作業(yè)類型、作業(yè)時間和作業(yè)人員等),根據(jù)《良好農(nóng)業(yè)規(guī)范》規(guī)定,當(dāng)使用化學(xué)品對土壤消毒時應(yīng)記錄所用化學(xué)品類別、消毒方式和操作時間;在施肥方面應(yīng)記錄施肥日期、化肥名稱和施肥劑量;在農(nóng)藥方面應(yīng)記錄施藥時間、施藥種類、施藥量、施藥濃度和施藥方式等,作業(yè)人員使用傳感器設(shè)備將這些數(shù)據(jù)信息上傳至系統(tǒng)數(shù)據(jù)庫。
1.1.2 加工環(huán)節(jié)
該環(huán)節(jié)參與主體是加工企業(yè),對產(chǎn)品進行清洗、烘干等加工處理,并送往有資質(zhì)的檢測機構(gòu)進行檢測。根據(jù)《水果蔬菜中農(nóng)藥最大殘留標(biāo)準(zhǔn)》和《食品中衛(wèi)生指標(biāo)》,檢測項目包括農(nóng)藥殘留、重金屬含量、微生物污染和營養(yǎng)成分等,檢測完成后獲取相關(guān)檢測報告。由于果蔬農(nóng)產(chǎn)品易腐爛,因此應(yīng)當(dāng)在適宜的溫度、濕度環(huán)境中進行稱重、分類和包裝。加工環(huán)節(jié)需要采集的數(shù)據(jù)信息包括加工企業(yè)名稱、環(huán)境溫度、環(huán)境濕度以及產(chǎn)品質(zhì)量檢測報告等。
1.1.3 倉儲環(huán)節(jié)
倉儲是在果蔬農(nóng)產(chǎn)品供應(yīng)鏈流通過程中的重要環(huán)節(jié),需要建立科學(xué)的管理體系,將不同種類的果蔬分類、分區(qū)存放,為種類不同的水果蔬菜設(shè)置不同的溫度、濕度環(huán)境,定期對產(chǎn)品進行檢查和清理,及時發(fā)現(xiàn)問題并處理。倉儲環(huán)節(jié)的追溯信息主要包括倉儲環(huán)境的溫度、濕度和出庫入庫時間等。
1.1.4 運輸環(huán)節(jié)
該環(huán)節(jié)參與主體是物流企業(yè),運輸環(huán)節(jié)涉及果蔬農(nóng)產(chǎn)品供應(yīng)鏈全過程,主要包括產(chǎn)品的裝卸搬運和在途運輸?shù)取9哳愞r(nóng)產(chǎn)品具有易變質(zhì)、易腐爛的特點,物流運輸條件要求苛刻,在物流運輸過程中應(yīng)盡量避免碰撞,同時需要保證運輸車的溫度、濕度在合理范圍內(nèi),防止果蔬腐爛變質(zhì),降低果蔬類農(nóng)產(chǎn)品的貨損率?!兑赘称防洳劓溂夹g(shù)要求——果蔬類》要求裝運車輛符合食品衛(wèi)生要求,車輛必須配有能連續(xù)記錄并輸出不可人為更改的溫度、濕度數(shù)據(jù)的儀器,在裝運前對果蔬質(zhì)量進行檢測,在運輸過程中時刻將溫度、濕度保持在文件要求的范圍內(nèi)。運輸環(huán)節(jié)需要采集的數(shù)據(jù)包括運輸車輛信息、車廂溫濕度和運輸時長等。
1.1.5 銷售環(huán)節(jié)
該環(huán)節(jié)的參與主體是批發(fā)商和零售商,批發(fā)商調(diào)查市場需求,根據(jù)需求采買果蔬產(chǎn)品,將產(chǎn)品發(fā)送至各地區(qū)的批發(fā)商或零售商,零售商利用實體店等多種途徑將產(chǎn)品銷售給消費者。在銷售過程中應(yīng)記錄經(jīng)銷企業(yè)、銷售量等銷售信息。根據(jù)相關(guān)農(nóng)產(chǎn)品售賣標(biāo)準(zhǔn)驗收采購的果蔬類農(nóng)產(chǎn)品,銷售環(huán)節(jié)的追溯信息主要包括銷售企業(yè)名稱、銷售地、銷售日期、銷售批號、果蔬名稱和果蔬來源等。
1.2 系統(tǒng)關(guān)鍵技術(shù)
1.2.1 二維碼技術(shù)
二維碼是以一種機器可讀形式存儲信息的編碼格式,可以在多個方向上編碼信息,因此與一維條形碼相比,它可以存儲更多的信息[3]。同時二維碼中存儲的信息可以被智能手機或PAD自帶的攝像頭掃描讀取出來,對普通用戶來說,使用二維碼讀取信息十分便捷。目前,二維碼以其存儲容量大、糾錯能力強和生產(chǎn)成本低等多方面優(yōu)勢,廣泛應(yīng)用于各個行業(yè),尤其是在產(chǎn)品質(zhì)量追溯方面,使用二維碼降低了追溯成本,為生產(chǎn)企業(yè)和消費者都帶來了便利。
在質(zhì)量追溯方面,利用二維碼溯源的方式主要有2種,以本文研究的果蔬農(nóng)產(chǎn)品追溯為例進行說明。第一種是文本型溯源二維碼,將果蔬農(nóng)產(chǎn)品供應(yīng)鏈中產(chǎn)生的相關(guān)信息直接以文本形式存儲于二維碼中,這種溯源方式必須安裝廠家指定的App進行掃碼才能核驗二維碼中的信息;第二種是網(wǎng)址型溯源二維碼,二維碼內(nèi)容是一個網(wǎng)絡(luò)地址,在網(wǎng)絡(luò)地址中存儲果蔬農(nóng)產(chǎn)品的溯源信息,包括生產(chǎn)日期、地址、檢測報告和供應(yīng)商等,消費者使用微信或支付寶的掃一掃功能便可以跳轉(zhuǎn)至相應(yīng)網(wǎng)頁閱讀信息。與第一種溯源碼相比,第二種溯源碼具有以下優(yōu)勢:1)信息量大。不僅包括文字和數(shù)字信息,還可以記錄在生產(chǎn)過程中的圖片和視頻信息。2)方便性。消費者無須下載特定App,使用微信或支付寶掃描商品二維碼就可以獲得農(nóng)產(chǎn)品追溯信息,提升消費者的使用體驗,使系統(tǒng)具有易用性、快捷性和安全性。由于農(nóng)產(chǎn)品供應(yīng)鏈環(huán)節(jié)較多,需要追溯的數(shù)據(jù)信息量大,因此本研究采用第二類網(wǎng)址型溯源二維碼來構(gòu)建果蔬農(nóng)產(chǎn)品追溯系統(tǒng)。
1.2.2 改進RSA算法
RSA算法是目前使用最廣泛的非對稱加密算法,是一種公鑰密碼學(xué)算法,該算法基于數(shù)學(xué)中的歐拉定理和大數(shù)分解難題,使用公鑰和私鑰2個不同的密鑰來進行加密、解密。RSA算法的加密流程是接受信息的一方(下面稱為乙方)生成一對密鑰,即公鑰和私鑰,將公鑰對外公開,私鑰不能對外泄露,發(fā)送信息方(下面稱為甲方)使用公鑰對信息進行加密后再發(fā)送給乙方,乙方使用配對的私鑰進行解密。傳統(tǒng)RSA加密算法的安全性與隨機生成的2個素數(shù)乘積n的正確分解有統(tǒng)計學(xué)意義[4],隨著計算機CPU的運算能力越來越強,超級計算機不斷更新迭代,2個大素數(shù)分解的難題可能已經(jīng)解決,RSA算法的安全性受到威脅。針對傳統(tǒng)RSA算法存在的安全缺陷,將2個素數(shù)的乘積n作為突破口,可以采用將n隱藏或者用其他值覆蓋的思路對其進行優(yōu)化,從源頭上避免算法被惡意攻擊。因此本文采用Mcintosh C[5]提出的3個素數(shù)因子的思路對RSA算法進行改進,引入新的N值代替原有的n值在密鑰對中進行傳輸,將3個素數(shù)的乘積N作為生成密鑰的依據(jù),消除密鑰中原有的n,正確分解3個素數(shù)的難度很大,能夠很好地防止密鑰被攻破,提升傳統(tǒng)RSA算法的運算效率和安全性。
2 果蔬農(nóng)產(chǎn)品追溯系統(tǒng)設(shè)計
本系統(tǒng)對果蔬農(nóng)產(chǎn)品種植、收獲、銷售以及消費者購買的全過程進行詳實記錄,當(dāng)發(fā)生食品質(zhì)量安全問題時能夠有效識別問題責(zé)任方,保障消費者食用安全。在果蔬農(nóng)產(chǎn)品追溯系統(tǒng)中,將果蔬供應(yīng)鏈各個環(huán)節(jié)數(shù)據(jù)信息采集匯總為溯源信息,消費者掃描生成的二維碼可以查看果蔬產(chǎn)品的基本信息、種植情況以及相關(guān)檢測報告等,對農(nóng)產(chǎn)品進行全過程安全質(zhì)量監(jiān)管,向消費者提供可查詢的產(chǎn)品相關(guān)信息,有效提升消費者對農(nóng)產(chǎn)品市場的信任度。
2.1 總體架構(gòu)設(shè)計
系統(tǒng)有果蔬農(nóng)產(chǎn)品產(chǎn)業(yè)鏈各個環(huán)節(jié)重點信息采集、改進RSA算法加密解密、二維碼生成以及數(shù)據(jù)庫查詢等功能。采用B/S模式,以C#為開發(fā)語言,采用ASP.net三層架構(gòu),分別為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和應(yīng)用表現(xiàn)層,系統(tǒng)總體框架如圖2所示。
使用SQL Server數(shù)據(jù)庫設(shè)計并開發(fā)數(shù)據(jù)層,該數(shù)據(jù)庫使用廣泛,效果可靠,能夠使系統(tǒng)性能穩(wěn)定、高效,系統(tǒng)數(shù)據(jù)庫中存儲果蔬農(nóng)產(chǎn)品從田地到餐桌全過程的數(shù)據(jù)信息,包括生產(chǎn)、加工、倉儲、運輸和銷售5個環(huán)節(jié),數(shù)據(jù)表為農(nóng)產(chǎn)品信息表和用戶信息表;業(yè)務(wù)邏輯層是系統(tǒng)結(jié)合業(yè)務(wù)和數(shù)據(jù)需求,利用數(shù)據(jù)庫完成數(shù)據(jù)的增刪改查功能、溯源ID編碼功能和加密二維碼生成等功能;在應(yīng)用表現(xiàn)層中,利用菜單與操作界面完成系統(tǒng)業(yè)務(wù)功能,果蔬農(nóng)產(chǎn)品供應(yīng)鏈企業(yè)登錄系統(tǒng)上傳并管理農(nóng)產(chǎn)品溯源信息,消費者使用手機掃描二維碼查詢溯源信息。
2.2 功能模塊設(shè)計
本文研究的果蔬農(nóng)產(chǎn)品追溯系統(tǒng)流程如圖3所示,主要功能模塊包括數(shù)據(jù)信息采集、加密解密以及二維碼生成和識別。
2.2.1 信息采集和編碼
分析現(xiàn)有果蔬農(nóng)產(chǎn)品供應(yīng)鏈流程,總結(jié)歸納如圖1所示的產(chǎn)品追溯流程,本系統(tǒng)采集果蔬生產(chǎn)、加工、倉儲、運輸和銷售5個環(huán)節(jié)的數(shù)據(jù)信息并進行管理,主要采集果蔬農(nóng)產(chǎn)品的基本信息、產(chǎn)地以及儲存運輸狀況,包括產(chǎn)品名稱、種類、等級、收獲時間、倉儲和運輸信息等。在每個環(huán)節(jié)的不同關(guān)鍵節(jié)點設(shè)置專人記錄重要溯源信息,上傳至系統(tǒng)數(shù)據(jù)庫,必須保證上傳的數(shù)據(jù)真實并盡量詳細。
系統(tǒng)編碼是在產(chǎn)品所有信息采集完成后,根據(jù)“一物一碼”的原則設(shè)置產(chǎn)品唯一的溯源ID,利用系統(tǒng)運行的即時性設(shè)計溯源ID為16位時間序列。RSA算法有加密、解密時長會隨加密內(nèi)容增多而增加的缺點,因此將其設(shè)計為使用改進RSA算法對溯源ID進行加密,能夠有效縮短加密、解密時長,提高系統(tǒng)運行效率。
2.2.2 信息加密
為避免發(fā)生不法商家惡意復(fù)制、篡改數(shù)據(jù)等現(xiàn)象,本系統(tǒng)采用改進RSA算法對溯源ID進行加密。改進RSA加密算法具體操作過程如下。
密鑰生成:改進的RSA加密算法生成公鑰和私鑰,算法流程如圖4所示。
選擇3個素數(shù)p、q和r,這三者互不相等。計算三者乘積,如公式(1)所示。
n=p×q×r " " " (1)
由公式(1)計算歐拉函數(shù),如公式(2)所示。
φ(n)=(p-1)(q-1)(r-1) " " " " (2)
式中:φ(n)為歐拉函數(shù)。
隨機選擇一個整數(shù)k1,使k1和φ(n)為互素數(shù),如公式(3)所示。
GCD(k1,φ(n))=1且≤k1≤φ(n) " " (3)
式中:GCD(k1,φ(n))為求k1和φ(n)的最大公約數(shù),最大公約數(shù)為1,即k1和φ(n)為互素數(shù)。
根據(jù)p、q和r的值,利用最大公約數(shù)計算新的正整數(shù)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對果蔬農(nóng)產(chǎn)品溯源ID進行加密,如公式(6)所示。
C=Mk2Mod(N) (6)
式中:M為加密前的明文,即溯源ID;C為加密后產(chǎn)生的密文。
解密:選擇公鑰k1來解密,如公式(7)所示。
M=Ck1Mod(N) (7)
比較使用傳統(tǒng)RSA算法和使用改進RSA算法生成1024位密鑰的時間,試驗結(jié)果表明,傳統(tǒng)算法生成1024位密鑰所用時間為7456ms,改進RSA算法生成1024位密鑰所用時間為4876ms,改進RSA算法提升了密鑰生成效率。
2.2.3 二維碼生成和識別
生成加密二維碼的具體過程如下。1)系統(tǒng)生成一對公鑰和私鑰。2)利用私鑰對16位溯源ID加密,生成溯源ID密文。3)考慮數(shù)據(jù)傳輸?shù)目勺x性和系統(tǒng)兼容性,須對加密后的密文進行Base64編碼后再傳輸,因此對溯源ID的密文進行Base64編碼,生成系統(tǒng)可讀的ASCII字符集。4)本系統(tǒng)使用谷歌推出的ZXing開源條碼圖形處理庫來生成和解析二維碼。二維碼的編碼由果蔬農(nóng)產(chǎn)品溯源ID經(jīng)過加密形成,寬度和高度根據(jù)需求自行設(shè)置,二維碼內(nèi)容是溯源信息的網(wǎng)頁鏈接。將果蔬產(chǎn)品的名稱、采收日期和生產(chǎn)地址等信息以及二維碼打印在農(nóng)產(chǎn)品質(zhì)量追溯標(biāo)簽上,將標(biāo)簽粘貼在產(chǎn)品外包裝上,質(zhì)量追溯標(biāo)簽如圖5所示。
當(dāng)消費者想了解所購產(chǎn)品的溯源信息時,使用手機自帶的攝像頭掃描二維碼,獲取鏈接地址,訪問鏈接的溯源信息,具體過程如下。1)消費者使用微信掃描質(zhì)量追溯標(biāo)簽上的二維碼。2)進入農(nóng)產(chǎn)品追溯系統(tǒng)查詢網(wǎng)頁頁面。3)系統(tǒng)后臺對參數(shù)(經(jīng)Base64運算后的密文ID)進行Base64逆運算,得到密文ID;公鑰對密文ID進行解密,得到明文溯源ID。4)使用明文溯源ID查詢所購產(chǎn)品的溯源信息,信息顯示在網(wǎng)頁中,消費者可以將這些信息與商品標(biāo)簽上的可見信息進行比對,如果不一致就說明商品信息有篡改,農(nóng)產(chǎn)品可能存在問題;如果一致,那么消費者可以閱讀所購產(chǎn)品的全部溯源信息。加密二維碼生成和掃描二維碼解碼示意如圖6所示。
3 結(jié)論
本文提出并設(shè)計了基于加密二維碼技術(shù)的果蔬農(nóng)產(chǎn)品追溯系統(tǒng),針對追溯系統(tǒng)“防偽”功能存在的不足,重點分析改進RSA加密算法在二維碼追溯系統(tǒng)中的應(yīng)用原理及過程,加密技術(shù)的應(yīng)用一定程度上保障了農(nóng)產(chǎn)品產(chǎn)業(yè)鏈全過程數(shù)據(jù)信息的安全性。此外,目前多數(shù)追溯系統(tǒng)需要配合專用App或設(shè)備使用,于消費者而言不具備便捷性,本文提出將商品的重要信息和加密二維碼一同打印在商品標(biāo)簽上,消費者無須下載專有的App,利用微信掃碼便可驗證信息的真?zhèn)螢椴樵兲峁┝吮憷?,提高了消費者查詢溯源信息的意愿,使農(nóng)產(chǎn)品追溯系統(tǒng)的可使用性得到提升。
參考文獻
[1]劉巖.基于食品安全的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)研究綜述[J].大慶師范學(xué)院學(xué)報,2023,43(6):53-59.
[2]楊信廷,王明亭,徐大明,等.基于區(qū)塊鏈的農(nóng)產(chǎn)品追溯系統(tǒng)信息存儲模型與查詢方法[J].農(nóng)業(yè)工程學(xué)報,2019,35(22):323-330.
[3]吳曉慶,詹曉娟,胡峻豪.基于RFID和二維碼的食品安全溯源系統(tǒng)設(shè)計與實現(xiàn)[J].高師理科學(xué)刊,2021,41(1):32-35,55.
[4]邵佳莉,張建科,吳遠紅.加密二維碼在海產(chǎn)品質(zhì)量溯源系統(tǒng)中的應(yīng)用[J].現(xiàn)代食品,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.