史恒, 雷瑩慧, 何正方, 資嬌艷, 陳雪連, 鄭喬坤
摘? 要: 區(qū)塊鏈有著廣泛的應(yīng)用,農(nóng)業(yè)物聯(lián)網(wǎng)使用的范疇主要在生產(chǎn)過程中的防偽領(lǐng)域。本文利用區(qū)塊鏈的非篡改性和可追溯性的特點(diǎn),構(gòu)建農(nóng)產(chǎn)品防偽可追溯體系。傳輸過程中采用SHA-256算法對(duì)信息加密形成信息摘要,使得系統(tǒng)內(nèi)部的數(shù)據(jù)具有了抗攻擊性和保密性的特點(diǎn),并結(jié)合二維碼技術(shù)實(shí)現(xiàn)可視化,完善生產(chǎn)廠商與消費(fèi)者之間的信任機(jī)制。
關(guān)鍵詞: 區(qū)塊鏈; 物聯(lián)網(wǎng); 防偽溯源; SHA-256加密算法
中圖分類號(hào):TP309.2? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2022)06-32-05
Application of blockchain technology in anti-counterfeiting traceability
of agricultural Internet of Things
Shi Heng, Lei Yinghui, He Zhengfang, Zi Jiaoyan, Chen Xuelian, Zheng Qiaokun
(School of Intelligent Science and Engineering, Yunnan Institute of Business and Technology, Kumming, Yunnan 651701, China)
Abstract: Blockchain has a wide range of applications, and the agricultural Internet of Things is mainly used in the field of anti-counterfeiting in the production process. Taking advantage of the non-tampering and traceability features of blockchain, an agricultural product anti-counterfeiting traceability system is constructed. In the transmission process, SHA-256 algorithm is used to encrypt the information to form an information summary, which makes the system data have the characteristics of anti-attack and confidentiality. Combined with the two-dimensional code technology, visualization is realized to improve the trust mechanism between manufacturers and consumers.
Key words: blockchain; Internet of Things; anti-counterfeiting traceability; SHA-256 encryption algorithm
0 引言
2018年年底,國(guó)家修訂了《食品安全法》,對(duì)食品安全監(jiān)督、食品安全全程追溯、食品網(wǎng)絡(luò)交易規(guī)范及食品標(biāo)簽標(biāo)注等作出具體規(guī)定。傳統(tǒng)農(nóng)業(yè)也需要依托大數(shù)據(jù)技術(shù),逐漸向現(xiàn)代化農(nóng)業(yè)轉(zhuǎn)型[1,2]。
Souza-Monteiro等將食品安全與可追溯性聯(lián)系起來,實(shí)現(xiàn)從農(nóng)場(chǎng)大門到消費(fèi)者餐桌,再反向溯源的過程[3]。為了實(shí)現(xiàn)農(nóng)產(chǎn)品質(zhì)量可監(jiān)控、全鏈條可追溯、提高供應(yīng)鏈的管理效率的研究與應(yīng)用正走向成熟。例如通過結(jié)合區(qū)塊鏈技術(shù),建立一個(gè)去中心化的農(nóng)產(chǎn)品溯源體系,提高農(nóng)產(chǎn)品的可追溯性、加強(qiáng)農(nóng)業(yè)供應(yīng)鏈的安全性和透明程度[4]。通過利用區(qū)塊鏈的不可篡改性和可追溯性,構(gòu)建農(nóng)產(chǎn)品防偽溯源系統(tǒng),實(shí)現(xiàn)了農(nóng)產(chǎn)品的生產(chǎn)過程數(shù)據(jù)可視化、防偽溯源,完善生產(chǎn)廠商與消費(fèi)者之間的信任機(jī)制,拾起消費(fèi)者對(duì)食品安全機(jī)制的信任。
農(nóng)產(chǎn)品收獲后,農(nóng)戶需要對(duì)其進(jìn)行出售,如果加工廠收購(gòu)了農(nóng)產(chǎn)品,對(duì)其加工,加工后的農(nóng)產(chǎn)品被分配到各個(gè)零售店售賣,這時(shí)消費(fèi)者利用手機(jī)掃描二維碼就可以獲得該商品的相關(guān)生產(chǎn)信息及產(chǎn)品哈希值,通過核對(duì)產(chǎn)品哈希值可以檢驗(yàn)該商品是正品還是假冒偽劣產(chǎn)品?;趨^(qū)塊鏈的可追溯性、不可偽造性,將農(nóng)產(chǎn)品生產(chǎn)的相關(guān)信息錄入、存儲(chǔ)到一個(gè)文檔中,通過對(duì)文檔進(jìn)行哈希運(yùn)算,生成哈希值,將文檔與哈希值共同發(fā)給加工廠,加工廠拿到農(nóng)產(chǎn)品信息,通過系統(tǒng)判斷,將哈希值進(jìn)行對(duì)比、校驗(yàn),確認(rèn)農(nóng)產(chǎn)品是否與原農(nóng)產(chǎn)品一致。
1 相關(guān)技術(shù)
1.1 農(nóng)業(yè)物聯(lián)網(wǎng)
農(nóng)業(yè)物聯(lián)網(wǎng)從本質(zhì)上講,是一套數(shù)控系統(tǒng)[5]。能夠?qū)崟r(shí)采集信息數(shù)據(jù)、遠(yuǎn)程控制、科學(xué)栽培、精準(zhǔn)布控、查詢、警告、問題反饋等,實(shí)現(xiàn)農(nóng)業(yè)數(shù)字化、自動(dòng)化、智能化。由此促進(jìn)農(nóng)業(yè)生產(chǎn)方式轉(zhuǎn)變,保障食品安全。不僅可以促成增產(chǎn)、改善品質(zhì)、加強(qiáng)農(nóng)戶與消費(fèi)者之間的連接,還可以提高經(jīng)濟(jì)效益。
1.2 區(qū)塊鏈技術(shù)
區(qū)塊鏈?zhǔn)欠植际綌?shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法等計(jì)算機(jī)技術(shù)的新型應(yīng)用[6]。它可用于農(nóng)產(chǎn)品防偽溯源領(lǐng)域,以便供應(yīng)鏈中的每一方都能提供有關(guān)其特定角色的可追溯性信息[7]。通過哈希值以順序相連的方式組合成的一種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證的不可篡改和不可偽造的分布式賬本[8]。其主要優(yōu)勢(shì)有:去中心化、可追溯性、匿名性、不可偽造、不可虛構(gòu)以及不可篡改。
2 區(qū)塊鏈在農(nóng)業(yè)物聯(lián)網(wǎng)中的防偽溯源
基于區(qū)塊鏈的農(nóng)業(yè)物聯(lián)網(wǎng)防偽溯源為推進(jìn)農(nóng)業(yè)數(shù)字化轉(zhuǎn)型,助力農(nóng)業(yè)及農(nóng)產(chǎn)品供應(yīng)鏈發(fā)展提供基礎(chǔ)支持。農(nóng)產(chǎn)品溯源系統(tǒng)成為介于生產(chǎn)者和消費(fèi)者之間的及時(shí)可靠的信息傳遞渠道,在農(nóng)產(chǎn)品流通環(huán)節(jié),通過對(duì)倉(cāng)儲(chǔ)和物流過程中的環(huán)境信息進(jìn)行實(shí)時(shí)監(jiān)測(cè),可以快速定位發(fā)生質(zhì)量問題的關(guān)鍵節(jié)點(diǎn),避免質(zhì)量糾紛[9]。本系統(tǒng)分別從農(nóng)產(chǎn)品生產(chǎn)企業(yè)、產(chǎn)品加工企業(yè)、運(yùn)出站點(diǎn)、零售店對(duì)農(nóng)產(chǎn)品的真?zhèn)芜M(jìn)行把控,優(yōu)化供應(yīng)鏈結(jié)構(gòu),提升消費(fèi)者的防偽查詢體驗(yàn),完善生產(chǎn)廠商與消費(fèi)者之間的信任機(jī)制。
以往的溯源系統(tǒng)中無法保證信息的真假和疏遠(yuǎn)消費(fèi)者是主要的兩個(gè)缺點(diǎn)[10]。通過利用區(qū)塊鏈的性質(zhì)創(chuàng)建區(qū)塊,將農(nóng)產(chǎn)品的產(chǎn)品名字、生產(chǎn)地信息、管理者信息、是否達(dá)到國(guó)家規(guī)定的安全指標(biāo)等信息輸入到創(chuàng)世區(qū)塊中,生成創(chuàng)世區(qū)塊,通過信息處理、SHA-256算法運(yùn)算出哈希值。將創(chuàng)世區(qū)塊的哈希值和內(nèi)容發(fā)給第二個(gè)信息寫入點(diǎn)(工廠),工廠在寫入之前對(duì)前一個(gè)區(qū)塊的內(nèi)容進(jìn)行驗(yàn)證,對(duì)內(nèi)容進(jìn)行同樣的哈希運(yùn)算對(duì)比哈希值,檢查是否有被篡改。工廠將前一個(gè)區(qū)塊的哈希值放入塊頭,將加工廠的信息寫入第二區(qū)塊的塊體中,并將第二個(gè)區(qū)塊的全部?jī)?nèi)容再進(jìn)行一次哈希運(yùn)算生成一個(gè)新的哈希值,將哈希值和內(nèi)容一起發(fā)給下一個(gè)信息寫入點(diǎn)(運(yùn)輸站點(diǎn)),進(jìn)行上述操作,最后將發(fā)送到銷售地,銷售地錄入銷售信息,檢驗(yàn)通過后使用二維碼技術(shù)生成二維碼,達(dá)到商品溯源的可視化。由于區(qū)塊鏈?zhǔn)且怨V垫溄拥?,所以?dāng)有人試圖修改當(dāng)前區(qū)塊的數(shù)據(jù)將會(huì)導(dǎo)致區(qū)塊的哈希值發(fā)生變化,而影響到后一個(gè)區(qū)塊。由此可以實(shí)現(xiàn)防偽溯源的目的。具體原理圖如圖1所示。
2.1 SHA-256數(shù)據(jù)加密及校驗(yàn)
SHA安全加密標(biāo)準(zhǔn),是至今國(guó)際上使用最為廣泛的較為安全的壓縮算法之一,由美國(guó) NIST和NSA兩個(gè)組織共同開發(fā)的,此算法于1993年5月11日被美國(guó)NIST和NSA設(shè)定為加密標(biāo)準(zhǔn)[11]。
SHA-256的哈希值的大小為256位,也稱之為信息摘要。其主要分為三部分:消息填充、消息字生成、輪函數(shù)迭代[12]。它可以將任意長(zhǎng)度的信息生成固定長(zhǎng)度的信息摘要,不同的數(shù)據(jù)生成相同的信息摘要的可能性極低,并且散列函數(shù)具有單向性,僅根據(jù)函數(shù)的輸出結(jié)果極難倒推出輸入的數(shù)據(jù)。通過對(duì)Chabaud-Joux攻擊SHA-256的分析,找到了SHA-256的一個(gè)部分碰撞,其復(fù)雜度為266,但無法找到SHA-256的一個(gè)整體碰撞,因此,SHA-256也能抵御現(xiàn)有的差分攻擊[13]。所以可以根據(jù)信息摘要來驗(yàn)證數(shù)據(jù)在傳輸過程當(dāng)中是否發(fā)生改變,即驗(yàn)證其完整性。
商品在不同階段產(chǎn)生的信息錄入,都將會(huì)產(chǎn)生相應(yīng)的信息摘要,并將商戶階段、加工階段、運(yùn)輸階段和零售階段錄入的信息輸出生成商品信息表,利用SHA-256對(duì)商品信息表進(jìn)行加密,由此實(shí)現(xiàn)防偽的過程。具體原理如圖2所示。
散列函數(shù)的輸入空間大于輸出空間,通過運(yùn)算之后形成信息的摘要,例如:input(ABC)通過哈希運(yùn)算之后得到256位的信息摘要,若改變了輸入的任何一個(gè)數(shù),甚至是一個(gè)標(biāo)點(diǎn)符號(hào),哈希值就會(huì)發(fā)生改變,據(jù)此我們就能追溯到是哪個(gè)位置發(fā)生了變化,從而實(shí)現(xiàn)哈希的可追溯和不可篡改性。
在哈希的運(yùn)算過程中將信息按照相應(yīng)的要求進(jìn)行轉(zhuǎn)換,填充分組,之后就開始進(jìn)行內(nèi)部迭代壓縮運(yùn)算。具體原理如圖3所示。
[CVi=f(CVi-1,Yi-1)(1≤i≤L)]? ⑴
在式⑴中,CV=鏈接值、Yi=第i個(gè)輸入數(shù)據(jù)塊、f=壓縮算法、n=散列碼的長(zhǎng)度、b=輸入塊的長(zhǎng)度。
SHA-256算法通過一些簡(jiǎn)單的變形,形成具體內(nèi)部運(yùn)算。具體原理如圖4所示。
2.1.1 輸入填充并附加長(zhǎng)度值
輸入消息或數(shù)據(jù),將消息或數(shù)據(jù)文件轉(zhuǎn)換為二進(jìn)制,令為M,將M填充到512bit的整倍數(shù),對(duì)M進(jìn)行填充得到M1,使得|M1|=448 mod 512,|M1|>|M|。如果|M|=448 mod 512,則|M1|=|M|+512bit,填充內(nèi)容為M+1+0(n)意為在M后加1再加n個(gè)0使其等于512bit。如果|M|≠448 mod 512bit,當(dāng)取模后|M|<448,則|M1|=|M|+n(n為448與M之間的差),填充內(nèi)容為1+(n-1)個(gè)0。當(dāng)取模后|M|>448,則|M1|=448+n+512-n(n為大于448的位數(shù))。
在填充完畢的消息M1后,追加64位的原始信息長(zhǎng)度得到M2,并將追加后的消息M2按512bit分割成n份,并迭代處理n次,最終獲得一個(gè)256bit的信息摘要M3[14]。具體原理如圖5所示。
(注:k位是數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制后的大小,存于A中。B中存放填充的字節(jié);C中存放的是原始信息的長(zhǎng)度,占據(jù)64位,A+B=448位,A+B+C=512位的整倍數(shù))
2.1.2 初始化緩沖區(qū)
緩沖區(qū)由八個(gè)32位的緩存器(A、B、C、D、E、F、G、H)組成,用于保存256位的中間結(jié)果和最終結(jié)果。在寄存器初始化后形成整數(shù)后,會(huì)把寄存器里面的整數(shù)按高有效位存放于低地址中。例如,將寄存器初始化成以下的32位的整數(shù),如表1所示。
對(duì)自然數(shù)中前8個(gè)質(zhì)數(shù)的平方根的小數(shù)部分取前32bit得到以上的常數(shù),填入8個(gè)緩沖區(qū)中。
在SHA-256算法中,K用到的64個(gè)常量是對(duì)自然數(shù)中前64個(gè)質(zhì)數(shù)(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97……)的立方根的小數(shù)部分取前32bit而來[15],如表2所示。
2.1.3 主處理
主處理是HASH算法的核心,每次處理512位的分組,進(jìn)行64次迭代運(yùn)算,具體方式如圖6所示。
初始化完成之后就按照式⑵⑶⑷⑸⑹⑺開始進(jìn)行內(nèi)部運(yùn)算。
[CHE,F(xiàn),G=E∧F?E∧G]? ⑵
[Σ1=E?>6E?>11E?>25]? ⑶
[MaA,B,C=A∧BA∧CB∧C]? ⑷
[Σ0=A?>2A?>13A?>22]? ⑸
[σ0X=S7XS18XSHR3X]? ⑹
[σ1X=S17XS19XSHR10X]? ⑺
具體如表3所示:
將填充好的信息分成n個(gè)512bit的小塊后,取出一塊將其分成16個(gè)32bit的字,記為w[0]、w[1]w[2]……w[15],其中前16個(gè)字直接由消息的第i塊分解得到,其余的字節(jié)由迭代公式⑻得到:
[Wt=σ1W(t-2)+Wt-7+σ0W(t-15)+W(t-16)] ⑻
進(jìn)行64次加密循環(huán)即可完成一次迭代。
通過公式計(jì)算得到新的(ABCDEFGH)
新A=Wt+Kt+CH+Σ1+H+Ma+Σ0;
新B=原A;新C=原B;新D=原C;
新E= Wt+Kt+CH+Σ1+H+D;
新F=原E;新G=原F;新H=原G
2.2 二維碼技術(shù)
長(zhǎng)期以來,假冒偽劣的產(chǎn)品都是市場(chǎng)經(jīng)濟(jì)的一大毒瘤,并嚴(yán)重阻礙了我國(guó)的經(jīng)濟(jì)發(fā)展。我國(guó)每年都需要花費(fèi)大量的人力、物力,用于打擊假冒偽劣產(chǎn)品。通過二維碼技術(shù)將農(nóng)產(chǎn)品加工和運(yùn)輸過程等信息的錄入,然后再進(jìn)行顯示核實(shí)[16]。在本文研究中二維碼主要是作為信息顯示的載體,其中包含產(chǎn)品名稱、產(chǎn)品生產(chǎn)企業(yè)信息、管理者名字、安全指標(biāo)情況所生成的商品信息表,信息經(jīng)過區(qū)塊鏈以及SHA-256算法對(duì)信息加密形成信息摘要,使得系統(tǒng)內(nèi)部的數(shù)據(jù)具有抗攻擊性和保密性的特點(diǎn)。具體示意圖如表4和表5所示。
3 總結(jié)
本文運(yùn)用了區(qū)塊鏈的不可篡改和可追溯性等的特點(diǎn),來構(gòu)建農(nóng)業(yè)物聯(lián)網(wǎng)的防偽溯源系統(tǒng),通過SHA—256算法生成信息摘要連接區(qū)塊,使得區(qū)塊鏈具備不可篡改和可追溯性的特點(diǎn),當(dāng)區(qū)塊里面的數(shù)據(jù)發(fā)生改變,會(huì)引起后續(xù)區(qū)塊的改變,據(jù)此可以監(jiān)控整個(gè)鏈條。SHA—256算法生成的信息摘要,提升了數(shù)據(jù)的可靠性和安全性,用戶通過掃描二維碼來獲取商品的信息,使用戶對(duì)商品真?zhèn)涡缘尿?yàn)證方式變得簡(jiǎn)便,生產(chǎn)商的產(chǎn)品得到了品牌保障,消費(fèi)者的權(quán)益也得到了保障,完善了生產(chǎn)商與消費(fèi)者之間的信任機(jī)制。
參考文獻(xiàn)(References):
[1] 新華社.中共中央國(guó)務(wù)院關(guān)于抓好“三農(nóng)”領(lǐng)域重點(diǎn)工作確保如期實(shí)現(xiàn)全面小康的意見
[2] 王少然,楊寶雙,張艷芝.“GS1+區(qū)塊鏈”實(shí)現(xiàn)生鮮產(chǎn)品冷鏈物流防偽溯源[J].保鮮與加工,2021,21(2)
[3] SOUZA-MONTEIRO D M, HOOKER N H. Food safety andtraceability [M]/US ProgramsAffecting Food and AgriculturalMarketing. Springer,2013:249-271
[4] 干梓悅,林欣瑤,周東.基于區(qū)塊鏈的農(nóng)產(chǎn)品溯源機(jī)制[J].農(nóng)村經(jīng)濟(jì)與科技,2021-01-20,32(1)
[5] 中國(guó)現(xiàn)代農(nóng)業(yè)暨農(nóng)業(yè)產(chǎn)業(yè)化高峰論壇 .“數(shù)字農(nóng)業(yè)”到底是什么?[EB/OL].(2020-12-22) [2021-08-17].http://www.amic.agri.cn/secondLevelPage/info/83/107112.
[6] 佚名.區(qū)塊鏈技術(shù)在有線電視網(wǎng)絡(luò)中的應(yīng)用探討[J].有線電視技術(shù),2017,24(7):16-19
[7] 陳騰.淺談區(qū)塊鏈防偽溯源[J].互聯(lián)網(wǎng)經(jīng)濟(jì),2018-12-19(12)
[8] 王文靜,梁張華.區(qū)塊鏈發(fā)展及應(yīng)用現(xiàn)狀[J].通信管理與技術(shù),2018,158(6):16-19
[9] 聶鵬程,張慧,耿洪良,等.農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)現(xiàn)狀與發(fā)展趨勢(shì)[J].浙江大學(xué)學(xué)報(bào)(農(nóng)業(yè)與生命科學(xué)版),2021, 47(2):135-146
[10] 劉丹,竇津津,胡建斌.基于“區(qū)塊鏈+物聯(lián)網(wǎng)”融合的農(nóng)產(chǎn)品溯源系統(tǒng)[J].軟件工程,2021,24(7)
[11] 何潤(rùn)民.單向Hash函數(shù)SHA-256的研究與改進(jìn)[D].西安理工大學(xué),2013
[12] 苗佳.雜湊算法 SM3/SHA256/SHA3 的 硬件設(shè)計(jì)與實(shí)現(xiàn)[D].清華大學(xué),2018-04-01
[13] 何潤(rùn)民,馬俊.SHA-256算法的安全性分析[J]. 電子設(shè)計(jì)工程,2014,22(3):31-33
[14] 劉政林,董馨,李東方.SHA-2(256,384,512)系列算法的硬件實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2012,29(12):51-54
[15] 宋世昕.基于區(qū)塊鏈和IPFS的去中心化電子存證系統(tǒng)的研究與實(shí)現(xiàn)[D].北京工業(yè)大學(xué),2019
[16] 聶鵬程,張慧,耿洪良,等.農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)現(xiàn)狀與發(fā)展趨勢(shì)[J].浙江大學(xué)學(xué)報(bào):農(nóng)業(yè)與生命科學(xué)版,2021,47(2):12