CN111869158A - 定量数字传感器 - Google Patents
定量数字传感器 Download PDFInfo
- Publication number
- CN111869158A CN111869158A CN201880088180.XA CN201880088180A CN111869158A CN 111869158 A CN111869158 A CN 111869158A CN 201880088180 A CN201880088180 A CN 201880088180A CN 111869158 A CN111869158 A CN 111869158A
- Authority
- CN
- China
- Prior art keywords
- sensor
- output
- bit
- attack
- sensors
- 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.)
- Pending
Links
- 239000013598 vector Substances 0.000 claims abstract description 66
- 238000004458 analytical method Methods 0.000 claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000032683 aging Effects 0.000 claims description 27
- 238000010801 machine learning Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 14
- 239000000872 buffer Substances 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 11
- 238000013145 classification model Methods 0.000 claims description 9
- 230000001902 propagating effect Effects 0.000 claims description 8
- 238000012706 support-vector machine Methods 0.000 claims description 7
- 238000007637 random forest analysis Methods 0.000 claims description 5
- 230000033001 locomotion Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000003121 nonmonotonic effect Effects 0.000 claims description 3
- 239000000758 substrate Substances 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000000644 propagated effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 43
- 238000001514 detection method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000005259 measurement Methods 0.000 description 15
- 238000002347 injection Methods 0.000 description 12
- 239000007924 injection Substances 0.000 description 12
- 230000002159 abnormal effect Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 230000007613 environmental effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 239000013256 coordination polymer Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000009792 diffusion process Methods 0.000 description 4
- 230000001976 improved effect Effects 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 101100391182 Dictyostelium discoideum forI gene Proteins 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/57—Protection from inspection, reverse engineering or tampering
- H01L23/576—Protection from inspection, reverse engineering or tampering using active circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7271—Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- 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/003—Modifications for increasing the reliability for protection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
Abstract
提供了一种保护集成电路免受扰动攻击的设备。该设备包括被配置为检测扰动攻击的感测单元(30),该感测单元包括一组数字传感器,该组数字传感器包括至少两个传感器,该传感器被并行布置。每个数字传感器响应于输入数据而提供具有二进制值的数字化的位输出,感测单元被配置为传送包括多位值的至少一个二进制向量,该多位值包括由该组数字传感器提供的至少两个位输出。感测设备(3)还包括分析单元(31),该分析单元被配置为接收由感测单元(30)提供的至少一个二进制向量,该分析单元被配置为根据至少一个二进制向量来检测扰动攻击。
Description
技术领域
本发明总体上涉及数字电路,并且特别涉及用于保护集成电路(1)免受扰动攻击的方法、系统、和计算机程序产品。
背景技术
大多数嵌入式设备(例如智能卡、手机、机顶盒)使用密码算法(也称为暗码)来保障其数据安全。通过使用硬件加密和/或解密电路在嵌入式设备中实施这样的密码算法。但是,这样的硬件电路可能导致安全性漏洞。
基于集成电路的嵌入式设备可能受到两种类型的物理攻击的威胁:观察攻击(也称为边信道攻击)和扰动攻击(也称为故障注入攻击)。这样的攻击旨在获得机密信息(例如加密算法的密钥),以便对嵌入式设备中所包括的加密信息进行解密。
通过将恶意故障注入到密码设备并观察相应的错误输出,可以实现故障注入攻击类型的扰动攻击。使用这样类型的攻击,可以减少攻击者获得机密信息所需的实验次数。
特别地,如Marc Joye和Michael Tunstall在“密码中的故障分析(FaultAnalysis in Cryptography)”(于2011年3月发表在Springer LNCS上,网址为http://joye.site88.net/FAbook.html,DOI:10.1007/978-3-642-29656-7;ISBN 978-3-642-29655-0)中所公开的,可以使用密码原语中的错误计算来进行密码分析。
故障攻击可以把程序的执行作为目标,并且可以绕过安全性关键的操作,或者跳过安全性测试等。如果由攻击者适当地处理,则所有这些影响会导致芯片安全性的破坏。
对抗扰动攻击的对策已经成为对嵌入式设备的安全性的主要挑战。
例如,已知在AES-128上的单个故障在某些条件下可能足以揭示其密钥,如下述所公开的:
Marc Joye和Michael Tunstall的“密码中的故障分析(Fault Analysis inCryptography)”,于2011年3月发表在Springer LNCS上,网址为http://joye.site88.net/FAbook.html,DOI:10.1007/978-3-642-29656-7;ISBN978-3-642-29655-0;以及
Michael Tunstall、Debdeep Mukhopadhyay和Subidh Ali的“使用单个故障对高级加密标准的差分故障分析(Differential Fault Analysis of the AdvancedEncryption Standard Using a Single Fault)”,编者为Claudio Agostino Ardagna和Jianying Zhou,于2011年在WISTP发表在Springer的Lecture Notes in ComputerScience的卷6633的第224-233页。
现有的对策被设计为防止故障导致错误值的公开,从而防止攻击者利用它们来提取机密。
已经提出了对抗扰动攻击的解决方案,该解决方案在于通过使用传感器检测一些环境参数(例如温度、电压、时钟频率、关键路径等)的特定值(例如超出预定义的范围的参数值)来检测异常操作环境。
EP2960665中描述的解决方案公开了用于检测异常关键路径的设备。在EP2960665中,特定地公开了用于对数字传感器进行校准的校准设备,该数字传感器被配置为通过根据与时钟周期和最佳警报阈值有关的触发条件来触发警报,从而保护由具有时钟周期的时钟信号馈电的目标数字电路,该最佳警报阈值是通过最小化取决于假阳性的发生概率和假阴性的发生概率的量来确定的。
数字传感器通过根据触发条件来触发警报从而保护数字电路或子电路免受攻击。
然而,基于使用传感器检测异常参数值的常规方式导致布尔警报,从而缺乏可解释性。特别地,不可能识别警报是假阳性还是实际上是由攻击企图引起的。
由于诸如AES(高级加密标准)的一些密码算法的硬件实施方式以少量的时钟周期(用于AES-128的10个时钟周期)执行,因此根据定义,需要传感器的反应是快速的。然而,现有的方式是基于假阳性和真阳性之间的区分,这需要时间来收集统计数据并计算决策。由于故障攻击可能会在非常有限的时间帧内导致非法利用,因此这样的方式与安全性要求不兼容。
因此,需要用于保护集成电路免受攻击的改善的系统、方法、和计算机程序产品。
发明内容
为了解决这些和其他问题,提供了用于保护集成电路免受扰动攻击的设备,该设备包括被配置为检测扰动攻击的感测单元。感测单元包括一组数字传感器,该组数字传感器包括至少两个传感器,该至少两个传感器被并行布置,每个数字传感器响应于输入数据来提供具有二进制值的数字化的位输出。感测单元可以被配置为传送包括多位值的至少一个二进制向量,该多位值包括由该组数字传感器提供的至少两个位输出。该感测设备还可以包括分析单元,该分析单元被配置为接收由感测单元提供的至少一个二进制向量,该分析单元被配置为从至少一个二进制向量检测扰动攻击。
在一个实施例中,分析单元可以被配置为从至少一个二进制向量确定表示检测到的扰动攻击的定量估计和/或定性估计的量和/或检测到的扰动攻击的分类。
感测单元的每个传感器可以包括:
-用于存储输入数据的输入存储器块;
-第一数据路径,所述第一数据路径用于传播输入数据并形成第一延迟链;
-第二数据路径,所述第二数据路径用于传播输入数据并形成第二延迟链。
输入存储器块和第二路径还可以包括组合单元,该组合单元被配置为使用输入数据来确定传感器的位输出。
输入存储器块可以包括用于存储使用激励生成器生成的输入数据的输入存储器元件,第一数据路径被配置为将数据从输入存储器元件传播到缓冲器元件,该缓冲器元件对通过初始延迟链传播的数据进行缓冲。
在实施例中,该设备还可以包括与每个传感器相关联的输出存储器,该输出存储器用于存储由传感器传送的位输出。
给定传感器的第二数据路径形成成梯次的延迟链,该第二数据路径将值位从缓冲器元件传播到与给定传感器相关联的输出存储器。
在另一个实施例中,该设备还可以包括被配置为存储由传感器传送的位输出的输出存储器。
在实施例中,该设备还可以包括寄存器,该寄存器被配置为存储由传感器在不同的瞬时时间传送的位输出的值。
在一些实施例中,感测单元可以包括至少一对传感器,每对传感器包括参考传感器和冗余传感器,每对的传感器是相邻的,参考传感器和冗余传感器是交错的,感测单元被配置为传送包括参考传感器的位输出的第一向量和包括冗余传感器的位输出的第二向量,分析单元被配置为根据第一向量和第二向量之间的比较对检测到的扰动攻击进行分类。
第一输出向量和第二输出向量可以具有相同的位大小,分析单元被配置为:如果其确定第一向量和第二向量相对于彼此不同,值的汉明距离严格大于一,则将检测到的扰动攻击分类为局部攻击。
分析单元还可以被配置为:如果其确定第一向量和第二向量的连续值相对于彼此不同,值的汉明距离严格大于一,则将检测到的扰动攻击分类为局部攻击。
位输出的标称值可以被设置为零,并且分析单元可以被配置为通过进一步确定位输出是否非单调来将检测到的扰动攻击分类为局部攻击。
在实施例中,分析单元可以包括老化函数,该老化函数被配置为估计目标电路的老化级别,感测单元至少包括SRAM PUF,SRAM PUF的每个输出对应于传感器输出。
在一些实施例中,分析单元可以被配置为根据所估计的老化级别来计算攻击风险级别。
在一些实施例中,老化函数可以被配置为测量由SRAM PUF传送的每个位的值,并且被配置为考虑所测量的位值来计算平均值,该平均值表示对SRAM-PUF的可靠性的估计,该分析单元被配置为根据可靠性来确定电路的老化。
在一些实施例中,每个数字传感器可以在系统时钟的每个时钟周期提供数字化的位输出。在每一个时钟周期或在该系统时钟的每个时钟周期监测在给定时钟周期提供的数字化的位。
在一些实施例中,分析单元可以包括分类器,该分类器被配置为根据由该组数字传感器提供的数字化的位输出将警报分类为假阳性或真阳性。该分类器可以实施选自包括支持向量机器、随机森林、贝叶斯、旋转森林、multiboost算法、以及聚类算法的组的机器学习算法。
在一些实施例中,分类器可以被配置为通过执行第一学习阶段和第二学习阶段来构建攻击分类模型,第一学习阶段包括使用一个或多个集成电路来确定传感器输出、确定在不同的操作条件下的传感器输出、以及确定在预定义的学习时间间隔内的传感器输出。第二学习阶段可以包括对集成电路执行一个或多个攻击。
在一些实施例中,感测单元可以包括附加异构传感器,该附加异构传感器被配置为通过监测不同的物理参数和/或由集成电路执行的不同的软件活动来生成数据,分析单元被配置为聚集由附加异构传感器中的至少一些生成的数据,并且被配置为选择具有最低可变性的传感器。
在一些实施例中,附加传感器可以选自包括下述各种传感器的组:被配置为监测集成电路的处理器或给定外围设备的活动的软件传感器;被配置为监测系统总线上的拥塞的软件传感器;被配置为监测硬件性能计数器的软件传感器;被配置为监测软件堆栈的软件传感器;以及被配置为测量在基板中或在移动中的温度或压力或电压或频率或光或电流的物理传感器。
在一些实施例中,数字传感器中的一个或多个可以被配置为将数字化的位输出上传至远程上行链路服务器,该远程上行链路服务器被配置为根据数字化的位来更新分类模型。
还提供了用于保护集成电路免受扰动攻击的方法,其中,该方法包括使用包括至少两个传感器的一组数字传感器来检测扰动攻击的步骤,所述传感器被并行布置,每个数字传感器响应于输入数据来提供具有二进制值的数字化的位输出,检测扰动攻击的所述步骤包括确定包括多位值的至少一个二进制向量,所述多位值包括由所述一组数字传感器提供的至少两个位输出,所述方法包括根据所述至少一个二进制向量来检测扰动攻击。
还提供了计算机程序,其包括用于执行该方法的步骤的指令。
以上发明内容提供了简化的总结,以便提供对本文所讨论的系统和/或方法的一些方面的基本理解。该发明内容并非旨在提供本文所讨论的系统和/或方法的广泛概述。
附图说明
并入本说明书中并构成本说明书的一部分的附图,和与以上给出的本发明的总体描述以及下面给出的实施例的具体实施方式一起示出了本发明的各个实施例,这仅用于说明目的,用来解释本发明的实施例。
图1是根据一些实施例的包括数字电路的保护系统的示意图。
图2是根据一些实施例的检测设备的示意图。
图3是根据一个实施例的检测设备的示意图。
图4是根据一个实施例的具有梯次结构的感测单元的示意图。
图5描绘了根据另一个实施例的被配置为传送一组感测输出的双多位感测单元。
图6描绘了根据一个实施例的包括寄存器数据结构的双多位感测单元。
图7是根据一个实施例的表示状态输出位的在时间上的示例性变化的图解。
图8描绘了根据一个实施例的被配置为检测局部发生的信号故障的双多位感测单元。
图9描绘了根据另一个实施例的被配置为以高优先级来检测局部发生的信号故障的双多位感测单元。
图10描绘了根据又一个实施例的被配置为检测突然改变位的状态的攻击的双多位感测单元。
图11描绘了根据实施例的被配置为确定电路的老化的感测设备。
图12是描绘根据实施例的使用SRAM-PUF传感器的输出来使目标电路老化的过程的流程图。
图13是描绘了根据实施例的分类方法的学习阶段的流程图。
图14是描绘了根据实施例的对攻击进行分类的方法的流程图。
图15描绘了根据实施例的用于实施假警报的FSM。
图16、图17和图18分别描绘了零次、一次和两次修剪的示例。
图19是根据实施例的数字传感器的示意图。
图20是描绘了根据一些实施例的使用机器学习技术的用于推导分类模型的方法的流程图。
图21是描绘了根据一些实施例的用于构建只攻击模型的方法的流程图。
图22是根据一些实施例的在其中机器学习方法用于改良现场学习的攻击模型的系统的示意图。
图23是用于实施数字传感器的示例性计算系统的示意图。
具体实施方式
参考图1,示出了包括数字电路或子电路1(也称为“目标电路”或“被保护的目标”)的系统100。目标电路1由具有时钟周期的时钟信号馈电。系统100还包括检测设备3,检测设备3在下文中也称为“定量数字传感器”或简称为“数字传感器”或“感测设备”。数字传感器3可以被配置为检测对数字电路1执行的扰动攻击。数字传感器3还可以被配置为对检测到的扰动攻击执行实时诊断。
目标电路1可以是集成电路设备(IC设备)的一部分,该集成电路设备可以是例如操纵和/或合并机密数据和/或需要完整性级别的任何嵌入式设备或系统,例如智能卡、安全设备、多媒体播放器、记录器、或移动存储设备(例如存储器卡和硬盘)。这样的IC设备可以用于广泛范围的通信和数据处理应用,例如在汽车产业中、在安全存取解决方案中、在移动电话设备中、在诸如银行产业的支付领域中等。示出了根据本发明的实施例的操作环境10。IC设备可以实施一种或多种密码机制,以在IC设备内的数据存储和/或数据传输期间确保数据的安全性、认证、保护和/或私密性。密码机制可以采用密码密钥以从原始数据(也称为“明文”)生成暗码数据(也称为“暗文”),对数据的存取需要应用解密机制并且了解用于对原始数据进行加密的密码密钥。
应当注意,虽然数字传感器3和目标数字电路1在图3中被表示为单独的功能块,但是在一些实施例中,它们可以替代地实施在相同的电路上或者在SOC(片上系统)中。
图2表示了根据一些实施例的检测设备3的示意图。检测设备3可以包括:
-感测单元30,其被配置为传送多个位O1、…Oi、…、On的流,以及
-分析单元31,其被配置为根据从感测单元30接收的多个位的流来实时检测针对目标电路1的扰动攻击。
感测单元30可以使用硬件来传送多个位的流。感测单元30因此可以实时测量状态。
根据本发明的实施例,对抗故障注入攻击的检测得益于实时测量和分析,从而在时间上不留下任何盲点。有利地,当注入对攻击者更有利时,检测设备3不会留下任何弱时间(weak time)。由于硬件实施方式,根据本发明的各个实施例的检测和分析方法两者可以进行实时检测。
在一个实施例中,感测单元30可以包括一组n个二进制数字传感器300-1、…、300-i、…、300-n(其中n≥1),感测单元30包括至少两个传感器,该数字传感器被并行布置。在下文中,通常将使用附图标记“300”来指代传感器。
由感测单元30传送的多个位O1、…Oi、…、On的流可以包括一组数字化的感测输出,每个感测输出Oi是从每个传感器300-i的输出推导的。每个输出Oi是具有等于“0”(零)或“1”(一)的值的二进制值(位值)。为了检测扰动,可以在以下中监测在系统时钟的给定时钟周期提供的数字化的输出位Oi值:
每隔一个时钟周期:在这种情况下,所有事件都对应于相同的沿极性传播;
在每个时钟周期:在这种情况下,可以测量对应于0和1的两个延迟,每种可能性具有不同的持续时间;由于上升沿和下降沿传播调动了CMOS门中的不同的(实际上是“互补的”)晶体管,因此这有利地提供了双环境测量。
由感测单元30传送的感测信号的数量被表示为n,i被包括在1和n之间。数字传感器3是数字的。因此,数字传感器3提供包括一组位Oi的多位输出(多元输出)。
传感器300可以是不同类型或相同类型。在传感器300包括至少两个相同类型的传感器的实施例中,这些相同类型的传感器可以具有不同或相同的灵敏度。传感器可以以独立模式运行或链接在一起以提供符合的感测信息。
在一个实施例中,感测单元30还可以包括输出存储器4,以存储由一个或多个传感器传送的位输出Oi。在一个实施例中,输出存储器4可以包括多个输出存储器元件36。
在一些实施例中,输出存储器元件36可以与每个传感器300相关联。替代地,输出存储器元件36可以与一组至少两个传感器300相关联,并且可以被配置为存储被包括在这样的一组传感器中的传感器的位输出Oi。每个输出存储器元件36因此连接到传感器300的至少一个输出。
每个输出存储器元件36可以被配置为例如周期性地或在诸如移动检测、(温度、湿度等的)阈值的交叉的(一个或多个)专用事件出现时触发对相关联的传感器输出的读取。
仅用于说明的目的,下面将参考与每个传感器300相关联的输出存储器元件36(由此每个输出存储器元件36连接到传感器300中的一个的输出)来对本发明的一些实施例进行描述。
感测单元30因此提供了n>1个的二进制感测输出O1、…Oi、…、On的集合。在一个实施例中,感测单元可以将该组二进制感测输出直接传送到分析单元31。替代地,感测单元300可以包括后处理块304,以根据该组二进制感测输出来确定输出向量V(在下文中也称为“感测向量”),该向量被传送到分析单元31。在一个实施例中,感测向量V的第i分量可以是由第i传感器300-i传送的位输出Oi。替代地,感测向量V的第i分量可以是根据由传感器300传送的一个或多个输出位推导出的输出位。为了帮助理解本发明并且仅出于简化和说明的目的,下面将参考包括n个分量的感测向量V来对本发明的一些实施例进行描述,第i分量是由第i传感器300-i传送的输出位:
V=[O1,...,Oi,...,On](1)
参考图3,每个感测输出Oi可以存储在存储器36(例如数据触发器(DFF))中。
在一些实施例中,分析单元31可以被配置为根据感测单元30的输出并且特别是根据感测向量V来检测故障或老化。
在一些实施例中,分析单元31可以响应于扰动攻击的检测来确定表示检测到的扰动攻击的定量估计的量Q和/或检测到的扰动攻击的分类。
根据本发明的定量数字感测设备3可以被配置为确保除非目标电路1处于不合规格的操作条件下,否则不发出假警报(也称为“假阳性”),以避免擦除目标电路中的所有有价值的数据(安全条件)。此外,定量数字感测设备3可以被配置为确保不产生假阴性。换句话说,响应于攻击者将错误计算成功创建到目标数字电路1中,定量数字感测设备3可以确保实际发出警报以防止错过某些安全性事件(安全性条件)。
如本文所使用的,“假阳性错误”或简称为“假阳性”,也称为“假警报”,是指错误地指示已满足警报条件而实际上未满足警报条件的测试(其可以具有“真”或“假”结果值)。
此外,如本文中所使用的,“假阴性”错误,也称为“假阴性”,是指指示警报条件失败而实际上警报条件成功的警报条件的测试。
根据一些实施例,数字感测设备3可以被配置为确定警报是假阳性还是假阴性,同时向合并被保护电路的集成电路设备的上层提供对检测到的扰动攻击的解释(扰动的分类)。
传感器的多样性加上一些传感器的性质(例如灵敏度和持久性),允许向数字感测设备3的分析单元31馈送丰富的信息。该信息允许提高对假阳性与假阴性的区分和注入表征的信心。
在一些实施例中,数字感测设备3可以用于确定警报是假阳性还是真阳性。在一些实施例中,数字感测设备3可以被配置为基于预定义的阈值来区分真警报和假警报。例如,考虑阈值ith(1≤ith≤n),如果位输出在正常状态下为O1=O2=…=Oi,其是Oi+1=…=On的互补值,则:
如果i≤ith,则检测到真阳性,
否则,检测到假阳性。
可以根据各种标准来选择或预定义的阈值ith。替代地,数字感测设备3(更具体地,分析单元31)可以包括基于机器学习(ML)的分类器,以确定警报是假阳性还是真阳性。在这样的基于ML的分类方式中,分类器(也称为“分类单元”)可以包括训练引擎,该训练引擎被配置为在训练周期期间(包括作为示例的确定定律、和/或模型、和/或阈值的登记阶段)构建模型。分类单元还可以包括被配置为对照真实数据测试模型的测试块。分类单元可以实施不同类型的机器学习(ML)算法,例如SVM(支持向量机器)、RF(随机森林)、贝叶斯、旋转森林(RTF)、Multiboost算法、或聚类算法。特别地,SVM算法在其操作方式上是二进制的,但是可以扩展到多于两个类别。
由分析单元31的分类器执行的分类可以是“二进制的”,因为其能够区别两种情况,即“良性”情况(没有正在执行的攻击)和“异常”情况(其中正在执行攻击)。
机器学习有利地允许极大改善攻击检测率同时又不损害假阳性检测率的改良的学习方法。在嵌入式设备背景中检测到扰动攻击的情况下,可以定制特定的学习方法。
学习方法可以包括两个学习阶段:离线执行的第一学习阶段和当目标电路1遭受一个或多个攻击时在线执行的第二学习阶段。
第一学习阶段能够构建考虑良性和恶意环境条件两者的攻击分类模型(也称为“攻击模型”或“分类模型”)。该第一阶段可以包括三个步骤。第一步骤被实施以在没有用户干扰的情况下学习数个芯片上的良性扩散行为。因此学习了技术性扩散,以确定传感器结果/输出如何从芯片到芯片变化。
在第二步骤中,学习数字传感器300在不同选择的操作条件(例如在静止、执行敏感操作时、重启时、进入睡眠模式时、或使用动态电压和频率缩放(DVFS)执行(一个或多个)性能调整时等)下的反应。
然后实施第三步骤以随时间(例如,在预定义的学习时间间隔内)在单个芯片上学习。在一个实施例中,在第三步骤期间,对于给定芯片,可以学习随时间不可逆的和被动遭受的扩散,以确定在芯片的“寿命”(包括所执行的软件的可变性、用户数据的改变、以及在硬件级别的物理特性的消耗(也称为“老化”),包括传感器的缺陷和/或损坏)期间传感器的结果如何变化。
基于第一阶段的三个学习步骤,可以学习数字传感器300的自然可变性。该可变性可以是“良性的”,这意味着不应将所述可变性解释为攻击。否则,所述可变性将构成假阳性。
第二学习阶段可以在攻击下执行。这样允许检测(被解释为攻击的)异常行为。通过执行学习方法的两个阶段,由于芯片到芯片的可变性或由于取决于应用背景和老化的操作条件而引起的假阳性变化可以与由于扰动攻击而引起的不希望的可变性去相关。
第二学习阶段可以在不同的攻击条件下完成。为了尽可能广泛地覆盖不可计数的一组攻击参数,可以优选地选择环境扰动的核心组。例如,在攻击者可以调节的所有参数中,可以选择压力以探索最大的可能范围(最小到最大值)。
核心组学习主要在于选择一组点,使得在所选定的子组上学习的模型对于模型的其余数据点是有竞争力的。这允许在分类步骤期间检测攻击和在不同的攻击类别中识别攻击两者。该识别非常重要,因为它可以允许制造商查实潜在攻击者的力量。例如,全局攻击比集中式(或局部)攻击更不可能成功,因为只有一个传感器可以检测全局攻击,而局部攻击却可以在传感器之间撞击。而且,收集的关于攻击类别的信息使得可以表征和更好地理解攻击者及其方法,这给出了使防御策略适应于观察到的攻击模式和相关联的攻击环境的机会。例如,反应可以被选定为:防御性的、欺骗性的、适应性的、或进攻性的。这可以用多类别分类来实现。
根据在第一学习阶段和第二学习阶段中收集的数据所学习的模型有利地是独立的。因此,可以将在这两个阶段期间所学习的模型合并为一个模型,以便构建特定的学习方法,例如一类别分类。
“一类别ML分类”是指学习用于新颖性检测的决策函数的算法,该算法用于将新数据分类为与训练数据/序列类似或不同。
有利地,可以在分类步骤期间使用学习的第一阶段和第二阶段,以减去由于根据第一阶段的三个步骤所学习的自然的非恶意/良性扩散模型而引起的通用性以及在第二学习阶段期间考虑到的由不同类型的攻击引起的扩散。
此外,ML的使用允许利用其他数字信息源。感测单元30可以因此包括被配置为通过监测不同的物理参数和/或软件活动来生成数据的附加异构传感器,例如:
-被配置为监测集成电路1的系统处理器(CPU)或某些给定外围设备的活动的软件传感器,
-被配置为监测系统总线上的拥塞的传感器,
-被配置为监测硬件性能计数器、看门狗、和计时器的传感器,以及
-被配置为监测软件堆栈以便检测缓冲器溢出攻击的传感器。
除了数字传感器300,可以使用的附加传感器包括被配置为测量环境物理参数(例如温度和压力)的任何传感器。附加传感器可以是数字传感器,所述数字传感器被配置为监测和数字测量由真随机数生成器(TRNG)执行的健康测试或监测由物理不可克隆函数(PUF)执行的可靠性估计硬件/软件。有利地,这些异构致动器/传感器可以被聚集,使得它们的联合测量提供多模态测量。
多个同构或异构传感器的使用允许通过在一个设备内实现检测和选择具有最低可变性的传感器来改良学习和分类方法,这能够增强攻击检测。本发明的优点是执行由ML指导的降维测量。
ML方式允许远程监测目标电路1的行为并在其寿命周期期间获取相关信息。例如,除了允许将环境分类为良性的或恶意的以外,传感器还可以将其测量上传到可以改良模型的远程上行链路服务器。例如,如果攻击被进行而没有被注意到,则远程上行链路服务器可以调节决策模型,以便在后续的类似攻击中捕获这样的攻击。
图4表示根据一个实施例的具有梯次结构的感测单元30。
在这样的实施例中,感测单元30包括一组二进制数字传感器300。在图4的实施例中,感测单元30被配置为传送具有二进制值的一组数字化的感测输出Oi,第i感测输出Oi是根据第i传感器300-i的输出推导出的。由感测单元30传送的每个感测输出Oi可以临时存储在诸如寄存器的输出存储器元件36中。在图4的示例中,寄存器36是数据触发器(DFF)。
感测单元30的输出可以包括至少一个多位输出,该至少一个多位输出具有在位输出Oi中选定的一组位分量。
图3的感测单元30的每个传感器300可以以数字电路的形式来实施,所述数字电路包括:
-用于存储输入数据的输入存储器块301;
-第一数据路径302,其用于传播输入数据并形成第一延迟链;
-第二数据路径303,其用于传播输入数据并形成第二延迟链。
输入存储器块301可以包括输入存储器元件311,输入存储器元件311用于存储使用激励生成器(例如,数据触发器(DFF))生成的输入数据。
初始延迟链302可以被配置为将数据从输入存储器元件311传播到缓冲器元件35,缓冲器元件35对通过初始延迟链302传播的数据进行缓冲。
(形成成梯次的延迟链的)数据路径303可以将值位从元件35传播到相对应的传感器输出存储器元件36。
输入存储器块301和第二路径302还可以包括组合标准单元370、371。组合标准单元370、371可以被配置为使用存储在输入存储器元件311中的信号作为输入值来确定要存储在输出存储器元件36中的值。组合标准单元可以包括可以实施布尔函数的无存储器逻辑门(例如反相器门371)、包括其功能是是放大和/或延迟数据路径的缓冲器(例如,图4中所示的示例中所使用的缓冲器370)的其他组合标准单元。
输入存储器块可以被配置为生成激励。输入存储器块301的存储器元件311可以是被配置为使用由反相器门371提供的反相值的采样来在每个时钟周期改变传感器状态的任何元件,例如输入DFF。
这具有生成字符串010101…的效果,该字符串在每个时钟周期不断地激励传感器。结果,在每个时钟周期可以进行新的全新测量。这使传感器持续感测。
在一些实施例的以下描述中,为了说明的目的,将考虑存储值I的DFF类型的输入存储器块301。
如果数据在用于采样的时间中(即在小于时钟周期内)从输入存储器元件311正确地到达输出存储器元件36,则认为计算成功。
定量数字感测设备3可以用于检测目标电路的异常操作条件。
定量数字感测设备3可以有利地构建有与其他数字电路相同的逻辑元件,使得其对不合规格的操作条件(例如温度、电压、时钟频率等)是敏感的。例如,如果温度增加超过给定阈值,定量数字传感器数据路径302的组合门的传播延迟将增加到数据在时钟上升沿之后到达输出存储器元件36的点,从而引起设置违规故障。这种迟的到达可以在输出存储器元件36中诱发相对于参考信号的故障状态。可以通过比较输出存储器元件36中的一组值Oi来检测该故障状态,并且该故障状态可以被分析单元31使用以生成警报。
在图4的实施例中,每个第i传感器300-i包括输入元件301、初始延迟链302、成梯次的延迟链303和存储Oi的传感器输出存储器元件36。利用这样的梯次结构,扰动将在关键路径303中创建强烈的改变,从而相对于标称和无扰动操作涉及到状态位的显著改变。因此,假阳性仅可以使几条路径发生故障,而真阳性可以使更多路径发生故障。
在现有技术中,为了保护目标数字电路1免受攻击,数字传感器基于在宽间隔中任意选定的警报阈值并且在不研究测量的时间变化的情况下来触发警报。因此,目标数字电路1以比其实际能够处理的时钟频率低得多的时钟频率进行操作,这导致低的电路性能。这使得能够以性能为代价使假阳性的发生最小化。假阳性在于警报的检测,虽然对于电路没有风险。这样的事件可能引起对策被激活(例如,电路的重启),这降低了用户体验。
通过使用由传感器300传送的输出值Oi的组合来检测目标电路的异常操作条件,定量数字感测设备3能够以更高的时钟频率进行操作,从而改善电路性能。此外,即使在压力实际上已经引起失灵之前,定量数字电路也能够检测攻击。实际上,由于攻击测试工具校准和有条理的芯片扫描,用于存储输出向量V的输出存储器元件36(或更常见的是输出存储器4)所具有的物理特性在对应于识别阶段的评估期间会发生波动。因此,根据本发明的实施例,已经可以检测到攻击准备阶段。
为了检测异常操作条件,可以将根据图3和图4的实施例的数字感测设备3设计为使得存在从传感器300的输入DFFI(分别为I′)开始到DFFOi(分别为O′i)中的一个的至少一条关键路径(最长路径),并且:
(1)数字传感器3中的所有路径在时间上都比关键路径短;
(2)关键路径与标称环境(时钟周期、电源等)兼容。
图5描绘了根据一个实施例的被配置为传送一组n个感测输出{O1,...,Oi,...,On}的双多位感测单元30。在这样的实施例中,分析单元31可以包括分类器310(图2中所示),分类器310被配置为对诱发故障的检测到的扰动攻击进行分类。例如,在一个实施例中,分类器可以被配置为确定检测到的故障是:
-局部的(即,与芯片的专用部分有关),例如集中的激光故障注入,还是
-全局的(即,总体上涉及芯片),例如电源/时钟失灵或EM脉冲攻击。
激光攻击可以例如把几个晶体管作为目标,并且因此是选择性的。特别地,它可能撞击远离传感器300的逻辑。结果,即使局部激光发射的间接影响可能在芯片内传播得很远,也可能绕过传感器300。因此,当检测到局部激光扰动攻击时,可能需要这样的攻击和快速反应,以防止对芯片的安全性的严重威胁。相反,一些类型的攻击则更为普遍。那些更为普遍的类型的攻击可能被至少一个传感器捕获。因此,那些攻击并不需要快的反应来触发适当的动作。
在这样的实施例中,感测单元30可以包括至少一个定量传感器元组。每个传感器元组可以包括参考传感器300和一个或多个冗余传感器。
在特定实施例中,感测单元30可以包括至少一对定量传感器300-i和300-i’(一对传感器在下文中通常被称为{300,300’})。参考传感器和冗余传感器可以是相同的或类似的。下面将参考包括至少一对参考传感器的感测单元对一些实施例进行描述。
在图5的示例性实施例中,使用一对两个传感器300和300’。每对传感器{300,300’}包括参考传感器300和冗余传感器300’(带撇号的附图标记与一对传感器的冗余传感器有关)。在感测单元30中,参考传感器300(对应于“参考”梯次结构的每个参考传感器)和冗余传感器300’(对应于“冗余”梯次结构的每个冗余传感器)进一步交错放置(换句话说,在感测单元30中,冗余传感器300’物理地布置在两个参考传感器之间)。
分析单元31可以被配置为将每对参考传感器300的第一输出向量V=[O1...Oi...On](也称为“参考向量”)与同一对冗余传感器300’的第二输出向量V′=[O′1...O′i…O′n](也称为“冗余向量”)进行比较。然后,分类器310可以基于统计测试的结果(例如基于两个向量之间的比较的结果)来对扰动进行分类。这样的分类器可以有利地实施被配置为被训练并执行分类的机器学习算法。
感测单元30还可以传送包括参考传感器300的位输出的第一向量V和包括冗余传感器300’的位输出的第二向量V′,分析单元31被配置为根据第一向量V和第二向量V′之间的比较来对检测到的扰动攻击进行分类。
在一个实施例中,分析单元31可以被配置为:如果对于一组传感器的传感器对{300,300’}的预定义的数量,每对传感器中的参考传感器300的输出向量和同一对中的冗余传感器300’的输出向量具有不同的状态位Oi和O′i(在参考传感器和冗余传感器的输出向量上的这样的条件在下文中也称为“状态位条件”),则确定发生了扰动并且该扰动是局部的。特别地,分析单元31可以被配置为:如果对于一组传感器的所有传感器对{300、300’}都满足状态位条件,则确定发生了扰动并且该扰动是局部的。如果确定攻击是局部的,则该攻击可以比另一个攻击更多地更改一个梯次结构(例如,冗余梯次结构可能比参考梯次结构受到更多的更改,或反之亦然)。否则,如果传感器随时间演变但跟踪(也就是说,如果传感器在每个瞬时时间改变,对于在1和n之间的所有i,满足相等条件Oi=O′i),则分析单元31可以检测到正在做出具有全局影响的攻击。应该注意的是,分析单元31也可以适合于确定扰动是全局的和局部的两者(两个诊断可以是互补的)。全局和局部的两者的攻击到达了重要数量的传感器(该数量可能至少等于三),同时具有分布不均匀的压力。
在另一个实施例中,分析单元31不仅可以通过比较参考向量V和冗余向量V’,而且还检查状态位Oi随时间的变化来确定攻击是否是局部的。
当两个状态字V和V’突然且强烈不同时,可以检测到局部攻击。如本文所使用的,如果两个状态字V和V’在时间上的连续值相对于彼此不同,值的汉明距离严格大于1,即如果两个连续值具有至少两个不同的位(这样的条件在下文中称为“汉明距离条件”),则认为这两个状态字“突然”不同。
分析单元31可以包括被配置为比较状态字和/或状态位的比较器。为了能够进行比较,分析单元31可以被配置为例如使用被配置为存储源自于采样的每个输出位Oi/O′i的在时间上的连续值的输出存储器4,对状态字V和V’(向量V=(O1,...,On)和V=(O′1,...,O′n))的传感器输出位进行多次采样。数据结构可以是例如移位寄存器、FIFO(先进先出)、或LIFO(后进先出)。
图6示出了包括深度为d的FIFO的定性数字感测设备3(未示出比较器)的部分视图,深度为d的FIFO用于存储每个输出位Oi/O′i的在时间上的d个连续值(用于每个输出位Oi的d个采样值)。比较器可以使用每个状态字的随时间的连续值来检测攻击和/或对攻击进行分类。
图7以波形形式示出了响应于施加到传感器300的从0变化到1的输入I的每个输出位Oi/O′i在时间上的变化。图7因此表示了定量数字感测设备3随时间的历史的示例。比较器42的被配置为检查汉明距离条件(差严格大于一(1))的部分可以有利地以硬件实施,以用于更快的响应。如图7中所示,在“0…0”处的值与在“1 1…1”处的值之间的分隔线在时间上波动,也就是说,一系列零和一系列一之间的边界并不总是在输出位Oi的相同指数j(1≤j≤n)处。
图8示出了包括比较器42的定量数字传感器3。可以使用一组基本比较器420来实施比较器42。每个基本比较器420可以被配置为在给定的瞬时时间将参考传感器300的每个第i输出位Oi的值与冗余传感器300’的第i输出位O′i的值进行比较。在一个实施例中,比较器42可以包括与由每个传感器300或300’传送的输出位的数量n一样多的基本比较器。在一个实施例中,每个基本比较器420可以被实施为异或(XOR),第i基本比较器420被实施为接收参考传感器300的每个第i输出位Oi的值和第i输出位O′i的值作为输入的XOR,因此如果参考传感器300的输出位Oi等于第i输出位O′i的值,则基本比较器的输出等于0,并且如果参考传感器300的输出位Oi不同于第i输出位O′i的值,则基本比较器的输出等于1(如由XOR的真值表所定义的)。然后可以将一组基本比较器420的输出输入到在分析单元31中提供的逻辑OR 450,如果该组基本比较器420中的至少一个输出等于1,则该OR 450的输出等于1;也就是说,如果对于至少指数i(i=1到n),则参考传感器300的输出位Oi不同于第i输出位O′i的值。在这种情况下,可以检测到局部攻击。分析单元31可以被配置为:如果检测到这样的局部攻击(OR运算符450的输出等于1),则触发警报。
图9示出了根据另一个实施例的包括比较器42的定量数字感测设备3。在这样的实施例中,分析单元41的比较器42可以检测:如果在V和V’之间存在汉明权重,同时所述汉明权重严格大于一(“>1”),则两个状态字V和V’被认为“强烈”不同。两个字V和V’之间的汉明距离可以看作是V-V’的汉明权重。由于V和V’是二进制字符串,所以汉明距离等于V XOR V’中的一(“1”)的数量。
在图9的实施例中,还使用均被实施为XOR的一组基本比较器420来实施比较器42,如结合图8描述的。然后可以将该组基本比较器420的输出作为输入提供给求和运算符46(表示为“∑”),求和运算符46被配置为确定V和V’之间的汉明权重。V和V’之间的汉明距离也表示为dh(V,V′),并且等于wh(V XOR V,),其中:
然后,将块46的输出作为输入提供给权重比较器47,权重比较器47被配置为确定接收到的输入(即汉明距离)是否严格大于一(“>1”)(即,大于或等于2(“≥2”))。如果是这样,则状态字V和V’“强烈”不同,并且如果检测到这样的局部攻击(比较器47的输出大于或等于2),则分析单元31可以触发警报。
图10描绘了根据实施例的示例性定量感测设备3,定量感测设备3被配置为实施这样的汉明距离条件,即检测两个状态字V或V’是否“突然”不同。图10与图9的不同之处在于,比较器42包括被配置为在时间上比较每个二进制向量V或V’的两个不同状态的两个XOR421和421’。更具体地,在图10的实施例中,比较器42包括第一XOR 421和第二XOR 421’,第一XOR被配置为执行以下的XOR:
第一输入Vprev,其在时间上对应第一二进制向量V=(O1,...,On)(参考向量)在时刻t0处的先前状态,以及
第二输入V,其在时间上对应第二二进制向量V=(O1,...,On)(参考向量)在时刻t1<t0处的随后状态。
可以提供块46以接收第一XOR 421的输出从而确定汉明权重,由此确定的汉明权重被输入到权重比较器47以确定汉明权重是否严格大于一(“>1”)(即,大于或等于2(“≥2”)。如果是这样,则在时间t0和t1处的状态字V的两个状态被认为是“突然”不同,并且如果检测到这样的突然差异,则分析单元31可以触发警报。
类似地,比较器42可以包括第二XOR 421’,第二XOR 421’被配置为执行以下的XOR:
第一输入V′prev,其在时间上对应第二二进制向量V′=(O1,...,On)(冗余向量)在时刻t0处的先前状态,以及
第二输入V′,其在时间上对应第二二进制向量V′=(O′1,...,O′n)在时刻t1>t0处的随后状态。
分析单元可以包括块46’,块46’被配置为接收第二XOR 421’的输出以确定汉明权重,由此确定的汉明权重被输入到权重比较器47’以检查汉明权重是否严格大于一(“>1”)(即,大于或等于2(“≥2”))。如果是这样,则在时间t0和t1的第二二进制向量V的两个状态被认为是“突然”不同,并且如果检测到这样的突然差异,则分析单元31可以触发警报。
在另一个实施例中,分析单元31可以被配置为基于状态位Oi的位模式来检测局部攻击。更具体地,分析单元31可以被配置为当状态位的标称值(状态位的标称值是在无攻击时的状态位的值)为:
O1=O2…=Oth=I并且Oth+1=Oth+2…=On=not(I)时,
控制状态位Oi是否是单调的,换句话说,对于从0变化到1的输入I是否是:
0≤O1≤O2…≤On-1≤On或者O1≥O2…≥On-1≥On。
如果分析单元31检测到状态位Oi是非单调的,则分析单元确定对电路执行攻击的可能性为高。实际上,攻击者很可能会用精确的注入工具(例如激光)翻转一个或几个状态触发器36作为其攻击的副作用。另外,分析单元31可以被配置为比较两个交错的传感器300和300’的状态字V和V′。
在另一个实施例中,分析单元31可以被配置为使来自多个传感器的状态位Oi相关联,例如以测量电路1的老化级别,和/或使用该信息以用于计算威胁级别(例如,低、中、高)。应当注意,电路1的寿命越长,攻击者就越有可能发展出专门技术,所以应增加威胁级别,以考虑到根据对目标的了解而增加攻击。
在一个特定实施例中,分析单元31可以被配置为根据由一组传感器300传送的输出Oi来测量被保护电路1的老化。老化与电路第一次通电的时间和使用阶段的持续时间和/或频率有关。在这样的实施例中,分析单元31可以包括PUF(物理不可克隆函数)结构(例如SRAM-PUF(SRAM是“静态随机存取存储器”的缩写)),以测量电路1的老化,电路1的老化被测量为某些PUF(物理不可克隆函数)结构的可靠性的变化。PUF的可靠性因此可以用作用于电路的老化的传感器。因此,在电路1的整个使用持续时间,SRAM-PUF的可靠性可以看作是不可伪造的定量数字传感器3,SRAM-PUF的一组位输出Bc对应于数字传感器的输出Oi。
在这样的实施例中,感测单元30可以包括以SRAM-PUF的形式实施的至少两个传感器300,至少两个传感器300响应于输入而传送SRAM位,由SRAM位输出的每个SRAM位形成位输出Oi。
图11示出了SRAM-PUF的详细视图。
基于静态随机存取存储器(SRAM)的PUF使用SRAM作为PUF源。它还可以包括被配置为根据SRAM PUF推导稳定唯一的密钥的模糊(密钥)提取器(未示出)。
SRAM-PUF是基于SRAM存储器元件的稳定状态的基于存储器的固有PUF(也称为“存储器PUF”)。SRAM-PUF与有限数量的不同挑战相关联。此外,存储器地址可以用作挑战。SRAM-PUF的响应Bc取决于输入c。可以通过扫描c的所有值来获得许多独立的Bc值。
只要提供电源,静态随机存取存储器(SRAM)就可以保留其存储的信息。术语“随机存取”是指在SRAM单元阵列中,无论最后存取哪个单元,可以按任何顺序对每个单元进行读取或写入。
SRAM单元具有对称结构,并且包括一组晶体管(例如MOSFET)。SRAM的示例是每个位使用六个晶体管的6T-SRAM。其他类型的SRAM芯片每个位可以使用4、8、10(4T、8T、10TSRAM)或更多个晶体管。
SRAM中的每个位被存储在形成两个交叉耦合的反相器的存储晶体管的子组上。例如,在6T-SRAM中,SRAM中的每个位存储在形成两个交叉耦合的反相器的四个晶体管(M1、M2、M3、M4)上。
这些反相器中的每个连接在电源线Vss和VDD之间,电源线VDD包括低的正直流电压,并且电源线Vss包括参考电位,例如地。
在读取和写入操作期间,可以使用两个附加存取晶体管来控制对存储晶体管的存取。
存储晶体管(M1、M2、M3、M4)中的一些(例如M1和M4)充当“下拉”晶体管,而其他存储晶体管(例如M2和M3)充当“上拉”晶体管。上拉晶体管可以是等同的P沟道器件,并且下拉晶体管可以是等同的N沟道器件。在图6中,仅示出了四个晶体管M1、M2、M3和M4。
通过控制对晶体管M5和M6的存取的字线WL实现对单元的存取。存取晶体管可以控制单元是否应当连接到包括位线BL和反相位线的两条位线。两条位线用于传输用于读取和写入操作两者的数据,并由位线驱动器(未示出)进行控制。在读取存取期间,位线由SRAM单元中的反相器主动驱动为高和低。
SRAM单元的核心因此由两个反相器形成,每个反相器的输出电位作为输入被馈送到另一个。
在待机模式下,字线WL为低,从而使存取晶体管截止。在这种状态下,反相器处于互补状态。
为了写入信息,将数据施加在位线BL上,并且将反相数据施加在反相位线上。通过将字线WL设置为高,可以使存取晶体管导通。由于位线的驱动器更强,因此可以置位反相器晶体管。一旦信息存储在反相器中,就可以使存取晶体管截止,并保留反相器中的信息。
为了读取,使字线WL导通以激活存取晶体管,同时在位线处感测到信息。
根据本发明的一些实施例,分析单元31可以实施老化方法,该老化方法包括用于确定SRAM-PUF的可靠性并因此将所确定的可靠性与对应于未老化的SRAM-PUF的参考值进行比较的步骤,这可以保存在例如非易失性存储器(NVM)中。老化差异越大,可靠性差异就越大(可靠性随设备寿命的增加而平均增加)。
在上述实施例中,数字传感器300依赖于类似种类的测量,通常是将某种影响转换为时间延迟(即,沿延迟链的传播时间)。有利地,在一些实施例中,数字传感器300可以被配置为转换为另一物理量(例如频率),其中传感器被构建为振荡结构,所述频率通常通过在其自身上循环延迟链传感器从而对若干回合进行计数而获得。
图12是描绘使用SRAM-PUF传感器300的输出来使目标电路1老化的过程的流程图。
在步骤700中,由分析单元31接收SRAM位。
对于所有SRAM位重复以下步骤(块701)。
更具体地,将步骤703重复n次(对于块701中的每次迭代),其中n表示SRAM位的数量。
在步骤703中,当前迭代在于测量当前SRAM位的值。
在步骤704中,考虑在步骤703的n次迭代中测量的n个SRAM位的值来计算平均值。
因此获得的平均值表示随时间演变的SRAM-PUF可靠性的估计。
在步骤705中,可以基于在步骤704中确定的平均值来执行对老化的估计。该平均值随着老化而增加。因此,可以通过将当前的可靠性估计与存储在非易失性存储器中的参考值进行比较来推断老化。可以通过学习阶段(也称为登记阶段)来确定这样的参考值。
在一些处理(例如“累加”步骤704)之后,SRAM PUF输出位(从而形成用于存储器输出“字”的位的一个或多个向量)感测电路的“老化”。因此,从PUF读取出的值(在步骤701和703中)表示多个传感器300的输出。
在一些实施例中,分析单元31可以被配置为使用感测单元30的输出来计算关于攻击的实时诊断。
分析单元31可以被配置为传送包括检测到的威胁级别(例如,低、中、高)的指示的输出。分析单元31的输出可以具有任何形式,例如通知或包括检测到的威胁级别的仪表板。分析单元31的输出可以被解释为提示,所述提示是观察到的状态改变是由于攻击还是由于与攻击无关的其他原因,例如电源电压下降。
在一些实施例中,分析单元31可以被配置为根据检测到的攻击级别(例如,如果检测到高级别)来另外地或替代地触发警报。这样的警报可以用于例如触发芯片重置信号、和/或触发处理器管线的冻结、和/或触发去往操作系统的消息(以使当前过程进入沙盒、和/或记录事件)。这样的警报还可以用作基于机器学习的分类算法的输入、或触发芯片的自动销毁。
应当注意,在一些实施例中,分析单元31的分类器可以基于机器学习(例如使用SVM(支持向量机器)或RRF(旋转随机森林))来执行特定的分类。
由分类器执行的分类可以是“二进制的”,因为它能够区别两种情况,即“良性”情况(没有正在执行攻击)和“异常”情况(正在执行攻击)。
然而,分类可以具有更大的粒度,因为它可以区别不同的攻击情况,例如:
-“良性”情况(没有正在执行攻击),
-“异常”情况(正在执行攻击),其本身可以分解为若干子类别情况:“时钟故障”、“重置故障”、“电源故障”、“电磁故障注入”、“激光射击注入”等。
更通常地,分类器可以适于在P个类别中对攻击情况进行分类。
图13是描绘根据特定实施例的在P个可能的类别(C1,C2,…,CP)中对攻击进行分类的方法(分类方法)的流程图。图13示出了学习阶段。
该方法可以包括可以在被保护的环境中离线执行的初始学习阶段。
学习阶段可以包括初始化对于每个P类别所划分的测量V的空数据组的步骤800。
然后对于每个类别Ci重复执行以下步骤(循环)。更具体地,在步骤804中,对于在{C1,C2,…,CP}中的每个类别Ci(块802),在环境条件Ci下进行V的测量。
在步骤806中,使用合适的(由分类算法定义的)分类技术来学习分类模型。
在步骤808中,可以计算用于学习模型的分类的精确性级别(也称为“精确性指标”或“精确性度量值”)。
在步骤810中,检查与精确性级别有关的条件。在一个实施例中,如图13中所描绘的,步骤810可以包括确定在步骤808中确定的精确性级别是否大于预定义的阈值(如果精确性级别表示为百分比,则该阈值可以例如是99%)。
如果满足条件,则循环可以中断(也就是说,该方法不会对下一个类别Ci+1至CP执行进一步的迭代)。因此,在步骤813中,学习阶段可以终止,并且该方法可以返回到学习的模型。
否则,如果在步骤810中不满足与精确性级别相关的条件,则对类别Ci+1至CP执行下一次迭代(块812),直到已经处理了所有类别(块811)或直到循环中断(块811和812)。
学习阶段因此导致了学习的模型。
在学习阶段之后,分类方法可以在线执行匹配阶段。
图14是描绘根据实施例的用于在P个可能的类别(C1,C2,…,CP)中对攻击进行分类的分类方法的分类阶段的流程图。
在步骤820中,可以进行V的测量。
在步骤821中,对学习模型施加分类,以确定攻击的类别。在步骤822中,返回在步骤821中确定的类别C,其中C属于该组类别{C1,C2,…,CP}。
本发明的各个实施例相应地改善了保护使IC设备1免受扰动攻击,IC设备1例如为嵌入式系统(例如,智能卡、多媒体播放器、记录器、诸如存储器卡和硬盘的移动存储设备等)或实施在IoT架构(IoT代表“物联网”)中的M2M平台或终端中的IC设备。
有利地,由数字感测设备3执行的分析中的时延可以低至一个时钟周期,例如在图6、图8、图9、图10和图14的实施例中所示的。
根据本发明的实施例的保护方法和设备可以用于广泛范围的通信和数据处理应用中,例如用于在汽车产业应用中以确保防盗保护、用于在服务提供商系统中以使存取卡安全、用于在RFID标签和电子钥匙中、用于在移动电话设备中以验证对电池和配件的控制和存取、用于在嵌入式设备和装备的制造中以提供保护使硬件和软件算法免受克隆和逆向工程、用于在银行业中使银行账户和金融交易安全等。
在一个实施例中,数字传感器3可以被配置为检测电磁故障注入(EMFI)攻击以减少假阳性。
EMFI(电磁故障注入)几乎唯一的被以下特性所表征:
-EMFI威胁必须具有相当大的幅度才能有效;
-EMFI威胁由于共振和之后的阻尼振动而具有正偏差值和负偏差值两者;
-EMFI威胁持续很长时间(可以将EMFI与传播和具有反弹的地震进行比较);
-然而,EMFI威胁会使传感器变慢并加速密码系统,从而引起未检测到的故障。
为了检测电磁故障注入(EMFI)攻击以减少假阳性,数字传感器3可以在M个周期的N个周期期间执行二进制检查,其中1≤N≤M。二进制检查在于检查状态值是否高于预定的最大阈值或低于预定的最小阈值。在这后两种情况中,二进制检查可以返回“真”或“假”。这使得能够验证压力的一定持久性。通过保持相同的压力检测范围同时降低测量精确性(因此以数字分辨率为代价来节省面积),可以进一步修剪数字传感器3。
可以使用有限状态机器(FSM)以面积优先的方式有利地实施M个周期的N个周期的假警报(或“假阳性”)率。
图15描绘了根据实施例的用于实施假警报的FSM。
图15的FSM 50被配置为仅在M=16窗口之外的N=8个周期期间检测到阈值违规时发出警报。
如图15中所示,可以响应于违规的检测而触发发出警报的决策。如果数字传感器状态超过给定值和/或下溢给定值,则检测到由信号“viol”表示的违规。如果检测到违规,则将由信号“tmt”表示的超时设置为M,并且在M个时钟周期的该时间窗口(超时)内违规的次数由信号“cnt”(表示计数器信号)进行计数。“tmt”信号在每个时钟周期会减小一。N和M的值可以保存在诸如OTP(一次性可编程)存储器的可编程存储器中。每次检测到违规时,“cnt”信号就会递增。如果“cnt”在超时达到值“0”(零)之前达到数字N,则FSM进入警报状态。有利地,FSM 50是紧凑的,并且可以以硬件实施以用于实时分析。此外,FSM 50可以实施一些常数的定义,例如根据信号“状态”计算信号“viol”的方式以及N和M的值。因此,可以在制作之后完成对FSM的校准,这在本发明的应用中具有特别的优势,在本发明的应用中,数字传感器3是使用可变性非常大的先进的CMOS技术工艺制作的。
根据图15的实施例,与在“在每个时钟处决定”的方式(M=N=1)的情况相比,可以使用较小的最大阈值和/或较高的最小阈值(更紧的界限)来计算违规信号“viol”。阈值越严格,随时间被报告的违规就越多。然而,只有在N个时钟周期中报告了违规中的M个时(如“在每个时钟决定”的方式中),有限状态机器才可以发出警报,以便及时交叉检查警报源于故意的(即,恶意的)扰动的可能性。
在一些实施例中,可以丢弃输出向量36的对应于最低有效位(LSB)的若干状态位(状态门),以实现节省面积。图16、图17和图18分别描绘了零次、一次和两次修剪的示例。
在图16中,没有丢弃输出位Oi,而在图17中(丢弃了分辨率的一位:减少指数的输出位Oi,例如O1、O3..),而在图18中,丢弃了分辨率的两位(例如,对于每个输出位Oi,其中i=0到n,保留输出位Oi,而丢弃输出位Oi+1、Oi+2、Oi+3)。应当注意,虽然在图17和图18中以浅灰色表示被丢弃的输出位,但它们实际上对应于被去除的门。因此,在图17中,修剪状态位中的一半(向上逻辑),并且在图18中,将对后两个LSB进行支持逻辑修剪(对于分辨率被丢弃的i个位,丢弃(2i-1)个位)。例如,对于包括n=32位的输出向量36,丢弃三次(由于每次撤销分辨率的位时状态位的数量除以二,因此仅保留位),面积大约被减半。
图19示出了根据实施例的数字传感器的结构,其中,数字传感器3被配置为转换为频率。
如本文中所使用的,术语“转换为频率”是指在N个系统时钟周期之后,由数字传感器3将频率测量为n个元件的循环中的回合数量d。
图20是示出在模型学习方法的第一阶段和第二阶段期间实施以在考虑良性和恶意环境条件两者的情况下构建分类模型的步骤的流程图。步骤161至163对应于第一模型学习阶段的三个步骤,当目标电路未受到攻击时离线执行这些步骤。步骤164对应于当目标电路受到一个或多个攻击时执行的第二学习阶段。这些步骤的输出用作被执行以丰富/改良模型的步骤165的输入。
因此,在步骤161处,可以在没有用户干扰的情况下在若干电路/芯片上执行模型学习。
在步骤162处,可以考虑不同的操作条件来执行模型学习。
在步骤163处,可以在预定义的时间学习间隔内在单个芯片上执行模型学习。
在步骤164处,当目标电路经历考虑不同的攻击条件和环境扰动的一个或多个攻击时,可以执行模型学习。
图21是示出基于合并在基于ML的分类的第一和第二学习阶段期间学习的模型的基于ML的学习和分类方法的步骤的流程图。实际上,根据在步骤171到174处收集的数据来学习的模型是独立的。该方法使得能够利用这样的去相关以将模型合并为一个模型,并且构建特定的学习方法和只攻击模型。因此,在步骤171处,可以在若干电路/芯片上执行模型学习。在步骤172处,可以考虑不同的操作条件来执行模型学习。在步骤173处,可以通过对目标电路1施加一个或多个扰动攻击来执行模型学习。在步骤175处,可以合并在步骤171、172和173中的每个步骤处生成的输出学习数据,以丰富/更新仅取决于环境可变形的良性模型。
在步骤176处,当目标电路经历一个或多个扰动攻击时,可以根据在步骤174处生成的学习数据构建攻击模型。
在步骤177处,可以通过从在步骤176处产生的攻击模型减去在步骤175处确定的良性模型,来推导出只攻击模型。
图22示出了系统,在该系统中,根据本发明的一些实施例的机器学习技术用于远程检测用户设备(UD)的行为并在这样的设备的寿命周期期间获取信息。机器学习技术利用现场获取的数据(也称为“现场测量”)来改良分类/攻击模型。因此,可以产生n个(其中,n在10至100之间变化)工程样品(ES)并将n个工程样品收集在数据库中。该收集的数据可以使用机器学习技术来构建在多个用户设备上现场推送的初始模型。此外,现场收集的测量使得能够更新存储现场测量的数据库并在用户设备的寿命周期期间改良模型,该用户设备在现场部署之后可以集成改良的模型。
本发明的实施例可以以硬件、软件、和/或软件和硬件的组合来实施,例如使用专用集成电路(ASIC)、通用计算机或任何其他硬件等同物。
特别地,本文描述的方法可以通过提供给任何类型的计算机的处理器的计算机程序指令来实施,以产生具有处理器的机器,该处理器执行指令以实施本文指定的功能/动作。这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机以特定方式运行。为此,可以将计算机程序指令加载到计算机上以引起一系列操作步骤的执行,并且从而产生计算机实施的过程,使得所执行的指令提供用于实施本文指定的功能/动作的过程。
另外,在本发明的特定实施例中,本文描述的程序代码可以基于在其中实施程序代码的应用或软件部件来识别。
图23是根据本发明的一些实施例的适于实施分析单元31的部分或全部功能的通用计算机的高级别块图。
如图23所示,分析单元31的部分或全部功能可以在统称为计算机(例如计算机80)的一个或多个计算设备或系统上实施。计算机80可以包括处理器82、存储器84、大容量存储存储器设备86、输入/输出(I/O)接口88、和人机接口(HMI)89。计算机80还可以经由网络97和/或I/O接口88可操作地耦合到一个或多个外部资源92。外部资源可以包括但不限于服务器、数据库、大容量存储设备、外围设备、基于云的网络服务、或可以由计算机80使用的合适的计算资源。
处理器82可以包括选自以下的一个或多个设备:微处理器;微控制器;数字信号处理器;微计算机;中央处理单元;现场可编程门阵列;可编程逻辑设备;状态机器;逻辑电路;模拟电路;数字电路;或基于存储在存储器84中的可操作指令来操纵(模拟或数字)信号的任何其他设备。存储器84可以包括单个存储器设备或多个存储器设备,所述存储器设备包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、易失性存储器、非易失性存储器、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、闪存存储器、高速缓存存储器、或能够存储信息的任何其他设备。大容量存储存储器设备86可以包括数据存储设备,例如硬盘驱动器、光盘驱动器、磁带驱动器、非易失性固态设备、或能够存储信息的任何其他设备。数据库94可以位于大容量存储存储器设备86上,并且可以用于收集和组织由本文描述的各种系统和模块使用的数据。
处理器82可以在位于存储器84中的操作系统96的控制下进行操作。操作系统96可以管理计算资源,使得被体现为一个或多个计算机软件应用(例如位于存储器84中的应用98)的计算机程序代码可以具有由处理器82执行的指令。在替代的实施例中,处理器82可以直接执行应用98,在这种情况下,可以省略操作系统96。一个或多个数据结构99也可以位于存储器84中,并且可以被处理器82、操作系统96、和/或应用98使用来存储或操纵数据。
尽管已经通过各种示例的描述示出了本发明的实施例,并且尽管已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求的范围约束或以任何方式限制到这样的细节。
特别地,应当注意,本发明不限于特别类型的传感器。
传感器300可以包括例如“环境传感器”,所述环境传感器包括:
-被配置为测量温度的一个或多个传感器,和/或
-用于测量移动的一个或多个传感器,例如MEMS(微机电系统),和/或
-被配置为测量电压的一个或多个传感器,例如(测量电源下降的)降压传感器(brownout sensors),和/或
-被配置为测量频率例如以检测与时钟信号有关的问题(例如超频)的一个或多个传感器。
还应当注意,出于安全性原因,可以专门对传感器进行实例化,例如:
-可以被配置为检测设备包装已经被打开的光传感器,
-被配置为测量基板中的电流的激光传感器,
-一些性质的不变量,从而检测功能错误。
此外,应当注意,每个传感器300可以是逻辑传感器。这样的逻辑传感器可以等待操作系统(OS)发出一些安全性事件(例如,在GNU/Linux OS下以“/var/log/dmesg”登录的那些事件)或无效事件(非法指令、堆栈溢出、存储器段违规、用于函数或程序的异常返回代码等)。
由于一些实施例的组合而产生的附加优点和修改对于本领域中的技术人员将是显而易见的。因此,本发明在其更广泛的方面不限于示出和描述的具体细节、代表性方法、和说明性示例。
Claims (21)
1.一种用于保护集成电路(1)免受扰动攻击的设备,其中,所述设备包括被配置为检测扰动攻击的感测单元(30),所述感测单元包括一组数字传感器,所述一组数字传感器包括至少两个传感器(300),所述传感器(300)被并行布置,每个数字传感器(300)响应于输入数据而提供具有二进制值的数字化的位输出,所述感测单元(30)被配置为传送包括多位值的至少一个二进制向量,所述多位值包括由所述一组数字传感器提供的至少两个位输出,所述感测设备(3)还包括分析单元(31),所述分析单元(31)被配置为接收由所述感测单元(30)提供的至少一个二进制向量,所述分析单元(31)被配置为根据所述至少一个二进制向量来检测扰动攻击。
2.根据权利要求1所述的设备,其中,所述分析单元(31)被配置为根据所述至少一个二进制向量来确定表示检测到的扰动攻击的定量估计和/或定性估计的量和/或所述检测到的扰动攻击的分类。
3.根据前述权利要求中任一项所述的设备,其中,所述感测单元(30)的每个传感器(300)包括:
-用于存储输入数据的输入存储器块(301),
-用于传播所述输入数据并形成第一延迟链的第一数据路径(302),
-用于传播所述输入数据并形成第二延迟链的第二数据路径(303),
所述输入存储器块(301)和所述第二路径(302)还包括组合单元(370、371),所述组合单元(370、371)被配置为使用所述输入数据(311)来确定所述传感器(300)的所述位输出。
4.根据权利要求3所述的设备,其中,所述输入存储器块(301)包括用于存储使用激励生成器生成的输入数据的输入存储器元件(311),所述第一数据路径(302)被配置为将数据从所述输入存储器元件(311)传播到缓冲器元件(35),所述缓冲器元件(35)对通过所述初始延迟链(302)传播的所述数据进行缓冲。
5.根据前述权利要求中任一项所述的设备,其中,所述设备还包括与每个传感器(300)相关联的输出存储器(36),所述输出存储器(36)用于存储由所述传感器(300)传送的所述位输出。
6.根据权利要求4和5所述的设备,其中,给定传感器的所述第二数据路径(303)形成成梯次的延迟链,所述第二数据路径(303)将值位从所述缓冲器元件(35)传播到与所述给定传感器相关联的所述输出存储器(36)。
7.根据前述权利要求1至4中任一项所述的设备,其中,所述设备还包括输出存储器(4),所述输出存储器(4)被配置为存储由所述传感器(300)传送的所述位输出。
8.根据前述权利要求1至4中任一项所述的设备,其中,所述设备还包括寄存器(4),所述寄存器(4)被配置为存储由所述传感器(300)在不同的瞬时时间传送的所述位输出的值。
9.根据前述权利要求2至8中任一项所述的设备,其中,所述感测单元(30)包括至少一对传感器(300,300’),每对传感器包括参考传感器(300)和冗余传感器(300’),每对的传感器相邻,所述参考传感器和所述冗余传感器交错,所述感测单元(30)被配置为传送包括所述参考传感器的所述位输出的第一向量和包括所述冗余传感器的所述位输出的第二向量,所述分析单元(31)被配置为根据所述第一向量和所述第二向量之间的比较对检测到的扰动攻击进行分类。
10.根据权利要求9所述的设备,其中,所述第一输出向量和所述第二输出向量具有相同的位大小,所述分析单元(31)被配置为:如果所述分析单元确定所述第一向量和所述第二向量相对于彼此不同,值的汉明距离严格大于一,则将检测到的扰动攻击分类为局部攻击。
11.根据前述权利要求9和10中任一项所述的设备,其中,所述分析单元(31)还被配置为:如果所述分析单元确定所述第一向量和所述第二向量的连续值相对于彼此不同,值的汉明距离严格大于一,则将检测到的扰动攻击分类为局部攻击。
12.根据前述权利要求7和8中任一项所述的设备,其中,所述位输出的标称值被设置为零,并且所述分析单元(31)被配置为通过进一步确定所述位输出是否非单调,来将检测到的扰动攻击分类为局部攻击。
13.根据前述权利要求中的任一项所述的设备,其中,所述分析单元(31)包括老化函数,所述老化函数被配置为估计所述目标电路(1)的老化级别,所述感测单元(30)包括至少SRAM PUF,所述SRAM PUF的每个输出对应于传感器输出。
14.根据权利要求13所述的设备,其中,所述分析单元(31)被配置为根据所估计的老化级别来计算攻击风险级别。
15.根据权利要求1所述的设备,其中,由每个数字传感器(300)在系统时钟的每个时钟周期提供数字化的位输出,在所述系统时钟的每一个时钟周期或每个时钟周期监测在给定时钟周期提供的数字化的位。
16.根据权利要求1所述的设备,其中,所述分析单元(31)包括分类器,所述分类器被配置为根据由所述一组数字传感器提供的数字化的位输出将警报分类为假阳性或真阳性,所述分类器实施选自包括支持向量机器、随机森林、贝叶斯、旋转森林、multiboost算法、和聚类算法的组的机器学习算法。
17.根据权利要求16所述的设备,其中,所述分类器被配置为通过执行第一学习阶段和第二学习阶段来构建攻击分类模型,所述第一学习阶段包括使用一个或多个集成电路(1)来确定传感器输出,确定在不同操作条件下的所述传感器输出,以及确定在预定义的学习时间间隔内的所述传感器输出,所述第二学习阶段包括对集成电路(1)执行一个或多个攻击。
18.根据权利要求1所述的设备,其中,所述感测单元(30)包括附加异构传感器,所述附加异构传感器被配置为通过监测不同的物理参数和/或由所述集成电路(1)执行的不同的软件活动来生成数据,所述分析单元(31)被配置为聚集由所述附加异构传感器中的至少一些生成的数据,并且选择具有最低可变性的传感器。
19.根据权利要求18所述的设备,其中,附加传感器选自包括以下的组:被配置为监测所述集成电路(1)的处理器或给定外围设备的活动的软件传感器;被配置为监测系统总线上的拥塞的软件传感器;被配置为监测硬件性能计数器的软件传感器;被配置为监测软件堆栈的软件传感器;被配置为测量在基板中或在移动中的温度或压力或电压或频率或光或电流的物理传感器。
20.根据权利要求1所述的设备,其中,所述数字传感器(300)中的一个或多个被配置为将所述数字化的位输出上传至远程上行链路服务器,所述远程上行链路服务器被配置为根据所述数字化的位来更新分类模型。
21.根据前述权利要求13和14中任一项所述的设备,其中,所述老化函数被配置为测量由SRAM PUF(300)传送的每个位的值,并且考虑所测量的位值来计算平均值,所述平均值表示对所述SRAM-PUF的可靠性的估计,所述分析单元被配置为根据所述可靠性来确定所述电路(1)的老化。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17306945.1 | 2017-12-27 | ||
EP17306945.1A EP3506548A1 (en) | 2017-12-27 | 2017-12-27 | Quantitative digital sensor |
PCT/EP2018/082062 WO2019129439A1 (en) | 2017-12-27 | 2018-11-21 | Quantitative digital sensor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111869158A true CN111869158A (zh) | 2020-10-30 |
Family
ID=61569014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880088180.XA Pending CN111869158A (zh) | 2017-12-27 | 2018-11-21 | 定量数字传感器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11893112B2 (zh) |
EP (2) | EP3506548A1 (zh) |
CN (1) | CN111869158A (zh) |
WO (1) | WO2019129439A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3663959B1 (en) * | 2018-12-06 | 2021-08-11 | Mastercard International Incorporated | An integrated circuit, method and computer program |
EP3981105A4 (en) * | 2019-06-07 | 2023-06-28 | Ohio State Innovation Foundation | Systems and methods using hybrid boolean networks as physically unclonable functions |
US11343109B2 (en) * | 2019-06-12 | 2022-05-24 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Secure enrollment for physical unclonable function devices |
FR3098611A1 (fr) * | 2019-07-08 | 2021-01-15 | Stmicroelectronics (Grenoble 2) Sas | Dispositif de détection d'erreurs |
US11377229B2 (en) * | 2019-09-13 | 2022-07-05 | Honeywell International Inc. | Internet connected auxiliary power unit airline maintenance system |
US11321457B2 (en) * | 2019-09-16 | 2022-05-03 | Nuvoton Technology Corporation | Data-sampling integrity check by sampling using flip-flops with relative delay |
US11244046B2 (en) | 2019-09-16 | 2022-02-08 | Nuvoton Technology Corporation | Data-sampling integrity check using gated clock |
US11366898B2 (en) * | 2019-11-18 | 2022-06-21 | Silicon Laboratories Inc. | Integrated circuit with electromagnetic fault injection protection |
US11616841B2 (en) * | 2020-02-07 | 2023-03-28 | Taiwan Semiconductor Manufacturing Company Limited | Remote mapping of circuit speed variation due to process, voltage and temperature using a network of digital sensors |
US11880454B2 (en) * | 2020-05-14 | 2024-01-23 | Qualcomm Incorporated | On-die voltage-frequency security monitor |
US11212195B1 (en) * | 2020-09-11 | 2021-12-28 | Microsoft Technology Licensing, Llc | IT monitoring recommendation service |
JP2022124361A (ja) * | 2021-02-15 | 2022-08-25 | 富士通株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
CN113129985B (zh) * | 2021-03-29 | 2024-05-03 | 深圳市国微电子有限公司 | 一种物理不可克隆单元及读取电路 |
US11966503B2 (en) * | 2021-09-24 | 2024-04-23 | Intel Corporation | Glitch attack mitigation for in-vehicle networks |
US11768748B2 (en) * | 2021-11-24 | 2023-09-26 | Intel Corporation | Detection of degradation or an anomalous state across heterogenous internet-of-things devices using synthesized sensors |
US20230305612A1 (en) * | 2022-03-28 | 2023-09-28 | Mitre Corporation | Characterizing Fault Injection on Power Distribution Networks with Voltage Sensors |
US20240061926A1 (en) * | 2022-08-22 | 2024-02-22 | Nxp B.V. | Circuit and method for detecting a fault injection attack in an integrated circuit |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100078636A1 (en) * | 2007-02-20 | 2010-04-01 | Nxp, B.V. | Semiconductor device with backside tamper protection |
US20110002461A1 (en) * | 2007-05-11 | 2011-01-06 | Validity Sensors, Inc. | Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions |
US20120179952A1 (en) * | 2009-08-14 | 2012-07-12 | Pim Theo Tuyls | Physically unclonable function with tamper prevention and anti-aging system |
US20130019324A1 (en) * | 2011-03-07 | 2013-01-17 | University Of Connecticut | Embedded Ring Oscillator Network for Integrated Circuit Security and Threat Detection |
US20140281643A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Apparatus and method for detecting clock tampering |
US20150192637A1 (en) * | 2012-07-17 | 2015-07-09 | Siemens Aktiengesellschaft | Use of a (Digital) PUF for Implementing Physical Degradation/Tamper Recognition for a Digital IC |
US20160182045A1 (en) * | 2013-08-21 | 2016-06-23 | Carnegie Mellon University | Reliability of physical unclonable function circuits |
CN107004074A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 使用高级传感器监测来进行增强型用户认证的技术 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005028221B4 (de) * | 2005-06-17 | 2007-10-11 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Schutz der Integrität von Daten |
US20140088736A1 (en) * | 2012-04-18 | 2014-03-27 | Management Analytics | Consistency Analysis in Control Systems During Normal Operation |
EP2960665B1 (en) | 2014-06-27 | 2017-05-24 | Secure-IC SAS | Device and method for calibrating a digital sensor |
FR3026253B1 (fr) * | 2014-09-19 | 2016-12-09 | Commissariat Energie Atomique | Systeme et procede de securisation d'un circuit electronique |
EP3086255B1 (en) * | 2015-04-23 | 2018-09-19 | Nxp B.V. | Capacitive sensor arrays for detecting secure element tampering |
US10050981B2 (en) * | 2015-05-04 | 2018-08-14 | Intel Corporation | Attack detection through signal delay monitoring |
US11303460B2 (en) * | 2016-06-29 | 2022-04-12 | Arizona Board Of Regents On Behalf Of Northern Arizona University | PUFs from sensors and their calibration |
US10530749B1 (en) * | 2016-10-24 | 2020-01-07 | Mission Secure, Inc. | Security system, device, and method for operational technology networks |
US10547460B2 (en) * | 2016-11-18 | 2020-01-28 | Qualcomm Incorporated | Message-based key generation using physical unclonable function (PUF) |
US10867937B2 (en) * | 2017-05-23 | 2020-12-15 | Board Of Regents, The University Of Texas System | Defense techniques for split manufacturing |
-
2017
- 2017-12-27 EP EP17306945.1A patent/EP3506548A1/en not_active Withdrawn
-
2018
- 2018-11-21 EP EP18803696.6A patent/EP3732814A1/en active Pending
- 2018-11-21 US US16/954,507 patent/US11893112B2/en active Active
- 2018-11-21 CN CN201880088180.XA patent/CN111869158A/zh active Pending
- 2018-11-21 WO PCT/EP2018/082062 patent/WO2019129439A1/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100078636A1 (en) * | 2007-02-20 | 2010-04-01 | Nxp, B.V. | Semiconductor device with backside tamper protection |
US20110002461A1 (en) * | 2007-05-11 | 2011-01-06 | Validity Sensors, Inc. | Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions |
US20120179952A1 (en) * | 2009-08-14 | 2012-07-12 | Pim Theo Tuyls | Physically unclonable function with tamper prevention and anti-aging system |
US20130019324A1 (en) * | 2011-03-07 | 2013-01-17 | University Of Connecticut | Embedded Ring Oscillator Network for Integrated Circuit Security and Threat Detection |
US20150192637A1 (en) * | 2012-07-17 | 2015-07-09 | Siemens Aktiengesellschaft | Use of a (Digital) PUF for Implementing Physical Degradation/Tamper Recognition for a Digital IC |
US20140281643A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Apparatus and method for detecting clock tampering |
US20160182045A1 (en) * | 2013-08-21 | 2016-06-23 | Carnegie Mellon University | Reliability of physical unclonable function circuits |
CN107004074A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 使用高级传感器监测来进行增强型用户认证的技术 |
Also Published As
Publication number | Publication date |
---|---|
US11893112B2 (en) | 2024-02-06 |
EP3506548A1 (en) | 2019-07-03 |
EP3732814A1 (en) | 2020-11-04 |
WO2019129439A1 (en) | 2019-07-04 |
US20210004461A1 (en) | 2021-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111869158A (zh) | 定量数字传感器 | |
Shafique et al. | Robust machine learning systems: Challenges, current trends, perspectives, and the road ahead | |
Mushtaq et al. | WHISPER: A tool for run-time detection of side-channel attacks | |
US10855476B2 (en) | Embedded test circuit for physically unclonable function | |
Alam et al. | Performance counters to rescue: A machine learning based safeguard against micro-architectural side-channel-attacks | |
US20190050564A1 (en) | Protection for inference engine against model retrieval attack | |
Lodhi et al. | Power profiling of microcontroller's instruction set for runtime hardware Trojans detection without golden circuit models | |
US9116844B2 (en) | Data processing apparatus and method for analysing transient faults occurring within storage elements of the data processing apparatus | |
US9824243B2 (en) | Model-based runtime detection of insecure behavior for system on chip with security requirements | |
Hasegawa et al. | Hardware trojan detection utilizing machine learning approaches | |
Elnaggar et al. | Run-time hardware trojan detection using performance counters | |
Machida | N-version machine learning models for safety critical systems | |
Elnaggar et al. | Hardware trojan detection using changepoint-based anomaly detection techniques | |
CN113597747B (zh) | 用于故障注入攻击的检测和定位的设备和方法 | |
Wang et al. | Comprehensive evaluation of machine learning countermeasures for detecting microarchitectural side-channel attacks | |
CN106716072A (zh) | 用于校准数字传感器的设备以及方法 | |
Lu et al. | Data-driven anomaly detection with timing features for embedded systems | |
Priyatharishini et al. | A deep learning based malicious module identification using stacked sparse autoencoder network for VLSI circuit reliability | |
Ren et al. | A learning-based approach to secure JTAG against unseen scan-based attacks | |
Deligiannis et al. | Towards the integration of reliability and security mechanisms to enhance the fault resilience of neural networks | |
Zhao et al. | Applying chaos theory for runtime hardware Trojan detection | |
US11481522B2 (en) | Circuit configured to monitor a sensitive payload for attack detection | |
Köylü et al. | Exploiting PUF Variation to Detect Fault Injection Attacks | |
Ott et al. | Hardware performance counter enhanced watchdog for embedded software security | |
CN117457583B (zh) | 微粒器件、芯片、电子设备、芯片防护方法、装置及介质 |
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 |