龍 萍 ,邢 鑌 ,胡小林 ,朱林全
(1.重慶交通大學 信息科學與工程學院,重慶 400074;2.重慶工業大數據創新中心有限公司,重慶 400707;3.工業大數據應用技術國家工程實驗室,重慶 400707)
隨著工業互聯網的不斷發展,智慧物流作為工業4.0 的重要發展方向,物流行業正在從傳統的運營模式向集中化、信息化和智能化方向發展。尤其是在云計算、大數據和人工智能等先進技術的驅動下,智慧物流行業的服務模式得到快速發展與實踐[1]。
物流供應鏈管理作為智慧物流的核心環節,其最終需實現進貨等待耗時少、領料指引準確且高效、生產進度透明化以及監控管理便捷等目標[2-3]。將上述目標歸結起來要解決的底層關鍵技術是如何提高數據應用的可信度。目前,業界主要聚焦在高精度數據分析算法的應用研究,對數據隱私保護算法的應用還處于起步階段。
然而,可信的數據交互環境,公開、透明的物流各環節,已發生訂單數據的不可篡改及物流各環節可溯源等方面,是當前物流供應鏈亟待解決的核心問題[4-6]。為簡化描述過程,本文以制造商將產品通過物流運輸送到顧客手中的過程(即物流價值鏈)作為示例,進行具體數據安全共享技術應用研究。
目前,針對物流價值鏈的數據完整性檢測、安全保護及溯源三方面還存在較多不足[7]。在數據完整性檢測和數據安全保護方面,當前大多數交易是基于第三方交易平臺進行處理,一旦第三方交易平臺發生物理損壞或遭到黑客攻擊,極易使物流訂單信息不準確,造成物流交付過程耗時長的問題[8]。在數據溯源方面,制造商與客戶交付訂單過程中,若出現商品來源、真偽以及破損等利益糾紛時,制造商很難為客戶提供商品的可信來源數據和真偽憑證[9-10]。此外,若運輸商品發生破損,想獲取物流運輸軌跡全過程的詳細數據(即商品物流價值鏈上數據的追溯)是困難的,因此也難以進行理賠操作。
借助區塊鏈技術的數字簽名、非對稱加密和共識機制等算法,實現了數據安全共享、不可篡改等特性[11],為解決上述問題提供了重要的技術支持。文獻[12]中,謝向軍探討了大數據環境下物流企業數據信息屏的安全保障體系設計要點,但未給出結合實際場景的可行應用策略。文獻[13]中,嚴霄蕙發現了我國新零售供應鏈中主要面臨交易、支付安全問題、物流信息與商品溯源等問題,未給出具體解決方案。文獻[14]中,羅杏玲對區塊鏈技術進行了概述,雖然提出了區塊鏈技術在物流領域中的應用策略,但沒有給出應用的具體步驟。
本文旨在將區塊鏈技術具體地應用到物流價值鏈數據的安全共享環節中,并提供數據的溯源功能。為此,提出一種基于區塊鏈的物流價值鏈數據安全共享技術。該技術將物流價值鏈數據與區塊鏈技術深入融合,實現價值鏈數據的安全共享,并解決了數據處理、存儲過程中的中心化和信任問題。
區塊鏈有助于解決當前物流業信息化、網絡化、智能化發展面臨的諸多難題,實現客戶、制造商和物流企業三者之間的可信互聯,對數據可信交換、安全共享等方面提供可靠性保護。下面將從相關技術基礎和數據安全共享方案構造與實現兩方面進行詳細介紹。
1.1.1 密碼學基礎
定義1(Hash 函數) Hash 函數能夠將輸入任意長度的明文M 映射為固定長度的Hash 值:

其中,k 表示固定序列長度。
定義2(非對稱加密算法) 非對稱加密算法是利用兩個不相同的密鑰,分別稱為公開密鑰(public key,pk)和私有密鑰(secret key,sk),對應實施加密和解密操作。其中,公開密鑰pk 對明文數據M 進行加密操作,得到密文C:

在執行解密操作時,只有使用與公鑰pk 對應的私有密鑰sk 才能正確解密,得到明文M:

由于加密和解密使用的是兩個不同的密鑰,因此這種算法叫做非對稱加密算法[15]。具體地,非對稱加密算法的加解密過程如圖1 所示。

圖1 非對稱加密算法示意圖
定義3(數字簽名) 數字簽名用于驗證數據的完整性,以判斷數據是否受到篡改、偽造。其中,使用私有密鑰sk 對明文數據M 進行加密計算,得到數字簽名Sig:

1.1.2 Merkle 樹
Merkle 樹是一種Hash 二叉樹,可以快速歸納和驗證復雜有規律數據的完整性,并提供數據的追溯功能[16]。具體地,Merkle 樹結構如圖2 所示。
從圖2 可以看出,Merkle 樹中虛線框是由底層葉子節點(即原始物流訂單數據的Hash 值)兩兩組合形成一個合并Hash 值組合,通過對其進行Hash計算便得到底層葉子節點對應的父親節點。其中,H(A,B)=H(H(A)||H(B))。依次類推,最終可得到一棵完整Merkle 樹。
1.1.3 區塊鏈原理
區塊鏈是由多個有序數據區塊串聯而成的鏈式結構,且每個區塊所包含的結構組成要素相同[17]。大體上來說,每個區塊包括區塊頭和區塊體兩部分,具體結構如圖3 所示。

圖2 Merkle 樹結構示意圖

圖3 區塊鏈結構圖
其中,區塊頭里還封裝了上一區塊的Merkle 根、隨機數、時間戳以及上鏈存儲的密文數據等信息[19];區塊體中則包含了交易數量和對應當前區塊的Merkle 根節點 (將作為下一個區塊頭中存儲的前區塊Merkle 根)[10,18]。
區塊鏈技術是一種通過結合分布式數據存儲、點對點傳輸、共識機制、加密算法等技術,實現數據一致存儲、難以篡改、防止抵賴等功能的去中心化分布式賬本技術[16]。基于區塊鏈技術的透明化、不可篡改等特點,能夠有效地解決當前物流價值鏈數據共享中面臨的數據篡改、數據溯源難等問題,有助于實現制造商、物流企業、個人用戶三方之間的數據可信互聯。
具體地,訂單驅動的物流數據交互示意圖如圖4所示。
物流價值鏈數據安全共享步驟如下:

圖4 訂單驅動的物流價值鏈數據交互示意圖
(1)用戶A 在信息系統上提交訂單,系統自動整合代表商品自身信息的原始數據MA,商品以及生成公、私鑰對(pk,sk)(其中(pk,sk)滿足pk×sk=1mod q,且q 為一個正素數)。系統利用Hash 函數對MA,商品進行Hash 計算,得到hA,商品:

接著,系統利用用戶A 的私鑰sk 對hA,商品進行加密計算,得到數字簽名SigA,商品:

類似地,利用用戶A 的公鑰pk 對MA,商品進行加密計算,得到密文CA,商品:

此時,將用戶A 的公、私鑰(pk,sk)、商品密文數據CA,商品和數字簽名SigA,商品發送給制造商。
(2)制造商利用接收到的公鑰pk 對數字簽名SigA,訂單進行解密計算:



則該系統通過信道傳輸的數據是完整的。
上述步驟(2)是制造商驗證數字簽名的一致性,以核實傳輸訂單數據的完整性,并生成物流訂單待運輸請求。若式(11)成立,則執行步驟(3)~(5);否則,反饋數據有錯誤指令,終止。
(3)制造商廣播物流訂單數據的待運輸訂單數據以及商品密文數據CA,商品給合作的物流公司,由合作的物流公司進行聯盟鏈數據資源協同,并匹配合適的物流車輛進行接單。
(4)若有物流車輛接受該待運輸訂單,該物流車輛將物流訂單轉換成其對應的Hash 值。在收集一段時間內的物流訂單數據Hash 值后,得到所有訂單數據的Merkle 根,并將其插入新生成的區塊體中。此后,再利用隨機預言機采樣一個隨機數,將隨機數、時間戳以及商品密文數據CA,商品存儲在新形成的區塊頭中。最后,把隨機數和新區塊在聯盟鏈內對所有合法節點進行廣播。
(5)聯盟鏈上的合法節點通過共識算法對接收到的隨機數進行共識驗證,若聯盟鏈上的所有合法節點通過共識算法后,均達成一致結果,則將驗證的新區塊寫入自己的區塊鏈中。
根據步驟(5),利用分布式共識算法向全網所有節點廣播,并完成共識。為清晰描述分布式廣播和共識過程,給出詳細過程示意圖,如圖5 所示。

圖5 分布式共識算法示意圖
新區塊鏈接到所有合法節點主鏈上的許可是需要獲得聯盟鏈上所有合法節點的確認,這個過程被稱作是共識機制。共識的過程:聯盟鏈上所有合法節點利用接收到的隨機數,計算其連上當前新區塊Merkle 根的哈希值,并判斷計算出的哈希值前n 位是否全為0,若所有合法節點計算結果均滿足條件,則通過共識驗證,將新區塊鏈分別接在各自的主鏈后。基于分布式共識算法在點對點網絡的基礎架構上,聯盟鏈中各節點之間地位平等且互不影響,以快速地完成聯盟鏈節點之間數據可信的共識驗證操作。重復上述過程,即完成區塊鏈系統的生成。
在數據共享方案的架構下,通過利用Hash 算法、非對稱加密算法、時間戳、P2P 技術及共識機制,實現了新區塊的形成和協同。接下來,將對數據安全共享方案的正確性進行證明。
前一節給出了數據共享方案具體的構造與實施,本節主要針對上述方案的正確性進行證明。接下來,將從數字簽名的正確性驗證和非對稱加密算法的密文數據正確解密兩部分進行開展。
定理1訂單系統將客戶A 的商品原始數據MA,商品和數字簽名SigA,商品發送給制造商B,制造商B在利用用戶A 公開密鑰pk 的情況下,能夠以接近100%的概率對數字簽名進行正確的完整性驗證。
證明:首先,根據用戶A 發布的商品原始數據MA,商品,訂單生成系統會利用Hash 函數計算其對應的Hash 值hA,商品=H(MA,商品)。接著,訂單生成系統使用用戶A 對應的私鑰sk 加密hA,商品,得到對應的數字簽名SigA,商品=Encsk(hA,商品)。此后,系統便將用戶A 的公鑰pk、商品原始數據MA,商品和數字簽名SigA,商品通過信道發送給制造商B。

若商品原始數據MA,商品和數字簽名SigA,商品中至少有一方數據是丟失(不完整或者被篡改)、偽造的,則不能通過數據的完整性檢測。具體地,數字簽名正確性驗證示意圖如圖6 所示。
定理2用戶A 在使用私有密鑰sk 的情況下,能夠對密文數據C 實現正確解密。
證明:根據非對稱加密算法需要產生公開密鑰pk 和私有密鑰sk 兩個不同的密鑰,其中,密文CA,商品=Encpk(MA,商品)是通過使用公開密鑰pk對商品數據M 加密得到的。公、私鑰對(pk,sk)滿足pk×sk=1mod q,且q 為一個正素數。因此,使用私有密鑰sk 對密文C 進行解密計算,得到:

證畢。
上一節給出了本文方案的正確性證明,本節將對所提方案的安全性進行分析。接下來,從Hash 函數、數字簽名以及時間戳機制3 方面對方案的安全性進行全面分析。
Hash 函數可以將任意輸入長度的數據通過壓縮計算后,使用Hash 值來替代表示。因此,區塊鏈上存儲的數據不是現實世界的交易數據,而是原始數據對應的Hash 值,并通過哈希二叉樹結構,將其簡化為Merkle 根記錄到區塊鏈中。另外,Hash 函數還存在以下優點[18]:
(1)不可逆性:僅知道Hash 值不能得出與其對應的明文數據M1;
(2)抗弱碰撞性:找到與給定明文數據M1具有相同Hash 值的另一個明文數據M2的概率是可忽略的;

圖6 數字簽名正確性驗證示意圖
(3)抗強碰撞性:給定明文數據M1和M2,它們具有相同Hash 值的概率是可忽略的。
根據上述3 個特點,Hash 函數能夠保障存儲在區塊鏈中的商品原始數據的機密性和安全性。
定理3非法用戶在沒有合法私鑰sk 的情況下,偽造正確數字簽名的成功概率:

該概率是可忽略的。
證明:根據非對稱加密算法,已知公鑰pk,破解私鑰sk 的困難性是可以歸約大整數分解的NP 困難問題,即在多項式時間內是難解的。因此,定理3的結論顯然成立。
定理4時間具有單向性,因此在已加蓋時間戳的文件數據上,非法用戶無法偽造對應的文件數據。
以上是顯然成立的。
本方案通過將區塊鏈技術應用于物流場景中,通過數字簽名、非對稱加密和Merkle 樹等算法,保障商品數據的完整性和機密性,提供物流訂單數據溯源功能,最終實現物流價值鏈數據的安全共享。其中,本方案使用的數字簽名和非對稱算法,在加、解密過程的時間復雜度分析結果如表1 所示。

表1 數字簽名和非對稱算法的時間復雜度分析結果
表1 中,數字簽名和非對稱算法在加密、解密過程的時間花銷均為線性時間復雜度O(k),在實際應用場景中具有可行性。
此外,本方案相較于業界成熟物流價值鏈數據管理應用,有以下3 點優勢:
(1)基于數字簽名技術的特性,能夠確保上鏈商品數據的完整性,提升數據的可信度,有利于縮短物流環節總耗時;
(2)基于非對稱加密算法、分布式存儲以及共識機制的特征,能夠給聯盟鏈上的參與節點提供公平可信的交易、支付環境,實現聯盟鏈上物流訂單數據的安全共享,使物流訂單數據實現高效、可信協同;
(3)在通過共識機制的驗證后,合法節點會在各自主鏈末端鏈接上新區塊,方便各節點根據區塊體中所包含的Merkle 根,對商品物流訂單信息進行溯源追蹤。
本文所提出的數據安全共享技術,解決了交易、支付環境不可信,物流數據容易丟失、篡改以及商品物流訂單溯源難等問題,為物流價值鏈數據安全共享環節中的區塊鏈技術應用,提供了有力的技術支持和實施步驟指導。
未來,本文所提技術可從工業應用與理論改進兩個角度著手實施進一步的研究。一方面,可將本技術封裝為工業微服務,應用于可信工業互聯網平臺建設,實現用戶安全需求與工業應用技術的高效融合。另一方面,隨著未來量子計算等新科技的發展,區塊鏈技術中基于確定性的非對稱加密算法有可能存在被破解的風險,因此,基于同態加密技術融合的抗量子非對稱加密算法,可以考慮融入到區塊鏈技術中,以抵抗量子計算攻擊。