CN105094746A - 一种椭圆曲线密码的点加/点倍的实现方法 - Google Patents

一种椭圆曲线密码的点加/点倍的实现方法 Download PDF

Info

Publication number
CN105094746A
CN105094746A CN201410190867.8A CN201410190867A CN105094746A CN 105094746 A CN105094746 A CN 105094746A CN 201410190867 A CN201410190867 A CN 201410190867A CN 105094746 A CN105094746 A CN 105094746A
Authority
CN
China
Prior art keywords
instruction
point
fifo memory
fifo
described fifo
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
CN201410190867.8A
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.)
WISE SECURITY TECHNOLOGY (BEIJNG) Co Ltd
Original Assignee
WISE SECURITY TECHNOLOGY (BEIJNG) Co Ltd
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 WISE SECURITY TECHNOLOGY (BEIJNG) Co Ltd filed Critical WISE SECURITY TECHNOLOGY (BEIJNG) Co Ltd
Priority to CN201410190867.8A priority Critical patent/CN105094746A/zh
Publication of CN105094746A publication Critical patent/CN105094746A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Advance Control (AREA)

Abstract

一种椭圆曲线密码的点加/点倍运算的实现方法,采用FIFO存储器作为指令存储器,包括如下步骤:判断FIFO存储器中是否已满;若FIFO存储器中已包含FIFO指令,FIFO存储器自动执行FIFO指令;若FIFO存储器中未包含FIFO指令,则在FIFO存储器中写入FIFO指令并执行FIFO指令,若所有的FIFO指令运行结束后,则读取点加/点倍运算的结果,实现椭圆曲线密码的点加/点倍运算。通过本发明实现了点加/点倍的高速运算,实现了本发明在硬件上,只需有模乘、模加和模减这三个基本单元;软件上,由协处理直接处理基本指令,减少了软件的等待时间。

Description

一种椭圆曲线密码的点加/点倍的实现方法
技术领域
本发明涉及椭圆曲线密码技术领域,尤其是涉及一种椭圆曲线密码的点加/点倍运算的实现方法。
背景技术
椭圆曲线密码(E1lipticCurveCryptography,ECC)体制因其单比特安全强度远超过RSA系统,被公认为是公钥密码未来的发展方向。ECC的层次结构自上而下可以分4层,分别为:(1)应用层的顶层协议,具体包括密钥交换、数据加/解密、数字签名、签名认证等应用协议。(2)群运算层的点乘算法,主要有Double-and-Add、Montgomery、窗口NAF等多种点乘调度算法。(3)曲线层的点加调度算法和点倍调度算法,主要涉及到仿射坐标系和不同投影坐标系下点加/点倍算法的不同表现形式。(4)有限域层的模运算,主要有模加、减算法和模乘算法。
椭圆密码曲线算法的底层运算单元是模乘、模加和模减。有了这三个基本单元,就可以实现椭圆密码曲线算法,但是仅靠这三个基本单元实现的椭圆密码曲线算法的速度比较慢。为了进一步的提高椭圆曲线算法的运算速度,需要把软件实现的点加/点倍算法改成硬件实现。然而现有技术中协处理器的硬件实现点加/点倍,都是通过设计状态机来实现的,为了要实现双域的点加/点倍,一共需要设计四个状态机,如果用逻辑来实现四个状态机,则会导致状态机的控制逻辑复杂,而且实现面积庞大。
发明内容
本发明的目的在于设计一种椭圆曲线密码的点加/点倍运算的实现方法,解决上述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种椭圆曲线密码的点加/点倍运算的实现方法,采用FIFO存储器作为指令存储器;包括如下步骤:
步骤101,判断所述FIFO存储器中的存储数据是否已满;
步骤101.1,若所述FIFO存储器中的存储数据已满,则重新判断;
步骤101.2,若所述FIFO存储器中的存储数据未满,执行步骤102;
步骤102,判断所述FIFO存储器中是否包含FIFO指令;
步骤102.1,若所述FIFO存储器中已包含所述FIFO指令,则执行步骤103;
步骤102.2,若所述FIFO存储器中未包含所述FIFO指令,则在所述FIFO存储器中逐条的写入所述FIFO指令,执行步骤103;
步骤103,所述FIFO存储器执行所述FIFO指令,实现椭圆曲线密码的点加/点倍运算。
优选的,所述FIFO存储器为16个。
优选的,所述FIFO存储器为带有32位长度FIFO指令的存储器。
优选的,所述FIFO指令包括模乘指令、模减指令和模加指令。
优选的,所述步骤103中,当所述FIFO存储器执行完毕所述FIFO指令时,将所述FIFO存储器中的一个寄存器的标志位拉高,作为结束标识,当所述FIFO存储器未执行完毕所述FIFO指令时,继续执行所述FIFO指令。
FIFO即先入先出队列。FirstInputFirstOutput的缩写,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
本发明的有益效果可以总结如下:
通过本发明实现了点加/点倍的高速运算,本发明将点加/点倍中的模乘、模加和模减三个基本操作设计成基本指令;专有指令和FIFO相结合的方式来共同实现点加/点倍的操作;然后由CPU按照点加/点倍的指令顺序,把指令存到FIFO存储器中;FIFO存储器,按照先入先出的原则顺序执行指令;实现了本发明在硬件上,只需有模乘、模加和模减这三个基本单元;软件上,由于协处理直接处理基本指令,减少了软件的等待时间,CPU可以并行处理一些别的事务。本发明在较少硬件资源条件下能满足椭圆曲线密码双有限域点加/点倍高速运算。通过本发明最大程度的优化了硬件资源,大大的提高了运算速度。
附图说明
图1为本发明FIFO存储器的结构示意图。
图2为本发明的椭圆曲线密码的点加/点倍运算的实现方法的流程图。
图3为本发明的椭圆曲线密码的点加/点倍运算的实现后的仿真波形图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的目的在于提出一种采用专用指令和FIFO存储器相结合的方式来实现双域的点加/点倍操作。采用这种方式实现的点加/点倍,硬件能够满负荷地运转,所以性能和状态机实现的性能几乎是一样的,但是这种方式比状态机实现更灵活,而且面积更小。
接下来以素域的点倍为例,介绍一下设计思想:
椭圆曲线的方程:Y2=X2+ax+b。
P是椭圆曲线上的点P=(X1,Y1,Z2)∈E,求P的点倍:2P=(X3,Y3,Z3)∈E。
在雅克比坐标系下,求2P的公式如下:
先求B=4X1A,c=8A2
再求X2=u2-2B,Y3=u(B-X3)-c,Z3=22Z1
因为硬件只有一个模乘、模加和模减单元,所以具体实现的时候需要分为23步来实现:
1)模乘:求D中的Z1^2modM
2)模乘:求D中的Z1^4modM
3)模乘:求D中的a*Z1^4modM
4)模乘:求D中的X1^2modM
5)模乘:求D中的2*X1^2modM
6)模乘:求D中的3*X1^2modM
7)模加:求D=3*X1^2+a*Z1^4modM
8)模乘:求A=Y1^2modM
9)模乘:求B中的X1*AmodM
10)模加:求B中的2*X1*AmodM
11)模加:求B=4*X1*AmodM
12)模乘:求C中的A^2modM
13)模加:求C中的2*A^2modM
14)模加:求C中的4*A^2modM
15)模加:求C=8*A^2modM
16)模乘:求X3中的D^2
17)模减:求X3中的D^2-B
18)模减:求X3=D^2-2B
19)模减:求Y3中的B-X3
20)模乘:求Z3中的Y1*Z1
21)模加:求Z3=2*Y1*Z1
22)模乘:求Y3中的(B-X3)*D
23)模减:求Y3中的(B-X3)*DC
由此可以看出,点倍运算是由模乘、模加和模减三个基本指令按照固定的顺序实现的。如果用状态机来实现整个流程,那么支持双域的点加/点倍操作,一共需要四个状态机,这样控制逻辑复杂,而且实现面积庞大。因此设计了专用指令和FIFO存储器相结合的方式来实现双域的点加/点倍算法。
如图1所示,为了实现双域的点加/点倍运算,为了保证指令的顺序执行,我们采用FIFO存储器作为指令存储器。FIFO存储器是先入先出的存储器,先压进去的指令,会最先被执行,而且FIFO存储器可以循环使用。故此本发明采用的FIFO存储器作为协处理器;FIFO存储器选用16个32位长度FIFO指令的存储器;其中FIFO指令包括模乘指令、模减指令和模加指令。
如图2所示,一种椭圆曲线密码的点加/点倍运算的实现方法,采用FIFO存
储器作为指令存储器;FIFO存储器为16个带有32位长度FIFO指令的存储器。
FIFO指令包括模乘指令、模减指令和模加指令。
具体包括如下步骤:
步骤101,判断FIFO存储器中的存储数据是否已满;
步骤101.1,若FIFO存储器中的存储数据已满,则重新判断;
步骤101.2,若FIFO存储器中的存储数据未满,执行步骤102;
步骤102,判断FIFO存储器中是否包含FIF0指令;
步骤102.1,若FIFO存储器中已包含FIFO指令,则执行步骤103;
步骤102.2,若FIFO存储器中未包含FIFO指令,则在FIFO存储器中逐条的写入FIFO指令,执行步骤103;
步骤103,FIFO存储器执行FIFO指令,硬件自动实现椭圆曲线密码的点加/点倍运算。
其中在步骤103中,当FIFO存储器执行完毕FIFO指令时,将FIFO存储器中的一个寄存器的标志位拉高,作为结束标识,当FIFO存储器未执行完毕FIFO指令时,继续执行FIFO指令。
如图3所示为实现之后的仿真波形,其中fifo_wr是FIFO存储器的写信号,fifo_rd是FIFO存储器的读信号,mmul_start表示模乘操作的开始,madd_start表示模加操作的开始。从波形上可以看出,CPU刚开始连续地把指令都写入到了fifo_wr,然后该FIFO存储器会把待执行的指令顺序读出fifo_rd,执行mmul_start和madd_start。这样就可以保证硬件满负荷地工作,性能达到最优。当CPU写完所有的指令之后,CPU同时还可以做其它的工作,也提高了CPU的工作效率。
以上通过具体的和优选的实施例详细的描述了本发明,但本领域技术人员应该明白,本发明并不局限于以上所述实施例,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种椭圆曲线密码的点加/点倍运算的实现方法,其特征在于,采用FIFO存储器作为指令存储器;包括如下步骤:
步骤101,判断所述FIFO存储器中的存储数据是否已满;
步骤101.1,若所述FIFO存储器中的存储数据已满,则重新判断;
步骤101.2,若所述FIFO存储器中的存储数据未满,执行步骤102;
步骤102,判断所述FIFO存储器中是否包含FIFO指令;
步骤102.1,若所述FIFO存储器中已包含所述FIFO指令,则执行步骤103;
步骤102.2,若所述FIFO存储器中未包含所述FIFO指令,则在所述FIFO存储器中逐条的写入所述FIFO指令,执行步骤103;
步骤103,所述FIFO存储器执行所述FIFO指令,实现椭圆曲线密码的点加/点倍运算。
2.根据权利要求1所述的椭圆曲线密码的点加/点倍运算的实现方法,其特征在于:所述FIFO存储器为16个。
3.根据权利要求1或2所述的椭圆曲线密码的点加/点倍运算的实现方法,其特征在于:所述FIFO存储器为带有32位长度FIFO指令的存储器。
4.根据权利要求1所述的椭圆曲线密码的点加/点倍运算的实现方法,其特征在于:所述FIFO指令包括模乘指令、模减指令和模加指令。
5.根据权利要求1所述的椭圆曲线密码的点加/点倍运算的实现方法,其特征在于:所述步骤103中,当所述FIFO存储器执行完毕所述FIFO指令时,将所述FIFO存储器中的一个寄存器的标志位拉高,作为结束标识,当所述FIFO存储器未执行完毕所述FIFO指令时,继续执行所述FIFO指令。
CN201410190867.8A 2014-05-07 2014-05-07 一种椭圆曲线密码的点加/点倍的实现方法 Pending CN105094746A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410190867.8A CN105094746A (zh) 2014-05-07 2014-05-07 一种椭圆曲线密码的点加/点倍的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410190867.8A CN105094746A (zh) 2014-05-07 2014-05-07 一种椭圆曲线密码的点加/点倍的实现方法

Publications (1)

Publication Number Publication Date
CN105094746A true CN105094746A (zh) 2015-11-25

Family

ID=54575297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410190867.8A Pending CN105094746A (zh) 2014-05-07 2014-05-07 一种椭圆曲线密码的点加/点倍的实现方法

Country Status (1)

Country Link
CN (1) CN105094746A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390761A (zh) * 2018-02-09 2018-08-10 北京万协通信息技术有限公司 一种双域模逆的硬件实现方法
CN111198672A (zh) * 2019-12-30 2020-05-26 华南师范大学 一种基于二元扩域的点加和倍点电路及其控制方法
CN111966324A (zh) * 2020-08-19 2020-11-20 哈尔滨理工大学 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
US20080130873A1 (en) * 2006-12-04 2008-06-05 Lsi Corporation Flexible hardware architecture for ECC/HECC based crytography
CN101212292A (zh) * 2006-12-31 2008-07-02 航天信息股份有限公司 一种ecc\rsa加解密协处理器
CN102122241A (zh) * 2010-01-08 2011-07-13 复旦大学 一种适用于素域和多项式域的模乘模除器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
US20080130873A1 (en) * 2006-12-04 2008-06-05 Lsi Corporation Flexible hardware architecture for ECC/HECC based crytography
CN101212292A (zh) * 2006-12-31 2008-07-02 航天信息股份有限公司 一种ecc\rsa加解密协处理器
CN102122241A (zh) * 2010-01-08 2011-07-13 复旦大学 一种适用于素域和多项式域的模乘模除器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
唐薛峰: "《椭圆曲线密码算法IP的VLSI实现》", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 *
朱华,等: "《素域上椭圆曲线密码IP的高效VLSI实现》", 《计算机工程》 *
谢元斌: "《异构多核网络安全处理器硬件优化技术研究》", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390761A (zh) * 2018-02-09 2018-08-10 北京万协通信息技术有限公司 一种双域模逆的硬件实现方法
CN108390761B (zh) * 2018-02-09 2021-03-05 北京万协通信息技术有限公司 一种双域模逆的硬件实现方法
CN111198672A (zh) * 2019-12-30 2020-05-26 华南师范大学 一种基于二元扩域的点加和倍点电路及其控制方法
CN111966324A (zh) * 2020-08-19 2020-11-20 哈尔滨理工大学 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质
CN111966324B (zh) * 2020-08-19 2024-01-30 哈尔滨理工大学 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN112865954B (zh) 用于Paillier解密的加速器、芯片及系统
Knežević et al. Low-latency ECDSA signature verification—A road toward safer traffic
CN106100844B (zh) 基于点盲化方法的优化自动双线性对加密方法及装置
CN103226461B (zh) 一种用于电路的蒙哥马利模乘方法及其电路
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
CN101170406B (zh) 双核公钥密码算法运算协处理器的一种实现方法
CN101834723A (zh) 一种rsa算法及其ip核
CN103761068A (zh) 优化的蒙哥马利模乘方法、模平方方法和模乘硬件
CN101547089A (zh) 集成电路中素数域椭圆曲线密码算法的实现方法
CN103793199A (zh) 一种支持双域的快速rsa密码协处理器
CN113628094A (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN102999313A (zh) 一种基于蒙哥马利模乘的数据处理方法
CN102073808A (zh) 一种通过sata接口加密存储的方法和加密卡
CN102122241A (zh) 一种适用于素域和多项式域的模乘模除器
CN102737270A (zh) 一种基于国产算法的银行智能卡芯片安全协处理器
CN104536913A (zh) 一种基于多块ram的大数运算电路及数据转移方法
CN105094746A (zh) 一种椭圆曲线密码的点加/点倍的实现方法
WO2021211678A1 (en) System and method to improve efficiency in multiplication ladder-based cryptographic operations
KR20100098017A (ko) 확장된 몽고메리 레더를 이용한 스칼라 곱셈 방법
CN100518058C (zh) 一种用于公钥密码运算加速的方法及其体系结构
CN103107879B (zh) 一种rsa加速器
CN104503730A (zh) 一种基于指令的大数点加、倍点运算电路及实现方法
CN101819519B (zh) 多功能数字签名电路
CN104572012A (zh) 一种基于aop的多项式基gf(2227)高速模乘法器
US8626811B2 (en) Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20151125

RJ01 Rejection of invention patent application after publication