CN106817214B - 标量的规则naf序列的生成方法 - Google Patents
标量的规则naf序列的生成方法 Download PDFInfo
- Publication number
- CN106817214B CN106817214B CN201510854907.9A CN201510854907A CN106817214B CN 106817214 B CN106817214 B CN 106817214B CN 201510854907 A CN201510854907 A CN 201510854907A CN 106817214 B CN106817214 B CN 106817214B
- Authority
- CN
- China
- Prior art keywords
- naf
- sequence
- scalar
- rule
- regular
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种标量的规则NAF序列的生成方法,包括以下步骤:根据需求选择规则NAF序列的窗口大小w,列出相应窗口大小下规则NAF序列的格式;列出非0项的所有可能,根据大小顺序重新编码到连续的正整数集合上来;根据标量k的最低位记录其奇偶性并调整最低位得到奇数的k’,若k[0]=1,则k’=k,否则,k’=k+1;从低到高将k’分成每w位一组,找出位数最高的非0组,并在其最高位的前面加一个1,将新的k’从高到低移一位,去掉最低位,这样就得到了经过重新编码并省略原规则NAF序列中的0之后的窗口为w的规则NAF序列。本发明既能够节省计算时间又能够节约存储空间。
Description
技术领域
本发明涉及信息安全领域,特别是涉及一种标量的规则NAF(非相邻表示型)序列的生成方法。
背景技术
椭圆曲线密码系统(ECC)具有安全性高、计算量小、处理速度快、存储空间小、带宽要求低等特点。与RSA公钥体制相比,ECC非常适合于资源有限的嵌入式移动环境,如智能卡(smartcard)上的密码芯片。传统上,对密码芯片的攻击主要是对实现的算法从数学角度进行分析,如差分分析和线性分析。但自从旁路攻击(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]=(kmod 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的奇偶性决定是否需要对结果进行调整。相同二进制长度的标量k的规则NAF序列可能因k实际数值的不同而长度不同。
发明内容
针对上述技术中的现状,本发明所要解决的技术问题是提供一种标量的规则NAF序列的生成方法,既能够节约计算时间又能够节约存储空间。
为解决上述技术问题,本发明的标量的规则NAF序列的生成方法,包括如下步骤:
步骤1、根据需求选择规则NAF序列的窗口大小w,w为大于1的正整数,列出相应窗口大小下规则NAF序列的格式;
步骤2、列出非0项X的所有可能,根据大小顺序重新编码到连续的正整数X’集合上来,消除负数的表示,并记住实际非0项X与正整数X’之间的对应关系;
步骤3、根据标量k的最低位记录其奇偶性并调整最低位得到奇数的k’,若k[0]=1,则k’=k,否则,k’=k+1;
步骤4、从低到高将k’分成每w位一组,找到位数最高的非0组,并在其最高位的前面加一个1,将新的k’从高到低移一位,去掉最低位,得到经过重新编码并省略原规则NAF序列中的0之后的窗口为w的规则NAF序列;
步骤5、在标量乘k’P计算过程中从新的规则NAF序列中从高到低取出的每个X’,对应w个倍点运算D和一个点加运算A,而点加的点由X’对应的X确定。
采用本发明的方法产生的标量k的规则NAF序列,简化了标量k的规则NAF序列产生流程:不需要特殊的计算,省略规则NAF序列的计算过程;不需要额外的存储空间,省略额外存储规则NAF序列的存储空间,首尾的处理和整个序列的移位也可以在使用过程中解决掉,这样既能够节约时间又能够节约存储空间。在同一窗口宽度w下为相同二进制长度的标量k产生相同长度的规则NAF序列,以统一标量乘计算时间和完全消除SPA信息的泄露。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
附图是规则序列的变化示意图。
具体实施方式
标量乘是ECC最重要最耗时的运算,对ECC的攻击也主要集中在对标量乘运算的攻击,快速而安全的实现标量乘一直是业界努力的方向。所述标量的规则NAF序列的生成方法是涉及椭圆曲线密码中标量乘的安全而快 速的具体实现方法。
为了提高标量乘的执行速度和抗SPA攻击,目前主要采用对标量进行带符号的规则化变换后再进行标量乘运算,这样在功耗曲线上看到的是点加和倍点运算规律的出现,不会有SPA信息的泄露,通过窗口大小的选择也可以减少点加运算的次数,有效提高执行速度。
标量的规则化变换通常需要规则NAF序列的计算过程,规则化后的变量是带符号的整数,且可能比标量的二进制表示的位数要多,因此需要额外的存储空间来存放标量的规则NAF序列。
所述标量的规则NAF序列的生成方法通过省略原规则NAF序列中的0和对非0项进行重新编码来实现,整个过程不需要计算,也不会增加位数,这样的产生方法可以省去规则NAF序列产生过程中的计算时间,也不需要额外的存储空间来存放规则NAF序列。
下面以窗口w=4为例(结合附图所示),详细说明标量的规则NAF序列的生成方法的实现过程。
步骤一、选择窗口w=4的规则NAF序列,默认数值按左高右低排列,其格式为:000X000X000X…000X。
步骤二、窗口w=4的规则NAF序列中非0的X∈{-15,-13,-11,-9,-7,-5,-3,-1,1,3,5,7,9,11,13,15},一一对应到如下集合X’∈{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}。
步骤三、根据标量k的最低位记录其奇偶性并调整最低位得到奇数的k’,若k[0]=1,则k’=k,否则,k’=k+1。
步骤四、从低到高将k’分成每4位一组,找到位数最高的非0组,并在其最高位的前面加一个1,将新的k’从高到低移一位,去掉最低位,这样就得到了经过重新编码并省略原规则NAF序列中的0之后的窗口为4的规则NAF序列:X’X’X’…X’。
步骤五、在标量乘k’P计算过程中从新的规则NAF序列中从高到低取出的每个X’对应运算DDDDA,其中D代表倍点运算,A代表点加运算,而A点加的点为X’对应的X代表的点,比如X’=1,则对应的X=-13,因此点加的点为-13P,P是椭圆曲线上的点。
附图中上端为原规则序列,下端为重新编码后的规则序列。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
Claims (2)
1.一种标量的规则NAF序列的生成方法,其特征在于,包括如下步骤:
步骤1、根据需求选择规则NAF序列的窗口大小w,w为大于1的正整数,列出相应窗口大小下规则NAF序列的格式;
步骤2、列出非0项X的所有可能,根据大小顺序重新编码到连续的正整数X’集合上来,消除负数的表示,并记住实际非0项X与正整数X’之间的对应关系;
步骤3、根据标量k的最低位记录其奇偶性并调整最低位得到奇数的k’,若k[0]=1,则k’=k,否则,k’=k+1;
步骤4、从低到高将k’分成每w位一组,找到位数最高的非0组,并在其最高位的前面加一个1,将新的k’从高到低移一位,去掉最低位,这样就得到了经过重新编码并省略原规则NAF序列中的0之后的窗口为w的规则NAF序列;
步骤5、在标量乘k’P的计算过程中,从新的规则NAF序列中从高到低取出的每个X’对应w个倍点运算D和一个点加运算A,而点加的点由X’对应的X确定。
2.如权利要求1所述的方法,其特征在于:原规则NAF序列中的非0项X需要根据大小顺序重新编码到连续的正整数X’集合上来,以保证以最少的位数来存放非0位,其原规则NAF序列中的0默认存在,但不存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854907.9A CN106817214B (zh) | 2015-11-30 | 2015-11-30 | 标量的规则naf序列的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854907.9A CN106817214B (zh) | 2015-11-30 | 2015-11-30 | 标量的规则naf序列的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106817214A CN106817214A (zh) | 2017-06-09 |
CN106817214B true CN106817214B (zh) | 2019-11-12 |
Family
ID=59155534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510854907.9A Active CN106817214B (zh) | 2015-11-30 | 2015-11-30 | 标量的规则naf序列的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106817214B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197668A (zh) * | 2007-12-06 | 2008-06-11 | 上海交通大学 | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 |
CN101547089A (zh) * | 2008-03-28 | 2009-09-30 | 上海爱信诺航芯电子科技有限公司 | 集成电路中素数域椭圆曲线密码算法的实现方法 |
CN101753306A (zh) * | 2009-12-22 | 2010-06-23 | 上海大学 | 运用Montgomery型椭圆曲线的数字签名认证方法 |
US7970134B2 (en) * | 2006-12-01 | 2011-06-28 | Samsung Electronics Co., Ltd. | Method for generating, operating, and using a sparse w-NAF key for encryption |
CN102387015A (zh) * | 2011-09-14 | 2012-03-21 | 中国矿业大学 | 一种提高椭圆曲线标量乘法计算效率的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090214023A1 (en) * | 2008-02-26 | 2009-08-27 | Al-Somani Turki F | Method for elliptic curve scalar multiplication |
-
2015
- 2015-11-30 CN CN201510854907.9A patent/CN106817214B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7970134B2 (en) * | 2006-12-01 | 2011-06-28 | Samsung Electronics Co., Ltd. | Method for generating, operating, and using a sparse w-NAF key for encryption |
CN101197668A (zh) * | 2007-12-06 | 2008-06-11 | 上海交通大学 | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 |
CN101547089A (zh) * | 2008-03-28 | 2009-09-30 | 上海爱信诺航芯电子科技有限公司 | 集成电路中素数域椭圆曲线密码算法的实现方法 |
CN101753306A (zh) * | 2009-12-22 | 2010-06-23 | 上海大学 | 运用Montgomery型椭圆曲线的数字签名认证方法 |
CN102387015A (zh) * | 2011-09-14 | 2012-03-21 | 中国矿业大学 | 一种提高椭圆曲线标量乘法计算效率的方法 |
Non-Patent Citations (3)
Title |
---|
二元扩域超奇异Koblitz曲线的标量乘计算;徐云秀;《计算机应用于软件》;20131130(第11期);全文 * |
基于二进制域上的ECC标量乘法算法;王平平;《六盘水师范学院学报》;20150228(第1期);全文 * |
抗侧信道攻击的安全有效椭圆加密算法;姚剑波;《计算机应用研究》;20121231(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106817214A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Adleman et al. | On taking roots in finite fields | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
KR102132261B1 (ko) | 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기 | |
CN104917608A (zh) | 一种密钥抗功耗攻击的方法 | |
Wang et al. | Inner product masking for bitslice ciphers and security order amplification for linear leakages | |
Lee et al. | Improved multi-precision squaring for low-end RISC microcontrollers | |
Roche et al. | Side-channel attacks on blinded scalar multiplications revisited | |
CN107992283A (zh) | 一种基于降维实现有限域乘法的方法和装置 | |
Pornin | Optimized binary gcd for modular inversion | |
CN106682258A (zh) | 一种高层次综合工具中的多操作数加法优化方法及系统 | |
CN106817214B (zh) | 标量的规则naf序列的生成方法 | |
CN117155572A (zh) | 一种基于gpu并行实现密码技术中大整数乘法的方法 | |
Seo et al. | Consecutive operand-caching method for multiprecision multiplication, revisited | |
WO2019120066A1 (zh) | 一种适合sm2算法的快速模约减方法和介质 | |
KR101309797B1 (ko) | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법 | |
CN108228138B (zh) | 一种sidh中特殊域快速模乘的方法 | |
CN111460488B (zh) | 基于预存储和n维Arnold变换的多图像快速加密方法 | |
Wunan et al. | The attack case of ECDSA on blockchain based on improved simple power analysis | |
Liu et al. | Computing Hermite normal form faster via solving system of linear equations | |
Al Musa et al. | Fast scalar multiplication for elliptic curves over binary fields by efficiently computable formulas | |
US20160034255A1 (en) | Arithmetic Devices, Montgomery Parameter Calculation Method and Modular Multiplication Method Thereof | |
Mahalanobis et al. | A Las Vegas algorithm to solve the elliptic curve discrete logarithm problem | |
Zeng et al. | Word oriented cascade jump σ− LFSR | |
Brumley et al. | Batch binary weierstrass | |
US20110295921A1 (en) | Hybrid Greatest Common Divisor Calculator for Polynomials |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |