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