美文网首页
浅谈椭圆曲线加密ECC

浅谈椭圆曲线加密ECC

作者: 疾风2018 | 来源:发表于2018-08-25 01:42 被阅读0次

    椭圆曲线加密法(ECC, Elliptic Curve Cryptography)与RSA同样属于非对称加密,但是在很多方面胜过RSA:1. 在相同密钥长度下,椭圆曲线比RSA拥有更强的安全性;
    2. 达到相同的安全性时,椭圆曲线更节约存储空间和算力;

    像一般的非对称加密原理那样,椭圆曲线也是基于“从a推导出b很难,从b推导出a容易”这样的模式实现了非对称加密的。RSA通过大质数分解实现相同的模式,而椭圆曲线则是用更复杂的方法实现了相同的模式。

    首先,椭圆曲线加密通过椭圆曲线实现了一个阿贝尔群,阿贝尔群有以下特点:

    闭包       如果a和b都是𝔾的成员,那么a+b也是𝔾的成员。
    组合性   (a+b)+c=a+(b+c)
    单位元   存在确切的一个值,称之为单位元0,使得 a+0=0+a=a
    逆元      每个元素都有一个相反数b,使得 a+b=0
    交换性   a+b=b+a

    椭圆曲线是这样实现阿贝尔群的,首先定义椭圆曲线方程:

    x, y, a, b 均为 实数

    然后定义:
    1. 群素为椭圆曲线上的点,外加单位元
    2. 单位元为无穷远点,记作0
    3. 椭圆上的点P的逆元-P是与P点以X轴轴对称的点
    4. 群运算P+Q定义为在椭圆曲线上画出点P和点Q,连直线穿过P和Q,该直线会与椭圆曲线相较于第三个点,称之为R。根据R取得R的逆元-R,最终P+Q=-R
    5. n x P定义为 P+P+...+P (n个P相运算)

    但是密码学中,并不能使用上面介绍的实数域上的椭圆曲线。因为
    1. 实数域上的椭圆曲线是连续的,有无限个点,密码学要求有限点;
    2. 实数域上的椭圆曲线的运算有误差,不精确。密码学要求精确;

    因此我们需要把椭圆曲线上的点限定为有限几个,首先将x, y, a, b的值域从实数限定为一个整数模n环(n为质数),这样值就限定为0到n-1的整数,因此椭圆曲线公式就被改造成了如下的样子。

    连续的曲线变成了离散的点

    改造之后仍然是一个阿贝尔群。

    关键的东西来了,已知点P和Q,求k,使得 kP = Q

    事实和理论均证明求k是非常复杂的,但是给定k来验证 kP = Q的过程却非常简单,这和RSA采用的大质因数分解法的性质是一样的。因此,这个问题就是椭圆曲线加密的基石。

    更详细的内容请参见:http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/

    相关文章

      网友评论

          本文标题:浅谈椭圆曲线加密ECC

          本文链接:https://www.haomeiwen.com/subject/hsdwiftx.html