一种抗简单功耗分析攻击的高斯采样电路的制作方法

文档序号:19745575发布日期:2020-01-21 18:20阅读:357来源:国知局
一种抗简单功耗分析攻击的高斯采样电路的制作方法

本发明属于信息安全算法电路实现领域,更具体地,涉及一种抗简单功耗分析攻击的高斯采样电路。



背景技术:

随着量子计算的发展,传统的公钥加密体制的安全性受到了威胁。基于格理论的公钥加密体系因其抗量子攻击、高效的加密效率以及简单的硬件实现等特点成为了后量子时代极具潜力的密码体制。

在常见的基于格理论的密码体制中,利用了满足离散高斯分布的误差来掩盖秘密信息。因此,高斯采样电路是构成此类基于格理论的密码体制硬件电路的重要模块。虽然格密码体制能够有效抵抗量子算法的攻击,但与传统的公钥密码体制一样,其硬件电路都会受到侧信道攻击的威胁。攻击者利用高斯采样电路所泄露的侧信道信息可以恢复出密文以及密钥,因此为了基于格理论的密码体制能够在未来日常应用中的实现,设计出抵抗侧信道攻击的高斯采样电路是十分必要的。

侧信道攻击技术包括:时间分析攻击、功耗分析攻击、电磁攻击和计算故障攻击等。其中,功耗分析攻击以其高效、实现简单且所需资源少的特点,已被公认为一种窃取私密信息的强大手段。根据侧信道信息分析原理,功耗分析技术可被具体分为:简单功耗分析、差分功耗分析和相关性功耗分析等。其中,简单功耗分析技术可以通过选择输入来获取设备执行运算时所泄露的功耗特征,再与模板功耗曲线进行对比分析从而推测私密信息。它是一种通过只对少量功耗曲线的观察和分析即可获取私密信息的方法。而对于高斯采样电路,目前的研究主要集中于抗时间分析攻击,对于抗简单功耗分析攻击的研究则很少,因此对于具有抗简单功耗分析攻击能力的高斯采样电路的设计与研究具有重大意义。



技术实现要素:

针对现有技术的缺陷,本发明的目的在于提供一种抗简单功耗分析攻击的高斯采样电路,旨在掩盖高斯采样过程的功耗信息,实现抵抗选择输入简单功耗分析攻击的问题。

为实现上述目的,本发明提供了一种抗简单功耗分析攻击的高斯采样电路,包括控制模块、随机数产生模块、二分比较模块、第一单口ram、采样结果输出模块以及功耗信息掩盖模块;随机数产生模块的输出端分别与二分比较模块的输入端、功耗信息掩盖模块的输入端连接,第一单口ram的输出端与所述二分比较模块的另一个输入端连接,采样结果输出模块的输入端与二分比较模块的输出端连接;

控制模块用于控制电路的状态转移和使能;随机数产生模块通过移位寄存器产生均匀分布的随机数;二分比较模块采用二分搜索定位随机数在分布累积函数表中的地址,得到该随机数概率值下的采样结果;第一单口ram用于存储分布累积函数表;采样结果输出模块用于对二分比较模块的采样结果进行取模运算产生输出;功耗信息掩盖模块用于比较产生随机功耗来掩盖实际采样功耗信息,实现对简单功耗攻击的抵抗作用。

优选地,二分比较模块包括地址指针寄存器和第一比较器,第一比较器的输出端与地址指针寄存器的输入端连接,用于将存放分布累积函数表的第一单口ram读取的数据与产生的随机数进行比较,根据第一比较器输出逐次修改地址指针寄存器。

优选地,第一单口ram存放具有高斯分布的分布累积函数表,其地址为高斯采样值,每个地址存放的数据为从初始地址开始到该地址的概率累积。

优选地,功耗信息掩盖模块包括一个存放伪分布累积函数表的第二单口ram、位移寄存器和第二比较器,存放伪分布累积函数表的第二单口ram的输出端与第二比较器连接,用于提供第二比较数据源,产生随机功耗信息。

优选地,功耗信息模块采用二分搜索定位随机数在伪分布累积函数表中的地址,得到比较结果。

优选地,二分搜索通过多次设置寄存器指针,逐次缩小采样范围,最终定位到采样结果。

优选地,第二单口ram存放的伪分布累积函数表与第一单口ram存放的分布累积函数表值相同,存放的顺序不同。

本发明所构思的以上技术方案,通过随机数产生模块产生均匀分布的随机数,二分比较模块在控制模块的作用下读取存储于单口ram中的分布积累函数并与所述均匀随机数进行对比,利用二分搜索算法更新地址指针寄存器,所述指针地址在采样结果输出模块中进行确认符号与取模运算,并输出采样结果,实现了满足离散高斯分布的采样,极大地缩减了采样过程中的复杂度,提高了电路的运行效率。作为抵抗简单功耗攻击的手段,通过功耗信息掩盖模块在采样过程的每个周期产生随机的功耗,掩盖采样电路因执行采样算法而泄露出的功耗信息,从而有效地抵御选择输入简单功耗分析攻击。

附图说明

图1是本发明提供的抗简单功耗分析攻击的高斯采样电路的结构示意图;

图2是本发明提供的高斯采样电路的二分搜索算法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间不构成冲突就可以相互组合。

图1为本发明实施例提供的抗简单功耗分析攻击的高斯采样电路结构图,包括控制模块、随机数产生模块、二分比较模块、第一单口ram、采样结果输出模块以及功耗信息掩盖模块;随机数产生模块的输出端分别与二分比较模块的输入端、功耗信息掩盖模块的输入端连第一单口ram的输出端与所述二分比较模块的另一个输入端连接,采样结果输出模块的输入端与二分比较模块的输出端连接;

控制模块用于控制电路的状态转移和使能;随机数产生模块通过移位寄存器产生均匀分布的随机数;二分比较模块采用二分搜索定位随机数在分布累积函数表中的地址,得到该随机数概率值下的采样结果;第一单口ram用于读取分布累积函数表作为第一比较数据源;采样结果输出模块用于对二分比较模块的采样结果进行取模运算产生输出;功耗信息掩盖模块用于比较产生随机功耗来掩盖实际采样功耗信息,实现对简单功耗攻击的抵抗作用。

具体地,随机数产生模块包括112bit寄存器和位移电路。该随机数产生模块将外部的32位均匀随机数发生器当作随机数源,112bit寄存器存储随机数,再由位移电路进行位移操作。

具体地,二分比较模块包括地址指针寄存器和第一比较器,第一比较器的输出端与地址指针寄存器的输入端连接,用于将存放分布累积函数表的第一单口ram读取的数据与产生的随机数进行比较,根据第一比较器输出逐次修改地址指针寄存器。当采样完成112位随机数,该模块按照算法进行二分搜索。二分搜索算法原理如图2所示,min、max和mid三个指针分别表示二分区间的头尾和中间位置。在采样过程中,采样输出的范围始终落在{min,max}之间。其中,输入相关参数包括:精度参数λ,尾部分布参数zt,符号位s∈{0,1},均匀随机数r∈{0,1,…,(2λ-1)}。通过比较随机输入与中间值所指向的cdt值,缩小采样输出值所落在的区间范围,每次比较都能使当前的区间缩小一半,所以经过固定的[log2zt]次比较,可以确定具体的采样结果。

每个时钟周期进行一次比较,根据比较结果更新寄存器指针min、max的值以缩小二分搜索区间,并将指针mid作为地址对存放cdt数据的第一单口ram进行访问读取,得到下一周期用于比较的数据。经过6个时钟周期的二分搜索,得到结果k。采样结果输出电路根据一位均匀随机数决定采样结果的符号并输出。加上一个初始化周期,采样器需要8个周期进行二分搜索和结果输出。由于产生112位用于比较的随机数只需4个周期,并且实现的电路与二分搜索无关。因此将采样器设计成流水线结构,在进行当前采样值的生成时,同时收集用于下一个采样过程的随机数。这样可以固定8个时钟周期产生一个满足离散高斯分布的采样,并具有抵抗时间分析攻击的能力。

具体地,第一单口ram存放具有高斯分布的分布累积函数表。

具体地,功耗信息掩盖模块包括一个存放伪分布累积函数表的第二单口ram(cdt_fake)、一个线性反馈位移寄存器(linearfeedbackshiftingregister,lfsr)和112bit的第二比较器,存放伪分布累积函数表的单口ram的输出端与第二比较器连接,用于提供第二比较数据源,产生随机功耗信息。lfsr每个周期输出一个6bit的随机数rng_fake,作为输入到cdt_fake的地址。cdt_fake与第一单口ram一样,存放着cdt值t(x),但存放的顺序是随机打乱的。从cdt_fake中读取出的数据与112bit随机数进行比较,生成比较结果fake_flag输出,该结果与二分比较模块之间相互独立。功耗信息掩盖模块的输出对采样结果没有影响,它的作用是在采样过程的每个周期产生随机的功耗,掩盖采样电路因执行采样算法而泄露出的功耗信息,从而有效地抵御选择输入简单功耗分析攻击。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1