CN112559236B - 加密运算处理器芯片的故障检测方法及装置 - Google Patents

加密运算处理器芯片的故障检测方法及装置 Download PDF

Info

Publication number
CN112559236B
CN112559236B CN202110176182.8A CN202110176182A CN112559236B CN 112559236 B CN112559236 B CN 112559236B CN 202110176182 A CN202110176182 A CN 202110176182A CN 112559236 B CN112559236 B CN 112559236B
Authority
CN
China
Prior art keywords
chip
encryption
fault
descriptor
attacked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110176182.8A
Other languages
English (en)
Other versions
CN112559236A (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.)
Zhejiang Geoforcechip Technology Co Ltd
Original Assignee
Zhejiang Geoforcechip Technology Co Ltd
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 Zhejiang Geoforcechip Technology Co Ltd filed Critical Zhejiang Geoforcechip Technology Co Ltd
Priority to CN202110176182.8A priority Critical patent/CN112559236B/zh
Publication of CN112559236A publication Critical patent/CN112559236A/zh
Application granted granted Critical
Publication of CN112559236B publication Critical patent/CN112559236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/72Protecting 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 cryptographic circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了加密运算处理器芯片的故障检测方法及装置,该方法对芯片的环境状态和工作状态进行检测得到状态参数,将状态参数与相应的参数阈值进行比较,在状态参数未满足相应参数阈值时判定芯片受到故障攻击;以及对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击;最后在判定芯片受到故障攻击时发出报警并中断芯片的运算任务。该方法能够及时判断出芯片当前是否正在受到故障攻击,并立即停止芯片加密任务的运行,及时实现异常中断,并及时避免与密文和密钥相关的信息发生泄露,避免被攻击者进一步实施破解。

Description

加密运算处理器芯片的故障检测方法及装置
技术领域
本申请涉及数据加密技术领域,特别涉及加密运算处理器芯片的故障检测方法及装置。
背景技术
数据保密是数据通信领域里经常需要用到的一个功能,通过对通信过程中收发的数据利用加密算法进行预先加密,保证数据在传输时不会受到第三方的恶意破解、截取和篡改,保证数据的真实有效性和保密性。
故障攻击法是一种破解加密运算处理器芯片(以下简称加密芯片)内置的密钥的方法,该方法的攻击手段主要分为物理攻击和电子攻击两类,其中,物理攻击通过物理破坏加密芯片外部结构达成攻击目的,例如破坏芯片的塑料层和树脂层,使得掩膜层暴露出来,再用探针来进行数据探测实现内部数据的获取;电子攻击通过施加异常电压、不规则时钟脉冲的电信号来诱导加密芯片内部与密钥相关的寄存器的某些位发生故障,进而产生错误密文,然后通过分析错误的密文输出和正确密文输出的差异,实现对密钥的破解。
因此,目前亟需一种能够及时检测到加密芯片受到故障攻击并避免密文和密钥信息泄露的检测方法。
发明内容
基于此,为了能够及时对芯片是否受到故障攻击进行检测,避免与密文和密钥相关的信息发生泄露,本申请公开了以下技术方案。
一方面,提供了一种加密运算处理器芯片的故障检测方法,包括:
对芯片的环境状态和工作状态进行检测得到状态参数,将所述状态参数与相应的参数阈值进行比较,在所述状态参数未满足相应参数阈值时判定芯片受到故障攻击;
对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与所述执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击;
在判定所述芯片受到故障攻击时发出报警并中断芯片的运算任务。
在一种可能的实施方式中,该方法还包括故障数据存储及报文生成步骤,所述故障数据存储及报文生成步骤包括:
依据地址指针从存储器中预先划分出的描述符存储区中获取首位的可用描述符;
获取所述可用描述符的地址字段所记录的数据存储地址,将获得的芯片的故障检测数据写入该数据存储地址对应的存储位置中,其中,所述故障检测数据包括:所述状态参数、所述状态参数与参数阈值的比较结果、所述解密运算后得到的信息和所述匹配度的信息;
从所述故障检测数据中提取出故障信息,将所述故障信息写入所述可用描述符的描述字段,并将该可用描述符变更为已用描述符;
对所述地址指针进行更新,更新后的地址指针指向所述描述符存储区中的下一个可用描述符;
依据各所述已用描述符的描述字段的存储内容和地址字段对应的数据存储地址的存储内容形成故障报文。
在一种可能的实施方式中,所述被执行加密运算后形成的运算结果包括加密完成后得到的密文,和/或加密过程中生成的中间运算结果。
在一种可能的实施方式中,该方法还包括第一故障检测判定步骤,所述第一故障检测判定步骤包括:
从芯片的多轮次加密运算中选择至少部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个异或运算步骤,在该异或运算步骤完成后,先将该异或运算步骤的输入和输出进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
在一种可能的实施方式中,该方法还包括第二故障检测判定步骤,所述第二故障检测判定步骤包括:
从芯片的多轮次加密运算中选择部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个可逆运算步骤,在该可逆运算步骤完成后,先对该可逆运算步骤进行求逆运算,并对该可逆运算步骤的输入和该求逆运算的运算结果进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
在一种可能的实施方式中,所述环境状态包括:光照程度,和/或磁场,和/或环境温度。
在一种可能的实施方式中,所述工作状态包括:供电电压,和/或工作频率。
另一方面,还提供了一种加密运算处理器芯片的故障检测装置,包括:
状态检测模块,用于对芯片的环境状态和工作状态进行检测得到状态参数,将所述状态参数与相应的参数阈值进行比较,在所述状态参数未满足相应参数阈值时判定芯片受到故障攻击;
试解密模块,用于对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与所述执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击;
任务中断报警模块,用于在判定所述芯片受到故障攻击时发出报警并中断芯片的运算任务。
在一种可能的实施方式中,该装置还包括故障数据存储模块,用于实施以下步骤:
依据地址指针从存储器中预先划分出的描述符存储区中获取首位的可用描述符;
获取所述可用描述符的地址字段所记录的数据存储地址,将获得的芯片的故障检测数据写入该数据存储地址对应的存储位置中,其中,所述故障检测数据包括:所述状态参数、所述状态参数与参数阈值的比较结果、所述解密运算后得到的信息和所述匹配度的信息;
从所述故障检测数据中提取出故障信息,将所述故障信息写入所述可用描述符的描述字段,并将该可用描述符变更为已用描述符;
对所述地址指针进行更新,更新后的地址指针指向所述描述符存储区中的下一个可用描述符;
该装置还包括故障报文生成模块,用于依据各所述已用描述符的描述字段的存储内容和地址字段对应的数据存储地址的存储内容形成故障报文。
在一种可能的实施方式中,所述被执行加密运算后形成的运算结果包括加密完成后得到的密文,和/或加密过程中生成的中间运算结果。
在一种可能的实施方式中,该装置还包括:
第一故障检测判定模块,用于从芯片的多轮次加密运算中选择至少部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个异或运算步骤,在该异或运算步骤完成后,先将该异或运算步骤的输入和输出进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
在一种可能的实施方式中,该装置还包括:
第二故障检测判定模块,用于从芯片的多轮次加密运算中选择部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个可逆运算步骤,在该可逆运算步骤完成后,先对该可逆运算步骤进行求逆运算,并对该可逆运算步骤的输入和该求逆运算的运算结果进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
在一种可能的实施方式中,所述状态检测模块包括:光照程度检测电路,和/或磁场检测电路,和/或环境温度检测电路;所述环境状态包括:光照程度,和/或磁场,和/或环境温度;
在一种可能的实施方式中,所述状态检测模块包括:供电电压检测电路,和/或工作频率检测电路;所述工作状态包括:供电电压,和/或工作频率。
本申请公开的加密运算处理器芯片的故障检测方法及装置,能够对芯片进行环境状态和工作状态的检测,以及在芯片加密时对形成的中间运算数据和生成的密文进行立即试解密,便于加密芯片正确感知和判断自身状态,更好地协调各模块以及加密运算器的工作,并通过对检测结果和试解密结果与芯片未受故障攻击时的正常状态和结果进行比较,能够及时判断出芯片当前是否正在受到故障攻击,并立即停止芯片加密任务的运行,及时实现异常中断,并及时避免与密文和密钥相关的信息发生泄露,避免被攻击者进一步实施破解。
附图说明
以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而不能理解为对本申请的保护范围的限制。
图1是本申请公开的加密运算处理器芯片的故障检测方法实施例的流程示意图。
图2是本申请公开的加密运算处理器芯片的故障检测装置的结构框图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。
下面参考图1详细描述本申请公开的加密运算处理器芯片的故障检测方法实施例。如图1所示,本实施例公开的方法包括如下步骤。
步骤A,对芯片的环境状态和工作状态进行检测得到状态参数,将状态参数与相应的参数阈值进行比较,在状态参数未满足相应参数阈值时判定芯片受到故障攻击。
芯片可以内置或外置有状态检测模块,状态检测模块负责对芯片的环境状态和工作状态进行实时检测,生成的检测结果即为状态参数。由于检测的方面可以有多种,因此得到的状态参数也包含了多种不同类型的参数,例如温度参数、电压参数等等,与这些参数对应的状态检测模块所包含的部分就是温度检测电路、工作电压检测电路等等。对于不同类型的状态参数,检测装置会预先设有相应类型的参数阈值,参数阈值是依据芯片被认为受到故障攻击时所处的环境状态和工作状态的临界值而设定的,也就是芯片刚好能够满足被故障攻击的情况时环境状态和工作状态的数值,若状态参数超出了相应的参数阈值,则说明芯片可以被认为是受到了故障攻击,因此检测装置做出芯片受到故障攻击的判定,或者芯片做出自身受到故障攻击的判定。
步骤B,对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击。
芯片可以内置或外置有试解密模块,芯片的加密运算由芯片的加密运算器负责执行,而在加密运算器将一段明文加密得到密文后,或者在将明文加密过程中发生的加密运算步骤得到中间变量后,试解密模块对加密运算器生成的被加密后的运算结果(密文、中间变量或其他种类的被加密运算后得到的运算结果)进行试解密,也就是先自行对自身刚执行完加密的数据进行解密,得到解密明文。
若芯片在加密过程中受到故障攻击,则芯片在进行加密运算时会生成错误的加密数据,最终得到的密文也会是错误密文,因此试解密模块对中间运算结果和最终生成密文进行解密时,得到的明文就会与原始输入的正确的明文不同,也就是说两者不会是完全匹配。因此,可以通过使芯片在加密过程中对生成的中间数据进行立即试解密以及在加密完成后对得到的密文进行立即试解密,并将其与正确的解密数据(未执行此步加密之前的输入数据)进行匹配度分析,来判断芯片是否受到故障攻击。
匹配阈值是判断执行加密运算前和执行加密运算后数据之间的不相似程度是否足以被认为芯片受到故障攻击的数值,可以将匹配阈值设置为100%匹配或其他极高的匹配度。
步骤C,在判定芯片受到故障攻击时发出报警并中断芯片的运算任务。
步骤A和步骤B中分别采用了通过检测环境工作状态和通过自行试解密来判断芯片是否受到攻击,而若任一步骤判定了芯片此时正在受到故障攻击,则芯片的任务中断报警模块立即中断当前的加密运算任务并报警,以避免芯片受故障诱导而输出密文,避免密钥泄露。可以理解的是,步骤A和步骤B之间并无执行上的先后顺序,也不存在依赖关系,两者是同步执行的。
本实施例能够对芯片进行环境状态和工作状态的检测,以及在芯片加密时对形成的中间运算数据和生成的密文进行立即试解密,便于加密芯片正确感知和判断自身状态,更好地协调各模块以及加密运算器的工作,并通过对检测结果和试解密结果与芯片未受故障攻击时的正常状态和结果进行比较,能够及时判断出芯片当前是否正在受到故障攻击,并立即停止芯片加密任务的运行,及时实现异常中断,并及时避免与密文和密钥相关的信息发生泄露,避免被攻击者进一步实施破解。
芯片通过设置状态检测模块和试解密模块来进行故障攻击判断,而该过程中会涉及检测数据和解密数据的传输、分析和整合,而由于芯片通常具有较高的集成性,状态检测模块、试解密模块也均可以集成于芯片内,因此芯片的内部空间和功耗均会有一定的限制。为了提高包括该两个模块和加密运算器在内的芯片组成部分之间的数据传输实时性和简洁性,减少交互、同步、协调的成本,同时提高整合数据的可用性,使数据能够直接由加密芯片输出至外界以全面反映加密芯片的状态,便于给使用加密芯片的电子设备参考,在一种实施方式中,该方法还包括故障数据存储及报文生成步骤,该故障数据存储及报文生成步骤包括以下步骤10至步骤50。
步骤10,依据地址指针从存储器中预先划分出的描述符存储区中获取首位的可用描述符。
在实施本申请的故障检测方法之前,先在加密芯片的随机存取存储器RAM 中预先划分出一定容量的存储空间作为描述符存储区,描述符存储区中预存一定数量的描述符,描述符用于实现状态检测模块和试解密模块在实施过程中生成数据的存储,以及故障攻击判断结果的存储。描述符分为可用描述符和已用描述符,其中,可用描述符为还未被存储故障攻击检测及结果数据的描述符,已用描述符未已经存储有故障攻击检测及结果数据的描述符。在实施本申请的故障检测方法之前,加密芯片会将描述符存储区的RAM地址指针发送给各模块,使得各模块获取到首位可用描述符的地址。
步骤20,获取可用描述符的地址字段所记录的数据存储地址,将获得的芯片的故障检测数据写入该数据存储地址对应的存储位置中,其中,故障检测数据包括:状态检测模块得到的状态参数、状态参数与参数阈值的比较结果,试解密模块解密运算后得到的信息、匹配度的信息。
描述符包括地址字段,地址字段用于记录数据存储地址,数据存储地址则用于存储故障检测数据。状态检测模块检测得到的状态参数,以及将状态参数与相应的参数阈值进行比较后得到的比较结果,均为故障检测数据;试解密模块对被执行加密运算后形成的运算结果进行解密运算后得到的解密结果,以及解密结果与加密前的原信息的匹配度数据,同样均为故障检测数据;故障检测数据还可以包括两模块的故障攻击判定结果。
当状态检测模块或试解密模块得到或生成故障检测数据后,则该模块根据上述RAM地址指针,从RAM的描述符存储区中读取到当前排位最前的可用描述符,并依据该可用描述符的地址字段获取到相应的数据存储地址,将故障检测数据写入该数据存储地址。
可以理解的是,描述符的地址字段的内容不会因为描述符是可用描述符还是已用描述符而改变,地址字段存储的只是一个数据存储地址,而数据存储地址的内容则会因为描述符是可用描述符还是已用描述符而改变,因为已用描述符对应的数据存储地址内存储有有效数据,而可用描述符对应的数据存储地址内存储的是无效数据或为空。
步骤30,从故障检测数据中提取出故障信息,将故障信息写入可用描述符的描述字段,并将该可用描述符变更为已用描述符。
描述符还包括描述字段,所有可用描述符的描述字段的内容可以预先全部预置为0。当状态检测模块或试解密模块得到或生成故障检测数据后,还会从本次故障检测数据中分析提取出故障信息,故障信息是描述本次故障检测和故障判断的特征信息,可以包括:故障检测数据的数据长度,故障检测数据中的比较结果和计算结果距离正确结果的偏差程度,故障检测数据应被加密芯片反馈至的外部装置的信息(名称、地址、ID等),故障检测数据的优先级,故障检测数据的故障攻击判定结果,故障检测数据是否产生报警,等等。
当完成描述字段的内容生成及内容写入时,步骤20也已经处于完成状态,因此芯片会将该被写入的可用描述符的状态从可用变更为已用,成为已用描述符。具体的状态变更方式可以是:在描述符中设置一个读写标志位,0代表可用,1代表已用,通过改变该读写标志位的数值来变更该描述符的状态。加密芯片可以定期识别并清理已经失效的已用描述符,将其进行内容清空并生成新的可用描述符。
需要说明的是,在步骤A和步骤B的执行过程中,状态检测模块和试解密模块可以在生成故障检测数据的同时立即按照RAM地址指针存储到可用描述符D1中,而步骤A的状态参数与参数阈值的比较以及步骤B中的匹配度计算,其比较和计算过程所需的输入数据均可以从刚被实施存储的可用描述符D1中读取,得到的比较结果和计算结果作为故障检测数据继续存储到该可用描述符D1中;而步骤A和步骤B中的判断芯片是否受到攻击步骤,其判断所需的输入数据也可以从刚被实施存储的可用描述符D1中读取,进而得出判定结果,该判定结果可以直接作为故障信息中的上述“故障检测数据的故障攻击判定结果”存入可用描述符D1的描述字段,之后可用描述符变为已用描述符。
另外,步骤C中的“在判定芯片受到故障攻击时”的依据,也可以是依据从可用描述符D1中读取出的故障检测数据中包含的故障攻击判定结果来确定的。也就是说,状态检测模块和试解密模块产生的所有的状态数据、运算数据和结果数据,均可以是先进行存储(先存储到可用描述符中),再进行数据利用(再进行故障信息的提取),而任务中断报警模块也可以是先从存储位置读取数据(读取可用描述符的数据),然后再确定是否需要任务中断及报警。
步骤40,对地址指针进行更新,更新后的地址指针指向描述符存储区中的下一个可用描述符。
通过步骤10至步骤30完成了对当前首位的可用描述符的写入并将其变为已用描述符,此时需要将RAM地址指针进行更新,使其指向新的首位的可用描述符作为当前首位的可用描述符,此时芯片可以将新的RAM地址指针发送至状态检测模块和试解密模块,使得之后再存储新的故障检测数据时能够指向可用描述符而不是已用描述符。
步骤50,依据各已用描述符的描述字段的存储内容和地址字段对应的数据存储地址的存储内容形成故障报文。
状态检测模块和试解密模块实时对芯片的运行进行着检测和运算,任务中断报警模块也实时监测着故障判定结果,随着芯片的运行,存储的故障检测数据随之增加,而与芯片有业务关联性的其他外部装置(不属于芯片架构内但与其通信连接的装置)则有可能需要利用到芯片的故障检测数据,以便于定期生成故障报告、随芯片的任务中断而触发特定的程序和运行模式等等,因此芯片的故障报文生成模块会实时或按照设定周期读取已用描述符存储的故障检测数据并据此生成故障报文,由芯片的通信模块发送给有业务相关性的其他外部装置。
通过以上步骤10至步骤50,同时实现了故障检测数据的传输、汇总和报文的产生发送,降低了交互量,避免了芯片内部各个模块之间建立复杂的协调同步机制,软硬件结构都得到了简化。
在一种实施方式中,步骤B中的被执行加密运算后形成的运算结果包括:加密完成后得到的密文,和/或加密过程中生成的中间运算结果。
试解密模块可以分别应用于整体算法级别下和/或轮次加密级别下。具体的,在试解密模块应用于整体算法级别时,是在明文整体加密完并得到密文后,对密文进行解密,然后计算解密后的明文与原始明文的匹配度;在试解密模块应用于轮次加密级别时,是在部分或全部的加密轮次之后,将该轮加密结果进行解密,然后计算解密后得到的数据与该轮次加密实施之前的输入数据的匹配度。
为了进一步增加故障攻击检测的方式,提高故障攻击检测的多样性,以进一步增加芯片运算的防故障攻击强度,进一步避免密文和密钥信息泄露,在一种实施方式中,该方法包括可以实施于芯片加密运算处理器的加密过程中的第一故障检测判定步骤,以及可以包括同样实施于芯片加密运算处理器的加密过程中第二故障检测判定步骤。
其中,第一故障检测判定步骤包括:从芯片的多轮次加密运算中选择至少部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个异或运算步骤,在该异或运算步骤完成后,先将该异或运算步骤的输入和输出进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
由于芯片的加密通常都是采用多轮次的加密算法,以AES加密算法的10轮加密为例,由于采用的加密算法在实施加密前必然是已知的,因此实施第一故障检测判定步骤的第一故障检测判定模块可以预先从10轮加密中选择一些轮次,或者选择全部轮次,然后在实施到选中轮次的加密运算时,由于每轮次的加密均会分为多个运算步骤来实施,而每个步骤的算式不同,因此从中选择一个最外侧运算只包含异或运算的运算步骤,也就是该算式以异或运算为最后运算来完成该运算步骤。例如运算步骤S1为y=x1⊕(x2*x3) ⊕x4,则在步骤S1之后,并且在按序执行下一运算步骤S2之前,先对步骤S1进行故障检测验算,验算方式为,将其输入“x1⊕(x2*x3) ⊕x4”和输出“y”进行异或运算,也就是计算x1⊕(x2*x3)⊕x4⊕y。若未受到故障攻击,则运算结果应为0值,这表示输入与输出是相同的,也即运算结果正确;但若运算结果为非0值,说明运算结果错误,以此判断出芯片受到故障攻击。在选中轮次的选中步骤中均进行上述验算步骤,实现在运算过程中及时发现故障攻击。
可以理解的是,第一故障检测判定步骤与试解密模块的不同在于,第一故障检测判定步骤采用的是常规运算而不是非解密方式进行的故障判定,以及其只能对中间运算步骤进行故障攻击识别而不能对最终密文等结果进行故障攻击识别。
第二故障检测判定步骤包括:从芯片的多轮次加密运算中选择部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个可逆运算步骤,在该可逆运算步骤完成后,先对该可逆运算步骤进行求逆运算,并对该可逆运算步骤的输入和该求逆运算的运算结果进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
第二故障检测判定步骤与第一故障检测判定步骤的区别在于,实施第二故障检测判定步骤的第二故障检测判定模块在选中轮次中选择的步骤对象不是以异或运算为最外侧运算的步骤,而是以可逆运算为最外侧运算的步骤。可逆运算例如可以是多次异或运算或移位运算等,其特点是可以反向进行求逆得到原结果,例如左移n位后可以再右移n位进行求逆得到原顺位。由于求逆结果应当与该可逆运算步骤的输入相同,因此同样可以通过将两者进行异或来进行故障攻击检测。例如将二进制数0101实施循环左移1位的运算后得到1010,然后对其实施循环右移1位的求逆运算后再次得到0101,则说明未受到故障攻击,加密运算处理器可以继续进行后续的加密运算步骤。
可以理解的是,状态检测模块实施于全部时间,试解密模块实施于选中的运算步骤之后或生成密文之后,上述两个故障检测判定步骤是实施于选中的运算步骤之后。
在一种实施方式中,状态检测模块检测的环境状态包括:光照程度,和/或磁场,和/或环境温度。具体的,状态检测模块可以包括光照程度检测电路,磁场检测电路,环境温度检测电路等电路。其中,光照程度检测电路可以用于检测光强度,或者检测紫外线,或者检测其他与光因素相关的状态,若光强度或紫外线强度超过设定阈值则说明芯片被物理攻击,因此判定芯片受到故障攻击;磁场和温度同理,均是通过检测外部磁场和外部温度,来判断是否有攻击者利用改变磁场带来的影响进行故障攻击,或者在故障攻击时附带产生了温度变化进而识别出故障攻击的发生。
在一种实施方式中,状态检测模块检测的工作状态包括:供电电压,和/或工作频率。具体的,状态检测模块可以包括供电电压检测电路,工作频率检测电路等电路。其中,供电电压检测电路用于检测芯片的供电电压,工作频率检测电路用于检测芯片的运行频率,由于攻击者在进行故障攻击时,其攻击方式可能会导致芯片的运行电压、运行频率发生不正常改变,甚至直接通过正面影响芯片的运行电压、运行频率进行故障攻击,因此若供电电压或工作频率超过设定阈值则说明芯片被电子攻击,因此判定芯片受到故障攻击。
下面参考图2详细描述本申请公开的加密运算处理器芯片的故障检测装置实施例。本实施例提供的装置为用于实施前述故障检测方法实施例的装置。如图2所示,本实施例公开的装置主要包括有:
状态检测模块,用于对芯片的环境状态和工作状态进行检测得到状态参数,将所述状态参数与相应的参数阈值进行比较,在所述状态参数未满足相应参数阈值时判定芯片受到故障攻击;
试解密模块,用于对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与所述执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击;
任务中断报警模块,用于在判定所述芯片受到故障攻击时发出报警并中断芯片的运算任务。
在一种实施方式中,该装置还包括故障数据存储模块,用于实施以下步骤:
依据地址指针从存储器中预先划分出的描述符存储区中获取首位的可用描述符;
获取所述可用描述符的地址字段所记录的数据存储地址,将获得的芯片的故障检测数据写入该数据存储地址对应的存储位置中,其中,所述故障检测数据包括:所述状态参数、所述状态参数与参数阈值的比较结果、所述解密运算后得到的信息和所述匹配度的信息;
从所述故障检测数据中提取出故障信息,将所述故障信息写入所述可用描述符的描述字段,并将该可用描述符变更为已用描述符;
对所述地址指针进行更新,更新后的地址指针指向所述描述符存储区中的下一个可用描述符;
该装置还包括故障报文生成模块,用于依据各所述已用描述符的描述字段的存储内容和地址字段对应的数据存储地址的存储内容形成故障报文。
在一种实施方式中,所述被执行加密运算后形成的运算结果包括加密完成后得到的密文,和/或加密过程中生成的中间运算结果。
在一种实施方式中,该装置还包括:
第一故障检测判定模块,用于从芯片的多轮次加密运算中选择至少部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个异或运算步骤,在该异或运算步骤完成后,先将该异或运算步骤的输入和输出进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
在一种实施方式中,该装置还包括:
第二故障检测判定模块,用于从芯片的多轮次加密运算中选择部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个可逆运算步骤,在该可逆运算步骤完成后,先对该可逆运算步骤进行求逆运算,并对该可逆运算步骤的输入和该求逆运算的运算结果进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
在一种实施方式中,所述状态检测模块包括:光照程度检测电路,和/或磁场检测电路,和/或环境温度检测电路;所述环境状态包括:光照程度,和/或磁场,和/或环境温度;
在一种实施方式中,所述状态检测模块包括:供电电压检测电路,和/或工作频率检测电路;所述工作状态包括:供电电压,和/或工作频率。
在本文中,“第一”、“第二”等仅用于彼此的区分,而非表示它们的重要程度及顺序等。
本文中的模块、单元或组件的划分仅仅是一种逻辑功能的划分,在实际实现时可以有其他的划分方式,例如多个模块和/或单元可以结合或集成于另一个装置中。作为分离部件说明的模块、单元、组件在物理上可以是分开的,也可以是不分开的。作为单元显示的部件可以是物理单元,也可以不是物理单元,即可以位于一个具体地方,也可以分布到网格单元中。因此可以根据实际需要选择其中的部分或全部的单元来实现实施例的方案。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种加密运算处理器芯片的故障检测方法,其特征在于,包括:
对芯片的环境状态和工作状态进行检测得到状态参数,将所述状态参数与相应的参数阈值进行比较,在所述状态参数未满足相应参数阈值时判定芯片受到故障攻击;
对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与所述执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击;
在判定所述芯片受到故障攻击时发出报警并中断芯片的运算任务;
该方法还包括故障数据存储及报文生成步骤,所述故障数据存储及报文生成步骤包括:
依据地址指针从存储器中预先划分出的描述符存储区中获取首位的可用描述符;
获取所述可用描述符的地址字段所记录的数据存储地址,将获得的芯片的故障检测数据写入该数据存储地址对应的存储位置中,其中,所述故障检测数据包括:所述状态参数、所述状态参数与参数阈值的比较结果、所述解密运算后得到的信息和所述匹配度的信息;
从所述故障检测数据中提取出故障信息,将所述故障信息写入所述可用描述符的描述字段,并将该可用描述符变更为已用描述符;
对所述地址指针进行更新,更新后的地址指针指向所述描述符存储区中的下一个可用描述符;
依据各所述已用描述符的描述字段的存储内容和地址字段对应的数据存储地址的存储内容形成故障报文。
2.如权利要求1所述的方法,其特征在于,所述被执行加密运算后形成的运算结果包括加密完成后得到的密文,和/或加密过程中生成的中间运算结果。
3.如权利要求1所述的方法,其特征在于,该方法还包括第一故障检测判定步骤,所述第一故障检测判定步骤包括:
从芯片的多轮次加密运算中选择至少部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个异或运算步骤,在该异或运算步骤完成后,先将该异或运算步骤的输入和输出进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
4.如权利要求1所述的方法,其特征在于,该方法还包括第二故障检测判定步骤,所述第二故障检测判定步骤包括:
从芯片的多轮次加密运算中选择部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个可逆运算步骤,在该可逆运算步骤完成后,先对该可逆运算步骤进行求逆运算,并对该可逆运算步骤的输入和该求逆运算的运算结果进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
5.一种加密运算处理器芯片的故障检测装置,其特征在于,包括:
状态检测模块,用于对芯片的环境状态和工作状态进行检测得到状态参数,将所述状态参数与相应的参数阈值进行比较,在所述状态参数未满足相应参数阈值时判定芯片受到故障攻击;
试解密模块,用于对芯片加密过程中被执行加密运算后形成的运算结果进行解密运算,计算解密运算后得到的信息与所述执行加密运算前的信息之间的匹配度,若匹配度未达到匹配阈值则判定芯片受到故障攻击;
任务中断报警模块,用于在判定所述芯片受到故障攻击时发出报警并中断芯片的运算任务;
该装置还包括故障数据存储模块,用于实施以下步骤:
依据地址指针从存储器中预先划分出的描述符存储区中获取首位的可用描述符;
获取所述可用描述符的地址字段所记录的数据存储地址,将获得的芯片的故障检测数据写入该数据存储地址对应的存储位置中,其中,所述故障检测数据包括:所述状态参数、所述状态参数与参数阈值的比较结果、所述解密运算后得到的信息和所述匹配度的信息;
从所述故障检测数据中提取出故障信息,将所述故障信息写入所述可用描述符的描述字段,并将该可用描述符变更为已用描述符;
对所述地址指针进行更新,更新后的地址指针指向所述描述符存储区中的下一个可用描述符;
该装置还包括故障报文生成模块,用于依据各所述已用描述符的描述字段的存储内容和地址字段对应的数据存储地址的存储内容形成故障报文。
6.如权利要求5所述的装置,其特征在于,所述被执行加密运算后形成的运算结果包括加密完成后得到的密文,和/或加密过程中生成的中间运算结果。
7.如权利要求5所述的装置,其特征在于,该装置还包括:
第一故障检测判定模块,用于从芯片的多轮次加密运算中选择至少部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个异或运算步骤,在该异或运算步骤完成后,先将该异或运算步骤的输入和输出进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
8.如权利要求5所述的装置,其特征在于,该装置还包括:
第二故障检测判定模块,用于从芯片的多轮次加密运算中选择部分轮次的加密运算,从选出的每个轮次加密运算的运算步骤中选择至少一个可逆运算步骤,在该可逆运算步骤完成后,先对该可逆运算步骤进行求逆运算,并对该可逆运算步骤的输入和该求逆运算的运算结果进行异或运算,并在运算结果非零时判定芯片受到故障攻击。
CN202110176182.8A 2021-02-07 2021-02-07 加密运算处理器芯片的故障检测方法及装置 Active CN112559236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110176182.8A CN112559236B (zh) 2021-02-07 2021-02-07 加密运算处理器芯片的故障检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110176182.8A CN112559236B (zh) 2021-02-07 2021-02-07 加密运算处理器芯片的故障检测方法及装置

Publications (2)

Publication Number Publication Date
CN112559236A CN112559236A (zh) 2021-03-26
CN112559236B true CN112559236B (zh) 2021-05-18

Family

ID=75035912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110176182.8A Active CN112559236B (zh) 2021-02-07 2021-02-07 加密运算处理器芯片的故障检测方法及装置

Country Status (1)

Country Link
CN (1) CN112559236B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186744B (zh) * 2023-04-24 2023-06-30 电子科技大学成都学院 一种计算机数据传输系统及方法
CN116256621B (zh) * 2023-05-15 2023-07-21 中诚华隆计算机技术有限公司 芯粒的测试方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107016284A (zh) * 2017-03-31 2017-08-04 武汉光迅科技股份有限公司 一种数据通信设备cpu前端动态防护方法及系统
CN108599920A (zh) * 2018-05-31 2018-09-28 哈尔滨工业大学(威海) 一种故障攻击检测电路及故障攻击防护方法
CN108959980A (zh) * 2018-07-25 2018-12-07 北京智芯微电子科技有限公司 安全芯片的公钥防护方法及公钥防护系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107016284A (zh) * 2017-03-31 2017-08-04 武汉光迅科技股份有限公司 一种数据通信设备cpu前端动态防护方法及系统
CN108599920A (zh) * 2018-05-31 2018-09-28 哈尔滨工业大学(威海) 一种故障攻击检测电路及故障攻击防护方法
CN108959980A (zh) * 2018-07-25 2018-12-07 北京智芯微电子科技有限公司 安全芯片的公钥防护方法及公钥防护系统

Also Published As

Publication number Publication date
CN112559236A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
Barenghi et al. Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures
EP2150888B1 (en) Initial seed management for pseudorandom number generator
Barker et al. Recommendation for random bit generator (RBG) constructions
CN112559236B (zh) 加密运算处理器芯片的故障检测方法及装置
US20060080537A1 (en) Illegal analysis / falsification preventing system
CN108347361B (zh) 应用程序测试方法、装置、计算机设备和存储介质
US11115181B2 (en) Memory device, host device, and memory system
KR20120140217A (ko) 반도체 장치 및 반도체 장치에의 데이터 기입 방법
US10282312B2 (en) Integrated circuit, method for protecting an integrated circuit and computer program product
CN110995720B (zh) 加密方法、装置、主机端及加密芯片
US9071420B2 (en) Information processing apparatus, tampering detection apparatus, information processing method, tampering detection method, and computer product
CN114528602B (zh) 基于攻击检测行为的安全芯片运行方法及装置
KR20050022623A (ko) 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
CN114520727A (zh) 安全芯片数据防护方法及系统
JP4435593B2 (ja) 耐タンパー情報処理装置
US20070005512A1 (en) IC chip, board, information processing equipment and storage medium
JP2005340892A (ja) 暗号回路
CN115225365A (zh) 基于国密算法的数据安全传输方法、平台、及系统
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
CN116781265A (zh) 一种数据加密的方法和装置
CN113901502A (zh) 一种数据处理方法、装置、电子设备以及存储介质
CN114095175B (zh) 一种可灰度校验的数据保密方法、装置及存储介质
CN112084518B (zh) 基于通讯控制模块的安全辨识方法
CN113014375B (zh) 网络威胁情报信息的跨组织处理方法、相关装置和介质
US11531785B2 (en) PUF-based data integrity

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20210326

Assignee: Hangzhou Weiming Information Technology Co.,Ltd.

Assignor: Zhejiang core Gravity Technology Co.,Ltd.

Contract record no.: X2021330000325

Denomination of invention: Fault detection method and device of encryption operation processor chip

Granted publication date: 20210518

License type: Common License

Record date: 20210927

EE01 Entry into force of recordation of patent licensing contract