基于ECC密码模块的防攻击方法及装置制造方法及图纸

技术编号:14060862 阅读:83 留言:0更新日期:2016-11-27 17:13
本发明专利技术提供了一种基于ECC密码模块的防攻击方法及装置。所述方法包括:当执行至第一条件跳转指令时,对第三数据执行第一运算指令;所述第一条件跳转指令包括:在输入私钥的比特位di=0时,对第一数据执行第一运算指令,否则,对第二数据执行所述第一运算指令;其中:在di=0时,所述第一运算指令在对所述第三数据执行时的参数与对所述第一数据执行时的参数相同;在di=1时,所述第一运算指令对所述第三数据执行时的参数与对所述第二数据执行时的参数相同。应用所述方法可以防止攻击者通过分析功耗差异对基于ECC密码模块进行攻击,提高所述基于ECC密码模块的安全性。

【技术实现步骤摘要】

本专利技术涉及数据安全
,特别涉及一种基于ECC密码模块的防攻击方法及装置
技术介绍
椭圆曲线密码体制(Elliptic Curve Cryptosystem,ECC)是基于椭圆曲线数学的一种公钥密码体制。相对于目前通用的公钥密码体制,它可以更短的密钥提供更高等级的安全。基于ECC的密码模块在对输入的私钥进行运算的过程中,需要调用二进制点乘算法进行多次二进制点乘运算。每次二进制点乘运算的过程中,由于存在条件跳转指令,即根据私钥比特位取值的不同,执行不同的流程,导致对应的能量迹不同。因此,攻击者在攻击基于ECC的密码模块时,可以采用简单功耗分析等攻击手段,通过区分私钥不同比特位对应的能量迹的差别,破解出私钥。目前,为了抵抗简单功耗分析等攻击手段,出现了大量的防护方法,例如,在二进制点乘算法中,嵌套总是倍点点加算法或蒙哥马利点乘算法来抵抗攻击。然而,在具体实现时,采用上述防护方法的二进制点乘算法仍不可避免地需要根据私钥比特位的取值决定部分指令的执行,攻击者通过分析私钥不同比特位对应的能量迹的细微差别,仍能破解出私钥。
技术实现思路
本专利技术解决的问题是如何防止攻击者通过区分析私钥不同比特位对应的能量迹的细微差别而破解私钥。为解决上述问题,本专利技术实施例提供一种基于ECC密码模块的防攻击方法,所述方法包括:当执行至第一条件跳转指令时,对第三数据执行第一运算指令;所述第一条件跳转指令包括:在输入私钥的比特位di=0时,对第一数据执行第一运
算指令,否则,对第二数据执行所述第一运算指令;其中:在di=0时,所述第一运算指令在对所述第三数据执行时的参数与对所述第一数据执行时的参数相同;在di=1时,所述第一运算指令对所述第三数据执行时的参数与对所述第二数据执行时的参数相同;i为正整数。可选地,所述第一运算指令在对所述第三数据执行时的参数,等于所述第一运算指令对所述第一数据执行时对应的参数以及对所述第二数据执行时的参数中至少一个与所述di进行运算后的结果。可选地,所述第一运算指令在对所述第三数据执行时的参数包括:第一参数和第二参数,在对所述第二数据执行时的参数对应包括:第三参数和第四参数,在对所述第一数据执行时的参数对应包括:第五参数和第六参数,所述第一参数等于所述第三参数和第五参数中的至少一个与所述di进行运算后的结果,所述第二参数等于所述第四参数和第六参数中的至少一个与所述di进行运算后的结果。可选地,所述第一参数等于所述第三参数与第五参数之差与所述di的乘积再与第五参数求和。可选地,所述第二参数等于所述第四参数与第六参数之差与所述di的乘积再与第六参数求和。可选地,所述第一运算指令包括以下任一种:模乘运算指令,模加运算指令和模减运算指令。本专利技术实施例还提供了一种基于ECC密码模块的防攻击装置,所述装置包括:判断单元,用于判断是否执行至第一条件跳转指令,所述第一条件跳转指令包括:在输入私钥的比特位di=0时,对第一数据执行第一运算指令,否则对第二数据执行所述第一运算指令,其中,i为正整数;执行单元,用于当执行至第一条件跳转指令时,对第三数据执行第一运算指令;其中:在di=0,所述第一运算指令在对所述第三数据执行时的参数与对所述第一数据执行时的参数相同;在di=1时,所述第一运算指令对所述第三数据执行时的参数与对所述第二数据执行时的参数相同。可选地,所述第一运算指令在对所述第三数据执行时的参数,等于所述第一运算指令对所述第一数据执行时对应的参数以及对所述第二数据执行时对应的参数中的至少一个与所述di进行运算后的结果。可选地,所述第一运算指令在对所述第三数据执行时的参数包括:第一参数和第二参数,在对所述第二数据执行时的参数对应包括:第三参数和第四参数,在对所述第一数据执行时的参数对应包括:第五参数和第六参数,所述第一参数等于所述第三参数和第五参数中的至少一个与所述di进行运算后的结果,所述第二参数等于所述第四参数和第六参数中的至少一个与所述di进行运算后的结果。可选地,所述第一参数等于所述第三参数与第五参数之差与所述di的乘积再与第五参数求和。可选地,所述第二参数等于所述第四参数与第六参数之差与所述di的乘积再与第六参数求和。可选地,所述第一运算指令包括以下任一种:模乘运算指令,模加运算指令和模减运算指令。与现有技术相比,本专利技术的实施例具有以下优点:通过对是否执行至第一条件跳转指令进行判断,并在执行至第一条件跳转指令时,对第三数据执行第一运算指令,而无须执行第一条件跳转指令,可以从根本上消除因私钥比特位取值的不同所导致的指令执行的不同,也就可以避免由此产生的功耗差异,故可以防止攻击者通过分析上述功耗差异对基于ECC密码模块进行攻击,提高所述基于ECC密码模块的安全性。附图说明图1是本专利技术实施例中基于ECC密码模块的防攻击方法的流程图;图2是本专利技术实施例中基于ECC密码模块的防攻击装置的结构示意图。具体实施方式基于ECC的密码模块在对输入的私钥进行运算的过程中,需要根据私钥的比特长度并调用二进制点乘算法进行多轮运算,其中,每一轮运算针对私
钥的一比特位进行。通常情况下,二进制点乘算法中可以包括倍点运算和点加运算,对私钥的一比特位di进行运算时,在di=0时,仅做一次倍点运算即可完成该轮运算,而在di=1时,做完一次倍点运算后,还需要再做一次点加运算,才可完成该轮的运算。也就是说,私钥比特位di的取值决定了是否执行点加运算,以及倍点运算和点加运算的执行顺序。由于所述密码模块在执行点加运算和倍点运算时的功耗不同,因此,攻击者往往可以采用简单功耗分析等手段,对所述密码模块在每轮运算过程中的功耗进行分析,最终破解出私钥。为了抵抗简单功耗分析等攻击手段,通常在二进制点乘算法中嵌套总是倍点点加算法或蒙哥马利点乘算法来完成对私钥某一比特位的运算。无论是在二进制点乘算法中嵌套总是倍点点加算法还是蒙哥马利点乘算法,均可以使得每一轮运算在执行完倍点运算后,执行点加运算,而无须根据私钥比特位的取值来决定是否执行点加运算以及倍点运算和点加运算的执行顺序,从而可以减小由此导致的功耗差异,有效抵抗攻击者的攻击。在具体实施中,二进制点乘算法通常是由软件调度相关的硬件基本运算单元来实现的,尽管在二进制点乘算法中嵌套了总是倍点点加算法或者蒙哥马利点乘算法,然而,在依靠软件调度相关的硬件基本运算单元实现总是倍点点加算法或者蒙哥马利点乘算法时,部分硬件基本运算单元的参数仍需要根据私钥比特位的取值来决定,即仍存在条件跳转指令,从而导致每轮运算的执行仍存在细微的差异。因此,攻击者通过分析二进制点乘算法每轮运算执行的细微差异,仍可以破解出私钥。针对上述问题,本专利技术的实施例提供了一种基于ECC密码模块的防攻击方法。所述方法通过判断是否执行至第一条件跳转指令,并在执行至第一条件跳转指令时,对第三数据执行第一运算指令,从而无须执行第一条件跳转指令,因此可以从根本上消除因私钥比特位取值的不同所导致的指令执行的不同,避免由此产生的功耗差异,有效防止攻击者利用上述功耗差异对所述密码模块进行攻击,提高所述基于ECC密码模块的安全性。为使本专利技术的上述目的、特征和优点能够更为明显易懂,下面结合附图
对本专利技术的具体实施例做详细地说明。在下本文档来自技高网
...
基于ECC密码模块的防攻击方法及装置

【技术保护点】
一种基于ECC密码模块的防攻击方法,其特征在于,包括:当执行至第一条件跳转指令时,对第三数据执行第一运算指令;所述第一条件跳转指令包括:在输入私钥的比特位di=0时,对第一数据执行第一运算指令,否则,对第二数据执行所述第一运算指令;其中:在di=0时,所述第一运算指令在对所述第三数据执行时的参数与对所述第一数据执行时的参数相同;在di=1时,所述第一运算指令对所述第三数据执行时的参数与对所述第二数据执行时的参数相同;i为正整数。

【技术特征摘要】
1.一种基于ECC密码模块的防攻击方法,其特征在于,包括:当执行至第一条件跳转指令时,对第三数据执行第一运算指令;所述第一条件跳转指令包括:在输入私钥的比特位di=0时,对第一数据执行第一运算指令,否则,对第二数据执行所述第一运算指令;其中:在di=0时,所述第一运算指令在对所述第三数据执行时的参数与对所述第一数据执行时的参数相同;在di=1时,所述第一运算指令对所述第三数据执行时的参数与对所述第二数据执行时的参数相同;i为正整数。2.如权利要求1所述的基于ECC密码模块的防攻击方法,其特征在于,所述第一运算指令在对所述第三数据执行时的参数,等于所述第一运算指令对所述第一数据执行时对应的参数以及对所述第二数据执行时的参数中至少一个与所述di进行运算后的结果。3.如权利要求2所述的基于ECC密码模块的防攻击方法,其特征在于,所述第一运算指令在对所述第三数据执行时的参数包括:第一参数和第二参数,在对所述第二数据执行时的参数对应包括:第三参数和第四参数,在对所述第一数据执行时的参数对应包括:第五参数和第六参数,所述第一参数等于所述第三参数和第五参数中的至少一个与所述di进行运算后的结果,所述第二参数等于所述第四参数和第六参数中的至少一个与所述di进行运算后的结果。4.如权利要求3所述的基于ECC密码模块的防攻击方法,其特征在于,所述第一参数等于所述第三参数与第五参数之差与所述di的乘积再与第五参数求和。5.如权利要求3或4所述的基于ECC密码模块的防攻击方法,其特征在于,所述第二参数等于所述第四参数与第六参数之差与所述di的乘积再与第六参数求和。6.如权利要求1所述的基于ECC密码模块的防攻击方法,其特征在于,所述第一运算指令包括以下任一种:模乘运算指令,模加运算指令和模减运算指令。7.一种基于ECC密码模块的防攻击装置,其特...

【专利技术属性】
技术研发人员:王立辉单伟君张志敏刘丹郭丽敏姜焜梅洁勤
申请(专利权)人:上海复旦微电子集团股份有限公司
类型:发明
国别省市:上海;31

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

1