[發明專利]基于多路CAN總線和以太網通信的安全網關的通信方法在審
| 申請號: | 201710789108.7 | 申請日: | 2017-09-05 |
| 公開(公告)號: | CN107426075A | 公開(公告)日: | 2017-12-01 |
| 發明(設計)人: | 崔杰;秦貴和;鄒密;孫迪;赫工博;付強;吳玲云;徐洋;劉敏 | 申請(專利權)人: | 吉林大學 |
| 主分類號: | H04L12/40 | 分類號: | H04L12/40;H04L29/06;H04L29/08;H04L9/08;H04L1/00 |
| 代理公司: | 吉林長春新紀元專利代理有限責任公司 22100 | 代理人: | 陳宏偉 |
| 地址: | 130011 吉*** | 國省代碼: | 吉林;22 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 can 總線 以太網 通信 安全網關 方法 | ||
1.一種基于多路的CAN總線和以太網通信的安全網關的通信方法,包括以下步驟:
1)在上位機控制終端通過以太網連接CAN總線與車內控制器和車內檢測設備通信時,使用雙方約定的靜態口令通過安全網關的身份認證,上位機控制終端獲取與車內控制器與車內檢測設備的通信權限;
2)上位機控制終端獲取通信權限后,使用安全網關定義的嵌套偽隨機數算法,生成一個固定隨機數序列,當偽隨機數算法嵌套次序和隨機數種子確定時,每次生成的隨機數序列中元素值確定;
嵌套偽隨機數算法如下:
其中:
r表示嵌套隨機數;
θ表示另一種偽隨機數生成器;
T表示為當前系統時間;
g表示隨機數集合A到偽隨機數算法集合B和偽隨機數算法集合C的一種映射,即A→B,A→C;
f表示輸出[0,1]區間上分布的隨機數函數;
n表示自然數;
X
m表示為模數;
首先使用上述線性同余法(1.2)產生一個均勻分布在[0,1]之間的隨機實數,映射選取嵌套偽隨機數算法中包含的任意兩種偽隨機數算法,映射方法如下:
公式(1.1)中的函數g是隨機數集合A到偽隨機數算法集合B和偽隨機數算法集合C的一種映射,即A→B,A→C;由公式(1.2)產生的均勻分布在[0,1]的隨機實數
經過上述映射方法,由公式(1.1)將得到一種偽隨機數生成器
3)拆分待發送的TCP協議數據,多路通信協議中定義的數據塊長度字節范圍在[10,20]之間;取出步驟2)生成的隨機序列中的第一個元素r,經過自定義DataLen函數,該函數定義為:
得到的數值ω(r)∈[10,20],將該數值作為拆分數據塊的長度,從TCP協議數據的第一字節開始,取出長度為ω(r)字節的數據作為拆分得到數據塊,把拆分得到的數據塊填充到中通信數據幀的data數據域,此通信數據幀為第一個通信數據幀;使用取出隨機序列中的第一個元素r作為拆分得到數據塊的編號,將該編號填充在第一個通信數據幀的headNum數據域;以此類推,取出隨機序列中第二個、第三個……元素使用上述方式將通信數據拆分為數據塊并編號,直到取出的隨機數r′經過DataLen函數得到的ω(r′)大于或等于所剩的TCP協議數據塊長度,則TCP協議數據不能再次被拆分,此時將所剩的TCP協議數據塊填充到最后一幀數據的data數據域,將取出的隨機數r′作為該數據塊的編號填充到最后一幀數據的headNum數據域,完成對TCP協議數據的拆分和編號;拆分TCP協議數據的過程中使用計數器記錄拆分得到的數據塊個數Q;
4)將步驟3)通信數據幀中的data數據域和headNum數據域輸入到MD5算法生成MD5數字指紋,將生成的MD5數字指紋填充到通信數據幀中的md5Check數據域;其中MD5算法是一種Hash算法;MD5算法定義為:
以512位為分組來處理輸入的數據,且每一分組又被劃分為16個32位子分組,經過一系列的處理后,MD5算法的輸出由四個32位分組組成,將這四個32位分組級聯后生成一個128位的散列值,該值即為數字指紋;
最后將數據類型和通信數據幀長度分別加入通信數據幀的dataType數據域和length數據域,得到完整通信數據幀,完成封裝;最終將封裝完畢數據幀送入待發送數據隊列;
5)首先將步驟2)生成的隨機序列中的前Q個元素依次放入大小為Q的動態數組中,Q為拆分得到的數據塊個數;然后使用線性同余法產生范圍在[0,Q-1]內的隨機整數,查找與該隨機數相同的數組下標值,把查找到的數組下標值所指的數組元素所對應的數據幀送入待發送數據子隊列;第一次隨機選取Q/N,N為以太網接口數個數據幀組成數據包送入第一個待發送數據子隊列,第一個隊列中的數據包由第一路以太網傳輸;以此類推,反復執行N次,共選取N組數據包送入N個待發送數據子隊列,由N路以太網傳輸N個待發送數據子隊列中的數據包;完成對所有通信數據幀的隨機分組,且所有組均和以太網接口綁定;最終通過N路以太網同時并行將N個待發送數據子隊列中的數據包發送給通信對端;
6)將步驟3)中使用的兩種偽隨機數算法randomType1、randomType2及隨機數種子seedValue和拆分數據塊個數dataNum組成密令數據幀,將密令數據幀中的randomType1、randomType2及seedValue和dataNum數據域輸入到MD5算法生成MD5數字指紋加入到密令數據幀的md5Check數據域,將數據類型加入密令數據幀的dataType數據域,密令數據幀數據長度加入密令數據幀的length數據域,完成對密令數據的封裝;通過一路以太網發送至安全網關;
7)安全網關接收到數據包后,由多路通信協議解析數據包中的數據幀,提取數據長度length與接收到的數據幀長度校驗;對校驗完畢的數據幀進一步解析,提取數據類型,如果為通信數據幀,則使用MD5算法計算接收到數據幀的data數據域和headNum數據域的MD5數字指紋與接收到MD5數字指紋比對,從而校驗數據完整性;如果數據被篡改或丟失,則向上位機控制終端發送包含通信數據幀類型和該數據幀編號的重發指令數據幀;如果校驗完整,則將數據域編號headNum作為編號字段,并作為索引,數據域data作為內容字段,進行建表;如果為密令數據,則使用MD5算法計算接收到數據幀的randomType1、randomType2及seedValue和dataNum數據域的MD5數字指紋與接收到的MD5數字指紋比對,校驗數據完整性;如果數據被篡改或丟失,則向上位機控制終端發送包含密令數據幀類型的重發指令數據幀,此時headNum數據域由0填充;如果校驗完整,使用自定義密令算法Secret,該算法定義:
解析密令數據幀,獲取接收到密令數據幀中的偽隨機數算法randomType1、randomType2及隨機數種子seedValue和拆分數據塊個數dataNum,使用公式(1.1)的嵌套偽隨機數算法生成隨機序列,對隨機數序列中的前dataNum個元素進行遍歷查表,每遍歷到一個元素,查找表中是否存在該元素,如果存在,則檢索該元素對應的data數據域,按遍歷順序對檢索到的data數據域在隊尾入隊到重組數據隊列中;如果不存在,則該隨機數對應編號的數據塊丟失,向上位機控制終端發送包含該數據塊編號的重發指令,直到安全網關接收到含有該編號的數據幀,將該數據幀的data數據域在隊尾入隊到重組數據隊列;最終完成對TCP協議數據的重組;
8)將重組的TCP協議數據協議轉換為CAN總線數據,通過多路CAN總線發送至車內控制器和車內檢測設備,并等待回復CAN報文;
9)安全網關在接收到車內控制器和車內檢測設備回復的CAN報文后,將CAN報文由CAN協議轉換為TCP協議數據,由安全網關使用與步驟2)、3)、4)相同的方法對TCP協議數據進行拆分、編號后加入MD5數字指紋,完成數據塊的協議封裝;使用步驟5)方法隨機選取Q/N個數據幀為一組,組成N組數據包,通過N路以太網并行發送至上位機控制終端;
10)由上位機控制終端使用與步驟7)相同方式對數據進行校驗、組包,得到完整的TCP協議數據;從而完成一次完整的上位機控制終端通過多路以太網連接多路CAN總線與車內控制器和車內檢測設備安全通信的過程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于吉林大學,未經吉林大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710789108.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:避免電力輸送線纏繞的裝置
- 下一篇:一種防塵電腦機箱





