椭圆曲线密码 ECC代码分析
一、算法简介
1985年,Neal Koblitz和V. S. Miller提出了基于椭圆曲线群上离散代数问题的公钥密码体制——椭圆曲线密码体制 (ECC,Elliptic Curve Cryptography)。ECC与RSA相比具有密钥更短、安全性更高的特点。通常认为163位的ECC密钥长度能够提供相当于1024位RSA密钥长度的安全性,571位的ECC密钥长度能够提供相当于15360位RSA密钥长度的安全性。ECC是目前所有公钥密码系统中单位密钥安全性最高的密码系统。这方面的优势使得ECC比起传统的密码系统更实用,能广泛用于存储量、计算量和通信带宽受限的环境。椭圆曲线密码系统的基域包括素域GF(p)和二进制域GF(2n)。一般来说,在硬件实现上GF(2n)椭圆曲线密码系统占用系统资源更少,效率更高。最近几年在有限域GF(2n)上对椭圆曲线的研究较多。
二、算法原理和过程
2.1 算法原理
椭圆曲线与椭圆相差甚远,其得名的原因是其数学表示与椭圆周长的数学表示类似。公式1是椭圆曲线的完全表示,称为Weierstrass方程 。我们在加密系统中使用的椭圆曲线都是这个方程的简化体。
y2+a1xy+a3y=x3+a2x2+a4x+a6 (公式1)
椭圆曲线加密算法须在一个有限域中进行,其用于表示信息的媒介就是有限域中满足该椭圆曲线方程的整数坐标点。素数域GF(p)即为一个符合要求的有限域。在GF(p)中,p为素数,它是该有限域的边界,该有限域的元素集合中只有p个整数元素,分别是{0,1,2,3,...,p-1}。所以,在素数域中的坐