基于全加密算法伪操作的旁路攻击防护方法

文档序号:8415389阅读:438来源:国知局
基于全加密算法伪操作的旁路攻击防护方法
【技术领域】
[0001]本发明涉及的是一种计算机安全领域的技术,具体是一种基于全加密算法伪操作的密码电路旁路攻击防护方法,可适用于SMS4等算法。
【背景技术】
[0002]在现实中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如:智能卡、RFID、密码协处理器、SoC密码芯片、密码机等。在这些密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效地密码破译。人们通常把这种环境下的攻击称为“旁路攻击(SideChannel Attack)”。在芳路攻击的方法中,通常包括简单功耗分析(SPA)和差分功耗分析(DPA) ο SPA攻击是通过少量的功耗曲线(对应少量的明文),利用密码算法的特征及其反映在功耗曲线上的特点,直接揭示出密钥或者与之相关的敏感信息。DPA攻击是通过记录密码设备对大量不同数据加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥。
[0003]旁路攻击方法的出现对很多现在的芯片构成了具大的威胁,因此,相应的出现了很多种旁路攻击的防护方法。比较常用的防护技术有隐藏技术和掩码技术。隐藏策略的目标是消除密码设备的功耗与设备所执行的操作和所处理的中间值之间的相关性。而掩码技术是通过随机化消息和密钥,使得无法建立密钥与功耗的关系。在隐藏技术中,其中有时间维度上的隐藏,这包括随机插入伪操作和乱序操作两种隐藏方法。随机插入伪操作是在密码算法执行前后以及执行中随机插入一些假的操作。这种方法可以破坏真实操作的对齐,使得在受到旁路攻击中攻击效果大大降低。乱序操作是在某些密码算法中,特定操作的执行顺序可以任意改变,因而可以通过改变这些操作的执行顺序来引入随机性。
[0004]掩码防护方法的缺点在于针对非线性操作(例如S盒)的掩码会使得电路面积变得很大,代价会很高,而且也并不能完全防护住泄露。而隐藏技术只是降低了泄露信号的信噪比,没有从根本上防护旁路攻击。而我们设计的伪操作及乱序操作的组合,一方面将真实密钥真真做到了隐藏,另外一方面也降低了信噪比,另外,也可以与掩码技术相结合来使用,不会产生什么冲突。
[0005]SM4为基于国家标准GM/T 0002 -2012《SM4分组密码算法》(原SMS4分组密码算法)的加密算法,该算法为对称算法,密钥长度和分组长度均为128位,加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
[0006]经过对现有技术的检索发现,中国专利文献号CN103546277A公开(公告)日2014.01.29,公开了一种智能卡SM4算法的DPA攻击与密钥还原方法及系统,其方法包括以下步骤:步骤一,对SM4算法加密过程的前4轮进行DPA攻击,获取前4轮的子密钥;步骤二,利用得到的4轮子密钥恢复SM4密钥。采用该技术所述的方法和系统可以实现智能卡上SM4算法的DPA攻击,还原SM4加密密钥,验证智能卡上SM4算法的抗攻击能力。
[0007]中国专利文献号CN103227717A公开(公告)日2013.07.31,公开了一种选择轮密钥异或输入进行SM4密码算法侧信道能量分析的应用,其核心在于进行SM4密码算法侧信道能量分析过程中,选择S盒或轮函数作为攻击点建立汉明距离模型,以轮密钥异或输入作为汉明距离模型的前续状态vl,对S盒进行攻击时,汉明距离(HD(vl,v2))模型的后继状态v2是S盒输出;对轮函数进行攻击时,汉明距离(HD(vl,v2))模型的后继状态v2是轮函数输出/输入。
[0008]中国专利文献号CN102546157A公开(公告)日2012.07.04,公开了一种抵抗能量分析的随机混合加密系统及其实现方法,该技术系统由伪随机序列PN128生成模块、S盒更新模块、掩码修正值生成模块、明文输入寄存器、伪随机序列PN64生成模块、选通电路A、选通电路B、SMS4加密模块、AES加密模块、多路器、密文输出寄存器i^一个部分组成。该技术首次提出了一种抵抗能量分析的随机混合加密系统及其实现方法,通过伪随机序列PN64,对明文随机采用基于掩码技术的AES或者SMS4算法进行加密,算法硬件实现中所有的基本电路单元均通过对称电路实现,从根本上杜绝了简单和差分能量分析,加密系统具有多种工作模式,适用于不同场景。但该技术在某些明确要求使用单一算法如SMS4算法的情况下无法处理,另外,如果只是从算法的混合防护(不考虑掩码)角度来考虑,此防护并不能完全消除DPA攻击,因为我们可以把猜测算法出错作为一种噪声,因此,这种防护方案只是减少了信噪比,增加了 DPA攻击的难度而已。
[0009]中国专利文献号CN102412963A以及CN102360414A分别公开了一种基于随机序列的具有误导功能的加密方法以及一种可修正伪随机序列的可误导的加密方法,该技术可以得到伪密钥,从而可以误导密码分析者,这种误导是决定于内层密钥的,为了可以进行任意的误导,采用长随机序列来产生子密钥,长随机序列可以由量子密钥分配产生。对于文档中的标记采用特别的处理方式,使得即使规定的标记可能出现在文本中,依然不会混淆。加密的时候需要有一个关键词数据库,其内层加密利用数据库进行关键词的扩充,外层加密采用了传统的加密方法。该技术解密时无需数据库的支持,避免了数据库同步的问题。该技术在各种场合加密应用中均具有一定的使用价值,特别是军事上。但该技术针对的是“软磨硬泡”攻击方法,通过误导解密后的明文的可读性来防护。这种方法对于旁路攻击没有效果O
[0010]有时芯片已经流片成型,此时不能修改硬件,需要从软件调用角度,考虑如何来实现防护旁路攻击的目的。

【发明内容】

[0011]本发明针对现有技术存在的上述不足,提出一种基于全加密算法伪操作的旁路攻击防护方法,通过伪密钥执行算法从而大幅度提高破解难度。
[0012]本发明是通过以下技术方案实现的:
[0013]本发明涉及一种基于全加密算法伪操作的旁路攻击防护方法,整个计算执行了多次的加密算法操作,在这多次的加密操作中,SMS算法的计算所使用的密钥是从m个伪密钥和I个真实密钥所组成的密钥系列中选取的。整个操作得到了多次的加密结果,而只有一次结果是真实的所需要的密文。
[0014]所述的密钥序列通过密钥随机选取电路(或软件即软件调用模式实现,下同)或通过密钥存储器随机打乱机构从密钥存储器中选择得到,具体为:
[0015]①生成m个伪密钥和一个真实的密钥,然后利用密钥存储器随机打乱机构进行随机打乱,并记录下真实密钥的位置,或
[0016]②确定真实密钥执行的序号K,而密钥序列中其它m个伪密钥通过密钥随机选取机构从密钥存储器中选择得到。
[0017]对上述两种密钥序列生成方法中,可以只使得伪密钥的前32位是真实密钥不同,以此节省密钥存储空间,只需达到让第一轮的轮密钥不同的要求即可。
[0018]所述的SMS4加密计算是指:将待加密的明文和各生成的各轮轮密钥进行加密算法的轮函数迭代计算。SMS4算法的轮函数迭代次数为32次。
[0019]经过32次的轮函数迭代计算后将真实密钥的计算结果作为密文输出。
[0020]本发明涉及一种实现上述方法的系统,包括:SMS4的轮函数电路模块、密钥选择机构模块、(m+1)个密钥存储器、SMS4的周期轮密钥生成电路模块。其中:(m+l)个密钥存贮器与密钥选择电路相连并传输真假密钥,SMS4的密钥生成电路与SMS4的轮函数电路模块和(m+1)个轮密钥存贮器相连并传输真轮密钥。
技术效果
[0021]与现有技术相比,本发明执行真实SMS4运算的位置随机,使攻击者无法对齐功耗曲线,从而无法实现攻击。另外,由于采用了伪密钥执行算法,使得在尝试对此防护芯片的攻击时,会对旁路攻击产生干扰作用。
【附图说明】
[0022]图1为实施例1流程示意图。
[0023]图2为实施例1排列真假轮密钥采用的对数洗牌示意图。(其中子密钥表示128比特密钥的前32比特)
[0024]图3为实施例2流程示意图。
[0025]图4为实施例3流程示意图。
[0026]图5为实施例4流程示意图。
【具体实施方式】
[0027]下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
[0028]如图1所示
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1