TW202123046A - 保護積體電路中敏感資料的方法及積體電路 - Google Patents
保護積體電路中敏感資料的方法及積體電路 Download PDFInfo
- Publication number
- TW202123046A TW202123046A TW109103614A TW109103614A TW202123046A TW 202123046 A TW202123046 A TW 202123046A TW 109103614 A TW109103614 A TW 109103614A TW 109103614 A TW109103614 A TW 109103614A TW 202123046 A TW202123046 A TW 202123046A
- Authority
- TW
- Taiwan
- Prior art keywords
- sequence
- integrated circuit
- data sequence
- pseudo
- random
- Prior art date
Links
Images
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1433—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
- Credit Cards Or The Like (AREA)
Abstract
一種保護積體電路內之敏感資料序列之方法。該方法包含依據種子序列產生偽隨機序列,結合敏感資料序列及偽隨機序列以產生保護資料序列,及儲存保護資料序列及種子序列。保護資料序列無法由積體電路外部存取。
Description
本發明關於資料安全性,特別是一種保護積體電路中敏感資料的方法及使用該方法的積體電路。
電子裝置有賴於密碼系統為應用程序及相關資料提供安全性。密碼系統往往是未授權攻擊者的目標,未授權攻擊者會試圖訪問應用程序或裝置或試圖收集敏感信息,如信用卡卡號或加密密鑰等。許多種工具及方法都可用於提取電子裝置的安全資訊,包含直接攻擊,針對目標加密系統採用的加密算法弱點進行攻擊,及旁路攻擊,依據從實體實現之密碼系統所收集到的資訊來進行攻擊。旁路攻擊(side-channel attacks)嘗試通過測量密碼系統的物理特性,例如密碼系統的功率消耗,或通過光學檢測,例如高解析相機或顯微鏡檢測來導出敏感資訊。
功率監控攻擊通過在執行密碼操作時測量裝置所抽取的電流來監控密碼系統的功率消耗,並且從功率消耗推導密碼操作或敏感資料。功率攻擊能夠獲取密碼系統執行的指令序列。差分功率分析(Differential power analysis,DPA)攻擊結合基礎功率監視攻擊的功率測量及統計分析以提取密碼密鑰的資訊或密碼操作中使用的敏感資料。統計工具用來對電位差值及功耗測量進行相關程序以獲得敏感資訊。
光學攻擊使用高倍率裝置,如透射電子顯微鏡(transmission electron microscope,TEM)來讀取並推斷密碼密鑰或其它敏感資料。
本發明實施例提供一種積體電路,包含種子暫存器、偽隨機序列產生器、結合器及非揮發性記憶體。種子暫存器用以儲存種子序列。偽隨機序列產生器用以依據種子序列產生偽隨機序列。結合器用以結合第一資料序列及偽隨機序列以產生第二資料序列,第二資料序列無法由積體電路之外被存取。非揮發性記憶體耦接於結合器,用以儲存第二資料序列。
本發明實施例另提供一種保護積體電路內之敏感資料序列之方法,包含:依據儲存於該積體電路內的種子序列產生偽隨機序列;結合敏感資料序列及偽隨機序列以產生保護資料序列,保護資料序列無法由積體電路外部存取;及儲存保護資料序列。
第1圖係為本發明實施例的積體電路1的方塊圖。積體電路1可用於圖形處理、記憶體控制、或其他應用,且使根密鑰、密碼或信用卡號碼等敏感資料僅可供積體電路1內部專用而無法從積體電路1外部存取。在積體電路1內進行資料儲存前會將敏感資料與偽隨機序列加擾。因此,當發生光學旁路攻擊(side-channel attack)時,攻擊者只可獲得加擾後的敏感資料而無法獲得實際的敏感資料。當發生功率監控攻擊或差分功率分析攻擊時,不管實際上敏感資料的序列變化如何,加擾後的敏感資料的功率量測僅會得到實質上相同的平均功率及實質上相同的電位差。也就是,加擾後的資料具有實質上相同的平均功率及實質上相同的電位差。因此加擾後的敏感資料可用於減輕差分功率分析攻擊,及保護敏感資料在光學旁路攻擊中免受視覺提取。
積體電路1可包含種子暫存器10、加擾器12、非揮發性記憶體14及區域選擇器16。加擾器12可包含偽隨機序列產生器120及結合器122。加擾器12及區域選擇器16可由軟體、硬體或結合實現。當使用軟體實現時,加擾器12及區域選擇器16可由一處理器執行軟體碼(code)實現,軟體碼儲存在積體電路1的其他非揮發性記憶體中。當使用硬體實現時,種子暫存器10耦接於加擾器12的偽隨機序列產生器120,而加擾器12的結合器122及區域選擇器16耦接於非揮發性記憶體14。硬體實現可對敏感資料提供強化的安全保護。也就是,其中該第二資料序列內之資料具有實質上相同的平均功率及實質上相同的電位差。
種子暫存器10可儲存種子序列Dss。種子序列Dss可為積體電路1專用之二進位序列,且可以是為與使用集成電路1的設備的用戶相關聯的獨特用戶識別符(unique user identifier, UUID)、與採用集成電路1的設備相關聯的獨特裝置識別符(unique device identifier, UDID)、或於出廠設定時由亂數產生器(random number generator, RNG)產生的獨特位元序列。亂數產生器可位於積體電路1內部或外部。在出廠設定時種子序列Dss即被寫入種子暫存器10。
在出廠設定時,加擾器12可接收敏感資料序列Dks(第一資料序列),使用偽隨機序列Drs對敏感資料序列Dks進行加擾以產生保護資料序列Dps(第二資料序列),及將保護資料序列Dps寫入非揮發性記憶體14。具體而言,偽隨機序列產生器120可依據種子序列Dss產生偽隨機序列Drs,及結合器122可以位元對位元(bitwise)方式將敏感資料序列Dks與偽隨機序列Drs結合以產生保護資料序列Dps。敏感資料序列Dks、偽隨機序列Drs及保護資料序列Dps的長度可相等。結合器122可包含互斥或(exclusive-or,XOR)閘、互斥反或(exclusive-nor, XNOR)閘、及/或可提供各種線性函數(linear function)的其他種類閘。非揮發性記憶體14可為一次性可編程(one-time programmable,OTP)記憶體或電保險絲(efuse)記憶體。
偽隨機序列產生器120可包含線性反饋移位暫存器(linear feedback shift register, LFSR)。線性反饋移位暫存器可包含移位暫存器,於每個時脈使位元傳遞通過移位暫存器單元,通常由一移位暫存器單元傳遞至下個更高位元的移位暫存器單元。特定移位暫存器單元的輸出稱為抽頭(tap),可通過一或多XOR閘、XNOR閘及/或其他提供線性函數的閘反饋至移位暫存器第一單元。線性反饋移位暫存器可具有特徵多項式,由抽頭位置定義,及由移位暫存器單元的數量所定義的暫存器長度,例如16位元。種子序列Dss的資料長度可相等於暫存器長度,例如16位元。特徵多項式可以是有限域多項式。線性反饋移位暫存器可載入種子序列Dss作為初始值以產生二進位格式的偽隨機序列Drs。第2圖顯示實施例16位元線性反饋移位暫存器20的示意圖,用於偽隨機序列產生器120。線性反饋移位暫存器20包含16個單元C0至C15及XOR閘G1至G3。線性反饋移位暫存器20的抽頭位於第11、13、14及16位元的位置,線性反饋移位暫存器20的特徵多項式為(1+x11
+x13
+x14
+x16
)。初始時,單元C0至C15可將種子序列Dss載入以在XOR閘G3的輸出產生偽隨機序列Drs,及將所產生的位元反饋至單元C0以產生偽隨機序列Drs的下一位元。以此方式,線性反饋移位暫存器20可依序產生偽隨機序列Drs。在某些實施例中,特徵多項式可特定於積體電路1之產品版本,即較新產品版本及先前產品版本可具有不同的特徵多項式,從而增強了不同產品版本間的資料安全性以及防止敏感資料序列Dks被提取。
敏感資料序列Dks可具有超過線性反饋移位暫存器20之暫存器長度的資料長度。舉例來說,敏感資料序列Dks的資料長度可為64位元,且線性反饋移位暫存器20之暫存器長度可為16位元。若敏感資料序列Dks的資料長度小於線性反饋移位暫存器20之暫存器長度,例如8位元,加擾器12可於敏感資料序列Dks之後插入填充位元以確保填充後的資料序列具有相等於線性反饋移位暫存器20之暫存器長度的資料長度,例如16位元。若敏感資料序列Dks的資料長度大於但並非線性反饋移位暫存器20之暫存器長度的倍數,例如敏感資料序列Dks的資料長度為24位元,加擾器12可於敏感資料序列Dks之後插入填充位元以確保填充後的資料序列的資料長度相等於線性反饋移位暫存器20之暫存器長度的倍數,例如32位元。填充位元的插入可由軟體或硬體機制實現。結合器122可使用偽隨機序列Drs結合填充後的資料序列以產生保護資料序列Dps。結合器122可以暫存器長度為單位依序輸出保護資料序列Dps至非揮發性記憶體14以供儲存。
非揮發性記憶體14可分割為複數個區域,每個區域被分配一個獨特的區域位址。結合器122收到敏感資料序列Dks或填充後的資料序列後,區域選擇器16可接收初始區域位址Af及使用初始區域位址Af作為寫入位址Awrt已選定非揮發性記憶體14的區域。非揮發性記憶體14可依據寫入位址Awrt儲存保護資料序列Dps。若保護資料序列Dps超出線性反饋移位暫存器20之暫存器長度,則區域選擇器16可依據初始區域位址Af及暫存器長度更新寫入位址Awrt。在某些實施例中,區域選擇器16可在每個預定時間週期將寫入位址Awrt增加暫存器長度,例如每16個時脈將寫入位址Awrt增加16位元。以此方式,非揮發性記憶體14可依據寫入位址Awrt以暫存器長度為單位依序儲存保護資料序列Dps,且每筆保護資料序列Dps可與線性反饋移位暫存器20之暫存器長度對齊。
敏感資料序列Dks可被加擾以在儲存前產生保護資料序列Dps,保護敏感資料序列Dks不受光學攻擊提取。
第3圖係為本發明實施例的另一種積體電路3的方塊圖。積體電路3可解擾保護資料序列Dps以恢復敏感資料序列Dks。積體電路3可包含種子暫存器10、解擾器32、非揮發性記憶體14、區域選擇器16及處理器30。積體電路3可與積體電路1結合以形成積體電路。積體電路3在處理器30、解擾器32及區域選擇器16的設置及操作上與積體電路1不同,以下將進行解釋。
解擾器32可由軟體、硬體或其中一種結合實現。當使用軟體實現時,解擾器32可由軟體碼實現,軟體碼儲存在積體電路3的其他非揮發性記憶體且由處理器30執行。當使用硬體實現時,處理器30可耦接於解擾器32及區域選擇器16,解擾器32及區域選擇器16可耦接於非揮發性記憶體14。解擾器32可包含偽隨機序列產生器320及結合器322。偽隨機序列產生器320及結合器322的設置及操作可相似於第1圖中偽隨機序列產生器120及結合器122,其解釋已於前面段落中提供。
啟動後,處理器30可指示偽隨機序列產生器320從種子暫存器10載入種子序列Dss以產生偽隨機序列Drs,同時傳送初始區域位址Af至區域選擇器16以產生讀取位址Ard藉以從非揮發性記憶體14獲取保護資料序列Dps(第一資料序列)。結合器322可以位元對位元方式結合保護資料序列Dps及偽隨機序列Drs恢復敏感資料序列Dks(第二資料序列),及將敏感資料序列Dks傳送至處理器30。接著,處理器30可將敏感資料序列Dks儲存在受保護的內部記憶體以供密碼運算使用,在用完時將敏感資料序列Dks從受保護的內部記憶體丟棄。
區域選擇器16可依據初始區域位址Af及暫存器長度更新讀取位址Ard。在某些實施例中,區域選擇器16可在每個預定時間週期將讀取位址Ard增加暫存器長度,例如每16個時脈將讀取位址Ard增加16位元。因此可從非揮發性記憶體14獲取具有超出線性反饋移位暫存器20之暫存器長度之資料長度的保護資料序列Dps。
在啟動後保護資料序列Dps可被解擾以恢復敏感資料序列Dks,保護敏感資料序列Dks不受功率監控攻擊或差分功率分析攻擊提取。
第4圖係為保護積體電路1、3的敏感資料序列Dks之方法400的流程圖。方法400包含步驟S402至S410,其中步驟S402至S406用於加擾敏感資料序列Dks以產生用於儲存的保護資料序列Dps,保護敏感資料序列Dks不受光學旁路攻擊影響,步驟S408及S410用於解擾保護資料序列Dps以恢復用於密碼操作的敏感資料序列Dks,保護敏感資料序列Dks不受功率監控攻擊及差分功率分析攻擊影響。任何合理的技術變更或是步驟調整都屬於本發明所揭露的範疇。步驟S402至S410的解釋如下:
步驟S402: 偽隨機序列產生器120依據種子序列Dss產生偽隨機序列Drs;
步驟S404: 結合器122結合敏感資料序列Dks及偽隨機序列Drs以恢復保護資料序列Dps,同時區域選擇器16產生寫入位址Awrt;
步驟S406: 非揮發性記憶體14依據寫入位址Awrt儲存保護資料序列Dps;
步驟S408: 啟動後,偽隨機序列產生器320依據種子序列Dss產生偽隨機序列Drs,且區域選擇器16產生讀取位址Ard以從非揮發性記憶體14讀取保護資料序列Dps;
步驟S410: 結合器322結合保護資料序列Dps及偽隨機序列Drs以恢復敏感資料序列Dks。
步驟S402至S410的解釋已在前面段落中提供,在此不再贅述。積體電路1、3可採用方法400以使敏感資料不受光學旁路攻擊、功率監控攻擊及差分功率分析攻擊影響。
積體電路1、3及方法400用以在儲存前加擾敏感資料及在使用前解擾受保護的資料,以使敏感資料不受光學旁路攻擊、功率監控攻擊及差分功率分析攻擊影響。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
1、3:積體電路
10:種子暫存器
12:加擾器
120、320:偽隨機序列產生器
122、322:結合器
14:非揮發性記憶體
16:區域選擇器
20:線性反饋移位暫存器
30:處理器
32:解擾器
Dss:種子序列
Drs:偽隨機序列
Dks:敏感資料序列
Dps:保護資料序列
Af:初始區域位址
Awrt:寫入位址
Ard:讀取位址
C0至C15:移位暫存器單元
G1至G3:XOR閘
400:方法
S402至S410:步驟
第1圖係為本發明實施例的積體電路的方塊圖。
第2圖顯示16位元線性反饋移位暫存器的示意圖。
第3圖係為本發明實施例的另一種積體電路的方塊圖。
第4圖係為保護第1圖積體電路的敏感資料序列之方法的流程圖。
400:方法
S402至S410:步驟
Claims (18)
- 一種積體電路,包含: 一種子暫存器,用以儲存一種子序列; 一偽隨機序列產生器,耦接於該種子暫存器,用以依據該種子序列產生一偽隨機序列; 一結合器,耦接於該偽隨機序列產生器,用以結合一第一資料序列及該偽隨機序列以產生一第二資料序列,該第一資料序列無法從該積體電路之外被讀取;及 一非揮發性記憶體,耦接於該結合器,用以儲存該第二資料序列。
- 如請求項1所述之積體電路,其中該第一資料序列與該第二資料序列分別是一敏感資料序列與一保護資料序列。
- 如請求項2所述之積體電路,更包含: 一區域選擇器,耦接於該偽隨機序列產生器,用以接收一區域位址,及依據該偽隨機序列產生器的一暫存器長度以及該區域位址來更新一寫入位址; 其中該非揮發性記憶體用以依據該寫入位址儲存該保護資料序列。
- 如請求項1所述之積體電路,其中該第一資料序列與該第二資料序列分別是一保護資料序列與一敏感資料序列。
- 如請求項4所述之積體電路,更包含: 一區域選擇器,耦接於該偽隨機序列產生器,用以接收該非揮發性記憶體之一區域位址,及依據該區域位址及該偽隨機序列產生器的一寄存器長度更新一讀取位址。
- 如請求項5所述之積體電路,其中該結合器更用以在該積體電路啟動後,依據該讀取位址獲取該保護資料序列。
- 2、3、4、5、或6所述之積體電路,其中該偽隨機序列產生器包含一線性反饋移位暫存器,用以載入該種子序列以產生該偽隨機序列。
- 2、3、4、5、或6所述之積體電路,其中該種子序列係特定於該積體電路。
- 2、3、4、5、或6所述之積體電路,其中該偽隨機序列產生器係相關於一特徵多項式,該特徵多項式係特定於該積體電路之一產品版本。
- 2、3、4、5、或6所述之積體電路,其中該非揮發性記憶體係一一次性可編程記憶體。
- 2、3、4、5、或6所述之積體電路,其中該第二資料序列內之資料具有實質上相同的平均功率及實質上相同的電位差。
- 2、3、4、5、或6所述之積體電路,其中該種子序列包含以下的至少其一:一獨特用戶識別符(unique user identifier,UUID)、一獨特裝置識別符(unique device identifier,UDID)及一亂數產生器於出廠設定時產生的一獨特位元序列。
- 一種保護一積體電路內之一敏感資料序列之方法,包含: 依據儲存於該積體電路的一種子序列來產生一偽隨機序列; 結合一敏感資料序列及該偽隨機序列以產生一保護資料序列,該保護資料序列無法由該積體電路外部存取;及 儲存該保護資料序列。
- 如請求項13所述之方法,更包含: 依據一區域位址及該偽隨機序列產生器的一寄存器長度產生一寫入位址; 其中儲存該保護資料序列包含依據該寫入位址將該保護資料序列儲存至一非揮發性記憶體。
- 如請求項13所述之方法,其中依據該種子序列產生該偽隨機序列係依據一特徵多項式,其中該特徵多項式係特定於該積體電路之一產品版本。
- 如請求項13所述之方法,更包含: 結合該保護資料序列及該偽隨機序列以恢復該敏感資料序列。
- 如請求項13所述之方法,其中該種子序列係特定於該積體電路。
- 如請求項13所述之方法,其中該種子序列包含以下的至少其一:一獨特用戶識別符(unique user identifier,UUID)、一獨特裝置識別符(unique device identifier,UDID)及一亂數產生器於出廠設定時產生的一獨特位元序列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/705,195 US11341064B2 (en) | 2019-12-05 | 2019-12-05 | Method of protecting sensitive data in integrated circuit and integrated circuit utilizing same |
US16/705,195 | 2019-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202123046A true TW202123046A (zh) | 2021-06-16 |
TWI802783B TWI802783B (zh) | 2023-05-21 |
Family
ID=76162455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109103614A TWI802783B (zh) | 2019-12-05 | 2020-02-06 | 保護積體電路中敏感資料的方法及積體電路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11341064B2 (zh) |
CN (1) | CN112926100A (zh) |
TW (1) | TWI802783B (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4870346A (en) * | 1987-09-14 | 1989-09-26 | Texas Instruments Incorporated | Distributed pseudo random sequence control with universal polynomial function generator for LSI/VLSI test systems |
US6785798B2 (en) | 2001-08-10 | 2004-08-31 | Macronix International Co., Ltd. | Method and system for circular addressing with efficient memory usage |
JP3735670B2 (ja) | 2003-03-19 | 2006-01-18 | 独立行政法人情報通信研究機構 | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム |
JP4559985B2 (ja) * | 2005-03-15 | 2010-10-13 | 株式会社東芝 | 乱数発生回路 |
KR100782327B1 (ko) | 2006-05-27 | 2007-12-06 | 삼성전자주식회사 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
US20090160610A1 (en) * | 2007-12-19 | 2009-06-25 | Doddamane Krishna S | Pseudorandom number generator |
CA2664620A1 (en) * | 2009-05-07 | 2009-07-20 | Avalon Microelectronics, Inc. | Pseudo-random bit sequence generator |
US8971530B2 (en) * | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
CN101763239A (zh) | 2009-12-31 | 2010-06-30 | 苏州市华芯微电子有限公司 | 随机加密方法及装置 |
US9383969B2 (en) * | 2011-04-05 | 2016-07-05 | Intrinsic Id B.V. | Random number generating system based on memory start-up noise |
US8843539B2 (en) * | 2012-05-08 | 2014-09-23 | Caringo, Inc. | Generation of seed value for pseudo random number generator |
-
2019
- 2019-12-05 US US16/705,195 patent/US11341064B2/en active Active
-
2020
- 2020-02-06 CN CN202010081472.XA patent/CN112926100A/zh active Pending
- 2020-02-06 TW TW109103614A patent/TWI802783B/zh active
Also Published As
Publication number | Publication date |
---|---|
US20210173793A1 (en) | 2021-06-10 |
US11341064B2 (en) | 2022-05-24 |
TWI802783B (zh) | 2023-05-21 |
CN112926100A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2904732B1 (en) | System for generating a cryptographic key from a memory used as a physically unclonable function | |
US10644873B2 (en) | Method for protecting substitution operation against side-channel analysis | |
KR101324825B1 (ko) | 메시지 인증 코드 사전 연산 방법 및 시스템 | |
JP6499519B2 (ja) | メッセージを安全に交換する暗号方式並びにこの方式を実施する装置及びシステム | |
JP5987250B2 (ja) | カスタマイズされたマスキングによって保護される低複雑度の電子回路 | |
CN106487497B (zh) | 对rijndael算法的dpa保护 | |
CN106487498B (zh) | 电子电路对边信道攻击的抵抗的检验 | |
JP5693927B2 (ja) | 故障利用攻撃の検出方法及び検出装置 | |
EP3531613B1 (en) | Method and circuit for implementing a substitution table | |
KR100849956B1 (ko) | 반도체 장치 및 그것의 스크램블된 데이터 전송 방법 | |
US20160170711A1 (en) | Input-dependent random number generation using memory arrays | |
US6961427B1 (en) | Methods and apparatus for keystream generation | |
TWI802783B (zh) | 保護積體電路中敏感資料的方法及積體電路 | |
TW201728120A (zh) | 防止通過功率分析進行竊聽的電子電路及其防止竊聽的方法 | |
CN110943837B (zh) | 一种基于改进md5加密算法的用户密码加密方法 | |
JP4435593B2 (ja) | 耐タンパー情報処理装置 | |
US10678709B2 (en) | Apparatus and method for memory address encryption | |
EP1232603B1 (en) | Methods and apparatus for keystream generation | |
US20230281305A1 (en) | Method for protecting against side-channel attacks | |
US10389522B2 (en) | Secure data storage | |
EP3264666B1 (en) | A protection method and device against a side-channel analysis | |
EP3264667A1 (en) | A method for protecting a substitution operation against a side-channel analysis |