椭圆曲线点乘运算的硬件实现方法及其系统技术方案

技术编号:18501109 阅读:37 留言:0更新日期:2018-07-21 22:21
本发明专利技术公开了一种椭圆曲线点乘运算的硬件实现方法及其系统,涉及数据硬件加密处理技术领域。本发明专利技术椭圆曲线点乘运算的硬件实现方法包括以下步骤:获取椭圆曲线上的曲线点横坐标和点乘系数;根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数;计算所述坐标参数以得到所述射影坐标下的横坐标;转换所述射影坐标下的横坐标以得到点乘结果。本发明专利技术技术方案通过基于射影坐标的表示方法,将椭圆曲线上的曲线点横坐标和点乘系数在射影坐标模式下进行计算,无需对输入数据做预处理,简化了算法、节约了运算时间。

Hardware implementation and system of elliptic curve point multiplication operation

The invention discloses a hardware implementation method of elliptic curve point multiplication operation and a system thereof, and relates to the field of data hardware encryption processing technology. The hardware realization method of the elliptic curve dot multiplication operation of the invention includes the following steps: obtaining the transverse coordinates and the dot multiplication coefficients of the curve points on the elliptic curve; setting the coordinate parameters under the projective coordinates according to the cross coordinates of the curve points and the point multiplying coefficients; calculating the coordinate parameters to obtain the transverse coordinates in the projective coordinates; Changing the abscissa of the projective coordinate to get the dot multiplication result. The technical scheme of the invention is based on the representation of the projective coordinates, and calculates the curve point abscissa and the dot multiplication coefficient on the elliptical curve under the projective coordinate mode, without preprocessing the input data, simplifying the algorithm and saving the operation time.

【技术实现步骤摘要】
椭圆曲线点乘运算的硬件实现方法及其系统
本专利技术涉及数据硬件加密处理
,特别是涉及一种椭圆曲线点乘运算的硬件实现方法及其系统。
技术介绍
在信息安全领域中,最重要的环节就是信息加密技术,加密技术在应用中又主要用在软件加密和硬件加密方面。在现有的常用加密方法(包括对称加密方法和非对称加密方法)中,由于算法的复杂度以及硬件方面较难实现,非对称加密方法被作为安全系数较高的加密方法使用。在现有的非对称加密方法中,椭圆曲线加密安全性高但较难实现,而在椭圆曲线加密运算中点乘运算的速度又决定了整体加密运算的速度,因此点乘模块可以算是加解密算法硬件实现时最重要模块之一。在当前基于有限域的椭圆曲线加密设计中,椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程确定的平面曲线。现有技术中,椭圆曲线加密点乘模块的硬件实现大多使用基于素域的常规点乘运算方法,维数也相对较小,一般使用163、191、233;同时,由于常规点乘运算使用的算法较复杂,故导致硬件实现时设计的模块较多,功能实现较繁琐,且需要提前做预处理,会消耗大量时间。
技术实现思路
本专利技术的主要目的在于提供一种椭圆曲线点乘运算的硬件实现方法及其系统,旨在简化椭圆曲线加密算法、节约运算时间。为实现上述目的,本专利技术提供一种椭圆曲线点乘运算的硬件实现方法,包括以下步骤:获取椭圆曲线上的曲线点横坐标和点乘系数;根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数;计算所述坐标参数以得到所述射影坐标下的横坐标;转换所述射影坐标下的横坐标以得到点乘结果。优选地,所述根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数还包括:设置所述坐标参数X1、Z1、X2、Z2的值:令X1等于所述曲线点横坐标Px、X2等于Px4+b、Z1等于1、Z2等于Px2,其中b为预设参数。优选地,所述计算所述坐标参数以得到所述射影坐标下的横坐标还包括:所述射影坐标下的横坐标通过等式x=X/Z计算;根据所述点乘系数k的位数n对坐标参数(X1,Z1)、(X2,Z2)分别依次进行n-1次点加运算和倍加运算,以得到X、Z的值。优选地,所述转换所述射影坐标下的横坐标以得到点乘结果还包括:通过等式Qx=X/Z计算点乘结果,其中,X和Z为通过点加运算和倍加运算的计算所述坐标参数后输出的运算结果。优选地,所述获取椭圆曲线上的曲线点横坐标和点乘系数还包括:输入所述点乘系数k的值,并将其转换为二进制数。本专利技术还提供一种椭圆曲线点乘运算系统,包括:用于存储椭圆曲线上的曲线点横坐标和点乘系数的寄存器;连接于所述寄存器并获取所述曲线点横坐标和所述点乘系数的控制器;所述控制器包括计算模块,用于计算所述曲线点横坐标和所述点乘系数的点乘结果。优选地,所述控制器还包括转换模块,用于将所述点乘系数转换为二进制数,以及将曲线点横坐标转换为射影坐标下的坐标参数。优选地,所述计算模块包括点加运算模块、倍加运算模块和坐标转换模块;所述点加运算模块和所述倍加运算模块获取所述点乘系数以及所述坐标参数进行计算;所述点加运算模块和所述倍加运算模块将计算后的结果发送至所述坐标转换模块以得到点乘结果。优选地,所述点加运算模块和所述倍加运算模块为有限域内的乘法模块。优选地,所述坐标转换模块为求逆计算模块。本专利技术技术方案通过基于射影坐标的表示方法,将椭圆曲线上的曲线点横坐标和点乘系数在射影坐标模式下进行计算,无需对输入数据做预处理,同时由于只采用了点的横坐标做点乘运算,所以简化了算法、节约了运算时间。附图说明图1为本专利技术椭圆曲线点乘运算的硬件实现方法流程示意图;图2为本专利技术椭圆曲线点乘运算系统原理示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。下面结合附图对本专利技术进一步说明。本专利技术是基于蒙哥马利(Montgomery)点乘算法,该算法中,点的表示方法摒弃传统的(x,y)表示方式,改用射影坐标模式(X,Z)的表示方法,在硬件实现上减少了设计模块,从而减少了资源的占用。本专利技术椭圆曲线点乘运算的硬件实现方法及其系统采用特征为2的有限域GF(2n)的椭圆曲线作为硬件的实现方案,其中维数n=283,相比于现有技术中使用的维数163、191、233,可以大大提高加密安全系数,如图1所示,本实施例提供一种椭圆曲线点乘运算的硬件实现方法,包括以下步骤:获取椭圆曲线上的曲线点横坐标和点乘系数;根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数;计算所述坐标参数以得到所述射影坐标下的横坐标;转换所述射影坐标下的横坐标以得到点乘结果。在椭圆曲线加密过程中,椭圆曲线公式为:y2+xy=x3+ax2+b,加密过程即为求椭圆曲线点乘Q=k*Px=Qx,其中,Px的值为椭圆曲线上任意一点(x,y)的横坐标x的值;k为用户在加密前自定义的参数,表示需要做点乘运算的次数,一般是随机生成的不为0的数字;a和b为固定参数,在实际运算过程中,一般取值为1,这样点乘运算的速度可达最快。设置所述坐标参数X1、Z1、X2、Z2的值:令X1等于所述曲线点横坐标Px、X2等于Px4+b、Z1等于1、Z2等于Px2,其中b为预设参数。输入所述点乘系数k的值,并将其转换为二进制数。将整数k转换成计算机能识别的二进制数;将椭圆曲线点横坐标Px转换成射影坐标(X,Z)模式。优选地,所述计算所述坐标参数以得到所述射影坐标下的横坐标还包括:所述射影坐标下的横坐标通过等式x=X/Z计算;根据所述点乘系数k的位数n对坐标参数(X1,Z1)、(X2,Z2)分别依次进行n-1次点加运算和倍加运算,以得到X、Z的值。计算二进制数k和射影坐标(X,Z)的点乘运算结果,以得到相乘后射影坐标模式下椭圆曲线上另一点的横坐标x。优选地,所述转换所述射影坐标下的横坐标以得到点乘结果还包括:通过等式Qx=X/Z计算点乘结果,其中,X和Z为通过点加运算和倍加运算的计算所述坐标参数后输出的运算结果。将计算得到的射影坐标模式下另一点横坐标x转换成仿射坐标模式下的点的横坐标Qx,即得到点乘的结果。本实施例的点乘运算过程如下:S1、判断k和Px是否为0,若为0则输出Qx=0并结束;S2、将整数k转换为二进制数(kn-1kn-2…k1k0),n表示二进制的k的位数;S3、设置所述坐标参数X1、Z1、X2、Z2的值:令X1=Px,X2=Px4+b,Z1=1、Z2=Px2,其中b为1;其中X1、Z1、X2、Z2为在椭圆曲线上的点Px射影坐标下的值;S4、依次从k的次高位开始判断其值为1或0分别进行不同的点加运算和倍加运算,以计算射影坐标下的横坐标x(X,Z),即依次从kn-2至k0判断该位的值为1还是为0:当ki=1时(i的取值范围为n-2至0),通过Madd(X1,Z1,X2,Z2),Mdouble(X2,Z2)计算的x值;其中Madd和Mdouble分别表示射影坐标下的点加运算和倍加运算;当ki=0时(i的取值范围为n-2至0),通过Madd(X2,Z2,X1,Z1),Mdouble(X1,Z1)计算的x值;具体地,当ki=1时,Madd(X1,Z1,X2,Z2)通过等式X=(X1*Z2+X2*Z1)2,Z=本文档来自技高网...

【技术保护点】
1.一种椭圆曲线点乘运算的硬件实现方法,其特征在于,包括以下步骤:获取椭圆曲线上的曲线点横坐标和点乘系数;根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数;计算所述坐标参数以得到所述射影坐标下的横坐标;转换所述射影坐标下的横坐标以得到点乘结果。

【技术特征摘要】
1.一种椭圆曲线点乘运算的硬件实现方法,其特征在于,包括以下步骤:获取椭圆曲线上的曲线点横坐标和点乘系数;根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数;计算所述坐标参数以得到所述射影坐标下的横坐标;转换所述射影坐标下的横坐标以得到点乘结果。2.根据权利要求1所述的椭圆曲线点乘运算的硬件实现方法,其特征在于,所述根据所述曲线点横坐标与所述点乘系数设置射影坐标下的坐标参数还包括:设置所述坐标参数X1、Z1、X2、Z2的值:令X1等于所述曲线点横坐标Px、X2等于Px4+b、Z1等于1、Z2等于Px2,其中b为预设参数。3.根据权利要求2所述的椭圆曲线点乘运算的硬件实现方法,其特征在于,所述计算所述坐标参数以得到所述射影坐标下的横坐标还包括:所述射影坐标下的横坐标通过x=(X,Z)表示;根据所述点乘系数k的位数n对坐标参数(X1,Z1)、(X2,Z2)分别依次进行n-1次点加运算和倍加运算,以得到X、Z的值。4.根据权利要求2所述的椭圆曲线点乘运算的硬件实现方法,其特征在于,所述转换所述射影坐标下的横坐标以得到点乘结果还包括:通过等式Qx=X/Z计算点乘结果,其中,X和Z为通过点加运算和倍加运算的计算所述坐标参数后输出的运算结...

【专利技术属性】
技术研发人员:丛宇飞
申请(专利权)人:成都锐成芯微科技股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1