会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 工业自动化和数控机床 / 坐标系 / 椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法

椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法

阅读:596发布:2021-02-25

IPRDB可以提供椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法专利检索,专利查询,专利分析的服务。并且本发明公开了一种椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法,在现有的具有x和y两个分量的仿射坐标系中增加一个z’分量,形成新的仿射坐标系;椭圆曲线上在现有仿射坐标系下表示为(x,y)的平常点,在新的仿射坐标系下表示为(x,y,1),即坐标点z’=1;椭圆曲线上的无穷远点在新的仿射坐标系下表示为(0,0,0),即坐标点z’=0。本发明能使原先无法在仿射坐标系中表示的无穷远点,能够在改造后的仿射坐标系中表示,从而在仿射坐标系中能够区分无穷远点和平常点;使涉及仿射坐标系的点加和倍点运算能够正确实现。,下面是椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法专利的具体信息内容。

1.一种椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法,其特征在于:在现有的具有x和y两个分量的仿射坐标系中增加一个z’分量,形成新的仿射坐标系;

椭圆曲线上在现有仿射坐标系下表示为(x,y)的平常点,在新的仿射坐标系下表示为(x,y,1),即坐标点z’=1;椭圆曲线上的无穷远点在新的仿射坐标系下表示为(0,0,0),即坐标点z’=0。

2.如权利要求1所述的方法,其特征在于:进行倍点运算时,将进行倍点运算的点表示成新的仿射坐标系下的点,所述倍点运算包括:(i)判断进行倍点运算的点是否为无穷远点,即该点的z’坐标是否为0,如果为0,那么倍点运算的结果为无穷远点;

(ii)计算经过倍点运算的点的椭圆曲线的切线的斜率,如果其值为无穷大,那么倍点运算的结果为无穷远点;

(iii)如果进行倍点运算的点不为无穷远点,并且经过该点的椭圆曲线的切线的斜率也不为无穷大,那么进行倍点的计算。

3.如权利要求2所述的方法,其特征在于:所述倍点运算包括由仿射坐标系下的点相加得到仿射坐标系下的点(2A→A)的倍点运算,其中,A表示仿射坐标系。

4.如权利要求2所述的方法,其特征在于:所述倍点运算包括由仿射坐标系下的点相加得到雅克比坐标系下的点(2A→J)的倍点运算,其中,A表示仿射坐标系,J表示雅克比坐标系。

5.如权利要求1所述的方法,其特征在于:进行点加运算时,根据点加运算算法的不同,将进行点加运算的两个点或者其中一个点表示成新的仿射坐标系下的点,所述点加运算包括:(i)判断进行点加运算的两点是否为无穷远点,即判断该点在新的仿射坐标系下的z’坐标是否为0或者投影坐标系下的Z坐标是否为0,如果其中一个点为无穷远点,那么点加结果为另一个点;

(ii)计算进行点加运算的两点的连线的斜率,如果其值为无穷大,那么点加运算的结果为无穷远点;

(iii)如果进行点加运算的两点都不为无穷远点,并且两点连线的斜率也不为无穷大,那么进行点加的计算。

6.如权利要求4所述的方法,其特征在于:所述点加运算包括由仿射坐标系下的点相加得到仿射坐标系下的点(A+A→A)的点加运算,其中,A表示仿射坐标系。

7.如权利要求4所述的方法,其特征在于:所述点加运算包括由仿射坐标系下的点和雅克比坐标系下的点相加得到雅克比坐标系下的点(J+A→J))的点加运算,其中,A表示仿射坐标系,J表示雅克比坐标系。

说明书全文

椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法

技术领域

[0001] 本发明涉及椭圆曲线密码体制(ECC,Elliptic Curve Cryptosystem)领域,特别是涉及一种椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法。

背景技术

[0002] 1985年,Neil Koblitz,Victor Muller等人,将椭圆曲线应用到密码学中,在公钥密码体制研究中取得了重大突破,这就是椭圆曲线上的密码体制——ECC。它的安全性建立在椭圆曲线离散对数问题(ECDLP)的困难性之上。椭圆曲线密码体制可以提供和RSA密码体制相同的功能,但由于其强大的“短密钥”优势成为公钥密钥体制的发展方向。
[0003] ECC主要的运算为点乘(Scalar Multiplication),即计算kP,其中P为椭圆曲线上一点,k为正整数。点乘运算又主要由点加运算和倍点运算组成,点加即为将两个不同的点相加的运算,倍点即为将一个点加上其本身的运算。
[0004] 椭圆曲线中的点包括平常点和无穷远点。平常点为可以在仿射坐标系上表示的点,而无穷远点则无法在仿射坐标系上表示,其定义为两条平行直线的交点。在点加和倍点的流程中,对于无穷远点的运算和平常点的运算,其步骤不同。因此需要在运算之前就判断该点是否为无穷远点。
[0005] 根据定义,无穷远点可以在投影坐标系中表示为(X:Y:O),即Z坐标等于0。但是在仿射坐标中,由于仿射坐标的表示形式为(x,y),没有z分量,因此无穷远点无法在仿射坐标中表示。这就会使得涉及仿射坐标的点加和倍点流程无法实现或者计算错误。

发明内容

[0006] 本发明要解决的技术问题是提供一种椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法,使得原先无法在仿射坐标系中表示的无穷远点,也能够在改造后的仿射坐标系中表示,从而能够在仿射坐标系中区分无穷远点和平常点。
[0007] 为解决上述技术问题,本发明的椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法是采用如下技术方案实现的:
[0008] 在现有的具有x和y两个分量的仿射坐标系中增加一个z’分量,形成新的仿射坐标系;椭圆曲线上在现有仿射坐标系下表示为(x,y)的平常点,在新的仿射坐标系下表示为(x,y,1);椭圆曲线上的无穷远点在新的仿射坐标系下表示为(0,0,0)。
[0009] 进行倍点运算时,将进行倍点运算的点表示成新的仿射坐标系下的点,所述倍点运算包括:
[0010] (i)判断进行倍点运算的点是否为无穷远点,即该点的z’坐标是否为0,如果为0,那么倍点运算的结果为无穷远点;
[0011] (ii)计算经过进行倍点运算的点的椭圆曲线的切线的斜率,如果其值为无穷大,那么倍点运算的结果为无穷远点;
[0012] (iii)如果进行倍点运算的点不为无穷远点,并且经过该点的椭圆曲线的切线的斜率也不为无穷大,那么进行倍点的计算。
[0013] 进行点加运算时,根据点加运算算法的不同,将进行点加运算的两个点或者其中一个点表示成改造后的仿射坐标系下的点,将点加运算分为以下几种情况:
[0014] (i)判断进行点加运算的两点是否为无穷远点,即判断该点在新的仿射坐标系下的z’坐标是否为0或者投影坐标系下的Z坐标是否为0,如果其中一个点为无穷远点,那么点加结果为另一个点;
[0015] (ii)计算进行点加运算的两点的连线的斜率,如果其值为无穷大,那么点加运算的结果为无穷远点;
[0016] (iii)如果进行点加运算的两点都不为无穷远点,并且两点连线的斜率也不为无穷大,那么进行点加的计算。
[0017] 在ECC算法中,所有点乘运算都会涉及无穷远点的判断和计算,而无穷远点却无法在普通仿射坐标系中表示。本发明通过对现有的普通仿射坐标系进行改造,新的仿射坐标的表现形式为(x,y,z’),在初始赋值或者通过运算过程中的判断,对z’坐标进行赋值,进而能够通过z’的值来区分无穷远点和平常点;使无穷远点能够在普通仿射坐标系中表示,从而能够在仿射坐标系中区分无穷远点和平常点。
[0018] 在点加和倍点的运算过程中,通过计算点加中两点连线的斜率或者倍点中经过该点的椭圆曲线的切线的斜率的值,来判断点加或者倍点的结果是否为无穷远点,从而使得涉及仿射坐标系的点加和倍点运算能够正确实现。

附图说明

[0019] 下面结合附图与具体实施方式对本发明作进一步详细的说明:
[0020] 附图是采用本发明的方法实现从左向右二进制点乘算法控制流程图。

具体实施方式

[0021] 现有的普通的仿射坐标只有两个分量x和y,无法表示无穷远点。在改进后的新仿射坐标系中增加一个分量z’,并通过该分量来区分平常点和无穷远点。平常点的z’坐标为1,而无穷远点的z’坐标为0。在点加或者倍点运算时,对输入的点判断其z’坐标,可以确定该点是否为无穷远点,进而进行不同的处理。
[0022] 在点乘过程中,无穷远点的产生分为两种情况:
[0023] 1、初始变量赋值;一般在点乘主循环计算之前,都需要将某个点设为无穷远点,然后再对该点进行点加和倍点的循环操作。
[0024] 2、点加和倍点的运算过程中。在点加运算过程中,通过对点加中两点连线的斜率的值进行判断,如果其值为无穷大,表示两点连线与椭圆曲线除了这两个交点,另一个交点为无穷远点,根据椭圆曲线上的加法规则,点加的结果即为无穷远点。在倍点运算过程中,通过对倍点中经过该点的椭圆曲线的切线的斜率的值进行判断,如果其值为无穷大,表示切线与椭圆曲线除了这个交点,另一个交点为无穷远点,根据椭圆曲线上的加法规则,倍点的结果即为无穷远点。
[0025] 在下面的实施例中,点乘算法采用从左向右的二进制方法,其坐标全部用仿射坐标系实现。结合附图所示,具体的点乘控制流程如下描述:
[0026] 步骤1,输入点乘的标量(即k的二进制长度为t),以及点P。
[0027] 步骤2,将点P表示成改进后的新仿射坐标的形式,即如果点P为原先仿射坐标系中表示为(x,y)的平常点,在新仿射坐标系中表示为(x,y,1);如果点P为无穷远点,在新仿射坐标新中表示为(0,0,0)。
[0028] 步骤3,将点Q表示成新仿射坐标中的无穷远点,即表示为(0,0,0)。
[0029] 步骤4,采用从左向右的二进制方法进行点乘运算,对于i从t-1到0,重复执行。其中,
[0030] 步骤4.1,进行倍点运算Q=2Q,倍点运算可以分为以下几个情况:
[0031] 判断Q点的z’坐标是否为0,如果为0,那么倍点运算的结果为无穷远点(0,0,0)。
[0032] 计算经过点Q的椭圆曲线的切线的斜率,如果其值为无穷大,那么倍点运算的结果为无穷远点(0,0,0)。
[0033] 如果Q点不为无穷远点,并且经过点Q的椭圆曲线的切线的斜率也不为无穷大,那么进行倍点的计算Q=2Q。
[0034] 所述倍点运算包括由仿射坐标系下的点相加得到仿射坐标系下的点(2A→A)的倍点运算,其中,A表示仿射坐标系。
[0035] 所述倍点运算包括由仿射坐标系下的点相加得到雅克比坐标系下的点(2A→J)的倍点运算,其中,A表示仿射坐标系,J表示雅克比坐标系。
[0036] 步骤4.2,若,进行点加运算Q=Q+P,点加运算可以分为以下几个情况:
[0037] 判断P点和Q点的z’坐标是否为0,如果P点的z’坐标为0,那么点加运算的结果为Q点;如果Q点的z’坐标为0,那么点加运算的结果为P点。
[0038] 计算P点和Q点两点连线的斜率,如果其值为无穷大,那么点加运算的结果为无穷远点(0,0,0)。
[0039] 如果P点和Q点都不为无穷远点,并且两点连线的斜率也不为无穷大,那么进行点加的计算Q=Q+P。
[0040] 所述点加运算包括由仿射坐标系下的点相加得到仿射坐标系下的点(A+A→A)的点加运算,其中,A表示仿射坐标系。
[0041] 所述点加运算包括由仿射坐标系下的点和雅克比坐标系下的点相加得到雅克比坐标系下的点(J+A→J)的点加运算,其中,A表示仿射坐标系,J表示雅克比坐标系。
[0042] 步骤5,得到点乘的结果kP。
[0043] 以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用