一种可重构密码处理器及抗功耗攻击方法转让专利

申请号 : CN201110302279.5

文献号 : CN102509036B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 单伟伟田朝轩陆寅超刘新宁余云帆时龙兴

申请人 : 东南大学

摘要 :

本发明公开了一种可重构密码处理器,包括可重构阵列、控制电路、功能配置单元和抗攻击配置单元,其中功能配置单元通过控制电路将可重构阵列配置为工作单元和闲置单元,抗攻击配置单元使所述闲置单元产生随机化的功耗。本发明还公开了一种利用可重构密码处理器实现的抗功耗攻击方法。本发明具有电路开销小,资源利用率高,灵活性高,抗攻击能力强,适用于多种密码算法,可扩展,可升级等特点,可用于信息安全和计算机体系结构相关领域,为设计高安全性、高灵活性、面积适中的密码处理器芯片提供新的解决方案。

权利要求 :

1.一种可重构密码处理器,其特征在于:包括可重构阵列、控制电路、功能配置单元和抗攻击配置单元,其中功能配置单元通过控制电路将可重构阵列配置为工作单元和闲置单元,抗攻击配置单元根据抗攻击优化配置算法的运算结果来配置所述闲置单元使其产生随机化的功耗;对不同密码算法,可重构密码处理器所使用的处理单元不同,相应的闲置单元也不同;每个可重构处理单元都可以配置实现多种运算,在不同的工作模式下实现不同的运算;每一个闲置单元都可以重新配置其运算。

2.一种利用如权利要求1所述可重构密码处理器实现的抗功耗攻击方法,其特征在于,包括如下步骤:(1)功能配置:功能配置单元将外部输入指令解析成第一算法的参数,并将可重构阵列配置为工作单元和闲置单元,指定所述工作单元执行第一算法,以实现特定功能;

(2)抗攻击配置:预先对可重构密码处理器做第一算法的功耗攻击,得到最优化的第二算法;抗攻击配置单元根据第二算法的指令来配置所述闲置单元做随机化运算;所述的随机化配置方法,对闲置子电路做功能隔离,并配置闲置子电路做随机数赋值操作,随机数异或操作或者其他随机化数值运算;当功能配置信息改变后,抗攻击优化配置算法也会相应的改变,选择新的抗攻击配置指令,控制闲置单元重新配置;

(3)进行抗功耗攻击的加解密运算:需要加密的数据进入所述工作单元按照第一算法进行运算,同时闲置单元按照第二算法配置的运算进行随机化伪操作产生随机功耗。

3.根据权利要求2所述的抗功耗攻击方法,其特征在于:所述功能配置和抗攻击配置包括如下步骤:

1)读取互连网络配置信息,配置密钥计算模块的硬件电路;

2)计算得到第一算法所需密钥,并将该密钥存储至密钥存储单元中;

3)读取全局变量存储配置信息,配置全局变量存储单元;

4)读取剩下模块的互连网络配置信息,配置相应的硬件电路;

5)读取第二算法的信息,配置闲置单元做随机化运算;

6)检测配置工作是否完成,如果没有完成,则返回步骤3);如果已经完成,则继续步骤(3)。

说明书 :

一种可重构密码处理器及抗功耗攻击方法

技术领域

[0001] 本发明涉及信息安全和集成电路设计技术领域,尤其是一种利用可重构方法实现的密码处理器及抗功耗攻击方法。

背景技术

[0002] 随着现代社会的日益信息化、数字化与网络化,人们对信息安全技术的需求越来越广泛和深入,信息安全产品已成为整个社会良性运转的重要保障。其中高性能高安全性的密码处理器是必不可少的基础硬件,各种基于DES(Data Encryption Standard,数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)、RSA、ECC(Elliptic Curves Cryptography,椭圆曲线密码算法)和HASH(哈希)等算法的密码协处理器芯片得到了广泛地研究和开发。
[0003] 随着集成电路设计技术的发展,很多安全密码处理器采用片上系统(SoC)的解决方案以提高数据交互性能。但是在性能提高的同时,密码处理器也面临着各种各样的安全风险。密码算法的数学安全性可以由算法本身得到保证,而近年来以功耗攻击为代表的旁路攻击(Side-Channel Attack,SCA)对密码处理器的安全性提出了严峻的挑战,它能让攻击者通过分析密码设备在密钥操作时泄露的旁路信息(如功耗信息、电磁辐射等)来获得关键的密钥信息,其攻击效率比传统的数学攻击高数个数量级,而且实施起来也更加简单。为了有效抵御旁路攻击,研究者基于隐藏技术(Hiding)和掩码技术(Masking)的思想进行了广泛而深入的研究。隐藏技术的基本思路是切断密码处理器处理的数据值与芯片旁路信息量之间的联系;掩码技术则通过随机化密码芯片所处理数据的中间值来提高安全性。然而,这些研究大都以较大的代价来换取密码处理器安全性能的提高。例如已报道的波动差分逻辑电路,可以抵御150万次样本攻击,但其代价是3倍的面积消耗却只有1/4的运算速度。这使得集成密码算法模块的SoC芯片必须在功能灵活性、性能以及安全性之间进行折衷。而在国民经济和社会发展中,诸如各种银行卡类、POS机、安全识别仪器等实际应用对密码处理器提出了近乎苛刻的要求,即要求密码处理器在有限的面积和功耗下实现较大的数据吞吐量并提供较高的安全性。如何在有限电路资源约束下实现多种加解密方法并能有效抵御旁路攻击已成为了安全密码处理器设计领域亟需解决的重要问题。
[0004] 在这种情形下,可重构思想应运而生,即在实现不同密码算法时将硬件软件化,使硬件可以像软件一样被编程、修改和重用。利用可重构阵列结构设计密码处理器的思想唤起了学术界极大的研究热情,但目前仍处于起步阶段。众多学者针对RSA、HASH、AES等多种密码算法的可重构实现进行了广泛的研究。而针对近年来研究较为热门的可重构密码处理器,尚未见到能令其有效抵御旁路攻击的方法的相关报道。国际和国内的研究主要集中在对可重构密码处理器的灵活性和性能两方面,而在对可重构密码处理器的抗旁路攻击、提升安全性方面,目前尚未有合理有效的解决方法,这成为可重构密码处理器面向实际应用时一道必须攻克的障碍。

发明内容

[0005] 发明目的:针对上述现有密码处理器在安全性方面存在的问题和不足,本发明的目的是提供一种高安全性的可重构密码处理器及抗功耗攻击方法。
[0006] 技术方案:为实现上述发明目的,本发明采用的技术方案为一种可重构密码处理器,包括可重构阵列、控制电路、功能配置单元和抗攻击配置单元,其中功能配置单元通过控制电路将可重构阵列配置为工作单元和闲置单元,抗攻击配置单元使所述闲置单元产生随机化的功耗。
[0007] 本发明采用的另一种技术方案为一种利用可重构密码处理器实现的抗功耗攻击方法,包括如下步骤:
[0008] (1)功能配置:功能配置单元将外部输入指令解析成第一算法(即加解密运算算法)的参数,并将可重构阵列配置为工作单元和闲置单元,指定所述工作单元执行第一算法;
[0009] (2)抗攻击配置:抗攻击配置单元根据第二算法(即抗攻击优化配置算法)的指令来配置所述闲置单元做随机化运算,产生随机化的动态翻转功耗,扰乱整体电路功耗与所处理数据之间的相关性,从而达到抗功耗攻击的效果;
[0010] (3)进行抗功耗攻击的加解密运算:需要加密的数据进入所述工作单元按照第一算法进行运算,同时闲置单元产生随机功耗,以抵御功耗攻击。
[0011] 功耗攻击的原理是用一定的方法凸显出处理器在工作过程中的动态能量消耗与被处理的数据的相关性,如差分功耗攻击利用数学统计的方法分析出所猜测的正确密钥与错误密钥产生的功耗差异性。如果能够切断功耗与所处理数据之间的相关性,就可以达到抗功耗攻击的效果。可重构阵列的功能配置单元将外部输入指令解析成加密算法的参数(如加密算法、密钥值、密钥长度)来配置一定的处理单元(Process Element,简称PE)用作指定的加解密算法。在加解密运算过程中,闲置子电路进行随机化操作,产生随机化的功耗信息,从而影响整体功耗信息,切断其与正在处理的数据之间的关联性。
[0012] 可重构芯片的特性是可以根据不同的配置实现不同的功能。对于不同的密码算法,可重构密码处理器的配置信息肯定不同,所使用的处理单元也不相同,因此相应的闲置子电路也不相同。这就需要有不同的随机化配置。这些针对不同密码算法的随机化配置能够使闲置子电路做随机化操作,产生随机化的功耗信息。抗攻击配置单元通过随机化配置闲置子电路,使其产生随机化功耗掩盖运算过程中的实际功耗,从而令功耗攻击难以奏效。当功能配置信息改变后,随机化配置也会相应的改变,选择新的抗攻击配置指令,控制闲置子电路重新配置,因此所述的随机化配置方法适用于多种不同的密码算法。
[0013] 所述的随机化配置方法,对闲置子电路做功能隔离,并配置闲置子电路做随机数赋值操作,随机数异或操作或者其他随机化数值运算。每个可重构处理单元都可以配置实现多种运算,在不同的工作模式下实现不同的运算。在闲置子电路中,每一个闲置的可重构处理单元(PE,即闲置单元),都可以重新配置其运算,令其做随机数赋值操作,随机数异或操作或者其他随机化数值运算。具体的运算由随机化配置信息决定。
[0014] 所述功能配置和抗攻击配置可包括如下步骤:
[0015] 1)读取互连网络配置信息,配置密钥计算模块的硬件电路;
[0016] 2)计算得到第一算法所需密钥,并将该密钥存储至密钥存储单元中;
[0017] 3)读取全局变量存储配置信息,配置全局变量存储单元;
[0018] 4)读取剩下模块的互连网络配置信息,配置相应的硬件电路;
[0019] 5)读取第二算法的信息,配置闲置单元做随机化运算。
[0020] 6):检测配置工作是否完成,如果没有完成,则返回步骤3);如果已经完成,则继续步骤(3)。
[0021] 有益效果:本发明具有电路开销小,资源利用率高,灵活性高,抗攻击能力强,适用于多种密码算法,可扩展,可升级等特点,可用于信息安全和计算机体系结构相关领域,为设计高安全性、高灵活性、面积适中的密码处理器芯片提供新的解决方案。

附图说明

[0022] 图1为可重构密码处理器总体结构框图;
[0023] 图2为可重构阵列经过配置后的工作单元和闲置单元路径示意图;
[0024] 图3为可重构密码处理器工作流程图;
[0025] 图4为可重构密码处理器的配置流程图;
[0026] 图5为经过差分功耗攻击得到的差分功耗曲线图。

具体实施方式

[0027] 下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0028] 如图1所示,可重构密码处理器包括可重构阵列、控制电路、功能配置单元以及抗攻击配置单元。其中可重构阵列是可重构芯片的主体部分,它可以根据不同的配置信息被配置实现不同的功能;其基本组成单元是可重构处理单元(PE),它们是一些功能相同的小单元,对可重构阵列的配置其实就是配置这些处理单元的工作与否,因此总是会有一些处理单元处于工作状态(为工作单元),而另一些处于闲置状态(为闲置单元),即产生本方法所利用的闲置子电路。功能配置单元接收并存储来自总线的配置信息,控制电路根据功能配置单元存储的配置信息将可重构阵列配置为指定的密码算法;而抗攻击配置单元根据抗攻击优化配置算法的指令使闲置子电路做随机化操作,产生随机化的功耗值,扰乱整体电路功耗与所处理数据之间的相关性,使其达到抵御功耗攻击的目的。
[0029] 如图2所示,为可重构密码处理器在配置完成后的工作单元和闲置单元路径示意图。可重构功耗随机化模块就是利用图2非工作路径上的PE单元工作的。假定现有的配置加密算法路径由灰色的PE运算单元组成,在选定加密算法路径后,路径外白色的PE单元并不工作。所述的随机化配置方法,就是随机抽取部分闲置子电路进行随机化伪操作(操作结果并不输出,不影响密码算法功能),这些伪操作将产生随机化的功耗,从而使得攻击者无法捕捉到与密钥具有相关性的功耗信息。
[0030] 如图3所示,可重构密码处理器初始化后,可重构阵列的功能配置单元将外部输入指令解析成加密算法的参数(如加密算法、密钥值、密钥长度)来配置一定的处理单元用作指定的加解密算法。抗攻击优化配置算法预先对密码处理器作指定加解密算法的功耗攻击进而得到最优化的抗功耗攻击配置方法。抗攻击配置单元根据抗攻击优化配置算法的运算结果来配置闲置PE单元。配置完成后,数据进入可重构加解密模块进行运算并输出结果,此时闲置PE单元产生一定的功耗配合工作中的加解密模块,使密码处理器整体功耗能够掩盖运算过程中的实际功耗,从而令功耗攻击难以奏效。当功能配置信息改变后,抗攻击优化配置算法也会相应的改变,选择新的抗攻击配置指令,控制闲置PE单元重新配置。
[0031] 如图4所示,可重构密码处理器初始化后,首先读取互连网络配置信息配置密钥计算部分的硬件电路,之后计算得到所需密钥(如在DES算法中是各轮的子密钥),把它存到密钥存储单元中。然后读取全局变量存储配置信息,配置全局变量存储单元。所谓的全局变量存储单元是指在加解密过程中需要预先配置的数据存储模块,例如在DES算法中就是指8个S盒。之后读取剩下功能模块的互连网络配置信息,配置相应的硬件电路。最后读取抗攻击配置信息,配置闲置子电路做随机化运算。然后检测配置工作是否完成,如果没有完成,则从配置全局变量存储单元开始继续配置;如果配置完成,则可重构密码处理器就可以进行加解密操作了,整个配置工作也就完成了。
[0032] 一个实施案例
[0033] 在一种可重构密码处理器的抗功耗攻击方法的一个具体实施案例中,采用专门设计的粗粒度可重构阵列密码处理器,并实现了AES、DES等多种算法,下面以DES算法具体实现为例,用基于汉明距离功耗模型的差分功耗分析攻击作为攻击手段来说明本发明的抗攻击方法。根据CMOS电路的汉明距离功耗模型,用电路中的寄存器在某个特定时段内0→1转换和1→0转换的总数量来刻画电路在该时段内的功率消耗。因此,针对功耗攻击,在该案例中,只关心密码处理器中寄存器的使用情况。该案例中的可重构阵列所使用的寄存器有:
[0034] 1.用于S盒置换的寄存器,4位的有8个,8位的有1个,分别称为RS1-8和RS9;
[0035] 2.用于其他置换的寄存器有4个,都是64位,分别称为RP1-4;
[0036] 3.用于异或的寄存器有12个,都是64位,分别称为RX1-12;
[0037] 4.中间寄存器有2个,都是64位,称为RT1-2;
[0038] 共计27个寄存器,1192位。根据汉明距离功耗模型,将这些寄存器的在某一时刻的汉明距离值总和视为芯片整体功耗。
[0039] 使用该可重构阵列,实现了DES算法,并对它做了安全性攻击测试。在实现的DES中,使用的寄存器包括RS1-8、RP1-4、RX1-6、RT0-1,共800位。不使用的寄存器有R9、RX7-12,共计392位。
[0040] 根据所述的一种可重构密码处理器的抗功耗攻击方法,令闲置子电路做随机化操作。在该案例中,在每一轮操作的同时,赋予所有闲置的392位寄存器随机值,这些寄存器的输入连接至随机数输入端,脱离原先的功能,因此寄存器翻转情况是随机化的。随机数产生为硬件伪随机数发生器。
[0041] 做了1000组明文测试,获取所有1192位寄存器的总汉明距离值,然后做差分功耗攻击。根据差分功耗攻击原理,如果得到的某一差分功耗曲线中有明显的尖峰出现,则说明该曲线所对应的子密钥猜测是正确的,即攻击者获得了正确的子密钥。而如果对所有的64个子密钥猜测值,对应的差分功耗曲线均没有尖峰出现,那么就说明闲置子电路产生的随机化功耗扰乱了密码处理器所处理数据与其功耗之间的关联,也就说明所述的一种可重构密码处理器的抗功耗攻击方法达到了抗功耗攻击的目的。在该案例中,经过差分功耗攻击得到的DES算法第一轮的所有64个猜测子密钥的差分功耗曲线如图5所示。
[0042] 从图5中可以看到在所有的64个曲线中均没有明显的尖峰出现,攻击者无法得到正确的子密钥,这就说明所述的一种可重构密码处理器及抗功耗攻击方法具有抗功耗攻击的能力。
[0043] 该案例证明一种可重构密码处理器及抗功耗攻击方法是切实可行的,能够达到可重构密码处理器抗功耗攻击的目的。