一种针对分组密码的自动形式化故障分析方法
- 国知局
- 2024-08-02 12:38:02
本发明属于安全性,具体涉及一种针对分组密码的自动形式化故障分析方法。
背景技术:
1、故障注入攻击是一种主动侧信道攻击方法,通过改变密码设备正常执行所需的时钟、电压或温度等工作条件或利用高能射线、恶意逻辑等使密码设备产生错误输出;攻击者进而利用故障信息的差分特性或统计特性来恢复密钥。与被动侧信道攻击方法相比,故障注入攻击恢复密钥需要使用更少的侧信道轨迹,是一种更为有效的侧信道攻击方法,广泛用于对密码核设计实现安全性的分析中。
2、故障注入攻击包含故障注入、故障模型建立和故障分析三个部分。故障注入的目的是干扰密码设备的正常运行,攻击者可以根据密码算法的结构特点选择在密码迭代或密钥扩展等阶段进行故障注入。故障类型按照故障数量可以分为单比特故障、单字节故障和多字节故障;根据故障持续时间可分为随机故障、持续性故障和永久性故障。故障模型对故障在密码迭代过程中的传播效应进行描述,目前大多数的方法需要手动建立故障模型,并对注入故障的种类、数量及故障注入的位置有严格的要求。故障分析是根据故障在密码迭代过程中的传播特点来恢复密钥,主要分为基于差分特性的故障分析和基于统计特性的故障分析方法。基于差分特性的故障分析方法首先结合猜测的密钥和正误密文来推导故障图样,进一步根据故障满足的差分特性来筛选密钥,该过程通常需要复杂的数学推导。基于统计特性的故障分析方法是利用故障对数据统计分布的影响来搜索密钥,需要对大量的错误密文进行分析。现有的故障分析方法虽然有效,但大多数分析方法仅适用于特定的密码算法,缺乏通用性和可扩展性。
3、目前,形式化验证是硅前阶段对密码核设计进行实现安全性分析的常用方法,验证过程中通过检测是否存在违反安全属性的行为来判断密码核设计中是否存在安全隐患。形式化验证是利用严格的数学方法来证明所有状态下密码核设计都能正常工作,包含基于逻辑验证、模型验证和代数验证的方法等。虽然该方法可以提高密码核实现安全性验证的效率,但目前安全属性主要依赖于人工书写,安全属性的质量和完备性难以保障。
4、由此可见,现有的故障分析方法一般需要手动建立故障模型,通过复杂的数学推导或统计分析实现密钥恢复,并且对密码算法及故障注入的位置和数量有严格的要求,很少有能实现安全属性自动提取,对注入故障的类型无严格限制,并适用于对多种密码进行自动故障分析的方法。
技术实现思路
1、为了克服现有技术的不足,本发明提供了一种针对分组密码的自动形式化故障分析方法,包含形式化故障传播模型建立,故障属性挖掘和形式化故障分析三个阶段,密码核形式化故障传播模型对故障在密码迭代中的传播过程进行精确度量。该方法可以对密码核设计自动化建立形式化故障传播模型,适用于描述不同类型的故障在密码迭代的传播过程。故障属性挖掘阶段从形式化故障传播模型仿真的故障轨迹中提取固有行为模式作为故障属性,为形式化分析提供数学理论支撑。形式化故障分析阶段基于所提取的故障属性利用形式化验证工具来自动化搜索正确密钥。本发明方法具有更好的可扩展性和通用性,并且不存在复杂的公式推导,支持唯密文分析,仅需少量密文即可恢复密钥,与现有方法相比更为有效。
2、本发明解决其技术问题所采用的技术方案如下:
3、步骤1:建立基本逻辑单元形式化故障传播模型库;
4、采用信息流跟踪技术建立电路设计的形式化故障传播模型,通过为电路设计的输入输出信号按比特添加故障标签来标识该信号的故障状态,根据故障标签的流动来监测故障信息的传播,其中故障标签为逻辑‘0’时,表示该信号未发生故障,否则该信号为故障状态。电路设计的形式化故障传播模型中故障标签的传播满足电路设计的逻辑约束,即仅当输入数据对输出数据的值存在影响时,输入信号对应的故障状态才能传播到输出信号中,可采用布尔表达式对形式化传播模型进行描述;基于此方法,为集成电路设计中所有基本逻辑单元的故障传播过程进行形式化故障模型建模,建立基本逻辑单元形式化故障传播模型库;
5、非门的形式化故障模型布尔表达式为ot=at,其中at和ot分别为输入信号a、输出信号o对应的故障标签;
6、二输入异或门的形式化故障模型布尔表达式为其中bt为输入信号b对应的故障标签;
7、二输入与门的形式化故障模型布尔表达式为其中o为输出信号;
8、二输入或门的形式化故障模型布尔表达式为
9、步骤2:建立密码核形式化故障传播模型;
10、利用逻辑综合将密码核设计转化为门级网表,通过将门级网表中的基本逻辑单元映射到基本逻辑单元形式化传播模型库中,将相应的基本逻辑单元形式化传播模型进行逻辑组合,为密码核建立形式化故障传播模型;
11、步骤3:形式化故障传播模型仿真;
12、利用eda工具对步骤2建立的密码核形式化故障传播模型进行随机仿真,模拟密码算法在任何一种故障状态下的故障传播过程,收集在每一种故障状态下形式化故障传播模型仿真的故障轨迹,为挖掘故障属性提供数据支撑;
13、步骤4:自动化挖掘故障属性;
14、利用步骤3收集的故障轨迹实现故障属性的自动挖掘;所述故障属性是对故障传播过程固有行为模式的抽象描述,分为故障位置属性和故障相关属性;故障位置属性是一种定性属性,描述故障在传播过程中对密码核设计哪些位置产生了影响,通过观察故障轨迹中故障的分布提取该属性;故障相关属性是一种定量属性,描述了同一故障源的故障信息之间的相关性;通过机器学习技术实现从故障轨迹中故障属性的挖掘,采用sva属性断言对提取的故障属性进行形式化描述;通过挖掘每一种故障状态下对应的故障属性,建立故障属性库;
15、步骤5:建立故障分析模型;
16、根据步骤4提取的故障属性及密码迭代变换建立故障分析模型;故障分析模型描述故障属性与加密密钥的相关性,结合密码算法的迭代结构,利用密钥信息和错误密文推导满足所提取故障属性的故障信息,建立加密密钥与故障属性的关联性,为形式化故障分析提供基础;
17、步骤6:基于形式化故障分析恢复密钥;
18、结合步骤4的故障属性库和步骤5的故障分析模型,对错误密文进行形式化故障分析,通过判断故障分析模型推导出的故障信息是否满足故障属性筛选密钥;
19、首先收集相同明文下的正误密文对或唯错误密文对,将每一个密文对作为一个测试案例输入到形式化验证工具;以故障属性作为约束,形式化验证工具对正确密钥进行自动化搜索;在进行故障注入攻击时,攻击者在加密设备执行过程中任意一轮的轮变换或者密钥扩展注入故障,不需要知晓故障注入的具体位置及数量,形式化故障分析根据故障位置属性和故障相关属性推断该测试案例的故障状态。
20、进一步地,所述步骤1中基本逻辑单元形式化故障传播模型是通过为基本逻辑单元的每个信号添加故障标签以标识对应信号的故障状态,并根据基本逻辑单元的运算关系来建立形式化故障传播模型,实现对故障传播的测量;形式化故障传播模型使用标准硬件设计语言描述。
21、进一步地,所述步骤1中建立基本单元形式化故障模型库是以基本逻辑门形式化故障模型库为基础,根据电路设计中的组合律,进一步为基本逻辑单元建立形式化故障传播模型,从而形成完整的基本逻辑单元形式化故障模型库。
22、进一步地,所述步骤2中密码核形式化故障传播模型能够度量不同类型故障在密码迭代过程的传播;密码核形式化故障传播模型过程能够实现自动化,通过将相应密码核的寄存器传输级代码或门级网表映射到基本逻辑单元形式化故障模型库中,即能能自动生成密码核的形式化故障传播模型。
23、进一步地,所述步骤2中密码核形式化故障传播模型能够对任意类型故障在密码迭代过程中的传播行为进行描述;所述任意类型故障包括随机性故障、持续性故障和永久性故障。
24、进一步地,所述步骤3中形式化故障传播模型仿真中每一种故障状态的故障类型、数量及注入位置不同,通过更改输入信号故障标签的取值来实现对每一种故障状态传播过程的仿真。
25、进一步地,所述步骤3中形式化故障传播模型仿真可随机数产生随机明文作为仿真激励,仿真每种故障状态的传播过程并收集相应的故障轨迹,使用仿真工具为标准eda工具。
26、进一步地,所述步骤4中自动化挖掘故障属性过程是将故障轨迹中的故障信息按密码算法中最小迭代单元进行分类,采用分类算法提取各个故障信息之间满足的逻辑关系作为故障相关属性,并利用逻辑化简的方式将该关系转化为布尔表达式,实现对故障相关属性的描述。
27、进一步地,所述步骤5中故障分析模型是描述正确密钥与故障属性之间的相关性,用标准硬件语言或软件编程语言进行描述。
28、进一步地,所述步骤6基于形式化故障分析来恢复密钥中的错误密文,通过在密码设备执行加密过程中注入时钟毛刺或电压毛刺等来获取,为实现对密码核的形式化故障分析提供数据基础;通过标准形式化验证工具根据故障属性约束实现密钥的自动化搜索。
29、本发明的有益效果如下:
30、本发明方法实现了密码核形式化故障传播模型、故障属性挖掘和形式化故障分析的自动化,为硅前阶段密码核设计安全性验证提供了一种自动化分析方法,并且不要求测试人员具备相关密码学知识。本发明适用于分组密码体制的单字节和多字节故障分析,对故障注入的位置及类型无严格要求。与现有故障分析技术相比,本发明方法具有更好的可扩展性和通用性,并且不存在复杂的公式推导,支持唯密文分析,仅需少量密文即可恢复密钥,与现有方法相比更为有效。
本文地址:https://www.jishuxx.com/zhuanli/20240802/237085.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表