本發明涉及網絡安全,尤其是一種分層分布式身份認證方法、存儲介質及電子設備。
背景技術:
1、隨著區塊鏈技術和量子計算的發展,分布式系統的安全性問題變得日益嚴峻。特別是,量子計算機的強大計算能力將會破壞基于傳統密碼學的身份認證方法,如rsa和ecc,這對當前使用這些算法的身份認證系統構成了巨大威脅。為了應對這一挑戰,后量子密碼學為抗量子計算的身份認證提供了幾種可能的方向。基于格的密碼學是最為成熟和研究廣泛的后量子密碼學方法之一,因其基于lwe(learning?with?errors)和sis(short?integersolution)等數學難題,被認為具有很強的抗量子計算能力。lyubashevsky提出了一種基于格的零知識證明方案,通過隨機向量生成承諾值,并結合fiat-shamir變換實現了非交互式零知識證明。這種方法在后續的格簽名和身份認證協議中得到了廣泛應用。peikert的研究進一步發展了基于lwe的nizk(non-interactive?zero-knowledge)證明,優化了證明的效率和安全性,并為更大規模應用提供了可行性。ducas和micciancio則在標準模型下改進了短格簽名方案,提供了更短的簽名長度和更高的計算效率,為基于格的身份認證系統提供了更實用的解決方案。此外,xu等提出了一種基于格的輕量級身份認證協議,用于物聯網(iot)設備,展示了其在資源受限環境中的高效性和安全性。hossain等人設計了一種基于格的身份認證框架,適用于邊緣計算和云計算環境,通過結合格密碼學的簽名和認證技術來抵御量子攻擊。盡管這些基于格的零知識證明和身份認證方案在抗量子計算方面表現優越,但大多數現有方案缺乏層次化的設計,難以支持區塊鏈環境中多級節點之間的身份認證需求。具體來說,這些方案通常為扁平化的網絡結構而設計,沒有充分考慮到節點在不同層級之間的信任關系和認證需求。在一個分層結構的系統中,不同層級之間的認證需要更高效、更安全的機制來維持系統的整體信任鏈,這些傳統方案無法有效應對這種復雜的場景。針對這一問題,本文引入了latte加密方案,并對其進行改進,使得其與基于格的非交互式零知識證明(nizk)相結合,提出了一種適用于區塊鏈的分層分布式身份認證機制。latte加密方案通過基于身份的加密和密鑰委托功能,提供了一種安全、高效且靈活的方式來管理不同層級節點之間的身份認證和授權。在多層級系統中,latte方案不僅簡化了復雜的密鑰管理,還能夠在不同層級之間實現高效的加密委托,使得認證過程可以動態調整,增強了系統在多級信任鏈環境下的靈活性和安全性。除了基于格的研究,其他后量子密碼學方向也提出了抗量子的身份認證方案。基于碼密碼學的mceliece公鑰加密系統和基于多變量多項式密碼學的rainbow簽名方案等,利用各自的數學難題提供了抗量子的安全保障。然而,這些方案普遍面臨密鑰尺寸大、計算復雜度高的問題,限制了它們在實際應用中的廣泛采用。更重要的是,這些方案主要針對單一層級的認證場景設計,同樣缺乏對分層結構的支持和優化。現有的分層分布式身份認證系統大多基于經典的密碼學方案,如基于區塊鏈的分層身份認證框架依賴于經典的公鑰基礎設施和對稱加密技術來實現身份認證。類似地,基于區塊鏈的多服務器層次身份認證采用了多級服務器架構來實現跨組織的身份認證和權限管理,但依賴于經典的橢圓曲線算法來進行身份認證。此外,基于聯盟鏈的分層身份認證系統(consortium?blockchain-based?hierarchical?identity?authentication,cbhia)提出了一種在聯盟鏈環境下的層次化身份認證機制,利用區塊鏈的多層次結構來增強系統的去中心化和可擴展性。盡管該系統通過區塊鏈技術實現了跨組織的身份認證,但它依賴于經典的加密算法。總的來說,這些傳統方案在抗量子計算方面存在顯著的不足。
技術實現思路
1、本發明解決了分層結構中密鑰管理復雜和靈活性不足的問題,提出一種分層分布式身份認證方法、存儲介質及電子設備,能夠在不同層級的節點之間實現高效的身份驗證,同時減少通信開銷和提高安全性。
2、為實現上述目的,提出以下技術方案:
3、一種分層分布式身份認證方法,包括以下步驟:
4、s1,構建區塊鏈加密環境并完成用戶分層分布式注冊;
5、s2,當第一用戶向第二用戶提出身份認證時,判斷第一用戶和第二用戶是否處于同一層級,若是,進行同層次驗證;若否,進行s3;
6、s3,利用第一用戶和第二用戶注冊時的父節點進行跨層次驗證。
7、本發明的認證機制能夠在不同層級的節點之間實現高效的身份驗證,同時減少通信開銷和提高安全性。
8、作為優選,所述構建區塊鏈加密環境的過程如下:
9、采用包括根層和中間層以及用戶層的分層結構框架,根層連接有若干層級的中間層,中間層與用戶層連接,在根層生成全局參數并將公開部分上傳至區塊鏈,密鑰的生成逐層向下傳遞。
10、本發明的區塊鏈加密環境的構建過程如下:采用分層結構框架,所述分層結構框架包括根層(root?level)、中間層(intermediate?level)和用戶層(user?level),根層位于頂端,自上而下連接有若干中間層,所述用戶層與中間層進行連接,系統初始化設置在根層進行,生成全局參數,將公開部分上傳至區塊鏈。根層作為密鑰生成中心kgc(根節點)選取大整數n,模q的整數多項式環rq=zq[x]/xn+1,中心為0標準差為σ的離散高斯分布dσ;kgc運行latte.keygen算法生成主公鑰h和主私鑰矩陣s0;將主公鑰和選取的全局參數公開,上傳至區塊鏈確保所有節點和用戶可以訪問這些參數并在同一個安全環境下工作,密鑰的生成逐層向下傳遞。
11、作為優選,所述用戶分層分布式注冊的過程如下:
12、新用戶在用戶層向中間層第一節點發送唯一標識符和時間戳來提出注冊請求,第一節點驗證通過后,成為新用戶的父節點,新用戶成為新節點,父節點賦予新節點私鑰矩陣和身份矩陣以及私鑰,并將身份矩陣以及注冊證明上傳到區塊鏈。
13、本發明的新用戶加入前要向某一節點發送注冊請求,并發送自己唯一標識符idnew和時間戳t,該節點將判斷標識符是否已被使用以及時間戳t是否有效,若都有效則注冊成功,該節點將成為新用戶的父節點。
14、作為優選,所述第一節點驗證過程如下:
15、判斷時間戳是否在允許的范圍,若否,驗證失敗,若是判斷區塊鏈上是否存在唯一標識符,若否,驗證成功,若是,驗證失敗。
16、本發明的第一節點驗證過程如下:首先驗證時間戳t是否在允許的范圍內,否則拒絕。如果t在允許時間內則驗證區塊鏈上是否存在idnew,如果idnew已存在,說明已經被注冊過,也會被拒絕并向用戶節點返回錯誤信息,否則驗證成功。
17、作為優選,所述父節點賦予新節點私鑰矩陣和身份矩陣以及私鑰的過程如下:
18、所述父節點利用latte.delegate算法和其自身的私鑰矩陣生成新節點的私鑰矩陣,利用latte.extract算法生成新節點的身份矩陣和私鑰。
19、本發明的所述父節點使用其私鑰矩陣和latte.delegate算法生成新節點的私鑰矩陣snew,使用latte.extract算法生成新節點的私鑰sknew和身份矩陣anew,并通過一個安全的信道傳遞給新節點,以防密鑰泄露。latte的引入進一步解決了分層結構中密鑰管理復雜和靈活性不足的問題,使得認證機制更適合量子安全和大規模區塊鏈網絡中的多級信任管理。
20、作為優選,所述跨層次驗證過程如下:
21、第一用戶利用其第一父節點和第二用戶的第二父節點對第二用戶進行單向驗證,驗證成功后,第二用戶以同樣方式的單向認證對第一用戶驗證身份,若第二用戶身份被確認,認證過程完成,認證結果及當前時間戳上傳至區塊鏈。
22、作為優選,所述單向驗證過程如下:
23、第一用戶向其第一父節點發送與第二用戶進行身份認證的請求,請求信息包括第一用戶和第二用戶的唯一標識符和當前時間戳;第一父節點將請求轉發到第二用戶的第二父節點,第二父節點通知第二用戶進行身份驗證;
24、第一用戶生成隨機向量并計算承諾值,將承諾值和當前時間戳發送到第一父節點;
25、第一父節點將使用fiat-shamir變換生成挑戰值并發送挑戰值到第一用戶和通過第二父節點到第二用戶;
26、第一用戶利用私鑰和挑戰值生成響應值到第一父節點;
27、第一父節點將承諾值和響應值以及當前時間戳通過第二父節點發送到第二用戶;
28、第二用戶根據獲取的數據重新計算挑戰值,若新的挑戰值滿足驗證條件,則第一用戶身份被確認。
29、在分層的分布式身份認證中,驗證分為跨層次驗證和同層次驗證兩部分,均使用基于格的非交互式零知識證明來實現,并將認證結果上傳到區塊鏈上。在該方案中,密鑰的生成是逐層向下傳遞的。因此,每個用戶的密鑰與其父節點的密鑰存在密切關系。為了保證認證的安全性和正確性,跨層次的認證必須通過父節點來實現。而同層次的認證不涉及上下級關系,因此認證更加簡單,直接在同一層級的節點之間完成,不需要中間層的干預。此外,密鑰的傳遞使得父節點與子節點之間構成了一條信任鏈,在同一信任鏈上的身份認證只需單向認證即可。
30、作為優選,所述同層次驗證過程如下:只需要在第一用戶和第二用戶兩個節點之間直接進行,第一用戶自行發起認證申請,在自身用戶節點生成挑戰值,后續步驟與跨層次驗證的過程相同。
31、對于同層次認證,只需要在兩個節點之間直接進行,不涉及其他父節點或更高層級節點的參與。
32、一種存儲介質,存儲有指令,所述指令被執行時,能夠實現權利要求7-9任一項所述的一種分層分布式身份認證方法。
33、一種電子設備,包括處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序或指令,所述程序或指令運行時能夠實現權利要求7-9任一項所述的一種分層分布式身份認證方法。
34、本發明的有益效果是:通過使用改進的latte加密方案和基于格的nizk,本文設計的認證機制能夠在不同層級的節點之間實現高效的身份驗證,同時減少通信開銷和提高安全性。latte的引入進一步解決了分層結構中密鑰管理復雜和靈活性不足的問題,使得認證機制更適合量子安全和大規模區塊鏈網絡中的多級信任管理。密鑰的傳遞使得父節點與子節點之間構成了一條信任鏈,在同一信任鏈上的身份認證只需單向認證即可。