CN1822539A - 椭圆曲线密码芯片的寄存器堆 - Google Patents

椭圆曲线密码芯片的寄存器堆 Download PDF

Info

Publication number
CN1822539A
CN1822539A CN 200510130627 CN200510130627A CN1822539A CN 1822539 A CN1822539 A CN 1822539A CN 200510130627 CN200510130627 CN 200510130627 CN 200510130627 A CN200510130627 A CN 200510130627A CN 1822539 A CN1822539 A CN 1822539A
Authority
CN
China
Prior art keywords
register
sub
elliptic curve
deposit
signature
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.)
Pending
Application number
CN 200510130627
Other languages
English (en)
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 CN 200510130627 priority Critical patent/CN1822539A/zh
Publication of CN1822539A publication Critical patent/CN1822539A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明属于电子签名技术领域,其特征在于:所述寄存器堆含有32个子寄存器,在进行签名或认证时,分别把需要进行模乘和椭圆曲线点运算的数据固定地存在不同的子寄存器域内,并且为进行不同域运算的中间结果配置于不同的另一个子寄存器域内,同时把签名和认证两阶段的不同运算结果分别存入两个不同的子寄存器,并为认证阶段的签名比较时所公用。因而,本发明用的寄存器堆少,简化了椭圆曲线密码芯片的结构,提高了数据的吞吐率。

Description

椭圆曲线密码芯片的寄存器堆
技术领域
本发明涉及电子签名技术领域。
技术领域
Diffie和Hellman提出公开密钥思想之后,现今各种公开密钥密码体制广泛应用于通信和电子商务等领域,其中比较典型的是RSA和椭圆曲线(ECC)公钥密码体制。由于RSA密钥较长,造成运算代价较大,所以近来人们开始关注ECC密码体制。它与RSA密码体制相比,在同样的安全性下,椭圆曲线密码体制具有较短的密钥长度,其运算时间和空间也相应地较小。
以下介绍椭圆曲线签名和认证的运算步骤:
符号说明如下:(s,W)为签名方的密钥对,s为私钥,W为公钥;椭圆曲线的参数包括:椭圆曲线系数a、b;G为椭圆曲线上的“基点”;r为G点的阶;f为待签名的消息,f′为待签名的消息;c、d为消息f的签名,c′、d′为待认证的消息f的签名;认证时只有c′=c才能通过认证。在签名和认证的双方对椭圆曲线参数达成一致后,椭圆曲线数字签名算法(ECDSA)签名和认证步骤如表1所示:
  签名   认证
  1.产生随机数u   5.计算h=d′-1 mod r
  2.计算v=u-1mod r   6.计算h1=f′*h mod r
  3.计算Q(c,-)=u*G   7.计算h2=c′*h mod r
  4.计算d=v*(f+s*c)mod r   8.计算P(c′,-)=h1*G+h2*W
                     表1 ECDSA算法主要步骤
从表中看出,签名的主要运算为:一次大数模逆和一次椭圆曲线标量乘;认证的主要运算为:一次大数模逆和两次椭圆曲线标量乘。值得注意的是,若采用正规基的椭圆曲线,以上的运算实际上在两个有限域内进行。素数域(GF(p))内的运算有2、4、5、6、7式,特征2域(GF(2m))内的运算有3、8式。
普通的正规基椭圆曲线芯片寄存器架构如下:
椭圆曲线ECC的签名和认证需要完成表1中的8种运算,整个架构分为三大模块,分别为I/O模块、GF(2m)域运算模块和GF(p)域运算模块,见图1。
I/O模块包括I/O控制逻辑和I/O寄存器。输入时,I/O控制逻辑从片外依次接收32位数据,并寄存在其寄存器中,存满233位后,发送给GF(2m)域运算模块和GF(p)域运算模块;输出时从GF(2m)域运算模块和GF(p)域运算模块接收233位的数据,控制其自己的寄存器将之依次转化为一组为32位数据输出到片外。
GF(2m)域运算模块和GF(p)域运算模块分别完成ECC签名和认证时GF(2m)和GF(p)两个域上的各种运算。GF(2m)域运算模块由一个GF(2m)域运算器和一个寄存器堆组成,其中GF(2m)域运算器进行椭圆曲线上的点运算即表1中的3、8式;寄存器堆用于寄存中间运算结果。GF(p)域运算模块由一个GF(p)域运算器和一个寄存器堆组成。GF(p)域运算器进行大数的模加和模乘运算即表1中的2、4、5、6、7式,寄存器堆用于寄存中间运算结果。以上涉及的所有运算的具体定义均遵守IEEE1363标准。
从图1看出,整个芯片有3个模块:I/O模块,GF(2m)域运算模块和GF(p)域运算模块。每个模块有自己独立的运算器和寄存器堆。这样的结构寄存器堆不能在各个模块之间复用,造成寄存器的数目增多,而且为了使各个寄存器堆之间的数据传递又需要额外的控制单元,不但增加了系统的复杂度也降低了数据的数据的吞吐率。
发明内容
本发明的目的在于提供了一种可有效解决上述问题的椭圆曲线密码芯片的寄存器堆。
本发明的特征在于:该寄存器堆是用数字集成电路构成的所述椭圆曲线密码芯片的一个组成部分,该椭圆曲线密码芯片的在GF(p)域运算器在GF(p)域内执行大数的模和及模乘运算,GF(2m)域运算器在GF(2m)域内执行正规基椭圆曲线上的点运算;
所述寄存器堆包括REG0~REG31共32个子寄存器;
在执行该椭圆曲线数字签名运算过程中:
在初始化阶段:
子寄存器REG10~REG14内存入:从所述椭圆曲线密码芯片的I/O模块中写入的签名方的私钥s、待签名的消息f以及设定的随机数u;
子寄存器REG15~REG20内存入:从所述椭圆曲线密码芯片的I/O模块中写入的椭圆曲线参数:a、b为定义曲线形状的系数、G为椭圆曲线上的基点、r为G的阶;
在GF(2m)域运算器运算的阶段:
子寄存器REG21~REG30内存入:所述GF(2m)域运算器从所述子寄存器REG15~REG20读出所述参数a、b、G后进行Q(c,-)=u*G运算所得到的中间结果;
子寄存器REG31内存入:所述Q(c,-)=u*G的运算终值即签名c;
在GF(p)域运算器运算的阶段:
子寄存器REG0~REG9内存入:所述GF(p)域运算器先从子寄存器REG10~REG14中读出所述签名方的私钥s、待签名的消息f和随机数u后,再从子寄存器REG31读出签名c,进行v=u-1mod r和d=v*(f+s*c)mod r运算过程中所得的中间结果;最后把签名c和d依次分别写入子寄存器REG0和REG1;
在执行该椭圆曲线数字认证算法过程中:
在初始化阶段:
子寄存器REG10~REG14内存入:从所述椭圆曲线密码芯片的I/O模块中写入的待认证的消息f′,待认证的签名c′和d′;c′、d′在数值上和签名方产生的签名c、d在一次成功的签名/认证过程中应该是一致的。
子寄存器REG15~REG20内存入:从所述椭圆曲线密码芯片的I/O模块中写入的椭圆曲线的参数a、b和G,以及签名方的公钥W;
在GF(p)域运算器运算的阶段:
子寄存器REG0~REG9内存入:该运算器先从子寄存器REG10~REG14中读出的待认证的消息f′,带认证的签名c′和d′,进行h=d′-1mod r、h1=f′*h mod r和h2=c′*h mod r运算过程中得到的运算结果,然后将h1和h2的值一次分别写入子寄存器REG0和REG1;
在GF(2m)域运算器运算的阶段:
子寄存器REG21~REG30内存入:该运算器先从子寄存器REG15~REG20中读出的椭圆曲线参数a、b和G,以及签名方的公钥W,再从子寄存器REG0、REG1中一次分别读出h1、h2后,进行P(c′,-)=h1*G+h2*W运算过程中得到的中间结果;
子寄存器RETG31内存入:所述P(c′,-)运算的认证结果c′;
子寄存器REG0内存入:该运算器把子寄存器REG31内存的c′值与所述REG0内存的c值进行比较得到的结果:若一致,则向REG0存入“1”,否则,存入“0”。
本发明具有寄存器结构简单,数目少,不需增加用于传递个寄存器堆间数据的额外控制单元,不但简化了结构而且也提高了数据的吞吐率。
附图说明
图1.普通的正规基椭圆曲线芯片架构;
图2.改进的正规基椭圆曲线芯片架构;
图3.本发明所述寄存器堆的读写地址分配;
图4.I/O模块读写寄存器堆流程;
图5.GF(2m)域运算模块读写寄存器堆流程;
图6.GF(p)域运算模块读写寄存器堆流程。
具体的实施方式
本发明的系统架构如图2所示,3个模块对同一寄存器堆进行读写操作。这种结构有效地解决了上述的问题。
改进的正规基椭圆曲线芯片寄存器架构
从图1看出,整个芯片有3个模块:I/O模块,GF(2m)域运算模块和GF(p)域运算模块。每个模块有自己独立的运算器和寄存器堆。这样的结构寄存器堆不能在各个模块之间复用,造成寄存器的数目增多,而且为了使各个寄存器堆之间的数据传递又需要额外的控制单元,不但增加了系统的复杂度也降低了数据的数据的吞吐率。
本发明的系统架构如图2所示,3个模块对同一寄存器堆进行读写操作。这种结构有效地解决了上述的问题。
非对称寄存器堆读写地址分配方案
但是直接使用普通的寄存器也带来两个问题:地址译码复杂引起面积增大速度减慢;不同的模块对同一个寄存器同时写造成竞争。而本发明的非对称寄存器读写地址分配方案可解决上述问题。具体的3个模块各自的读写地址分配见图3。
签名时寄存器堆调度按如下操作:
●I/O模块将片外的相关数据:签名方的私钥、等待签名的消息、随机数和椭圆曲线的参数依次写入从REG10到REG20的寄存器内,其中REG10到REG14中的数据为签名方的私钥s、等待签名的消息f,随机数u,用于GF(p)有限域的计算,REG15到REG20中的数据为椭圆曲线的参数a、b、G,用于GF(2m)有限域的计算。经过两个有限域内的计算后,I/O模块从REG0和REG1读出签名或者认证的结果。
●GF(2m)域的运算器从REG15到REG20中读出所需的椭圆曲线的参数a、b、G进行GF(2m)域内的计算Q(c,-)=u*G,REG21到REG30的寄存器用于保存中间运算,然后将运算结果即c写入REG31。
●GF(p)有限域的运算器先从REG10到REG14中读出所需的数据签名方的私钥s、等待签名的消息f和随机数u,再从寄存器REG31读出签名c,进行GF(p)域计算v=u-1mod r和d=v*(f+s*c)mod r,REG0到REG9的寄存器用于保存中间运算结果,最后将签名c和d写入REG0和REG1。
认证时寄存器堆调度按如下操作:
●I/O模块将片外的相关数据:待认证的消息、消息的签名、椭圆曲线的参数、签名方的公钥依次写入从REG10到REG20的寄存器内,其中REG10到REG14中的数据为,待认证的消息f、消息的签名c和d用于GF(p)有限域的计算,REG15到REG20中的数据为椭圆曲线的参数a、b、G和签名方的公钥W,用于GF(2m)有限域的计算。经过两个有限域内的计算后,I/O模块从REG0读出签名或者认证的结果:“1”表示认证通过,“0”表示认证失败。
●GF(p)有限域的运算器先从REG10到REG14中读出待认证的消息f、消息的签名c和d,进行GF(p)域计算h=d-1mod r、h1=f*h mod r和h2=c*h mod r,REG0到REG9的寄存器用于保存中间运算结果,最后将h1和h2写入REG0和REG1。
●GF(2m)域的运算器从REG15到REG20中读出所需的椭圆曲线的参数a、b、G和签名方的公钥W,并从REG0到REG1读出h1和h2,进行GF(2m)域内的计算P(c′,-)=h1*G+h2*W,REG21到REG30的寄存器用于保存中间运算,然后将认证结果即c′写入REG31。
●GF(p)有限域的运算器从REG31中读出认证结果c′,将之与寄存的原签名c相比较,若二者一致则向REG0种写入“1”,反之写“0”。
这种寄存器读写地址分配机制使3个模块得以独立有序地读写同一个寄存器堆。而且时间和空间的开销都比较小。I/O模块、GF(2m)域运算模块和GF(p)域运算模块对寄存器的读写操作的具体流程分别如图4、图5、图6所示。
本设计硬件上用FGPA实现,Verilog进行行为级、RTL级编码和功能仿真,并基于SMIC0.18微米工艺库完成逻辑综合(DC),并提取门延时信息,进行门级仿真验证。测试的结果表明:与普通的寄存器架构相比,本发明在面积、效率、功率方面的确有较大的改善。

Claims (1)

1.椭圆曲线密码芯片的寄存器堆,其特征在于:该寄存器堆是用数字集成电路构成的所述椭圆曲线密码芯片的一个组成部分,该椭圆曲线密码芯片的在GF(p)域运算器在GF(p)域内执行大数的模和及模乘运算,GF(2m)域运算器在GF(2m)域内执行正规基椭圆曲线上的点运算;
所述寄存器堆包括REG0~REG31共32个子寄存器;
在执行该椭圆曲线数字签名运算过程中:
在初始化阶段:
子寄存器REG10~REG14内存入:从所述椭圆曲线密码芯片的I/O模块中写入的签名方的私钥s、待签名的消息f以及设定的随机数u;
子寄存器REG15~REG20内存入:从所述椭圆曲线密码芯片的I/O模块中写入的椭圆曲线参数:a、b为定义曲线形状的系数、G为椭圆曲线上的基点、r为G的阶;
在GF(2m)域运算器运算的阶段:
子寄存器REG21~REG30内存入:所述GF(2m)域运算器从所述子寄存器REG15~REG20读出所述参数a、b、G后进行Q(c,-)=u*G运算所得到的中间结果;
子寄存器REG31内存入:所述Q(c,-)=u*G的运算终值即签名c;
在GF(p)域运算器运算的阶段:
子寄存器REG0~REG9内存入:所述GF(p)域运算器先从子寄存器REG10~REG14中读出所述签名方的私钥s、待签名的消息f和随机数u后,再从子寄存器REG31读出签名c,进行v=u-1mod r和d=v*(f+s*c)mod r运算过程中所得的中间结果;最后把签名c和d依次分别写入子寄存器REG0和REG1;
在执行该椭圆曲线数字认证算法过程中:
在初始化阶段:
子寄存器REG10~REG14内存入:从所述椭圆曲线密码芯片的I/O模块中写入的待认证的消息f′,待认证的签名c′和d′;c′、d′在数值上和签名方产生的签名c、d在一次成功的签名/认证过程中应该是一致的。
子寄存器REG15~REG20内存入:从所述椭圆曲线密码芯片的I/O模块中写入的椭圆曲线的参数a、b和G,以及签名方的公钥W;
在GF(p)域运算器运算的阶段:
子寄存器REG0~REG9内存入:该运算器先从子寄存器REG10~REG14中读出的待认证的消息f′,带认证的签名c′和d′,进行h=d′-1 mod r、h1=f′*h mod r和h2=c′*h mod r运算过程中得到的运算结果,然后将h1和h2的值一次分别写入子寄存器REG0和REG1;
在GF(2m)域运算器运算的阶段:
子寄存器REG21~REG30内存入:该运算器先从子寄存器REG15~REG20中读出的椭圆曲线参数a、b和G,以及签名方的公钥w,再从子寄存器REG0、REG1中一次分别读出h1、h2后,进行P(c′,-)=h1*G+h2*W运算过程中得到的中间结果;
子寄存器RETG31内存入:所述P(c′,-)运算的认证结果c′;
子寄存器REG0内存入:该运算器把子寄存器REG31内存的c′值与所述REG0内存的c值进行比较得到的结果:若一致,则向REG0存入“1”,否则,存入“0”。
CN 200510130627 2005-12-16 2005-12-16 椭圆曲线密码芯片的寄存器堆 Pending CN1822539A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510130627 CN1822539A (zh) 2005-12-16 2005-12-16 椭圆曲线密码芯片的寄存器堆

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510130627 CN1822539A (zh) 2005-12-16 2005-12-16 椭圆曲线密码芯片的寄存器堆

Publications (1)

Publication Number Publication Date
CN1822539A true CN1822539A (zh) 2006-08-23

Family

ID=36923626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510130627 Pending CN1822539A (zh) 2005-12-16 2005-12-16 椭圆曲线密码芯片的寄存器堆

Country Status (1)

Country Link
CN (1) CN1822539A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694649A (zh) * 2012-05-29 2012-09-26 北京大学 一种抵御冷启动攻击的公钥密码实现方法
CN103023659A (zh) * 2013-01-08 2013-04-03 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN104536913A (zh) * 2014-12-10 2015-04-22 山东华芯半导体有限公司 一种基于多块ram的大数运算电路及数据转移方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694649A (zh) * 2012-05-29 2012-09-26 北京大学 一种抵御冷启动攻击的公钥密码实现方法
CN102694649B (zh) * 2012-05-29 2014-09-24 北京大学 一种抵御冷启动攻击的公钥密码实现方法
CN103023659A (zh) * 2013-01-08 2013-04-03 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN103023659B (zh) * 2013-01-08 2015-06-10 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN104536913A (zh) * 2014-12-10 2015-04-22 山东华芯半导体有限公司 一种基于多块ram的大数运算电路及数据转移方法
CN104536913B (zh) * 2014-12-10 2017-07-28 山东华芯半导体有限公司 一种基于多块ram的大数运算电路的数据转移方法

Similar Documents

Publication Publication Date Title
CN107040385B (zh) 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
CN1648967A (zh) 加密装置、加密方法及其存储介质
CN113628094B (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN106549769A (zh) 一种素域Fp下SM2椭圆曲线签名系统
EP1789869A2 (en) Method and apparatus for performing modular exponentiations
CN1786900A (zh) 基于改进的蒙哥马利算法的模乘器
CN1518270A (zh) 保护电子芯片免受欺骗的公钥加密方法
US20070206789A1 (en) Elliptic curve cryptosystem optimization using two phase key generation
CN1700637A (zh) 一种新型的椭圆曲线密码协处理器
Kurosawa et al. New online/offline signature schemes without random oracles
CN101021777B (zh) 基于除数(2n-1)的有效求模操作运算
US20240007303A1 (en) Method and system for digital signatures utilizing multiplicative semigroups
Naccache et al. Twin signatures: an alternative to the hash-and-sign paradigm
CN1822539A (zh) 椭圆曲线密码芯片的寄存器堆
CN1270472C (zh) 由互质数产生电子密钥的装置及方法
CN112491560A (zh) 一种支持批验证的sm2数字签名方法及介质
CN102291240B (zh) Sm2签名的认证方法及系统
Geiselmann et al. Yet another sieving device
CN113253975A (zh) 大数模幂运算的算法加速方法、系统、介质、设备及应用
CN110995441A (zh) 一种多方协同EdDSA数字签名生成方法与介质
Laguillaumie et al. Time-selective convertible undeniable signatures with short conversion receipts
CN1525307A (zh) 一种模乘运算电路和一种运用该模乘运算电路的加密方法
CN1550975A (zh) 蒙哥马利模数乘法器及其方法
Xiao et al. Improved RSA algorithm and application in digital signature
Mashatan et al. Forgery-resilience for digital signature schemes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060823