本申請涉及電子技術領域,具體的說是一種用于發(fā)送端生成共享密鑰的方法、裝置及終端設備,一種用于接收端生成共享密鑰的方法、裝置及終端設備,以及一種用于生成共享密鑰的系統(tǒng)。
背景技術:
密碼學中利用私鑰密碼機制和公鑰密碼機制保證通信中身份信息的安全性、完整性、不可否認性和抵抗身份冒充攻擊。在公鑰基礎設施中主要應用以公鑰密碼機制為基礎的數(shù)字簽名技術實現(xiàn)身份認證,典型的數(shù)字簽名算法有RSA算法、ECC算法、DSA算法、EIGamal算法等,這些算法基于計算復雜度來保證經(jīng)典認證系統(tǒng)的安全性,這在量子計算及云計算環(huán)境中有被破解的風險。
量子密碼作為量子力學和密碼學的交叉產(chǎn)物,其安全性由量子力學基本原理保證(未知量子態(tài)的測不準原理、測量坍縮原理、不可克隆原理),與攻擊者的計算能力和存儲能力無關,被證明具有無條件安全性和對竊聽者的可檢測性。然而目前提出的量子密鑰分配協(xié)議基于誤碼率來協(xié)商共享密鑰,這在大規(guī)模的業(yè)務場景中,存在密鑰分發(fā)不足的問題,同時,量子密鑰協(xié)商共享密鑰受外界干擾因素影響比較大,需要依賴誤碼率來確定量子密鑰的輸出,因此,會因沒一個有效的誤碼率估計方法,而影響到量子實際密鑰量的產(chǎn)出,目前國內(nèi)誤碼率大于7%以上,就無法產(chǎn)生量子密鑰,國外日本誤碼率容忍率最高,但是超過11%也無法產(chǎn)生密鑰。
技術實現(xiàn)要素:
鑒于上述問題,本申請?zhí)峁┮环N用于發(fā)送端生成共享密鑰的方法、一種用于發(fā)送端生成共享密鑰的裝置及一種用于發(fā)送端生成共享密鑰的終端設備,一種用于接收端生成共享密鑰的方法、一種用于接收端生成共享密鑰的裝置及一種用于接收端生成共享密鑰的終端設備,以及一種用于生成共享密鑰的系統(tǒng)。
本申請采用的技術方案是:
本申請?zhí)峁┮环N用于發(fā)送端生成共享密鑰的方法,包括:
與接收端建立密鑰協(xié)商連接;
通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼;
在預先存儲的算法庫中查詢與所述算法代碼對應的算法;
根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
可選的,所述與接收端建立密鑰協(xié)商連接的步驟,包括:
向接收端發(fā)送密鑰協(xié)商請求;
接收所述接收端同意所述密鑰協(xié)商請求的響應信息,密鑰協(xié)商連接建立成功。
可選的,所述接收所述接收端同意所述密鑰協(xié)商請求的響應信息,密鑰協(xié)商連接建立成功的步驟,包括:
接收所述接收端同意所述密鑰協(xié)商請求的響應信息;
根據(jù)所述響應信息中的接收端認證信息,判斷所述接收端的合法性;
若所述接收端合法,則密鑰協(xié)商連接建立成功。
可選的,所述通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼的步驟,包括:
通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的算法代碼;
接收所述接收端返回的是否同意所述擬采用的算法代碼的信息;
若同意,則將所述擬采用的算法代碼確定為算法代碼。
可選的,所述用于發(fā)送端生成共享密鑰的方法還包括:
若不同意,則
向所述接收端發(fā)送其他的擬采用的算法代碼進行重試,直至同意;或者,
接收所述接收端返回的建議采用的算法代碼,將所述建議采用的算法代碼確認為算法代碼,并向所述接收端發(fā)送確定采用所述建議采用的算法代碼的信息。
可選的,所述通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的算法代碼,包括:
采用預置的密鑰對擬采用的算法代碼進行加密;
將加密后的擬采用的算法代碼通過所述密鑰協(xié)商連接發(fā)送至所述接收端。
可選的,所述用于發(fā)送端生成共享密鑰的方法還包括:
通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù);
所述根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰,包括:
根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
可選的,所述通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù)的步驟,包括:
通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的隨機數(shù);
接收所述接收端返回的是否同意所述擬采用的隨機數(shù)的信息;
若同意,則將所述擬采用的隨機數(shù)確定為隨機數(shù)。
可選的,所述用于發(fā)送端生成共享密鑰的方法,還包括:
若不同意,則
向所述接收端發(fā)送其他的擬采用的隨機數(shù)進行重試,直至同意;或者,
接收所述接收端返回的建議采用的隨機數(shù),將所述建議采用的隨機數(shù)確認為隨機數(shù),并向所述接收端發(fā)送確定采用所述建議采用的隨機數(shù)的信息。
可選的,所述通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的隨機數(shù),包括:
采用預置的密鑰對擬采用的隨機數(shù)進行加密;
將加密后的擬采用的隨機數(shù)通過所述密鑰協(xié)商連接發(fā)送至所述接收端。
可選的,所述種子密鑰為量子種子密鑰。
本申請還提供一種用于發(fā)送端生成共享密鑰的裝置,包括:
發(fā)送端協(xié)商連接建立單元,用于與接收端建立密鑰協(xié)商連接;
發(fā)送端算法代碼協(xié)商單元,用于通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼;
發(fā)送端算法查詢單元,用于在預先存儲的算法庫中查詢與所述算法代碼對應的算法;
發(fā)送端共享密鑰計算單元,用于根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
可選的,所述發(fā)送端協(xié)商連接建立單元包括:
協(xié)商請求發(fā)送子單元,用于向接收端發(fā)送密鑰協(xié)商請求;
響應信息接收子單元,用于接收所述接收端同意所述密鑰協(xié)商請求的響應信息,此時,密鑰協(xié)商連接建立成功。
可選的,所述響應信息接收子單元包括:
第一響應信息接收子單元,用于接收所述接收端同意所述密鑰協(xié)商請求的響應信息;
接收端合法性判斷子單元,用于根據(jù)所述響應信息中的接收端認證信息,判斷所述接收端的合法性,若判斷結(jié)果為所述接收端合法,則密鑰協(xié)商連接建立成功。
可選的,所述發(fā)送端算法代碼協(xié)商單元包括:
擬采用算法代碼發(fā)送子單元,用于通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的算法代碼;
代碼信息接收子單元,用于接收所述接收端返回的是否同意所述擬采用的算法代碼的信息;
發(fā)送端算法代碼確定子單元,用于在所述代碼信息接收子單元接收到所述接收端返回的同意所述擬采用的算法代碼的信息時,將所述擬采用的算法代碼確定為算法代碼。
可選的,所述發(fā)送端算法代碼協(xié)商單元還包括:
算法代碼重試發(fā)送子單元,用于在所述代碼信息接收子單元接收到所述接收端返回的不同意所述擬采用的算法代碼的信息時,向所述接收端發(fā)送其他的擬采用的算法代碼進行重試,直至同意;或者,
建議算法代碼接收子單元,用于接收所述接收端返回的建議采用的算法代碼,將所述建議采用的算法代碼確認為算法代碼,并向所述接收端發(fā)送確定采用所述建議采用的算法代碼的信息。
可選的,所述擬采用算法代碼發(fā)送子單元,包括:
算法代碼加密子單元,用于采用預置的密鑰對擬采用的算法代碼進行加密;
加密代碼發(fā)送子單元,用于將加密后的擬采用的算法代碼通過所述密鑰協(xié)商連接發(fā)送至所述接收端。
可選的,所述用于發(fā)送端生成共享密鑰的裝置,還包括:
發(fā)送端隨機數(shù)協(xié)商單元,用于通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù);
所述發(fā)送端共享密鑰計算單元,包括:
發(fā)送端共享密鑰計算子單元,用于根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
可選的,所述發(fā)送端隨機數(shù)協(xié)商單元,包括:
擬采用隨機數(shù)發(fā)送子單元,用于通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的隨機數(shù);
隨機數(shù)信息接收子單元,用于接收所述接收端返回的是否同意所述擬采用的隨機數(shù)的信息;
發(fā)送端隨機數(shù)確定子單元,用于在所述隨機數(shù)信息接收子單元接收到所述接收端返回的同意所述擬采用的隨機數(shù)的信息時,則將所述擬采用的隨機數(shù)確定為隨機數(shù)。
可選的,所述發(fā)送端隨機數(shù)協(xié)商單元還包括:
隨機數(shù)重試發(fā)送子單元,用于在所述隨機數(shù)信息接收子單元接收到所述接收端返回的不同意所述擬采用的隨機數(shù)的信息時,向所述接收端發(fā)送其他的擬采用的隨機數(shù)進行重試,直至同意;或者,
建議隨機數(shù)接收子單元,用于接收所述接收端返回的建議采用的隨機數(shù),將所述建議采用的隨機數(shù)確認為隨機數(shù)。
可選的,所述擬采用隨機數(shù)發(fā)送子單元,包括:
隨機數(shù)加密子單元,用于采用預置的密鑰對擬采用的隨機數(shù)進行加密;
加密隨機數(shù)發(fā)送子單元,將加密后的擬采用的隨機數(shù)通過所述密鑰協(xié)商連接發(fā)送至所述接收端。
可選的,所述種子密鑰為量子種子密鑰。
本申請還提供一種用于接收端生成共享密鑰的方法,包括:
與發(fā)送端建立密鑰協(xié)商連接;
通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼;
在預先存儲的算法庫中查詢與所述算法代碼對應的算法;
根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
可選的,所述與發(fā)送端建立密鑰協(xié)商連接的步驟,包括:
接收發(fā)送端發(fā)送的密鑰協(xié)商請求;
向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,密鑰協(xié)商連接建立成功。
可選的,在所述向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息的步驟前,還包括:
根據(jù)所述密鑰協(xié)商請求中的發(fā)送端認證信息,判斷所述發(fā)送端的合法性;
若所述發(fā)送端不合法,則中止。
可選的,所述通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼的步驟,包括:
通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的算法代碼;
判斷是否同意采用所述擬采用的算法代碼;
若同意采用,則向所述發(fā)送端發(fā)送同意采用所述擬采用的算法代碼的信息;
將所述擬采用的算法代碼確定為算法代碼。
可選的,所述用于接收端生成共享密鑰的方法,還包括:
若不同意,則向所述發(fā)送端發(fā)送建議采用的算法代碼;
在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的算法代碼的信息后,將所述建議采用的算法代碼確認為算法代碼。
可選的,所述通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的算法代碼的步驟,包括:
通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的算法代碼;
采用與所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的算法代碼進行解密,獲得擬采用的算法代碼。
可選的,所述用于接收端生成共享密鑰的方法,還包括:
通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù);
所述根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰,包括:
根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
可選的,所述通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù)的步驟,包括:
通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的隨機數(shù);
判斷是否同意采用所述擬采用的隨機數(shù);
若同意采用,則向所述發(fā)送端發(fā)送同意采用所述擬采用的隨機數(shù)的信息;
將所述擬采用的隨機數(shù)確定為隨機數(shù)。
可選的,所述用于接收端生成共享密鑰的方法,還包括:
若不同意,則向所述發(fā)送端發(fā)送建議采用的隨機數(shù);
在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的隨機數(shù)的信息后,將所述建議采用的隨機數(shù)確認為隨機數(shù)。
可選的,所述通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的隨機數(shù)的步驟,包括:
通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的隨機數(shù);
采用所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的隨機數(shù)進行解密,獲得擬采用的隨機數(shù)。
可選的,所述種子密鑰為量子種子密鑰。
本申請還提供一種用于接收端生成共享密鑰的裝置,包括:
接收端協(xié)商連接建立單元,用于與發(fā)送端建立密鑰協(xié)商連接;
接收端算法代碼協(xié)商單元,用于通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼;
接收端算法查詢單元,用于在預先存儲的算法庫中查詢與所述算法代碼對應的算法;
接收端共享密鑰計算單元,用于根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
可選的,所述接收端協(xié)商連接建立單元包括:
協(xié)商請求接收子單元,用于接收發(fā)送端發(fā)送的密鑰協(xié)商請求;
響應信息發(fā)送子單元,用于向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,此時,密鑰協(xié)商連接建立成功。
可選的,所述響應信息發(fā)送子單元包括:
發(fā)送端合法性判斷子單元,用于根據(jù)所述密鑰協(xié)商請求中的發(fā)送端認證信息,判斷所述發(fā)送端的合法性
第一響應信息發(fā)送子單元,用于在所述發(fā)送端合法性判斷子單元的判斷結(jié)果為所述發(fā)送端合法時,向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,此時,密鑰協(xié)商連接建立成功。
可選的,所述接收端算法代碼協(xié)商單元包括:
擬采用算法代碼接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的算法代碼;
擬采用算法代碼判斷子單元,用于判斷是否同意采用所述擬采用的算法代碼;
代碼信息發(fā)送子單元,用于在同意采用所述擬采用的算法代碼時,向所述發(fā)送端發(fā)送同意采用所述擬采用的算法代碼的信息;
接收端算法代碼確定子單元,用于將所述擬采用的算法代碼確定為算法代碼。
可選的,所述接收端算法代碼協(xié)商單元還包括:
建議算法代碼發(fā)送子單元,用于在不同意采用所述擬采用的算法代碼時,向所述發(fā)送端發(fā)送建議采用的算法代碼;
建議算法代碼確認子單元,用于在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的算法代碼的信息后,將所述建議采用的算法代碼確認為算法代碼。
可選的,所述擬采用算法代碼接收子單元,包括:
加密算法代碼接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的算法代碼;
加密算法代碼解密子單元,用于采用與所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的算法代碼進行解密,獲得擬采用的算法代碼。
可選的,所述用于接收端生成共享密鑰的裝置,還包括:
接收端隨機數(shù)協(xié)商單元,用于通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù);
所述接收端共享密鑰計算單元,包括:
接收端共享密鑰計算子單元,用于根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
可選的,所述接收端隨機數(shù)協(xié)商單元,包括:
擬采用隨機數(shù)接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的隨機數(shù);
擬采用隨機數(shù)判斷子單元,判斷是否同意采用所述擬采用的隨機數(shù);
隨機數(shù)信息發(fā)送子單元,用于在同意采用所述擬采用的隨機數(shù)時,向所述發(fā)送端發(fā)送同意采用所述擬采用的隨機數(shù)的信息;
接收端隨機數(shù)確定子單元,用于將所述擬采用的隨機數(shù)確定為隨機數(shù)。
可選的,所述接收端隨機數(shù)協(xié)商單元還包括:
建議隨機數(shù)發(fā)送子單元,用于在不同意采用所述擬采用的隨機數(shù)時,向所述發(fā)送端發(fā)送建議采用的隨機數(shù);
建議隨機數(shù)確認子單元,用于在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的隨機數(shù)的信息后,將所述建議采用的隨機數(shù)確認為隨機數(shù)。
可選的,所述擬采用隨機數(shù)接收子單元,包括:
加密隨機數(shù)接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的隨機數(shù);
加密隨機數(shù)解密子單元,用于采用所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的隨機數(shù)進行解密,獲得擬采用的隨機數(shù)。
可選的,所述種子密鑰為量子種子密鑰。
本申請還提供一種用于發(fā)送端生成共享密鑰的終端設備,包括:
中央處理器;
輸入輸出單元;
存儲器;
所述存儲器中存儲有本申請?zhí)峁┑挠糜诎l(fā)送端生成共享密鑰的方法;并在啟動后能夠根據(jù)上述方法運行。
本申請還提供一種用于接收端生成共享密鑰的終端設備,包括:
中央處理器;
輸入輸出單元;
存儲器;
所述存儲器中存儲有本申請?zhí)峁┑挠糜诮邮斩松晒蚕砻荑€的方法;并在啟動后能夠根據(jù)上述方法運行。
本申請還提供一種用于生成共享密鑰的系統(tǒng),包括發(fā)送端和接收端,所述發(fā)送端配置有本申請?zhí)峁┑挠糜诎l(fā)送端生成共享密鑰的裝置,所述接收端配置有本申請?zhí)峁┑挠糜诮邮斩松晒蚕砻荑€的裝置。
與現(xiàn)有技術相比,本申請具有以下優(yōu)點:
本申請?zhí)峁┑囊环N用于發(fā)送端生成共享密鑰的方法,首先與接收端建立密鑰協(xié)商連接;然后通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼;再在預先存儲的算法庫中查詢與所述算法代碼對應的算法;最后根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。相較于傳統(tǒng)的密鑰生成方法尤其是量子密鑰生成方法,本方法通過協(xié)商確定算法代碼,再查詢預先存儲的與所述算法代碼對應的算法,利用已產(chǎn)生的種子密鑰計算生成新的共享密鑰,避免了傳統(tǒng)量子密鑰生成方法誤碼率高的問題,密鑰生成成功率高,可以便滿足大規(guī)模業(yè)務的需求。
附圖說明
圖1是本申請?zhí)峁┑囊环N用于發(fā)送端生成共享密鑰的方法實施例的流程圖;
圖2是本申請?zhí)峁┑囊环N用于發(fā)送端生成共享密鑰的裝置實施例的示意圖;
圖3是本申請?zhí)峁┑囊环N用于接收端生成共享密鑰的方法實施例的流程圖;
圖4是本申請?zhí)峁┑囊环N用于接收端生成共享密鑰的裝置實施例的示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此本申請不受下面公開的具體實施的限制。
本申請?zhí)峁┝颂峁┮环N用于發(fā)送端生成共享密鑰的方法、一種用于發(fā)送端生成共享密鑰的裝置及一種用于發(fā)送端生成共享密鑰的終端設備,一種用于接收端生成共享密鑰的方法、一種用于接收端生成共享密鑰的裝置及一種用于接收端生成共享密鑰的終端設備,以及一種用于生成共享密鑰的系統(tǒng),下面依次結(jié) 合附圖對本申請的實施例進行詳細說明。
請參考圖1,其為本申請?zhí)峁┑囊环N用于發(fā)送端生成共享密鑰的方法實施例的流程圖,所述方法包括如下步驟:
步驟S101:與接收端建立密鑰協(xié)商連接。
本步驟,首先與接收端建立密鑰協(xié)商連接,所述與接收端建立密鑰協(xié)商連接的過程類似于通信握手的過程,即發(fā)送端與接收端雙方通過互相通信建立起通信連接,以進行下一步數(shù)據(jù)通信。
在本申請?zhí)峁┑囊粋€實施例中,所述與接收端建立密鑰協(xié)商連接的步驟,包括:向接收端發(fā)送密鑰協(xié)商請求;
接收所述接收端同意所述密鑰協(xié)商請求的響應信息,密鑰協(xié)商連接建立成功。
為了保證所述密鑰協(xié)商連接的安全性,在本申請?zhí)峁┑囊粋€實施例中,發(fā)送端在與接收端建立密鑰協(xié)商連接的過程中需要進行身份認證,因此,所述密鑰協(xié)商請求中包含有證明發(fā)送端身份信息的發(fā)送端認證信息,所述發(fā)送端認證信息包括發(fā)送端的身份信息及證書。所述接收端在接收到所述發(fā)送端發(fā)送的密鑰協(xié)商請求后,會對所述密鑰協(xié)商請求中的發(fā)送端認證信息進行認證,以判斷所述發(fā)送端的合法性,若所述發(fā)送端不合法,則密鑰協(xié)商流程中止,若所述發(fā)送端合法,則會向所述發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,所述發(fā)送端接收到所述接收端同意所述密鑰協(xié)商請求的響應信息,則說明所述接收端通過了所述發(fā)送端的密鑰協(xié)商請求,密鑰協(xié)商連接建立成功,可以進一步進行密鑰協(xié)商。
基于相同的考慮,在本申請?zhí)峁┑囊粋€實施例中,所述響應信息中包含有證明接收端身份信息的接收端認證信息,所述接收端認證信息包括接收端的身份信息及證書,所述發(fā)送端在接收到所述接收端同意所述密鑰協(xié)商請求的響應信息后,會根據(jù)所述接收端認證信息對所述接收端進行認證,以判斷所述接收端的合法性,若所述接收端不合法,則密鑰協(xié)商流程中止,若所述接收端合法,則密鑰協(xié)商連接建立成功,可以進一步進行密鑰協(xié)商。
在本申請?zhí)峁┑囊粋€實施例中,所述密鑰協(xié)商請求和所述響應信息是通過https加密通信通道傳輸?shù)?,以保證信息傳輸?shù)陌踩浴?/p>
步驟S102:通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼。
通過步驟S101,已與接收端建立密鑰協(xié)商連接,接下來,可以通過所述密 鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼。
在本申請?zhí)峁┑囊粋€實施例中,所述發(fā)送端和所述接收端內(nèi)都預先存儲有相同的種子密鑰以及算法庫,所述算法庫中包含有多個用于修改所述種子密鑰的算法,為了避免算法在協(xié)商過程中泄露,本申請實施例對每個所述算法賦予不同的算法代碼,在協(xié)商過程中通過協(xié)商所述算法代碼確定需要采用的算法,所述通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼的步驟,包括:
通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的算法代碼;
接收所述接收端返回的是否同意所述擬采用的算法代碼的信息;
若同意,則將所述擬采用的算法代碼確定為算法代碼。
若不同意,則向所述接收端發(fā)送其他的擬采用的算法代碼進行重試,直至同意;或者,
接收所述接收端返回的建議采用的算法代碼,將所述建議采用的算法代碼確認為算法代碼,并向所述接收端發(fā)送確定采用所述建議采用的算法代碼的信息。
需要說明的是,以上僅舉例說明了通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼的過程,并不限制本申請的保護范圍,只要是通過交互方式確定算法代碼,無論以現(xiàn)有技術中的何種方式實現(xiàn),均在本申請的保護范圍之內(nèi)。
在本申請?zhí)峁┑囊粋€實施例中,為了進一步加強通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼過程的安全性,避免算法代碼泄露,所述通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼的過程中,傳遞的信息是采用預定的密鑰加密后的加密信息,所述通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的算法代碼的步驟,包括:采用預置的密鑰對擬采用的算法代碼進行加密;將加密后的擬采用的算法代碼通過所述密鑰協(xié)商連接發(fā)送至所述接收端。所述接收端在接收到所述加密后的擬采用的算法代碼后采用對應的密鑰進行解密即可獲得擬采用的算法代碼,以進行后續(xù)步驟,相應的,在協(xié)商過程中,所述接收端在發(fā)送建議采用的算法代碼時也會進行加密,所述發(fā)送端在接收到加密后的建議采用的算法代碼后,也需要采用相應的密鑰進行解密,獲得建議采用的算法代碼。
步驟S103:在預先存儲的算法庫中查詢與所述算法代碼對應的算法。
通過步驟S102,已通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼, 接下來,需要在在預先存儲的算法庫中查詢與所述算法代碼對應的算法。
步驟S104:根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
通過步驟S103,已在預先存儲的算法庫中查詢到與所述算法代碼對應的算法(例如,共享密鑰=f(種子密鑰)),接下來,采用所述算法對預先存儲的種子密鑰進行計算,即可獲得新的共享密鑰,同樣的,所述接收端也采用所述算法對預先存儲的種子密鑰進行計算獲得相同的共享密鑰,在所述發(fā)送端和所述接收端都生成新的共享密鑰后,即可利用所述共享密鑰進行數(shù)據(jù)的安全傳輸。
需要說明的是,本申請的保護范圍并不局限于某種特定的算法,只要是通過預定的算法對所述種子密鑰進行修改從而獲得新的共享密鑰,采用任何現(xiàn)有技術中的算法都在本申請的保護范圍之內(nèi)。
本申請?zhí)峁┑姆椒ㄓ绕溥m用于量子密鑰的生成,利用已經(jīng)確定的量子種子密鑰,通過雙方協(xié)商確定的算法對所述量子種子密鑰進行計算,即可生成新的量子密鑰,協(xié)商過程中不涉及量子種子密鑰內(nèi)容,因此安全性更強,同時也避免了傳統(tǒng)量子密鑰生成方法誤碼率高的問題,密鑰生成成功率高,可以便滿足大規(guī)模業(yè)務的需求。
至此,通過步驟S101至步驟S104,完成了用于發(fā)送端生成共享密鑰的方法流程。
為了進一步提高本申請?zhí)峁┑挠糜诎l(fā)送端生成共享密鑰的方法的安全性,在本申請?zhí)峁┑囊粋€實施例中,所述算法的參數(shù)中含有隨機數(shù),例如:共享密鑰=f(種子密鑰,n),其中n為隨機數(shù),所述發(fā)送端通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼的同時,也協(xié)商確定所述隨機數(shù),這樣,即使算法和算法代碼被泄露,只要隨機數(shù)不被泄露,所述量子密鑰就不會被泄露或破解,從而利用所述隨機數(shù)即可進一步加強本方法的安全性。
在本申請?zhí)峁┑囊粋€實施例中,所述用于發(fā)送端生成共享密鑰的方法還包括步驟:
通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù);
所述根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰,包括:
根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
其中,所述通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù)的步驟,包 括:
通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的隨機數(shù);
接收所述接收端返回的是否同意所述擬采用的隨機數(shù)的信息;
若同意,則將所述擬采用的隨機數(shù)確定為隨機數(shù)。
若不同意,則
向所述接收端發(fā)送其他的擬采用的隨機數(shù)進行重試,直至同意;或者,
接收所述接收端返回的建議采用的隨機數(shù),將所述建議采用的隨機數(shù)確認為隨機數(shù),并向所述接收端發(fā)送確定采用所述建議采用的隨機數(shù)的信息。
需要說明的是,以上僅舉例說明了通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù)的過程,并不限制本申請的保護范圍,只要是通過交互方式確定隨機數(shù),無論以現(xiàn)有技術中的何種方式實現(xiàn),均在本申請的保護范圍之內(nèi)。
在本申請?zhí)峁┑囊粋€實施例中,為了進一步加強通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù)過程的安全性,避免隨機數(shù)泄露,所述通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù)的過程中,傳遞的信息是采用預定的密鑰加密后的加密信息,所述通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的隨機數(shù),包括:采用預置的密鑰對擬采用的隨機數(shù)進行加密;將加密后的擬采用的隨機數(shù)通過所述密鑰協(xié)商連接發(fā)送至所述接收端。所述接收端在接收到所述加密后的擬采用的隨機數(shù)后采用對應的密鑰進行解密即可獲得擬采用的隨機數(shù),以進行后續(xù)步驟,相應的,若在協(xié)商過程中,所述接收端在發(fā)送建議采用的隨機數(shù)時也會進行加密,所述發(fā)送端在接收到加密后的建議采用的隨機數(shù)后,也需要采用相應的密鑰進行解密,獲得建議采用的隨機數(shù)。
在上述的實施例中,提供了一種用于發(fā)送端生成共享密鑰的方法,與之相對應的,本申請還提供一種用于發(fā)送端生成共享密鑰的裝置。請參看圖2,其為本申請?zhí)峁┑囊环N用于發(fā)送端生成共享密鑰的裝置實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于發(fā)送端生成共享密鑰的裝置,包括:發(fā)送端協(xié)商連接建立單元101,用于與接收端建立密鑰協(xié)商連接;發(fā)送端算法代碼協(xié)商單元102,用于通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼;發(fā)送端算法查詢單元103,用于在預先存儲的算法庫中查詢與所述算法代碼對應的算法;發(fā)送端 共享密鑰計算單元104,用于根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
可選的,所述發(fā)送端協(xié)商連接建立單元101包括:
協(xié)商請求發(fā)送子單元,用于向接收端發(fā)送密鑰協(xié)商請求;
響應信息接收子單元,用于接收所述接收端同意所述密鑰協(xié)商請求的響應信息,此時,密鑰協(xié)商連接建立成功。
可選的,所述響應信息接收子單元包括:
第一響應信息接收子單元,用于接收所述接收端同意所述密鑰協(xié)商請求的響應信息;
接收端合法性判斷子單元,用于根據(jù)所述響應信息中的接收端認證信息,判斷所述接收端的合法性,若判斷結(jié)果為所述接收端合法,則密鑰協(xié)商連接建立成功。
可選的,所述發(fā)送端算法代碼協(xié)商單元102包括:
擬采用算法代碼發(fā)送子單元,用于通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的算法代碼;
代碼信息接收子單元,用于接收所述接收端返回的是否同意所述擬采用的算法代碼的信息;
發(fā)送端算法代碼確定子單元,用于在所述代碼信息接收子單元接收到所述接收端返回的同意所述擬采用的算法代碼的信息時,將所述擬采用的算法代碼確定為算法代碼。
可選的,所述發(fā)送端算法代碼協(xié)商單元102還包括:
算法代碼重試發(fā)送子單元,用于在所述代碼信息接收子單元接收到所述接收端返回的不同意所述擬采用的算法代碼的信息時,向所述接收端發(fā)送其他的擬采用的算法代碼進行重試,直至同意;或者,
建議算法代碼接收子單元,用于接收所述接收端返回的建議采用的算法代碼,將所述建議采用的算法代碼確認為算法代碼,并向所述接收端發(fā)送確定采用所述建議采用的算法代碼的信息。
可選的,所述擬采用算法代碼發(fā)送子單元,包括:
算法代碼加密子單元,用于采用預置的密鑰對擬采用的算法代碼進行加密;
加密代碼發(fā)送子單元,用于將加密后的擬采用的算法代碼通過所述密鑰協(xié)商連接發(fā)送至所述接收端。
可選的,所述用于發(fā)送端生成共享密鑰的裝置還包括:
發(fā)送端隨機數(shù)協(xié)商單元,用于通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定隨機數(shù);
所述發(fā)送端共享密鑰計算單元,包括:
發(fā)送端共享密鑰計算子單元,用于根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
可選的,所述發(fā)送端隨機數(shù)協(xié)商單元,包括:
擬采用隨機數(shù)發(fā)送子單元,用于通過所述密鑰協(xié)商連接向所述接收端發(fā)送擬采用的隨機數(shù);
隨機數(shù)信息接收子單元,用于接收所述接收端返回的是否同意所述擬采用的隨機數(shù)的信息;
發(fā)送端隨機數(shù)確定子單元,用于在所述隨機數(shù)信息接收子單元接收到所述接收端返回的同意所述擬采用的隨機數(shù)的信息時,則將所述擬采用的隨機數(shù)確定為隨機數(shù)。
可選的,所述發(fā)送端隨機數(shù)協(xié)商單元還包括:
隨機數(shù)重試發(fā)送子單元,用于在所述隨機數(shù)信息接收子單元接收到所述接收端返回的不同意所述擬采用的隨機數(shù)的信息時,向所述接收端發(fā)送其他的擬采用的隨機數(shù)進行重試,直至同意;或者,
建議隨機數(shù)接收子單元,用于接收所述接收端返回的建議采用的隨機數(shù),將所述建議采用的隨機數(shù)確認為隨機數(shù)。
可選的,所述擬采用隨機數(shù)發(fā)送子單元,包括:
隨機數(shù)加密子單元,用于采用預置的密鑰對擬采用的隨機數(shù)進行加密;
加密隨機數(shù)發(fā)送子單元,將加密后的擬采用的隨機數(shù)通過所述密鑰協(xié)商連接發(fā)送至所述接收端。
可選的,所述種子密鑰為量子種子密鑰。
以上,為本申請?zhí)峁┑囊环N用于發(fā)送端生成共享密鑰的裝置的實施例。
請參考圖3,其為本申請?zhí)峁┑囊环N用于接收端生成共享密鑰的方法實施例 的流程圖,本方法的執(zhí)行主體為接收端,該方法是與前述用于發(fā)送端生成共享密鑰的方法配合實施的,所述方法包括如下步驟:
步驟S201:與發(fā)送端建立密鑰協(xié)商連接。
本步驟,首先與發(fā)送端建立密鑰協(xié)商連接,所述與發(fā)送端建立密鑰協(xié)商連接的過程類似于通信握手的過程,即發(fā)送端與接收端雙方通過互相通信建立起通信連接,以進行下一步數(shù)據(jù)通信。
在本申請?zhí)峁┑囊粋€實施例中,所述與發(fā)送端建立密鑰協(xié)商連接的步驟,包括:
接收發(fā)送端發(fā)送的密鑰協(xié)商請求;
向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,密鑰協(xié)商連接建立成功。
為了保證所述密鑰協(xié)商連接的安全性,在本申請?zhí)峁┑囊粋€實施例中,發(fā)送端在與接收端建立密鑰協(xié)商連接的過程中需要進行身份認證,因此,所述密鑰協(xié)商請求中包含有證明發(fā)送端身份信息的發(fā)送端認證信息,所述發(fā)送端認證信息包括發(fā)送端的身份信息及證書。所述接收端會對所述密鑰協(xié)商請求中的發(fā)送端認證信息進行認證,以判斷所述發(fā)送端的合法性,若所述發(fā)送端不合法,則密鑰協(xié)商流程中止,若所述發(fā)送端合法,則會向所述發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,所述發(fā)送端接收到所述接收端同意所述密鑰協(xié)商請求的響應信息,則說明所述接收端通過了所述發(fā)送端的密鑰協(xié)商請求,密鑰協(xié)商連接建立成功,可以進一步進行密鑰協(xié)商。
基于相同的考慮,在本申請?zhí)峁┑囊粋€實施例中,所述響應信息中包含有證明接收端身份信息的接收端認證信息,所述接收端認證信息包括接收端的身份信息及證書,所述發(fā)送端在接收到所述接收端同意所述密鑰協(xié)商請求的響應信息后,會根據(jù)所述接收端認證信息對所述接收端進行認證,以判斷所述接收端的合法性,若所述接收端不合法,則密鑰協(xié)商流程中止,若所述接收端合法,則向所述接收端發(fā)送確認信息,所述接收端接收到所述確認信息,則說明所述接收端通過了所述發(fā)送端的身份認證,密鑰協(xié)商連接建立成功,可以進一步進行密鑰協(xié)商。
在本申請?zhí)峁┑囊粋€實施例中,所述密鑰協(xié)商請求和所述響應信息是通過https加密通信通道傳輸?shù)模员WC信息傳輸?shù)陌踩浴?/p>
步驟S202:通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼。
通過步驟S201,已與發(fā)送端建立密鑰協(xié)商連接,接下來,可以通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼。
在本申請?zhí)峁┑囊粋€實施例中,所述發(fā)送端和所述接收端內(nèi)都預先存儲有相同的種子密鑰以及算法庫,所述算法庫中包含有多個用于修改所述種子密鑰的算法,為了避免算法在協(xié)商過程中泄露,本申請實施例對每個所述算法賦予不同的算法代碼,在協(xié)商過程中通過協(xié)商所述算法代碼確定需要采用的算法,所述通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼的步驟,包括:
通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的算法代碼;
判斷是否同意采用所述擬采用的算法代碼;
若同意采用,則向所述發(fā)送端發(fā)送同意采用所述擬采用的算法代碼的信息;
將所述擬采用的算法代碼確定為算法代碼。
若不同意,則向所述發(fā)送端發(fā)送建議采用的算法代碼;
在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的算法代碼的信息后,將所述建議采用的算法代碼確認為算法代碼。
需要說明的是,以上僅舉例說明了通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼的過程,并不限制本申請的保護范圍,只要是通過交互方式確定算法代碼,無論以現(xiàn)有技術中的何種方式實現(xiàn),均在本申請的保護范圍之內(nèi)。
在本申請?zhí)峁┑囊粋€實施例中,為了進一步加強通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼過程的安全性,避免算法代碼泄露,所述通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼的過程中,傳遞的信息是采用預定的密鑰加密后的加密信息,所述通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的算法代碼的步驟,包括:通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的算法代碼;采用與所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的算法代碼進行解密,獲得擬采用的算法代碼。所述接收端在接收到所述加密后的擬采用的算法代碼后采用對應的密鑰進行解密即可獲得擬采用的算法代碼,以進行后續(xù)步驟,相應的,在協(xié)商過程中,所述接收端在發(fā)送建議采用的算法代碼時也會進行加密,所述發(fā)送端在接收到加密后的建議采用的算法代碼后,也需要采用相應的密鑰進行解密,獲得建議采用的算法代碼。
步驟S203:在預先存儲的算法庫中查詢與所述算法代碼對應的算法。
通過步驟S202,已通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定了算法代碼,接下來,需要在在預先存儲的算法庫中查詢與所述算法代碼對應的算法。
步驟S204:根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
通過步驟S203,已在預先存儲的算法庫中查詢到與所述算法代碼對應的算法(例如,共享密鑰=f(種子密鑰)),接下來,采用所述算法對預先存儲的種子密鑰進行計算,即可獲得新的共享密鑰,同樣的,所述發(fā)送端也采用所述算法對預先存儲的種子密鑰進行計算獲得相同的共享密鑰,在所述發(fā)送端和所述接收端都生成新的共享密鑰后,即可利用所述共享密鑰進行數(shù)據(jù)的安全傳輸。
需要說明的是,本申請的保護范圍并不局限于某種特定的算法,只要是通過預定的算法對所述種子密鑰進行修改從而獲得新的共享密鑰,采用任何現(xiàn)有技術中的算法都在本申請的保護范圍之內(nèi)。
本申請?zhí)峁┑姆椒ㄓ绕溥m用于量子密鑰的生成,利用已經(jīng)確定的量子種子密鑰,通過雙方協(xié)商確定的算法對所述量子種子密鑰進行計算,即可生成新的量子密鑰,協(xié)商過程中不涉及量子種子密鑰內(nèi)容,因此安全性更強,同時也避免了傳統(tǒng)量子密鑰生成方法誤碼率高的問題,密鑰生成成功率高,可以便滿足大規(guī)模業(yè)務的需求。
至此,通過步驟S201至步驟S204,完成了用于接收端生成共享密鑰的方法流程。
為了進一步提高本申請?zhí)峁┑挠糜诮邮斩松晒蚕砻荑€的方法的安全性,在本申請?zhí)峁┑囊粋€實施例中,所述算法的參數(shù)中含有隨機數(shù),例如:共享密鑰=f(種子密鑰,n),其中n為隨機數(shù),所述發(fā)送端通過所述密鑰協(xié)商連接與所述接收端協(xié)商確定算法代碼的同時,也協(xié)商確定所述隨機數(shù),這樣,即使算法和算法代碼被泄露,只要隨機數(shù)不被泄露,所述量子密鑰就不會被泄露或破解,從而利用所述隨機數(shù)即可進一步加強本方法的安全性。
在本申請?zhí)峁┑囊粋€實施例中,所述用于接收端生成共享密鑰的方法還包括步驟:
通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù);
所述根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰,包括:
根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
其中,所述通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù)的步驟,包括:
通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的隨機數(shù);
判斷是否同意采用所述擬采用的隨機數(shù);
若同意采用,則向所述發(fā)送端發(fā)送同意采用所述擬采用的隨機數(shù)的信息;
將所述擬采用的隨機數(shù)確定為隨機數(shù)。
若不同意,則向所述發(fā)送端發(fā)送建議采用的隨機數(shù);
在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的隨機數(shù)的信息后,將所述建議采用的隨機數(shù)確認為隨機數(shù)。
需要說明的是,以上僅舉例說明了通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù)的過程,并不限制本申請的保護范圍,只要是通過交互方式確定隨機數(shù),無論以現(xiàn)有技術中的何種方式實現(xiàn),均在本申請的保護范圍之內(nèi)。
在本申請?zhí)峁┑囊粋€實施例中,為了進一步加強通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù)過程的安全性,避免隨機數(shù)泄露,所述通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù)的過程中,傳遞的信息是采用預定的密鑰加密后的加密信息,所述通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的隨機數(shù)的步驟,包括:通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的隨機數(shù);采用所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的隨機數(shù)進行解密,獲得擬采用的隨機數(shù)。所述接收端在接收到所述加密后的擬采用的隨機數(shù)后采用對應的密鑰進行解密即可獲得擬采用的隨機數(shù),以進行后續(xù)步驟,相應的,在協(xié)商過程中,所述接收端在發(fā)送建議采用的隨機數(shù)時也會進行加密,所述發(fā)送端在接收到加密后的建議采用的隨機數(shù)后,也需要采用相應的密鑰進行解密,獲得建議采用的隨機數(shù)。
在上述的實施例中,提供了一種用于接收端生成共享密鑰的方法,與之相對應的,本申請還提供一種用于接收端生成共享密鑰的裝置。請參看圖4,其為本申請?zhí)峁┑囊环N用于接收端生成共享密鑰的裝置實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于接收端生成共享密鑰的裝置,包括:接收端協(xié)商連接建立單元201,用于與發(fā)送端建立密鑰協(xié)商連接;接收端算法代碼協(xié)商單元202, 用于通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定算法代碼;接收端算法查詢單元203,用于在預先存儲的算法庫中查詢與所述算法代碼對應的算法;接收端共享密鑰計算單元204,用于根據(jù)所述算法對預先存儲的種子密鑰進行計算,獲得共享密鑰。
可選的,所述接收端協(xié)商連接建立單元201包括:
協(xié)商請求接收子單元,用于接收發(fā)送端發(fā)送的密鑰協(xié)商請求;
響應信息發(fā)送子單元,用于向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,此時,密鑰協(xié)商連接建立成功。
可選的,所述響應信息發(fā)送子單元包括:
發(fā)送端合法性判斷子單元,用于根據(jù)所述密鑰協(xié)商請求中的發(fā)送端認證信息,判斷所述發(fā)送端的合法性
第一響應信息發(fā)送子單元,用于在所述發(fā)送端合法性判斷子單元的判斷結(jié)果為所述發(fā)送端合法時,向發(fā)送端發(fā)送同意所述密鑰協(xié)商請求的響應信息,此時,密鑰協(xié)商連接建立成功。
可選的,所述接收端算法代碼協(xié)商單元202包括:
擬采用算法代碼接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的算法代碼;
擬采用算法代碼判斷子單元,用于判斷是否同意采用所述擬采用的算法代碼;
代碼信息發(fā)送子單元,用于在同意采用所述擬采用的算法代碼時,向所述發(fā)送端發(fā)送同意采用所述擬采用的算法代碼的信息;
接收端算法代碼確定子單元,用于將所述擬采用的算法代碼確定為算法代碼。
可選的,所述接收端算法代碼協(xié)商單元202還包括:
建議算法代碼發(fā)送子單元,用于在不同意采用所述擬采用的算法代碼時,向所述發(fā)送端發(fā)送建議采用的算法代碼;
建議算法代碼確認子單元,用于在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的算法代碼的信息后,將所述建議采用的算法代碼確認為算法代碼。
可選的,所述擬采用算法代碼接收子單元,包括:
加密算法代碼接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的算法代碼;
加密算法代碼解密子單元,用于采用與所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的算法代碼進行解密,獲得擬采用的算法代碼。
可選的,所述用于接收端生成共享密鑰的裝置,還包括:
接收端隨機數(shù)協(xié)商單元,用于通過所述密鑰協(xié)商連接與所述發(fā)送端協(xié)商確定隨機數(shù);
所述接收端共享密鑰計算單元,包括:
接收端共享密鑰計算子單元,用于根據(jù)所述算法和所述隨機數(shù)對預先存儲的種子密鑰進行計算,獲得共享密鑰,所述隨機數(shù)是所述算法的參數(shù)之一。
可選的,所述接收端隨機數(shù)協(xié)商單元,包括:
擬采用隨機數(shù)接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的擬采用的隨機數(shù);
擬采用隨機數(shù)判斷子單元,判斷是否同意采用所述擬采用的隨機數(shù);
隨機數(shù)信息發(fā)送子單元,用于在同意采用所述擬采用的隨機數(shù)時,向所述發(fā)送端發(fā)送同意采用所述擬采用的隨機數(shù)的信息;
接收端隨機數(shù)確定子單元,用于將所述擬采用的隨機數(shù)確定為隨機數(shù)。
可選的,所述接收端隨機數(shù)協(xié)商單元還包括:
建議隨機數(shù)發(fā)送子單元,用于在不同意采用所述擬采用的隨機數(shù)時,向所述發(fā)送端發(fā)送建議采用的隨機數(shù);
建議隨機數(shù)確認子單元,用于在接收到所述發(fā)送端發(fā)送的確定采用所述建議采用的隨機數(shù)的信息后,將所述建議采用的隨機數(shù)確認為隨機數(shù)。
可選的,所述擬采用隨機數(shù)接收子單元,包括:
加密隨機數(shù)接收子單元,用于通過所述密鑰協(xié)商連接接收所述發(fā)送端發(fā)送的經(jīng)預置的密鑰加密后的擬采用的隨機數(shù);
加密隨機數(shù)解密子單元,用于采用所述預置的密鑰對所述經(jīng)預置的密鑰加密后的擬采用的隨機數(shù)進行解密,獲得擬采用的隨機數(shù)。
可選的,所述種子密鑰為量子種子密鑰。
以上,為本申請?zhí)峁┑囊环N用于接收端生成共享密鑰的裝置的實施例。
本申請還提供一種用于發(fā)送端生成共享密鑰的終端設備,包括:
中央處理器;
輸入輸出單元;
存儲器;
所述存儲器中存儲有本申請?zhí)峁┑挠糜诎l(fā)送端生成共享密鑰的方法;并在啟動后能夠根據(jù)上述方法運行。
由于本用于發(fā)送端生成共享密鑰的終端設備使用上述用于發(fā)送端生成共享密鑰的方法,相關之處請參見上述用于發(fā)送端生成共享密鑰的方法的實施例說明,此處不再贅述。
本申請還提供一種用于接收端生成共享密鑰的終端設備,包括:
中央處理器;
輸入輸出單元;
存儲器;
所述存儲器中存儲有本申請?zhí)峁┑挠糜诮邮斩松晒蚕砻荑€的方法;并在啟動后能夠根據(jù)上述方法運行。
由于本用于接收端生成共享密鑰的終端設備使用上述用于接收端生成共享密鑰的方法,相關之處請參見上述用于接收端生成共享密鑰的方法的實施例說明,此處不再贅述。
本發(fā)明還提供了一種用于生成共享密鑰的系統(tǒng),包括發(fā)送端和接收端,所述發(fā)送端配置有本申請?zhí)峁┑挠糜诎l(fā)送端生成共享密鑰的裝置,所述接收端配置有本申請?zhí)峁┑挠糜诮邮斩松晒蚕砻荑€的裝置。
由于本系統(tǒng)的發(fā)送端配置有本申請?zhí)峁┑挠糜诎l(fā)送端生成共享密鑰的裝置,接收端配置有本申請?zhí)峁┑挠糜诮邮斩松晒蚕砻荑€的裝置,因此相關之處請參見上述用于發(fā)送端生成共享密鑰的裝置的實施例說明以及用于接收端生成共享密鑰的裝置的實施例說明,此處不再贅述。
本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領域技術人員在不脫離本申請的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本申請的保護范圍應當以本申請權利要求所界定的范圍為準。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出 接口、網(wǎng)絡接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
1、計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
2、本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。