防对称密码算法受攻击的方法

文档序号:7764820阅读:704来源:国知局
专利名称:防对称密码算法受攻击的方法
技术领域
本发明涉及信息安全领域,特别是涉及一种防对称密码算法受攻击的方法。
背景技术
随着信息技术的发展,数据的机密性和完整性受到越来越多的关注,在早期人们还主要关注协议和算法的安全性,但自从旁路攻击(SideCharmel Attacks)被提出以后,人们越来越多的开始关注芯片的实现,以及针对芯片所面临的攻击所采取的抗攻击措施。旁路攻击(Side Channel Attacks)主要是基于物理特征的分析技术,包括功耗分析,电磁分析,错误分析,时间分析等等。功耗分析是指通过分析密码运算过程中呈现的电流/电压变化得出功耗的变化,进而将功耗与密钥信息联系起来,最终获取密钥信息。功耗分析技术又分为简单功耗分析(SPA)和差分功耗分析(DPA)。SPA是指根据功耗曲线上所呈现的特殊特征来推测密钥信息,DPA利用的是操作数的变化所引起的微小的功耗变化,需要通过对大量功耗曲线进行统计分析,最终得出密钥信息。电磁分析与功耗分析类似,只是获取曲线的方式有别。错误分析是利用错误结果进行分析得出密钥信息的分析技术。时间分析是指有的算法运行时间会因密钥的不同而不同,因而可以通过运行时间来推测密钥。在硬件防御功耗分析措施方面,通常包括引入噪声的方式降低测量精度和在算法级提供保护。引入噪声的方式实现起来比较简单,但是效果并不理想,可以通过增加样本数来克服。一个典型的算法级技术是盲化方法(masking),但是要完全实现随机盲化在时间和硬件方面的开销都很难被目前的应用所接受,而固定盲化方法的安全性又很难保证;另外一个技术是电路一级的双轨逻辑,其面积和时延方面的开销都很大,并且其实现的技术难度比较大。

发明内容
针对上述技术中的现状,本发明所要解决的技术问题是提供一种防对称密码算法受攻击的方法,它相对安全而又易于实现的,无统计分析规律,能够实现错误检测,并且最终能够准确实现对称密码算法加解密。为解决上述技术问题,本发明的通过平衡汉明重量防对称密码算法受攻击的方法,包括如下步骤步骤一、实现两套独立的运算逻辑,其中第一套逻辑完全以密码协议(比如FIPS PUB 46-3)规定的方式实现,第二套逻辑除了非线性运算部分(通常被称为SB0X)需要特殊构造之外,其余线性运算部分完全按协议实现;步骤二、明文以两种不同的方式分别存储在两个寄存器中,两个寄存器中总的汉明重量为一特定值,并且两个寄存器中的数据分别经过两套独立的运算逻辑进行运算;步骤三、在两套运算逻辑中的每个运算节点的数据都具有一定的数学关系,以保证它们总的汉明重量为一不变的特定值;步骤四、利用两套运算逻辑中的每个运算节点的数据所具有的一定的数学关系,对数据做同步,以避免因数据太快或太慢而呈现出特殊的功耗特征;步骤五、利用两套运算逻辑中的每个运算节点的数据所具有的一定的数学关系, 包括在每一轮运算后存储在寄存器中的数据所具有的一定的数学关系,如果密码设备受到攻击,破坏了这种数学关系,则可以通过检测两个寄存器之间的数学关系来检测密码设备是否因受到攻击而出错。为了让两套逻辑中运算的数据保持一定的数学关系,在有的对称密码算法(比如 DES)中需要增加一些特殊的逻辑(比如取反逻辑)。步骤一中所述的特殊构造是指第二套逻辑的非线性运算部分的输入与输出和第一套逻辑的非线性运算部分的输入与输出分别相反。步骤三所述的一定的数学关系是指两套运算逻辑中的每个运算节点的数据都具有相反的数学关系。本发明通过平衡汉明重量的方式在一定程度上消除操作数据与功耗的关系并实现检错,与传统的防DPA攻击的盲化方法和双轨逻辑相比,具有速度快,电路的面积小,不需要开发新的逻辑门,对设计实现没有特别的要求,在防DPA攻击的同时,还能够防DFA攻
击ο本发明的方法相对安全而又易于实现,无统计分析规律,能够实现错误检测,并且最终能够准确实现对称密码算法加解密。


下面结合附图与具体实施方式
对本发明作进一步详细的说明图1是本发明实现的DES轮变换;图2是图1中A,B两点的同步逻辑。具体实现方式下面以DES (数据加密标准data encryption standard)的加密过程为例来介绍本发明。1、实现两套独立的运算逻辑,其中第一套逻辑完全以协议规定的方式实现,第二套逻辑的SBOX部分通过专门构造使得其输入与输出和第一套逻辑的SBOX的输入与输出分别相反,而其余的线性运算部分和第一套逻辑完全一致,如图1所示。2、由于DES的运算过程中有左右两边异或的运算,这将消除两套逻辑中数据之间相反的数学关系,为保持这种数学关系,必须增加取反逻辑使其保持原有的相反关系,如图 1所示。3、明文以正反两种方式分别存储在两个寄存器中,两个寄存器中总的汉明重量为 64。两个寄存器中的数据分别经过两套独立的运算逻辑进行运算。4、两套运算逻辑中的每个运算节点的数据都具有相反的数学关系,保证总的汉明重量为恒定值。5、由于数据的0,1比例会影响其运算的速度,如果两套运算逻辑中重要的功能单元的数据到达时间不一致,就可能会呈现出特殊的功耗特征,从而成为攻击目标,在本发明的实现中,利用两套运算逻辑中数据所具有的相反关系来对SBOX的输入进行同步,即只有在数学关系满足时,真实的数据才会进入SB0X,否则输入为全0。如图2所示。
6、利用两个寄存器中的中间结果和最终的运算结果相反的关系来检测是否有错误发生,以决定运算结果是否能够输出密码模块。以上通过具体实施方式
对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
权利要求
1.一种防对称密码算法受攻击的方法,其特征在于,包括如下步骤步骤一、实现两套独立的运算逻辑,其中第一套逻辑完全以密码协议规定的方式实现, 第二套逻辑除了非线性运算部分需要特殊构造之外,其余线性运算部分完全按协议实现;步骤二、明文以两种不同的方式分别存储在两个寄存器里,两个寄存器中总的汉明重量为一特定值,并且两个寄存器中的数据分别经过两套独立的运算逻辑进行运算;步骤三、在两套运算逻辑中的每个运算节点的数据都具有一定的数学关系,以保证它们总的汉明重量为一不变的特定值;步骤四、利用在两套运算逻辑中的每个运算节点的数据所具有的一定的数学关系对关键功能单元的数据做同步,以避免因数据太快或太慢而呈现出特殊的功耗特征;步骤五、利用在两套运算逻辑中的每个运算节点的数据所具有的一定的数学关系,包括在每一轮运算后存储在寄存器中的数据所具有的一定的数学关系,如果密码设备受到攻击,破坏了这种数学关系,则通过检测两个寄存器中的数据之间的数学关系来检测密码设备是否因受到攻击而出错。
2.如权利要求1所述的方法,其特征在于步骤一中所述的特殊构造是指第二套逻辑的非线性运算部分的输入与输出和第一套逻辑的非线性运算部分的输入与输出分别相反。
3.如权利要求1所述的方法,其特征在于步骤三所述的一定的数学关系是指两套运算逻辑中的每个运算节点的数据都具有相反的数学关系。
全文摘要
本发明公开了一种通过平衡汉明重量防对称密码算法受攻击的方法,涉及信息安全技术领域。通过平衡汉明重量来消除操作数据与功耗之间关系并实现检错的方法;实现两套独立的逻辑,两套逻辑中运算的数据具有特殊的数学关系,使得操作数据的汉明重量始终保持不变,这在一定程度上也就掩盖了因汉明重量的不同而引起的功耗差异;并且可以利用两套逻辑中的操作数具有的特定数学关系对数据进行同步,也可以通过检测它们之间的关系是否成立来判断运算过程是否有错误发生,从而达到防DFA攻击的目的。
文档编号H04L9/06GK102468954SQ201010537949
公开日2012年5月23日 申请日期2010年11月10日 优先权日2010年11月10日
发明者徐云秀 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1