用于集成電路的安全密鑰推導(dǎo)和密碼邏輯的制作方法
【專利說明】用于集成電路的安全密鑰推導(dǎo)和密碼邏輯
[0001] 背景
[0002] 領(lǐng)域
[0003] 各實施例涉及集成電路領(lǐng)域。具體而言,各實施例涉及集成電路中的安全領(lǐng)域。
[0004] 背景信息
[0005] 臺式機(jī)、膝上型計算機(jī)、上網(wǎng)本、平板電腦、智能電話、蜂窩電話、多媒體內(nèi)容播放 器、智能電視機(jī)、機(jī)頂盒、服務(wù)器,以及各種其他類型的消費電子產(chǎn)品或電子設(shè)備,通常用于 處理敏感的或安全信息。作為示例,敏感的或安全信息可包括財務(wù)信息、保密文檔、個人電 子郵件、數(shù)字權(quán)限保護(hù)的內(nèi)容等等。
[0006] 這樣的電子設(shè)備中所使用的處理器、芯片組組件、片上系統(tǒng)(SoC)、安全相關(guān)的集 成電路,及其他類型的集成電路通常設(shè)置有用于保護(hù)敏感的或安全信息的秘密,諸如秘密 密鑰。例如,可以使用秘密密鑰,通過加密/解密來保護(hù)信息。
[0007] 附圖簡述
[0008] 可以通過參考用來說明本發(fā)明的各實施例的下列描述和附圖來理解本發(fā)明。在附 圖中:
[0009] 圖1是具有安全密鑰推導(dǎo)和密碼邏輯的處理器的實施例的框圖。
[0010] 圖2是基于PUF的根密鑰生成系統(tǒng)的實施例的框圖。
[0011] 圖3是具有安全密鑰推導(dǎo)和密碼邏輯的處理器的實施例的框圖,該安全密鑰推導(dǎo) 和密碼邏輯可任選地包括測試和調(diào)試邏輯的實施例的。
[0012] 圖4是具有安全密鑰推導(dǎo)和密碼邏輯的處理器的實施例的框圖,該安全密鑰推導(dǎo) 和密碼邏輯可任選地包括物理和/或邏輯安全認(rèn)證的邊界的。
[0013] 圖5是具有安全密鑰推導(dǎo)和密碼邏輯的處理器的實施例的框圖,該安全密鑰推導(dǎo) 和密碼邏輯可任選地包括數(shù)字隨機(jī)數(shù)生成器邏輯和相關(guān)聯(lián)的緩沖區(qū)。
[0014] 圖6是具有包括能夠用于提供密碼學(xué)地實施的域分離的安全密鑰推導(dǎo)和密碼邏 輯的處理器的計算系統(tǒng)的框圖。
[0015] 圖7是能夠用于利用從PUF推導(dǎo)的密鑰來加密和解密熔絲值的熔絲邏輯的實施例 的框圖。
[0016]圖8A是示出根據(jù)本發(fā)明的各實施例的示例性有序流水線和示例性的寄存器重命 名的無序發(fā)布/執(zhí)行流水線的框圖。
[0017] 圖8B是示出根據(jù)本發(fā)明的各實施例的要包括在處理器中的有序架構(gòu)核的示例性 實施例和示例性的寄存器重命名的無序發(fā)布/執(zhí)行架構(gòu)核的框圖。
[0018]圖9A是根據(jù)本發(fā)明的各實施例的單個處理器核的框圖,以及其與管芯上的互連 網(wǎng)絡(luò)的連接以及其第2級(L2)高速緩存的本地子集。
[0019] 圖9B是根據(jù)本發(fā)明的實施例的圖9A中的處理器核的一部分的展開圖。
[0020] 圖10是根據(jù)本發(fā)明的各實施例的可以具有一個以上的核,可以具有集成的存儲 器控制器,并可以具有集成的圖形器件的處理器的框圖。
[0021 ] 圖11,所示是根據(jù)本發(fā)明一實施例的系統(tǒng)的框圖。
[0022] 圖12,所示是根據(jù)本發(fā)明的一個實施例的第一更具體的示例性系統(tǒng)的框圖。
[0023]圖13,所示是根據(jù)本發(fā)明的一個實施例的第二更具體的示例性系統(tǒng)的框圖。
[0024] 圖14,所示是根據(jù)本發(fā)明一實施例的SoC的框圖。
[0025]圖15是根據(jù)本發(fā)明的各實施例的對照使用軟件指令轉(zhuǎn)換器將源指令集中的二進(jìn) 制指令轉(zhuǎn)換成目標(biāo)指令集中的二進(jìn)制指令的框圖。
【具體實施方式】
[0026] 此處公開了用于處理器及其他集成電路的安全密鑰推導(dǎo)和密碼(cryptography) 邏輯。在以下描述中,闡述了大量具體細(xì)節(jié)(例如,特定密碼算法、邏輯分區(qū)/集成細(xì)節(jié)、邏 輯實現(xiàn)、微架構(gòu)細(xì)節(jié)、操作序列,系統(tǒng)組件的類型和相互關(guān)系,等等)。然而,應(yīng)該理解,本發(fā) 明的各實施例可以在沒有這些具體細(xì)節(jié)的情況下實施。在其他情況下,沒有詳細(xì)示出已知 的電路、結(jié)構(gòu),以及技術(shù),以便不至于使對本描述的理解變得模糊。
[0027] 圖1是具有安全密鑰推導(dǎo)和密碼邏輯102的處理器100的實施例的框圖。在某些 實施例中,處理器可以是通用處理器(例如,用于臺式機(jī)、膝上型計算設(shè)備、上網(wǎng)本、平板電 腦、智能電話、手機(jī)、服務(wù)器、智能電視機(jī)、機(jī)頂盒等計算設(shè)備的類型的通用處理器)。替換 地,處理器可以是專用處理器。合適的專用處理器的示例包括,但不僅限于,密碼處理器、安 全處理器、網(wǎng)絡(luò)處理器、通信處理器、協(xié)處理器、嵌入式處理器、數(shù)字信號處理器(DSP),僅舉 幾個例子而已。
[0028] 處理器包括安全密鑰推導(dǎo)和密碼邏輯102。安全密鑰推導(dǎo)和密碼邏輯包括根密鑰 生成邏輯104、密碼基元邏輯106、密鑰推導(dǎo)邏輯108、可選的推導(dǎo)的密鑰存儲器110,以及可 選的加密/解密邏輯112。這些組件全部都與本地互連114耦合,并通過本地互連114耦合 在一起。安全密鑰推導(dǎo)和密碼邏輯可以完全包含在管芯上和/或處理器上(例如,不需要 由從存儲器加載到處理器中的軟件執(zhí)行任何處理)。在某些實施例中,安全密鑰推導(dǎo)和密碼 邏輯可以主要、幾乎完全,或完全地實現(xiàn)在管芯上的和/或處理器上的硬件中。在某些實施 例中,安全密鑰推導(dǎo)和密碼邏輯可以被實現(xiàn)為基本上垂直知識產(chǎn)權(quán)(IP)塊,該炔基本上可 重復(fù)使用,且基本上可縮放。在某些實施例中,垂直IP塊可以被設(shè)計為從一種處理器設(shè)計 可移植到另一種,可縮放的,可重復(fù)使用的,基本上自含式的(self-contained)并可通過 意義明確的接口連接到其他組件,這可以幫助垂直IP塊從一個設(shè)計到另一種設(shè)計被重復(fù) 使用。在某些實施例中,安全密鑰推導(dǎo)和密碼邏輯的所有組件都可以基本上在物理和/或 邏輯邊界116內(nèi)是自含式的(self-contained),安全或秘密信息不會離開邊界。
[0029] 安全密鑰推導(dǎo)和密碼邏輯102包括根密鑰生成邏輯104。根密鑰生成邏輯能夠用 于(operable to)生成一個或多個秘密或安全根密鑰。在某些實施例中,根密鑰可以不離開 安全邏輯的邊界??梢允褂酶荑€來推導(dǎo)一個或多個其他秘密(secret)或安全推導(dǎo)的密 鑰(secure derived key)。秘密或安全推導(dǎo)的密鑰可以用于各種目的(例如,執(zhí)行加密/ 解密、提供對質(zhì)詢的響應(yīng),等等),如下文進(jìn)一步描述的。如圖所示,在某些實施例中,根密鑰 生成邏輯可以可任選地包括基于在物理上不可克隆的函數(shù)(PUF)的根密鑰生成邏輯105。 下面將更詳細(xì)地描述PUF。基于PUF的根密鑰生成邏輯可以能夠用于生成一個或多個秘密 或基于PUF的安全根密鑰。作為另一個選項,在某些實施例中,根密鑰生成邏輯可以可任選 地包括基于熔絲(fuse-based)的根密鑰生成邏輯(未示出)?;谌劢z的根密鑰生成邏輯 可以能夠用于生成一個或多個秘密或基于熔絲的安全根密鑰。在其他實施例中,可以使用 基于PUF的以及基于熔絲的根密鑰生成邏輯的組合??闪磉x地,代可以使用替熔絲和PUF 的替代項(substitute),或基本上靜態(tài)的且基本上熵性的(entropic)/隨機(jī)的比特的其他 源。
[0030] 安全密鑰推導(dǎo)和密碼邏輯102還包括密碼基元邏輯106。在某些實施例中,密碼 基元邏輯可包括能夠用于執(zhí)行塊加密的塊加密邏輯(例如,塊加密引擎或模塊)和/或能 夠用于計算散列操作的密碼散列函數(shù)邏輯(例如,安全散列算法邏輯)。塊加密(block cipher) -般表示確定性的(deterministic)密碼算法,這些確定性的密碼算法利用帶有 用于加密和解密數(shù)據(jù)的對稱密鑰的不變的變換,對叫做塊的固定長度的比特組進(jìn)行操作。 作為示例,塊加密邏輯可包括高級加密標(biāo)準(zhǔn)(AES)邏輯(例如,AES引擎或模塊)。AES是 美國國家標(biāo)準(zhǔn)與技術(shù)協(xié)會(NIST)批準(zhǔn)的密碼算法,在2001年11月26日發(fā)布的美國聯(lián)邦 信息處理標(biāo)準(zhǔn)(FIPS)PUB 197中進(jìn)一步描述了該密碼算法??闪磉x地,代替AES,可以可任 選地使用其他塊加密管芯上的邏輯實現(xiàn)的算法(例如,NIST或FIPS批準(zhǔn)的其它)。在某些 實施例中,密碼基元邏輯可以主要、幾乎完全,或完全地實現(xiàn)在安全密鑰推導(dǎo)和密碼邏輯的 邊界116內(nèi)的硬件和管芯上的和/或處理器上的硬件中。
[0031] 密碼基元邏輯可以用于各種目的。例如,在某些實施例中,密碼基元邏輯可以被用 來加密和解密數(shù)據(jù)。作為另一個示例,密碼基元邏輯可以被用來支持安全密鑰推導(dǎo)和密碼 邏輯內(nèi)的其他密碼邏輯或協(xié)議。例如,密碼基元邏輯可以被用來支持密鑰推導(dǎo)邏輯108和/ 或密鑰推導(dǎo),如下文進(jìn)一步描述的。作為另一個示例,密碼基元邏輯可以被用來支持結(jié)合基 于PUF的根密鑰生成而執(zhí)行的熵提取和/或PUF比特調(diào)節(jié),如下文進(jìn)一步描述的。作為再 一個示例,密碼基元邏輯可以被用來支持加密/解密邏輯112和/或如下文進(jìn)一步描述的 加密/解密。作為更進(jìn)一步的示例,密碼基元邏輯可以被用來支持?jǐn)?shù)字隨機(jī)數(shù)生成(DRNG), 如下文進(jìn)一步描述的。
[0032] 再次參考圖1,安全密鑰推導(dǎo)和密碼邏輯102還包括密鑰推導(dǎo)邏輯108 (例如,密鑰 推導(dǎo)引擎或模塊)。密鑰推導(dǎo)邏輯可以能夠用于從一個或多個根密鑰推導(dǎo)一個或多個推導(dǎo) 的密鑰。作為示例,可以通過利用一個或多個根密鑰,對管芯上的邏輯實現(xiàn)的密鑰推導(dǎo)算法 求值(evaluate),生成或推導(dǎo)一個或多個推導(dǎo)的密鑰。不同的密鑰推導(dǎo)算法適合于不同的 實施例。合適的密鑰推導(dǎo)算法的示例包括,但不僅限于,NIST SP800-108、SP800-56C、基于 散列函數(shù)的密鑰推導(dǎo)算法、基于塊加密的密鑰推導(dǎo)算法、其他NIST或FIPS批準(zhǔn)的密鑰推導(dǎo) 算法,等等。在某些實施例中,密鑰推導(dǎo)邏輯可以主要、幾乎完全,或完全地實現(xiàn)在安全密鑰 推導(dǎo)和密碼邏輯的邊界116內(nèi)的硬件和管芯上的和/或處理器上的硬件中。在某些實施例 中,根密鑰生成邏輯和密鑰推導(dǎo)邏輯可以實現(xiàn)在安全認(rèn)證的邊界內(nèi)的硬件中,作為垂直知 識產(chǎn)權(quán)塊。有利地,一個或多個推導(dǎo)的密鑰可以密碼學(xué)地從一個或多個根密鑰(例如,一個 或多個基于PUF的根密鑰)推導(dǎo)出。一方面,這可以被用來提供多個不同的推導(dǎo)的密鑰,無 需具有多個不同組的PUF或熔絲,否則,將往往導(dǎo)致增大邏輯的大小、制造成本,以及功率 消耗。
[0033] 在某些實施例中,密鑰推導(dǎo)邏輯108可以被用來為安全密鑰推導(dǎo)和密碼邏輯102 外部的處理器100的各種組件(例如,其他邏輯118)和/或處理器部署于其中的系統(tǒng)的各 種組件生成或推導(dǎo)密鑰。例如,在某些實施例中,其他組件(例如,其他邏輯118)可以提供 用于對管芯上的邏輯實現(xiàn)的密鑰推導(dǎo)算法求值的額外的比特或數(shù)據(jù)。作為一個示例,可以 通過利用由正在請求推導(dǎo)的密鑰的其他組件(例如,其他邏輯118)所提供的一個或多個根 密鑰和一組比特(例如,推導(dǎo)字符串、個性化字符串等等)來對密鑰推導(dǎo)算法求值,以生成 推導(dǎo)的密鑰。作為示例,其他邏輯118可以表示在處理器或其他集成電路中存在的各種不 同類型的密鑰利用率和/或安全邏輯。這樣的邏輯的示例包括,但不僅限于,加密邏輯、解 密邏輯、密碼邏輯或模塊、可信平臺模塊、安全引擎、安全控制器、密碼處理器、密碼協(xié)處理 器^等等。
[0034] 還可構(gòu)想密鑰推導(dǎo)邏輯108的其他用途。例如,在某些實施例中,推導(dǎo)的密鑰可以 被用作響應(yīng)于作為輸入接收到的質(zhì)詢,作為輸出提供的響應(yīng)。例如,可以通過另一個組件 (例如,其他邏輯118),向密鑰推導(dǎo)邏輯提供質(zhì)詢(例如,一組比特)。密鑰推導(dǎo)邏輯可以 利用一個或多個根密鑰和質(zhì)詢,對密鑰推導(dǎo)算法求值。推導(dǎo)的密鑰可以表示對質(zhì)詢的響應(yīng)。 有利地,基于根密鑰(例如,基于PUF的根密鑰),密碼學(xué)地推導(dǎo)響應(yīng)。提供質(zhì)詢-響應(yīng)功 能的另一種可能的方式將是直接向PUF單元提供質(zhì)詢,并直接從PUF單元提供響應(yīng)(或許 帶有錯誤校正),無需經(jīng)過密碼學(xué)密鑰推導(dǎo)或處理。然而,后一方法一般具有某些缺點。一 方面,PUF單元所能提供的質(zhì)詢-響應(yīng)對的數(shù)量一般而言是有限的(例如,在靜態(tài)隨機(jī)存取 存儲器(SRAM)類型的PUF中,質(zhì)詢可以表示物理地址,從而可能有的是數(shù)量有限的響應(yīng))。 此外,在仲裁器類型的PUF中,大量的質(zhì)詢-響應(yīng)對可能會易于導(dǎo)致允許建模攻擊。其次, 來自PUF單元的響應(yīng)一般易于導(dǎo)致有噪聲。相比之下,使用推導(dǎo)的密鑰作為對質(zhì)詢的響應(yīng) 可以允許大量的,或者甚至幾乎無限的無錯誤的質(zhì)詢-響應(yīng)對。此質(zhì)詢-響應(yīng)能力可以用 于各種目的,諸如,例如,用于認(rèn)證、仿造檢測、及已知的其他目的。
[0035] 在某些實施例中,密鑰推導(dǎo)邏輯108可以被用來從一個或多個根密鑰推導(dǎo)出一個 或多個秘密或安全密鑰,它們將安全地保留在安全密鑰推導(dǎo)和加密邏輯102的邊界116內(nèi)。 例如,可以通過利用可能與額外的比特(例如,來自熔絲、存儲在RAM中、以別的方式保存在 加密邏輯內(nèi),等等)相結(jié)合的一個或多個根密鑰,對密鑰推導(dǎo)算法求值,來生成秘密或安全 的推導(dǎo)的密鑰。在某些實施例中,這些一個或更多秘密或安全密鑰111可以存儲在可選的 推導(dǎo)的密鑰存儲器110中。在某些實施例中,這些一個或更多秘密或安全密鑰111可包括可 以被加密和/或解密邏輯112使用的一個或多個加密和/或解密密鑰。在某些實施例中, 不僅是一個或多個根密鑰(例如,基于PUF的根密鑰)不暴露在邊界116的外面,而且基于 一個或多個根密鑰推導(dǎo)出的一個或多個秘密或安全推導(dǎo)的密鑰也不暴露在邊界的外面。
[0036] 再次參考圖1,安全密鑰推導(dǎo)和密碼邏輯102還包括可選的加密和/或解密邏輯 112 (例如,加密和/或解密引擎或模塊)。加密/解密邏輯可以能夠用于加密和/或解密 數(shù)據(jù)。合適的加密/解密算法的示例包括,但不僅限于,AES-ECB、AES-CBC、AES-