一種車輛程序加密驗證方法及加密、驗證裝置制造方法
【專利摘要】本發明提供一種車輛程序加密驗證方法及加密、驗證裝置。所述程序加密方法包括:生成種子數據,根據所述種子數據生成種子密鑰,根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。通過使用以上方法,可以實現在目標文件中存儲相應的種子數據信息,以實現在目標文件讀取時能夠進行有效驗證,以保證對車輛進行升級時所使用程序文件的合法性。
【專利說明】
一種車輛程序加密驗證方法及加密、驗證裝置
【技術領域】
[0001]本發明涉及汽車自動化控制【技術領域】,特別涉及一種車輛程序加密驗證方法及加密、驗證裝置。
【背景技術】
[0002]隨著科學技術的高速發展,在越來越多的車輛設備中都使用程序來進行車輛控制,以提高用戶的駕駛感受。
[0003]在現有技術中,在車輛出廠時都會完成對自動化程序的灌輸和安裝。若遇到車輛廠家對自動化程序的升級,則可以發布安裝程序由維修人員甚至是用戶自己通過設備接口對車輛進行升級。
[0004]但是在進行升級過程中,維修人員或用戶都存在一定的錯誤操作風險。例如:維修人員或用戶下載了錯誤的升級程序(如其它車輛廠家)的程序進行升級,或者是下載了被非法篡改過的升級程序進行升級。一旦升級完成,則會嚴重影響到車輛和用戶的駕駛安全。因此,需要提供一定技術手段來保證車輛中程序在進行相關操作時合法性。
【發明內容】
[0005]本發明要解決的技術問題是提供一種車輛程序加密驗證方法及加密、驗證裝置,提供一定技術手段來保證車輛中程序在進行相關操作時的合法性。
[0006]一種車輛程序加密方法,包括:
[0007]生成種子數據;
[0008]根據所述種子數據生成種子密鑰;
[0009]根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。
[0010]優選地,在所述生成種子數據之前,還包括:
[0011]生成目標文件;
[0012]將所述目標文件中預留的所述種子數據的存儲地址和所述種子密鑰的存儲地址存儲在所述MAP文件中。
[0013]優選地,還包括:
[0014]獲取目標文件中指定位置的內容作為標定數據;
[0015]根據所述標定數據生成標定密鑰;
[0016]根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。
[0017]一種車輛程序驗證方法,包括:
[0018]讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰;
[0019]根據所述種子數據計算第一結果密鑰;
[0020]判斷所述第一結果密鑰與所述種子密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
[0021]優選地,在所述讀取E⑶中目標文件代碼中存儲的種子數據和種子密鑰之前,還包括:
[0022]將目標文件導入到所述E⑶中作為所述E⑶中目標文件代碼。
[0023]優選地,在判斷所述第一結果密鑰與所述種子密鑰是否相同之后,還包括:
[0024]若所述第一結果密鑰與所述種子密鑰相同,讀取所述目標文件代碼中指定位置的內容作為標定數據;
[0025]根據所述標定數據計算第二結果密鑰;
[0026]判斷所述第二結果密鑰與存儲在所述ECU的目標文件代碼中的標定密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
[0027]—種車輛程序加密裝置,包括:目標文件生成單元、MAP文件寫入單元、種子數據生成單元、種子密鑰生成單元和第一寫入單元;
[0028]所述目標文件生成單元,用于生成目標文件;
[0029]所述MAP文件寫入單元,用于將所述目標文件中預留的所述種子數據的存儲地址和所述種子密鑰的存儲地址存儲在所述MAP文件中;
[0030]所述種子數據生成單元,用于生成種子數據;
[0031]所述種子密鑰生成單元,用于根據所述種子數據生成種子密鑰;
[0032]所述第一寫入單元,用于根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。
[0033]優選地,還包括:標定數據讀取單元、標定密鑰生成單元和第二寫入單元;
[0034]所述標定數據生成單元,用于獲取目標文件的內容作為標定數據;
[0035]所述標定密鑰生成單元,用于根據所述標定數據生成標定密鑰;
[0036]所述第二寫入單元,用于根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。
[0037]—種車輛程序驗證裝置,包括:目標文件導入單元、種子信息獲取單元、第一密鑰計算單元和第一密鑰判斷單元;
[0038]所述目標文件導入單元,用于將目標文件導入到所述E⑶中作為所述E⑶中目標文件代碼;
[0039]所述種子信息獲取單元,用于讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰;
[0040]所述第一密鑰計算單元,用于根據所述種子數據計算第一結果密鑰;
[0041]所述第一密鑰判斷單元,用于判斷所述第一結果密鑰與所述種子密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
[0042]優選地,還包括:標定信息獲取單元、第二密鑰計算單元和第二密鑰判斷單元;
[0043]所述標定信息獲取單元,用于若所述第一結果密鑰與所述種子密鑰相同,讀取所述目標文件代碼中指定位置的內容作為標定數據,讀取所述目標文件代碼中的標定密鑰;
[0044]所述第二密鑰計算單元,用于根據所述標定數據計算第二結果密鑰;
[0045]所述第二密鑰判斷單元,用于判斷所述第二結果密鑰與存儲在所述ECU的目標文件代碼中的標定密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
[0046]與現有技術相比,本發明具有以下優點:
[0047]在發明中,首先生成種子數據,之后根據所述種子數據生成種子密鑰,最后根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。通過使用以上方法,可以實現在目標文件中存儲相應的種子數據信息,以實現在目標文件讀取時能夠進行有效驗證,以保證對車輛進行升級時所使用程序文件的合法性。
【專利附圖】
【附圖說明】
[0048]圖1是本發明提供的一種車輛程序加密方法第一實施例的流程圖;
[0049]圖2是本發明提供的一種車輛程序加密方法第二實施例的流程圖;
[0050]圖3是本發明提供的一種車輛程序驗證方法第一實施例的流程圖;
[0051]圖4是本發明提供的一種車輛程序驗證方法第二實施例的流程圖;
[0052]圖5是本發明提供的一種車輛程序加密裝置第一實施例的原理框圖;
[0053]圖6是本發明提供的一種車輛程序加密裝置第二實施例的原理框圖;
[0054]圖7是本發明提供的一種車輛程序驗證裝置第一實施例的原理框圖;
[0055]圖8是本發明提供的一種車輛程序驗證裝置第二實施例的原理框圖。
【具體實施方式】
[0056]為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖對本發明的【具體實施方式】做詳細的說明。
[0057]參見圖1,該圖為本發明提供的一種車輛程序加密方法第一實施例的流程圖。
[0058]在本實施例中,包括:
[0059]SlOl:生成種子數據。
[0060]S102:根據所述種子數據生成種子密鑰。
[0061]S103:根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。
[0062]在本實施例進行實施時,首先生成種子數據。該種子數據基于安全驗證的考慮,優選使用隨機產生的一串數字。當然,如果存在個性化的需要也可以使用固定的數字,如使用該種子數據來表示車輛廠家信息、車輛型號等。
[0063]之后,以種子數據為基礎,使用預置的算法生成種子數據對應的種子密鑰。其中,預置的算法可以為CRC16/32算法、CRCCCITT算法等。
[0064]優選地,可以在目標文件生成時在目標文件中預留一定的存儲區間,該存儲區間可以為連續的,也可以為不連續的。之后將種子數據和種子密鑰存儲在目標文件中的預留的存儲區間中。優選地,可以在目標文件的讀寫最頻繁的數據位置中預留出一定區間,之后將生成的種子數據和種子密鑰存儲在該區間中。
[0065]由于文件大小的不一致,以及本發明中的技術方案可能會應用在不同的目標文件上,而不同類型的目標文件的文件格式又是不一樣的,如果強制將種子數據固定寫在某一地址上,可能會造成該目標文件的結構受損。因此,可以為目標文件設置MAP文件,將種子數據和種子密鑰在目標文件中的存儲地址存儲到MAP文件中。這樣,在需要讀取目標文件中的種子數據和種子密鑰時,通過MAP文件即可查找到。
[0066]出于對目標文件中內容的安全考慮,在本實施例中,還可以包括在讀取所述MAP文件中的存儲的地址后,將所述MAP文件中存儲的地址刪除,從而有效控制目標文件的使用次數。一旦種子信息和標定信息被讀取,則將MAP文件中存儲的有關種子信息和標定信息的地址全部刪除,使得其它第三方不能夠對目標文件進行二次利用,降低了被分析、破解的風險。
[0067]在本實施例中,首先生成種子數據,之后根據所述種子數據生成種子密鑰,最后根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。通過使用以上方法,可以實現在目標文件中存儲相應的種子數據信息,以實現在目標文件讀取時能夠進行有效驗證,以保證對車輛進行升級時所使用程序文件的合法性。
[0068]參見圖2,該圖為本發明提供的一種車輛程序加密方法第二實施例的流程圖。
[0069]本實施例中的步驟S201-S203與本發明提供的一種車輛程序加密方法第一實施例中的步驟S101-S103相同,在此不再重復進行介紹。
[0070]在本實施例中,還包括:
[0071]S204:獲取目標文件中指定位置的內容作為標定數據。
[0072]S205:根據所述標定數據生成標定密鑰。
[0073]S206:根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。
[0074]由于程序中種子數據和計算生成的種子密鑰都是按照一定的規律生成的,其中就存在一定的泄密風險。例如:種子數據為A,通過算法計算生成的種子密鑰為B。在一般情況下,該種子數據A和種子密鑰B是最容易被泄露的。而一旦A和B泄露,則存在惡意的第三方可以將A和B寫入到任何文件中,使得寫入A和B的任何文件都可以直接應用到車輛上,產生巨大的隱患。
[0075]因此,為了進一步加強對目標文件驗證的安全級別。還可以根據目標文件本身的內容作為標定信息進行驗證,具體為:
[0076]獲取目標文件中指定位置的數據內容作為標定數據。由于每一個目標文件中在相同位置的內容都會不相同,因此使用這種方法就可以有效規避使用單一種子數據的缺陷。
[0077]之后,使用預置的算法計算生成標定密鑰。其中,預置的算法可以為與計算生成種子密鑰相同的算法,也可以為其它的備用算法。與種子數據和種子密鑰相同,在目標文件中預留出相應的區間存儲標定密鑰,并在目標文件生成時將存儲標定密鑰的地址記錄在MAP文件中。最后,通過查找MAP文件中記錄的標定密鑰的存儲地址,將標定密鑰存儲在目標文件中。
[0078]在本實施例中,在計算生成種子數據和種子密鑰后,再獲取目標文件中指定位置的內容作為標定數據,根據所述標定數據生成標定密鑰,最后根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。通過使用以上方法,可以實現對目標文件的雙重驗證,從而可以在種子數據和種子密鑰被泄密的情況下,結合目標文件本身的特點進行驗證,從而提高了對程序文件驗證的安全等級,更好的保證程序文件的合法性。
[0079]參見圖3,該圖為本發明提供的一種車輛程序驗證方法第一實施例的流程圖。
[0080]在本實施例中,包括:
[0081]S301:讀取E⑶中目標文件代碼中存儲的種子數據和種子密鑰。
[0082]S302:根據所述種子數據計算第一結果密鑰。
[0083]S303:判斷所述第一結果密鑰與所述種子密鑰是否相同。
[0084]S304:若不相同,認為所述E⑶中的目標文件代碼為非合法代碼。
[0085]在本實施例進行實施時,需要事先將目標文件導入到ECU中作為目標文件代碼。當然,也可以通過其它方式將目標文件寫入在ECU中。
[0086]在使用按照本發明提供的車輛程序加密方法生成的目標文件已經導入到E⑶后,在ECU中目標文件會以代碼段的形式存在。
[0087]在進行驗證時,首先讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰。之后將種子數據使用本地預置的算法計算出第一結果密鑰。其中,所使用的算法為與本發明提供的車輛程序加密方法相同的算法。
[0088]之后,將第一結果密鑰與讀取出的種子密鑰進行比較,判斷是否相同。如果相同,則認為ECU中的目標文件代碼為合法代碼,可以進行后續的操作。如果不相同,則認為ECU中的目標文件代碼為非合法代碼,可能存在被篡改或誤使用其它文件的可能性。
[0089]另外,如果事先約定使用種子數據攜帶一定的信息,還可以進一步讀取出該種子數據中的信息,以進一步區別或判斷出可能存在的問題。例如:種子數據中的信息可以標記出車輛廠商的代碼、車輛的型號等,則可以進一步向操作人員提示輸入了錯誤品牌的文件或錯誤型號的文件。
[0090]在本實施例中,首先讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰,之后根據種子數據計算第一結果密鑰,并判斷第一結果密鑰與種子密鑰是否相同。如果判斷不相同,認為ECU中的目標文件代碼為非合法代碼。通過使用以上方法,可以實現對待操作的目標文件的進行有效的身份驗證,還可以有效的識別出目標文件的來源,以保證進行操作文件的安全性和合法性。
[0091]參見圖4,該圖為本發明提供的一種車輛程序驗證方法第二實施例的流程圖。
[0092]本實施例中的步驟S401-S403與本發明提供的一種車輛程序加密方法第一實施例中的步驟S301-S303相同,在此不再重復進行介紹。
[0093]本實施中,在判斷所述第一結果密鑰與所述種子密鑰是否相同之后,還包括:
[0094]S404:若所述第一結果密鑰與所述種子密鑰相同,讀取所述目標文件代碼中指定位置的內容作為標定數據。
[0095]S405:根據所述標定數據計算第二結果密鑰。
[0096]S406:判斷所述第二結果密鑰與存儲在所述ECU的目標文件代碼中的標定密鑰是否相同。
[0097]S407:若不相同,認為所述E⑶中的目標文件代碼為非合法代碼。
[0098]如在本發明提供的一種車輛程序加密方法第二實施例中所介紹的,種子數據和種子密鑰存在泄露的風險。
[0099]因此,事先在目標文件代碼中指定位置,將該位置的內容作為標定數據。其中,這里所說的目標文件代碼中指定位置的內容,應與加密時的指定位置的內容相一致。
[0100]之后,使用預置的算法對標定數據進行計算,生成第二結果密鑰。
[0101]事先在目標文件中還可以設置標定信息區間來存儲標定密鑰。并在將目標文件導入到ECU時,一同將標定密鑰導入到ECU的目標文件代碼中。在確認種子數據和種子密鑰合格后,從ECU中的目標文件代碼中讀取出相應的標定密鑰。
[0102]將第二結果密鑰與標定密鑰進行比較,判斷是否相同。如果相同,則認為ECU中的目標文件代碼為法代碼。如果不相同,則認為ECU中的目標文件代碼為非合法代碼,目標文件可能已經被篡改,不能進行后續的操作。
[0103]在本實施例中,在判斷第一結果密鑰與種子密鑰是否相同之后,還包括:若第一結果密鑰與種子密鑰相同,讀取目標文件代碼中指定位置的內容作為標定數據,之后根據標定數據計算第二結果密鑰,最后判斷第二結果密鑰與存儲在ECU中目標文件代碼中的標定密鑰是否相同;若不相同,認為ECU中的目標文件代碼為非合法代碼。通過使用以上方法,可以實現對目標文件的雙重驗證,從而可以規避在種子數據和種子密鑰被泄密的情況下,結合目標文件本身的特點進行驗證,從而提高了對程序文件驗證的安全等級,更好的保證程序文件的合法性。
[0104]基于上述一種車輛程序加密驗證方法,本發明還提供了一種車輛程序加密、驗證的裝置,下面結合具體實施例來詳細說明其組成部分。
[0105]參見圖5,該圖為本發明提供的一種車輛程序加密裝置第一實施例的原理框圖。
[0106]在本實施例中,包括:目標文件生成單元101、MAP文件寫入單元102、種子數據生成單元103、種子密鑰生成單元104和第一寫入單元105。
[0107]所述目標文件生成單元101,用于生成目標文件。
[0108]所述MAP文件寫入單元102,用于將所述目標文件中預留的所述種子數據的存儲地址和所述種子密鑰的存儲地址存儲在所述MAP文件中。
[0109]所述種子數據生成單元103,用于生成種子數據。
[0110]所述種子密鑰生成單元104,用于根據所述種子數據生成種子密鑰。
[0111]所述第一寫入單元105,用于根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。
[0112]在本實施例進行實施時,首先由種子數據生成單元103生成種子數據。該種子數據基于安全驗證的考慮,優選使用隨機產生的一串數字。當然,如果存在個性化的需要也可以使用固定的數字,如使用該種子數據來表示車輛廠家信息、車輛型號等。
[0113]之后,由子密鑰生成單元104以種子數據為基礎,使用預置的算法生成種子數據對應的種子密鑰。其中,預置的算法可以為CRC16/32算法、CRCCCITT算法等。
[0114]在目標文件生成時,由目標文件生成單元101在目標文件中預留一定的存儲區間,該存儲區間可以為連續的,也可以為不連續的。之后將種子數據和種子密鑰存儲在目標文件中的預留的存儲區間中。優選地,可以在目標文件的讀寫最頻繁的數據位置中預留出一定區間。
[0115]最后,由第一寫入單元105將生成的種子數據和種子密鑰存儲在該區間中。
[0116]由于文件大小的不一致,以及本發明中的技術方案可能會應用在不同的目標文件上,而不同類型的目標文件的文件格式又是不一樣的,如果約定將種子數據固定寫在某一地址上,可能會造成該目標文件的結構受損。因此,可以為目標文件設置MAP文件,由MAP文件寫入單元102將種子數據和種子密鑰在目標文件中的存儲地址存儲到MAP文件中。這樣,在需要讀取目標文件中的種子數據和種子密鑰時,通過MAP文件即可查找到。
[0117]出于對目標文件中內容的安全考慮,在本實施例中,還可以包括MAP地址刪除單元,用于在讀取所述MAP文件中的存儲的地址后,將所述MAP文件中存儲的地址刪除,從而有效控制目標文件的使用次數。一旦種子信息和標定信息被讀取,則將MAP文件中存儲的有關種子信息和標定信息的地址全部刪除,使得其它第三方不能夠對目標文件進行二次利用,降低了被分析、破解的風險。
[0118]在本實施例中,包括:目標文件生成單元,用于生成目標文件。MAP文件寫入單元,用于將目標文件中預留的種子數據的存儲地址和種子密鑰的存儲地址存儲在MAP文件中。種子數據生成單元,用于生成種子數據。種子密鑰生成單元,用于根據種子數據生成種子密鑰。第一寫入單元,用于根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將種子數據和種子密鑰存儲在目標文件中。通過使用以上裝置,可以實現在目標文件中存儲相應的種子數據信息,以實現在目標文件讀取時能夠進行有效驗證,以保證對車輛進行升級時所使用程序文件的合法性。
[0119]參見圖6,該圖為本發明提供的一種車輛程序加密裝置第二實施例的原理框圖。
[0120]在本實施例中,還包括:標定數據讀取單元106、標定密鑰生成單元107和第二寫入單元108。
[0121]所述標定數據生成單元106,用于獲取目標文件的內容作為標定數據。
[0122]所述標定密鑰生成單元107,用于根據所述標定數據生成標定密鑰。
[0123]所述第二寫入單元108,用于根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。
[0124]由于程序中種子數據和計算生成的種子密鑰都是按照一定的規律生成的,其中就存在一定的泄密風險。例如:種子數據為A,通過算法計算生成的種子密鑰為B。在一般情況下,該種子數據A和種子密鑰B是最容易被泄露的。而一旦A和B泄露,則存在惡意的第三方可以將A和B寫入到任何文件中,使得寫入A和B的任何文件都可以直接應用到車輛上,產生巨大的隱患。
[0125]因此,為了進一步加強對目標文件驗證的安全級別。還可以根據目標文件本身的內容作為標定信息進行驗證,具體為:
[0126]標定數據讀取單元106獲取目標文件中指定位置的數據內容作為標定數據。由于每一個目標文件中在相同位置的內容都會不相同,因此使用這種方法就可以有效規避使用單一種子數據的缺陷。
[0127]之后,標定密鑰生成單元107使用預置的算法計算生成標定密鑰。其中,預置的算法可以為與計算生成種子密鑰相同的算法,也可以為其它的備用算法。
[0128]與種子數據和種子密鑰相同,在目標文件中預留出相應的區間存儲標定密鑰,并在目標文件生成時將存儲標定密鑰的地址記錄在MAP文件中。最后,第二寫入單元108通過查找MAP文件中記錄的標定密鑰的存儲地址,將標定密鑰存儲在目標文件中。
[0129]在本實施例中,還包括:標定數據生成單元,用于獲取目標文件的內容作為標定數據。述標定密鑰生成單元,用于根據標定數據生成標定密鑰。第二寫入單元,用于根據MAP文件中記錄的標定密鑰存儲地址,將標定密鑰存儲在目標文件中,MAP文件中記錄的標定密鑰存儲地址,是在目標文件中預留的種子密鑰的存儲地址。通過使用以上裝置,可以實現對目標文件的雙重驗證,從而可以在種子數據和種子密鑰被泄密的情況下,結合目標文件本身的特點進行驗證,從而提高了對程序文件驗證的安全等級,更好的保證程序文件的合法性。
[0130]參見圖7,該圖為本發明提供的一種車輛程序驗證裝置第一實施例的原理框圖。
[0131]在本實施例中,包括:目標文件導入單元201、種子信息獲取單元202、第一密鑰計算單元203和第一密鑰判斷單元204。
[0132]所述目標文件導入單元201,用于將目標文件導入到所述E⑶中作為所述E⑶中目標文件代碼。
[0133]所述種子信息獲取單元202,用于讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰。
[0134]所述第一密鑰計算單元203,用于根據所述種子數據計算第一結果密鑰。
[0135]所述第一密鑰判斷單元204,用于判斷所述第一結果密鑰與所述種子密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
[0136]在本實施例實施時,需要目標文件導入單元201事先將目標文件導入到所述ECU中作為目標文件代碼。當然,也可以通過其它方式將目標文件寫入在ECU中。
[0137]在使用按照本發明提供的車輛程序加密方法生成的目標文件已經導入到ECU后,在ECU中目標文件會以代碼段的形式存在。
[0138]在進行驗證時,種子信息獲取單元202首先讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰。之后第一密鑰計算單元203將種子數據使用本地預置的算法計算出第一結果密鑰。其中,所使用的算法為與本發明提供的車輛程序加密方法相同的算法。
[0139]之后,第一密鑰判斷單元204將第一結果密鑰與讀取出的種子密鑰進行比較,判斷是否相同。如果相同,則認為ECU中的目標文件代碼為合法代碼,可以進行后續的操作。如果不相同,則認為ECU中的目標文件代碼為非合法代碼,可能存在被篡改或誤使用其它文件的可能性。
[0140]另外,如果事先約定使用種子數據攜帶一定的信息,還可以進一步讀取出該種子數據中的信息,以進一步區別或判斷出可能存在的問題。例如:種子數據中的信息可以標記出車輛廠商的代碼、車輛的型號等,則可以進一步向操作人員提示輸入了錯誤品牌的文件或錯誤型號的文件。
[0141]在本實施例中,包括:目標文件導入單元,用于將目標文件導入到E⑶中作為E⑶中目標文件代碼。種子信息獲取單元,用于讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰。第一密鑰計算單元,用于根據種子數據計算第一結果密鑰。第一密鑰判斷單元,用于判斷第一結果密鑰與種子密鑰是否相同。若不相同,認為ECU中的目標文件代碼為非合法代碼。通過使用以上裝置,可以實現對待操作的目標文件的進行有效的身份驗證,還可以有效的識別出目標文件的來源,以保證進行操作文件的安全性和合法性。
[0142]參見圖8,該圖為本發明提供的一種車輛程序驗證裝置第二實施例的原理框圖。
[0143]在本實施例中,還包括:標定信息獲取單元205、第二密鑰計算單元206和第二密鑰判斷單元207。
[0144]所述標定信息獲取單元205,用于若所述第一結果密鑰與所述種子密鑰相同,讀取所述目標文件代碼中指定位置的內容作為標定數據,讀取所述目標文件代碼中的標定密鑰。
[0145]所述第二密鑰計算單元206,用于根據所述標定數據計算第二結果密鑰。
[0146]所述第二密鑰判斷單元207,用于判斷所述第二結果密鑰與存儲在所述ECU的目標文件代碼中的標定密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
[0147]如在本發明提供的一種車輛程序加密方法第二實施例中所介紹的,種子數據和種子密鑰存在泄露的風險。
[0148]因此,事先在目標文件代碼中指定位置,由標定信息獲取單元205將該位置的內容作為標定數據。其中,這里所說的目標文件代碼中指定位置的內容,應與加密時的指定位置的內容相一致。
[0149]之后,第二密鑰計算單元206使用預置的算法對標定數據進行計算,生成第二結果密鑰。
[0150]事先在目標文件中還可以設置標定信息區間來存儲標定密鑰。并在將目標文件導入到ECU時,一同將標定密鑰導入到ECU的目標文件代碼中。在確認種子數據和種子密鑰合格后,從ECU中的目標文件代碼中讀取出相應的標定密鑰。
[0151]第二密鑰判斷單元207將第二結果密鑰與從ECU中讀取出的標定密鑰進行比較,判斷是否相同。如果相同,則認為ECU中的目標文件代碼為法代碼。如果不相同,則認為ECU中的目標文件代碼為非合法代碼,目標文件可能已經被篡改,不能進行后續的操作。
[0152]在本實施例中,還包括:標定信息獲取單元,用于若第一結果密鑰與種子密鑰相同,讀取目標文件代碼中指定位置的內容作為標定數據,讀取所述目標文件代碼中的標定密鑰。第二密鑰計算單元,用于根據標定數據計算第二結果密鑰。第二密鑰判斷單元,用于判斷第二結果密鑰與存儲在ECU中目標文件代碼中的標定密鑰是否相同,若不相同,認為ECU中的目標文件代碼為非合法代碼。通過使用以上裝置,可以實現對目標文件的雙重驗證,從而可以規避在種子數據和種子密鑰被泄密的情況下,結合目標文件本身的特點進行驗證,從而提高了對程序文件驗證的安全等級,更好的保證程序文件的合法性。
[0153]以上所述,僅是本發明的較佳實施例而已,并非對本發明作任何形式上的限制。雖然本發明已以較佳實施例揭露如上,然而并非用以限定本發明。任何熟悉本領域的技術人員,在不脫離本發明技術方案范圍情況下,都可利用上述揭示的方法和技術內容對本發明技術方案做出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發明技術方案保護的范圍內。
【權利要求】
1.一種車輛程序加密方法,其特征在于,包括: 生成種子數據; 根據所述種子數據生成種子密鑰; 根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子S鑰存儲在目標文件中。
2.根據權利要求1所述的方法,其特征在于,在所述生成種子數據之前,還包括: 生成目標文件; 將所述目標文件中預留的所述種子數據的存儲地址和所述種子密鑰的存儲地址存儲在所述MAP文件中。
3.根據權利要求1所述的方法,其特征在于,還包括: 獲取目標文件中指定位置的內容作為標定數據; 根據所述標定數據生成標定密鑰; 根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。
4.一種車輛程序驗證方法,其特征在于,包括: 讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰; 根據所述種子數據計算第一結果密鑰; 判斷所述第一結果密鑰與所述種子密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
5.根據權利要求4所述的方法,其特征在于,在所述讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰之前,還包括: 將目標文件導入到所述ECU中作為所述ECU中目標文件代碼。
6.根據權利要求4所述的方法,其特征在于,在判斷所述第一結果密鑰與所述種子密鑰是否相同之后,還包括: 若所述第一結果密鑰與所述種子密鑰相同,讀取所述目標文件代碼中指定位置的內容作為標定數據; 根據所述標定數據計算第二結果密鑰; 判斷所述第二結果密鑰與存儲在所述ECU的目標文件代碼中的標定密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
7.—種車輛程序加密裝置,其特征在于,包括:目標文件生成單元、MAP文件寫入單元、種子數據生成單元、種子密鑰生成單元和第一寫入單元; 所述目標文件生成單元,用于生成目標文件; 所述MAP文件寫入單元,用于將所述目標文件中預留的所述種子數據的存儲地址和所述種子密鑰的存儲地址存儲在所述MAP文件中; 所述種子數據生成單元,用于生成種子數據; 所述種子密鑰生成單元,用于根據所述種子數據生成種子密鑰; 所述第一寫入單元,用于根據MAP文件中記錄的種子數據存儲地址和種子密鑰存儲地址,將所述種子數據和種子密鑰存儲在目標文件中。
8.根據權利要求7所述的裝置,其特征在于,還包括:標定數據讀取單元、標定密鑰生成單元和第二寫入單元; 所述標定數據生成單元,用于獲取目標文件的內容作為標定數據; 所述標定密鑰生成單元,用于根據所述標定數據生成標定密鑰; 所述第二寫入單元,用于根據MAP文件中記錄的標定密鑰存儲地址,將所述標定密鑰存儲在目標文件中;所述MAP文件中記錄的標定密鑰存儲地址,是指在所述目標文件中預留的標定密鑰的存儲地址。
9.一種車輛程序驗證裝置,其特征在于,包括:目標文件導入單元、種子信息獲取單元、第一密鑰計算單元和第一密鑰判斷單元; 所述目標文件導入單元,用于將目標文件導入到所述ECU中作為所述ECU中目標文件代碼; 所述種子信息獲取單元,用于讀取ECU中目標文件代碼中存儲的種子數據和種子密鑰; 所述第一密鑰計算單元,用于根據所述種子數據計算第一結果密鑰; 所述第一密鑰判斷單元,用于判斷所述第一結果密鑰與所述種子密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
10.根據權利要求9所述的裝置,其特征在于,還包括:標定信息獲取單元、第二密鑰計算單元和第二密鑰判斷單元; 所述標定信息獲取單元,用于若所述第一結果密鑰與所述種子密鑰相同,讀取所述目標文件代碼中指定位置的內容作為標定數據,讀取所述目標文件代碼中的標定密鑰; 所述第二密鑰計算單元,用于根據所述標定數據計算第二結果密鑰; 所述第二密鑰判斷單元,用于判斷所述第二結果密鑰與存儲在所述ECU的目標文件代碼中的標定密鑰是否相同;若不相同,認為所述ECU中的目標文件代碼為非合法代碼。
【文檔編號】G06F21/44GK104268458SQ201410491392
【公開日】2015年1月7日 申請日期:2014年9月23日 優先權日:2014年9月23日
【發明者】秦濤, 王傳榮, 原利超, 張坤明, 艾聰 申請人:濰柴動力股份有限公司