文档库 最新最全的文档下载
当前位置:文档库 › 椭圆曲线密码ECC

椭圆曲线密码ECC

椭圆曲线密码ECC
椭圆曲线密码ECC

旺旺:旺我旺:能我过能软过软考考

主要内容
? ??公钥密码使用的几个单向性很好的函数 ? ??ElGamal密码回顾 ? ??椭圆曲线概述 ? ??椭圆曲线及解点 ? ??椭圆曲线的几何意义 ? ??椭圆曲线的解点等计算 ? ??椭圆曲线密码体制 ? ??利用椭圆曲线密码加解密实例
旺旺:我能过软考

公钥密码使用的几个单向性很好的函数
版权所有:我能过软考
1)大合数的因子分解问题: 大素数的乘积容易计算,如(p*q=n),而大合数 的因子分解困难(n推出p和q) 代表:RSA密码
2)有限域上的离散对数问题: 有限域上大素数的幂乘容易计算(ab
对数计算困难(logac b) 乘法群: ElGamal密码
加法群:ECC密码
c),而
3 旺旺:我能过软考

ElGamal密码回顾
版权所有:我能过软考
ElGamal密码是建立在有限域GF(p)之上,其中p是一个大素数, 选取有限域GF(p)的一个本原元α ,并将GF(p)和α公开。
注意:p是大素数,且p-1有大素数因子。
1、密钥生成 用户随机选取一个整数d: 1≤d ≤p-2,并计算出 y= αd mod p
将y作为公开的加密密钥,将d作为保密的解密密钥。
由公钥y求出私钥d,必须求解离散对数,非常困难
4 旺旺:我能过软考

椭圆曲线概述
版权所有:我能过软考
? 受ELGamall密码启发,在其它离散对数问题难解的群中,同样可以构成ELGamal 密码
? 有限域GF(p)上的椭圆曲线的解点构成交换群,而且离散对数问题是难解的,于是 可在此群上建立ELGamal密码,并称为椭圆曲线密码
? 它密钥短、签名短、软件实现规模小、硬件实现电路省电。
? 应用:基于智能卡的多种应用,如电子商务中的数字签名与认证,移动通讯中的安 全保密等方面
? 普遍认为160位长的椭圆曲线密码的安全性相当于1024位的RSA密码,而且运算速 度也较快。
6 旺旺:我能过软考

椭圆曲线公钥密码与其他密码算法的对比
对称算法的密 钥长度
56
破解所需时间 (MIPS年)
104
RSA密钥 大小
512
64
108
768
版权所有:我能过软考
ECC的密钥 106 132
RSA/ECC 密钥大小之比 5:1
6:1
80
1012
1024
160
7:1
112
1020
2048
210
10:1
MIPS年:表示每秒钟执行一百万条指令的计算机计算一年的时间
7 旺旺:我能过软考

椭圆曲线及解点
版权所有:我能过软考
设p是大于3的素数, 且4a3+27b2≠0 mod p , 称y2=x3+ax+b ,a,b∈GF(p)为GF(p)上的椭圆曲线。
由椭圆曲线可得到一个同余方程 y2=x3+ax+b mod p 其解为一个二元组,x,y∈GF(p) ,在椭圆曲线上是一个点, 又称其为解点。
8 旺旺:我能过软考

椭圆曲线的几何意义
版权所有:我能过软考
作集合E={全体解点,无穷点O }。可以验证如上定义的集合E和加法运算 构成加法交换群。该群定义了一种运算,可以是加、减、乘、除等
椭圆曲线解点加法运算的几何意义:
9 旺旺:我能过软考

椭圆曲线--O元素与逆元
版权所有:我能过软考
为了利用解点构成交换群,需要引进一个需要0元素,并定义如下的加法运算 ①定义单位元
引进一个无穷点O(∞,∞),简记为O ,作为0元素。 O(∞,∞)+ O (∞,∞) =0+0=0, 并定义对于所有的解点P(x,y), P(x,y)+O=O+ P(x,y)= P(x,y)
②定义逆元素 设P(x1,y1)和Q(x2,y2)是解点,如果x1=x2且y1=-y2,则P(x1,y1)+Q(x2,y2)=0 。这说 明任何解点R(x,y)的逆就是R(x,-y)。
注意:规定无穷远点的逆就是其自己。
10 旺旺:我能过软考

椭圆曲线的加法规则
定义加法 设P(x1,y1)≠Q(x2,y2),且P和Q互逆,则 P(x1,y1)+Q(x2,y2)=R(x3,y3)。
其中
x3= λ2- x1-x2 , y3= λ(x1–x3)- y1, λ =(y2-y1)/(x2- x1)
当P (x1,y1)= Q(x2,y2)时, P(x1,y1)+Q(x2,y2)=2 P(x1,y1)=R(x3,y3)。其中
x3= λ2- 2x1 y3=λ(x1–x3) - y1, λ=(3x12+ a)/(2 y1)
版权所有:我能过软考
11 旺旺:我能过软考

椭圆曲线密码解点计算
版权所有:我能过软考
如:取p=11,椭圆曲线y2=x3+x+6 。由于p较小,使GF(p) 也较小,因此可以利用穷 举的方法。根据y2=x3+x+6 mod 11求出所有解点。
解点集合为: (2,4), (2, 7), (3,5), (3,6), (5,2), (5,9), (7,2), (7,9), (8,3), (8,8), (10,2), (10,9)
加上无穷远点O,则由13个点构成 一个加法交换群,并且是循环群。
12 旺旺:我能过软考

椭圆曲线公钥密码体制
版权所有:我能过软考
1、安全性基础 设P和Q是椭圆曲线上的两个解点,t为一正整数,且1≤t的P和t,计算tP=Q是容易的。但若已知P和Q点,要计算出t则是极困难的。这便是椭 圆曲线群上的离散对数问题。简记为ECDLP。
在这个循环子群E1中建立任何基于离散对数困难性的密码,并称这个密码为椭圆曲线 密码。
13 旺旺:我能过软考

椭圆曲线公钥密码体制
版权所有:我能过软考
2、椭圆曲线公钥密码算法 1)基础参数:
定义:设P ∈E(F),n=min{k| k>0,kP=O}, 称n为点P的阶,记为 n=ord(p)
T=
? p为大于3素数,p确定了有限域GF(p);
? 元素a,b∈GF(p),a和b确定了椭圆曲线:
? G为循环子群E1的的生成元点,
? n为素数且为生成元G的阶,G和n确定了循环子群E1;
? h=|E|/n,并称为余因子,h将交换群E和循环子群联系起来。
密钥:
用户的私钥定义为一个随机数的,d∈ {1,2,······,n-1},
用户的公钥定义为Q点,
Q=dG 。 同时,将Q公开,存入PKDB。 私钥是d ,保密 。
设要加密的明文数据为M,将M划分为一些较小的数据块,M=[m1,m2,···,mt] 其中: 0≤mi14 旺旺:我能过软考

加密与解密过程
版权所有:我能过软考
加密过程: A把M加密发给B
1) A查询PKDB,查到B的公钥QB 。 2) A选择一个随机数k,且k∈{1,2,······,n-1}。
3) A计算点X1 :(x1,y1)=kG 。 4) A计算点X2:(x2,y2)=kQB,如果分量x2=0,则转2)。 5) A计算密文 C =mi x2 mod n 。 6) A发送加密数据(X1,C)给B。 解密过程:
用户B用自己的私钥dB求出点X2; 1)dBX1= dB(kG) = k(dBG) = kQB= X2 :( x2 ,y2) 2)求出分量x2 mod n的逆x2?1 3) 对C解密,得到明文mi=C x2?1 mod n 。
15
旺旺:我能过软考

椭圆曲线加密与解密示例
版权所有:我能过软考
椭圆曲线E29(4,20) y2=x3+4x+20 mod 29 , 公开描述参数: T=(p=29,a=4,b=20,G=(13,23),n=37,h=1)。 生成元G=(13,23)
因为素数 p=29 比较小,可以穷举计算出来它有29个解点。 1)设Alice的私钥为12,则公钥QA =12G=(14,23) ,
Bob的私钥为19,则公钥QB=19G=(6,12)。
可利用倍点计算得出。 先计算2G,再计算4G、8G,再计算12G=8G+4G 19G=12G+4G+2G+G
16 旺旺:我能过软考

版权所有:我能过软考
2)Alice开始加密。 a,b,c....z,依次编码成00,01,02,…25,空格为26, 则i love you 的编码为: M=08261114210426241420 ,
Alice先随意取一个数字,比如29,这个数字保密,只有她自己知道。 然后计算出点X1,29G=(17,10)=(x1,y1), 再用29乘以Bob的公钥(6,12),得到29(6,12)=(20,26)=(x2,y2),即点X2。
然后分段加密,因为这里37是个比较小的数,只能每个字母分为一段, 加密公式: c=m*x2 mod 37 , i08加密成12,空格26加密成02,l11加密成35,依次下去,就得到密文: C=12023521130602362130 Alice把( x1,y1 , C )发给Bob(17,10,12023521130602362130)
17 旺旺:我能过软考

版权所有:我能过软考
3)Bob开始解密 Bob接收到Alice发过来的密文:(17,10,12023521130602362130) Bob自己的私钥dB=19,用19乘以(x1,y1), 计算19(17,10)=(20,26)=(x2,y2) 解密公式:M=C/x2 mod 37 =C/20 mod 37, 20-1 Mod 37 逆元为13, 解密公式可转化为:M=C*13 mod 37 密文: 第一段12解码为12*13 mod 37 =08, 第二段02解码2*13 mod 37 =26, 依次计算可得到明文 M=08261114210426241420 解密结果为: i love you
18 旺旺:我能过软考

谢谢!
我能过软考 523124613
旺旺:我能过软考

椭圆曲线密码总结大全

椭圆曲线密码 概述: 椭圆曲线密码学(ECC, Elliptic curve cryptography )是基于椭圆曲线数学的一种公钥密码的方法。1985年,Neal Koblitz 和Victor Miller 分别独立提出了椭圆曲线密码体制(ECC),其依据就是定义在椭圆曲线点群上的离散对数问题的难解性。 引言: ECC 被广泛认为是在给定密钥长度的情况下,最强大的非对称算法,因此在对带宽要求十分紧的连接中会十分有用。 ECC 的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA ——提供相当的或更高等级的安全。ECC 的另一个优势是可以定义群之间的双线性映射,基于Weil 对或是Tate 对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。不过一个缺点是加密和解密操作的实现比其他机制花费的时间长。 国家标准与技术局和ANSI X9已经设定了最小密钥长度的要求,RSA 和DSA 是1024位,ECC 是160位,相应的对称分组密码的密钥长度是80位。NIST 已经公布了一列推荐的椭圆曲线用来保护5个不同的对称密钥大小(80, 112, 128, 192, 256)。一般而言,二进制域上的ECC 需要的非对称密钥的大小是相应的对称密钥大小的两倍。 椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决椭圆曲线离散对数问题的困难性上,对应有限域上椭圆曲线的群。 引理及有关概念: (1) 无穷远元素(无穷远点,无穷远直线)平面上任意两相异直线的位置关系 有相交和平行两种。引入无穷远点,是两种不同关系统一。AB ⊥L1, L2∥L1,直线AP 由AB 起绕A 点依逆时针方向转动,P 为AP 与L1的交点,如图1。Q=∠BAP →π /2则AP → L2,可设想L1上有一点P ∞,它为L2和L1的交点,称之为无穷远点。直线L1上的无穷远点只能有一个(因为过A 点只能有一条平行于L1的直线L2,而两直线的交点只能有一个)。 图1 结论: 1. 平面上一组相互平行的直线,有公共的无穷远点(为与无穷远点相区别,把

椭圆曲线加密算法

椭圆曲线加密算法 椭圆曲线密码学(英语:Elliptic curve cryptography,缩写为 ECC),一种建立公开密钥加密的算法,基于椭圆曲线数学。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。 ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥——比如RSA 加密算法——提供相当的或更高等级的安全。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。不过一个缺点是加密和解密操作的实现比其他机制花费的时间长 1.椭圆曲线 在数学上,椭圆曲线(英语:Elliptic curve,缩写为EC)为一代数曲线,被下列式子所定义 y2=x3+ax+b 其是无奇点的;亦即,其图形没有尖点或自相交。 满足此条件的a b满足:4a3+27b2≠0 图1 在基础上需要定义一个无穷远的点,将此点作为零点:此时椭圆曲线定义为:{(x,y)∈?2|y2=x3+ax+b,4a3+27b2≠0}∪{0} 在椭圆曲线中的群的运算律: 1. 所有的点都在椭圆曲线上 2. 0点作为群上的单元点即 P+0=P 3. P点关于X轴的对称点为P点的逆即 P+(?P)=0

4.对于位于同一条直线上的三个点P,Q,R.则有 P+Q+R=0 图2 P+Q+R=0(无限远点 P Q R三个点的位置是任意的,他们满足加法的结合律,因为这个群是一个阿贝尔群。 2.椭圆曲线加法 当P和Q不相等时(x P≠x Q) 由于是在阿贝尔群上可以将P+Q+R=0改写为P+Q=?R所以在椭圆曲线上的加法定义为P Q 两点加法为P,Q两点连线与曲线的交点R的关于X轴对称点?R 图2-3 P+Q=-R P Q两点的直线的斜率为: m=y P?y Q x P?x Q 这条线与曲线的交点为:R=(x R,y R) x R=m2?x P?x Q y R=y P+m(x R?x P) 因此(x P,y P)+(x Q,y Q)=(x R,?y R)如果在图上表示即为上述的P+Q=?R

椭圆曲线密码的C语言设计与实现

计算机研究生开放研究 《椭圆曲线密码的C语言设计与实现》 美国GeneChiu基金资助 基于TOM算法库的ECC加密算法的C语言设计与实现 研究生徐立均 内容: 一、源代码下载 二、ECC算法的设计思想 三、椭圆曲线参数的选取和基点的确定 四、椭圆曲线的点加和纯量乘法 五、加密文件的读入与输出 六、密文的存取和读入 七、ECC加密的实现

八、ECC解密的实现 九、测试结果及分析 一、源代码下载 本文使用了TOM算法库实现了椭圆曲线公钥密码体制,能对各类不同的磁盘文件进行加密和解密。 1 请下载可执行程序MY_ECC.exe,此程序无需任何额外的LIB或DLL,可在Windows下独立运行,运行情况如下:

2 请下载源代码source.rar: 编译此源代码需要使用TOM的高精度算法库 MathLib.lib 和相关的头文件 tommath.h tommath_class.h tommath_superclass.h 一并打包在source.rar中,请下载

3 对于TOM的高精度算法库的详细说明,请看本站C语言: 二、 ECC算法的设计思想 根据椭圆曲线进行加密通信的过程,首先选定一个适合加密的椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。选择一个私有密钥k,并生成公开密钥K=kG。加密时,将明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r < n)。计算点C1=M+rK;C2=rG。将C1、C2存入密文。解密时,从密文中读出C1、C2,计算C1-kC2,根据:C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M, 解得的结果就是点M,即明文。 三、椭圆曲线参数的选取和基点的确定 并不是所有的椭圆曲线都适合加密,y^2=x^3+ax+b是一类可以用来加密的椭圆曲线,也是最为简单的一类。下面我们就选用 y^2=x^3+ax+b作为我们的加密曲线。这条曲线定义在Fp上:两个满足下列条件的小于p(p为素数)的非负整数a、b:4a3+27b2≠0 (mod p) 则满足下列方程的所有点(x,y),再加上无穷远点∞ ,构成一条椭圆曲线。y^2=x^3+ax+b(mod p) 其中 x,y属于0到p-1间的整数,并将这条椭圆曲线记为Ep(a,b)。

椭圆曲线密码ECC

旺旺:旺我旺:能我过能软过软考考

主要内容
? ??公钥密码使用的几个单向性很好的函数 ? ??ElGamal密码回顾 ? ??椭圆曲线概述 ? ??椭圆曲线及解点 ? ??椭圆曲线的几何意义 ? ??椭圆曲线的解点等计算 ? ??椭圆曲线密码体制 ? ??利用椭圆曲线密码加解密实例
旺旺:我能过软考

公钥密码使用的几个单向性很好的函数
版权所有:我能过软考
1)大合数的因子分解问题: 大素数的乘积容易计算,如(p*q=n),而大合数 的因子分解困难(n推出p和q) 代表:RSA密码
2)有限域上的离散对数问题: 有限域上大素数的幂乘容易计算(ab
对数计算困难(logac b) 乘法群: ElGamal密码
加法群:ECC密码
c),而
3 旺旺:我能过软考

ElGamal密码回顾
版权所有:我能过软考
ElGamal密码是建立在有限域GF(p)之上,其中p是一个大素数, 选取有限域GF(p)的一个本原元α ,并将GF(p)和α公开。
注意:p是大素数,且p-1有大素数因子。
1、密钥生成 用户随机选取一个整数d: 1≤d ≤p-2,并计算出 y= αd mod p
将y作为公开的加密密钥,将d作为保密的解密密钥。
由公钥y求出私钥d,必须求解离散对数,非常困难
4 旺旺:我能过软考

椭圆曲线概述
版权所有:我能过软考
? 受ELGamall密码启发,在其它离散对数问题难解的群中,同样可以构成ELGamal 密码
? 有限域GF(p)上的椭圆曲线的解点构成交换群,而且离散对数问题是难解的,于是 可在此群上建立ELGamal密码,并称为椭圆曲线密码
? 它密钥短、签名短、软件实现规模小、硬件实现电路省电。
? 应用:基于智能卡的多种应用,如电子商务中的数字签名与认证,移动通讯中的安 全保密等方面
? 普遍认为160位长的椭圆曲线密码的安全性相当于1024位的RSA密码,而且运算速 度也较快。
6 旺旺:我能过软考

椭圆曲线上的信息论安全的可验证秘密共享方案

2011年12月Journal on Communications December 2011 第32卷第12期通信学报V ol.32No.12椭圆曲线上的信息论安全的可验证秘密共享方案 田有亮1,3,马建峰2,彭长根3,陈曦1 (1. 西安电子科技大学通信工程学院,陕西西安 710071; 2. 西安电子科技大学计算机学院,陕西西安 710071; 3. 贵州大学理学院,贵州贵阳 550025) 摘要:基于椭圆曲线上的双线性对技术,构造一种可验证秘密共享方案。该方案的信息率为2/3,与Pederson 的方案(Crypto91)及相关方案相比,本方案在相同的安全级别下有较高的信息率,从而提高了秘密共享协议的效率。同时,理论上证明该方案是信息论安全的。最后,将上述方案推广到无可信中心的情况,设计了无可信中心的秘密共享方案。经分析表明,所提方案具有更高的安全性和有效性,能更好地满足应用需求。 关键词:秘密共享;可验证的秘密共享;椭圆曲线离散对数;双线性对;BDH假设 中图分类号:TP309 文献标识码:B 文章编号:1000-436X(2011)12-0096-07 Information-theoretic secure verifiable secret sharing scheme on elliptic curve group TIAN You-liang1,3, MA Jian-feng 2, PENG Chang-gen3, CHEN Xi1 (1. School of Telecommunications Engineering, Xidian University, Xi’an 710071, China; 2. School of Computer Science and Technology, Xidian University, Xi’an 710071, China; 3. College of Science, Guizhou University, Guiyang 550025, China) Abstract: Based on the bilinear pair on elliptic curves, a verifiable secret sharing (VSS) and distributed verifiable secret sharing were constructed. The information rate of the scheme is 2/3. Compared with Pederson’s scheme (Crypto91) and the related schemes, the scheme is more efficient under the same security level. At the same time, the security of the scheme was proved theoretically. The result reveals that the scheme is information-theoretic security. Finally, the VSS has been extensions to the case without a dealer (or without a trusted center). A distributive verifiable secret sharing based on bilinear pair was proposed. Analysis shows that these schemes are more secure and effective than others, and it can be more applicable in special situation. Key words: secret sharing; verifiable secret sharing; elliptic curves discrete logarithm; bilinear pairing; Diffie-Hellman assumption 1引言 在密码体制中,可以将关键控制和权利分发给团体中的成员进行管理,以分散加/解密、签名和验证权利。1979年,Shamir[1]和Blakley[2]分别基于Lagrange插值多项式和射影几何理论提出门限秘密共享方案,就是为了解决此类问题。Stadler[3]提出在线秘密共享机制,引入公告牌(NB)发布一些辅 收稿日期:2010-06-30;修回日期:2010-12-14 基金项目:国家科技部重大专项基金资助项目(2011ZX03005-002);国家自然科学基金资助项目(60872041, 61072066, 60963023, 60970143, 61100230, 61100233);中央高校基本科研业务费基金资助项目(JY10000903001, JY10000901034)Foundation Items: The Major National Science and Technology Program (2011ZX03005-002); The National Natural Science Foun-dation of China (60872041, 61072066, 60963023, 60970143, 61100230, 61100233); The Fundamental Research Funds for the Cen-tral Universities (JY10000903001, JY10000901034)

第10章椭圆曲线密码学

10.3椭圆曲线算术 椭圆曲线理论是一个古老而深奥的数学分支,已有100多年的历史,一直作为一门纯理论学科被少数数学家掌握。它被广大科技工作者了解要归功于20世纪80年代的两件重要的工作。第一,Weil应用椭圆曲线理论证明了著名的费尔玛大定理。第二,Neal Koblitz和https://www.wendangku.net/doc/791360109.html,ler把椭圆曲线群引入公钥密码理论中,提出了基于椭圆曲线的公钥密码体制ECC(Elliptic Curves Cryptosystem),取得了公钥密码理论和应用的突破性进展。 20世纪90年代,最通用的公钥密码体制是RSA公钥密码体制和DH公钥密码交换算法。其密钥长度一般为512比特。1999年8月22日RSA-512被攻破,所以,这些公钥不得不被加长。为了达到对称密钥128比特的安全水平,NIST推荐使用3072比特的RSA密钥。显然这种密钥长度的增长,对本来计算速度缓慢的RSA来说,无疑是雪上加霜。ECC的提出改变了这种状况,实现了密钥效率的重大突破。大有以强大的短密钥优势取代RSA成为新一代公钥标准(事实标准)之势。 ECC的安全性和优势得到了业界的认可和广泛的应用:

(1)1998年ECDSA(椭圆曲线数字签名算法)被确定为ISO/IEC数学签名标准ISO14888-3; (2)1999年2月ECDSA被ANSI确定为数字签名标准ANSI X9.62-1998,ECDH(椭圆曲线 Diffie-Hellman)被确定为ANSI X9.63; (3)2000年2月ECDSA被确定为IEEE标准IEEE1363-2000,同期,NIST确定其为联邦数 字签名标准FIPS186-2。 1.椭圆曲线 椭圆曲线并非椭圆,之所以称为椭圆曲线是因为它的曲线方程与计算椭圆周长的方程类似,一般来计,椭圆曲线的曲线方程是以下形式的三次方程:y2+axy+by=x3+cx2+dx+e (1) 其中a,b,c,d,e是满足某些简单条件的实数。其中包括称为无穷远点的元素。 密码中普遍采用的是有限域上的椭圆曲线,有限域上的椭圆曲线是指曲线方程定义式(1)中,所有系数都是某一有限域GF(p)中的元素(其中p为一大素数)。其中最为常用的是由方程 y2≡x3+ax+b (mod p) 定义的曲线。(a,b∈GF(p), 4a2+27b3≠0 mod p) 椭圆曲线上的加法运算定义如下:

椭圆曲线公钥在网络安全密码体系中的应用

龙源期刊网 https://www.wendangku.net/doc/791360109.html, 椭圆曲线公钥在网络安全密码体系中的应用作者:高建明 来源:《计算机时代》2013年第08期 摘要:移动设备和无线设备的大量使用需要一种新的公钥密码方案,来适应这些设备在计算能力和带宽方面的限制,同时要满足安全性级别的要求。椭圆曲线密码体制作为一种新兴的加密及身份认证技术,以其自身的多项特点,已从学术理论研究阶段逐步走向实际应用阶段,成为目前最有前途的一种公钥密码体系,极有可能成为现存公钥密码体系RSA的替代者。椭圆曲线密码算法具有高安全性、低消耗、运算速度快的特点,具有良好的应用前景。文章对椭圆曲线方程、算法的原理、加密算法、安全性进行了分析,实现了椭圆曲线公钥在网络Diffie-Hellman密钥交换中的应用。 关键词:椭圆曲线;密码学;编码;密钥;安全性 中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2013)08-25-03 0 引言 目前,大多数使用公钥密码学进行加密和数字签名的产品和标准都使用RSA算法。为了保证RSA在使用中的安全性,最近这些年来密钥设置的位数一直在增加,这对使用RSA的应用是一个很重的负担,近年来,出现了一种具有较强竞争力的椭圆曲线密码学(ECC),它对RSA提出了挑战[1]。ECC突出的优点是可以使用比RSA短得多的密钥,但却能得到相同的安全性,因此在应用上可以大大减少运行负荷。 1 椭圆曲线方程概述 1.1 椭圆曲线方程 一般地说,椭圆曲线是由方程y2+dxy+ey=x3+ax2+bx+c定义的曲线,其中定义a,b,c,d,e为系数,从数学上讲,椭圆曲线的形状并非椭圆,之所以被称为椭圆曲线,是因为该方 程右边的多项式x3+ax2+bx+c与椭圆曲线的积分有关。 现分析以下椭圆曲线类方程: 令K(b,c)为式⑴的椭圆曲线上所有(x,y)的不同点组成的集合。 这类椭圆曲线的特征是曲线上的点具有加法性质,一般可用于构造交换群,交换群(M,+)满足以下5个性质的代数结构,其中M为集合,集合上元素的加法运算用符号“+”表示。 ⑴对任意x,y∈M,x+y∈M,则满足集合上的封闭性。

椭圆曲线密码(ECC)加解密算法的实现

毕业论文 论文题目椭圆曲线密码(ECC)加解密算法的实现学生姓名 学号 院别数学与信息科学学院 专业信息与计算科学 班级 指导教师 完成时间2011 年04 月

椭圆曲线密码(ECC )加解密算法的实现 摘 要 本文首先介绍椭圆曲线密码体制(ECC);并简明地给出了椭圆曲线的定义;接 着以ElGamal 公钥体制的ECC 加解密的实现为例具体说明了其实现流程;最后分析了实 现结果,安全性能和概述了ECC 的发展现状,并对其未来的发展作了展望. 关键词 椭圆曲线密码;公钥密码,数字签名 1引言 随着政府部门和行业对网络环境和网络资源依赖程度的增强,涉及国家安全和社会公共安全的所有重大问题都在网络上表现出来. 为了确保信息的保密性,完整性,可用性,可控性,避免国家或个人的信息受到非法获取,破坏,篡改等形式的威胁,人们便提出了用密码技术来保障以电子形式保存或传送的数据. 1985年,N. Koblitz 和V . Miller 分别独立提出了椭圆曲线密码体制 (ECC),这是一种高安全性,高效率的公钥密码体系,它在密钥强度,加解密的处理速度和存储开销上都有着明显的优势. 采用椭圆曲线密码技术使密钥协商协议可充分利用椭圆曲线密码的优势,在更小密钥量下提供了更大的安全性,所需带宽明显减少,而且还大大降低了用户端的计算负担和存储要求. 2椭圆曲线密码体制 2.1密码体制的含义 密码体制分为对称密码体制和非对称密码体制.非对称密码体制是指在加密过程中,密钥被分为一对.这对密钥中的任何一个密钥都可以作为公开密钥通过非保密方式向他人公开, 而另一把作为私有密钥加以保存. 这对密钥具有这样一个特点: 当知道密钥对中的一个密钥时, 要检测出另一个密钥, 在计算上是不可能的. 公开密钥用来对信息进行加密, 则私有密钥用来对信息进行解密, 反之亦然. 在这个系统中, 每个通信实体都有一个加密密钥和一个紧密相关的解密密钥.通信的双方只要知道对方的公钥,就可以进行安全的通信. 2.2 椭圆曲线密码体制 椭圆曲线密码体制,即基于椭圆曲线离散对数问题的各种公钥密码体制. 最早由Miller 和Koblitz [1] 于1985年分别独立地提出. 它是利用有限域上椭圆曲线的有限点群代替基于离散对数问题密码体制中的有限循环群所得到的一类密码体制. 对于椭圆曲线密码系统(ECC )的安全性,其数学基础是计算椭圆曲线离散对数问题(ECDLP )的难解性[2] . 一般来说,ECC 没有亚指数攻击,所以它的密钥长度大大地减少,256bit 的ECC 密码体制成为目前已知公钥密码体制中每位提供加密强度最高的一种体制. 3.椭圆曲线的定义 所谓椭圆曲线指的是由韦尔斯特拉斯 (Weierstrass)方程: 23213246y a xy a y x a x a x a ++=+++ 所确定的平面曲线[1].

椭圆曲线加密算法代码

椭圆曲线加密算法代码及解析

在椭圆曲线加密中,利用了某种特殊形式的椭圆曲线,即定义在有限域上的椭圆曲线。其方程如下: y2=x3+ax+b(mod p) 这里p是素数,a和b为两个小于p的非负整数,它们满足: 4a3+27b2(mod p)≠0 其中,x,y,a,b ∈Fp,则满足式(2)的点(x,y)和一个无穷点O就组成了椭圆曲线E。 椭圆曲线离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对 Q=kP,在已知P,Q的情况下求出小于p的正整数k。 现在我们描述一个利用椭圆曲线进行加密通信的过程: 1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。 2、用户A选择一个私有密钥k,并生成公开密钥K=kG。 3、用户A将Ep(a,b)和点K,G传给用户B。 4、用户B接到信息后,将待传输的明文编码到Ep(a,b)上一点M(将M转化为十进制整数m,然后令椭圆曲线中点的横坐标为m,根据曲线方程计算出纵坐标,便得到了一个点。),并产生一个随机整数r(r using namespace std; //求两数的最小公倍数 int f1(int a, int b) { int c=a; while( c%a!=0 || c%b!=0) c++;

椭圆曲线加密算法

ECC算法的应用 1 数据加密/解密 ECC(Elliptic Curves Cryptography)加密算法是一种公钥加密算法,与主流的RSA算法相比,ECC算法可以使用较短的密钥达到相同的安全程度。ECC 加密算法允许用户选择具有唯一性的身份标识(如Email地址或网络帐号)作为公钥,并通过可信的中央服务器接受到自己的私钥,在安全通信过程不采用数字证书的概念,而直接将安全方案与加密或验证方法联系起来。

图1 加解密过程 ECC加密算法的计算量小并且处理速度快。在一定的相同的计算资源条件下,虽然在RSA中可以通过选取较小的公钥(可以小到3)的方法提高公钥处理速度,即提高加密和签名验证的速度,使其在加密和签名验证速度上与ECC有可比性,但在私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多。同时ECC系统的密钥生成速度比RSA快百倍以上,以163位的ECC加密算法与1024位的RSA加密算法比较,ECC加密算法的签名时间为3.0ms,密钥对生成时间为3.8ms,但RSA加密算法却分别高达228.4ms和4708.3ms,因此在相同条件下,ECC加密算法则有更高的加密性能。 2数字签名 由于ECC加密算法是建立在公钥加密体系基础上的,所以它不但可以应用于通信加密,而且还可以应用于数字签名领域。 ECC加密算法的带宽要求低,当对长消息进行加解密时,两类密码系统有相同的带宽要求,但应用于短消息时ECC加密算法带宽要求却低得多,而数字签名正是基于短消息的通讯传输,因此基于ECC加密算法的数字签名系统带宽要求比RSA低很多,易于在各种网络环境下推广应用。 3ECC在银行系统中的应用 ECC在我国的产业化正处于起步阶段,我国的商用密码管理政策规定商用核心密码算法和技术必须采用国内自主研究的成果而不得采用国外的,我国应当开发和应用属于自己的商用ECC技术和产品。 ECC加密算法在银行系统可应用于数据加密传输及身份认证。

相关文档