本發明涉及一種基于量子真隨機數協商密鑰協商系統及協商方法,特別是涉及一種針對不安全的有線和無線網絡環境,基于量子真隨機數協商密鑰協商系統及協商方法。
背景技術:
密鑰共享是保密通信的關鍵所在,兩個合法用戶之間的安全通信基于只有通信雙方才知道的一個秘密密鑰,合法的通信雙方如何才能安全、實時地共享一組密鑰是設計密碼系統必須解決的問題。
經典密碼學將密鑰分發的安全性建立在數學難題和破解計算的復雜度上,其密鑰協商過程中交互傳遞的密鑰信息由高強度加密算法來實施保護,但這并不能保障其絕對的安全性,其原因是隨著計算機的性能的不斷增強,尤其是當具有超快計算能力的量子計算機進入實際應用時,基于經典密碼學的密鑰分發方法的安全性必然會受到嚴重威脅。因此,網絡安全應用對研制和設計具有高安全性的密鑰分發方法的需求十分迫切。
雖然基于測不準、不可克隆等物理安全特性的量子密鑰分發(QKD)方法在理論上具有絕對的安全性,但是也無法解決無線應用與廣域網遠程鏈路的密鑰分發問題。
此外,采取人工密鑰分發的方法,雖然也能使密鑰信息避免遭受信道竊取攻擊,但其密鑰基本上是固定的,幾乎不具備動態變化的能力,靈活性很差,而且預設的密鑰組數受到存儲容量限制。而且,密碼系統若長期使用組數有限的固定密鑰也具有密鑰被破解的風險。此外,人工密鑰的頻繁更換過程中也具有人為泄密的較高風險。
技術實現要素:
本發明要解決的技術問題是提供一種能夠用于不安全的無線和有線鏈路上,具有高安全性的基于量子真隨機數協商密鑰協商系統及協商方法。
本發明采用的技術方案如下:一種基于量子真隨機數協商密鑰協商系統,其特征在于:鏈路兩端,每端分別包括與密鑰協商控制模塊分別相連的受控偽隨機數序列發生器、量子真隨機數序列發生器和哈希運算模塊;所述量子真隨機數序列發生器產生量子真隨機數序列碼流,為密鑰協商過程提供真隨機數數據塊;所述受控偽隨機數序列發生器產生偽隨機數序列碼流,為密鑰協商過程提供需要的偽隨機數序列數據塊;所述密鑰協商控制模塊實現密鑰協商協議,即鏈路兩端的共享密鑰的協商過程。
本發明基于鏈路兩端的受控偽隨機數序列發生器與各自獨立運行的不受控的量子真隨機數序列發生器。
還包括數字簽名運算模塊,提供數字簽名運算功能。
所述量子真隨機數序列發生器為基于光量子噪聲的真隨機數序列發生器,基于光量子噪聲的真隨機特性產生量子真隨機數序列碼流。
基于上述量子真隨機數協商密鑰分發系統的密鑰協商方法為:鏈路兩端通過協商協議互相交換一組相同長度的非相關量子真隨機數序列;每端鏈路將對端交換過來的量子真隨機數序列經過哈希值運算后,與本端用于交換的那組量子真隨機數序列進行對比,對相同bit位置bit值相同的bit位置進行標記,獲得相同bit值位置標記信息;讀取一組偽隨機數序列;根據所述相同bit值位置標記信息,從讀取的一組偽隨機數序列中逐一取出相應位置的bit值,構成一個密鑰原始材料bit串;將獲得的原始材料bit串經過另一個哈希運算,獲得最終需要的共享密鑰。
由于在密鑰協商過程中,鏈路兩端不交換用于構造密鑰的原始數據信息,因此竊聽者無法獲取到關于所分發的密鑰的任何信息。因此,確保了密鑰分發的高安全性。
所述方法還包括,密鑰協商協議使用了密鑰協商請求、密鑰協商響應以及密鑰協商確認3種不同格式的消息;3種不同格式的消息均包括密鑰協商消息類型和密鑰協商消息序號;密鑰協商消息類型用于區分三種消息:請求消息、響應消息和確認消息;密鑰協商消息序號用于區分不同的密鑰協商事件;密鑰協商請求消息還包括偽隨機數發生器初始參數編號、偽隨機數發生器算法參數編號、偽隨機數碼流讀取起始位置和量子真隨機數;密鑰協商響應消息還包括量子真隨機數。密鑰協商消息含有的序列號提供抗重放攻擊能力。
3種不同格式的消息均還包括消息保護哈希值,為各個消息中將保護哈希值域之前的值域內容構成一個數據塊后進行哈希運算得到的消息保護哈希值域內容。
3種不同格式的消息均還包括消息哈希值數字簽名,用于傳送哈希值域的數字簽名以確保消息的真實性。
消息保護哈希值域和消息哈希值數字簽名域,共同用于防止針對密鑰協商過程的消息假冒和篡改攻擊,提供了身份認證機制,提高了密鑰協商過程的安全性。
密鑰協商過程需要發送和接收密鑰協商請求、密鑰協商響應以及密鑰協商確認3條消息。密鑰協商過程圍繞這3條消息的發送之前與接收之后的處理實施。
所述密鑰協商方法還包括,進行密鑰協商請求時,將密鑰協商請求消息保存一個消息副本,如果在設定時間閾值范圍內沒有收到密鑰協商響應消息,則根據保存的消息副本重新發送密鑰協商請求消息。
與現有技術相比,本發明的有益效果是:能夠徹底消除敵手的信道竊聽攻擊渠道,并且在密鑰協商過程中不傳遞與密鑰原始材料相關的任何信息,使敵手無法基于信道竊聽或破譯手段獲取任何與所產生的共享密鑰有關的任何信息。
附圖說明
圖1為本發明其中一實施例的密鑰分發系統結構框圖。
圖2為本發明其中一實施例的密鑰協商清秀消息格式示意圖。
圖3為本發明其中一實施例的密鑰協商相應消息格式示意圖。
圖4為本發明其中一實施例的密鑰協商確認消息格式示意圖。
圖5為本發明其中一實施例的密鑰協商流程示意圖。
圖6為本發明其中一實施例的主動發起密鑰協商流程示意圖。
圖7為本發明其中一實施例的密鑰協商響應控制與處理流程示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
本說明書(包括摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
具體實施例1
如圖1所示,一種基于量子真隨機數協商密鑰協商系統,鏈路兩端,每端分別包括與密鑰協商控制模塊分別相連的受控偽隨機數序列發生器、量子真隨機數序列發生器和哈希運算模塊;所述量子真隨機數序列發生器產生量子真隨機數序列碼流,為密鑰協商過程提供真隨機數數據塊;所述受控偽隨機數序列發生器產生偽隨機數序列碼流,為密鑰協商過程提供需要的偽隨機數序列數據塊;所述密鑰協商控制模塊實現密鑰協商協議,即鏈路兩端的共享密鑰的協商過程。
具體實施例2
在具體實施例1的基礎上,還包括數字簽名運算模塊,提供數字簽名運算功能。
具體實施例3
在具體實施例1或2的基礎上,所述量子真隨機數序列發生器為基于光量子噪聲的真隨機數序列發生器,基于光量子噪聲的真隨機特性產生量子真隨機數序列碼流。
具體實施例4
在具體實施例1到3之一的基礎上,基于量子真隨機數協商密鑰分發系統的密鑰協商方法為:鏈路兩端通過協商協議互相交換一組相同長度的非相關量子真隨機數序列;每端鏈路將對端交換過來的量子真隨機數序列經過哈希值運算后,與本端用于交換的那組量子真隨機數序列進行對比,對相同bit位置bit值相同的bit位置進行標記,獲得相同bit值位置標記信息;讀取一組偽隨機數序列;根據所述相同bit值位置標記信息,從讀取的一組偽隨機數序列中逐一取出相應位置的bit值,構成一個密鑰原始材料bit串;將獲得的原始材料bit串經過另一個哈希運算,獲得最終需要的共享密鑰。
由于在密鑰協商過程中,鏈路兩端不交換用于構造密鑰的原始數據信息,因此竊聽者無法獲取到關于所分發的密鑰的任何信息。因此,確保了密鑰分發的高安全性。
具體實施例5
在具體實施例4的基礎上,如圖2到圖4所示,所述方法還包括,密鑰協商協議使用了密鑰協商請求、密鑰協商響應以及密鑰協商確認3種不同格式的消息;3種不同格式的消息均包括密鑰協商消息類型和密鑰協商消息序號;密鑰協商消息類型用于區分三種消息:請求消息、響應消息和確認消息;密鑰協商消息序號用于區分不同的密鑰協商事件;密鑰協商請求消息還包括偽隨機數發生器初始參數編號、偽隨機數發生器算法參數編號、偽隨機數碼流讀取起始位置和量子真隨機數;密鑰協商響應消息還包括量子真隨機數。密鑰協商消息含有的序列號提供抗重放攻擊能力。
具體實施例6
在具體實施例5的基礎上,3種不同格式的消息均還包括消息保護哈希值,為各個消息中將保護哈希值域之前的值域內容構成一個數據塊后進行哈希運算得到的消息保護哈希值域內容。
具體實施例7
在具體實施例6的基礎上,3種不同格式的消息均還包括消息哈希值數字簽名,用于傳送哈希值域的數字簽名以確保消息的真實性。
密鑰協商過程需要發送和接收密鑰協商請求、密鑰協商響應以及密鑰協商確認3條消息。密鑰協商過程圍繞這3條消息的發送之前與接收之后的處理實施。
具體實施例8
在具體實施例4到7之一的基礎上,所述密鑰協商方法還包括,進行密鑰協商請求時,將密鑰協商請求消息保存一個消息副本,如果在設定時間閾值范圍內沒有收到密鑰協商響應消息,則根據保存的消息副本重新發送密鑰協商請求消息。
所述量子真隨機數發生器具有一個容量不小于16K字節的量子真隨機數存儲池,按地址循環的方式持續地寫入所產生的量子真隨機數序列到所述量子真隨機數存儲池中,密鑰協商控制模塊根據密鑰協商過程的需要隨時讀取所述量子真隨機數存儲池內地址連續的一塊真隨機數序列。
所述量子真隨機數序列發生器上電后持續獨立運行,無需外部進行參數控制。對量子真隨機數存儲池的獨缺操作也是基于連續的地址循環進行。
所述受控偽隨機數序列發生器,在每一次運算之前,密鑰協商協議控制模塊都要設置其初始參數、偽隨機序列產生算法參數與運算次數參數(所述運算次數參數用于確定寫入偽隨機數存儲池的起始時刻)設置控制,記錄和暫存所產生的偽隨機數序列碼流。所述受控偽隨機數序列發生器具有一個容量不小于16K字節的偽隨機數存儲池,密鑰協商控制模塊根據密鑰協商流程控制的需要啟動所述受控偽隨機數序列發生器運算,并進行讀取需要的偽隨機數序列數據塊。
所述哈希運算模塊實現相同長度輸出的全域哈希運算和固定長度輸出兩種模式共3個哈希函數(hash_f1、hash_f2及hash_f3)的哈希運算功能,根據密鑰協商控制模塊的命令執行哈希運算,接受其源數據寫入與哈希運算結果數據讀出的操作控制。
所述密鑰協商控制模塊,實現密鑰協商協議,即鏈路兩端的共享密鑰的協商過程;其功能包括:讀取量子真隨機序列碼流數據;密鑰協商消息產生與發送處理;密鑰協商協議消息接收處理;偽隨機數序列發生器的初始參數、偽隨機序列產生算法參數、偽隨機序列碼流運算次數與讀取位置的設置,以及偽隨機碼流產生的算法啟動控制;讀取從指定位置開始的偽隨機序列碼流數據塊;哈希運算函數運算控制;相同比特位置標記運算;密鑰原始材料bit串的構造;共享密鑰的確定。
在有線鏈路上,密鑰協商過程一般都只需要相互交換傳送一次密鑰協商消息。而在無線鏈路上,可能存在因信道誤碼出現傳輸失敗的情況,則需要基于超時機制,重傳密鑰協商消息。在本發明申請中,如圖2到圖4所示,密鑰協商協議使用了密鑰協商請求、密鑰協商響應以及密鑰協商確認3種不同格式的消息。
3種不同格式的消息均包括密鑰協商消息類型和密鑰協商消息序號。密鑰協商消息類型(3bit)用于區分三種消息:01代表請求消息,02代表響應消息,03代表確認消息。密鑰協商消息序號(29bit)用于區分不同的密鑰協商事件。
密鑰協商請求消息還包括偽隨機數發生器初始參數編號(16bit)、偽隨機數發生器算法參數編號(16bit)、偽隨機數碼流讀取起始位置(256Byte)和量子真隨機數;密鑰協商響應消息還包括量子真隨機數。
3種不同格式的消息均還包括消息保護哈希值和消息哈希值數字簽名;消息保護哈希值域(256bit)用于傳送該域前面那些值域的哈希(hash_f1)計算值,數據簽名域(256Byte)用于傳送哈希值域的數字簽名以確保消息的真實性,這兩個消息域共同用于防止針對密鑰協商過程的消息假冒和篡改攻擊,提供了身份認證機制,提高了密鑰協商過程的安全性。
密鑰協商過程需要發送和接收密鑰協商請求、密鑰協商響應以及密鑰協商確認3條消息。密鑰協商過程圍繞這3條消息的發送之前與接收之后的處理實施。
具體實施例9
密鑰協商發起控制與處理流程為:
當密鑰協商控制處理模塊接收到來自密碼系統的密鑰分發命令時,主動發起包含共有22個步驟的密鑰協商控制與處理流程。
如圖5所示,主動發起密鑰協商具體流程如下所述:
步驟S101:初始化,向各模塊發送復位控制命令,將偽隨機數池清零,進入初始狀態;
步驟S102:等待接收密碼系統的密鑰分發指示,若接收到密碼系統的密鑰分發指示,則進入密鑰協商過程;
步驟S103:隨機選取偽隨機數發生器的初始參數編號、算法參數編號、讀取起始位置參數(用于確定寫入偽隨機數池的起始時刻),構造一個偽隨機數產生命令,通過內部總線傳遞給受控偽隨機數序列發生器,啟動偽隨機數產生過程,所產生的自起始位置參數開始時刻的偽隨機數碼流將自動填充到該模塊內的偽隨機數池內,直到將其密鑰池填滿(16KByte)為止;
步驟S104:從真隨機數池中讀取本端產生的256字節長的量子真隨機數數據塊,填充到密鑰協商請求消息內的量子真隨機數值域內,并保存該真隨機數數據塊的一個副本備用;
步驟S105:將密鑰協商消息類型值、密鑰協商消息序號值、隨機選取的初始參數編號、算法參數編號、讀取起始(時刻)位置參數,填充到密鑰協商請求消息內的相應值域內。將密鑰協商請求消息前面6個值域內容構成一個數據塊整體,控制哈希運算模塊進行哈希運算(hash_f1),將得到的256bit結果填充到消息保護哈希值域。使用一種非對稱公鑰算法,針對消息保護哈希值域,基于預先人工分配得到的鏈路對端的公鑰,進行數字簽名加密運算,將得到的簽名值填充到消息哈希值數字簽名值域中;密鑰協商請求消息封裝到一個標準IP報文內,保存一個消息副本,并且將協商請求消息向鏈路對端傳輸;然后啟動一個消息請求重發定時器T1,并且將一個重發計數器N1設置為最大允許的重傳次數上限值;
步驟S106:判斷是否接收到有效的協商響應消息;若沒有接收到有效的協商響應消息,轉至步驟S107;否則轉至步驟S111;
步驟S107:判斷定時器T1是否超時;若是,則轉至步驟S108;若否轉至步驟S107;
步驟S108:判斷(N1-1)是否0;若是,則轉至步驟S109執行重發;若不是,轉至步驟S110向系統報告分發失敗;
步驟S109:重置定時器T1,將重發計數器值減1,并重發協商請求消息副本,轉至步驟S106;
步驟S110:向系統報告分發失敗結果;轉至步驟S121;
步驟S111:根據消息序號判斷是否首次接收到的協商響應消息;若是,轉至步驟S112;若否,轉至步驟S118執行;
步驟S112:構造一個協商確認消息,將響應消息中前面2個值域的內容復制到確認消息的對應值域中,進行消息保護哈希運算(hash_f1)和哈希值簽名運算,將運算結果填充到確認消息的對應值域中,向鏈路對端發送回密鑰協商確認消息;啟動確認消息重發超時定時器T2,設置確認消息重發計算器N2;
步驟S113:將鏈路兩端交換的256字節(2048bit)真隨機數劃分為4個連續的64字節塊,分別針對每個64字節塊進行等長輸出的全域哈希運算(hash_f2,增強安全性)后,獲得4個64字節的哈希值,再逐個bit進行相同位置對應比特值的比較,獲得相同bit(“0”或“1”)值位置標記信息;在兩個完全獨立產生的2048bit的隨機數中,平均具有1024個具有相同bit值的位置;是否需要進行劃分和如何進行劃分,根據實際情況而定;
步驟S114:一直等待偽隨機數池內填充的字節長度達到操作要求的運算算法長度下限,當已寫入了至少256字節的偽隨機數序列數據時,轉至下一步驟的處理;
步驟S115:則從偽隨機數池中讀取開頭的連續256字節長的偽隨機數數據塊,進入下一步驟的處理;針對256字節長的偽隨機數數據塊,基于相同bit值位置標記信息,從偽隨機數數據塊中逐一取出相應位置的那些數字bit(“0”或“1”)值,構成一個密鑰原始材料bit串,完成一輪密鑰原始材料的獲取操作;若本輪操作所獲得的密鑰原始材料bit串的總長度達到了規定的最小長度值要求,則轉至步驟S116;若所獲得的這些相同比特值的總數沒有達到規定的最小長度值要求,則從受控偽隨機數池中獲取緊接著的下一塊256字節長的偽隨機序列數據,重新根據相同量子隨機數bit值位置標記記錄,進行繼續獲取更多密鑰原始材料bit串的操作,將獲得的bit串結果與前面獲得的bit串結果串接形成一個更長的密鑰原始材料bit串,直到獲得所要求的最小長度為止;
步驟S116:對所獲得的密鑰原始材料bit串(1024bit長)劃分為2個數據塊塊分別進行哈希運算(hash_f3),得到2個64字節(512bit)的哈希值,將這兩個512bit的哈希值串接在一起,獲得最終需要的1024bit長度的共享密鑰;是否需要進行劃分和如何進行劃分,根據實際情況而定;
步驟S117:向本端密碼系統報告協商分配得到的共享密鑰;
步驟S118:等待T2超時;若T2超時,轉至下一步驟的處理。若T2未超時,繼續等待;
步驟S119:若(N2-1)>0,則轉至下一個步驟的處理;否則,轉至步驟S121;
步驟S120:重發確認消息,重啟T2,N2值減1;轉至步驟S118;
步驟S121:將本端的協商消息產生序號值循環加1;
步驟S122:結束操作。
如圖6所示,密鑰協商響應控制與處理流程為:
步驟S201:初始化,向各模塊發送復位控制命令,將偽隨機數密鑰池清零,進入初始狀態;
步驟S202:等待接收鏈路對端的密鑰協商請求消息;當接收到一個消息時,經過接收過程的哈希保護計算與接收過程的數字簽名計算,進行消息的有效性判斷;若這兩種計算結果中有任何一個與消息對應值域不一致,則消息是無效的并且不做任何處理;若這兩種計算結果都與消息對應值域完全一致,則為有效的消息;若未接收到有效的協商請求消息,則繼續等待。若接收到有效的協商請求消息,則轉至下一個處理步驟執行;
步驟S203:根據接收到的密鑰協商請求消息內包含的消息序號和本端的接收消息序號記錄,判斷是否首次接收到的與該消息序號相應的請求;若不是首次接收的協商請求消息序號,則轉至步驟S207;若是首次接收,保存請求消息中的量子真隨機數數據塊備用,記錄當前的密鑰協商消息序列號,轉至下一個處理步驟去執行;
步驟S204:取出該請求消息內的初始參數編號、算法參數編號、偽隨機數起始位置參數,構造一個偽隨機數產生命令,通過內部總線傳遞給受控偽隨機數序列發生器,啟動偽隨機數產生過程,所產生的自起始位置參數開始的偽隨機數碼流將自動填充到該模塊內的偽隨機數池內,直到將偽隨機數池填滿為止;
步驟S205:從本端的真隨機數池中讀取連續的256字節真隨機數數據塊,保存備用;
步驟S206:執行對雙方真隨機數的哈希計算,相同比特位置標記信息計算;將鏈路兩端交換的256字節(2048bit)真隨機數劃分為4個連續的64字節塊,分別針對每個64字節塊進行哈希運算(hash_f2,增強安全性)后,獲得4個64字節的哈希值,再逐個bit進行相同位置對應比特值的比較,獲得相同bit(“0”或“1”)值位置標記數據;在兩個完全獨立產生的2048bit的隨機數中,平均具有1024個具有相同bit值的位置;
步驟S207:將協商消息類型域的值填充為響應消息類型值,將協商消息序號之填充為與請求消息序號相同的值,復制填充到需要構造的密鑰協商響應消息內的相應值域內,將本端產生的真隨機數填充協商響應消息內的相應值域內;針對響應消息前面3個值域內容執行發送過程的哈希保護運算,將運算結果填充到哈希保護值域中;針對消息保護哈希值域執行發送過程的數字簽名運算,將運算結果填充到哈希保護值數字簽名域中。將密鑰協商響應消息封裝到一個標準IP報文內,保存該協商響應消息的副本,并且將該協商響應消息向鏈路對端傳輸;然后啟動一個消息響應重發定時器T3,并且將一個重發計數器N3設置為最大允許的重傳次數上限值;
步驟S208:一直等待本端偽隨機數池內填充的字節長度達到操作要求的長度下限;然后轉至下一個步驟執行;
步驟S209:從偽隨機數池內讀取開頭的連續256字節長的偽隨機數數據塊備用。然后轉至下一個步驟執行;
步驟S210:執行密鑰原始材料bit串獲取運算。針對256字節長的偽隨機數數據塊,基于相同bit值位置標記信息,從偽隨機數數據塊中逐一取出相應位置的那些數字bit(“0”或“1”)值,構成一個密鑰原始材料bit串,完成一輪密鑰原始材料的獲取操作;
步驟S211:判斷密鑰原始材料bit串的總長度達到了規定的最小長度值要求;若未達到最小長度值要求,則轉至步驟S209執行,繼續獲取下一個連續的256字節長偽隨機數據塊,重新根據相同bit值位置的標記信息記錄,繼續進行獲取更多密鑰原始材料bit串的操作,將獲得的bit串結果與前面獲得的bit串結果串接形成一個更長的密鑰原始材料bit串。若達到了規定的最小長度值要求,則轉至下一個步驟執行;
步驟S212:執行共享密鑰計算;對所獲得的密鑰原始材料bit串(1024bit長)劃分為2個數據塊塊分別進行哈希運算(hash_f3),得到2個64字節(512bit)的哈希值,將這兩個512bit的哈希值串接在一起,獲得最終需要的1024bit長度的共享密鑰;然后轉至下一個步驟執行;
步驟S213:向本端密碼系統通告協商分配得到的共享密鑰;然后轉至下一個步驟執行;
步驟S214:判斷是否接收到有效的協商確認消息;若是,轉至步驟S219,結束本輪密鑰分發過程;若不是,轉至下一個步驟執行;
步驟S215:等待T3超時;若T3超時,轉至下一步驟的處理;若T3未超時,繼續等待;
步驟S216:若(N3-1)>0,則轉至下一個步驟的處理;否則,轉至步驟S218;
步驟S217:重發協商響應消息副本,重啟T3,N3值減1;轉至步驟S214;
步驟S218:向本端密碼系統通告協商失敗結果;
步驟S219:結束。
本具體實施例提出的密鑰分發方法中,每個方向交換傳輸的量子真隨機數序列長度不少于1024字節,兩個獨立產生的量子真隨機數bit取相同值(0或1)的平均概率為0.5。鏈路兩端交換的256字節(2048bit)真隨機數經過等長輸出的全域哈希運算(增強安全性)后,再逐個bit進行相同位置對應比特值的比較,獲得相同bit位置標記數據,那么平均具有1024個bit值相同的位置標記。然后,根據這些相同bit值的標記信息,基于本地產生的偽隨機碼流數據,確定構造密鑰的原始材料信息。由于協商過程不交換傳遞密鑰原始材料信息,因而具有很高的安全性。
本具體實施例設計的密鑰協商機制在實現過程中需要應用以下這些運算功能:
發送過程的哈希保護運算:針對發送消息內位于消息保護哈希值域前面的那些值域的內容控制哈希運算模塊進行哈希運算(hash_f1),將得到的計算結果填充到發送消息的保護哈希值域內;
接收過程的哈希保護運算:針對接收消息內位于哈希值域前面的那些值域的內容,控制哈希運算模塊進行哈希運算(hash_f1),將得到的256bit結果與接收消息保護哈希值域進行比較;若不相同則表明消息被篡改了,為無效的消息;
發送過程的數字簽名運算:發送一條協商消息前,針對消息保護哈希值域使用對端的公鑰進行數字簽名加密運算,將得到的計算結果填充到發送消息的消息哈希值數字簽名域內;
接收過程的數字簽名運算:針對消息保護哈希值域使用本端的私鑰進行數字簽名解密運算,若其簽名運算結果與接收消息內的數字簽名值域不相同,則該消息為無效的消息;
密鑰協商消息序號運算:每一輪密鑰協商過程中涉及到的3個消息序號都必須一致;而且,每經過一輪密鑰協商,本端的消息序號值增量1;在密鑰協商過程中,響應消息和確認消息的序號都必須與請求消息的序號一致,否則為無效的消息;
相同bit值位置標記信息獲取運算:針對長度相同的兩個隨機數比特串,針對每個相同位置的bit值依次進行一一對應的比對,若相同位置的bit值相同(同為“0”或“1”值)則標記為1;獲得的相同bit值位置標記信息記錄的長度與這兩個用作比對的比特串相同;若對應bit位置的bit值不相同,則標記為0;
密鑰原始材料bit串運算:基于相同bit值位置標記信息記錄,針對本地產生的同樣比特長度的偽隨機數bit串中的每一個bit,取出與標記信息記錄標記為“1”值的對應位置的那些bit值,級聯構成一個新的bit串,作為密鑰的原始材料。
本發明提供的密鑰分發方法,主要基于偽隨機數發生器、量子真隨機數發生器、3種哈希運算以及數字簽名保護機制,通過交換偽隨機數發生器控制參數、量子真隨機數,不在不安全的公開信道上傳輸密鑰原始材料信息,杜絕了敵手通過公開信道竊取密鑰信息的可能性。聯合采用哈希運算和數字簽名的方法,為密鑰協商消息提供了防篡改和真實性的安全保障。該算法主要用于在不安全的無線或有線鏈路上實現高安全性的密鑰分發,密鑰協商過程的可靠性高。