加解密算法的安全执行方法和装置制造方法及图纸

技术编号:11073855 阅读:94 留言:0更新日期:2015-02-25 12:49
本发明专利技术涉及一种加解密算法的安全执行方法和装置。所述方法包括:设置n+m轮加解密轮计算的计算顺序,其中,所述n+m轮加解密轮计算包括n轮真的加解密轮计算和m轮假的加解密轮计算;根据所述计算顺序,执行所述n+m轮加解密轮计算;输出所述n轮真的加解密轮计算的结果作为所述加解密算法的结果;其中,n和m为自然数,每部分连续的假的加解密轮计算的轮数为大于或等于0并且小于或等于m的随机数。本发明专利技术可以增加攻击者对齐所有功耗曲线的难度,从而提高攻击者攻击成功的难度。

【技术实现步骤摘要】
加解密算法的安全执行方法和装置
本专利技术涉及微电子领域,尤其涉及一种加解密算法的安全执行方法和装置。
技术介绍
加解密算法在实现时,必须要考虑其安全性,必须要能够抵抗各种旁路攻击技术,尤其是差分功耗分析(Differential Power Attack,简称:DPA)攻击。 对安全芯片中的加解密算法进行DPA攻击时,首先要采集大量的加解密算法运行时的功耗曲线,然后通过分析和计算加解密算法在某一时刻的中间值,辅以适当的猜测,对所采集的功耗曲线进行分类统计和数学处理,攻击者可以攻击得出安全芯片中与加解密算法相关的重要秘密信息,即密钥。具体地,攻击者一般首先通过攻击加解密算法的第一轮计算过程,可以得到第一轮计算的轮密钥,然后根据第一轮的轮密钥再攻击第二轮计算过程,依次类推得到全部密钥,从而完成I次加解密计算。或者,攻击者也可以先攻击最后一轮,得到最后一轮的轮密钥,然后再攻击倒数第二轮。 但是,此种攻击方法有一个关键点,就是要将所采集得到的所有功耗曲线在时间轴上对齐。为了攻击第一轮,要将所采集到的所有第一轮计算过程在时间轴上对齐,为了攻击最后一轮,要将所采集到的所有最后一轮计算过程在时间轴上对齐,这样对所有功耗曲线进行的分类和统计分析才有意义。 如果能增加攻击者对齐所有功耗曲线的难度,或者降低功耗曲线的对齐比率,就可以增加攻击者攻击成功的难度。
技术实现思路
本专利技术提供一种加解密算法的安全执行方法和装置,用以增加攻击者对齐所有功耗曲线的难度,从而提高攻击者攻击成功的难度。 本专利技术提供一种加解密算法的安全执行方法,包括: 设置n+m轮加解密轮计算的计算顺序,其中,所述n+m轮加解密轮计算包括η轮真的加解密轮计算和m轮假的加解密轮计算; 根据所述计算顺序,执行所述n+m轮加解密轮计算; 输出所述η轮真的加解密轮计算的结果作为所述加解密算法的结果; 其中,η和m为自然数,每部分连续的假的加解密轮计算的轮数为大于或等于O并且小于或等于m的随机数。 本专利技术还提供一种加解密算法的安全执行装置,包括: 控制模块,用于设置n+m轮加解密轮计算的计算顺序,其中,所述n+m轮加解密轮计算包括η轮真的加解密轮计算和m轮假的加解密轮计算; 加解密模块,用于在所述控制模块的控制下,根据所述计算顺序,执行所述n+m轮加解密轮计算,输出所述η轮真的加解密轮计算的结果作为所述加解密算法的结果; 其中,η和m为自然数,每部分连续的假的加解密轮计算的轮数为大于或等于O并且小于或等于m的随机数。 本专利技术在包括η轮真的加解密轮计算的加解密算法的执行中插入了 m轮假的加解密轮计算,加解密算法变成了 n+m轮,这样,当攻击者使用DPA攻击加解密算法时,攻击者会从所采集得到的功耗曲线上发现n+m轮计算,而不是η轮,而且攻击者无法根据功耗曲线来区分n+m轮计算中哪些是真的哪些是假的,因此,攻击者只能将所有采集到的功耗曲线的n+m轮计算进行对齐。但是,由于插入了假的加解密轮计算,大大增加了攻击者对齐真的η轮功耗曲线的难度,提高了攻击者攻击成功的难度。此外,该方法将η轮真的加解密轮计算的结果作为加解密算法的结果,因此,对计算结果并没有影响。 【附图说明】 图1为本专利技术加解密算法的安全执行方法第一实施例的流程示意图; 图2为本专利技术加解密算法的安全执行方法第二实施例的流程示意图; 图3为本专利技术加解密算法的安全执行方法第二实施例中一个具体实例的时序图; 图4为本专利技术加解密算法的安全执行装置第一实施例的结构示意图; 图5为本专利技术加解密算法的安全执行装置第二实施例的结构示意图。 【具体实施方式】 下面结合说明书附图和【具体实施方式】对本专利技术作进一步的描述。 如图1所示,为本专利技术加解密算法的安全执行方法第一实施例的流程示意图,该实施例可以包括: 步骤11、设置n+m轮加解密轮计算的计算顺序,其中,n+m轮加解密轮计算包括η轮真的加解密轮计算和m轮假的加解密轮计算; 其中,m轮假的加解密轮计算具体在什么位置进行可以是设置为固定的位置,也可以设置为随机分配的位置; 步骤12、根据该计算顺序,执行n+m轮加解密轮计算; 其中,η和m为自然数,每部分连续的假的加解密轮计算的轮数为大于或等于O并且小于或等于m的随机数。η表示加解密算法标准规定的完成加解密轮计算所需的真的加解密轮计算的轮数,η为常数,采用的加解密算法不同,加解密轮计算的轮数η也会不同。例如:对于DES算法,η等于16,对于3DES算法,η等于48,对于AES算法,根据模式不同,η可以等于10、12或14 ;111表示在加解密算法执行过程中插入的假的加解密轮计算的轮数。例如:m = 4,将4轮假的加解密计算分为两个部分,分别插入η轮真的加解密计算中的两个位置,这两个部分的长度可以为如下5种可能的组合中的一种:(4,0),(1,3), (2,2), (3,1),和(0,4)。另外一种极端的情况是,将m轮假的加解密轮计算划分为η+1部分,插入η轮真的加解密轮计算中,这样就是,轮换着进行假的加解密轮计算和真的加解密轮计算,每进行一轮真的加解密轮计算之前,先进行一部分假的加解密轮计算,最后一轮真的加解密轮计算之后再进行一部分假的加解密轮计算。 步骤13、输出η轮真的加解密轮计算的结果作为该加解密算法的结果。 具体地,在步骤12中,在η轮真的加解密轮计算的哪些位置插入假的加解密轮计算是预先确定好的,例如:η轮真的加解密轮计算之前、之间和之后的任意位置都可选,每个位置插入的假的加解密轮计算的轮数为随机产生的,并且各个位置插入的加解密轮计算的轮数总共为m轮。 在本实施例中,加解密算法指的是加密算法和/或解密算法。 本实施例在包括η轮真的加解密轮计算的加解密算法的执行中插入了 m轮假的加解密轮计算,加解密算法变成了 n+m轮,这样,当攻击者使用DPA攻击加解密算法时,攻击者会从所采集得到的功耗曲线上发现n+m轮计算,而不是η轮,而且攻击者无法根据功耗曲线来区分n+m轮计算中哪些是真的哪些是假的,因此,攻击者只能将所有采集到的功耗曲线的n+m轮计算进行对齐。但是,由于插入了假的加解密轮计算,大大增加了攻击者对齐真的η轮功耗曲线的难度,提高了攻击者攻击成功的难度。此外,该方法将η轮真的加解密轮计算的结果作为加解密算法的结果,因此,对计算结果并没有影响。 可选地,在本实施例中,每次执行加密算法的计算时,m可以不同,也可以相同。可选地,为了增加攻击的难度,m可以为随机数,即在每次执行加解密轮计算时,需要生成一个随机数m,这样进一步提高了加解密算法的安全性。 可选地,在本实施例中,每轮假的加解密轮计算具体可以为采用假的加解密轮计算参数进行加解密。可选地,假的加解密轮计算参数可以是假的加解密输入数据和假的轮密钥;或者,假的加解密输入数据和真的轮密钥;或者,真的加解密输入数据和假的轮密钥。例如:可以使用假的轮密钥来对假的明文输入进行一轮假的加密轮计算,也可以使用假的轮密钥来对真的明文输入进行一轮假的加密轮计算,或者使用真的轮密钥来对假的明文输入进行一轮假的加密轮计算。其中,假的轮密钥可以是固定的常数,也可以是随机数,也可以通过真的轮密钥的映本文档来自技高网...

【技术保护点】
一种加解密算法的安全执行方法,其特征在于,包括:设置n+m轮加解密轮计算的计算顺序,其中,所述n+m轮加解密轮计算包括n轮真的加解密轮计算和m轮假的加解密轮计算;根据所述计算顺序,执行所述n+m轮加解密轮计算;输出所述n轮真的加解密轮计算的结果作为所述加解密算法的结果;其中,n和m为自然数,每部分连续的假的加解密轮计算的轮数为大于或等于0并且小于或等于m的随机数。

【技术特征摘要】
1.一种加解密算法的安全执行方法,其特征在于,包括: 设置n+m轮加解密轮计算的计算顺序,其中,所述n+m轮加解密轮计算包括η轮真的加解密轮计算和m轮假的加解密轮计算; 根据所述计算顺序,执行所述n+m轮加解密轮计算; 输出所述η轮真的加解密轮计算的结果作为所述加解密算法的结果; 其中,η和m为自然数,每部分连续的假的加解密轮计算的轮数为大于或等于0并且小于或等于m的随机数。2.根据权利要求1所述的方法,其特征在于,所述执行所述n+m轮加解密轮计算包括: 执行k轮假的加解密轮计算; 执行所述η轮真的加解密轮计算; 执行m-k轮假的加解密轮计算; 其中,m、η和k为自然数,k为大于或等于0并且小于或等于m的随机数。3.根据权利要求1或2所述的方法,其特征在于,m为随机数,所述方法还包括: 生成随机数m。4.根据权利要求2所述的方法,其特征在于,所述设置n+m轮加解密轮计算的计算顺序包括: 生成随机数k ; 对所述加解密轮计算的执行轮数进行计数; 将所述加解密轮计算的执行轮数与k和k+n进行比较,根据比较结果,生成控制信号; 根据所述控制信号,生成真的加解密轮计算参数或假的加解密轮计算参数。5.根据权利要求4所述的方法,其特征在于,所述生成真的加解密轮计算参数或假的加解密轮计算参数包括: 生成假的加解密输入数据和假的轮密钥; 所述加解密轮计算的执行轮数和原始密钥,生成真的轮密钥; 基于所述假的加解密输入数据和假的轮密钥、所述真的轮密钥和真的加解密输入数据,根据所述控制信号,生成真的加解密轮计算参数或假的加解密轮计算参数; 根据所述计算顺序,执行所述n+m轮加解密轮计算具体为:根据所述真的加解密轮计算参数或所述假的加解密计算参数,执行所述n+m轮加解密轮计算; 其中,所述假的加解密轮计算参数包括:假的加解密输入数据和假的轮密钥;或者,假的加解密输入数据和真的轮密钥;或者,真的加解密输入数据和假的轮密钥。6.一种加解密算法的安全执行装置,其特征在于,包括: 控制模块,用于设置n+m轮加解密轮计...

【专利技术属性】
技术研发人员:谭洪贺张斌程家锐王晓轩韩扬
申请(专利权)人:昆腾微电子股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1