首页> 中国专利> 用于检测差分逻辑保护的加密电路中异常的方法、以及实现所述方法的电路

用于检测差分逻辑保护的加密电路中异常的方法、以及实现所述方法的电路

摘要

本发明的主题是一种在由差分逻辑保护的电路中检测异常的方法,所述差分逻辑处理由一对分量(at,af)表示的逻辑变量,第一网络的单元(T)对第一对分量执行逻辑功能,第二网络的对偶单元(F)以互补逻辑对第二分量操作,所述逻辑功能由每对单元(T,F)在将变量置于已知状态的预充电阶段(21)对到所述单元的输入执行,随后是求值阶段(22),其中由所述单元来执行计算,所述方法特征在于,通过在预充电阶段期间或在求值阶段发生的至少一个不一致状态来检测异常。本发明的主题还包括一种差分逻辑保护的电路,包括用于在电路的监控节点处,在预充电阶段或求值阶段期间检测逻辑变量的两个分量一致性的模块。

著录项

  • 公开/公告号CN102124470A

    专利类型发明专利

  • 公开/公告日2011-07-13

    原文格式PDF

  • 申请/专利权人 法国电信教育集团-巴黎电信学院;

    申请/专利号CN200980131525.6

  • 发明设计人 J-L·当热;S·吉耶;F·弗拉芒;

    申请日2009-07-30

  • 分类号G06F21/02(20060101);G06F21/00(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人刘瑜;王英

  • 地址 法国巴黎

  • 入库时间 2023-12-18 02:47:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-08

    授权

    授权

  • 2011-10-05

    实质审查的生效 IPC(主分类):G06F21/02 申请日:20090730

    实质审查的生效

  • 2011-07-13

    公开

    公开

说明书

技术领域

本发明涉及用于检测差分逻辑保护的加密电路中异常的方法和电路。

特别地,本发明用于保护加密电路免受故障注入攻击的领域。

特别地,加密用于保护

-秘密信息,其通过加密和其对偶运算解密实现;

-或信息的完整性,通过签名和签名验证实现。

背景技术

加密使用安全的数学方法,现有技术中,最快的攻击方法是穷举攻击,即试图找出所有可能的密钥。

通常,加密方法包括系统安全所需的复杂计算。其复杂性对计算机来说不成问题,但对于通常由廉价的微处理器控制的不具备高速计算能力的大众设备来说,这构成了缺点。其后果包括,例如银行卡可能用几分钟的时间来认证一笔交易,每个节目单独付费的电视数字解码器可能无法满足所涉及的信息的吞吐量。

为在不增加系统成本的前提下解决这类问题,习惯于向控制设备的中央单元提供通常形式为专用于加密的协处理器。

但是,不管是中央单元还是专用的协处理器,加密算法都是由物理的电子设备执行。电子设备具有与电流规律的内在属性有关的不可避免的缺陷。

这样,可利用执行算法的物理系统的缺陷攻击数学观点中安全的加密系统。特别在时间优化的软件系统中,计算时间依赖于数据的值,可引起“定时攻击”,在特定情况下可检索所有的基于执行时间的简单测量的密钥。瞬时用电还可依赖于数据,这可引起一系列的攻击,例如:

-SPA(简单能量分析),其基于在加密操作期间测量的其电力消耗的测量值,来尝试区分中央单元执行的操作;

-功耗的差分分析DPA(差分功率分析),其使用关于大量电力消耗的测量值的统计操作,所述统计在对随机信息进行加密操作期间被执行,且使用常数密钥证实或无效对密钥的有限部分所做的假设;

-“模板”攻击类型,其在第一阶段使用和被攻击设备一样的设备(该设备不包括任何秘密)来构造由密钥的有限部分的值进行索引的功耗模型,在第二阶段测量被攻击设备的功耗来确定哪个所测量的功耗模型是最接近的,并且确定子密钥的值。

而且,任何流过导体的电流都引起电磁场,原则上,测量电磁场会产生与电力消耗(特别是DPA)有关的同样的攻击。

最后,所谓的主动攻击或故障注入攻击通过扰乱系统的操作以使用错误结果来检索系统的秘密。

执行加密算法并易于泄露关于设备存储器中保存的秘密信息的物理设备的任意缺陷被称为“隐藏通道”

故障攻击是本质上完全不同的主动攻击,特别地如David Naccache在论文“Finding faults”,IEEE Security and Privacy,3(5),pages 61-65,2005所阐述的:温度或电压变化;在电力供应或由于电磁场、激光发射时出现的寄生信号等。故障的后果是改变被攻击电路节点的值。根据对硅的影响,这些因素可以是单个的或多个的、永久的或瞬时的。通过多次尝试,瞬时故障注入的灵活性引起更强的攻击,并因此增加了成功的机会。单个故障攻击简化了攻击过程。故障攻击是基于正确的加密输出和具有故障的输出之间的差分分析。例如,Gilles Piret和Jean-Jacques Quisquater的论文“A Differential Fault Attack Technique against SPN Structures,with Application to the AES and KHAZAD”,in CHES,volume 2779 from LNCS,pages 77-88,Springer,2003中关于AES加密的攻击结果证明非常有效,如果故障到达倒数第二轮或倒数第三轮。

迄今为止且非常自相矛盾地,故障注入攻击被认为是非常昂贵的,并因此在实践中仅被强大的金融组织使用。现在可以在因特网上订购解封装站和可调节激光工作台。据此,故障注入攻击的可能性会大大提高。这样,由集成电路(例如FPGA)构成的加密处理器今后被认为是安全的,仅当其同时实现特别是DPA或EMA类型的观察攻击和故障注入攻击的对抗方式。而且,观察和故障的组合攻击也被提及,例如Bruno Robisson和Pascal Manet在其论文“Differential Behavioral Analysis”,in CHES,volume 4727 from LNCS,pages 413-426,Springer,2007中提到的。

对抗这种类型攻击的有效对抗方式是使用冗余。例如,计算块可被重复三次并且随后的主要函数能够消除故障被注入的块。这种解决方案的一个缺点是需要额外的成本,这是由于需要复制计算块或插入基于验证不变量的一致性检查模块。

另一个对抗方式包括检测故障注入。在这种情况中,例如,用户被警告且能够通过再次初始化系统进行自我保护。

特别地,本发明的一个目的是减轻上述缺点。

为此目的,本发明的主题是一种在由差分逻辑保护的电路中检测异常的方法,所述差分逻辑处理由一对分量表示的逻辑变量,第一网络的单元对第一对分量执行逻辑功能,第二网络的对偶单元以互补逻辑对第二分量操作,所述逻辑功能由每对单元在将变量置于已知状态的预充电阶段对到所述单元的输入执行,随后是求值阶段,其中由所述单元来执行计算,所述方法特征在于,通过在预充电阶段期间或在求值阶段发生的至少一个不一致状态来检测异常。

由差分逻辑保护的电路例如是加密电路。

根据本发明的一个方面,逻辑门用于检测在预充电阶段发生的不一致状态,如果一致状态是(0,0)则所述逻辑门是“或”门,如果一致状态是(1,1)则所述逻辑门是“与”门。

用于检测在求值阶段发生的不一致状态的逻辑门是“同或”门。

多路器使得能够例如选择通过检测到不一致状态而产生的信号,其中,用于在所述预充电阶段检测不一致状态的门的输出在所述预充电阶段被选择,用于在所述求值阶段检测不一致状态的门的输出在所述求值阶段被选择,所述选择由配置信号来控制。

本发明的主题还包括一种由差分逻辑保护的电路,所述差分逻辑处理由一对分量表示的逻辑变量,第一网络的单元对第一对分量执行逻辑功能,第二网络的对偶单元以互补逻辑对第二分量操作,所述逻辑功能由每对单元在将变量置于已知状态的预充电阶段对到所述单元的输入执行,随后是求值阶段,其中由所述单元来执行计算,所述电路特征在于,所述电路包括至少一个检测模块,所述检测模块实现如前述权利要求中的一项所述的方法,并且所述检测模块包括用于在预充电或求值阶段期间在所述电路的监控的节点处测试在逻辑变量的两个分量之间的不一致的模块。

所述电路例如是FPGA型的可编程电路或ASIC型的电路。

至少一个检测模块包括例如用于在检测预充电阶段期间针对来自要被监控的单元的输出检测不一致状态的模块。

至少一个检测模块包括例如用于检测求值阶段期间针对来自要被监控的单元的输出检测不一致状态的模块。

通过链接收集来收集检测模块的输出,结果通过“或”门被集中到至少一个等电位点。

每个检测链的输出连接到触发器,所述触发器由时钟信号(CLK)触发,并且当该链的检测模块中的一个模块检测到至少一个不一致状态时,生成值为1的全局输出。

在一个例子中,电路检测模块中的至少一部分被组织为树结构,最末检测模块生成全局信号,所述全局信号指示是否已经在由所述模块监控的所述电路节点中的一个节点处检测到至少一个不一致状态。

要监控的分量按照向量(At,Af,Bt,Bf)被分组在一起,所述检测模块包括两个乘法累加器,所述两个乘法累加器一方面在向量(At,Bt)之间执行乘法累加操作并且另一方面在向量(Af,Bf)之间执行乘法累加操作,而这是在值为1的低位比特已经被附加到每个所述向量之后进行的,两个操作的结果之间的差值被计算,然后由零值比较器处理该差值,其中,当在预充电阶段或求值阶段中检测到不一致状态时,所述零值比较器的输出的值为零。

所述检测模块的零比较器的输出被连接到触发器,以生成稳定的输出,作为检测到不一致状态的结果。

特别地,本发明的优点在于依靠电路特性,所述电路被基于差分逻辑的对抗措施的优点所保护,且初始被设计以对抗隐藏通道的观察攻击,以便检测其他类型的攻击或干扰。

附图说明

本发明的其他特征和优势将随后结合以下附图进行非限制性的说明。

-图1表示差分逻辑中的“与”门;

-图2表示差分逻辑的计算阶段;

-图3表示依赖由差分逻辑保护的体系结构的异常检测的操作原理;

-图4呈现了使用用于异常检测方法的示例性电路;

-图5呈现了用于检测异常的第一示例性链;

-图6呈现了用于检测异常的第二示例性链;

-图7呈现了用于异常检测的示例性树结构;

-图8呈现了在使用乘法-累加块的电路中示例性使用该方法。

具体实施方式

图1呈现了如示例性说明差分逻辑的原理的WDDL逻辑(波动态差分逻辑)中的“与门”1、2。后者包括两个操作在互补逻辑下的对偶逻辑网络1、2。WDDL逻辑的示例随后介绍,但本发明的原理可应用于其他类型的差分逻辑,例如MDPL逻辑(掩码双轨预充电逻辑)。除了计算网络的对偶性,如权利要求所述,差分逻辑计算在两个严格区分的阶段被执行:预充电阶段和求值阶段。

数据以双轨形式表示,每个逻辑变量a由以下方式编码的信号对(at,af)构成:

-(0,0)表示预充电阶段的静止状态:a的值未定义,表示为Ω;

-(1,0)求值阶段中的活动状态,a=1;

-(0,1)求值阶段中的另一活动状态,a=0。

逻辑门H有两个输入a和b,且输出s由两个门1、2物理表示,门1、2分别具有逻辑功能T(at,bt)和F(af,bf),以使得:

st=T(at,bt)  (1)

sf=F(af,bf)  (2)

“真”逻辑网络对应于传输信号St的函数T。“假”对偶逻辑网络对应于传输信号Sf的函数F。图1说明了“与”门,其中,执行函数T的“真”网络接收两个非互补输入at和bt。对偶“或”函数执行功能F。对于变量x的向量,满足下列关系:

T(x)=H(x)  (3)

F(x)=H(x)---(4)

图2呈现了使用差分逻辑(例如WDDL型)的计算步骤的阶段。该步骤包括连续的两个阶段:预充电阶段21和求值阶段22。输入变量at、bt、af、bf和相应输出变量st、sf的状态对应于预充电阶段和求值阶段。图2的时序图表示该实施例中从预处理阶段到求值阶段的转换次数都是相同的(在该例子中为3次),反之依然。由于CMOS类型的电子技术中,功耗直接与转换次数相关,因此功耗被平衡。

图3表示依赖差分逻辑保护的体系结构的异常检测的操作原理。

所谓的双轨差分逻辑本质上是冗余的。事实上,在求值期间,逻辑状态中的变量包括信号“真”,其与信号“假”互补,并且在预充电期间,其值是相等的。因此,当不一致状态(也就是说,不应当存在的状态)出现时,异常可被检测。例如,在WDDL逻辑中,如果不一致状态被检测出,则异常被检测,也就是说:

-在预充电阶段,对偶信号对不同于状态(Qt,Qf)=(0,0);

-在求值阶段,信号对不同于状态(Qt,Qf)=(0,1)或(Qt,Qf)=(1,0)。

而且,差分逻辑中的单个故障有1/2的影响的概率,因为从双轨到单轨的切换是通过仅考虑到变量的两个分量中的单个信号输出做出的。

在多故障的情况中,提出的检测机制可能不会检测到状态的共轭的变化,例如在求值阶段由(0,1)变为(1,0)。而该典型情况几乎是不可能的,因为:

-预充电阶段很可能被影响;

-多故障情况下,其他变量可被改变并检测;

-多数攻击不可能在伴随的两个信号上进行比特反相。例如,基于先前定位时间的违反的攻击通过使用温度、电压或频率进行的。

图3的示例说明具有用于检测异常的机制的WDDL差分门的原理。

为执行该检测功能,在预充电阶段期间,执行逻辑加法操作的“或”门34可检测在网络T31和F32的输出处的不一致状态。这样,当状态(0,1),(1,0)或(1,1)出现时,“或”门34的输出等于1。

以同样的方式,在求值阶段,执行“同或”操作的“同或”门33可检测在网络T31和F32的输出处的不一致的状态。这样,当状态(0,0)或(1,1)出现时,“同或”门33的输出等于1。

随后,多路器35可选择“或”门34或“同或”门33的输出。所述多路器使用输入信号PRE/EVAL进行配置。例如,可使用以下约定:

-在预充电阶段,PRE/EVAL的值为0,“或”门34的输出被发送作为多路器35的输出;

-在求值阶段,PRE/EVAL的值为1,“同或”锁存器33的输出被发送作为多路器35的输出;

因此,当不一致状态被检测到时,多路器35的输出处可用的FAULT信号的值为1,而其他情况下为0。

为简化该方法的实现,检测可仅发生在求值阶段,这样仅需要一个“同或”门,可减少复杂性。检测也可仅发生在预充电阶段,这样仅需要一个“或”门,可减少复杂性。两种情况下,都不需要使用多路器35。这种减少复杂性的缺点在于减少了检测到入侵的概率。

图4呈现了示例性地使用用于检测故障的方法。故障检测可在检测模块中实现,检测模块放置在例如每个对偶门的输出处,对偶门包括加密电路的网络T41和网络F42。包括所述模块的加密电路被实现为例如ASIC电路或FPGA型的可编程电路中。

除了将检测模块放置在每个对偶门的输出处外,为减少电路的复杂性,也可以仅在电路的重要节点实现所述模块。所谓的电路的“重要”节点是位于寄存器(例如D触发器43,45)输出的节点,以确保检测模块监控到的信号的稳定性。这样,图4示例中,在网络单元T41和F42的输出处进行检测。检测模块47位于由D触发器构成的两对寄存器43,45和44,46之间。然后,每个计算阶段对应于一时钟周期。使用差分逻辑的加密电路包括很多节点。信号PRE/EVAL可配置电路的每个模块以在预充电阶段或求值阶段进行故障检测。每个模块47输出处的FAULT信号可以知道异常(也就是不一致状态)是否被在每个监控的节点的级别处被检测到。

图5表示用于检测异常的示例性链式电路。如前所述,检测模块可被放置在使用差分逻辑体系结构的加密电路中,在每个被监控的节点级别上这样做。收集异常的一种方式是将检测器链接起来。该技术显示了在门之间仅具有一个等电位点56的优势,在该门处执行了检测并有助于ASIC或FPGA中的布局。这样,检测模块51,52的FAULT信号被“或”门53,54链接在一起。

检测模块的输出信号也链接到触发器55,触发器55收集系统的全局状态以增强全局输出信号GLOBAL_FAULT的稳定性。如果在链中存在的一个检测模块检测到至少一个故障,则所述信号的值为1。

如果该链显示出限制被保护的处理器的全局操作速度的关键路径,则可插入流水线处理器。虽然如此,也有必要确保检测的延迟不允许攻击者在异常检测之前恢复计算结果。

图6呈现了用于检测故障的第二示例性链式电路。为降低复杂性,使用了单链。例如,检测模块可参照图5所示的检测模块而被简化,且被缩减为“同或”门61,62。这种情况下,仅在求值阶段对不一致状态的检测进行验证。为忽略检测模块在预充电阶段的结果,仅当信号为1时,“与”门66可以考虑链的每个检测模块的故障检测结果。检测模块61,62的故障信号使用“或”门63,64链接在一起。链接的检测模块检测的异常被传输到等电位点67,直到触发器65收集系统的全局状态的全局输出信号GLOBAL_FAULT以增强可靠性。如果至少一个故障在链上的一个节点被检测到,则所述信号的值为1。

如同一原理所要求的,检测模块可被简化,以仅在求值阶段检测不一致状态。这种情况下,“或”门取代图6中“同或”门61,62,且作为“与”门66输入的信号被替换为信号PRE/EVAL,以仅在求值阶段(也就是说,当信号PRE/EVAL的值为1)考虑全局检测的结果。

也可使用两个独立链,一个用于在预充电阶段检测不一致状态,另一个用于在求值阶段检测不一致状态,这可以避免使用多路器。

图7呈现用于检测故障的示例性树结构。事实上,为加速检测路径,检测模块可采用树结构。图7给出一个示例,其中在差分逻辑保护的电路的八个节点处进行不一致状态的检测。对(Q1t,Q1f),(Q2t,Q2f),...,(Q8t,Q8f)的状态依靠检测模块71(例如图3和4所描述的那些)来监控,并且其位于每个节点的级别处。随后,每个所述模块的检测结果被传输到第二组检测模块72,第二组的输出被传输到第三组检测模块73。最后,最终检测器74生成结果信号,用于在八个被监控节点处的不一致状态的全局检测。触发器75收集系统的全局状态以增强GLOBAL_FAULT输出信号的可靠性。

图8呈现了在使用乘法-累加块的电路中的方法的示例性使用。事实上,通过使用乘法-累加块(通常称为MAC块,缩写表示为“乘法-累加”)可简化检测。例如,这些块在特定的FPGA电路中是可用的。在这种情况下,输入信号由两对N位的字A=(At,Af)和B=(Bt,Bf)组成。Af和Bf是At和Bt的对偶信号,因此其表示为有符号的整数的两个互补方式:

Af=-At-1 (5)

Bf=-Bt-1 (6)

At×Bt的乘积在相关整数集合中被计算并必须对应于乘积(Af+1)×(Bf+1)。这样,如果两组乘积不对应,则可以检测到单个信号故障。

在多故障情况下,可能存在以下情况:A和B中的故障彼此补偿且因此得到相同的乘积,但这种情况发生的概率极低。虽然如此,基于代数不变的整数乘法计算确保大的覆盖率,并因此构成了对抗故障注入的有效对抗方式。

为应用该原则,不仅要考虑Af+1和Bf+1而非Af和Bf,而且还要考虑这些变量永不为0,以在预充电和求值两个阶段执行检测。满足这些条件的简单方法是向四个字At,Bt,Af,Bf附加值为1的低位比特。

使用两个MAC块81,82。第一MAC块81将附加了低位比特为1的N位二进制字At和也附加了低位比特为1的N位二进制字Bt作为输入。第二MAC块82将附加了低位比特为1的N位二进制字Af和也附加了低位比特为1的N位二进制字Bf作为输入。块81,82中的每个输出的结果通过结果的差值83来被比较。当未检测到异常时,该差值为0。因此,零值比较器84被增加,以检测是否有故障。比较器84的结果随后被传输到触发器85,以增强输出信号的可靠性。当没有异常被检测到时,由触发器输出的信号仍为1,在相反情况下,为0。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号