TW202131207A - 安全積體電路及其方法 - Google Patents
安全積體電路及其方法 Download PDFInfo
- Publication number
- TW202131207A TW202131207A TW109140407A TW109140407A TW202131207A TW 202131207 A TW202131207 A TW 202131207A TW 109140407 A TW109140407 A TW 109140407A TW 109140407 A TW109140407 A TW 109140407A TW 202131207 A TW202131207 A TW 202131207A
- Authority
- TW
- Taiwan
- Prior art keywords
- combinational logic
- logic circuits
- input data
- multiple sets
- functionally equivalent
- 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/72—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 in cryptographic circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/13—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
- H03K5/135—Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K2005/00013—Delay, i.e. output pulse is delayed after input pulse and pulse length of output pulse is dependent on pulse length of input pulse
-
- 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
Abstract
安全積體電路(IC)包括多個功能等效的組合邏輯電路,多組狀態採樣組件和控制電路。每個組合邏輯電路接收一個或多個輸入,並將組合邏輯運算應用於一個或多個輸入,以產生一個或多個輸出。每組狀態採樣組件包括一個或多個狀態採樣元件,其對組合邏輯電路之一的一個或多個輸出進行採樣,並將一個或多個採樣輸出作為輸入,以提供給組合邏輯電路中的另一個。控制電路接收多組輸入資料以供組合邏輯電路處理,將多組輸入資料路由到組合邏輯電路,從組合邏輯電路中提取多組輸出資料,並與相應的各組輸入資料相關聯地輸出各組輸出資料。
Description
本發明一般涉及電子電路中的資料安全性,尤其涉及用於防止旁路攻擊的方法和系統。
為了從電子裝置中提取信息,已經開發了被稱為旁路攻擊的各種技術。旁路攻擊通常由未授權方執行,以訪問存儲在裝置中的秘密信息。一些旁路攻擊利用了以下事實:電子裝置通常在邏輯元件轉換期間消耗功率。攻擊透過非侵入性地測量從裝置發出的電子信號和/或電磁輻射來提取信息,而無需電性接觸承載信息的裝置。
已經提出了用於保護電子裝置免受旁路攻擊的各種對策。例如,巴達姆(Baddam)在2012年2月於南安普頓大學物理與應用科學學院電子和計算機科學學院的博士學位論文“針對差分功率分析的硬件級對策”中描述了幾種類型的對策,尤其是雙軌預充電(Dual Rail Precharge,DRP)電路。
本發明的實施例提供了一種安全積體電路(IC),其包括多個功能等效的(functionally-equivalent)組合邏輯電路,多組狀態採樣組件和控制電路。各組合邏輯電路經配置以接收一個或一個以上的輸入,且將組合邏輯運算(combinational-logic operation)應用於所述一個或一個以上的輸入,以產生一個或一個以上的輸出。每組狀態採樣組件包括一個或多個狀態採樣元件,這些狀態採樣元件配置為對功能等效的組合邏輯電路之一的一個或多個輸出進行採樣,並將一個或多個採樣輸出作為輸入,以提供給另一個功能等效的組合邏輯電路。控制電路則是配置為接收多組輸入資料,以由功能等效的組合邏輯電路進行處理,將多組輸入資料路由到組合邏輯電路,從組合邏輯電路中提取多組輸出資料,並與各組輸入資料相關聯地輸出各組輸出資料。
在一些實施例中,組合邏輯運算包括迭代安全運算的迭代運算。在一些實施例中,透過將多個組合邏輯電路之一個或多個採樣輸出作為輸入,以提供給多個組合邏輯電路之另一個,使得應用於一組給定輸入資料的組合邏輯運算之迭代運算係由不同之多個組合邏輯電路之不同組合邏輯電路來執行。在一些實施例中,透過將多個組合邏輯電路之一個或多個採樣輸出作為輸入,以提供給多個組合邏輯電路之另一個,使得另一個組合邏輯電路之一給定的組合邏輯電路係在連續的時脈週期中,將該組合邏輯運算應用於不同之多組輸入資料。
在一個實施例中,多個功能等效的組合邏輯電路之至少兩個在硬體實現上彼此不同。
在另一個實施例中,控制電路係配置以透過相應的輸入輸出介面接收多組輸入資料,並在一相同的輸入輸出介面上輸出各組輸出資料,其中相同的輸入輸出介面係為接收各組輸出資料對應的組輸入資料。在又一個實施例中,控制電路係配置為以循環交替(cyclic alternation)的方式,將多組輸入資料分配到多個功能等效的組合邏輯電路,並以循環交替的方式,從多個功能等效的組合邏輯電路收集多組輸出資料。
在公開的實施例中,控制電路被配置為將至少一些輸入資料初始化為隨機或虛擬隨機資料。在一個實施例中,多個組合邏輯電路之一個或多個係配置為執行以下至少一項:(i)在提取多組輸出資料之後,繼續應用組合邏輯運算,以及(ii)在提供多組輸入資料之前,開始應用組合邏輯運算。附加地或可替代地,控制電路係配置為在將多組輸入資料提供給多個組合邏輯電路之至少兩個的時間之間,產生相對延遲。
根據本發明的實施例,另外提供一種用於在安全積體電路(IC)中進行資料處理的方法。上述方法包括:操作多個功能等效的組合邏輯電路,以在該多個組合邏輯電路之各組合邏輯電路中,接收一個或多個輸入,並將組合邏輯運算應用於該一個或多個輸入,以產生一個或多個輸出。操作一狀態採樣組件,對該多個功能等效的組合邏輯電路之其中一個的該一或多個輸出進行採樣,並提供該一個或多個採樣輸出作為輸入,以提供給該多個功能等效的組合邏輯電路之另一個。使用一控制電路,接收多組輸入資料以供該多個功能等效的組合邏輯電路處理,將該多組輸入資料路由至該多個功能等效的組合邏輯電路,且從該多個功能等效的組合邏輯電路中提取多組輸出資料,並與該各組輸入資料相關聯地輸出該各組輸出資料。
本文描述的本發明的實施例提供了用於保護電子裝置免旁路攻擊的改進的方法和電路。所公開的技術可以在各種類型的安全裝置中使用,例如安全嵌入式控制器和存儲裝置。
在一些公開的實施例中,安全積體電路(IC)包括被配置為同時操作的多個組合邏輯電路。每一組合邏輯電路經配置以接收一個或一個以上的輸入,且將組合邏輯運算應用於所述輸入以產生一個或一個以上的輸出。組合邏輯操作通常包括一些迭代安全運算(iterative secure computation)的迭代運算(iteration),例如數學運算、加密、解密或認證運算。
在所公開的實施例中,多個組合邏輯電路在功能上彼此等效,即,當給予相同的輸入時產生相同的輸出,但是內部實現和/或行為可能不同。設計者可能會故意引入一些差異,例如,可以透過設計或綜合工具,或透過製造過程中的處理變化來引入其他差異。
該積體電路還包括多組正反器(Flip-Flop,FF),每組正反器係配置為對相應的組合邏輯電路的輸出進行採樣,並將採樣輸出作為下一時脈週期的輸入。組合邏輯電路,介面信號和正反器的相應組合,有時共同稱為“處理引擎”。
然而,代替常規地,將採樣的輸出反饋回相同的組合邏輯電路的輸入,在所公開的實施例中,至少一些正反器係配置為將採樣輸出作為輸入,以提供給另一組合邏輯電路。由於多個組合邏輯電路在功能上是等效的,並且由於它們應用了無記憶(無狀態)且僅依賴於輸入的組合邏輯運算,因此即使採用其他的組合邏輯電路,此配置也會產生正確的輸出信號。
在示例實施例中,多個組合邏輯電路以上述方式週期性地彼此耦合(亦即,每個組合邏輯電路的輸出係採樣並作為輸入,以提供給下一個組合邏輯電路;最後一個組合邏輯的輸出電路係採樣並作為輸入,以提供給第一組合邏輯電路)。因此,當執行迭代安全運算的一系列迭代運算時,由各種組合邏輯電路交替地執行連續迭代運算。當並行執行多個這樣的序列(多個迭代安全運算)時,給定的組合邏輯電路會在一個時脈週期至下一個時脈週期之間,在不同安全運算的組合邏輯運算之間進行交替。這種交替使得旁路攻擊者難以識別正在執行的安全運算的特徵。
功能等效的組合邏輯電路之間的內部差異進一步分散了安全積體電路的功耗和發射的輻射曲線,因此進一步增強了對旁路攻擊的適應性。由於安全運算的迭代運算分佈在多個組合邏輯電路上,因此所公開的配置對於防止故障注入攻擊也是有用的。如下面將描述的,對故障注入有用的另一特徵是,在一些實施例中,一個或多個組合邏輯電路可以運行已知答案測試。
當使用公開的配置時,通常需要從正確的組合邏輯電路中提取安全運算的最終結果(亦即,提取執行最後迭代運算的組合邏輯電路之輸出),並將最終結果結合相應的多組輸入資料。考慮例如一個實施例,其中在多個相應的輸入輸出(I/O)介面上接收多組輸入資料(例如,多個用於加密的明文字)。在此實施例中,通常需要從正確的組合邏輯電路的輸出中提取各組輸出資料(例如,每個加密資料字),並在輸入輸出介面輸出各組輸出資料,透過它們接收相應的多組輸入資料。
因此,在一些實施例中,安全積體電路還包括控制電路,上述控制電路係配置為接收多組輸入資料,以由功能等效的組合邏輯電路進行處理,以將多組輸入資料路由至功能等效的組合邏輯電路,以從功能等效的組合邏輯電路中提取多組輸出資料,並與相應的各組輸入資料相關聯地輸出各組輸出資料。
在一些實施例中,可以在安全積體電路設計期間使用自動化過程(例如,使用腳本)來實現功能等效的組合邏輯電路之間的耦合。
本文所述的方法和系統在包括多個組合邏輯電路的IC中提供了增強的抵抗旁路攻擊的彈性。同時,在一些實施例中,所公開的技術不會招致時脈速度或吞吐量的損失。在此描述了這些技術的各種實現示例。還描述了進一步增加抵抗旁路攻擊的彈性的實施例,諸如使用負邏輯來實現一個或多個組合邏輯電路。
§ 系統描述
圖1是示意性地示出了根據本發明的實施例的被保護免旁路攻擊的安全電子裝置24的方塊圖。安全電子裝置24可以是例如安全積體電路(IC)的一部分,例如具有集成加密電路的存儲裝置,或者是包括加密或認證電路的嵌入式控制器(Embedded Controller,簡稱為EC)或基板管理控制器(Baseboard Management Controller, 簡稱為BMC),或任何其他合適的安全電子裝置。
安全電子裝置24描繪在圖1的底部。圖1的頂部示出了假設的常規裝置20,以進行比較和易於說明。以下描述將首先解釋常規裝置20的操作,接著為安全電子裝置24的實施例。
假設的常規裝置20包括多個組合邏輯電路28。每個組合邏輯電路被配置為接收一個或多個輸入,並且對一個或多個輸入施加組合邏輯運算,以產生一個或多個輸出。各個組合邏輯電路28耦合到一組一個或多個狀態採樣組件,在本示例中是正反器(FF)組32,其在每個時脈週期對組合邏輯電路的輸出進行採樣,並提供採樣輸出,以供在下一個時脈週期中作為組合邏輯電路的輸入。如上所述,組合邏輯電路、介面信號和相應的FF組,有時稱為“處理引擎”。
在本示例中,常規裝置20包括三個以28A、28B和28C表示的組合邏輯電路,其耦合到以32A、32B和32C表示的相應正反器組。組合邏輯電路28A的輸入和輸出表示為I/O1
,組合邏輯電路28B的輸入和輸出表示為I/O2
,且組合邏輯電路28C的輸入和輸出表示為I/O3
。
組合邏輯電路28A-28C中的每一個被配置為執行特定的組合邏輯操作,通常是安全運算或其構件。組合邏輯運算的示例包括乘法、加密、解密、簽名或認證過程的迭代運算,或任何其他合適類型的組合邏輯運算。安全處理操作,例如安全哈希算法(Secure Hash Algorithm,簡稱為SHA) 、資料加密標準(Data Encryption Standard,簡稱為DES)或高級加密標準(Advanced Encryption Standard,簡稱為AES)操作,通常包括在多個連續的時脈週期中執行的此類組合邏輯操作的序列。
例如,考慮一種場景,其中各組合邏輯電路(每個電路28A-28C)都配置為執行某種迭代加密算法的迭代運算。在典型的操作流程中,組合邏輯電路28A在I/O1
上接收要加密的輸入資料字IN1,組合邏輯電路28B在I/O2
上接收要加密的另一個輸入資料字IN2,並且組合邏輯電路28C在I/O3
上接收另一個要加密的輸入資料字IN3。組合邏輯電路28A從輸入資料字開始執行一系列的迭代。在每個迭代之組合邏輯電路28A中,將組合邏輯運算應用於其輸入(其可以來自I/O1
或來自正反器組32A的先前狀態)。正反器組32A對輸出進行採樣,並將其作為下一次迭代運算的輸入。按照操作順序,在I/O1
上輸出加密的資料字OUT1。同時,組合邏輯電路28B從提供在I/O2
上的輸入資料字IN2開始執行一系列的迭代運算,並在I/O2
上輸出加密的資料字OUT2。組合邏輯電路28C類似地加密它在I/O3
上接收到的輸入資料字IN3,以便在I/O3
上輸出加密的資料字OUT3。
如圖所示,在常規裝置20中,組合邏輯電路28A-28C彼此獨立地操作。各組合邏輯電路28接收各自的輸入,將組合邏輯操作應用於輸入,使用相應的正反器組32對輸出進行採樣,並且將採樣輸出反饋到其自身的輸入以用於下一個時脈週期。由於各組合邏輯電路的獨立操作使攻擊者能夠識別功耗和/或發射輻射中的特徵模式,因此這種常規體系結構對旁路攻擊(side-channel attacks)很敏感。
在一些實施例中,透過在不同的處理電路(組合邏輯電路28A-28C)之間引入故意的耦合來降低對旁路攻擊的敏感性。在圖1的底部安全電子裝置24展示了根據本發明的實施例的耦合架構。
圖1的安全電子裝置24的體系結構背後的假設是組合邏輯電路28A-28C在功能上彼此等效。在本文中,術語“功能等效”是指,在給定相同多組輸入資料的情況下,任何組合邏輯電路都將產生相同的多組輸出資料。但是,在不同的組合邏輯電路之間允許內部硬體實現和/或行為方面的差異。
內部實現上的差異的幾個非限制性示例仍然保持功能等效,包括以下內容:
§ 可以使用不同的預配置掩碼(preconfigured masks)為其輸入和輸出製作不同組合邏輯電路中的查找表(Look-Up Table,LUT),並且可以將查找表的輸入和輸出與相應的掩碼進行XOR運算,以符合預期的組合-邏輯運算。
§ 對於A=B+C,組合邏輯運算(X*A)和(X*B+X*C)在功能上等效,但實現方式和功耗不同。
§ 任何組合邏輯運算都可以實現為乘積之和(sum-of-product)或和之乘積(product-of-sum)。上述實現是不同的,但在功能上是等效的。
§ 由於不同的物理約束或不同的合成指令,即使具有相同RTL邏輯實現的組合邏輯運算也可以不同。
再次考慮示例場景,其中提供輸入資料字IN1用於I/O1
上的加密,提供輸入資料字IN2用於I/O2
上的加密,以及提供輸入資料字IN3用於I/O3
上的加密。在安全電子裝置24的配置中,組合邏輯電路28A對輸入資料字IN1執行第一迭代,但是結果輸出由正反器組32B採樣。這樣,組合邏輯電路28B執行該序列中的下一個迭代運算(下一個時鐘週期-加密輸入資料字IN1的第二個迭代運算)。(組合邏輯電路28B的)結果輸出由正反器組32C採樣,並且下一迭代運算(加密輸入資料字IN1的第三迭代運算)由組合邏輯電路28C執行。該序列以循環方式進行,亦即組合邏輯電路28C的輸出由正反器組32A採樣,並作為輸入提供給組合邏輯電路28A。
因此,由組合邏輯電路28A、28B、28C、28A、28B、28C、28A等週期性地執行加密IN1所需的組合邏輯運算的序列。由於組合邏輯電路28A-28C在功能上彼此等效,所以最終結果(加密資料字OUT1)是正確的。在組合邏輯電路之一的輸出上提供加密的資料字(取決於執行迭代運算的次數)。
類似地,加密IN2所需的組合邏輯運算的序列在電路28B中開始,並且在組合邏輯電路28C、28A、28B、28C、28A、28B等中循環地進行。加密IN3所需的組合邏輯操作序列在組合邏輯電路28C中開始,並在電路28A、28B、28C、28A、28B、28C等中循環進行。
從上面的描述可以看出,從一個時脈週期到下一時脈週期,給定的組合邏輯電路在屬於不同序列的組合邏輯運算之間交替。例如,組合邏輯電路28A在連續的時脈週期中執行以下操作:
§ 資料字IN1的第一次加密迭代運算。
§ 資料字IN3的第二次加密迭代運算。
§ 資料字IN2的次加密迭代運算。
§ 資料字IN1的第四次加密迭代運算。
§ 資料字IN3的第五次加密迭代運算。
§ 資料字IN2的第六次加密迭代運算。
§ …
在上述與加密有關的示例中,控制電路在加密序列開始時(在第一次加密迭代運算之前)將來自I/O介面的功能輸入提供給組合邏輯電路,並從組合邏輯電路中提取輸出給I/O介面位於加密序列的末尾(在最後一次加密迭代運算之後)。在更一般的情況下,控制電路可以在任何合適的時脈週期(例如每個時脈週期)提供一個或多個輸入,並在任何合適的時脈週期(例如每個時脈週期)提取一個或多個輸出。概括地說,(i)安全電子裝置24的當前狀態由各種正反器組保留,(ii)下一個狀態是當前狀態,組合邏輯操作以及來自I/O介面的一個或多個輸入的函數(iii)輸出到I/O介面的是當前狀態)例如,一部分),組合邏輯操作以及來自I/O介面的一個或多個輸入的反映。
其他組合邏輯電路以相似的方式在加密序列之間交替。在下面的表I中總結了本示例中的安全電子裝置24的組合邏輯電路28A-28C的操作:
表I
時脈 週期 | 組合邏輯電路 28A | 組合邏輯電路 28B | 組合邏輯電路 28C |
CLK1 | 1st 加密IN1的迭代運算 | 1st 加密IN2的迭代運算 | 1st 加密IN3的迭代運算 |
CLK2 | 2nd 加密IN3的迭代運算 | 2nd 加密IN1的迭代運算 | 2nd 加密IN2的迭代運算 |
CLK3 | 3rd 加密IN2的迭代運算 | 3rd 加密IN3的迭代運算 | 3rd 加密IN1的迭代運算 |
CLK4 | 4th 加密IN1的迭代運算 | 4th 加密IN1的迭代運算 | 4th 加密IN3的迭代運算 |
CLK5 | 5th 加密IN3的迭代運算 | 5th 加密IN2的迭代運算 | 5th 加密IN2的迭代運算 |
CLK6 | 6th 加密IN2的迭代運算 | 6th 加密IN3的迭代運算 | 6th 加密IN1的迭代運算 |
… | … | … | … |
如表I中所示,每個資料字的加密分佈在多個功能等效的組合邏輯電路之間。從特定組合邏輯電路的角度來看,亦即在連續的時脈週期中,組合邏輯電路在屬於不同加密序列的組合邏輯操作之間交替。
組合邏輯電路的分佈、耦合、交替操作將噪聲(noise)引入到安全電子裝置24的功耗和輻射分佈中。特別地,如上所述,組合邏輯電路的交替操作解釋了(i)在一系列組合邏輯運算中,資料轉換之間的關係,以及(ii)觀察到的功耗。某些附加噪聲可能是由於組合邏輯電路在功能上等效,而不是100%相同。即使在處理相同的輸入時,組合邏輯電路之間的差異也可以包括例如時序、功耗和/或輻射的差異。結果,大大增強了對旁路攻擊的防禦能力。
如上所述,給定組合邏輯操作序列(例如,加密操作)的中間輸出從一個組合邏輯電路傳播到另一個。取決於組合邏輯電路的數量和順序中組合邏輯運算的數量,給定序列的組合邏輯運算(例如,加密的資料字)的最終結果可以由任何組合邏輯電路產生。
另一方面,通常需要將最終結果與初始輸入資料相關聯。例如,當提供輸入資料字以在某個I/O介面(I/O1
、I/O2
或I/O3
)上進行加密時,通常需要在同一I/O介面上返回加密的資料字。
為此,在一些實施例中,安全電子裝置24包括控制電路,上述控制電路係配置為(i)將輸入資料路由到適當的組合邏輯電路,(ii)從適當的組合邏輯電路提取輸出資料,並且(iii)將輸出資料與相應的輸入資料相關聯。
控制電路通常了解組合邏輯電路之間的交替模式,因此能夠在正確的時脈週期,從正確的組合邏輯電路中提取給定組合邏輯操作序列的最終結果,並輸出此結束結果到適當的I/O介面。
參考以上示例,控制電路係配置為在某個I/O介面上接收輸入資料字,從正確的組合邏輯電路中提取相應的輸出資料字(例如,輸入資料字的加密版本)並將輸出資料字路由到接收輸入資料字的同一I/O介面。
在圖1的實施例中,控制電路包括匯流排36,三個多工器/解多工器40A-40C(為簡便起見,簡稱為MUX)和狀態機44。MUX 40A、40B和40C分別耦合到I/O介面I/O1
、I/O2
和I/O3
。各MUX都能透過匯流排36將來自I/O介面的多組輸入資料路由到任何組合邏輯電路。在相反的方向上,各MUX都可以透過匯流排36將來自任何組合邏輯電路的多組輸入資料路由到I/O介面。MUX 40A、40B和40C的切換由狀態機44控制。在一個示例中,狀態機44包括循環模3計數器(一般情況下為模n計數器,n為組合邏輯電路的數量)。
需注意的是,以上描述純粹是透過示例的方式涉及加密操作。在替代實施例中,安全電子裝置24中的組合邏輯電路的耦合架構可以用於執行包括一系列組合邏輯操作的任何其他合適的操作。此類操作的示例包括安全運算(例如解密、簽名和/或簽名驗證),通用運算(例如算術邏輯單元(Arithmetic-Logic Unit,ALU)、數字信號處理(Digital Signal Processing,DSP)或圖形處理單元(Graphics Processing Unit,GPU)操作、數位濾波和資料移動操作,僅舉幾例。
在圖1的示例中,在針對對等(peer)組合邏輯電路的輸出進行採樣之後,各正反器組32向其對應的組合邏輯電路28提供輸入。耦合也可以在相反方向上進行。換句話說,在替代實施例中,各正反器組32可以對其相應的組合邏輯電路28的輸出進行採樣,並且將採樣輸出作為輸入,以提供給對等組合邏輯電路。實際上,各正反器組32可以被視為耦合在兩個組合邏輯電路28之間,並且與它們兩者均等價地關聯。
還應注意的是,圖1所示的大多數互連,例如通向/從正反器組32的互連和通向/從組合邏輯電路28的互連,通常包括多條信號線。在圖1中,純粹為了清楚起見,將這些互連線繪製為單線。
§ 使用負組合邏輯的組合邏輯電路
在一些實施例中,使用否定邏輯來實現安全裝置中的組合邏輯電路中的至少一個。在本文中,術語“負邏輯”是指與另一組合邏輯電路(“參考電路” )相比,組合邏輯將邏輯“1”解釋為邏輯“0”,反之亦然。為了使負邏輯組合邏輯電路在功能等效於參考電路,在前者的所有輸入和輸出上都放置了反相器(NOT閘)。
使用負邏輯的一個簡單示例是“與”閘,其功能等同於在其輸入和輸出上具有反相器的“或”閘。諸如在組合邏輯電路28中使用的安全運算之類的更高複雜度的組合邏輯運算,也可以被轉換成功能等效的負邏輯實現。透過使用負邏輯和正邏輯組合邏輯電路的混合來實現安全裝置,可以進一步提高裝置對旁路攻擊的彈性。
圖2是示意性地示出根據本發明的替代實施例的使用負邏輯組合邏輯電路的安全電子裝置50的框圖。在本示例中,安全電子裝置50包括兩個組合邏輯電路54和58,即使組合邏輯電路58相對於組合邏輯電路54使用負邏輯,它們在功能上也彼此等效。
在兩個組合邏輯電路的情況下,安全電子裝置50的高級體系結構類似於圖1的安全電子裝置24:一正反器組60A對組合邏輯電路58的輸出進行採樣,並且提供這些採樣輸出作為在下一個時脈週期輸入到組合邏輯電路54。類似地,一正反器組60B對組合邏輯電路54的輸出進行採樣,並且這些採樣的輸出被提供作為對於下一個時鐘週期的組合邏輯電路58的輸入。
一對輸入MUX 68A和68B將兩個組合邏輯電路連接到表示為I/O1
和I/O2
的兩個I/O介面的輸入IN1和IN2。一對輸出MUX 69A和69B將兩個組合邏輯電路連接到兩個I/O介面I/O1
和I/O2
的輸出OUT1和OUT2。在此示例中,控制MUX 68A、68B、69A和69B的狀態機包括由正反器組74和反相器78實現的模2計數器。
與圖1的配置不同,在圖2的配置中,組合邏輯電路58相對於組合邏輯電路54使用負邏輯。因此,組合邏輯電路58在其全部上具有反相器(表示為64A、64B、70A和70B)。輸入和輸出(包括連接到組合邏輯電路54的輸入和輸出,以及連接到I/O介面的輸入和輸出)。在本文中,從I/O介面和狀態採樣組件(即,包括反相器)的角度來看,組合邏輯電路54和58在功能上也等效。
給定組合邏輯運算的負邏輯實現可以多種方式實現。一些實施方式可以使用例如波動態差分邏輯(WDDL)。WDDL實現由Verbauwhede在“數字電路:它們為什麼洩漏,如何應對”,密碼功能的設計和安全性、算法和裝置、算法和裝置,保加利亞阿爾貝納,2013年7月;由Titi等人在“帶有WDDL和差分路由的原型IC-DPA電阻評估”,第七屆密碼硬體和嵌入式系統國際研討會,CHES,2005年。
圖2的負邏輯實現可以看作是一種不同方式實現組合邏輯電路,同時又保持它們之間功能等效的極端方式。另外地或可替代地,在功能等效的組合邏輯電路之間可以存在其他的差異。設計者可能會故意引入一些差異。例如,可以透過設計或綜合工具,或者透過製造過程中的工藝變化來引入其他差異。內部實現方式中的任何此類差異都有助於使安全積體電路的功耗和輻射發射曲線多樣化,並以此方式提高對旁路攻擊的適應性。
如以上關於圖1所指出的,在圖2中,許多互連也包括多條信號線。類似地,各種MUX和反相器(反相器78除外)通常還包括多個組件或多信號組件。在圖2中,純粹為了清楚起見,將這些元素繪製為單數線。
圖1和圖2所示的電子裝置的結構如圖1所示。圖1和圖2是純粹為了概念清楚起見而描繪的示例配置。在替代實施例中,可以使用任何其他合適的配置。
例如,公開的技術不限於兩個或三個組合邏輯電路的情況,並且可以與任何合適數量的組合邏輯電路一起使用。可以使用負邏輯來實現任何合適數量的組合邏輯電路(或沒有)。作為又一個示例,所公開的技術不限於正反器組,並且可以使用其他類型的狀態採樣組件來實現,例如鎖存器、靜態隨機存取存儲器(SRAM)單元或任何其他合適類型的存儲單元。每個採樣的輸出可能是“邏輯高”或“邏輯低”。
解決旁路攻擊的其他方面在2018年11月18日授權的美國專利申請16/194,342中得到了解決,該申請已轉讓給本專利申請的受讓人,其公開內容在此引入作為參考。
在各種實施例中,可以使用任何合適的硬體來實現任何公開的裝置,例如使用一個或多個分立組件,一個或多個專用積體電路 (Application-Specific Integrated Circuits,ASICs) 和/或一個或多個現場可編程門陣列(Field-Programmable Gate Arrays,FPGAs)。
§ 其他實施方式和變化
下面的描述列出了幾個附加的實施例和變型。該描述僅透過示例的方式參考了圖1的安全電子裝置24及其組件。
在上面的圖1的描述中,所有輸入資料集(在I/O1
、I/O2
和I/O3
上提供的輸入資料)都是為安全處理而提供的真實資料。在替代實施例中,控制電路將一組或多組輸入資料初始化為隨機或偽隨機資料,而用真實資料初始化一組或多組其他輸入資料以進行安全處理。例如,在I/O1
上提供的輸入資料可以包括偽隨機資料,並且在I/O2
和I/O3
上提供的輸入資料可以包括真實資料。在這種情況下,偽隨機資料跨各種組合邏輯電路28傳播,經歷組合邏輯操作,該操作進一步將其隨機化,並以此方式幫助掩蓋組合邏輯電路28正在處理的真實資料。
在一個或多個組合邏輯電路中處理虛擬隨機資料的能力提供了安全級別和吞吐量之間的可配置折衷。為了以犧牲通為代價量提高安全性,控制電路可以將輸入資料的較高部分設置為偽隨機,反之亦然。此設置可以是用戶定義的。
在一些實施例中,即使在已經提取輸出資料之後,一個或多個組合邏輯電路28也繼續操作,即,應用組合邏輯操作。另外地或替代地,在已經提供輸入資料之前,一個或多個組合邏輯電路28開始操作,即,應用組合邏輯操作。
在示例實施例中,組合邏輯電路28不管輸入資料是否已經提供給它們連續地操作,包括在完成迭代運算序列之後,以及等待新的輸入資料準備就緒時。當最終結果(一組輸出資料)準備就緒時,控制電路可以將其寫入與組合邏輯電路分開的輸出寄存器或緩衝區。
在一些實施例中,控制電路可以在從組合邏輯電路28讀取輸出資料之前,和/或在將新的輸入資料提供給組合邏輯電路28之前,產生隨機延遲。
在一個示例實現中,控制電路可以以一些相對延遲將輸入資料提供給不同的組合邏輯電路28。例如,控制電路可以執行以下過程:
§ 將1st
輸入資料提供給1st
組合邏輯電路。
§ 等待幾個時脈週期。
§ 將2nd
輸入資料提供給2nd
組合邏輯電路。
§ 等待直到1st
個輸出資料準備就緒。
§ 可選等待隨機數量的時脈週期。
§ 將3rd
輸入資料提供給第三組合邏輯電路。
§ …
上面描述的示例操作模式故意偏離了預期的時間行為,有助於隱藏安全運算的實際激活和/或禁用時間,並進一步掩蓋特徵模式以免受到旁路攻擊的影響。
在一些實施例中,給定的組合邏輯電路28可以例如透過運行逆運算或已知的答案測試來檢查其自身的完整性。這種完整性檢查有助於例如檢測故障注入攻擊。
在一些實施例中,所公開的技術可以用於在兩個或更多個中央處理單元(Central Processing Unit,簡稱為CPU)核之間產生耦合。考慮一個示例,該示例涉及兩個相互耦合的CPU核心,分別表示為CPU1和CPU2。 CPU1執行某些目標代碼,而CPU2執行一些預定義的操作循環,以處理隨機資料。CPU2可以透過比較循環的中間結果來執行完整性檢查,例如以識別故障注入。可以由CPU2執行的包括完整性檢查的示例循環如下:
§ 獲取兩個隨機或虛擬隨機數(NRAND)
§ 將一個數字寫入R0(R#表示CPU暫存器),另一個數字寫入R1
§ R0+3*R1 -> R2
§ R1+5*R2 -> R3
§ R2+7*R3 -> R4
§ R3+11*R4 -> R5
§ … R[n-2] + prime*R[n-1] -> Rn
§ 然後,進行逆運算並與R0和R1值進行比較。
§ 如果R0,R1與結果不匹配─對可疑的篡改發出警報。
進一步可選地,所公開的技術可以用於在各種其他類型的組合邏輯電路之間產生耦合,例如在兩個或多個數字信號處理(Digital Signal Processing, DSP)單元或密碼加速器之間產生耦合。
在一些實施例中,組合邏輯電路之間的耦合是固定的。在這些實施例中,對於給定的正反器組32,其輸出被採樣的組合邏輯電路的身份不變,並且將採樣輸出用作輸入的組合邏輯電路的身份不變。在其他實施例中,控制電路可以例如在充電時或在操作期間,例如根據一些先前的定義或隨機地修改耦合方案。例如,控制電路可將給定正反器組32的輸入從一個組合邏輯電路切換到另一組合邏輯電路,和/或將給定正反器組32的輸出從一個組合邏輯電路切換到另一組合邏輯電路。可以透過將MUX添加到一個或多個正反器組32的輸入和/或輸出來實現此可配置性。
將理解的是,上述實施例僅作為示例被引用,並且本發明不限於以上已經具體示出和描述的內容。取而代之地,本發明的範圍包括上述各種特徵的組合和子組合、本領域技術人員在閱讀前述說明後將想到的這些變化及其變形和修飾,以及習知技術所未公開者。透過引用併入本專利申請的文件應被認為是本申請的組成部分,除了在這些併入文件中以與本說明書中明確或隱含的定義相牴觸的方式定義任何術語的範圍外,應該考慮本說明書中的定義。
20:常規裝置
24、50:安全電子裝置
28、28A、28B、28C、54、58:組合邏輯電路
32、32A、32B、32C、60A、60B、74:正反器(FF)組
36:匯流排
40A、40B、40C、68A、68B、69A、69B:多工器
44:狀態機
64A、64B、70A、70B:反相器
CLK:時脈週期
I/O1
、I/O2
、I/O3
:輸入和輸出
IN1、IN2:輸入
OUT1、OUT2:輸出
透過下面結合附圖對實施例的詳細描述,可以更全面地理解本發明,其中:
圖1是示意性地顯示出根據本發明的實施例的包括耦合的,功能等效的組合邏輯電路的安全電子裝置的方塊圖;以及
圖2是示意性地顯示出根據本發明的替代實施例的包括負邏輯組合邏輯電路的安全電子裝置的方塊圖。
20:常規裝置
24:安全電子裝置
28A、28B、28C:組合邏輯電路
32A、32B、32C:正反器(FF)組
36:匯流排
40A、40B、40C:多工器
44:狀態機
CLK:時脈週期
I/O1
、I/O2
、I/O3
:輸入和輸出
Claims (22)
- 一種安全積體電路,包括: 多個功能等效的組合邏輯電路,各該多個組合邏輯電路配置為接收一或多個輸入,並對該一或多個輸入進行組合邏輯運算,以產生一或多個輸出; 多個狀態採樣組件,各狀態採樣組件包括一個或多個狀態採樣元件,該一個或多個狀態採樣元件係配置以對該多個功能等效的組合邏輯電路之其一的該一或多個輸出進行採樣,並將該一或多個採樣輸出作為輸入,以提供給該多個功能等效的組合邏輯電路之另一個;以及 一控制電路,配置為接收多組輸入資料以供該多個功能等效的組合邏輯電路處理,並將該多組輸入資料路由至該多個功能等效的組合邏輯電路,以從該多個功能等效的組合邏輯電路中提取多組輸出資料,並與該各組輸入資料相關聯地輸出該各組輸出資料。
- 如請求項1所述之安全積體電路,其中該組合邏輯運算包括一迭代安全運算的一迭代運算。
- 如請求項1所述之安全積體電路,其中透過將該多個組合邏輯電路之該一個或多個採樣輸出作為輸入,以提供給該多個組合邏輯電路之另一個,使得應用於一組給定輸入資料的該組合邏輯運算之該迭代運算係由不同之該多個組合邏輯電路之不同組合邏輯電路來執行。
- 如請求項1所述之安全積體電路,其中透過將該多個組合邏輯電路之該一個或多個採樣輸出作為輸入,以提供給該多個組合邏輯電路之另一個,使得該另一個組合邏輯電路之一給定的組合邏輯電路係在連續的時脈週期中,將該組合邏輯運算應用於不同之該多組輸入資料。
- 如請求項1所述之安全積體電路,其中該多個功能等效的組合邏輯電路之至少兩個在硬體實現上彼此不同。
- 如請求項1所述之安全積體電路,其中至少一個該多個功能等效的組合邏輯電路,係透過相對於該多個功能等效的組合邏輯電路之一個組合邏輯電路的負邏輯來實現。
- 如請求項1所述之安全積體電路,其中該控制電路係配置以透過相應的輸入輸出介面接收該多組輸入資料,並在一相同的輸入輸出介面上輸出該各組輸出資料,其中該相同的輸入輸出介面係為接收該各組輸出資料對應的該組輸入資料。
- 如請求項1所述之安全積體電路,其中該控制電路係配置為以循環交替的方式,將該多組輸入資料分配到該多個功能等效的組合邏輯電路,並以循環交替的方式,從該多個功能等效的組合邏輯電路收集該多組輸出資料。
- 如請求項1所述之安全積體電路,其中該控制電路係配置以將該多組輸入資料之至少一些初始化為隨機資料或偽隨機資料(pseudorandom data)。
- 如請求項1所述之安全積體電路,其中該多個組合邏輯電路之一個或多個配置為執行以下至少一項: (i)在提取該多組輸出資料後,繼續應用該組合邏輯運算;以及 (ii)在提供該多組輸入資料之前,開始應用該組合邏輯運算。
- 如請求項1所述之安全積體電路,其中該控制電路係配置為在將該多組輸入資料提供給該多個組合邏輯電路之至少兩個的時間之間,產生相對延遲。
- 一種用於在安全積體電路中進行資料處理的方法,包括: 操作多個功能等效的組合邏輯電路,以在該多個組合邏輯電路之各組合邏輯電路中,接收一個或多個輸入,並將組合邏輯運算應用於該一個或多個輸入,以產生一個或多個輸出; 操作一狀態採樣組件,對該多個功能等效的組合邏輯電路之其中一個的該一或多個輸出進行採樣,並提供該一個或多個採樣輸出作為輸入,以提供給該多個功能等效的組合邏輯電路之另一個;以及 使用一控制電路,接收多組輸入資料以供該多個功能等效的組合邏輯電路處理,將該多組輸入資料路由至該多個功能等效的組合邏輯電路,且從該多個功能等效的組合邏輯電路中提取多組輸出資料,並與該各組輸入資料相關聯地輸出該各組輸出資料。
- 如請求項12所述之方法,其中該組合邏輯運算包括一迭代安全運算的一迭代運算。
- 如請求項12所述之方法,其中將該多個組合邏輯電路之該一個或多個採樣輸出,以提供給該多個組合邏輯電路之另一個的步驟,包括: 透過該多個組合邏輯電路之多個不同組合邏輯電路,對給定的一組輸入資料執行該組合邏輯運算的一迭代運算。
- 如請求項12所述之方法,其中將該一個或多個採樣輸出提供給該多個組合邏輯電路之另一個的步驟,包括: 在該多個組合邏輯電路之給定的一個中,在連續的時脈週期中將該組合邏輯運算應用於多個不同之該多組輸入資料。
- 如請求項12所述之方法,其中至少兩個該功能等效的組合邏輯電路在硬體實現上彼此不同。
- 如請求項12所述之方法,其中應用該組合邏輯運算的步驟,包括: 在該多個功能等效的組合邏輯電路之至少一個中,使用相對於該多個功能等效的組合邏輯電路之另一個的負邏輯,來應用該組合邏輯運算。
- 如請求項12所述之方法,其中接收該多組輸入資料的步驟,包括:透過相應的多個輸入輸出介面,分別接收該多組輸入資料;以及 其中輸出該多組輸出資料的步驟,包括:在接收對應該多組輸出資料的該多組輸入資料的同一輸入輸出介面上,輸出該各組輸出資料。
- 如請求項12所述之方法,其中路由該多組輸入資料的步驟,包括:以循環交替的方式,將該多組輸入資料分配給該多個功能等效的組合邏輯電路;以及 其中提取該多組輸出資料的步驟,包括:以循環交替的方式,從該多個功能等效的組合邏輯電路收集該多組輸出資料。
- 如請求項12所述之方法,更包括將該多組輸入資料之至少一些初始化為隨機或偽隨機資料(pseudorandom data)。
- 如請求項12所述之方法,其中應用該組合邏輯運算的步驟,包括: 在該多個組合邏輯電路之一個或多個中,執行以下至少一項: (i)在提取該多組輸出資料之後,繼續應用該組合邏輯運算;以及 (ii)在提供該多組輸入資料之前,開始應用該組合邏輯運算。
- 如請求項12所述之方法,更包括: 在將該多組輸入資料提供給該組合邏輯電路之至少兩個的時間之間,產生相對延遲。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/741,779 US10979054B1 (en) | 2020-01-14 | 2020-01-14 | Coupling of combinational logic circuits for protection against side-channel attacks |
US16/741,779 | 2020-01-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202131207A true TW202131207A (zh) | 2021-08-16 |
TWI755936B TWI755936B (zh) | 2022-02-21 |
Family
ID=75394464
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109140407A TWI755936B (zh) | 2020-01-14 | 2020-11-18 | 安全積體電路及其方法 |
TW111100577A TWI793961B (zh) | 2020-01-14 | 2020-11-18 | 安全積體電路及其方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111100577A TWI793961B (zh) | 2020-01-14 | 2020-11-18 | 安全積體電路及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10979054B1 (zh) |
JP (1) | JP7061207B2 (zh) |
CN (1) | CN113127938B (zh) |
TW (2) | TWI755936B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI812042B (zh) * | 2021-03-30 | 2023-08-11 | 新唐科技股份有限公司 | 安全系統 |
TWI818503B (zh) * | 2022-04-11 | 2023-10-11 | 新唐科技股份有限公司 | 加密裝置以及加密方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3769940B2 (ja) | 1998-08-06 | 2006-04-26 | 株式会社日立製作所 | 半導体装置 |
US7840803B2 (en) | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
WO2005027403A1 (ja) * | 2003-09-11 | 2005-03-24 | Renesas Technology Corp. | 情報処理装置 |
US7924057B2 (en) * | 2004-02-13 | 2011-04-12 | The Regents Of The University Of California | Logic system for DPA resistance and/or side channel attack resistance |
FR2867325A1 (fr) * | 2004-03-02 | 2005-09-09 | St Microelectronics Sa | Dispositif de protection contre l'injection d'erreur dans un bloc logique asynchrone d'un module logique elementaire |
JP2006054568A (ja) * | 2004-08-10 | 2006-02-23 | Sony Corp | 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム |
WO2006053173A2 (en) * | 2004-11-10 | 2006-05-18 | Nvidia Corporation | Multipurpose multiply-add functional unit |
US7428566B2 (en) * | 2004-11-10 | 2008-09-23 | Nvidia Corporation | Multipurpose functional unit with multiply-add and format conversion pipeline |
JP4859370B2 (ja) * | 2005-01-19 | 2012-01-25 | 三菱電機株式会社 | 電子素子 |
US7301384B2 (en) * | 2006-03-31 | 2007-11-27 | Qualcomm Incorporated | Multimode, uniform-latency clock generation circuit |
US7577820B1 (en) | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
ATE440336T1 (de) | 2006-06-29 | 2009-09-15 | Incard Sa | Verfahren zum schutz von ic-karten vor leistungsanalyse-attacken |
US7893742B2 (en) | 2006-11-10 | 2011-02-22 | Nec Corporation | Clock signal dividing circuit |
KR101494023B1 (ko) * | 2007-02-16 | 2015-02-16 | 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 | 반도체 장치 및 상호접속된 장치들을 갖는 시스템에서의 전력 소비를 감소시키는 방법 |
JP2010021624A (ja) * | 2008-07-08 | 2010-01-28 | Hitachi Ltd | 情報処理装置 |
US8141024B2 (en) * | 2008-09-04 | 2012-03-20 | Synopsys, Inc. | Temporally-assisted resource sharing in electronic systems |
JP2010245753A (ja) * | 2009-04-03 | 2010-10-28 | Nippon Telegr & Teleph Corp <Ntt> | 暗号演算回路装置 |
US8386747B2 (en) * | 2009-06-11 | 2013-02-26 | Freescale Semiconductor, Inc. | Processor and method for dynamic and selective alteration of address translation |
US8912814B2 (en) * | 2012-11-12 | 2014-12-16 | Chaologix, Inc. | Clocked charge domain logic |
US9390291B2 (en) * | 2012-12-29 | 2016-07-12 | Intel Corporation | Secure key derivation and cryptography logic for integrated circuits |
US8983068B2 (en) | 2013-03-06 | 2015-03-17 | Infineon Technologies Ag | Masked nonlinear feedback shift register |
US9015422B2 (en) * | 2013-07-16 | 2015-04-21 | Apple Inc. | Access map-pattern match based prefetch unit for a processor |
US9787470B2 (en) * | 2013-12-12 | 2017-10-10 | Samsung Electronics Co., Ltd. | Method and apparatus of joint security advanced LDPC cryptcoding |
US9871651B2 (en) * | 2014-06-16 | 2018-01-16 | Cisco Technology, Inc. | Differential power analysis countermeasures |
US10365851B2 (en) * | 2015-03-12 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10142103B2 (en) | 2015-12-07 | 2018-11-27 | The Boeing Company | Hardware assisted fast pseudorandom number generation |
US10103873B2 (en) * | 2016-04-01 | 2018-10-16 | Intel Corporation | Power side-channel attack resistant advanced encryption standard accelerator processor |
US10256973B2 (en) * | 2016-09-30 | 2019-04-09 | Intel Corporation | Linear masking circuits for side-channel immunization of advanced encryption standard hardware |
CN107911354B (zh) * | 2017-11-07 | 2020-07-21 | 北京航空航天大学 | 一种复合并行数据加密方法 |
US10318438B1 (en) * | 2017-12-07 | 2019-06-11 | Nuvoton Technology Corporation | Secure memory access using memory read restriction |
-
2020
- 2020-01-14 US US16/741,779 patent/US10979054B1/en active Active
- 2020-11-18 TW TW109140407A patent/TWI755936B/zh active
- 2020-11-18 TW TW111100577A patent/TWI793961B/zh active
-
2021
- 2021-01-12 JP JP2021002854A patent/JP7061207B2/ja active Active
- 2021-01-14 CN CN202110049066.XA patent/CN113127938B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI812042B (zh) * | 2021-03-30 | 2023-08-11 | 新唐科技股份有限公司 | 安全系統 |
TWI818503B (zh) * | 2022-04-11 | 2023-10-11 | 新唐科技股份有限公司 | 加密裝置以及加密方法 |
Also Published As
Publication number | Publication date |
---|---|
US10979054B1 (en) | 2021-04-13 |
TWI793961B (zh) | 2023-02-21 |
TW202217621A (zh) | 2022-05-01 |
CN113127938A (zh) | 2021-07-16 |
TWI755936B (zh) | 2022-02-21 |
CN113127938B (zh) | 2023-05-12 |
JP2021111410A (ja) | 2021-08-02 |
JP7061207B2 (ja) | 2022-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sokolov et al. | Design and analysis of dual-rail circuits for security applications | |
Moore et al. | Balanced self-checking asynchronous logic for smart card applications | |
Maistri et al. | Double-data-rate computation as a countermeasure against fault analysis | |
Lyu et al. | Scalable activation of rare triggers in hardware trojans by repeated maximal clique sampling | |
Cilio et al. | Mitigating power-and timing-based side-channel attacks using dual-spacer dual-rail delay-insensitive asynchronous logic | |
Danger et al. | Overview of dual rail with precharge logic styles to thwart implementation-level attacks on hardware cryptoprocessors | |
Bellizia et al. | Secure double rate registers as an RTL countermeasure against power analysis attacks | |
TWI755936B (zh) | 安全積體電路及其方法 | |
US20200159967A1 (en) | Mitigation of Side-Channel Attacks using Small-Overhead Random Pre-Charging | |
Bellizia et al. | TEL logic style as a countermeasure against side-channel attacks: Secure cells library in 65nm CMOS and experimental results | |
Chong et al. | Dual-hiding side-channel-attack resistant FPGA-based asynchronous-logic AES: Design, countermeasures and evaluation | |
Levi et al. | Low-cost pseudoasynchronous circuit design style with reduced exploitable side information | |
Cui et al. | On the difficulty of inserting trojans in reversible computing architectures | |
Zhang et al. | Power side channels in security ICs: hardware countermeasures | |
Bayrak et al. | An EDA-friendly protection scheme against side-channel attacks | |
Cilio et al. | Side-channel attack mitigation using dual-spacer Dual-rail Delay-insensitive Logic (D 3 L) | |
Dhanuskodi et al. | Efficient register renaming architectures for 8-bit AES datapath at 0.55 pJ/bit in 16-nm FinFET | |
Alam et al. | Toic: Timing obfuscated integrated circuits | |
US20140292371A1 (en) | Multi-threshold dual-spacer dual-rail delay-insensitive logic (mtd3l) circuit design | |
Kumar et al. | Analysis of side-channel attack AES hardware trojan benchmarks against countermeasures | |
Mansouri et al. | An architectural countermeasure against power analysis attacks for FSR-based stream ciphers | |
Emmert et al. | An asynchronous MPGA THx2 cell and architecture for mitigating side-channel attacks | |
Singh et al. | Analysis of EM fault injection on bit-sliced number theoretic transform software in dilithium | |
Emmert et al. | EMC: Efficient Muller C-Element Implementation for High Bit-width Asynchronous Applications | |
Tanimura et al. | ExCCel: Exploration of complementary cells for efficient DPA attack resistivity |