本發(fā)明涉及汽車通信加密,具體涉及一種通信密鑰學(xué)習(xí)方法及系統(tǒng)、報文的加密方法及系統(tǒng)、車輛。
背景技術(shù):
1、在現(xiàn)有的汽車電池管理系統(tǒng)中,can總線作為車內(nèi)各控制器間通信的主要手段,其數(shù)據(jù)傳輸?shù)陌踩院涂煽啃灾陵P(guān)重要。傳統(tǒng)的通信校驗方式主要采用循環(huán)冗余校驗(crc)方法,該方法通過在發(fā)送方根據(jù)特定算法生成校驗碼并附加在報文尾部,接收方接收到報文后同樣計算校驗碼并與收到的校驗碼進(jìn)行對比,以此檢測通信過程中的數(shù)據(jù)丟失或錯誤。此方法實(shí)施簡便,且不會額外增加總線負(fù)載,然而,其安全性相對較低,容易被惡意攻擊者破解,從而威脅到車輛數(shù)據(jù)的安全。
2、為了增強(qiáng)can總線通信的安全性,一種改進(jìn)方案提出將can報文分割成多個數(shù)據(jù)塊,然后利用高級加密標(biāo)準(zhǔn)(aes)算法對每個數(shù)據(jù)塊進(jìn)行加密處理。發(fā)送節(jié)點(diǎn)在加密后的數(shù)據(jù)塊上附加時間標(biāo)識和次序標(biāo)識,以確保數(shù)據(jù)的時序性和完整性,隨后將這些加密塊發(fā)送給接收節(jié)點(diǎn)。接收節(jié)點(diǎn)在接收到所有加密塊后,按次序重新組裝,并使用相同的aes算法進(jìn)行解密。解密完成后,還需結(jié)合校驗機(jī)制進(jìn)一步驗證數(shù)據(jù)傳輸?shù)挠行?。盡管這種方法顯著提高了數(shù)據(jù)傳輸?shù)陌踩?,但aes算法要求處理的數(shù)據(jù)長度至少為128位,對于長度不足的數(shù)據(jù)報文,需要進(jìn)行填充處理,這無疑會增加總線的負(fù)載。此外,隨著報文字節(jié)數(shù)的增加,數(shù)據(jù)分塊的數(shù)量也隨之增多,導(dǎo)致加密和解密操作的次數(shù)增加,從而加大了計算工作量和處理時間。
3、另一種加密方法則結(jié)合了sm3雜湊算法和sm4對稱加密算法。該方法首先對明文數(shù)據(jù)進(jìn)行sm3運(yùn)算,生成雜湊值,然后將這些雜湊值與明文數(shù)據(jù)組合成128位的數(shù)據(jù)塊,再利用sm4算法對整個數(shù)據(jù)塊進(jìn)行加密。此方案在加密強(qiáng)度上有了顯著提升,但由于涉及兩種相對復(fù)雜的加密算法,其實(shí)施難度和計算成本較高,不太適合資源受限且對實(shí)時性要求嚴(yán)格的車載can通信環(huán)境。
4、因此,有必要開發(fā)一種新的通信密鑰學(xué)習(xí)方法及系統(tǒng)、報文的加密方法及系統(tǒng)、車輛。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種通信密鑰學(xué)習(xí)方法及系統(tǒng)、報文的加密方法及系統(tǒng)、車輛,既能保證數(shù)據(jù)傳輸安全,又能適應(yīng)車載環(huán)境實(shí)時性和資源限制。
2、第一方面,本發(fā)明所述的一種通信密鑰學(xué)習(xí)方法,應(yīng)用于包含中央網(wǎng)關(guān)和控制器的通信系統(tǒng)中,該方法包括:
3、s1.?中央網(wǎng)關(guān)生成第一隨機(jī)數(shù),將第一隨機(jī)數(shù)作為明文并使用預(yù)設(shè)的主密鑰進(jìn)行加密處理,從加密密文中截取第一預(yù)設(shè)長度的數(shù)據(jù)作為加密數(shù)據(jù),將原始的第一隨機(jī)數(shù)與截取的加密數(shù)據(jù)組合成第一授權(quán)碼發(fā)送給控制器;
4、s2.控制器接收到第一授權(quán)碼后,提取第一授權(quán)碼中的明文和加密數(shù)據(jù),對提取的明文使用預(yù)設(shè)的主密鑰進(jìn)行加密處理,并從自行加密的結(jié)果中截取校驗數(shù)據(jù),將校驗數(shù)據(jù)與接收的加密數(shù)據(jù)進(jìn)行比較,以校驗第一授權(quán)碼的正確性;
5、s3.若校驗通過,控制器生成第二隨機(jī)數(shù),按照所述s1的方法得到第二授權(quán)碼發(fā)送給中央網(wǎng)關(guān);
6、s4.中央網(wǎng)關(guān)接收第二授權(quán)碼后,按照所述s2的方法得到驗證數(shù)據(jù),并將驗證數(shù)據(jù)與本步驟中所接收的加密數(shù)據(jù)進(jìn)行比較,以確定通信密鑰是否學(xué)習(xí)成功。
7、可選地,所述加密處理采用對稱密鑰分組加密算法,具體為:
8、當(dāng)明文長度不滿足對稱密鑰分組加密算法的最小輸入要求時,對明文進(jìn)行填充處理,直至其長度達(dá)到對稱密鑰分組加密算法所需的數(shù)據(jù)塊大?。?/p>
9、將填充后的明文塊與預(yù)設(shè)的主密鑰進(jìn)行異或操作;
10、將異或操作的結(jié)果作為對稱密鑰分組加密算法的輸入數(shù)據(jù),并使用預(yù)設(shè)的主密鑰作為加密密鑰,對該數(shù)據(jù)塊執(zhí)行加密處理。填充處理確保了明文長度符合加密算法的要求,而異或操作和加密處理則增強(qiáng)了數(shù)據(jù)的保密性。
11、可選地,所述s2中,從自行加密的結(jié)果中截取與接收加密數(shù)據(jù)相同長度的數(shù)據(jù)作為校驗數(shù)據(jù)。確保了比較的一致性,提高了校驗的準(zhǔn)確性。
12、可選地,所述s2中,若校驗數(shù)據(jù)與接收的加密數(shù)據(jù)一致時,則向中央網(wǎng)關(guān)發(fā)送返回報文,否則不向中央網(wǎng)關(guān)發(fā)送返回報文。這種機(jī)制簡化了通信過程,減少了不必要的通信開銷。
13、可選地,所述s4中,若驗證數(shù)據(jù)與接收的加密數(shù)據(jù)一致,則表示通信密鑰學(xué)習(xí)成功,否則判定通信密鑰學(xué)習(xí)失敗。這提供了明確的判定標(biāo)準(zhǔn),確保了通信密鑰學(xué)習(xí)的可靠性。
14、第二方面,本發(fā)明所述的一種報文的加密方法,包括以下步驟:
15、分塊操作:對通信報文按照第二預(yù)設(shè)長度進(jìn)行分塊;
16、異或操作:對于第一個數(shù)據(jù)塊,將第一個數(shù)據(jù)塊與通信密鑰進(jìn)行異或操作;對于中間的數(shù)據(jù)塊,每個數(shù)據(jù)塊均與前一個數(shù)據(jù)塊加密所得的密文進(jìn)行異或操作;對于最后一個數(shù)據(jù)塊,若它是整數(shù)塊,則最后一個數(shù)據(jù)塊與子密鑰k1進(jìn)行異或操作,若它是非整數(shù)塊,則最后一個數(shù)據(jù)塊與子密鑰k2進(jìn)行異或操作;
17、加密操作:將數(shù)據(jù)塊的異或結(jié)果作為該數(shù)據(jù)塊的加密輸入,并使用對稱密鑰分組加密算法進(jìn)行加密,其中,所述對稱密鑰分組加密算法的密鑰采用所述通信密鑰;
18、組合密文操作:將加密后的所有數(shù)據(jù)塊組合在一起,得到加密后的通信報文;
19、其中,所述通信密鑰采用如本發(fā)明所述的通信密鑰學(xué)習(xí)方法得到;所述子密鑰k1和子密鑰k2通過將所述通信密鑰按照預(yù)設(shè)規(guī)則加密得到;
20、第三方面,本發(fā)明所述的一種通信密鑰學(xué)習(xí)系統(tǒng),包括第一存儲器和第一處理器,所述第一存儲器內(nèi)存儲有第一計算機(jī)可讀程序,所述第一計算機(jī)可讀程序被第一處理器調(diào)用時,能執(zhí)行如本發(fā)明所述的通信密鑰學(xué)習(xí)方法的步驟。
21、第四方面,本發(fā)明所述的一種報文的加密系統(tǒng),包括第二存儲器和第二處理器,所述第二存儲器內(nèi)存儲有第二計算機(jī)可讀程序,所述第二計算機(jī)可讀程序被第二處理器調(diào)用時,能執(zhí)行如本發(fā)明所述的報文的加密方法的步驟。
22、第五方面,本發(fā)明所述的一種車輛,采用如本發(fā)明所述的通信密鑰學(xué)習(xí)系統(tǒng)。
23、第六方面,本發(fā)明所述的一種車輛,采用如本發(fā)明所述的報文的加密系統(tǒng)。
24、本發(fā)明的有益效果:
25、1.本發(fā)明通信密鑰由中央網(wǎng)關(guān)的主密鑰生成,并通過與控制器之間的學(xué)習(xí)過程得到。這種方法確保了只有合法的控制器和中央網(wǎng)關(guān)才能夠生成通信密鑰,從而保證了中央網(wǎng)關(guān)與控制器間相互通訊的真實(shí)性,進(jìn)而有效防止了非法設(shè)備的接入和通信。
26、2.?本發(fā)明的加密算法由對稱密鑰分組加密算法演變而來,即通過將對稱密鑰分組加密算法中的常量替換為密鑰,增加了破解難度。傳統(tǒng)的對稱密鑰分組加密算法中,第一數(shù)據(jù)塊通常與某個常量進(jìn)行異或操作后再進(jìn)行加密。而本技術(shù)用密鑰替代了這個常量,這意味著攻擊者需要同時破解密鑰和加密算法本身,大大提升了安全性。另外,由于使用密鑰替代常量,這種加密算法對于不同的密鑰具有更高的適應(yīng)性,能夠在不同場景下提供更靈活的安全保障。
27、3.本發(fā)明僅截取密文中少量字節(jié)作為消息認(rèn)證碼附加在控制器的can報文里,不會占用通信報文過多字節(jié),做到加密和通信效率的平衡。
28、4.本方法通過中央網(wǎng)關(guān)和控制器雙方接收和發(fā)送報文并校驗的方法,保證了通信密鑰學(xué)習(xí)過程的準(zhǔn)確性和一致性。車輛上有多個控制器,中央網(wǎng)關(guān)和各控制器均要學(xué)習(xí)一遍,從而得到每個控制器的通信密鑰。
29、綜上所述,本發(fā)明既能夠保證數(shù)據(jù)傳輸安全,又能夠適應(yīng)車載環(huán)境實(shí)時性和資源限制。