介紹用于將密鑰安全地提供到數(shù)字電路區(qū)域100上的方法的一種有利的實(shí)現(xiàn)。數(shù)字電路區(qū)域100是芯片上系統(tǒng)SOC或芯片組件上系統(tǒng)。特別是主處理器單元CPU作為推導(dǎo)的密碼密鑰11的請(qǐng)求單元102起作用。主處理器單元CPU為此向共同的數(shù)字電路區(qū)域100之內(nèi)的提供單元101發(fā)送詢問。提供單元101因此也被集成到芯片上系統(tǒng)SOC中。主處理器單元CPU在此遞交可預(yù)先給定的第一參數(shù)I。該第一參數(shù)I由主處理器單元CPU選擇并且特別是可以包含關(guān)于被請(qǐng)求的密鑰的使用目的的說明。此夕卜,同樣可以涉及通過主處理器單元CPU的密鑰詢問的連續(xù)的編號(hào)。
[0043]提供單元101接收詢問以及第一參數(shù)I。提供單元101因此是芯片上系統(tǒng)SOC之內(nèi)的功能塊,在該功能塊中根據(jù)詢問執(zhí)行密鑰推導(dǎo)。提供單元101特別是包含秘密密鑰4。在該提供單元101之內(nèi)設(shè)置有密鑰推導(dǎo)模塊110。密鑰推導(dǎo)函數(shù)10在該密鑰推導(dǎo)模塊110上實(shí)現(xiàn)。密鑰推導(dǎo)模塊I1作為芯片上系統(tǒng)之內(nèi)的可編程區(qū)域被設(shè)計(jì)為FPGA之內(nèi)的子區(qū)域,在該子區(qū)域上實(shí)現(xiàn)整個(gè)提供單元。
[0044]密鑰推導(dǎo)函數(shù)10是如SHA1、SHA2或SHA3之類的哈希函數(shù)。除了秘密密鑰4之夕卜,為密鑰推導(dǎo)函數(shù)10預(yù)先給定第一參數(shù)I以及第二參數(shù)2。該第二參數(shù)2既不為請(qǐng)求單元102已知,該請(qǐng)求單元102也不能獲得關(guān)于第二參數(shù)2的知識(shí)。因此第二參數(shù)可以不受請(qǐng)求單元102影響并且不依賴于請(qǐng)求單元102、如在此主處理器單元CPU而被使用。附加地,第二參數(shù)2不依賴于第一參數(shù)I和通過主處理器單元CPU的詢問。
[0045]提供單元101基于秘密密鑰4、第一參數(shù)I以及第二參數(shù)2產(chǎn)生推導(dǎo)的密鑰11并且將該推導(dǎo)的密鑰提供給請(qǐng)求單元102。推導(dǎo)的密鑰11例如為了加密數(shù)據(jù)、如測(cè)量數(shù)據(jù)或診斷數(shù)據(jù)而被輸出到請(qǐng)求單元并且被使用,所述數(shù)據(jù)通過芯片上系統(tǒng)的數(shù)據(jù)接口被提供。
[0046]此外,可以借助推導(dǎo)的密鑰11通過計(jì)算密碼校驗(yàn)和來檢驗(yàn)被存儲(chǔ)在芯片上系統(tǒng)SOC上的配置數(shù)據(jù)的完整性。為此通過提供單元101的密鑰推導(dǎo)可再現(xiàn)地被設(shè)計(jì)。例如在預(yù)先給定相同的第一參數(shù)I的情況下,第二參數(shù)2相同地被使用,以及由秘密密鑰4構(gòu)成的輸入?yún)?shù)相同地被使用。如果推導(dǎo)的密鑰11進(jìn)入到所存儲(chǔ)的配置數(shù)據(jù)的校驗(yàn)和計(jì)算中,假如配置數(shù)據(jù)是未受損的并且沒有被操縱的,那么在以后的時(shí)間點(diǎn)借助再次推導(dǎo)的并且因此再現(xiàn)的推導(dǎo)的密鑰11只能生成相同的校驗(yàn)和。
[0047]訪問功能塊的主處理器單元CPU可以例如通過N10S2、Picoblaze、Microblaze、Lattice Mico8等等作為軟CPU、即作為比特流的部分來實(shí)現(xiàn),或作為FPGA上的硬CPU、即作為固定地在硬件中、例如在Xilinx Zynq或Altera Cyclone V Soc上所設(shè)置的功能來實(shí)現(xiàn)。
[0048]在一種變型方案中,外部存儲(chǔ)的數(shù)據(jù)記錄、諸如被存放在配置EEPROM上的配置數(shù)據(jù)也可以安全地被解密或安全地被讀入。為此在提供單元上產(chǎn)生配置加密密鑰或配置密鑰,秘密密鑰以及由提供單元負(fù)責(zé)地預(yù)先給定的第二參數(shù)作為參數(shù)進(jìn)入到該配置加密密鑰或配置密鑰中。對(duì)于該變型方案,由請(qǐng)求單元預(yù)先給定第一參數(shù),該請(qǐng)求單元于是是到外部單元的接口。例如用于請(qǐng)求密鑰的詢問于是通過外部接口被轉(zhuǎn)發(fā)到提供單元。
[0049]第一參數(shù)因此可被數(shù)字電路之內(nèi)或者之外的如下單元選擇或預(yù)先給定,該單元請(qǐng)求密鑰。請(qǐng)求單元因此也可以是接口的功能,該功能為外部單元請(qǐng)求推導(dǎo)的密鑰。
[0050]通過不可被該詢問單元選擇的第二參數(shù),實(shí)現(xiàn)推導(dǎo)的密鑰向?qū)嶋H的硬件平臺(tái)的分配。即實(shí)現(xiàn)推導(dǎo)的密鑰到硬件平臺(tái)的綁定。詢問單元因此可以僅僅獲得用于如下硬件的密鑰,在該硬件上實(shí)際上實(shí)現(xiàn)密鑰推導(dǎo)的功能。不可能請(qǐng)求另外的硬件樣本的密鑰。即使黑客例如通過惡意軟件或通過根訪問因此已成功地危害(kompromittieren)設(shè)備,黑客也只能確定被黑的設(shè)備的密鑰。黑客不能讀出作為秘密密鑰的系統(tǒng)密鑰并且通過本發(fā)明黑客特別是也不能確定用于其它設(shè)備的密鑰。
[0051 ] 在另一種變型方案中,提供單元擁有多個(gè)接口,所述接口可以分別被請(qǐng)求單元利用。在此可能的是,第二參數(shù)依賴于接口被選擇。這有以下優(yōu)點(diǎn),即單獨(dú)的提供單元可以由多個(gè)請(qǐng)求單元利用,其中僅僅不同地推導(dǎo)的密鑰被提供給第一請(qǐng)求單元和第二請(qǐng)求單元。在此不同地推導(dǎo)意味著,第一接口推導(dǎo)參數(shù)在由第一請(qǐng)求單元通過第一接口詢問時(shí)被用作第二參數(shù),并且第二接口推導(dǎo)參數(shù)在由第二請(qǐng)求單元通過第二接口詢問時(shí)被用作第二參數(shù)。
[0052]借助圖2描述第二實(shí)施例,在該實(shí)施例中用于生成推導(dǎo)的密鑰11的提供單元101附加地考慮可更新的第三參數(shù)3。為此由數(shù)字電路區(qū)域之內(nèi)的請(qǐng)求單元為該提供單元101預(yù)先給定第一參數(shù)I以及提供更新參數(shù)13。在提供單元101的密鑰推導(dǎo)模塊110中,借助密鑰推導(dǎo)函數(shù)10生成推導(dǎo)的密鑰11。第一參數(shù)1、第二參數(shù)2、第三參數(shù)3以及秘密密鑰4作為用于密鑰推導(dǎo)函數(shù)10的輸入?yún)?shù)進(jìn)入。第二參數(shù)2如上面所描述的那樣是推導(dǎo)參數(shù),該推導(dǎo)參數(shù)由提供單元101預(yù)先給定并且不能受請(qǐng)求單元影響。該第二參數(shù)2直接進(jìn)入密鑰推導(dǎo)中。由提供單元101從所提供的更新參數(shù)13生成第三參數(shù)3。例如按照標(biāo)準(zhǔn)存在的原始參數(shù)通過以下方式被更新并且被修改,即,使該原始參數(shù)與更新參數(shù)13結(jié)合并且緊接著應(yīng)用密鑰哈希函數(shù)或帶密鑰哈希函數(shù)、簡(jiǎn)稱HMAC。因此第三參數(shù)3的值依賴于更新參數(shù)13和提供單元101的校驗(yàn)和構(gòu)成,該更新參數(shù)由請(qǐng)求單元供應(yīng)。
[0053]第三參數(shù)3的產(chǎn)生因此在提供單元101的控制下發(fā)生。例如第三參數(shù)3的產(chǎn)生通過以下方式只可能進(jìn)行唯一的一次,即更新參數(shù)13只能被提供一次。因此例如可以以有利的方式在啟動(dòng)過程期間產(chǎn)生密鑰,該密鑰為了執(zhí)行啟動(dòng)過程而是必需的。然而該密鑰在以后的時(shí)間點(diǎn)不再能夠被產(chǎn)生,因?yàn)楦聟?shù)13只能被輸出一次。因此可以建立如下時(shí)間階段,在該時(shí)間階段之內(nèi)可以推導(dǎo)特定的密鑰。于是密鑰被固定地綁定到更新參數(shù)13。特別是該特定的密鑰的產(chǎn)生可以在重新的啟動(dòng)過程中才又被執(zhí)行。
[0054]此外可以規(guī)定,可被主處理器單元選擇的更新值可以作為更新參數(shù)13在預(yù)先給定的時(shí)間段之內(nèi)被輸出。在此特別是可以說明典型的時(shí)間段,在該時(shí)間段之內(nèi)密鑰推導(dǎo)的實(shí)施是毫無疑問的并且可以在啟動(dòng)過程之后被認(rèn)為結(jié)束。
[0055]在操作系統(tǒng)內(nèi)核之內(nèi),推導(dǎo)的密鑰11此外可以被用于加載和解密或檢驗(yàn)來自配置存儲(chǔ)器或文件系統(tǒng)的密碼保護(hù)的配置數(shù)據(jù)。
[0056]此外,推導(dǎo)的密鑰11可以針對(duì)應(yīng)用程序被請(qǐng)求,例如以便打開密鑰存儲(chǔ)器,即以便借助所提供的密鑰解密被加密的密鑰數(shù)據(jù)。
[0057]利用推導(dǎo)的密鑰11此外可以解密加密地存在的啟動(dòng)映像。因此推導(dǎo)的密鑰11被提供用于啟動(dòng)加載器的功能。
[0058]例如為了實(shí)現(xiàn)用于實(shí)施根據(jù)第二實(shí)施例的方法的FPGA配置在具有提供單元101的系統(tǒng)的系統(tǒng)起動(dòng)時(shí)將配置作為比特流從系統(tǒng)的外部存儲(chǔ)器傳輸?shù)絻?nèi)部配置存儲(chǔ)器中。優(yōu)選地,比特流配置被密碼保護(hù),特別是比特流加密地存在或被擴(kuò)展了密碼校驗(yàn)和。FPGA組件解密所加載的加密的比特流并且根據(jù)所加載的比特流配置內(nèi)部硬件配置塊。該配置此外也可以以不受保護(hù)的比特流的形式或以配置數(shù)據(jù)的形式被加載到FPGA組件上。該配置此外在一種變型方案中同樣可以是ASIC的固定功能。
[0059]所描述的提供單元101針對(duì)配置作為比特流存在的情況優(yōu)選地被實(shí)現(xiàn)為作為比特流的部分的安全性功能塊。該安全性功能塊例如可以以VHDUVerilog或System C來創(chuàng)建。各個(gè)功能