基於區塊鏈的移動終端網絡密鑰協商方法與流程
2023-06-27 06:54:36 4

本發明涉及信息安全中的密碼學技術領域,特別涉及一種基於區塊鏈的移動終端網絡密鑰協商方法。
背景技術:
隨著資訊時代無線通信技術的不斷發展,智能移動終端已經成為人們生活中無法替代的一部分。智能移動終端組成的通信網絡依據是否具有基礎設施可以分為有基礎設施(如基站)的網絡以及自組織網絡。自組織網絡具有拓撲動態性、節點多跳性、無中心分布性、沒有固定基礎設施等特點,從而導致許多傳統通信網絡中的技術出現了新的挑戰。但是,由於這種智能移動終端自組織網絡具有很好的靈活性和可擴展性,在許多領域均有廣泛應用,其中軍事領域的應用最為常見,可以在複雜形勢下依靠智能移動終端網絡進行協同配合。所以建立一個安全可信的通信網絡環境是進行安全通信的必要條件。
為保證信息傳輸的安全性,常利用密碼學領域的加密和數字籤名等密碼技術對傳送的信息進行處理和對身份進行認證,密鑰是在這些技術中的一個重要的參與元素,密鑰的安全保密直接影響著數據信息的保密性。公鑰基礎設施(publickeyinfrastructure,pki)就是一種公鑰密碼理論和技術實施及提供安全服務的、具有普適性的安全基礎設施。pki的核心是ca認證中心,負責證書的生成、頒發、撤銷、更新、生命周期管理和密鑰管理等,通過ca頒發的證書來進行身份的驗證並在此基礎上結合其他密碼技術來保證傳輸信息的保密性、完整性和不可否認性。密鑰協商和更新是安全系統中一種主要的保障工具和手段。密鑰協商協議經過通信的雙方或多方進行協商,為保證每次會話的密鑰的唯一性,密鑰協商還需要能夠有效率的進行更新,以確保重放、偽造等攻擊無法對通信各方及通信內容造成威脅及損失。
但是在智能移動終端組成的終端自組織網絡無法依靠基礎設施,在這樣的情況下,傳統依靠可信第三方提供的證書及結合公鑰理論的技術來進行密鑰協商的方法將不再可行。
技術實現要素:
本發明旨在至少在一定程度上解決上述相關技術中的技術問題之一。
為此,本發明的一個目的在於提出一種基於區塊鏈的移動終端網絡密鑰協商方法。該方法可以將區塊鏈視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,參與密鑰協商。
為了實現上述目的,本發明的公開了一種基於區塊鏈的移動終端網絡密鑰協商方法,包括:所述移動終端網絡包括多個節點,節點的節點信息以區塊的形式進行存儲,多個區塊組成一個區塊鏈,區塊鏈中的區塊數據為節點的節點信息,所述節點信息至少包括公共會話密鑰,包括:搜索區塊鏈中的節點的公共會話密鑰;根據所述公共會話密鑰,獲取節點之間的會話密鑰進行通信。
根據本發明的基於區塊鏈的移動終端網絡密鑰協商方法,可以將區塊鏈視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,參與密鑰協商。
另外,根據本發明上述實施例的基於區塊鏈的移動終端網絡密鑰協商方法還可以具有如下附加的技術特徵:
進一步地,包括:獲取會話密鑰的節點計算共享的會話密鑰,建立會話組。
進一步地,還包括:每隔預定時間,使區塊鏈中的節點更新一對公鑰/私鑰對。
進一步地,還包括:接受所述區塊鏈中的各個節點互相進行合法性驗證,並對未通過驗證的節點實行懲罰機制。
進一步地,用戶註冊加入到移動終端網絡。
進一步地,註冊的具體步驟為:s1:對區塊鏈中的前導節點進行驗證,以確認所述前導節點的身份是否真實,如果驗證通過,全網廣播待加入移動終端網絡的節點身份認證信息,所述身份認證信息包括公鑰、時間戳以及對區塊鏈中最後區塊的雜湊值籤名;s2:接收所述待加入移動終端網絡的節點發送身份認證信息,計算區塊鏈中的節點與所述待加入移動終端網絡的節點之間的第一共同會話密鑰,並根據所述第一共同會話密鑰生成第一身份信息與待加入移動終端網絡的節點進行通信,其中,所述第一身份信息包括:區塊鏈中的節點的公鑰、區塊鏈中的節點的挑戰值、以及對兩者的雜湊值的籤名;s3:計算所述待加入移動終端網絡的節點與區塊鏈中的節點的第二共同會話密鑰,並根據第二共同會話密鑰解密所述第一共同會話密鑰,並根據解密後的第一共同會話密鑰和第二共同會話密鑰生成第二身份信息與區塊鏈中的節點進行通信,其中,所述第二身份信息包括:待加入移動終端網絡的節點的公鑰、待加入移動終端網絡的節點的挑戰值、區塊鏈中的節點的挑戰值、以及三者之間的雜湊值的籤名;s4:接收第二身份信息,如果區塊鏈中的節點從所述第二身份信息中確認包含自己的挑戰值,則使得待加入移動終端網絡的節點完成了用戶註冊。
進一步地,步驟s4還包括:根據所述第二身份信息,使得區塊鏈中的節點生成第一驗證信息,以便待加入移動終端網絡的節點對區塊鏈中的節點進行身份驗證,其中,第一驗證信息包括:待加入移動終端網絡的節點的挑戰值和區塊鏈中的節點的公鑰。
進一步地,所述待加入移動終端網絡的節點完成註冊後,向所述區塊鏈廣播所述待加入移動終端網絡的節點的節點的信息。
進一步地,撤銷所述待加入移動終端網絡的節點在所述區塊鏈中的公鑰,以實現所述待加入移動終端網絡的節點的離線。
進一步地,還包括:根據可信公鑰基礎設施,獲取所述待加入移動終端網絡的節點的公鑰證書,並將所述待加入移動終端網絡的節點的公鑰證書存儲在所述區塊鏈的第一塊中。
本發明的附加方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是根據本發明一個實施例的基於區塊鏈的移動終端網絡密鑰協商方法的流程圖;
圖2是根據本發明一個實施例的pki所頒發證書格式示意圖;
圖3是根據本發明一個實施例的區塊鏈結構圖;
圖4是根據本發明一個實施例的用戶註冊的流程圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能理解為對本發明的限制。
以下結合附圖描述根據本發明實施例的基於區塊鏈的移動終端網絡密鑰協商方法。
圖1是根據本發明一個實施例的基於區塊鏈的移動終端網絡密鑰協商方法的流程圖。
如圖1所示,根據本發明一個實施例的基於區塊鏈的移動終端網絡密鑰協商方法,
其中,移動終端網絡包括多個節點,在進行自組織網絡時,採用區塊鏈技術,一個節點均對應有一個區塊,節點的節點信息以區塊的形式進行存儲,多個區塊組成一個區塊鏈,區塊鏈中的區塊數據為對應節點的節點的信息,結合圖3所示,所述節點信息包括但不限於公共會話密鑰、籤名、前一塊的雜湊值、序列號、位置、在區塊鏈中的位置信息、黑名單、礦工候選等等,其中,序列號為每個節點在加入移動終端自組織網絡時根據可信公鑰基礎設施發布創建的,自組織網絡中的節點與節點通信時,將通信信息保存在相應區塊中。
其中,礦工是具有許多鄰節點的節點,並且只有在與該節點相連的節點一半以上稱為礦工之後,該節點才可以二次成為礦工。礦工由系統分配。
為了避免被分配為下一個礦工,節點可以轉為離線或拒絕計算和推出新塊,系統將在系統參數(param)中設置礦工候選編號(cannum)。在每個塊中依據它們的鄰節點數進行排序,所統計的鄰節點數量不會被欺騙,因為距離也會在同一塊中公布,因此,所有節點可以驗證正確性。礦工將根據順序分配候選者,並確保候選者不是節點總數的一半內的礦工。候選中的第一個應該是下一個塊的礦工,而如果第一個候選者變為離線或拒絕在多個時期內發布下一個塊,則第二候選將充當礦工並在下一個時期中發布新塊。
黑名單(blacklist):與比特幣的激勵機制不同,假設兩個相鄰節點之間沒有多跳連接且同時拒絕生成新塊的現象是罕見的。為了懲罰分配的拒絕發布新塊的礦工,接下來的礦工將創建一個包含新塊中的前候選者的黑名單blacklist。所有節點將拒絕與黑名單中的節點通信,除非它移除blacklist塊,之後重新申請加入網絡。如果移動終端網絡在一個時期內獲得由候選列表中的兩個礦工發布的兩個不同塊,則將接受由前候選者發布的塊,因為它可能發生網絡延遲。當假設所有候選人將在同一時期變為離線或拒絕發布新塊的概率將是可忽略的,這個規則將適用於候選人,若離線或者拒絕發布新塊這樣的事故發生,系統將會進行重新組織。此外,所有的欺騙節點將被添加到含blacknum(表示受處罰節點處於黑名單中的塊數)的黑名單blacklist中。
區塊鏈:新塊由礦工創建,包含前一塊的雜湊值。由礦工接收的所有記錄將被包含在塊中,其中包括公鑰更新、公共會話密鑰、定位信息和由相關節點籤名的籤名。礦工將收集移動終端網絡中所有節點的定位信息,並計算相對位置以生成所有節點的坐標,其中礦工是坐標原點。最新的blacknum中的欺騙節點的黑名單也包含在塊中。礦工將根據規則分配候選人。為了縮減塊的大小,所有節點將在merkle樹中進行雜湊,並且根包含在塊中,因此過時的記錄將被丟棄,其驗證與簡化的比特幣支付驗證相同。
綜上所述,本發明的區塊鏈中區塊數據包括位置信息塊以及新的參數子塊:黑名單塊、礦工後選塊、merkle樹的根節點雜湊值塊等。
本發明,包括:
s110:搜索區塊鏈中的節點的公共會話密鑰。
具體來說,區塊鏈中的節點與節點之間可以任意進行通話。需要進行通話的雙方直接從區塊鏈中搜索其公共會話密鑰,並通過雙線性協議(diffie-hellman協議)直接計算他們的會話密鑰,從而使用該會話密鑰加/解密消息。這裡密鑰協商的過程是自主完成的,每個用戶都是按照區塊鏈中搜索想要通信的對方的最新公共會話密鑰進行計算來通信的。
s120:並根據公共會話密鑰,獲取節點之間的會話密鑰進行通信。
作為一個示例,結合圖3所示,當alice想要與bob通信時,alice在區塊鏈中搜索bob的當前最新公共會話密鑰,並計算會話密鑰
以獲得alice和bob之間的會話密鑰,同樣bob通過相同的方法獲得相同的密鑰:
這可以確保它們可以通過使用對稱會話密鑰來秘密地、有效地進行彼此的通信。
綜上所述,根據本發明的基於區塊鏈的移動終端網絡密鑰協商方法,可以將區塊鏈視為共識機制的可信節點,根據區塊鏈的特點,使得移動終端網絡中的用戶在不依靠可信第三方的情況下,參與密鑰協商。
在一些實施例中,包括:獲取會話密鑰的節點計算共享的會話密鑰,建立會話組。
具體的,如果該移動終端網絡中的用戶想要進行群組通信,則需要一個通過共享的公話密鑰來建立群組,群組成員會向移動終端網絡廣播相關群組信息,其中,群組信息包括但不限於當前公鑰、共享的公話密鑰以及由組員自己的當前私鑰籤名。該群組信息將在下一個塊中發布,若移動終端網絡中的具有共享的公話密鑰的相關信息的群組或者單個節點想要加入這個群組中,則需要計算群組的共享的公話密鑰,並與群組成員進行通信,在驗證身份後,加入該組。
作為一個示例,alice和bob希望創建一個會話組,每一個成員都通過共享的會話密鑰進行組內安全通信,首先,他們將計算alice和bob都將廣播包含當前公鑰、會話組密鑰以及由他們自己的當前私鑰籤名的記錄。該記錄將在下一個塊中發布,如果具有sessionkeytom的組(或單個節點)想要加入此組,則他可以計算:
在一些實施例中,為了確保安全性,還包括:每隔預定時間,使區塊鏈中的節點更新一對公鑰/私鑰對。
具體來說,節點可以運行算法keyupdate(param)以獲得隨機的一對公鑰/私鑰對因此,該節點信息應該存在包含先前的公鑰、新的公鑰和使用先前的私鑰和新的私鑰籤名的兩個籤名的記錄。
在一些實施例中,還包括:接受區塊鏈中的各個節點互相進行合法性驗證,並對未通過驗證的節點實行懲罰機制。
其中,懲罰機制是指將不合法的節點加入到黑名單中,並將這個不合法的節點的相關信息丟棄。這種採用懲罰機制,意味著區塊鏈中各個節點是誠實的,所有節點的安全是共識的,提高了整個移動終端網絡的安全性。
在一些實施例中,還包括:新用戶註冊加入到移動終端網絡。
具體來說,就是想要加入到移動終端網絡的節點必須通過用戶註冊才能加入到移動終端網絡中,若不通過,則將該用戶放置到黑名單中。這個待加入移動終端網絡的節點需要將證書中初始化的公鑰、時間戳t以及對區塊鏈中最後區塊的雜湊值籤名後廣播。假設待加入移動終端網絡的節點相鄰的節點接收到待參與會話的節點的公鑰後,將公鑰加密後的挑戰值chg發送給待加入移動終端網絡的節點,如果待加入移動終端網絡的節點可以用自己所籤名的相同挑戰值進行回復,意味著待加入移動終端網絡的節點相鄰的節點知道為持有該公鑰對應的私鑰的真實用戶,即完成了移動終端網絡的註冊。
結合圖4所示,註冊的具體步驟為:
s1:對區塊鏈中的前導節點進行驗證,以確認前導節點的身份是否真實,如果驗證通過,全網廣播待加入移動終端網絡的節點身份認證信息,身份認證信息包括公鑰、時間戳以及對區塊鏈中最後區塊的雜湊值籤名。其中,前導節點為在時間上最後一個加入到移動終端網絡中的節點。
s2:接收待加入移動終端網絡的節點發送身份認證信息,計算區塊鏈中的節點與待加入移動終端網絡的節點之間的第一共同會話密鑰,並根據第一共同會話密鑰生成第一身份信息與待加入移動終端網絡的節點進行通信,其中,第一身份信息包括:區塊鏈中的節點的公鑰、區塊鏈中的節點的挑戰值、以及對兩者的雜湊值的籤名;
s3:計算待加入移動終端網絡的節點與區塊鏈中的的第二共同會話密鑰,並根據第二共同會話密鑰解密第一共同會話密鑰,並根據解密後的第一共同會話密鑰和第二共同會話密鑰生成第二身份信息與區塊鏈中的節點進行通信,其中,第二身份信息包括:待加入移動終端網絡的節點的公鑰、待加入移動終端網絡的節點的挑戰值、區塊鏈中的節點的挑戰值、以及三者之間的雜湊值的籤名;
s4:接收第二身份信息,如果區塊鏈中的節點從第二身份信息中確認包含自己的挑戰值,則使得待加入移動終端網絡的節點完成了用戶註冊。
步驟s4還包括:根據所述第二身份信息,使得區塊鏈中的節點生成第一驗證信息,以便待加入移動終端網絡的節點對區塊鏈中的節點進行身份驗證,其中,第一驗證信息包括:待加入移動終端網絡的節點的挑戰值和區塊鏈中的節點的公鑰。
其中,區塊鏈中的節點可以為待加入移動終端網絡的節點的相鄰的節點,且這個節點在處在區塊鏈中。
作為一個示例,結合圖3所示,待參與會話的節點為alice,待參與會話的節點相鄰的節點為與alice相鄰的bob為例,alice想要加入移動終端組成的通信網絡時,首先搜索前導區塊的公鑰對該區塊進行驗證,然後利用自己的私鑰skalice對當前時間戳t和公鑰pkalice的雜湊值hash(pkalice,t)籤名後,同時間戳和公鑰進行廣播。廣播內容:
bob收到來自alice的廣播後,從區塊鏈中的第一區塊搜索alice的會話公鑰計算出自己與alice的共同會話密鑰然後,bob向alice發送經過兩人共同會話密鑰加密的自己的公鑰pkbob、挑戰值chgbob、以及對兩者的雜湊後的籤名bob向alice發送的內容:
alice同樣從第一區塊中獲得bob的會話公鑰並以此計算出兩者的會話密鑰alice使用該會話密鑰對bob發送的內容進行解密獲得chgbob,並使用會話密鑰對自己的公鑰pkalice,bob發送的挑戰值chgbob,另一挑戰值chgalice,以及三者的雜湊值hash(pkalice||chgbob||chgalice)的籤名加密後發送給bob。alice向bob發送:
bob收到後解密獲得alice公鑰,確認自己發送的挑戰值chgbob,同時將alice的挑戰值和自己的公鑰pkbob發送給alice進行確認。bob向alice發送:
最終,alice已經完成了公/私鑰對的註冊更新,同時完成了通信網絡身份確認和註冊,通過廣播其更新記錄,可以為其他用戶與其通信做好安全通信基礎。如果alice將離線,為了確保alice不會被分配給下一個礦工,她必須撤銷區塊鏈中的公鑰。當她重新加入移動終端網絡時,她可以註冊她的最新公鑰:
在一些實施例中,待加入移動終端網絡的節點完成註冊後,向區塊鏈廣播待加入移動終端網絡的節點的節點的信息。這樣可以使區塊鏈中的其他節點能及時存儲待加入移動終端網絡的節點的相關信息,以便可以對區塊鏈中已證合法用戶進行密鑰協商。並且,若不能通過驗證,則實行懲罰機制。
在一些實施例中,撤銷待加入移動終端網絡的節點在所述區塊鏈中的公鑰,以實現所述待加入移動終端網絡的節點的離線。這樣可以避免節點被分配給下一個礦工,所以在節點在網絡離線時,撤掉自己在區塊鏈中的公鑰,如果想要重新加入該移動終端網絡中,則重新進行註冊自己的最新公鑰即可。
在進行註冊之前,還包括:根據可信公鑰基礎設施,獲取待加入移動終端網絡的節點的公鑰證書,並將待加入移動終端網絡的節點的公鑰證書存儲在區塊鏈的第一塊中。
結合圖2所示,公鑰證書包括:節點名稱、公鑰、公共會話密鑰、pki籤名的籤名信息。作為一個示例,alice的證書應包含:節點id名——alice、公共密鑰pkalice、公共會話密鑰以及由pki籤名防篡改防偽和完整性度量的籤名所有內容以證書形式包含在區塊鏈的第一塊中。
在創建節點時,所有節點的證書都包含在第一區塊。證書的順序由pki隨機排序。公鑰所對應的私鑰由節點用戶自己保存且節點保存的私鑰是保密的。節點的公鑰表示為pkid;公共會話密鑰表示為「pki籤名的籤名」是利用pki的私鑰對用戶id和該用戶的公鑰的雜湊值進行籤名,表示為值得注意的是,該移動終端網絡中的參數也在包含區塊鏈礦工後選編號和欺騙節點接受懲罰機制時受處罰節點處黑名單中的塊數的第一塊中進行初始化。
綜上所述,本發明的優點和功效是:
1)將區塊鏈技術與密碼學中的密鑰協商結合,利用區塊鏈中新加入區塊需對前導區塊進行驗證和創建新區塊時廣播內容接受其他節點用戶驗證的的特點,使得區塊鏈中各用戶可以與任意已證合法用戶進行密鑰協商從而進行通信。
2)採取了懲罰機制,可以監控區塊鏈中節點用戶的行為和對惡意節點進行懲罰仲裁。意味區塊鏈中節點是誠實的,並且礦工如果拒絕生成一個新塊將會被放入黑名單並隔離,所有節點都具有穩定的安全的共識,如果所有礦工罷工,將會花費更多的能量來重新組織系統,提高了安全性。
3)公共密鑰可以頻繁地更新,即使節點不是一直在線仍然可以獲得最新的會話密鑰。
此外,術語「第一」、「第二」僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有「第一」、「第二」的特徵可以明示或者隱含地包括至少一個該特徵。在本發明的描述中,「多個」的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本發明中,除非另有明確的規定和限定,術語「安裝」、「相連」、「連接」、「固定」等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通或兩個元件的相互作用關係,除非另有明確的限定。對於本領域的普通技術人員而言,可以根據具體情況理解上述術語在本發明中的具體含義。
在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特徵進行結合和組合。
儘管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的範圍內可以對上述實施例進行變化、修改、替換和變型。