一种密码芯片抗旁路攻击的安全制备方法

文档序号:6587480阅读:181来源:国知局
专利名称:一种密码芯片抗旁路攻击的安全制备方法
技术领域
本发明涉及信息安全领域,尤其是一种密码芯片抗旁路攻击的安全制备方法。
背景技术
通常情况下,密码芯片的安全性是以芯片所使用的密码算法、安全协议的算法复杂度来 衡量。但是,当密码算法被应用于物理实现时,算法复杂度就不是唯一的安全性衡量标准, 研究表明即使理论安全的密码算法或安全协议,也可能由于物理实现的不当而不安全。
密码芯片的安全性威胁来源于一种新的密码攻击技术抓旁路攻击。在攻击原理上,传统 密码攻击是通过分析密码算法数学模型、明文和密文之间的相关性来破解密码系统。然而, 旁路攻击则是一种物理攻击方法,攻击者通过分析密码芯片运算过程中泄漏的各种旁路信息 来破解密码系统。目前已经被证实的旁路信息有执行时间、功耗、电磁辐射、错误信息、 声音等。
在攻击效率上,旁路攻击的攻击能力较传统数学攻击更为强大。研究表明对于目前广 泛使用的DES/AES密码算法,攻击者利用传统的密码分析技术是很难破解的,然而,对于没 有物理保护的DES/AES密码芯片而言,攻击者只需要获取少量的电磁/功耗曲线,就可在几分 钟内快速破解DES/AES密码芯片。
为了防止这类旁路密码攻击技术,传统防御方法主要有增加噪音信号,减少信息的泄 漏强度,插入随机时延和使用随机掩码。这些防御方法的核心思想是降低旁路泄漏信息和
内部运算之间的相关性,从而增加密码破解的难度。但是,即使采用以上的防御方法,攻击 者也可以通过高级信号处理技术、高阶旁路攻击技术和模板攻击技术来破解密码系统。没有 真正有效避免密码芯片旁路信息泄漏的方法。

发明内容
本发明的目的是提供一种防止密码芯片在使用中受到多种复杂旁路攻击的方法,避免旁 路信息泄漏造成密码算法被破解。
本发明的具体内容为 一种密码芯片抗旁路攻击的安全制备方法,密码芯片初始化阶段 产生的固定掩码FRi (0〈i〈p)与密码算法运算过程中产生的随机掩码Randi(0〈i〈q)结合, 使密码算法在运算过程中至少包含一个测试失效点,攻击者无法获取该点的旁路信息泄漏值 ,使之无法进行统计攻击,测试失效点的产生具体包括如下步骤1、 在密码芯片初始化阶段,密码芯片内部产生一个或多个随机数FRi (0〈i〈p),该随 机数产生后就固定不变,称为固定掩码,用固定掩码FRi对初始密钥Key进行异或运算以掩盖 其初始值,gPFK=FRi Key,该运算生成一个新的掩码密钥FK,固定掩码参数p个固定掩码 的参数为Fp二 FI^④FRp。
使用固定掩码可以对初始密钥Key进行保护,确保初始密钥的安全性;此外,为了防止 在密码芯片的运算过程中,攻击者对旁路泄漏的信号进行采样和攻击,在密码芯片运算中引 入随机掩码技术,降低旁路泄漏和密钥的相关性。
2、 在密码算法运算过程中,产生一个或多个随机数Randi (0〈i〈q),即随机掩码,在每 次密码运算过程中,随机掩码的值均不同。
3、 引入测试失效点测量失效点是一些特殊的状态,该状态在密码算法的运算过程中 要么不存在,要么不产生计算,因此,这些特殊状态的泄漏信息是不存在或不产生的。
Raiidi=Fp; Rand2=Rand2; ….;Raiid(q—i)=Raiid(q—1); Raiidq= Ra11d2 Raiid(q—i), 以上q' 状态点的异或结果为Ranch … Randq=Fp;在密码运算FK Ranch …④Randq过程中,对应 的状态序列〈FK, Ranch, Rand2, ...Randq〉,由于该状态序列中至少包含一个测试失效点, 即固定掩码FRi,并且FRi在密码算法的运算阶段是不被计算的,因此不会产生旁路泄漏,攻 击者无法获取FRi的旁路泄漏信息。
计算修正参数M:为了保证运算结果正确性,需要用随机掩码Randi(0〈i〈q)和固定掩码 FRi(0〈i〈p)异或后的参数M二Fp④FI^来修正加解密计算结果。
为进一步减少旁路攻击的风险,对掩码进行动态的更新,使攻击所获得的旁路采样信息 失效,从而达到更好的防御的目的。
固定掩码通过以下步骤定时更新
1、 定时更新参数设置在密码芯片内部设置更新计数器,其初始值为1=0,门限值为 T=N,密码芯片执行一次密码运算,初始值1=1+1;当1=则寸,将固定掩码FRi (i>0)更新为 FRi';
2、 计算新掩码密钥FK':新的掩码密钥为FK、 FR/ FK,用FK'替代原有的FK进行加 解密运算;
3、 计算固定掩码参数Fp'= FR/④…④FRp'。
通过以上分析可知,在旁路信息泄露发生条件下,通过固定掩码的更新,使得已泄漏信 息失效,使密码系统具有强壮的"自愈"能力。
本发明的有益效果本发明的一种密码芯片抗旁路攻击的安全制备方法,用固定掩码与随机掩码相结合,引入测试失效点,在密码算法的运算阶段不被计算,因此不会产生旁路泄 漏,攻击者无法获取有效旁路泄漏信息;同时,通过对固定掩码定时更新使得已泄露的旁路 信息失效,无需频繁更换密钥,该制备方法设计简单、易于实现,并且能防御多种复杂旁路 攻击和具有较强的"自愈"能力,特别适用于密码芯片的安全防护。
具体实施例方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征 和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图
)中公开的任一特征,除非特别叙述, 均可被其他等效或具有类似目的的替代特征加以替换。S卩,除非特别叙述,每个特征只是一 系列等效或类似特征中的一个例子而已。
在密码芯片初始化阶段,密码芯片内部产生一个或多个随机数FRi (0〈i〈p),本实施例 中令P二3,该随机数产生后就固定不变,称为固定掩码,用固定掩码FRi对初始密钥Key进行 异或运算以掩盖其初始值,即FI^FRi④Key,该运算生成一个新的掩码密钥FK,令Key二8, FRf3,FRf9,FRf5,则可以得到FtFI^ Key=l 1 。 p个固定掩码的参数为Fp二 FI^④FRp,本实 施例中固定掩码的参数F^FI^ FR2 FR3 = 15 。
在密码算法运算过程中,产生一个或多个随机数Randi(0〈i〈q),即随机掩码,引入测试 失效点Randi=Fp; Rand2=Rand2; ...; Rand(q—i)=Rand(q—1); Randq= Rand2 … Rand(q—i), 以上q个状态点的异或结果为Ranch④Ranc^ Fp;令q二4, RandfF^15; Rand2=10; Rand3=13 ;M|Rand4=Rand2 Rand3=7; Randi Rand2 Rand3 Rand4=F3=15
在密码运算FK Ranch … Randq过程中,对应的状态序列〈FK, Ranch, Rand2, …Randq〉,本实施例中FK Randi … RancUX寸应状态〈FK=FRi Key, Randi, Rand2, ...RancU 〉也即〈FK,F^FI^④FR2④FR3〉,由于该状态序列中至少包含一个测试失效点,即 固定掩码FRi,例如F&, FR2, FR3,并且FRi在密码算法的运算阶段是不被计算的,因此不会产 生旁路泄漏,攻击者无法获取FRi的旁路泄漏信息。
为进一步减少旁路攻击的风险,对掩码进行动态的更新,固定掩码通过以下步骤定时 更新
1、 定时更新参数设置在密码芯片内部设置更新计数器,其初始值为1=0,设定门限值 为丁=^3,密码芯片执行一次密码运算,初始值1=1+1;当1=则寸,分别将固定掩F&, FR2, FR3更 新FR/ =12, FR2, =15,FR3' =20。
2、 计算新掩码密钥FK':新的掩码密钥为FK'= FR/ FK, g卩FK'=12 11=7,用FK'替代原有的FK进行加解密运算;
3、计算固定掩码参数Fp'= FR/④…④FRp',本例中F3' =23。 通过以上分析可知,在旁路信息泄露发生条件下,通过固定掩码的更新,使得已泄漏信
息失效,使密码系统具有强壮的"自愈"能力。
本发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的新特征
或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
1.一种密码芯片抗旁路攻击的安全制备方法,密码算法运算过程中产生随机掩码Randi(0<i<q),其特征在于密码芯片初始化阶段产生的固定掩码FRi(0<i<p)与密码算法运算过程中产生的随机掩码Randi(0<i<q)结合,使密码算法在运算过程中至少包含一个测试失效点,攻击者无法获取该点的旁路信息泄漏值,使之无法进行统计攻击,测试失效点的产生具体包括如下步骤(1)在密码芯片初始化阶段,密码芯片内部产生一个或多个随机数FRi(0<i<p),该随机数产生后就固定不变,称为固定掩码,用固定掩码FRi对初始密钥Key进行异或运算以掩盖其初始值,即<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>FK</mi><mo>=</mo><mi>FRi</mi><mo>&CirclePlus;</mo><mi>Key</mi><mo>,</mo> </mrow>]]></math> id="icf0001" file="A2009103061050002C1.tif" wi="23" he="3" top= "81" left = "50" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>该运算生成一个新的掩码密钥FK,固定掩码参数p个固定掩码的参数为<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>Fp</mi><mo>=</mo><mi>FR</mi><mn>1</mn><mo>&CirclePlus;</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>&CirclePlus;</mo><mi>FRp</mi><mo>;</mo> </mrow>]]></math> id="icf0002" file="A2009103061050002C2.tif" wi="31" he="3" top= "89" left = "42" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>(2)在密码算法运算过程中,产生一个或多个随机数Randi(0<i<q),即随机掩码,在每次密码运算过程中,随机掩码的值均不同;(3)引入测试失效点Rand1=Fp;Rand2=Rand2;...;Rand(q-1)=Rand(q-1);<maths id="math0003" num="0003" ><math><![CDATA[ <mrow><mi>Randq</mi><mo>=</mo><mi>Rand</mi><mn>2</mn><mo>&CirclePlus;</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>&CirclePlus;</mo><mi>Rand</mi><mrow> <mo>(</mo> <mi>q</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo></mrow><mo>,</mo> </mrow>]]></math> id="icf0003" file="A2009103061050002C4.tif" wi="41" he="3" top= "119" left = "22" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>以上q个状态点的异或结果为<maths id="math0004" num="0004" ><math><![CDATA[ <mrow><mi>Rand</mi><mn>1</mn><mo>&CirclePlus;</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>&CirclePlus;</mo><mi>Randq</mi><mo>=</mo><mi>Fp</mi><mo>;</mo> </mrow>]]></math> id="icf0004" file="A2009103061050002C5.tif" wi="39" he="3" top= "120" left = "116" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>在密码运算 id="icf0005" file="A2009103061050002C6.tif" wi="7" he="2" top= "120" left = "177" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/> id="icf0006" file="A2009103061050002C7.tif" wi="32" he="3" top= "127" left = "22" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>过程中,对应的状态序列&lt;FK,Rand1,Rand2,...Randq&gt;,由于该状态序列中至少包含一个测试失效点,即固定掩码FRi,并且FRi在密码算法的运算阶段是不被计算的,因此不会产生旁路泄漏,攻击者无法获取FRi的旁路泄漏信息。
2.根据权利要求l所述的一种密码芯片抗旁路攻击的安全制备方法, 其特征在于所述固定掩码通过以下步骤定时更新(1) 定时更新参数设置在密码芯片内部设置更新计数器,其初始值为1=0,门限值为T二N,密码芯片执行一次密码运算,初始值1=1+1;当1=则寸,将固定掩码FRi (i>0)更新为 FRi';(2) 计算新掩码密钥FK':新的掩码密钥为FK、 FRI' FK,用FK'替代原有的FK进行 加解密运算;(3)计算固定掩码参数F p'= FR1'④…④FRp'
全文摘要
一种密码芯片抗旁路攻击的安全制备方法,密码芯片初始化阶段产生的固定掩码FR<sub>i</sub>(0<i<p)与密码算法运算过程中产生的随机掩码Rand<sub>i</sub>(0<i<q)结合,使密码算法在运算过程中至少包含一个测试失效点,攻击者无法获取该点的旁路信息泄漏值,使之无法进行统计攻击,同时,通过对固定掩码定时更新使得已泄露的旁路信息失效,无需频繁更换密钥,该制备方法设计简单、易于实现,并且能防御多种复杂旁路攻击和具有较强的“自愈”能力,特别适用于密码芯片的安全防护。
文档编号G06F21/00GK101639885SQ20091030610
公开日2010年2月3日 申请日期2009年8月26日 优先权日2009年8月26日
发明者涛 张 申请人:成都卫士通信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1