一种针对旁路攻击的片上供电网络验证方法转让专利

申请号 : CN201611114328.1

文献号 : CN106817215B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡懿慈王晨光闫明周强

申请人 : 清华大学

摘要 :

本发明公开了一种针对旁路攻击的片上供电网络验证方法,包括:对芯片的寄存器传输级网表文件进行逻辑综合和物理设计,获得晶体管级网表文件;根据获得的晶体管级网表文件,建立包括供电网络和负载的电路模型;根据产生的明文‑密文数据对及对应的密钥,对芯片执行加密运算的逻辑过程进行模拟,获得负载的电流波形文件;根据电路模型和负载的电流波形文件,对芯片执行加密运算的物理过程进行仿真,获得芯片的功耗曲线;根据获得的功耗曲线,对芯片进行旁路攻击,获得攻击的猜测密钥;根据获得的猜测密钥,分析旁路攻击的结果,对供电网络的抗旁路攻击能力进行验证。本发明的方法成本较小、准确度高,并且缩短了设计验证的周期。

权利要求 :

1.一种针对旁路攻击的片上供电网络验证方法,包括以下步骤:S10,对芯片的寄存器传输级网表文件进行逻辑综合和物理设计,获得晶体管级网表文件;

S20,根据获得的晶体管级网表文件,采用静态建模的方法提取晶体管级网表文件的寄生参数和连接关系,通过提取获得的晶体管级网表文件的寄生参数和连接关系,建立包括供电网络和负载的电路模型;

S30,根据生成的明文-密文数据对及对应的密钥,对芯片执行加密运算的逻辑过程进行模拟,获得所述负载的电流波形文件;

S40,根据所述电路模型和负载的电流波形文件,对芯片执行加密运算的物理过程进行仿真,获得所述芯片的功耗曲线;

S50,根据获得的功耗曲线,对所述芯片进行旁路攻击,获得攻击的猜测密钥;

S60,根据获得的猜测密钥,分析旁路攻击结果,对所述供电网络的抗旁路攻击能力进行验证。

2.根据权利要求1所述的验证方法,其特征在于,步骤S10包括以下步骤:S10.1,读入芯片的寄存器传输级网表文件和标准单元库文件,对芯片的寄存器传输级网表文件进行逻辑综合,获得门级网表文件和设计约束文件;

S10.2,读入门级网表文件、设计约束文件和工艺库文件,对门级网表文件进行物理设计,获得晶体管级网表文件。

3.根据权利要求1所述的验证方法,其特征在于,步骤S20包括以下步骤:S20.1,读入晶体管级网表文件和工艺库文件,提取晶体管级网表文件的寄生参数,根据所述寄生参数将供电网络等效为由电阻、电容和电感组成的网络,所述寄生参数包括电阻、电容和电感;

S20.2,读入晶体管级网表文件,提取晶体管级网表文件的连接关系,根据所述连接关系将负载等效为供电网络的电源线和地线之间的动态电流源;

S20.3,根据供电网络和负载的等效模型,以及提取出的寄生参数,建立包括供电网络和负载的电路模型。

4.根据权利要求1所述的验证方法,其特征在于:步骤S30中,采用动态建模的方法获得所述负载的电流波形文件。

5.根据权利要求4所述的验证方法,其特征在于,步骤S30包括以下步骤:S30.1,利用芯片采用的加密算法的程序,根据随机产生的密钥和明文获得对应的密文,组成明文-密文数据对;

S30.2,读入所述明文-密文数据对,对芯片执行加密算法的逻辑过程进行模拟,生成记录门级活动信息的值变化转储文件;

S30.3,将生成的值变化转储文件转化成向量文件,获得所述负载的电流波形文件。

6.根据权利要求5所述的验证方法,其特征在于:步骤S30.3中,所述向量文件为0-1矩阵形式的向量文件。

7.根据权利要求1所述的验证方法,其特征在于:步骤S50中,采用差分功耗分析算法对所述芯片进行旁路攻击。

8.根据权利要求1所述的验证方法,其特征在于:步骤S60中,根据获得的猜测密钥,通过计算旁路攻击的猜测熵和/或成功率,对所述供电网络的抗旁路攻击能力进行验证。

说明书 :

一种针对旁路攻击的片上供电网络验证方法

技术领域

[0001] 本发明涉及集成电路设计验证技术领域,尤其涉及一种针对旁路攻击的片上供电网络验证方法。

背景技术

[0002] 近年来,出现的各种不同层次、不同水平的攻击手段,使芯片面临着越来越严重的安全性挑战。其中,旁路攻击对芯片的安全造成了严重的威胁。旁路攻击通过对芯片泄露的功耗等旁路信号进行统计学分析,从旁路信号中获取芯片内部的数据,从而破解出加密信息。加之芯片在运行时所产生的功耗等旁路信号会通过片上供电网络被传导到芯片外部,进而被外界所监测。因此,供电网络在芯片抗旁路攻击能力方面发挥着重要的作用。
[0003] 针对于此,现有技术在对片上供电网络进行设计、分析和验证时,不仅考虑阻抗、噪声容限和电流密度等传统的优化目标,还考虑其抵御旁路攻击的安全性。例如,利用片上供电网络的电学特性给攻击者的监测造成非线性失真或噪声,使攻击者难以测量到真实的旁路信号,从而提高芯片抵御旁路攻击的能力。在这样的背景下,对片上供电网络的抗攻击能力进行验证变得尤为重要。
[0004] 然而,在当前的设计中,只能利用图1示出的FPGA硬件平台对设计的芯片的抗旁路攻击能力进行验证,成本高。并且,该方法只能验证算法和电路设计等层面,无法验证供电网络实际的物理参数对芯片防攻击能力的影响,准确度低。

发明内容

[0005] 针对上述技术问题,本发明提出了一种针对旁路攻击的片上供电网络验证方法,用以准确地验证供电网络的抗旁路攻击能力。该方法包括以下步骤:
[0006] S10,对芯片的寄存器传输级网表文件进行逻辑综合和物理设计,获得晶体管级网表文件;
[0007] S20,根据获得的晶体管级网表文件,建立包括供电网络和负载的电路模型;
[0008] S30,根据生成的明文-密文数据对及对应的密钥,对芯片执行加密运算的逻辑过程进行模拟,获得所述负载的电流波形文件;
[0009] S40,根据所述电路模型和负载的电流波形文件,对芯片执行加密运算的物理过程进行仿真,获得所述芯片的功耗曲线;
[0010] S50,根据获得的功耗曲线,对所述芯片进行旁路攻击,获得攻击的猜测密钥;
[0011] S60,根据获得的猜测密钥,分析旁路攻击结果,对所述供电网络的抗旁路攻击能力进行验证。
[0012] 根据本发明的实施例,上述步骤S10包括以下步骤:
[0013] S10.1,读入芯片的寄存器传输级网表文件和标准单元库文件,对芯片的寄存器传输级网表文件进行逻辑综合,获得门级网表文件和设计约束文件;
[0014] S10.2,读入门级网表文件、设计约束文件和工艺库文件,对门级网表文件进行物理设计,获得晶体管级网表文件。
[0015] 根据本发明的实施例,在上述步骤S20中,通过提取获得的晶体管级网表文件的寄生参数和连接关系,建立包括供电网络和负载的电路模型。
[0016] 进一步地,在上述步骤S20中,采用静态建模的方法提取获得的晶体管级网表文件的寄生参数和连接关系,建立包括供电网络和负载的电路模型。
[0017] 根据本发明的实施例,上述步骤S20包括以下步骤:
[0018] S20.1,读入晶体管级网表文件和工艺库文件,提取晶体管级网表文件的寄生参数,根据所述寄生参数将供电网络等效为由电阻、电容和电感组成的网络,所述寄生参数包括电阻、电容和电感;
[0019] S20.2,读入晶体管级网表文件,提取晶体管级网表文件的连接关系,根据所述连接关系将负载等效为供电网络的电源线和地线之间的动态电流源;
[0020] S20.3,根据供电网络和负载的等效模型,以及提取出的寄生参数,建立包括供电网络和负载的电路模型。
[0021] 根据本发明的实施例,在上述步骤S30中,采用动态建模的方法获得所述负载的电流波形文件。
[0022] 根据本发明的实施例,上述步骤S30包括以下步骤:
[0023] S30.1,利用芯片采用的加密算法的程序,根据随机产生的密钥和明文获得对应的密文,组成明文-密文数据对;
[0024] S30.2,读入所述明文-密文数据对,对芯片执行加密算法的逻辑过程进行模拟,生成记录门级活动信息的值变化转储文件;
[0025] S30.3,将生成的值变化转储文件转化成向量文件,获得所述负载的电流波形文件。
[0026] 进一步地,在上述步骤S30.3中,所述向量文件为0-1矩阵形式的向量文件。
[0027] 根据本发明的实施例,在上述步骤S50中,采用差分功耗分析算法对所述芯片进行旁路攻击。
[0028] 根据本发明的实施例,在上述步骤S60中,根据获得的猜测密钥,通过计算旁路攻击的猜测熵和/或成功率,对所述供电网络的抗旁路攻击能力进行验证。
[0029] 与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0030] 1)本发明的方法通过仿真芯片执行加密运算的逻辑过程和物理过程获得功耗曲线,进而对功耗曲线进行攻击得到直观可用的防攻击能力评价结果,成本较小,方便简单。
[0031] 2)本发明的方法通过提取物理设计输出文件的电阻、电容和电感等寄生参数,建立包括片上供电网络和负载的电路模型,能够在设计阶段就考虑供电网络实际的物理参数对于芯片抗旁路攻击能力的影响作用,进而验证供电网络实际的物理参数对于芯片抗旁路攻击能力的影响,提高了验证的准确度。
[0032] 3)本发明的方法依据物理设计过程输出的晶体管级网表文件,能够在芯片的物理设计阶段完成对供电网络的抗攻击能力的验证,缩短了设计验证的周期。
[0033] 4)本发明的方法基于模拟验证方法,针对每一个密钥,尽可能多地生成对应的明文-密文数据对,从而能够提高模拟验证的覆盖率。
[0034] 5)本发明的方法采用向量文件以0-1矩阵的形式定义电流的波形特征,可以作为仿真程序HSPICE的输入文件,运用时更加简单便利,通用性好。
[0035] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0036] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0037] 图1是传统的针对旁路攻击的硬件验证平台的示意图;
[0038] 图2a是传统的针对旁路攻击的验证方法的流程图,2b是本发明的针对旁路攻击的验证方法的流程图;
[0039] 图3是本发明的实施例中针对旁路攻击的片上供电网络验证方法的流程图;
[0040] 图4是图3所示实施例中步骤S120所示的建立包括供电网络和负载的电路模型的方法的流程图;
[0041] 图5是图3所示实施例中步骤S130所示的建立负载的电流波形文件的方法的流程图;
[0042] 图6是本发明的另一实施例中采用静态建模方法建立电路模型方法的流程图;
[0043] 图7是本发明的另一实施例中建立的包括片上供电网络和负载的电路模型的示意图;
[0044] 图8是本发明的另一实施例中采用动态建模方法建立电流波形文件方法的流程图;
[0045] 图9是本发明的另一实施例中负载的电流波形图。

具体实施方式

[0046] 为了在设计阶段对片上供电网络设计方案的安全性进行验证,本发明提出了一种针对旁路攻击的片上供电网络验证方法。本方法从物理设计的输出文件中提取电路的寄生参数,建立包括供电网络和负载的电路模型。基于自动生成的测试基准对寄存器传输级网表文件进行综合前仿真,得到门级活动信息,并转化为向量文件,得到负载的电流波形文件。基于电路模型和电流波形文件,对芯片执行加密运算的物理过程进行综合后仿真,得到功耗曲线,然后对其进行旁路攻击并分析攻击结果。利用该方法能够在设计阶段考虑片上供电网络对芯片防攻击能力的影响,对片上供电网络设计方案的安全性进行验证,避免了传统的在硬件平台上验证所带来的成本增加等问题。传统的例如基于FPGA平台针对旁路攻击的验证方法和本发明的针对旁路攻击的验证方法的对比如图2a和图2b所示。
[0047] 为使本发明的目的、技术方案和优点更加清楚,以下结合附图和实施例对本发明作进一步地详细说明。
[0048] 实施例一
[0049] 图3是本发明的实施例中针对旁路攻击的片上供电网络验证方法的流程图。下面结合图3以一个测试基准(一组明文-密文数据对)为例详细地说明各个步骤及其原理。
[0050] 步骤S110,对芯片的寄存器传输级网表文件进行逻辑综合和物理设计,获得晶体管级网表文件。
[0051] 其中,从寄存器传输级网表文件到晶体管级网表文件的验证过程,与目前主流的电子设计自动化软件相兼容。在本实施例中,采用现有的电子设计自动化软件工具,对寄存器传输级网表文件进行逻辑综合和物理设计等过程,得到晶体管级网表文件。具体过程如下:
[0052] 首先,读入寄存器传输级网表文件和标准单元库文件,对寄存器传输级网表文件进行逻辑综合,得到门级网表文件和设计约束文件(SDC,Synopsys Design Constraints)等。
[0053] 然后,读入门级网表文件、设计约束文件和工艺库文件,对门级网表文件进行划分、布图规划、布局、供电网络布线、时钟布线、总体布线和详细布线等过程,完成物理设计,得到晶体管级网表文件。
[0054] 应当说明的是,本实施例中的寄存器传输级网表是描述整个芯片的寄存器传输级网表,晶体管级网表是描述整个芯片的晶体管级网表。
[0055] 步骤S120,根据获得的晶体管级网表文件,建立包括供电网络和负载的电路模型。
[0056] 在本实施例中,优选地采用静态建模(Static Modeling)的方法提取获得的晶体管级网表文件所描述的电路的寄生参数,从而建立包括供电网络和负载在内的电路模型。其中,可以优选地按照图4所示的流程图建立包括供电网络和负载的电路模型。具体过程如下:
[0057] 步骤S121,读入晶体管级网表文件和工艺库文件,提取晶体管级网表文件的电阻、电容和电感寄生参数,根据提取的电阻、电容和电感寄生参数将供电网络等效为一个由电阻、电容和电感组成的网络。
[0058] 当然,在该步骤中也可以提取晶体管级网表文件的电阻和电容寄生参数,根据提取的电阻和电容寄生参数将供电网络等效为一个由电阻和电容组成的网络。在具体实施过程中,本领域技术人员可以根据实际需要和工艺节点选择所要提取的寄生参数。
[0059] 步骤S122,读入晶体管级网表文件,提取电路的内部连接关系,根据提取的连接关系将负载等效为供电网络的电源线和地线之间的动态电流源。
[0060] 步骤S123,根据供电网络和负载的等效模型,以及提取出的电阻、电容和电感寄生参数,建立包括供电网络和负载的电路模型。
[0061] 进一步地,本实施例中通过提取物理设计输出文件的电阻、电容和电感寄生参数,能够在设计阶段考虑供电网络实际的物理参数对于芯片抗旁路攻击能力的影响。从而可以提高验证供电网络抗旁路攻击能力的准确度。
[0062] 步骤S130,根据产生的一组明文-密文数据对及对应的密钥,对芯片执行加密运算的逻辑过程进行模拟,获得所述负载的电流波形文件。
[0063] 在本实施例中,优选地采用动态建模(Dynamic Modeling)的方法产生一组明文-密文数据对以及与其相对应的密钥。并将产生的一组明文-密文数据对作为一个测试基准,对芯片执行加密运算的逻辑过程进行模拟。进而建立负载的电流波形文件,以作为仿真程序HSPICE的输入文件。进一步地,可以优选地按照图5所示的流程图建立负载的电流波形文件。具体过程如下:
[0064] 步骤S131,利用芯片采用的加密算法的程序,获得一组明文-密文数据对。在该步骤中:
[0065] 首先,随机产生一条密钥和若干条明文。
[0066] 然后,优选地利用实现芯片所采用的加密算法的C语言程序,自动生成与上述若干条明文相对应的若干条密文,得到一组明文-密文数据对及与其相对应的密钥。具体地,基于随机产生的一条密钥和N条明文,自动生成与之相对应的N条密文,这样的N对明文-密文数据对组成一组明文-密文数据对,即一个测试基准,并以该条密钥标记。进一步地,针对每一个密钥,尽可能多地生成明文-密文数据对,以提高模拟验证的覆盖率。在具体实施过程中,本领域技术人员可以根据实际需要对参数N的大小进行设定。
[0067] 步骤S132,读入获得的一组明文-密文数据对,依次对芯片执行加密算法的逻辑过程进行模拟,生成记录门级活动信息的值变化转储文件。
[0068] 在本实施例中,读入获得的一组明文-密文数据对,将其作为一个测试基准,对寄存器传输级网表文件进行综合前仿真,模拟芯片执行加密算法的逻辑过程,生成记录门级活动信息的值变化转储文件(VCD,Value Change Dump)。其中,门级活动信息是指门级电路的翻转活动信息。
[0069] 步骤S133,将生成的值变化转储文件转化成向量文件,获得所述负载的电流波形文件。
[0070] 在本实施例中,读入生成的值变化转储文件VCD,计算并生成0-1矩阵形式的向量文件(VEC,Vector File),代表负载的动态电流源模型,即电流波形文件。其中,0-1矩阵形式的向量文件VEC是指其向量元素为0或1。进一步地,本实施例中实现了将值变化转储文件VCD转化为向量文件VEC的C语言程序,向量文件以0-1矩阵的形式定义了电流的波形特征,可以作为仿真程序HSPICE的输入文件。
[0071] 步骤S140,根据所述电路模型和负载的电流波形文件,对芯片执行加密运算的物理过程进行仿真,获得所述芯片的功耗曲线。
[0072] 在本实施例中,读入电路模型和电流波形文件(也称测试向量),进行综合后仿真,仿真芯片实际执行加密算法的物理过程,同时监测芯片的功耗情况,得到芯片的功耗曲线。
[0073] 步骤S150,根据获得的功耗曲线,对所述芯片进行旁路攻击,获得攻击的猜测密钥。
[0074] 在本实施例中,读入获得的功耗曲线,优选地采用差分功耗分析算法对功耗曲线进行旁路攻击,得到攻击的猜测密钥。
[0075] 步骤S160,根据获得的猜测密钥,分析旁路攻击的结果,对所述供电网络的抗旁路攻击能力进行验证。
[0076] 在本实施例中,读入猜测密钥和动态建模方法中产生的原始密钥,进行对比分析,计算旁路攻击的猜测熵、成功率等验证指标。若旁路攻击的猜测熵较低、成功率较高,则说明片上供电网络设计方案的抗旁路攻击能力不足;反之,若旁路攻击的猜测熵、成功率均在设计要求的安全阈值内,则说明片上供电网络设计的抗旁路攻击能力满足设计的安全性要求。本实施例中通过分析攻击结果(即,猜测熵和/或成功率),能够给出直观可用的防攻击能力评价结果。应当说明的是,本领域的技术人员可以根据具体情况设定安全阈值的大小,在此不做具体限定。
[0077] 针对本实施例中的验证方法,需要说明的是,优选地:
[0078] 所述负载的电流波形文件中,负载等效为分段线性(PWL,Piecewise Linear)类型的动态电流源。
[0079] 所述逻辑综合使用SYNOPSYS Design
[0080] 所述物理设计使用CADENCE
[0081] 所述参数提取使用CADENCE 以及SYNOPSYS
[0082] 所述综合前仿真使用SYNOPSYS
[0083] 所述综合后仿真使用SYNOPSYS
[0084] 所述差分功耗分析算法基于DPA Contest attack_wrapper-2.2.0工具包。
[0085] 在此应当指出的是,本领域的技术人员根据验证的需要,可以基于多个测试基准对片上的供电网络的抗旁路攻击能力进行验证。基于多个测试基准的验证方法只需通过重复多次上述步骤S131(利用芯片采用的加密算法的程序,获得一组明文-密文数据对及对应的密钥)获得多组明文-密文数据对,其余的具体实施方式与本发明实施例的基于一个测试基准的验证方法的具体实施方式类似,具体请参见基于一个测试基准的验证方法部分的描述。为了减少冗余,在此不做赘述。
[0086] 实施例二
[0087] 本实施例基于SMIC的180nm工艺,使用主流的电子设计自动化软件,完成了使用128位高级加密标准(AES,Advanced Encryption Standard)加密算法的加密芯片设计。芯片的输入为128位密钥和128位明文,输出为加密后的128位密文。下面针对该芯片设计不同的供电网络,分别得到设计方案AES-1和AES-2,并对不同的供电网络对于抗旁路攻击能力的影响进行验证分析。进一步对本发明验证方法的工作过程以及所达到的验证效果进行详细的描述。
[0088] 基于加密算法的Verilog语言设计,以及SMIC的180nm标准单元库和工艺库文件,完成逻辑综合和物理设计。
[0089] 从晶体管级网表文件中提取电路寄生参数,并建立电路模型,方法如图6所示。
[0090] 建立的电路模型将供电网络等效为由电阻、电容和电感等组成的电路网络,如图7所示。
[0091] 以明文-密文数据对作为测试基准,模拟芯片执行加密运算的逻辑过程,得到门级电路的活动信息VCD,并转化为矩阵形式的向量文件VEC,得到电流波形文件,方法如图8所示。
[0092] 电路负载等效为PWL类型的动态电流源,电流波形如图9所示。
[0093] 读入电路模型和测试向量,仿真芯片实际执行加密算法的物理过程,得到功耗曲线。
[0094] 使用相同数量的功耗曲线,基于相同的旁路攻击算法,分别对AES-1和AES-2的设计方案进行旁路攻击,并通过与原始密钥进行对比得到攻击成功率。
[0095] 对攻击成功率进行三次样条插值,拟合得到使攻击成功率达到100%时所需要的功耗曲线的最小数量,并将其标准化,如表1所示。从中可以得出,设计方案AES-1和AES-2的抗旁路攻击能力存在明显的差异。因此,不同的供电网络设计方案(芯片的其余设计全部相同),对旁路攻击的抵抗作用不一样。
[0096] 表1对片上供电网络安全性的验证结果
[0097]
[0098] 通过实施例二可以证明:本发明的验证方法能够在设计阶段仿真芯片执行加密运算的物理过程,对芯片进行旁路攻击,为后续给出直观可用的防攻击能力评价结果提供有力的依据,能够考虑供电网络实际的物理参数对芯片防攻击能力的影响,在芯片设计的早期阶段实现安全性验证。本发明的针对旁路攻击的片上供电网络验证方法具有成本低、准确度高以及设计验证周期短等优点。
[0099] 以上所述,仅为本发明的具体实施案例,本发明的保护范围并不局限于此,任何熟悉本技术的技术人员在本发明所述的技术规范内,对本发明的修改或替换,都应在本发明的保护范围之内。