当前位置:首页 » 密码管理 » 什么是椭圆曲线密码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

什么是椭圆曲线密码

发布时间: 2022-07-08 00:35:05

A. 椭圆曲线密码学的数学理论

ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA——提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。不过一个缺点是加密和解密操作的实现比其他机制花费的时间长。
椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决椭圆曲线离散对数问题的困难性上,对应有限域上椭圆曲线的群。
对椭圆曲线来说最流行的有限域是以素数为模的整数域(参见 模运算)GF(p),或是特征为2的伽罗华域GF(2m)。后者在专门的硬件实现上计算更为有效,而前者通常在通用处理器上更为有效。专利的问题也是相关的。一些其他素数的伽罗华域的大小和能力也已经提出了,但被密码专家认为有一点问题。
给定一条椭圆曲线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。
一般认为在一个有限域乘法群上的离散对数问题(DLP)和椭圆曲线上的离散对数问题(ECDLP)并不等价;ECDLP比DLP要困难的多。
在密码的使用上,曲线E(q);和其中一个特定的基点G一起被选择和公布。一个私钥k被作为随机整数来选择;值P=k*G被作为公钥来公布(注意假设的ECDLP困难性意味着k很难从P中确定)。如果Alice和Bob有私钥kA和kB,公钥是PA和PB,那么Alice能计算kA*PB=(kA*kB)*G;Bob能计算同样的值kB*PA=(kB*kA)*G。
这允许一个“秘密”值的建立,这样Alice和Bob能很容易地计算出,但任何的第三方却很难得到。另外,Bob在处理期间不会获得任何关于kA的新知识,因此Alice的私钥仍然是私有的。
基于这个秘密值,用来对Alice和Bob之间的报文进行加密的实际方法是适应以前的,最初是在其他组中描述使用的离散对数密码系统。这些系统包括:
Diffie-Hellman — ECDH
MQV — ECMQV
ElGamal discrete log cryptosystem — ECElGamal
DSA — ECDSA
对于ECC系统来说,完成运行系统所必须的群操作比同样大小的因数分解系统或模整数离散对数系统要慢。不过,ECC系统的拥护者相信ECDLP问题比DLP或因数分解问题要难的多,并且因此使用ECC能用小的多的密钥长度来提供同等的安全,在这方面来说它确实比例如RSA之类的更快。到目前为止已经公布的结果趋于支持这个结论,不过一些专家表示怀疑。
ECC被广泛认为是在给定密钥长度的情况下,最强大的非对称算法,因此在对带宽要求十分紧的连接中会十分有用。
国家标准与技术局和ANSI X9已经设定了最小密钥长度的要求,RSA和DSA是1024位,ECC是160位,相应的对称分组密码的密钥长度是80位。NIST已经公布了一列推荐的椭圆曲线用来保护5个不同的对称密钥大小(80,112,128,192,256)。一般而言,二进制域上的ECC需要的非对称密钥的大小是相应的对称密钥大小的两倍。
Certicom是ECC的主要商业支持者,拥有超过130项专利,并且已经以2千5百万美元的交易获得了国家安全机构(NSA)的技术许可。他们也已经发起了许多对ECC算法的挑战。已经被解决的最复杂的是109位的密钥,是在2003年初由一个研究团队破解的。破解密钥的这个团队使用了基于生日攻击的大块并行攻击,用超过10,000台奔腾级的PC机连续运行了540天以上。对于ECC推荐的最小密钥长度163位来说,当前估计需要的计算资源是109位问题的108倍。
在2005年2月16日,NSA宣布决定采用椭圆曲线密码的战略作为美国政府标准的一部分,用来保护敏感但不保密的信息。NSA推荐了一组被称为Suit B的算法,包括用来密钥交换的Menezes-Qu-Vanstone椭圆曲线和Diffie-Hellman椭圆曲线,用来数字签名的椭圆曲线数字签名算法。这一组中也包括AES和SHA。

B. 椭圆曲线(ecc)加密,签名(ecdsa)问题。

用asp实现椭圆曲线加密,签名。
一个你可以下载一个加密软件,可心在www,.com中搜索加密软件,加密软件很多,你要椭圆曲线加密,签名,你先建立一个文件夹,然后将椭圆保存,对文件夹加密就行了!

C. 简述椭圆曲线密码体制的基本原理

椭圆曲线密码体制以其短密钥、小开销的优势,已经成为密码界争相研究的热点,而且大有替代RSA成为主流公钥密码体制的趋势。
基本原理看看下面链接。
希望对你有帮助。

D. 什么是ECC

ECC
ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。

要了解ECC技术,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就作出视图纠正这些错误,但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。

通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。

2 ECC(Elliptic Curve Cryptosystems )椭圆曲线密码体制

2002年,美国SUN公司将其开发的椭圆加密技术赠送给开放源代码工程
公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。
椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:
y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
所确定的平面曲线。其中系数ai(I=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。
椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式
mP=P+P+…+P=Q (2)
中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这个困难问题设计而来。椭圆曲线应用到密码学上最早是由Neal Koblitz 和Victor Miller在1985年分别独立提出的。
椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。
德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司实现了椭圆曲线密码体制,我国也有一些密码学者做了这方面的工作。许多标准化组织已经或正在制定关于椭圆曲线的标准,同时也有许多的厂商已经或正在开发基于椭圆曲线的产品。对于椭圆曲线密码的研究也是方兴未艾,从ASIACRYPTO’98上专门开辟了ECC的栏目可见一斑。
在椭圆曲线密码体制的标准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它们所开发的椭圆曲线标准的文档有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。
2003年5月12日中国颁布的无线局域网国家标准 GB15629.11 中,包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全机制,能为用户的WLAN系统提供全面的安全保护。这种安全机制由 WAI和WPI两部分组成,分别实现对用户身份的鉴别和对传输的数据加密。WAI采用公开密钥密码体制,利用证书来对WLAN系统中的用户和AP进行认证。证书里面包含有证书颁发者(ASU)的公钥和签名以及证书持有者的公钥和签名,这里的签名采用的就是椭圆曲线ECC算法。
加拿大Certicom公司是国际上最着名的ECC密码技术公司,已授权300多家企业使用ECC密码技术,包括Cisco 系统有限公司、摩托罗拉、Palm等企业。Microsoft将Certicom公司的VPN嵌入微软视窗移动2003系统中。

E. sm2椭圆曲线密码算法和rsa公钥密码算法的异同

国密非对称算法SM2是居于椭圆曲线的算法。目前的看法是,椭圆曲线的算法肯定比RSA安全。但是椭圆曲线的算法的应用还没有完全普及

F. 常用的加密算法有哪些

对称密钥加密

对称密钥加密 Symmetric Key Algorithm 又称为对称加密、私钥加密、共享密钥加密:这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单的相互推算的密钥,对称加密的速度一般都很快。

  • 分组密码

  • 分组密码 Block Cipher 又称为“分块加密”或“块加密”,将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密。这也就意味着分组密码的一个优点在于可以实现同步加密,因为各分组间可以相对独立。

    与此相对应的是流密码:利用密钥由密钥流发生器产生密钥流,对明文串进行加密。与分组密码的不同之处在于加密输出的结果不仅与单独明文相关,而是与一组明文相关。

  • DES、3DES

  • 数据加密标准 DES Data Encryption Standard 是由IBM在美国国家安全局NSA授权下研制的一种使用56位密钥的分组密码算法,并于1977年被美国国家标准局NBS公布成为美国商用加密标准。但是因为DES固定的密钥长度,渐渐不再符合在开放式网络中的安全要求,已经于1998年被移出商用加密标准,被更安全的AES标准替代。

    DES使用的Feistel Network网络属于对称的密码结构,对信息的加密和解密的过程极为相似或趋同,使得相应的编码量和线路传输的要求也减半。

    DES是块加密算法,将消息分成64位,即16个十六进制数为一组进行加密,加密后返回相同大小的密码块,这样,从数学上来说,64位0或1组合,就有2^64种可能排列。DES密钥的长度同样为64位,但在加密算法中,每逢第8位,相应位会被用于奇偶校验而被算法丢弃,所以DES的密钥强度实为56位。

    3DES Triple DES,使用不同Key重复三次DES加密,加密强度更高,当然速度也就相应的降低。

  • AES

  • 高级加密标准 AES Advanced Encryption Standard 为新一代数据加密标准,速度快,安全级别高。由美国国家标准技术研究所NIST选取Rijndael于2000年成为新一代的数据加密标准。

    AES的区块长度固定为128位,密钥长度可以是128位、192位或256位。AES算法基于Substitution Permutation Network代换置列网络,将明文块和密钥块作为输入,并通过交错的若干轮代换"Substitution"和置换"Permutation"操作产生密文块。

    AES加密过程是在一个4*4的字节矩阵(或称为体State)上运作,初始值为一个明文区块,其中一个元素大小就是明文区块中的一个Byte,加密时,基本上各轮加密循环均包含这四个步骤:

  • ECC

  • ECC即 Elliptic Curve Cryptography 椭圆曲线密码学,是基于椭圆曲线数学建立公开密钥加密的算法。ECC的主要优势是在提供相当的安全等级情况下,密钥长度更小。

    ECC的原理是根据有限域上的椭圆曲线上的点群中的离散对数问题ECDLP,而ECDLP是比因式分解问题更难的问题,是指数级的难度。而ECDLP定义为:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。

  • 数字签名

  • 数字签名 Digital Signature 又称公钥数字签名是一种用来确保数字消息或文档真实性的数学方案。一个有效的数字签名需要给接收者充足的理由来信任消息的可靠来源,而发送者也无法否认这个签名,并且这个消息在传输过程中确保没有发生变动。

    数字签名的原理在于利用公钥加密技术,签名者将消息用私钥加密,然后公布公钥,验证者就使用这个公钥将加密信息解密并对比消息。一般而言,会使用消息的散列值来作为签名对象。

G. 密码算法中的椭圆曲线和参数是什么意思啊

下面那位说的是不对的,这里所说的椭圆曲线根本不是高中所学的曲线,可以给你一个关于椭圆曲线相关定义与应用的网址:http://www.pediy.com/kssd/pediy06/pediy6014.htm

而一条曲线在标准化了可以写为Ep(a,b)这里的p表示离散化的域的模,ab是曲线中的参数

另外还有G作为加密用的基点,点的阶

另外可能还会用到曲线的H参数。

H. 椭圆曲线密码学的一些具体的内容

⑴ 无穷远元素(无穷远点,无穷远直线)
平面上任意两相异直线的位置关系有相交和平行两种。引入无穷远点,是两种不同关系统一。
AB⊥L1, L2∥L1,直线AP由AB起绕A点依逆时针方向转动,P为AP与L1的交点。
Q=∠BAP→p /2 AP → L2
可设想L1上有一点P∞,它为L2和L1的交点,称之为无穷远点。
直线L1上的无穷远点只能有一个。
(因为过A点只能有一条平行于L1的直线L2,而两直线的交点只能有一个。)
结论:
1*. 平面上一组相互平行的直线,有公共的无穷远点。
(为与无穷远点相区别,把原来平面上的点叫做平常点)
2*.平面上任何相交的两直线L1,L2有不同的无穷远点。
原因:若否,则L1和L2有公共的无穷远点P∞,则过两相异点A和P ∞有相异两直线,与公理相矛盾。
3*. 全体无穷远点构成一条无穷远直线。
注:欧式平面添加上无穷远点和无穷远直线,自然构成射影平面。
⑵ 齐次坐标
解析几何中引入坐标系,用代数的方法研究欧氏空
间。这样的坐标法也可推广至摄影平面上,建立平面摄影
坐标系。
牋 L1,L2
L1: a1x+b1y+c1=0
L2: a2x+b2y+c2=0
其中a1,b1不同时为0;a2,b2也不同时为0。

D= a1 b1 Dx= b1 c1 Dy= c1 a1
a2 b2 b2 c2 c2 a2
若D≠0,则两直线L1,L2相交于一平常点P(x,y),其坐标为x=Dx/D,y=Dy/D.
这组解可表为:x/Dx=y/Dy=1/D
(约定:分母Dx,Dy有为0时,对应的分子也要为0)
上述表示可抽象为(Dx,Dy,D).
若 D=0,则L1∥L2,此时L1和L2交于一个无穷远点P∞。
这个点P∞可用过原点O且平行于L2的一条直线L来指出他
的方向,而这条直线L的方程就是:a2x+b2y=0.
为把平常点和无穷远点的坐标统一起来,把点的坐标用
(X,Y,Z)表示,X,Y,Z不能同时为0,且对平常点
(x,y)来说,有Z≠0,x=X/Z,y=Y/Z,于是有:
i.e.
X / Dx = Y / Dy = Z / D,
有更好的坐标抽象,X,Y,Z),这样对于无穷远点则有Z=0,
也成立。
注:
a).若实数p≠0,则(pX,pY,pZ)与(X,Y,Z)表示同一个点。实质上用(X:Y:Z)表示。3个分量中,只有两个是独立的,</pre>
<pre>;具有这种特征的坐标就叫齐次坐标。
b).设有欧氏直线L,它在平面直角坐标系Oxy上的方程为:
ax+by+c=0
则L上任一平常点(x,y)的齐次坐标为(X,Y,Z),Z≠0,代入得:
aX+bY+cZ=0
给L添加的无穷远点的坐标(X,Y,Z)应满足aX+bY=0,Z=0;平面上无穷远直线方程自然为:Z=0 !!
⑶任意域上的椭圆曲线
K为域,K上的摄影平面P2(K)是一些等价类的集合{(X:Y:Z)}。考虑下面的Weierstrass方程(次数为3的齐次方程):
Y2Z+a1XYZ+a3YZ2=X3+a2X2z+a4XZ2+a6Z3
(其中系数ai∈K,或ai∈K为K的代数闭域)
Weierstrass方程被称为光滑的或非奇异的是指对所有适合
以下方程的射影点P=(X:Y:Z) ∈ P2(K)来说,
F(X,Y,Z)=Y2Z+a1XYZ+a3YZ2-X3-a2X2Z-a4XZ2-a6Z3=0
在P点的三个偏导数 之中至少有一个不为
0若否称这个方程为奇异的。
椭圆曲线E的定义:
椭圆曲线E是一个光滑的Weierstrass方程在P2(K)中的
全部解集合。
Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3
注:
a) 在椭圆曲线E上恰有一个点,称之为无穷远点。即(0:1:0)用θ表示。
b) 可用非齐次坐标的形式来表示椭圆曲线的Weierstrass方程:
设 x=X/Z,y=Y/Z,于是原方程转化为:
y2+a1xy+a3y=x3+a2x2+a4x+a6 ⑴
此时,椭圆曲线E就是方程⑴在射影平面P2(K)上的全部平常点解,外加一个无穷远点θ组成的集合。
c) 若a1,a2,a2,a4,a6∈K,此时椭圆曲线E被称为定义在K上,用E/K表示。如果E能被限定在K上,那么E的K--</pre>
<pre>;有理点集合表示为E(K),它为E中的全体有理坐标点的集合外加无穷远点θ.
⑷实域R上的椭圆曲线
设K=R,此时的椭圆曲线可表为平面上的通常曲线上
的点,外加无穷远点θ。
实域R上椭圆曲线的点的加法运算法则:
设L ∈ P2(R)为一条直线。因为E的方程是三次的,所以L可与E在P2(R)恰有三个交点,记为P,Q,R
(注意:如果L与E相切,那么P,Q,R可以不是相异的)。按下述方式定义E上运算⊙:
设P,Q ∈ E,L为联接P,Q的直线(若P=Q,则L取过P点的切线);设R为L与E的另一个交点;
再取连接R与无穷远点的直线L′。则L′与E的另一个交点定义为P ⊙Q。
上页的实际图像为椭圆曲线y2=x3 - x的一般化。来自对具体曲线的抽象。对运算更具体一些:
设 P=(x1,y1),Q=(x2,y2),P⊙Q=(x3,y3),
由P Q的定义,设y=αx+β为通过P,Q两点直线L的方程,可算出:
α=(y2-y1)/(x2-x1),β=y1-αx1
易见,直线L上的一个点(x,αx+β)是在椭圆曲线E上,
当且仅当(αx+β)2= x3 - x。
P⊙Q=(x1,y1) (x2,y2)=(x3,y3) =(x3,-(αx3+β))
其中,x3= α2-x1-x2=((y2-y1) / (x2-x1))2-x1-x2;
y3=-y1+((y2-y1)/(x2-x1))(x1-x3)
当P=Q时:P⊙Q=(x3,y3)算得:
x3=((3x12-1)/2y1)2-2x1; y3= -y1+((3x12-1)/2y1)(x1-x3)
注:
a) 如果直线L与E相交与三点P,Q,R(不一定相异),那么 (P⊙Q)R=θ(从图中可见)。
b) 任给P∈E,P⊙θ =P (此时设Q= θ ,易见L=L′)
c) 任给P,Q∈E有:P⊙Q =Q⊙P
d) 设P∈E,那么可以找到 - P∈E使P -P= θ
e) 任给P,Q,R∈E,有(P⊙Q)⊙R= P⊙(Q⊙R)
综上所述,知E对 运算形成一个Abel群。
f) 上述规则可开拓到任意域上,特别是有限域上。假定
椭圆曲线是定义在有限域Fq上(q=pm),那么
E(Fq)={(x,y)∈Fq×Fq | y2+a1xy+a3y=x3+a2x2+a4x+a6} ∪{θ}
它对? 斝纬梢桓鋈海?狝bel群。 令Fq表示q个元素的有限域,用E(Fq)表示定义在Fq上
的一个椭圆曲线E。
定理1.(Hass定理) E(Fq)的点数用#E(Fq)表示,则
| #E(Fq)-q-1|≤2q1/2
⑴ Fp(素域,p为素数)上椭圆曲线
牋 p&gt;3 a,b Fp 4a3+27b2 0 a b
义的Fp上的一个椭圆曲线方程为:
y2=x3+ax+b ⑵
它的所有解(x,y),(x Fp,y Fp),连同一个称为撑耷钤?
点敚?俏?龋┑脑?刈槌傻募?霞俏狤(Fp),由Hass定理
知:p+1-2p1/2≤#E(Fp) ≤ p+1+2p1/2
集合E(Fp)对应下面的加法规则,且对加法 形成
一个Abel群:
(i) θ⊙ θ=θ (单位元素)
(ii) (x,y)⊙ θ=(x,y),任给(x,y) ∈E(Fp)
(iii) (x,y)⊙ (x,-y)=θ,任给(x,y) ∈E(Fp),即点(x,y)的逆元
为(x,-y).
(iv) 令(x1,y1),(x2,y2)为E(Fp)中非互逆元,则
(x1,y1)⊙ (x2,y2)=(x3,y3),其中
x3=α2-2x1,y3= α(x1-x3)-y1
且α=(y2-y1)/(x2-x1) ⑶
(v)(倍点运算规则)
设(x1,y1) ∈E(Fp),y1≠0,则2(x1,y1)=(x3,y3),其中
x3= α2-2x1,y3=α(x1-x3)-y1
这里α=(3x12+a)/(2y1) ⑷
注:若#E(Fp)=p+1,曲线E(Fp)称为超奇异的,否则称为
非超奇异的。
例子:F23上的一个椭圆曲线
令y2=x3+x+1是F23上的一个方程(a=b=1),则该椭圆曲
线方程在F23上的解为(y2=x3+x+1的点):
(0,1),(0,22),(1,7),(1,16),(3,10),(3,13),(4,0),(5,4),(5,19),(6,4),</pre>
<pre>;(6,19),(7,11),(7,12),(9,7),(9,16),(11,3),(11,20),(12,4),(12,19),(13,7),</pre>
<pre>;(13,16),(17,3),(17,20),(18,3),(18,20),(19,5),(19,18);θ。
群E(F23)有28个点(包括无穷远点θ)。
2) F2m上的椭圆曲线
F2m上由参数a,b∈F2m,b≠0定义的一个非超奇异椭
圆曲线E(F2m)是方程
y2+xy=x3+ax2+b ⑸
的解集合(x,y),其中x,y∈F2m,连同θ。
E(F2m)的加法规则如下:
(i) θ +θ= θ
(ii) 任给(x,y) ∈E(F2m),则(x,y)⊙ θ=(x,y)
(iii) 任给(x,y) ∈E(F2m),则(x,y)+(x,x+y)= θ,
即点(x,y)的逆为(x,x+y).
(iv) 两个相异且不互逆的点的加法规则:
令(x1,y1),(x2,y2) ∈E(F2m)且有x1≠x2则
(x1,y1) (x2,y2)=(x3,y3),其中
x3=α2+α+x1+x2+a;
y3=α(x1+x3)+x3+y1.
其中 α= (y2+y1)/(x2+x1)
(v) 倍点规则
令(x1,y1) ∈E(F2m),其中x1≠0。则
2(x1,y1)=(x3,y3),其中
x3= α 2+ α +a,y3=x12+(α +1)x3,这里α =(x1+y1/x1)
易见,群E(F2m)为Abel群。
例:F24上的一个椭圆曲线
f(x)=x4+x+1为F2上的一个不可约多项式,易见
F24=F2[x] / (f(x)) = {(k0,k1,k2,k3) | (k0,k1,k2,k3)=k0+k1α+k2α2+k3α3, </pre>
<pre>;α为f(x)的零点,ki∈F2}
假定F24上的非超奇异椭圆曲线有下述方程定义:
y2+xy=x3+α4x2+1,注意f(α)=0。
方程应表为:
(1000)y2 + (1000)xy = (1000)x3 + (1100)x2 +(1000) 1985年,N. Koblitz和V. Miller分别独立提出了椭圆曲线密码体制(ECC),</pre>
<pre>;其依据就是定义在椭圆曲线点群上的离散对数问题的难解性。
⑴知E(Fq)对点的?斣怂阈纬梢桓鲴bel群
设p∈E(Fq),若p的周期很大,即使
p⊙p⊙ …… ⊙p= θ (共有 t个p相加)
成立的最小正整数 t,希望 t 很大。
(t = p的周期,表示为∏(p)=t)。
并且对Q∈E(Fq),定有某个正整数m使
Q=m&middot;p=p⊙ …… ⊙p (共有t个p相加)
定义
m=㏒pQ (m为以p为底Q的对数)。
椭圆曲线上的点形成的群E(Fq),相关它的离散对数
问题是难处理的。 选取基域Fq,Fq的椭圆曲线具体给定为确定的形式。
在E(Fq)中选一个周期很大的点,如选了一个点P=(xp,yp),
它的周期为一个大的素数n,记∏ (P)=n(素数)。
注意:在这个密码体制中,具体的曲线及点P和它的n都
是公开信息。密码体制的形式采用EIGamal体制,是完全
类比过来。
a)密钥的生成
Bob(使用者)执行了下列计算:
i) 在区间[1,n-1]中随机选取一个整数d。
ii) 计算点Q:=dP (d个P相)
iii) Bob公开自己的公开密钥-- (E(Fq),p,n,Q)
iv) Bob的私钥为整数d!
Alice要发送消息m给Bob,Alice执行:
i) 查找Bob的公钥(E(Fq),p,n,Q),
ii) 将m表示成一个域元素m∈Fq,
iii) 在区间[1,n-1]内选取一个随机数k,
iv) 依据Bob的公钥计算点 (x1,y1):=kP(k个P相)
v) 计算点(x2,y2):=kQ,如果x2=0,则回到第iii)步
Ⅵ) 计算C:=m&middot;x2
Ⅶ) 传送加密数据(x1,y1,C)给Bob
b) Bob的解密过程
Bob收到Alice的密文(x1,y1,C)后,执行
i) 使用私钥d,计算点(x2,y2):=d(x1,y1),再计算Fq中x2-1=
通过计算m:=C&middot;x2-1,恢复出明文数据

I. 椭圆加密算法的方程

椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:
y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
所确定的平面曲线。其中系数ai(I=1,2,…,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。
椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式
mP=P+P+…+P=Q (2)
中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这个困难问题设计而来。椭圆曲线应用到密码学上最早是由Neal Koblitz 和Victor Miller在1985年分别独立提出的。
椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利用的是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。
德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司实现了椭圆曲线密码体制,我国也有一些密码学者
做了这方面的工作。许多标准化组织已经或正在制定关于椭圆曲线的标准,同时也有许多的厂商已经或正在开发基于椭圆曲线的产品。对于椭圆曲线密码的研究也是方兴未艾,从ASIACRYPTO’98上专门开辟了ECC的栏目可见一斑。
在椭圆曲线密码体制的标准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它们所开发的椭圆曲线标准的文档有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。
2003年5月12日中国颁布的无线局域网国家标准 GB15629.11 中,包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全机制,能为用户的WLAN系统提供全面的安全保护。这种安全机制由 WAI和WPI两部分组成,分别实现对用户身份的鉴别和对传输的数据加密。WAI采用公开密钥密码体制,利用证书来对WLAN系统中的用户和AP进行认证。证书里面包含有证书颁发者(ASU)的公钥和签名以及证书持有者的公钥和签名,这里的签名采用的就是椭圆曲线ECC算法。
加拿大Certicom公司是国际上最着名的ECC密码技术公司,已授权300多家企业使用ECC密码技术,包括Cisco 系统有限公司、摩托罗拉、Palm等企业。Microsoft将Certicom公司的VPN嵌入微软视窗移动2003系统中。
以下资料摘自:http://www.hids.com.cn/data.asp