信息安全:椭圆曲线加密

数学基础

取模运算(“Modulo Operation”)和取余运算(“Complementation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。

%是除法取余运算。 用于整数与整数运算。如5%3=2。

幂模运算转化为乘模运算。

a*b % n = (a % n)*(b % n) % n

模幂乘运算采用平方乘算法,将模幂乘运算转化为模乘和模平方运算实现

对于任意指数E,都可采用以下算法计算D=C**E % N:

D=1

WHILE E>0

IF E%2=0

C=C*C % N

E=E/2

ELSE

D=D*C % N

E=E-1

RETURN D

椭圆曲线

椭圆曲线密码是一种公钥密码算法,公钥密码算法最根本的原理是利用信息的不对称性。私钥拥有者把信息的一部分公开披露,披露的信息记为公钥。

一个公钥密码算法安全的必要条件(非充分)是“由公钥不能反推出私钥”。椭圆曲线密码也是一个基于加法阶数难求问题的密码方案。

椭圆曲线密码里的加法建立在 “有限域上的二元三次曲线上的点”上 ,组成一个“有限加法循环群”。

这个加法的几何定义如下面两个图,两个点的加法结果是指这两点的连线和曲线的交点关于x轴的镜像。

信息安全:椭圆曲线加密

对椭圆曲线来说最流行的有限域是以素数为模的整数域。

椭圆曲线离散对数问题(ECDLP)就是给定点P和Q,确定整数k使k*P=Q。

给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。

将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应。


分享到:


相關文章: