TWI802783B - 保護積體電路中敏感資料的方法及積體電路 - Google Patents

保護積體電路中敏感資料的方法及積體電路 Download PDF

Info

Publication number
TWI802783B
TWI802783B TW109103614A TW109103614A TWI802783B TW I802783 B TWI802783 B TW I802783B TW 109103614 A TW109103614 A TW 109103614A TW 109103614 A TW109103614 A TW 109103614A TW I802783 B TWI802783 B TW I802783B
Authority
TW
Taiwan
Prior art keywords
sequence
data sequence
integrated circuit
pseudo
random
Prior art date
Application number
TW109103614A
Other languages
English (en)
Other versions
TW202123046A (zh
Inventor
艾倫麥克尼爾 卡爾
Original Assignee
新加坡商瑞昱新加坡有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新加坡商瑞昱新加坡有限公司 filed Critical 新加坡商瑞昱新加坡有限公司
Publication of TW202123046A publication Critical patent/TW202123046A/zh
Application granted granted Critical
Publication of TWI802783B publication Critical patent/TWI802783B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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/755Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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/1433Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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/1441Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/145Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一種保護積體電路內之敏感資料序列之方法。該方法包含依據種子序列產生偽隨機序列,結合敏感資料序列及偽隨機序列以產生保護資料序列,及儲存保護資料序列及種子序列。保護資料序列無法由積體電路外部存取。

Description

保護積體電路中敏感資料的方法及積體電路
本發明關於資料安全性,特別是一種保護積體電路中敏感資料的方法及使用該方法的積體電路。
電子裝置有賴於密碼系統為應用程序及相關資料提供安全性。密碼系統往往是未授權攻擊者的目標,未授權攻擊者會試圖訪問應用程序或裝置或試圖收集敏感信息,如信用卡卡號或加密密鑰等。許多種工具及方法都可用於提取電子裝置的安全資訊,包含直接攻擊,針對目標加密系統採用的加密算法弱點進行攻擊,及旁路攻擊,依據從實體實現之密碼系統所收集到的資訊來進行攻擊。旁路攻擊(side-channel attacks)嘗試通過測量密碼系統的物理特性,例如密碼系統的功率消耗,或通過光學檢測,例如高解析相機或顯微鏡檢測來導出敏感資訊。
功率監控攻擊通過在執行密碼操作時測量裝置所抽取的電流來監控密碼系統的功率消耗,並且從功率消耗推導密碼操作或敏感資料。功率攻擊能夠獲取密碼系統執行的指令序列。差分功率分析(Differential power analysis,DPA)攻擊結合基礎功率監視攻擊的功率測量及統計分析以提取密碼密鑰的資訊或密碼操作中使用的敏感資料。統計工具用來對電位差值及功耗測量進行相關程序以獲得敏感資訊。
光學攻擊使用高倍率裝置,如透射電子顯微鏡(transmission electron microscope,TEM)來讀取並推斷密碼密鑰或其它敏感資料。
本發明實施例提供一種積體電路,包含種子暫存器、偽隨機序列產生器、結合器及非揮發性記憶體。種子暫存器用以儲存種子序列。偽隨機序列產生器用以依據種子序列產生偽隨機序列。結合器用以結合第一資料序列及偽隨機序列以產生第二資料序列,第二資料序列無法由積體電路之外被存取。非揮發性記憶體耦接於結合器,用以儲存第二資料序列。
本發明實施例另提供一種保護積體電路內之敏感資料序列之方法,包含:依據儲存於該積體電路內的種子序列產生偽隨機序列;結合敏感資料序列及偽隨機序列以產生保護資料序列,保護資料序列無法由積體電路外部存取;及儲存保護資料序列。
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圖積體電路的敏感資料序列之方法的流程圖。
第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用以在儲存前加擾敏感資料及在使用前解擾受保護的資料,以使敏感資料不受光學旁路攻擊、功率監控攻擊及差分功率分析攻擊影響。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化 與修飾,皆應屬本發明之涵蓋範圍。
400:方法
S402至S410:步驟

Claims (13)

  1. 一種積體電路,包含:一種子暫存器,用以儲存一種子序列,其中該種子序列係特定於該積體電路;一偽隨機序列產生器,耦接於該種子暫存器,用以依據該種子序列產生一偽隨機序列;一結合器,耦接於該偽隨機序列產生器,用以結合一第一資料序列及該偽隨機序列以產生一第二資料序列,該第一資料序列無法從該積體電路之外被讀取,其中該第二資料序列內之資料具有實質上相同的平均功率及實質上相同的電位差;及一非揮發性記憶體,耦接於該結合器,用以儲存該第二資料序列;其中該第一資料序列與該第二資料序列的其中之一者是一敏感資料序列,另一者是一保護資料序列,該保護資料序列可被恢復為該敏感資料序列。
  2. 如請求項1所述之積體電路,更包含:一區域選擇器,用以接收一區域位址,及依據該偽隨機序列產生器的一暫存器長度以及該區域位址來更新一寫入位址;其中該第一資料序列是該敏感資料序列,該第二資料序列是該保護資料序列;其中該非揮發性記憶體用以依據該寫入位址儲存該保護資料序列。
  3. 如請求項1所述之積體電路,更包含:一區域選擇器,用以接收該非揮發性記憶體之一區域位址,及依據該區域 位址及該偽隨機序列產生器的一寄存器長度更新一讀取位址;其中該第一資料序列是該保護資料序列,該第二資料序列是該敏感資料序列。
  4. 如請求項3所述之積體電路,其中該結合器更用以在該積體電路啟動後,依據該讀取位址獲取該保護資料序列。
  5. 如請求項1、2、3或4所述之積體電路,其中該偽隨機序列產生器包含一線性反饋移位暫存器,用以載入該種子序列以產生該偽隨機序列。
  6. 如請求項1、2、3或4所述之積體電路,其中該偽隨機序列產生器係相關於一特徵多項式,該特徵多項式係特定於該積體電路之一產品版本。
  7. 如請求項1、2、3或4所述之積體電路,其中該非揮發性記憶體係一一次性可編程記憶體。
  8. 如請求項1、2、3或4所述之積體電路,其中該種子序列包含以下的至少其一:一獨特用戶識別符(unique user identifier,UUID)、一獨特裝置識別符(unique device identifier,UDID)及一亂數產生器於出廠設定時產生的一獨特位元序列。
  9. 一種保護一積體電路內之一敏感資料序列之方法,包含:一偽隨機序列產生器依據儲存於該積體電路的一種子序列來產生一偽隨機序列,其中該種子序列係特定於該積體電路; 一結合器結合一敏感資料序列及該偽隨機序列以產生一保護資料序列,該保護資料序列無法由該積體電路外部存取,其中該保護資料序列內之資料具有實質上相同的平均功率及實質上相同的電位差;及一非揮發性記憶體儲存該保護資料序列,該保護資料序列可被恢復為該敏感資料序列。
  10. 如請求項9所述之方法,更包含:依據一區域位址及該偽隨機序列產生器的一寄存器長度產生一寫入位址;其中儲存該保護資料序列包含依據該寫入位址將該保護資料序列儲存至一非揮發性記憶體。
  11. 如請求項9所述之方法,其中依據該種子序列產生該偽隨機序列係依據一特徵多項式,其中該特徵多項式係特定於該積體電路之一產品版本。
  12. 如請求項9所述之方法,更包含:結合該保護資料序列及該偽隨機序列以恢復該敏感資料序列。
  13. 如請求項9所述之方法,其中該種子序列包含以下的至少其一:一獨特用戶識別符(unique user identifier,UUID)、一獨特裝置識別符(unique device identifier,UDID)及一亂數產生器於出廠設定時產生的一獨特位元序列。
TW109103614A 2019-12-05 2020-02-06 保護積體電路中敏感資料的方法及積體電路 TWI802783B (zh)

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 TW202123046A (zh) 2021-06-16
TWI802783B true 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)

Citations (10)

* Cited by examiner, † Cited by third party
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
TW550457B (en) * 2001-08-10 2003-09-01 Macronix Int Co Ltd Method and system for circular addressing with efficient memory usage
US20040184609A1 (en) * 2003-03-19 2004-09-23 Ken Umeno Random sequence generating apparatus, encryption/decryption apparatus, random sequence generating method, encryption/decryption method and program
TW200811873A (en) * 2006-05-27 2008-03-01 Samsung Electronics Co Ltd Semiconductor devices, a system including semiconductor devices and methods thereof
US20090160610A1 (en) * 2007-12-19 2009-06-25 Doddamane Krishna S Pseudorandom number generator
CN101763239A (zh) * 2009-12-31 2010-06-30 苏州市华芯微电子有限公司 随机加密方法及装置
US20130304781A1 (en) * 2012-05-08 2013-11-14 Caringo, Inc. Generation of seed value for pseudo random number generator
US20140040338A1 (en) * 2011-04-05 2014-02-06 Intrinsic Id B.V. Random number generating system based on memory start-up noise
US20140237013A1 (en) * 2009-05-07 2014-08-21 Altera Canada Co. Pseudo-random bit sequence generator
US20160197724A1 (en) * 2009-06-24 2016-07-07 Intel Corporation Cryptographic Key Generation Using A Stored Input Value And A Stored Count Value

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4559985B2 (ja) * 2005-03-15 2010-10-13 株式会社東芝 乱数発生回路

Patent Citations (10)

* Cited by examiner, † Cited by third party
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
TW550457B (en) * 2001-08-10 2003-09-01 Macronix Int Co Ltd Method and system for circular addressing with efficient memory usage
US20040184609A1 (en) * 2003-03-19 2004-09-23 Ken Umeno Random sequence generating apparatus, encryption/decryption apparatus, random sequence generating method, encryption/decryption method and program
TW200811873A (en) * 2006-05-27 2008-03-01 Samsung Electronics Co Ltd Semiconductor devices, a system including semiconductor devices and methods thereof
US20090160610A1 (en) * 2007-12-19 2009-06-25 Doddamane Krishna S Pseudorandom number generator
US20140237013A1 (en) * 2009-05-07 2014-08-21 Altera Canada Co. Pseudo-random bit sequence generator
US20160197724A1 (en) * 2009-06-24 2016-07-07 Intel Corporation Cryptographic Key Generation Using A Stored Input Value And A Stored Count Value
CN101763239A (zh) * 2009-12-31 2010-06-30 苏州市华芯微电子有限公司 随机加密方法及装置
US20140040338A1 (en) * 2011-04-05 2014-02-06 Intrinsic Id B.V. Random number generating system based on memory start-up noise
US20130304781A1 (en) * 2012-05-08 2013-11-14 Caringo, Inc. Generation of seed value for pseudo random number generator

Also Published As

Publication number Publication date
US20210173793A1 (en) 2021-06-10
TW202123046A (zh) 2021-06-16
US11341064B2 (en) 2022-05-24
CN112926100A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
US10491372B2 (en) Protection method and device against a side-channel analysis
EP2904732B1 (en) System for generating a cryptographic key from a memory used as a physically unclonable function
EP2465069B1 (en) Physically unclonable function with tamper prevention and anti-aging system
JP6499519B2 (ja) メッセージを安全に交換する暗号方式並びにこの方式を実施する装置及びシステム
JP5693927B2 (ja) 故障利用攻撃の検出方法及び検出装置
US10282312B2 (en) Integrated circuit, method for protecting an integrated circuit and computer program product
US20070217608A1 (en) Data scramble/descramble technique for improving data security within semiconductor device
US6961427B1 (en) Methods and apparatus for keystream generation
TWI802783B (zh) 保護積體電路中敏感資料的方法及積體電路
EP3200173B1 (en) Method of protecting electronic circuit against eavesdropping by power analysis and electronic circuit using the same
JP2005045760A (ja) 暗号処理方法及び装置
EP1232603B1 (en) Methods and apparatus for keystream generation
US20240037285A1 (en) Flash Programming Randomization
CN111600873B (zh) 防侧信道攻击方法及相关装置
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