一种侧信道分析评估基准板的制作方法

xiaoxiao2021-4-30  308

一种侧信道分析评估基准板的制作方法
【技术领域】
[0001] 本实用新型涉及一种侧信道分析评估基准板SCREEDV2. 0,此基准板是一种基于FPGA硬件平台的开发板。使用该基准板可以对任意算法进行差分能量分析(DPA),电磁能 量分析(EM),错误注入攻击(FA)等,同时也可以利用此基准板进行算法的FPGA实现。本 实用新型评估板为侧信道分析提供了实现以及测量平台,属于信息安全技术领域。
【背景技术】
[0002] 自20世纪中期以来,侧信道分析在密码学界引起了相当大的重视。与传统的密码 分析通常将算法及其实现视为黑盒子,仅利用算法的输入、输出(即明文/密文)实施密钥 破解相比不同的是,侧信道分析利用了密码实现执行密码操作的侧信息(如执行时间、能 量消耗、电磁辐射等)泄露,以及密码实现所执行的操作以及所处理的数据之间的相关性。 侧信道攻击指"攻击者通过算法执行过程中产生的额外信息泄露对算法实现进行破解的攻 击方式"。由于侧信道分析是利用执行密码实现的物理设备上所泄露的信息而非密码方案 固有的缺陷以达到恢复秘密信息的目的,因而从侧信道分析这个领域看来,在理论上被证 明安全的密码方案仍然有可能是不安全的。学术界和产业界的相关研宄和观察表明,与传 统的黑盒子模型相比,侧信息泄露模型能够更好地刻画密码设备的实际场景,因而对密码 实现的安全造成了更加现实和严重的威胁。
[0003]自提出到现在,侧信道分析已经成为对密码设备安全性评估的一个不可回避的问 题。
[0004] 为了采集侧信息中的动态能量消耗,研发了SCREEDV2. 0基准板,使用该基准板可 以采集任意FPGA实现的算法的能量泄露,从而为侧信道分析提供足够的实验数据,为了算 法的安全性分析提供依据。 【实用新型内容】
[0005]针对现有技术中存在的技术问题,本实用新型的目的是提供一种侧信道分析评估 基准板,为准确测量FPGA芯片在执行算法过程中的侧信息提供了测量平台。使用该基准 板可以实现测量能量值(即基准板中计算单元的电压值)的功能,从而实现侧信道的差分 能量分析;基准板在工作过程中,会泄露电磁信息,可以实现侧信道的电磁分析;在工作过 程中,进行错误注入(如激光,电磁,温度等,使得内部运算信息改变,从而改变输出的密文 值),可以实现侧信道的错误注入分析。SCREED基准板是一种用来进行侧信道分析的开发 板。现对本实用新型的各个功能模块的技术设计进行说明。
[0006]本实用新型的技术方案为:
[0007]-种侧信道分析评估基准板,其特征在于,包括:电源模块,以及与所述电源模块 电连接的FPGA控制单元,FPGA计算单元,USB芯片单元,通用输入输出接口,存储单元和测 量电路;所述FPGA计算单元、所述FPGA控制单元分别与所述USB芯片单元、通用输入输出 接口以及一时钟模块连接,所述FPGA计算单元分别与所述通用输入输出接口以及所述存 储单元连接,所述FPGA计算单元的测量信号输出端与所述测量电路连接;所述FPGA控制单 元与FPGA计算单元连接。
[0008] 进一步的,包括一存放所述FPGA控制单元的固化程序的串行闪存模块,其与所述 FPGA控制单元连接。
[0009] 进一步的,包括一存放所述FPGA计算单元的固化程序的串行闪存模块,其与所述 FPGA计算单元连接。
[0010] 进一步的,所述存储单元为同步动态随机存储器,其分别与一系统时钟模块、一参 考时钟模块连接。
[0011] 进一步的,所述存储单元为DDR3芯片。
[0012] 进一步的,所述时钟t吴块为有源贴片晶振。
[0013] 进一步的,包括一USB接口,其一端与所述USB芯片单元连接,另一端用于连接PC。
[0014] 进一步的,包括一用于为所述FPGA控制单元接入外部参考时钟的SM接口,一用 于为所述FPGA接入外部参考时钟的SM接口。
[0015] 本实用新型设备可以支持多种算法的FPGA实现(小于325万逻辑门)。
[0016] 一、侧信道数据分析基准评估板概述:
[0017]SCREEDV2. 0搭载两颗Xilinx公司生产的FPGA芯片,一颗FPGA芯片用于控制管 理,一颗FPGA用于算法实现。SCREEDV2.0还包含一个USB2.0接口,用于与PC机进行通 信,一片DDR3芯片,用于存储运算数据结果。
[0018] 具体规格如下:
[0019] 1?硬件电路板尺寸为16(tomX13(tomX2. 0謹,包含10层PCB板。
[0020] 2. 2 颗XiIinx的FPGA芯片,FPGA计算单元(XC7K325T-2FFG900C,简称K7)和FPGA 控制单元(XC5VLX50-1FFG676C,简称V5)。
[0021] 3. 1颗2Gb镁光MT41J128M16DDR3SDRAM芯片,为计算FPGA提供高速内存。
[0022] 4.板载电源稳压器,可以接收USB供电或者外部直流5V电源供电。
[0023] 5.PC机通过USB接口与SCREEDV2.0连接,完成数据传送和配置功能。
[0024]SCREEDV2.0的硬件模块围绕FPGA控制单元(U6)和FPGA计算单元(U5)设计了 周围模块主要包括电源模块、时钟模块、USB接口模块、DDR3SDRAM模块、SPI-FLASH模块、 加载电路模块设计以及功耗采集测量电路模块等。
[0025] 1)电源模块
[0026]SCREEDV2. 0电源输入为5V/6A的直流电源,可供选择的供电方式有两种,包括 USB供电和外部直流电源供电。SCREEDV2. 0正常电压有3. 3V、2. 5V、1.8V、1.5V、1.2V、 V5_l. 0V、K7_l.OVO工作电压,并要求这些电压稳定,波动范围小于3%。
[0027] 每个电源配置有电源稳定输出指示灯,每个电源正常输出时,对应电源指示灯点 亮,各电源指示灯对应位号如表1所示。
[0028] 表1电源指示灯

[0030] SCREEDV2.0的功能模块使用的电压种类较多,各个电压供电说明如表2所示。表 2中说明了各个电源模块与各部分的连接关系,即供给SCREED各个部分不同的电压值来保 证整个芯片的正常工作。
[0031] 表2电压使用说明
[0032]
[0033] 2)时钟模块
[0034] FPGA控制单元和FPGA计算单元分别配有一个20MHz的有源贴片晶振。其中,20MHz 有源晶振(U28)为FPGA控制单元(U6)提供20M时钟输入;20MHz有源晶振(U29)为FPGA 计算单元(U5)提供20M时钟输入。FPGA的时钟可以任意选择,在基准板设计中选择20MHz 的原因为基准板设计的重点是对FPGA实现的侧信息分析,在高频下,对FPGA的设计有很多 要求,因此选择低频的20MHz,对于绝大多数设计都可以使用20MHz的时钟。当需要高频的 时钟信号时,SCREEDV2. 0有2个SMA接头分别作为FPGA控制单元(U6)和FPGA计算单元 (U5)的外部参考时钟输入,与外部晶振单元相连,作为高速数据传输和专用时钟输入通道 此处设计可以使得FPGA选择任意频率的外部时钟,增加了设计的灵活性。200MHz有源晶 振(U30和U33)为同步动态随机存储器(SDRAM)提供200M的参考有源时钟,其中U33作 为SDRAM的系统时钟,U30作为参考时钟。此时钟的选择是由SDRAM来决定的。
[0035] 3)USB芯片单元
[0036]USB是英文UniversalSerialBus(通用串行总线)的缩写,是一个外部总线标 准,用于规范电脑与外部设备的连接和通讯。USB是应用在PC领域的接口技术,它支持设备 的即插即用和热插拔功能。USB系统用主控制器管理主机与USB设备间的数据传输。它与 主控制器间的接口依赖于主控制器的硬件定义。
[0037]SCREEDV2. 0基准评估板采用了CYPRESS公司CY7C68013-56PVC型号的USB控制 芯片,此款芯片有56个管脚,它的功能把PC传给USB接口的串行数据转换为并行数据发 送,或者把控制单元(Virtex-5)的并行数据转换成串行数据发送给PC。在使用SCREED板 进行数据传输前要对USB控制芯片的固件代码进行编写,设定USB的工作模式,以及信号的 含义,使得设计变得灵活,可以根据控制单元FPGA的需要对固件代码进行修改。
[0038] 4)存储单元
[0039]SDRAM是SynchronousDynamicRandomAccessMemory(同步动态随机存储器) 的简称。
[0040]DDR3同步动态随机存储器(SDRAM)采用I. 5v工作电压,8bit预读位,带宽64位, DDR3目前最高能够达到2000Mhz的速度。DDR3是基于双存储体的结构,内含两个交错的 存储阵列,当FPGA芯片从一个存储体或阵列访问数据时,另一个就已为读写数据做好了准 备,通过这两个存储阵列的紧密切换,读取效率就能得到成倍的提高。
[0041] 选择型号:MT41J128M16 - 16Megxl6x8Banks。此型号特征包括核电压与I/O电压 均为1.5V,可以使用双向差分数据选通,时钟输入为差分时钟(CK,CK#),可以实现自刷新 模式,温度系数(TC)为0°C至95°C,可以实现输出驱动器校准。
[0042] 5)串行闪存模块
[0043]SPI-FLASH的主要功能特点包括:具有可擦除功能,擦除后即可进行再编程的 FLASH内存;可重复擦除和写入;断电后仍能保留数据的储存芯片。
[0044]FPGA控制单元SPI-FLASH芯片(位号U9)由ATMEL公司生产,型号为AT45DB161D。 该芯片存储空间达到128Mbit,作为FPGA计算单元的功能性bit文件(一般为几Mbit,最 大为十几Mbit)的长时间储存单元使用,完全能够满足FPGA计算单元计算以及功能验证程 序的存储要求。
[0045] 选择AT45DB161D芯片的主要功能特点包括:单电源VCC2V5供电,急流串行接 口 :66MHz最大时钟频率;兼容SPI模式0和模式3 ;用户可配置的页面大小;支持页编程 操作;智能编程操作;灵活的擦除选项:页擦除(512bytes),块擦除(4Kbytes),扇区擦除 (128KbyteS),芯片擦除(16Mbit);两个SRAM数据缓冲区(512/528字节);容许接收数据的 同时重新编程闪存阵列;通过整个阵列连续读取的功能;非常适于代码遮蔽应用;低功耗: 7毫安的有效电流值,25yA待机电流值,15yA深度节能值。
[0046]FPGA计算单元SPI-FLASH芯片(位号U7)由NUM0NYX公司生产,型号为N25Q128。 该芯片存储空间达到128Mbit,作为FPGA计算单元的功能性bit文件(一般为几Mbit,最 大为十几Mbit)的长时间储存单元,完全能够满足FPGA计算单元计算以及功能验证程序的 存储要求。
[0047]N25Q128芯片的主要功能特点包括:1. 8V电源电压,4-Kbyte界别分组擦除引导扇 区,XIP启用,串行闪存与108MHz的SPI总线接口SPI兼容串行总线接口,108兆赫(最大) 时钟频率,支持传统的SPI协议和新的四I/O或双I/OSPI协议,通过易失性或非易失性的 可配置寄存器(使内存工作在XIP模式上电后直接)编程/擦除、暂停指令。
[0048] 6)加载电路设计
[0049] 根据SCREEDV2.OFPGA芯片的设计要求,两片FPGA设计有如下加载方式。
[0050] ?FPGA控制单元(XC5VLX50):使用JTAG下载线,把硬件程序的mcs文件烧入串行 闪存U9 ;
[0051] ?FPGA计算单元(XC7K325T):使用JTAG下载线,把计算单元U5的硬件程序烧入 串行闪存U7中。
[0052] 7)测量电路设计
[0053]FPGA计算单元和电压电源芯片是Linear公司的完整的低EMI开关模式LDO电源 LT3071电源芯片,具有良好的稳定性。FPGA计算单元在进行数据运算时,核电压会发生波 动。SCREEDV2. 0主要功能为监测FPGA计算单元在进行运算时的核电压波动及跌落情况。
[0054]SCREEDV2.0的FPGA计算单元测量电路设计是对FPGA计算单元核电压输出的 I.OV进行监测,监测方法即对输出电压串联较小的电阻(精确反应电压跌落和微小波动), 并在一端接有SM连接器(SM接到示波器,能够准确的测量FPGA计算单元核电压电压跌 落和微小波动),跳线J18可短路较小的电阻,作为SM核电压监测的对比测量方式。图8 为FPGA计算单元测量电路原理。
[0055] 3本实用新型测试维护
[0056] 为了实时掌握板卡状态,方便测试和维护,为SCREEDV2. 0添加必要的电源和功能 指示灯,由LED(绿色,D44为红色)指示灯指示不同的电压状态和系统配置的信息。详细 的指示信息如表3所示。
[0057]表3指示灯功能[0058]

[0059] 与现有技术相比,本实用新型的积极效果为:
[0060] 本基准板为算法运行提供硬件实现平台,并为算法运行过程中的能量消耗信息采 集提供硬件采样电路。使用该平台可以对FPGA实现的侧信息进行能量分析,电磁分析以及 错误注入攻击等,为评估FPGA实现的多种抗攻击能力提供基础支撑。该设备具有逻辑容量 大,采样快捷,可靠性强等特点。
【附图说明】
[0061]图ISCREEDV2. 0 系统框图;
[0062] 图2电压转换框图;
[0063] 图3时钟分配图;
[0064] 图4 CY7C68013芯片的功能框图;
[0065] 图5 MT41J128M16芯片的功能框图;
[0066] 图6 SPIFLASH设计原理图;
[0067] 图7 N25Q128设计原理图;
[0068] 图8 FPGA计算单元测量电路原理图。
【具体实施方式】
[0069] 下面结合附图对本实用新型进行进一步详细描述。分别从各个部分的连接以及本 实用新型最终的使用连接方式上给出比较具体的说明。
[0070] 各种连接方式
[0071] 图1SCREEDV2. 0系统框图说明:根据SCREEDV2. 0的功能需求,它的硬件基本组 件包括
[0072] (1)电源模块,与FPGA计算单元(U5),FPGA控制单元(U6),存储单元(SDRAM),测 量电路等多个用电模块相连,为这些单元提供电源供给。
[0073](2)FPGA计算单元(U5),实现对应算法和功能模块的具体计算功能,主要与控制 单元(U6)相连,U6控制U5,给U5传递运算需要命令以及参数等。
[0074] (3)FPGA控制单元(U6),实现与PC通信数据解包与打包数据功能,主要与USB芯 片相连,接收USB芯片的并行数据以及传送给USB芯片并行数据,与计算单元U5相连,对U5 发出控制命令,进行相应的计算功能。
[0075] (4)旧8芯片卬31),型号为0¥7068013,实现旧8传输数据的串行数据转并行数据 和并行数据转串行数据,主要与PC和U6相连。PC通过USB接口与USB芯片相连,为了进行 数据通信,USB芯片与U6相连进行数据传输。
[0076](5)用于存储计算结果的存储芯片DDR3SDRAM(U26,型号为CY7C68013),此芯片与 U5相连,为了给计算单元提供计算空间,可以把U5计算的结果暂时存入到U26中。
[0077](6)SPI-FLASH(U9,型号为AT45DB161D),此单元是为了存放FPGA控制单元(U6)固 化程序的,因此与U6相连。
[0078] (7)SPI-FLASH(U7,型号为N25Q128),此单元是为了存放FPGA计算单元的固化程 序的。
[0079] 此外,SCREEDV2.0还包括了板卡正常工作所必需要的一些配置硬件电路及接口, 包括为FPGA芯片提供工作时钟的时钟芯片;方便其他设备连接的两个通用输入输出接口 (GPIO),分别于U5和U6相连,可以作为它们的输入输出接口;多个扩展LED灯,分别连接U5 和U6,作为它们的输出显示灯;多个测量接口(SMA),分别连接U5和U6,作为它们的输出接 口,可以通过此接口测量一些数据;以及一些外围监控电路等。图中给出的连接即为系统整 体 的数据传输方向。
[0080] 图2电压转换框图说明:SCREEDV2. 0系统的外部电源输入接口位于基准板的右 上角J16直插电源接口,输入电压5V,输入电压经过电压转换模块产生VCC3V3、VCC2V5、 VCC1V8、1. 5V、VCC1V2. 0、1V等电压。在图中可以看到电压分配,FPGA计算单元和FPGA控制 单元以及DDR3SDRAM的电压都由外部5V直流电压或者USB供电。
[0081] 图3是时钟分配图。表明了各个单元可以使用的时钟频率。对于FPGA控制单元 可以使用20MHz时钟(U29)或者由外部SMA接口提供的任意频率时钟;对于FPGA计算单元 可以使用20MHz或者200MHz(U30或者U33)。
[0082] 图4CY7C68013芯片的功能框图说明:CY7C68013是单芯片集成USB2. 0收发器,根 据CY7C68013芯片数据手册,严格按照其功能要求和技术要求经行外围电路设计,包括电 源去耦电容的大小,部分功能信号的上拉和下拉问题。CY7C68013芯片的数据线连接V5,共 29根线,时钟输出接口IF_CLK也与V5相连,作为V5的一个输入时钟,而XTALI/0是USB的 输入时钟接口,由内部晶振给出。特殊管脚说明:
[0083] ? 10[0:28] :29位双向输入输出接口
[0084] ?IF_CLK:时钟接口,用于同步输出数据
[0085] ?XTALI/0:晶振输入/输出接口
[0086] 图5MT41J128M16芯片的功能框图说明,MT41J128M16是存储器芯片:根据《DDR3 数据手册》和FPGA计算单元设计需求说明,对DDR3的设计要严格遵守需求说明进行设计。 此芯片与FPGA计算单元相连,FPGA计算单元计算的数据结果可以存入到动态存储器芯片 MT41J128M16中。通过16位数据线、14位地址线、CTRL以及CLK接口与FPGA计算单元相 连。
[0087]重要信号说明如下:
[0088] ?DATA[0:15]:16位数据输入输出接口;
[0089] ?ADDR [0:13] : 14位地址输入接口;
[0090] ?CTRL:控制命令接口;
[0091] ?CLK:差分输入时钟。
[0092] 图6SPIFLASH设计原理说明:根据AT45DB161D芯片datasheet与FPGA控制单元 (U6)的配置管脚设计要求,FPGA控制单元(U6)和SPIFLASH(U9)的连接有特定的管脚连 接方式,SPIFLASH(U9)的设计要严格遵循其参考设计的要求。把FPGA设计生成的*.mcs 文件程序烧入SPIFLASH(U9)中后,上电后可以自动加载到FPGA控制单元(U6)。下面是U6 与U9的连接信号。重要信号说明如下:
[0093] ? SPI_CLK:串行输入时钟;
[0094] ? D_IN:串行输入接口;
[0095] ? MOSI :串行输出接口;
[0096] .FCS_B:片选信号。
[0097] 图7N25Q128设计原理说明:根据N25Q128 (U7)芯片数据手册与FPGA计算 单元(XC7K325T)的配置管脚设计要求,对于专用的连接管脚有严格的设计要求。SPI FLASH(N25Q128)设计严格遵循datasheet设计要求进行设计。把FPGA设计生成的*.mcs 文件程序烧入U7中后,上电后可以自动加载到FPGA计算单元(U5)。下面是U5与U7之间 的连接信号。
[0098] 重要信号说明如下:
[0099] ?CCLK :串行输入时钟;
[0100] ^DIN:串行输入数据;
[0101] ? DOUT:串行输出数据;
[0102] .FCS_B:片选信号。
[0103] 图8FPGA计算单元测量电路原理说明:此处是设计的要点,实现整个电路就是为 了测量计算单元K7(Kintex-7)的电压值。SCREEDV2. 0的FPGA计算单元测量电路设计是对 FPGA计算单元核电压输出的I.OV进行监测,监测方法即对计算单元串联较小的电阻(精确 反应电压跌落和微小波动),电阻另一端与I.OV电源相连,电阻与U6单元相接的线上引出 一个SM连接器(SM接到示波器,能够准确的测量FPGA计算单元核电压电压跌落和微小 波动),如跳线J18可短路较小的电阻,作为SM核电压监测的对比测量方式,这样就可以测 量计算单元U5的电源。图8为FPGA计算单元测量电路原理。
[0104] 下面列出SCREEDV2. 0基准板的采集FPGA实现能量迹的工作步骤。
[0105] (1)连接SCREED基准板V2.0上的USB接口(USB接口位于基准板上,一端与PC相 连一端与基准板上的USB芯片U26相连)到主机进行供电与通信。
[0106] (2)连接SCREED基准板V2.0上的Virtex-5的JTAG线到PC,把控制单元的程序 烧入到与Virtex-5 相连的SPI-FLASH(AT4OTB161D)。
[0107] (3)连接SCREED基准板V2. 0上的Kintex-7的JTAG线到PC,把计算单元的程序 烧入到与Kintex-7 相连的SPI-FLASH(N25Q128)。
[0108] (4)烧入FLASH后重启USB电源,连接K7测量电压(SMA连接器)和K7触发信号 (SM连接器)到示波器。
[0109] (5)当K7触发信号到来时,可以进行能量消耗的采集。K7端的测量电压即为能量 消耗值。
【主权项】
1. 一种侧信道分析评估基准板,其特征在于,包括:电源模块,以及与所述电源模块电 连接的FPGA控制单元,FPGA计算单元,USB芯片单元,通用输入输出接口,存储单元和测量 电路;所述FPGA计算单元、所述FPGA控制单元分别与所述USB芯片单元、通用输入输出接 口以及一时钟模块连接,所述FPGA计算单元分别与所述通用输入输出接口以及所述存储 单元连接,所述FPGA计算单元的测量信号输出端与所述测量电路连接;所述FPGA控制单元 与FPGA计算单元连接。2. 如权利要求1所述的侧信道分析评估基准板,其特征在于,包括一存放所述FPGA控 制单元的固化程序的串行闪存模块,其与所述FPGA控制单元连接。3. 如权利要求1或2所述的侧信道分析评估基准板,其特征在于,包括一存放所述 FPGA计算单元的固化程序的串行闪存模块,其与所述FPGA计算单元连接。4. 如权利要求3所述的侧信道分析评估基准板,其特征在于,所述存储单元为同步动 态随机存储器,其分别与一系统时钟模块、一参考时钟模块连接。5. 如权利要求4所述的侧信道分析评估基准板,其特征在于,所述存储单元为DDR3芯 片。6. 如权利要求3所述的侧信道分析评估基准板,其特征在于,所述时钟模块为有源贴 片晶振。7. 如权利要求1所述的侧信道分析评估基准板,其特征在于,包括一 USB接口,其一端 与所述USB芯片单元连接,另一端用于连接PC。8. 如权利要求1所述的侧信道分析评估基准板,其特征在于,包括一用于为所述FPGA 控制单元接入外部参考时钟的SM接口,一用于为所述FPGA接入外部参考时钟的SM接
【专利摘要】本实用新型公开了一种侧信道分析评估基准板。本实用新型包括:电源模块,以及与所述电源模块电连接的FPGA控制单元,FPGA计算单元,USB芯片单元,通用输入输出接口,存储单元和测量电路;所述FPGA计算单元、所述FPGA控制单元分别与所述USB芯片单元、通用输入输出接口以及一时钟模块连接,所述FPGA计算单元分别与所述通用输入输出接口以及所述存储单元连接,所述FPGA计算单元的测量信号输出端与所述测量电路连接;所述FPGA控制单元与FPGA计算单元连接。该基准板可以实现测量能量值的功能,从而实现侧信道的差分能量分析;具有逻辑容量大,采样快捷,可靠性强等特点。
【IPC分类】H04L9/08, H04L9/06
【公开号】CN204697071
【申请号】CN201520158373
【发明人】周永彬, 高旭, 张倩
【申请人】中国科学院信息工程研究所
【公开日】2015年10月7日
【申请日】2015年3月19日

最新回复(0)