[ECDSA]椭圆曲线 快速理解

480 阅读2分钟

椭圆曲线 另一种非对称加密

66c8329286244bfab64971d795677531_tplv-k3u1fbpfcp-watermark.png

RSA回顾

  • RSA安全的原因是质因数分解难。
    • 比如问221是哪2个质数相乘,不太好算,
    • 可如果问17*13=? 很容易算出是221

假设有一种算法 算加法,乘法很容易,算除法极其困难

也就是说正向好算,逆向不好算

不是普通加法

注意:这里的加法不是普通的加法。像是打台球时求的坐标,比如

  • A点,球的初始点
  • B点,球撞击案边反弹点
  • C点,球的停止点

A+B = c ;乘法还是多次的加法运算。

非对称搞起

公私钥

  1. 有1个公开的点 G
  2. 小明在 0~10的77次方 随机出一个数k, k即为私钥
  3. k * G = P, P即公钥

加解密

  1. 假设,小红也有一套公私钥,

  2. 这时小明 计算个S S = 小明k * 小红P 然后直接使用密钥S对数据做 对称加密 发给小红

  3. 小红想解密必须知道S

  4. 小红算S

    1. S = 小明k * 小红P 小红P = 小红k * G
    2. S = 小明k * 小红k * G 小明k * G = 小明P
    3. S = 小红k * 小明P 至此小红就拿到了S

因为私钥k 不公开的。所以此方法安全。

签名、验签

签名

  1. 小明生产了一坨数据,要对它签名,
  2. 对这坨数据算哈希 得到h,计算 h * 小明k = N , N即签名

验签

  1. 计算A = h * 小明P
  2. 计算B = N * G
  3. 如果这个N是真的,A 和 B就相等, 因为 A = h * 小明k * G = N * G
  4. 如果N是真的,则发布N的人 就拥有私钥 小明k

椭圆曲线

其特性 和 为什么不能算除法 见网上