本發(fā)明涉及衛(wèi)星通信技術(shù)領(lǐng)域,具體涉及一種衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法及系統(tǒng)。
背景技術(shù):
在一定網(wǎng)絡(luò)情況下,對于存在主站和從站之分的系統(tǒng)通信過程中如何確保信息安全及信息泄漏后的無效性,普遍的做法是對數(shù)據(jù)進行加密及解密處理。由此,需要一套完善的加解密系統(tǒng)來實現(xiàn)數(shù)據(jù)有明文到密文的處理。其中,密鑰分為兩種,對稱密鑰和非對稱密鑰。具體的,對稱密鑰又稱私鑰,即信息的發(fā)送方和接收方使用同一個密鑰進行加密及解密工作。其加解密速度快,適合大數(shù)量的加解密。非對稱密鑰又稱公鑰,其需要使用一堆密鑰來分別完成加解密工作,一個公開,另一個由雙方自己保存。公鑰靈活但數(shù)據(jù)處理速度相對較慢。目前,在衛(wèi)星移動通信領(lǐng)域,特別是在如今多衛(wèi)星間大規(guī)模組網(wǎng)的背景下,通信雙方的數(shù)據(jù)加密還沒有一個具體的標(biāo)準(zhǔn)協(xié)商機制,這就使得衛(wèi)星通信的安全性不能得到有效保證。
技術(shù)實現(xiàn)要素:
技術(shù)問題
有鑒于此,本發(fā)明實施例提供一種衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法及系統(tǒng),以解決現(xiàn)有的衛(wèi)星通信的安全性不能得到有效保證的問題。
本發(fā)明提供的一種衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法,包括如下步驟:
主站接收到小站發(fā)送的登錄認證請求信號后,所述主站隨機選擇第一隨機數(shù)r1,根據(jù)所述第一隨機數(shù)r1生成主站側(cè)公鑰R1,并向所述小站發(fā)送前向廣播信令;其中,所述前向廣播信令中包含所述主站側(cè)公鑰R1;
所述小站接收所述前向廣播信令,對所述前向廣播信令進行解析提取出所述主站側(cè)公鑰R1,根據(jù)所述主站側(cè)公鑰R1計算生成第一認證信息;并隨機選擇第二隨機數(shù)r2,根據(jù)所述第二隨機數(shù)r2生成小站側(cè)公鑰R2,并將所述小站側(cè)公鑰、所述第一認證信息和所述小站身份信息回傳至所述主站;所述小站還根據(jù)所述主站側(cè)公鑰R1和所述第二隨機數(shù)r2計算生成小站側(cè)分發(fā)保護密鑰;
所述主站接收所述小站的回傳信息,由回傳信息中提取出所述小站側(cè)公鑰、所述第一認證信息和所述小站身份信息,對所述第一認證信息進行驗證,在驗證出所述第一認證信息正確時,計算并發(fā)送第二認證信息至所述小站,并根據(jù)所述第一隨機數(shù)r1和所述小站側(cè)公鑰計算生成主站側(cè)分發(fā)保護密鑰;
所述小站接收并驗證所述第二認證信息,并在驗證出所述第二認證信息正確時,啟用所述小站側(cè)分發(fā)保護密鑰;
所述主站發(fā)送業(yè)務(wù)信號及所述第一隨機數(shù)r1至所述小站,由所述小站根據(jù)所述第一隨機數(shù)r1計算生成第三認證信息,并將所述第二隨機數(shù)r2、所述第三認證信息及所述小站身份信息發(fā)送至所述主站;同時,所述小站還根據(jù)所述第一隨機數(shù)r1、所述第二隨機數(shù)r2和所述小站側(cè)分發(fā)保護密鑰計算生成小站側(cè)工作密鑰;
所述主站根據(jù)所述第一隨機數(shù)r1和所述主站側(cè)分發(fā)保護密鑰計算生成第四認證信息,并根據(jù)所述第四認證信息驗證所述小站分合法性,并在驗證出所述小站合法時,根據(jù)所述第二隨機數(shù)r2計算生成第五認證信息,并將所述第五認證信息發(fā)送給小站;同時,所述主站還根據(jù)所述第一隨機數(shù)r1、所述第二隨機數(shù)r2和所述主站側(cè)分發(fā)保護密鑰計算生成主站側(cè)工作密鑰;
所述小站計算并驗證所述第五認證信息,并在驗證出所述第五認證信息正確時,啟用所述小站側(cè)工作密鑰。
在其中一個實施例中,所述主站隨機選擇第一隨機數(shù)r1,根據(jù)所述第一隨機數(shù)r1生成主站側(cè)公鑰R1,包括如下步驟:
所述主站隨機選擇所述第一隨機數(shù)r1;
所述主站根據(jù)公式:R1=r1·G計算生成所述主站側(cè)公鑰R1;
其中,G為橢圓曲線參數(shù)。
在其中一個實施例中,所述小站還根據(jù)所述主站側(cè)公鑰R1和所述第二隨機數(shù)r2計算生成小站側(cè)分發(fā)保護密鑰,包括如下步驟:
所述小站根據(jù)所述主站側(cè)公鑰R1和所述第二隨機數(shù)r2,計算生成小站側(cè)共享參數(shù)sRCST;其中,sRCST=[r2·R1];
所述小站根據(jù)所述小站側(cè)共享參數(shù)sRCST,按照公式:DKRCST=H(sRCST)計算生成所述小站側(cè)分發(fā)保護密鑰;
其中,DKRCST為所述小站側(cè)分發(fā)保護密鑰。
在其中一個實施例中,所述小站驗證所述第二認證信息,并在驗證出所述第二認證信息正確時,啟用所述小站側(cè)分發(fā)保護密鑰之后,還包括如下步驟:
所述小站檢查所述小站側(cè)分發(fā)保護密鑰信息,判斷所述小站側(cè)分發(fā)保護密鑰是否有效;
當(dāng)判斷出所述小站側(cè)分發(fā)保護密鑰有效時,直接執(zhí)行所述主站發(fā)送業(yè)務(wù)信號及所述第一隨機數(shù)r1至所述小站的步驟;
當(dāng)判斷出所述小站側(cè)分發(fā)保護密鑰失效時,則執(zhí)行所述小站請求所述主站執(zhí)行所述小站側(cè)分發(fā)保護密鑰的生成與更新步驟。
在其中一個實施例中,所述判斷所述小站側(cè)分發(fā)保護密鑰是否有效,包括以下步驟:
計算所述小站側(cè)分發(fā)保護密鑰的使用時間,并判斷所述小站側(cè)分發(fā)保護密鑰的使用時間是否大于或等于第一預(yù)設(shè)時間;
當(dāng)所述小站側(cè)分發(fā)保護密鑰的使用時間大于或等于所述第一預(yù)設(shè)時間時,則判斷出所述小站側(cè)分發(fā)保護密鑰失效;
當(dāng)所述小站側(cè)分發(fā)保護密鑰的使用時間小于所述第一預(yù)設(shè)時間時,則判斷出所述小站側(cè)分發(fā)保護密鑰有效。
在其中一個實施例中,所述小站計算并驗證所述第五認證信息,并在驗證出所述第五認證信息正確時,啟用所述小站側(cè)工作密鑰之后,還包括以下步驟:
所述小站計算所述小站側(cè)工作密鑰的使用時間,并判斷所述小站側(cè)工作密鑰的使用時間是否大于或等于第二預(yù)設(shè)時間;
當(dāng)判斷出所述小站側(cè)工作密鑰的使用時間大于或等于所述第二預(yù)設(shè)時間時,則發(fā)送更新工作密鑰的指令至所述主站;
所述主站接收所述更新工作密鑰的指令,并在確認所述主站側(cè)工作密鑰需要更新時,發(fā)送攜帶有所述第一隨機數(shù)r1的廣播信令至所述小站;
所述小站接收所述廣播信令,并生成所述第二隨機數(shù)r2,并根據(jù)所述第二隨機數(shù)r2進行所述小站側(cè)工作密鑰的更新生成;
當(dāng)判斷出所述小站側(cè)工作密鑰的使用時間小于所述第二預(yù)設(shè)時間時,則返回執(zhí)行重新計算所述小站側(cè)工作密鑰的使用時間的步驟。
相應(yīng)的,本發(fā)明還提供了一種衛(wèi)星通信協(xié)議下的密鑰協(xié)商系統(tǒng),包括主站子系統(tǒng)和小站子系統(tǒng);
所述主站子系統(tǒng)包括前向表生成模塊、LB解析模塊、主站側(cè)DK生成模塊、主站側(cè)WK生成模塊和主站側(cè)認證信息生成模塊;
所述小站子系統(tǒng)包括LB生成模塊、前向表解析模塊、小站側(cè)DK生成模塊、小站側(cè)WK生成模塊和小站側(cè)認證信息生成模塊;
所述前向表生成模塊,用于當(dāng)主站接收到小站發(fā)送的登錄認證請求信號后,隨機選擇第一隨機數(shù)r1,根據(jù)所述第一隨機數(shù)r1生成主站側(cè)公鑰R1,并向所述小站發(fā)送前向廣播信令;其中,所述前向廣播信令中包含所述主站側(cè)公鑰R1;
所述前向表解析模塊,用于接收所述前向廣播信令,對所述前向廣播信令進行解析提取出所述主站側(cè)公鑰R1;
所述小站側(cè)認證信息生成模塊,用于根據(jù)所述主站側(cè)公鑰R1計算生成第一認證信息,并隨機選擇第二隨機數(shù)r2,根據(jù)所述第二隨機數(shù)r2生成小站側(cè)公鑰R2;
所述LB生成模塊,用于將所述小站側(cè)公鑰、所述第一認證信息和所述小站身份信息回傳至所述主站;
所述小站側(cè)DK生成模塊,用于根據(jù)所述主站側(cè)公鑰R1和所述第二隨機數(shù)r2計算生成小站側(cè)分發(fā)保護密鑰;
所述LB解析模塊,用于接收所述小站的回傳信息,由回傳信息中提取出所述小站側(cè)公鑰、所述第一認證信息和所述小站身份信息;
所述主站側(cè)認證信息生成模塊,用于對所述第一認證信息進行驗證,并在驗證出所述第一認證信息正確時,計算并發(fā)送第二認證信息至所述小站;
所述主站側(cè)DK生成模塊,用于根據(jù)所述第一隨機數(shù)r1和所述小站側(cè)公鑰計算生成主站側(cè)分發(fā)保護密鑰;
所述小站側(cè)認證信息生成模塊,用于接收并驗證所述第二認證信息,并在驗證出所述第二認證信息正確時,啟用所述小站側(cè)分發(fā)保護密鑰;
所述前向表生成模塊,還用于發(fā)送業(yè)務(wù)信號及所述第一隨機數(shù)r1至所述小站;
所述小站側(cè)認證信息生成模塊,還用于根據(jù)所述第一隨機數(shù)r1計算生成第三認證信息;
所述LB生成模塊,還用于將所述第二隨機數(shù)r2、所述第三認證信息及所述小站身份信息發(fā)送至所述主站;
所述小站側(cè)WK生成模塊,則用于根據(jù)所述第一隨機數(shù)r1、所述第二隨機數(shù)r2和所述小站側(cè)分發(fā)保護密鑰計算生成小站側(cè)工作密鑰;
所述主站側(cè)認證信息生成模塊,還用于根據(jù)所述第一隨機數(shù)r1和所述主站側(cè)分發(fā)保護密鑰計算生成第四認證信息,并根據(jù)所述第四認證信息驗證所述小站分合法性,并在驗證出所述小站合法時,根據(jù)所述第二隨機數(shù)r2計算生成第五認證信息,并將所述第五認證信息發(fā)送給小站;
所述主站側(cè)WK生成模塊,用于根據(jù)所述第一隨機數(shù)r1、所述第二隨機數(shù)r2和所述主站側(cè)分發(fā)保護密鑰計算生成主站側(cè)工作密鑰;
所述小站側(cè)認證信息生成模塊,還用于計算并驗證所述第五認證信息,并在驗證出所述第五認證信息正確時,啟用所述小站側(cè)工作密鑰。
在其中一個實施例中,所述前向表生成模塊包括隨機數(shù)選擇子模塊和公鑰生成子模塊;
所述隨機數(shù)選擇子模塊,用于隨機選擇所述第一隨機數(shù)r1;
所述公鑰生成子模塊,用于根據(jù)公式:R1=r1·G計算生成所述主站側(cè)公鑰R1;其中,G為橢圓曲線參數(shù)。
在其中一個實施例中,所述小站側(cè)DK生成模塊包括共享參數(shù)生成子模塊和保護密鑰生成子模塊;
所述共享參數(shù)生成子模塊,用于根據(jù)所述主站側(cè)公鑰R1和所述第二隨機數(shù)r2,計算生成小站側(cè)共享參數(shù)sRCST;其中,sRCST=[r2·R1];
所述保護密鑰生成子模塊,用于根據(jù)所述小站側(cè)共享參數(shù)sRCST,按照公式:DKRCST=H(sRCST)計算生成所述小站側(cè)分發(fā)保護密鑰;
其中,DKRCST為所述小站側(cè)分發(fā)保護密鑰。
在其中一個實施例中,所述小站側(cè)DK生成模塊包括有效判斷子模塊和請求更新DK子模塊;
所述有效判斷子模塊,用于當(dāng)所述小站側(cè)認證信息生成模塊驗證出所述第二認證信息正確時,啟用所述小站側(cè)分發(fā)保護密鑰之后,判斷所述小站側(cè)分發(fā)保護密鑰是否有效;
當(dāng)判斷出所述小站側(cè)分發(fā)保護密鑰有效時,直接返回所述前向表生成模塊,由所述前向表生成模塊執(zhí)行發(fā)送業(yè)務(wù)信號及所述第一隨機數(shù)r1至所述小站的步驟;
當(dāng)判斷出所述小站側(cè)分發(fā)保護密鑰失效時,則跳轉(zhuǎn)至所述請求更新DK子模塊,由所述請求更新DK子模塊執(zhí)行請求所述主站執(zhí)行所述小站側(cè)分發(fā)保護密鑰的生成與更新步驟。
本發(fā)明的有益效果
采用上述技術(shù)方案,本發(fā)明至少可取得下述技術(shù)效果:
本發(fā)明基于現(xiàn)有通信系統(tǒng)采用的衛(wèi)星通信協(xié)議,在原有主站(NCC,network control center,網(wǎng)絡(luò)控制中心)和小站(RCST,return channel via satellite terminal,通過衛(wèi)星返回頻道終端)子系統(tǒng)的基礎(chǔ)上集成密鑰協(xié)商功能,生成對稱密鑰,由NCC和RCST通過協(xié)議交互傳遞密鑰協(xié)商所需參數(shù),在協(xié)商過程中通過認證完成密鑰的生成,為以后對數(shù)據(jù)進行加解密提供了保障,同時為第二代移動衛(wèi)星通信系統(tǒng)的通信安全提供了一種可實現(xiàn)的實例。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對本發(fā)明實施例描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)本發(fā)明實施例的內(nèi)容和這些附圖獲得其他的附圖。
圖1是本實施例所述的衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法流程圖;
圖2是本實施例所述的基于小站側(cè)的小站入網(wǎng)登錄及密鑰協(xié)商流程圖;
圖3是本實施例所述的小站側(cè)工作密鑰更新流程圖;
圖4是本實施例所述的密鑰協(xié)商方法生成工作密鑰后進行對稱密碼算法的實現(xiàn)流程圖;
圖5是本實施例所述的ECDH算法實現(xiàn)密鑰交互流程圖;
圖6是本實施例所述的密鑰協(xié)商系統(tǒng)結(jié)構(gòu)示意圖。
貫穿附圖,應(yīng)該注意的是,相似的標(biāo)號用于描繪相同或相似的元件、特征和結(jié)構(gòu)。
具體實施方式
提供以下參照附圖的描述來幫助全面理解由權(quán)利要求及其等同物限定的本公開的各種實施例。以下描述包括幫助理解的各種具體細節(jié),但是這些細節(jié)將被視為僅是示例性的。因此,本領(lǐng)域普通技術(shù)人員將認識到,在不脫離本公開的范圍和精神的情況下,可對本文所述的各種實施例進行各種改變和修改。另外,為了清晰和簡潔,公知功能和構(gòu)造的描述可被省略。
以下描述和權(quán)利要求書中所使用的術(shù)語和詞匯不限于文獻含義,而是僅由發(fā)明人用來使本公開能夠被清晰和一致地理解。因此,對于本領(lǐng)域技術(shù)人員而言應(yīng)該明顯的是,提供以下對本公開的各種實施例的描述僅是為了示例性目的,而非限制由所附權(quán)利要求及其等同物限定的本公開的目的。
應(yīng)該理解,除非上下文明確另外指示,否則單數(shù)形式也包括復(fù)數(shù)指代。因此,例如,對“組件表面”的引用包括對一個或更多個這樣的表面的引用。
首先,對密鑰進行一些必要的說明。其中,在本方法中采用了三層密鑰體系,第一層是工作密鑰,第二層是分發(fā)保護密鑰,第三層是用戶身份密鑰,每層密鑰作用的對象和使用頻率要求均不同。具體的,工作密鑰(work key,縮寫WK,包括主站側(cè)工作密鑰和小站側(cè)工作密鑰):用于加密數(shù)據(jù)流,將明文變?yōu)槊芪?,在小站登錄至同步的過程中通過DK(分發(fā)保護密鑰)產(chǎn)生,每天定時在線更新。分發(fā)保護密鑰(distribution key,縮寫DK,同樣包括主站側(cè)分發(fā)保護密鑰和小站側(cè)分發(fā)保護密鑰):在生成WK前,通過生成DK完成小站與主站之間第一次的協(xié)商交互及消息認證,保護WK的正常生成。固定周期(如:6個月)在線更新。身份密鑰(personal key,縮寫PK,同樣包括主站側(cè)身份密鑰和小站側(cè)身份密鑰):用于衍生出分發(fā)保護密鑰DK,并用于證實個人身份。身份密鑰在用戶注冊時申請,只有運營商信任的客戶才有資格成為合法的授權(quán)客戶。更新周期5~10年,需要離線更新。
圖1是本實施例的衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法的流程圖。
參考圖1,本實施例所述的密鑰協(xié)商方法具體參見如下步驟:
首先,通過步驟S100,主站接收到小站發(fā)送的登錄認證請求信號后,主站隨機選擇第一隨機數(shù)r1,根據(jù)第一隨機數(shù)r1生成主站側(cè)公鑰R1,并向小站發(fā)送前向廣播信令;其中,前向廣播信令中包含主站側(cè)公鑰R1。此處,需要說明的是,主站根據(jù)第一隨機數(shù)r1生成主站側(cè)公鑰R1,具體可通過公式:R1=r1·G計算生成。即,主站NCC隨機選擇r1,并且計算R1=r1·G,并通過TIM-B廣播發(fā)送R1給小站。
進而,執(zhí)行步驟S200,小站接收前向廣播信令,對前向廣播信令進行解析提取出主站側(cè)公鑰R1,根據(jù)主站側(cè)公鑰R1計算生成第一認證信息。并且,小站還隨機選擇第二隨機數(shù)r2,根據(jù)第二隨機數(shù)r2生成小站側(cè)公鑰R2,并將小站側(cè)公鑰、第一認證信息和小站身份信息回傳至主站。同時,小站還根據(jù)主站側(cè)公鑰R1和第二隨機數(shù)r2計算生成小站側(cè)分發(fā)保護密鑰。
其中,在該步驟中,其根據(jù)主站側(cè)公鑰R1計算生成第一認證信息具體通過公式:auth1=H(PKRCST,[R1]x,MACRCST)計算生成。其中,auth1為第一認證信息,PKRCST為小站側(cè)身份密鑰,MACRCST為小站側(cè)身份信息,即,小站的ID地址。同時,小站根據(jù)第二隨機數(shù)r2生成小站側(cè)公鑰R2則根據(jù)公式:R2=r2·G計算生成。進一步的,小站根據(jù)主站側(cè)公鑰R1和第二隨機數(shù)r2計算生成小站側(cè)分發(fā)保護密鑰,則具體包括如下步驟:首先,小站根據(jù)主站側(cè)公鑰R1和第二隨機數(shù)r2,計算生成小站側(cè)共享參數(shù)sRCST;其中,sRCST=[r2·R1]。然后,再由小站根據(jù)小站側(cè)共享參數(shù)sRCST,按照公式:DKRCST=H(sRCST)計算生成小站側(cè)分發(fā)保護密鑰;其中,DKRCST為小站側(cè)分發(fā)保護密鑰。并且,將小站側(cè)公鑰、第一認證信息和小站身份信息回傳至主站時,其通過RA_LB回傳R2,auth1,MACRCST來實現(xiàn)。
當(dāng)執(zhí)行完步驟S200后,即可進行步驟S300,主站接收小站的回傳信息,由回傳信息中提取出小站側(cè)公鑰、第一認證信息和小站身份信息,對第一認證信息進行驗證,在驗證出第一認證信息正確時,計算并發(fā)送第二認證信息至小站,并根據(jù)第一隨機數(shù)r1和小站側(cè)公鑰R2計算生成主站側(cè)分發(fā)保護密鑰。
此處需要說明的是,主站計算第二認證信息時具體通過公式:auth2=H(PKNCC,[R2]x,MACNCC)來計算生成,并且,第二認證信息的發(fā)送則通過采用單播信令TIM-U的方式進行發(fā)送。其中,auth2表征第二認證信息,PKNCC表征主站側(cè)身份密鑰,MACNCC表征主站的身份信息,即主站的ID地址。
進一步的,在步驟S300中,主站根據(jù)第一隨機數(shù)r1和小站側(cè)公鑰R2計算生成主站側(cè)分發(fā)保護密鑰的過程同樣包括:首先,計算主站側(cè)共享參數(shù)sNCC,進而再根據(jù)計算生成的主站側(cè)共享參數(shù)計算生成主站側(cè)分發(fā)保護密鑰。其中,計算主站側(cè)共享參數(shù)的原理與計算小站側(cè)共享參數(shù)的原理相同,其同樣根據(jù)公式:sNCC=[r1·R2]x計算生成,進而再根據(jù)公式:DKNCC=H(sNCC)計算得到主站側(cè)分發(fā)保護密鑰DKNCC。
當(dāng)執(zhí)行完步驟S300后,即可執(zhí)行步驟S400,小站接收并驗證第二認證信息auth2,并在驗證出第二認證信息auth2正確時,啟用小站側(cè)分發(fā)保護密鑰DKRCST。
其中,優(yōu)選的,為了進一步提高本發(fā)明的密鑰協(xié)商方法中進行數(shù)據(jù)通信時的安全性,小站側(cè)分發(fā)保護密鑰DKRCST設(shè)置為定時更新。即,將小站側(cè)分發(fā)保護密鑰DKRCST設(shè)置為固定周期更新狀態(tài),從而使得不同階段使用不同的小站側(cè)分發(fā)保護密鑰DKRCST。相應(yīng)的,其在啟用小站側(cè)分發(fā)保護密鑰DKRCST之后,為了保證后續(xù)流程的順利進行,此時需要進行小站側(cè)分發(fā)保護密鑰DKRCST的有效性判斷。即,通過小站檢查小站側(cè)分發(fā)保護密鑰信息,判斷小站側(cè)分發(fā)保護密鑰是否有效。當(dāng)判斷出小站側(cè)分發(fā)保護密鑰有效時,則直接執(zhí)行步驟S500,主站發(fā)送業(yè)務(wù)信號及第一隨機數(shù)r1至小站。當(dāng)判斷出小站側(cè)分發(fā)保護密鑰失效時,則執(zhí)行小站請求主站執(zhí)行小站側(cè)分發(fā)保護密鑰的生成與更新步驟,即,返回步驟S100至步驟S400,重新生成分發(fā)保護密鑰。
具體的,其在進行小站側(cè)分發(fā)保護密鑰是否有效的判斷時,具體可通過判斷有無小站側(cè)分發(fā)保護密鑰以及小站側(cè)分發(fā)保護密鑰的使用時間是否超過預(yù)設(shè)時間來實現(xiàn)。如,當(dāng)通過采用小站側(cè)分發(fā)保護密鑰的使用時間來表征其是否有效時,具體包括:計算小站側(cè)分發(fā)保護密鑰的使用時間,并判斷小站側(cè)分發(fā)保護密鑰的使用時間是否大于或等于第一預(yù)設(shè)時間。當(dāng)判斷出小站側(cè)分發(fā)保護密鑰的使用時間大于或等于第一預(yù)設(shè)時間時,則確定小站側(cè)分發(fā)保護密鑰失效。當(dāng)判斷出小站側(cè)分發(fā)保護密鑰的使用時間小于第一預(yù)設(shè)時間時,則確定小站側(cè)分發(fā)保護密鑰有效。其中,優(yōu)選的,第一預(yù)設(shè)時間的取值為6個月。
當(dāng)通過上述步驟確定小站側(cè)分發(fā)保護密鑰有效后,此時,即可執(zhí)行步驟S500,主站發(fā)送業(yè)務(wù)信號及第一隨機數(shù)r1至小站,由小站根據(jù)第一隨機數(shù)r1計算生成第三認證信息,并將第二隨機數(shù)r2、第三認證信息及小站身份信息發(fā)送至主站;同時,小站還根據(jù)第一隨機數(shù)r1、第二隨機數(shù)r2和小站側(cè)分發(fā)保護密鑰計算生成小站側(cè)工作密鑰。
其中,同樣需要指出的是,主站發(fā)送業(yè)務(wù)信號及第一隨機數(shù)r1至小站時,其可采用廣播信令TIM-B方式來實現(xiàn)。同時,小站根據(jù)第一隨機數(shù)r1計算生成第三認證信息時,則具體通過公式:auth3=H(DKRCST||MACRCST||MACNCC||r1)計算生成。另外,小站將第二隨機數(shù)r2、第三認證信息及小站身份信息發(fā)送至主站時,其具體通過DA_LB回傳至主站。進一步的,小站根據(jù)第一隨機數(shù)r1、第二隨機數(shù)r2和小站側(cè)分發(fā)保護密鑰計算生成小站側(cè)工作密鑰具體則通過公式:WKRCST=H(DKRCST||r1||r2)計算生成。
另外,需要說明的是,由于作為本發(fā)明的優(yōu)選實施例,小站側(cè)分發(fā)保護密鑰和主站側(cè)分發(fā)保護密鑰為定期更新狀態(tài),因此,當(dāng)小站將第二隨機數(shù)r2、第三認證信息及小站身份信息發(fā)送至主站,主站接收上述信息后,優(yōu)選的,其還包括主站由上述信息中提取出小站身份信息MACRCST,查看其分發(fā)保護密鑰的合法性。當(dāng)判斷出其分發(fā)保護密鑰DKNCC合法后則執(zhí)行步驟S600,主站根據(jù)第一隨機數(shù)r1和主站側(cè)分發(fā)保護密鑰計算生成第四認證信息,并根據(jù)第四認證信息驗證小站分合法性,并在驗證出小站合法時,根據(jù)第二隨機數(shù)r2計算生成第五認證信息,并將第五認證信息發(fā)送給小站;同時,主站還根據(jù)第一隨機數(shù)r1、第二隨機數(shù)r2和主站側(cè)分發(fā)保護密鑰計算生成主站側(cè)工作密鑰。
其中,主站根據(jù)第一隨機數(shù)r1和主站側(cè)分發(fā)保護密鑰計算生成第四認證信息具體通過公式:auth4=H(DKNCC||MACRCST||MACNCC||r1)計算生成。并且,主站根據(jù)第二隨機數(shù)r2計算生成第五認證信息auth5則具體通過公式:auth5=H(DKNCC||MACNCC||MACRCST||r2)計算生成。另外,需要說明的是,主站將第五認證信息auth5發(fā)送至小站時優(yōu)選的采用單播信令TIM-U方式進行發(fā)送。
更進一步的,主站根據(jù)第一隨機數(shù)r1、第二隨機數(shù)r2和主站側(cè)分發(fā)保護密鑰計算生成主站側(cè)工作密鑰時,其具體通過公式:WKNCC=H(DKNCC||r1||r2)計算生成。
當(dāng)執(zhí)行完上述步驟后,即可執(zhí)行步驟S700,小站計算并驗證第五認證信息auth5,并在驗證出第五認證信息auth5正確時,啟用小站側(cè)工作密鑰WKRCST。
由此,通過上述步驟實現(xiàn)了主站和小站測試生成的工作密鑰,并且還能夠使得主站和小站兩側(cè)的工作密鑰保持同步。
進一步的,為了更加清楚的說明本實施例的基于衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法,以下基于小站側(cè),對小站入網(wǎng)及密鑰協(xié)商流程進行更進一步的說明。
參考圖2,為本實施例的小站入網(wǎng)及密鑰協(xié)商流程圖。
其中,如圖2所示,其由小站開機開始,NCC及RCST進入登錄流程直至小站同步登錄結(jié)束過程中RCST系統(tǒng)密鑰協(xié)商處理流程具體包括:首先,通過步驟S10,小站側(cè)判斷小站側(cè)是否含有小站側(cè)分發(fā)保護密鑰DKRCST。如果小站側(cè)還未生成DKRCST,則直接執(zhí)行步驟S13,接收主站發(fā)送過來的前向廣播信令,進行DKRCST的生成過程;其中,前向廣播信令中包含有主站側(cè)公鑰R1。
如果小站側(cè)已經(jīng)生成了DKRCST,則此時執(zhí)行步驟S11,計算DKRCST使用時間,并執(zhí)行步驟S12,判斷DKRCST使用時間是否大于或等于第一預(yù)設(shè)時間。如果判斷出DKRCST使用時間大于或等于第一預(yù)設(shè)時間,表明此時DKRCST已經(jīng)過期,需要進行更新,因此同樣執(zhí)行步驟S13,接收主站發(fā)送過來的前向廣播信令,進行主站發(fā)送過來的前向廣播信令的重新生成。
如果判斷出DKRCST使用時間小于第一預(yù)設(shè)時間,則表明此時DKRCST還未過期,其還處于有效階段,因此此時不需要進行DKRCST的重新生成,直接進行隨機登錄即可。即,此時可直接執(zhí)行步驟S19,接收主站發(fā)送的單播信令形式的業(yè)務(wù)信號及第一隨機數(shù)r1等信息。
其中,參考圖2,其進行DKRCST的重新生成過程具體包括:步驟S13,接收主站發(fā)送過來的前向廣播信令。步驟S14,對前向廣播信令進行解析提取出相關(guān)參數(shù),進行第一認證信息的計算以及DKRCST的計算生成。進而,再執(zhí)行步驟S15,發(fā)送包含有第一認證信息auth1和小站自身的ID(即,IDRCST)的LB至主站。待主站通過驗證并計算生成第二認證信息后,執(zhí)行步驟S16,接收主站發(fā)送過來的包含有第二認證信息auth2和其自身的ID(即,IDNCC)的單播信令。繼而執(zhí)行步驟S17,計算并驗證第二認證信息auth2,同時執(zhí)行步驟S18,判斷驗證是否通過。當(dāng)驗證未通過時,則返回步驟S13,重新進行DKRCST的生成。當(dāng)驗證通過時,則繼續(xù)執(zhí)行步驟S19,繼續(xù)接收主站發(fā)送過來的包含有第一隨機數(shù)r1和其自身的ID(即,IDNCC)的前向廣播信令。并執(zhí)行步驟S20,對前向廣播信令進行解析,根據(jù)由前向廣播信令中提取出的相關(guān)參數(shù)計算第三認證信息auth3以及小站側(cè)工作密鑰。進而,再執(zhí)行步驟S21,將計算得到的第三認證信息auth3、小站側(cè)的ID以及第二隨機數(shù)以LB方式發(fā)送至主站。待主站通過第三認證信息驗證并根據(jù)接收到的相關(guān)信息計算生成第五認證信息,并將第五認證信息通過單播信令TIM-U方式發(fā)送至小站后,此時小站側(cè)執(zhí)行步驟S22,接收主站發(fā)送過來的包含有第五認證信息的單播信令TIM-U,并執(zhí)行步驟S23,計算并驗證第五認證信息,同時執(zhí)行步驟S24,判斷驗證是否通過。如果驗證未通過,則返回步驟S13,重新進行DKRCST。如果驗證通過,則執(zhí)行步驟S25,小站完成專用登錄過程,從而進入與主站的同步狀態(tài)。
其中,需要說明的是,優(yōu)選的,在本實施例中,小站側(cè)工作密鑰同樣需要定時更新。即,在小站側(cè)啟動其生成的小站側(cè)工作密鑰后,其還包括小站側(cè)工作密鑰的更新步驟。具體的,參考圖3,在小站正常在線運行過程中,首先通過步驟S810,計算小站側(cè)工作密鑰WKRCST使用時間。其中,計算器使用時間可通過設(shè)置定時器來觸發(fā)。如:可設(shè)置十分鐘計算一次。進而執(zhí)行步驟S820,判斷小站側(cè)工作密鑰WKRCST的使用時間是否大于或等于第二預(yù)設(shè)時間。此處,需要說明的是,第二預(yù)設(shè)時間的取值同樣可根據(jù)實際情況進行自由設(shè)置。優(yōu)選的,其取值可為24小時。當(dāng)判斷出小站側(cè)工作密鑰WKRCST的使用時間小于第二預(yù)設(shè)時間時,表明WKRCST還不需要更新,因此返回步驟S810,重新計算小站側(cè)工作密鑰的使用時間。
當(dāng)判斷出小站側(cè)工作密鑰WKRCST的使用時間大于或等于第二預(yù)設(shè)時間時,則表明當(dāng)前WKRCST需要更新。因此,執(zhí)行步驟S830,發(fā)送更新工作密鑰的指令至主站。主站接收到更新工作密鑰的指令后,確認主站側(cè)工作密鑰WKNCC是否需要更新,并在確認主站側(cè)工作密鑰WKNCC確實需要更新時,發(fā)送攜帶有第一隨機數(shù)r1的廣播信令至小站。此時,小站執(zhí)行步驟S840,接收廣播信令,并執(zhí)行步驟S850,生成第二隨機數(shù)r2,然后執(zhí)行步驟S860,根據(jù)第二隨機數(shù)r2,按照公式:WKRCST=H(DKRCST||r1||r2)進行小站側(cè)工作密鑰的更新生成。
相應(yīng)的,其在完成上述密鑰協(xié)商流程之后,即可通過產(chǎn)生的工作密鑰進行數(shù)據(jù)的加密。其中,參考圖4,其基于上述工作密鑰進行數(shù)據(jù)加密時,通過AES算法實現(xiàn)主站和小站之間的保密通信。對于一對一通信,主站和小站共享工作密鑰使用工作密鑰進行加密。對稱密碼算法對衛(wèi)星通信的鏈路層進行加密,實現(xiàn)中采用OpenSSL中的EVP接口實現(xiàn)256位AES算法,加密模式采用CBC,對于加密長度不是128bit分組的整數(shù)倍,最后一個分組的處理采用PKCS padding處理。具體的:
首先,通過步驟S100’,初始化待加密數(shù)據(jù)的上下文(即,EVP_CIPHER_CTX_new());進而執(zhí)行步驟S200’,配置padding模式(即,EVP_CIPHER_CTX_set_padding());然后,執(zhí)行步驟S300’,配置加密算法(即,cipherAlgrithm為EVP_aes_256_cbc());其次,執(zhí)行步驟S400’,初始化加密操作(即,EVP_EncryptInit_ex(cipherAlgrithm,key,iv));進而再執(zhí)行步驟S500’,執(zhí)行加密操作(即,EVP_EncryptUpdate(cipher,plain));然后執(zhí)行步驟S600’,執(zhí)行最后分塊加密操作(即,EVP_EncryptFinal_ex()),繼而再執(zhí)行步驟S700’,修正密文長度,最后執(zhí)行步驟S800’,釋放內(nèi)存(即,EVP_CIPHER_CTX_free()),最終實現(xiàn)了使用上述工作密鑰對待加密數(shù)據(jù)的加密過程。
另外,還需要說明的是,在本發(fā)明實施例中,應(yīng)用了ECC算法用于衛(wèi)星通信鏈路中某些密鑰的更新,使用橢圓曲線上的Diffie-Helllman協(xié)議。實現(xiàn)中采用OpenSSL中的EVP接口實現(xiàn)ECDH密鑰交換協(xié)議,橢圓曲線采用OpenSSL內(nèi)置的256位素數(shù)域橢圓曲線曲線,具體實現(xiàn)流程可參考圖5。
本發(fā)明采用HMAC模式的HASH算法,HASH函數(shù)采用SHA256,基于OpenSSL進行設(shè)計和實現(xiàn),該算法在衛(wèi)星鏈路安全通信和云計算中起著重要作用,主要用于小站入網(wǎng)認證:主站和小站使用HMAC完成雙方的身份認證,以及主站和小站生成共享密鑰:主站和小站基于已有密鑰,通過HMAC生成共享密鑰等部分。
相應(yīng)的,基于同一發(fā)明構(gòu)思,為了實現(xiàn)上述基于衛(wèi)星通信協(xié)議下的密鑰協(xié)商方法,本發(fā)明還提供了一種基于衛(wèi)星通信協(xié)議下的密鑰協(xié)商系統(tǒng)。由于本發(fā)明提供的密鑰協(xié)商系統(tǒng)的工作原理與上述密鑰協(xié)商方法的原理相同或相似,因此重復(fù)之處不再贅述。
參考圖6,作為本實施例的密鑰協(xié)商系統(tǒng)100,其包括主站(NCC)子系統(tǒng)110和小站(RCST)子系統(tǒng)120。其中,NCC子系統(tǒng)110和RCST子系統(tǒng)120的交互包括:NCC完成RCST的回傳數(shù)據(jù)解析及前向數(shù)據(jù)、接口生成,RCST子系統(tǒng)120完成NCC的前向數(shù)據(jù)解析及回傳數(shù)據(jù)、接口生成。
具體的,主站子系統(tǒng)110包括前向表生成模塊111、LB解析模塊112、主站側(cè)DK生成模塊113、主站側(cè)WK生成模塊114和主站側(cè)認證信息生成模塊115。
其中,在NCC子系統(tǒng)110中,LB解析模塊112,用于接收小站RCST的LB,提取其中相關(guān)參數(shù)用于進行密鑰協(xié)商的相關(guān)處理。此處,需要說明的是,由于所攜帶的數(shù)據(jù)長度超過衛(wèi)星通信協(xié)議規(guī)定數(shù)據(jù)長度大小,接收的LB是RCST分片發(fā)送的,所以LB解析模塊112需要完成LB的重組。主站側(cè)DK生成模塊113,用于提取小站發(fā)送過來的RCST RA_LB logon_element_type字段中的相關(guān)參數(shù),引入HMAC運算獲取DK,其中相關(guān)參數(shù)包括RCST的認證信息,RCST的MAC地址及小站側(cè)公鑰R(公鑰通過PK獲取)。主站側(cè)WK生成模塊114,則用于從RCST的DA_LB logon_element_type中提取相關(guān)參數(shù),同時根據(jù)生成的DK,引入HMAC運算獲取WK。主站側(cè)認證信息生成模塊115,則根據(jù)RCST回傳的LB信令中的參數(shù)計算認證信息,同時與RCST回傳的認證信息進行對比,并根據(jù)對比結(jié)果確定認證是否成功,進而確定協(xié)商流程流程如何進行。該模塊在DK及WK生成過程中分別進行DK認證及WK認證。前向表生成模塊111,則用于處理LB后生成密鑰及認證信息,根據(jù)通信協(xié)議重組前向廣播TIM-B信令或單播TIM-U信令,并對相應(yīng)RCST的前向信令進行數(shù)據(jù)處理,將需要的信息加入前向表中。
相應(yīng)的,在小站子系統(tǒng)120中,其功能與主站子系統(tǒng)110基本相同,其包括LB生成模塊121、前向表解析模塊122、小站側(cè)DK生成模塊123、小站側(cè)WK生成模塊124和小站側(cè)認證信息生成模塊125。其中,前向表解析模塊122,用于RCST開機后,接收NCC前向廣播信令,密鑰交互所需數(shù)據(jù)通過廣播TIM-B或單播TIM-U攜帶,RCST在接收到TIM-B或TIM-U后解析其結(jié)構(gòu),提取密鑰所需參數(shù)。小站側(cè)DK生成模塊123,則用于在解析TIM-B后根據(jù)相關(guān)參數(shù),使用與NCC相同的方式,引入HMAC運算獲取DK的過程,并在獲取過程中生成RCST的認證信息(該過程在小站側(cè)認證信息生成模塊125完成)。小站側(cè)WK生成模塊124,則用于接收NCC前向TIM-U信令,根據(jù)TIM-U數(shù)據(jù),及DK生成WK,并在獲取過程中生成RCST的認證信息(該過程同樣在小站側(cè)認證信息生成模塊125完成)。LB生成模塊121,根據(jù)生成的DK重組回傳RA_LB信令,根據(jù)WK重組DA_LB信令,向NCC傳遞NCC需要的認證及密鑰生成數(shù)據(jù),在重組的時候需要分片后發(fā)送。
更為具體的,前向表生成模塊111,用于當(dāng)主站接收到小站發(fā)送的登錄認證請求信號后,隨機選擇第一隨機數(shù)r1,根據(jù)第一隨機數(shù)r1生成主站側(cè)公鑰R1,并向小站發(fā)送前向廣播信令;其中,前向廣播信令中包含主站側(cè)公鑰R1。前向表解析模塊122,用于接收前向廣播信令,對前向廣播信令進行解析提取出主站側(cè)公鑰R1。
小站側(cè)認證信息生成模塊125,用于根據(jù)主站側(cè)公鑰R1計算生成第一認證信息,并隨機選擇第二隨機數(shù)r2,根據(jù)第二隨機數(shù)r2生成小站側(cè)公鑰R2。LB生成模塊121,用于將小站側(cè)公鑰、第一認證信息和小站身份信息回傳至主站。小站側(cè)DK生成模塊123,用于根據(jù)主站側(cè)公鑰R1和第二隨機數(shù)r2計算生成小站側(cè)分發(fā)保護密鑰。LB解析模塊112,用于接收小站的回傳信息,由回傳信息中提取出小站側(cè)公鑰、第一認證信息和小站身份信息。
主站側(cè)認證信息生成模塊115,用于對第一認證信息進行驗證,并在驗證出第一認證信息正確時,計算并發(fā)送第二認證信息至小站。主站側(cè)DK生成模塊113,用于根據(jù)第一隨機數(shù)r1和小站側(cè)公鑰計算生成主站側(cè)分發(fā)保護密鑰。
小站側(cè)認證信息生成模塊125,用于接收并驗證第二認證信息,并在驗證出第二認證信息正確時,啟用小站側(cè)分發(fā)保護密鑰。
前向表生成模塊111,還用于發(fā)送業(yè)務(wù)信號及第一隨機數(shù)r1至小站。小站側(cè)認證信息生成模塊125,還用于根據(jù)第一隨機數(shù)r1計算生成第三認證信息。LB生成模塊121,還用于將第二隨機數(shù)r2、第三認證信息及小站身份信息發(fā)送至主站。小站側(cè)WK生成模塊124,則用于根據(jù)第一隨機數(shù)r1、第二隨機數(shù)r2和小站側(cè)分發(fā)保護密鑰計算生成小站側(cè)工作密鑰。主站側(cè)認證信息生成模塊115,還用于根據(jù)第一隨機數(shù)r1和主站側(cè)分發(fā)保護密鑰計算生成第四認證信息,并根據(jù)第四認證信息驗證小站分合法性,并在驗證出小站合法時,根據(jù)第二隨機數(shù)r2計算生成第五認證信息,并將第五認證信息發(fā)送給小站。主站側(cè)WK生成模塊114,用于根據(jù)第一隨機數(shù)r1、第二隨機數(shù)r2和主站側(cè)分發(fā)保護密鑰計算生成主站側(cè)工作密鑰。
小站側(cè)認證信息生成模塊125,還用于計算并驗證第五認證信息,并在驗證出第五認證信息正確時,啟用小站側(cè)工作密鑰。
進一步的,前向表生成模塊111包括隨機數(shù)選擇子模塊和公鑰生成子模塊(圖中未示出)。其中,隨機數(shù)選擇子模塊,用于隨機選擇第一隨機數(shù)r1。公鑰生成子模塊,用于根據(jù)公式:R1=r1·G計算生成主站側(cè)公鑰R1;其中,G為橢圓曲線參數(shù)。
更進一步的,小站側(cè)DK生成模塊123包括共享參數(shù)生成子模塊和保護密鑰生成子模塊。其中,共享參數(shù)生成子模塊,用于根據(jù)主站側(cè)公鑰R1和第二隨機數(shù)r2,計算生成小站側(cè)共享參數(shù)sRCST;其中,sRCST=[r2·R1]。保護密鑰生成子模塊,用于根據(jù)小站側(cè)共享參數(shù)sRCST,按照公式:DKRCST=H(sRCST)計算生成小站側(cè)分發(fā)保護密鑰。其中,DKRCST為小站側(cè)分發(fā)保護密鑰。
另外,優(yōu)選的,小站側(cè)DK生成模塊123包括有效判斷子模塊和請求更新DK子模塊(圖中未示出)。其中,有效判斷子模塊,用于當(dāng)小站側(cè)認證信息生成模塊125驗證出第二認證信息正確時,啟用小站側(cè)分發(fā)保護密鑰之后,判斷小站側(cè)分發(fā)保護密鑰是否有效。當(dāng)判斷出小站側(cè)分發(fā)保護密鑰有效時,直接返回前向表生成模塊111,由前向表生成模塊111執(zhí)行發(fā)送業(yè)務(wù)信號及第一隨機數(shù)r1至小站的步驟。當(dāng)判斷出小站側(cè)分發(fā)保護密鑰失效時,則跳轉(zhuǎn)至請求更新DK子模塊,由請求更新DK子模塊執(zhí)行請求主站執(zhí)行小站側(cè)分發(fā)保護密鑰的生成與更新步驟。
本發(fā)明提供的上述任一種基于衛(wèi)星通信協(xié)議下的密鑰協(xié)商系統(tǒng)100,適用于第二代衛(wèi)星移動通信針對衛(wèi)星通信系統(tǒng)協(xié)議標(biāo)準(zhǔn)中RCST登錄認證及密鑰生成?;谀壳皣H上通用的衛(wèi)星通信協(xié)議,通過對協(xié)議信令中預(yù)留字段的擴展及重定義建立一套完備的密鑰協(xié)商生成機制,實現(xiàn)通過PK衍生DK,再通過DK衍生出WK,并在該衍生過程中,完成RCST登錄至同步過程中在NCC網(wǎng)控的認證。實現(xiàn)過程中引入了openssl技術(shù)及經(jīng)典的ECDH算法并加以改進,使得密鑰協(xié)商機制適合于衛(wèi)星通信,并在協(xié)商過程中完成小站與主站的密鑰認證。其能很好的適應(yīng)第二代衛(wèi)星通信系統(tǒng)協(xié)議標(biāo)準(zhǔn)的演進,有效提高協(xié)議層的功能及性能開發(fā)。
應(yīng)該注意的是,如上所述的本公開的各種實施例通常在一定程度上涉及輸入數(shù)據(jù)的處理和輸出數(shù)據(jù)的生成。此輸入數(shù)據(jù)處理和輸出數(shù)據(jù)生成可在硬件或者與硬件結(jié)合的軟件中實現(xiàn)。例如,可在移動裝置或者相似或相關(guān)的電路中采用特定電子組件以用于實現(xiàn)與如上所述本公開的各種實施例關(guān)聯(lián)的功能。另選地,依據(jù)所存儲的指令來操作的一個或更多個處理器可實現(xiàn)與如上所述本公開的各種實施例關(guān)聯(lián)的功能。如果是這樣,則這些指令可被存儲在一個或更多個非暫時性處理器可讀介質(zhì)上,這是在本公開的范圍內(nèi)。處理器可讀介質(zhì)的示例包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光學(xué)數(shù)據(jù)存儲裝置。另外,用于實現(xiàn)本公開的功能計算機程序、指令和指令段可由本公開所屬領(lǐng)域的程序員容易地解釋。
盡管已參照本公開的各種實施例示出并描述了本公開,但是本領(lǐng)域技術(shù)人員將理解,在不脫離由所附權(quán)利要求及其等同物限定的本公開的精神和范圍的情況下,可對其進行形式和細節(jié)上的各種改變。