可抵御差分功耗分析攻击的加密处理装置、集成电路芯片及密码设备的制作方法
【专利摘要】本实用新型公开了一种可抵御差分功耗分析攻击的加密处理装置、集成电路芯片及密码设备。所述的加密处理装置包括:掩盖处理电路单元SecMasking;预处理电路单元SecPrepare;和S盒电路单元SecSbox。本实用新型能够实现密码运算设备电路的工作功耗与运算数据及运算操作的无关化,并且其可以被广泛应用于需要高度安全性能的加解密运算密码设备。
【专利说明】可抵御差分功耗分析攻击的加密处理装置、集成电路芯片及密码设备
【技术领域】
[0001]本实用新型属于信息安全【技术领域】,具体而言,涉及一种可抵御差分功耗分析(Differential Power Analysis,简称DPA)攻击的加密处理装置、集成电路芯片及密码设备。
【背景技术】
[0002]加密技术通常分为两大类:对称分组密码算法以及非对称分组密码算法,其中,对称分组密码算法是指加密和解密均使用同一个密钥,这种加密技术当前被广泛采用,如美国政府所采用的DES (Data Encrypt1n Standard,数据加密标准)加密标准就是一种典型的“对称式”加密法,它的Sess1n Key长度为56bits。非对称分组密码算法是指加密和解密所使用的不是同一个密钥,通常有两个必须配对使用的“公钥”和“私钥”。
[0003]以经典的对称分组密码算法的典型实现为例,如图1所示,在图1中r代表当前轮变换的轮序数,P和k代表当前轮变换的轮分组数据和轮密钥,σ和λ表示此轮内的线性层变换,而唯一的非线性层变换Y则基本由多个S盒非线性变换组成。图1所示的架构并不仅仅适用于AES (Advanced Encrypt1n Standard,高级加密标准)、DES等常见对称分组密码算法,也适用于已知或未知的包含非线性S盒构造的其它对称分组密码算法。
[0004]密码分析是密码学的重要分支,典型的密码分析通常不考虑密码系统的具体实现,而是仅通过数学推理、统计分析、高性能计算、可证明安全等途径来发现密码系统中的密钥信息或不安全因素,这些分析方法主要包括差分分析、线性分析、相关密钥分析、代数分析、线性逼近、困难问题求解、归约证明等。
[0005]而在实际中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如智能卡、RFID (Rad1 Frequency Identificat1n,射频识别)、密码协处理器、SoC (Systemon Chip,片上系统)密码芯片、密码机等。在这些密码系统的实现环境中,攻击者不仅可以进行“黑盒”询问,而且往往还可以通过反向工程和微探测技术等手段获得算法的硬件结构和编码实现方法,并可以观察和测量密码变换的运行时间、能量消耗、电磁辐射等信息,甚至还可以“干预”密码变换的正常运行使其出错。攻击者利用这些额外的信息有可能实现比“黑盒攻击”更有效地密码破译。人们通常把这种环境下的攻击称为“旁路攻击(SideChannel Attack)”。由于高效的攻击性能,旁路攻击已经引起了国际学术界、工业界以及各国政府的高度重视和关注,成为密码分析和密码工程领域发展最为迅速的方向之一。
[0006]差分功耗分析是使用最广泛的旁路攻击方法,通过记录密码设备对大量不同数据分组加密或解密操作时的功耗曲线,能从功耗曲线中恢复出密码设备中的密钥。差分功耗分析利用的是密码设备能量消耗的数据依赖性,使用多条功耗曲线来分析设备在某个固定时刻的能量消耗情况,并将能量消耗视作被处理数据的函数。
[0007]差分功耗分析攻击实施的依据是密码设备的功耗依赖于设备所执行的密码算法的中间值。因此,如果试图抵御这种攻击,就要降低甚至消除这种依赖性,最常见的防御方法有两种:隐藏和掩码。
[0008]隐藏策略的目标是消除密码设备的功耗与设备所执行的操作和所处理的中间值之间的相关性,可以通过两种途径实现这一目标:第一种是使用特殊的方式构建密码设备,使其功耗随机化,这意味着设备在各个时钟周期的功耗随机分布;第二种是使设备对于所有操作和所有操作数均具有同样的功耗,即设备在各个时钟周期的功耗相等。
[0009]掩码技术的核心思想是:在计算的开始时,首先使用一些随机掩码对消息和密钥进行掩码操作,而其后所有的操作则几乎与常规的计算过程完全相同;但是,在某些特定步骤的最后几个步骤中,例如,在某一轮加密变换的最后,或者在计算过程中线性操作的最后,掩码的值必须是已知的,以便在计算执行结束时重新恢复出所期望的数据值。
[0010]但在上述策略中,其在针对以S盒查表操作为表征的非线性运算中通过采用很多份冗余的伪查表操作来掩盖唯一真查表操作来提高安全性,不可避免地,其面积资源开销较大。另外,在针对以S盒查表操作为表征的非线性运算中通过采用加性和乘性随机掩码因子、及不同极性数域之间的转换操作来提高安全性,也会造成面积资源成本的大幅上升,从而不利于资源受限环境下可抵御差分功耗分析攻击的加密处理装置及方法的实现。
实用新型内容
[0011]鉴于此,本实用新型实施例的目的在于提供一种针对含有S盒查表操作的密码算法可抵御差分功耗分析攻击的加密处理装置、集成电路芯片及密码设备。
[0012]本实用新型实施例采用以下技术方案实现:
[0013]一种可抵御差分功耗分析攻击的加密处理装置,包括:
[0014]掩盖处理电路单元SecMasking,用于将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为多份随机数据;
[0015]预处理电路单元SecPr印are,用于依据随机数f对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ;
[0016]S盒电路单元SecSbox,用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
[0017]优选地,SecMasking单元包括D触发器DO、Dl、D2以及按位异或器X1、X2,其中:
[0018]源数据K和随机数Γ被分别提供至按位异或器Xl的两输入端;
[0019]按位异或器Xl的输出端与按位异或器X2的一输入端相连,随机数f被提供至按位异或器X2的另一输入端;
[0020]按位异或器X2的输出端与D触发器DO的数据输入端相连;
[0021]所述随机数f与D触发器Dl的数据输入端相连;
[0022]所述随机数Γ与D触发器D2的数据输入端相连;
[0023]D触发器DO、Dl、D2的输出端分别与SecPr印are单元的相应输入端相连。
[0024]优选地,所述SecPrepare单元包括:按位异或器X3、X4、X5,线性变换单元σ O、σ 1、σ 2, AddRoundKey变换单兀ARK,以及gent参与变换单兀GADD,其中:
[0025]当前有效的密码算法子密钥K和随机数f被分别提供至按位异或器X3的输入端;
[0026]SecMasking单元包括的D触发器DO、Dl及D2输出的三份数据pV Pr1及Plr2被相应提供至线性变换单元σ O、σ I及σ 2的输入端;
[0027]按位异或器Χ3的输出端以及线性变换单元σ O的输出端分别与AddRoundKey变换单元ARK的两输入端相连;
[0028]线性变换单元σ I以及σ 2的输出端分别与按位异或器Χ4的两输入端相连;
[0029]AddRoundKey变换单元ARK的输出端以及按位异或器Χ4的输出端分别与按位异或器Χ5的两输入端相连;
[0030]按位异或器Χ5的输出端与gent参与变换单元GADD的一输入端相连,所述随机数xr以及实时更新变量gent被分别提供至gent参与变换单元GADD的另外两输入端;
[0031]gent参与变换单元GADD的输出端与SecSbox单元的输入端相连。
[0032]优选地,所述gent参与变换单元GADD基于被输入的信息做以下处理:
[0033]对按位异或器X5的输出信息以及所述随机数f进行按位异或操作;
[0034]对所述按位异或操作结果以及实时更新变量gent进行布尔相加操作,输出预处理数据
[0035]优选地,SecSbox单元包括N个非线性变换SecS基本单元,在所述SecSbox单元中:
[0036]SecPrepare单元输出的预处理数据I/被划分成多份之后分别输入对应N个可相异的SecS基本单元;
[0037]随机数f以及f均被分别提供至每个SecS基本单元的另两个输入端;
[0038]分别对每个SecS基本单元的相同类型的输出端进行拼凑处理,以形成三个输出端数据HlVnf1以及Hf2,其中,所述三个输出端数据HlV Hf1以及Hf2按位异或操作的结果等于基于源数据P'密码算法子密钥K以及密码算法普通S盒查表操作进行相关运算操作的结果。
[0039]优选地,所述SecS基本单元包括:多路选择器MO、Ml以及M2,与之对应的三组D触发器组DmOO?DmOk、DmlO?Dmlk、Dm20?Dm2k以及三组按位异或器组XmOO?XmOk、XmlO ?Xmlk、Xm20 ?Xm2k,其中:
[0040]SecPrepare单元输出的预处理数据I/被划分成多份之后提供至当前SecS基本单元的数据bif被提供至所述多路选择器MO、Ml以及M2的控制选择端;
[0041]所述多路选择器MO、Ml以及M2的多个数据备选端分别与相对应的D触发器组中的多个D触发器的输出端相连;
[0042]所述多路选择器MO、Ml以及M2对应的D触发器组中的多个D触发器的输入端与对应的按位异或器组中的多个按位异或器的输出端对应相连;
[0043]随机数f被分别提供至所述按位异或器组XmOO?XmOk中的多个按位异或器的一输入端,随机数f被分别提供至所述按位异或器组XmlO?Xmlk中的多个按位异或器的一输入端,随机数f与f的按位异或操作结果被分别提供至所述按位异或器组Xm20?Xm2k中的多个按位异或器的一输入端;
[0044]所述D触发器组中的多个D触发器的输出端与相对应的所述按位异或器组中的多个按位异或器的另一输入端呈环状链式连接;
[0045]所述多路选择器MO、Ml以及M2的输出端分别输出待拼凑数据m'、Hiir1以及m%,其中i = I?N。
[0046]优选地,所述多份随机数据相互异或的结果等于所述源数据少。
[0047]一种集成电路芯片,其包括如上述实施例所述的可抵御差分功耗分析攻击的加密处理装置,所述加密处理装置包括:
[0048]掩盖处理电路单元SecMasking,用于将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为多份随机数据;
[0049]预处理电路单元SecPr印are,用于依据随机数f对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ;
[0050]S盒电路单元SecSbox,用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
[0051]一种密码设备,其包括如上述实施例所述的集成电路芯片,所述集成电路芯片包括如上述实施例所述的可抵御差分功耗分析攻击的加密处理装置,具体地,所述加密处理装置包括:
[0052]掩盖处理电路单元SecMasking,用于将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为多份随机数据;
[0053]预处理电路单元SecPr印are,用于依据随机数f对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ;
[0054]S盒电路单元SecSbox,用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
[0055]在本实用新型实施例中,其SecMasking单元采用以通用随机掩码(randommasking)技术为基础的结构实现,SecPrepare电路单元采用以按位异或器为基础的结构实现,SecSbox单元电路采用以查表结果基于随机掩码技术而进行纵向及横向同时实时更新的方案而实现。其针对以S盒查表操作为表征的非线性运算采用“查表结果基于随机掩码技术进行纵向及横向同时实时更新”的方案代替了 “用很多份冗余的伪查表操作来掩盖唯一真查表操作”的方案,以很少的面积资源代价获得了电路结构较高的安全性能。
[0056]另外,本实用新型针对以S盒查表操作为表征的非线性运算采用“查表结果基于随机掩码技术进行纵向及横向同时实时更新”的方案代替了 “采用加性和乘性随机掩码因子及不同极性数域之间的转换操作”的方案,在资源受限环境下为了可抵御差分功耗分析攻击的加密处理装置及方法的实现提供了一种可以获得足够安全性能的可能。
[0057]采用本实用新型,能够实现密码运算设备电路的工作功耗与运算数据及运算操作的无关化。并且其可以被广泛应用于需要高度安全性能的加解密运算密码设备。
【专利附图】
【附图说明】
[0058]图1为非线性层由多组非线性S盒查找变换组成的对称分组密码算法的轮变换典型架构示意图;
[0059]图2为本实用新型实施例提供的针对含有S盒查表操作的密码算法可抵御(二阶)差分功耗分析攻击的加密处理装置的电路实现结构示意图;
[0060]图3为本实用新型实施例提供的SecMasking单元实现结构示意图;
[0061]图4为本实用新型实施例提供的SecPrepare单元实现结构示意图;
[0062]图5为本实用新型实施例提供的SecSbox单元的实现结构示意图;
[0063]图6为本实用新型实施例提供的SecS基本单元的实现结构示意图。
[0064]本实用新型目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进一步的说明。
【具体实施方式】
[0065]下面结合附图和具体实施例对本实用新型所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本实用新型并能予以实施,但所举实施例不作为对本实用新型的限定。
[0066]本实用新型实施例的描述中所使用的任何部件、单元、操作或变换都不应当被解释为对本实用新型而言是关键性或必须的,除非明确地这样描述。
[0067]参考图2,其示出了本实用新型实施例提供的一种可抵御差分功耗分析攻击的加密处理装置架构示意图,所述加密处理装置包括:
[0068]掩盖处理电路单元SecMasking (下称SecMasking单元),用于将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为多份随机数据;
[0069]预处理电路单元SecPrepare (下称SecPrepare单元),用于依据随机数Xlr对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ;
[0070]S盒电路单元SecSbox (下称SecSbox单元),用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
[0071]在本实用新型实施例中,所述SecMasking单元采用以通用随机掩码技术为基础的结构实现,另外,所述多份随机数据相互异或的结果等于所述源数据Plr AecPrepare单元采用以按位异或器为基础的结构实现;SecSbox单元采用以查表结果基于随机掩码技术而进行纵向及横向同时实时更新的方案而实现。本实施例中,使用S盒查表操作来表征密码算法中的非线性运算操作。
[0072]本实施例中,参考图3所示,所述SecMasking单元包括D触发器DO、Dl、D2以及按位异或器Xl、X2,所述SecMasking单元将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为三份,可抵御二阶差分功耗分析攻击。在所述SecMasking单元中:
[0073](I)源数据K和随机数Γ被分别提供至按位异或器Xl的两输入端;
[0074](2)按位异或器Xl的输出端与按位异或器X2的一输入端相连,随机数f被提供至按位异或器X2的另一输入端;
[0075](3)按位异或器X2的输出端与D触发器DO的数据输入端相连;
[0076](4)所述随机数f与D触发器Dl的数据输入端相连;
[0077](5)所述随机数Γ与D触发器D2的数据输入端相连;
[0078](6)D触发器D0、D1、D2的输出端分别与SecPr印are单元的相应输入端相连。
[0079]SecMasking单元的作用是基于密码设备的每次S盒查表操作运算都不同的随机数(如图3中的Γ和f),而将该次S盒查表操作既定的源数据Plr拆分为多份随机数据(如图3中的pV Pr1, pr2),并且满足所述多份随机数据(pV Pr1, Pr2)的相异或结果仍为少。
[0080]如此变换操作的有益效果在于:在全局层面上使单次S盒查表操作的源数据不被直接进行查表操作,而以源数据在数理上为随机数的多次S盒查表操作替换之,从而增加了对所述真实源数据进行功耗分析的实现难度,即理论上的分析攻击成本由一个单位增为至少多个单位,例如本实施例中即对应是三个单位。
[0081]本实施例中,参考图4所示,所述SecPrepare单元包括:按位异或器X3、X4、X5,线性变换单元σ O、σ 1、σ 2, AddRoundKey变换单元ARK,以及gent参与变换单元GADD,其中:
[0082](I)当前有效的密码算法子密钥K和随机数f被分别提供至按位异或器X3的输入端;
[0083](2) SecMasking单元包括的D触发器D0、D1及D2输出的三份数据pVplr1及被相应提供至线性变换单元σ O、σ I及σ 2的输入端;
[0084](3)按位异或器Χ3的输出端以及线性变换单元σ O的输出端分别与AddRoundKey变换单元ARK的两输入端相连;
[0085](4)线性变换单元σ I以及σ 2的输出端分别与按位异或器Χ4的两输入端相连;
[0086](5) AddRoundKey变换单元ARK的输出端以及按位异或器Χ4的输出端分别与按位异或器Χ5的两输入端相连;
[0087](6)按位异或器Χ5的输出端与gent参与变换单元GADD的一输入端相连,所述随机数Xlr以及实时更新变量gent被分别提供至gent参与变换单元GADD的另外两输入端;
[0088](7) gent参与变换单元GADD的输出端与SecSbox单元的输入端相连。
[0089]所述的线性变换单元σ O、σ I以及σ 2,其在本实施例中被用于密码算法中在S盒查表操作之前可能存在定义的一种线性变换操作。
[0090]所述的AddRoundKey变换单元ARK在本实施例中被用于密码算法中在S盒查表操作之前可能存在定义的、将欲查表数据和密码运算当前有效的密码算法子密钥K进行结合的一种变换操作。
[0091]所述的gent参与变换单元GADD在本实施例中被用于抵消前述随机数Xlr的参与、同时又加入实时更新变量gent的参与以实现所述“SecSbox单元电路的查表结果基于随机掩码技术进行纵向实时更新”的方案。
[0092]例如,一种实施方式中,所述gent参与变换单元GADD基于被输入的信息做以下处理:
[0093](I)对按位异或器X5的输出信息以及所述随机数f进行按位异或操作;
[0094](2)对所述按位异或操作结果以及实时更新变量gent进行布尔相加操作,输出预处理数据I/。
[0095]不难得知,本领域的技术人员可以对所要求保护实用新型的上述gent参与变换单元GADD单元的实现结构进行变化和修改,而不实质上违背本实用新型的精神和原理。所有的这些修改和变化均应被包括在本实用新型的范围内。
[0096]SecPrepare单元的作用是:在有新随机数Xlr的参与下,将前述SecMasking单元输出的多份中间随机数据(例如如图4中的pV Pr1, pr2)和密码算法当前有效的密码算法子密钥K进行如密码算法规范所定义的、同时因有随机数f参与而安全性又提升了的AddRoundKey变换操作。
[0097]另外,为了后续SecSbox变换单元的安全化实现又加入了有实时更新变量gent参与的有关变换操作。如此设计SecPrepare电路单元的有益效果在于:除了可提升后续SecSbox变换操作的安全性外,还可避免改动一般所谓密码算法轮密钥扩展操作的实现结构,从而节省密码设备的面积资源成本。
[0098]本实用新型实施例中,优选地,在依据随机数f以及随机数W、并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理之后,得到多份目标数据;在具体实施时,在密码运算最终步骤中,对所述多份目标数据进行相互异或操作处理可得到期待查找结果?f;或者,在密码运算中间步骤中,可将所述多份目标数据作为下一次S盒查表操作的源数据。
[0099]参考图5所示,所述SecSbox单元包括N个非线性变换SecS基本单元,具体地,在所述SecSbox单兀中:
[0100](I)SecPrepare单元输出的预处理数据I/被划分成多份(即图5中的代表的N份,其满足I/ = {blr|b--r|bNr})之后分别输入对应N个可相异的SecS基本单元;br被划分后的每份数据分别与其对应的SecS基本单元(即如图5中所示的和SecSi,其中,i = I, - ,N)的输入端之一相连;
[0101](2)随机数f以及f均被分别提供至每个SecS基本单元的另两个输入端;
[0102](3)分别对每个SecS基本单元的相同类型的输出端进行拼凑处理,以形成三个输出端数据HlVnf1以及Hf2,其中,所述三个输出端数据HlV Hf1以及Hf2按位异或操作的结果等于基于源数据P\密码算法子密钥K以及密码算法普通S盒查表操作进行相关运算操作的结果。
[0103]例如,一种【具体实施方式】中,所述SecSbox单元的输出数据可以被划分为三份,通过数据划分可抵御二阶差分功耗分析攻击。不难得知,本领域的技术人员可以对所述SecSbox单元的输出数据的份数进行变化和修改,而不实质上违背本实用新型的精神和原理。所有这些修改和变化是要被包括在本申请公开的范围之内。
[0104]所述SecSbox电路单元的主要作用是为其中各个SecS基本单元划分输入对象,并且引入随机数以期在SecS变换操作中能通过随机掩码技术去实现相关的功耗掩盖。
[0105]本实用新型实施例中,参考图6所示,所述SecS基本单元包括:多路选择器MO、Ml以及M2,与之对应的三组D触发器组DmOO?DmOKDmlO?Dmlk、Dm20?Dm2k以及三组按位异或器组XmOO?XmOk、XmlO?Xmlk、Xm20?Xm2k,所述SecS基本单元由三组相似的基本单元组成,可抵御二阶差分功耗分析攻击。具体地,其中:
[0106](I)SecPrepare单元输出的预处理数据I/被划分成多份之后提供至当前SecS基本单元的数据bif被提供至所述多路选择器MO、Ml以及M2的控制选择端;
[0107](2)所述多路选择器MO、Ml以及M2的多个数据备选端分别与相对应的D触发器组中的多个D触发器的输出端相连;
[0108](3)所述多路选择器M0、M1以及M2对应的D触发器组中的多个D触发器的输入端与对应的按位异或器组中的多个按位异或器的输出端对应相连;
[0109](4)随机数f被分别提供至所述按位异或器组XmOO?XmOk中的多个按位异或器的一输入端,随机数f被分别提供至所述按位异或器组XmlO?Xmlk中的多个按位异或器的一输入端,随机数f与f的按位异或操作结果被分别提供至所述按位异或器组Xm20?Xm2k中的多个按位异或器的一输入端;
[0110](5)所述D触发器组中的多个D触发器的输出端与相对应的所述按位异或器组中的多个按位异或器的另一输入端呈环状链式连接,例如,所述每个按位异或器组中的多个按位异或器的另输入端与本组中对应的D触发器组中的相邻D触发器的输出端对应相连,以此形成所述链式环;
[0111](6)所述多路选择器M0、M1以及M2的输出端分别输出待拼凑数据m%、m'以及Ki112,其中 i = I ?N。
[0112]所述SecS基本单元的主要作用是实现对输入数据的安全化查表操作,其安全特征之一在于将对单一对象的查表操作等效转化为多份查表操作,即所述基于随机掩码技术进行横向实时更新;其安全特征之二在于将查表结果在相关查表寄存器之间进行实时移存,即所述基于随机掩码技术进行纵向实时更新。
[0113]在本实用新型实施例中,上述两大安全特征的最明显优势就是:将针对输入数据的直接且固化的查表操作转化为间接且可动态更新的多份查表操作,极大地上掩盖了原始查表操作的泄漏功耗信息。在使用本实用新型描述的上述抵御手段后,攻击者为实施差分功耗分析攻击,原先只需采集单份功耗信息的成本,骤然变为需要采集同一时刻泄漏的多份功耗信息,这样不单单使得分析攻击所需功耗信息的样本采集量和采集难度大幅上升,更重要地是使差分功耗分析的计算复杂度具有了指数级别的上升。
[0114]由此,采用本实用新型,可以在不大幅增加面积资源成本的大前提下,多处通过通用随机掩码技术实现了对密码运算中最关键的以S盒查表操作为表征的非线性变换泄漏功耗的掩盖。
[0115]相应地,本实用新型实施例还提供了一种集成电路芯片,其包括如上述实施例所述的可抵御差分功耗分析攻击的加密处理装置,所述加密处理装置包括:
[0116]掩盖处理电路单元SecMasking,用于将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为多份随机数据;
[0117]预处理电路单元SecPr印are,用于依据随机数f对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ;
[0118]S盒电路单元SecSbox,用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
[0119]对于所述加密处理装置的具体描述可参考上述实施例,此处不再赘述。
[0120]本实用新型实施例还相应地提供了一种密码设备,其包括如上述实施例所述的集成电路芯片,例如所述密码设备可以为智能卡、RFID、密码协处理器、SoC密码芯片、密码机等,所述集成电路芯片包括如上述实施例所述的可抵御差分功耗分析攻击的加密处理装置,同样地,所述加密处理装置包括:
[0121]掩盖处理电路单元SecMasking,用于将期待进行S盒查表操作的源数据Plr基于随机掩码技术拆分为多份随机数据;
[0122]预处理电路单元SecPr印are,用于依据随机数f对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ;
[0123]S盒电路单元SecSbox,用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
[0124]同样地,对于所述加密处理装置的详细叙述请读者参看上文,此处不予赘述之。
[0125]以上所述仅为本实用新型的优选实施例,并非因此限制本实用新型的专利范围,凡是利用本实用新型说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本实用新型的专利保护范围内。
【权利要求】
1.一种可抵御差分功耗分析攻击的加密处理装置,其特征在于,包括: 掩盖处理电路单元SecMasking,用于将期待进行S盒查表操作的源数据^基于随机掩码技术拆分为多份随机数据; 预处理电路单元SecPr印are,用于依据随机数f对所述多份随机数据以及当前有效的密码算法子密钥K进行轮密钥加AddRoundKey变换,并在实时更新变量gent的参与下对所述变换处理结果执行至少以消除所述随机数f参与影响的S盒变换预处理并输出预处理数据I/ ; S盒电路单元SecSbox,用于依据随机数f以及随机数并基于随机掩码技术对所述预处理数据I/进行纵向及横向S盒查找处理以及实时更新处理。
2.如权利要求1所述的可抵御差分功耗分析攻击的加密处理装置,其特征在于,SecMasking单元包括D触发器DO、Dl、D2以及按位异或器X1、X2,其中: 源数据Plr和随机数Γ被分别提供至按位异或器Xl的两输入端; 按位异或器Xl的输出端与按位异或器X2的一输入端相连,随机数f被提供至按位异或器X2的另一输入端; 按位异或器X2的输出端与D触发器DO的数据输入端相连; 所述随机数f与D触发器Dl的数据输入端相连; 所述随机数Γ与D触发器D2的数据输入端相连; D触发器D0、D1、D2的输出端分别与SecPr印are单元的相应输入端相连。
3.如权利要求1所述的可抵御差分功耗分析攻击的加密处理装置,其特征在于,所述SecPrepare单元包括:按位异或器X3、X4、X5,线性变换单元σ O、σ 1、σ 2, AddRoundKey变换单元ARK,以及gent参与变换单元GADD,其中: 当前有效的密码算法子密钥K和随机数f被分别提供至按位异或器X3的输入端;SecMasking单元包括的D触发器DO、Dl及D2输出的三份数据pV Pr1及Plr2被相应提供至线性变换单元σ O、σ I及σ 2的输入端; 按位异或器Χ3的输出端以及线性变换单元σ O的输出端分别与AddRoundKey变换单元ARK的两输入端相连; 线性变换单元σ I以及σ 2的输出端分别与按位异或器Χ4的两输入端相连;AddRoundKey变换单元ARK的输出端以及按位异或器Χ4的输出端分别与按位异或器Χ5的两输入端相连; 按位异或器Χ5的输出端与gent参与变换单元GADD的一输入端相连,所述随机数Xlr以及实时更新变量gent被分别提供至gent参与变换单元GADD的另外两输入端;gent参与变换单元GADD的输出端与SecSbox单元的输入端相连。
4.如权利要求3所述的可抵御差分功耗分析攻击的加密处理装置,其特征在于,所述gent参与变换单元GADD基于被输入的信息做以下处理: 对按位异或器X5的输出信息以及所述随机数f进行按位异或操作; 对所述按位异或操作结果以及实时更新变量gent进行布尔相加操作,输出预处理数据br。
5.如权利要求1所述的可抵御差分功耗分析攻击的加密处理装置,其特征在于,SecSbox单元包括N个非线性变换SecS基本单元,在所述SecSbox单元中: SecPrepare单元输出的预处理数据I/被划分成多份之后分别输入对应N个可相异的SecS基本单元; 随机数f以及f均被分别提供至每个SecS基本单元的另两个输入端; 分别对每个SecS基本单元的相同类型的输出端进行拼凑处理,以形成三个输出端数据HiVnf1以及Hf2,其中,所述三个输出端数据HiVnf1以及nf2按位异或操作的结果等于基于源数据P'密码算法子密钥K以及密码算法普通S盒查表操作进行相关运算操作的结果。
6.如权利要求5所述的可抵御差分功耗分析攻击的加密处理装置,其特征在于,所述SecS基本单元包括:多路选择器M0、M1以及M2,与之对应的三组D触发器组DmOO?DmOk、DmlO?Dmlk、Dm20?Dm2k以及三组按位异或器组XmOO?XmOk、XmlO?Xmlk、Xm20?Xm2k,其中: SecPrepare单元输出的预处理数据I/被划分成多份之后提供至当前SecS基本单元的数据bif被提供至所述多路选择器MO、Ml以及M2的控制选择端; 所述多路选择器MO、Ml以及M2的多个数据备选端分别与相对应的D触发器组中的多个D触发器的输出端相连; 所述多路选择器MO、Ml以及M2对应的D触发器组中的多个D触发器的输入端与对应的按位异或器组中的多个按位异或器的输出端对应相连; 随机数f被分别提供至所述按位异或器组XmOO?XmOk中的多个按位异或器的一输入端,随机数f被分别提供至所述按位异或器组XmlO?Xmlk中的多个按位异或器的一输入端,随机数f与f的按位异或操作结果被分别提供至所述按位异或器组Xm20?Xm2k中的多个按位异或器的一输入端; 所述D触发器组中的多个D触发器的输出端与相对应的所述按位异或器组中的多个按位异或器的另一输入端呈环状链式连接; 所述多路选择器MO、Ml以及M2的输出端分别输出待拼凑数据πι%、πΛ以及m%,其中i=l ?N。
7.如权利要求1所述的可抵御差分功耗分析攻击的加密处理装置,其特征在于,所述多份随机数据相互异或的结果等于所述源数据
8.一种集成电路芯片,其特征在于,包括如权利要求1-7任一项所述的可抵御差分功耗分析攻击的加密处理装置。
9.一种密码设备,其特征在于,包括如权利要求8所述的集成电路芯片。
【文档编号】H04L29/06GK203933683SQ201420181329
【公开日】2014年11月5日 申请日期:2014年4月16日 优先权日:2014年4月16日
【发明者】王良清, 谷大武, 郭筝, 刘军荣, 邓峰 申请人:深圳国微技术有限公司