本發(fā)明涉及一種用于實(shí)現(xiàn)在機(jī)器系統(tǒng)的第一與第二計(jì)算單元之間的安全數(shù)據(jù)通信的方法。
背景技術(shù):
1、對(duì)于在機(jī)器、例如機(jī)動(dòng)車輛中使用的用于傳送數(shù)據(jù)的總線系統(tǒng)、例如can總線系統(tǒng)(can:控制器局域網(wǎng)(controllerareanetwork)),所發(fā)送的消息通常不受安全機(jī)制的約束,即消息以及借此所要傳送的數(shù)據(jù)可能被偽造。例如,在機(jī)動(dòng)車輛中,可能會(huì)在排氣傳感裝置中操縱被傳送給該機(jī)動(dòng)車輛的控制設(shè)備的氮氧化物值,以達(dá)到節(jié)省尿素的目的。雖然機(jī)器的控制設(shè)備可以具有高計(jì)算能力,但是傳感器或其控制單元的計(jì)算能力可能非常有限,使得尤其是對(duì)于考慮計(jì)算時(shí)間要求的密鑰交換,更復(fù)雜的加密方法并不實(shí)用。
技術(shù)實(shí)現(xiàn)思路
1、按照本發(fā)明,提出了一種具有專利獨(dú)立權(quán)利要求的特征的用于實(shí)現(xiàn)在機(jī)器系統(tǒng)的第一與第二計(jì)算單元之間的安全數(shù)據(jù)通信的方法。有利的設(shè)計(jì)方案是從屬權(quán)利要求以及隨后的描述的主題。該方法尤其是計(jì)算機(jī)實(shí)現(xiàn)的。
2、按照本發(fā)明,基于或者根據(jù)主密鑰和第一計(jì)算單元的標(biāo)識(shí)字符串,確定多個(gè)數(shù)據(jù)密鑰,并且將這些數(shù)據(jù)密鑰存儲(chǔ)在第一計(jì)算單元中,其中,該主密鑰存儲(chǔ)或被存儲(chǔ)在第二計(jì)算單元中。第一計(jì)算單元被嵌入該機(jī)器系統(tǒng)中,并且將該標(biāo)識(shí)字符串傳送給第二計(jì)算單元,該第二計(jì)算單元基于主密鑰和所傳送的標(biāo)識(shí)字符串來確定所述多個(gè)數(shù)據(jù)密鑰。在這兩個(gè)計(jì)算單元中,按照預(yù)定選擇規(guī)則來選擇這些數(shù)據(jù)密鑰之一,并且將其用于加密安全數(shù)據(jù)通信。該做法是適宜的,原因在于:這樣,對(duì)于其計(jì)算資源尤其是在考慮時(shí)間邊界條件的情況下不足以實(shí)現(xiàn)更復(fù)雜的加密方法的第一計(jì)算單元(例如傳感器)來說,能夠?qū)崿F(xiàn)與第二計(jì)算單元(例如控制設(shè)備)的安全數(shù)據(jù)通信。
3、術(shù)語“計(jì)算單元”或“計(jì)算系統(tǒng)”通常應(yīng)該意指具有至少一個(gè)處理單元和通信接口以及可能至少一個(gè)存儲(chǔ)器(易失性和/或非易失性)的單元(例如微控制器、計(jì)算機(jī)、服務(wù)器等等)。該至少一個(gè)處理單元被設(shè)立為執(zhí)行可以編碼在軟件和/或硬件中的計(jì)算機(jī)程序,而且例如可以包括帶有一個(gè)或多個(gè)計(jì)算內(nèi)核的處理器、集成電路(諸如fpga(現(xiàn)場可編程門陣列(field?programmable?gate?array)))或asic(專用集成電路(application-specificintegratedcircuit))、用于密碼功能的硬件加速器等等中的一種或多種。
4、例如,第一計(jì)算單元可以是傳感器或其控制單元,而且第二計(jì)算單元可以是該機(jī)器系統(tǒng)的控制設(shè)備。
5、利用數(shù)據(jù)密鑰(即所述多個(gè)數(shù)據(jù)密鑰中的每個(gè)數(shù)據(jù)密鑰以及必要時(shí)基于此使用算法來確定的其它數(shù)據(jù)密鑰),可以實(shí)現(xiàn)對(duì)稱加密方法。在第一與第二計(jì)算單元之間的加密安全數(shù)據(jù)通信中,相對(duì)應(yīng)地,尤其是使用對(duì)稱加密方法。所述多個(gè)數(shù)據(jù)密鑰和該主密鑰是秘密密鑰,即,它們應(yīng)該在其按照本發(fā)明的使用之外保密。
6、在通過第三計(jì)算單元來確定所述多個(gè)數(shù)據(jù)密鑰時(shí)并且在第二計(jì)算單元中確定所述多個(gè)數(shù)據(jù)密鑰時(shí),例如使用密鑰導(dǎo)出函數(shù),其中,該密鑰導(dǎo)出函數(shù)在第二計(jì)算單元和第三計(jì)算單元中尤其是相同的密鑰導(dǎo)出函數(shù)。
7、按照一個(gè)可能的設(shè)計(jì)方案,在將第一計(jì)算單元嵌入該機(jī)器系統(tǒng)中之前,將所述多個(gè)數(shù)據(jù)密鑰存儲(chǔ)在第一計(jì)算單元中。例如,由此能夠?qū)崿F(xiàn):在第一計(jì)算單元的供應(yīng)商處生成這些數(shù)據(jù)密鑰并且將這些數(shù)據(jù)密鑰存儲(chǔ)在第一計(jì)算單元中。接著,可以在第一計(jì)算單元的制造商處將該第一計(jì)算單元嵌入該機(jī)器系統(tǒng)中。
8、按照另一可能的設(shè)計(jì)方案,該方法包括:在第一和第二計(jì)算單元中,按照預(yù)定選擇規(guī)則來更新對(duì)所述多個(gè)數(shù)據(jù)密鑰之一的選擇;而且在加密安全數(shù)據(jù)通信中使用更新后的所選擇的數(shù)據(jù)密鑰。通過在使用中進(jìn)行該更新,比如可以防止重放(replay)攻擊等。
9、可以按照所述多個(gè)數(shù)據(jù)密鑰的順序來對(duì)該選擇進(jìn)行更新,或者該選擇規(guī)則可以包括:按照所述多個(gè)數(shù)據(jù)密鑰的順序來對(duì)該選擇進(jìn)行更新。對(duì)該選擇的更新可以在預(yù)定時(shí)間段之后進(jìn)行,和/或可以響應(yīng)于至少一個(gè)預(yù)定事件和/或至少一個(gè)預(yù)定時(shí)間點(diǎn)的出現(xiàn)來進(jìn)行。
10、該選擇規(guī)則尤其可以包括:在對(duì)該選擇進(jìn)行更新時(shí),分別選擇所述多個(gè)數(shù)據(jù)密鑰中的尚未使用的數(shù)據(jù)密鑰。可以進(jìn)一步規(guī)定:如果在對(duì)該選擇進(jìn)行更新時(shí),所述多個(gè)數(shù)據(jù)密鑰中沒有尚未使用的數(shù)據(jù)密鑰剩余,則基于最后選擇的數(shù)據(jù)密鑰,借助于算法來確定新數(shù)據(jù)密鑰,該新數(shù)據(jù)密鑰被用作更新后的所選擇的數(shù)據(jù)密鑰。相對(duì)應(yīng)地,可以在運(yùn)行期間確定其它尚未使用的數(shù)據(jù)密鑰。
11、本發(fā)明的其它優(yōu)點(diǎn)和設(shè)計(jì)方案從說明書以及隨附的附圖中得出。
12、本發(fā)明依據(jù)實(shí)施例在附圖中示意性示出并且在下文參考附圖予以描述。
1.一種用于實(shí)現(xiàn)在機(jī)器系統(tǒng)(1)的第一計(jì)算單元(2)與第二計(jì)算單元(4)之間的安全數(shù)據(jù)通信的方法,其中,使用主密鑰(10)并且給所述第一計(jì)算單元(2)分配標(biāo)識(shí)字符串(14),所述主密鑰存儲(chǔ)或被存儲(chǔ)在所述第二計(jì)算單元(4)中,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,在將所述第一計(jì)算單元(2)嵌入(270)所述機(jī)器系統(tǒng)(1)中之前,將所述多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)存儲(chǔ)(250)在所述第一計(jì)算單元(2)中。
3.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,所述方法還包括:在第一和第二計(jì)算單元(2、4)中,按照所述預(yù)定選擇規(guī)則來更新(350)對(duì)所述多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)之一的選擇(332、334);而且在所述加密安全數(shù)據(jù)通信(340)中使用更新后的所選擇的數(shù)據(jù)密鑰(12a)。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述選擇規(guī)則包括:按照所述多個(gè)數(shù)據(jù)密鑰的順序來對(duì)所述選擇進(jìn)行所述更新(350)。
5.根據(jù)權(quán)利要求3或4中任一項(xiàng)所述的方法,其中,對(duì)所述選擇的所述更新(350)在預(yù)定時(shí)間段之后進(jìn)行;和/或其中,對(duì)所述選擇的所述更新(350)響應(yīng)于至少一個(gè)預(yù)定事件和/或至少一個(gè)預(yù)定時(shí)間點(diǎn)的出現(xiàn)來進(jìn)行。
6.根據(jù)權(quán)利要求3至5中任一項(xiàng)所述的方法,其中,所述選擇規(guī)則包括:在對(duì)所述選擇進(jìn)行所述更新(350)時(shí),分別選擇所述多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)中的尚未使用的數(shù)據(jù)密鑰。
7.根據(jù)權(quán)利要求6所述的方法,其中,如果在對(duì)所述選擇進(jìn)行所述更新時(shí),所述多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)中沒有尚未使用的數(shù)據(jù)密鑰剩余,則基于最后選擇的數(shù)據(jù)密鑰,借助于算法來確定新數(shù)據(jù)密鑰,所述新數(shù)據(jù)密鑰被用作更新后的所選擇的數(shù)據(jù)密鑰(12a)。
8.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,其中,在通過所述第三計(jì)算單元(6)來確定多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)時(shí)以及在所述第二計(jì)算單元中確定所述多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)時(shí),使用相同的密鑰導(dǎo)出函數(shù)。
9.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述多個(gè)數(shù)據(jù)密鑰(121,122,...,12n)中的每個(gè)數(shù)據(jù)密鑰都適合于實(shí)現(xiàn)對(duì)稱加密方法。
10.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,其中,在所述第一計(jì)算單元與所述第二計(jì)算單元之間的加密安全數(shù)據(jù)通信(340)中,使用對(duì)稱加密方法。
11.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述第一計(jì)算單元(2)是傳感器或其控制單元。
12.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述第二計(jì)算單元(4)是所述機(jī)器系統(tǒng)(1)的控制設(shè)備。
13.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,所述方法還包括:將所述主密鑰(10)存儲(chǔ)(210)在所述第二計(jì)算單元(4)中。
14.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,所述方法還包括:通過第四計(jì)算單元(8)來生成(200)所述主密鑰(10)。
15.根據(jù)上述權(quán)利要求中任一項(xiàng)所述的方法,所述方法還包括:生成(240)所述標(biāo)識(shí)字符串(14)。