密鑰的安全提供的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用于利用請求單元和提供單元安全地提供密鑰的方法以及數(shù)字電路區(qū)域。
【背景技術(shù)】
[0002]針對工業(yè)應(yīng)用,在控制設(shè)施中使用控制設(shè)備。這些控制設(shè)備作為嵌入式控制設(shè)備而已知。在此,復(fù)雜的總系統(tǒng)可以通過多個嵌入式單系統(tǒng)或所謂的嵌入式系統(tǒng)的聯(lián)網(wǎng)來構(gòu)建。經(jīng)常針對嵌入式系統(tǒng),所謂的芯片上系統(tǒng)或簡稱SoC被用于實現(xiàn)。在此,芯片上系統(tǒng)通常包含主處理器單元或中央處理單元、簡稱CPU和集成數(shù)字電路,邏輯電路、所謂的現(xiàn)場可編程門陣列FPGA可以被配置或編程到該集成數(shù)字電路中。在芯片上系統(tǒng)中,因此不同的功能被集成在半導(dǎo)體電路上。存儲器、諸如隨機(jī)存取存儲器、簡稱RAM或閃存或電可擦除可編程只讀存儲器、簡稱EEPROM在此經(jīng)常被實現(xiàn)為單獨的組件。同樣也可以集成這些存儲器。主處理器單元在此可以作為所謂的硬核被設(shè)置為芯片上系統(tǒng)的固定功能單元。同樣可以將主處理器單元實現(xiàn)為作為可配置的邏輯電路的部分的可配置的邏輯、即實現(xiàn)為所謂的軟核。
[0003]軟件、例如嵌入式Linux在此為了實施程序而通過處理器、即主處理器單元來實施。
[0004]針對很多應(yīng)用情況使用密碼密鑰材料,在所述應(yīng)用情況下程序通過芯片上系統(tǒng)或一般而言數(shù)字電路區(qū)域的處理器來實施。這特別是可以通過安全性或安全請求而被要求。
[0005]在此由現(xiàn)有技術(shù)已知,將密碼密鑰作為軟件的部分或作為軟件的配置數(shù)據(jù)的部分存儲。然而,密鑰材料在這些情況下幾乎不被保護(hù)。密鑰可以通過所謂的白盒密碼學(xué)方法被隱藏在軟件環(huán)境中。在此軟件本身是可容易地攻擊、讀取或操縱的。因此密鑰材料未被很好地保護(hù)以免受攻擊。
[0006]此外已知的是,為芯片提供所謂的輔助芯片,該輔助芯片執(zhí)行認(rèn)證。在此利用密碼計算檢查芯片的授權(quán),例如以便識別芯片的克隆或未授權(quán)的副本或防止未授權(quán)的訪問。該輔助芯片在此是位于外部的、即物理上分離的認(rèn)證芯片。在此,芯片和輔助芯片之間的數(shù)據(jù)接口對于攻擊者而言是可容易地接入的并且通信因此可以簡單地被竊聽或被操縱。
[0007]外部的認(rèn)證芯片在此可以執(zhí)行密鑰推導(dǎo),所述外部的認(rèn)證芯片根據(jù)詢問由所期望的輸入?yún)?shù)提供密鑰。
【發(fā)明內(nèi)容】
[0008]在該背景下,本發(fā)明的任務(wù)是安全地提供推導(dǎo)的密鑰。
[0009]該任務(wù)通過所說明的獨立權(quán)利要求來解決。有利的設(shè)計方案和改進(jìn)方案在從屬權(quán)利要求中被說明。
[0010]本發(fā)明涉及用于利用請求單元和提供單元安全地提供推導(dǎo)的密鑰的方法,該請求單元和該提供單元在共同的數(shù)字電路區(qū)域中被實現(xiàn),具有以下步驟: a)由該請求單元向該提供單元請求推導(dǎo)的密鑰;
b)將可由該請求單元預(yù)先給定的第一參數(shù)從該請求單元傳送到該提供單元;
c )由該提供單元確定秘密密鑰,其中該請求單元不能實現(xiàn)對該秘密密鑰的訪問;
d)由該提供單元借助密鑰推導(dǎo)模塊中的密鑰推導(dǎo)函數(shù)從該秘密密鑰、該第一參數(shù)和預(yù)先給定的第二參數(shù)生成推導(dǎo)的密鑰,其中由該請求單元以不可預(yù)先給定的方式將該第二參數(shù)用于密鑰推導(dǎo)函數(shù);
e)將推導(dǎo)的密鑰提供給該請求單元。
[0011]密鑰在本申請中被理解為密碼密鑰材料。在此特別是可以涉及對稱的密鑰。
[0012]數(shù)字電路區(qū)域在本申請中特別是被理解為可編程或可配置的邏輯門裝置或現(xiàn)場可編程門陣列、簡稱FPGA或?qū)S眉砂雽?dǎo)體組件或?qū)S眉呻娐?、簡稱ASIC。
[0013]密鑰推導(dǎo)函數(shù)當(dāng)前特別是被理解為單向函數(shù)、特別是哈希函數(shù)(SHA1、SHA2、SHA3)或帶密鑰哈希函數(shù)(HMAC)或校驗和計算函數(shù)(AES-CBC-MAC),所述函數(shù)從存在的密碼密鑰推導(dǎo)被推導(dǎo)的密鑰。在此例如可以涉及指定的密鑰的推導(dǎo)或密鑰復(fù)制。
[0014]所描述的輸入?yún)?shù)、如特別是第一參數(shù)、第二參數(shù)和秘密密鑰被理解為用于密鑰推導(dǎo)函數(shù)的輸入值。
[0015]借助所介紹的方法能夠在數(shù)字電路區(qū)域之內(nèi)實現(xiàn)密鑰推導(dǎo)。被提供推導(dǎo)的密鑰的請求單元在此自身預(yù)先給定第一參數(shù)。通過該第一參數(shù),特別是可以為了確定的目的而請求推導(dǎo)的密鑰。該目的特別是可以在第一參數(shù)中被編碼。此外,請求單元可以通過第一參數(shù)的預(yù)先給定例如在以后的時間點控制另外的推導(dǎo)的密鑰的提供。第一參數(shù)例如可以通過增加而被改變并且因此可以表明另外的或重新的詢問。
[0016]除了第一參數(shù)之外,第二參數(shù)此外進(jìn)入用于生成推導(dǎo)的密鑰的密鑰推導(dǎo)函數(shù)中。該第二參數(shù)由提供單元來確定并且被用于密鑰推導(dǎo)函數(shù)并且不能由請求單元來規(guī)定,即第二參數(shù)不能由請求單元預(yù)先給定。不可預(yù)先給定在此特別是意味著,第二參數(shù)不能由請求單元預(yù)先給定或改變或第二參數(shù)不能由請求單元的代替參數(shù)來代替。特別是第二參數(shù)完全由提供單元預(yù)先給定。特別是第二參數(shù)對于請求單元是未知的或請求單元不能詢問第二參數(shù)。在另一種變型方案中,第二參數(shù)可由請求單元詢問,然而不可由請求單元預(yù)先給定。此外有利地不能以所提供的推導(dǎo)的密鑰為出發(fā)點對所使用的參數(shù)并且因此特別是第二參數(shù)進(jìn)行推斷。
[0017]在另一種變型方案中,第二參數(shù)雖然不可由請求單元預(yù)先給定,但是可由請求單元更新。因此第二參數(shù)的值本身不可預(yù)先給定或完全不可預(yù)先給定,但是該值根據(jù)請求單元的預(yù)先給定而生成。請求單元在此可以推動第二參數(shù)的更新并且可選地提供更新參數(shù)。特別是在該方法的該實施方案中,第二參數(shù)在值上最終也由提供單元規(guī)定或確定。例如由提供單元根據(jù)更新參數(shù)生成第二參數(shù)。在此情況下可以將更新的第二參數(shù)提供給或也可以不提供給請求單元。在另一種變型方案中,從第二參數(shù)推導(dǎo)的參數(shù)參考值被提供給請求單
J L.ο
[0018]因此不需要外部的密鑰存儲器。此外,不需要外部的密鑰推導(dǎo)模塊的昂貴的集成。在密鑰推導(dǎo)在外部芯片上實現(xiàn)的情況下特別是必須保護(hù)輸入?yún)?shù)和所推導(dǎo)的密鑰材料的傳送,而如這里所描述的密鑰提供方法的安全性在較少的資源需求以及沒有外部資源的集成花費的情況下同時是更高的。
[0019]例如是主處理器的請求單元不能訪問包含在提供單元的功能塊中的秘密密鑰。請求單元不能為可自身任意選擇的推導(dǎo)參數(shù)請求從秘密密鑰所推導(dǎo)的密鑰,因為提供單元除了第一參數(shù)之外強(qiáng)制性地使用第二參數(shù)作為推導(dǎo)參數(shù)。通過第二參數(shù)在提供單元之內(nèi)的內(nèi)部綁定,減小提供單元通過被操縱的或不可靠的程序的濫用可能性,所述程序例如在數(shù)字電路區(qū)域的處理器上被實施并且借助請求單元詢問推導(dǎo)的密鑰。
[0020]這在秘密密鑰在多個具有各自的數(shù)字電路區(qū)域的設(shè)備上相同時是特別有利的。特別是,當(dāng)在制造中使用相同的FPGA編程數(shù)據(jù)、所謂的比特流以便簡化密鑰管理時,情況如此。通過強(qiáng)制性地預(yù)先給定第二參數(shù),在這些情況下也可以保證,不濫用地推導(dǎo)密鑰。特別是推導(dǎo)的密鑰對于確定的設(shè)備或確定的數(shù)字電路區(qū)域是特定的。該密鑰因此可以特別是不濫用地被用于其它的數(shù)字電路區(qū)域或設(shè)備。
[0021]所描述的方法提供安全性的所謂的硬件固定。硬件固定意味著,特別是密碼密鑰或密碼密鑰的推導(dǎo)具有到硬件的固定,所述密碼密鑰或密碼密鑰的推導(dǎo)在所述硬件上被使用。硬件固定可以是對數(shù)字電路區(qū)域的安全性或安全請求。因此與通過純軟件解決方案相比實現(xiàn)更高的抗攻擊穩(wěn)健性。提供單元作為數(shù)字電路區(qū)域之內(nèi)的安全性功能塊的使用一方面由于硬件固定而提供高的安全,另一方面由于在數(shù)字電路區(qū)域、例如芯片上系統(tǒng)之內(nèi)在沒有單獨的安全性控制器的集成解決方案的情況下的實現(xiàn)而提供高的安全。因此在少的集成花費的情況下,盡管如此相對于已