CN110598398A - 一种基于稳态故障的芯片安全性的评估方法 - Google Patents

一种基于稳态故障的芯片安全性的评估方法 Download PDF

Info

Publication number
CN110598398A
CN110598398A CN201910789976.4A CN201910789976A CN110598398A CN 110598398 A CN110598398 A CN 110598398A CN 201910789976 A CN201910789976 A CN 201910789976A CN 110598398 A CN110598398 A CN 110598398A
Authority
CN
China
Prior art keywords
byte
round
box
chip
key
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
CN201910789976.4A
Other languages
English (en)
Other versions
CN110598398B (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 University ZJU
Original Assignee
Zhejiang University ZJU
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 University ZJU filed Critical Zhejiang University ZJU
Priority to CN201910789976.4A priority Critical patent/CN110598398B/zh
Publication of CN110598398A publication Critical patent/CN110598398A/zh
Application granted granted Critical
Publication of CN110598398B publication Critical patent/CN110598398B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于稳态故障的芯片安全性的评估方法,从芯片实现安全性角度考虑,该方法包括:去除封装、扫描SRAM区域、激光注入稳态故障的方法;根据是否知晓注入故障位置,公开两种分析方法:在已知注入故障位置的条件下通过结合AES第九轮与第十轮状态矩阵,利用GPU特性恢复AES算法密钥的分析方法;在未知注入故障位置的条件下,通过假设与遍历,找到正确故障位置后恢复AES算法密钥的分析方法;参照整个过程提供芯片安全性评估的方法三部分。在芯片安全性评估领域,填补了此前未考虑过稳态故障威胁的空白。

Description

一种基于稳态故障的芯片安全性的评估方法
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于稳态故障的芯片安全性的评估方法。
背景技术
在信息化飞速发展的时代,信息安全的重要性不言而喻,各国都将信息安全作为国家战略进行重点研究。加密算法作为保障信息安全的工具,同样是研究的热点问题。当我们在芯片上具体实现加密算法的时候,由于芯片的软硬件特性,会泄露出一些旁路信息,利用这些旁路信息可以恢复出加密算法中的某些敏感信息,从而造成信息泄露。研究这些旁路信息的领域我们称为芯片实现安全性研究。在芯片出厂时,也必然需要基于常用攻击手段来进行一些安全性评估,以确保该芯片在一般情况下较为安全。
故障攻击于1997年首次提出,它是一种针对芯片的主动攻击,目前主流的注入故障方式有:修改芯片供电电压、修改芯片时钟脉冲、使用电磁脉冲、使用激光照射敏感区等等。攻击者在芯片运行过程中注入故障,注入故障后芯片中加密算法执行即会产生错误结果,之后就可以通过分析正确与错误结果来恢复芯片执行过程中的敏感信息。多种旁路或故障的分析手段都可针对密码芯片进行攻击。
我们掌握了一种与其他故障攻击不同的稳态故障分析方法,并以此对芯片进行评估,分析该芯片是否易受此类故障攻击。
AES算法作为对称分组密码中的标准算法,应用较为广泛,因此我们主要对在芯片上执行的AES算法进行分析与评估。该算法分组长度为128比特,每次执行算法时将轮函数迭代十轮,同时密钥也由主密钥经过十轮的迭代生成各轮的轮密钥。针对加密算法进行攻击分析主要就是获取轮密钥或主密钥。
部分芯片在某些环境下可能被攻击者以旁路分析或故障分析的手段攻破以获得重要信息。所以在对芯片进行安全性评估的过程中,我们需要尽可能考虑到多种攻击手段,以防止攻击者以其他攻击手段对该芯片进行攻击,造成信息泄露。
目前针对芯片实现安全性的评估领域,还没有基于稳态故障的较为系统的评估方法,因此未经该方法检测过的芯片较易受到稳态故障的攻击。
发明内容
针对上述不足,本发明提供一种基于稳态故障的芯片安全性的评估方法,稳态故障是在加密算法执行前通过故障注入手段,将SRAM中预存的数据进行篡改,以达到算法加密过程出错的目的。在对芯片进行安全性评估的过程中添加这一环节,可以用来进一步保障芯片的实现安全性。
本发明所采用的技术方案如下:一种基于稳态故障的芯片安全性的评估方法,包括以下步骤:
步骤(1):将待评估芯片进行去封装处理,找到SRAM的物理位置,对该位置进行扫描;将信息预存到芯片的SRAM中后,在此位置使用激光进行故障注入,然后使芯片执行AES加密算法,得到对应的密文;
步骤(2):根据步骤(1)对待评估芯片的扫描结果,若已知对应S盒各字节存储位置,则对步骤(1)获得的密文,利用AES第九轮和第十轮的状态矩阵特性,借助索引转换算法和GPU的特性对分析操作完成并行处理,分析得到执行的AES加密算法的密钥信息;
若未知对应S盒各字节存储位置,则对步骤(1)获得的密文,利用AES第九轮和第十轮的状态矩阵特性,先推断出正确的故障位置,再进行故障分析,分析得到执行的AES加密算法的密钥信息;
步骤(3):对步骤(1)和步骤(2)的过程进行分析,以得到针对该芯片的实现安全性评估结果。
进一步的,所述步骤(1)中对芯片进行去封装处理,找到SRAM的物理位置,具体步骤如下:
首先将芯片外壳通过物理方式去封装,之后通过化学腐蚀方法除去晶体管表面其他材料,芯片正面开封装后使用显微摄像头观察其结构,而背面借助红外摄像头观察,找到其SRAM的位置。
进一步的,所述步骤(1)中,在激光进行故障注入过程中,激光的单光子能量至大于1.12eV。
进一步的,所述步骤(1)中,使用激光进行故障注入具体步骤如下:
在芯片运行初始化,将S盒数据预存到SRAM后,使用激光对SRAM区域进行横纵坐标单位步长范围为1μm~50μm精度的逐点扫描注入故障,经过一次完整扫描后,将S盒数据与存储位置对应的点做记录,记录下对应位置。
进一步的,所述步骤二通过以下子步骤实现:
若在注入故障后进行分析时,根据是否知道S盒中哪一字节被篡改,分别采用步骤(2.1)或(2.2)的分析方法,当已知该稳态故障令S盒中哪一字节被篡改时,使用步骤(2.1)的分析方法;而未知被篡改位置时,使用步骤(2.2)的分析方法;
(2.1)若在激光对SRAM区域进行逐点扫描注入故障过程中,得到S盒各位数据在SRAM中对应存储位置时,则注入故障后可知在执行AES加密算法时S盒中哪一字节被篡改;
针对AES加密算法进行分析时,根据稳态故障的特性,每一轮的状态矩阵都会被该故障影响,且S盒输出的每个字节都会有一个永远不会出现的值v,即注入故障后被篡改的值;根据稳态故障的特性,同时利用第九轮和第十轮的信息来恢复密钥,将第九轮的状态矩阵用第十轮密钥表示,选择其中用到重复第十轮密钥的几个字节归为一个密钥字节元组,通过AES加密算法输出的密文排除不合理的元组,以此缩小密钥搜索空间,分析得到AES加密算法的密钥信息;
(2.2)若在使用激光对SRAM区域进行逐点扫描注入故障过程中,未得到S盒在SRAM中对应存储位置,即执行算法时是S盒中哪一字节被篡改未知;
设实际被篡改的S盒字节位置为i,而假设的被篡改位置为对每个可能的取值,求得一个即篡改后该字节与篡改前取值的差值;利用AES加密算法的输出密文c与第十轮密钥的估计值对AES进行逆向计算,求得第九轮的S盒输出,此时求得的第九轮S盒输出应该不包括S盒表中位置的输出,即不包括则为正确假设;
通过此方法找到正确被篡改的S盒字节位置,之后通过输出密文对应字节位置的统计结果,通过下式:
kj=S[i]⊕cj
进一步分析得到AES加密算法的密钥信息;其中kj为AES第十轮密钥的第j字节;S[i]为S盒被篡改的原始值;cj为AES加密算法输出密文中第j字节的不可能取值。
进一步的,所述步骤(2.1)具体如下:
根据密钥扩展算法,使用K10中的元素来表示K9
其中K10表示矩阵形式的第十轮轮密钥,k1-k16分别表示第十轮轮密钥中的一个字节,h10=0×36,为定义的轮常量;
第i轮S盒的输出矩阵Y9中第一个字节的表示:
Y9 1=(S-1(c1⊕k1)⊕(k1⊕S(k14⊕k10)⊕h10)·14)
⊕(S-1(c14⊕k14)⊕(k2⊕S(k15⊕k11))·11)
⊕(S-1(c11⊕k11)⊕(k3⊕S(k16⊕k12))·13)
⊕(S-1(c8⊕k8)⊕(k4⊕S(k13⊕k9))·9)
其中c表示矩阵形式的密文,Yi j表示第i轮S盒的输出矩阵中第j个元素;
将第九轮的状态矩阵如上式表示,矩阵中各字节之间用到了重复的第十轮密钥,将用到重复第十轮密钥的几个第九轮字节归为一个密钥字节元组,此时会产生多个密钥字节元组;
通过一个密钥字节元组及一组密文,计算出此字节的值;
通过统计收集到的密文进行分析,若此字节的值与注入故障后的不可能字节v相等,则该元组有误,删去此元组;
将保留下来的密钥字节元组合并,每个元组覆盖所有字节,在此条件下进一步验证并删除不符条件的元组,缩小密钥的搜索空间,之后通过输出密文对应字节位置的统计结果,通过下式,其中cj为第j个字节的不可能字节:
kj=S[i]⊕cj
分析得到AES加密算法的密钥信息。
进一步的,所述步骤(2.1)描述的分析方法的计算部分移植到GPU运行来实现并行化加速迭代。
进一步的,所述步骤三通过以下子步骤实现:
在注入故障前通过逐点扫描时,统计能引起稳态故障的点占全部扫描点的比例,若比例低于10%,则证明合适的稳态故障注入位置过少,则该芯片在此步骤的条件下安全性较高,反之安全性较低,该芯片在此步骤下需要完善与优化;
若在扫描过程中能获知注入故障时S盒被篡改位置,则针对输出密文分析时方法较简单,定义为安全性较低,反之安全性较高。
相对于现有技术,本发明的有益效果如下:
(1)目前针对芯片实现安全性评估,没有针对稳态故障的系统化的评估方法,本发明填补了空白,进一步保障芯片安全;
(2)根据步骤一,给出了稳态故障注入的具体、系统的方法;
(3)步骤二的分析方法,同时利用了AES第九轮与第十轮的状态矩阵信息,以此来优化最基本的稳态故障分析方法,所需的密文数量比传统稳态故障分析方法需要的数量有所降低;
(4)步骤二的分析方法(2.1),利用GPU的并行计算特性,对分析过程的计算部分进行优化,所需的时间比传统稳态故障分析方法需要的时间有所缩短;
(5)步骤二的分析方法(2.2),给出了未知稳态故障位置时推断该位置的方法,较传统稳态故障分析方法填补了这部分的空白;
(6)步骤三根据整个分析过程,给出了定量的芯片实现安全性在稳态故障条件下的评估标准,给出了系统且完整的评估框架,填补了这部分的空白。
附图说明
图1为基于稳态故障的芯片安全性的评估方法的流程框图;
图2为ATmega163L去封装后背面区域划分图;
图3为具体实施例中SRAM中S盒数据与对应存储位置记录。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有的实施方式。相反,它们仅是与如所附中权利要求书中所详述的,本申请的一些方面相一致的装置的例子。本说明书的各个实施例均采用递进的方式描述。
以激光为主要故障注入手段,主要针对SRAM,注入稳态故障,该稳态故障修改了预存在SRAM中的数据,除非该芯片重置,否则每次执行加密的过程中都将调用该错误的数据,造成的结果可通过我们提出的方法进行分析,得到芯片中的重要信息,则证明该芯片在稳态故障分析的背景下安全性还有待提高。
如图1所示,本发明提供一种基于稳态故障的芯片安全性的评估方法,具体实施方式可分为以下三步:
第一步对芯片进行去封装处理,找到SRAM的物理位置,具体步骤如下:
激光由于其特性,能够以极高的精度针对晶体管进行故障注入。芯片去封装后正面的材料会阻挡激光的注入,因此同样对芯片背面进行开封装处理,进一步处理后在芯片背面进行激光故障注入。
首先将芯片外壳通过物理方式去封装,之后通过化学腐蚀方法除去晶体管表面其他材料,芯片正面开封装后使用显微摄像头观察其结构,而背面借助红外摄像头观察,经观察,其中SRAM和Flash存储阵列较易区分。
找到SRAM的位置后,在SRAM读取S盒的数据后可以进行激光稳态故障注入。在实施例中,攻击对象使用ATmega163L微控制器,图2为ATmega163L去封装后背面区域划分图;将其去封装后背面朝上放置在三维云台上,通过聚焦系统将激光产生器生成的激光聚焦到微控制器背面。整个系统由同步控制系统统一协调,控制激光的注入、微控制器的开关以及执行算法操作。
通过激光在SRAM中注入稳态故障时,需要根据硅的能带,调整激光的单光子能量至大于1.12eV,使其在硅衬底的穿透深度足够长,如此才能到达芯片晶体管对激光较为敏感的活性区,使器件受到影响,造成其中比特反转。
在实施例中使用的激光波长为1064微米,即该激光光子能量为1.17eV。激光生成器产生的激光在空气中50倍物镜观察下约为2微米,经过硅的折射后可能更小,该尺度已经足够针对亚微米级的芯片注入单比特故障。
在芯片运行初始化将S盒数据预存到SRAM后,使用激光对SRAM区域进行横纵坐标单位步长为5μm精度的逐点扫描注入故障,经过一次完整扫描后,将S盒数据与存储位置对应的点做记录,记录下对应位置,如图3所示。
经过一次完整扫描后,将S盒数据与存储位置对应的点做记录。
记录下对应位置后,在芯片运行初始化将S盒数据预存到SRAM后,使用激光对SRAM区域进行激光稳态故障注入。
如此注入的故障可能有三种结果:无效、翻转(upset)和封闭(latch-up)。封闭故障会扰乱芯片功能或直接由于电流过大而损坏芯片;翻转故障则是发生在存储器或寄存器中的状态翻转,这是本发明针对的故障类型。只要芯片不重启,不初始化SRAM中预存的信息,此故障就会持续存在。
绝大部分对称加密算法如AES、PRESENT等都需要用到S盒,一般加密芯片将S盒预存在SRAM中,在执行到S盒代换操作时调用该信息,进行代换操作。若将S盒的信息进行篡改,加密后得到的密文即可用来分析,得到加密算法的敏感信息。
此时执行加密操作,则在经过S盒代换操作时,S盒表中被篡改位置原本对应的代换结果将不会出现,而被篡改后该位置会与另一个S盒的取值相等,则从统计的角度上考虑,以极大似然概率理论来分析,若存在某个值出现的频率约为其他未被篡改值的两倍大小,则考虑此值即为被篡改后相等的值。此时分析最后一轮的输出,在实验次数足够大的情况下,以字节为单位,同样会存在出现频率约为2/256的一组值和出现频率为0的一组值。
设该位置未出现的字节为c1,已知被篡改的S盒值为s1,此位置密钥为k1,则有
c1⊕s1=k1
此时即可分析出该位置的密钥取值。
第二步通过以下子步骤实现:
根据第一步对待评估芯片的扫描结果不同,若已知对应S盒各字节存储位置,则对之前获得的密文,利用AES第九轮和第十轮的状态矩阵特性,借助索引转换算法和GPU的特性对分析操作完成并行处理,分析得到执行的AES加密算法的密钥信息;若未知对应S盒各字节存储位置,则同样利用AES第九轮和第十轮的状态矩阵特性,先推断出正确的故障位置,再进行故障分析,分析得到执行的AES加密算法的密钥信息;
若在注入故障后进行分析时,根据是否知道S盒中哪一字节被篡改,分别采用方法(1)或方法(2)的分析方法,当已知该稳态故障令S盒中哪一字节被篡改时,使用分析方法(1);而未知被篡改位置时,使用分析方法(2);
分析方法(1):若在激光对SRAM区域进行逐点扫描注入故障过程中,得到S盒各位数据在SRAM中对应存储位置时,则注入故障后可知在执行AES加密算法时S盒中哪一字节被篡改;
针对AES加密算法进行分析时,根据稳态故障的特性,每一轮的状态矩阵都会被该故障影响,且S盒输出的每个字节都会有一个永远不会出现的值v,即注入故障后被篡改的值。同时利用第九轮和第十轮的信息来恢复密钥,具体步骤如下:
根据密钥扩展算法,使用K10中的元素来表示K9
其中K10表示矩阵形式的第十轮轮密钥,k1-k16分别表示第十轮轮密钥中的一个字节,h10=0×36,为定义的轮常量;
第i轮S盒的输出矩阵Y9中第一个字节的表示:
Y9 1=(S-1(c1⊕k1)⊕(k1⊕S(k14⊕k10)⊕h10)·14)
⊕(S-1(c14⊕k14)⊕(k2⊕S(k15⊕k11))·11)
⊕(S-1(c11⊕k11)⊕(k3⊕S(k16⊕k12))·13)
⊕(S-1(c8⊕k8)⊕(k4⊕S(k13⊕k9))·9)
其中c表示矩阵形式的密文,Yi j表示第i轮S盒的输出矩阵中第j个元素;
将第九轮的状态矩阵如上式表示,矩阵中各字节之间用到了重复的第十轮密钥,将用到重复第十轮密钥的几个第九轮字节归为一个密钥字节元组,此时会产生多个密钥字节元组;
通过一个密钥字节元组及一组密文,计算出此字节的值;
通过统计收集到的密文进行分析,若此字节的值与注入故障后的不可能字节v相等,则该元组有误,删去此元组;
将保留下来的密钥字节元组合并,每个元组覆盖所有字节,在此条件下进一步验证并删除不符条件的元组,缩小密钥的搜索空间,可以恢复正确的第十轮密钥。
进一步的,所述步骤(2.1)描述的分析方法的计算部分移植到GPU运行来实现并行化加速迭代。
通过索引元组的转换算法,进行循环改写。普通的直接遍历,可以理解为索引元组所对应的数字每次增加1。通过将这个路线分割为线程数份,直接将步长设为这个数字,然后在一次访问之后按照步长更新对应的索引元组,即实现多条循环线路同时进行的效果,将其实现在GPU上,提高算法运行的效率。
分析方法(2)若在使用激光对SRAM区域进行逐点扫描注入故障过程中,未得到S盒在SRAM中对应存储位置,即执行算法时是S盒中哪一字节被篡改未知。同样结合第九轮和第十轮的信息来恢复密钥,具体步骤如下:
S盒中的一个字节已被篡改后,第九轮的输出状态矩阵的每一字节仅可能存在255种可能的取值而非完整S盒的大小256种。通过统计,使用这一特性来恢复密钥时需要约800条密文,具体方法如下:
设实际被篡改的S盒字节位置为i,而假设的被篡改位置为对每个可能的取值,求得一个即篡改后该字节与篡改前取值的差值。此时可以用已知被篡改位置的方法首先推得一个第十轮密钥的估计值此时我们利用第十轮输出的密文c和第十轮密钥的估计值对AES进行逆向计算,求得第九轮S盒的输出。如果是正确的,那么此时求得的第九轮S盒输出应该不包括S盒表中位置的输出,即不包括如果该推断值是错误的,那么在采集的800组加密结果中,第九轮S盒输出不包括的可能性为此值极小,所以该事件几乎不可能发生。因此推断若包括则证明此推断值错误,进行下一个推断值的分析,直到找到正确的之后通过输出密文对应字节位置的统计结果,通过式:
ki=S[i]⊕ci
即可恢复AES密钥信息。其中ci为AES加密算法输出密文中第i字节的不可能取值。
所述步骤三通过以下子步骤实现:
在注入故障前通过逐点扫描时,统计能引起稳态故障的点占全部扫描点的比例,若比例低于10%,则证明合适的稳态故障注入位置过少,则该芯片在此步骤的条件下安全性较高,反之安全性较低,该芯片在此步骤下需要完善与优化;
若在扫描过程中能获知注入故障时S盒被篡改位置,则针对输出密文分析时方法较简单,定义为安全性较低,反之安全性较高。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种基于稳态故障的芯片安全性的评估方法,其特征在于,包括以下步骤:
步骤(1):将待评估芯片进行去封装处理,找到SRAM的物理位置,对该位置进行扫描;将信息预存到芯片的SRAM中后,在此位置使用激光进行稳态故障注入,然后使芯片执行AES加密算法,得到对应的密文;
步骤(2):根据步骤(1)对待评估芯片的扫描结果,若已知对应S盒各字节存储位置,则对步骤(1)获得的密文,利用AES第九轮和第十轮的状态矩阵特性,借助索引转换算法和GPU的特性对分析操作完成并行处理,分析得到执行的AES加密算法的密钥信息;
若未知对应S盒各字节存储位置,则对步骤(1)获得的密文,利用AES第九轮和第十轮的状态矩阵特性,先推断出正确的稳态故障位置,再进行稳态故障分析,分析得到执行的AES加密算法的密钥信息;
步骤(3):对步骤(1)和步骤(2)的过程进行分析,以得到针对该芯片的实现安全性评估结果。
2.根据权利要求1所述的评估方法,其特征在于,所述步骤(1)中对芯片进行去封装处理,找到SRAM的物理位置,具体步骤如下:
首先将芯片外壳通过物理方式去封装,之后通过化学腐蚀方法除去晶体管表面其他材料,芯片正面开封装后使用显微摄像头观察其结构,而背面借助红外摄像头观察,找到其SRAM的位置。
3.根据权利要求1所述的评估方法,其特征在于,所述步骤(1)中,在激光进行故障注入过程中,激光的单光子能量至大于1.12eV。
4.根据权利要求1所述的评估方法,其特征在于,所述步骤(1)中,使用激光进行故障注入具体步骤如下:
在芯片运行初始化,将S盒数据预存到SRAM后,使用激光对SRAM区域进行横纵坐标逐点扫描注入故障,经过一次完整扫描后,将S盒数据与其SRAM中存储位置对应的点做记录,记录下对应位置。
5.根据权利要求4所述的评估方法,其特征在于,所述横纵坐标逐点扫描的单位步长范围为1μm~50μm。
6.根据权利要求1所述的评估方法,其特征在于,所述步骤二通过以下子步骤实现:
若在注入故障后进行分析时,根据是否知道S盒中哪一字节被篡改,分别采用步骤(2.1)或(2.2)的分析方法,当已知该稳态故障令S盒中哪一字节被篡改时,使用步骤(2.1)的分析方法;而未知被篡改位置时,使用步骤(2.2)的分析方法;
(2.1)若在激光对SRAM区域进行逐点扫描注入故障过程中,得到S盒各位数据在SRAM中对应存储位置时,则注入故障后可知在执行AES加密算法时S盒中哪一字节被篡改;
针对AES加密算法进行分析时,根据稳态故障的特性,每一轮的状态矩阵都会被该故障影响,且S盒输出的每个字节都会有一个永远不会出现的值v,即注入故障后被篡改的值;根据稳态故障的特性,同时利用第九轮和第十轮的信息来恢复密钥,将第九轮的状态矩阵用第十轮密钥表示,选择其中用到重复第十轮密钥的几个字节归为一个密钥字节元组,通过AES加密算法输出的密文排除不合理的元组,以此缩小密钥搜索空间,分析得到AES加密算法的密钥信息;
(2.2)若在使用激光对SRAM区域进行逐点扫描注入故障过程中,未得到S盒在SRAM中对应存储位置,即执行算法时是S盒中哪一字节被篡改未知;
设实际被篡改的S盒字节位置为i,而假设的被篡改位置为对每个可能的取值,求得一个即篡改后该字节与篡改前取值的差值;利用AES加密算法的输出密文c与第十轮密钥的估计值对AES进行逆向计算,求得第九轮的S盒输出,此时求得的第九轮S盒输出应该不包括S盒表中位置的输出,即不包括则为正确假设;
通过此方法找到正确被篡改的S盒字节位置,之后通过输出密文对应字节位置的统计结果,通过下式:
kj=S[i]⊕cj
进一步分析得到AES加密算法的密钥信息;其中kj为AES第十轮密钥的第j字节;S[i]为S盒被篡改的原始值;cj为AES加密算法输出密文中第j字节的不可能取值。
7.根据权利要求6所述的评估方法,其特征在于,所述步骤(2.1)具体如下:
根据密钥扩展算法,使用K10中的元素来表示K9
其中K10表示矩阵形式的第十轮轮密钥,k1-k16分别表示第十轮轮密钥中的一个字节,h10=0×36,为定义的轮常量;
将第i轮S盒的输出矩阵Y9中第一个字节的表示为:
Y9 1=(S-1(c1⊕k1)⊕(k1⊕S(k14⊕k10)⊕h10)·14)
⊕(S-1(c14⊕k14)⊕(k2⊕S(k15⊕k11))·11)
⊕(S-1(c11⊕k11)⊕(k3⊕S(k16⊕k12))·13)
⊕(S-1(c8⊕k8)⊕(k4⊕S(k13⊕k9))·9)
其中c表示矩阵形式的密文,Yi j表示第i轮S盒的输出矩阵中第j个元素;
将第九轮的状态矩阵如上式表示,矩阵中各字节之间用到了重复的第十轮密钥,将用到重复第十轮密钥的几个第九轮字节归为一个密钥字节元组,此时会产生多个密钥字节元组;
通过一个密钥字节元组及一组密文,计算出此字节的值;
通过统计收集到的密文进行分析,若此字节的值与注入故障后的不可能字节v相等,则该元组有误,删去此元组;
将保留下来的密钥字节元组合并,每个元组覆盖所有字节,在此条件下进一步验证并删除不符条件的元组,缩小密钥的搜索空间,之后通过输出密文对应字节位置的统计结果,通过下式,其中cj为第j个字节的不可能字节:
kj=S[i]⊕cj
分析得到AES加密算法的密钥信息。
8.根据权利要求7所述的评估方法,其特征在于,所述步骤(2.1)描述的分析方法的计算部分移植到GPU运行来实现并行化加速迭代。
9.根据权利要求1所述的评估方法,其特征在于,所述步骤三通过以下子步骤实现:
在注入故障前通过逐点扫描时,统计能引起稳态故障的点占全部扫描点的比例,若比例低于10%,则证明合适的稳态故障注入位置过少,则该芯片在此步骤的条件下安全性较高,反之安全性较低,该芯片在此步骤下需要完善与优化;
若在扫描过程中能获知注入故障时S盒被篡改位置,则针对输出密文分析时方法较简单,定义为安全性较低,反之安全性较高。
CN201910789976.4A 2019-08-26 2019-08-26 一种基于稳态故障的芯片安全性的评估方法 Expired - Fee Related CN110598398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910789976.4A CN110598398B (zh) 2019-08-26 2019-08-26 一种基于稳态故障的芯片安全性的评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910789976.4A CN110598398B (zh) 2019-08-26 2019-08-26 一种基于稳态故障的芯片安全性的评估方法

Publications (2)

Publication Number Publication Date
CN110598398A true CN110598398A (zh) 2019-12-20
CN110598398B CN110598398B (zh) 2021-03-19

Family

ID=68855620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910789976.4A Expired - Fee Related CN110598398B (zh) 2019-08-26 2019-08-26 一种基于稳态故障的芯片安全性的评估方法

Country Status (1)

Country Link
CN (1) CN110598398B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530566A (zh) * 2013-10-21 2014-01-22 中国科学院深圳先进技术研究院 一种检测诱导错误攻击下安全芯片安全性能的系统
CN103997402A (zh) * 2014-05-30 2014-08-20 中国科学院深圳先进技术研究院 一种加密芯片安全性能测试方法和装置
CN104660466A (zh) * 2015-02-06 2015-05-27 深圳先进技术研究院 一种安全测试方法及系统
CN106326053A (zh) * 2016-08-25 2017-01-11 深圳先进技术研究院 基于故障注入的芯片安全测试方法及系统
CN108173645A (zh) * 2017-12-27 2018-06-15 中国科学院国家空间科学中心 一种密码芯片的安全检测方法及其装置
US20190228125A1 (en) * 2018-01-20 2019-07-25 Mentor Graphics Corporation Functional safety synthesis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530566A (zh) * 2013-10-21 2014-01-22 中国科学院深圳先进技术研究院 一种检测诱导错误攻击下安全芯片安全性能的系统
CN103997402A (zh) * 2014-05-30 2014-08-20 中国科学院深圳先进技术研究院 一种加密芯片安全性能测试方法和装置
CN104660466A (zh) * 2015-02-06 2015-05-27 深圳先进技术研究院 一种安全测试方法及系统
CN106326053A (zh) * 2016-08-25 2017-01-11 深圳先进技术研究院 基于故障注入的芯片安全测试方法及系统
CN108173645A (zh) * 2017-12-27 2018-06-15 中国科学院国家空间科学中心 一种密码芯片的安全检测方法及其装置
US20190228125A1 (en) * 2018-01-20 2019-07-25 Mentor Graphics Corporation Functional safety synthesis

Also Published As

Publication number Publication date
CN110598398B (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN102393890B (zh) 一种抗物理入侵和旁路攻击的密码芯片系统及其实现方法
Agoyan et al. How to flip a bit?
Kursawe et al. Reconfigurable physical unclonable functions-enabling technology for tamper-resistant storage
Colombier et al. Laser-induced single-bit faults in flash memory: Instructions corruption on a 32-bit microcontroller
Gueron Memory encryption for general-purpose processors
CN108958707A (zh) 具有puf及随机数产生器的电路及其操作方法
JP4849606B2 (ja) 制御フロー誤り検出方法、データ処理装置、及びコンパイラ
Zhang et al. Persistent fault attack in practice
Krachenfels et al. Real-world snapshots vs. theory: Questioning the t-probing security model
CN107689238A (zh) 电子装置、产品及制造集成电路方法及产生数据集的方法
Skorobogatov How microprobing can attack encrypted memory
Agoyan et al. Single-bit DFA using multiple-byte laser fault injection
CN108123956B (zh) 基于Petri网的密码误用漏洞检测方法及系统
Krachenfels et al. Automatic Extraction of Secrets from the Transistor Jungle using {Laser-Assisted}{Side-Channel} Attacks
CN105933108B (zh) 一种对sm4算法实现破解的方法
CN104660466A (zh) 一种安全测试方法及系统
Courbon et al. Combining image processing and laser fault injections for characterizing a hardware AES
Mus et al. Jolt: Recovering tls signing keys via rowhammer faults
Menu et al. Single-bit laser fault model in NOR flash memories: Analysis and exploitation
US20050005108A1 (en) Cryptographically secure transactions with optical cards
CN106357378B (zh) 用于sm2签名的密钥检测方法及其系统
CN108958650A (zh) 电子系统及其操作方法
CN110598398B (zh) 一种基于稳态故障的芯片安全性的评估方法
US20040267847A1 (en) Hardware random-number generator
Dachman-Soled et al. Revisiting security estimation for LWE with hints from a geometric perspective

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210319

Termination date: 20210826