公钥密码算法的基础是解决特定数学难题的棘手性,rsa公钥算法是基于大素数分解问题,假定的是分解一个由两个或多个大素数相乘的积是不可能的;而ecc密码系统则是基于椭圆曲线离散对数问题,即求解椭圆曲线上任意一点相对于生成点的离散对数是不可能的。椭圆曲线密码系统可以在密钥更短的情况下达到与rsa相同的安全级别,从而节省密钥存储空间和传输带宽,对比如下表所示:
椭圆曲线采用如下函数定义:
椭圆曲线公钥算法则限制在素数域上的离散点上,并定义了一系列运算。
对椭圆曲线来说最流行的有限域是以素数为模的整数域(参见模运算) GF(p),或是特征为2的伽罗瓦域 GF(2m)。后者在专门的硬件实现上计算更为有效,而前者通常在通用处理器上更为有效。在素数域下, 曲线参数有为(p,a,b,G,n,h); 在二元域下, 曲线参数为(m,f,a,b,G,n,h).
p定义的是素数域Fp
m定义的是二元域2m
G为生成点坐标
n为G的阶,使nG=O(曲线的无穷远点)成立的最小正整数
h为辅参,h≤4,通常取1
有限域:在数学中,有限域(英语:finite field)或伽罗瓦域(英语:Galois field,为纪念埃瓦里斯特·伽罗瓦命名)是包含有限个元素的域。有限域中元素的个数称为有限域的阶。
有限域还在学习研究中,后续继续完善。
参考: