一种抗功耗攻击的安全可重构架构的制作方法

文档序号:11276252阅读:234来源:国知局
一种抗功耗攻击的安全可重构架构的制造方法与工艺

本发明涉及嵌入式可重构系统架构,特别是涉及一种抗功耗攻击的安全可重构架构。



背景技术:

信息时代密码算法作为信息安全的基石常常担当着保护敏感信息的职责。为了应对各种场合的加密需要,在加密效率与灵活性方面对密码算法实现的载体提出了很高的要求。传统上来说加密的实现形式主要有通用处理器实现和专用集成电路实现。然而,随着应用领域对系统的性能、能耗、上市时间等指标需求的不断提高,这两种传统实现方式的弊端就暴露出来。

通用处理器方法适用范围广,但是计算效率低,专用集成电路虽然可以提高计算速度和计算效率,满足性能需求,但是asic器件的灵活性很差。

为了在灵活性和计算效率之间实现很好的权衡,可重构计算(reconfigurablecomputing)技术应运而生。可重构计算是当前计算机系统结构领域的发展趋势之一,它的架构介于通用处理器和asic之间,并且综合了二者长处。它通过对可重构设备进行配置,可以使之由一个通用的计算平台转化为一个专用的硬件系统,以完成具体的计算任务,相当于计算任务同时在时间和空间上展开,显示出了应用的灵活性和很高的计算性能。

但可重构架构最终还是要以cmos电路的形式呈现,就一定会受到旁路攻击尤其是差分功耗攻击的威胁。为了抵御差分功耗攻击常常需要牺牲面积、性能等作为代价,但现有抗功耗攻击方案很难在安全性和各种开销之间达到很好的平衡。



技术实现要素:

发明目的:本发明的目的是提供一种在保证安全性的同时能大幅降低面积和性能开销的抗功耗攻击的安全可重构架构。

技术方案:为达到此目的,本发明采用以下技术方案:

本发明所述的抗功耗攻击的安全可重构架构,包括多行可重构阵列运算行、行控制器、通用寄存器堆、寄存器、输入缓存、输出缓存、可重构查找表、第一多路数据选择器、秘密分享安全防护模块和数据通路动态重构安全防护模块;其中,可重构阵列运算行包括算术逻辑单元、数据置换网络、数据载入单元和数据输出单元;秘密分享安全防护模块包括第二多路数据选择器、异或操作模块、数据缓存模块和第一随机数发生器;数据通路动态重构安全防护模块包括第三多路数据选择器、第四多路数据选择器、第二随机数发生器、第三随机数发生器、第一延时数据通路和第二延时数据通路;其中,所有可重构阵列运算行共用一个可重构查找表,可重构阵列运算行通过通用寄存器堆进行数据存储、读取和传递,相邻两行可重构阵列运算行之间通过数据载入单元、寄存器以及数据输出单元相连,数据载入单元与输入缓存、通用寄存器堆、上一行可重构阵列运算行的输出、可重构查找表以及随机数发生器相连,数据输出单元与输出缓存、通用寄存器堆、下一行可重构阵列运算行的输入以及数据缓存模块相连,最后一行可重构阵列运算行通过数据输出单元、寄存器与第一行可重构阵列运算行的数据载入单元相连,行控制器用于控制数据置换网络进行密码算法中的移位操作以及控制算术逻辑单元进行算术逻辑操作,第一多路数据选择器用于决定可重构查找表的查表地址,第二多路数据选择器用于决定数据缓存模块中数据的来源,第三多路数据选择器用于决定可重构查找表查表前数据通路的长短,第四多路数据选择器用于决定可重构查找表查表后数据通路的长短,第一延时数据通路用于动态改变可重构查找表查表前数据通路的长短,破坏功耗攻击中查表前功耗迹的对齐,第二延时数据通路用于动态改变可重构查找表查表后数据通路的长短,破坏功耗攻击中查表后功耗迹的对齐。

进一步,一个可重构阵列运算行中的数据载入单元和数据输出单元均有n+1个,n的取值范围为大于等于2的正整数,其中,第一个数据载入单元用于读取通用寄存器堆、上一行可重构阵列运算行的输出或可重构查找表的数据,第二个数据载入单元用于读取输入缓存或上一行可重构阵列运算行的输出,第n+1个数据载入单元用于读取随机数发生器或上一行可重构阵列运算行的输出,其他数据载入单元用于读取上一行可重构阵列运算行的输出;第一个数据输出单元用于输出数据至输出缓存、通用寄存器堆或下一行可重构阵列运算行,第n+1个数据输出单元用于输出数据至数据缓存模块或下一行可重构阵列运算行,其他数据输出单元用于输出数据至下一行可重构阵列运算行。

进一步,所述数据缓存模块有两个,分别为第一数据缓存模块和第二数据缓存模块。

进一步,所述第一延时数据通路包括偶数个反相器链,反相器链的有效长短由第二随机数发生器决定;所述第二延时数据通路也包括偶数个反相器链,反相器链的有效长短由第三随机数发生器决定。

进一步,所述秘密分享安全防护模块的秘密分享安全机制包括以下步骤:

s1:可重构查找表查表输出;

s2:将查表结果与随机数发生器产生的随机数相异或,异或得到的结果和随机数一起被读入可重构阵列运算行;

s3:对随机数进行线性变换,该线性变换为本次查表后到下一次查表前经过的线性变换;随机数线性变换执行完毕后进行步骤s4;

s4:第一数据缓存模块写使能有效,数据输出单元将线性变换结果写入第一数据缓存模块中;所有数据s盒查表操作执行完毕后进行步骤s5;

s5:第二数据缓存模块写使能有效,将第一数据缓存模块中的数据写入第二数据缓存模块中;

s6:等待下一张数据流图开始执行;

s7:数据载入单元从通用寄存器堆中读入上一张数据流图的计算结果,s盒查表前和第二数据缓存模块中的数据相异或得到真实的查表地址。

进一步,所述秘密分享安全防护模块的秘密分享安全机制通过配置可重构阵列运算行中闲置的数据移位网络和算术逻辑单元实现。

进一步,只切换数据流图间不同的配置信息,不切换相同的配置信息。

有益效果:本发明公开了一种抗功耗攻击的安全可重构架构,能在算法执行效率与灵活性之间达到良好的平衡,且能有效抵御功耗攻击,在保证安全性的同时,能够大幅降低面积和性能开销。

附图说明

图1为本发明具体实施方式的的可重构架构没有安全机制时的结构示意图;

图2为本发明具体实施方式的可重构架构仅有秘密分享安全机制时的结构示意图;

图3为本发明具体实施方式的可重构架构的秘密分享安全机制的工作流程图;

图4为本发明具体实施方式的可重构架构的结构示意图;

图5为本发明具体实施方式的可重构架构应用数据通路动态重构安全机制前后的加密功耗迹的示意图;

图5(a)为本发明具体实施方式的可重构架构应用数据通路动态重构安全机制前的加密功耗迹的示意图;

图5(b)为本发明具体实施方式的可重构架构应用数据通路动态重构安全机制后的加密功耗迹的示意图;

图6为本发明具体实施方式的可重构架构利用闲置资源配置实现秘密分享安全机制的示意图;

图7为普通配置切换的示意图;

图8为本发明具体实施方式的普通配置切换与可重构架构利用局部重构减少配置信息切换的示意图;

图9为本发明具体实施方式的可重构架构没有安全机制时,映射实现des算法后的功耗攻击结果示意图;

图9(a)为基于汉明距离模型的功耗攻击结果示意图;

图9(b)为基于汉明重量模型的功耗攻击结果示意图;

图10为本发明具体实施方式的可重构架构映射实现des算法后的功耗攻击结果示意图;

图10(a)为基于汉明距离模型的功耗攻击结果示意图;

图10(b)为基于汉明重量模型的功耗攻击结果示意图。

具体实施方式

下面结合具体实施方式和附图对本发明的技术方案作进一步的介绍。

本具体实施方式公开了一种抗功耗攻击的安全可重构架构,包括4行可重构阵列运算行、行控制器、1个通用寄存器堆、寄存器、输入缓存、输出缓存、1个可重构查找表、第一多路数据选择器、秘密分享安全防护模块和数据通路动态重构安全防护模块;其中,可重构阵列运算行包括算术逻辑单元、数据置换网络、4个数据载入单元和4个数据输出单元;秘密分享安全防护模块包括第二多路数据选择器、3个异或操作模块、2个数据缓存模块和第一随机数发生器;数据通路动态重构安全防护模块包括第三多路数据选择器、第四多路数据选择器、第二随机数发生器、第三随机数发生器、第一延时数据通路和第二延时数据通路;其中,所有可重构阵列运算行共用一个可重构查找表,可重构阵列运算行通过通用寄存器堆进行数据存储、读取和传递,相邻两行可重构阵列运算行之间通过数据载入单元、寄存器以及数据输出单元相连,数据载入单元与输入缓存、通用寄存器堆、上一行可重构阵列运算行的输出、可重构查找表以及随机数发生器相连,数据输出单元与输出缓存、通用寄存器堆、下一行可重构阵列运算行的输入以及数据缓存模块相连,最后一行可重构阵列运算行通过数据输出单元、寄存器与第一行可重构阵列运算行的数据载入单元相连,行控制器用于控制数据置换网络进行密码算法中的移位操作以及控制算术逻辑单元进行算术逻辑操作,第一多路数据选择器用于决定可重构查找表的查表地址,第二多路数据选择器用于决定数据缓存模块中数据的来源,第三多路数据选择器用于决定可重构查找表查表前数据通路的长短,第四多路数据选择器用于决定可重构查找表查表后数据通路的长短,第一延时数据通路用于动态改变可重构查找表查表前数据通路的长短,破坏功耗攻击中查表前功耗迹的对齐,第二延时数据通路用于动态改变可重构查找表查表后数据通路的长短,破坏功耗攻击中查表后功耗迹的对齐。

图1为本发明具体实施方式的可重构架构没有安全机制时的结构示意图。图2为本发明具体实施方式的可重构架构仅有秘密分享安全机制时的结构示意图。

一个可重构阵列运算行中的数据载入单元和数据输出单元均有n+1个,n的取值范围为大于等于2的正整数,其中,第一个数据载入单元用于读取通用寄存器堆、上一行可重构阵列运算行的输出或可重构查找表的数据,第二个数据载入单元用于读取输入缓存或上一行可重构阵列运算行的输出,第n+1个数据载入单元用于读取随机数发生器或上一行可重构阵列运算行的输出,其他数据载入单元用于读取上一行可重构阵列运算行的输出;第一个数据输出单元用于输出数据至输出缓存、通用寄存器堆或下一行可重构阵列运算行,第n+1个数据输出单元用于输出数据至数据缓存模块或下一行可重构阵列运算行,其他数据输出单元用于输出数据至下一行可重构阵列运算行。

第一延时数据通路包括偶数个反相器链,反相器链的有效长短由第二随机数发生器决定;所述第二延时数据通路也包括偶数个反相器链,反相器链的有效长短由第三随机数发生器决定。

如图3所示,秘密分享安全防护模块的秘密分享安全机制包括以下步骤:

s1:可重构查找表查表输出;

s2:将查表结果与随机数发生器产生的随机数相异或,异或得到的结果和随机数一起被读入可重构阵列运算行;

s3:对随机数进行线性变换,该线性变换为本次查表后到下一次查表前经过的线性变换;随机数线性变换执行完毕后进行步骤s4;

s4:第一数据缓存模块写使能有效,数据输出单元将线性变换结果写入第一数据缓存模块中;所有数据s盒查表操作执行完毕后进行步骤s5;

s5:第二数据缓存模块写使能有效,将第一数据缓存模块中的数据写入第二数据缓存模块中;

s6:等待下一张数据流图开始执行;

s7:数据载入单元从通用寄存器堆中读入上一张数据流图的计算结果,s盒查表前和第二数据缓存模块中的数据相异或得到真实的查表地址。

秘密分享安全防护模块的秘密分享安全机制通过配置可重构阵列运算行中闲置的数据移位网络和算术逻辑单元实现。只切换数据流图间不同的配置信息,不切换相同的配置信息。

图4为本发明具体实施方式的可重构架构的结构示意图,该结构在图2的基础上对可重构查找表前后数据通路中分别添加了延时数据通路,2个多路数据选择器和2个随机数发生器。安全可重构架构防护密码算法中中非线性部分的安全机制为数据通路动态重构:在可重构查找表的输入和输出数据通路中分别加入一个延时数据通路,它们均由偶数个反相器链组成,每条数据通路的延时按两个反相器的延时递增,具体选择哪条数据通路分别由两个随机数发生器决定。

可重构架构通过寄存器秘密分享机制和数据通路动态重构机制分别防护了密码算法中的线性与非线性操作,能够抵御功耗攻击。寄存器秘密分享机制的实现利用可重构架构中的闲置资源实现,减少了面积开销。由于利用闲置资源导致配置时间的增加通过局部重构来缓解,减少了性能开销。

图5为本发明的可重构架构应用数据通路动态重构安全机制前后加密功耗迹示意图。功耗攻击过程中需要很多的功耗迹,如图5(a)所示,横轴为时间,纵轴为功耗值,在应用数据通路动态重构安全机制前,假设功耗攻击目标为矩形框中波峰的顶点,此时所有功耗迹上的被攻击点在时间上都是对齐的。但在应用数据通路动态重构安全机制后,如图5(b)所示,所有功耗迹上波峰的顶点已不在同一时刻点,破坏了功耗迹的对齐,攻击点被分散,减少了功耗攻击过程中对功耗迹数理统计分析的有效样本数,增加了噪声干扰。

图6为本发明的安全可重构架构利用架构中的闲置资源配置实现秘密分享安全防护机制示意图。在可重构架构中一般算法映射完成后会存在部分资源闲置的情况,若考虑利用这部分闲置资源去实现安全防护机制可以有效减少可重构架构面积的开销。图中利用虚线框框出的假设为不考虑安全机制时算法映射后的闲置资源,在考虑安全机制的前提下,利用行控制器去配置这部分闲置资源实现如寄存器秘密分享安全机制,能减少可重构架构的面积开销。

图7为普通配置切换的示意图。图8为本发明的安全可重构架构利用局部重构减少配置信息切换示意图。在利用部分闲置资源来实现安全机制的时候必定会增加可重构架构的配置信息量,从而增加配置时间,使得架构的性能开销增大。但分组密码算法是多轮轮迭代的结构,轮与轮之间的任务相似度比较大,即用于配置实现这些任务的数据流图之间相似度比较大。如图所示,在不考虑局部重构的前提下,数据流图之间切换需要切换所有配置,事实上很多配置信息都是一样的,而局部重构只需切换不同的部分,相同配置则不需切换。故可以减少配置切换时间,减少性能开销。

图9为本发明的可重构架构没有安全机制时,映射实现des算法后的功耗攻击结果示意图,横坐标为功耗点,纵坐标为相关系数,正确子密钥对应的相关系数曲线以黑色加粗表示,其他错误子密钥对应的的相关系数曲线以灰色表示。对于攻击成功时,可以发现正确子密钥对应的相关系数明显高于错误子密钥的,有明显的尖峰。图9(a)为利用汉明重量模型对轮迭代寄存器进行功耗攻击,只需500条功耗迹,所有子密钥全部攻击成功。图9(b)为利用汉明重量模型对s盒的输出进行功耗攻击,只需400条功耗迹,所有子密钥全部攻击成功。

图10为本发明的安全可重构架构映射实现des算法后的功耗攻击结果示意图,横坐标为功耗点,纵坐标为相关系数,正确子密钥对应的相关系数曲线以黑色加粗表示,其他错误子密钥对应的的相关系数曲线以灰色表示。攻击成功时,正确子密钥对应的相关系数明显高于错误子密钥的,有明显的尖峰,否则攻击失败。图10(a)为利用汉明重量模型对轮迭代寄存器进行功耗攻击,200万条功耗迹,所有子密钥全部攻击失败。图10(b)为利用汉明重量模型对s盒的输出进行功耗攻击,200万条功耗迹,所有子密钥全部攻击失败。

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