CN113127938B - 安全集成电路及其方法 - Google Patents
安全集成电路及其方法 Download PDFInfo
- Publication number
- CN113127938B CN113127938B CN202110049066.XA CN202110049066A CN113127938B CN 113127938 B CN113127938 B CN 113127938B CN 202110049066 A CN202110049066 A CN 202110049066A CN 113127938 B CN113127938 B CN 113127938B
- Authority
- CN
- China
- Prior art keywords
- combinational logic
- logic circuits
- sets
- input data
- functionally equivalent
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Safety Devices In Control Systems (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供一种安全集成电路及其方法,安全集成电路包括多个功能等效的组合逻辑电路,多组状态采样组件和控制电路。每个组合逻辑电路接收一个或多个输入,并将组合逻辑运算应用于一个或多个输入,以产生一个或多个输出。每组状态采样组件包括一个或多个状态采样组件,其对组合逻辑电路之一的一个或多个输出进行采样,并将一个或多个采样输出作为输入,以提供给组合逻辑电路中的另一个。控制电路接收多组输入数据以供组合逻辑电路处理,将多组输入数据路由到组合逻辑电路,从组合逻辑电路中提取多组输出数据,并与相应的各组输入数据相关联地输出各组输出数据。
Description
技术领域
本发明一般涉及电子电路中的数据安全性,尤其涉及用于防止旁路攻击的方法和系统。
背景技术
为了从电子装置中提取信息,已经开发了被称为旁路攻击的各种技术。旁路攻击通常由未授权方执行,以访问存储在装置中的秘密信息。一些旁路攻击利用了以下事实:电子装置通常在逻辑组件转换期间消耗功率。攻击通过非侵入性地测量从装置发出的电子信号和/或电磁辐射来提取信息,而无需电性接触承载信息的装置。
已经提出了用于保护电子装置免受旁路攻击的各种对策。例如,巴达姆(Baddam)在2012年2月于南安普顿大学物理与应用科学学院电子和计算器科学学院的博士学位论文“针对差分功率分析的硬件级对策”中描述了几种类型的对策,尤其是双轨预充电(DualRail Precharge,DRP)电路。
发明内容
本发明的实施例提供了一种安全集成电路(IC),其包括多个功能等效的(functionally-equivalent)组合逻辑电路,多组状态采样组件和控制电路。各组合逻辑电路经配置以接收一个或一个以上的输入,且将组合逻辑运算(combinational-logicoperation)应用于所述一个或一个以上的输入,以产生一个或一个以上的输出。每组状态采样组件包括一个或多个状态采样组件,这些状态采样组件配置为对功能等效的组合逻辑电路之一的一个或多个输出进行采样,并将一个或多个采样输出作为输入,以提供给另一个功能等效的组合逻辑电路。控制电路则是配置为接收多组输入数据,以由功能等效的组合逻辑电路进行处理,将多组输入数据路由到组合逻辑电路,从组合逻辑电路中提取多组输出数据,并与各组输入数据相关联地输出各组输出数据。
在一些实施例中,组合逻辑运算包括迭代安全运算的迭代运算。在一些实施例中,通过将多个组合逻辑电路的一个或多个采样输出作为输入,以提供给多个组合逻辑电路的另一个,使得应用于一组给定输入数据的组合逻辑运算的迭代运算由不同的多个组合逻辑电路的不同组合逻辑电路来执行。在一些实施例中,通过将多个组合逻辑电路的一个或多个采样输出作为输入,以提供给多个组合逻辑电路的另一个,使得另一个组合逻辑电路的一给定的组合逻辑电路在连续的频率周期中,将该组合逻辑运算应用于不同的多组输入数据。
在一个实施例中,多个功能等效的组合逻辑电路的至少两个在硬件实现上彼此不同。
在另一个实施例中,控制电路配置以通过相应的输入输出接口接收多组输入数据,并在一相同的输入输出接口上输出各组输出数据,其中相同的输入输出接口为接收各组输出数据对应的组输入数据。在又一个实施例中,控制电路配置为以循环交替(cyclicalternation)的方式,将多组输入数据分配到多个功能等效的组合逻辑电路,并以循环交替的方式,从多个功能等效的组合逻辑电路收集多组输出数据。
在公开的实施例中,控制电路被配置为将至少一些输入数据初始化为随机或虚拟随机数据。在一个实施例中,多个组合逻辑电路的一个或多个配置为执行以下至少一项:(i)在提取多组输出数据之后,继续应用组合逻辑运算,以及(ii)在提供多组输入数据之前,开始应用组合逻辑运算。附加地或可替代地,控制电路配置为在将多组输入数据提供给多个组合逻辑电路的至少两个的时间之间,产生相对延迟。
根据本发明的实施例,另外提供一种用于在安全集成电路(IC)中进行数据处理的方法。上述方法包括:操作多个功能等效的组合逻辑电路,以在该多个组合逻辑电路的各组合逻辑电路中,接收一个或多个输入,并将组合逻辑运算应用于该一个或多个输入,以产生一个或多个输出。操作一状态采样组件,对该多个功能等效的组合逻辑电路的其中一个的该一或多个输出进行采样,并提供该一个或多个采样输出作为输入,以提供给该多个功能等效的组合逻辑电路的另一个。使用一控制电路,接收多组输入数据以供该多个功能等效的组合逻辑电路处理,将该多组输入数据路由至该多个功能等效的组合逻辑电路,且从该多个功能等效的组合逻辑电路中提取多组输出数据,并与该各组输入数据相关联地输出该各组输出数据。
附图说明
通过下面结合附图对实施例的详细描述,可以更全面地理解本发明,其中:
图1是示意性地显示出根据本发明的实施例的包括耦合的,功能等效的组合逻辑电路的安全电子装置的方块图;以及
图2是示意性地显示出根据本发明的替代实施例的包括负逻辑组合逻辑电路的安全电子装置的方块图。
具体实施方式
本文描述的本发明的实施例提供了用于保护电子装置免旁路攻击的改进的方法和电路。所公开的技术可以在各种类型的安全装置中使用,例如安全嵌入式控制器和存储装置。
在一些公开的实施例中,安全集成电路(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 HashAlgorithm,简称为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
如表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 SignalProcessing,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 IntegratedCircuits,ASICs)和/或一个或多个现场可编程门数组(Field-Programmable GateArrays,FPGAs)。
[其他实施方式和变化]
下面的描述列出了几个附加的实施例和变型。该描述仅通过示例的方式参考了图1的安全电子装置24及其组件。
在上面的图1的描述中,所有输入数据集(在I/O1、I/O2和I/O3上提供的输入数据)都是为安全处理而提供的真实数据。在替代实施例中,控制电路将一组或多组输入数据初始化为随机或伪随机数据(pseudorandom data),而用真实数据初始化一组或多组其他输入数据以进行安全处理。例如,在I/O1上提供的输入数据可以包括伪随机数据,并且在I/O2和I/O3上提供的输入数据可以包括真实数据。在这种情况下,伪随机数据跨各种组合逻辑电路28传播,经历组合逻辑操作,该操作进一步将其随机化,并以此方式帮助掩盖组合逻辑电路28正在处理的真实数据。
在一个或多个组合逻辑电路中处理虚拟随机数据的能力提供了安全级别和吞吐量之间的可配置折中。为了以牺牲通为代价量提高安全性,控制电路可以将输入数据的较高部分设置为伪随机,反之亦然。此设置可以是用户定义的。
在一些实施例中,即使在已经提取输出数据之后,一个或多个组合逻辑电路28也继续操作,即,应用组合逻辑操作。另外地或替代地,在已经提供输入数据之前,一个或多个组合逻辑电路28开始操作,即,应用组合逻辑操作。
在示例实施例中,组合逻辑电路28不管输入数据是否已经提供给它们连续地操作,包括在完成迭代运算序列之后,以及等待新的输入数据准备就绪时。当最终结果(一组输出数据)准备就绪时,控制电路可以将其写入与组合逻辑电路分开的输出寄存器或缓冲区。
在一些实施例中,控制电路可以在从组合逻辑电路28读取输出数据之前,和/或在将新的输入数据提供给组合逻辑电路28之前,产生随机延迟。
在一个示例实现中,控制电路可以以一些相对延迟将输入数据提供给不同的组合逻辑电路28。例如,控制电路可以执行以下过程:
·将1st输入数据提供给1st组合逻辑电路。
·等待几个频率周期。
·将2nd输入数据提供给2nd组合逻辑电路。
·等待直到1st个输出数据准备就绪。
·可选等待随机数量的频率周期。
·将3rd输入数据提供给第三组合逻辑电路。
·…
上面描述的示例操作模式故意偏离了预期的时间行为,有助于隐藏安全运算的实际激活和/或禁用时间,并进一步掩盖特征模式以免受到旁路攻击的影响。
在一些实施例中,给定的组合逻辑电路28可以例如通过运行逆运算或已知的答案测试来检查其自身的完整性。这种完整性检查有助于例如检测故障注入攻击。
在一些实施例中,所公开的技术可以用于在两个或更多个中央处理单元(CentralProcessing 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的输入和/或输出来实现此可配置性。
将理解的是,上述实施例仅作为示例被引用,并且本发明不限于以上已经具体示出和描述的内容。取而代之地,本发明的范围包括上述各种特征的组合和子组合、本领域技术人员在阅读前述说明后将想到的这些变化及其变形和修饰,以及已知技术所未公开者。通过引用并入本专利申请的文件应被认为是本申请的组成部分,除了在这些并入文件中以与本说明书中明确或隐含的定义相抵触的方式定义任何术语的范围外,应该考虑本说明书中的定义。
Claims (18)
1.一种安全集成电路,其特征在于,包括:
多个功能等效的组合逻辑电路,各所述多个组合逻辑电路配置为接收一或多个输入,并对所述一或多个输入进行组合逻辑运算,以产生一或多个输出;
多个状态采样组件,各状态采样组件包括一个或多个状态采样组件,所述一个或多个状态采样组件配置以对所述多个功能等效的组合逻辑电路之一的所述一或多个输出进行采样,并将所述一或多个采样输出作为输入,以提供给所述多个功能等效的组合逻辑电路的另一个;以及
一控制电路,配置为接收多组输入数据以供所述多个功能等效的组合逻辑电路处理,并将所述多组输入数据路由至所述多个功能等效的组合逻辑电路,以从所述多个功能等效的组合逻辑电路中提取多组输出数据,并与所述各组输入数据相关联地输出所述各组输出数据;
其中所述多个功能等效的组合逻辑电路的至少两个在硬件实现上彼此不同;
其中所述控制电路配置以将所述多组输入数据的至少一些初始化为随机数据或伪随机数据。
2.根据权利要求1所述的安全集成电路,其特征在于,其中所述组合逻辑运算包括一迭代安全运算的一迭代运算。
3.根据权利要求1所述的安全集成电路,其特征在于,其中通过将所述多个组合逻辑电路的所述一个或多个采样输出作为输入,以提供给所述多个组合逻辑电路的另一个,使得应用于一组给定输入数据的所述组合逻辑运算的迭代运算是由不同的所述多个组合逻辑电路的不同组合逻辑电路来执行。
4.根据权利要求1所述的安全集成电路,其特征在于,其中通过将所述多个组合逻辑电路的所述一个或多个采样输出作为输入,以提供给所述多个组合逻辑电路的另一个,使得所述另一个组合逻辑电路的一给定的组合逻辑电路是在连续的频率周期中,将所述组合逻辑运算应用于不同的所述多组输入数据。
5.根据权利要求1所述的安全集成电路,其特征在于,其中至少一个所述多个功能等效的组合逻辑电路,是通过相对于所述多个功能等效的组合逻辑电路的一个组合逻辑电路的负逻辑来实现。
6.根据权利要求1所述的安全集成电路,其特征在于,其中所述控制电路配置以通过相应的输入输出接口接收所述多组输入数据,并在一相同的输入输出接口上输出所述各组输出数据,其中所述相同的输入输出接口为接收所述各组输出数据对应的所述组输入数据。
7.根据权利要求1所述的安全集成电路,其特征在于,其中所述控制电路配置为以循环交替的方式,将所述多组输入数据分配到所述多个功能等效的组合逻辑电路,并以循环交替的方式,从所述多个功能等效的组合逻辑电路收集所述多组输出数据。
8.根据权利要求1所述的安全集成电路,其特征在于,其中所述多个组合逻辑电路的一个或多个配置为执行以下至少一项:
i) 在提取所述多组输出数据后,继续应用所述组合逻辑运算;以及
ii) 在提供所述多组输入数据之前,开始应用所述组合逻辑运算。
9.根据权利要求1所述的安全集成电路,其特征在于,其中所述控制电路配置为在将所述多组输入数据提供给所述多个组合逻辑电路的至少两个的时间之间,产生相对延迟。
10.一种用于在安全集成电路中进行数据处理的方法,其特征在于,包括:
操作多个功能等效的组合逻辑电路,以在所述多个组合逻辑电路的各组合逻辑电路中,接收一个或多个输入,并将组合逻辑运算应用于所述一个或多个输入,以产生一个或多个输出;
操作一状态采样组件,对所述多个功能等效的组合逻辑电路的其中一个的一或多个输出进行采样,并提供所述一个或多个采样输出作为输入,以提供给所述多个功能等效的组合逻辑电路的另一个;以及
使用一控制电路,接收多组输入数据以供所述多个功能等效的组合逻辑电路处理,将所述多组输入数据路由至所述多个功能等效的组合逻辑电路,且从所述多个功能等效的组合逻辑电路中提取多组输出数据,并与所述各组输入数据相关联地输出所述各组输出数据;
其中至少两个所述功能等效的组合逻辑电路在硬件实现上彼此不同;
更包括将所述多组输入数据的至少一些初始化为随机或伪随机数据。
11.根据权利要求10所述的方法,其特征在于,其中所述组合逻辑运算包括一迭代安全运算的一迭代运算。
12.根据权利要求10所述的方法,其特征在于,其中将所述多个组合逻辑电路的所述一个或多个采样输出,以提供给所述多个组合逻辑电路的另一个的步骤,包括:
通过所述多个组合逻辑电路的多个不同组合逻辑电路,对给定的一组输入数据执行所述组合逻辑运算的一迭代运算。
13.根据权利要求10所述的方法,其特征在于,其中将所述一个或多个采样输出提供给所述多个组合逻辑电路的另一个的步骤,包括:
在所述多个组合逻辑电路的给定的一个中,在连续的频率周期中将所述组合逻辑运算应用于多个不同的所述多组输入数据。
14.根据权利要求10所述的方法,其特征在于,其中应用所述组合逻辑运算的步骤,包括:
在所述多个功能等效的组合逻辑电路的至少一个中,使用相对于所述多个功能等效的组合逻辑电路的另一个的负逻辑,来应用所述组合逻辑运算。
15.根据权利要求10所述的方法,其特征在于,其中接收所述多组输入数据的步骤,包括:通过相应的多个输入输出接口,分别接收所述多组输入数据;以及
其中输出所述多组输出数据的步骤,包括:在接收对应所述多组输出数据的所述多组输入数据的同一输入输出接口上,输出所述各组输出数据。
16.根据权利要求10所述的方法,其特征在于,其中路由所述多组输入数据的步骤,包括:以循环交替的方式,将所述多组输入数据分配给所述多个功能等效的组合逻辑电路;以及
其中提取所述多组输出数据的步骤,包括:以循环交替的方式,从所述多个功能等效的组合逻辑电路收集所述多组输出数据。
17.根据权利要求10所述的方法,其特征在于,其中应用所述组合逻辑运算的步骤,包括:
在所述多个组合逻辑电路的一个或多个中,执行以下至少一项:
i)在提取所述多组输出数据之后,继续应用所述组合逻辑运算;以及
ii)在提供所述多组输入数据之前,开始应用所述组合逻辑运算。
18.根据权利要求10所述的方法,其特征在于,更包括:
在将所述多组输入数据提供给所述组合逻辑电路的至少两个的时间之间,产生相对延迟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/741,779 | 2020-01-14 | ||
US16/741,779 US10979054B1 (en) | 2020-01-14 | 2020-01-14 | Coupling of combinational logic circuits for protection against side-channel attacks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127938A CN113127938A (zh) | 2021-07-16 |
CN113127938B true CN113127938B (zh) | 2023-05-12 |
Family
ID=75394464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110049066.XA Active CN113127938B (zh) | 2020-01-14 | 2021-01-14 | 安全集成电路及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10979054B1 (zh) |
JP (1) | JP7061207B2 (zh) |
CN (1) | CN113127938B (zh) |
TW (2) | TWI793961B (zh) |
Families Citing this family (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 | 新唐科技股份有限公司 | 加密裝置以及加密方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム |
JP2006203416A (ja) * | 2005-01-19 | 2006-08-03 | Mitsubishi Electric Corp | 電子素子及び解読攻撃防御方法 |
JPWO2005027403A1 (ja) * | 2003-09-11 | 2006-11-24 | 株式会社ルネサステクノロジ | 情報処理装置 |
JP2010021624A (ja) * | 2008-07-08 | 2010-01-28 | Hitachi Ltd | 情報処理装置 |
CN102369508A (zh) * | 2008-09-04 | 2012-03-07 | 新思公司 | 电子系统中的暂时辅助资源共享 |
CN102460403A (zh) * | 2009-06-11 | 2012-05-16 | 飞思卡尔半导体公司 | 用于地址转换的动态和选择性改变的处理器和方法 |
CN105027136A (zh) * | 2012-12-29 | 2015-11-04 | 英特尔公司 | 用于集成电路的安全密钥推导和密码逻辑 |
TW201638787A (zh) * | 2015-03-12 | 2016-11-01 | 美光科技公司 | 用於資料移動之裝置及方法 |
CN109901793A (zh) * | 2017-12-07 | 2019-06-18 | 新唐科技股份有限公司 | 存储器安全装置及其方法 |
Family Cites Families (20)
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 |
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 |
JP4891252B2 (ja) * | 2004-11-10 | 2012-03-07 | エヌヴィディア コーポレイション | 汎用乗算加算機能ユニット |
US7428566B2 (en) * | 2004-11-10 | 2008-09-23 | Nvidia Corporation | Multipurpose functional unit with multiply-add and format conversion pipeline |
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 |
WO2008056551A1 (fr) | 2006-11-10 | 2008-05-15 | Nec Corporation | Circuit de diviseur de fréquence de signal d'horloge |
KR101494065B1 (ko) * | 2007-02-16 | 2015-02-23 | 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 | 반도체 장치 및 상호접속된 장치들을 갖는 시스템에서의 전력 소비를 감소시키는 방법 |
JP2010245753A (ja) | 2009-04-03 | 2010-10-28 | Nippon Telegr & Teleph Corp <Ntt> | 暗号演算回路装置 |
US8912814B2 (en) * | 2012-11-12 | 2014-12-16 | Chaologix, Inc. | Clocked charge domain logic |
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 |
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 | 北京航空航天大学 | 一种复合并行数据加密方法 |
-
2020
- 2020-01-14 US US16/741,779 patent/US10979054B1/en active Active
- 2020-11-18 TW TW111100577A patent/TWI793961B/zh active
- 2020-11-18 TW TW109140407A patent/TWI755936B/zh active
-
2021
- 2021-01-12 JP JP2021002854A patent/JP7061207B2/ja active Active
- 2021-01-14 CN CN202110049066.XA patent/CN113127938B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2005027403A1 (ja) * | 2003-09-11 | 2006-11-24 | 株式会社ルネサステクノロジ | 情報処理装置 |
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 | 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム |
JP2006203416A (ja) * | 2005-01-19 | 2006-08-03 | Mitsubishi Electric Corp | 電子素子及び解読攻撃防御方法 |
JP2010021624A (ja) * | 2008-07-08 | 2010-01-28 | Hitachi Ltd | 情報処理装置 |
CN102369508A (zh) * | 2008-09-04 | 2012-03-07 | 新思公司 | 电子系统中的暂时辅助资源共享 |
CN102460403A (zh) * | 2009-06-11 | 2012-05-16 | 飞思卡尔半导体公司 | 用于地址转换的动态和选择性改变的处理器和方法 |
CN105027136A (zh) * | 2012-12-29 | 2015-11-04 | 英特尔公司 | 用于集成电路的安全密钥推导和密码逻辑 |
TW201638787A (zh) * | 2015-03-12 | 2016-11-01 | 美光科技公司 | 用於資料移動之裝置及方法 |
CN109901793A (zh) * | 2017-12-07 | 2019-06-18 | 新唐科技股份有限公司 | 存储器安全装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7061207B2 (ja) | 2022-04-27 |
CN113127938A (zh) | 2021-07-16 |
TWI793961B (zh) | 2023-02-21 |
TW202217621A (zh) | 2022-05-01 |
TWI755936B (zh) | 2022-02-21 |
JP2021111410A (ja) | 2021-08-02 |
US10979054B1 (en) | 2021-04-13 |
TW202131207A (zh) | 2021-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maistri et al. | Double-data-rate computation as a countermeasure against fault analysis | |
Koteshwara et al. | Key-based dynamic functional obfuscation of integrated circuits using sequentially triggered mode-based design | |
Canivet et al. | Glitch and laser fault attacks onto a secure AES implementation on a SRAM-based FPGA | |
Bellizia et al. | Secure double rate registers as an RTL countermeasure against power analysis attacks | |
Cilio et al. | Mitigating power-and timing-based side-channel attacks using dual-spacer dual-rail delay-insensitive asynchronous logic | |
CN113127938B (zh) | 安全集成电路及其方法 | |
Sarker et al. | Error detection architectures for hardware/software co-design approaches of number-theoretic transform | |
Kumar et al. | Detection of hardware Trojan in SEA using path delay | |
Sengupta et al. | Low cost functional obfuscation of reusable IP cores used in CE hardware through robust locking | |
Zhang et al. | Power side channels in security ICs: hardware countermeasures | |
Endo et al. | A silicon-level countermeasure against fault sensitivity analysis and its evaluation | |
Cui et al. | On the difficulty of inserting trojans in reversible computing architectures | |
Šišejković et al. | Inter-lock: Logic encryption for processor cores beyond module boundaries | |
Kasper et al. | Side channels as building blocks | |
Dhanuskodi et al. | Efficient register renaming architectures for 8-bit AES datapath at 0.55 pJ/bit in 16-nm FinFET | |
Saeki et al. | A design methodology for a DPA-resistant cryptographic LSI with RSL techniques | |
Cilio et al. | Side-channel attack mitigation using dual-spacer Dual-rail Delay-insensitive Logic (D 3 L) | |
Oya et al. | Hardware-Trojans rank: Quantitative evaluation of security threats at gate-level netlists by pattern matching | |
Jayasinghe et al. | Quadseal: Quadruple balancing to mitigate power analysis attacks with variability effects and electromagnetic fault injection attacks | |
Kumar et al. | Analysis of side-channel attack AES hardware trojan benchmarks against countermeasures | |
Hu et al. | SANSCrypt: Sporadic-authentication-based sequential logic encryption | |
Tanimura et al. | LRCG: latch-based random clock-gating for preventing power analysis side-channel attacks | |
Simoes et al. | Self-timed Masking: Implementing Masked S-Boxes Without Registers | |
Rajski et al. | H2B: Crypto Hash Functions Based on Hybrid Ring Generators | |
Lozachmeur et al. | A RISC-V Instruction Set Extension for Flexible Hardware/Software Protection of Cryptosystems Masked at High Orders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |