用于從用作物理不可克隆功能的存儲器中生成密碼密鑰的系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及用于生成密碼密鑰(cryptographic key)的電子系統(tǒng),該系統(tǒng)包括:被用作物理不可克隆功能的存儲器,該存儲器是可寫的、易失的并且被配置成在該存儲器每次上電時,該儲存器安置取決于該存儲器的至少部分隨機物理特性的存儲器內(nèi)容,通過存儲器接口該存儲器是可訪問的;以及密鑰導出單元,其被配置成從該存儲器安置的存儲器內(nèi)容中導出該密碼密鑰。
【背景技術】
[0002]物理不可克隆功能(PUF)已被證明是多種形式的安全識別一一包括安全存儲器中密鑰、識別符等的存儲一一的有利替代。
[0003]物理不可克隆功能采用制造變化來獲得數(shù)字識別符。該數(shù)字識別符因此被綁定到物理媒質(zhì)。因為物理不可克隆功能取決于隨機工藝變化,因此易于形成PUF,但是即使不是完全不可能也非常難于形成產(chǎn)生特定預定識別符的PUF。制造變化導致存儲器元件的不同物理特性。例如,物理特性可包括:摻雜濃度、氧化層厚度、溝道長度、結構寬度(例如,金屬層的結構寬度)、寄生現(xiàn)象(例如,電阻、電容)等。當多次制造數(shù)字電路設計時,這些物理特性會稍微變化并且它們共同引起IC元件(例如,存儲器元件)的行為在一些情況下表現(xiàn)為不同。例如,啟動行為是由物理特性中的制造變化確定的。
[0004]對于PUF來說,合意選擇是易失存儲器,尤其是基于存儲器的觸發(fā)器,更具體地是靜態(tài)隨機存取存儲器(SRAM)。這樣的存儲器易于評估并且制造成本低。基于SRAM的PUF被稱作SRAM PUF。SRAM具有的屬性是在上電之后,它們被填充以隨機模式的開比特和關比特。盡管該模式在下一次SRAM上電時不可準確度地重復自身,但是兩個這樣的模式之間的差異通常遠小于該狀態(tài)中比特數(shù)的一半。相同SRAM的存儲器上電內(nèi)容之間的差異一般遠小于不同SRAM的存儲器上電內(nèi)容之間的差異。
[0005]由于當相同的詢問(challenge)被評估兩次時PUF可能未給出完全相同的結果,因此可使用所謂的輔助數(shù)據(jù)(Helper Data)算法(也被稱作模糊提取)來確保每次導出的密鑰相同。例如,在國際專利申請 WO 2006/129242,“Template Renewal in Helper DataSystems”等描述了一種使用輔助數(shù)據(jù)以根據(jù)噪聲測量構造可復寫的值的方式。
[0006]PUF(尤其是SRAM PUF)的一個應用是導出電子電路上的密碼密鑰。該電子電路通常包括集成電路(IC)和/或可編程邏輯。
[0007]PUF的一個優(yōu)點是它們本質(zhì)上擁有抗篡改特性。沒有PUF的話,通過在其中密鑰以常規(guī)方式存儲的非易失存儲器上安裝物理攻擊,攻擊者可恢復密碼密鑰。例如,攻擊者可打開存儲器并且探查它的內(nèi)容。使用PUF使得這種類型的攻擊困難得多,原因在于打開PUF通常會干擾它;探查例如SRAM的動態(tài)內(nèi)容比探查嵌入式非易失存儲器困難得多。因此,攻擊者從他的探查獲得的信息與用于創(chuàng)建密碼密鑰的交互無關。這樣使得攻擊者更難以使用物理攻擊找到密鑰。
[0008]遺憾的是,侵入的物理攻擊不是攻擊者可獲得有關PUF的內(nèi)部狀態(tài)的至少一些信息所依據(jù)的唯一攻擊矢量。所謂的側信道也可能泄漏信息。側信道是系統(tǒng)上與該系統(tǒng)內(nèi)部出現(xiàn)的物理現(xiàn)象有關的信息源,該信息源可以從該系統(tǒng)的外部觀察到并且該信息源除了揭示該系統(tǒng)的預期可觀察的輸入輸出行為之外還揭示至少在某種程度上與該系統(tǒng)的內(nèi)部操作和/或狀態(tài)相關聯(lián)的信息。
[0009]功率消耗、時間消耗和電磁福射是與密碼系統(tǒng)相關的側信道的實例。例如,系統(tǒng)使用密碼密鑰時監(jiān)測的密碼系統(tǒng)的功率消耗可在一定程度上與密鑰相關聯(lián)。由于將密碼密鑰保密是最重要的,因此與該密鑰相關聯(lián)的任何信息泄露是有問題的。
[0010]在公布為W0/2010/100015、標題為“Systemfor establ ishing a cryptographickey depending on a physical system” 的國際專利申請 PCT/EP2010/051631 中公開了減少在從PUF導出密鑰的誤差校正部分期間(即,在執(zhí)行輔助數(shù)據(jù)算法期間)出現(xiàn)的側信道泄漏的解決方案。誤差校正是避免側信道泄漏的特別重要的階段,原因是它多次處理敏感數(shù)據(jù),引入多個非線性相關。此外,如果誤差校正被實施在軟件中則泄漏被放大。
【發(fā)明內(nèi)容】
[0011]已經(jīng)證明,一旦解決了可能在誤差校正期間出現(xiàn)的側信道泄漏,則留下較小的側信道泄漏源。盡管這些較小的源需要更復雜的測量并且甚至在成功測量之后僅提供相對少的敏感信息,但仍然期望解決可能在機密密鑰的導出期間出現(xiàn)的其它側信道泄漏源。
[0012]當測量基于PUF的存儲器(諸如SRAM PUF)的功率消耗時,在該存儲器的讀出過程期間出現(xiàn)一個側信道。例如,當PUF控制塊讀出通過存儲器接口連接的存儲器的啟動值(上電存儲器內(nèi)容)時。存儲器接口的功率消耗取決于所轉移的數(shù)據(jù)字的漢明權重(hammingweight)。讀出SRAM存儲器內(nèi)容可能泄漏通過功率分析或電磁分析或甚至光電發(fā)射攻擊所讀的數(shù)據(jù)字節(jié)的漢明權重信息。
[0013]如果假設漢明權重與功率消耗之間存在完美的對應關系,則對于8比特寬的存儲器接口,數(shù)據(jù)泄漏理論上將高達約每字節(jié)2.54比特,S卩,約30%。盡管實際上,該對應關系遠不完美,并且因此信息泄漏小得多,但是仍需要減少基于PUF的存儲器的存儲器接口中的側信道泄漏。理論上隨著存儲器接口變得更寬每比特最大泄漏急劇下降。例如,如果存儲器接口增加到16比特,則每比特的理論泄漏幾乎減半。然而,較大的存儲器接口成本較高并且吸取更多功率,阻礙了它們在某些環(huán)境下的使用。
[0014]光電發(fā)射攻擊利用可在集成電路中狀態(tài)改變時發(fā)射的少量光子形成的光學側信道。
[0015]提供一種用于生成密碼密鑰的電子系統(tǒng),所述系統(tǒng)包括:被用作物理不可克隆功能的存儲器,該存儲器是可寫的、易失的并且被配置成在該存儲器每次上電時,該存儲器安置(settle into)取決于該存儲器的至少部分隨機物理特性的存儲器內(nèi)容,該存儲器是通過存儲器接口可訪問的;以及密鑰導出單元,其被配置成從該存儲器安置的存儲器內(nèi)容中導出所述密碼密鑰。
[0016]該用于生成密碼密鑰的電子系統(tǒng)還包括存儲器讀出單元,該存儲器讀出單元通過存儲器接口連接到該存儲器,并連接到該密鑰導出單元,該存儲器讀出單元包括地址加擾器,用于經(jīng)該存儲器接口按加擾的順序檢索該存儲器內(nèi)容。
[0017]因為該存儲器內(nèi)容是經(jīng)存儲器接口以加擾的順序轉移的,因此減少了側信道泄漏。盡管數(shù)據(jù)字本身的漢明權重仍被泄漏,但是失去了漢明權重與存儲器內(nèi)容的特定數(shù)據(jù)字之間的對應關系。如果與組成該存儲器內(nèi)容的個體數(shù)據(jù)字的大小相比該存儲器內(nèi)容的數(shù)據(jù)字是大的,則側信道泄漏減少的多。這是由于在這種情況下測量的漢明權重可屬于許多可能的數(shù)據(jù)字。這是尤其方便的,原因在于對于小數(shù)據(jù)字(8比特以及更少比特)來說可能的泄漏更大。據(jù)估計,1024比特的存儲器內(nèi)容或更多比特的存儲器內(nèi)容的側信道泄漏是可忽略的。
[0018]注意到,許多試圖減少從依賴漢明權重的功率差泄漏的信息量的對策是不適用的。例如,所謂的恒定權重(constant-weight)代碼已經(jīng)被提出作為對策。在恒定權重代碼中,所有的敏感數(shù)據(jù)被編碼在具有固定漢明權重(通常等于數(shù)據(jù)字比特大小的一半)的數(shù)據(jù)字中。盡管此對策減少了依賴漢明權重的功率差(在例如存儲在安全存儲器中的密鑰),但是它不適用于基于PUF的存儲器。確定存儲器內(nèi)容的物理特性是隨機的,即,不能夠規(guī)定用于存儲器內(nèi)容的特定編碼類型。
[0019]用于生成密碼密鑰的電子系統(tǒng)可被包含在移動計算設備(諸如智能卡)、移動通信設備(諸如移動電話、平板等)中。從存儲器內(nèi)容導出的密鑰可用在詢問響應協(xié)議中,在該詢問響應協(xié)議中,該系統(tǒng)證實擁有該密鑰。該密鑰可用于例如加密的存儲或通信中的機密性保護。該導出的密鑰可以是對稱密鑰,但是甚至可以是非對稱公共/私有的密鑰對,例如,通過將該密鑰用作找到非對稱密鑰的種子。
[0020]用于生成密碼密鑰的電子系統(tǒng)可被包含在集成電路中。例如,該集成電路可以是ASSP,S卩,實施適用于廣闊市場的特定功能的專用集成電路。ASSP例如用于實施音頻/視頻編解碼。通過用本文中所描述的用于生成密碼密鑰的電子系統(tǒng)生成密碼密鑰來改進使用密碼密鑰、支持密碼功能的ASSP的安全性。
[0021]例如,該集成電路可以是DSP。這將改進使用例如用PUF生成的密鑰或它的導出物進行加密的應用;例如,保護流內(nèi)容(streaming content)同時保持密鑰安全。
[0022]PUF生成的密鑰可被用作用于認證和/或用于建立安全通信信道的信任根。建立安全通信信道例如對于包括該用于生成密碼密鑰的電子系統(tǒng)的NFC芯片是重要的。
[0023]該存儲器被用作物理不可克隆功能。該存儲器可包括多個可被配置成兩個穩(wěn)定狀態(tài)的二進制存儲元件。在啟動時,每個二進制存儲元件安置處于這兩個移動狀態(tài)中的一個。它安置處于哪個狀態(tài)主要由存儲元件的精確的制造(例如,摻雜水平)決定,盡管元件安置處于的狀態(tài)也受偶然波動影響。例如,該存儲器可包括多個觸發(fā)器,尤其是D型觸發(fā)器,尤其該存儲器可以是SRAM存儲器。該存儲器的上電內(nèi)容受到噪聲和擾動的影響。一些FPGA包括可被用作作為物理不可克隆功能的存儲器使用的未初始化的SRAM塊。
[0024]該存儲器接口可包括地址信道和數(shù)據(jù)信道。通過加擾(例如,在將存儲器地址放在地址信道之前加擾所述存儲器地址加擾)可實現(xiàn)對存儲器的加擾的訪問。在這種情況下,通過選擇不同的密鑰可獲得不同的加擾順序。優(yōu)選地,加擾順序是攻擊者不知道的(即,機密),更優(yōu)選地,該加擾順序對于設備是唯一的,例如,在制造時選擇的,更優(yōu)選地,由該系統(tǒng)本身經(jīng)常改變該加擾順序,甚至更優(yōu)選地,該加擾順序是在存儲器讀出單元啟動時至少部分地隨機確定的。
[0025]功率分析、電磁分析和光電發(fā)射攻擊通常需要許多重復測量(跟蹤)以得到良好的信噪比。然后對重復的測量執(zhí)行統(tǒng)計分析。通過使讀出順序隨機化,或者甚至有規(guī)律地改變讀出順序,阻礙了此分析。
[0026]該密鑰導出單元被配置成從存儲器安置的存儲器內(nèi)容中導出密碼密鑰。該導出單元將噪聲從存儲器內(nèi)容中移除。例如,該密鑰導出單元包括:非易失輔助數(shù)據(jù)存儲器,該輔助數(shù)據(jù)存儲器存儲為用作物理不可克隆功能的存儲器構造的輔助數(shù)據(jù);組合器,用于建立可校正的比特串,該可校正的比特串位于誤差校正代碼的可校正的鄰域中,該組合器被配置成從輔助數(shù)據(jù)存儲器檢索輔助數(shù)據(jù)并且將檢索的輔助數(shù)據(jù)與存儲器安置的存儲器內(nèi)容進行組合;以及誤差校正器,其被配置成使用誤差校正算法從可校正的比特串建立誤差校正代碼的代碼字。
[0027]該輔助數(shù)據(jù)被構造用于存儲器的一個特定的物理實例,原因在于不同存儲器芯片的存儲器啟動內(nèi)容非常不同。如果按