1.本发明总体上涉及集成电路安全,尤其涉及用于保护集成电路免受安全攻击的方法和系统。
背景技术:
::2.集成电路(ic)有时会受到黑客攻击,以提取机密信息(例如,安全密钥)。3.在“电压毛刺攻击如何削弱您的soc或mcu”(invia应用注释-修订版1.0-2020年6月30日)中,作者解释:电压毛刺是黑客和犯罪分子在任何可访问设备上执行故障注入漏洞的一种简单、廉价的方法,并建议采用分层安全保护,包括快速、可靠地检测目标设备的电源上的瞬态电压事件、以及冗余硬件和软件,来确保系统对于攻击具有复原力,然后继续描述电压毛刺保护知识产权的细节。4.美国专利申请公开2021/0148957公开了用于在存在时钟抖动的情况下检测集成电路上基于电压的攻击的电路,其中传播的信号可能表现出由于基于电压的攻击导致的延迟分量和由于时钟波动导致的延迟特性的总延迟。电压变化检测电路包括第一和第二压敏电路以及电压分析电路。压敏电路产生第一和第二信号,第一和第二信号指示响应于时钟信号并且基于不同的第一和第二电压灵敏度的电压电平。电压分析电路基于第一和第二信号生成电压警报信号。组合信号抵消了第一和第二信号中的延迟特性,但是由于电压变化引起的延迟分量可以至少部分地被维持。因此,通过使用两个压敏电路,可以在存在时钟波动的情况下检测基于电压的攻击。技术实现要素:5.本文描述的本发明的实施例提供一种集成电路(ic),包括功能电路和攻击保护电路(apc)。功能电路用于接收来自电源输入的电源电压。apc耦合到所述电源输入,并且包括前端电路和平均电路。前端电路用于将电源电压与多个电压阈值进行比较,并输出指示电源电压是否违反相应的电压阈值的相应多个指示。平均电路用于针对该指示中选定的子集来估计子集中的指示超过相应电压阈值的相应占空比。apc用于响应于该指示和该占空比而触发一个或更多个攻击检测事件。6.在一些实施例中,所述前端电路为模拟电路,并且所述平均电路为数字电路。在一些实施例中,所述apc用于锁存所述一个或更多个攻击检测事件。在实施例中,所述电压阈值包括至少两个不同的过电压阈值。另外或可替代地,所述电压阈值包括至少两个不同的欠压阈值。7.在公开的实施例中,所述apc用于将所述占空比中的至少一个与占空比阈值进行比较,并且响应于检测到超过所述占空比阈值而触发攻击检测事件。在示例实施例中,所述apc用于触发所述攻击检测事件中的至少一个,而不管所述集成电路的时钟信号是否运转正常。在实施例中,所述前端电路包括用于产生多个电压阈值的电阻网络。8.根据本发明的实施例,另外还提供了一种用于保护集成电路(ic)的方法。该方法包括:使用前端电路,将供应给所述ic的功能电路的电源电压与多个电压阈值进行比较,并输出指示所述电源电压是否违反相应电压阈值的相应多个指示。使用平均电路,针对所述指示中选定的子集来估计所述子集中的指示超过所述相应电压阈值的相应占空比。响应于所述指示和所述占空比而触发一个或更多个攻击检测事件。9.根据本发明的实施例,还提供了一种用于保护集成电路(ic)的方法。该方法包括:将供应给所述ic的功能电路的电源电压与多个电压阈值进行比较。指示所述电源电压是否违反相应电压阈值的相应多个指示被输出。对于该指示中选定的子集,估计所述子集中的指示超过相应电压阈值的相应占空比。响应于所述指示和所述占空比而触发一个或更多个攻击检测事件。附图说明10.结合附图,通过以下实施例的详细描述,将更充分地理解本发明,在附图中:11.图1是根据本发明的实施例、示意性地图示出具有攻击保护电路(apc)的集成电路(ic)上的电压/频率攻击场景的框图;12.图2a和2b是根据本发明的实施例、分别示意性地图示出当施加安全攻击时,在没有和有攻击防护的情况下ic的状态的状态转换图;13.图3是根据本发明的实施例、示意性地图示出施加到ic并由攻击保护电路(apc)检测的四种类型的电压攻击的时序图;14.图4是根据本发明的实施例、示意性地图示出攻击保护电路(apc)的结构的框图;以及15.图5是根据本发明的实施例、示意性地图示出用于保护ic免受电压和施加到ic的vdd电源输入和时钟输入的组合电压-频率攻击的方法的流程图。具体实施方式16.概述17.集成电路(ic)上更常见的安全攻击之一是在ic的电源输入和/或时钟输入上施加毛刺,希望出现亚稳态,从而危及ic的内置安全功能。18.我们将攻击ic来恶意访问未经授权的数据的人称为黑客。黑客通常施加四种类型的电压攻击:19.1.高压尖峰攻击,其中黑客在ic的电源输入上施加单个高压尖峰,其中电压尖峰大大高于ic的最大规范。20.2.低压尖峰攻击,其中黑客在ic的电源输入上施加单个低压尖峰,其中电压尖峰大大低于ic的最小规范。21.3.高平均电压攻击,其中将高占空比的脉冲序列施加到电源输入,其中在每个脉冲中,电压高于最大电源电压规范。22.4.低平均电压攻击,其中将高占空比的脉冲序列施加到电源输入,其中在每个脉冲中,电压低于最小电源电压规范。23.上述四种类型的电压攻击可以与在ic的时钟输入上施加大量噪声的频率攻击相结合。24.本文公开的本发明的实施例提供了至少被保护免受与频率攻击相组合的四种类型的电压攻击的ic。在实施例中,ic包括功能电路和攻击保护电路(apc)。在一个实施例中,apc包括被称为模拟前端电路的模拟域电路和被称为数字平均电路的数字域电路。模拟域电路包括一组基准电压(阈值电压)和模拟比较器,模拟比较器将电源电压与阈值电压系列进行比较,并针对每个阈值电压指示电源输入电压电平是高于还是低于阈值电压。25.在一些实施例中,阈值电压包括分别耦合到最大尖峰比较器、平均高比较器、平均低比较器和最小尖峰比较器的最大高电压尖峰阈值、高平均阈值、低平均阈值和最小低电压尖峰阈值。比较器将电源电压与阈值进行比较(在一些实施例中,比较器可以将电源电压乘以预设因子(例如,0.5)再与相应调整的阈值进行比较)。26.在本文上下文中,当电源电压高于过电压阈值(例如,最大高电压尖峰阈值或高平均阈值)或当电源电压低于欠压阈值(例如,低平均阈值或最小低电压尖峰阈值)时,电源电压被称为“违反”阈值。27.在一些实施例中,apc的模拟电路还包括可操作以锁存检测到的攻击的锁存器。锁存器没有被时钟控制,因此可以被保护免受组合的电压尖峰-频率攻击。28.在一个实施例中,apc的数字电路包括平均电路,其从模拟电路的对应比较器接收平均高或平均低攻击可能正在进行的指示,平均比较器随时间的输出,并指示平均值是否超出预设(数字)阈值。29.在一些实施例中,如果apc检测到攻击,apc强制功能电路进入安全状态;例如,在一个实施例中,apc可以复位功能电路的一些或所有触发器。30.系统描述31.本文公开的实施例涉及保护集成电路(ic)免受电压和/或频率攻击。然而,所公开的技术也可用于保护系统(例如,多芯片模块或mcm)。32.图1是根据本发明的实施例、示意性地图示出集成电路(ic)上的电压/频率攻击场景的框图100。ic102包括功能电路104,其包括处理器106和存储器108。处理器106可以是任何中央处理单元(gpu)、图形处理器单元(gpu)、通信处理器或其他类型的处理器(在一个实施例中,处理器106可以包括相同或不同类型的多个处理器)。功能电路可以包括存储在例如存储器108中的机密信息。功能电路内的保护软件和/或硬件仅在(例如由授权用户)提供预定义的密钥的情况下才允许访问机密信息。33.从终端114与ic通信的黑客112不知道预定义的密钥并尽力通过施加各种攻击技术来访问机密信息。根据图1所示的示例实施例,黑客112将电压尖峰发生器116连接到ic102的vdd电源电压,并将具有可编程噪声的频率源118连接到ic的时钟输入。通过在电源上施加尖峰和/或在时钟输入上施加噪声,黑客试图在ic100中进入亚稳态,这可能导致机密数据暴露给黑客。34.为了减轻这种攻击,ic102还包括攻击保护电路(apc)120,其耦合到ic的电源输入和时钟输入。apc被配置为检测电压攻击和组合的电压/频率攻击,并且如果检测到攻击则强制执行功能电路的安全模式(安全模式可以是例如存储器访问受限的模式,或者,对于另一示例,可以是处理器106被复位的模式)。35.因此,apc可以检测所有电压和电压/频率攻击,同时保证机密信息的安全。36.如将被理解的,电压-频率攻击场景100和ic102的结构是为了清楚起见而描述的示例。在替代实施例中,可以使用其他合适的攻击场景和ic结构。例如,ic102可以包括多个电源电压以及多个时钟源(在这种情况下,黑客可能试图攻击一些或所有电压源,并且apc120可以被配置为保护在任何或所有电源和时钟输入中免受攻击)。在一个实施例中,ic102包括其他子单元,例如,多个处理器、多个存储器(相同或不同类型的)、通信控制器、安全引擎、图形处理器单元等。在一些实施例中,ic102不连接到终端,并且黑客可以监控ic与外部实体(例如,网络)之间的通信。37.安全漏洞示例38.当未企图安全攻击时,ic102被配置为限制对任何存储的机密数据的访问。例如,ic102可以运行计算机程序,其中只有在运行认证程序(例如,询问用户密码然后检查密码的程序)之后才能达到访问机密信息。从更普遍的角度来看,ic102可以被视为有限状态机(fsm),其中只有成功的认证状态在前才能进入访问受保护数据的状态。39.图2a是根据本发明的实施例、示意性地图示出ic102的状态的状态转换图200,而apc120在施加安全攻击时是不活动的。状态转换图包括状态202的正常程序流集合,其包括设计状态和状态之间的转换。根据图2a所示的状态转换图,当fsm处于状态204时,用户可以请求访问受保护的数据;结果,fsm转换到认证状态206(认证状态206通常包括多个状态,为了清楚起见未示出)。如果在状态206中认证失败,fsm则转换回到状态204;然而,如果认证成功,fsm则转换到访问受保护的数据状态208,将受保护数据暴露给用户,然后转换回到状态204(并且从状态204转换到正常程序流202的其他状态)。40.根据图2a所示的状态转换图,如果在功能电路104的输入施加电压尖峰,则可能出现非法状态。例如,虽然fsm通常从状态210转换到状态214,但如果在fsm处于状态210时施加电压尖峰,fsm可进入亚稳态212。(例如,可以在l.kleeman等人的“数字系统中的亚稳态行为(metastablebehaviorindigitalsystems)”中找到关于电子系统中亚稳态的教程,计算机的ieee设计与测试(第4卷第6期,1987年12月),第4-16页)。fsm在亚稳态之后的行为可能是不可预测的,在某些情况下,fsm可能进入访问受保护数据状态208,并读取受保护的数据。41.如将被理解的,图2a中所示并在本文中被描述的状态转换图200是为了概念清晰而引用的示例。可以使用其他状态转换图。例如,如果在fsm处于各种正常程序流状态时出现电压毛刺,则可以进入多个亚稳态,并且亚稳态之后的下一个状态可以是在认证之后进入的状态208的子状态(并且未显示)。42.图2b是根据本发明的实施例、示意性地图示出具有活动的apc120的ic102的状态的状态转换图250。状态转换图250的状态与状态转换图200的状态相同,并且两个fsm都包含亚稳态212,可能发生从亚稳态212到状态208的不安全转换;然而,根据图2b所示的示例实施例,apc将检测到任何电压攻击,并且因此,fsm将转换到状态214(例如,复位状态)。这样无法达到亚稳态212,受保护数据的安全性将不会被破坏。43.如将被理解的,图2b中图示的并在本文中被描述的状态转换图250是为了概念清晰而被引用的示例实施例。在替代实施例中,可以使用不同的状态转换图。例如,在一些实施例中,在apc生成攻击指示之后,所有状态将无条件地转换到复位状态。44.电压攻击的类型45.黑客可能会同时施加电压攻击和频率攻击。然而,由于在大多数ic中,主时钟是由片上固有的缓慢变化的锁相环(pll)生成的,因此频率攻击通常限于停止时钟或缓慢改变频率。因此,我们将在下面集中讨论不同类型的电压攻击的细节,其将参考图3进行描述。46.图3是根据本发明的实施例、示意性地图示出施加到ic102并由攻击保护电路120检测的四种类型的电压攻击的时序图300。时序图包括垂直电压轴302(标示为v)和水平时间轴304。该图图示出了ic102的电源输入vdd的电压-时间波形306。该图还图示了根据ic规范可施加到ic的正常的最小(vdd-min)电压和最大(vdd-max)电压。47.首先施加高电压尖峰攻击308,其中电源电压在短时间段内进入远大于最大规范的电平。在一些实施例中,在高电压尖峰攻击308处施加的电压电平高到足以永久损坏ic102,如果持续长时间段的话。高电压尖峰攻击的目的可能是,例如,使某些触发器的vol(输出低电压)高于某些门的vih输入,这将造成输入的非法组合(可能导致亚稳态)。48.接下来,施加低电压尖峰攻击310,其中在短时间段内将电源电压设置为基本上低于最小vdd规范的电平。这种低电源电压可能会使得一些触发器丢失数据,并且当vdd恢复正常时,一些触发器可能会进入亚稳态。49.在平均高攻击312中,ic电源输入被施加连续的高电压脉冲序列。由于每个脉冲基本上高于最大规范,平均高攻击可能会导致ic中的结过热,并可能使得一些触发器达到亚稳态。50.接下来,在平均低攻击314中,ic电源输入被施加连续的低电压脉冲序列。每个脉冲都基本上低于最小vdd规范,并且脉冲序列可能使得多于一个的触发器进入亚稳态;进入亚稳态的触发器组合可能会增加随后将进入受保护状态的几率。51.如将被理解的,图3中所示的电压攻击波形是为了清楚起见引用的示例。电压攻击可以包括任何顺序的其他波形。脉冲序列通常不具有恒定的占空比和/或相等的脉冲高度,并且一些或所有攻击可以彼此非常接近地被施加。52.图4是根据本发明的实施例、示意性图示出攻击保护电路(apc)的结构的框图。apc120(其参考图1被定义)包括模拟域电路402和数字域电路404。模拟电路包括:带隙(bg)控制的电压基准406,其被配置为生成精确电压(以下称为bg-v);以及电阻梯408,其被配置为生成一系列电阻梯电压(其为bg-v的分数(fraction))。(bg控制的电压基准406被配置为输出在其电源输入的宽范围中的精确电压。)53.模拟电路402还包括阈值选择器410,其在ic102的制造期间(例如,作为生产测试的一部分)被编程以选择电阻梯电压中的四个。四个选定的电阻梯电压包括用于检测高尖峰攻击、高平均攻击、低平均攻击和低尖峰攻击的比较阈值电压。54.模拟电路402还包括比较器,其将阈值选择器输出的比较阈值电压与vdd乘以r进行比较。r是由未示出的电阻分压器生成的固定比率,例如0.5;可能需要乘以r,是因为实际上识别攻击所需的高vdd阈值可能高于bg-v,因此高于阈值选择器410的任何输出。为避免混淆,我们指的是阈值选择器410输出的作为比较阈值电压的阈值电压,其通常比相应的攻击检测阈值乘以比率r小。55.比较器412比较高尖峰比较阈值,比较器414比较高平均比较阈值,比较器416比较低平均比较阈值,而比较器418比较低尖峰比较阈值。56.如果vdd电压超过最大高尖峰阈值,则vdd*r将高于高尖峰比较阈值电压,并且比较器412将指示检测到高尖峰攻击。类似地,如果vdd电压低于最小低尖峰阈值,则vdd*r将低于低尖峰比较阈值电压,并且比较器418将指示检测到低尖峰攻击。根据图4所示的示例实施例,锁存器420将锁存对高尖峰攻击的检测,使得在尖峰被移除后指示将继续存在。类似地,锁存器422将锁存低尖峰攻击的检测,在尖峰被移除后继续存在。57.锁存器420和422被配置为提供保护免受组合的电压-频率攻击,锁存器没有被时钟控制并保留各自的攻击指示,而不管时钟输入上的任何尖峰,包括时钟振荡的停止。58.比较器414指示vdd何时超过高平均阈值(或更准确地说,vdd*r何时超过平均高比较阈值)。在实施例中,除非指示的平均发生率超过预设值(换言之,脉冲的指示vdd大于平均高阈值的占空比超过预设值),否则这不被认为是攻击。在一些实施例中,使用具有预定义窗口大小和预定义平均阈值的滑动平均窗口。数字电路404包括高平均电路424,其被配置为平均占空比并将占空比与预设限值进行比较;如果超过预设限制,则高平均电路424将指示检测到高平均攻击。59.比较器416指示vdd何时低于低平均阈值。除非指示vdd小于平均低阈值的脉冲的占空比超过预设值,否则这可以不会被认为是攻击。数字电路404还包括低平均电路426,其被配置为平均占空比并将占空比与预设限制进行比较;如果超过预设限制,则低平均电路426将指示检测到低平均攻击。60.根据图4所示的示例实施例,当锁存器420、锁存器422、高平均电路424或低平均电路426指示已检测到攻击时,ic102复位。在实施例中,ic102的复位也复位锁存器420和422。61.我们将展示一个数值示例。62.我们假设:63.标称vdd=1.8v64.最大vdd=2.1v65.最小vdd=1.5v66.高尖峰攻击阈值=2.8v67.高平均攻击阈值=2.4v68.高平均攻击占空比阈值=90%69.低尖峰攻击阈值=1.0v70.低平均攻击阈值=1.2v71.低平均攻击占空比阈值=90%72.bg-v=2.0v73.r=0.574.由于r=0.5,比较阈值电压是相应攻击阈值的1/2:75.高尖峰比较阈值=1.4v76.高平均比较阈值=1.2v77.低尖峰比较阈值=0.5v78.低平均比较阈值=0.6v79.我们假设电阻梯包括100个匹配电阻,因此电阻梯电压为0v、20mv、40mv等。在ic生产测试期间,对阈值选择器410进行编程,以将电阻25和26之间的电压(从底部)连接到低平均比较阈值;将电阻30和31之间的电压连接到低尖峰比较阈值;将电阻60和61之间的电压连接到高平均比较阈值;并且将电阻70和71之间的电压连接到高尖峰比较阈值。80.因此,根据图4所示和本文描述的示例实施例,包括模拟和数字域电路的apc可以保护免受四种类型的电压攻击结合频率攻击。81.如将被理解的,图4中所示并在本文中描述的apc120的配置是为了概念清晰而引用的示例配置。在替代实施例中可以使用其他合适的配置。例如,在一些实施例中,电阻梯耦合到vdd,并且比较器将vdd的预设分数与固定电压电平(例如,与bg-ref*r)进行比较。在一些实施例中,apc120被配置为监控并保护免受多个电源电压上的攻击。82.图5是根据本发明的实施例、示意性地图示出用于保护ic免受电压和施加到ic的vdd电源输入和时钟输入的组合电压-频率攻击的方法500的流程图。该流程图由攻击保护电路(apc)(例如,图1的apc120)执行。该流程图涉及四个电压基准——vth1、vth2、vth3和vth4,其中vth1》vth2》vth3》vth4。四个阈值电压可以例如由对固定电压基准(例如,图4的bg-v406)进行分压的电阻梯来生成。83.根据图5所示的示例实施例,为检测平均高攻击和平均低攻击而进行的平均包括无限脉冲响应(iir)滤波器:84.avg=(vdd》阈值?)avg*(1-k)+k:avg*(1-k)。85.(上面引用的等式是针对平均高的。)86.k是小于1的衰减常数(例如,k=0.02)。如将被理解的,在替代实施例中可以使用其他平均方法。87.该流程图开始于比较vth1步骤502,其中apc将电源电压vdd与最高阈值电压vth1进行比较。在一个实施例中,选择vth1,使得如果企图进行高压尖峰攻击,则vdd将高于vth1,并且如果vdd》vth1,则apc将中止(例如,复位ic的功能电路)。如果在步骤502中vdd不大于vth1,则apc将进入比较vth2步骤504,并将vdd与vth2进行比较。在实施例中,选择vth2,使得如果vdd》vth2,则高平均攻击可以在进行中。如果在步骤504中vdd大于vth2,则apc将进入与添加高平均(add-to-high-average)步骤506,并根据下面公式更新avgh值:88.avgh=k+avgh*(1-k)89.如果在步骤504中vdd不大于vth2,则apc将进入更新平均高(update-average-high)步骤508,并根据下面公式更新avgh值:90.avgh=avgh*(1-k)。91.在步骤506或步骤508之后,apc将进入比较平均高(compare-average-high)步骤510并将avgh的值与数字阈值dths1(例如,0.95)进行比较。如果avgh大于dths1,则ic的功能电路将中止(例如,复位)。92.如果在步骤510中avgh不大于dths1,则apc将进入比较vth3步骤512,并将vdd与vth3进行比较。在实施例中,选择vth3,使得如果vdd《vth3,则低平均攻击可以在进行中。如果在步骤512中vdd低于vth3,则apc将进入与添加低平均(add-to-low-average)步骤514,并根据下面公式更新avgl值:93.avgl=k+avgl*(1-k)94.如果在步骤512中vdd不低于vth3,则apc将进入更新平均低(update-average-low)步骤516,并根据下面公式更新avgl值:95.avgl=avgl*(1-k)。96.在步骤514或步骤516之后,apc将进入比较平均低步骤518,并将avgl的值与数字阈值dths2(例如,0.95)进行比较。如果avgl大于dths2,则ic的功能电路将中止(例如,复位)。97.如果在步骤518中avgl不高于dths2,则apc进入比较vth4步骤520,其中apc将电源电压vdd与最低阈值电压vth4进行比较。在一个实施例中,选择vth4,使得如果企图进行低电压尖峰攻击,则vdd将低于vth4,因此,如果在步骤520,vdd《vth4,则apc将中止。98.如将被理解的,图5所示的流程图是作为示例引用的实施例。在替代实施例中可以使用其他流程图。例如,在一些实施例中,完成滑动窗口平均,而不是基于iir的平均。在一个实施例中,与vth比较的步骤502、504、512和520的所有或一些可以同时进行。iir平均可以由任何其他合适的平均技术来代替,并且不同的平均技术可以用于平均高(average-high)和平均低(average-low)。99.在图1至图5中示出并在上文中描述的攻击场景100、ic102和apc120、状态图250和流程图500的配置,是完全为了概念清晰而示出的示例配置、状态图和流程图。在替代实施例中可以使用任何其他合适的配置、状态图和流程图。ic102的不同子单元可以(例如在一个或更多个专用集成电路(asic)或现场可编程门阵列(fpga)中)使用合适的硬件、使用软件、使用硬件或使用硬件和软件元素的组合来实现。100.因此应当被理解的是,上述实施例是作为示例被引用的,并且本发明不限于上文已经特别示出和描述的内容。相反,本发明的范围包括上文描述的各种特征的组合和子组合,以及本领域技术人员在阅读上述描述后会想到的以及在现有技术未公开的对其的变化和修改。通过引用并入本专利申请中的文件应被视为本技术的组成部分,除非在这些并入的文件中以与本技术说明书中明确或隐含的定义相冲突的方式定义了任何术语,则仅应考虑本技术说明书中的定义。当前第1页12当前第1页12