鬼佬大哥大
  • / 28
  • 下載費用:30 金幣  

一種驗證信息完整性的方法和系統.pdf

關 鍵 詞:
一種 驗證 信息 完整性 方法 系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201210272370.1

申請日:

2012.08.01

公開號:

CN102761560B

公開日:

2015.01.14

當前法律狀態:

有效性:

法律詳情: 授權|||實質審查的生效IPC(主分類):H04L 29/06申請日:20120801|||公開
IPC分類號: H04L29/06; H04L9/32 主分類號: H04L29/06
申請人: 飛天誠信科技股份有限公司
發明人: 陸舟; 于華章
地址: 100085 北京市海淀區學清路9號匯智大廈B座17層
優先權:
專利代理機構: 代理人:
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201210272370.1

授權公告號:

102761560B||||||

法律狀態公告日:

2015.01.14|||2012.12.19|||2012.10.31

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開一種驗證信息完整性的方法和系統,所述方法包括:消息認證碼生成設備接收待發送的消息,更新第一動態因子,對第一動態因子做單向變換得到第一數值,更新當前第一動態因子,計算得到第一消息認證碼,生成傳輸報文;消息認證碼生成設備通過主機將傳輸報文發送給認證服務器;認證服務器接收傳輸報文并拆分,更新第二動態因子,根據第二動態因子生成驗證窗口,對驗證窗口的各個動態因子做單向變換得到一系列第二數值,用驗證窗口中的第二動態因子和第二數值對拆分結果進行驗證。本發明中計算消息認證碼所使用的動態因子不在傳輸網絡中出現,能夠有效避免被攻擊者偽造,有效地抵御重放攻擊。

權利要求書

1.一種驗證信息完整性的方法,其特征在于,所述方法包括:步驟S1:消息認證碼生成設備接收主機發送的待發送消息,更新并獲取第一動態因子;步驟S2:所述消息認證碼生成設備對所述第一動態因子做單向變換,得到第一數值;步驟S3:所述消息認證碼生成設備更新所述第一動態因子,并獲取當前第一動態因子;步驟S4:所述消息認證碼生成設備對所述待發送消息和當前第一動態因子計算得到第一消息認證碼,根據所述待發送消息、所述第一數值和所述第一消息認證碼生成傳輸報文;步驟S5:所述消息認證碼生成設備向所述主機發送所述傳輸報文;步驟S6:所述主機接收所述傳輸報文,將所述傳輸報文發送給認證服務器;步驟S7:所述認證服務器接收所述傳輸報文并對其拆分;步驟S8:所述認證服務器更新其內部存儲的第二動態因子并獲取當前第二動態因子,根據當前第二動態因子生成驗證窗口;步驟S9:所述認證服務器依序對所述驗證窗口的各個動態因子做單向變換,得到一系列第二數值;步驟S10:所述認證服務器用所述驗證窗口中的第二動態因子和與其對應的第二數值對拆分結果進行驗證,如驗證通過,則給所述主機返回消息完整的信息;如驗證失敗,則給所述主機返回消息不完整的信息。2.根據權利要求1所述的方法,其特征在于,所述第一動態因子與所述第二動態因子類型相同,具體為時間因子或事件因子或時間因子與事件因子計算?得到的結果。3.根據權利要求2所述的方法,其特征在于,當所述第一動態因子與所述第二動態因子為事件因子時,所述步驟S4具體包括:所述消息認證碼生成設備對所述待發送消息和當前第一動態因子進行加密計算,得到所述第一消息認證碼,將所述待發送消息、所述第一數值和所述第一消息認證碼組合,得到所述傳輸報文。4.根據權利要求3所述的方法,其特征在于,所述步驟S7中所述認證服務器對所述傳輸報文拆分得到拆分后的第一數值、拆分后的消息、拆分后的第一消息認證碼;所述步驟S10具體包括:步驟S10-1:所述認證服務器依序將所述驗證窗口中的所述第二數值與所述拆分后的第一數值比對,如果存在與所述拆分后的第一數值一致的第二數值,則將當前第二動態因子設置為與所述第一數值一致的第二數值所對應的動態因子;否則,給所述主機返回完整性驗證失敗的信息;步驟S10-2:所述認證服務器更新并獲取當前第二動態因子;步驟S10-3:所述認證服務器對所述拆分后的消息和當前第二動態因子計算得到第二消息認證碼;步驟S10-4:所述認證服務器比對所述第二消息認證碼和所述拆分后的第一消息認證碼;如果一致,則驗證通過,給所述主機返回消息完整的信息;否則,給所述主機返回消息不完整的信息。5.根據權利要求2所述的方法,其特征在于,當所述第一動態因子與所述第二動態因子為時間因子時,所述步驟S4-步驟S7替換為:步驟S4’:所述消息認證碼生成設備使用密鑰對設備標識、所述待發送消息?和當前第一動態因子計算得到所述第一消息認證碼,并將所述第一消息認證碼和第一數值發送給所述主機;步驟S5’:所述主機從所述消息認證碼生成設備中獲取所述設備標識將所述設備標識、所述待發送消息、接收到的所述第一數值和所述第一消息認證碼組合,得到所述傳輸報文,將所述傳輸報文發送給所述認證服務器;步驟S6’:所述認證服務器接收所述傳輸報文并對其進行拆分,如果拆分成功,則得到所述設備標識、所述待發送消息、所述第一數值和所述第一消息認證碼,執行步驟S7’;否則,向所述主機返回驗證失敗的響應;步驟S7’:所述認證服務器根據所述設備標識檢索對應的密鑰,如果檢索到,則執行步驟S8;否則,向所述主機返回所述驗證失敗的響應。6.根據權利要求5所述的方法,其特征在于,所述步驟S10具體包括:步驟S10-1’:所述認證服務器依序將所述驗證窗口中的所述第二數值與所述拆分得到的第一數值比對,如果存在與所述拆分得到的第一數值一致的所述第二數值,則將當前第二動態因子設置為與所述第一數值一致的第二數值所對應的動態因子;否則,給所述主機返回完整性驗證失敗的信息;步驟S10-2’:所述認證服務器更新并獲取當前第二動態因子;步驟S10-3’:所述認證服務器使用所述檢索到的密鑰對所述設備標識、所述拆分后消息和當前第二動態因子計算得到第二消息認證碼;步驟S10-4’:所述認證服務器比對所述第二消息認證碼和拆分得到的所述第一消息認證碼;如果一致,則驗證通過,給所述主機返回消息完整的信息;否則,給所述主機返回消息不完整的信息。7.根據權利要求2所述的方法,其特征在于,根據所述時間因子與所述事件因子得到所述第一動態因子,所述步驟S4-步驟S7替換為:?步驟S4’’:所述消息認證碼生成設備按照摘要算法對所述設備標識、內置時鐘當前時刻、待發送消息和當前第一動態因子進行計算,得到第一摘要,對所述第一摘要進行加密,得到數字簽名,將所述數字簽名作為所述第一消息認證碼,將所述第一消息認證碼和第一數值發送給所述主機;步驟S5’’:所述主機從所述消息認證碼生成設備中獲取所述設備標識和當前時刻,將所述設備標識、當前時刻、所述待發送消息、接收到的所述第一數值和所述第一消息認證碼組合,得到所述傳輸報文,將所述傳輸報文發送給所述認證服務器;步驟S6’’:所述認證服務器接收所述傳輸報文并對其拆分,如果拆分成功,則得到所述設備標識、時刻、消息、所述第一數值和所述第一消息認證碼,執行步驟S7’’;否則,向所述主機返回驗證失敗的響應;步驟S7’’:所述認證服務器根據所述設備標識檢索對應的第二動態因子和公鑰,如果檢索到,則執行步驟S8;否則,向所述主機返回所述驗證失敗的響應。8.根據權利要求7所述的方法,其特征在于,所述步驟S10具體包括:步驟S10-1’’:所述認證服務器使用所述公鑰對所述拆分后的第一消息認證碼進行解密,得到所述第一摘要;步驟S10-2’’:所述認證服務器按所述照摘要算法依次對所述第二數值、所述設備標識、所述時刻、所述消息進行計算,得到第二摘要;步驟S10-3’’:所述認證服務器比較所述第二摘要和所述第一摘要,如果一致,給所述主機返回消息完整信息;否則,給所述主機返回消息不完整信息。9.根據權利要求2、4、6任意一項所述的方法,其特征在于,所述傳輸報文組合方式是預先設定的,包括:依序拼接、分段拼接。?10.根據權利要求9所述的方法,其特征在于,所述拆分傳輸報文的方式與所述傳輸報文的組合方式互逆。11.根據權利要求4所述的方法,其特征在于,所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生成設備將當前保存的計數值自加預先設定的步長,以所述計數值作為所述第一動態因子。12.根據權利要求11所述的方法,其特征在于,所述步驟S4中使用對稱加密算法對所述待發送的消息和當前第一動態因子計算得到第一消息認證碼。13.根據權利要求11所述的方法,其特征在于,所述步驟S8中生成所述驗證窗口具體為:以所述認證服務器當前計數值為起點,根據預定的幅度值生成一系列動態因子,即生成所述驗證窗口。14.根據權利要求5所述的方法,其特征在于,所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生成設備獲取內置時鐘當前時刻,以所述時刻作為所述第一動態因子。15.根據權利要求5所述的方法,其特征在于,所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生成設備根據內置時鐘當前時刻以及預先設定的步長確定所述第一動態因子。16.根據權利要求5所述的方法,其特征在于,所述步驟S4’中使用對稱加密算法對所述設備標識、所述待發送消息和當前第一動態因子計算得到所述第一消息認證碼。17.根據權利要求14或15所述的方法,其特征在于,所述步驟S8中生成驗證窗口具體為:以所述認證服務器當前時刻為中點,根據所述預定的幅度值和所述預先設定的步長生成一系列動態因子,即生成所述驗證窗口。18.根據權利要求6所述的方法,其特征在于,所述步驟S8中還包括:根?據當前保存的最近驗證成功時刻,從所述驗證窗口中去掉所述最近驗證成功時刻之前的部分。19.根據權利要求18所述的方法,其特征在于,所述步驟S10中,驗證通過后還包括:更新并保存所述最近驗證成功時刻。20.根據權利要求7所述的方法,其特征在于,所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生成設備將當前保存的計數值自加所述預先設定的步長,并獲取內置時鐘當前時刻,對計數值和當前時刻進行計算,以計算結果作為所述第一動態因子。21.根據權利要求20所述的方法,其特征在于,所述生成驗證窗口具體為:以所述認證服務器當前計時值為中點,根據預定的幅度值和所述預先設定的步長生成一系列時刻;以所述認證服務器當前計數值為起點,根據預定的幅度值生成一系列計數值,對所述對應的時刻與所述對應的計數值進行計算,得到一系列動態因子,即生成所述驗證窗口。22.根據權利要求8所述的方法,其特征在于,步驟S10-1’’替換為:步驟S10-1’’-1:所述認證服務器根據所述設備標識尋找對應的生成消息驗證碼的設備,如找到則使用所述設備對應公鑰對所述拆分后的第一消息認證碼進行解密,得到所述第一摘要,如找不到則給所述主機返回驗證失敗信息。23.一種驗證信息完整性的系統,其特征在于,包括消息認證碼生成設備、主機和認證服務器;所述消息認證碼生成設備包括:第一存儲模塊、第一接收模塊、第一獲取模塊、第一計算模塊、第二計算模塊、組合模塊、第一發送模塊;所述第一存儲模塊,用于存儲第一動態因子;所述第一接收模塊,用于接收所述主機發送的待發送消息;?所述第一獲取模塊,用于更新所述第一存儲模塊中的所述第一動態因子并從中獲取當前第一動態因子;所述第一計算模塊,用于對當前第一動態因子做單向變換,得到第一數值;所述第二計算模塊,用于對所述待發送消息和當前第一動態因子計算得到所述第一消息認證碼;所述生成模塊,用于根據所述待發送消息、所述第一數值和所述第一消息認證碼生成所述傳輸報文;所述第一發送模塊,用于向所述主機發送所述傳輸報文;所述主機包括:第二接收模塊和第二發送模塊;所述第二接收模塊,用于接收所述傳輸報文;所述第二發送模塊,用于將所述傳輸報文發送給所述認證服務器,并將所述待發送信息發送給所述消息認證碼生成設備;所述認證服務器包括:第三接收模塊、拆分模塊、第二存儲模塊、第二獲取模塊、窗口模塊、第三計算模塊、驗證模塊、第三發送模塊;所述第三接收模塊,用于接收所述傳輸報文;所述拆分模塊,用于對所述傳輸報文進行拆分;所述第二存儲模塊,用于存儲第二動態因子;所述第二獲取模塊,用于更新所述第二存儲模塊中的第二動態因子并從中獲取當前第二動態因子;?所述窗口模塊,用于根據所述第二獲取模塊獲取的當前第二動態因子計算得到多個動態因子,并進行存儲;?所述第三計算模塊,用于對所述驗證窗口的所述各個動態因子做單向變換,得到所述一系列第二數值;所述驗證模塊,用于用所述驗證窗口中的第二動態因子和與其對應的第二數值對所述拆分模塊的拆分結果進行驗證;?所述第三發送模塊,用于將所述驗證模塊的驗證結果返回給主機。24.根據權利要求23所述的系統,其特征在于,所述拆分模塊拆分得到信息、第一數值和第一消息認證碼,所述驗證模塊包括:第一比較單元,第一計算單元,第二比較單元;所述第一比較單元,用于比較所述第二數值與所述第一數值是否相同;所述第一計算單元,用于對所述消息和當前第二動態因子計算得到所述第二消息認證碼;所述第二比較單元,用于比較所述第二消息認證碼和所述第一消息認證碼是否相同。25.根據權利要求23所述的系統,其特征在于,所述消息認證碼生成設備中的所述組合模塊也可以放在所述主機中,所述第一發送模塊還用于將所述第一消息認證碼和所述第一數值發送給所述主機,所述第二接收模塊還用于接收所述第一發送模塊發送的所述第一消息認證碼和所述第一數值;所述主機還包括第三獲取模塊,用于從所述消息認證碼生成設備中獲取所述設備標識;所述組合模塊具體用于將所述待發送消息、所述第一數值、設備標識和所述第一消息認證碼組合,得到所述傳輸報文。26.根據權利要求23所述的系統,其特征在于,所述第二存儲模塊還用于存儲最近驗證成功時刻。27.根據權利要求25所述的系統,其特征在于,所述認證服務器還包括:?檢索模塊,用于根據所述設備標識檢索對應的密鑰。28.根據權利要求25所述的系統,其特征在于,所述驗證模塊包括:第一比較單元,第一計算單元,第二比較單元;所述第一比較單元,用于比較所述第二數值與所述第一數值是否相同;所述第一計算單元,用于對所述設備標識、所述消息和當前第二動態因子計算得到所述第二消息認證碼;所述第二比較單元,用于比較所述第二消息認證碼和所述第一消息認證碼是否相同。29.根據權利要求23所述的系統,其特征在于,所述第一獲取模塊包括:第一獲取單元、第二獲取單元和第一計算單元;所述第一獲取單元,用于獲取所述消息認證碼生成設備的計數值;所述第二獲取單元,用于獲取所述消息認證碼生成設備的內置時鐘當前時刻;所述第一計算單元,用于對所述計數值和內置時鐘當前時刻進行計算,得到所述第一動態因子。30.根據權利要求29所述的系統,其特征在于,所述消息認證碼生成設備中的所述組合模塊也可以放在所述主機中,所述第一發送模塊還用于將所述第一消息認證碼和所述第一數值發送給所述主機,所述第二接收模塊還用于接收所述第一發送模塊發送的所述第一消息認證碼和所述第一數值;所述主機還包括:第二獲取模塊,用于從所述消息認證碼生成設備中獲取所述設備標識、計數值和當前時刻;?生成模塊,用于根據所述計數值和所述當前時刻生成所述第一數值;所述組合模塊具體用于將所述設備標識、當前時刻、消息、所述第一數值和所述第一消息認證碼組合,得到所述傳輸報文。31.根據權利要求30所述的系統,其特征在于,所述第三獲取模塊包括:第三獲取單元、第四獲取單元和第二計算單元;所述第三獲取單元,用于獲取所述認證服務器的計數值;所述第四獲取單元,用于獲取所述認證服務器的內置時鐘當前時刻;所述第二計算單元,用于對所述計數值和所述內置時鐘當前時刻進行計算,得到第二動態因子;所述窗口模塊,具體用于根據所述第三獲取單元獲取的計數值和第四獲取單元獲取的當前時刻生成多個動態因子,并進行存儲。32.根據權利要求31所述的系統,其特征在于,所述驗證模塊包括:第三計算單元、第四計算單元和比較單元;所述第三計算單元,用于對所述拆分得到的第一消息認證碼進行解密,得到第一摘要;所述第四計算單元,用于按照摘要算法依次對所述驗證窗口中的動態因子、所述設備標識、所述時刻和所述消息進行計算,得到第二摘要;所述比較單元,用于比較所述第二摘要和所述第一摘要是否相同。33.根據權利要求32所述的系統,其特征在于,所述認證服務器還包括:檢查模塊,用于檢查拆分得到的時刻的合法性。?

說明書

一種驗證信息完整性的方法和系統

技術領域

本發明涉及信息安全領域,尤其涉及一種驗證信息完整性的方法和系
統。

背景技術

現有技術利用可信計算技術和雙線性對的簽密方案(一種同時實現數
字簽名和加密的密碼技術)提出了一個物聯網安全傳輸模型,滿足了
物聯網的ONS(Object?Naming?Service,對象名解析服務)查詢以
及物品信息傳輸兩個環節的安全需求,具有安全性、匿名性、可信性
和抗攻擊性等特點。然而,現有技術需要進行較為復雜的計算,對物
聯網節點設備的運算能力提出了較高要求。與數字簽名相比,消息認
證碼(MAC)的計算復雜度相對較小,更適合應用于實際的物聯網節點
設備。輕量化的密碼算法、密碼協議以及可設定安全等級的密碼技術
屬于物聯網安全體系的關鍵技術。但是,傳統的MAC機制只能用于驗證
消息完整性,不能抵御重放攻擊。另一方面,作為物聯網所使用的主
要網絡架構之一,無線傳感器網絡存在節點控制、節點捕獲等固有的
安全威脅。因此,應用于物聯網的安全機制還應考慮如何防止上述威
脅導致的安全風險影響整個安全體系。

發明內容

本發明的目的是為了克服現有技術的不足,提供了一種驗證信息完整
性的方法和系統,其具有安全性高、防重放、適用于多種環境的特點

本發明提供的一種驗證信息完整性的方法,包括:

步驟S1:消息認證碼生成設備接收主機發送的待發送消息,更新并獲
取第一動態因子;

步驟S2:所述消息認證碼生成設備對所述第一動態因子做單向變換,
得到
第一數值;

步驟S3:所述消息認證碼生成設備更新所述第一動態因子,并獲取當
前第一動態因子;

步驟S4:所述消息認證碼生成設備對所述待發送消息和當前第一動態
因子計算得到第一消息認證碼,根據所述待發送消息、所述第一數值
和所述第一消息認證碼生成傳輸報文;

步驟S5:所述消息認證碼生成設備向所述主機發送所述傳輸報文;

步驟S6:所述主機接收所述傳輸報文,將所述傳輸報文發送給認證服
務器;

步驟S7:所述認證服務器接收所述傳輸報文并對其拆分;

步驟S8:所述認證服務器更新其內部存儲的第二動態因子并獲取當前
第二動態因子,根據當前第二動態因子生成驗證窗口;

步驟S9:所述認證服務器依序對所述驗證窗口的各個動態因子做單向
變換,得到一系列第二數值;

步驟S10:所述認證服務器用所述驗證窗口中的第二動態因子和與其對
應的第二數值對拆分結果進行驗證,如驗證通過,則給所述主機返回
消息完整的信息;如驗證失敗,則給所述主機返回消息不完整的信息

所述第一動態因子與所述第二動態因子類型相同,具體為時間因子或
事件因子或時間因子與事件因子計算得到的結果。

當所述第一動態因子與所述第二動態因子為事件因子時,所述步驟S4
具體包括:所述消息認證碼生成設備對所述待發送消息和當前第一動
態因子進行加密計算,得到所述第一消息認證碼,將所述待發送消息
、所述第一數值和所述第一消息認證碼組合,得到所述傳輸報文;

所述步驟S7中所述認證服務器對所述傳輸報文拆分得到拆分后的第一
數值、拆分后的消息、拆分后的第一消息認證碼;

所述步驟S10具體包括:

步驟S10-1:所述認證服務器依序將所述驗證窗口中的所述第二數值與
所述拆分后的第一數值比對,如果存在與所述拆分后的第一數值一致
的第二數值,則將當前第二動態因子設置為與所述第一數值一致的第
二數值所對應的動態因子;否則,給所述主機返回完整性驗證失敗的
信息;

步驟S10-2:所述認證服務器更新并獲取當前第二動態因子;

步驟S10-3:所述認證服務器對所述拆分后的消息和當前第二動態因子
計算得到第二消息認證碼;

步驟S10-4:所述認證服務器比對所述第二消息認證碼和所述拆分后的
第一消息認證碼;如果一致,則驗證通過,給所述主機返回消息完整
的信息;否則,給所述主機返回消息不完整的信息。

當所述第一動態因子與所述第二動態因子為時間因子時,所述步驟S4
-步驟S7替換為:

步驟S4’:所述消息認證碼生成設備使用密鑰對設備標識、所述待發
送消息和當前第一動態因子計算得到所述第一消息認證碼,并將所述
第一消息認證碼和所述第一數值發送給所述主機;

步驟S5’:所述主機從所述消息認證碼生成設備中獲取所述設備標識
,將所述設備標識、所述待發送消息、接收到的所述第一數值和所述
第一消息認證碼組合,得到所述傳輸報文,將所述傳輸報文發送給所
述認證服務器;

步驟S6’:所述認證服務器接收所述傳輸報文并對其進行拆分,如果
拆分成功,則得到所述設備標識、所述待發送消息、所述第一數值和
所述第一消息認
證碼,執行步驟S7’;否則,向所述主機返回驗證失敗的響應;

步驟S7’:所述認證服務器根據所述設備標識檢索對應的密鑰,如果
檢索到,則執行步驟S8;否則,向所述主機返回所述驗證失敗的響應

所述步驟S10具體包括:

步驟S10-1’:所述認證服務器依序將所述驗證窗口中的所述第二數值
與所述拆分得到的第一數值比對,如果存在與所述拆分得到的第一數
值一致的所述第二數值,則將當前第二動態因子設置為與所述第一數
值一致的第二數值所對應的動態因子;否則,給所述主機返回完整性
驗證失敗的信息;

步驟S10-2’:所述認證服務器更新并獲取當前第二動態因子;

步驟S10-3’:所述認證服務器使用所述檢索到的密鑰對所述設備標識
、所述拆分后消息和當前第二動態因子計算得到第二消息認證碼;

步驟S10-4’:所述認證服務器比對所述第二消息認證碼和拆分得到的
所述第一消息認證碼;如果一致,則驗證通過,給所述主機返回消息
完整的信息;否則,給所述主機返回消息不完整的信息。

根據所述時間因子與所述事件因子得到所述第一動態因子,所述步驟
S4-步驟S7替換為:

步驟S4’’:所述消息認證碼生成設備按照摘要算法對所述設備標識
、內置時鐘當前時刻、待發送消息和當前第一動態因子進行計算,得
到第一摘要,對所述第一摘要進行加密,得到數字簽名,將所述數字
簽名作為所述第一消息認證碼,將所述第一消息認證碼和第一數值發
送給所述主機;

步驟S5’’:所述主機從所述消息認證碼生成設備中獲取所述設備標
識和當前時刻,將所述設備標識、當前時刻、所述待發送消息、接收
到的所述第一數值和所述第一消息認證碼組合,得到所述傳輸報文,
將所述傳輸報文發送給所
述認證服務器;

步驟S6’’:所述認證服務器接收所述傳輸報文并對其拆分,如果拆
分成功,則得到所述設備標識、時刻、消息、所述第一數值和所述第
一消息認證碼,執行步驟S7’’;否則,向所述主機返回驗證失敗的
響應;

步驟S7’’:所述認證服務器根據所述設備標識檢索對應的第二動態
因子和公鑰,如果檢索到,則執行步驟S8;否則,向所述主機返回所
述驗證失敗的響應。

所述步驟S10具體包括:

步驟S10-1’’:所述認證服務器使用所述公鑰對所述拆分后的第一消
息認證碼進行解密,得到所述第一摘要;

步驟S10-2’’:所述認證服務器按所述照摘要算法依次對所述第二數
值、所述設備標識、所述時刻、所述消息進行計算,得到第二摘要;

步驟S10-3’’:所述認證服務器比較所述第二摘要和所述第一摘要,
如果一致,給所述主機返回消息完整信息;否則,給所述主機返回消
息不完整信息。

所述傳輸報文組合方式是預先設定的,包括:依序拼接、分段拼接。

所述拆分傳輸報文的方式與所述傳輸報文的組合方式互逆。

所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生
成設備將當前保存的計數值自加預先設定的步長,以所述計數值作為
所述第一動態因子。

所述步驟S4中使用對稱加密算法對所述待發送的消息和當前第一動態
因子計算得到第一消息認證碼。

所述步驟S8中生成所述驗證窗口具體為:以所述認證服務器當前計數
值為
起點,根據預定的幅度值生成一系列動態因子,即生成所述驗證窗口

所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生
成設備獲取內置時鐘當前時刻,以所述時刻作為所述第一動態因子。

所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生
成設備根據內置時鐘當前時刻以及預先設定的步長確定所述第一動態
因子。

所述步驟S4’中使用對稱加密算法對所述設備標識、所述待發送消息
和當前第一動態因子計算得到所述第一消息認證碼。

所述步驟S8中生成驗證窗口具體為:以所述認證服務器當前時刻為中
點,根據所述預定的幅度值和所述預先設定的步長生成一系列動態因
子,即生成所述驗證窗口。

所述步驟S8中還包括:根據當前保存的最近驗證成功時刻,從所述驗
證窗口中去掉所述最近驗證成功時刻之前的部分。

所述步驟S10中,驗證通過后還包括:更新并保存所述最近驗證成功時
刻。

所述更新并獲取所述第一動態因子的方法具體為:所述消息認證碼生
成設備將當前保存的計數值自加所述預先設定的步長,并獲取內置時
鐘當前時刻,對計數值和當前時刻進行計算,以計算結果作為所述第
一動態因子。

所述生成驗證窗口具體為:以所述認證服務器當前計時值為中點,根
據預定的幅度值和所述預先設定的步長生成一系列時刻;以所述認證
服務器當前計數值為起點,根據預定的幅度值生成一系列計數值,對
所述對應的時刻與所述對應的計數值進行計算,得到一系列動態因子
,即生成所述驗證窗口。

步驟S10-1’’替換為:

步驟S10-1’’-1:所述認證服務器根據所述設備標識尋找對應的生成
消息驗證碼的設備,如找到則使用所述設備對應公鑰對所述拆分后的
第一消息認證
碼進行解密,得到所述第一摘要,如找不到則給所述主機返回驗證失
敗信息。

本發明提供的一種驗證信息完整性的系統,包括:消息認證碼生成設
備、主機和認證服務器;

所述消息認證碼生成設備包括:第一存儲模塊、第一接收模塊、第一
獲取模塊、第一計算模塊、第二計算模塊、組合模塊、第一發送模塊

所述第一存儲模塊,用于存儲第一動態因子;

所述第一接收模塊,用于接收所述主機發送的待發送消息;

所述第一獲取模塊,用于更新所述第一存儲模塊中的所述第一動態因
子并從中獲取當前第一動態因子;

所述第一計算模塊,用于對當前第一動態因子做單向變換,得到第一
數值;

所述第二計算模塊,用于對所述待發送消息和當前第一動態因子計算
得到所述第一消息認證碼;

所述生成模塊,用于根據所述待發送消息、所述第一數值和所述第一
消息認證碼生成所述傳輸報文;

所述第一發送模塊,用于向所述主機發送所述傳輸報文;

所述主機包括:第二接收模塊和第二發送模塊;

所述第二接收模塊,用于接收所述傳輸報文;

所述第二發送模塊,用于將所述傳輸報文發送給所述認證服務器,并
將所述待發送信息發送給所述消息認證碼生成設備;

所述認證服務器包括:第三接收模塊、拆分模塊、第二存儲模塊、第
二獲取模塊、窗口模塊、第三計算模塊、驗證模塊、第三發送模塊;

所述第三接收模塊,用于接收所述傳輸報文;

所述拆分模塊,用于對所述傳輸報文進行拆分;

所述第二存儲模塊,用于存儲第二動態因子;

所述第二獲取模塊,用于更新所述第二存儲模塊中的第二動態因子并
從中獲取當前第二動態因子;?

所述窗口模塊,用于根據所述第二獲取模塊獲取的當前第二動態因子
計算得到多個動態因子,并進行存儲;

所述第三計算模塊,用于對所述驗證窗口的所述各個動態因子做單向
變換,得到所述一系列第二數值;

所述驗證模塊,用于用所述驗證窗口中的第二動態因子和與其對應的
第二數值對所述拆分模塊的拆分結果進行驗證;?

所述第三發送模塊,用于將所述驗證模塊的驗證結果返回給主機。

所述拆分模塊拆分得到信息、第一數值和第一消息認證碼,所述驗證
模塊包括:第一比較單元,第一計算單元,第二比較單元;

所述第一比較單元,用于比較所述第二數值與所述第一數值是否相同

所述第一計算單元,用于對所述消息和當前第二動態因子計算得到所
述第二消息認證碼;

所述第二比較單元,用于比較所述第二消息認證碼和所述第一消息認
證碼是否相同。

所述消息認證碼生成設備中的所述組合模塊也可以放在所述主機中,
所述第一發送模塊還用于將所述第一消息認證碼和所述第一數值發送
給所述主機,所述第二接收模塊還用于接收所述第一發送模塊發送的
所述第一消息認證碼和
所述第一數值;所述主機還包括第三獲取模塊,用于從所述消息認證
碼生成設備中獲取所述設備標識;

所述組合模塊具體用于將所述待發送消息、所述第一數值、設備標識
和所述第一消息認證碼組合,得到所述傳輸報文。

所述第二存儲模塊還用于存儲最近驗證成功時刻。

所述認證服務器還包括:檢索模塊,用于根據所述設備標識檢索對應
的密鑰。

所述驗證模塊包括:第一比較單元,第一計算單元,第二比較單元;

所述第一比較單元,用于比較所述第二數值與所述第一數值是否相同

所述第一計算單元,用于對所述設備標識、所述消息和當前第二動態
因子計算得到所述第二消息認證碼;

所述第二比較單元,用于比較所述第二消息認證碼和所述第一消息認
證碼是否相同。

所述第一獲取模塊包括:第一獲取單元、第二獲取單元和第一計算單
元;

所述第一獲取單元,用于獲取所述消息認證碼生成設備的計數值;

所述第二獲取單元,用于獲取所述消息認證碼生成設備的內置時鐘當
前時刻;

所述第一計算單元,用于對所述計數值和內置時鐘當前時刻進行計算
,得到所述第一動態因子。

所述消息認證碼生成設備中的所述組合模塊也可以放在所述主機中,
所述第一發送模塊還用于將所述第一消息認證碼和所述第一數值發送
給所述主機,所述第二接收模塊還用于接收所述第一發送模塊發送的
所述第一消息認證碼和
所述第一數值;所述主機還包括:

第二獲取模塊,用于從所述消息認證碼生成設備中獲取所述設備標識
、計數值和當前時刻;

生成模塊,用于根據所述計數值和所述當前時刻生成所述第一數值;

所述組合模塊具體用于將所述設備標識、當前時刻、消息、所述第一
數值和所述第一消息認證碼組合,得到所述傳輸報文。31、根據權利
要求30所述的系統,其特征在于,所述第三獲取模塊包括:第三獲取
單元、第四獲取單元和第二計算單元;

所述第三獲取單元,用于獲取所述認證服務器的計數值;

所述第四獲取單元,用于獲取所述認證服務器的內置時鐘當前時刻;

所述第二計算單元,用于對所述計數值和所述內置時鐘當前時刻進行
計算,得到第二動態因子;

所述窗口模塊,具體用于根據所述第三獲取單元獲取的計數值和第四
獲取單元獲取的當前時刻生成多個動態因子,并進行存儲。

所述驗證模塊包括:第三計算單元、第四計算單元和比較單元;

所述第三計算單元,用于對所述拆分得到的第一消息認證碼進行解密
,得到第一摘要;

所述第四計算單元,用于按照摘要算法依次對所述驗證窗口中的動態
因子、所述設備標識、所述時刻和所述消息進行計算,得到第二摘要

所述比較單元,用于比較所述第二摘要和所述第一摘要是否相同。

所述認證服務器還包括:檢查模塊,用于檢查拆分得到的時刻的合法
性。

本發明與現有技術相比,具有以下優點:

安全性高:本發明中計算消息認證碼所使用的動態因子不在傳輸網絡
中出現,能夠有效避免被攻擊者偽造;

防重放:本發明中使用的動態因子是非重復的,具有“一次一密”的
特性,能夠有效地抵御重放攻擊;若使用時間作為動態因子,還可具
備時間戳的效果;

適用于多種環境:本發明以單向變換為基礎,不包含高強度的密碼運
算,適用于性能受限的環境。

附圖說明

圖1是本發明實施例1提供的一種驗證信息完整性的方法的流程圖;

圖2是本發明實施例2提供的一種驗證信息完整性的方法的流程圖;

圖3是本發明實施例3提供的一種驗證信息完整性的方法的流程圖;

圖4是本發明實施例4提供的一種驗證信息完整性的系統的方框示意圖

圖5是本發明實施例5提供的一種驗證信息完整性的系統的方框示意圖

圖6是本發明實施例6提供的一種驗證信息完整性的系統的方框示意圖

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進
行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實
施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技
術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬
于本發明保護的范圍。

實施例1

本發明的實施例1提供一種驗證信息完整性的方法,如圖1所示,包括

步驟101:消息認證碼生成設備接收待發送消息,更新并獲取第一動態
因子;

本實施例中的待發送消息由主機發送給消息認證碼生成設備;

在本實施例中,所述更新并獲取第一動態因子的方法具體為:

消息認證碼生成設備將當前設備保存的計數值自加預先設定的步長,
以計數值作為第一動態因子;優選的本實施例中計數值自加1;

例如,接收待發送的消息時,消息認證碼生成設備當前保存的計數值
為100,則第一動態因子為101,相應地,此時的計數值更新為101;

本實施例中,第一動態因子是事件因子;更新時的步長是預先設定的
,除了1之外也可以是其他非0數值;

步驟102:消息認證碼生成設備對第一動態因子按照第一預設規則做單
向變換,得到第一數值;

優選地,在本實施例中,第一預設規則為SHA-1算法;除此之外,也可
使用其他算法,如MD5、SHA-256等;

步驟103:消息認證碼生成設備更新第一動態因子,并獲取當前第一動
態因子;?

更新第一動態因子的方法與步驟101相同,在此不在贅述;

若更新前第一動態因子為101,則當前第一動態因子為102;

步驟104:消息認證碼生成設備對待發送消息和當前第一動態因子按照
第二預設規則計算得到第一消息認證碼,將待發送消息、第一數值和
第一消息認證碼組合,得到傳輸報文;

優選地,在本實施例中,第二預設規則為RFC2104所規定的HMAC方法;
除此之外,也可使用其他方法,如對稱加密等;

本實施例中,組合方式是預先設定的;優選地,在本實施例中,將待
發送的消息、第一數值和第一消息認證碼依序拼接,得到傳輸報文。
除此之外,還可使用其他可逆的組合方式,如分段拼接等;

消息認證碼生成設備再次計算消息認證碼時,從當前計數值開始,如
本實施例中可從102開始;

本實施例中,可在步驟101中使用當前計數值,相應地,在步驟104之
后進行更新當前計數值操作;

步驟105:消息認證碼生成設備向主機發送傳輸報文;

步驟106:主機接收傳輸報文,將傳輸報文發送給認證服務器;

本實施例中,步驟107-步驟113為認證服務器對傳輸報文進行驗證的實
現方法;

步驟107:認證服務器接收傳輸報文并將其拆分為消息、第一數值和第
一消息認證碼;

本實施例中拆分報文的方法和與步驟104中拼接報文的方法互逆;

步驟108:認證服務器更新第二動態因子并獲取當前第二動態因子,根
據當前第二動態因子生成驗證窗口;

在本實施例中,第二動態因子保存于認證服務器中,認證服務器的第
二動態因子類型與生成傳輸報文時消息認證碼生成設備的第一動態因
子類型相同,更新并獲取當前第二動態因子的方法與步驟101中更新并
獲取第一動態因子的方法相同;

具體地,在本實施例中,使用事件因子;

所述生成驗證窗口具體為:

以當前計數值為起點,根據預定的幅度值生成一系列動態因子;

例如,當前計數值為95,幅度值為10,則生成的驗證窗口為:

96,97,98,99,100,101,102,103,104,105;

步驟109:認證服務器依序按照第一預設規則對驗證窗口的各個動態因
子做單向變換,得到一系列第二數值;

本步驟使用的單向變換方法與步驟102中相同;

步驟110:認證服務器依序將各個第二數值與所述第一數值比對,如果
存在與所述第一數值一致的第二數值,則將第二動態因子設置為與第
一數值一致的第二數值所對應的動態因子;否則,給主機返回完整性
驗證失敗的信息;

例如,如果由101單向變換而來的第二數值與所述第一數值相同,則將
第二動態因子設置為101;

步驟111:認證服務器更新并獲取第二動態因子;?

更新的具體方法與步驟101相同,在此不再贅述;

若更新前第二動態因子為101,則當前第二動態因子為102;

步驟112:認證服務器將拆分得到的消息和當前第二動態因子按照第二
預設規則計算得到第二消息認證碼;

生成第二消息認證碼的方法與步驟104相同,在此不再贅述。

步驟113:認證服務器比對第二消息認證碼和第一消息認證碼。如果一
致,則驗證通過,給主機返回消息完整的信息;否則,給主機返回消
息不完整的信息。

實施例2

本發明的實施例2提供一種驗證信息完整性的方法,如圖2所示,包括

步驟201:消息認證碼生成設備接收待發送消息,更新并獲取第一動態
因子;

在本實施例中,所述獲取第一動態因子具體為時間因子,具體地,所
述更新并獲取第一動態因子的方法具體為:

消息認證碼生成設備獲取內置時鐘當前時刻,以該時刻作為第一動態
因子;

進一步地,還可以為:消息認證碼生成設備根據內置時鐘的當前時刻
以及預先約定的步長確定第一動態因子;

例如,當前時刻為12:00:20,步長為1分鐘,則第一動態因子為12:01
:20;

步驟202:消息認證碼生成設備按照第一預設規則對第一動態因子做單
向變換,得到第一數值;

優選地,在本實施例中,使用SHA-1算法做單向變換。除此之外,也可
使用其他算法,如MD5、SHA-256等。

步驟203:當消息認證碼生成設備等待第一動態因子更新后,獲取當前
第一動態因子;

步驟204:消息認證碼生成設備將設備標識、待發送消息和當前第一動
態因子按照第二預設規則計算得到第一消息認證碼;

本實施例中,設備標識預先存儲在消息認證碼生成設備內部,用于標
識消息認證碼生成設備的信息和對應的密鑰,本實施例中的密鑰為對
稱密鑰;

優選地,在本實施例中,使用RFC6287所規定的OTP方法計算消息認證
碼。相應地,消息認證碼生成設備預置有生成OTP所需的密鑰;

步驟204具體為:用對稱密鑰對設備標識、待發送消息和當前第一動態
因子進行加密生成第一消息認證碼;

步驟205:消息認證碼生成設備向主機發送第一數值和第一消息認證碼
,主機從消息認證碼生成設備獲取設備標識;

步驟206:主機將設備標識、待發送消息、第一數值和第一消息認證碼
組合,得到傳輸報文,將傳輸報文發送給認證服務器;

本實施例中,組合方式是預先設定的。優選地,在本實施例中,將設
備標識、待發送的消息、第一數值和第一消息認證碼依序拼接,得到
傳輸報文。除此之外,還可使用其他可逆的組合方式,如分段拼接等

從步驟207開始,為認證服務器對傳輸報文的進行處理的方法;

步驟207:認證服務器接收傳輸報文并將其拆分為設備標識、消息、第
一數值和第一消息認證碼,如果拆分成功,執行步驟208,否則,向主
機返回驗證失敗的響應;

本實施例中拆分報文的方法和與步驟205中拼接報文的方法互逆;

步驟208:認證服務器根據設備標識檢索對應的密鑰。如果檢索到對應
的密鑰,執行步驟209,否則,向主機返回驗證失敗的響應;

進一步地,在本實施例中,檢索結果還可包括動態因子參數,例如時
間偏移值;

步驟209:認證服務器根據服務器端的內置時鐘更新第二動態因子并獲
取當前第二動態因子,根據當前第二動態因子生成驗證窗口;

在本實施例中,認證服務器更新并獲取第二動態因子的方法與步驟20
1中更新并獲取第一動態因子的方法相同;

具體地,在本實施例中,使用時間因子;

本實施例中,所述生成驗證窗口的方法具體為:

以當前時刻為中點,根據預定的幅度和步長生成一系列動態因子。

例如,當前時刻為12:00:00,幅度為11,步長為1秒,則生成的驗證窗
口為:

11:59:56,?11:59:57,?11:59:58,?11:59:59,?12:00:00,?12:00
:01,?12:00:02,?12:00:03,?12:00:04,?12:00:05;

進一步地,在檢索結果包括動態因子參數的情況下,則根據參數對驗
證窗口進行調整。例如,偏移值為1秒,則調整后的驗證窗口為

11:59:57,11:59:58,11:59:59,12:00:00,12:00:01,12:00:02,
?12:00:03,?12:00:04,12:00:05,12:00:06;

進一步地,所述生成驗證窗口還包括:

根據當前保存的“最近驗證成功時刻”,從動態因子序列中去掉最近
驗證成功時刻之前的部分。

例如,當前保存的“最近驗證成功時刻”為11:59:58,則去掉后的驗
證窗口為

11:59:59,?12:00:00,?12:00:01,?12:00:02,?12:00:03,?12:00
:04,?12:00:05;

步驟210:認證服務器依序按照第一預設規則對驗證窗口的各個動態因
子做單向變換,得到一系列第二數值;

本步驟使用的單向變換方法與步驟202中相同;

步驟211:認證服務器依序將各個第二數值與所述第一數值比對。如果
存在與所述第一數值一致的第二數值,則將第二動態因子設置為與第
一數值一致的第二數值所對應的動態因子;否則,給主機返回完整性
驗證失敗信息;

例如,如果由12:00:01單向變換而來的第二數值與所述第一數值相同
,則
將第二動態因子設置為12:00:01;

步驟212:當認證服務器檢測到第二動態因子更新后,獲取當前第二動
態因子;

更新的具體方法與步驟201相同,在此不再贅述;

若更新前第二動態因子為12:00:01,則當前第二動態因子為12:00:02

步驟213:認證服務器根據設備標識、檢索得到的密鑰、拆分得到的消
息和當前第二動態因子按照第二預設規則生成第二消息認證碼;

具體地,生成第二消息認證碼的方法與步驟204相同,在此不再贅述;

步驟214:認證服務器比對第二消息認證碼和第一消息認證碼,如果一
致,則驗證通過,給主機返回消息完整信息;否則,給主機返回消息
不完整信息;

本實施例中,驗證通過后還包括:更新最近驗證成功時刻,如在本實
施例中將最近驗證成功時刻更新為12:00:01。

實施例3

本發明的實施例3提供一種驗證信息完整性的方法,如圖3所示,包括

步驟301:消息認證碼生成設備接收待發送消息,更新并獲取第一動態
因子;

在本實施例中,所述更新并獲取第一動態因子的方法具體為:

消息認證碼生成設備將當前保存的計數值自加預先設定的步長(例如
自加1),并獲取內置時鐘當前時刻,按照第一預設規則對這兩個數值
進行計算,以計算結果作為第一動態因子;

本實施例中,第一預設規則包括加、減、異或、同或等運算;具體地
,本實施例中將這兩個值相加得到第一動態因子;

步驟302:消息認證碼生成設備對第一動態因子按照第二預設規則做單
向變換,得到第一數值;

優選地,在本實施例中,使用SHA-1算法做單向變換;除此之外,也可
使用其他算法,如MD5、SHA-256等;

步驟303:消息認證碼生成設備更新第一動態因子,并獲取當前第一動
態因子;?

更新第一動態因子的方法與步驟301相同,在此不在贅述;

步驟304:消息認證碼生成設備將設備標識、內置時鐘當前時刻、待發
送消息和當前第一動態因子按照第三預設規則計算得到第一消息認證
碼;

具體地,在本實施例中,消息認證碼生成設備使用自身私鑰對設備標
識、內置時鐘當前時刻、待發送消息和當前第一動態因子進行簽名生
成第一消息認證碼;

本實施例中,設備標識是消息認證碼生成設備的標識,認證服務器可
以通過設備標識檢索生成消息驗證碼的設備及其對應的公鑰;

步驟305:消息認證碼生成設備向主機發送第一數值和第一消息認證碼
,主機從消息認證碼生成設備獲取設備標識和當前時刻;

步驟306:主機將設備標識、當前時刻、待發送消息、第一數值和第一
消息認證碼組合,得到傳輸報文,將傳輸報文發送給認證服務器消息
認證碼生成設備向主機發送傳輸報文;

本實施例中步驟307-步驟311為認證服務器對接收到的傳輸報文進行驗
證的實現過程;

步驟307:認證服務器接收傳輸報文并將其拆分為設備標識、時刻、消
息、第一數值和第一消息認證碼;如果拆分成功,繼續;否則,向主
機返回驗證失
敗的響應;

本實施例中拆分報文的方法和與步驟305中拼接報文的方法互逆;

步驟308:認證服務器根據設備標識在服務器端檢索對應的第二動態因
子參數和公鑰。如果檢索到,則執行步驟309,否則,向主機返回驗證
失敗的響應;

具體地,在本實施例中,所述第二動態因子參數包括計數值和時間偏
移值;

步驟309:認證服務器更新第二動態因子并獲取當前第二動態因子,根
據當前第二動態因子生成驗證窗口;

在本實施例中,所述更新第二動態因子具體為:更新計數值,并根據
當前時刻和時間偏移值獲取計時值;

本實施例中,所述生成驗證窗口的方法具體為:

以計時值為中點,根據預定的幅度和步長生成一系列時刻;以當前計
數值為起點,根據預定的幅度值生成一系列計數值,將對應的時刻與
對應的計數值按照第一預設規則進行計算,得到一系列動態因子,生
成驗證窗口;

也可以根據拆分得到的時刻和檢索得到的時間偏移確定時間值,根據
預定的幅度和步長生成一系列時刻值,將各個時刻值與對應的計數值
按照第一預設規則進行計算,得到一系列動態因子,生成驗證窗口

步驟310:認證服務器依序按照第二預設規則對驗證窗口的各個動態因
子做單向變換,得到一系列第二數值;

本步驟使用的單向變換方法與步驟302中相同;

步驟311:認證服務器依序將各個第二數值與設備標識、時刻、消息按
預設規則組成驗證報文,比較驗證報文與第一消息認證碼是否對應,
如果是,給主機返回消息完整信息,將第二動態因子更新為所對應的
動態因子;否則,給主
機返回完整性驗證失敗信息;

具體地,本實施例中該步驟為:

步驟311-1:認證服務器使用消息驗證碼生成設備的公鑰對拆分得到的
第一消息認證碼進行解密,得到第一摘要;

本實施例中,該步驟也可以為:認證服務器根據設備標識尋找對應的
生成消息驗證碼的設備,如找到則使用該設備對應公鑰對拆分得到的
第一消息認證碼進行解密,得到第一摘要,如找不到則給主機返回驗
證失敗信息;

步驟311-2:認證服務器按照摘要算法對各個第二數值、拆分得到的設
備標識、時刻、消息進行計算,得到第二摘要;

步驟311-3:認證服務器比較第二摘要和第一摘要是否相同,如果一致
,給主機返回消息完整信息;否則,給主機返回完整性驗證失敗信息

本實施例中,驗證通過后還包括:更新最近驗證成功時刻。

進一步地,在步驟311判斷為是時,本實施例還包括:

步驟312:檢查拆分得到的時刻合法性;如果合法,則給主機返回消息
完整信息,否則,給主機返回完整性驗證失敗信息;

具體地,檢查拆分得到的時刻是否在最近驗證成功時刻之后,如果是
,則不合法,否則,合法;

或者,檢查拆分得到的時刻是否在服務器端有記錄,如果有,則不合
法,否則,合法,并保存該時刻。

實施例4

本發明的實施例4根據實施例1中的方法提供一種驗證信息完整性的系
統,如圖4所示,包括:消息認證碼生成設備41、主機42和認證服務器
43;

消息認證碼生成設備41包括:第一存儲模塊41-1,第一接收模塊41-2
、第一獲取模塊41-3、第一計算模塊41-4、第二計算模塊41-5、組合
模塊41-6、第一發送模塊41-7;

第一存儲模塊41-1,用于存儲第一動態因子;

第一接收模塊41-2,用于接收主機42發送的待發送消息;

第一獲取模塊41-3,用于更新第一存儲模塊41-1中的第一動態因子并
從中并獲取當前第一動態因子;

第一計算模塊41-4,用于對當前第一動態因子做單向變換,得到第一
數值;

第二計算模塊41-5,用于對待發送消息和當前第一動態因子計算得到
第一消息認證碼;

組合模塊41-6,用于將待發送消息、第一數值和第一消息認證碼組合
,得到傳輸報文;

第一發送模塊41-7,用于向主機42發送傳輸報文;

主機42包括:第二接收模塊42-1和第二發送模塊42-2;

第二接收模塊42-1,用于接收傳輸報文;

第二發送模塊42-2,用于將傳輸報文發送給認證服務器43,并將待發
送信息發送給消息認證碼生成設備41;

認證服務器43包括:第三接收模塊43-1、拆分模塊43-2、第二存儲模
塊43-3、第二獲取模塊43-4、窗口模塊43-5、第三計算模塊43-6、驗
證模塊43-7、第三發送模塊43-8;

第三接收模塊43-1,用于接收傳輸報文;

拆分模塊43-2,用于將第三接收模塊43-1接收到的傳輸報文拆分為消
息、第一數值和第一消息認證碼;

第二存儲模塊41-3,用于存儲第二動態因子;

第二獲取模塊43-4,用于更新第二存儲模塊41-3中的第二動態因子并
從中獲取當前第二動態因子;?

窗口模塊43-5,用于對根據第二獲取模塊43-4獲取的當前動第二態因
子計算得到多個動態因子,并進行存儲;

第三計算模塊43-6,用于對窗口模塊43-5中的各個動態因子做單向變
換,得到一系列第二數值;

驗證模塊43-7,用于用窗口模塊53-6中的第二動態因子和與其對應的
第二數值對所述拆分模塊43-2的拆分結果進行驗證;

具體地,驗證模塊43-7包括:第一比較單元43-71,第一計算單元43-
72,第二比較單元43-73;

第一比較單元43-71,用于比較驗證窗口中的第二數值與第一數值是否
相同;

第一計算單元43-72,用于對消息和當前第二動態因子計算得到第二消
息認證碼;

第二比較單元43-73,用于比較第二消息認證碼和第一消息認證碼是否
相同;

第三發送模塊43-8,用于向主機發送所述消息完整的信息和所述消息
不完整的信息;

具體地,本實施例中,消息認證碼生成設備的實現方式為:以計數值
為第
一動態因子的A型設備;A型設備是一次性的消息認證碼生成設備。該
設備為DIE形態,便于與其他模塊集成封裝;以低功耗的單片機芯片為
硬件平臺,通過計數器生成有序非重復序列;固件、設備標識以及密
鑰等信息一次性寫入,寫入后熔絲以防止被攻擊者篡改;內部信息和
固件保存于易失的隨機存儲器,一旦斷電即銷毀所有數據,減少捕獲
風險。A型設備適用于通信數據量小、成本控制要求嚴格、使用環境風
險較高的感知層節點。

實施例5

本發明的實施例5根據實施例2中的方法提供一種驗證信息完整性的系
統,如圖5所示,包括:消息認證碼生成設備51、主機52和認證服務器
53;

消息認證碼生成設備51包括:第一存儲模塊51-1、第一接收模塊51-2
、第一獲取模塊51-3、第一計算模塊51-4、第二計算模塊51-5、第一
發送模塊51-6;

第一存儲模塊51-1,用于存儲第一動態因子;

第一接收模塊51-2,用于接收主機52發送的待發送消息;

第一獲取模塊51-3,用于更新第一存儲模塊51-1中的第一動態因子并
從中并獲取當前第一動態因子;

第一計算模塊51-4,用于對當前第一動態因子做單向變換,得到第一
數值;

第二計算模塊51-5,用于根據密鑰對設備標識、待發送消息和當前第
一動態因子計算得到第一消息認證碼;

第一發送模塊51-6,用于向主機發送第一消息認證碼和第一數值;

主機52包括:第二接收模塊52-1、第二獲取模塊52-2、組合模塊52-3
和第二發送模塊52-4;

第二接收模塊52-1,用于接收第一消息認證碼和第一數值;

第二獲取模塊52-2,用于從消息認證碼生成設備51中獲取設備標識;

組合模塊52-3,用于將設備標識、待發送消息、第一數值和第一消息
認證碼組合,得到傳輸報文;

第二發送模塊52-4,用于將傳輸報文發送給認證服務器,并將待發送
信息發送給消息認證碼生成設備51;

認證服務器53包括:第三接收模塊53-1、拆分模塊53-2、檢索模塊53
-3、第二存儲模塊53-4、第三獲取模塊53-5、窗口模塊53-6、第三計
算模塊53-7、驗證模塊53-8、第三發送模塊53-9;

第三接收模塊53-1,用于接收傳輸報文;

拆分模塊53-2,用于將第三接收模塊53-1接收到的傳輸報文拆分為設
備標識、消息、第一數值和第一消息認證碼;

檢索模塊53-3,用于根據設備標識檢索對應的密鑰;

第二存儲模塊51-4,用于存儲第二動態因子;

第三獲取模塊53-5,用于更新第二存儲模塊51-4中的第二動態因子并
從中獲取當前第二動態因子;?

窗口模塊53-6,用于對根據第三獲取模塊53-5獲取的當前動第二態因
子計算得到多個動態因子,并進行存儲;

第三計算模塊53-7,用于對窗口模塊53-6中的各個動態因子做單向變
換,得到一系列第二數值;

驗證模塊53-8,用于用窗口模塊53-6中的第二動態因子和與其對應的
第二數值對所述拆分模塊的拆分結果進行驗證;

具體地,驗證模塊53-8包括:第一比較單元53-81,第一計算單元53-
82,
第二比較單元53-83;

第一比較單元53-81,用于比較第三計算模塊53-7得到的第二數值與第
一數值是否相同;

第一計算單元53-82,用于對設備標識、消息和當前第二動態因子計算
得到第二消息認證碼;

第二比較單元53-83,用于比較第二消息認證碼和第一消息認證碼是否
相同;

第三發送模塊53-9,用于向主機發送消息完整的信息和消息不完整的
信息;

具體地,本實施例中,消息認證碼生成設備的實現方式為:以當前時
刻為第一動態因子的B型設備;B型設備是具備時間戳特性的消息認證
碼生成設備。該設備為存儲卡(TF卡)規格,通過SDIO協議與上位機
通信;以內置時鐘的低功耗智能卡芯片為硬件平臺,通過時鐘脈沖生
成有序非重復序列;內置固件在生產階段燒寫,設備ID、密鑰等信息
的寫入權限受固件控制,獲取授權后可以更新;固件及內部信息受智
能卡芯片保護,具備“拆片即毀”的特性。B型設備適用于數據通信量
較小、成本控制要求相對寬松、使用環境風險較低、安全要求較高的
感知層節點。

實施例6

本發明的實施例6根據實施例3中的方法提供一種驗證信息完整性的系
統,如圖6所示,包括:消息認證碼生成設備61、主機62和認證服務器
63;

消息認證碼生成設備61包括:第一存儲模塊61-1、第一接收模塊61-2
、第一獲取模塊61-3、第一計算模塊61-4、第二計算模塊61-5、第一
發送模塊61-6;

第一存儲模塊61-1,用于存儲第一動態因子;

第一接收模塊61-2,用于接收主機62發送的待發送消息;

第一獲取模塊61-3,用于更新第一存儲模塊61-1中的第一動態因子并
從中并獲取當前第一動態因子;

具體地,第一獲取模塊61-3包括:第一獲取單元61-31、第二獲取單元
61-32和第一計算單元61-33;

第一獲取單元61-31,用于獲取消息認證碼生成設備的計數值;

第二獲取單元61-32,用于獲取消息認證碼生成設備的內置時鐘當前時
刻;

第一計算單元61-33,用于對計數值和內置時鐘當前時刻進行計算,得
到第一動態因子;

第一計算模塊61-4,用于對當前第一動態因子做單向變換,得到第一
數值;

第二計算模塊61-5,用于對設備標識、內置時鐘當前時刻、待發送消
息和當前第一動態因子計算得到第一消息認證碼;

第一發送模塊61-6,用于向主機62發送第一消息認證碼和第一數值;

主機62包括:第二接收模塊62-1、第二獲取模塊62-2、生成模塊62-3
、組合模塊62-4和第二發送模塊62-5;

第二接收模塊62-1,用于接收第一消息認證碼和第一數值;

第二獲取模塊62-2,用于獲取設備標識、計數值和當前時刻;

生成模塊62-3,用于根據計數值和當前時刻生成第一數值;

組合模塊62-4,用于將設備標識、當前時刻、待發送消息、第一數值
和第一消息認證碼組合,得到傳輸報文;

第二發送模塊62-5,用于將傳輸報文發送給認證服務器63,并將待發
送信息發送給消息認證碼生成設備61;

認證服務器63包括:第三接收模塊63-1、拆分模塊63-2、檢索模塊63
-3、第二存儲模塊63-4、第三獲取模塊63-5、窗口模塊63-6、第三計
算模塊63-7、驗證模塊63-8、檢查模塊63-9和第三發送模塊63-10;

第三接收模塊63-1,用于接收傳輸報文;

拆分模塊63-2,用于將第三接收模塊63-1接收到的傳輸報文拆分為設
備標識、時刻、消息、第一數值和第一消息認證碼;

檢索模塊63-3,用于根據設備標識檢索對應的第二動態因子參數;

第二存儲模塊61-4,用于存儲第二動態因子;

第三獲取模塊63-5,用于更新第二存儲模塊61-4中的第二動態因子并
從中獲取當前第二動態因子;?

具體地,第三獲取模塊63-5包括:第三獲取單元63-51、第四獲取單元
63-52和第二計算單元63-53;

第三獲取單元63-51,用于獲取認證服務器的計數值;

第四獲取單元63-52,用于獲取認證服務器的內置時鐘當前時刻;

第二計算單元63-53,用于對計數值和內置時鐘當前時刻進行計算,得
到第二動態因子;

窗口模塊63-6,用于對根據第三獲取模塊63-51獲取的計數值和第四獲
取單元63-52獲取的當前時刻生成得到多個動態因子,并進行存儲;

第三計算模塊63-7,用于對驗證窗口的各個動態因子做單向變換,得
到一系列第二數值;

驗證模塊63-8,用于比較驗證報文與第一消息認證碼是否對應;

具體地,比較模塊63-8包括:第三計算單元63-81、第四計算單元63-
82和比較單元63-83;

第三計算單元63-81,用于對拆分得到的第一消息認證碼進行解密,得
到第一摘要;

第四計算單元63-82,用于按照摘要算法對驗證窗口中的各個動態因子
、設備標識、時刻和消息進行計算,得到第二摘要;

比較單元63-83,用于比較第二摘要和第一摘要是否相同;

檢查模塊63-9,用于檢查拆分得到的時刻的合法性;

第三發送模塊63-10,用于輸出所述消息完整的信息和所述消息不完整
的信息;

具體地,本實施例中,消息認證碼生成設備的實現方式為:以計數值
和時刻值的計算結果為第一動態因子的C型設備;C型設備是增強型的
信息安全設備,用數字簽名代替A/B型設備所使用的消息認證碼。該設
備以支持非對稱密鑰算法(如RSA)的智能卡芯片為硬件平臺,具有較
大的存儲空間,能夠生成非對稱密鑰對及存儲數字證書。C型設備有助
于實現物聯網安全傳輸機制與基于數字證書和PKI的互聯網安全體系的
對接,適用于數據通信量較大、成本控制要求寬松、使用環境風險低
的網絡層或應用層節點。C型設備有USB?Key、IC卡等多種形態,以適
應不同的節點環境。

以上所述,僅為本發明較佳的具體實施方式,但本發明的保護范圍并
不局限于此,任何熟悉本技術領域的技術人員在本發明公開的技術范
圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內
。因此,本發明的保護范圍應該以權利要求的保護范圍為準。

關于本文
本文標題:一種驗證信息完整性的方法和系統.pdf
鏈接地址:http://www.wwszu.club/p-6421005.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大