CN103023659A - 一种参数位宽可扩展的ecc加密硬件装置 - Google Patents

一种参数位宽可扩展的ecc加密硬件装置 Download PDF

Info

Publication number
CN103023659A
CN103023659A CN2013100061195A CN201310006119A CN103023659A CN 103023659 A CN103023659 A CN 103023659A CN 2013100061195 A CN2013100061195 A CN 2013100061195A CN 201310006119 A CN201310006119 A CN 201310006119A CN 103023659 A CN103023659 A CN 103023659A
Authority
CN
China
Prior art keywords
point
ecc
module
bit
domain
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
CN2013100061195A
Other languages
English (en)
Other versions
CN103023659B (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201310006119.5A priority Critical patent/CN103023659B/zh
Publication of CN103023659A publication Critical patent/CN103023659A/zh
Application granted granted Critical
Publication of CN103023659B publication Critical patent/CN103023659B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种参数位宽可扩展的ECC加密硬件装置,包括ECC加/解密控制层、点运算层和域运算层。其中ECC加/解密控制层包括域宽控制单元、ECC加/解密控制单元、存储器、数据串并转换模块和支持多位宽的四个寄存器组:即一个192bit的寄存器组、一个224bits的寄存器组、一个384bits的寄存器组和一个521bit的寄存器组;点运算层包括点加和倍点运算模块和点乘运算模块;域运算层包括有限域加法、乘法、平方和求逆的运算模块。本发明很好的解决了素数域寄存器位宽可扩展问题,适合于FPGA或者ASIC实现。

Description

一种参数位宽可扩展的ECC加密硬件装置
技术领域
本发明涉及密码学领域,特别是涉及一种加密解密算法中的ECC加密硬件结构及其关键部分,属于加密算法的硬件设计和体系设计领域。本发明提供了一种参数位宽可扩展的ECC加密硬件装置。
背景技术
椭圆曲线密码(ECC)是1985年由N.Koblitz和V.Miller提出的。椭圆曲线密码属于公钥密码体制,它可以提供同RSA密码体制同样的功能。然而它的安全性建立在椭圆曲线离散对数问题(ECDLP)的困难性之上。现在求解ECDLP最好的算法具有全指数时间复杂度,这意味着对于达到期望的安全程度,椭圆曲线密码可以使用较RSA密码更短的密钥。由于密钥短的优点使得利用椭圆曲线加解密不仅速度快,而且还能节省能源、带宽和存储空间。但高等级的加密仍旧需要高位宽的参数,因此,提供参数位宽可扩展的方法以及其硬件实现方法是众多研究者努力的方向。
对椭圆曲线来说最流行的有限域是以素数为模的整数域,本领域中,设F是至少含2个元素的集合,对F定义两种运算,“+”和“×”,当代数系统<F,+,×>满足封闭性、结合性、单位元、逆元和交换性条件时,<F,+,×>被称为一个域。当F的元素为有限个时,称为有限域。当p为素数时,F={0,1,2,……p-1}在mod(p)下关于模运算的加法和乘法构成一个有限群,这个群就记为GF(p)。
给定一条椭圆曲线E以及一个域GF(q);考虑具有(x,y)形式有理数点E(q)的阿贝尔群,其中x和y都在GF(q)中并且定义在这条曲线上的群运算″+″。然後定义第二个运算″*″|Z×E(q)->E(q):如果P是E(q)上的某个点,那么定义2*P=P+P,3*P=2*P+P=P+P+P等等。注意给定整数j和k,j*(k*P)=(j*k)*P=k*(j*P)。椭圆曲线离散对数问题(ECDLP)就是给定点P和Q,确定整数k使k*P=Q。
发明内容
本发明要解决的技术问题是如何实现数据位宽可扩展的加密硬件结构。
本发明提供一种参数位宽可扩展的ECC加密硬件装置,包括ECC加/解密控制层、点运算层和域运算层;
所述ECC加/解密控制层包括域宽控制单元、ECC加/解密控制单元、存储器、数据串并转换模块和多组寄存器组,域宽控制单元的控制总线和ECC加/解密控制单元相连;ECC加/解密控制单元的一路控制信号和点运算层中的点乘运算模块相连,另有一根控制总线和数据串并转换模块相连,32位数据总线和存储器相连;存储器和数据串并转换模块相连,数据串并转换模块和多组寄存器组分别相连;多组寄存器组选择其一输出,输出的寄存器组和点运算层中的点乘运算模块通过521位数据总线相连;
所述点运算层包括点乘运算模块和点加和倍点运算模块,点乘运算模块的控制信号和521位数据总线分别和点加和倍点运算模块相连,点加和倍点运算模块的控制信号和521位数据总线和域运算层相连;
所述域运算层包括有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块。
而且,ECC曲线的参数、基点P的坐标和大素数p、密钥通过32位数据总线输入到存储器中,在ECC加/解密控制单元通过控制总线输出的控制信号作用下,由数据串并转换模块将这些数据并行输送到寄存器组中;寄存器组中的位宽依据加密参数的位宽来选择,用于存放运算过程中所需的中间变量和运算所需的系统参数。
而且,点运算层中的点加和倍点运算模块通过控制信号对域运算层的有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块进行调用,P点和Q点不相等时完成椭圆曲线上点加运算,P点和Q点不相等时完成椭圆曲线上倍点运算,P点是椭圆曲线上的一个点,Q点是椭圆曲线上的另一个点。
而且,采用了四组寄存器组,分别存储素域GF(192)、GF(224)、GF(384)和GF(521)的输入参数。
而且,设置更多寄存器组,支持更多域宽下的ECC点乘运算。
本发明设计的域运算层负责有限域的各种算数运算,通过点加和倍点运算的控制信号,完成素域GF(p)中的有限域加法、乘法、平方和求逆运算。点运算层中的点加和倍点运算的控制信号通过对有限域基本运算的各模块的调用,完成椭圆曲线上P≠Q和P=Q的点加和倍点运算,快速得到点乘KP的结果。加/解密控制层利用KP的值进行数据加/解密运算。支持位宽可扩展的ECC加密硬件中采用了四组寄存器,分别存储GF(192)、GF(224)、GF(384)和GF(521)的输入参数。按照本硬件设计中的方法增加寄存器组,同时对域宽控制单元提供相应的条件判断,便可以实现更多域宽下的ECC运算。本发明很好的解决了素数域寄存器位宽可扩展问题,适合于FPGA或者ASIC实现。
附图说明
图1是本发明实施例的结构图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细说明:
图1中给出了本发明实施例中ECC算法实现的硬件结构,该硬件结构按照ECC加密算法从顶层到底层依次的三个层次为:ECC加/解密控制层、点运算层和域运算层。
所述ECC加/解密控制层包括域宽控制单元、ECC加/解密控制单元、存储器、数据串并转换模块和四组寄存器组,域宽控制单元的控制总线和ECC加/解密控制单元相连;ECC加/解密控制单元的一路控制信号和点运算层中的点乘运算模块相连,另有一根控制总线和数据串并转换模块相连,32位数据总线(图中记为数据总线[31:0])和存储器相连;存储器和数据串并转换模块相连,数据串并转换模块和四组寄存器组分别相连;四组寄存器组选择其一输出,输出的寄存器组和点运算层中的点乘运算模块通过数据总线(521位,图中记为数据总线[520:0])相连。支持多位宽的四组寄存器组包括一个192bit的寄存器组、一个224bits的寄存器组、一个384bits的寄存器组和一个521bits的寄存器组。具体实施时,增加寄存器组,同时对域宽控制单元提供相应的条件判断,便可以实现更多域宽下的ECC运算。
所述点运算层包括点乘运算模块和点加和倍点运算模块,点乘运算模块的控制信号和521位数据总线分别和点加和倍点运算模块相连,点加和倍点运算模块的控制信号和521位数据总线和域运算层相连。可采用控制信号传输运算状态机的控制信息,数据总线传输不同位宽的加密参数。
所述域运算层通过点加和倍点运算的控制信号,分别完成素域GF(p)中的有限域加法、乘法、平方和求逆运算。可设计为包括有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块。
ECC曲线的参数、基点P的坐标和大素数p、密钥通过32位数据总线输入到存储器中,在ECC加/解密控制单元的控制信号作用下,由数据串并转换模块将这些数据并行输送到内部的寄存器组中;寄存器组中的位宽依据加密参数的位宽来选择,用于存放运算过程中所需的中间变量和运算所需的ECC曲线参数。
如图1所示,本发明的位宽可扩展的ECC加密硬件结构采用了四组寄存器组,分别存储素域GF(192)、GF(224)、GF(384)和GF(521)的输入参数。首先,域宽控制单元开辟一定域宽的数据给ECC加/解密控制单元,接着ECC加/解密控制单元将之前得到的数据分17个时钟周期把数据发送给数据串并转换模块,每次串行输入32位数据。ECC加/解密控制单元的控制总线用来控制数据按时钟节拍输入进数据串并转换模块中,通过数据串并转换模块可以实现任意加密位宽的寄存器,最终根据选择的不同输出所需要的加密位宽即可。本发明提供了寄存器组的扩展方法,只要增加寄存器,对域宽控制单元做相应修改,便可以实现更多域宽下的ECC点乘运算。
域运算层负责有限域的各种算数运算,通过点加和倍点运算的控制信号,完成素域GF(p)中的有限域加法、乘法、平方和求逆运算。点运算层中的点加和倍点运算的控制信号通过对有限域基本运算的各硬件模块的调用,完成椭圆曲线上P≠Q和P=Q的点加和倍点运算,快速得到点乘KP的结果,加/解密控制层利用KP的值进行数据加/解密运算。P点是椭圆曲线上的一个点,Q点是椭圆曲线上的另一个点。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (5)

1.一种参数位宽可扩展的ECC加密硬件装置,其特征在于:包括ECC加/解密控制层、点运算层和域运算层;
所述ECC加/解密控制层包括域宽控制单元、ECC加/解密控制单元、存储器、数据串并转换模块和多组寄存器组,域宽控制单元的控制总线和ECC加/解密控制单元相连;ECC加/解密控制单元的一路控制信号和点运算层中的点乘运算模块相连,另有一根控制总线和数据串并转换模块相连,32位数据总线和存储器相连;存储器和数据串并转换模块相连,数据串并转换模块和多组寄存器组分别相连;多组寄存器组选择其一输出,输出的寄存器组和点运算层中的点乘运算模块通过521位数据总线相连;
所述点运算层包括点乘运算模块和点加和倍点运算模块,点乘运算模块的控制信号和521位数据总线分别和点加和倍点运算模块相连,点加和倍点运算模块的控制信号和521位数据总线和域运算层相连;
所述域运算层包括有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块。
2.如权利要求1所述参数位宽可扩展的ECC加密硬件装置,其特征在于:ECC曲线的参数、基点P的坐标和大素数p、密钥通过32位数据总线输入到存储器中,在ECC加/解密控制单元通过控制总线输出的控制信号作用下,由数据串并转换模块将这些数据并行输送到寄存器组中;寄存器组中的位宽依据加密参数的位宽来选择,用于存放运算过程中所需的中间变量和运算所需的系统参数。
3.如权利要求1所述参数位宽可扩展的ECC加密硬件装置,其特征在于:点运算层中的点加和倍点运算模块通过控制信号对域运算层的有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块进行调用,P点和Q点不相等时完成椭圆曲线上点加运算,P点和Q点不相等时完成椭圆曲线上倍点运算,P点是椭圆曲线上的一个点,Q点是椭圆曲线上的另一个点。
4.如权利要求1或2或3所述参数位宽可扩展的ECC加密硬件装置,其特征在于:采用了四组寄存器组,分别存储素域GF(192)、GF(224)、GF(384)和GF(521)的输入参数。
5.如权利要求4所述参数位宽可扩展的ECC加密硬件装置,其特征在于:设置更多寄存器组,支持更多域宽下的ECC点乘运算。
CN201310006119.5A 2013-01-08 2013-01-08 一种参数位宽可扩展的ecc加密硬件装置 Expired - Fee Related CN103023659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310006119.5A CN103023659B (zh) 2013-01-08 2013-01-08 一种参数位宽可扩展的ecc加密硬件装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310006119.5A CN103023659B (zh) 2013-01-08 2013-01-08 一种参数位宽可扩展的ecc加密硬件装置

Publications (2)

Publication Number Publication Date
CN103023659A true CN103023659A (zh) 2013-04-03
CN103023659B CN103023659B (zh) 2015-06-10

Family

ID=47971821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310006119.5A Expired - Fee Related CN103023659B (zh) 2013-01-08 2013-01-08 一种参数位宽可扩展的ecc加密硬件装置

Country Status (1)

Country Link
CN (1) CN103023659B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418688A (zh) * 2017-02-09 2018-08-17 英特尔公司 用于椭圆曲线加密硬件加速的技术
CN113014388A (zh) * 2021-03-30 2021-06-22 浙江萤火虫区块链科技有限公司 一种椭圆曲线密码算法中标量乘的加速系统
CN113660087A (zh) * 2021-07-06 2021-11-16 浙江传媒学院 一种基于有限域的sm9标识密码算法硬件实现系统
CN117896067A (zh) * 2024-03-13 2024-04-16 杭州金智塔科技有限公司 适用于国密sm2算法的并行模约减方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700637A (zh) * 2005-05-18 2005-11-23 上海迪申电子科技有限责任公司 一种新型的椭圆曲线密码协处理器
CN1822539A (zh) * 2005-12-16 2006-08-23 清华大学 椭圆曲线密码芯片的寄存器堆
CN101562522A (zh) * 2009-05-06 2009-10-21 深圳先进技术研究院 抗侧信道攻击的椭圆曲线密码系统实现方法
US20120288086A1 (en) * 2011-05-11 2012-11-15 Nxp B.V. Finite field cryptographic arithmetic resistant to fault attacks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700637A (zh) * 2005-05-18 2005-11-23 上海迪申电子科技有限责任公司 一种新型的椭圆曲线密码协处理器
CN1822539A (zh) * 2005-12-16 2006-08-23 清华大学 椭圆曲线密码芯片的寄存器堆
CN101562522A (zh) * 2009-05-06 2009-10-21 深圳先进技术研究院 抗侧信道攻击的椭圆曲线密码系统实现方法
US20120288086A1 (en) * 2011-05-11 2012-11-15 Nxp B.V. Finite field cryptographic arithmetic resistant to fault attacks

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418688A (zh) * 2017-02-09 2018-08-17 英特尔公司 用于椭圆曲线加密硬件加速的技术
CN108418688B (zh) * 2017-02-09 2023-02-21 英特尔公司 用于椭圆曲线加密硬件加速的计算设备、方法和存储介质
CN113014388A (zh) * 2021-03-30 2021-06-22 浙江萤火虫区块链科技有限公司 一种椭圆曲线密码算法中标量乘的加速系统
CN113014388B (zh) * 2021-03-30 2022-06-28 浙江萤火虫区块链科技有限公司 一种椭圆曲线密码算法中标量乘的加速系统
CN113660087A (zh) * 2021-07-06 2021-11-16 浙江传媒学院 一种基于有限域的sm9标识密码算法硬件实现系统
CN113660087B (zh) * 2021-07-06 2023-09-26 浙江传媒学院 一种基于有限域的sm9标识密码算法硬件实现系统
CN117896067A (zh) * 2024-03-13 2024-04-16 杭州金智塔科技有限公司 适用于国密sm2算法的并行模约减方法及装置

Also Published As

Publication number Publication date
CN103023659B (zh) 2015-06-10

Similar Documents

Publication Publication Date Title
CN110351087B (zh) 流水线型的蒙哥马利模乘运算方法
Yao et al. Faster pairing coprocessor architecture
CN103078732A (zh) 一种素域椭圆曲线加密的点乘加速电路
CN103942031A (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
CN101599828A (zh) 一种高效的rsa加解密方法及其协处理器
CN103023659B (zh) 一种参数位宽可扩展的ecc加密硬件装置
CN102122241A (zh) 一种适用于素域和多项式域的模乘模除器
Mansouri et al. An improved hardware implementation of the grain stream cipher
CN104184578A (zh) 一种基于fpga的椭圆曲线标量乘法加速电路及其算法
CN102279840B (zh) 一种适用于信息加密技术应用的素数族快速生成方法
Abd-Elkader et al. Efficient implementation of Montgomery modular multiplier on FPGA
KR100457177B1 (ko) 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기
Baktır et al. A state-of-the-art elliptic curve cryptographic processor operating in the frequency domain
CN108008934B (zh) 一种基于查找表的复合有限域求逆装置
Selma et al. Elliptic curve cryptographic processor design using FPGAs
CN105515770A (zh) 一种改进的快速生成大素数的方法
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
Srinivasan et al. VLSI implementation of low power high speed ECC processor using versatile bit serial multiplier
KR20060037941A (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
Kalaiarasi et al. A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms
Li et al. A novel algorithm for scalar multiplication in ecdsa
Shuhua et al. A timing-and-area tradeoff GF (p) elliptic curve processor architecture for FPGA
Miroshnik Implementation of cryptographic algorithms on FPGA-based digital distributed systems
Deepthi et al. Implementation and analysis of stream ciphers based on the elliptic curves
Thomas et al. A survey on various algorithms used for elliptic curve cryptography

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: 20150610

Termination date: 20160108

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