掌桥专利:专业的专利平台
掌桥专利
首页

一种针对密码算法芯片的自我检查方法

文献发布时间:2024-04-18 20:01:55


一种针对密码算法芯片的自我检查方法

技术领域

本发明属于信息安全领域,特别涉及一种密码算法模块内部的硬件攻击的检测和分析技术。

背景技术

密码算法是加密和解密的技术支撑,密码算法是密码协议的基础。现行的密码算法主要包括序列密码、分组密码、公钥密码、散列函数等,用于保证信息的安全,提供鉴别、完整性、抗抵赖等服务。在使用中,密码算法通常以集成电路的形式存在。由于集成电路产业的特殊性和高投入,集成电路设计、制造、封装和测试一般各自独立且产业分工细密。总体来看,集成电路的生命周期和加工产业链不可控,不可信。尤其是在制造阶段,提交的密码算法版图文件可能被恶意修改,从而植入硬件木马等隐患。硬件木马是信息安全的重要威胁,也是硬件安全领域的重要研究课题之一。这些带有隐患的密码算法那芯片一旦用于相关领域,将会带来不可估量的安全隐患,甚至重大损失。

虽然现在有一些检测方法,但是都存在相应的痛点和不足。例如方法(1)采用逆向工程。缺点是逆向工程一种破坏性的检测方法,一旦采用逆向工程方法完成检测,相应的芯片则会完全损坏而不能再使用;而且该方法可以检测的芯片数量有限,不能全覆盖所加工的所有芯片,无法确定未检测的芯片有无隐患。例如方法(2)采用边信道方法进行检测。从各种公开资料来看对于硬件木马等的微小修改,边信道的检测能力非常有限,而且受集成电路加工的影响非常大。对于微小的电路修改难以实现有限检测。

发明内容

为解决上述技术问题,本发明提出一种针对密码算法芯片的自我检查方法,将检测算法与密码算法集成在一个芯片中,从而实现芯片密码算法的自我检测。

本发明采用的技术方案为:一种针对密码算法芯片的自我检查方法,将检测算法与密码算法集成在同一个芯片中;所述检测算法具体包括以下步骤:

S1、提取密码算法模块的控制信号;

S2、提取密码算法执行单元的输入信号;

S3、以步骤S1提取的密码算法的控制信号作为指示,采用步骤S2提取的密码算法执行单元的输入信号作为输入;基于查找表建立密码算法执行单元检测模型;

S4、提取密码算法执行单元的输出信号;

S5、将步骤S4提取的密码算法执行单元的输出信号与步骤S3所建立的密码算法实行单元检测模型的输出信号进行对比;若对比结果一致,则密码算法执正常,否则密码算法执行异常。

本发明的有益效果:本发明的所提出的方法的有益效果主要表现在三个方面:(1)本发明的方法是一种非破环性的方法,基于密码算法进行建立,可以适用于多种密码算法。(2)本发明的方法不受集成电路加工工艺的影响。(3)本发明通过采集密码算法执行中的相关信号进行异常检测,能实现快速的检测,简单高效,无需占用太多的硬件资源,在一定程度上保证了密码算法硬件层面的可靠性与安全。

附图说明

图1为本发明的建立流程图。

图2为AddRoundKey操作。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

下面以AES(Advanced Encryption Standard,高级加密标准)电路中AddRoundKey操作为例进行说明。

图2为AddRoundKey操作过程,其中a为输入数据矩阵,包括元素a

如图1所示,具体实施例如下:

(1)密码算法控制信号提取:密码算法一般按照一定的顺序进行执行来完成相应的加解密工作。此步骤主要从密码算法模块中提取相应的控制信号,包括控制状态机所处的控制状态,在此控制状态下的配置信息和执行中所需的场景信息。AES电路轮操作包括四个步骤:AddRoundKey、SubBytes、ShiftRows和MixColumns。在该步骤中针对AES电路中AddRoundKey步骤来说,控制状态机此时指定处于AddRoundKey操作,在此控制状态下的配置信息为回合密钥矩阵,执行中所需的场景信息为本次AddRoundKey操作处于AES电路的哪一轮中。

(2)密码算法执行单元输入信号提取:密码算法执行单元会根据相应的输入信号来产生相应的输出信号。这个步骤用来采集密码算法执行单元信号的输入信号。对应于AddRoundKey步骤来说,采集AddRoundKey异或操作的输入信号,即输入数据矩阵。

(3)密码算法执行单元检测模型:根据密码算法的功能,以步骤(1)所提取的密码算法控制信号为指示,采用步骤(2)所采集的密码算法执行单元的输入信号为输入,基于查找表建立简化的密码算法执行单元检测模型,该模型可以用来输出密码算法的功能的部分输出信号。

对应于AddRoundKey步骤来说,该步骤中采用模型为基于查找表的异或运算模型。在实现中该模型一般采用简化的模型,例如本来是一个8位的异或运算,可以只用1位的异或运算模型。通过在不同轮的AddRoundKey步骤配置控制对应不同位的异或运算,同样可以检查所有的运算单元。该步骤的输出为密码算法的参考输出,记作AddRoundKey_ref,是检查的标准。当然实际应用中每轮的部分输出信号也可以是2位、3位或4位。

(4)密码算法执行单元信号输出信号提取:密码算法执行单元会根据相应的输入信号来产生相应的输出信号。这个步骤用来采集密码算法执行单元的输出信号。在该步骤中用来采集密码算法执行单元中AddRoundKey操作输出结果,即输出数据矩阵,记作AddRoundKey_ipl。

(5)密码算法执行单元检测:步骤(3)所产生的基于密码算法执行单元检测模型的部分输出信号AddRoundKey_ref与步骤(4)所采集的采集密码算法执行单元信号的输出信号AddRoundKey_ipl在同一时间周期内进行对比。如果两部分信号一致,即AddRoundKey_ref==AddRoundKey_ipl,则密码算法执行正常;如果两部分信号不一致,则密码算法执行异常。

按照本发明内容进行设计,并把所设计的技术方案和已有的密码算法实现放置在设计中,进行集成电路流片加工制造,便把相应的检测功能集成在一个芯片中,可以实现对密码算法异常执行的检测。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

技术分类

06120116571717