CN103336680A - 改进的二进制左移模逆算法 - Google Patents

改进的二进制左移模逆算法 Download PDF

Info

Publication number
CN103336680A
CN103336680A CN201310261694XA CN201310261694A CN103336680A CN 103336680 A CN103336680 A CN 103336680A CN 201310261694X A CN201310261694X A CN 201310261694XA CN 201310261694 A CN201310261694 A CN 201310261694A CN 103336680 A CN103336680 A CN 103336680A
Authority
CN
China
Prior art keywords
totalizer
output
mux
algorithm
shift unit
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.)
Granted
Application number
CN201310261694XA
Other languages
English (en)
Other versions
CN103336680B (zh
Inventor
李树国
马帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201310261694.XA priority Critical patent/CN103336680B/zh
Publication of CN103336680A publication Critical patent/CN103336680A/zh
Application granted granted Critical
Publication of CN103336680B publication Critical patent/CN103336680B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Complex Calculations (AREA)

Abstract

一种改进的二进制左移模逆算法,对于给定的模数p,p的位数
Figure DDA00003418491800011
在计算模逆过程中,跳出循环的条件为c_u=n-1或c_v=n-1,即c_u、c_v与常数n-1的比较,其中,u、v是用来存储需要左移数据的n位中间变量,分别初始化为p、a,r是用来通过左移得到模逆的中间变量,初始化为0,当算法结束后,r中的值就是所求的模逆结果,c_u表示u左移的次数,c_v表示v左移的次数,本发明还提供了实现该算法的电路结构,本发明的算法具有更精简的操作步骤,占用更少的存储单元,从而减少了电路面积以及降低了电路功耗,更好地满足了低端密码系统的低功耗要求。

Description

改进的二进制左移模逆算法
技术领域
本发明涉及一种改进的二进制左移模逆算法。
背景技术
随着信息安全的快速发展,基于数学难题的公钥密码体制得到了广泛应用。椭圆曲线密码(ECC,elliptic curve cryptography)因其具有密钥短、速度快、安全性高、节省资源等一系列优点而广泛应用于移动通信、电子商务等领域。而大数模逆运算作为一种模运算,是素数域椭圆曲线密码中不可或缺的运算。在椭圆曲线密码体制中,点加和倍点运算都需要用到求逆运算。随着银行IC卡的产业升级,非接触式金融IC卡将逐步增加,面向低端的密码系统的应用也越来越迫切,因此操作简便、面积小、功耗低的大数模逆算法具有重要的研究意义和应用价值。
目前已经有的求解素数域上模逆的算法包括扩展欧几里得算法、二进制右移算法和二进制左移算法。
扩展欧几里得算法利用辗转相除法实现了模逆的求解,但其缺点在于操作步骤中有复杂的除法运算,不利于计算机处理。二进制右移算法利用简单的移位操作和加法运算代替了扩展欧几里得算法中的除法运算。而二进制左移算法则可通过左移的方式去掉加法运算,从而节省硬件资源。
发明内容
为克服上述现有技术的缺点,本发明的目的是在已有的二进制左移模逆算法的基础上提出一种改进的二进制左移模逆算法,可进一步节省硬件资源,降低功耗。
为实现上述目的,本发明采用的技术方案是:
一种改进的二进制左移模逆算法,素数域GF(p)上整数a的模逆定义为:对于素数p和整数a∈[1,p-1],存在唯一的整数i∈[1,p-1],使得i·a≡1(mod p),则整数i为a的逆元,记作:i≡a-1(mod p),其特征在于,对于给定的模数p,p的位数在计算模逆过程中,跳出循环的条件为c_u=n-1或c_v=n-1,即c_u、c_v与常数n-1的比较,其中,u、v是用来存储需要左移数据的n位中间变量,分别初始化为p、a,r是用来通过左移得到模逆的中间变量,初始化为0,当算法结束后,r中的值就是所求的模逆结果,c_u表示u左移的次数,c_v表示v左移的次数。
优选地,算法过程中增加比特变量用于记录多左移的次数。
本发明二进制左移模逆算法,具体可以按以下步骤进行:
输入:a∈[1,p-1]和p
输出:r∈[1,p-1],其中r=a-1(mod p)
⑴u←p,v←a,r←0,s←1
⑵c_u←0,c_v←0,d←0
⑶若a=1,则
返回r=1
否则
执行第4步
⑷当c_u≠n-1且c_v≠n-1时,重复执行步骤(1)-(3);
当un,un-1=0,或:un,un-1=1且OR(un-2,...,u0)=1时:
若c_u≥c_v,则u←2u,r←2r,c_u←c_u+1,d←d+1;
若c_u<c_v,则u←2u,s←s/2,c_u←c_u+1;
当vn,vn-1=0,或:vn,vn-1=1且OR(vn-2,...,v0)=1时:
若c_v≥c_u,则v←2v,s←2s,c_v←c_v+1,d←d+1;
若c_u<c_v,则v←2v,r←r/2,c_v←c_v+1,否则,d←0;
若vn=un,则oper=“-”;
若vn≠un,则oper=“+”;
若c_u≤c_v,则u←u oper v,r←r oper s;
若c_u>c_v,则v←v oper u,s←s oper r;
⑸若c_v=n-1,则r←s,un←vn
⑹当d>0时,重复执行r←r/2,d←d-1;
⑺若un=1且r<0,则r←-r
若un=1且r≥0,则r←p-r
⑻若r<0,则r←r+p;
⑼返回r;
其中:“+”表示加法,“-”表示减法,“←”表示将右侧的值赋值给左侧的变量,“OR(x)”表示将x逐位进行或运算,“oper”根据第4步中的相应条件代指“+”或“-”,s是用来通过左移得到模逆的中间变量,初始化为1。
本发明同时提供了一种实现所述二进制左移模逆算法的电路,主要包括加法器一、加法器二、加法器三、移位器一、移位器二以及控制器,加法器一和加法器二都是n位加法器,加法器三为
Figure BDA00003418491600031
位特殊加法器,移位器一和移位器二都是n位移位器;加法器一的输入为u和v,加法器二的第1路输入为r,第2路输入通过一个多路选择器选择s、0或p中的一个,加法器三的第1路输入为1,第2路输入通过一个多路选择器选择c_u、c_v或d中的一个,u通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,v通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,r通过一个多路选择器选择加法器二的输出、移位器二的输出或s中的一个,s通过一个多路选择器选择加法器二的输出或移位器二的输出中的一个,d通过一个多路选择器选择加法器三的输出或0中的一个,移位器一通过一个多路选择器选择u或v中的一个,移位器二通过一个多路选择器选择r或s中的一个,所述各个多路选择器均连接至控制器,由控制器控制选择。
与现有技术相比,本发明的有益效果是:与原算法相比,本发明具有更精简的操作步骤,占用更少的存储单元,从而减少了电路面积以及降低了电路功耗,更好地满足了低端密码系统的低功耗要求。
附图说明
图1是按照本发明设计的电路结构简图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
本发明一种改进的二进制左移模逆算法,素数域GF(p)上整数a的模逆定义为:对于素数p和整数a∈[1,p-1],存在唯一的整数i∈[1,p-1],使得i·a≡1(mod p),则整数i为a的逆元,记作:i≡a-1(mod p),其特征在于,对于给定的模数p(p的位数记为
Figure BDA00003418491600041
),在计算模逆过程中,跳出循环的条件为c_u=n-1或c_v=n-1,也就是c_u、c_v与常数n-1的比较。这样,就会占用较少的存储单元(
Figure BDA00003418491600042
比特),操作也比较简便。另外,需要增加比特变量d,用于记录多左移的次数。改进后的算法必须左移固定的次数才能结束,对于给定的p,设p的位数n,则循环结束条件用n-1来判断。如果p的位数小于n,不妨设为m位(m<n),循环结束条件也可以用n-1来判断,只不过会比使用m-1多做n-m次左移和右移操作。
具体地,改进的二进制左移模逆算法可按照如下步骤进行:
输入:a∈[1,p-1]和p
输出:r∈[1,p-1],其中r=a-1(mod p)
⑴u←p,v←a,r←0,s←1
⑵c_u←0,c_v←0,d←0
⑶若(a=1),则
返回r=1
否则
执行第4步
⑷当(c_u≠n-1且c_v≠n-1)时,重复执行
若(un,un-1=0)或(un,un-1=1且OR(un-2,...,u0)=1),则
若(c_u≥c_v),则
u←2u,r←2r,c_u←c_u+1,d←d+1
否则
u←2u,s←s/2,c_u←c_u+1
否则若(vn,vn-1=0)或(vn,vn-1=1且OR(vn-2,...,v0)=1)则
若(c_v≥c_u),则
v←2v,s←2s,c_v←c_v+1,d←d+1
否则
v←2v,r←r/2,c_v←c_v+1
否则
d←0
若(vn=un),则
oper=“-”
否则
oper=“+”
若(c_u≤c_v),则
u←u oper v,r←r oper s
否则
v←v oper u,s←s oper r
⑸若(c_v=n-1),则
r←s,un←vn
⑹当(d>0)时,重复执行
r←r/2,d←d-1
⑺若(un=1),则
若(r<0),则
r←-r
否则
r←p-r
⑻若(r<0),则
r←r+p
⑼返回r
为实现上述本发明的算法,提供一种电路结构如图1所示:主要包括加法器一、加法器二、加法器三、移位器一、移位器二以及控制器,加法器一和加法器二都是n位加法器,加法器三为位特殊加法器,移位器一和移位器二都是n位移位器;加法器一的输入为u和v,加法器二的第1路输入为r,第2路输入通过一个多路选择器选择s、0或p中的一个,加法器三的第1路输入为1,第2路输入通过一个多路选择器选择c_u、c_v或d中的一个,u通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,v通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,r通过一个多路选择器选择加法器二的输出、移位器二的输出或s中的一个,s通过一个多路选择器选择加法器二的输出或移位器二的输出中的一个,d通过一个多路选择器选择加法器三的输出或0中的一个,移位器一通过一个多路选择器选择u或v中的一个,移位器二通过一个多路选择器选择r或s中的一个,所述各个多路选择器均连接至控制器,由控制器控制选择,能够实现上述算法。

Claims (4)

1.一种改进的二进制左移模逆算法,素数域GF(p)上整数a的模逆定义为:对于素数p和整数a∈[1,p-1],存在唯一的整数i∈[1,p-1],使得i·a≡1(modp),则整数i为a的逆元,记作:i≡a-1(mod p),其特征在于,对于给定的模数p,p的位数在计算模逆过程中,跳出循环的条件为c_u=n-1或c_v=n-1,即c_u、c_v与常数n-1的比较,其中,u、v是用来存储需要左移数据的n位中间变量,分别初始化为p、a,r是用来通过左移得到模逆的中间变量,初始化为0,当算法结束后,r中的值就是所求的模逆结果,c_u表示u左移的次数,c_v表示v左移的次数。
2.根据权利要求1所述的改进的二进制左移模逆算法,其特征在于,算法过程中增加比特变量用于记录多左移的次数。
3.一种改进的二进制左移模逆算法,其特征在于,按以下步骤进行:
输入:a∈[1,p-1]和p
输出:r∈[1,p-1],其中r=a-1(mod p)
⑴u←p,v←a,r←0,s←1
⑵c_u←0,c_v←0,d←0
⑶若a=1,则
返回r=1
否则
执行第4步
⑷当c_u≠n-1且c_v≠n-1时,重复执行步骤(1)-(3);
当un,un-1=0,或:un,un-1=1且OR(un-2,...,u0)=1时:
若c_u≥c_v,则u←2u,r←2r,c_u←c_u+1,d←d+1;
若c_u<c_v,则u←2u,s←s/2,c_u←c_u+1;
当vn,vn-1=0,或:vn,vn-1=1且OR(vn-2,...,v0)=1时:
若c_v≥c_u,则v←2v,s←2s,c_v←c_v+1,d←d+1;
若c_u<c_v,则v←2v,r←r/2,c_v←c_v+1,否则,d←0;
若vn=un,则oper=“-”;
若vn≠un,则oper=“+”;
若c_u≤c_v,则u←u oper v,r←r oper s;
若c_u>c_v,则v←v oper u,s←s oper r;
⑸若c_v=n-1,则r←s,un←vn
⑹当d>0时,重复执行r←r/2,d←d-1;
⑺若un=1且r<0,则r←-r
若un=1且r≥0,则r←p-r
⑻若r<0,则r←r+p;
⑼返回r;
其中:“+”表示加法,“-”表示减法,“←”表示将右侧的值赋值给左侧的变量,“OR(x)”表示将x逐位进行或运算,“oper”根据第4步中的相应条件代指“+”或“-”,s是用来通过左移得到模逆的中间变量,初始化为1。
4.一种实现权利要求1所述二进制左移模逆算法的电路,主要包括加法器一、加法器二、加法器三、移位器一、移位器二以及控制器,其特征在于,加法器一和加法器二都是n位加法器,加法器三为
Figure FDA00003418491500021
位特殊加法器,移位器一和移位器二都是n位移位器;加法器一的输入为u和v,加法器二的第1路输入为r,第2路输入通过一个多路选择器选择s、0或p中的一个,加法器三的第1路输入为1,第2路输入通过一个多路选择器选择c_u、c_v或d中的一个,u通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,v通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,r通过一个多路选择器选择加法器二的输出、移位器二的输出或s中的一个,s通过一个多路选择器选择加法器二的输出或移位器二的输出中的一个,d通过一个多路选择器选择加法器三的输出或0中的一个,移位器一通过一个多路选择器选择u或v中的一个,移位器二通过一个多路选择器选择r或s中的一个,所述各个多路选择器均连接至控制器,由控制器控制选择。
CN201310261694.XA 2013-06-27 2013-06-27 实现二进制左移模逆算法的电路 Expired - Fee Related CN103336680B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310261694.XA CN103336680B (zh) 2013-06-27 2013-06-27 实现二进制左移模逆算法的电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310261694.XA CN103336680B (zh) 2013-06-27 2013-06-27 实现二进制左移模逆算法的电路

Publications (2)

Publication Number Publication Date
CN103336680A true CN103336680A (zh) 2013-10-02
CN103336680B CN103336680B (zh) 2016-01-13

Family

ID=49244858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310261694.XA Expired - Fee Related CN103336680B (zh) 2013-06-27 2013-06-27 实现二进制左移模逆算法的电路

Country Status (1)

Country Link
CN (1) CN103336680B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988771A (zh) * 2015-03-04 2016-10-05 上海复旦微电子集团股份有限公司 模逆运算器
CN105988772A (zh) * 2015-03-04 2016-10-05 上海复旦微电子集团股份有限公司 模逆运算方法及运算器
CN106850212A (zh) * 2017-03-06 2017-06-13 西安电子科技大学 基于rsa密码算法的密钥生成系统及方法
CN112099761A (zh) * 2020-08-27 2020-12-18 清华大学 基于改进的二进制左移模逆算法的装置及其控制方法
CN114553425A (zh) * 2022-02-25 2022-05-27 东南大学 基于高性能模逆的椭圆数字签名曲线硬件实现方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1506473A2 (de) * 2002-05-16 2005-02-16 Giesecke & Devrient GmbH Aussp hungsgesch tzte modulare inversion
CN101180606A (zh) * 2005-05-25 2008-05-14 西门子威迪欧汽车电子股份公司 模逆元的确定
EP1600852B1 (en) * 2004-05-29 2009-12-02 The Queen's University of Belfast Method and apparatus for calculating a modular inverse
US7831651B2 (en) * 1997-11-04 2010-11-09 Nippon Telegraph And Telephone Corporation Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
CN102279725A (zh) * 2011-09-01 2011-12-14 北京华大信安科技有限公司 Ecc协处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7831651B2 (en) * 1997-11-04 2010-11-09 Nippon Telegraph And Telephone Corporation Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
EP1506473A2 (de) * 2002-05-16 2005-02-16 Giesecke & Devrient GmbH Aussp hungsgesch tzte modulare inversion
EP1600852B1 (en) * 2004-05-29 2009-12-02 The Queen's University of Belfast Method and apparatus for calculating a modular inverse
CN101180606A (zh) * 2005-05-25 2008-05-14 西门子威迪欧汽车电子股份公司 模逆元的确定
CN102279725A (zh) * 2011-09-01 2011-12-14 北京华大信安科技有限公司 Ecc协处理器

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988771A (zh) * 2015-03-04 2016-10-05 上海复旦微电子集团股份有限公司 模逆运算器
CN105988772A (zh) * 2015-03-04 2016-10-05 上海复旦微电子集团股份有限公司 模逆运算方法及运算器
CN105988772B (zh) * 2015-03-04 2019-04-26 上海复旦微电子集团股份有限公司 模逆运算器
CN105988771B (zh) * 2015-03-04 2019-10-22 上海复旦微电子集团股份有限公司 模逆运算器
CN106850212A (zh) * 2017-03-06 2017-06-13 西安电子科技大学 基于rsa密码算法的密钥生成系统及方法
CN112099761A (zh) * 2020-08-27 2020-12-18 清华大学 基于改进的二进制左移模逆算法的装置及其控制方法
CN112099761B (zh) * 2020-08-27 2022-09-02 清华大学 基于改进的二进制左移模逆算法的装置及其控制方法
CN114553425A (zh) * 2022-02-25 2022-05-27 东南大学 基于高性能模逆的椭圆数字签名曲线硬件实现方法及系统

Also Published As

Publication number Publication date
CN103336680B (zh) 2016-01-13

Similar Documents

Publication Publication Date Title
CN103336680A (zh) 改进的二进制左移模逆算法
CN103226461B (zh) 一种用于电路的蒙哥马利模乘方法及其电路
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
CN105068784A (zh) 基于蒙哥马利模乘的Tate对算法及其硬件结构
Liu et al. High performance FPGA implementation of elliptic curve cryptography over binary fields
EP1975907A1 (en) Encryption processing device, encryption processing method, and computer program
CN102122241A (zh) 一种适用于素域和多项式域的模乘模除器
Zheng et al. Exploiting the floating-point computing power of GPUs for RSA
CN101630244B (zh) 一种流水线型椭圆曲线双标量乘法系统及方法
CN101971138A (zh) 用于计算椭圆曲线上的点的倍数的设备和方法
Li et al. Research in fast modular exponentiation algorithm based on FPGA
Wang et al. Area-efficient and ultra-low-power architecture of RSA processor for RFID
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
CN104901792A (zh) 密码处理椭圆曲线数据的方法、电子设备及计算机程序
CN102646033B (zh) 提供了加密和签名功能的rsa算法的实现方法和装置
Baktır et al. Frequency domain finite field arithmetic for elliptic curve cryptography
JP2004125891A (ja) べき乗剰余演算器
Ma et al. Fast implementation for modular inversion and scalar multiplication in the elliptic curve cryptography
KR100564764B1 (ko) 유한체 다항식 곱셈 장치 및 그 방법
Youssef et al. A low-resource 32-bit datapath ECDSA design for embedded applications
Seo et al. Multi-precision squaring on MSP and ARM processors
Devika et al. Efficient hardware prototype of ECDSA modules for blockchain applications
Yan et al. Modified modular inversion algorithm for vlsi implementation
Hong et al. The design of high performance elliptic curve cryptographic
Ahmadi et al. Low-power low-energy prime-field ECC processor based on montgomery modular inverse algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160113

Termination date: 20160627

CF01 Termination of patent right due to non-payment of annual fee