龍 萍 ,邢 鑌 ,胡小林 ,朱林全
(1.重慶交通大學 信息科學與工程學院,重慶 400074;2.重慶工業(yè)大數(shù)據(jù)創(chuàng)新中心有限公司,重慶 400707;3.工業(yè)大數(shù)據(jù)應用技術國家工程實驗室,重慶 400707)
隨著工業(yè)互聯(lián)網(wǎng)的不斷發(fā)展,智慧物流作為工業(yè)4.0 的重要發(fā)展方向,物流行業(yè)正在從傳統(tǒng)的運營模式向集中化、信息化和智能化方向發(fā)展。尤其是在云計算、大數(shù)據(jù)和人工智能等先進技術的驅動下,智慧物流行業(yè)的服務模式得到快速發(fā)展與實踐[1]。
物流供應鏈管理作為智慧物流的核心環(huán)節(jié),其最終需實現(xiàn)進貨等待耗時少、領料指引準確且高效、生產(chǎn)進度透明化以及監(jiān)控管理便捷等目標[2-3]。將上述目標歸結起來要解決的底層關鍵技術是如何提高數(shù)據(jù)應用的可信度。目前,業(yè)界主要聚焦在高精度數(shù)據(jù)分析算法的應用研究,對數(shù)據(jù)隱私保護算法的應用還處于起步階段。
然而,可信的數(shù)據(jù)交互環(huán)境,公開、透明的物流各環(huán)節(jié),已發(fā)生訂單數(shù)據(jù)的不可篡改及物流各環(huán)節(jié)可溯源等方面,是當前物流供應鏈亟待解決的核心問題[4-6]。為簡化描述過程,本文以制造商將產(chǎn)品通過物流運輸送到顧客手中的過程(即物流價值鏈)作為示例,進行具體數(shù)據(jù)安全共享技術應用研究。
目前,針對物流價值鏈的數(shù)據(jù)完整性檢測、安全保護及溯源三方面還存在較多不足[7]。在數(shù)據(jù)完整性檢測和數(shù)據(jù)安全保護方面,當前大多數(shù)交易是基于第三方交易平臺進行處理,一旦第三方交易平臺發(fā)生物理損壞或遭到黑客攻擊,極易使物流訂單信息不準確,造成物流交付過程耗時長的問題[8]。在數(shù)據(jù)溯源方面,制造商與客戶交付訂單過程中,若出現(xiàn)商品來源、真?zhèn)我约捌茡p等利益糾紛時,制造商很難為客戶提供商品的可信來源數(shù)據(jù)和真?zhèn)螒{證[9-10]。此外,若運輸商品發(fā)生破損,想獲取物流運輸軌跡全過程的詳細數(shù)據(jù)(即商品物流價值鏈上數(shù)據(jù)的追溯)是困難的,因此也難以進行理賠操作。
借助區(qū)塊鏈技術的數(shù)字簽名、非對稱加密和共識機制等算法,實現(xiàn)了數(shù)據(jù)安全共享、不可篡改等特性[11],為解決上述問題提供了重要的技術支持。文獻[12]中,謝向軍探討了大數(shù)據(jù)環(huán)境下物流企業(yè)數(shù)據(jù)信息屏的安全保障體系設計要點,但未給出結合實際場景的可行應用策略。文獻[13]中,嚴霄蕙發(fā)現(xiàn)了我國新零售供應鏈中主要面臨交易、支付安全問題、物流信息與商品溯源等問題,未給出具體解決方案。文獻[14]中,羅杏玲對區(qū)塊鏈技術進行了概述,雖然提出了區(qū)塊鏈技術在物流領域中的應用策略,但沒有給出應用的具體步驟。
本文旨在將區(qū)塊鏈技術具體地應用到物流價值鏈數(shù)據(jù)的安全共享環(huán)節(jié)中,并提供數(shù)據(jù)的溯源功能。為此,提出一種基于區(qū)塊鏈的物流價值鏈數(shù)據(jù)安全共享技術。該技術將物流價值鏈數(shù)據(jù)與區(qū)塊鏈技術深入融合,實現(xiàn)價值鏈數(shù)據(jù)的安全共享,并解決了數(shù)據(jù)處理、存儲過程中的中心化和信任問題。
區(qū)塊鏈有助于解決當前物流業(yè)信息化、網(wǎng)絡化、智能化發(fā)展面臨的諸多難題,實現(xiàn)客戶、制造商和物流企業(yè)三者之間的可信互聯(lián),對數(shù)據(jù)可信交換、安全共享等方面提供可靠性保護。下面將從相關技術基礎和數(shù)據(jù)安全共享方案構造與實現(xiàn)兩方面進行詳細介紹。
1.1.1 密碼學基礎
定義1(Hash 函數(shù)) Hash 函數(shù)能夠將輸入任意長度的明文M 映射為固定長度的Hash 值:
其中,k 表示固定序列長度。
定義2(非對稱加密算法) 非對稱加密算法是利用兩個不相同的密鑰,分別稱為公開密鑰(public key,pk)和私有密鑰(secret key,sk),對應實施加密和解密操作。其中,公開密鑰pk 對明文數(shù)據(jù)M 進行加密操作,得到密文C:
在執(zhí)行解密操作時,只有使用與公鑰pk 對應的私有密鑰sk 才能正確解密,得到明文M:
由于加密和解密使用的是兩個不同的密鑰,因此這種算法叫做非對稱加密算法[15]。具體地,非對稱加密算法的加解密過程如圖1 所示。
圖1 非對稱加密算法示意圖
定義3(數(shù)字簽名) 數(shù)字簽名用于驗證數(shù)據(jù)的完整性,以判斷數(shù)據(jù)是否受到篡改、偽造。其中,使用私有密鑰sk 對明文數(shù)據(jù)M 進行加密計算,得到數(shù)字簽名Sig:
1.1.2 Merkle 樹
Merkle 樹是一種Hash 二叉樹,可以快速歸納和驗證復雜有規(guī)律數(shù)據(jù)的完整性,并提供數(shù)據(jù)的追溯功能[16]。具體地,Merkle 樹結構如圖2 所示。
從圖2 可以看出,Merkle 樹中虛線框是由底層葉子節(jié)點(即原始物流訂單數(shù)據(jù)的Hash 值)兩兩組合形成一個合并Hash 值組合,通過對其進行Hash計算便得到底層葉子節(jié)點對應的父親節(jié)點。其中,H(A,B)=H(H(A)||H(B))。依次類推,最終可得到一棵完整Merkle 樹。
1.1.3 區(qū)塊鏈原理
區(qū)塊鏈是由多個有序數(shù)據(jù)區(qū)塊串聯(lián)而成的鏈式結構,且每個區(qū)塊所包含的結構組成要素相同[17]。大體上來說,每個區(qū)塊包括區(qū)塊頭和區(qū)塊體兩部分,具體結構如圖3 所示。
圖2 Merkle 樹結構示意圖
圖3 區(qū)塊鏈結構圖
其中,區(qū)塊頭里還封裝了上一區(qū)塊的Merkle 根、隨機數(shù)、時間戳以及上鏈存儲的密文數(shù)據(jù)等信息[19];區(qū)塊體中則包含了交易數(shù)量和對應當前區(qū)塊的Merkle 根節(jié)點 (將作為下一個區(qū)塊頭中存儲的前區(qū)塊Merkle 根)[10,18]。
區(qū)塊鏈技術是一種通過結合分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等技術,實現(xiàn)數(shù)據(jù)一致存儲、難以篡改、防止抵賴等功能的去中心化分布式賬本技術[16]?;趨^(qū)塊鏈技術的透明化、不可篡改等特點,能夠有效地解決當前物流價值鏈數(shù)據(jù)共享中面臨的數(shù)據(jù)篡改、數(shù)據(jù)溯源難等問題,有助于實現(xiàn)制造商、物流企業(yè)、個人用戶三方之間的數(shù)據(jù)可信互聯(lián)。
具體地,訂單驅動的物流數(shù)據(jù)交互示意圖如圖4所示。
物流價值鏈數(shù)據(jù)安全共享步驟如下:
圖4 訂單驅動的物流價值鏈數(shù)據(jù)交互示意圖
(1)用戶A 在信息系統(tǒng)上提交訂單,系統(tǒng)自動整合代表商品自身信息的原始數(shù)據(jù)MA,商品以及生成公、私鑰對(pk,sk)(其中(pk,sk)滿足pk×sk=1mod q,且q 為一個正素數(shù))。系統(tǒng)利用Hash 函數(shù)對MA,商品進行Hash 計算,得到hA,商品:
接著,系統(tǒng)利用用戶A 的私鑰sk 對hA,商品進行加密計算,得到數(shù)字簽名SigA,商品:
類似地,利用用戶A 的公鑰pk 對MA,商品進行加密計算,得到密文CA,商品:
此時,將用戶A 的公、私鑰(pk,sk)、商品密文數(shù)據(jù)CA,商品和數(shù)字簽名SigA,商品發(fā)送給制造商。
(2)制造商利用接收到的公鑰pk 對數(shù)字簽名SigA,訂單進行解密計算:
則該系統(tǒng)通過信道傳輸?shù)臄?shù)據(jù)是完整的。
上述步驟(2)是制造商驗證數(shù)字簽名的一致性,以核實傳輸訂單數(shù)據(jù)的完整性,并生成物流訂單待運輸請求。若式(11)成立,則執(zhí)行步驟(3)~(5);否則,反饋數(shù)據(jù)有錯誤指令,終止。
(3)制造商廣播物流訂單數(shù)據(jù)的待運輸訂單數(shù)據(jù)以及商品密文數(shù)據(jù)CA,商品給合作的物流公司,由合作的物流公司進行聯(lián)盟鏈數(shù)據(jù)資源協(xié)同,并匹配合適的物流車輛進行接單。
(4)若有物流車輛接受該待運輸訂單,該物流車輛將物流訂單轉換成其對應的Hash 值。在收集一段時間內的物流訂單數(shù)據(jù)Hash 值后,得到所有訂單數(shù)據(jù)的Merkle 根,并將其插入新生成的區(qū)塊體中。此后,再利用隨機預言機采樣一個隨機數(shù),將隨機數(shù)、時間戳以及商品密文數(shù)據(jù)CA,商品存儲在新形成的區(qū)塊頭中。最后,把隨機數(shù)和新區(qū)塊在聯(lián)盟鏈內對所有合法節(jié)點進行廣播。
(5)聯(lián)盟鏈上的合法節(jié)點通過共識算法對接收到的隨機數(shù)進行共識驗證,若聯(lián)盟鏈上的所有合法節(jié)點通過共識算法后,均達成一致結果,則將驗證的新區(qū)塊寫入自己的區(qū)塊鏈中。
根據(jù)步驟(5),利用分布式共識算法向全網(wǎng)所有節(jié)點廣播,并完成共識。為清晰描述分布式廣播和共識過程,給出詳細過程示意圖,如圖5 所示。
圖5 分布式共識算法示意圖
新區(qū)塊鏈接到所有合法節(jié)點主鏈上的許可是需要獲得聯(lián)盟鏈上所有合法節(jié)點的確認,這個過程被稱作是共識機制。共識的過程:聯(lián)盟鏈上所有合法節(jié)點利用接收到的隨機數(shù),計算其連上當前新區(qū)塊Merkle 根的哈希值,并判斷計算出的哈希值前n 位是否全為0,若所有合法節(jié)點計算結果均滿足條件,則通過共識驗證,將新區(qū)塊鏈分別接在各自的主鏈后?;诜植际焦沧R算法在點對點網(wǎng)絡的基礎架構上,聯(lián)盟鏈中各節(jié)點之間地位平等且互不影響,以快速地完成聯(lián)盟鏈節(jié)點之間數(shù)據(jù)可信的共識驗證操作。重復上述過程,即完成區(qū)塊鏈系統(tǒng)的生成。
在數(shù)據(jù)共享方案的架構下,通過利用Hash 算法、非對稱加密算法、時間戳、P2P 技術及共識機制,實現(xiàn)了新區(qū)塊的形成和協(xié)同。接下來,將對數(shù)據(jù)安全共享方案的正確性進行證明。
前一節(jié)給出了數(shù)據(jù)共享方案具體的構造與實施,本節(jié)主要針對上述方案的正確性進行證明。接下來,將從數(shù)字簽名的正確性驗證和非對稱加密算法的密文數(shù)據(jù)正確解密兩部分進行開展。
定理1訂單系統(tǒng)將客戶A 的商品原始數(shù)據(jù)MA,商品和數(shù)字簽名SigA,商品發(fā)送給制造商B,制造商B在利用用戶A 公開密鑰pk 的情況下,能夠以接近100%的概率對數(shù)字簽名進行正確的完整性驗證。
證明:首先,根據(jù)用戶A 發(fā)布的商品原始數(shù)據(jù)MA,商品,訂單生成系統(tǒng)會利用Hash 函數(shù)計算其對應的Hash 值hA,商品=H(MA,商品)。接著,訂單生成系統(tǒng)使用用戶A 對應的私鑰sk 加密hA,商品,得到對應的數(shù)字簽名SigA,商品=Encsk(hA,商品)。此后,系統(tǒng)便將用戶A 的公鑰pk、商品原始數(shù)據(jù)MA,商品和數(shù)字簽名SigA,商品通過信道發(fā)送給制造商B。
若商品原始數(shù)據(jù)MA,商品和數(shù)字簽名SigA,商品中至少有一方數(shù)據(jù)是丟失(不完整或者被篡改)、偽造的,則不能通過數(shù)據(jù)的完整性檢測。具體地,數(shù)字簽名正確性驗證示意圖如圖6 所示。
定理2用戶A 在使用私有密鑰sk 的情況下,能夠對密文數(shù)據(jù)C 實現(xiàn)正確解密。
證明:根據(jù)非對稱加密算法需要產(chǎn)生公開密鑰pk 和私有密鑰sk 兩個不同的密鑰,其中,密文CA,商品=Encpk(MA,商品)是通過使用公開密鑰pk對商品數(shù)據(jù)M 加密得到的。公、私鑰對(pk,sk)滿足pk×sk=1mod q,且q 為一個正素數(shù)。因此,使用私有密鑰sk 對密文C 進行解密計算,得到:
證畢。
上一節(jié)給出了本文方案的正確性證明,本節(jié)將對所提方案的安全性進行分析。接下來,從Hash 函數(shù)、數(shù)字簽名以及時間戳機制3 方面對方案的安全性進行全面分析。
Hash 函數(shù)可以將任意輸入長度的數(shù)據(jù)通過壓縮計算后,使用Hash 值來替代表示。因此,區(qū)塊鏈上存儲的數(shù)據(jù)不是現(xiàn)實世界的交易數(shù)據(jù),而是原始數(shù)據(jù)對應的Hash 值,并通過哈希二叉樹結構,將其簡化為Merkle 根記錄到區(qū)塊鏈中。另外,Hash 函數(shù)還存在以下優(yōu)點[18]:
(1)不可逆性:僅知道Hash 值不能得出與其對應的明文數(shù)據(jù)M1;
(2)抗弱碰撞性:找到與給定明文數(shù)據(jù)M1具有相同Hash 值的另一個明文數(shù)據(jù)M2的概率是可忽略的;
圖6 數(shù)字簽名正確性驗證示意圖
(3)抗強碰撞性:給定明文數(shù)據(jù)M1和M2,它們具有相同Hash 值的概率是可忽略的。
根據(jù)上述3 個特點,Hash 函數(shù)能夠保障存儲在區(qū)塊鏈中的商品原始數(shù)據(jù)的機密性和安全性。
定理3非法用戶在沒有合法私鑰sk 的情況下,偽造正確數(shù)字簽名的成功概率:
該概率是可忽略的。
證明:根據(jù)非對稱加密算法,已知公鑰pk,破解私鑰sk 的困難性是可以歸約大整數(shù)分解的NP 困難問題,即在多項式時間內是難解的。因此,定理3的結論顯然成立。
定理4時間具有單向性,因此在已加蓋時間戳的文件數(shù)據(jù)上,非法用戶無法偽造對應的文件數(shù)據(jù)。
以上是顯然成立的。
本方案通過將區(qū)塊鏈技術應用于物流場景中,通過數(shù)字簽名、非對稱加密和Merkle 樹等算法,保障商品數(shù)據(jù)的完整性和機密性,提供物流訂單數(shù)據(jù)溯源功能,最終實現(xiàn)物流價值鏈數(shù)據(jù)的安全共享。其中,本方案使用的數(shù)字簽名和非對稱算法,在加、解密過程的時間復雜度分析結果如表1 所示。
表1 數(shù)字簽名和非對稱算法的時間復雜度分析結果
表1 中,數(shù)字簽名和非對稱算法在加密、解密過程的時間花銷均為線性時間復雜度O(k),在實際應用場景中具有可行性。
此外,本方案相較于業(yè)界成熟物流價值鏈數(shù)據(jù)管理應用,有以下3 點優(yōu)勢:
(1)基于數(shù)字簽名技術的特性,能夠確保上鏈商品數(shù)據(jù)的完整性,提升數(shù)據(jù)的可信度,有利于縮短物流環(huán)節(jié)總耗時;
(2)基于非對稱加密算法、分布式存儲以及共識機制的特征,能夠給聯(lián)盟鏈上的參與節(jié)點提供公平可信的交易、支付環(huán)境,實現(xiàn)聯(lián)盟鏈上物流訂單數(shù)據(jù)的安全共享,使物流訂單數(shù)據(jù)實現(xiàn)高效、可信協(xié)同;
(3)在通過共識機制的驗證后,合法節(jié)點會在各自主鏈末端鏈接上新區(qū)塊,方便各節(jié)點根據(jù)區(qū)塊體中所包含的Merkle 根,對商品物流訂單信息進行溯源追蹤。
本文所提出的數(shù)據(jù)安全共享技術,解決了交易、支付環(huán)境不可信,物流數(shù)據(jù)容易丟失、篡改以及商品物流訂單溯源難等問題,為物流價值鏈數(shù)據(jù)安全共享環(huán)節(jié)中的區(qū)塊鏈技術應用,提供了有力的技術支持和實施步驟指導。
未來,本文所提技術可從工業(yè)應用與理論改進兩個角度著手實施進一步的研究。一方面,可將本技術封裝為工業(yè)微服務,應用于可信工業(yè)互聯(lián)網(wǎng)平臺建設,實現(xiàn)用戶安全需求與工業(yè)應用技術的高效融合。另一方面,隨著未來量子計算等新科技的發(fā)展,區(qū)塊鏈技術中基于確定性的非對稱加密算法有可能存在被破解的風險,因此,基于同態(tài)加密技術融合的抗量子非對稱加密算法,可以考慮融入到區(qū)塊鏈技術中,以抵抗量子計算攻擊。