TW200832427A - Virtual secure on-chip one time programming - Google Patents
Virtual secure on-chip one time programming Download PDFInfo
- Publication number
- TW200832427A TW200832427A TW096143305A TW96143305A TW200832427A TW 200832427 A TW200832427 A TW 200832427A TW 096143305 A TW096143305 A TW 096143305A TW 96143305 A TW96143305 A TW 96143305A TW 200832427 A TW200832427 A TW 200832427A
- Authority
- TW
- Taiwan
- Prior art keywords
- integrated circuit
- key
- memory device
- logic
- received
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 28
- 230000002093 peripheral effect Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 13
- 239000000463 material Substances 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 6
- 238000013475 authorization Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000004308 accommodation Effects 0.000 claims 1
- MJIHNNLFOKEZEW-UHFFFAOYSA-N lansoprazole Chemical compound CC1=C(OCC(F)(F)F)C=CN=C1CS(=O)C1=NC2=CC=CC=C2N1 MJIHNNLFOKEZEW-UHFFFAOYSA-N 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 230000008672 reprogramming Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002496 gastric effect Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Description
200832427 九、發明說明: 【發明所屬之技術領域】 本發明係關於在不於一積體電路上使用專用可一次程式 化記憶體之情況下在彼積體電路上提供一次程式化能力。 【先前技術】 對於許多類型之可程式化電子設備,需要保護設備不受 非法重新%式化。此為(例如)行動通信設備(例如,蜂巢式 電信设備)之情況,其中不僅需要確保僅類型核準之軟體 在設備上執行,而且亦需要為儲存於設備中之敏感資訊提 供安全鎖定機制(例如,安全用戶資訊模組(SIM)鎖定機 制)。用於防護未經授權重新程式化之系統解決方案中的 一重要成份為可一次程式化(0TP)記憶體之使用。如其名 稱所表達,ΟΤΡ記憶體為允許將資訊單次記錄至記憶體區 域中之記憶體器件類型。0ΤΡ記憶體為非揮發性的(亦即, 其即使在斷電時亦保持其資訊)。最初,ΟΤΡ處於未經程式 化狀態。接著,存在對記憶體位元進行程式化(例如,逐 一地進行或作為整體區塊而在單一操作中進行,特別實施 例與此論述不相關)之程式化階段。在記錄資訊(在下文中 被稱為"ΟΤΡ資料”)之後,藉由防止將任何資訊寫入於記憶 體之彼部分的若干技術中之任一者來鎖定〇Τρ記憶體。通 常,一旦ΟΤΡ進入其”鎖定”狀態,資訊就不能被抹除。在 一些實施例中,僅僅在應用於整個記憶體位元區塊時才允 許抹除;不能將抹除選擇性地應用於個別記憶體位置。 〇τρ記憶體可用於許多類型之應用中。作為許多可能實 126366.doc 200832427 例中之僅一者,在對行動設備進行客製化之前,很有可能 將設備軟體儲存至非揮發性記憶體(例如,快閃記憶體器 件)中。因此,存在脆弱的”未用狀態,,(virgin state),其允
許將新軟體及參數程式化至設備中。因此,重要的是確 保:一旦設備已離開工廠,就不可能以任何不受控制之方 式來使設備返回至此”未用”狀態,因為此將允許非法重新 程式化。OTP記憶體對於此目的為非常有用的,因為其内 容可用以保持區別已離開工廠之設備與尚未離開工廠之設 備的資訊。吾人可(例如)在一旦設備之客製化完成時就於 OTP記憶體中設定所謂的生產旗標。此旗標則向設備啟動 及載入器軟體通知設備經客製化且通知任何重新程式化需 要特殊授權。 利用OTP資訊之軟體通常被執行於設備之主處理器(例 如,行動通信設備(例%,行動電話)之主基頻處理器)上。 此暗示大多數安全的基於οτρ之解決方案為οτρ記憶體常 駐於與主處理器相同之積體電路晶片、(例如,行動電 $中之基頻處理器)上的解決方案,因為此將使得對ΟΤΡ讀 取功此性之暴改困難得多。遺憾地,冑因於許多技術及成 本限制’並非始終有可能提供晶片上ΟΤΡ記憶體。因此, ΟΤΡ。己體幻⑽常被實現於外部硬體組件中。在該配置 中上存在用於自外部硬體組件向主處理器輸送QTP讀出之 L鏈路的必要性。此通信鏈路將讀取功能曝露於 οτρ記憶體與基頻晶片之間的資料轉移之調處。經調處資 料可使得設備似乎回到其”未用"狀態,且因此易受未經授 126366.doc 200832427 權重新程式化。 此威脅可藉由以密碼編譯方式來保護OTp讀取操作而得 以顯著地減小。更具體言之’主處理器可藉由在其自〇τρ 記憶體起始讀取操作之時間或大約在該時間向外部硬體植 件發布隨機(或偽隨機)查問字(RND)來判定其自盆自身與 OTP記憶體之間的通信鏈路所接收之資料是否可;。外^ 硬體組件自⑽記憶體讀取資料且使用加密程序而自0TP 育料、先前所儲存秘密密鑰(κ)及隨機查問字導出" 訊息鑑認碼"(MAC)。接著,將所產生之MAc連同〇τρ資料 -起傳回至主處理器。亦維持秘密密鑰〖之複本的主處理 器使用秘密密鑰Κ、所接收⑽資料及所發布隨機查問字 (RND)來計算參考macHmaC,等於所接收MAC值, 則將所接收OTP資料視為有效的(亦即,其尚未經篡改)。 為了維持秘密密鑰K之秘純,必須在外料元處保護 其不受未歸權存取。4了具有完全安全性解決方案,亦 有必要在讀取OTP内容之單元(例如,主處理器)處保護秘 密密鑰κ。舉例而言,若將此㈣以純文字(eiear㈣儲 存於容納主處理器之同-積體電路上的R0M中,則任何人 T如,在R&D環境中)將能夠轉儲此記憶體之内容且藉此 能夠存取秘密密鑰K。 因此’需要解決此安全性問題。 【發明内容】 二強凋,術浯”包含’’在用於本說明書中時被用於指定所 敍述之特试、整數、步驟或組件之存在,·但此等術語之使 126366.doc 200832427 整數、步驟、組件或其群 用並不排除一或多個其他特徵 組之存在或添加。
根據本發明之-態樣,在包含用於在積體電路上提供一 ^程式化功能性之方法及/或裝置的實施例中達成前述及 其他目標。在積體電路上提供—次程式化功能性包含自— 處於積體電路外部之源接收可—次程式化資料,及判定所 接收可-次程式化資料是否可信。若判定所接收可一计 式化資料可信’則將所接收可—次程式化資料儲存於一: 於積體電路上之可寫人敎記憶體器件中。此後鎖定可寫 入鎖定記憶體器件以在只要維持供電給積體電路時就防止 對可寫入鎖定記憶體器件之任何進_步寫人。自在只要維 持供2給積體電路時就鎖定可寫人鎖定記憶體器件之時刻 起向前,在無論何時需要可一次程式化資料時皆自可寫入 鎖定記憶體器件擷取可一次程式化資料。 在另一態樣中,判定所接收可一次程式化資料是否可信 包含使得一查問字可用於一處於積體電路外部之接受者。 接著,自處於積體電路外部之源接收一訊息鑑認碼,且自 一位於積體電路上之密鑰記憶體器件擷取一密鑰。使用密 鑰及訊息鑑認碼來判定所接收可一次程式化資料是否可 信0 在又一態樣中,在自密鑰記憶體器件擷取密鑰之後,鎖 定密鑰記憶體器件以在只要維持供電給積體電路時就防止 對役输記憶體器件之任何進一步讀取。 在再一態樣中,將所擷取密鑰儲存於積體電路上之另一 126366.doc 200832427 記憶體ϋ件中以錄在由積體電路所執行之電源開啟程序 期間的擷取。接著’可由一或多個單向函數或—或多個偽 隨機函數使用密鑰之此複本來導出—或多個其他密餘。接 著,可在電源開啟程序不具有對所擷取密鑰之進一步使用 之後自另一記憶體器件抹除所擷取密鑰。
在又一態樣中,最初將密鑰儲存至密鑰記憶體器件中, 其中該密输不同於-儲存於另—積體電路之另—密餘記憶 體器件中的密鑰。自彼密鑰,導出一用於周邊器件中之密 鑰’該周邊ϋ件包括處於積體電路外部之源。舉例而言, 可將唯-密鑰儲存至每—積體電路中,使得對—積體電路 之密餘的認識不能用以鑑認另—積體電路中所接收之可一 次程式化資料。 在再I、樣中,使用可一次程式化資料來判定是否有可 能在無額外授權之情況下將程式碼儲存至—位於積體電路 上之記憶體中。 〜樣中判疋所接收可一次程式化資料是否可信 包含:使得一杳1 一同予可用於一處於積體電路外部之接受 者,及自處於積體雷 、 冤路外部之源接收一訊息鑑認碼。若積 體電路以非除錯模式來操作, 記憶體器件擷取非除錯密鑰。 認碼來判定所接收可一次程式 則自位於積體電路上之密鑰 使用此非除錯密錄及訊息鑑 化資料是否可信。然而,若 積體轉以除錯模式來操作 則鎖定密鑰記憶體器件以在 只要維持供電給 密鑰記憶體器件 Μ ^錯模式來操作之積體電路時就防止對 之任何進一步讀取。在此情況下,自位於 126366.doc 200832427 積體電路上之另一記憶體器件擷取除錯密鑰。接著,使用 除錯密鑰及訊息鑑認碼來判定所接收可一次程式化資料是 否可乜。以此方式,可在積體電路經受測試時防止對非除 錯密鑰之未經授權存取。 j再一態樣中,若積體電路以非除錯模式來操作,則在 =山鑰σ己憶體器件擷取非除錯密鑰之後,鎖定密鑰記憶體 牛X在/、要維持供電給積體電路時就防止對密餘記憶體 斋件之任何進一步讀取。類似地,若積體電路以除錯模式 來操作,則在自密鑰記憶體器件擷取除錯密餘之後,鎖定 =输記憶體器件以在只要維持供電給積體電路時就防止對 密錄記憶體器件之任何進一步讀取。 【實施方式】 現將參看諸圖來描述本發明之各種特徵,在該等圖中, 以相同參考符號來識別相似部分。 現將結合許多例示性實施例來更詳細地描述本發明之各 種恶樣。&了促進對本發明之理解,在待由電腦系統之元 件或能夠執行程式化指令之其他硬體執行的動作序列方面 描述本發明之許多態樣。將認識到,在該等實施例中之每 者中,可藉由專門電路(例如,經互連以執行專門功能 之離散邏輯閘)、藉由一或多個處理器所執行之程式指令 或藉由兩者之組合來執行各義作。此外,可另外將本: 明視作完全具體化於諸如固態記憶體、磁碟、光碟或載波 * 射頻θ頻或光頻載波)的任何形式之電腦可讀載 體内’該電腦可讀載體含有將使得處理器執行本文所描述 126366.doc -11 - 200832427 之技術的適當電腦指令集合。因&,可以許多不同形式來 具體化本發明之各種態樣,且·所有料形式皆處於本 發明之範疇内。對於本發明之各種態樣中的每一者,可在 本文中將任何該形式之實施例稱作”經組態以”執行所描述 動作之”邏輯”,或者稱作執行所描述動作之,,邏輯”。 本發明之態樣假設如【先前技術】章節中所描述且如圖 1中所說明之鑑認程序,圖W藉以將⑽記憶體實施於處 於包括主處理器之積Μ電路外部之周邊單Α中之例示性配 置的方塊圖。因此,OTP讀取程序包括朝向包括〇τρ記憶 體105之周邊單元1G3發布隨機查問RND(步驟的主處理器
101。將具有主處理器之單元與周邊單元之間所共用的隨 機查問(RND)、OTP内容及秘密密鑰1〇7尺用作對完整性保 護演算法之輸入。接著,將0TP内容連同來自完整性保護 /秀t法之訊息鑑認碼(mac) —起發送回至主處理器1〇丨(步 驟2)。MAC為作為訊息(在此情況下為自周邊單元之記憶 體所讀出的OTP值)及儲存於周邊單元103中之秘密密錄κ 之函數而產生的值。主處理器101藉由基於其自己的秘密 在餘Κ 109之複本及其對最初所發送之隨機查問rnd的認 識來判定所接收完整性值(MAC)是否為所預期的内容而檢 查OTP值之有效性。 為了執行完整性檢查,主處理器101必須能夠存取秘密 密输K 109之複本。此為潛在安全性威脅,因為每次讀取 外部單元中之OTP記憶體1〇5時皆會曝露此密鑰。在一態 樣中’本發明之實施例藉由使用以下一程序來消除此威 126366.doc •12- 200832427 脅:在該程序中,僅對〇TP記憶體1〇5讀取一次,即,在 啟動主處理器1〇1後即進行讀取。此時,主處理器ι〇ι將能 夠存取儲存於硬體保護記憶體中之秘密密鑰κ。若對所接 收οτρ資料之完整性檢查指示一可信0TP值,則主處理器 101將ΟΤΡ内容儲存於一位於包括主處理器1〇1之同一積體 電路上的内部保護記憶體(例如,内部保護暫存器)中。一 一將0ΤΡ資料寫入至此記憶體/暫存器中,彼記憶體/暫存 器就受硬體保護以防任何進一步寫入,直至起始處理器之 重新啟動為止。需要讀取οτρ内容之任何安全性關鍵軟體 此後將自内部保護記憶體/暫存器而非自位於周邊單元中 之’’真實"0ΤΡ記憶體讀取οτρ資料。以此方式,在主處理 益之積體電路上提供”虛擬”οτρ記憶體,而不需要在彼積 體私路上實際地實施οτρ記憶體(此可能比使οτρ記憶體在 周邊單元上更昂貴且麻煩)。 現在更詳細地描述本發明之此等及其他態樣。圖2為包 含用於執行本發明之各種態樣之元件之積體電路201的方 塊圖。圖3為在執行本發明之各種態樣時所執行之步驟的 /;,L耘圖。可(例如)藉由圖2中所描繪且下文所描述之各種元 件來執行圖3之步驟。 積體電路201包括能夠指導本文所描述之各種動作的控 制盎203。在例示性實施例中,控制器2〇3為可程式化的且 包括儲存於記憶體中之程式指令集合(”啟動碼n205)。控制 為2〇3進一步包括能夠執行由啟動碼205所指定之操作的處 理态2〇7。啟動碼205為可在器件(積體電路201為該器件之 126366.doc -13- 200832427 一部分)之初始電源開啟後即經執行之程式指令集合。 電源開啟程序之一態樣句括鍺 ^ ° Α „ 冑包括積體電路201獲得儲存於用 邊早7G 1〇3中之0TP資料之複本。此沣 、周 ’及將此與⑽記憶體讀取請求一峨產生, :㈣),於此動作,積體電路2=^ 及MAC(步驟303)。 貝科 所:體電路201需要判定所接收⑽資料是否可信(亦即, =收⑽資料為儲存於周邊單元1〇3中之⑽資料的二 為了此目的’其在特殊密鑰暫存器(或其他類型 之記憶體器件卿中維持秘密密鑰κ之複本。密鑰暫存^ =特殊的,,’此在於:其允許僅在未確證預定鎖定位 =其他程式碼)時才執行讀取操作,貞定位元儲存於 器211中。當然,應提供某-機制來防止鎖 :位70暫存器211之内容的未經授權改變。舉例而言,鎖 ^立元暫存器211可以一使得自行鎖定之方式來建構;亦 旦設定鎖定位元’其就不僅鎖定密鑰暫存器209, 且亦鎖定該鎖定位元暫存器211自身。 用作為系統啟動操作之一部分(其為受保護執行常 其執行至少在非除錯操作模式期間不能藉由在諸 經凊求中斷、(硬體)除錯邏輯及其類之 部的構侔夾接其、β 曰 吕,碩取密鑰暫存器209且將密鑰Κ置放至 •己L體213(例如’ f密耦合式記憶體,或不能自積 “ 2G1外^被_處之任何其他記憶體)中(步驟3G5)。改 定位元暫存器211之值,使得密鑰暫存器209此後在只 126366.doc -14- 200832427 要維持供電給積體電路201時就將為不可讀的。 接著’控制器203藉由(例如)確定所接收mac是否匹配 於所預期MAC來判定所接收οτρ資料是否可信(決策區塊 3 07)。如早先所提及’控制器2〇3已知隨機數rnD之值, 且亦具有儲存於晶片上記憶體213中之秘密密餘κ之複本。 因此,控制器203能夠判定所預期mac值。 若所接收MAC不匹配於所預期MAC值(來自決策區塊3〇7 之否路徑),則不能將所接收〇τρ資料視為可信。因此, 控制器203將終止正常啟動程序,且替代地執行與任何篡 改證據相關聯之特殊應用常用程式(步驟3〇9)。特殊應用常 用程式可(例如)採取步驟來防止任何進一步之未經授權動 作,諸如(但不限於卜自晶片上記憶體213抹除密鑰κ。 然而,若所接收MAC匹配於所預期MAC值(來自決策區 塊307之”是”路徑),則可將〇τρ資料視為可信。因此,將 所接收ΟΤΡ資料儲存至一位於積體電路2〇丨上之可寫入鎖 疋忑隐體益件(在此例示性實施例中為專用ΟΙ?暫存器2 ^ 5) 中(γ驟3 11)。與qtp暫存器2〖5相關聯的為相黏位元 (sticky bit)217(例如,可被指派給槽案及目錄之存取權旗 標)。在已將οτρ資料載入至0TP暫存器215中之後,控制 器203確證相立元217(步驟313),胃相黏位元217此後防 止將任何其他值儲存至〇τρ暫存器215中(除了在系統重設 後)對裔件進行重新程式化之任何後續嘗試將需要存取 ΟΤΡ暫存器215以獲得〇τρ資料,且只要維持供電給器件, 彼貧料就為儲存於實體〇τρ記憶體1〇5中之資料的有效表 126366.doc •15- 200832427 示。因此,將僅在自OTP暫存器215所獲得之〇τρ資料指_ 積體電路201處於其"未用,,狀態的情況下才允許重日不 化。 ’程式 在此點上,啟動碼205可使用密鑰κ(儲存於晶片上記立 ; 體213中)來導出可由需要保護晶片資料或其他内容(例如己k 將待载入至利用積體電路201之器件之快閃記憶體中的軟 - 體進行加密)之其他軟體模組所使用的一或多個其他密鑰 φ (步驟315)。可將此等其他密鑰儲存於積體電路201上\例 #,儲存於晶片上記憶體213中)。為了保護密鑰尺之秘密 性(亦即’使得自—或多個所導出密鍮導出原始密獻之值 極為困難⑶並非不可能)),應使用單向函數、域機函數 及/或其類似者來導出此等其他密鑰。在此項技術中已知 用於以一使得不能執行逆過程以獲得原始密鑰κ之方式而 自密鑰Κ導出密鑰的技術。對該等技術之完整論述超出本 七明之|巳’。關注自原始密鑰κ所導出之任一密鑰的過程 • 必須確保:以安全方式來處理所導出密鑰,且密鑰在其— 旦經使用時就被抹除。 在導出任何其他所需密鑰之步驟之後,只要積體電路 、 2G1保持電源開啟就不再需要密鑰Κ。因此,為了防止任何 ' 未、、二授權存取,控制器203自晶片上記憶體2 13抹除密鑰 K(y驟317)。因此’密献將永不(亦即,只要積體電路保 持電源開啟)曝露於積體電路中執行之任何其他軟體。 在另t樣中,本發明之一些實施例防止密鑰κ曝露於 開發及研究壤境中。此藉由使用不同的”除錯密餘”(而非使 126366.doc -16· 200832427 用π非除錯’’)密鑰κ用於除錯及測試目的而得以完成。無兩 將’’除錯密鑰”儲存於硬體保護記憶體中。為了在除錯電路 中保護非除錯密鑰κ,當電路以除錯或測試模式(例如,除 錯或外部啟動)來操作時,藉由硬體來防止自密鑰暫存器 209對非除錯密鑰Κ之任何讀出。圖2中所說明之除錯封鎖 邏輯219執行此功能。控制器2〇3向除錯封鎖邏輯zb提供 指示積體電路2〇1之操作模式(例如,除錯或外部啟動)的資 訊0 、
在又一態樣中,本發明之一些實施例藉由在不同積體電 路中利用不同密鑰來進一步限制對密鍮κ之未經授權使 用。舉例而言’在用於行動通信器件巾之積體電路中,每 一積體電路可具有一儲存於其密鑰暫存器2〇9中之唯一密 鑰。在客製化時,則自儲存於”主,,積體電路中之同一唯一 密鑰導出儲存於周邊單元103中之秘密密鑰1〇7。如本文中 所使用’術語”導出”包括(但不限於)使用相同密鎗。此具 有在"主”積冑電路與周彡單元之間建立唯__配對的優勢。 因此’即使來自-器件之密鑰落人錯誤之手,彼密餘亦不 能用以啟用對其他H件之任何未經授權程式化(或其他使 用)。其亦防止周邊器件與,,主,,積體電路一起工作。 本發明之實施例的各種態樣提供用於以在積體電路2〇1 上提供虛擬ΟΤΡ記憶體而無需積體電路2〇1上之實際記 憶體硬體的方式來料OTPf料之安全解決方案。此外, 各種實施例提供共同密鑰之安全導出,其可用以保護額外 資料而無需此密鑰之額外硬體儲存。 126366.doc -17- 200832427 已翏看特定實施例而描述了本發明。然而,熟習此項技 術者將顯而易見到,有可能以不同於上文所描述之實施例 之形式的特定形式來具體化本發明。所描述實施例僅為說 月丨生的,且不應被視為以任何方式為限制性的。本發明之 範彆由所附申請專利範圍而非先前描述給出,且處於申請 專利範圍之範圍内的所有變化及等效物意欲 【圖式簡單說明】 、,、中。 圖1為藉以將ο τ p記憶體實施於處於容納主處理器之 體電路外部之周邊單元中之配置的方塊圖。 、 圖2為包含用於執行本發明之各種態樣之元件之積體 路201的方塊圖。 ' 圖圖3為在執行本發明之各種態樣時所執行之步驟的流程 【主要元件符號說明】 101 主處理器 103 周邊單元 105 οτρ記憶體 107 秘密密鑰 109 秘密密鑰K 201 積體電路 203 控制器 205 啟動碼 207 處理器 209 密鑰暫存器 126366.doc -18· 200832427 211 鎖定位元暫存器 213 晶片上記憶體 215 OTP暫存器 217 相黏位元 219 除錯封鎖邏輯 126366.doc -19 -
Claims (1)
- 200832427 十、申請專利範圍: 1. -種在-積體電路上提供—次程式化功能性之方法,該 方法包含: 自一處於該積體電路外部之源接收可一次程式化資 料; ' 判疋該所接收可一次程式化資料是否可信; 回應於判定該所接收可一次程式化資料可信,將該所 接收可一次程式化資料儲存於一位於該積體電路上之可 寫^鎖定記,件t,且此後較該可^鎮定記憶 體器件’以在只要維持供電給該積體電路,即防止對該 可寫入鎖定記憶體器件之任何進一步寫入;及 自在只要維持供電給該積體電路即鎖定該可寫入鎖定 圯憶體為件之時刻起向前,在無論何時需要該可一次程 式化資料時皆自該可寫入鎖定記憶體器件擷取該可一次 程式化資料。 2·如請求項1之方法,其中判定該所接收可一次程式化資 料是否可信包含: 使得一查問字可用於一處於該積體電路外部之接受 者; 自處於该積體電路外部之該源接收一訊息鐘認碼; 自位於該積體電路上之一密鑰記憶體器件擷取一密 鑰;及 使用該密鑰及該訊息鑑認碼來判定該所接收可一次程 式化資料是否可信。 126366.doc 200832427 3·如請求項2之方法,其包含: 在自該密鑰記憶體器件擷取該密鑰之後,鎖定該密鑰 圮憶體器件,以在只要維持供電給該積體電路,即防止 對该岔餘記憶體器件之任何進一步讀取。 4’如印求項3之方法,其包含將該所擷取密鑰儲存於該積 體電路上之另一記憶體器件中,以用於在由該積體電路 所執行之一電源開啟程序期間的擷取。 5·如請求項4之方法,其包含使用一或多個單向函數或一 或夕個偽機函數,而自儲存於該另一記憶體器件中之 忒所擷取密鑰導出一或多個其他密鑰。 6·如明求項4之方法,其包含在該電源開啟程序不具有對 該所擷取Μ之進—步使用之後,自該另—記憶體器件 抹除該所擷取密輸。 7·如請求項2之方法,其包含: 取初將該密繪儲存至該密瑜記憶體器件中,其中該密^同於儲存於另一積體電路之另一密鑰記憶體器件 中的密鑰;及 ° 亥山鑰導出一用於一周邊器件中之密 件包括處於該積體電路外部之該源。 鬥邊时 8·如請求項1之方法,其包含: 次程式化賴來判定是否有可能在無額外 :贼θ况Τ將程式碼儲存至-位於該積體電路上之記 憶體中。 9·如請求項1之方法 其中判定該所接收可一次程式化資 126366.doc 200832427 料是否可信包含: 使得一查問丰可田μ ^ 用於一處於該積體電路外部之接受 者; 自處於該積體電路外部 — 1之忒源接收一訊息鑑認碼, 若該積體電路以一非降辑措斗、十^ ; 升咏錯杈式來操作,則: 自一位於該積體雷跋μ h - 、也路上之畨鑰記憶體器件擷取一非 • 除錯密鑰;及 使用4非除錯检餘及該訊息鑑認碼來判定該所接收 可一次程式化資料是否可信;且 若該積體f路以-除錯模式來操作,則: 鎖疋该密鑰記憶體器件,以在只要維持供電給以除 錯模式來操作之該積體電路,即防止對該密输記憶體 益件之任何進一步讀取; 自位於該積體電路卜 、电峪上之另一圮憶體器件擷取一除錯 密錄;及 使用該除錯密鎗及該《^自 # / m心鐘涊碼來判定該所接收可 一次程式化資料是否可信。 10·如請求項9之方法,其包含: - #該積體電路以-非除錯模式來操作,則: : 在自該密鑰記憶體器件榻取該非除錯㈣之後,鎖 .定該密鑰記憶體11件,以在只要維持供電給該積體電 路,即防止對該密鑰記憶體器件之任何進一步讀取; 且 若該積體電路以一除錯模式來操作,則 126366.doc 200832427 在自该搶鑰記憶體器件擷取該除錯密鑰之後,鎖 該密鑰記憶體器件,以在只要維持供電給該積體電 路,即防止對該密餘記憶體器件之任何進一步讀取。 種用於在一積體電路上提供一次程式化功能性之壯 置’該裝置包含: 衣 自一處於該龍電料部之源純可-隸式 之邏輯; 料 Φ 判定該所接收可一次程式化資料是否可信之邏輯; 目應於判定該所接收可-次程式化資料可信而將該所 接收可-人&式化資/料儲存於一位於該積體電路上之可 寫=鎖定記憶體器件中、域㈣定料寫人鎖定記憶 體器件以在只要維持供電給該積體電路即防止對該可寫 入鎖定記憶體器件之任何進一步寫入的邏輯;及 … 自在,、要維持供電給該積體電路即鎖定該可寫入鎖定 七憶體器件之時刻起向前而在無論何時需要該可一次程 Φ 式化資料時皆自该可寫入鎖定記憶體器件擷取該可一次 程式化資料的邏輯。 如明求項11之t置’其中判定該所接收可—次程式化資 ! 料是否可信之該邏輯包含: • 使得查問子可用於一處於該積體電路外部之接受者 之邏輯; 自處於該積體電料部之㈣接收—訊息鑑認碼之邏 輯; 位於該積體電路上之密鑰記憶體器件擷取一密鑰 126366.doc 200832427 之邏輯;及 使用4密錄及該訊息鑑認碼來判定該所接收可一次程 式化貝料是否可信之邏輯。 13·如請求項12之裝置,其包含: 在自该密鑰記憶體器件擷取該密鑰之後鎖定該密輪記 ^體裔件以在只要維持供電給該積體電路即防止對該密 鑰觅k體器件之任何進一步讀取的邏輯。 14.如請求、U之衣置,其包含將該所擷取密鑰儲存於該積 體電路上之另一記憶體器件中以用於在由該積體電路所 執行之一電源開啟程序期間之擷取的邏輯。 15·如請求項14之裝置,其包含使用一或多個單向函數或一 或夕個偽隨機函數而自儲存於該另一記憶體器件中之該 所榻取被輸導出一或多個其他密鑰的邏輯。 16·如明求項14之裳置’其包含在該電源開啟程序不具有對 4所擷取錢之進—步使用之後自該另—記憶體器件抹 除該所擷取密輪的邏輯。 17.如請求項12之裝置,其包含: 最初將該密鎗儲存至該密输記憶體器件中之邏輯,其 中该密餘不同於一儲在a η m丄 储存於另一積體電路之另一密鑰記憶 體器件中的密鑰;及 自j密鑰導出-用於―周邊器件巾之錄的邏輯,該 周邊器件包括處於該積體電路外部之該源。 18·如請求則之裝置,其包含使用該可:次程式化資料來 判定是否有可能在無額外授權之情況下將程式碼儲存至 126366.doc 200832427 一位於該積體電路上之記憶體中的邏輯。 19 ·如請求項11之裝置,苴中刹 ,、r 疋忒所接收可一次程式化資 料是否可信之該邏輯包含: 使得i問子可用於一處於該積體電路外部之接受者 之邏輯; 自處於該積體電路外部之續%垃 _ , ^ 丨心邊雄接收一矾息鑑認碼之邏 在該積體電路未以-除錯模式來操作之情況下執行以 下動作之邏輯: 自-位於該積體電路上之密鑰記憶體器件擷取一非 除錯密餘;及 使用該非除《鍮及該訊息㈣碼來判定該所接收 可一次程式化資料是否可信;及 在該積體電路以-除錯模式轉作之情況下執行以 下動作之邏輯: 鎖定該密鑰記憶體ϋ件m維持供電給以除 =柄式來操作之該積體電路’即防止對該密鑰記憶體 益件之任何進一步讀取; 自位於該積體電路上之另一記憶體器件擷取 密鑰;及 % 一,用該除錯密鑰及該訊息鑑認碼來判定該所接收可 一次程式化資料是否可信。 20.如請求項19之裝置,其包含: 在該積體電路以-非除錯模式來操作之情況下執行以 126366.doc 200832427 下動作之邏輯: 在自該密鑰記憶體器件擷取該非除錯密鑰之後,鎖定 該密輸記憶體器件,以在只要維持供電給該積體電路, 即防止對該密鑰記憶體器件之任何進一步讀取;及 : 在該積體電路以一除錯模式來操作之情況下執行以 下動作之邏輯: t自該密鑰記憶體器件擷取該除錯密鑰之後,鎖定 w密輪記,降辦 • 政 心體件,以在只要維持供電給該積體電 岭’即防止斟姑… τ孩费鑰記憶體器件之任何進一步讀取。 126366.doc
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/611,130 US20080148001A1 (en) | 2006-12-14 | 2006-12-14 | Virtual Secure On-Chip One Time Programming |
Publications (1)
Publication Number | Publication Date |
---|---|
TW200832427A true TW200832427A (en) | 2008-08-01 |
Family
ID=38349458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096143305A TW200832427A (en) | 2006-12-14 | 2007-11-15 | Virtual secure on-chip one time programming |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080148001A1 (zh) |
EP (1) | EP2115655B1 (zh) |
TW (1) | TW200832427A (zh) |
WO (1) | WO2008071572A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI485573B (zh) * | 2011-12-29 | 2015-05-21 | Intel Corp | 用於執行運行時間完整性量測之處理器、方法及系統 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7630225B2 (en) * | 2006-09-29 | 2009-12-08 | Sandisk Corporation | Apparatus combining once-writeable and rewriteable information storage to support data processing |
US8046571B1 (en) * | 2006-12-18 | 2011-10-25 | Marvell International Ltd. | System-on-a-chip (SoC) security using one-time programmable memories |
KR101393307B1 (ko) * | 2007-07-13 | 2014-05-12 | 삼성전자주식회사 | 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템 |
US9069990B2 (en) | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US9158896B2 (en) | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
US8719585B2 (en) | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US9069706B2 (en) * | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8417902B2 (en) * | 2008-08-05 | 2013-04-09 | Atmel Corporation | One-time-programmable memory emulation |
US8594333B2 (en) * | 2008-09-05 | 2013-11-26 | Vixs Systems, Inc | Secure key access with one-time programmable memory and applications thereof |
US8781127B2 (en) | 2008-09-05 | 2014-07-15 | Vixs Systems, Inc. | Device with privileged memory and applications thereof |
US20100161975A1 (en) * | 2008-12-19 | 2010-06-24 | Vixs Systems, Inc. | Processing system with application security and methods for use therewith |
TWI435328B (zh) * | 2009-07-20 | 2014-04-21 | Silicon Motion Inc | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
US8644499B2 (en) * | 2009-09-14 | 2014-02-04 | Broadcom Corporation | Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities |
US8918575B2 (en) * | 2009-09-14 | 2014-12-23 | Broadcom Corporation | Method and system for securely programming OTP memory |
CN102866864B (zh) * | 2012-08-24 | 2016-03-02 | 深圳市江波龙电子有限公司 | 实现一次性可编程存储的方法和存储设备 |
US20150242620A1 (en) | 2014-02-27 | 2015-08-27 | Microsemi SoC Corporation | Methods for controlling the use of intellectual property in individual integrated circuit devices |
US10114369B2 (en) | 2014-06-24 | 2018-10-30 | Microsemi SoC Corporation | Identifying integrated circuit origin using tooling signature |
US10353638B2 (en) * | 2014-11-18 | 2019-07-16 | Microsemi SoC Corporation | Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory |
US10181956B2 (en) * | 2015-12-21 | 2019-01-15 | Hewlett-Packard Development Company, L.P. | Key revocation |
US10262164B2 (en) | 2016-01-15 | 2019-04-16 | Blockchain Asics Llc | Cryptographic ASIC including circuitry-encoded transformation function |
US10424389B2 (en) | 2016-04-01 | 2019-09-24 | Hewlett-Packard Development Company, L.P. | Integrated circuit device using multiple one-time programmable bits to control access to a resource |
KR102432451B1 (ko) * | 2018-01-10 | 2022-08-12 | 삼성전자주식회사 | 반도체 장치 및 반도체 장치의 동작 방법 |
US10372943B1 (en) | 2018-03-20 | 2019-08-06 | Blockchain Asics Llc | Cryptographic ASIC with combined transformation and one-way functions |
US10256974B1 (en) | 2018-04-25 | 2019-04-09 | Blockchain Asics Llc | Cryptographic ASIC for key hierarchy enforcement |
CN114785512A (zh) * | 2022-03-03 | 2022-07-22 | 瑞芯微电子股份有限公司 | 处理安全密钥的方法和装置及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2818062B1 (fr) * | 2000-12-07 | 2003-04-11 | Thomson Multimedia Sa | Methode de transmission securisee de donnees numeriques d'une source vers un recepteur |
US7783901B2 (en) * | 2001-12-05 | 2010-08-24 | At&T Intellectual Property Ii, L.P. | Network security device and method |
US7313705B2 (en) * | 2002-01-22 | 2007-12-25 | Texas Instrument Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
US7400722B2 (en) * | 2002-03-28 | 2008-07-15 | Broadcom Corporation | Methods and apparatus for performing hash operations in a cryptography accelerator |
FI115564B (fi) * | 2003-02-03 | 2005-05-31 | Nokia Corp | Menetelmä ja järjestelmä testauksen suorittamiseksi laitteessa ja laite |
EP1645931A1 (en) * | 2004-10-11 | 2006-04-12 | Telefonaktiebolaget LM Ericsson (publ) | Secure loading and storing of data in a data processing device |
-
2006
- 2006-12-14 US US11/611,130 patent/US20080148001A1/en not_active Abandoned
-
2007
- 2007-11-15 TW TW096143305A patent/TW200832427A/zh unknown
- 2007-12-03 WO PCT/EP2007/063144 patent/WO2008071572A1/en active Application Filing
- 2007-12-03 EP EP07847655.3A patent/EP2115655B1/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI485573B (zh) * | 2011-12-29 | 2015-05-21 | Intel Corp | 用於執行運行時間完整性量測之處理器、方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
US20080148001A1 (en) | 2008-06-19 |
EP2115655A1 (en) | 2009-11-11 |
WO2008071572A1 (en) | 2008-06-19 |
EP2115655B1 (en) | 2017-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200832427A (en) | Virtual secure on-chip one time programming | |
CN108269605B (zh) | 安全器件状态设备和方法 | |
TWI407745B (zh) | 安全與重播受保護之記憶儲存 | |
US7461268B2 (en) | E-fuses for storing security version data | |
US11003781B2 (en) | Root key processing method and associated device | |
US7975151B2 (en) | Decryption key table access control on ASIC or ASSP | |
US8321686B2 (en) | Secure memory card with life cycle phases | |
US6996547B1 (en) | Method for purchasing items over a non-secure communication channel | |
US20060177064A1 (en) | Secure memory card with life cycle phases | |
US20070237325A1 (en) | Method and apparatus to improve security of cryptographic systems | |
EP1056015A1 (en) | Storage device, encrypting/decrypting device, and method for accessing nonvolatile memory | |
US20070297606A1 (en) | Multiple key security and method for electronic devices | |
EP1638033A2 (en) | Self testing and securing RAM system and method | |
US20060176068A1 (en) | Methods used in a secure memory card with life cycle phases | |
TW201203092A (en) | Recording apparatus, writing apparatus, reading apparatus, and method of controlling recording apparatus | |
US11533172B2 (en) | Apparatus and method for securely managing keys | |
JP6518798B2 (ja) | 安全な集積回路状態を管理する装置およびその方法 | |
CN114785503A (zh) | 密码卡及其根密钥保护方法、计算机可读存储介质 | |
US8397081B2 (en) | Device and method for securing software | |
US20220317184A1 (en) | Secured debug | |
US20060075254A1 (en) | Smart card functionality from a security co-processor and symmetric key in ROM | |
US20240064026A1 (en) | Method and device for controlling access to a resource | |
TWI851820B (zh) | 積體電路、用於安全地管理用於資料安全的多個密鑰的系統以及由積體電路執行的方法 | |
Amato et al. | Mobile Systems Secure State Management | |
KR20240006658A (ko) | 소프트웨어의 사용을 보안하는 방법 |