本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種單向流程前向安全技術(shù)實(shí)現(xiàn)方法。
背景技術(shù):
前向安全技術(shù)就是密碼領(lǐng)域的關(guān)鍵技術(shù)之一,所謂前向安全概念是就算在密碼算法、系統(tǒng)參數(shù)及當(dāng)前密鑰都發(fā)生泄漏的嚴(yán)重情況下,也不會(huì)危害用戶在該時(shí)間段以前的安全性,從而大大地降低了密鑰泄露帶來的危害。
目前國內(nèi)專利中涉及前向安全機(jī)制的較少,主要方法還是在基于非對(duì)稱密鑰體制下,通過多次交互通的密鑰協(xié)商的方式實(shí)現(xiàn)前向安全,密鑰演化機(jī)制復(fù)雜,可實(shí)現(xiàn)性和可用性較差。
名稱為一種基于身份的前向安全的數(shù)字簽名方法、裝置及系統(tǒng)的專利申請(qǐng)中,重點(diǎn)闡述了通過身份信息的提取、運(yùn)算及簽名過程,整個(gè)前向安全設(shè)計(jì)流程包括了多條交互,從密鑰生成中心KGC發(fā)布系統(tǒng)公開參數(shù),發(fā)送方收到后初始化公開參數(shù),在注冊(cè)請(qǐng)求中攜帶身份信息,獲取對(duì)應(yīng)的簽名私鑰,最后在發(fā)起具有前向安全能力的“業(yè)務(wù)消息M和簽名”,該專利解決了前向安全,但交互較多流程復(fù)雜。名稱為一種確保前向安全的方法、網(wǎng)絡(luò)設(shè)備、用戶設(shè)備和通信系統(tǒng)的專利申請(qǐng)中,重點(diǎn)闡述了用戶設(shè)備與目標(biāo)eNB的密鑰協(xié)商過程,通過兩個(gè)交互實(shí)現(xiàn)前向安全密鑰的演化方法。而現(xiàn)有其它中國專利及公知技術(shù)中,更多側(cè)重前向安全算法的研究。
總之,根據(jù)目前公開的專利及公知技術(shù),都未解決移動(dòng)通信(如短信)、衛(wèi)星通信及微波散射等窄帶移動(dòng)互聯(lián)網(wǎng)絡(luò)的前向安全技術(shù)的通道資源、計(jì)算效率等問題。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述的分析,本發(fā)明旨在提供一種單向流程前向安全技術(shù)實(shí)現(xiàn)方法,用以解決移動(dòng)通信(如短信)、衛(wèi)星通信及微波散射等窄帶移動(dòng)互聯(lián)網(wǎng)絡(luò)的前向安全技術(shù)的通道資源、計(jì)算效率等問題。
本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的:
本發(fā)明提供了一種單向流程前向安全技術(shù)實(shí)現(xiàn)方法,包括:
在發(fā)送端和接收端分別預(yù)置有相同的密鑰庫,每組密鑰數(shù)據(jù)中包含“組版本號(hào)+組密鑰數(shù)據(jù)”,將版本號(hào)Cur_V與組號(hào)GID進(jìn)行關(guān)聯(lián),組號(hào)GID與密鑰存儲(chǔ)位置一一對(duì)應(yīng);
發(fā)送端從其密鑰庫中按GID讀取密鑰數(shù)據(jù),然后攜帶版本號(hào)Cur_V一起發(fā)起業(yè)務(wù)給接收端,同時(shí)更新該GID位置的密鑰數(shù)據(jù)及版本號(hào),其中發(fā)送端Cur_V=組版本號(hào)V_O;
接收端根據(jù)解析得到的版本號(hào)Cur_V進(jìn)行計(jì)算得到GID,根據(jù)所述GID讀取接收端對(duì)應(yīng)位置的密鑰數(shù)據(jù),將讀取的接收端的密鑰數(shù)據(jù)中的組版本號(hào)V_T與接收到的版本號(hào)Cur_V進(jìn)行比較,當(dāng)確定二者相同時(shí),業(yè)務(wù)相通,同時(shí)在業(yè)務(wù)完成后更新接收端所述GID對(duì)于位置的密鑰數(shù)據(jù)及版本號(hào)。
進(jìn)一步地,具體包括:
發(fā)送端從其密鑰庫中按GID讀取密鑰數(shù)據(jù),然后攜帶版本號(hào)Cur_V一起發(fā)起業(yè)務(wù)給接收端,同時(shí)將“本組組版本號(hào)+組數(shù)N”作為當(dāng)前組版本號(hào),將本組組密鑰數(shù)據(jù)作為哈希計(jì)算的輸入,計(jì)算得到的組密鑰數(shù)據(jù),作為當(dāng)前組密鑰數(shù)據(jù);以及并記錄發(fā)送端當(dāng)前版本號(hào)Cur_V=V_O+1。
進(jìn)一步地,還包括:
在系統(tǒng)初始化時(shí),用隨機(jī)數(shù)填充發(fā)送端和接收端的密鑰庫,并分別設(shè)置版本號(hào)為0~N,作為種子密鑰庫,其中N為組數(shù)。
進(jìn)一步地,具體包括:
接收端根據(jù)解析得到的版本號(hào)Cur_V以及已知的組數(shù)進(jìn)行計(jì)算,根據(jù)計(jì)算得到的GID讀取相應(yīng)位置的組密鑰數(shù)據(jù),將讀取的接收端的組密鑰數(shù)據(jù)中的組版本號(hào)V_T與接收到的組版本號(hào)Cur_V進(jìn)行比較,如果Cur_V=V_T,業(yè)務(wù)相通,同時(shí)在業(yè)務(wù)完成后接收端更新所述GID對(duì)于位置的密鑰數(shù)據(jù)及版本號(hào);否則進(jìn)行失步糾錯(cuò)或通知發(fā)送端進(jìn)行失步結(jié)錯(cuò)。
進(jìn)一步地,接收端更新所述GID對(duì)于位置的密鑰數(shù)據(jù)及版本號(hào)的過程具體包括:
接收端將“本組組版本號(hào)+組數(shù)N”作為當(dāng)前組版本號(hào),將本組組密鑰數(shù)據(jù)作為哈希計(jì)算的輸入,計(jì)算得到的組密鑰數(shù)據(jù),作為當(dāng)前組密鑰數(shù)據(jù);以及記錄接收端當(dāng)前版本號(hào)Cur_V=V_T+1。
進(jìn)一步地,進(jìn)行失步糾錯(cuò)或通知發(fā)送端進(jìn)行失步結(jié)錯(cuò)的過程具體包括:
如果Cur_V>V_T,且V_T=Cur_V-(i×N),i=[Cur_V/N],則將GID=(Cur_V mod N)位置的密鑰取出來,并進(jìn)行密鑰更新至V_T=V_T+(i×N),KEY_T字段進(jìn)行i次H運(yùn)算,并記錄接收方自身當(dāng)前版本Cur_V=V_T+1;如果Cur_V<V_T,且V_T=Cur_V+(i×N),i=[Cur_V/N],則發(fā)送錯(cuò)誤消息指發(fā)送端標(biāo)識(shí)密鑰失步,或者反向攜帶V_T發(fā)送消息至發(fā)送端,發(fā)送端進(jìn)行自動(dòng)校正;其中,[]表示取整,N為組數(shù)。
本發(fā)明還提供了一種單向流程前向安全技術(shù)實(shí)現(xiàn)方法,包括:
在發(fā)送端和接收端分別預(yù)置有相同的密鑰庫,每組密鑰數(shù)據(jù)中包含“組版本號(hào)+組密鑰數(shù)據(jù)”,將版本號(hào)Cur_V與組號(hào)GID進(jìn)行關(guān)聯(lián),組號(hào)GID與密鑰存儲(chǔ)位置一一對(duì)應(yīng);同時(shí)中心側(cè)預(yù)置有發(fā)送端和接收端的密鑰庫以及發(fā)送端和接收端的ID;
發(fā)送端從其密鑰庫中按GID讀取密鑰數(shù)據(jù),然后攜帶版本號(hào)Cur_V_O、發(fā)送端和接收端的ID,發(fā)起業(yè)務(wù)給中心側(cè),同時(shí)更新該GID位置的密鑰數(shù)據(jù)并記錄當(dāng)前版本號(hào)Cur_V_O=V_O+1;其中Cur_V_O=組版本號(hào)V_O;
中心側(cè)根據(jù)解析得到的版本號(hào)Cur_V_O進(jìn)行計(jì)算,根據(jù)發(fā)送端ID以及計(jì)算得到的GID讀取相應(yīng)密鑰庫相應(yīng)位置的密鑰數(shù)據(jù),將接收端讀取的密鑰數(shù)據(jù)中的組版本號(hào)V_O_C與Cur_V_O進(jìn)行比較,當(dāng)確定二者相同時(shí),業(yè)務(wù)相通,同時(shí)在業(yè)務(wù)完成后更新該GID位置的密鑰數(shù)據(jù)及版本號(hào);
中心側(cè)根據(jù)接收端ID從相應(yīng)密鑰庫中按GID讀取密鑰數(shù)據(jù),然后攜帶版本號(hào)Cur_V_T發(fā)起業(yè)務(wù)給接收端,同時(shí)更新該GID位置的密鑰數(shù)據(jù)并記錄當(dāng)前版本號(hào)Cur_V_T=V_T+1;
接收端根據(jù)解析得到的版本號(hào)Cur_V_T和已知的組號(hào)進(jìn)行計(jì)算得到GID,根據(jù)所述GID讀取相應(yīng)位置的密鑰數(shù)據(jù),將讀取的密鑰數(shù)據(jù)中的組版本號(hào)V_T_C與Cur_V_T進(jìn)行比較,當(dāng)確定二者相同時(shí),業(yè)務(wù)相通,同時(shí)在業(yè)務(wù)完成后更新該GID位置的密鑰數(shù)據(jù)及版本號(hào)。
進(jìn)一步地,具體包括:
發(fā)送端從其密鑰庫中按GID讀取密鑰數(shù)據(jù),然后攜帶版本號(hào)Cur_V一起發(fā)起業(yè)務(wù)給接收端,同時(shí)將“本組組版本號(hào)+組數(shù)N”作為當(dāng)前組版本號(hào),將本組組密鑰數(shù)據(jù)作為哈希計(jì)算的輸入,計(jì)算得到的組密鑰數(shù)據(jù),作為當(dāng)前組密鑰數(shù)據(jù);以及并記錄發(fā)送端當(dāng)前版本號(hào)Cur_V_O=V_O+1。
進(jìn)一步地,具體包括:
中心側(cè)根據(jù)解析得到的版本號(hào)Cur_V_O進(jìn)行計(jì)算,根據(jù)發(fā)送端ID以及計(jì)算得到的GID讀取相應(yīng)密鑰庫相應(yīng)位置的密鑰數(shù)據(jù),將接收端讀取的密鑰數(shù)據(jù)中的組版本號(hào)V_O_C與Cur_V_O進(jìn)行比較,V_O_C=Cur_V_O,業(yè)務(wù)相通,同時(shí)在業(yè)務(wù)完成后更新該GID位置的密鑰數(shù)據(jù)及版本號(hào),否則進(jìn)行失步糾錯(cuò)或通知發(fā)送端進(jìn)行失步結(jié)錯(cuò)。
進(jìn)一步地,進(jìn)行失步糾錯(cuò)或通知發(fā)送端進(jìn)行失步結(jié)錯(cuò)的過程具體包括:
如果Cur_V_O>V_O_C,且V_O_C=Cur_V-(i×N),i=[Cur_V/N],則將GID=(Cur_V mod N)位置的密鑰取出來,并進(jìn)行密鑰更新至V_O_C=V_O_C+(i×N),KEY_T字段進(jìn)行i次H運(yùn)算,并記錄接收方自身當(dāng)前版本Cur_V_O=V_O_C+1;如果Cur_V_O<V_O_C,且V_O_C=Cur_V_O+(i×N),i=[Cur_V/N],則發(fā)送錯(cuò)誤消息指發(fā)送端標(biāo)識(shí)密鑰失步,或者反向攜帶V_O_C發(fā)送消息至發(fā)送端,發(fā)送端進(jìn)行自動(dòng)校正;其中,[]表示取整,N為組數(shù)。
本發(fā)明有益效果如下:
本發(fā)明適用于多個(gè)實(shí)體之間有前向安全需求的場(chǎng)景,對(duì)相關(guān)領(lǐng)域通信安全設(shè)計(jì)具有較大的參考價(jià)值。本發(fā)明設(shè)計(jì)了單向流程的前向安全,且不涉及到非對(duì)稱算法,其運(yùn)算效率和傳輸效率均高于傳統(tǒng)數(shù)字簽名、在線協(xié)商方式。本發(fā)明具有自動(dòng)校正機(jī)制,容錯(cuò)性高,可適用于多種復(fù)雜信道應(yīng)用場(chǎng)景。本發(fā)明在發(fā)送端、接收端實(shí)現(xiàn)邏輯簡(jiǎn)單,易于實(shí)現(xiàn)。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分的從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
附圖僅用于示出具體實(shí)施例的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制,在整個(gè)附圖中,相同的參考符號(hào)表示相同的部件。
圖1為“端端之間無中心模式”中,“預(yù)置密鑰庫”結(jié)構(gòu)及組成元素示意圖;
圖2為“端端之間無中心模式”應(yīng)用模式和系統(tǒng)初始化流程示意圖;
圖3為“端與中心之間有中心模式”應(yīng)用模式和系統(tǒng)初始化流程示意圖;
圖4為“端端之間無中心模式”中,密鑰演化過程示意圖;
圖5為本發(fā)明實(shí)施例一的流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)選實(shí)施例,其中,附圖構(gòu)成本申請(qǐng)一部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。
本發(fā)明所提出的方案主要包括三部分內(nèi)容:1、應(yīng)用模式及系統(tǒng)初始化;2、密鑰演化過程;3、自動(dòng)校正設(shè)計(jì)。下面將分別對(duì)這三部分內(nèi)容做詳細(xì)說明。
1.應(yīng)用模式及系統(tǒng)初始化
本發(fā)明中從通信實(shí)體和流程上將應(yīng)用模式區(qū)分為“端端之間無中心模式”和“端與中心之間有中心模式”,端設(shè)備分為發(fā)送端和接收端,中心作為密鑰演化中轉(zhuǎn)站,稱之為中心側(cè)。
因?yàn)閮蓚€(gè)通信實(shí)體之間只有單向流程,實(shí)體之間的所有相關(guān)前向安全設(shè)計(jì)要素均只能在該單向流程中完成傳輸,綜合考慮實(shí)際應(yīng)用場(chǎng)景,在窄帶通信中,受帶寬和速率限制,盡可能減少線路傳輸字節(jié)數(shù),因此需要通過密鑰庫預(yù)置方式實(shí)現(xiàn)發(fā)送端、接收端及中心側(cè)的關(guān)鍵參數(shù)預(yù)置,具體設(shè)計(jì)如下:
根據(jù)發(fā)送端、接收端的存儲(chǔ)空間能力,可設(shè)置預(yù)置密鑰庫的組數(shù)N,每組具有一個(gè)組號(hào)GID(如N=128組,則GID范圍為0~127),而每組密鑰中包含“組版本號(hào)V+組密鑰數(shù)據(jù)Data”,在系統(tǒng)初始化時(shí),用隨機(jī)數(shù)填充該密鑰庫,并分別設(shè)置版本號(hào)為0~N,作為種子密鑰庫。如果是“端端之間無中心模式”,那么發(fā)送端和接收端需要預(yù)置同一套種子密鑰庫;如果是“端與中心之間有中心模式”,那么端設(shè)備分別預(yù)置各自的種子密鑰庫,中心側(cè)預(yù)置所有端設(shè)備的種子密鑰庫。
“預(yù)置密鑰庫”結(jié)構(gòu)及組成元素如圖1所示。
“端端之間無中心模式”應(yīng)用模式和系統(tǒng)初始化流程如圖2所示。
“端與中心之間有中心模式”應(yīng)用模式和系統(tǒng)初始化流程如圖3所示。
2.密鑰演化過程
本發(fā)明中,因只有單向流程且需一次業(yè)務(wù)一次更新的最高前向安全需求,因此本發(fā)明中設(shè)計(jì)了一個(gè)可循環(huán)使用的預(yù)置密鑰庫及一種密鑰選取算法,實(shí)現(xiàn)密鑰高效演化能力。
發(fā)送端、接收端、中心側(cè)均已預(yù)置了種子密鑰庫,且任何兩兩通信實(shí)體之間均具備通信所需的共享種子密鑰庫,那么單向流程交互時(shí)還需要具備以下三方面能力才能實(shí)現(xiàn)前向安全需求:
1)準(zhǔn)確選取組密鑰數(shù)據(jù)的能力。為了滿足盡可能減少帶寬占用的實(shí)際需求,單向流程中僅需要傳遞版本號(hào)V,且版本號(hào)V隨業(yè)務(wù)自動(dòng)遞增(即每次業(yè)務(wù)自動(dòng)遞增1)。本發(fā)明中,將版本號(hào)V與組號(hào)GID進(jìn)行關(guān)聯(lián),即版本號(hào)V對(duì)應(yīng)的密鑰存儲(chǔ)位置(V mod N)即為組號(hào)GID。因此接收端可通過版本號(hào)獲取共享密鑰的位置。
2)對(duì)已使用的密鑰KEY1進(jìn)行不可逆變換。前向安全需要解決已使用密鑰不能通過當(dāng)前或者未來密鑰進(jìn)行復(fù)原,即不會(huì)危害用戶在該時(shí)間段以前的安全性。在本發(fā)明中,采用抗碰撞哈希算法H實(shí)現(xiàn)密鑰不可逆變換,且以上一組已使用密鑰作為輸入,計(jì)算得到下一次密鑰KEY2=H(KEY1),并保存到當(dāng)前組號(hào)所在位置。
3)密鑰演化
在密鑰選取和密鑰更新均已確定的情況下,重點(diǎn)就是密鑰演化方案。在本發(fā)明中,密鑰演化的關(guān)鍵主要依賴版本號(hào)V的遞增及與GID的關(guān)聯(lián)關(guān)系,結(jié)合不可逆密鑰變換實(shí)現(xiàn)。當(dāng)前版本被使用后,將當(dāng)前版本號(hào)變?yōu)椤爱?dāng)前版本+組數(shù)N”,如初始時(shí)組號(hào)GID=1的位置保存“組版本號(hào)V0+組密鑰數(shù)據(jù)KEY0”,當(dāng)這組密鑰被使用后,組號(hào)GID=1的位置保存的內(nèi)容變成“組版本號(hào)V128+組密鑰數(shù)據(jù)Data128=H(KEY0)”,以此類推,前N次業(yè)務(wù)使用的密鑰為0~N的種子密鑰,輪轉(zhuǎn)M輪組數(shù)使用完成后,在GID=0~N的位置內(nèi)保存了組版本號(hào)為M*128~M*255的組密鑰數(shù)據(jù),即可無限演化下去。
3.自動(dòng)校正設(shè)計(jì)
前向安全作為密碼技術(shù),可靠性和可用性要求是十分嚴(yán)謹(jǐn)?shù)?,在本發(fā)明中,因涉及密鑰的變換和版本的迭代,因此可靠性和可用性設(shè)計(jì)上重點(diǎn)考慮了密鑰演化自動(dòng)校正設(shè)計(jì)。特別是對(duì)于非實(shí)時(shí)性傳輸,可能存在接收端不在線的情況導(dǎo)致發(fā)送端進(jìn)行版本增加,接收端版本不變;或者發(fā)送端因某種原因?qū)е掳姹緸檎T黾?,而接收端收到不匹配版本的情況,因此為提高方案可用性,需增加自動(dòng)校正設(shè)計(jì)。設(shè)發(fā)送端當(dāng)前保存的版本號(hào)為Cur_V,在進(jìn)行交互時(shí),發(fā)送方將自身的Cur_V發(fā)送至接收端,接收端按照(Cur_V mod N)計(jì)算得到密鑰在密鑰庫中的存儲(chǔ)位置,并取出對(duì)應(yīng)密鑰的“組密鑰版本V_T+組密鑰數(shù)據(jù)KEY”,當(dāng)Cur_V=V_T則表示版本是同步,可正常使用,當(dāng)Cur_V=V_T-(i×N)(i表示密鑰庫輪換次數(shù),N為組數(shù))則表示接收端版本失步,接收端可通過i次H運(yùn)算,將組密鑰版本和組密鑰數(shù)據(jù)進(jìn)行自動(dòng)糾錯(cuò),從而達(dá)到密鑰同步;當(dāng)Cur_V=V_T+(i×N)(i表示密鑰庫輪換次數(shù),N為組數(shù))則表示發(fā)送端版本失步,則可通知發(fā)送端通過i次H運(yùn)算,達(dá)到密鑰同步狀態(tài)。
另外,當(dāng)存在中心側(cè)時(shí),可指定所有發(fā)送端/接收端在開機(jī)時(shí)進(jìn)行一次或者定期的密鑰校正,以保證系統(tǒng)正常運(yùn)轉(zhuǎn)。
實(shí)施例一
為使本發(fā)明的目的和技術(shù)方案更加清楚,以下將基于上文提出的方法,按照端端無中心模式下的實(shí)際流程場(chǎng)景給出單向流程前向安全交互的具體實(shí)例工作流程。
如圖5所示,圖5為本發(fā)明實(shí)施例一的流程示意圖,本場(chǎng)景中共有發(fā)送端、接收端兩類設(shè)備,主要包括如下步驟:
步驟501:在發(fā)送端和接收端分別預(yù)置有相同的密鑰庫;
設(shè)置密鑰庫組數(shù)N=128,組號(hào)GID為0~127,發(fā)送端的初始化密鑰庫為Data_O(格式為:組版本號(hào)V_O+組密鑰數(shù)據(jù)KEY_O),接收端的初始化密鑰庫為Data_T(格式為:組版本號(hào)V_T+組密鑰數(shù)據(jù)KEY_T)。兩者當(dāng)前版本皆為0,記為Cur_V=0。
步驟502:發(fā)送端從其密鑰庫中按GID讀取密鑰數(shù)據(jù),然后攜帶版本號(hào)Cur_V一起發(fā)起業(yè)務(wù)給接收端,同時(shí)更新該GID位置的密鑰數(shù)據(jù)及版本號(hào);
具體的說就是,發(fā)送端從初始使用時(shí),讀取GID=0位置的密鑰數(shù)據(jù),得到(V_O=0,KEY_O=RDATA0),記錄發(fā)送端Cur_V=V_O。攜帶Cur_V信息發(fā)起業(yè)務(wù)成功后,將GID=0位置的密鑰數(shù)據(jù)變更為(V_O,KEY_O)=(0+128,H(RDATA0)),保存到GID=0的位置上,并記錄當(dāng)前版本Cur_V=V_O+1。
步驟503:接收端根據(jù)解析得到的版本號(hào)Cur_V進(jìn)行計(jì)算得到GID,根據(jù)所述GID讀取接收端對(duì)應(yīng)位置的密鑰數(shù)據(jù);
具體的說就是,接收端接收到業(yè)務(wù)數(shù)據(jù),解析得到發(fā)送端消息中攜帶的版本信息Cur_V=0,計(jì)算對(duì)應(yīng)組位置(Cur_V mod 128)=0,即從GID=0的位置獲取密鑰數(shù)據(jù)(V_T=0,KEY_T=RDATA0);
步驟504:將讀取的接收端的密鑰數(shù)據(jù)中的組版本號(hào)V_T與接收到的版本號(hào)Cur_V進(jìn)行比較:如果Cur_V=V_T,執(zhí)行步驟505;如果Cur_V>V_T,且V_T=Cur_V-(i×128),i=[Cur_V/128]([]表示取整),執(zhí)行步驟506;如果Cur_V<V_T,且V_T=Cur_V+(i×128),i=[Cur/128]([]表示取整),執(zhí)行步驟507;
步驟505:Cur_V=V_T,即密鑰是同步的,因此業(yè)務(wù)相通。業(yè)務(wù)完成后將GID=0位置的密鑰數(shù)據(jù)變更為(V_T,KEY_T)=(0+128,H(RDATA0)),保存到GID=0的位置上,并記錄接收方自身當(dāng)前版本Cur_V=V_T+1;依次類推,組密鑰版本號(hào)和密鑰數(shù)據(jù)同步進(jìn)行演化,且不可逆。其中,密鑰演化過程圖4所示。
步驟506:Cur_V>V_T,且V_T=Cur_V-(i×128),i=[Cur_V/128]([]表示取整)。則先將GID=(Cur_V mod 128)位置的密鑰取出來,并進(jìn)行密鑰更新至V_T=V_T+(i×128),KEY_T字段進(jìn)行i次H運(yùn)算,并記錄接收方自身當(dāng)前版本Cur_V=V_T+1。
步驟507:Cur_V<V_T,且V_T=Cur_V+(i×128),i=[Cur/128]([]表示取整),則發(fā)送錯(cuò)誤消息指發(fā)送端標(biāo)識(shí)密鑰失步,或者反向攜帶V_T發(fā)送消息至發(fā)送端,發(fā)送端進(jìn)行自動(dòng)校正。
實(shí)施例二
為使本發(fā)明的目的和技術(shù)方案更加清楚,以下將基于上文提出的方法,按照有中心模式下的實(shí)際流程場(chǎng)景給出單向流程前向安全交互的具體實(shí)例工作流程。
本場(chǎng)景中共有發(fā)送端、中心側(cè)、接收端三類設(shè)備,設(shè)置密鑰庫組數(shù)N=128,組號(hào)GID為0~127,發(fā)送端(ID=1)的初始化密鑰庫為Data_O(格式為:組版本號(hào)V_O+組密鑰數(shù)據(jù)KEY_O),并記錄發(fā)送端當(dāng)前版本Cur_V_O=0;接收端(ID=2)的初始化密鑰庫為Data_T(格式為:組版本號(hào)V_T+組密鑰數(shù)據(jù)KEY_T),并記錄接收端當(dāng)前版本Cur_V_T=0;中心側(cè)保存發(fā)送端和接收端的密鑰庫及當(dāng)前初始版本信息為(ID=1,V_O_C=0,KEY_O_C),(ID=2,V_T_C=0,KEY_T_C)。
發(fā)送端從初始使用時(shí),讀取GID=0位置的密鑰數(shù)據(jù),得到(V_O=0,KEY_O=RDATA0),記錄發(fā)送端Cur_V_O=V_O。攜帶Cur_V_O信息發(fā)起業(yè)務(wù)到中心側(cè)成功后,將GID=0位置的密鑰數(shù)據(jù)變更為(V_O,KEY_O)=(0+128,H(RDATA0)),保存到GID=0的位置上,并記錄當(dāng)前版本Cur_V_O=V_O+1;
當(dāng)中心側(cè)接收到發(fā)送端的業(yè)務(wù)數(shù)據(jù),解析得到發(fā)送端消息中攜帶的身份ID=1,版本信息Cur_V_O=0;中心側(cè)根據(jù)ID=1找到對(duì)應(yīng)發(fā)送端的密鑰庫,并根據(jù)(Cur_V_O mod 128)=GID=0,即從ID=1,GID=0的位置獲取中心側(cè)存儲(chǔ)的ID=1的用戶的密鑰數(shù)據(jù)(V_O_C=0,KEY_O_C=RDATA0),比較Cur_V_O=V_O_C,即密鑰是同步的,因此業(yè)務(wù)相通。業(yè)務(wù)完成后將GID=0位置的密鑰數(shù)據(jù)變更為(V_O_C,KEY_O_C)=(0+128,H(RDATA0)),保存到GID=0的位置上,并記錄發(fā)送端當(dāng)前版本號(hào)Cur_V_O=V_O+1。發(fā)送方與中心側(cè)密鑰失步情況,校正方法同實(shí)施例一;
中心側(cè)根據(jù)發(fā)送端消息中攜帶的接收端信息得到接收端身份為ID=2的用戶,中心側(cè)根據(jù)ID=2找到對(duì)應(yīng)的發(fā)送端的密鑰庫及版本信息V_T_C=0,此時(shí)中心側(cè)類似于端端無中心方式下的發(fā)送端,后續(xù)流程同實(shí)例一,具體不再贅述。
根據(jù)上文論述,端端無中心模式及有中心模式在前向安全設(shè)計(jì)上,依據(jù)密鑰的同步演化、抗碰撞哈希算法H及對(duì)前一組數(shù)據(jù)的關(guān)聯(lián)計(jì)算,僅需要一個(gè)單向流程即可實(shí)現(xiàn)單流程前向安全能力。
綜上所述,本發(fā)明實(shí)施例提供了一種單向流程前向安全技術(shù)實(shí)現(xiàn)方法,具體如下技術(shù)效果:
利用預(yù)置密鑰庫、循環(huán)演化機(jī)制及抗碰撞哈希算法等技術(shù)解決移動(dòng)通信、衛(wèi)星通信等窄帶應(yīng)用環(huán)境下的前向安全機(jī)制。
此機(jī)制有別于傳統(tǒng)的數(shù)字簽名方法,在不降低安全性的前提下,采用此方法可以提高運(yùn)算性能、傳輸性能。
較之傳統(tǒng)多流程交互協(xié)商,具有更高的效率且不降低安全性。通過預(yù)置的密鑰庫、組數(shù)、組密鑰版本號(hào)、當(dāng)前版本號(hào)等信息,實(shí)現(xiàn)快速判斷并實(shí)現(xiàn)密鑰使用及密鑰更新。
通過自動(dòng)校正機(jī)制,解決發(fā)送端、接收端密鑰演化不同步問題。
本領(lǐng)域技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法的全部或部分流程,可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。其中,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)為磁盤、光盤、只讀存儲(chǔ)記憶體或隨機(jī)存儲(chǔ)記憶體等。
雖然已經(jīng)詳細(xì)說明了本發(fā)明及其優(yōu)點(diǎn),但是應(yīng)當(dāng)理解在不超出由所附的權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下可以進(jìn)行各種改變、替代和變換。而且,本申請(qǐng)的范圍不僅限于說明書所描述的過程、設(shè)備、手段、方法和步驟的具體實(shí)施例。本領(lǐng)域內(nèi)的普通技術(shù)人員從本發(fā)明的公開內(nèi)容將容易理解,根據(jù)本發(fā)明可以使用執(zhí)行與在此所述的相應(yīng)實(shí)施例基本相同的功能或者獲得與其基本相同的結(jié)果的、現(xiàn)有和將來要被開發(fā)的過程、設(shè)備、手段、方法或者步驟。因此,所附的權(quán)利要求旨在它們的范圍內(nèi)包括這樣的過程、設(shè)備、手段、方法或者步驟。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。