最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng)及協(xié)商方法與流程

文檔序號:11064695閱讀:759來源:國知局
一種基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng)及協(xié)商方法與制造工藝

本發(fā)明涉及一種基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng)及協(xié)商方法,特別是涉及一種針對不安全的有線和無線網(wǎng)絡環(huán)境,基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng)及協(xié)商方法。



背景技術:

密鑰共享是保密通信的關鍵所在,兩個合法用戶之間的安全通信基于只有通信雙方才知道的一個秘密密鑰,合法的通信雙方如何才能安全、實時地共享一組密鑰是設計密碼系統(tǒng)必須解決的問題。

經典密碼學將密鑰分發(fā)的安全性建立在數(shù)學難題和破解計算的復雜度上,其密鑰協(xié)商過程中交互傳遞的密鑰信息由高強度加密算法來實施保護,但這并不能保障其絕對的安全性,其原因是隨著計算機的性能的不斷增強,尤其是當具有超快計算能力的量子計算機進入實際應用時,基于經典密碼學的密鑰分發(fā)方法的安全性必然會受到嚴重威脅。因此,網(wǎng)絡安全應用對研制和設計具有高安全性的密鑰分發(fā)方法的需求十分迫切。

雖然基于測不準、不可克隆等物理安全特性的量子密鑰分發(fā)(QKD)方法在理論上具有絕對的安全性,但是也無法解決無線應用與廣域網(wǎng)遠程鏈路的密鑰分發(fā)問題。

此外,采取人工密鑰分發(fā)的方法,雖然也能使密鑰信息避免遭受信道竊取攻擊,但其密鑰基本上是固定的,幾乎不具備動態(tài)變化的能力,靈活性很差,而且預設的密鑰組數(shù)受到存儲容量限制。而且,密碼系統(tǒng)若長期使用組數(shù)有限的固定密鑰也具有密鑰被破解的風險。此外,人工密鑰的頻繁更換過程中也具有人為泄密的較高風險。



技術實現(xiàn)要素:

本發(fā)明要解決的技術問題是提供一種能夠用于不安全的無線和有線鏈路上,具有高安全性的基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng)及協(xié)商方法。

本發(fā)明采用的技術方案如下:一種基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng),其特征在于:鏈路兩端,每端分別包括與密鑰協(xié)商控制模塊分別相連的受控偽隨機數(shù)序列發(fā)生器、量子真隨機數(shù)序列發(fā)生器和哈希運算模塊;所述量子真隨機數(shù)序列發(fā)生器產生量子真隨機數(shù)序列碼流,為密鑰協(xié)商過程提供真隨機數(shù)數(shù)據(jù)塊;所述受控偽隨機數(shù)序列發(fā)生器產生偽隨機數(shù)序列碼流,為密鑰協(xié)商過程提供需要的偽隨機數(shù)序列數(shù)據(jù)塊;所述密鑰協(xié)商控制模塊實現(xiàn)密鑰協(xié)商協(xié)議,即鏈路兩端的共享密鑰的協(xié)商過程。

本發(fā)明基于鏈路兩端的受控偽隨機數(shù)序列發(fā)生器與各自獨立運行的不受控的量子真隨機數(shù)序列發(fā)生器。

還包括數(shù)字簽名運算模塊,提供數(shù)字簽名運算功能。

所述量子真隨機數(shù)序列發(fā)生器為基于光量子噪聲的真隨機數(shù)序列發(fā)生器,基于光量子噪聲的真隨機特性產生量子真隨機數(shù)序列碼流。

基于上述量子真隨機數(shù)協(xié)商密鑰分發(fā)系統(tǒng)的密鑰協(xié)商方法為:鏈路兩端通過協(xié)商協(xié)議互相交換一組相同長度的非相關量子真隨機數(shù)序列;每端鏈路將對端交換過來的量子真隨機數(shù)序列經過哈希值運算后,與本端用于交換的那組量子真隨機數(shù)序列進行對比,對相同bit位置bit值相同的bit位置進行標記,獲得相同bit值位置標記信息;讀取一組偽隨機數(shù)序列;根據(jù)所述相同bit值位置標記信息,從讀取的一組偽隨機數(shù)序列中逐一取出相應位置的bit值,構成一個密鑰原始材料bit串;將獲得的原始材料bit串經過另一個哈希運算,獲得最終需要的共享密鑰。

由于在密鑰協(xié)商過程中,鏈路兩端不交換用于構造密鑰的原始數(shù)據(jù)信息,因此竊聽者無法獲取到關于所分發(fā)的密鑰的任何信息。因此,確保了密鑰分發(fā)的高安全性。

所述方法還包括,密鑰協(xié)商協(xié)議使用了密鑰協(xié)商請求、密鑰協(xié)商響應以及密鑰協(xié)商確認3種不同格式的消息;3種不同格式的消息均包括密鑰協(xié)商消息類型和密鑰協(xié)商消息序號;密鑰協(xié)商消息類型用于區(qū)分三種消息:請求消息、響應消息和確認消息;密鑰協(xié)商消息序號用于區(qū)分不同的密鑰協(xié)商事件;密鑰協(xié)商請求消息還包括偽隨機數(shù)發(fā)生器初始參數(shù)編號、偽隨機數(shù)發(fā)生器算法參數(shù)編號、偽隨機數(shù)碼流讀取起始位置和量子真隨機數(shù);密鑰協(xié)商響應消息還包括量子真隨機數(shù)。密鑰協(xié)商消息含有的序列號提供抗重放攻擊能力。

3種不同格式的消息均還包括消息保護哈希值,為各個消息中將保護哈希值域之前的值域內容構成一個數(shù)據(jù)塊后進行哈希運算得到的消息保護哈希值域內容。

3種不同格式的消息均還包括消息哈希值數(shù)字簽名,用于傳送哈希值域的數(shù)字簽名以確保消息的真實性。

消息保護哈希值域和消息哈希值數(shù)字簽名域,共同用于防止針對密鑰協(xié)商過程的消息假冒和篡改攻擊,提供了身份認證機制,提高了密鑰協(xié)商過程的安全性。

密鑰協(xié)商過程需要發(fā)送和接收密鑰協(xié)商請求、密鑰協(xié)商響應以及密鑰協(xié)商確認3條消息。密鑰協(xié)商過程圍繞這3條消息的發(fā)送之前與接收之后的處理實施。

所述密鑰協(xié)商方法還包括,進行密鑰協(xié)商請求時,將密鑰協(xié)商請求消息保存一個消息副本,如果在設定時間閾值范圍內沒有收到密鑰協(xié)商響應消息,則根據(jù)保存的消息副本重新發(fā)送密鑰協(xié)商請求消息。

與現(xiàn)有技術相比,本發(fā)明的有益效果是:能夠徹底消除敵手的信道竊聽攻擊渠道,并且在密鑰協(xié)商過程中不傳遞與密鑰原始材料相關的任何信息,使敵手無法基于信道竊聽或破譯手段獲取任何與所產生的共享密鑰有關的任何信息。

附圖說明

圖1為本發(fā)明其中一實施例的密鑰分發(fā)系統(tǒng)結構框圖。

圖2為本發(fā)明其中一實施例的密鑰協(xié)商清秀消息格式示意圖。

圖3為本發(fā)明其中一實施例的密鑰協(xié)商相應消息格式示意圖。

圖4為本發(fā)明其中一實施例的密鑰協(xié)商確認消息格式示意圖。

圖5為本發(fā)明其中一實施例的密鑰協(xié)商流程示意圖。

圖6為本發(fā)明其中一實施例的主動發(fā)起密鑰協(xié)商流程示意圖。

圖7為本發(fā)明其中一實施例的密鑰協(xié)商響應控制與處理流程示意圖。

具體實施方式

為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本說明書(包括摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。

具體實施例1

如圖1所示,一種基于量子真隨機數(shù)協(xié)商密鑰協(xié)商系統(tǒng),鏈路兩端,每端分別包括與密鑰協(xié)商控制模塊分別相連的受控偽隨機數(shù)序列發(fā)生器、量子真隨機數(shù)序列發(fā)生器和哈希運算模塊;所述量子真隨機數(shù)序列發(fā)生器產生量子真隨機數(shù)序列碼流,為密鑰協(xié)商過程提供真隨機數(shù)數(shù)據(jù)塊;所述受控偽隨機數(shù)序列發(fā)生器產生偽隨機數(shù)序列碼流,為密鑰協(xié)商過程提供需要的偽隨機數(shù)序列數(shù)據(jù)塊;所述密鑰協(xié)商控制模塊實現(xiàn)密鑰協(xié)商協(xié)議,即鏈路兩端的共享密鑰的協(xié)商過程。

具體實施例2

在具體實施例1的基礎上,還包括數(shù)字簽名運算模塊,提供數(shù)字簽名運算功能。

具體實施例3

在具體實施例1或2的基礎上,所述量子真隨機數(shù)序列發(fā)生器為基于光量子噪聲的真隨機數(shù)序列發(fā)生器,基于光量子噪聲的真隨機特性產生量子真隨機數(shù)序列碼流。

具體實施例4

在具體實施例1到3之一的基礎上,基于量子真隨機數(shù)協(xié)商密鑰分發(fā)系統(tǒng)的密鑰協(xié)商方法為:鏈路兩端通過協(xié)商協(xié)議互相交換一組相同長度的非相關量子真隨機數(shù)序列;每端鏈路將對端交換過來的量子真隨機數(shù)序列經過哈希值運算后,與本端用于交換的那組量子真隨機數(shù)序列進行對比,對相同bit位置bit值相同的bit位置進行標記,獲得相同bit值位置標記信息;讀取一組偽隨機數(shù)序列;根據(jù)所述相同bit值位置標記信息,從讀取的一組偽隨機數(shù)序列中逐一取出相應位置的bit值,構成一個密鑰原始材料bit串;將獲得的原始材料bit串經過另一個哈希運算,獲得最終需要的共享密鑰。

由于在密鑰協(xié)商過程中,鏈路兩端不交換用于構造密鑰的原始數(shù)據(jù)信息,因此竊聽者無法獲取到關于所分發(fā)的密鑰的任何信息。因此,確保了密鑰分發(fā)的高安全性。

具體實施例5

在具體實施例4的基礎上,如圖2到圖4所示,所述方法還包括,密鑰協(xié)商協(xié)議使用了密鑰協(xié)商請求、密鑰協(xié)商響應以及密鑰協(xié)商確認3種不同格式的消息;3種不同格式的消息均包括密鑰協(xié)商消息類型和密鑰協(xié)商消息序號;密鑰協(xié)商消息類型用于區(qū)分三種消息:請求消息、響應消息和確認消息;密鑰協(xié)商消息序號用于區(qū)分不同的密鑰協(xié)商事件;密鑰協(xié)商請求消息還包括偽隨機數(shù)發(fā)生器初始參數(shù)編號、偽隨機數(shù)發(fā)生器算法參數(shù)編號、偽隨機數(shù)碼流讀取起始位置和量子真隨機數(shù);密鑰協(xié)商響應消息還包括量子真隨機數(shù)。密鑰協(xié)商消息含有的序列號提供抗重放攻擊能力。

具體實施例6

在具體實施例5的基礎上,3種不同格式的消息均還包括消息保護哈希值,為各個消息中將保護哈希值域之前的值域內容構成一個數(shù)據(jù)塊后進行哈希運算得到的消息保護哈希值域內容。

具體實施例7

在具體實施例6的基礎上,3種不同格式的消息均還包括消息哈希值數(shù)字簽名,用于傳送哈希值域的數(shù)字簽名以確保消息的真實性。

密鑰協(xié)商過程需要發(fā)送和接收密鑰協(xié)商請求、密鑰協(xié)商響應以及密鑰協(xié)商確認3條消息。密鑰協(xié)商過程圍繞這3條消息的發(fā)送之前與接收之后的處理實施。

具體實施例8

在具體實施例4到7之一的基礎上,所述密鑰協(xié)商方法還包括,進行密鑰協(xié)商請求時,將密鑰協(xié)商請求消息保存一個消息副本,如果在設定時間閾值范圍內沒有收到密鑰協(xié)商響應消息,則根據(jù)保存的消息副本重新發(fā)送密鑰協(xié)商請求消息。

所述量子真隨機數(shù)發(fā)生器具有一個容量不小于16K字節(jié)的量子真隨機數(shù)存儲池,按地址循環(huán)的方式持續(xù)地寫入所產生的量子真隨機數(shù)序列到所述量子真隨機數(shù)存儲池中,密鑰協(xié)商控制模塊根據(jù)密鑰協(xié)商過程的需要隨時讀取所述量子真隨機數(shù)存儲池內地址連續(xù)的一塊真隨機數(shù)序列。

所述量子真隨機數(shù)序列發(fā)生器上電后持續(xù)獨立運行,無需外部進行參數(shù)控制。對量子真隨機數(shù)存儲池的獨缺操作也是基于連續(xù)的地址循環(huán)進行。

所述受控偽隨機數(shù)序列發(fā)生器,在每一次運算之前,密鑰協(xié)商協(xié)議控制模塊都要設置其初始參數(shù)、偽隨機序列產生算法參數(shù)與運算次數(shù)參數(shù)(所述運算次數(shù)參數(shù)用于確定寫入偽隨機數(shù)存儲池的起始時刻)設置控制,記錄和暫存所產生的偽隨機數(shù)序列碼流。所述受控偽隨機數(shù)序列發(fā)生器具有一個容量不小于16K字節(jié)的偽隨機數(shù)存儲池,密鑰協(xié)商控制模塊根據(jù)密鑰協(xié)商流程控制的需要啟動所述受控偽隨機數(shù)序列發(fā)生器運算,并進行讀取需要的偽隨機數(shù)序列數(shù)據(jù)塊。

所述哈希運算模塊實現(xiàn)相同長度輸出的全域哈希運算和固定長度輸出兩種模式共3個哈希函數(shù)(hash_f1、hash_f2及hash_f3)的哈希運算功能,根據(jù)密鑰協(xié)商控制模塊的命令執(zhí)行哈希運算,接受其源數(shù)據(jù)寫入與哈希運算結果數(shù)據(jù)讀出的操作控制。

所述密鑰協(xié)商控制模塊,實現(xiàn)密鑰協(xié)商協(xié)議,即鏈路兩端的共享密鑰的協(xié)商過程;其功能包括:讀取量子真隨機序列碼流數(shù)據(jù);密鑰協(xié)商消息產生與發(fā)送處理;密鑰協(xié)商協(xié)議消息接收處理;偽隨機數(shù)序列發(fā)生器的初始參數(shù)、偽隨機序列產生算法參數(shù)、偽隨機序列碼流運算次數(shù)與讀取位置的設置,以及偽隨機碼流產生的算法啟動控制;讀取從指定位置開始的偽隨機序列碼流數(shù)據(jù)塊;哈希運算函數(shù)運算控制;相同比特位置標記運算;密鑰原始材料bit串的構造;共享密鑰的確定。

在有線鏈路上,密鑰協(xié)商過程一般都只需要相互交換傳送一次密鑰協(xié)商消息。而在無線鏈路上,可能存在因信道誤碼出現(xiàn)傳輸失敗的情況,則需要基于超時機制,重傳密鑰協(xié)商消息。在本發(fā)明申請中,如圖2到圖4所示,密鑰協(xié)商協(xié)議使用了密鑰協(xié)商請求、密鑰協(xié)商響應以及密鑰協(xié)商確認3種不同格式的消息。

3種不同格式的消息均包括密鑰協(xié)商消息類型和密鑰協(xié)商消息序號。密鑰協(xié)商消息類型(3bit)用于區(qū)分三種消息:01代表請求消息,02代表響應消息,03代表確認消息。密鑰協(xié)商消息序號(29bit)用于區(qū)分不同的密鑰協(xié)商事件。

密鑰協(xié)商請求消息還包括偽隨機數(shù)發(fā)生器初始參數(shù)編號(16bit)、偽隨機數(shù)發(fā)生器算法參數(shù)編號(16bit)、偽隨機數(shù)碼流讀取起始位置(256Byte)和量子真隨機數(shù);密鑰協(xié)商響應消息還包括量子真隨機數(shù)。

3種不同格式的消息均還包括消息保護哈希值和消息哈希值數(shù)字簽名;消息保護哈希值域(256bit)用于傳送該域前面那些值域的哈希(hash_f1)計算值,數(shù)據(jù)簽名域(256Byte)用于傳送哈希值域的數(shù)字簽名以確保消息的真實性,這兩個消息域共同用于防止針對密鑰協(xié)商過程的消息假冒和篡改攻擊,提供了身份認證機制,提高了密鑰協(xié)商過程的安全性。

密鑰協(xié)商過程需要發(fā)送和接收密鑰協(xié)商請求、密鑰協(xié)商響應以及密鑰協(xié)商確認3條消息。密鑰協(xié)商過程圍繞這3條消息的發(fā)送之前與接收之后的處理實施。

具體實施例9

密鑰協(xié)商發(fā)起控制與處理流程為:

當密鑰協(xié)商控制處理模塊接收到來自密碼系統(tǒng)的密鑰分發(fā)命令時,主動發(fā)起包含共有22個步驟的密鑰協(xié)商控制與處理流程。

如圖5所示,主動發(fā)起密鑰協(xié)商具體流程如下所述:

步驟S101:初始化,向各模塊發(fā)送復位控制命令,將偽隨機數(shù)池清零,進入初始狀態(tài);

步驟S102:等待接收密碼系統(tǒng)的密鑰分發(fā)指示,若接收到密碼系統(tǒng)的密鑰分發(fā)指示,則進入密鑰協(xié)商過程;

步驟S103:隨機選取偽隨機數(shù)發(fā)生器的初始參數(shù)編號、算法參數(shù)編號、讀取起始位置參數(shù)(用于確定寫入偽隨機數(shù)池的起始時刻),構造一個偽隨機數(shù)產生命令,通過內部總線傳遞給受控偽隨機數(shù)序列發(fā)生器,啟動偽隨機數(shù)產生過程,所產生的自起始位置參數(shù)開始時刻的偽隨機數(shù)碼流將自動填充到該模塊內的偽隨機數(shù)池內,直到將其密鑰池填滿(16KByte)為止;

步驟S104:從真隨機數(shù)池中讀取本端產生的256字節(jié)長的量子真隨機數(shù)數(shù)據(jù)塊,填充到密鑰協(xié)商請求消息內的量子真隨機數(shù)值域內,并保存該真隨機數(shù)數(shù)據(jù)塊的一個副本備用;

步驟S105:將密鑰協(xié)商消息類型值、密鑰協(xié)商消息序號值、隨機選取的初始參數(shù)編號、算法參數(shù)編號、讀取起始(時刻)位置參數(shù),填充到密鑰協(xié)商請求消息內的相應值域內。將密鑰協(xié)商請求消息前面6個值域內容構成一個數(shù)據(jù)塊整體,控制哈希運算模塊進行哈希運算(hash_f1),將得到的256bit結果填充到消息保護哈希值域。使用一種非對稱公鑰算法,針對消息保護哈希值域,基于預先人工分配得到的鏈路對端的公鑰,進行數(shù)字簽名加密運算,將得到的簽名值填充到消息哈希值數(shù)字簽名值域中;密鑰協(xié)商請求消息封裝到一個標準IP報文內,保存一個消息副本,并且將協(xié)商請求消息向鏈路對端傳輸;然后啟動一個消息請求重發(fā)定時器T1,并且將一個重發(fā)計數(shù)器N1設置為最大允許的重傳次數(shù)上限值;

步驟S106:判斷是否接收到有效的協(xié)商響應消息;若沒有接收到有效的協(xié)商響應消息,轉至步驟S107;否則轉至步驟S111;

步驟S107:判斷定時器T1是否超時;若是,則轉至步驟S108;若否轉至步驟S107;

步驟S108:判斷(N1-1)是否0;若是,則轉至步驟S109執(zhí)行重發(fā);若不是,轉至步驟S110向系統(tǒng)報告分發(fā)失??;

步驟S109:重置定時器T1,將重發(fā)計數(shù)器值減1,并重發(fā)協(xié)商請求消息副本,轉至步驟S106;

步驟S110:向系統(tǒng)報告分發(fā)失敗結果;轉至步驟S121;

步驟S111:根據(jù)消息序號判斷是否首次接收到的協(xié)商響應消息;若是,轉至步驟S112;若否,轉至步驟S118執(zhí)行;

步驟S112:構造一個協(xié)商確認消息,將響應消息中前面2個值域的內容復制到確認消息的對應值域中,進行消息保護哈希運算(hash_f1)和哈希值簽名運算,將運算結果填充到確認消息的對應值域中,向鏈路對端發(fā)送回密鑰協(xié)商確認消息;啟動確認消息重發(fā)超時定時器T2,設置確認消息重發(fā)計算器N2;

步驟S113:將鏈路兩端交換的256字節(jié)(2048bit)真隨機數(shù)劃分為4個連續(xù)的64字節(jié)塊,分別針對每個64字節(jié)塊進行等長輸出的全域哈希運算(hash_f2,增強安全性)后,獲得4個64字節(jié)的哈希值,再逐個bit進行相同位置對應比特值的比較,獲得相同bit(“0”或“1”)值位置標記信息;在兩個完全獨立產生的2048bit的隨機數(shù)中,平均具有1024個具有相同bit值的位置;是否需要進行劃分和如何進行劃分,根據(jù)實際情況而定;

步驟S114:一直等待偽隨機數(shù)池內填充的字節(jié)長度達到操作要求的運算算法長度下限,當已寫入了至少256字節(jié)的偽隨機數(shù)序列數(shù)據(jù)時,轉至下一步驟的處理;

步驟S115:則從偽隨機數(shù)池中讀取開頭的連續(xù)256字節(jié)長的偽隨機數(shù)數(shù)據(jù)塊,進入下一步驟的處理;針對256字節(jié)長的偽隨機數(shù)數(shù)據(jù)塊,基于相同bit值位置標記信息,從偽隨機數(shù)數(shù)據(jù)塊中逐一取出相應位置的那些數(shù)字bit(“0”或“1”)值,構成一個密鑰原始材料bit串,完成一輪密鑰原始材料的獲取操作;若本輪操作所獲得的密鑰原始材料bit串的總長度達到了規(guī)定的最小長度值要求,則轉至步驟S116;若所獲得的這些相同比特值的總數(shù)沒有達到規(guī)定的最小長度值要求,則從受控偽隨機數(shù)池中獲取緊接著的下一塊256字節(jié)長的偽隨機序列數(shù)據(jù),重新根據(jù)相同量子隨機數(shù)bit值位置標記記錄,進行繼續(xù)獲取更多密鑰原始材料bit串的操作,將獲得的bit串結果與前面獲得的bit串結果串接形成一個更長的密鑰原始材料bit串,直到獲得所要求的最小長度為止;

步驟S116:對所獲得的密鑰原始材料bit串(1024bit長)劃分為2個數(shù)據(jù)塊塊分別進行哈希運算(hash_f3),得到2個64字節(jié)(512bit)的哈希值,將這兩個512bit的哈希值串接在一起,獲得最終需要的1024bit長度的共享密鑰;是否需要進行劃分和如何進行劃分,根據(jù)實際情況而定;

步驟S117:向本端密碼系統(tǒng)報告協(xié)商分配得到的共享密鑰;

步驟S118:等待T2超時;若T2超時,轉至下一步驟的處理。若T2未超時,繼續(xù)等待;

步驟S119:若(N2-1)>0,則轉至下一個步驟的處理;否則,轉至步驟S121;

步驟S120:重發(fā)確認消息,重啟T2,N2值減1;轉至步驟S118;

步驟S121:將本端的協(xié)商消息產生序號值循環(huán)加1;

步驟S122:結束操作。

如圖6所示,密鑰協(xié)商響應控制與處理流程為:

步驟S201:初始化,向各模塊發(fā)送復位控制命令,將偽隨機數(shù)密鑰池清零,進入初始狀態(tài);

步驟S202:等待接收鏈路對端的密鑰協(xié)商請求消息;當接收到一個消息時,經過接收過程的哈希保護計算與接收過程的數(shù)字簽名計算,進行消息的有效性判斷;若這兩種計算結果中有任何一個與消息對應值域不一致,則消息是無效的并且不做任何處理;若這兩種計算結果都與消息對應值域完全一致,則為有效的消息;若未接收到有效的協(xié)商請求消息,則繼續(xù)等待。若接收到有效的協(xié)商請求消息,則轉至下一個處理步驟執(zhí)行;

步驟S203:根據(jù)接收到的密鑰協(xié)商請求消息內包含的消息序號和本端的接收消息序號記錄,判斷是否首次接收到的與該消息序號相應的請求;若不是首次接收的協(xié)商請求消息序號,則轉至步驟S207;若是首次接收,保存請求消息中的量子真隨機數(shù)數(shù)據(jù)塊備用,記錄當前的密鑰協(xié)商消息序列號,轉至下一個處理步驟去執(zhí)行;

步驟S204:取出該請求消息內的初始參數(shù)編號、算法參數(shù)編號、偽隨機數(shù)起始位置參數(shù),構造一個偽隨機數(shù)產生命令,通過內部總線傳遞給受控偽隨機數(shù)序列發(fā)生器,啟動偽隨機數(shù)產生過程,所產生的自起始位置參數(shù)開始的偽隨機數(shù)碼流將自動填充到該模塊內的偽隨機數(shù)池內,直到將偽隨機數(shù)池填滿為止;

步驟S205:從本端的真隨機數(shù)池中讀取連續(xù)的256字節(jié)真隨機數(shù)數(shù)據(jù)塊,保存?zhèn)溆茫?/p>

步驟S206:執(zhí)行對雙方真隨機數(shù)的哈希計算,相同比特位置標記信息計算;將鏈路兩端交換的256字節(jié)(2048bit)真隨機數(shù)劃分為4個連續(xù)的64字節(jié)塊,分別針對每個64字節(jié)塊進行哈希運算(hash_f2,增強安全性)后,獲得4個64字節(jié)的哈希值,再逐個bit進行相同位置對應比特值的比較,獲得相同bit(“0”或“1”)值位置標記數(shù)據(jù);在兩個完全獨立產生的2048bit的隨機數(shù)中,平均具有1024個具有相同bit值的位置;

步驟S207:將協(xié)商消息類型域的值填充為響應消息類型值,將協(xié)商消息序號之填充為與請求消息序號相同的值,復制填充到需要構造的密鑰協(xié)商響應消息內的相應值域內,將本端產生的真隨機數(shù)填充協(xié)商響應消息內的相應值域內;針對響應消息前面3個值域內容執(zhí)行發(fā)送過程的哈希保護運算,將運算結果填充到哈希保護值域中;針對消息保護哈希值域執(zhí)行發(fā)送過程的數(shù)字簽名運算,將運算結果填充到哈希保護值數(shù)字簽名域中。將密鑰協(xié)商響應消息封裝到一個標準IP報文內,保存該協(xié)商響應消息的副本,并且將該協(xié)商響應消息向鏈路對端傳輸;然后啟動一個消息響應重發(fā)定時器T3,并且將一個重發(fā)計數(shù)器N3設置為最大允許的重傳次數(shù)上限值;

步驟S208:一直等待本端偽隨機數(shù)池內填充的字節(jié)長度達到操作要求的長度下限;然后轉至下一個步驟執(zhí)行;

步驟S209:從偽隨機數(shù)池內讀取開頭的連續(xù)256字節(jié)長的偽隨機數(shù)數(shù)據(jù)塊備用。然后轉至下一個步驟執(zhí)行;

步驟S210:執(zhí)行密鑰原始材料bit串獲取運算。針對256字節(jié)長的偽隨機數(shù)數(shù)據(jù)塊,基于相同bit值位置標記信息,從偽隨機數(shù)數(shù)據(jù)塊中逐一取出相應位置的那些數(shù)字bit(“0”或“1”)值,構成一個密鑰原始材料bit串,完成一輪密鑰原始材料的獲取操作;

步驟S211:判斷密鑰原始材料bit串的總長度達到了規(guī)定的最小長度值要求;若未達到最小長度值要求,則轉至步驟S209執(zhí)行,繼續(xù)獲取下一個連續(xù)的256字節(jié)長偽隨機數(shù)據(jù)塊,重新根據(jù)相同bit值位置的標記信息記錄,繼續(xù)進行獲取更多密鑰原始材料bit串的操作,將獲得的bit串結果與前面獲得的bit串結果串接形成一個更長的密鑰原始材料bit串。若達到了規(guī)定的最小長度值要求,則轉至下一個步驟執(zhí)行;

步驟S212:執(zhí)行共享密鑰計算;對所獲得的密鑰原始材料bit串(1024bit長)劃分為2個數(shù)據(jù)塊塊分別進行哈希運算(hash_f3),得到2個64字節(jié)(512bit)的哈希值,將這兩個512bit的哈希值串接在一起,獲得最終需要的1024bit長度的共享密鑰;然后轉至下一個步驟執(zhí)行;

步驟S213:向本端密碼系統(tǒng)通告協(xié)商分配得到的共享密鑰;然后轉至下一個步驟執(zhí)行;

步驟S214:判斷是否接收到有效的協(xié)商確認消息;若是,轉至步驟S219,結束本輪密鑰分發(fā)過程;若不是,轉至下一個步驟執(zhí)行;

步驟S215:等待T3超時;若T3超時,轉至下一步驟的處理;若T3未超時,繼續(xù)等待;

步驟S216:若(N3-1)>0,則轉至下一個步驟的處理;否則,轉至步驟S218;

步驟S217:重發(fā)協(xié)商響應消息副本,重啟T3,N3值減1;轉至步驟S214;

步驟S218:向本端密碼系統(tǒng)通告協(xié)商失敗結果;

步驟S219:結束。

本具體實施例提出的密鑰分發(fā)方法中,每個方向交換傳輸?shù)牧孔诱骐S機數(shù)序列長度不少于1024字節(jié),兩個獨立產生的量子真隨機數(shù)bit取相同值(0或1)的平均概率為0.5。鏈路兩端交換的256字節(jié)(2048bit)真隨機數(shù)經過等長輸出的全域哈希運算(增強安全性)后,再逐個bit進行相同位置對應比特值的比較,獲得相同bit位置標記數(shù)據(jù),那么平均具有1024個bit值相同的位置標記。然后,根據(jù)這些相同bit值的標記信息,基于本地產生的偽隨機碼流數(shù)據(jù),確定構造密鑰的原始材料信息。由于協(xié)商過程不交換傳遞密鑰原始材料信息,因而具有很高的安全性。

本具體實施例設計的密鑰協(xié)商機制在實現(xiàn)過程中需要應用以下這些運算功能:

發(fā)送過程的哈希保護運算:針對發(fā)送消息內位于消息保護哈希值域前面的那些值域的內容控制哈希運算模塊進行哈希運算(hash_f1),將得到的計算結果填充到發(fā)送消息的保護哈希值域內;

接收過程的哈希保護運算:針對接收消息內位于哈希值域前面的那些值域的內容,控制哈希運算模塊進行哈希運算(hash_f1),將得到的256bit結果與接收消息保護哈希值域進行比較;若不相同則表明消息被篡改了,為無效的消息;

發(fā)送過程的數(shù)字簽名運算:發(fā)送一條協(xié)商消息前,針對消息保護哈希值域使用對端的公鑰進行數(shù)字簽名加密運算,將得到的計算結果填充到發(fā)送消息的消息哈希值數(shù)字簽名域內;

接收過程的數(shù)字簽名運算:針對消息保護哈希值域使用本端的私鑰進行數(shù)字簽名解密運算,若其簽名運算結果與接收消息內的數(shù)字簽名值域不相同,則該消息為無效的消息;

密鑰協(xié)商消息序號運算:每一輪密鑰協(xié)商過程中涉及到的3個消息序號都必須一致;而且,每經過一輪密鑰協(xié)商,本端的消息序號值增量1;在密鑰協(xié)商過程中,響應消息和確認消息的序號都必須與請求消息的序號一致,否則為無效的消息;

相同bit值位置標記信息獲取運算:針對長度相同的兩個隨機數(shù)比特串,針對每個相同位置的bit值依次進行一一對應的比對,若相同位置的bit值相同(同為“0”或“1”值)則標記為1;獲得的相同bit值位置標記信息記錄的長度與這兩個用作比對的比特串相同;若對應bit位置的bit值不相同,則標記為0;

密鑰原始材料bit串運算:基于相同bit值位置標記信息記錄,針對本地產生的同樣比特長度的偽隨機數(shù)bit串中的每一個bit,取出與標記信息記錄標記為“1”值的對應位置的那些bit值,級聯(lián)構成一個新的bit串,作為密鑰的原始材料。

本發(fā)明提供的密鑰分發(fā)方法,主要基于偽隨機數(shù)發(fā)生器、量子真隨機數(shù)發(fā)生器、3種哈希運算以及數(shù)字簽名保護機制,通過交換偽隨機數(shù)發(fā)生器控制參數(shù)、量子真隨機數(shù),不在不安全的公開信道上傳輸密鑰原始材料信息,杜絕了敵手通過公開信道竊取密鑰信息的可能性。聯(lián)合采用哈希運算和數(shù)字簽名的方法,為密鑰協(xié)商消息提供了防篡改和真實性的安全保障。該算法主要用于在不安全的無線或有線鏈路上實現(xiàn)高安全性的密鑰分發(fā),密鑰協(xié)商過程的可靠性高。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1