CN106548098A - 用于检测故障攻击的方法和*** - Google Patents

用于检测故障攻击的方法和*** Download PDF

Info

Publication number
CN106548098A
CN106548098A CN201610806628.XA CN201610806628A CN106548098A CN 106548098 A CN106548098 A CN 106548098A CN 201610806628 A CN201610806628 A CN 201610806628A CN 106548098 A CN106548098 A CN 106548098A
Authority
CN
China
Prior art keywords
verification
coprocessor kernel
generation module
checksum value
sfr
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.)
Granted
Application number
CN201610806628.XA
Other languages
English (en)
Other versions
CN106548098B (zh
Inventor
塞巴斯蒂安·里乌
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of CN106548098A publication Critical patent/CN106548098A/zh
Application granted granted Critical
Publication of CN106548098B publication Critical patent/CN106548098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

在实施例中,公开一种用于检测故障攻击的集成电路(IC)装置。在该实施例中,该IC装置包括主CPU内核、耦合到该主CPU内核的存储器,以及包括校验和产生模块的协处理器内核,该协处理器内核耦合到该主CPU内核,其中该主CPU内核被配置成导引该协处理器内核处理来自该存储器的数据,并且该协处理器内核被配置成通过将内部信号馈送到该校验和产生模块而部分地处理该数据,并且其中该协处理器内核另外被配置成将由该校验和产生模块产生的校验和值传回到该主CPU内核。

Description

用于检测故障攻击的方法和***
技术领域
本申请涉及用于检测故障攻击的方法和***。
背景技术
当处理计算密集型代码时,硬件加速器可用于加速代码的计算,其速度超出通用处理器通常提供的速度。为了加速代码的计算,硬件加速器通常通过专门的处理器实施,该处理器与主计算机处理单元(computer processing unit,CPU)分离。专门的处理器可被优化成与主CPU上通常可能的效率相比更高效地(例如,多个计算并行)执行具体计算,并随后将计算结果传递回到主CPU,以用于进一步的计算。然而,因为计算结果在硬件加速器与主CPU之间传递,所以即使主CPU和硬件加速器两个都是安全的,但***(例如,主CPU和硬件加速器)仍可能经受故障攻击(例如,通过致使位改变或翻转来修改集成电路的行为的攻击)。
发明内容
在一个实施例中,公开一种用于检测故障攻击的集成电路(integrated circuit,IC)装置。在实施例中,IC装置包括主CPU内核、耦合到主CPU内核的存储器,以及包括校验和产生模块的协处理器内核,该协处理器内核耦合到主CPU内核,其中主CPU内核被配置成导引协处理器内核处理来自存储器的数据,并且协处理器内核被配置成通过将内部信号馈送到校验和产生模块而部分地处理数据,并且其中协处理器内核另外被配置成将由校验和产生模块产生的校验和值传回到主CPU内核。
在另一实施例中,主CPU内核被配置成在传回无效校验和值的情况下终止程序的执行。
在另一实施例中,协处理器内核另外被配置成当数据由协处理器内核处理时传回有效的校验和值。
在另一实施例中,协处理器内核具有特殊功能寄存器(special functionregister,SFR),其中存储校验和产生模块的***状态。
在另一实施例中,SFR被配置成在读取操作发生之后复位到默认值。
在另一实施例中,数据用于执行高级加密标准(advanced encryption standard,AES)函数,并且协处理器内核被配置成通过将控制路径和密钥排程路径馈送到校验和产生模块来执行AES函数。
在另一实施例中,控制路径和密钥排程路径单独地被馈送到校验和产生模块,并且协处理器内核被配置成将结果存储在分离的SFR中。
在另一实施例中,另外的故障检测模块耦合到校验和产生模块,并且来自另外的故障检测模块的错误信号可破坏由校验和产生模块产生的校验和值。
在第二实施例中,公开一种用于检测故障攻击的方法。在实施例中,方法包含将数据发送到协处理器内核以进行处理、接收从协处理器内核返回的结果和校验和值,以及在所传回的校验和值无效的情况下检测故障攻击。
在另一实施例中,方法另外包含在传回无效校验和的情况下暂停程序的执行。
在另一实施例中,当数据未由协处理器内核处理时,校验和无效。
在另一实施例中,发送到协处理器内核的数据用于AES函数,该数据包括控制路径和密钥排程路径。
在另一实施例中,由协处理器内核处理数据包含将数据馈送到校验和产生模块以产生校验和值;将所产生的校验和值存储在SFR中;将存储在SFR中的校验和值提供回到主CPU内核以用于进一步的处理;以及将SFR复位到默认值。
在另一实施例中,将控制路径馈送到校验和产生模块,该控制路径与密钥排程路径分离,并且由校验和产生模块产生的用于控制路径的值存储在第一SFR中,而由校验和产生模块产生的用于密钥排程路径的值存储在第二SFR中。
在另一实施例中,校验和值包括关于SFR存取的信息。
在另一实施例中,如果通过对目标地址与校验和值执行XOR而产生的地址并不对应于有效存储位置,那么校验和值无效。
在另一实施例中,如果通过对传回地址与某一值执行XOR而产生的地址并不对应于有效存储位置,那么校验和值无效,该值通过处理发送到协处理器内核的数据产生。
在第三实施例中,公开一种用于检测故障攻击的计算机实施***。在实施例中,***包括主CPU内核、协处理器内核,以及非暂时性计算机可读存储媒体,媒体存储指令,该指令当由主CPU内核执行时致使主CPU内核将存储在存储媒体中的用于执行AES函数的程序的数据发送到协处理器内核,以处理、接收从协处理器内核返回的结果和校验和值,以及在所传回校验和值无效的情况下检测故障攻击,其中当AES函数未由协处理器内核执行时,校验和值无效,且如果检测到故障攻击,那么终止程序的执行。
在另一实施例中,协处理器内核被配置成将用于执行AES函数的数据馈送到校验和产生模块以产生校验和值;将所产生的校验和值存储在SFR中;将存储在SFR中的校验和值提供回到主CPU内核以用于进一步的处理;以及将SFR复位到默认值。
在另一实施例中,馈送到校验和产生模块的数据包括控制路径和密钥排程路径,并且由校验和产生模块产生的用于控制路径的值存储在第一SFR中且由校验和产生模块产生的用于密钥排程路径的值存储在第二SFR中。
通过以下结合附图的详细描述,本发明的实施例的其它方面和优点将变得显而易见。
附图说明
图1是具有硬件加速器的集成电路(integrated circuit,IC)装置的框图。
图2是运行中的协处理器内核的框图。
图3是用于使用协处理器内核计算AES函数的方法的流程图。
图4是根据本发明的实施例的运行中的协处理器内核的框图。
图5是根据本发明的实施例的用于使用协处理器内核执行AES函数的方法的流程图。
图6是用于比较目标地址和降落点地址的方法的流程图。
图7是根据本发明的实施例的用于使用协处理器内核执行AES函数的可替换方法的流程图。
在整个说明书中,可以使用类似的附图标记来识别类似的元件。
具体实施方式
容易理解的是,如本文中大体描述且在附图中示出的实施例的组件可以用各种各样不同的配置来布置和设计。因此,以下如图中所表示的各种实施例的更详细描述并非意图限制本发明的范围,而仅仅是表示各种实施例。尽管在图式中呈现了实施例的各个方面,但是除非特别地说明,否则图式未必按比例绘制。
在不脱离本发明精神或基本特征的情况下,可以其它特定形式体现本发明。所描述的实施例应视为在所有方面均仅为说明性而非限制性的。因此,本发明的范围由所附权利要求书而不是由此详细描述来指示。在权利要求书等效物的含义和范围内的所有变化均涵盖在权利要求书的范围内。
贯穿本说明书对特性、优点或类似语言的参考并不暗示可以使用本发明实现的所有特性和优点应该在或在本发明的任何单一实施例中。实际上,参考所述特性和优点的语言应理解成意味着结合实施例描述的特定特性、优点或特征包括在本发明的至少一个实施例中。因此,贯穿本说明书对特性和优点的论述以及类似语言可以(但未必)参考同一实施例。
此外,本发明的所描述的特性、优点和特征可以任何合适方式在一个或多个实施例中组合。相关领域的技术人员将认识到,鉴于本文中的描述,本发明可在无特定实施例的特定特性或优点中的一个或多个特性或优点的情况下实践。在其它情况下,在某些实施例中可以认识到可能不存在于本发明的所有实施例中的额外的特征和优点。
贯穿本说明书对“一个实施例”、“实施例”或类似语言的参考意味着结合所指示实施例描述的特定特性、结构或特征包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在一个实施例中”、“在实施例中”和类似语言可以(但未必)全部参考同一实施例。
图1是具有硬件加速器的集成电路(integrated circuit,IC)装置100的框图。IC装置包括主计算机处理单元(computer processing unit,CPU)内核102、存储器104、输入/输出(I/O)接口106,以及协处理器内核108。处理器内的个别处理单元被称作内核。在实施例中,主CPU内核和协处理器内核位于同一芯片上,但是在其它实施例中可放置在不同的芯片上。在图1的例子中,主CPU内核是包括存储器保护单元(memory protection unit,MPU)和/或存储器管理单元(memory management unit,MMU)110的安全CPU内核。在运行时,主CPU内核处理来自I/O接口或来自存储器的指令,并传递数据到协处理器内核以进行处理。例如,其上使用高级加密标准(advanced encryption standard,AES)执行加密或解密的数据可被传递到协处理器内核。
图2是运行中的协处理器内核208的框图。在图2的例子中,协处理器内核被装备成执行AES加密和/或解密,并且包括加密模块212、解密模块214,以及密钥扩展模块216。在运行时,当主CPU内核将其上将执行AES加密/解密的数据传递到协处理器内核时,主CPU内核将密码(如果将执行解密)或明文220(如果将执行加密)以及密钥222传递到协处理器内核。因此,加密模块或解密模块被配置成加密明文或解密密码。密钥扩展模块被配置成在加密或解密过程中执行密钥排程(例如,给定密钥计算每一回合密钥排程的子密钥的密码算法)。协处理器内核随后将加密的密码或明文224传递回到主CPU内核以用于进一步的处理。
图3是用于使用协处理器内核(例如,相对于图2描述的协处理器内核)计算AES函数的方法的流程图。在框302处,将执行AES函数的请求发送到协处理器内核。在例子中,请求包括由主CPU内核发送到协处理器内核的密钥和密码或明文。在框304处,协处理器内核被配置成执行AES函数。在例子中,配置协处理器内核包含将值加载到寄存器中,以便将协处理器内核置于初始状态中。在正常运算中,在框306处,密钥(例如,具有框302处的请求的密钥)被加载到协处理器内核的一个(或多个)的寄存器中;在框308处,数据(例如,具有框302处的请求的密码或明文)被加载到一个(或多个)寄存器中;并且在框310处,协处理器内核执行AES函数。然而,主CPU内核无法确定这些函数是否已被正确地执行。实际上,在框312处,仅AES函数已被成功地或不成功地执行的指示符被传回到主CPU内核。因为仅指示符被传回到主CPU内核,所以主CPU内核无法肯定协处理器内核实际上已经执行AES函数,或攻击者尚未在防处理器内核中引起故障。因此,即使在具有安全主CPU内核和安全防处理器内核的***中,如果(例如)攻击使得成功的指示符传回到主CPU而未执行AES函数,那么安全性仍会受到威胁。
在实施例中,公开一种用于检测故障攻击的集成电路(integrated circuit,IC)装置。在实施例中,IC装置包括主CPU内核、耦合到主CPU内核的存储器,以及包括校验和产生模块的协处理器内核,该协处理器内核耦合到主CPU内核,其中主CPU内核被配置成导引协处理器内核处理来自存储器的数据,并且协处理器内核被配置成通过将内部信号馈送到校验和产生模块而部分地处理数据,并且其中协处理器内核另外被配置成将由校验和产生模块产生的校验和值传回到主CPU内核。在实施例中,仅在实际地处理数据(例如,实际地执行运算)的情况下校验和值才会有效,并且因此如果传回到主CPU内核的校验和值无效,那么主CPU内核可相应地终止程序的执行。
图4是根据本发明的实施例的运行中的协处理器内核408的框图。在图4的实施例中,协处理器内核被装备成执行AES加密和/或解密,并且包括加密模块412、解密模块414、密钥扩展模块416,以及校验和产生模块418。在运行时,当主CPU内核将其上将执行AES加密/解密的数据传递到协处理器内核时,传递到协处理器内核的数据包括密码(如果将执行解密)或明文420(如果将执行加密)以及密钥422。加密模块或解密模块用于相应地加密明文或解密密码,并且密钥扩展模块用于执行在加密或解密中使用的密钥排程。在实施例中,加密/解密模块的内部信号(例如,在加密/解密运算中的中间运算、***接口信号,或通过协处理器内核执行的其它运算)和密钥扩展模块两者都被馈送到校验和产生模块以产生校验和值。在实施例中,协处理器内核另外包括特殊功能寄存器(special functionregister,SFR)426,该特殊功能寄存器426经由SFR接口通过校验和产生模块存取以产生校验和值。校验和产生模块使用SFR以存储***状态,例如用于协处理器内核的后续计算或运算的中间结果,或校验和产生模块的当前状态。在实施例中,校验和产生模块的状态取决于校验和产生模块的先前状态和来自其它功能单元的信号(例如,SFR接口)。在实施例中,来自SFR接口的信号取决于软件实施,而来自其它功能单元的信号取决于密钥和硬件配置。在实施例中,校验和产生模块可计算若干个独立的校验和,而不是单个校验和,以便分离依赖性。例如,仅取决于密钥的校验和、仅取决于硬件配置的校验和,或取决于软件实施并独立于密钥的校验和。在实施例中,软件独立校验和可连同密钥从一个***传输到另一***上,独立于密钥的校验和可以被硬编码在软件中。一旦产生校验和值,协处理器内核就将加密的密码或明文424连同校验和值428传递回到主CPU以用于进一步的处理。
图5是根据本发明的实施例的用于使用协处理器内核执行AES函数的方法的流程图。在框502处,执行AES函数的请求被发送到协处理器内核。在例子中,请求包括由主CPU内核发送到协处理器内核的密钥和密码或明文。在框504处,协处理器内核将目标地址值设定成等于预先计算出的常量。在实施例中,预先计算出的常量通过对如由协处理器内核规格所确定的预期最终校验和以及预期初始校验和与某一地址执行XOR来计算,当AES函数完成时主CPU内核应在该地址处降落(例如,“降落点地址”)。在实施例中,降落点地址在程序的建立时间期间是固定的,在该建立时间内执行AES函数。例如,当编译程序时,降落点地址作为在AES函数地址之后的指令地址是固定的。在框506处,初始化协处理器内核。在实施例中,初始化协处理器内核包含将值加载到寄存器中,以便将协处理器内核置于初始状态中。协处理器内核开始执行AES函数,并且在框508处,协处理器内核将目标地址设定成等于目标地址与校验和值的XOR。在实施例中,校验和值是预期的初始校验和。因此,目标地址的值等于与降落点地址执行XOR的预期的最终校验和。在框510处,配置协处理器内核。在实施例中,通过建立用于运算的协处理器内核的参数(例如,算法、密钥长度、加密/解密模式等)来配置协处理器内核。在正常运算中,在框512处,密钥(例如,具有框502处的请求的密钥)被加载到协处理器内核的一个(或多个)寄存器中;在框514处,数据(例如,具有框502处的请求的密码或明文)被加载到一个(或多个)寄存器中;并且在框516处,协处理器内核执行AES函数。执行AES函数包含将内部信号(例如,AES函数的中间结果、***接口信号或通过协处理器内核执行的其它运算)和密钥排程馈送到校验和产生模块上,以反复地更新校验和值直至产生最终校验和值。因此,当处理AES函数和密钥排程时,最终校验和值取决于校验和值的每一更新,并且如果(例如)发生干扰AES函数或密钥排程的故障,那么最终校验和值将无效。在另一实施例中,至少部分地从关于SFR存取的信息产生最终校验和值。例如,如果出现SFR的额外存取(例如,由于攻击者的干扰),那么校验和值将是不正确的。在框518处,目标地址与最终校验和值执行XOR。如果正确地执行AES函数和密钥排程,那么最终校验和与预期的最终校验和应是相同的,并且对目标地址与最终校验和执行XOR将目标地址设定成等于降落点地址,而无效的最终校验和将很可能将目标地址设定成无效地址。作为另外的安全性的任选测量(如虚线所指示),在框520处,目标地址可与预期的降落地址比较,并且如果两个地址不相同,那么在框522处可能出现错误并可暂停程序的执行。在框518处已设定目标地址之后,在框524处程序跳转到目标地址,并且在框526处确认调用树完整性。在实施例中,通过与校验和产生模块或协处理器内核分离的另一个安全机制确认调用树完整性。
如上文在图5的框518处所描述,在跳转到目标地址之前,通过比较目标地址和降落点地址,可增加另外的安全性测量。图6是用于比较目标地址和降落点地址的方法的流程图。在框602处,迹线值被设定成等于与掩码执行XOR的目标地址。在实施例中,当编译程序时掩码是预先限定的。在决策点604处,确定迹线值是否等于预期的迹线值。在实施例中,当编译程序时确定预期的迹线值,并且预期的迹线值等于与掩码执行XOR的预先计算出的目标地址。如果迹线值不等于预期的迹线值,那么在框608处,“不相等”被传回到AES函数。如果迹线值等于预期的迹线值,那么在框606处,“相等”被传回到AES函数。在实施例中,如果“不相等”传回到AES函数,那么AES函数将产生错误,并且主CPU内核将终止程序。
在可替换的实施例中,可在执行AES函数的同时确认调用树完整性。此方法可以优于上文相对于图5所描述的技术,至少因为调用树完整性的同时确认可以检测到是否略过整个程序(例如,是否略过AES函数的执行),而相对于图5描述的技术可能无法检测该略过。图7是根据本发明的实施例的用于使用协处理器内核执行AES函数的可替换方法的流程图。在框702处,执行AES函数的请求被发送到协处理器内核。在例子中,请求包括由主CPU内核发送到协处理器内核的密钥和密码或明文。在框704处,协处理器内核将调用树状态值设定成等于与预先计算出的常量执行XOR的调用树状态的当前值。在实施例中,预先计算出的常量对预期的最终校验和、预期的初始校验和以及预期的进入调用树状态值与预期的离开调用树状态值执行XOR来计算。在实施例中,预期的最终校验和以及预期的初始校验和由协处理器内核规格确定,并且预期的进入调用树状态值和预期的离开调用树状态值在程序的建置时间期间预先计算出,在该建置时间内使用预期传回地址执行AES函数。在框706处,初始化协处理器内核。在实施例中,初始化协处理器内核包含将值加载到寄存器中以便将协处理器内核置于初始状态中。协处理器内核开始执行AES函数,并且在框708处,协处理器内核将调用树状态值设定成等于与校验和值执行XOR的调用树状态的当前值。在实施例中,校验和值是预期的初始校验和。因此,调用树状态的值被设定成等于与预期的离开调用树状态值执行XOR的预期的最终校验和的值。在框710处,配置协处理器内核。在实施例中,通过建立用于运算的协处理器内核的参数(例如,算法、密钥长度、加密/解密模式等)来配置协处理器内核。在正常运算中,在框712处,密钥(例如,具有框702处的请求的密钥)被加载到协处理器内核的一个(或多个)寄存器中;在框714处,数据(例如,具有框702处的请求的密码或明文)被加载到一个(或多个)寄存器中,并且在框716处,协处理器内核执行AES函数。在实施例中,执行AES函数包含将内部信号(例如,AES函数的中间结果、***接口信号,或通过协处理器内核执行的其它运算)和密钥排程馈送到校验和产生模块上,以反复地更新校验和值直至产生最终校验和值。因此,当处理AES函数和密钥排程时,最终校验和值取决于校验和值的每一更新,并且如果(例如)发生干扰AES函数或密钥排程的故障,那么最终校验和值将无效。在另一实施例中,至少部分地从关于SFR存取的信息产生最终校验和值。例如,如果出现SFR的另外存取(例如,由于攻击者的干扰),那么校验和值将是不正确的。在框718处,调用树状态值与最终校验和值执行XOR。如果正确地执行AES函数和密钥排程,那么最终校验和与预期的最终校验和应是相同的,并且对调用树状态值与最终校验和执行XOR将调用树状态设定成等于预期的离开调用树状态值,而无效的最终校验和将很可能将调用树状态值设定为不正确的调用树状态值。作为另外的安全性的任选测量(如虚线所指示),在框720处,调用树状态值可与预期的离开调用树状态值比较(例如,使用与相对于目标地址描述的图5的技术类似的技术),并且如果两个调用树状态值不相同,那么在框722处可能出现错误并可暂停程序的执行。在框718处已设定调用树状态值之后,程序将传回地址设定成等于与预期的传回地址(例如,用于计算预期的离开调用树状态值的地址)执行XOR的调用树状态值,并且在框726处,程序跳转到传回地址。因此,确认调用树完整性,因为如果保持调用树完整性,那么程序将跳转到有效地址并且如果调用树完整性受到威胁,那么程序将跳转到无效地址。
尽管以特定次序示出和描述了本文中的方法的操作,但是可以更改每一方法的操作次序,使得可以相反次序执行特定操作,或使得可以至少部分地与其它操作同时执行特定操作。在另一实施例中,可以间断的和/或交替的方式实施不同操作的指令或子操作。
还应注意,可以使用通过计算机执行的存储在计算机可用存储媒体上的软件指令实施所述方法的操作中的至少一些操作。举例来说,计算机程序产品的实施例包括存储计算机可读程序的计算机可用存储媒体,该计算机可读程序当在计算机上执行时使得计算机执行如本文所描述的操作。
此外,本发明的至少部分的实施例可以采用从计算机可用或计算机可读媒体可存取的计算机程序产品的形式,该计算机可用或计算机可读媒体提供程序代码用于由计算机或任何指令执行***使用或结合计算机或任何指令执行***使用。出于此描述的目的,计算机可用或计算机可读媒体可以是可含有、存储、传达、传播或传送由指令执行***、设备或装置使用或结合指令执行***、设备或装置使用的程序的任何设备。
计算机可用或计算机可读媒体可为电子、磁性、光学、电磁、红外或半导体***(或设备或装置),或传播媒体。计算机可读媒体的例子包括半导体或固态存储器、磁带、抽取式计算机磁盘、随机存取存储器(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、硬磁盘和光盘。光盘的当前例子包括具有只读存储器的压缩光盘(CD-ROM)、具有读/写的压缩光盘(CD-R/W)、数字视频光盘(digital video disc,DVD),以及蓝光光盘。
在以上描述中,提供各种实施例的具体细节。然而,可以在没有这些具体细节的全部细节的情况下实施一些实施例。在其它情况下,为了简洁和清晰起见,除了能够实现本发明的各种实施例的方法、程序、组件、结构和/或功能之外,不再详细描述某些方法、程序、组件、结构和/或功能。尽管本发明的实施例在上文描述为执行AES函数,但协处理器内核可被配置成实施上述技术,以用于例如数据加密标准(data encryption standard,DES)或安全散列算法(secure hash algorithm,SHA)的操作的其它确定性行为。
尽管已经描述和示出了本发明的具体实施例,但是本发明不限于如此描述和示出的部分的特定形式或布置。本发明的范围将由在此所附的权利要求书及其等效物限定。

Claims (20)

1.一种用于检测故障攻击的集成电路(IC)装置,其特征在于,所述IC装置包括:
主计算机处理单元(CPU)内核;
耦合到所述主CPU内核的存储器;以及
包括校验和产生模块的协处理器内核,所述协处理器内核耦合到所述主CPU内核;
其中所述主CPU内核被配置成导引所述协处理器内核处理来自所述存储器的数据,并且所述协处理器内核被配置成通过将内部信号馈送到所述校验和产生模块而部分地处理所述数据;并且
其中所述协处理器内核另外被配置成将由所述校验和产生模块产生的校验和值传回到所述主CPU内核。
2.根据权利要求1所述的IC装置,其特征在于,所述主CPU内核被配置成在传回无效校验和值的情况下终止程序的执行。
3.根据权利要求1所述的IC装置,其特征在于,所述协处理器内核另外被配置成当所述数据由所述防处理器内核处理时,传回有效的校验和值。
4.根据权利要求1所述的IC装置,其特征在于,所述协处理器内核具有特殊功能寄存器(SFR),其中存储所述校验和产生模块的***状态。
5.根据权利要求4所述的IC装置,其特征在于,所述SFR被配置成在读取操作发生之后复位到默认值。
6.根据权利要求1所述的IC装置,其特征在于,所述数据用于执行高级加密标准(AES)函数,并且所述协处理器内核被配置成通过将控制路径和密钥排程路径馈送到所述校验和产生模块而执行所述AES函数。
7.根据权利要求6所述的IC装置,其特征在于,所述控制路径和所述密钥排程路径单独地被馈送到所述校验和产生模块,并且所述协处理器内核被配置成将结果存储在分离的SFR中。
8.根据权利要求1所述的IC装置,其特征在于,另外的故障检测模块耦合到所述校验和产生模块,并且来自所述另外的故障检测模块的错误信号可能破坏由所述校验和产生模块产生的所述校验和值。
9.一种用于检测故障攻击的方法,其特征在于,所述方法包括:
将发送数据到协处理器内核以进行处理;
接收从所述协处理器内核返回的结果和校验和值;以及
在所述所传回的校验和值无效的情况下检测故障攻击。
10.根据权利要求9所述的方法,其特征在于,所述方法另外包括在传回无效校验和的情况下暂停程序的执行。
11.根据权利要求9所述的方法,其特征在于,当所述数据未由所述协处理器内核处理时,校验和无效。
12.根据权利要求9所述的方法,其特征在于,发送到所述协处理器内核的所述数据用于AES函数中,所述数据包括控制路径和密钥排程路径。
13.根据权利要求9所述的方法,其特征在于,由所述协处理器内核处理数据包括:
将所述数据馈送到校验和产生模块以产生校验和值;
将所述所产生的校验和值存储在SFR中;
将存储在所述SFR中的所述校验和值提供回到主CPU内核以用于进一步的处理;以及
将所述SFR复位到默认值。
14.根据权利要求13所述的方法,其特征在于,将控制路径馈送到所述校验和产生模块,所述控制路径与密钥排程路径分离,并且由所述校验和产生模块产生的用于所述控制路径的值存储在第一SFR中,而由所述校验和产生模块产生的用于所述密钥排程路径的值存储在第二SFR中。
15.根据权利要求13所述的方法,其特征在于,所述校验和值包括关于所述SFR存取的信息。
16.根据权利要求9所述的方法,其特征在于,如果通过对目标地址与校验和值执行XOR而产生的地址并不对应于有效存储位置,那么所述校验和值无效。
17.根据权利要求9所述的方法,其特征在于,如果通过对传回地址与某一值执行XOR而产生的地址并不对应于有效存储位置,那么校验和值无效,所述值通过处理发送到所述协处理器内核的所述数据产生。
18.一种用于检测故障攻击的计算机实施***,其特征在于,所述***包括:
主CPU内核;
协处理器内核;以及
非暂时性计算机可读存储媒体,所述媒体存储在由所述主CPU内核执行时致使所述主CPU内核进行以下操作的指令:
将存储在所述存储媒体中的用于执行AES函数的程序的数据发送到所述协处理器内核以进行处理;
接收从所述协处理器内核返回的结果和校验和值;以及
在所述所传回的校验和值无效的情况下检测故障攻击,其中当所述AES函数未由所述协处理器内核执行时,校验和值无效;以及
如果检测到故障攻击,那么终止所述程序的执行。
19.根据权利要求18所述的计算机实施***,其特征在于,所述协处理器内核被配置成:
将用于执行AES函数的所述数据馈送到校验和产生模块以产生校验和值;
将所述所产生的校验和值存储在SFR中;
将存储在所述SFR中的所述校验和值提供回到主CPU内核以用于进一步的处理;以及
将所述SFR复位到默认值。
20.根据权利要求19所述的计算机实施***,其特征在于,馈送到所述校验和产生模块的所述数据包括控制路径和密钥排程路径,并且由所述校验和产生模块产生的用于所述控制路径的值存储在第一SFR中,而由所述校验和产生模块产生的用于所述密钥排程路径的值存储在第二SFR中。
CN201610806628.XA 2015-09-21 2016-09-06 用于检测故障攻击的方法和*** Active CN106548098B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/860,619 2015-09-21
US14/860,619 US9929858B2 (en) 2015-09-21 2015-09-21 Method and system for detecting fault attacks

Publications (2)

Publication Number Publication Date
CN106548098A true CN106548098A (zh) 2017-03-29
CN106548098B CN106548098B (zh) 2021-10-01

Family

ID=56893740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610806628.XA Active CN106548098B (zh) 2015-09-21 2016-09-06 用于检测故障攻击的方法和***

Country Status (3)

Country Link
US (1) US9929858B2 (zh)
EP (1) EP3144923A1 (zh)
CN (1) CN106548098B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055409B2 (en) * 2019-01-06 2021-07-06 Nuvoton Technology Corporation Protected system
CN110502379B (zh) * 2019-08-16 2022-11-22 兆讯恒达科技股份有限公司 一种椭圆加密算法协处理器自检的方法
CN110502359B (zh) * 2019-08-16 2022-11-22 兆讯恒达科技股份有限公司 一种公开密钥密码算法协处理器自检的方法

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832207A (en) * 1995-07-20 1998-11-03 Dallas Semiconductor Corporation Secure module with microprocessor and co-processor
CN1342940A (zh) * 2000-09-06 2002-04-03 国际商业机器公司 到一个共享的协处理器资源的多个逻辑接口
US20020065998A1 (en) * 2000-11-30 2002-05-30 International Business Machines Corporation NUMA system with redundant main memory architecture
CN1545624A (zh) * 2001-07-26 2004-11-10 �Ҵ���˾ 防止“拒绝服务”攻击
CN1687905A (zh) * 2005-05-08 2005-10-26 华中科技大学 一种多片内操作***的智能卡
CN1808999A (zh) * 2006-02-23 2006-07-26 烽火通信科技股份有限公司 信号处理单元cpu故障的检测方法及装置
CN1812378A (zh) * 2006-03-03 2006-08-02 清华大学 基于网络处理器的流相关控制信息高速缓冲存储器
CN101382978A (zh) * 2008-10-30 2009-03-11 中国人民解放军国防科学技术大学 安全芯片中对旁路攻击进行早期预警的方法
CN102129592A (zh) * 2011-04-13 2011-07-20 胡建国 接触式智能卡
CN201917913U (zh) * 2011-01-19 2011-08-03 北京宝兴达信息技术有限公司 一种加密ic模块
CN201917914U (zh) * 2011-02-14 2011-08-03 凌科芯安科技(北京)有限公司 嵌入式加密芯片
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
US20120144244A1 (en) * 2010-12-07 2012-06-07 Yie-Fong Dan Single-event-upset controller wrapper that facilitates fault injection
CN102890622A (zh) * 2012-09-29 2013-01-23 无锡众志和达存储技术股份有限公司 一种基于协处理器的sata控制器
US20130159791A1 (en) * 2011-12-15 2013-06-20 Stmicroelectronics (Rousset) Sas Method and device for fault detection
CN104132663A (zh) * 2014-05-27 2014-11-05 北京遥测技术研究所 一种基于fpga的导航计算机协处理器
CN104298639A (zh) * 2014-09-23 2015-01-21 天津国芯科技有限公司 主处理器与若干协处理器的嵌入式连接方法及连接接口

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8005209B2 (en) 2005-01-06 2011-08-23 Polytechnic University Invariance based concurrent error detection for the advanced encryption standard
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
KR20090043823A (ko) 2007-10-30 2009-05-07 삼성전자주식회사 외부 공격을 감지할 수 있는 메모리 시스템
KR101537018B1 (ko) 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
FR2946787A1 (fr) 2009-06-16 2010-12-17 St Microelectronics Rousset Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant
EP2326042B1 (fr) 2009-11-18 2013-04-03 STMicroelectronics (Rousset) SAS Procédé de détection d'une attaque par injection de fautes
US8751822B2 (en) * 2010-12-20 2014-06-10 Motorola Mobility Llc Cryptography using quasigroups
KR101977772B1 (ko) 2012-07-12 2019-05-13 삼성전자주식회사 데이터 처리 장치 및 이를 포함하는 보안 메모리 장치
JP5954872B2 (ja) 2012-09-20 2016-07-20 ルネサスエレクトロニクス株式会社 半導体集積回路
US9264516B2 (en) * 2012-12-28 2016-02-16 Wandisco, Inc. Methods, devices and systems enabling a secure and authorized induction of a node into a group of nodes in a distributed computing environment

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832207A (en) * 1995-07-20 1998-11-03 Dallas Semiconductor Corporation Secure module with microprocessor and co-processor
CN1342940A (zh) * 2000-09-06 2002-04-03 国际商业机器公司 到一个共享的协处理器资源的多个逻辑接口
US20020065998A1 (en) * 2000-11-30 2002-05-30 International Business Machines Corporation NUMA system with redundant main memory architecture
CN1545624A (zh) * 2001-07-26 2004-11-10 �Ҵ���˾ 防止“拒绝服务”攻击
CN1687905A (zh) * 2005-05-08 2005-10-26 华中科技大学 一种多片内操作***的智能卡
CN1808999A (zh) * 2006-02-23 2006-07-26 烽火通信科技股份有限公司 信号处理单元cpu故障的检测方法及装置
CN1812378A (zh) * 2006-03-03 2006-08-02 清华大学 基于网络处理器的流相关控制信息高速缓冲存储器
CN101382978A (zh) * 2008-10-30 2009-03-11 中国人民解放军国防科学技术大学 安全芯片中对旁路攻击进行早期预警的方法
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
US20120144244A1 (en) * 2010-12-07 2012-06-07 Yie-Fong Dan Single-event-upset controller wrapper that facilitates fault injection
CN201917913U (zh) * 2011-01-19 2011-08-03 北京宝兴达信息技术有限公司 一种加密ic模块
CN201917914U (zh) * 2011-02-14 2011-08-03 凌科芯安科技(北京)有限公司 嵌入式加密芯片
CN102129592A (zh) * 2011-04-13 2011-07-20 胡建国 接触式智能卡
US20130159791A1 (en) * 2011-12-15 2013-06-20 Stmicroelectronics (Rousset) Sas Method and device for fault detection
CN102890622A (zh) * 2012-09-29 2013-01-23 无锡众志和达存储技术股份有限公司 一种基于协处理器的sata控制器
CN104132663A (zh) * 2014-05-27 2014-11-05 北京遥测技术研究所 一种基于fpga的导航计算机协处理器
CN104298639A (zh) * 2014-09-23 2015-01-21 天津国芯科技有限公司 主处理器与若干协处理器的嵌入式连接方法及连接接口

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AMILA AKAGIC 等: "A study of adaptable co-processors for Cyclic Redundancy Check on an FPGA", 《 2012 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY》 *
H. BAR-EL 等: "The Sorcerer"s Apprentice Guide to Fault Attacks", 《 PROCEEDINGS OF THE IEEE》 *
孟璟 等: "可信平台模块TPM安全芯片的性能测试", 《电子测试》 *

Also Published As

Publication number Publication date
EP3144923A1 (en) 2017-03-22
CN106548098B (zh) 2021-10-01
US9929858B2 (en) 2018-03-27
US20170085369A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
KR101702545B1 (ko) 데이터 인증방법 및 그 장치
JP5996804B2 (ja) ウェブページ又はウェブブラウザアプリケーションのウェブオブジェクトへのアクセスを制御するためのデバイス、方法及びシステム
US20170288869A1 (en) Secure key storage using physically unclonable functions
CN103502992B (zh) 用于防篡改引导的***和方法
JP5775738B2 (ja) 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
CN107851163A (zh) 用于i/o数据的完整性、防重放和真实性保证的技术
CN107851161A (zh) 对具有dma能力的i/o控制器的i/o数据进行密码保护
CN108055133A (zh) 一种基于区块链技术的密钥安全签名方法
EP3316160A1 (en) Authentication method and apparatus for reinforced software
CN110825672B (zh) 用于联机加密处理的高性能自主硬件引擎
CN109960903A (zh) 一种应用加固的方法、装置、电子设备及存储介质
US9959403B2 (en) Information processing system for mutual authentication between communication device and storage
CN106547648A (zh) 一种备份数据处理方法及装置
CN111435396A (zh) 智能安全主控
CN107659402A (zh) 一种数字加密货币的交易数据签名方法、装置及介质
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
CN106548098A (zh) 用于检测故障攻击的方法和***
US20130191641A1 (en) Captcha (completely automated public test to tell computers and humans apart) data generation methods and related data management systems and computer program products thereof
US8738919B2 (en) Control of the integrity of a memory external to a microprocessor
EP2232397B1 (en) Secure data utilization
US20110225634A1 (en) CAPTCHA (Completely Automated Public Test to Tell Computers and Humans Apart) Data Generation Methods and Related Data Management Systems and Computer Program Products Thereof
US11824977B2 (en) Data processing system and method
US11809610B2 (en) Hardware protection of inline cryptographic processor
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及***
US9652232B2 (en) Data processing arrangement and method for data processing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant