分组加密运算中抵抗能量分析攻击的方法和装置与流程

文档序号:15817325发布日期:2018-11-02 22:46阅读:446来源:国知局
分组加密运算中抵抗能量分析攻击的方法和装置与流程

本发明涉及安全芯片领域,特别是关于一种分组加密运算中抵抗能量分析攻击的方法和装置。

背景技术

随着计算机技术的发展,计算机软件的非法复制,通信的泄密、数据安全受到威胁的问题日趋严重,信息安全越来越受到重视。在信息安全技术中,加密技术占有不可替代的位置,对信息加密技术和加密算法的研究与开发日新月异。其中,分组密码算法是对固定长度的明文进行加密的算法。它将明文按一定的位长分组,明文和密钥经过加密运算得到密文。解密时,密文和密钥经过解密运算还原成明文。常用的分组密钥算法有des、aes、sm4等。

密码算法的安全性不仅取决于密码算法的数学安全性,更严重依赖于密码算法实现的物理安全性。侧信道攻击又称侧信道密码分析,是一种针对密码实现的物理攻击方法。这种攻击方法的本质是利用密码实现在执行密码相关操作的过程中产生的侧信息来恢复出密码实现中所使用的密钥。其中,这里的侧信息指除了攻击者通过除主通信信道以外的途径获取到的关于密钥实现运行状态相关的信息,典型的侧信息包括密码实现运行过程中的功耗消耗、电磁辐射、运行时间等信息。相较于传统密码分析主要用于分析密码算法的数学安全性,侧信道攻击主要采用能量分析攻击、电磁分析攻击、计时攻击等一系列方法对其物理实现安全性进行分析。侧信道攻击的攻击能力远远强于传统密码分析方法,因而也对密码实现的实际安全性构成了巨大的威胁。

防御侧信道攻击的核心是减弱甚至消除侧信息与密钥之间的直接依赖性。随机插入伪操作,将有用信息“淹没”在噪声中从而提高密码实现的实际安全性,是防御侧信道攻击中能量分析攻击的一种有效方法。图1所示是现有的针对分组密钥算法随机插入伪操作的防护方法。

随机伪操作采用随机数作为假密钥参与运算,真实的算法运算用正确的种子密钥参与运算。真实算法运算何时开启也是由随机数决定的。

运算开始后,首先进行r轮的伪操作运算,r的取值由随机数决定。start_pulse是真实运算启动的脉冲信号,只有该信号为高时才会开始真实轮数运算。一旦开启真正运算,必须等待真实的轮运算结束后才会进行其他操作,这期间不会插入任何伪操作。start_pulse信号从哪个时钟周期开始变高也是由随机数决定的。当真正轮运算结束后,需要再进行q轮的伪操作运算。同时,q与r的和为一个固定数值,即插入的伪操作的总轮数是一定的。

现有技术虽然引入了随机插入伪操作,但伪操作插入的位置集中在真实运算开始之前和结束之后,均不在真实的算法轮运算之内。对分组密码算法而言,侧信道攻击主要是对其第1轮、第2轮、最后一轮及倒数第二轮进行攻击。现有技术可以抵抗对其第1轮和最后一轮的攻击,但是一旦第一轮运算对齐后,第一轮轮密钥被攻击成功,之后其余的轮运算便很容易被查找对齐,进而攻击出算法密钥。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

本发明的目的在于提供一种分组加密运算中抵抗能量分析攻击的方法,其能够有效抵抗侧信道能量分析攻击。

所述分组加密运算中抵抗能量分析攻击的方法包括生成伪加密运算,所述伪加密运算采用伪密钥进行加密;将真实加密运算与伪加密运算组合,构成基本加密运算单元;生成伪加密运算单元,所述伪加密运算单元中仅包括伪加密运算;将基本加密运算单元与伪加密运算单元组合,执行加密运算。

在该方法中,所述伪密钥使用与真实加密运算的真密钥位宽相同的随机数生成。

在该方法中,所述将真实加密运算与伪加密运算组合进一步包括,在真实加密运算的第一轮之前、最后一轮之后、和各轮之间加入伪加密运算。

在该方法中,所加入的伪加密运算的轮数为随机数。

在该方法中,所述将基本加密运算单元与伪加密运算单元组合进一步包括,将一个基本加密运算单元与多个伪加密运算单元组合。

在该方法中,所述伪加密运算单元与基本加密运算单元的运算结构相同。

本发明还提供了一种分组加密运算中抵抗能量分析攻击的装置,其中包括:伪加密运算生成模块,用于生成伪加密运算,所述伪加密运算采用伪密钥进行加密;加密运算组合模块,用于将真实加密运算与伪加密运算组合,构成基本加密运算单元;伪加密运算单元生成模块,用于生成伪加密运算单元,所述伪加密运算单元中仅包括伪加密运算;加密运算单元组合模块,用于将基本加密运算单元与伪加密运算单元组合,执行加密运算。

该装置中,所述伪密钥使用与真实加密运算的真密钥位宽相同的随机数生成。

该装置中的所述加密运算组合模块中,将真实加密运算与伪加密运算组合进一步包括,在真实加密运算的第一轮之前、最后一轮之后、和各轮之间加入伪加密运算。

该装置中,所加入的伪加密运算的轮数为随机数。

该装置的所述加密运算单元组合模块中,所述将基本加密运算单元与伪加密运算单元组合进一步包括,将一个基本加密运算单元与多个伪加密运算单元组合。

该装置中,所述伪加密运算单元与基本加密运算单元的运算结构相同。

与现有技术相比,本发明所公开的分组加密运算在每轮运算间均随机插入了伪加密运算,以保证敏感信息被噪声掩盖,同时基于每轮运算间插入伪运算后的基本运算单元,循环调用这样的运算单元且输入数据为随机数,可以进一步增加噪声,有效抵抗侧信道能量分析攻击。最后,结合算法运算性能与安全防护的综合考虑,可以配置选择插入伪加密运算的次数,实现时方便灵活。

附图说明

图1是分组加密运算现有技术的随机插入伪操作的方法示意图;

图2是根据本发明具体实施方式的插入伪加密运算的基本加密运算单元的示意图;

图3是根据本发明具体实施方式的插入伪加密运算的分组加密运算的示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

以下,将结合图2至图3,详细说明根据本发明具体实施方式的分组加密运算中抵抗能量分析攻击的方法,本方法通过将随机伪加密运算插入在分组加密运算的各轮运算之间,使得轮运算的敏感信息被噪声掩盖不会泄露,从而能够有效抵抗能量攻击。具体实现方式如下:

首先,生成伪加密运算,所述伪加密运算采用与真实加密运算的密钥位宽相同的随机数作为假密钥进行加密运算,真实加密运算使用真实密钥。

如图2所示,在本发明具体实施方式中,假设分组加密运算本身的真实加密运算为8轮,在第1轮真实加密运算之前、第8轮真实加密运算之后、以及第1-8轮真实加密运算之间均插入伪加密运算。

本领域技术人员可以理解,以上具体设置仅仅是示意性的,加密运算的轮数可以在合理的范围内任意设置。

伪加密运算的轮数由随机数确定,图2的具体实施方式中所使用的随机数为3bits,则插入的伪加密运算轮数范围为0-7。

将图2中所描述的插入了随机轮数伪加密运算的分组加密运算作为基本加密运算单元,该基本加密运算单元包括8轮的真实加密运算,和插入在第1轮真实加密运算之前、第8轮真实加密运算之后、以及第1-8轮真实加密运算之间的伪加密运算,所述插入的各个伪加密运算的轮数在0-7之间随机确定,由此,可以确定所述基本加密运算单元的运算结构。

接下来,生成伪加密运算单元,所述伪加密运算单元与基本加密运算单元的运算结构相同,但是其中仅包含伪加密运算,并不包含真实加密运算,所述伪加密运算的输入均采用随机数。

图3所示的示意性的加密运算包括16个加密运算单元,其中第1-6、8-16加密运算单元为伪加密运算单元,只有第7运算单元为真实加密运算单元。

在本具体实施方式中,将基本加密运算单元设置在7个运算单元,本领域技术人员可以理解,可以根据实际使用需要,将基本加密运算单元设置在任意的位置。

图3所示的加密运算的字数可以根据使用时的具体需求进行设置,假设可设置范围为8~16,若设置为8,则表示8个运算单元中有1个真实加密运算单元,7个伪加密运算单元;若设置为16,则表示16个运算单元中有1个真实加密运算单元,15个伪加密运算单元。

通过以上具体实施例可见,本发明所公开的分组加密运算在每轮运算间均随机插入了伪加密运算,以保证真实运算中的敏感信息被噪声掩盖,同时基于每轮运算间插入伪运算后的基本运算单元,循环调用这样的运算单元且输入数据为随机数,可以进一步增加噪声,有效抵抗侧信道能量分析攻击。最后,结合算法运算性能与安全防护的综合考虑,可以配置选择插入伪加密运算的次数,实现时方便灵活。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

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