密钥保护机制的制作方法

文档序号:7680776阅读:214来源:国知局
专利名称:密钥保护机制的制作方法
技术领域
本发明涉及可抵抗差分故障分析或故障注入攻击以保护私密密钥的完整性的密 码系统。
背景技术
当使用基于私密密钥的算法时,可需要一种故障注入保护机制。这一机制是一种 用以保护私密密钥免遭与密钥操纵相关的差分故障分析的安全方式。差分故障分析是 一种为提取密码密钥信息而强加瞬间硬件故障及所导致的计算错误(例如在密钥调度 算法或最后加密循环的执行期间)的密码攻击。此故障分析可适用于公共密钥及私密 密钥密码系统两者,其中包含智能卡上的防窜改装置。例如,伊莱比哈姆(EliBiham) 及艾迪沙米尔(Adi Shamir)在Advances in Cryptology (密码术提高)-CRYPTO '97, LNCS 1294, pp. 513-525 (斯普林格出版社(Springer-Verlag) , 1997)的"Differential Fault Analysis of Secret Key Cryptosystems (私密密钥密码系统的差分故障分析)"中 描述了对DES类密码的差分故障分析攻击。
当前可用的保护机制是离线实施的,且不适于所有应用。例如,现有机制不会向 按需要产生而非提前产生的会话密钥提供保护。
哈该巴尔(Hagai Bar-El)等人在2004年6月30日的意大利佛罗伦萨(Florence Italy)密码术故障检测与容差研讨会上发布的Discretix Technologies White Paper (迪 斯克莱提斯科技白皮书)"The Sorcerer's Apprentice Guide to Fault Attacks (故障攻击 巫师之徒指南)"(密码术数字印刷档案(—Uacr.org)报告2004/100;同样,引 文检索引擎(CiteSeer)论文705084)中描述了对电子密码电路实施此类故障攻击的 各种方法且建议了若干对策。所述对策主要包括在假定不可重复相同故障的情况下引 入冗余,其中重新计算操作且比较结果。承认所得的系统较慢且不太有效,但仍视其 为安全成本的部分。
因此需寻求用于保护私密密钥完整性的更有效对策。

发明内容
本发明是一种在密码应用中使用私密密钥之前验证所述私密密钥的完整性的密 码方法。特定来说,在随后以经掩蔽的密钥对使用原始未掩蔽的密钥而获得的加密结 果进行解密时,将所述结果的检验和用作有效数据的验证签名。
3保护硬件密码系统(否则其会遭受故障攻击)中私密密钥完整性的方法包括使 用所述私密密钥来获得及保存来自已知数据的加密结果以及所述加密结果的检验和, 且接着掩蔽所述私密密钥。当随后在密码应用中使用经掩蔽的密钥时,首先检验所述 密钥的完整性。特定来说,使用所述经掩蔽的密钥将所保存的加密结果解密。如果在 比较时发现所述解密结果不等于有效数据,则未通过完整性检验,从系统中抹去与经 掩蔽的密钥相关的所有数据且用旗标来表示故障注入。如果解密结果确实等于有效数 据,则所述经掩蔽的密钥的完整性已得以证实且可用于密码系统中。


图1是根据本发明的密钥保护方法的例示性实施例的流程图。
具体实施例方式
本发明的密钥保护方法可操作的例示性硬件环境可包含硬件随机数产生器
(RNG)、用于受保护密钥存储的随机存取存储器(RAM)或非易失性存储器(例如 快闪EPROM)、微处理器或微控制器及用以存储程序的某一存储器。另外,所述硬 件还有可能包含用于计算基于私密密钥的算法(DES、 AES等)的硬件协处理器。这 一协处理器(如果存在)将处置基于"异或"的密钥去掩蔽机制
Real—Key := Masked—Key XOR Masking—Value,且同样的 Masked_Key : = Real—Key XOR Masking_Value .
因此,将不再强制性地以其真实形式操纵或存储密钥,而是以其经掩蔽形式来操 纵或存储。另外,所述硬件还可能包含用于执行完整性检验的硬件循环冗余检验(CRC) 模块。16位的模块将是足够的,但其它大小的CRC也是合适的。然而,本发明的密 钥保护方法在没有协处理器且没有硬件CRC模块的情况下效果相当好。
参照图1,根据本发明的密钥保护方法可通过如步骤11中所示播种随机数产生器 (RNG)的开始来方便地开始。不同的种子从所述RNG中产生不同的随机序列。所 播种的RNG将在随后步骤中用于密钥掩蔽。因此,所述RNG的播种(步骤ll)可在 产生进行密钥掩蔽所需的随机字节(步骤16)之前的任何时时间处发生。
所述程序的第一主要部分(步骤12到15)获得供用于对私密密钥的后续完整性 检验中的加密结果及对应的检验和。
将待受保护的私密密钥以明文形式加载(步骤12)到密钥寄存器中。所述密钥可 具有任何合适的长度,这取决于密码算法。同样,可存在一个以上密钥,例如存在于 在用于加密与解密的连续循环组中使用两个或三个独立密钥的三DES中。加密算法可包含其中使用刚刚加载到(一或多个)密钥寄存器中的(一或多个)私密密钥来产生 用于不同算法循环的循环子密钥序列的密钥产生例程。所有这些变化均预期用于本发
明的密钥保护。
接下来,使用所述密码算法及待受保护的密钥来将供用于密钥验证
(VERIF—DATA)的已知数据加密(步骤13)。通过(例如)使用循环冗余检验(CRC) 例程来计算加密结果的检验和(步骤14)。通过(例如)将加密结果及对应的检验和 存储在安全存储器中来将所述加密结果及检验和保持为加密结果的验证签名。接着将 所述密钥寄存器抹空(步骤15)。
接下来,使用先前播种的RNG来产生(步骤16)用于密钥掩蔽操作的随机字节。 使用(例如)具有所述随机字节中的一者或一者以上的密钥位的逐位"异或"来以随 机字节掩蔽(一或多个)原始私密密钥(步骤17):
Masked_Key : = Real—Key XOR Masking_Value .
进行掩蔽所需要的随机字节的数目将取决于密钥大小,以及待掩蔽的密钥的数目。当 使用多个密钥时,可将相同或不同的随机字节用于掩蔽不同密钥。 一经掩蔽,(一或 多个)经掩蔽的密钥即被存储在安全非易失性存储器(例如EEPROM)的规定位置中。
将(一或多个)经掩蔽的密钥从所述规定的存储器位置加载(步骤18)到(一或 多个)密钥寄存器中。接着,通过在与原始加密相反的方向上使用相同的密码算法, 使用(一或多个)经掩蔽的密钥来将先前的加密结果解密(步骤19)。(注意,当加 密期间使用了多个密钥时,例如在三DES中,则通常必须以相反的次序使用所述密钥 以实现正确解密。)如果考虑到加密函数Encrypt (Data, Key, Mask)及对应的解密函 数Decrypt (Data, Key, Mask),且如果将Encrypt (VALID...DATA, Real—Key, O)作 为先前的加密结果(步骤19),则如果Real—Key = Masked—Key XOR Masking—Value, 那么步骤20中的解密应为Decrypt (Encrypt (VALID—DATA, RealJCey, O)), Masked—Key, Masking—Value) = VALID—DATA 。
将使用经掩蔽的密钥的解密结果与有效数据(VALID—DATA)进行比较(步骤 20)。所述经掩蔽的密钥应对应于在对有效_数据进行加密时所产生的验证签名(检验 和)。如果解密结果不等于VALID—DATA,则经掩蔽的密钥未通过完整性检验,且 用旗标来表示故障注入(步骤21)。然而,如果解密结果等于VALID—DATA,则经 掩蔽的密钥通过完整性检验且可以使用。 一旦完成完整性检验,即抹拭用于解密及完 整性检验的所有硬件寄存器(步骤22)。
权利要求
1、一种保护易遭受故障攻击的硬件密码系统中的私密密钥完整性的方法,所述方法包括从已知数据及待受保护的私密密钥中获得加密结果及对应的检验和;掩蔽所述私密密钥以获得经掩蔽的密钥;将所述经掩蔽的密钥加载到密钥寄存器中;在将经掩蔽的密钥用于所述硬件密码系统中之前的任何时间处,首先通过用所述经掩蔽的密钥对所述加密结果进行解密以获得解密结果并将所述解密结果与有效数据进行比较来检验所述经掩蔽的密钥的所述完整性;及如果所述解密结果不等于有效数据,则抹去与所述经掩蔽的密钥相关的所有数据且用旗标来表示故障注入。
2、 如权利要求l所述的方法,其中获得加密结果及对应的检验和包括 将所述待受保护的私密密钥以明文形式加载到密钥寄存器中;将已知数据呈现给加密算法并使用所述私密密钥对所述已知数据进行加密以获 得所述加密结果;对所述加密结果执行检验和计算以获得所述对应的检验和;及 将所述加密结果及检验和保存在安全存储器中。
3、 如权利要求2所述的方法,其中所述检验和计算是循环冗余检验(CRC)例程。
4、 如权利要求1所述的方法,其中掩蔽所述私密密钥包括使用随机数产生器硬 件产生随机字节且使用掩蔽例程将所述随机字节应用于所述私密密钥。
5、 如权利要求4所述的方法,其中所述掩蔽例程是所述随机字节及所述私密密 钥的逐位"异或"运算。
6、 如权利要求4所述的方法,其中在使用已知种子播种所述随机数产生器硬件 之后产生所述随机字节,不同的种子产生不同的随机字节序列。
全文摘要
本发明揭示一种保护硬件密码系统中的私密密钥完整性的方法,所述方法包含首先使用所述私密密钥获得已知数据的加密结果(13)及对应的检验和(14);保存所述结果;接着掩蔽所述私密密钥(16、17);及存储所述经掩蔽的密钥(18)。当将要在密码应用中使用所述经掩蔽的密钥时,所述方法通过使用所述经掩蔽的密钥对先前的加密结果进行解密(19)来检验密钥在故障攻击下的完整性。如果根据比较(20),解密结果等于有效数据(通过),则所述密钥在所述密码系统中的使用可继续。否则(未通过),从所述系统中抹去与所述经掩蔽的密钥相关的所有数据并用旗标来表示故障注入(21)。
文档编号H04L9/00GK101569131SQ200780047663
公开日2009年10月28日 申请日期2007年11月2日 优先权日2006年12月22日
发明者文森特·杜帕丘斯, 米歇尔·杜盖 申请人:爱特梅尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1