CN102027481B - 保护可编程密码电路的方法,以及由所述方法保护的电路 - Google Patents

保护可编程密码电路的方法,以及由所述方法保护的电路 Download PDF

Info

Publication number
CN102027481B
CN102027481B CN200980114681.1A CN200980114681A CN102027481B CN 102027481 B CN102027481 B CN 102027481B CN 200980114681 A CN200980114681 A CN 200980114681A CN 102027481 B CN102027481 B CN 102027481B
Authority
CN
China
Prior art keywords
unit
signal
input
circuit
variable
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
Application number
CN200980114681.1A
Other languages
English (en)
Other versions
CN102027481A (zh
Inventor
S·吉耶
J-L·当热
P·霍格沃斯特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Secure IC SAS
Original Assignee
Centre National de la Recherche Scientifique CNRS
Telecom ParisTech
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 Centre National de la Recherche Scientifique CNRS, Telecom ParisTech filed Critical Centre National de la Recherche Scientifique CNRS
Publication of CN102027481A publication Critical patent/CN102027481A/zh
Application granted granted Critical
Publication of CN102027481B publication Critical patent/CN102027481B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Power Sources (AREA)

Abstract

本发明涉及一种包括单元的电路,所述单元包含限定了每个单元的逻辑函数的存储器,所述电路集成了能够针对二进制变量对进行运算的差分网络,该差分网络包括实现了所述对的第一分量的逻辑函数的第一单元网络,以及针对所述对的第二分量执行互补逻辑的对偶单元的第二网络。运算步骤包括至少一个预充电阶段(41),在该阶段变量在单元的输入端设置到已知状态,接着是评估阶段(43),在该阶段由单元执行运算。在评估阶段或预充电阶段之前在够接收多个传送输入变量的信号的每个单元执行变量同步阶段(42,44),针对最长延迟的信号执行同步。本发明用于保护该类型的电路抵抗差分功率分析攻击。

Description

保护可编程密码电路的方法,以及由所述方法保护的电路
技术领域
本发明涉及一种保护可编程密码电路的方法。还涉及一种由所述方法保护的电路。其主要应用于保护该类型的电路抵抗差分功率分析攻击。 
背景技术
密码学的目的主要是: 
-通过加密及其对偶操作(dual operation)即解密手段保护信息的秘密;或者 
-或通过签名和签名验证操作保护信息的完整性。 
密码学使用可靠的数学方法,在此意义上,在公知知识的现有状态下,没有攻击方法比与测试所有可能密钥相对应的穷举攻击更快速。 
通常,加密方法涉及系统安全所需的复杂的运算。其复杂度不会对计算机造成特别的问题,但是在一般公众所用的设备通常是低成本微处理器控制的设备,不具有高运算能力时,这会构成障碍。因此,后果可能是几种等级,例如,银行卡将会花费几分钟来对交易签名,或者数字支付电视解码器将不能满足所涉及的数据速率。 
为了解决这类问题而不增加系统的成本,通常是为控制设备的中央处理单元增加辅助设备,一般是密码专用协处理器。 
然而,无论是通过中央处理单元还是专用协处理器实现,密码算法在所有情况下都是通过物理电子设备实现的。然而电子设备具有不可避免的不理想性,这是由于电学原理的内在属性造成的。 
因此,可能利用实现了如下算法的物理系统的不理想性来攻击从数据观点看可靠的密码系统: 
-运算的持续时间可取决于数据的值,特别是对于时间优化软件系统,这可能引发时间攻击,在某些情况下,使得基于简单的运行时间测试就能发现所有的密钥; 
-瞬时功耗也可能取决于数据而且可能引发一系列攻击,例如: 
-SPA(simple power analysis,简单功率分析),其试图基于测量密码操作期间中央处理单元的功耗来区分中央处理单元执行的操作; 
-DPA(differential power analysis,差分功率分析),其针对很多功耗测量进行统计操作,这在针对随机消息执行密码操作期间进行,并且用固定密钥来对密钥的有限部分所作的假设进行验证有效或者无效。 
-模板攻击(template attack),其: 
-在第一阶段,使用与被攻击设备相同的设备,除非该相同设备不包含秘密,来建构用密钥的有限部分的值来排序的功率模型;以及。 
-在第二阶段,对被攻击设备的功耗进行几次测量,来确定测量的功率水平最接近哪个模型,因而确定该子密钥的值; 
-导线中流动的任何电流会产生电磁场,对其测量会引发攻击,其原理与基于功耗的攻击,主要是DPA,相同;以及 
-最后,攻击会干扰系统的操作以便利用错误结果来发现系统的秘密。 
实现密码算法并且能够泄露与存储在设备的存储器中的秘密有关的信息的物理设备的不理想性称为“隐藏通道”(cached channel)。 
重新配置的FPGA(现场可编程门阵列)类型电路非常广泛用于需要密码的应用中。至少有两个原因。首先,密码标准变比很快,某些具有弱点的算法被其他改正了缺陷的算法替代。另外,密码参数,例如密钥大小,也是可变的。因此需要灵活性,且不危害性能。实际上,密码算法能保护是因为它们的运算是复杂的。FPGA完美地满足了对于灵活性和功率的要求。其次,某些密码应用被少量的传播。这主要是例如星上系统的情况。因此FPGA方案相比于例如ASIC类型的专用实现更加有效。然而,像所有的密码电路一样,具有密码功能的FPGA易受攻击,主要是隐藏通道攻击。物理门操作于互补逻辑(complementary logic),这造成功耗独立于数据并因此变得不可用,主要是对于DPA。为了保证在每个运算的转换(transition)的数量固定,即功率消耗固定,差分逻辑需要两个工作阶段: 
-预充电阶段,用于将变量设置到已知状态;以及 
-评估阶段,在该阶段用固定数量的转换来执行运算。 
因此密码电路的复杂度不止加倍,因为采用了差分逻辑和其实现所需的双轨(dual-rail)连接。 
尽管某些FPGA将计数器盗用保护器件集成到其结构内,但没有被设计来经受对它们的施行的攻击。因此保护器件采用了RTL(Register Transfer Level,寄存器输出级)的方案,主要为例如WDDL逻辑,在K.Tiri和I.Verbauwhede于2004年2月在Proceedings of DATE’04的第246-251页发表的文献“安全的抗DPA的ASIC或FPGA实现的逻辑级设计方法(A logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation)”中提出,或者是MDPL逻辑,在T.Popp和S.Mangard在2005年9月,Springer,Proceedings of CHES’05,LNCS的卷3659第172-186页发表的“掩码双轨预充电逻辑:没有路由限制的抗DPA(Masked Dual Rail Pre-Charge Logic:DPA Resistance without routing Constraints)”中提出。这些方案是不足的,因为它们表现出了能够被攻击者利用的逻辑和工艺偏差。 
在提出的所有差分逻辑类型中,不论表面的功耗平衡,二阶现象显示出了不平衡因而信息泄露。最严重的现象主要是差分网络中的预先评估和工艺差别。 
Daisuku Suzuki等著的文献“采用双轨预充电逻辑方式的DPA计数测量的安全评估”(Security Evaluation of DPA Countermeasures Using Dual-Rail Pre-charge Logic Style),密码硬件和嵌入式系统(Cryptographic Hardware and Embedded Systems)——CHES2006计算机科学讲义:LNCS,Springer,Berlin,Vol.4249,2006年1月1日,第255-269页,中描述了WDDL和MDPL双轨逻辑模式。 
Marco Bucci等所著的另一文献“三相双轨预充电逻辑”(Three-Phase Dual-Rail Pre-charge Logic),密码硬件和嵌入式系统 (Cryptographic Hardware and Embedded Systems)——CHES2006计算机科学讲义:LNCS,Springer,Berlin,Vol.4249,2006年1月1日,第232-241页,其中描述了三相逻辑。 
发明内容
本发明的一个目的主要是绕开这些现象并且使其很难通过功耗测量来攻击,特别是针对FPGA工艺的密码电路。 
为此目的,本发明的一个主题是一种用于保护可编程密码电路的方法,所述方法利用多个门,所述门本身由限定了每个单元的逻辑函数的基于存储器的单元组成,所述电路配置为集成了能够对由信号对组成的二进制变量进行运算的差分网络,所述差分网络包括实现了针对所述对的第一分量的逻辑函数的单元的第一网络,以及以针对所述对的第二分量的互补逻辑来操作的对偶单元的第二网络。运算包括两个阶段:预充电阶段,在该阶段中所有变量的两个信号设置为已知的相同状态(例如0),评估阶段,在该阶段中由单元执行实际的运算,其中表示每个变量的两个信号中的一个激活,以及在每个预充电阶段和评估阶段之前的同步阶段。 
例如,变量同步阶段在一组变量中执行并且插入到每个单元的评估阶段之前,该每个单元能够接收传送输入变量的多个信号,针对最长延迟的信号执行同步。 
变量同步阶段还可以在一组变量中执行并且插入到每个运算单元的预充电阶段之前,该每个运算单元能够接收传送输入变量的多个信号,针对最长延迟的信号执行同步。 
例如通过利用了一致单元(unanimity cells)的汇聚机构,针对差分网络的每个单元执行同步阶段,所述汇聚机构的输入对于差分网络的所述单元的输入是公共的,并且所述汇聚机构的输出控制了所述单元的操作,当一致单元的输入端上的值一致时发生汇聚,门的输出仅当汇聚在同步后到达时才改变。 
为了使得方法更易于理解,所有的信号对(对应于非互补和互补变量)被认为在预充电阶段为(0,0)状态,该推理还应用于(1,1)状态。 
一致单元有两个类型:一致到1(unanimity-to-1)单元U1和一致到0(unanimity-to-0)单元U0,其具有公共的输入端,并且分别使能评估阶段和预充电阶段: 
-一致到1单元U1,其在所有输入变量一离开预充电状态就产生使能评估的信号。该条件相当于所有输入信号对从预充电状态(0,0)切换到(0,1)状态或(1,0)状态;以及 
-一致到0单元U0,其在所有输入变量一离开评估状态就产生使能预充电的信号。该条件相当于所有输入信号对从(0,1)或(1,0)的评估状态切换到预充电状态(0,0)。 
只要一致到1或一致到0没激活,运算单元被“冻结”(或存储在存储器中)。这是由汇聚存储器函数提供的。 
在一个特定实施例中,门接收全局信号PRE,用于在预充电阶段之前将输入变量重置到零。该信号对于所有的门是公共的,而且领先于其他信号。PRE设置的预充电使得能消除一致单元U0并且无需在汇聚处进行存储。 
同步阶段采用,例如: 
-U1一致单元,一旦所有输入变量离开了预充电状态就产生使能评估的信号;以及 
-门,其将U1单元的输出与重置到零信号PRE相结合,结合的同步信号 
Figure BPA00001250014500051
根据其二进制的值来使能预充电阶段( 
Figure BPA00001250014500052
)或评估阶段( 
Figure BPA00001250014500053
)。 
本发明的主题还有根据如上所述的方法保护的电路。可编程电路,例如可编程密码电路,包括多个门,所述门本身由限定了每个单元的逻辑函数的基于存储器的单元组成,所述电路集成了能够对由信号对组成的二进制变量进行运算的差分网络,所述差分网络包括实现了针对所述对的第一分量的逻辑函数的单元的第一网络,以及以针对所述对的第二分量的互补逻辑来操作的对偶单元的第二网络。运算步骤包括预充电阶段,在该阶段中变量在单元的输入端设置为已知状态,由单元执行运算的评估阶段,以及在每个预充电阶段和评估阶段之前的同步阶段。 
在一个特定实施例中,由于差分网络的单元包括限定了与多路器的树相关联的逻辑函数的存储器,所述树的第一列的多路器的输入接收存储器的值,并且最后的多路器的输出形成了单元的输出,结合的同步信号 
Figure BPA00001250014500054
控制第一列的多路器,其他列的多路器由单元的输入信号控制。 
例如,输入变量的信号对与它们各自的单元中的多路器的相同列相关联。 
例如,所述电路包括至少一个保护门,2n输入的四个单元用于产生2n-1输入的保护门,两个单元用于产生一致U1,两个单元用于差分网络。 
例如,所述电路包括至少一个保护门,2n输入的八个单元用于产生2n个输入的保护门,四个单元用于产生一致U1和U0,两个单元用 于差分网络,两个单元用于将门的输出冻结的汇聚,所采用的逻辑函数要满足递增特性。 
在一个实施例中,所述电路包括至少一个保护单元,2n输入的两个单元用于产生n输入的保护门,两个单元用于产生集成了一致的差分网络,所采用的逻辑函数要满足递增特性。 
附图说明
结合附图,通过如下说明书,本发明的其他特点和优点将变得明显,其中附图显示了: 
-图1为差分逻辑的“与”门; 
-图2显示了对于例如FPGA类型的可编程电路的差分逻辑中的运算步骤的阶段; 
-图3为差分逻辑中的预先评估的示例; 
-图4显示了在根据本发明的BCDL(Balanced Cell-Based Differential Logic,基于平衡单元的差分逻辑)电路内的运算步骤中,插入在预充电阶段和评估阶段之间的同步阶段; 
-图5图示了差分网络内为了到达运算单元的路径差别; 
-图6为跟随有差分网络中的运算的,用于同步输入端的变量的BCDL门的操作原理; 
-图7图示了根据本发明的BCDL门中简化的运算阶段; 
-图8为利用全局信号来实现前述简化的运算阶段的BCDL门的操作原理; 
-图9表示前述运算阶段中涉及的信号的时序图; 
-图10表示主要是FPGA类型的可编程网络中的运算单元的结构; 
-图11a、11b、11c和11d表示根据本发明的电路内的功率平衡; 
-图12表示BCDL门的结构; 
-图13为FPGA单元中的一致性函数(unanimity function)的示例性实施方式; 
-图14为BCDL门的示例性实施方式,其不具有全局预充电输入,使得能够接收大量的输入,并需要汇聚单元(rendezvous cells);以及 
-图15为BCDL门的示例性实施方式,其具有几个输入并且其中一致性函数和运算函数集成到相同单元中。 
具体实施方式
图1显示了WDDL逻辑的“与”门1、2,作为显示了差分逻辑的原理的例子。该门由两个以互补逻辑模式操作的对偶逻辑网络1、2组成。数据以双轨形式显示,每个逻辑变量a由以如下形式编码的一对信号(at,af)形成: 
-(0,0)为休眠状态(rest state):a的值没有定义-此后用Ω表示; 
-(1,0)为激活状态(active state):其中a=1; 
-(0,1)为激活状态(active state):其中a=0。 
具有两个输入a和b以及一个输出s的逻辑门H物理上由分别具有逻辑函数T(at,bt)和F(af,bf)的两个门1、2表示,从而: 
-st=T(at,bt
-sf=F(af,bf
“真”逻辑网络对应于发出信号st的函数T。“假”对偶逻辑网络对应于发出对偶信号sf的函数F。图1显示了“与”门,其中执行函数T的“真”网络1接收两个非互补的输入at和bt。“或”对偶函数执行函数F。对于信号x,如下等式成立: 
-T(x)=H(x) 
- - F ( x ) = H ‾ ( x ‾ ) 。 
图2显示了例如WDDL(Wave Dynamic Differential Logic,波动态差分逻辑)类型的差分逻辑中的运算步骤的阶段。该步骤包括连续的多个阶段,即预充电阶段21和评估阶段22。输入变量at,bt,af,bf以及对应的输出变量st,sf的状态的示例在预充电阶段和评估阶段下方示出。图2的时序图显示出当变量从预充电阶段切换到评估阶段时,转换(transition)的数量是相同的——在该情况中是三个,反过来也一样。因为功耗直接与转换的数量相关,特别是在CMOS电子工艺中,因此功耗被平衡。 
然而,尽管表面上功率平衡了,二阶效应可能会引发数据泄露,例如,如果at早于或迟于af,攻击者可能观察到时移,因而从此推导 出变量a的值。该现象可以通过利用平衡的双轨互连来阻止,也就是说从电气观点看用完美平衡的两条线,主要是在长度和电容方面。假定双轨线是平衡的,有很多其他现象使得能够以当前提出的逻辑模式来进行攻击。如上所说,最重要的一些主要是差分网络中的预先评估和工艺差别。 
图3显示了具有预先评估的WDDL逻辑的时序图。如果信号a早于或迟于信号b,可能发生预先评估,如图3所示。因此信号a和b的分量之间的延迟通过“与”函数和“或”函数之间的逻辑差反应在门1、2的输出上。通过时间间隔Δt1和Δt2,可以知道信号a是否等于0或等于1。更精确地,在图3中,b总是比a快。根据b是否等于0,如在时序图的第一个一半,或等于1,如在第二个一半,输出在Δt1评估地更慢,或者在Δt2更快,因而泄露了b的值。以与预先评估22相同的方式,可以有预先预充电21,这意味着一些信号比其他的更快速的切换到0。 
主要的,有两个原因造成b比a快: 
-数据信号bt和bf直接连接到门,而at和af经过了很多互连,因而经过了很多切换元件; 
-数据信号at和af经过中间的门,而bt和bf直接到达。 
取决于工艺,导致通过功耗进行攻击的弱点的另一个现象是在逻辑网络及其互补之间消耗的能量的差。例如,在WDDL逻辑中,对于“与”门,如果a等于1,则如果b等于1“与”门切换,否则其是“或”门。因此如果“与”和“或”门转换不具有相同的功耗,则可以从中推导出b的值。 
MDPL逻辑克服了该问题,但是增加了成本。首先需要具有每一个时钟周期产生一个屏蔽位的真随机数发生器。另外,每个门的一个输入必须专用于该屏蔽。 
由于其有差别的属性,WDDL逻辑比普通逻辑必然复杂两倍。而且,对函数T和F的选择也有额外的严重的约束,其必须是增函数。该情况能够防止在运算阶段过程中的寄生切换(parasitic switching)并且确保预充电值沿着逻辑锥(logic cone)传播。该增函数约束限制单元的类型为FPGA。在FPGA中产生MDPL逻辑甚至更复杂。 
本发明主要产生一种新类型的逻辑,其消除了预先评估和工艺差别的缺陷,其在此后称为BCDL逻辑,表示平衡的基于单元的差分逻辑。在以BCDL逻辑操作的电路中: 
-在实际切换到预充电阶段或评估阶段之前,在每个门上增加数据同步步骤; 
-在数据组上执行同步;以及 
-在电路执行运算的同时并行执行同步运算。 
本发明应用该操作于: 
-全局等级,也就是在运算单元T,F之间;以及 
-局部等级,也就是运算单元的内部。 
图4显示了同步步骤。在评估阶段之前在每个门上通过对偶网络T,F执行该同步步骤。特别地,其能够避免预先评估和预充电问题。 
同步包括等待最长延迟信号。因此通过等待最长延迟信号消除了两个信号之间的运算时间的差所导致的预先评估的产生。 
图4显示了组成预充电和评估周期的四个连续的同步和运算阶段41、42、43、44。第一阶段41执行预充电运算,第二阶段42通过等待例如状态1的最后的信号来执行第一同步。该阶段之后是评估阶段43,之后是同步阶段44,接下来是下一个周期的预充值步骤41。该同步步骤44利用等待,例如等待状态0的最后的信号。 
图5显示了对偶逻辑网络的一部分,其包括两个移位寄存器51、52和对偶T,F门53、54、55。第一路径501传输来自第一移位寄存器51的信号a,第二路径502传输来自第二移位寄存器52的信号b。两个路径在T,F门55的输入端汇合,门55发出输出信号s。信号a在第一路径中被一系列的门53、54延迟。这些门还接收来自其他路径503、504的输入信号。在每个门的输入端,模块56、57、58执行同步。在图5所示的例子中,发出信号s的最后的门55仅在对应于最长延迟信号,在该例子中为信号a,的到达的时刻t2执行其运算。 
异步逻辑中的同步发生在具有汇聚单元RV的两个信号之间。只有当两个输入具有相同的逻辑值L时,单元RV切换到逻辑值L,否则他们不改变状态。因此单元RV是个存储器,只有当输入信号一致为0或1时,单元RV才改变状态。在BCDL逻辑中,汇聚发生在FPGA 电路的同一个单元中的数据组上。例如采用了特定的U0和U1单元。 
U1单元产生使能评估的信号,一旦所有的数据离开了先前定义的状态Ω,该信号就切换到1。更特别地,U1(x,y,…)表示的该信号用如下等式定义: 
U1(x,y,…)=1如果x≠(0,0)且y≠(0,0)…,否则 
U1(x,y,…)=0                                       (1) 
U0单元产生将输出返回到状态Ω的信号。根据下式,一旦每个输入为状态Ω,该信号就切换到1: 
U0(x,y,…)=1如果x=y=(0,0)…,否则U0(x,y,…)=0 
                                                      (2) 
因此仅当一致时,也就是说当U0或U1激活时,该运算启动,并且只要没有一致,也就是说U0或U1不激活时,运算冻结(frozen)。 
图6显示了数据组同步的原理。数据a、b、c并行输入到执行预充电或评估运算的T,F对偶端口60,以及U1单元61和U0单元62。U1单元发送评估使能信号63至门60,U0单元发送预充电使能信号64至该门。 
预充电运算比评估运算简单,因为所有的信号要切换到0状态,而评估对应于针对携带信息的信号的真运算。该特性可以应用于BCDL逻辑中,同时利用例如比其他信号更加迅速的全局零复位(reset-to-zero)信号,消除例如预充电之前的同步阶段44。 
图7显示了该信号PRE,其将所有的信号正好在预充电阶段41之间设置到零。在此情况下,预充电和评估周期仅包括三个阶段,在评估阶段43之前仅包括单个同步阶段42。这简化了门的结构,主要是如下两个原因: 
-不再需要执行一致到0步骤,这已被单个信号PRE代替;以及 
-因为信号PRE在前,不再需要存储门的输出,从而其仅在一致到0或1(汇聚)时改变。在信号PRE到达之后,输出立即变到0,并且只有当一致到1时才切换到1。 
图8显示了简化的BCDL逻辑的门结构,因为在评估时所需的一致到0,如图7所示,已被通过全局预充电信号PRE接收预充电切换命令的“与”门71代替。因而作为“与”门的输出72的信号 能够使得运算同步: 
-当 
Figure BPA00001250014500111
正好在信号PRE之后切换到0时,对输入独立地强制预充电;以及 
-当 
Figure BPA00001250014500112
切换到1时,表示信号PRE的一部分处于1并且输入值的汇聚也受影响,评估阶段启动。 
图9显示了在预充电阶段21和评估阶段22期间信号a、b、s和 的时序图。这些时序图显示出在信号 
Figure BPA00001250014500114
的转换91期间,针对输入独立地强制预充电阶段21。 
在如上所描述的方案中,应用在全局级别,BCDL逻辑用于解决与整个电路中的预先评估相关的问题。相对于攻击的鲁棒性还必须在单个BCDL门级局部地变化,特别用于避免工艺差别和局部预先评估。而且,增加同步不能造成复杂度大幅增加的危害。 
图10显示了具有三个输入a、b、c的FPGA电路的单元的结构。在FPGA电路中,在基于存储器的单元中执行逻辑,所述单元包括限定了单元的逻辑函数的LUT(look-up tables,查找表)101。图10显示了单元的结构基于查找表(LUT)101,查找表101与形成三列103、104、105的多路器102树相关联。查找表101存储了针对每个三元组(x,y,z)的函数s的二进制值,其中x、y和z取值0或值1。 
第一列或输入列,由树的第一级的多路器102形成,第三列105由最后一级的多路器形成,即输出多路器。输入a、b、c控制多路器。因而列的数量对应于输入的数量。函数的每个值s(x,y,z)出现在输入列103的多路器的输入。控制多路器的级的二进制值a、b、c的各种组合用来选择输入列103的输入。 
根据本发明,基于如下两个引脚分配(pinout)模式来提高局部鲁棒性: 
-信号 
Figure BPA00001250014500115
进入多路器树的第一列;以及 
-“真”输入et和“假”输入ef对与门T和F的各自相同的引脚相关联。 
这些引脚分配模式对于局部安全能达到明显的结果,并且他们实现起来非常便宜。 
第一,没有寄生切换。因为信号 
Figure BPA00001250014500116
首先在预充电阶段切换,当数据输入切换时,内在的等电位(equipotentials)全被强制到0,而 没有任何寄生切换的风险。相似地,该信号最后在评估阶段前切换。因此,由数据控制的多路器选择了零。那么信号 
Figure BPA00001250014500121
使得函数的值通过预先定位的多路器102。 
第二,复杂度减少。这是因为,因为相同的原因,不需要增函数来避免寄生切换,因为多路器已经被正确地定位于输入。显著的,这使得对于n输入的LUT,能够利用所有可能的函数,高达2n数量,相比于增函数的组件,提供了更广泛的优化潜力。例如,对于4输入的LUT,从65536个可能的函数里只有166个增函数。 
第三,工艺偏差被大大减小。作为输入的组合的函数的T和F等电位切换的总数量不会变化。该数量是固定的,当n为LUT的输入的数量时,等于2n-1。因此这难于区分T激活和F激活,因为功耗曲线对于T和F对是相同的。另外,通过多路器随着时间进行的一系列的切换对于数据来说是独立的。 
最后,在LUT表内没有预先评估和预先预充电。这是因为延迟了评估的信号 
Figure BPA00001250014500122
总是在信号之后到达,并且不会等待数据,信号 
Figure BPA00001250014500123
强制了预充电。换句话说,评估总被延迟,预充电总是预先的,独立于数据。 
图11a、11b、11c和11d显示了在三输入LUT表的例子中,以BCDL逻辑切换时的功耗平衡。更特别地,这四个图显示了当信号 
Figure BPA00001250014500124
切换时两输入“异或”(XOR)门的所有组合。在所有这些图中,上部的单元为“真”门T,底部单元是“假”门F。对应于电路T和F的切换的随时间变化的全局功率峰值表示为曲线111,峰值面向列,且对应于当他们相对应的列切换时的功耗。为了示例,图11a对应于连接到第二列104和第三列105的输入信号等于(0,0)的情况。粗线所示的多路器112、113、114、115、116、117和118查看到他们的输出切换了。曲线111显示了对应于该第一组合(0,0)的功率峰值。与该组合相关联的功率曲线111在下面的图中相同。因此无论根据切换时间或功耗,在T、F对的内部实现了全局平衡。换句话说,如图11a、11b、11c和11d所示,对于每个组合(0,0),(0,1),(1,0)和(1,1),有相同数量的切换操作。 
利用用于在任何FPGA系统中实现应用的程序,可以使切换到 BCDL逻辑自动发生。从标准FPGA工具中获得的分析工具使得逻辑能够转换到上述的逻辑。分析限制为替换BCDL门的变体中的逻辑元件。互连线对的路由必须以平衡方式执行。 
图12图示了包含四个单元121、122、123和124的BCDL门的结构,即两个一致到1单元121和122,用于函数T的一个单元123和用于其对偶函数F的一个单元124。也可以级联(cascade)上述的U1单元。例如,那么BCDL门由如下组成: 
-以互补逻辑操作的两个对偶单元123、124,每个单元接收n个输入,T单元时为Eit,F单元时为Eif,i从1变至n。T和F单元分别发出输出信号的分量st和sf;以及 
-两个U1单元,实现一致到1并产生信号 
Figure BPA00001250014500131
,每个单元接收对应于对(Eit,Eif)的一半的n个输入。 
图13显示了级联连接到U1单元的U’1单元122的实施例,用于实现一致。输入(Eit,Eif)…(Ejt,Ejf)连接到“或”门121,这些“或”门的输出在“与”门122的输入被组合起来,逆信号 在该门122的输入与该“或”门的输出相结合。“与”门122的输出端发出信号 
Figure BPA00001250014500133
。 
在没有全局预充电并且具有大量输入的BCDL门的一个实施例中,可以使用或者不使用全局预充电信号PRE。然后在如上所述的四个阶段中执行运算。对于T和F门,这主要能够获得LUT表上的一个输入,因而增加了输入的数量。另一方面,全局预充电必须用一致到0运算来代替。而且,需要在没有一致时汇聚(即“冻结”运算)。为此目的使用了特定的汇聚单元。 
因此,没有全局预充电的BCDL门,如图14所示,由如下组成: 
-以用于T和F函数的互补逻辑操作的两个单元123、124,每个单元接收n个输入; 
-至少两个汇聚单元RV143、144,其发出输出信号的分量st和sf,RV单元分别与具有T和F函数的单元相关联,具体的数量取决于LUT的输入的数量。以及 
-两个U0单元141、142,用于实现一致到0,其输出连接到汇聚 单元的输入;以及 
-两个U1单元121、122,用于实现一致到1,其输出连接到汇聚单元的输入。 
图14中所示的门主要适用于实现DES加密算法替换盒。不具有全局预充电的BCDL门必须总是满足具有增函数的条件,例如如同WDDL逻辑。 
在不具有全局预充电的BCDL门具有几个输入的实施例中,一致到1函数可以集成到T和F单元中,如图15所示的例子中所示。那么不再需要使用信号PRE,因为一致到1函数利用最快的信号的到达将T和F函数重置到零。然而,当U1单元被分离时,该原理不再适用,因为这样就有单个路径,如果U1单元比较慢,T和F单元可以早于预期切换到预充电阶段。在此情况中,再次传播预充电的0值,因为单个PRE不存在,并且需要增函数来防止寄生切换,并且沿着逻辑锥传播预充电。在图15所示的例子中,输入信号的对偶分量(Eit,Eif)发送到集成到T单元151和F单元152内的“或”门153,这些输入还连接到单元151、152的实际T和F门的输入。这些单元的输出以及“或”门153的输出和“与”门154的输入结合,其输出发出输出信号的分量st和sf。图15显示了在函数具有少量输入的特殊情况下的门。一致到1逻辑被集成到T和F单元内,因此能够利用最快速的信号切换到预充电阶段。 

Claims (21)

1.一种用于保护可编程密码电路的方法,所述方法利用多个门,所述多个门本身由限定了每个单元的逻辑函数的基于存储器的单元(101)组成,所述电路配置为集成了能够对由信号对组成的二进制变量进行运算的差分网络,所述差分网络包括实现了针对所述对的第一分量的逻辑函数(T)的单元的第一网络(1),以及以针对所述对的第二分量的互补逻辑(F)来操作的对偶单元的第二网络(2),运算步骤包括预充电阶段(41),在该阶段中变量在单元的输入端设置为已知状态,由单元执行运算的评估阶段(43),其特征在于在每个预充电阶段和评估阶段之前执行同步阶段(42,44)。 
2.如权利要求1所述的方法,其特征在于,变量同步阶段(42)在一组变量中执行并且插入到能够接收多个传送输入变量的信号的每个单元的评估阶段之前,同步是针对最长延迟的信号执行的。 
3.如权利要求1所述的方法,其特征在于,变量同步阶段(44)在一组变量中执行并且插入到能够接收多个传送输入变量的信号的每个运算单元的预充电阶段之前,同步是针对最长延迟的信号执行的。 
4.如权利要求2或3所述的方法,其特征在于,通过采用了一致单元的汇聚机构(56,57,58),针对差分网络(53,54,55)的每个单元执行同步阶段(42,44),所述汇聚机构的输入对于差分网络的所述单元的输入是公共的,并且所述汇聚机构的输出控制了所述单元的操作,当一致单元的输入端上的值一致时发生汇聚,门的输出仅当在同步后实现汇聚时才改变。 
5.如权利要求4所述的方法,其特征在于,同步阶段利用了两个一致单元,即U1一致单元(61)和U0一致单元(62),其具有对于差分运算网络公共的输入,并且分别准予评估阶段和预充电阶段: 
-U1单元产生信号(63),其在所有输入,即与每个变量相关的信 号对,一离开预充电状态就准予评估;以及 
-U0单元产生信号(64),其在所有输入,即与每个变量相关的信号对,一切换到预充电状态就准予预充电。 
6.如权利要求1所述的方法,其特征在于,对于同步阶段,该方法利用全局信号(PRE)而不是U0单元,在预充电阶段之前将输入变量重置到零,全局信号(PRE)早于其他信号。 
7.如权利要求6所述的方法,其特征在于,同步阶段采用: 
-U1单元(61),其具有对于差分运算网络公共的输入,并且一旦其所有输入离开了预充电状态就产生准予评估的信号;以及 
-门(71),其将U1单元的输出与重置到零的信号(PRE)相结合; 
结合的同步信号
Figure FSB00001102919400021
根据其二进制的值来准予预充电阶段或评估阶段。 
8.一种可编程电路,包括多个门,所述多个门本身由限定了每个单元的逻辑函数的基于存储器的单元(101)组成,所述电路集成了能够对由信号对组成的二进制变量进行运算的差分网络,所述差分网络包括实现了针对所述对的第一分量的逻辑函数(T)的单元的第一网络(1),以及以针对所述对的第二分量的互补逻辑(F)来操作的对偶单元的第二网络(2),运算步骤包括预充电阶段(41),在该阶段中所述变量在所述单元的输入端设置为已知状态,由单元执行运算的评估阶段(43),其特征在于在每个预充电阶段和评估阶段之前执行同步阶段(42,44)。 
9.如权利要求8所述的电路,其特征在于,变量同步阶段(42)在一组变量中执行并且插入到能够接收多个传送输入变量的信号的每个单元的评估阶段之前,同步是针对最长延迟的信号执行的。 
10.如权利要求8或9所述的电路,其特征在于,变量同步阶段(44)在一组变量中执行并且插入到够接收多个传送输入变量的信号 的每个运算单元的预充电阶段之前,同步是针对最长延迟的信号执行的。 
11.如权利要求9所述的电路,其特征在于,通过采用了一致单元的汇聚机构(56,57,58),针对差分网络(53,54,55)的每个单元执行同步阶段(42,44),所述汇聚机构的输入对于差分网络的所述单元的输入是公共的,并且所述汇聚机构的输出控制了所述单元的操作,当一致单元的输入端上的值一致时发生汇聚,门的输出仅当在同步后实现汇聚时才改变。 
12.如权利要求11所述的电路,其特征在于,同步阶段利用了两个一致单元,即U1一致单元(61)和U0一致单元(62),其具有对于差分运算网络公共的输入,并且分别准予评估阶段和预充电阶段: 
-U1单元产生在所有输入,即与每个变量相关的信号对,一离开预充电状态就准予评估的信号(63);以及 
-U0单元产生在所有输入,即与每个变量相关的信号对,一切换到预充电状态就准予预充电的信号(64)。 
13.如权利要求8所述的电路,其特征在于,对于同步阶段,其利用全局信号(PRE)而不是U0单元,在预充电阶段之前将输入变量重置到零,全局信号(PRE)相对于其他信号超前。 
14.如权利要求13所述的电路,其特征在于,同步阶段采用: 
-U1单元(61),其具有对于差分运算网络公共的输入,并且一旦其所有输入离开了预充电状态就产生准予评估的信号;以及 
-门(71),其将U1单元的输出与重置到零的信号(PRE)相结合; 
结合的同步信号
Figure FSB00001102919400031
根据其二进制的值来准予预充电阶段或评估阶段。 
15.如权利要求14所述的电路,其特征在于,由于差分网络的单元包括限定了与多路器(103,104,105)的树相关联的逻辑函数的存储 器(101),所述树的第一列(103)的多路器的输入接收存储器的值,并且最后的多路器(102)的输出形成了单元的输出,结合的同步信号 
Figure FSB00001102919400041
控制第一列(103)的多路器,其他列的多路器由单元的输入信号控制。 
16.如权利要求15所述的电路,其特征在于,输入变量的信号对与它们各自的单元中的多路器的相同列相关联。 
17.如权利要求8所述的电路,其特征在于,该电路包括至少一个保护门,2n个输入的四个单元用于产生2n-1个输入的保护门(12),两个单元用于产生一致U1,两个单元用于差分网络。 
18.如权利要求8所述的电路,其特征在于,其包括至少一个保护门,2n个输入的八个单元用于产生2n个输入的保护门(14),四个单元用于产生一致U1和U0,两个单元用于差分网络,两个单元用于将门的输出冻结的汇聚,所采用的逻辑函数要满足递增特性。 
19.如权利要求8所述的电路,其特征在于,该电路包括至少一个保护单元,2n个输入的两个单元用于产生n个输入的保护门(15),所述两个单元用于产生集成了一致的差分网络,所采用的逻辑函数要满足递增特性。 
20.如权利要求8所述的电路,其特征在于,该电路执行密码功能。 
21.如权利要求8所述的电路,其特征在于,所述电路为FPGA类型。 
CN200980114681.1A 2008-03-25 2009-03-18 保护可编程密码电路的方法,以及由所述方法保护的电路 Active CN102027481B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0851904 2008-03-25
FR0851904A FR2929470B1 (fr) 2008-03-25 2008-03-25 Procede de protection de circuit de cryptographie programmable, et circuit protege par un tel procede
PCT/EP2009/053212 WO2009118264A1 (fr) 2008-03-25 2009-03-18 Procede de protection de circuit de cryptographie programmable, et circuit protege par un tel procede

Publications (2)

Publication Number Publication Date
CN102027481A CN102027481A (zh) 2011-04-20
CN102027481B true CN102027481B (zh) 2014-01-29

Family

ID=39832362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980114681.1A Active CN102027481B (zh) 2008-03-25 2009-03-18 保护可编程密码电路的方法,以及由所述方法保护的电路

Country Status (10)

Country Link
US (1) US8904192B2 (zh)
EP (1) EP2257904B1 (zh)
JP (1) JP5509485B2 (zh)
KR (1) KR101542280B1 (zh)
CN (1) CN102027481B (zh)
CA (1) CA2719541C (zh)
ES (1) ES2724117T3 (zh)
FR (1) FR2929470B1 (zh)
SG (1) SG189698A1 (zh)
WO (1) WO2009118264A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522052B1 (en) 2010-04-07 2013-08-27 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
US9213835B2 (en) * 2010-04-07 2015-12-15 Xilinx, Inc. Method and integrated circuit for secure encryption and decryption
CN108292338B (zh) * 2015-12-02 2021-12-31 密码研究公司 冻结逻辑
US10891396B2 (en) 2016-05-27 2021-01-12 Samsung Electronics Co., Ltd. Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same
CN109474415B (zh) * 2018-10-19 2022-06-21 天津大学 三相位单轨预充电逻辑装置
CN109614826B (zh) * 2018-11-23 2021-05-07 宁波大学科学技术学院 一种基于tdpl逻辑的译码器
CN109714043B (zh) * 2018-12-29 2023-02-24 西安智多晶微电子有限公司 一种宽异或电路优化方法
US11886622B2 (en) * 2019-05-24 2024-01-30 University Of Cincinnati Systems and methods for asynchronous programmable gate array devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040233749A1 (en) * 2003-05-23 2004-11-25 Kabushiki Kaisha Toshiba Data processing apparatus and logical operation apparatus

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
US6981153B1 (en) * 2000-11-28 2005-12-27 Xilinx, Inc. Programmable logic device with method of preventing readback
DE10213267A1 (de) * 2002-03-25 2003-10-23 Infineon Technologies Ag Registerzelle und Verfahren zum Schreiben auf die Registerzelle
DE10324049B4 (de) * 2003-05-27 2006-10-26 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung
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
JP4594665B2 (ja) * 2004-07-09 2010-12-08 三菱電機株式会社 耐タンパ対策回路の評価装置、耐タンパ対策回路の評価方法、信号生成回路、信号生成方法、耐タンパ性評価装置及び耐タンパ性評価方法
JP2008005020A (ja) * 2006-06-20 2008-01-10 Matsushita Electric Ind Co Ltd プログラマブル論理回路
JP4935229B2 (ja) * 2006-08-02 2012-05-23 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
DE102007009526B4 (de) * 2007-02-27 2017-08-24 Infineon Technologies Ag Vorrichtung zum Speichern eines binären Zustandes
FR2935059B1 (fr) * 2008-08-12 2012-05-11 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040233749A1 (en) * 2003-05-23 2004-11-25 Kabushiki Kaisha Toshiba Data processing apparatus and logical operation apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Security Evaluation of DPA Countermeasures Using Dual-Rail Pre-Charge Logic Style;Daisuke Suzuki and Minoru Saeki;<<Cryptographic Hardware and Embedded System-Ches 2006 Lecture Notes In Computer Science>>;20061231;第4249卷;第256页第4段-第268页第2段,附图1-11 *

Also Published As

Publication number Publication date
US20110167279A1 (en) 2011-07-07
KR101542280B1 (ko) 2015-08-06
FR2929470B1 (fr) 2010-04-30
ES2724117T3 (es) 2019-09-06
CA2719541A1 (en) 2009-10-01
FR2929470A1 (fr) 2009-10-02
CA2719541C (en) 2017-05-30
US8904192B2 (en) 2014-12-02
JP2011518473A (ja) 2011-06-23
CN102027481A (zh) 2011-04-20
EP2257904A1 (fr) 2010-12-08
EP2257904B1 (fr) 2019-02-13
WO2009118264A1 (fr) 2009-10-01
JP5509485B2 (ja) 2014-06-04
KR20110028253A (ko) 2011-03-17
SG189698A1 (en) 2013-05-31

Similar Documents

Publication Publication Date Title
CN102027481B (zh) 保护可编程密码电路的方法,以及由所述方法保护的电路
Popp et al. Masked dual-rail pre-charge logic: DPA-resistance without routing constraints
Nassar et al. BCDL: A high speed balanced DPL for FPGA with global precharge and no early evaluation
Macé et al. Information theoretic evaluation of side-channel resistant logic styles
KR100750425B1 (ko) 결과 오퍼랜드의 표시를 계산하기 위한 장치 및 방법과 컴퓨터 판독 가능한 매체
CN100573540C (zh) 一种异步分组密码算法协处理器的设计方法
Fischer et al. Masking at gate level in the presence of glitches
Bhasin et al. Countering early evaluation: an approach towards robust dual-rail precharge logic
Mane et al. High speed area efficient FPGA implementation of AES algorithm
He et al. A precharge-absorbed DPL logic for reducing early propagation effects on FPGA implementations
McEvoy et al. Isolated WDDL: A hiding countermeasure for differential power analysis on FPGAs
CN102124470A (zh) 用于检测差分逻辑保护的加密电路中异常的方法、以及实现所述方法的电路
Marzouqi et al. Review of gate‐level differential power analysis and fault analysis countermeasures
Gross et al. First-order masking with only two random bits
Rashidi Low‐cost and two‐cycle hardware structures of PRINCE lightweight block cipher
Sravani et al. On efficiency enhancement of SHA-3 for FPGA-based multimodal biometric authentication
Surya et al. Local clock glitching fault injection with application to the ASCON cipher
Bhasin et al. Efficient dual-rail implementations in FPGA using block RAMs
Lomné et al. Evaluation on FPGA of triple rail logic robustness against DPA and DEMA
Macé et al. A design methodology for secured ICs using dynamic current mode logic
Bhasin et al. Unrolling cryptographic circuits: A simple countermeasure against side-channel attacks
Beyrouthy et al. A novel asynchronous e-FPGA architecture for security applications
Akishita et al. A practical DPA countermeasure with BDD architecture
Atani et al. On DPA-resistive implementation of FSR-based stream ciphers using SABL logic styles
Fang et al. Leakage evaluation on power balance countermeasure against side-channel attack on FPGAs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Paris France

Patentee after: INSTITUT MINES TELECOM

Patentee after: CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE

Address before: Paris France

Patentee before: INSTITUT TELECOM-TELECOM PARISTECH

Patentee before: CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230328

Address after: French cesson Sevigne

Patentee after: SECURE-IC S.A.S.

Patentee after: CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE

Address before: Paris France

Patentee before: INSTITUT MINES TELECOM

Patentee before: CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230718

Address after: French cesson Sevigne

Patentee after: SECURE-IC S.A.S.

Address before: French cesson Sevigne

Patentee before: SECURE-IC S.A.S.

Patentee before: CENTRE NATIONAL DE LA RECHERCHE SCIENTIFIQUE