本發(fā)明涉及量子通信技術(shù)領(lǐng)域,特別涉及一種基于真隨機(jī)數(shù)和量子密鑰分發(fā)的消息認(rèn)證方法和系統(tǒng)。
背景技術(shù):
信息安全從古至今一直受到人們的廣泛關(guān)注,信息已經(jīng)毫無(wú)疑問(wèn)的成為國(guó)家的重要戰(zhàn)略資源,系統(tǒng)的安全性直接關(guān)系到國(guó)家的政治、經(jīng)濟(jì)、軍事、社會(huì)甚至對(duì)外戰(zhàn)略等諸多領(lǐng)域的成敗?,F(xiàn)如今量子保密通信技術(shù)在數(shù)據(jù)傳輸安全方面有著明顯的優(yōu)勢(shì),并已經(jīng)逐漸實(shí)用化。消息認(rèn)證碼是在密碼學(xué)中通信實(shí)體雙方使用的一種驗(yàn)證機(jī)制,保證消息數(shù)據(jù)完整性的一種工具。構(gòu)造方法由M.Bellare提出,完全依賴于Hash函數(shù),故也稱為帶密鑰的Hash函數(shù)。消息認(rèn)證可以應(yīng)用在廣播等只需認(rèn)證的情況或者文檔的持續(xù)保護(hù)中(例如解密后的保護(hù))。
專利申請(qǐng)201210443964.4公開(kāi)了一種用于量子密鑰分配系統(tǒng)的經(jīng)典信道的消息認(rèn)證,主要結(jié)合CRC編碼和一次一密的加密方式,生成原始消息M的消息認(rèn)證碼MAC,其過(guò)程為消息用HASH函數(shù)作用得到其散列值,然后用一次一密密鑰填充散列值作為MAC,后將MAC按照事先約定好的位置插入到原始消息M中,生成數(shù)據(jù)比特串,進(jìn)行糾錯(cuò)發(fā)送到接收方。接收方按照事先約定好的譯碼方式對(duì)數(shù)據(jù)進(jìn)行相應(yīng)譯碼,譯碼后提取相應(yīng)的消息M和消息認(rèn)證碼MAC,計(jì)算譯碼后所提取的消息M的MAC值,進(jìn)行比較算得的MAC值和譯碼后所提取到的MAC值是否相等,若相等則確定原始消息未被篡改,反之視為未通過(guò)認(rèn)證。
現(xiàn)有技術(shù)(經(jīng)典網(wǎng)絡(luò)通信)所用的密鑰是基于數(shù)學(xué)復(fù)雜性問(wèn)題的經(jīng)典算法,這種算法理論上不被破譯的可能性未得到證明,它們的局限性在于當(dāng)前計(jì)算能力?,F(xiàn)有技術(shù)中只實(shí)現(xiàn)基于量子密鑰分發(fā)的經(jīng)典信道的消息認(rèn)證,并沒(méi)有實(shí)現(xiàn)全通信網(wǎng)絡(luò)的消息認(rèn)證,且消息認(rèn)證的消息認(rèn)證碼的產(chǎn)生過(guò)程復(fù)雜。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種消息認(rèn)證系統(tǒng),利用可移動(dòng)式的量子密鑰卡解決量子網(wǎng)絡(luò)終端的接入使用與安全問(wèn)題。
一種消息認(rèn)證系統(tǒng),包括配置于網(wǎng)絡(luò)側(cè)的量子網(wǎng)絡(luò)服務(wù)站以及配置于用戶側(cè)的客戶端,客戶端與網(wǎng)絡(luò)側(cè)交互攜帶有消息認(rèn)證碼的消息認(rèn)證信息,通過(guò)對(duì)比各自生成的消息認(rèn)證碼進(jìn)行對(duì)比認(rèn)證,還設(shè)有量子密鑰卡,網(wǎng)絡(luò)側(cè)生成真隨機(jī)數(shù)在量子密鑰卡與網(wǎng)絡(luò)側(cè)分別存儲(chǔ)以形成相應(yīng)的用戶側(cè)密鑰;量子密鑰卡與網(wǎng)絡(luò)側(cè)的用戶側(cè)密鑰分別用于各自生成消息認(rèn)證碼以進(jìn)行對(duì)比認(rèn)證。
所述真隨機(jī)數(shù)由網(wǎng)絡(luò)側(cè)的量子網(wǎng)絡(luò)服務(wù)站生成,且在所述量子密鑰卡和該量子網(wǎng)絡(luò)服務(wù)站分別存儲(chǔ)以形成相應(yīng)的用戶側(cè)密鑰。
所述客戶端可以是信息發(fā)送客戶端和信息接收客戶端,兩者是相對(duì)而言,僅僅是根據(jù)發(fā)生的業(yè)務(wù)類型而定,所述信息發(fā)送客戶端和信息接收客戶端均具有與量子密鑰卡相配合的數(shù)據(jù)傳輸接口,信息發(fā)送客戶端和信息接收客戶端通過(guò)網(wǎng)絡(luò)側(cè)的量子網(wǎng)絡(luò)服務(wù)站中轉(zhuǎn)相互進(jìn)行消息認(rèn)證。
作為優(yōu)選,所述量子密鑰卡為USBkey或可插拔板卡/芯片,其具有數(shù)據(jù)存儲(chǔ)和處理功能,就其自身而言可以基于現(xiàn)有硬件技術(shù)實(shí)現(xiàn)。
所述量子密鑰卡在相應(yīng)的量子網(wǎng)絡(luò)服務(wù)站經(jīng)登記審核獲批后頒發(fā),具有唯一的量子密鑰卡ID,指向頒發(fā)該量子密鑰卡的量子網(wǎng)絡(luò)服務(wù)站。所述量子密鑰卡存儲(chǔ)有相應(yīng)用戶的身份信息,以及頒發(fā)該量子密鑰卡的量子網(wǎng)絡(luò)服務(wù)站的信息。
由于量子密鑰卡與所屬用戶相互綁定,因此量子密鑰卡內(nèi)存儲(chǔ)的相關(guān)信息也可以用來(lái)做用戶身份認(rèn)證??蛇x的,量子密鑰卡與專屬的客戶端ID相互綁定,此時(shí)量子密鑰卡內(nèi)存儲(chǔ)的相關(guān)信息也可以用作專屬客戶端的身份認(rèn)證。
作為優(yōu)選,所述用戶側(cè)密鑰作為密鑰種子,所述量子密鑰卡以及量子網(wǎng)絡(luò)服務(wù)站存儲(chǔ)有相應(yīng)的密鑰生成算法,分別用于生成消息認(rèn)證過(guò)程中所需的密鑰;
所述量子密鑰卡以及量子網(wǎng)絡(luò)服務(wù)站存儲(chǔ)有相應(yīng)的消息認(rèn)證碼生成算法,分別用于生成消息認(rèn)證碼。量子密鑰卡中的密鑰種子可以來(lái)自不同的量子網(wǎng)絡(luò)服務(wù)站,但密鑰生成算法、消息認(rèn)證碼生成算法以及有可能采用的加密算法存儲(chǔ)于量子密鑰卡以及各量子網(wǎng)絡(luò)服務(wù)站中。
當(dāng)密鑰生成算法和消息認(rèn)證碼生成算法有多種時(shí),客戶端有量子網(wǎng)絡(luò)服務(wù)站通信時(shí),可通過(guò)算法標(biāo)號(hào)或索引等形式,指定相同的算法。
量子密鑰卡中的密鑰種子既可以在頒發(fā)量子密鑰卡的量子網(wǎng)絡(luò)服務(wù)站下載,也可以在其它量子網(wǎng)絡(luò)服務(wù)站下載,為了識(shí)別不同來(lái)源,所述量子密鑰卡中存有標(biāo)識(shí)密鑰種子來(lái)源的密鑰種子ID,用以指向存儲(chǔ)該密鑰種子的量子網(wǎng)絡(luò)服務(wù)站,量子網(wǎng)絡(luò)服務(wù)站將用戶側(cè)密鑰寫(xiě)入量子密鑰卡的同時(shí),也存儲(chǔ)在本服務(wù)站中供調(diào)用。
為了提高安全性,下載密鑰種子時(shí)并不需要通過(guò)某用戶端進(jìn)行,而是量子密鑰卡與生成真隨機(jī)數(shù)在量子網(wǎng)絡(luò)服務(wù)站直接建立通信連接。僅在消息認(rèn)證、信息加解密或其他具體業(yè)務(wù)時(shí),量子密鑰卡需通過(guò)用戶端與量子網(wǎng)絡(luò)服務(wù)站通信連接。
所述量子密鑰卡內(nèi)包含隨機(jī)數(shù)發(fā)生器,用以產(chǎn)生隨機(jī)數(shù),作為客戶端與量子服務(wù)中心之間所需的消息認(rèn)證過(guò)程所用密鑰的生成參數(shù)。密鑰的生成依靠密鑰生成算法、作為密鑰種子的用戶側(cè)密鑰以及該隨機(jī)數(shù)。
所述量子密鑰卡中的密鑰種子按照來(lái)源不同分為若干密鑰種子集,同一密鑰種子集的密鑰種子來(lái)自同一量子網(wǎng)絡(luò)服務(wù)站,不同的密鑰種子集帶有不同的密鑰種子ID。
為了提高安全性,本發(fā)明密鑰種子是可更新的,密鑰種子更新時(shí):
可選的,客戶端發(fā)送更新申請(qǐng)給量子密鑰卡并通知量子網(wǎng)絡(luò)服務(wù)站,量子密鑰卡接收更新申請(qǐng)并按預(yù)定規(guī)則更新密鑰種子,量子網(wǎng)絡(luò)服務(wù)站同步更新相應(yīng)的密鑰種子。
可選的,統(tǒng)計(jì)密鑰種子的使用次數(shù),當(dāng)使用次數(shù)到達(dá)閾值時(shí)量子密鑰卡與對(duì)應(yīng)的量子網(wǎng)絡(luò)服務(wù)站同步更新相應(yīng)的密鑰種子。
使用次數(shù)閾值預(yù)先設(shè)定好,同時(shí)存儲(chǔ)在量子網(wǎng)絡(luò)服務(wù)站與量子密鑰卡中,使兩者得以統(tǒng)計(jì)并同步。
可選的,量子密鑰卡統(tǒng)計(jì)未被使用的密鑰種子數(shù)量,達(dá)到臨界值時(shí)進(jìn)行提示,客戶依需求在量子網(wǎng)絡(luò)服務(wù)站下載新的用戶側(cè)密鑰。
密鑰種子更新時(shí),是在量子密鑰卡與密鑰種子ID所指向的量子網(wǎng)絡(luò)服務(wù)站之間進(jìn)行。當(dāng)然,若是下載新的密鑰種子,則對(duì)量子網(wǎng)絡(luò)服務(wù)站沒(méi)有嚴(yán)格限制。
本發(fā)明消息認(rèn)證系統(tǒng)可在局域網(wǎng)內(nèi)實(shí)施,網(wǎng)絡(luò)側(cè)的量子網(wǎng)絡(luò)服務(wù)站包括::
量子服務(wù)中心,用于通過(guò)經(jīng)典網(wǎng)絡(luò)與用戶側(cè)的各客戶端通信連接;
真隨機(jī)數(shù)發(fā)生器,生成所述真隨機(jī)數(shù);
用戶側(cè)密鑰管理服務(wù)器,與量子服務(wù)中心通信連接,用于根據(jù)用戶請(qǐng)求將來(lái)自真隨機(jī)數(shù)發(fā)生器的真隨機(jī)數(shù)分別存儲(chǔ)至相應(yīng)的量子密鑰卡以及本量子網(wǎng)絡(luò)服務(wù)站內(nèi),作為相應(yīng)的用戶側(cè)密鑰。
所述真隨機(jī)數(shù)發(fā)生器為量子隨機(jī)數(shù)發(fā)生器,也可為基于電路的真隨機(jī)數(shù)發(fā)生器、基于物理源的真隨機(jī)數(shù)發(fā)生器以及其他種類的真隨機(jī)發(fā)生器。
多個(gè)量子網(wǎng)絡(luò)服務(wù)站構(gòu)成廣域網(wǎng)時(shí),本發(fā)明數(shù)字簽名系統(tǒng)可在廣域網(wǎng)內(nèi)實(shí)施,在網(wǎng)絡(luò)側(cè),相連接的兩量子網(wǎng)絡(luò)服務(wù)站均設(shè)有對(duì)應(yīng)的量子密鑰控制中心,量子密鑰控制中心與所在量子網(wǎng)絡(luò)服務(wù)站的量子服務(wù)中心通信連接,對(duì)應(yīng)的兩個(gè)量子密鑰控制中心通過(guò)量子網(wǎng)絡(luò)進(jìn)行密鑰分發(fā),用以在相連接的兩量子網(wǎng)絡(luò)服務(wù)站之間形成站間量子密鑰。
本發(fā)明中,量子服務(wù)中心以及量子密鑰控制中心可以利用現(xiàn)有構(gòu)架以及與量子技術(shù)相結(jié)合,例如量子密鑰控制中心設(shè)有實(shí)施QKD的量子密鑰分發(fā)設(shè)備;量子服務(wù)中心包括消息認(rèn)證服務(wù)器,用于客戶端或其他量子網(wǎng)絡(luò)服務(wù)站之間進(jìn)行消息認(rèn)證。
量子服務(wù)中心還可根據(jù)需要設(shè)置其他服務(wù)器,例如可設(shè)置加解密服務(wù)器、數(shù)字簽名驗(yàn)證服務(wù)器等,還可設(shè)置管理中心服務(wù)器,消息認(rèn)證服務(wù)器以及其他服務(wù)器與管理中心服務(wù)器通信連接。
所述用戶側(cè)密鑰管理服務(wù)器將來(lái)自真隨機(jī)數(shù)發(fā)生器的真隨機(jī)數(shù)分別存儲(chǔ)至相應(yīng)的量子密鑰卡以及本量子網(wǎng)絡(luò)服務(wù)站內(nèi)作為用戶側(cè)密鑰,而在量子網(wǎng)絡(luò)服務(wù)站內(nèi),該用戶側(cè)密鑰可存儲(chǔ)在用戶側(cè)密鑰管理服務(wù)器和/或量子服務(wù)中心中,所述用戶側(cè)密鑰管理服務(wù)器與量子服務(wù)中心通信連接,以響應(yīng)對(duì)用戶側(cè)密鑰的調(diào)用。
可選的,與客戶端通信的當(dāng)前量子網(wǎng)絡(luò)服務(wù)站存有消息認(rèn)證時(shí)所涉及的用戶側(cè)密鑰,則站內(nèi)直接調(diào)用該用戶側(cè)密鑰以用于消息認(rèn)證。
消息認(rèn)證時(shí)所涉及的用戶側(cè)密鑰,有可能是消息認(rèn)證碼算法本身需使用,也可能是基于密文傳輸?shù)募用苄枰褂茫诳蛻舳?,該用戶?cè)密鑰存儲(chǔ)在量子密鑰卡中,相應(yīng)的網(wǎng)絡(luò)側(cè)的某一量子網(wǎng)絡(luò)服務(wù)站也應(yīng)存儲(chǔ)相應(yīng)的用戶側(cè)密鑰;該用戶側(cè)密鑰的密鑰種子ID若指向與客戶端通信的當(dāng)前量子網(wǎng)絡(luò)服務(wù)站,即當(dāng)前量子網(wǎng)絡(luò)服務(wù)站存有消息認(rèn)證時(shí)所涉及的用戶側(cè)密鑰。
本發(fā)明消息認(rèn)證系統(tǒng)可在局域網(wǎng)內(nèi)實(shí)施,信息發(fā)送客戶端與量子網(wǎng)絡(luò)服務(wù)站之間消息認(rèn)證時(shí):
在信息發(fā)送客戶端的量子密鑰卡中,根據(jù)密鑰生成算法、所選取密鑰種子,以及隨機(jī)數(shù)發(fā)生器產(chǎn)生的第一隨機(jī)數(shù)三個(gè)參數(shù)得到消息認(rèn)證所需的第一密鑰,將第一密鑰與信息數(shù)據(jù)進(jìn)行運(yùn)算生成第一消息認(rèn)證碼;
將所述第一消息認(rèn)證碼、信息數(shù)據(jù)、第一隨機(jī)數(shù)、以及密鑰種子ID、密鑰生成算法標(biāo)識(shí)經(jīng)由信息發(fā)送客戶端提交至量子網(wǎng)絡(luò)服務(wù)站;
量子網(wǎng)絡(luò)服務(wù)站根據(jù)密鑰種子ID在站內(nèi)提取相應(yīng)的密鑰種子,根據(jù)密鑰生成算法標(biāo)識(shí)提取相應(yīng)的密鑰生成算法,通過(guò)提取到的密鑰種子、密鑰生成算法結(jié)合接收到的第一隨機(jī)數(shù)生成第二密鑰,將第二密鑰與信息數(shù)據(jù)進(jìn)行運(yùn)算生成第二消息認(rèn)證碼,將第一消息認(rèn)證碼和第二消息認(rèn)證碼進(jìn)行對(duì)比認(rèn)證。
同理信息接收客戶端與量子網(wǎng)絡(luò)服務(wù)站之間消息認(rèn)證時(shí):
量子網(wǎng)絡(luò)服務(wù)站與信息接收客戶端通信時(shí),會(huì)獲取與信息接收客戶端所匹配的量子密鑰卡中的密鑰種子ID,根據(jù)該密鑰種子ID量子網(wǎng)絡(luò)服務(wù)站在站內(nèi)提取相應(yīng)的密鑰種子,量子網(wǎng)絡(luò)服務(wù)站內(nèi)的消息認(rèn)證服務(wù)器通過(guò)內(nèi)設(shè)的隨機(jī)數(shù)發(fā)生器生成第二隨機(jī)數(shù),將提取到的密鑰種子、第二隨機(jī)數(shù)通過(guò)密鑰生成算法生成第三密鑰,第三密鑰與信息數(shù)據(jù)運(yùn)算生成第三消息認(rèn)證碼。
量子網(wǎng)絡(luò)服務(wù)站將所述第三消息認(rèn)證碼與信息數(shù)據(jù),連同在生成第三密鑰時(shí)涉及的密鑰種子ID、密鑰生成算法標(biāo)識(shí)、以及第二隨機(jī)數(shù);發(fā)送至信息接收客戶端。
信息接收客戶端接收后轉(zhuǎn)發(fā)至匹配的量子密鑰卡,在量子密鑰卡中根據(jù)密鑰種子ID在卡內(nèi)提取相應(yīng)的密鑰種子,根據(jù)密鑰生成算法標(biāo)識(shí)提取相應(yīng)的密鑰生成算法,通過(guò)提取到的密鑰種子、密鑰生成算法結(jié)合接收到的第二隨機(jī)數(shù)生成第四密鑰,將第四密鑰與信息數(shù)據(jù)進(jìn)行運(yùn)算生成第四消息認(rèn)證碼,將第三消息認(rèn)證碼和第四消息認(rèn)證碼進(jìn)行對(duì)比認(rèn)證。
本發(fā)明消息認(rèn)證系統(tǒng)可在廣域網(wǎng)內(nèi)實(shí)施,可選的,所述網(wǎng)絡(luò)側(cè)的量子網(wǎng)絡(luò)服務(wù)站為至少兩個(gè),所述信息發(fā)送客戶端和信息接收客戶端配置在不同的量子網(wǎng)絡(luò)服務(wù)站,信息發(fā)送客戶端和信息接收客戶端兩者所屬的量子網(wǎng)絡(luò)服務(wù)站之間進(jìn)行消息認(rèn)證的傳遞。即兩個(gè)量子網(wǎng)絡(luò)服務(wù)站之間要進(jìn)行一次消息認(rèn)證,兩個(gè)量子網(wǎng)絡(luò)服務(wù)站之間可采用各自的量子密鑰分發(fā)設(shè)備,進(jìn)行量子密鑰的分發(fā),再利用分發(fā)量子密鑰進(jìn)行消息認(rèn)證。
而信息發(fā)送客戶端和信息接收客戶端兩者與所屬的量子網(wǎng)絡(luò)服務(wù)站之間的消息認(rèn)證,與上述過(guò)程同理,都是利用量子密鑰卡與量子網(wǎng)絡(luò)服務(wù)站之間相應(yīng)的用戶側(cè)密鑰,生成消息認(rèn)證碼,進(jìn)行對(duì)比認(rèn)證。
以上為信息發(fā)送客戶端和信息接收客戶端歸屬不同的量子網(wǎng)絡(luò)服務(wù)站,歸屬某一量子網(wǎng)絡(luò)服務(wù)站,可理解為直接與該量子網(wǎng)絡(luò)服務(wù)站進(jìn)行通信,以實(shí)施消息認(rèn)證。
另外,無(wú)論信息發(fā)送客戶端和信息接收客戶端是否歸屬同一量子網(wǎng)絡(luò)服務(wù)站,可能發(fā)生的是在消息認(rèn)證時(shí),某客戶端生成消息認(rèn)證碼所涉及的密鑰種子ID,并沒(méi)有指向該客戶端直接通信連接的量子網(wǎng)絡(luò)服務(wù)站。
可選的,客戶端相匹配的量子密鑰卡以及與該客戶端通信的當(dāng)前量子網(wǎng)絡(luò)服務(wù)站之間沒(méi)有相應(yīng)的用戶側(cè)密鑰,當(dāng)前量子網(wǎng)絡(luò)服務(wù)站根據(jù)客戶端在消息認(rèn)證時(shí)使用的用戶側(cè)密鑰來(lái)源,向存儲(chǔ)該用戶側(cè)密鑰的量子網(wǎng)絡(luò)服務(wù)站請(qǐng)求該用戶側(cè)密鑰或請(qǐng)求生成消息認(rèn)證碼。
客戶端在消息認(rèn)證時(shí)使用的用戶側(cè)密鑰來(lái)源,可以根據(jù)客戶端量子密鑰卡的密鑰種子ID,客戶端與當(dāng)前量子網(wǎng)絡(luò)服務(wù)站交互時(shí),當(dāng)前量子網(wǎng)絡(luò)服務(wù)站可獲取該密鑰種子ID,再向密鑰種子ID所指的量子網(wǎng)絡(luò)服務(wù)站請(qǐng)求該用戶側(cè)密鑰。
若當(dāng)前量子網(wǎng)絡(luò)服務(wù)站與密鑰種子ID所指的量子網(wǎng)絡(luò)服務(wù)站直接連接,則可直接發(fā)送請(qǐng)求;若當(dāng)前量子網(wǎng)絡(luò)服務(wù)站與密鑰種子ID所指的量子網(wǎng)絡(luò)服務(wù)站間接連接,即需要通過(guò)其他網(wǎng)絡(luò)節(jié)點(diǎn)中轉(zhuǎn),則按照預(yù)設(shè)規(guī)則或網(wǎng)絡(luò)實(shí)時(shí)狀態(tài)選擇合適的路徑,與密鑰種子ID所指的量子網(wǎng)絡(luò)服務(wù)站通信。
用戶側(cè)密鑰在密鑰種子ID指向的量子網(wǎng)絡(luò)服務(wù)站與當(dāng)前量子網(wǎng)絡(luò)服務(wù)站之間傳送時(shí),可以利用站間量子密鑰對(duì)用戶側(cè)密鑰本身進(jìn)行加、解密傳送。
密鑰種子ID指向的量子網(wǎng)絡(luò)服務(wù)站與當(dāng)前量子網(wǎng)絡(luò)服務(wù)站之間如果還要通過(guò)其他網(wǎng)絡(luò)節(jié)點(diǎn)中轉(zhuǎn),則所述的站間量子密鑰應(yīng)理解為在直接通信連接的兩量子網(wǎng)絡(luò)服務(wù)站(或網(wǎng)絡(luò)節(jié)點(diǎn))之間通過(guò)相應(yīng)的量子密鑰分發(fā)設(shè)備形成的站間量子密鑰,而并非特指密鑰種子ID指向的量子網(wǎng)絡(luò)服務(wù)站與當(dāng)前量子網(wǎng)絡(luò)服務(wù)站之間的站間量子密鑰。
同理,當(dāng)前量子網(wǎng)絡(luò)服務(wù)站向密鑰種子ID指向的量子網(wǎng)絡(luò)服務(wù)站請(qǐng)求生成消息認(rèn)證碼時(shí),兩站之間交互的數(shù)據(jù)可以利用站間量子密鑰進(jìn)行加、解密傳送。
作為優(yōu)選,當(dāng)前量子網(wǎng)絡(luò)服務(wù)站根據(jù)客戶端在消息認(rèn)證時(shí)使用的用戶側(cè)密鑰來(lái)源,向存儲(chǔ)該用戶側(cè)密鑰的量子網(wǎng)絡(luò)服務(wù)站,請(qǐng)求生成消息認(rèn)證碼,請(qǐng)求生成消息認(rèn)證碼時(shí),將相應(yīng)的消息也發(fā)送至被請(qǐng)求的量子網(wǎng)絡(luò)服務(wù)站。
被請(qǐng)求的量子網(wǎng)絡(luò)服務(wù)站生成消息認(rèn)證碼后,該消息認(rèn)證碼返回當(dāng)前量子網(wǎng)絡(luò)服務(wù)站進(jìn)行對(duì)比認(rèn)證;或存儲(chǔ)該用戶側(cè)密鑰的量子網(wǎng)絡(luò)服務(wù)站生成消息認(rèn)證碼后進(jìn)行對(duì)比認(rèn)證,再向當(dāng)前量子網(wǎng)絡(luò)服務(wù)站返回認(rèn)證結(jié)果。
由于量子密鑰卡具有數(shù)據(jù)處理能力,為了提高安全性,作為優(yōu)選,消息認(rèn)證時(shí),用戶側(cè)消息認(rèn)證碼的生成在量子密鑰卡中進(jìn)行。再經(jīng)由匹配的客戶端上傳給當(dāng)前量子網(wǎng)絡(luò)服務(wù)站,此處的匹配應(yīng)理解為量子密鑰卡與當(dāng)前的客戶端已經(jīng)建立通信連接,量子密鑰卡與用戶是綁定的,但并不要求與指定的用戶端在硬件地址上進(jìn)行綁定,當(dāng)然,考慮到某些特殊場(chǎng)合或需求,也可以將量子密鑰卡與指定的客戶端在硬件地址上進(jìn)行綁定。
作為優(yōu)選,待認(rèn)證的消息采用密文傳輸,生成密文時(shí)在附加消息認(rèn)證碼前加密,或在附加消息認(rèn)證碼后加密。
加密時(shí)采用對(duì)稱加密算法,依然采用量子密鑰卡與量子網(wǎng)絡(luò)服務(wù)站之間相應(yīng)的用戶側(cè)密鑰進(jìn)行加密解密運(yùn)算。作為優(yōu)選,加密所用的密鑰的生成以及對(duì)信息進(jìn)行加密運(yùn)算,都在量子密鑰卡中進(jìn)行。
在加密解密過(guò)程中,同樣涉及到客戶端以及與該客戶端通信的當(dāng)前量子網(wǎng)絡(luò)服務(wù)站之間沒(méi)有相應(yīng)的用戶側(cè)密鑰,同理,當(dāng)前量子網(wǎng)絡(luò)服務(wù)站根據(jù)客戶端在加密或解密時(shí)使用的用戶側(cè)密鑰來(lái)源,向存儲(chǔ)該用戶側(cè)密鑰的量子網(wǎng)絡(luò)服務(wù)站請(qǐng)求該用戶側(cè)密鑰或請(qǐng)求加密或解密。
本發(fā)明還提供一種消息認(rèn)證方法,應(yīng)用于本發(fā)明所述的消息認(rèn)證系統(tǒng)。
本發(fā)明中量子密鑰卡可在量子網(wǎng)絡(luò)服務(wù)站中的用戶側(cè)密鑰管理服務(wù)器中拷取真隨機(jī)數(shù),相當(dāng)于密鑰分發(fā),且真隨機(jī)數(shù)發(fā)生器利用量子力學(xué)的基本原理來(lái)產(chǎn)生真隨機(jī)數(shù),由于該真隨機(jī)數(shù)序列相對(duì)于竊聽(tīng)者是完全隨機(jī)且未知的,因此可以用來(lái)作為密鑰以保證安全性。本發(fā)明采用的是HMAC算法,引入了密鑰,其安全性已經(jīng)不完全依賴于使用的HASH算法。安全性得到更大的保證。
本發(fā)明消息認(rèn)證是利用現(xiàn)有經(jīng)典通信網(wǎng)絡(luò)的優(yōu)勢(shì),結(jié)合真隨機(jī)數(shù)發(fā)生器和量子密鑰分發(fā)產(chǎn)生的密鑰。信息數(shù)據(jù)經(jīng)過(guò)級(jí)級(jí)相互消息認(rèn)證后才傳達(dá)到接收方,這樣更加保證信息數(shù)據(jù)的正確性且安全性也不會(huì)降低。
附圖說(shuō)明
圖1為實(shí)施例4中消息認(rèn)證系統(tǒng)示意圖;
圖2為實(shí)施例1中明文消息認(rèn)證算法示意圖;
圖3為實(shí)施例1中明文消息認(rèn)證流程示意圖;
圖4為實(shí)施例2中密文消息認(rèn)證算法示意圖;
圖5為實(shí)施例3中密文消息認(rèn)證算法示意圖。
具體實(shí)施方式
實(shí)施例1:
本實(shí)施例消息認(rèn)證系統(tǒng)包括:
信息發(fā)送客戶端,用于將消息認(rèn)證信息發(fā)送至網(wǎng)絡(luò)側(cè)的量子網(wǎng)絡(luò)服務(wù)站;
一個(gè)量子網(wǎng)絡(luò)服務(wù)站,用于提供真隨機(jī)數(shù)作為相應(yīng)的用戶側(cè)密鑰分別存儲(chǔ)在量子密鑰卡和量子網(wǎng)絡(luò)服務(wù)站中,還用于利用量子網(wǎng)絡(luò)服務(wù)站中存儲(chǔ)的用戶側(cè)密鑰對(duì)接收到的消息認(rèn)證信息進(jìn)行消息認(rèn)證,消息認(rèn)證成功后,再生成新的消息認(rèn)證信息發(fā)送至信息接收客戶端;
信息接收客戶端,用于接收來(lái)自量子網(wǎng)絡(luò)服務(wù)站的消息認(rèn)證信息;
信息發(fā)送客戶端和信息接收客戶端分別匹配有量子密鑰卡,量子密鑰卡用于存儲(chǔ)作為密鑰種子的用戶側(cè)密鑰,還用于利用密鑰種子生成密鑰進(jìn)而生成消息認(rèn)證信息。
本實(shí)施例中信息發(fā)送客戶端和信息接收客戶端與量子網(wǎng)絡(luò)服務(wù)站之間的數(shù)據(jù)交互均通過(guò)經(jīng)典網(wǎng)絡(luò)進(jìn)行;信息發(fā)送客戶端和信息接收客戶端為客戶接入量子網(wǎng)絡(luò)設(shè)備,本實(shí)施例中信息發(fā)送客戶端和信息接收客戶端為移動(dòng)終端,或?yàn)楣潭ńK端。
本實(shí)施例中,量子網(wǎng)絡(luò)服務(wù)站包括真隨機(jī)數(shù)發(fā)生器(量子隨機(jī)數(shù)發(fā)生器)、用戶側(cè)密鑰管理服務(wù)器和量子服務(wù)中心。
量子隨機(jī)數(shù)發(fā)生器用于生成真隨機(jī)數(shù);
用戶側(cè)密鑰管理服務(wù)器用于存儲(chǔ)由量子隨機(jī)數(shù)發(fā)生器生成的真隨機(jī)數(shù),還用于供量子密鑰卡拷貝真隨機(jī)數(shù)生成密鑰種子(即用戶側(cè)密鑰),并以密鑰種子集的形式分別存儲(chǔ)于量子密鑰卡和量子網(wǎng)絡(luò)服務(wù)站中;
量子服務(wù)中心包括消息認(rèn)證服務(wù)器和身份認(rèn)證服務(wù)器,消息認(rèn)證服務(wù)器用于對(duì)接收到消息認(rèn)證信息進(jìn)行消息認(rèn)證,并針對(duì)驗(yàn)證成功的信息生成新的消息認(rèn)證信息,然后將消息認(rèn)證信息經(jīng)由量子服務(wù)中心發(fā)送至信息接收客戶端;消息認(rèn)證服務(wù)器內(nèi)包含隨機(jī)數(shù)發(fā)生器,用以產(chǎn)生隨機(jī)數(shù),作為客戶端與量子服務(wù)中心之間所需的消息認(rèn)證過(guò)程所用密鑰的生成參數(shù)。密鑰的生成依靠密鑰生成算法、用戶側(cè)密鑰以及隨機(jī)數(shù)。
身份認(rèn)證服務(wù)器用于驗(yàn)證客戶是否為合法客戶。
每個(gè)量子密鑰卡都具有唯一ID號(hào),當(dāng)客戶在所處區(qū)域的量子網(wǎng)絡(luò)服務(wù)站進(jìn)行注冊(cè)登記后,客戶會(huì)得到一個(gè)具有唯一ID號(hào)的量子密鑰卡。量子密鑰卡存儲(chǔ)了客戶注冊(cè)登記信息,至少包括一個(gè)密鑰種子的密鑰種子集,還內(nèi)置由密鑰生成算法和MAC算法等與消息認(rèn)證的相關(guān)算法。量子密鑰卡利用密鑰生成算法、用戶側(cè)密鑰、隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)生成密鑰,利用MAC算法和密鑰對(duì)消息進(jìn)行運(yùn)算生成消息認(rèn)證碼。
量子密鑰卡內(nèi)置的消息認(rèn)證的相關(guān)算法與量子網(wǎng)絡(luò)服務(wù)站存儲(chǔ)的消息認(rèn)證的相關(guān)算法一致。若密鑰生成算法只有一種,消息認(rèn)證服務(wù)器可以直接得到密鑰生成算法;若密鑰生成算法存在最少兩種,量子密鑰卡會(huì)將密鑰生成算法的標(biāo)號(hào)信息傳送至量子網(wǎng)絡(luò)服務(wù)站中。
量子密鑰卡中的用戶側(cè)密鑰可能下載自不同的量子網(wǎng)絡(luò)服務(wù)站,因此可按不同來(lái)源存在不同的密鑰種子集中,客戶端可按預(yù)先設(shè)定的規(guī)則取用密鑰種子以生成密鑰。
不同客戶的量子密鑰卡中存儲(chǔ)的密鑰種子集不同,且針對(duì)不同量子密鑰卡也可設(shè)計(jì)不同的密鑰生成算法,提高消息認(rèn)證的安全性。在密鑰種子和密鑰生成算法的配合下,將能生成大量隨機(jī)密鑰,每次消息認(rèn)證時(shí)使用一個(gè)密鑰,使消息認(rèn)證密鑰一次一變。
當(dāng)客戶端為移動(dòng)終端時(shí),量子密鑰卡優(yōu)選為量子SD卡;當(dāng)客戶端為固定終端時(shí),量子密鑰卡優(yōu)選為USBkey。
本發(fā)明各實(shí)施例的MAC算法采用HMAC運(yùn)算,它的運(yùn)算方法是將密鑰和信息數(shù)據(jù)同時(shí)作為輸入,采用二次散列迭代的方式,公式如下:HMAC(K,M)=H(K+○opad|H(K+○ipad|M)),其中K是密鑰,長(zhǎng)度為64字節(jié),若長(zhǎng)度小于該長(zhǎng)度,則自動(dòng)在密鑰后面用0填補(bǔ)補(bǔ)充。M是消息;H是散列函數(shù);opad和ipad分別是由若干個(gè)0x5c和0x36組成的字符串;|表示連接操作。
消息認(rèn)證有兩層含義:一是檢驗(yàn)消息的來(lái)源是否為真實(shí)的,即對(duì)消息的發(fā)送者的身份進(jìn)行身份認(rèn)證。二是檢驗(yàn)消息是完整的,即驗(yàn)證消息在傳輸或存儲(chǔ)過(guò)程中是否被篡改、刪除或插入。
兩個(gè)客戶之間進(jìn)行消息認(rèn)證時(shí),既可以選擇明文消息認(rèn)證,或選擇密文消息認(rèn)證。
如圖2所示,明文消息認(rèn)證包括如下步驟:
步驟1:利用密鑰種子、隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)和密鑰生成算法AS生成密鑰K1。
步驟2:利用MAC算法,把密鑰K1和消息M同時(shí)輸入,采用MAC算法生成消息M的消息認(rèn)證碼MAC1。
步驟3:將消息認(rèn)證碼MAC1附加在消息M后以M||MAC1形式一起發(fā)送到接收方,并且將隨機(jī)數(shù)、密鑰生成算法標(biāo)識(shí)、密鑰種子ID傳送給接收方。
步驟4:接收方接收到M||MAC1后,根據(jù)明文信息數(shù)據(jù)本身具有的標(biāo)示,可以直接將消息M與消息認(rèn)證碼MAC1分開(kāi),接收方接收到隨機(jī)數(shù)、密鑰生成算法標(biāo)識(shí)、密鑰種子ID后找到對(duì)應(yīng)的密鑰生成算法和密鑰種子,經(jīng)運(yùn)算得到密鑰,接收方將所接收到的消息M與接收方對(duì)應(yīng)密鑰一起采用MAC算法得到消息認(rèn)證碼MAC2與發(fā)送過(guò)來(lái)的消息認(rèn)證碼MAC1進(jìn)行比較。
步驟5:進(jìn)行分析,若消息認(rèn)證碼MAC1=消息認(rèn)證碼MAC2,接收方認(rèn)為消息未被篡改且確定發(fā)送端身份真實(shí)。否則認(rèn)為消息被篡改了,即放棄傳送消息。
本實(shí)施例中客戶端A1與客戶端An歸屬同一量子網(wǎng)絡(luò)服務(wù)站,其設(shè)有量子服務(wù)中心A,即可視為在局域網(wǎng)內(nèi)客戶端A1與客戶端An進(jìn)行明文消息認(rèn)證,如圖3所示,具體包括如下步驟:
步驟1:量子服務(wù)中心A與客戶端A1之間進(jìn)行消息認(rèn)證
a.消息認(rèn)證開(kāi)始:客戶端A1首先與相匹配的量子密鑰卡建立通信連接。
b.用戶側(cè)消息認(rèn)證密鑰生成:量子密鑰卡根據(jù)所存儲(chǔ)的密鑰種子SS以及卡內(nèi)隨機(jī)數(shù)發(fā)生器所產(chǎn)生的隨機(jī)數(shù)結(jié)合密鑰生成算法AS,得到密鑰K1。并將隨機(jī)數(shù)以及密鑰生成算法ID和密鑰種子ID傳遞給量子服務(wù)中心A。
網(wǎng)絡(luò)側(cè)消息認(rèn)證密鑰生成:量子服務(wù)中心A根據(jù)密鑰生成算法ID和密鑰種子ID,在當(dāng)前量子網(wǎng)絡(luò)服務(wù)站內(nèi)找出對(duì)應(yīng)的密鑰種子SS’和密鑰生成算法AS’,結(jié)合隨機(jī)數(shù)運(yùn)算得到密鑰K1’,密鑰K1’也可以在步驟d生成。
c.用戶側(cè)生成消息認(rèn)證碼并發(fā)送消息認(rèn)證信息:量子密鑰卡將所要發(fā)送的消息M和密鑰K1同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC1,并且附加在明文信息后以M||MAC1形式經(jīng)由客戶端A1發(fā)送到量子服務(wù)中心A。
d.量子服務(wù)中心A生成消息認(rèn)證碼:量子服務(wù)中心A接收到以M||MAC1形式傳輸過(guò)來(lái)的數(shù)據(jù),將消息M與消息認(rèn)證碼MAC1分離開(kāi),將消息M和量子服務(wù)中心的密鑰K1’一同作為輸入,采用MAC算法生成消息認(rèn)證碼MAC2。
e.消息認(rèn)證碼進(jìn)行比較:量子服務(wù)中心A將生成的消息認(rèn)證碼MAC2與接收到的消息認(rèn)證碼MAC1進(jìn)行比較。若相等則證明消息沒(méi)有被篡改。若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。
步驟2:量子服務(wù)中心A與客戶端An之間進(jìn)行消息認(rèn)證
若客戶端A1與客戶端An進(jìn)行消息認(rèn)證,首先客戶端A1會(huì)向量子網(wǎng)絡(luò)服務(wù)站發(fā)出通信請(qǐng)求,通信請(qǐng)求中會(huì)攜帶有接收方用戶的相關(guān)信息,本實(shí)施例中接收方用戶對(duì)應(yīng)客戶端An。
a.網(wǎng)絡(luò)側(cè)消息認(rèn)證密鑰生成:量子服務(wù)中心A根據(jù)接收方對(duì)應(yīng)的密鑰種子ID在當(dāng)前量子網(wǎng)絡(luò)服務(wù)站內(nèi)找出與接收方用戶量子密鑰卡中相應(yīng)的密鑰種子cc’以及密鑰生成算法Ac’,并與消息認(rèn)證服務(wù)器內(nèi)的隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)結(jié)合運(yùn)算得到密鑰K2。
b.量子服務(wù)中心A生成消息認(rèn)證碼:量子服務(wù)中心A將消息M和密鑰K2同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC3,并且將消息認(rèn)證碼MAC3附加在消息M后以M||MAC3形式發(fā)送到客戶端An。同時(shí)向接收客戶端An傳遞密鑰種子ID、密鑰生成算法ID、隨機(jī)數(shù)。
c.用戶側(cè)消息認(rèn)證密鑰生成:客戶端An接收到消息認(rèn)證信息(M||MAC3)以及密鑰種子ID、密鑰生成算法ID、隨機(jī)數(shù)后轉(zhuǎn)發(fā)至所匹配的量子密鑰卡,該量子密鑰卡根據(jù)接收到的信息找到對(duì)應(yīng)的密鑰種子cc以及密鑰生成算法Ac,結(jié)合隨機(jī)數(shù)進(jìn)而生成密鑰K2’。
d.用戶側(cè)生成消息認(rèn)證碼:客戶端An匹配的量子密鑰卡從接收到的消息認(rèn)證信息中提取消息M與消息認(rèn)證碼MAC3,利用消息M和密鑰K2’采用MAC算法生成消息認(rèn)證碼MAC4。
e.消息認(rèn)證碼進(jìn)行比較:客戶端An匹配的量子密鑰卡將生成的消息認(rèn)證碼MAC4與消息認(rèn)證碼MAC3進(jìn)行比較。
若相等則證明消息沒(méi)有被篡改。若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。消息認(rèn)證完成。
客戶在進(jìn)行消息認(rèn)證時(shí),密鑰種子長(zhǎng)期使用或重復(fù)使用會(huì)有被破解的可能性,為提高本消息認(rèn)證系統(tǒng)的安全性,密鑰種子需要定時(shí)更新。
本實(shí)施例中的更新方式為:
客戶端與匹配的量子密鑰卡建立通信連接后,客戶端通過(guò)上層應(yīng)用程序向量子密鑰卡發(fā)送更新申請(qǐng),該更新申請(qǐng)同時(shí)也發(fā)送至量子服務(wù)中心。
密鑰存儲(chǔ)卡接收更新申請(qǐng)后,按預(yù)先設(shè)定的規(guī)則更新密鑰種子,例如將一部分使用過(guò)的密鑰種子做失效標(biāo)識(shí),不再使用,而啟用新的密鑰種子。
量子服務(wù)中心接收更新申請(qǐng)后,按預(yù)先與量子密鑰卡協(xié)商一致的規(guī)則更新量子網(wǎng)絡(luò)服務(wù)站內(nèi)相應(yīng)存儲(chǔ)的密鑰種子,實(shí)現(xiàn)與量子密鑰卡的時(shí)時(shí)對(duì)應(yīng)。
實(shí)施例2:
如圖4所示,本實(shí)施例消息認(rèn)證系統(tǒng)與實(shí)施例1不同之處在于采用密文消息認(rèn)證方式,包括如下步驟:
步驟1:量子服務(wù)中心A與客戶端A1之間進(jìn)行消息認(rèn)證
a.消息認(rèn)證開(kāi)始:客戶端A1首先與相匹配的量子密鑰卡建立通信連接。
b.用戶側(cè)消息認(rèn)證密鑰生成:量子密鑰卡根據(jù)所存儲(chǔ)的密鑰種子SS、隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)通過(guò)密鑰生成算法AS得到密鑰K1和密鑰Q1。同時(shí)傳遞密鑰種子ID、密鑰生成算法ID以及隨機(jī)數(shù)給量子網(wǎng)絡(luò)服務(wù)中心A。
網(wǎng)絡(luò)側(cè)消息認(rèn)證密鑰生成:量子服務(wù)中心A根據(jù)密鑰種子ID、密鑰生成算法ID以及隨機(jī)數(shù),在當(dāng)前量子網(wǎng)絡(luò)服務(wù)站內(nèi)找出對(duì)應(yīng)的密鑰種子SS’和密鑰生成算法AS’,并結(jié)合隨機(jī)數(shù)運(yùn)算后得到密鑰K1’和密鑰Q1’。
c.用戶側(cè)生成消息認(rèn)證碼并發(fā)送消息認(rèn)證信息:量子密鑰卡利用密鑰Q1對(duì)所要發(fā)送的消息M進(jìn)行加密得到密文EQ1(M),該密文EQ1(M)和密鑰K1同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC1,并且附加在密文后以EQ1(M)||MAC1形式經(jīng)由客戶端A1發(fā)送到量子服務(wù)中心A。
d.量子服務(wù)中心A生成消息認(rèn)證碼:量子服務(wù)中心A接收到以EQ1(M)||MAC1形式傳輸過(guò)來(lái)的數(shù)據(jù),將密文EQ1(M)與消息認(rèn)證碼MAC1分離開(kāi),將密文EQ1(M)和量子服務(wù)中心的密鑰K1’作為輸入,采用MAC算法生成消息認(rèn)證碼MAC2。
e.消息認(rèn)證碼進(jìn)行比較:量子服務(wù)中心A將生成的消息認(rèn)證碼MAC2與接收到的消息認(rèn)證碼MAC1進(jìn)行比較。
若相等則證明消息沒(méi)有被篡改,利用密鑰Q1’解密得到明文形式的消息M。
若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。步驟2:量子服務(wù)中心A與客戶端An之間進(jìn)行消息認(rèn)證
若客戶端A1與客戶端An進(jìn)行消息認(rèn)證,首先客戶端A1會(huì)向量子網(wǎng)絡(luò)服務(wù)站發(fā)出通信請(qǐng)求,通信請(qǐng)求中會(huì)攜帶有接收方用戶的相關(guān)信息,本實(shí)施例中接收方用戶對(duì)應(yīng)客戶端An。
a.網(wǎng)絡(luò)側(cè)消息認(rèn)證密鑰生成:量子服務(wù)中心A根據(jù)接收方對(duì)應(yīng)的密鑰種子ID,在當(dāng)前量子網(wǎng)絡(luò)服務(wù)站內(nèi)找出與接收方用戶量子密鑰卡中相應(yīng)的密鑰種子cc’以及密鑰生成算法Ac’,并結(jié)合站內(nèi)消息認(rèn)證服務(wù)器內(nèi)隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)運(yùn)算得到密鑰K2和密鑰Q2。并將密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)提交給客戶端An。
b.量子服務(wù)中心A生成消息認(rèn)證碼:量子服務(wù)中心A利用密鑰Q2加密消息M得到密文EQ2(M),密文EQ2(M)和密鑰K2同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC3,并且將消息認(rèn)證碼MAC3附加在密文后以EQ2(M)||MAC3形式發(fā)送到客戶端An。
c.用戶側(cè)消息認(rèn)證密鑰生成:客戶端An接收到消息認(rèn)證信息(M||MAC3)以及密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)后轉(zhuǎn)發(fā)至所匹配的量子密鑰卡,該量子密鑰卡根據(jù)接收到的信息找到對(duì)應(yīng)的密鑰種子cc以及密鑰生成算法Ac,進(jìn)而生成密鑰K2’和密鑰Q2’。
d.用戶側(cè)生成消息認(rèn)證碼:客戶端An匹配的量子密鑰卡從接收到的消息認(rèn)證信息中提取密文EQ2(M)與消息認(rèn)證碼MAC3,利用密文EQ2(M)和密鑰K2’采用MAC算法生成消息認(rèn)證碼MAC4。
e.消息認(rèn)證碼進(jìn)行比較:客戶端An匹配的量子密鑰卡將生成的消息認(rèn)證碼MAC4與消息認(rèn)證碼MAC3進(jìn)行比較。
若相等則證明消息沒(méi)有被篡改,再利用密鑰Q2’解密,得到明文形式的消息M。
若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。消息認(rèn)證完成。
本實(shí)施例中,客戶在進(jìn)行密文消息認(rèn)證時(shí),在量子密鑰卡中要用到兩個(gè)密鑰,一個(gè)密鑰用來(lái)進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼;另一個(gè)密鑰用作給明文信息加密得到密文。盡管密文消息認(rèn)證所耗密鑰更多,但是更保證了信息的安全性。
客戶選擇用密文進(jìn)行消息認(rèn)證時(shí),密鑰種子使用頻率加快,為保證消息認(rèn)證系統(tǒng)的安全性,密鑰種子需要定時(shí)更新,密鑰種子的更新方法與實(shí)施例1完全相同。
實(shí)施例3:
如圖5所示,本實(shí)施例消息認(rèn)證系統(tǒng)與實(shí)施例1不同之處在于采用一種密文消息認(rèn)證方式,包括如下步驟:
步驟1:量子服務(wù)中心A與客戶端A1之間進(jìn)行消息認(rèn)證
a.消息認(rèn)證開(kāi)始:客戶端A1首先與相匹配的量子密鑰卡建立通信連接。
b.用戶側(cè)消息認(rèn)證密鑰生成:量子密鑰卡將所存儲(chǔ)的密鑰種子SS以及隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)通過(guò)密鑰生成算法AS得到密鑰K1和密鑰Q1。并將密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)提交給量子服務(wù)中心A。
網(wǎng)絡(luò)側(cè)消息認(rèn)證密鑰生成:量子服務(wù)中心A根據(jù)密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)在當(dāng)前量子網(wǎng)絡(luò)服務(wù)站內(nèi)找出對(duì)應(yīng)的密鑰種子SS’和密鑰生成算法AS’,經(jīng)運(yùn)算得到密鑰K1’和密鑰Q1’。
c.用戶側(cè)生成消息認(rèn)證碼并發(fā)送消息認(rèn)證信息:量子密鑰卡將消息M和密鑰K1同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC1,并且附加在消息M之后以形成消息認(rèn)證信息(M||MAC1),利用密鑰Q1對(duì)消息認(rèn)證信息(M||MAC1)加密得到密文EQ1(M||MAC1),并且將密文EQ1(M||MAC1)經(jīng)由客戶端A1發(fā)送到量子服務(wù)中心A。
d.量子服務(wù)中心A生成消息認(rèn)證碼:量子服務(wù)中心A接收到密文EQ1(M||MAC1),利用密鑰Q1’對(duì)密文EQ1(M||MAC1)解密得到消息認(rèn)證信息(M||MAC1),將解密得到消息認(rèn)證信息(M||MAC1)中的消息M與消息認(rèn)證碼MAC1分離開(kāi),將消息M和量子服務(wù)中心A的密鑰K1’作為輸入,采用MAC算法生成消息認(rèn)證碼MAC2。
e.消息認(rèn)證碼進(jìn)行比較:量子服務(wù)中心A將生成的消息認(rèn)證碼MAC2與消息認(rèn)證碼MAC1進(jìn)行比較。
若相等則消息認(rèn)證成功,證明消息沒(méi)有被篡改。
若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。
步驟2:量子服務(wù)中心A與客戶端An之間進(jìn)行消息認(rèn)證
若客戶端A1與客戶端An進(jìn)行消息認(rèn)證,首先客戶端A1會(huì)向量子網(wǎng)絡(luò)服務(wù)站發(fā)出通信請(qǐng)求,通信請(qǐng)求中會(huì)攜帶有接收方用戶的相關(guān)信息,本實(shí)施例中接收方用戶對(duì)應(yīng)客戶端An。
a.網(wǎng)絡(luò)側(cè)消息認(rèn)證密鑰生成:量子服務(wù)中心A根據(jù)接收方對(duì)應(yīng)的密鑰種子ID,在當(dāng)前量子網(wǎng)絡(luò)服務(wù)站內(nèi)找出與接收方用戶量子密鑰卡中相應(yīng)的密鑰種子cc’、密鑰生成算法Ac’以及站內(nèi)消息認(rèn)證服務(wù)器內(nèi)隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù),經(jīng)運(yùn)算得到密鑰K2和密鑰Q2。并將密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)傳遞給客戶端An。
b.量子服務(wù)中心A生成消息認(rèn)證碼:量子服務(wù)中心A將消息M和密鑰K2同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC3,并且附加在消息M之后以形成消息認(rèn)證信息(M||MAC3),利用密鑰Q2對(duì)消息認(rèn)證信息(M||MAC3)加密得到密文EQ2(M||MAC3),并且將密文EQ2(M||MAC3)經(jīng)由量子服務(wù)中心A發(fā)送到客戶端An。
c.用戶側(cè)消息認(rèn)證密鑰生成:客戶端An接收到密文EQ2(M||MAC3)以及密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)后轉(zhuǎn)發(fā)至所匹配的量子密鑰卡,該量子密鑰卡根據(jù)接收到的信息找到對(duì)應(yīng)的密鑰種子cc以及密鑰生成算法Ac,進(jìn)而生成密鑰K2’和密鑰Q2’。
d.用戶側(cè)生成消息認(rèn)證碼:客戶端An匹配的量子密鑰卡接收到密文EQ2(M||MAC3),利用密鑰Q2’對(duì)密文EQ2(M||MAC3)解密得到消息認(rèn)證信息(M||MAC3),從消息認(rèn)證信息(M||MAC3)中提取出消息M與消息認(rèn)證碼MAC3,利用消息M和密鑰K2’采用MAC算法生成消息認(rèn)證碼MAC4。
e.消息認(rèn)證碼進(jìn)行比較:客戶端An匹配的量子密鑰卡將生成的消息認(rèn)證碼MAC4與消息認(rèn)證碼MAC3進(jìn)行比較。
若相等則消息認(rèn)證成功,證明消息沒(méi)有被篡改。
若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。消息認(rèn)證完成。
本實(shí)施例中,量子密鑰卡里要用到兩個(gè)密鑰,一個(gè)密鑰用來(lái)進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼;另一個(gè)密鑰用作對(duì)消息認(rèn)證信息(M||MAC1)進(jìn)行加密。盡管密文消息認(rèn)證所耗密鑰更多,更保證了信息完全性。
客戶選擇用密文進(jìn)行消息認(rèn)證時(shí),密鑰種子使用頻率加快,為保證消息認(rèn)證系統(tǒng)的安全性,密鑰種子需要定時(shí)更新,密鑰種子的更新方式為量子密鑰卡與密鑰種子ID指向的量子網(wǎng)絡(luò)服務(wù)站預(yù)先設(shè)定密鑰種子使用次數(shù)閾值,量子密鑰卡每次生成密鑰時(shí)也會(huì)統(tǒng)計(jì)密鑰種子的使用次數(shù),當(dāng)使用次數(shù)到達(dá)閾值時(shí)量子密鑰卡與密鑰種子ID指向的量子網(wǎng)絡(luò)服務(wù)站同步更新相應(yīng)的密鑰種子,例如將一部分使用過(guò)的密鑰種子做失效標(biāo)識(shí),不再使用,而啟用新的密鑰種子。
實(shí)施例4:
參見(jiàn)圖1,本實(shí)施例中的系統(tǒng)構(gòu)架區(qū)別于實(shí)施例1之處為應(yīng)用在廣域網(wǎng)中,一級(jí)交換中心一個(gè)地級(jí)市或相當(dāng)大小區(qū)域的量子網(wǎng)絡(luò)核心站,二級(jí)交換中心是一個(gè)縣級(jí)市或相當(dāng)大小區(qū)域的量子網(wǎng)絡(luò)核心站,量子網(wǎng)絡(luò)服務(wù)站是一個(gè)鄉(xiāng)鎮(zhèn)或街道辦事處相當(dāng)大小區(qū)域的量子核心站(是否需要解釋)。
一級(jí)交換中心和下屬的多個(gè)二級(jí)交換中心以星型網(wǎng)絡(luò)結(jié)構(gòu)相連,二級(jí)交換中心可以和多個(gè)下屬的量子網(wǎng)絡(luò)服務(wù)站以星型網(wǎng)絡(luò)結(jié)構(gòu)相連。
由于需要站間通信,因此各交換中心以及量子網(wǎng)絡(luò)服務(wù)站分別設(shè)有量子密鑰分發(fā)設(shè)備,可通過(guò)QKD方式實(shí)現(xiàn)站間密鑰的共享。本實(shí)施例中量子網(wǎng)絡(luò)服務(wù)站的其他設(shè)備以及關(guān)于量子密鑰卡的描述可參見(jiàn)實(shí)施例1。
例如一級(jí)交換中心和下屬的二級(jí)交換中心分別利用量子密鑰分發(fā)設(shè)備實(shí)現(xiàn)站間量子密鑰的共享,二級(jí)交換中心和下屬的的量子網(wǎng)絡(luò)服務(wù)站分別利用量子密鑰分發(fā)設(shè)備實(shí)現(xiàn)站間量子密鑰的共享,量子密鑰分發(fā)設(shè)備可以是一套也可以是至少兩套集成。
兩個(gè)一級(jí)交換中心之間由于距離較遠(yuǎn),可采用量子中繼站的方式實(shí)現(xiàn)站間量子密鑰共享。
本實(shí)施例中,客戶端A1與客戶端B1之間要進(jìn)行消息認(rèn)證,客戶端A1歸屬于量子網(wǎng)絡(luò)服務(wù)站A,即相對(duì)于客戶端A1而言,其當(dāng)前量子網(wǎng)絡(luò)服務(wù)站為與客戶端A1通信連接的量子網(wǎng)絡(luò)服務(wù)站A;同理客戶端B1歸屬于量子網(wǎng)絡(luò)服務(wù)站B。
量子網(wǎng)絡(luò)服務(wù)站A與量子網(wǎng)絡(luò)服務(wù)站B分處在不同的一級(jí)交換中心下,量子網(wǎng)絡(luò)服務(wù)站A與量子網(wǎng)絡(luò)服務(wù)站A’同屬一個(gè)二級(jí)交換中心;量子網(wǎng)絡(luò)服務(wù)站B和量子網(wǎng)絡(luò)服務(wù)站B’同屬另一個(gè)二級(jí)交換中心。
客戶端A1匹配的量子密鑰卡中,進(jìn)行消息認(rèn)證時(shí)所涉及的密鑰種子ID并沒(méi)有指向當(dāng)前的量子網(wǎng)絡(luò)服務(wù)站A,而是指向量子網(wǎng)絡(luò)服務(wù)站A’;
客戶端B1匹配的量子密鑰卡中,進(jìn)行消息認(rèn)證時(shí)所涉及的密鑰種子ID并沒(méi)有指向當(dāng)前的量子網(wǎng)絡(luò)服務(wù)站B,而是指向量子網(wǎng)絡(luò)服務(wù)站B’;
因此本實(shí)施例中,涉及到站間密鑰種子調(diào)用或站間協(xié)助認(rèn)證。
客戶端A1與客戶端B1采用明文消息認(rèn)證,具體包括如下步驟:
步驟1:客戶端A1與量子網(wǎng)絡(luò)服務(wù)站A之間進(jìn)行消息認(rèn)證
a.消息認(rèn)證開(kāi)始:客戶端A1首先與相匹配的量子密鑰卡建立通信連接。
b.用戶側(cè)認(rèn)證密鑰生成:量子密鑰卡根據(jù)所存儲(chǔ)的密鑰種子SS和密鑰生成算法AS以及量子密鑰卡內(nèi)產(chǎn)生的隨機(jī)數(shù)A,得到密鑰K1。
其中,密鑰生成算法AS的原理為根據(jù)所拷取的真隨機(jī)數(shù),針對(duì)密鑰種子SS進(jìn)行適當(dāng)排列和算法運(yùn)算,輸出密鑰K1。
c.客戶端A1生成消息認(rèn)證碼并發(fā)送消息認(rèn)證信息:客戶端A1將所要發(fā)送的明文形式的消息M和密鑰K1同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC1附加在消息后以M||MAC1形式的消息認(rèn)證信息一起發(fā)送到量子網(wǎng)絡(luò)服務(wù)站A。同時(shí)將量子密鑰卡內(nèi)產(chǎn)生的隨機(jī)數(shù)A、密鑰生成算法ID、密鑰種子ID傳遞給量子網(wǎng)絡(luò)服務(wù)站A。
d.網(wǎng)絡(luò)側(cè)消息認(rèn)證碼生成和認(rèn)證:量子網(wǎng)絡(luò)服務(wù)站A根據(jù)客戶端A1發(fā)送來(lái)的密鑰種子ID,與密鑰種子ID指向量子網(wǎng)絡(luò)服務(wù)站A’建立通信,繼而實(shí)施異地認(rèn)證,異地認(rèn)證可選如下四種方式之一,本步驟d中具體選用方式一實(shí)施異地認(rèn)證。
方式一,量子網(wǎng)絡(luò)服務(wù)站A向量子網(wǎng)絡(luò)服務(wù)站A’請(qǐng)求,且請(qǐng)求中攜帶密鑰種子ID。量子網(wǎng)絡(luò)服務(wù)站A’響應(yīng)該請(qǐng)求,從站內(nèi)調(diào)取相應(yīng)的密鑰種子SS’以密文方式發(fā)送回量子網(wǎng)絡(luò)服務(wù)站A,在量子網(wǎng)絡(luò)服務(wù)站A處經(jīng)解密得到密鑰種子SS’,量子網(wǎng)絡(luò)服務(wù)站根據(jù)來(lái)自客戶端A1的密鑰生成算法ID提取相應(yīng)算法,結(jié)合隨機(jī)數(shù)A經(jīng)運(yùn)算得到相應(yīng)密鑰K1’;量子網(wǎng)絡(luò)服務(wù)站A’與量子網(wǎng)絡(luò)服務(wù)站A可以利用QKD方式進(jìn)行站間量子密鑰的共享,實(shí)現(xiàn)密文傳輸。
量子網(wǎng)絡(luò)服務(wù)站A接收到以M||MAC1形式傳輸過(guò)來(lái)的消息認(rèn)證信息,將消息M與消息認(rèn)證碼MAC1分離,將消息M和密鑰K1’一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC2。
量子網(wǎng)絡(luò)服務(wù)站A將消息認(rèn)證碼MAC2與消息認(rèn)證碼MAC1進(jìn)行比較。若相等則證明消息沒(méi)有被篡改。量子網(wǎng)絡(luò)服務(wù)站A與客戶端A1之間的消息認(rèn)證成功并確定消息的來(lái)源是真實(shí)的。若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。
方式二,量子網(wǎng)絡(luò)服務(wù)站A向量子網(wǎng)絡(luò)服務(wù)站A’請(qǐng)求,且將來(lái)自客戶端A1的密鑰種子ID、密鑰生成算法ID、隨機(jī)數(shù)A、消息認(rèn)證信息(M||MAC1形式)都發(fā)送至量子網(wǎng)絡(luò)服務(wù)站A’。
量子網(wǎng)絡(luò)服務(wù)站A’根據(jù)密鑰種子ID在站內(nèi)提取相應(yīng)的密鑰種子,根據(jù)密鑰生成算法ID提取相應(yīng)的密鑰生成算法,結(jié)合隨機(jī)數(shù)A得到密鑰K1’,將消息M與消息認(rèn)證碼MAC1分離,將消息M和密鑰K1’一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC2。
量子網(wǎng)絡(luò)服務(wù)站A’將消息認(rèn)證碼MAC2與消息認(rèn)證碼MAC1進(jìn)行比較得到認(rèn)證結(jié)果,將該認(rèn)證結(jié)果發(fā)送到量子網(wǎng)絡(luò)服務(wù)站A。
方式三,與方式二的不同之處在于量子網(wǎng)絡(luò)服務(wù)站A’將消息認(rèn)證碼MAC2返回量子網(wǎng)絡(luò)服務(wù)站A,量子網(wǎng)絡(luò)服務(wù)站A將消息認(rèn)證碼MAC2與消息認(rèn)證碼MAC1進(jìn)行比較得到認(rèn)證結(jié)果。
方式四,量子網(wǎng)絡(luò)服務(wù)站A向量子網(wǎng)絡(luò)服務(wù)站A’請(qǐng)求,且將來(lái)自客戶端A1的密鑰種子ID、消息認(rèn)證涉及的密鑰生成算法ID、以及隨機(jī)數(shù)A發(fā)送至量子網(wǎng)絡(luò)服務(wù)站A’。
且量子網(wǎng)絡(luò)服務(wù)站A將消息M與消息認(rèn)證碼MAC1分離,得到消息M,此方式中也將消息M(以密文方式)發(fā)送至量子網(wǎng)絡(luò)服務(wù)站A’。
量子網(wǎng)絡(luò)服務(wù)站A’按照方式二的操作得到密鑰K1’,將解密后獲得的消息M和密鑰K1’一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC2。
量子網(wǎng)絡(luò)服務(wù)站A’將消息認(rèn)證碼MAC2發(fā)送到量子網(wǎng)絡(luò)服務(wù)站A,量子網(wǎng)絡(luò)服務(wù)站A將消息認(rèn)證碼MAC2與消息認(rèn)證碼MAC1進(jìn)行比較得到認(rèn)證結(jié)果。
步驟2:量子網(wǎng)絡(luò)服務(wù)站A與量子網(wǎng)絡(luò)服務(wù)站B之間的消息認(rèn)證(異地量子網(wǎng)絡(luò)服務(wù)站之間的消息認(rèn)證,但就此步驟而言,由于和量子密鑰卡的使用并沒(méi)有必然聯(lián)系,因此也可以采用現(xiàn)有技術(shù)在兩量子網(wǎng)絡(luò)服務(wù)站之間進(jìn)行消息認(rèn)證)。
a.異地量子密鑰分發(fā)設(shè)備產(chǎn)生共享密鑰:通過(guò)QKD方式量子網(wǎng)絡(luò)服務(wù)站A與量子網(wǎng)絡(luò)服務(wù)站B共享相應(yīng)的站間量子密鑰K2和K2’。
b.量子網(wǎng)絡(luò)服務(wù)站A生成消息認(rèn)證碼:在量子網(wǎng)絡(luò)服務(wù)站A上,將密鑰K2和消息M一起輸入進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC3,并附加在消息后以M||MAC3形式發(fā)送到量子網(wǎng)絡(luò)服務(wù)站B。
c.量子網(wǎng)絡(luò)服務(wù)站B生成消息認(rèn)證碼:量子網(wǎng)絡(luò)服務(wù)站B接收到以M||MAC3形式傳輸過(guò)來(lái)的數(shù)據(jù),將消息M與消息認(rèn)證碼MAC3分離開(kāi),將消息M和量子網(wǎng)絡(luò)服務(wù)站B的密鑰K2’一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC4。
d.消息認(rèn)證碼進(jìn)行比較:將生成的消息認(rèn)證碼MAC4與接收到的消息認(rèn)證碼MAC3進(jìn)行比較。若相等則證明消息沒(méi)有被篡改,并且進(jìn)行下一步消息傳輸。若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。步驟3:量子網(wǎng)絡(luò)服務(wù)站B與客戶端B1之間的消息認(rèn)證。
若客戶端A1與客戶端B1進(jìn)行消息認(rèn)證,首先客戶端A1會(huì)向量子網(wǎng)絡(luò)服務(wù)站發(fā)出通信請(qǐng)求,通信請(qǐng)求中會(huì)攜帶有接收方用戶的相關(guān)信息,本實(shí)施例中接收方用戶對(duì)應(yīng)客戶端B1。
a.量子網(wǎng)絡(luò)服務(wù)站B消息認(rèn)證碼的生成:量子網(wǎng)絡(luò)服務(wù)站B根據(jù)接收方即客戶端B1所匹配的量子密鑰卡在本次消息認(rèn)證中將使用的密鑰種子ID,與密鑰種子ID指向量子網(wǎng)絡(luò)服務(wù)站B’建立通信,繼而實(shí)施異地認(rèn)證,異地認(rèn)證可選如下兩種方式之一,本步驟中具體選用方式一進(jìn)行異地認(rèn)證。
方式一,量子網(wǎng)絡(luò)服務(wù)站B向量子網(wǎng)絡(luò)服務(wù)站B’請(qǐng)求,且請(qǐng)求中攜帶密鑰種子ID。
量子網(wǎng)絡(luò)服務(wù)站B’響應(yīng)該請(qǐng)求,從站內(nèi)調(diào)取相應(yīng)的密鑰種子CC’密文方式發(fā)送回量子網(wǎng)絡(luò)服務(wù)站B;
量子網(wǎng)絡(luò)服務(wù)站B生成隨機(jī)數(shù)B,結(jié)合解密后得到的密鑰種子CC’,通過(guò)密鑰生成算法AC’運(yùn)算得到密鑰K3’。
量子網(wǎng)絡(luò)服務(wù)站B將消息M和密鑰K3’一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC5。并且將消息認(rèn)證碼MAC5附加在消息M后以M||MAC5形式一起發(fā)送到客戶端B1。同時(shí)傳輸?shù)娇蛻舳薆1的還有密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)B。
方式二,量子網(wǎng)絡(luò)服務(wù)站B向量子網(wǎng)絡(luò)服務(wù)站B’請(qǐng)求,且請(qǐng)求中攜帶密鑰種子ID以及消息M(以密文方式)。
量子網(wǎng)絡(luò)服務(wù)站B’根據(jù)接收到的密鑰種子ID從站內(nèi)調(diào)取相應(yīng)的密鑰種子CC’,同時(shí)量子網(wǎng)絡(luò)服務(wù)站B’生成隨機(jī)數(shù)B,通過(guò)密鑰生成算法AC’經(jīng)運(yùn)算得到密鑰K3’,再將消息M和密鑰K3’一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC5,將消息認(rèn)證碼MAC5(或消息認(rèn)證碼MAC5附加在消息M后以M||MAC5形式)發(fā)送到量子網(wǎng)絡(luò)服務(wù)站B,量子網(wǎng)絡(luò)服務(wù)站B再以M||MAC5形式發(fā)送到客戶端B1。同時(shí)傳輸?shù)娇蛻舳薆1的還有密鑰種子ID以及密鑰生成算法ID,以及隨機(jī)數(shù)B。
b.客戶端B1生成消息認(rèn)證碼:客戶端B1接收到以M||MAC5形式傳輸過(guò)來(lái)的消息認(rèn)證信息以及隨機(jī)數(shù)B、密鑰種子ID以及密鑰生成算法ID轉(zhuǎn)發(fā)至匹配的量子密鑰卡,量子密鑰卡將消息M與消息認(rèn)證碼MAC5分離,量子密鑰卡選取卡內(nèi)的密鑰種子CC以及密鑰生成算法AC,結(jié)合隨機(jī)數(shù)B運(yùn)算得到密鑰K3,將消息M和密鑰K3一同作為輸入,進(jìn)行MAC運(yùn)算生成消息認(rèn)證碼MAC6。
e.消息認(rèn)證碼進(jìn)行比較:客戶端B1的量子密鑰卡將生成的消息認(rèn)證碼MAC6與接收到的消息認(rèn)證碼MAC5進(jìn)行比較。若相等則證明消息沒(méi)有被篡改。若不相等則消息認(rèn)證失敗,消息已經(jīng)被篡改,則消息傳輸停止。消息認(rèn)證完成。
本實(shí)施例中,量子密鑰卡內(nèi)的密鑰種子可按照實(shí)施例1或2的方式更新。
實(shí)施例5:
本實(shí)施例消息認(rèn)證系統(tǒng)與實(shí)施例4不同之處在于采用一種密文消息認(rèn)證方式,以步驟1中客戶端A1與量子網(wǎng)絡(luò)服務(wù)站A之間進(jìn)行消息認(rèn)證的過(guò)程為例。
客戶端A1生成消息認(rèn)證碼并發(fā)送消息認(rèn)證信息時(shí):客戶端A1的量子密鑰卡根據(jù)所存儲(chǔ)的密鑰種子SS和密鑰生成算法AS,結(jié)合量子密鑰卡內(nèi)部隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)得到密鑰K1和密鑰Q1。量子密鑰卡利用密鑰Q1對(duì)所要發(fā)送的消息M進(jìn)行加密得到密文EQ1(M),該密文EQ1(M)和密鑰K1同時(shí)作為輸入,采用MAC算法生成消息認(rèn)證碼MAC1,并且附加在密文后以EQ1(M)||MAC1形式經(jīng)由客戶端A1發(fā)送到量子服務(wù)中心A。同時(shí)傳輸?shù)搅孔臃?wù)中心A的還有密鑰種子ID和密鑰生成算法ID,以及隨機(jī)數(shù)。
網(wǎng)絡(luò)側(cè)消息認(rèn)證碼生成和認(rèn)證時(shí):量子網(wǎng)絡(luò)服務(wù)站A根據(jù)客戶端A1發(fā)送來(lái)的密鑰種子ID,與密鑰種子ID指向量子網(wǎng)絡(luò)服務(wù)站A’建立通信,繼而實(shí)施異地認(rèn)證,異地認(rèn)證時(shí)量子服務(wù)中心A將密鑰種子ID傳輸至量子網(wǎng)絡(luò)服務(wù)站A’。
量子網(wǎng)絡(luò)服務(wù)站A’根據(jù)接收到的密鑰種子ID從站內(nèi)調(diào)取相應(yīng)的密鑰種子SS’以密文方式發(fā)送回量子網(wǎng)絡(luò)服務(wù)站A,在量子網(wǎng)絡(luò)服務(wù)站A處解密得到密鑰種子SS’,根據(jù)密鑰生成算法ID調(diào)用密鑰生成算法AS’,結(jié)合隨機(jī)數(shù)運(yùn)算得到密鑰K1’和密鑰Q1’;
量子服務(wù)中心A將密文EQ1(M)與消息認(rèn)證碼MAC1分離開(kāi),將密文EQ1(M)和密鑰K1’作為輸入,采用MAC算法生成消息認(rèn)證碼MAC2,將生成的消息認(rèn)證碼MAC2與接收到的消息認(rèn)證碼MAC1進(jìn)行比較。認(rèn)證通過(guò)后用密鑰Q1’解密密文EQ1(M)得到明文形式的消息M。
對(duì)消息M的后續(xù)處理同理。