CN103023659B - 一种参数位宽可扩展的ecc加密硬件装置 - Google Patents
一种参数位宽可扩展的ecc加密硬件装置 Download PDFInfo
- Publication number
- CN103023659B CN103023659B CN201310006119.5A CN201310006119A CN103023659B CN 103023659 B CN103023659 B CN 103023659B CN 201310006119 A CN201310006119 A CN 201310006119A CN 103023659 B CN103023659 B CN 103023659B
- Authority
- CN
- China
- Prior art keywords
- point
- ecc
- module
- control unit
- bit
- 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.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种参数位宽可扩展的ECC加密硬件装置,包括ECC加/解密控制层、点运算层和域运算层。其中ECC加/解密控制层包括域宽控制单元、ECC加/解密控制单元、存储器、数据串并转换模块和支持多位宽的四个寄存器组:即一个192bit的寄存器组、一个224bits的寄存器组、一个384bits的寄存器组和一个521bit的寄存器组;点运算层包括点加和倍点运算模块和点乘运算模块;域运算层包括有限域加法、乘法、平方和求逆的运算模块。本发明很好的解决了素数域寄存器位宽可扩展问题,适合于FPGA或者ASIC实现。
Description
技术领域
本发明涉及密码学领域,特别是涉及一种加密解密算法中的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 (3)
1.一种参数位宽可扩展的ECC加密硬件装置,其特征在于:包括ECC加/解密控制层、点运算层和域运算层;
所述ECC加/解密控制层包括域宽控制单元、ECC加/解密控制单元、存储器、数据串并转换模块和多组寄存器组,域宽控制单元的控制总线和ECC加/解密控制单元相连;ECC加/解密控制单元的一路控制信号和点运算层中的点乘运算模块相连,另有一根控制总线和数据串并转换模块相连,ECC加/解密控制单元的32位数据总线和存储器相连;存储器和数据串并转换模块相连,数据串并转换模块和多组寄存器组分别相连;多组寄存器组选择其一输出,输出的寄存器组和点运算层中的点乘运算模块通过521位数据总线相连;
所述点运算层包括点乘运算模块和点加和倍点运算模块,点乘运算模块的控制信号和521位数据总线分别和点加和倍点运算模块相连,点加和倍点运算模块的控制信号和521位数据总线和域运算层相连;
所述域运算层包括有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块;
ECC曲线的参数、基点P的坐标和大素数p、密钥通过32位数据总线输入到存储器中,在ECC加/解密控制单元通过控制总线输出的控制信号作用下,由数据串并转换模块将这些数据并行输送到寄存器组中;寄存器组中的位宽依据加密参数的位宽来选择,用于存放运算过程中所需的中间变量和运算所需的系统参数;
点运算层中的点加和倍点运算模块通过控制信号对域运算层的有限域乘法运算模块、有限域加法运算模块、有限域平方运算模块和有限域求逆运算模块进行调用,P点和Q点不相等时完成椭圆曲线上点加运算,P点和Q点不相等时完成椭圆曲线上倍点运算,P点是椭圆曲线上的一个点,Q点是椭圆曲线上的另一个点。
2.如权利要求1所述参数位宽可扩展的ECC加密硬件装置,其特征在于:采用了四组寄存器组,分别存储素域GF(192)、GF(224)、GF(384)和GF(521)的输入参数。
3.如权利要求2所述参数位宽可扩展的ECC加密硬件装置,其特征在于:设置更多寄存器组,支持更多域宽下的ECC点乘运算。
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 CN103023659A (zh) | 2013-04-03 |
CN103023659B true 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) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10404459B2 (en) * | 2017-02-09 | 2019-09-03 | Intel Corporation | Technologies for elliptic curve cryptography hardware acceleration |
CN113014388B (zh) * | 2021-03-30 | 2022-06-28 | 浙江萤火虫区块链科技有限公司 | 一种椭圆曲线密码算法中标量乘的加速系统 |
CN113660087B (zh) * | 2021-07-06 | 2023-09-26 | 浙江传媒学院 | 一种基于有限域的sm9标识密码算法硬件实现系统 |
CN117896067B (zh) * | 2024-03-13 | 2024-07-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
Citations (3)
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 | 深圳先进技术研究院 | 抗侧信道攻击的椭圆曲线密码系统实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8817974B2 (en) * | 2011-05-11 | 2014-08-26 | Nxp B.V. | Finite field cryptographic arithmetic resistant to fault attacks |
-
2013
- 2013-01-08 CN CN201310006119.5A patent/CN103023659B/zh not_active Expired - Fee Related
Patent Citations (3)
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 | 深圳先进技术研究院 | 抗侧信道攻击的椭圆曲线密码系统实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103023659A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | File encryption and decryption system based on RSA algorithm | |
CN101170406B (zh) | 双核公钥密码算法运算协处理器的一种实现方法 | |
Yao et al. | Faster pairing coprocessor architecture | |
CN103023659B (zh) | 一种参数位宽可扩展的ecc加密硬件装置 | |
CN103078732A (zh) | 一种素域椭圆曲线加密的点乘加速电路 | |
CN103942031A (zh) | 椭圆域曲线运算方法和椭圆域曲线运算器 | |
Gao et al. | Elliptic curve scalar multiplier design using FPGAs | |
CN101599828A (zh) | 一种高效的rsa加解密方法及其协处理器 | |
Abd-Elkader et al. | Efficient implementation of Montgomery modular multiplier on FPGA | |
Kashif et al. | A hardware efficient elliptic curve accelerator for FPGA based cryptographic applications | |
KR100457177B1 (ko) | 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기 | |
Baktır et al. | A state-of-the-art elliptic curve cryptographic processor operating in the frequency domain | |
CN108008934B (zh) | 一种基于查找表的复合有限域求逆装置 | |
Ghosh et al. | A robust GF (p) parallel arithmetic unit for public key cryptography | |
Selma et al. | Elliptic curve cryptographic processor design using FPGAs | |
Li et al. | FPGA implementations of elliptic curve cryptography and Tate pairing over a binary field | |
CN107463354A (zh) | 一种面向ECC的双域并行度可变的Montgomery模乘电路 | |
Srinivasan et al. | VLSI implementation of low power high speed ECC processor using versatile bit serial multiplier | |
Morales-Sandoval et al. | A compact FPGA-based Montgomery multiplier over prime fields | |
Guitouni et al. | High performances ASIC based elliptic curve cryptographic processor over GF (2m) | |
Realpe-Muñoz et al. | High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves | |
Wu et al. | An ECC crypto engine based on binary edwards elliptic curve for low-cost RFID tag chip | |
Miroshnik | Implementation of cryptographic algorithms on FPGA-based digital distributed systems | |
Morales-Sandoval et al. | GF (2m) arithmetic modules for elliptic curve cryptography | |
CN103077005B (zh) | 一种串并结合的素域GF(p)大数模乘器电路 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150610 Termination date: 20160108 |