[发明专利]一种轮输出为布尔掩码的ZUC序列密码算法掩码防护方法有效
申请号: | 201510221466.9 | 申请日: | 2015-05-05 |
公开(公告)号: | CN104852795B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 罗鹏;李大为;曹伟琼;张翌维;刘鹏飞 | 申请(专利权)人: | 国家密码管理局商用密码检测中心 |
主分类号: | H04L9/00 | 分类号: | H04L9/00;H04L9/06 |
代理公司: | 北京东正专利代理事务所(普通合伙)11312 | 代理人: | 刘瑜冬 |
地址: | 100036*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 输出 布尔 掩码 zuc 序列 密码 算法 防护 方法 | ||
技术领域
本发明属于密码算法的防护技术领域,特别是为了使祖冲之序列密码算法(ZUC)抵抗侧信道分析,保护密钥k,设计了一种针对ZUC算法的掩码防护方法,即针对轮输出为布尔掩码的ZUC序列密码算法掩码防护方法;该方法随机化算法的中间值,使得设备的能量消耗与所执行的密码算法的中间值之间无依赖关系。
背景技术
随着信息技术的发展,各种密码算法正被广泛地应用于经济、军事、行政等重要部门,保护信息的安全性。鉴于密码算法的重要性,密码算法软硬件实现(密码模块)的分析研究对保护信息安全具有重要的意义。
近年来,多种对密码模块的攻击已广为人知,所有这些攻击的目的都是为了获取密码模块中的密钥。通常的攻击方式可分为侵入式攻击、半侵入式攻击和非侵入式攻击。近年来,由于非侵入式攻击中的侧信道分析实施方便、相对成本低廉而被广泛使用。侧信道分析可以细分为计时分析、能量分析和电磁分析。其中的侧信道能量分析是众多分析手段中最常用的方法之一,它突破了传统密码算法的分析模式,能力强大,实施相对容易。侧信道能量分析利用了密码模块能量消耗与数据运算和执行之间的相关性,基于密码算法实现的能量泄露函数建立能量模型,使用统计方法,猜测和验证密码模块使用的受保护密钥,几乎可被用于破解所有的对称密码和公钥密码。破解时,仅需要数十条能量迹就可以在几分钟内迅速地破解没有防御措施的大多数智能卡。侧信道能量分析方法一般包括,简单能量分析(SPA)、差分能量分析(DPA)、相关能量分析(CPA)和高阶差分能量分析(HODPA)。
直接利用能量迹各尖峰形状不同这一特性的攻击称为简单能量分析攻击SPA(Simple Power Analysis);根据密码设备的能量消耗依赖于算法执行过程中所处理的中间值分别为0和1时,所对应的平均能量迹之间的差异进行密钥恢复的攻击方法称为差分能量分析攻击DPA(Differential Power Analysis);若密码分析者利用假设能量消耗和真正能量消耗之间的线性相关性进行密钥恢复,则为相关能量分析攻击CPA(Correlation Power Analysis);在上述DPA分析中,如果仅利用了一个中间值,称为一阶DPA攻击,若是利用算法运算中的某种联合泄漏,该联合泄漏基于出现在密码设备中的多个中间值,则称相应的DPA攻击为高阶DPA分析。
鉴于当前对密码算法进行功耗分析攻击技术的不断发展,为应对能量分析带来的挑战,针对功耗分析攻击的防御技术也不断进步。抗功耗分析的防御技术包括各种隐藏技术和掩码技术,任何防御技术的目标都是使密码设备的能量消耗不依赖于设备所执行的密码算法中间值。
隐藏技术是通过能量消耗随机化,使所有操作具有相同能量消耗等方式切断被处理的中间值与设备能量消耗之间的关系。采用隐藏技术的密码设备与未加防护的设备执行相同的操作,但无法从中获取可用信息。
掩码技术是采用随机化密码设备所处理的中间值,对算法实现加入随机化掩码。其可以在算法级实现,无需改变密码设备的能量消耗特性,使设备的能量消耗与所执行的密码算法的中间值之间无依赖关系。
在掩码防御方案中,算法运算的中间值v都基于一个称为掩码的随机数m进行变换,即vm=v*m。掩码产生于密码设备内部,并且在每一次执行过程中各不相同,因此攻击者不能获知掩码。运算*通常根据密码算法所使用的操作进行定义。因此,运算*多为布尔异或运算、模加运算或模乘运算。在模加运算和模乘运算的情况下,模数根据密码算法进行选择。通常,掩码直接应用于明文或密钥。为了能够处理掩码型中间值以及对掩码进行跟踪,需要对算法进行修改。加密的结果也是掩码型的,为了获得密文,需要在计算结束时消除掩码。要保持每一个中间值在计算过程中始终处于被掩码状态,这一点非常重要。即使某一个中间值是基于它之前的中间值计算得到,保持上述性质仍然很重要。由于上述原因,对不同的中间值,往往需要分别采用不同的掩码。处于对实现性能的考虑,对每一个中间值采用一个新掩码并不合算。因此,为了获得合适的性能,需要仔细选择掩码的数量。
在算法一个执行路径中所叠加的掩码数量,称为算法掩码防御方案的阶数,对相应阶数的掩码进行能量分析的方法,称为高阶能量能量分析。一阶掩码可以防御一阶的能量分析,但不能防御二阶能量分析;二阶掩码可以防御二阶能量分析,但不能防御三阶能量分析。通常考虑到防御和分析的指数递增运算量增加,以及算法结构上可利用的能量泄露的点的限制,通常分组算法实现只能做到二阶能量分析,相应的防御措施也一般只做到二阶掩码防御即可。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家密码管理局商用密码检测中心,未经国家密码管理局商用密码检测中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510221466.9/2.html,转载请声明来源钻瓜专利网。