999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ECC-ZKP的農產品供應鏈可控身份管理與認證模型

2022-12-31 00:00:00王金威張紹華李超
計算機應用研究 2022年10期

摘要:基于區塊鏈的農產品供應鏈中,當參與主體數量規模越來越大時,節點與企業之間的1:1匹配關系將造成節點數量眾多,從而造成網絡開銷大、共識效率低等問題。針對這些問題,引入中間件使得節點與企業之間1:1關系變為1:n的關系,對所涉及到的企業身份管理以及相互之間的認證,提出一種基于ECC-ZKP(elliptic curve cryptosystem-zero—knowledge proof)的可控身份管理與認證模型,實現身份的可控管理和完成可信交易前所需要的身份認證。通過模型分析和仿真實驗分析結果表明,該模型能夠提供較高的安全性,能夠有效進行身份的管理和認證,且節點與企業之間1:n關系相比較于1:1關系減少了網絡開銷并提高了共識效率。

關鍵詞:橢圓曲線加密算法;零知識證明;農產品供應鏈;身份管理與認證

中圖分類號:TP391文獻標志碼:A

文章編號:1001-3695(2022)10-004-2916-07

doi:10.19734/j.issn.1001-3695.2022.04.0144

Controllable identity management and authentication model for

ECC-ZKP-based agricultural products supply chain

Wang Jinwei1,2,Zhang Shaohua3,Li Chao2

(1.College of Information,Shanghai Ocean University,Shanghai 201306,China;2.Shanghai Development Center of Computer Software Technology,Shanghai 201112,China; 3.Shanghai Business School,Shanghai 200235,China)

Abstract:In the agricultural supply chain based on block chain,when the number of participants becomes larger and larger,the 1:1 matching relationship between nodes and enterprises will cause a large number of nodes,resulting in high network overhead and low consensus efficiency.In response to these problems,this paper introduced a middleware to change the 1:1 relationship between nodes and enterprises into a 1:n relationship.For the enterprise identity management and mutual authentication,this paper proposed a controllable identity management and authentication model based on ECC-ZKP(elliptic curve cryptosystem-zero-knowledge proof) to realize controllable identity management and identity authentication before completing trusted transactions.Through model analysis and simulation experiments show that the model can provide high security,can effectively carry out identity management and certification,and compared with 1:1 relationship,the 1:n relationship between nodes and enterprises reduces network overhead and improves consensus efficiency.

Key words:elliptic curve encryption algorithm;zero knowledge proof;agricultural supply chain;identity management and authentication

0引言

農產品是人們日常生活中的必需品,農產品的安全與否對人們的身體健康有著直接影響。而近年來,因為農藥殘留超標和防腐劑不科學使用等引起的農產品安全事件時有發生[1,2],引起了整個社會的關注,同時也讓消費者對農產品質量安全都保持著較高警惕。因為傳統農產品供應鏈中各環節提供的數據信息零散、模糊且各環節間的信息不對稱,造成了消費者對市場上農產品的信賴度逐步下降。農產品溯源系統的出現給消費者提供了一個農產品質量可查詢的窗口。農產品溯源系統會對農產品從種植、開摘、加工、物流、貯藏和銷售等整個供應鏈進行跟蹤并進行記錄,消費者可以通過溯源系統查詢相關信息來確保農產品的安全性,當發生了農產品質量安全問題,可以通過溯源系統找到問題根源并收回劣品和解決安全隱患問題[3]。傳統溯源系統采用的是中心化管理,會存在數據易竄改的問題,提供給消費者的信息可信度不高,而且單節點數據庫遇到故障,數據將會丟失,從而造成無法溯源[4]。

區塊鏈技術作為一種分布式數據存儲技術,具有去中心、數據不可竄改、可追溯等特點,正是這些特點賦予了數據價值,使得數據是可信任的[5]。區塊鏈技術和溯源系統相結合,可以解決傳統溯源系統數據不可信、中心化管理等問題[6,7]。國內外也有大量關于區塊鏈技術應用于農產品供應鏈溯源場景的相關研究,文獻[8]基于以太坊和智能合約[9]執行交易,保證全球貿易中大豆供應鏈的可追溯性,文獻[10]基于Hyperledger fabric構建了谷物可追溯系統。另外有些研究是為了讓區塊鏈技術更好地應用于供應鏈溯源場景,根據供應鏈溯源應用場景的特點進行優化。比如文獻[11]提出鏈上存儲溯源原數據的引用和原數據的索引,通過智能合約調取鏈下存儲在私有云或公有云平臺的原數據,以此來解決節點存儲壓力大的問題。文獻[12~14]通過把追溯原數據存儲在星際文件系統(inter planetary file system,IPFS)上,從IPFS返回的文件地址存儲在鏈上來緩解節點存儲壓力。文獻[15]提出“數據庫+區塊鏈”的鏈上鏈下追溯信息雙存儲設計,本地數據庫存儲追溯明文數據,區塊鏈上存儲追溯數據加密后的哈希值,一定程度上解決了數據存儲負載過大的問題。在查詢方面與文獻[16]提出的查詢方式類似,從鏈下數據庫獲取追溯數據,將追溯數據進行哈希計算得到的哈希值與鏈上的哈希值進行對比,從而來判斷信息是否被竄改,直接從鏈下數據庫獲取追溯明文可以提高查詢效率。文獻[17]提出利用基于HACCP(hazard analysis and critical control points)質量溯源模型來提高上鏈數據的質量,通過HACCP質量溯源模型對上鏈數據進行質量篩選,阻止臟數據上鏈來減少鏈上的冗余數據,進而提高追溯效率。文獻[18]提出采用主從多鏈存儲架構存儲數據,供應鏈環節中每個企業構建從鏈存放本企業的溯源數據,主鏈存放從鏈索引信息和區塊鏈哈希值,保證了交易信息的隱私安全性。文獻[19]提出區塊鏈多鏈數據存儲模型,設計了基于監管授權組網建鏈的網絡準入機制,通過智能合約實現數據的鏈前監管與追溯節點的鏈上管控,進而解決供應鏈存在的數據擴容、數據共享、監管難等問題。文獻[20]考慮了農業經營中的激勵權重問題,提出一種考慮農企權重的一致性共識算法。參照文獻[21]提出的一種基于監督模型的共識算法MBFT(multisignature Byzantine fault tolerance)解決主節點出錯問題,文獻[22]為適應農產品供應鏈溯源應用場景提出一種信譽監督機制拜占庭容錯共識算法CSBFT(credit-supervisor byzantine fault tolerance)以解決副本節點身份確認問題。

以上研究內容都是把區塊鏈技術應用于供應鏈溯源,或者是為了使區塊鏈技術與供應鏈溯源應用更加完美的結合,分別在存儲、追溯效率、隱私數據保護和共識機制方面進行優化,但文中內容沒有具體提及節點與企業之間的關系,從以上文獻的研究內容中對模型架構的設計圖可知默認是1:1的關系,但當參與主體數量規模變大時,不管是單鏈結構還是多鏈結構,節點和企業之間1:1的關系都會造成節點數量眾多,使得網絡開銷大,共識效率低進而導致交易延遲大。

針對以上問題,本文提出一種基于ECC-ZKP的農產品供應鏈可控身份管理與認證模型,在節點和企業之間引入中間件即身份管理器(identity manager,IM),使節點與企業之間的1:1關系變成1:n的關系,使得節點數量減少,進而減小網絡開銷,提高共識效率,調用節點的文件證書由IM管理不再是企業,實現IM對企業身份的可控管理,對于企業而言,企業加入區塊鏈網絡門檻降低,只需在IM中注冊身份即可加入網絡,而不用因為部署節點花費大量存儲空間和時間來同步之前的交易數據。為保證一筆交易中交易對象身份可信且允許被寫入到交易數據中,可通過IM基于橢圓曲線加密算法和零知識證明協議對交易對象進行身份認證,以此來實現可信交易。

1預備知識

1.1橢圓曲線加密算法

橢圓曲線加密算法是一種基于橢圓曲線數學的公開密鑰加密算法,橢圓曲線加密算法的安全性建立在求橢圓曲線離散對數解困難性之上,設某曲線上的兩個點P和Q,k為整數,其中Q=kP,求k就是橢圓曲線的離散對數問題[23,24]。因為連續的橢圓曲線不適合加密,于是把橢圓曲線定義在有限域上,使得橢圓曲線變成離散的點[25]。設存在質數p,有限域為GF(p),有限域上存在非奇異橢圓曲線EP(a,b),滿足

y2≡x3+ax+b(mod p)a,b,x,y∈GF(p)

4a3+27b2≠0(1)

設橢圓曲線EP(a,b)上存在三個點R(xR,yR)、P(xP,yP)和Q(xQ,yQ),滿足R=P+Q,則有

xR≡c2-xP-xQ(mod p)(2)

yR≡c(xP-xR)-yP(mod p)(3)

若P=Q,則c≡3x2P+a2yP(mod p)(4)

若P≠Q,則c≡yQ-yPxQ-xP(mod p)(5)

由公式Q=kP可知,當k=2時,有Q=2P,設P為(x,y),由式(4)可得c=(3x2+a)/2y,其中c∈GF(p),Q∈EP。由此可知,給定k和P,根據式(2)~(5)可知,可以比較容易計算Q,但給定P和Q,求k非常困難。由此根據橢圓曲線加密的數學原理可設定k為私鑰,Q為公鑰。通信加密過程如下所示。

a)公私鑰生成。選一條橢圓曲線EP(a,b),并取橢圓曲線上的一點作為基點P。選定一個大數k作為私鑰,并通過Q=kP生成公鑰Q。

b)加密。選擇隨機數r,通過公鑰Q和基點P將消息M生成密文C。密文是一個點對,即C=(rP,M+rQ)。

c)解密。通過私鑰k對密文C=(rP,M+rQ)進行解密,即M+rQ-k(rP)=M+r(kP)-k(rp)=M。

1.2零知識證明(zero-knowledge proof)

零知識證明[26]指的是證明者能夠向驗證者傳達關于某個事物的論斷是正確的,而且不會透露出事物本身[27]。基于零知識證明的方法需要具備如下三個性質:

a)正確性。若證明方沒有掌握事物論斷的證明方法,則驗證方幾乎不會相信證明方關于某事物論斷的結果。

b)完備性。若證明方掌握事物論斷的證明方法,驗證方能夠贊同且相信證明方法,從而認可關于論斷的結果。

c)零知識性。驗證者除了知道關于事物論斷的結果,對事物本身一無所知。

基于零知識證明的身份認證方案,其大概流程是證明者把私鑰SK通過package(SK)→PSK獲取私鑰信息PSK,這里的函數package能夠保證通過PSK得到SK的難度足夠大,之后證明者把PSK發送給驗證者,驗證者從第三方獲得答案answer和公鑰PK,能夠滿足amerge(PSK,PK)→answer,則能夠斷定證明者的確擁有私鑰,從而證明了身份可信。

2基于ECC-ZKP的身份管理與認證模型

2.1參數定義

本文基于ECC-ZKP的身份管理與認證模型設計與實現中所涉及的主要參數如表1所示。

2.2模型設計

基于區塊鏈的農產品供應鏈應用場景中,節點與企業之間引入中間件作為身份管理器IM,使得同一環節內節點與企業之間由1:1變成1:n的關系,如圖1所示。在農產品供應鏈中的加工環節處,由原來的一個加工企業擁有單獨證書文件來調用單獨的節點,變成多個加工企業共同擁有一個證書文件來調用同一個節點,而證書文件由IM管理。原來一個企業的經營范圍涉及到供應鏈中多個環節內容,根據多鏈設計會擁有多個證書文件,也變成了在IM中一個身份多種角色,而不會擁有任何一個證書文件。IM可以對用戶身份信息進行管理,包括添加用戶身份、修改用戶信息、刪除用戶,為同一個用戶身份添加角色和刪除角色。對于企業而言,加入區塊鏈網絡變得更加便捷,只要提供相關注冊信息在IM中注冊用戶身份即可加入區塊鏈網絡,而無須部署節點后再同步之前的交易數據。當一個節點接納的參與主體數量達到規定的最大值maxNum時,才會重新部署一個節點用于接納其他的企業,如圖2所示。這樣減緩了節點數量的增加速度,一定程度上減少了總體節點數量,進而減少了網絡開銷并提高了共識效率。

節點與各企業通過IM進行交互和資源分配。如圖3中的模型基礎架構所示,IM除了向各企業提供交互接口,也向溯源平臺提供相應的交互接口用于消費者查詢溯源信息與驗證企業身份,接口方式可以是SDK(software development kit)或者restful風格的API(application programming interface)。企業可以通過接口注冊與更新用戶身份,以提供的身份標識提交需上鏈的數據,或查詢相關內容。IM把用戶信息和MSPCert相關證書存儲在數據庫中,IM持有MSPCert相關證書,以代理企業通過區塊鏈提供的SDK(比如Hyperledger fabric提供的fabric SDK)與節點進行交互。除此之外,IM還有監管控制功能,自動識別問題用戶并對其刪除并加入黑名單。

2.3用戶身份管理與認證實現

2.3.1用戶身份管理

身份注冊。各企業加入可信交易的第一步則是注冊可信身份,有了可信身份才能被其他可信企業認證為可信任交易對象,同時也可被消費者認證為可信任企業,有了可信身份才是正確意義上加入了區塊鏈網絡,可信身份也是數據上鏈的憑證。企業A提交的用戶注冊信息UserInfo={TdCertNums,{α1,α2,α3,…},BsType,{PKA,GA}}作為輸入,其中{α1,α2,α3,…}是企業的基本信息,{PKA,GA}是企業本地經ECC加密算法得到的公鑰和基數,輸出是IM為用戶生成的公鑰PKA-UID、基數GA-UID和身份唯一標識碼UID。

算法1身份注冊

輸入:AUserInfo。

輸出:A-UID,PKA-UID,GA-UID。

a)(TdCertNums,(α1,α2,α3,…),BsType,(PKA,GA))←AUserInfo。 //將企業基本信息分配到各變量中

b) for i≤TdCertNums do

(β1,β2,β3,…)←QueryTradingCertificate(TdCertNums[i]);arList.appen(β1,β2,β3,…);

end for//通過TdCertNum獲取企業相關信息

c)result←equal(arList,(α1,α2,α3,…),BsType)//企業信息匹配

d)if result==true then

OP←OperationType.CREATE;CT←CreditType.WELL;

BC-certs←allocationCerts(BsType);/*記錄操作記錄,賦予初始信任值,根據經營類型分配相對應的證書文件*/

(EP,GA-UID)←ECC(secp256rl);SKA-UID←random(EP);PKA-UID←SKA-UID·GA-UID; //生成密鑰

A-UID←hash((SKA-UID,PKA-UID,(α1,α2,α3,…)))/*生成唯一標識碼*/

A-user ← (A-UID,(SKA-UID,PKA-UID,GA-UID),(PKA,GA),OP,CT,BC-certs);saveUser(A-user);//保存用戶身份信息

else return 1;

end if

e)return(A-UID,PKA-UID,GA-UID)。//返回信息

身份信息更新。一個企業在整個農產品供應鏈中經營范圍可覆蓋多個環節,經營范圍的變化可通過更新IM中的身份信息來改變操作節點的權限,因此經營范圍的變動對于區塊鏈網絡來說是透明的。對于企業而言,需要調用信息更新相關API,規范信息內容格式,把明文加密后的密文發送給IM。具體過程如下:

a)根據API的數據格式規定整合需要發送的內容。其中EditType∈{ADD,DELETE,DROP}。

updateInfo←(UID,TdCertNums,(α1,α2,α3,…),

BsType,EditType,(Sign,x))(6)

其中:數字簽名Sign的獲取公式如下所示:

M←(UID,TdCertNums,(α1,α2,α3,…),BsType,EditType)(7)

Sign ← SK-1(hash(M)+SK*x) mod p(8)

其中:p為有限域;x為隨機數。

b)將updateInfo信息體轉換為Json數據再進行序列化成可傳輸的字符串SM。

SM←serialize(toJson(updateInfo))(9)

c)以ECC加密算法對明文SM進行加密。以獲取隨機數r=|random(System.currentTimeMillis())%N|,N∈[1,n-1]。

CM←{r·G,SM+r·PKUID}(10)

在IM中的信息更新算法中,接收企業發送的密文CM和UID作為輸入,輸出為更新成功或更新失敗。

算法2身份信息更新

輸入:CM,UID。

輸出:更新成功,更新失敗。

a)(SKUID,PK,CT)←findPublicKey(UID)/*通過UID獲取私鑰和企業公鑰*/

b) if CT!=CreditType.WELL then

return“更新失敗”;

end if //信任值不達標,返回更新失敗

c)SM←DeCrypt(SKUID,CM);(UID,TdCertNums,(α1,α2,α3,…),BsType,EditType,(Sign,x))←Deserialize(SM)/*解密密文并反序列化后賦值到各變量中*/

d) if AuditKey(PK,Sign,x)==1 then

return“更新失敗”;

end if//身份驗證失敗,返回更新失敗

e) if EditType==OperationType.ADD then//添加角色

if check(TdCertNums,(α1,α2,α3…),BsType)==truethen

/*營業執照編號、企業相關信息和經營類型符合要求*/

OP←OperationType.ADD;BC-cert←addCerts(BsType); add-UserInfo(UID,OP,BC-cert); /*向標識碼為UID的用戶添加操作記錄和證書文件 */

else return “更新失敗”;

end if

end if

f)if EditType==OperationType.DELETE then//刪除角色

BC-cert←CertMap(BsType)//根據經營類型獲取證書

if BC-cert==1 then

return“更新失敗”;

end if//證書不存在返回更新失敗

OP←OperationType.DELETE;deleteUserInfo(UID,OP,BC-cert)//添加操作記錄和刪除證書文件

end if

g)if EditType==operationType.DROP then//刪除用戶

dropUser(UID)

end if

h)return “更新成功”//更新成功,返回信息

監控管理。IM對用戶進行監控,主要是通過用戶的信用值CT對用戶信用進行評估,評估結果不達標則強行去除并加入黑名單。企業注冊身份時,CT初始值為5,CT值隨著每一段規定時間內提交數據量成功與否而變化,提交數據成功則CT增加,被駁回數據則CT減少。在提交數據成功時,CT增量ΔCT+采用如下函數:

y=21+e-ax-1(11)

其中:y∈[0,1),即增量值ΔCT+的取值就是[0,1),不管提交量多大,增量值最多增加接近1,這種設計有利于防止利用增大數據量來刷信用值的行為,a為可調值,a∈(0,1]。x值為數據提交量的縮小值,設規定時間內數據提交量為t,縮小比例r,則x=t/r,第k次成功提交數據后,CT的變化為CTk=CTk-1+∫tr02ae-ax(1+e-ax)2dx。當提交數據被駁回時,CT減量ΔCT-為

y=c1+e-ax-c2(12)

其中:y∈[0,c/2),x和a值的定義跟函數式(11)一樣,c為當前的信用值。提交同等數據量,當cgt;2時,ΔCT-gt;ΔCT+,提交有問題的數據則會付出更大的代價,當clt;2時,ΔCT-lt;ΔCT+,給與留待觀察的機會,企業可以通過后期的良好表現補回信用。第k次提交數據駁回后,CT的變化為CTk=CTk-1-∫tr0c·a·e-ax(1+e-ax)2dx。當clt;1時,IM則自動刪除身份并加入黑名單;除此之外當一個用戶長期處于非活動狀態也會被自動刪除身份,但不會加入黑名單。

2.3.2用戶身份認證

參與身份認證的雙方分別為檢驗者和被檢驗者,檢驗者可以是各環節企業、消費者和監管機構,被檢驗者只能是企業。檢驗者通過IM提供的輔助信息對被檢驗者進行身份認證,整個認證過程引入了零知識證明協議,認證階段的零知識性可保護身份隱私。在農產品供應鏈中,發生一筆合法交易之前需要進行身份認證確定交易方身份可信,如企業A對企業B進行身份認證,企業A通過私鑰SKA對認證請求信息進行數字簽名并發送給企業B,企業B獲取請求信息,從IM獲取公鑰PKA對收到的數字簽名進行檢驗,檢驗通過則進行零知識身份認證,認證通過則證明企業B的身份可信,交易允許發生,且企業B的身份標識和簡要基礎信息可寫入到交易中。

如圖4所示的身份認證流程可知,身份認證的流程是基于橢圓曲線算法和零知識證明協議進行設計的。其中選擇一條橢圓曲線EP(a,b),設p為有限域,并取得橢圓曲線上的任意一點作為基點G,選定一個大數作為私鑰SK,通過公式PK=SK·G取得公鑰PK。具體認證步驟為:

a)企業A以私鑰SKA和隨機數x生成數字簽名信息S,并把S、x、請求信息M和UIDA發送給企業B。其中S的生成方式為

S←SK-1A(hash(M)+SKA*x) mod p(13)

b)企業B通過UIDA從IM中獲取PKA,并驗證數字簽名是否有效,驗證公式如式(2)所示,驗證通過后,企業B取r∈p,計算V=rGB,V∈EP,并將V發送給運營商A。

P=S-1hash(M)×G+S-1*x×PKA=PKA(14)

c)企業A接受V,并隨機選取R發送給企業B,其中R∈p。

d)企業B收到R,計算W=r+R·SKB,把W和UIDB發送給企業A。

e)企業A通過收到的UIDB從IM獲取PKB和GB,然后驗證WGB=V+R·PKB是否成立。

若WGB=V+R·PKB成立,則證明企業B的身份是可信的,與企業B的交易允許發生且可以把企業B的身份標識和簡要基礎信息寫入到交易信息中。認證請求發起方除了是驗證者,也可以是被驗證者,被驗證者向驗證者發起認證請求證明可信身份從而獲得對驗證者持有數據的訪問權限。

3模型分析

3.1有效性分析

通過引入IM之后,節點與企業之間從1:1的關系變成了1:n,n值的設定即一個節點對應的企業數量是根據實際應用場景中數據的流通量而設定,這里把比例設置為1:5,一個節點對應五個企業,節點數量和企業數量的對應關系如表2所示。從表2可知,在相同企業數量的情況下,本文方案的節點數更少,而且企業數量越多,本文方案優勢越明顯,有效減少了節點數量。

IM通過判斷用戶的CT值來對用戶進行監控,在企業提交數據、更新身份信息和被認證身份時,IM會對企業用戶身份中的CT值進行判斷,CT值不符合要求則會被刪除用戶身份并加入黑名單。因此,可有效對用戶行為進行監控,實現對用戶身份的可控管理。

在身份認證過程中,驗證者發送帶有數字簽名的驗證請求,由認證步驟可知,證明者進行簽名驗證通過后發送V和W給驗證者,驗證者從IM中獲取證明者的基點值G和公鑰PK,驗證者通過驗證公式WG=V+R·PK是否成立來判斷證明者身份是否可信。從認證步驟b)和d)可知V=rG和W=r+R·SK,加上PK=SK·G,于是有WG=(r+R·SK)G=rG+R·SK·G=V+R·PK,因此通過公式WG=V+R·PK得到的認證結果是有效的,證明者在沒有暴露私鑰的情況下證明了確實持有私鑰,進而證明了身份可信。

通過以上分析可知,本文提出的可控身份管理與認證模型,有效減少了節點數量,有效實現對用戶身份的可控管理,基于零知識證明協議的認證方法得到的結果是有效的。

3.2安全性分析

模型中所涉及的信息加密、數字簽名和身份認證的安全性都是建立在以橢圓曲線加密算法ECC提供的安全性的基礎上,ECC破解難度如表3所示。由表3可知,在ECC私鑰位長為106時,破解運算量達到了104 MIPS,這樣的運算量在有限時間和有限成本內很難完成,在ECC私鑰位長大于106時則難度更大,因此破解ECC密鑰是十分困難的,而且相同破解運算量情況下ECC的私鑰位長比RSA更短。在第2章中可知ECC中有公式Q=kP,即PK=SK·G,通過PK和G來獲得SK的困難度是解決橢圓曲線離散對數問題的難度,因此是一個非常困難的事情。由此可得,ECC在信息加密、數字簽名和身份認證方面能夠提供較高的安全性。

在數據提交過程中,企業A需要通過IM頒發的PKA-UID和GA-UID進行信息加密,通過SKA進行數字簽名,IM則通過SKA-UID進行信息解密以及通過PKA和GA驗證簽名,等于有雙層加解密保障。假如存在冒充者A′,加密信息:encrypt(M,PK′A-UID,G′A-UID)→CM,數字簽名:signature(SK′A)→Sign,在IM處則造成decrypt(CM,SKA-UID)→1和checkSign(Sign,PKA,GA)→1,1表示失敗。因此在雙層加解密情況下,可以防止冒充者偽造身份提交惡意數據,提供了安全保障。

在身份認證方面,基于ECC安全加密功能的零知識證明協議在執行過程中能夠抵御偽造身份的冒充者發起的惡意攻擊。假如有冒充者偽造驗證者身份,若偽造簽名為S1,則不能通過認證步驟b)的簽名驗證:P=S-1hash(M)×G+S-1*x×PKA ≠S-11hash(M)×G+S-11*x×PKA≠PKA,因此不能取得證明者的信任。假如有冒充者A偽造證明者B的身份,在驗證者驗證身份時,認證步驟e)中則有WGB=(r+R·SKA)GB=V+R·SKA·GB≠V+R·PKB,其中SKA·GB≠PKB,所以冒充者A不能通過驗證者的身份認證。因此,基于ECC的零知識證明能夠保障對身份的有效安全認證。

通過上述分析來看,在ECC加密算法能夠保證安全性的基礎上,該模型在信息加密、數字簽名和身份認證中能夠抵御冒充者偽造身份發起的惡意攻擊,具有較高的安全性。

3.3最佳n值分析

引入該模型之后,節點與企業之間從1:1變成了1:n的關系,在1:n關系中,n值小則節點更多,會帶來節點的部署成本,n值過大則會增大節點壓力降低反映速度,n的最優取值跟實際應用場景中提供的條件和要求有關,比如部署節點的實際成本、服務器配置、網絡環境和實際應用中能接受的反應速度等。

設存在一個代價值z=x+y。其中部署成本x=(K1N)/n,n∈N+,K1是常數且由實際應用場景中的客觀因素所決定,N為企業數量。y=f(n)代表反應時間轉換成的代價值,即反應時間越大,相對的付出的代價越大,反應時間是隨n的增大而增大,因此f(n)是遞增函數。為了便于分析,設y=f(n)=K2n,其中n∈N+,K2是常數且由服務器配置、網絡環境和實際應用中能接受的反應速度等因素決定。然后可得

z=x+y=K1Nn+K2n≥2K1K2N(15)

當z=2K1K2N時,代價最小,此時的n則為最優取值,n=N/(K1K2)」或者n=「N/(K1K2)。因為部署節點的服務器配置中的CUP和內存等限制因素,n總會達到一個瓶頸值,超過了這個值則會出現請求失敗或者反應速度很慢的情況,設這個瓶頸值為M。在實際情況中,由式(15)得到的最佳n值并不是真正的最佳n值,還需考慮瓶頸值M這個因素,設通過式(15)得到的最優n值為n*,可分為以下兩種情況:

a)n*≤M。n取得的最優值沒有超過處理器的瓶頸值,此時最佳n值為n=N/(K1K2)」或者n=「N/(K1K2)。

b)n*gt;M。n取得的最優值超過了處理器的瓶頸值,當n=M時,由dx/dn=-(K1N)/n2,dy/dn=K2,|-(K1N)/M2|gt;K2可知,此時節點的部署成本過大,因此n值盡量取大,即到達處理器的瓶頸值,此時最佳n值為n=M。

4仿真實驗分析

本次實驗使用自主研發的區塊鏈基礎設施服務平臺ChainFusion快速部署基于Hyperledger Fabric聯盟鏈的區塊鏈網絡。使用Java語言通過Java版的Fabric SDK編輯相關鏈碼,為降低復雜度,本次實驗將范圍定在農產品供應鏈其中某一個環節內,因為每個環節的情況都是類似的,不管采取的是多鏈結構還是單鏈結構,本次實驗結果都是適用的。部署環境和初始節點及數量如表4、5所示。

order節點1

peer節點2IM可以以智能合約的形式存在,也可以是中間件,這里采取中間件的形式。使用Java基于SpringBoot框架對IM進行開發,采用MySQL數據庫用于保存用戶信息和證書文件等信息,引入外部資源庫JPBC用于實現橢圓曲線加解密功能,操作系統為Windows 10,PC機硬件為Intel CoreTM i7-10750H處理器,16 GB RAM。為了減小差異性,把IM部署在服務器上,然后本地通過Postman工具模擬企業發起各類請求信息。

4.1效率分析

通過引入IM后,節點與企業之間變成1:n的關系,把原來節點與企業之間1:1關系作為比較對象,分別在兩種關系的情況下,測試企業加入區塊鏈網絡所花費時間和網絡開銷。為了實驗數據更加可觀,在Docker容器中安裝iproute工具,通過tc命令限制上傳下載速度為1 Mbps,當節點與企業之間處于1:n關系時,實驗設定n值為5,則節點與企業之間的比例為1:5。

a)企業加入區塊鏈網絡所花費時間測試。分別在節點與企業之間1:5和1:1的比例下,隨著原有交易數據量的增加和企業數量的增加,企業加入區塊鏈網絡耗時情況如圖5、6所示。測試加入區塊鏈網絡在不同原有交易數據量下的耗時情況時,節點及數量采取初始的狀態,即1個order節點和2個peer節點。當測試耗時隨企業數量增加的變化情況時,設定原有交易數據為50 KB。

從圖5可知,當原有交易數據量越來越大時,1:1比例下加入區塊鏈網絡所需時間是越來越長,而1:5比例下的耗時時長幾乎沒有變化。從圖6可知,隨著參與網絡的企業數量的增加,1:1比例下的耗時時長增長明顯,1:5比例下則增長非常緩慢。在圖6中,當1:1比例時,設橫坐標中的每一個單位長度為定義域,則有D={x1∈[2,5],x2∈[5,10],x3∈[10,15],x4∈[15,20],x5∈[20,25],x6∈[25,30],x7∈[30,35],x8∈[35,40],x9∈[40,45],x10∈[45,50],x11∈[50,55],x12∈[55,60]},每個定義域對應的函數設為f1(x1)、f2(x2)、f3(x3)、f4(x4)、f5(x5)、f6(x6)、f7(x7)、f8(x8)、f9(x9)、f10(x10)、f11(x11)、f12(x12),平均耗時時長aver1_1Time:

aver1_1Time=∫52f1(x)dx+∑11k=1∫5k+55kfk+1(x)dx58(16)

同理,1:5比例時,在定義域D中,存在函數g1(x1)、g2(x2)、g3(x3)、g4(x4)、g5(x5)、g6(x6)、g7(x7)、g8(x8)、g9(x9)、g10(x10)、g11(x11)、g12(x12),平均耗時時長aver1_5Time為

aver1_5Time=∫52g1(x)dx+∑11k=1∫5k+55kgk+1(x)dx58(17)

在圖6中,1:1比例中的各函數段組成的線段與橫軸,加上最后一個點做橫軸的垂線,三者圍成的三角形面積為S1,同理,1:5比例中三者圍成的面積為S2,可以直觀地看到,S1gt;S2,有aver1_1Time gt; aver1_5Time,進而可知,1:1比例平均耗時比1:5比例更長。因此在同樣企業數的情況下,企業加入區塊鏈網絡在1:1比例下耗時比1:5比例更長。

b)網絡開銷測試。本次實驗把節點都部署在同一個服務器中,模擬節點在企業處、企業間形成一個網絡的場景,這樣可以保證實驗在網絡環境穩定和節點之間通信速度相同的情況下進行。企業提交數據時,在網絡速度相同的情況下,提交完成耗時與網絡開銷成正比,因此可以通過耗時情況來判斷網絡開銷的情況。分別在節點與企業之間1:5和1:1的比例下,隨著企業數量的增加,企業提交數據完成所花費的時間如圖7所示。

從圖7可知,當企業數量增長時,提交數據完成時間在1:1比例下呈線性增長,且增長明顯;1:5比例則呈梯度增長,增長幅度較小。因為在網絡速度相同的情況下,提交完成耗時與網絡開銷成正比,所以也可以反映網絡開銷大小變化情況,進而得知在企業數越來越大時,1:5比例下提交數據時的網絡開銷比1:1比例更小,也側面反映共識效率更高。

以上實驗分析結果可得,引入IM之后,節點與企業之間1:5比例相比較于1:1比例而言,企業加入區塊鏈網絡耗時明顯減少,企業加入區塊鏈網絡更加快速和便捷,提交數據完成時間的減少,在相同網絡速度的情況下,可說明網絡開銷減少,整體效率得到了明顯提高。因此1:n關系更具有優勢,且在參與主體數量即企業數量龐大時,優勢越是明顯,當參與主體規模大時,本文模型與其他文獻提出的模型對比如表6所示。

文獻[10]構建的谷物可追溯系統,從整個溯源框架的設計可知節點與參與主體是1:1關系,當參與主體數量規模大時則會出現共識效率低和網絡開銷大的問題。文獻[11]的優勢是通過存儲分離來減小節點的存儲壓力,本文模型除了保持存儲分離的優點,且1:n關系使得多個參與主體共享同一個節點數據可提高存儲數據的利用率。文獻[22]通過改良共識算法提高共識效率,可是在參與主體數量龐大情況下提高力度有限。文獻[19]采用多鏈結構來保證隱私安全和實現對節點的鏈上監控,而本文模型可以在身份管理中設置參與主體的訪問權限來保證參與主體的隱私安全,在監控方面也有提供監控管理的功能,而且實現的復雜度更低。在農產品供應鏈溯源應用方面,本文模型與原來眾多方案并不完全沖突,這些方案可以在原本基礎上引入本文模型進行優化,把節點與參與主體之間1:1關系變成1:n關系,使得原來方案的優勢方面的性能再提高幾倍。

4.2性能分析

通過外部資源庫JPBC提供的ECC加密相關接口和JDK8本身提供的Cipher類中RSA加密相關接口來分別實現ECC和RSA的密鑰對生成和加解密功能,在本次提供的實驗環境下,分別對ECC和RSA在密鑰對生成和加解密方面,隨著密鑰對數量的不同和加解密次數的不同,測試得到消耗時間和CPU占比的情況。其中基于安全性要求,ECC的密鑰長度采用256 bit加密長度,RSA的密鑰長度采用2 048 bit加密長度。

從2.3.2節中的用戶身份認證過程可知,零知識證明的執行過程有依賴于加密算法,從表3可知,相同破解運算量情況下ECC的私鑰位長比RSA更短,因此在相同安全性條件下,ECC占用的存儲空間比RSA更少,由此可得ECC的空間利用率比RSA更高。由實驗數據分析可知,如圖8、9所示,在密鑰生成方面,隨著密鑰對數量的上升,RSA的耗時量上升明顯,而ECC的耗時量變化不大,CPU占有率都是上升,但兩者差距不大。在加解密方面,隨著密鑰對數量的上升,RSA的耗時量上升得比ECC快,而且RSA的耗時量一直大于ECC的耗時量,RSA的CPU占有率在密鑰對數量120前增長明顯,之后趨于穩定,而ECC的CPU占有率增長緩慢且一直小于RSA的CPU占有率,而隨著密鑰對數量的上升,兩者在CPU占有率方面差距明顯,可得ECC在CPU資源利用率和執行效率方面優于RSA,因此ZCC-ZKP組合的性能會更好。

5結束語

區塊鏈技術應用于農產品供應鏈可以實現可信追溯,但當參與企業數量規模大時,原本節點與企業之間1:1的關系會造成節點數量眾多,導致對一筆交易達成共識所需要的時間開銷變大,從而降低共識效率,進而降低交易處理效率,同時也造成網絡開銷大。針對這些問題,本文提出了一種基于ECC-ZKP的可控身份管理與認證模型,通過引入中間件IM使得節點與企業之間變成1:n的關系,有效減少了節點數量,IM代理企業調用節點的方式降低了企業加入區塊鏈網絡的門檻,同時IM可以監控企業行為和管理企業用戶身份信息。為完成可信交易前所需要的身份認證,結合IM提供的輔助信息,通過橢圓曲線加密算法和零知識證明協議來進行企業之間的身份認證。最后對模型進行分析可得,有效性和安全性方面能夠得到保障,仿真實驗數據表明,企業加入區塊鏈網絡和提交數據完成的時間開銷更小,即交易處理效率更高且減少了網絡開銷。本文模型在農產品供應鏈追溯實際應用場景中,當參與企業數量規模大且需要保證較好的處理效率時,可提供一定的參考性。下一步研究工作將結合跨鏈技術,讓已成規模的農產品追溯鏈區塊鏈之間實現互連互通,以適應多樣化的業務需求。

參考文獻:

[1]Aik J,Turner R M,Kirk M D,et al.Evaluating food safely management systems in Singapore:a controlled interrupted time-series analysis of foodborne disease outbreak reports[J].Food Control,2020,117:107324.

[2]Yuan Jingjing,Lu Yonglong,Cao Xianghui,et al.Regulating wildlife conservation and food safety to prevent human exposure to novel virus[J].Ecosystem and Sustainability,2020,6(1):524-527,523.

[3]Hou Deyi,O’Conner D,Igalavithana A D,et al.Metal contamination and bioremediation of agricultural soils for food safety and sustainability[J].Nature Reviews Earth amp; Environment,2020,1(7):366-381.

[4]孫傳恒,于華竟,徐大明,等.農產品供應鏈區塊鏈追溯技術研究進展與展望[J].農業機械學報,2021,52(1):1-13.(Sun Chuanheng,Yu Huajing,Xu Daming,et al.Research progress and prospect of agricultural supply chain blockchain traceability technology[J].Trans of the Chinese Society for Agricultural Machinery,2021,52(1):1-13.)

[5]代闖闖,欒海晶,楊雪瑩,等.區塊鏈技術研究綜述[J].計算機科學,2021,48(S2):500-508.(Dai Chuangchuang,Luan Haijing,Yang Xueying,et al.A review of blockchain technology research[J].Computer Science,2021,48(S2):500-508.)

[6]田陽,陳智罡,宋新霞,等.區塊鏈在供應鏈管理中的應用綜述[J].計算機工程與應用,2021,57(19):70-83.(Tian Yang,Chen Zhigang,Song Xinxia,et al.A review of the application of blockchain in supply chain management[J].Computer Engineering and Applications,2021,57(19):70-83.)

[7]王志鏵,柳平增,宋成寶,等.基于區塊鏈的農產品柔性可信溯源系統研究[J].計算機工程,2020,46(12):313-320.(Wang Zhihua,Liu Pingzeng,Song ChengBao,et al.Research on flexible reliable traceability system of agricultural products based on block chain[J].Computer Engineering,2020,46(12):313-320.)

[8]Shaled K,Nizamuddin N,Jayaraman R,et al.Blockchain-based soybean traceability in agricultural supply chain[J].IEEE Access,2019,7:73295-73305.

[9]歐陽麗煒,王帥,袁勇,等.智能合約:架構及進展[J].自動化學報,2019,45(3):445-457.(Ouyang Liwei,Wang Shuai,Yuan Yong,et al.Smart contracts:architecture and progress[J].Acta Automatica Sinica,2019,45(3):445-457.)

[10]Zhang Xin,Sun Pengcheng,Xu Jiping,et al.Blockchain-based safety management system for the grain supply chain[J].IEEE Access,2020,8:36398-36410.

[11]Shen Meng,Duan Junxian,Zhu Liehuang,et al.Blockchain-based incentives for secure and collaborative data sharing in multiple clouds[J].IEEE Journal on Selected Areas in Communications,2020,38(6):1229-1241.

[12]Klems M,Eberhardt J,Tai S,et al.Trustless intermediation in blockchain-based decentralized service marketplaces[C]//Proc of International Conference on Service-Oriented Computing.Cham:Springer,2017:731-739.

[13]Xu Quangqing,Song Zhiwen,Goh R,et al.Building an Ethereum and IPFS-based decentralized social network system[C]//Proc of the 24th IEEE International Conference on Parallel and Distributed Systems.Piscataway,NJ:IEEE Press,2018:1-6.

[14]馮國富,胡俊輝,陳明.基于區塊鏈的水產品交易溯源系統研究與實現[J].漁業現代化,2022,49(1):44-51.(Feng Guofu,Hu Junhui,Chen Ming.Research and implementation of aquatic product trading traceability system based on block chain[J].Fishery Mo-dernization,2022,49(1):44-51.)

[15]楊信廷,王明亭,徐大明,等.基于區塊鏈的農產品追溯系統信息存儲模型與查詢方法[J].農業工程學報,2019,35(22):323-330.(Yang Xinting,Wang Mingting,Xu Daming,et al.Information storage model and query method of agricultural products traceability system based on block chain[J].Trans of the Chinese Society of Agricultural Engineering,2019,35(22):323-330.)

[16]余濤,牛保寧,樊星.FabricSQL:區塊鏈數據的關系查詢[J].計算機工程與設計,2020,41(10):2988-2995.(Yu Tao,Niu Baoning,Fan Xing.FabricSQL:relational query of blockchain data[J].Computer Engineering and Design,2020,41(10):2988-2995.)

[17]葛艷,黃朝良,陳明,等.基于區塊鏈的HACCP質量溯源模型與系統實現[J].農業機械學報,2021,52(6):369-375.(Ge Yan,Huang Chaoliang,Chen Ming,et al.HACCP quality traceability model and system implementation based on block chain[J].Trans of the Chinese Society for Agricultural Machinery,2021,52(6):369-375.)

[18]張燕麗,李波.基于主從聯盟鏈結構的農產品供應鏈追溯系統方案設計[J].計算機應用研究,2022,39(6):1638-1644.(Zhang Yanli,Li Bo.Scheme design of agricultural product supply chain traceability system based on master-slave alliance chain structure[J].Application Research of Computer,2022,39(6):1638-1644.)

[19]于華竟,徐大明,羅娜,等.雜糧供應鏈區塊鏈多鏈追溯監管模型設計[J].農業工程學報,2021,37(20):323-332.(Yu Huajing,Xu Daming,Luo Na,et al.Design of multi-chain traceability supervision model for grain supply chain blockchain[J].Trans of the Chinese Society of Agricultural Engineering,2021,37(20):323-332.)

[20]Leng Kaijun,Bi Ya,Jing Linbo,et al.Research on agricultural supply chain system with double chain architecture based on blockchain techno-logy[J].Future Generation Computer Systems,2018,86:641-649.

[21]袁勇,倪曉春,曾帥,等.區塊鏈共識算法的發展現狀與展望[J].自動化學報,2018,44(11):2011-2022.(Yuan Yong,Ni Xiaochun,Zeng Shuai,et al.Blockchain consensus algorithms:the state of the art and future[J].Acta Automatica Sinica,2018,44(11):2011-2022.)

[22]任守綱,何自明,周正己,等.基于CSBFT區塊鏈的農作物全產業鏈信息溯源平臺設計[J].農業工程學報,2020,36(3):279-286.(Ren Shougang,He Ziming,Zhou Zhengji,et al.Design and implementation of information tracing platform for crop whole industry chain based on CSBFT-blockchain[J].Trans of the Chinese Society of Agricultural Engineering,2020,36(3):279-286.)

[23]Koblitz N,Menezes A,Vanstone S.The state of elliptic curve cryptography[J].Designs,Codes and Cryptography,2000,19(2):173-193.

[24]許德武,陳偉.基于橢圓曲線的數字簽名和加密算法[J].計算機工程,2011,37(4):168-169,189.(Xu Dewu,Chen Wei.Digital signature and encryption algorithm based on elliptic curve[J].Computer Engineering,2011,37(4):168-169,189.)

[25]孫波,魏勇,王宏偉.對稱密鑰結合橢圓曲線加密的網絡認證和密碼更新方案[J].計算機應用研究,2016,33(10):3094-3098.(Sun Bo,Wei Yong,Wang Hongwei.Network authentication and password update scheme based on symmetric key and elliptic curve encryption[J].Application Research of Computer,2016,33(10):3094-3098.)

[26]Feige U,Fiat A,Shamir A.Zero-knowledge proofs of identity[J].Journal of Cryptology,1988,1(2):77-94.

[27]Fernandez E G,Moralesluna G,Sagols F.A zero-knowledge proof system with algebraic geometry techniques[J].Applied Sciences,2020,10(2):article No.465.

收稿日期:2022-04-19;修回日期:2022-05-27基金項目:上海市軟件技術創新服務平臺項目(20DZ2291700)

作者簡介:王金威(1995-),男,江西贛州人,碩士研究生,主要研究方向為區塊鏈技術及其應用;張紹華(1974-),男(通信作者),四川渠縣人,研究員,博士,主要研究方向為區塊鏈、數據治理(zhangsh@sbs.edu.cn);李超(1989-),男,安徽蚌埠人,工程師,碩士,主要研究方向為大數據、區塊鏈.

主站蜘蛛池模板: 丁香五月婷婷激情基地| 色婷婷成人网| 国产91无码福利在线| 国产Av无码精品色午夜| 国产精品短篇二区| 中文字幕欧美日韩高清| 在线a视频免费观看| 国产主播福利在线观看| 久久精品国产电影| 久久视精品| 亚洲国产欧美国产综合久久 | 国产精品密蕾丝视频| 日本www色视频| 在线国产资源| 国产美女主播一级成人毛片| 欧美精品1区2区| 欧美一区中文字幕| 极品私人尤物在线精品首页| 日本欧美成人免费| 日韩二区三区无| 国产h视频在线观看视频| 亚洲无码高清视频在线观看| 国产精欧美一区二区三区| 92午夜福利影院一区二区三区| 无码一区二区三区视频在线播放| 欧美成人午夜影院| 国产JIZzJIzz视频全部免费| 人妻91无码色偷偷色噜噜噜| 98超碰在线观看| 日韩无码黄色网站| 亚洲精品动漫| 欧美亚洲国产视频| 麻豆精品在线| 五月丁香伊人啪啪手机免费观看| 国产成人精品免费视频大全五级| 亚洲无码熟妇人妻AV在线| 亚洲欧美综合在线观看| 99热这里只有成人精品国产| 免费人欧美成又黄又爽的视频| 国产亚洲美日韩AV中文字幕无码成人| 在线毛片免费| 蜜桃视频一区二区三区| 久久99国产乱子伦精品免| 日韩欧美中文| 无码电影在线观看| 99草精品视频| 久久综合成人| 国产综合精品日本亚洲777| 青青久视频| 午夜久久影院| 国产成人1024精品| 国产精品亚洲精品爽爽| 国产99视频在线| 国产91成人| 久久久久88色偷偷| 无码精品一区二区久久久| 免费大黄网站在线观看| 国产精品林美惠子在线播放| 色综合天天综合中文网| 国产剧情国内精品原创| 国产一二三区在线| 九月婷婷亚洲综合在线| 69综合网| 在线免费亚洲无码视频| 国产精品不卡片视频免费观看| 欧美一区二区自偷自拍视频| 国产真实乱子伦精品视手机观看| av色爱 天堂网| 好吊色妇女免费视频免费| 中文字幕色站| 国产精品极品美女自在线| 国产午夜福利在线小视频| 精品国产www| 色偷偷一区二区三区| 亚洲天堂精品在线| 国产一级裸网站| 亚洲精品动漫| 在线观看视频99| 91无码视频在线观看| 韩日午夜在线资源一区二区| 玖玖精品在线| 国产精品一老牛影视频|