文章目录
  1. 1. 0x00 口胡背景
  2. 2. 0x01 椭圆曲线密码相关概念
  3. 3. 0x02 椭圆曲线密码流程
    1. 3.1. 1. 密钥生成
    2. 3.2. 2. 加密运算
    3. 3.3. 3. 解密运算
  4. 4. 0x03 椭圆曲线密码体制优点
  5. 5. 0x04 公钥密码与对称密码比较之各有千秋

0x00 口胡背景

Neal Koblitz和Victor Miller在1985年分别提出了椭圆曲线密码体制(ECC),它是迄今为止被实践证明安全有效的三类公钥密码体制之一。
1998年被ISO/IEC定为数字签名标准,2000年2月定为IEEE标准
椭圆曲线公钥密码算法跟我们上篇介绍的ElGamal有点类似,安全性都是基于离散对数问题,不过椭圆曲线公钥密码算法的离散对数问题有些特殊

0x01 椭圆曲线密码相关概念

  1. 椭圆曲线的定义:

在二维坐标系中表示为:

  1. 椭圆曲线公钥密码算法所需运算:

点的加法运算并不是空穴来风,随便定义了一个运算法则,在图上它是有具体意义的,显得很直观:

p和q的加法描述为:过p,q两点做一条直线,这条直线与椭圆曲线的另一交点(除p,q外的交点)关于x轴的对称点定义为p+q得到的点s。

但是,在椭圆曲线公钥密码算法中,该椭圆曲线上的点我们并不是全部用到,我们只用整数,椭圆曲线上的整数点定义的集合:

但并不是所有的整数点都满足我们的要求,我们还要对这些整数点进行筛选,下面给出Ep(a,b)集合的生成方法:

也就是说,在椭圆曲线密码算法中,我们只用到了上面所说的Ep(a,b)集合中的点,我们只对这些点进行相应的运算,比如我们上面介绍的加法运算。

举个E23(1,1)的例子:

还记得我们上面在刚开始提到的椭圆曲线上的无穷远点O吗,我们来看加法运算加入无穷远点后会有什么变化:

举个最简单的计算例子:


既然我们上面详细介绍了椭圆曲线上的加法运算,那么下面密码算法中肯定是要用到的,为了下面的应用,我们再给两个定义:

  1. mP = P + P +…+ P (m个P)
  2. P是椭圆曲线E上的一个点,若存在最小的正整数n,使得nP = O,则称n是P的阶数。

OK,有了这些前置姿势,我们已经有资格来揭开椭圆曲线公钥密码算法的真面目了。。。

0x02 椭圆曲线密码流程

1. 密钥生成

2. 加密运算

3. 解密运算

又是例子。。。

看到例子是不是有点疑惑?欲发往A的消息嵌入到椭圆曲线上的点Pm=(562,201)是什么鬼?

由于椭圆曲线密码算法是在集合Ep(a,b)上进行的运算,所以,我们想要用椭圆曲线对明文加密,我们首先要将明文转化为我们要使用的椭圆曲线上的点。

还记得我们前面介绍的二次剩余吗?好像现在就它没用到了吧。什么叫不白学,学了就会用好吧。给出如下明文到椭圆曲线上的点的转化规则:

流程就是这么简单。

0x03 椭圆曲线密码体制优点

首先来谈谈椭圆曲线密码的安全性,前面也说过了安全性基于离散对数问题。具体描述为:在椭圆曲线群Ep(a,b)上考虑方程Q=kP,其中P,Q∈Ep(a,b),k<p,则由k和P易求Q,但由P、Q求k则是困难的。
这就是椭圆曲线上的离散对数问题,可应用于公钥密码体制.

优点都是对比出来的,这里的对比对象是基于有限域上离散对数问题的公钥体制。与基于有限域上离散对数问题的公钥体制相比,椭圆曲线密码体制有如下优点:

  1. 安全性高:
  2. 密钥量小:

计算量小、处理速度快,这里的处理速度快是指在私钥的处理速度上(解密和签名),ECC远比RSA快得多,但是公钥加密速度椭圆曲线更慢。

  1. 灵活性好:p一定的情况下,其上的集合是确定的. 而椭圆曲线Ep(a,b)可以通过改变曲线参数,得到不同的曲线,具有丰富的多选择性.

0x04 公钥密码与对称密码比较之各有千秋

  1. 公钥密码体制产生密钥很麻烦,比如RSA受到素数产生技术的限制
  2. 公钥密码体制速度慢,较对称密码算法慢几个数量级
  3. 对称密码算法,密钥短,速度快
  4. 公钥密码算法,密钥长,速度慢
  5. 对称密码算法用于大量明文加密
  6. 公钥密码算法用于少量数据加密,如DES密钥的加密

两者各有用处,我们要发挥他们各自的优势来为我们服务:


公钥密码体制到这就告一段落了,本来想再补充一下基于身份的密码体制的,但自己也没理解透,所以就不误导大家了,这里留两个链接日后看吧-[1][2]

就这样,下面进入消息认证机制,主要是介绍一些杂凑函数。。。

文章目录
  1. 1. 0x00 口胡背景
  2. 2. 0x01 椭圆曲线密码相关概念
  3. 3. 0x02 椭圆曲线密码流程
    1. 3.1. 1. 密钥生成
    2. 3.2. 2. 加密运算
    3. 3.3. 3. 解密运算
  4. 4. 0x03 椭圆曲线密码体制优点
  5. 5. 0x04 公钥密码与对称密码比较之各有千秋