寄存器翻转时刻随机化控制电路的制作方法

文档序号:6602605阅读:228来源:国知局
专利名称:寄存器翻转时刻随机化控制电路的制作方法
技术领域
本发明主要涉及到密码芯片旁路攻击防御领域,特指利用两个不同时钟域之间的信号传输实现寄存器翻转时刻随机化的控制电路。
背景技术
旁路攻击是一种针对密码芯片的密钥破解技术,这种攻击技术绕过了纯数学破解的计算复杂性,通过分析芯片在运行密码算法时所泄漏的旁路信息来实现窃取算法密钥的目的。相对于传统的密钥破解技术,旁路攻击极大的降低了密钥搜索空间,对安全系统造成很大威胁。差分功耗分析(DPA=Differential Power Analyse)攻击是现有旁路攻击中的典型代表,对密码芯片具有很大的威胁性。DPA攻击通过大量采样密码芯片在执行加、解密算法时所消耗的瞬态功耗轨迹,并利用统计学的方法分析功耗样本与算法内部某些中间结果的相关性来验证所猜测的若干密钥位是否正确。由于DPA攻击是一种基于统计分析的攻击技术,因此攻击者必须将所有采样的瞬态功耗轨迹按照所要分析的中间结果变化时刻进行时间对齐。在普通的同步电路中,寄存器输出端的信号总是在系统时钟的上升沿统一发生翻转,这使得攻击者很容易实现功耗轨迹时间对齐的目的。因此,在已有成功的DPA攻击实例中,攻击者都选择了密码算法电路中关键寄存器的输出端信号作为功耗相关性分析的目标。根据DPA攻击的这一特性,国内外研究者提出了基于随机化的DPA攻击防护思想。主要可分为两种实现方式,一种方式是通过在算法执行过程中随机的插入伪操作来扰乱分析目标的产生时刻。这种方式的缺点在于时间随机化的粒度较大,难以实现足够的随机化程度。而且攻击者也有可能识别伪操作产生的功耗特征,进而在功耗样本中加以过滤。随机化的另一种实现方式是采用异步电路实现密码算法。在异步电路中由于没有同步时钟,因而也就不具有同步的寄存器输出信号。但是针对旁路攻击防护领域的异步电路设计实现方法本身还处于研究阶段,目前还没有能被公认的成熟可靠的设计方法和相关工具。因此,采用异步电路实现密码算法在电路设计的复杂性和可靠性方面存在缺陷。

发明内容
本发明要解决的技术问题就在于针对现有技术存在的技术问题,本发明提出了一种能够实现寄存器翻转时刻随机化的控制电路,通过将算法中关键寄存器翻转时刻随机化的方法增大攻击者对功耗样本时间对齐的难度,从而增大差分功耗攻击的难度。为解决上述技术问题,本发明提出了一种寄存器翻转时刻随机化控制电路,它包括1.两个不同时钟域下的数据传输请求、应答信号的控制单元,每个请求、应答信号控制单元包括两个带复位、置位功能的D触发器和一个两输入或非门;2.在系统上电复位后两个控制单元可以周期性的产生请求和应答信号,其中请求信号连接数据通路中相应时钟域下寄存器的同步使能端,实现数据的跨时钟域传输;利用不同频率时钟信号之间相位差的变化实现在高频时钟域中寄存器翻转时刻相对于低频时钟上升沿的随机化。与现有技术相比,本发明的优点就在于1、本发明利用不同频率时钟信号的相位差变化关系实现密码算法电路中关键寄存器翻转时刻的随机化。相对于使用随机插入伪操作的随机化技术,本发明的寄存器翻转时刻随机化程度更高,更难以被攻击者识别。2、本发明提出的寄存器翻转时刻随机化控制电路结构简单,且全部由同步逻辑单元实现。相对于采用异步电路实现的随机化方法,降低了电路的设计复杂性。3、本发明提供电路设计实现过程中相关信号的时序约束条件计算方法,降低了电路设计实现难度。


图1是本发明的寄存器翻转时刻随机化控制电路结构示意图;图2是本发明具体实施的原理示意图;图3是本发明具体实施中请求、应答信号的时序图。
具体实施例方式以下将结合附图和具体实施例对本发明做进一步详细说明。图1是本发明提出的寄存器翻转时刻随机化控制电路结构示意图,控制电路包括 Clk_a时钟域下的信号控制单元和Clk_b时钟域下的信号控制单元两部分。Clk_a时钟域控制单元包括两个带复位、置位端的D触发器101和102以及或非门103,两个D触发器的时钟输入端连接Clk_a。触发器101输入Clk_b时钟域的请求信号 Req_b,输出与Clk_a时钟边沿对齐的应答信号Ack_a。其实现的功能为,当Req_b信号为1 时,Ack_a信号在Clk_a时钟上升沿跳变为1,当Req_b信号为0时,Ack_a信号在Clk_a时钟上升沿跳变为0。或非门103的输入端连接Clk_b时钟域的Req_b和经过一级buffer单元的Ack_b信号,输出端连接触发器102的输入端,触发器102输出与Clk_a时钟边沿对齐的请求信号Req_a。其实现的功能为,当Req_b和Ack_b信号都为0时,Req_a信号在Clk_a 时钟上升沿跳变为1,当Ack_b信号跳变为1时,Req_a信号在Clk_a时钟上升沿跳变为0。 为了避免在Ack_b信号跳变为0而同时Req_b信号跳变为1的情况下或非门103产生毛刺信号,电路中在Ack_b信号端添加了一级buffer单元104使Ack_b信号跳变略晚于Req_b 信号。Clk_b时钟域控制单元结构与Clk_a时钟域控制单元相同,其区别在于D触发器 201和202的时钟输入端连接的是Clk_b时钟。此外,Reset信号连接至触发器101、201和 202的复位端以及触发器102的置位端。这样,当系统复位时Req_a信号为1而Req_b、Ack_ b和Ack_a信号保持为低,在电路正常工作后请求、响应信号由控制电路周期性产生。本发明所提出的寄存器翻转时刻随机化控制电路具体实施原理如图2所示。在图中我们假设寄存器2的输出端信号可以被攻击者选作分析目标,而寄存器1和寄存器3没有攻击隐患。由此,我们称寄存器2为关键寄存器而寄存器1和寄存器3为普通寄存器。关键寄存器在芯片内部产生的时钟Clk_a下工作,而普通寄存器的工作时钟(1103与芯片系统时钟相位同步,实现密码算法电路与外围电路以及片外信号的同步传输。关键寄存器与普通寄存器之间的数据传输通过寄存器翻转时刻控制电路产生的数据请求信号Req_a和 Req_b控制,Req_a和Req_b分别连接相应时钟域中数据通路寄存器的同步使能端,当请求信号为1时,寄存器在对应的时钟上升沿时刻采样输入数据。这样由于时钟(让_3与(让3 的频率差异就可以导致密码算法电路中关键寄存器翻转时刻相对于Clk_b跳变沿的变化。 由于Clk_a和Clk_b都是周期信号,这使得两个时钟的相位差变化情况会表现出周期性的特点。在这种情况下,攻击者一旦获得了 clk_a的频率信息就可以通过周期性的将功耗轨迹进行时间平移的方法来实现时间对齐的目的。为了解决这一问题,本发明要求内部时钟生成器能够产生不同频率的时钟信号,通过随机数生成器产生的信号控制(3让_&在不同时钟频率间随机切换。图3显示了请求、响应信号以及数据通路的时序关系。下面通过描述图2电路中数据的传输来解释控制电路中请求、响应信号的工作过程。在电路运行过程中,当寄存器2向组合逻辑B输出数据后,控制电路在下一个Clk_a的上升沿将接收数据请求信号Req_a置为1,即将寄存器1和寄存器3的同步使能端置位为1。在这之后的第一个Clk_b上升沿, 寄存器1将数据Datal打入组合逻辑A中,同时,应答信号Ack_b被置为1。在这之后的第一个Clk_a的上升沿Req_a信号被置为0。由此完成数据从Clk_b时钟域向Clk_a时钟域的传送。当Req_a信号为0后,应答信号Ack_b在下一个Clk_b的上升沿被置位到0,同时数据请求信号Req_b置为1,开始数据从Clk_a时钟域向Clk_b时钟域的传送。具体的操作过程与上述相同。图3中的虚线箭头指示了输入数据在三个寄存器中的传输过程。为保证本发明提出的寄存器翻转时刻随机化控制电路能够稳定工作,图2所示的电路中各种信号还需要满足一定的时序要求。主要包括时钟Clk_a与Clk_b的频率要求、 数据传输路径的建立时间要求和请求、响应信号需要满足的时序要求。对于时钟Clk_a与Clk_b的频率要求方面,由于时钟Clk_b要满足与外围电路的信号同步传输,因此,在系统中cik_b时钟域的电路需要保持固定的数据吞吐率。即在图2 所示的原型电路中,寄存器1必须保持每3个Clk_b时钟周期从前级电路接收一次数据,而寄存器3必须保持每3个Clk_b时钟周期向后级电路发送一次数据。因此,Clk_b时钟可以设置为系统时钟的三倍频。而由图3所示的请求、响应信号时序关系可知,要保证寄存器1 和寄存器3每3个Clk_b时钟周期都能传输数据,则Clk_a的时钟周期必须小于Clk_b的时钟周期,即Clk_a的时钟频率必须高于Clk_b。对数据传输路径建立时间的要求包括组合逻辑A的路径时间Tsetup A和组合逻辑B 的路径时间Tsetup B,组合逻辑A的路径建立时间可由下式计算TSetup—A Tpath—A+Tsetup—reg2(1)公式中Tpath A是组合逻辑A的最大路径传输延迟,Tsetup reg2是寄存器2的数据输入端建立时间约束。根据图3中所描述的数据传输关系,寄存器1在Clk_b的第一个时钟上升沿将数据打入组合逻辑A,同时应答信号Ack_b被置为1。经过一个(让_13时钟周期后应答信号Ack_b被置为0,同时数据请求信号Req_b被置为1。在这之后的第一个Clk_a时钟上升沿寄存器2采样组合逻辑A的输出信号。由此可知,假设八1\是时钟(让_3与时钟(11 b的相位偏差,则组合逻辑A相对于寄存器2的建立时间约束如下式所示Tpath_A+Tsetup_reg2 < Tclk^AT1(2)式中T。lk b是的Clk_b时钟周期。由于在电路工作过程中,AT1始终为一个大于0的随机值,因此可以将组合逻辑A的最大路径延迟约束定义为下式Tpath_A〈 Tclk_b-Tsetup_rexg2(3)对于组合逻辑B的最大路径延迟约束可以通过相似的方法推导。当寄存器2将新数据打入组合逻辑B的同时,应答信号Ack_a被置为1。经过时刻八1~2后,在第一个(让3 时钟的上升沿Req_b信号被置为0,再经过一个Clk_b时钟周期寄存器3将采样组合逻辑B 的输出信号。因此,组合逻辑B的路径建立时间约束要求可由下式计算Tpath_B+Tsetup_reg3 <Tclk—b+AT2(4)公式中Tpath B是组合逻辑A的最大路径传输延迟,Tsrtup Mg3是寄存器3的数据输入端建立时间约束。由于我们约束Clk_a的时钟周期始终小于Clk_b,因此Δ T2的最小取值等于T。lk—b与T。lk a的差。因此可以将组合逻辑B的最大路径延迟约束定义为下式Tpath—B〈 2Tclk—b_Tclk—a_Tsetup—reg3(5)请求、响应信号需要满足的时序要求包括Req_a信号和Ack_a信号相对于时钟 Clk_b的建立时间约束、Req_b信号和Ack_b信号相对于时钟Clk_a的建立时间约束以及 Req_a信号和Req_b信号作为数据通路寄存器同步使能信号的建立时间约束。假设Req_a 信号和Ack_a信号的路径建立时间为Tsrtup a,Req_b信号和Ack_b信号的路径建立时间为 Ts_—b。对于Tsrtup a,由于Clk_a的时钟周期小于Clk_b,则信号和Ack_a信号跳变沿相对于Clk_b上升沿的最小时间间隔等于两个时钟周期的差值。因此只要约束Req_a信号和Ack_a信号的路径建立时间小于两个时钟周期的差值即可保证信号能被Clk_b稳定采样,即满足以下公式Tsetup_a < Tclk—b_Tclk—a,max(6)其中Telka,max表示Clk_a所有可能的时钟周期值的最大值。对于Tsetup b,同样由于Clk_a的时钟周期小于Clk_b,在一个Clk_b周期中即使Req_b信号和Ack_b信号来不及被第一个Clk_a上升沿采样还能被下一个Clk_a上升沿采样采样。因此只要约束Req_b信号和Ack_b信号的路径建立时间小于一个Clk_a时钟周期即可保证信号被及时采样,即满足以下公式
权利要求
1. 一种寄存器翻转时刻随机化控制电路,其特征在于它包括 两个不同时钟域下的数据传输请求、应答信号的控制单元,每个请求、应答信号控制单元包括两个带复位、置位功能的触发器和一个两输入或非门;在系统上电复位后两个控制单元可以周期性的产生请求和应答信号,其中请求信号连接数据通路中相应时钟域下寄存器的同步使能端,实现数据的跨时钟域传输;利用不同频率时钟信号之间相位差的变化实现在高频时钟域中寄存器翻转时刻相对于低频时钟上升沿的随机化。
全文摘要
本发明公开了一种寄存器翻转时刻随机化控制电路,通过本发明提供的信号时序约束条件计算方法实现,可以利用不同频率时钟信号间的相位差变化实现高频时钟域中寄存器翻转时刻相对于低频时钟跳变沿的随机化,它包括两个不同时钟域下数据传输请求、应答信号的控制单元,每个请求、应答信号控制单元包括两个带复位、置位功能的D触发器和一个两输入或非门。
文档编号G06F21/00GK102254110SQ20101017693
公开日2011年11月23日 申请日期2010年5月20日 优先权日2010年5月20日
发明者乐大珩, 何小威, 孙岩, 张均安, 张明, 张民选, 李少青, 段志奎, 窦强, 谭晓强, 赵振宇, 陈吉华, 马卓 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1