芯片中安全的点乘实现方法技术

技术编号:13284465 阅读:105 留言:0更新日期:2016-07-09 01:18
本发明专利技术公开了一种芯片中安全的点乘实现方法,步骤1.读取用于点乘运算的标量k和椭圆曲线点P;步骤2.产生占空比为1/N的随机比特序列RandomBit;步骤3.计算标量k的非相邻表示型对于i∈{1,3,5,…,2w-1-1},计算Pi=iP;步骤4.Q←∞;步骤5.对于i从l-1到0,重复执行;步骤5.1.Q←2Q;步骤5.2.若RandomBit的最低比特为1,则执行伪操作DP,RandomBit≥1;否则,若ki≠0,且ki>0,则否则,步骤6.返回(Q)。本发明专利技术能够有效抵御侧信道攻击、故障注入攻击和模板分析攻击,提高芯片的安全性。适用于智能卡等计算资源受限的嵌入式设备,例如应用密码安全芯片的金融卡、交通卡等等。

【技术实现步骤摘要】
芯片中安全的点乘实现方法
本专利技术涉及芯片中椭圆曲线公钥密码体制的安全执行领域,具体涉及一种芯片中安全的点乘实现方法。
技术介绍
自1985年Miller和Koblitz各自独立地提出椭圆曲线公钥密码以来,椭圆曲线公钥密码体制(ellipticcurvecryptosystem,简称ECC)就以其独特的优势,如计算速度快、存储空间小、带宽要求低、计算参数少等,引起了密码学工作者的高度关注。发展至今,ECC不仅被广泛地应用到信息安全领域,而且还形成了一些国际组织认可并作为公钥密码加密标准的国际标准(IEEEPI1363,ANSIX9,ISO/IEC和NIST等)。椭圆曲线公钥密码体制的核心运算是点乘运算,点乘运算的效率和安全性决定椭圆曲线密码体制实现的效率和安全性。随着对点乘研究的深入,密码学工作者研究出了很多高效而快速的点乘实现方法。同时,相应的攻击方法也被提了出来,例如简单功耗分析(SPA),差分功耗分析(DPA),差分故障分析(DFA,DifferentialFaultAnalyze)和模板分析攻击(TA,TemplateAnalyze)等等,使得现有的点乘实现方法变得越来越不安全。目前已有很多种实现点乘运算的方法,其中最简单的实现方法是二进制实现方法,如下所示:输入:窗口宽度w,一个正整数k,P∈E(Fq)。输出:kP。1、计算2、对于i∈{1,3,5,...,2w-1-1},计算Pi=iP;3、Q←∞;4、对于i从l-1到0,重复执行;4.1、Q←2Q,执行倍点运算;4.2、若ki≠0,则执行点加运算;5、返回(Q)。可见,在计算点乘时,需要先将标量k表示为二进制,然后对其从高位开始逐位扫描,若该位为0,则只需计算一次倍点运算;若该位为1,则需先进行倍点运算,再进行点加运算。因此,在这种实现方式中,只要能够区别出点加和倍点运算各自所在的区域,就可以直接获得标量K的二进制表示形式,而标量k往往就是密钥或者秘密数据。因此,密码工作者提出了很多种安全的实现方法,例如提出了加入伪操作使得倍点和点加进行平衡,有的则对标量进行变换以使得点乘运算能够抵抗简单功耗分析等等,但由于攻击方法层出不穷,目前的实现方法抵抗了一种攻击手段却无法对另一种攻击手段免疫。
技术实现思路
本专利技术要解决的技术问题是提供一种芯片中安全的点乘实现方法,能够有效抵御侧信道攻击、故障注入攻击和模板分析攻击,提高芯片的安全性。为解决上述技术问题,本专利技术的芯片中安全的点乘实现方法,当潜在受到SCA(SideChannelAnalyze,旁路分析攻击)攻击、DFA攻击和TA攻击的软件或硬件密码设备运行椭圆曲线密码体制时,在需要进行点乘运算的情况下,在具体执行点加和倍点迭代的过程中,执行如下步骤:步骤1、读取用于点乘运算的标量k和椭圆曲线点P;步骤2、产生占空比为1/N的随机比特序列;步骤3、计算标量k的非相邻表示型对于i∈{1,3,5,...,2w-1-1},计算Pi=iP;步骤4、Q←∞;步骤5、对于i从l-1到0,重复执行;步骤5.1、Q←2Q;步骤5.2、若RandomBit的最低比特为1,则执行伪操作DP,RandomBit>>1;否则,若ki≠0,且ki>0,则否则,步骤6、返回Q;所述的随机比特序列RandomBit控制着伪操作DP的插入的时机,当遍历RandomBit的时候,如果遇到该比特位为1,则插入伪操作DP,否则不插入伪操作DP。采用本专利技术的方法,在智能卡或非智能卡芯片上,在硬件或软件上实现椭圆曲线公钥密码体制的点乘运算时,通过对运算过程插入适量的伪操作,使得攻击者在功耗特征上不能够有效地分辨出运算数据对功耗的影响,从而抵御了侧信道攻击;同时,通过随机数打乱了插入伪操作的时机,使得攻击者不能够准确地对故障注入点进行判断和分析,从而抵御了故障注入攻击和模板分析攻击。因此,当潜在受到侧信道攻击和差分故障攻击的软件或硬件密码设备运行椭圆曲线公钥密码体制时,在需要对秘密密钥或保密参数进行点乘计算的情况下,本专利技术能够有效抵御侧信道攻击、故障注入攻击和模板分析攻击,提高芯片的安全性。同时还能根据应用需求,设计与系统相匹配的效率和安全性,即效率的影响和安全的强度可调可控。本专利技术适用于芯片中的硬件和软件实现的安全算法,特别适用于智能卡等计算资源受限的嵌入式设备,例如应用密码安全芯片的金融卡、交通卡等等。本专利技术的其他优点,目的和特征将部分地在随后的描述中阐明,并且对本领域普通技术人员来说,部分内容将在审查下列内容时变得清楚,或者可以由本专利技术的实践而得知。利用在书面描述及其权利要求以及附图中具体指出的结构,可以实现和达到本专利技术的目的和其他优点。附图说明下面结合附图与具体实施方式对本专利技术作进一步详细的说明:附图是所述芯片中安全的点乘实现方法流程图。具体实施方式所述芯片中安全的点乘实现方法,当潜在受到SCA攻击、DFA攻击和TA攻击的软件或硬件密码设备运行椭圆曲线密码体制时,在需要进行点乘运算的情况下,在具体执行点加和倍点迭代的过程中,具有执行下列步骤:步骤1、读取用于点乘运算的标量k和椭圆曲线点P;步骤2、产生占空比为1/N的随机比特序列;步骤3、计算标量k的非相邻表示型对于i∈{1,3,5,...,2w-1-1},计算Pi=iP;步骤4、Q←∞;步骤5、对于i从l-1到0,重复执行;步骤5.1、Q←2Q;步骤5.2、若RandomBit的最低比特为1,则执行伪操作DP,RandomBit>>1;否则,若ki≠0,且ki>0,则否则,步骤6、返回Q。步骤2所述的产生占空比为1/N的随机比特序列RandomBit,包括:任意方式产生或者获得的占空比为1/N为可控的随机比特序列RandomBit。所述的随机比特序列RandomBit控制着伪操作DP的插入的时机,当遍历RandomBit的时候,如果遇到该比特位为1,则插入伪操作DP,否则不插入伪操作DP。步骤3所述的计算标量k的非相邻表示型对于i∈{1,3,5,...,2w-1-1},计算Pi=iP,包括采用规则的非相邻表示型和非规则的非相邻表示型计算标量k。所述的步骤5中的步骤5.1、5.2和5.3是所述芯片中安全的点乘实现方法主要实体,关键的步骤在于所述的步骤5.2若RandomBit的最低比特为1,则执行伪操S,RandomBit>>1。所述的伪操作DP的设计需要结合步骤3的非相邻表示型,如果是非规则的非相邻表示型,则只要设计伪操作的功耗与点加运算PADD的功耗符合就可以;如果是规则的非相邻表示型,步骤5可修改为如下:步骤5、对于i从l-1到0,重复执行。步骤5.1、若RandomBit的最低比特为1,则执行伪操作DP,RandomBit>>1。步骤5.2、否则Q←2Q,若ki≠0,且ki>0,则否则,其中步骤5.1中伪操作DP的功耗需要设计得跟步骤5.2的功耗符合。以上所述的点加运算PADD和倍点运算PDBL的各自的功耗信息特征都是相同的,或者点加运算PADD和倍点运算PDBL的功耗信息特征是不相同的。所述的点加运算PADD和倍点运算PDBL的功耗信息特征都是相同的,包括点加运算PADD和倍点运算PDBL是平衡的,包括点加运算PADD或者倍点运算PDBL使用任何一种方案,使得点加运算本文档来自技高网
...

【技术保护点】
一种芯片中安全的点乘实现方法,其特征在于,当潜在受到SCA攻击、DFA攻击和TA攻击的软件或硬件密码设备运行椭圆曲线密码体制时,在需要进行点乘运算的情况下,在具体执行点加和倍点迭代的过程中,执行如下步骤:步骤1、读取用于点乘运算的标量k和椭圆曲线点P;步骤2、产生占空比为1/N的随机比特序列RandomBit;步骤3、计算标量k的非相邻表示型对于i∈{1,3,5,...,2w‑1‑1},计算Pi=iP;步骤4、Q←∞;步骤5、对于i从l‑1到0,重复执行;步骤5.1、Q←2Q;步骤5.2、若RandomBit的最低比特为1,则执行伪操作DP,RandomBit>>1;否则,若ki≠0,且ki>0,则Q否则,步骤6、返回(Q)。

【技术特征摘要】
1.一种芯片中安全的点乘实现方法,其特征在于,当潜在受到SCA攻击、DFA攻击和TA攻击的软件或硬件密码设备运行椭圆曲线密码体制时,在需要进行点乘运算的情况下,在具体执行点加和倍点迭代的过程中,执行如下步骤:步骤1、读取用于点乘运算的标量k和椭圆曲线点P;步骤2、产生占空比为1/N的随机比特序列RandomBit;步骤3、计算标量k的非相邻表示型对于i∈{1,3,5,...,2w-1-1},计算Pi=iP;步骤4、Q←∞;步骤5、对于i从l-1到0,重复执行;步骤5.1、Q←2Q;步骤5.2、若RandomBit的最低比特为1,则执行伪操作DP,RandomBit>>1;否则,若ki≠0,且ki>0,则否则,步骤6、返回Q;所述的随机比特序列RandomBit控制着伪操作DP的插入的时机,当遍历RandomBit的时候,如果遇到该比特位为1,则插入伪操作DP,否则不插入伪操作DP。2.根据权利要求1所述的方法,其特征在于:步骤2所述的产生占空比为1/N的随机比特序列RandomBit,包括:任意方式产生或者获得的占空比为1/N为可控的随机比特序列RandomBit。3.根据权利要求1所述的方法,其特征在于:步骤3所述的计算标量k的非相邻表示型对于i∈{1,3,5,...,2w-1-1},计算Pi=iP,包括采用规则的非相邻表示型和非规则的非相邻表示型计算标量k。4.根据权利要求3所述的方法,其特征在于:如果是非规则的非相邻表示型,则伪操作的功耗与点加运算PADD的功耗需要相符合。5.根据权利要求3所述的方法,其特征在于:如果是规则的非相邻表示型,则步骤5的操作如下:步骤5、对于i从l-1到0,重复执行;步骤5.1、若RandomBit的最低比特为1,则执行伪操作DP,RandomBit>>1;步骤5.2、否则Q←2Q,若ki≠0,且ki>0,则否则,其中步骤5.1中伪操作DP的功耗需要与步骤5.2的功耗符合。6.根据权利要求1所述的方法,其特征在于:所述的点加运算PADD和倍点运算PDBL的各自的功耗信息特征都是相同的,...

【专利技术属性】
技术研发人员:吴江源马博陈海连
申请(专利权)人:上海华虹集成电路有限责任公司
类型:发明
国别省市:上海;31

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

1