标量的足长规则NAF序列的生成方法与流程

文档序号:11138227阅读:1018来源:国知局
标量的足长规则NAF序列的生成方法与制造工艺

本发明涉及信息安全领域,特别是涉及一种标量的规则NAF(非相邻表示型)序列在多标量组合点乘运用时的生成方法。



背景技术:

椭圆曲线密码系统(ECC)具有安全性高、计算量小、处理速度快、存储空间小、带宽要求低等特点。与RSA公钥体制相比,ECC非常适合于资源有限的嵌入式移动环境,如智能卡(smartcard)上的密码芯片。传统上,对密码芯片的攻击主要是对实现的算法从数学角度进行分析,如差分分析和线性分析。但自从旁路攻击(Side Channel Attacks)被提出以后,人们越来越多的开始关注芯片的实现,以及针对芯片所面临的攻击所采取的抗攻击措施。旁路攻击(Side Channel Attacks)是一种利用密码芯片在运算过程中无意泄露出的信息,比如指令执行时间、功耗、电磁辐射等信息,对芯片进行攻击的一种方法。与传统的攻击方法相比,其密钥的搜索空间大大小于差分密钥分析和线性密钥分析。按攻击特点的不同,旁路攻击可以分为时间攻击、功耗分析攻击和电磁辐射攻击等几种类型。功耗分析技术分为简单功耗分析(SPA)和差分功耗分析(DPA),SPA是指根据功耗曲线上所呈现的特殊特征来推测密钥信息,DPA利用的是操作数的变化所引起的微小的功耗变化,需要通过对大量功耗曲线进行统计分析,最终得出密钥信息。

标量乘是ECC最重要最耗时的运算,对ECC的功耗攻击也主要集中在对标量乘运算的攻击,快速而安全的实现标量乘对于ECC来讲至关重要。设E(Fq)是定义在有限域Fq上的椭圆曲线,P(x,y)是E(Fq)上的点。若Fq是二元域,则-P=(x,x+y);若Fq的特征大于3,则-P=(x,-y)。因此椭圆曲线点的减法和点的加法一样有效。这使得人们可以使用标量k的带符号数学表示,一种特别有用的带符号数学表示是非相邻表示型(NAF),对于一个标量k有唯一的NAF表示。Width-w NAF算法是带有预计算表的NAF算法的一种扩展形式,它具有连续的w位数中非零的个数最多为1的特点,因此常用于标量乘的快速实现。每一个标量k都有唯一的Width-w NAF表示,而非0位的位置也与标量k本身的数值有直接的关系,这不利于抗简单功耗分析(SPA)攻击。

一种有效抵御SPA攻击的方法是为标量k产生规则的Width-w NAF表示,在这种规则Width-w NAF序列中每w位数中一定会也只会在特定的位置产生非0位,因而非0位的位置与标量k本身的数值没有直接的关系,在标量乘的功耗曲线上也就没有明显的特征可供SPA所利用。其算法如下:输入:正整数k,窗口宽度w;

输出:k的规则序列窗口NAF表示kw

1.r=0,i=0,r0=w;

2.若k为偶数,则k=k+1;

3.当k大于1时,重复执行;

3.1u[i]=(k mod 2w+1)-2w

3.3kw[r+ri-1]=0,…,kw[r+1]=0,kw[r]=u[i];

3.4r=r+ri,i=i+1,ri=w;

4.kw[n]=0,…,kw[r+1]=0,kw[r]=1;

5.返回kw[n],kw[n-1],…,kw[0]。

由于该方法只能处理奇数的标量,对于偶数标量可以做加1处理,最后在标量乘结束后再进行调整就可以了:(k+1)P-P。这个方法首先是要根据所选择的窗口大小w为标量k计算规则的NAF序列并存储,根据窗口大小计算需要预计算的点并存储,然后再进行标量乘计算,最后根据标量k的奇偶性决定是否需要对结果进行调整。

标量乘也经常采用固定基窗口方法、多点乘窗口方法等方法来加速运算,在这些点乘计算方法中存在多段标量进行组合计算,这些方法需要大量的预计算和存储空间,计算过程的逻辑复杂性也会比单标量点乘计算的复杂性要大。如果在多标量组合时标量不等长,会进一步增加预计算和存储空间,逻辑复杂性也会进一步增加。



技术实现要素:

本发明要解决的技术问题是提供一种标量的足长规则NAF序列的生成方法,能在采用规则NAF序列的多标量组合点乘中,统一各标量的长度:减少预计算的计算量和存储空间,降低逻辑实现的复杂度。

为解决上述技术问题,本发明的标量的足长规则NAF序列的生成方法,包括如下步骤:

步骤1、根据需求选择规则NAF序列的窗口大小w,w为大于1的正整数,列出相应窗口大小下规则NAF序列的格式,以及序列中的各种可能的带符号数值X;

步骤2、计算窗口大小为w的标量的规则NAF序列,以带符号的数值表示之;

步骤3、对于不足长的序列,将计算所得最高位窗口中的1移到足长最高位窗口中,并以相应窗口大小下规则NAF序列中最大的负值填充到足长最高位窗口与计算次高位窗口之间的各窗口中;

步骤4、以步骤3中计算所得足长的规则NAF序列参与后续的运算。

采用本发明的方法产生的标量k的规则NAF序列能够保证足长,在多段标量进行组合计算的点乘运算中,不需要因为标量不足长而增加预计算的存储空间和运算过程的复杂度。

附图说明

下面结合附图与具体实施方式对本发明作进一步详细的说明:

图1是规则序列从不足长到足长的变化示意图。

具体实施方式

结合图1所示,下面以窗口w=4为例来介绍所述标量的足长规则NAF序列的生成方法。

(1)选择窗口w=4的规则NAF序列,默认数值按左高右低排列,其格式为:0001000X000X…000X。

(2)窗口w=4的规则NAF序列中非0的X∈{-15,-13,-11,-9,-7,-5,-3,-1,1,3,5,7,9,11,13,15}。

(3)根据标量k的最低位记录其奇偶性并调整最低位得到奇数的k’,若k[0]=1,则k’=k,否则,k’=k+1。

(4)为标量生成窗口w=4的规则NAF序列。

(5)如果不足长,则将计算所得最高位窗口中的1移到足长最高位窗口中,并将-15填充到足长最高位窗口与计算次高位窗口之间的各窗口中,由此产生的足长规则序列与原始规则序列在数学上的数值完全一致,不影响点乘计算的正确性。

(5)其余点乘步骤不变。

图1中上端为原始规则序列,下端为修改后足长的规则序列。

以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1