• 椭圆曲线的基本概念


    椭圆曲线

    设F是一个域,a,b(in)F,则方程(y^2=x^3+ax+b)称为域F上的椭圆曲线。
    上述方程称为维尔斯特拉斯方程,其判别式为(y^2+axy+by=x^3+cx^2+dx+e)
    比如,实数域上的椭圆曲线如下:

    椭圆曲线上的加法:
    设F是一个域,a,b(in)F,令E={(x,y)|(y^2=x^3+ax+b)}(cup){(infty)},其中{(infty)}为无穷远点,则可以定义椭圆曲线上的加法为:
    1)设(P_1,P_2in E),令R为(P_1,P_2)两点连线与椭圆曲线的交点关于X轴的对称点,则(P_1+P_2=R)
    2)如果(P_1,P_2)两点关于X轴对称,那么规定他们连线与椭圆曲线相交于无穷远点,记为O
    3)任何一个点通过上面的运算规则与O相加的和都是它本身

    椭圆曲线上的加法的性质:(forall P,Q,Rin E),如果P,Q,R在一条直线上,那么P+Q+R=O

    定理:若规定O+O=O,则(E,+)构成一个阿贝尔群(交换群),其中(infty)为单位元,记为O,P=(x,y)的逆元为Q=(x,-y)

    实例:设(y^2=x^3+x+6)(F_{11})上的椭圆曲线,求(3,6)+(5,2)
    k=(frac{6-2}{3-5}=9)
    y-6=k(x-3)
    y=9x+1
    将上式代入(y^2=x^3+x+6)中得:
    ((9x+1)^2=x^3+x+6=x^3+7x^2+5x+5)
    (x-3)(x-5)(x-7)=0
    ( herefore) x=7
    y=9x+1=9
    ( herefore)(3,6)+(5,2)=(7,-9)=(7,2)

    椭圆曲线密码

    以下三类公钥系统被认为是安全有效的:

    1. 基于大整数分解问题的RSA型公钥密码;
    2. 基于有限域上离散对数问题的ElGamal型公钥密码;
    3. 基于椭圆曲线离散对数问题的椭圆曲线公钥密码。

    椭圆曲线公钥密码优势:对于椭圆曲线离散对数问题,目前不存在亚指数时间算法,从而为达到相同安全性所需的密钥尺寸更小:
    – RSA 密码体制:模长1024 比特;
    – 椭圆曲线密码体制:模长160 比特。

    椭圆曲线密码体制适用于计算、存储、带宽受限,但又要求高速实现的应用领域,例如智能卡、无线通讯等。
    El'Gamal密码方案的椭圆曲线形式:

    • Gen:设E为(F_q)上的椭圆曲线,一般记为E((F_q)),设P = ((x_p,y_p)in E(F_q)),且P的次数足够大,任取1 < s < ord(P),令Q = sP = ((x_q,y_q)),则E((F_q)),P,Q为公钥,s为私钥
    • Enc:消息m满足0 (le) m < (F_q),任取1 < r < (F_q),计算((x_1,y_1)) = rP,((x_2,y_2)) = rQ,c = m·(x_2),则密文为((x_1,y_1,c))
    • Dec:计算(x',y') = s((x_1,y_1)),再计算m'=c·(x'^{-1})

    正确性验证:(x',y') = s((x_1,y_1)) = srP = rsP = rQ = ((x_2,y_2)),所以x' = (x_2),m' = c·(x'^{-1}) = c·(x_2^{-1}) = m·(x_2·x_2^{-1}) = m

  • 相关阅读:
    关于 Xpath 定位
    关于安全渗透测试
    hashlib python 加密框架
    Flask pythn Web 框架总结
    HTMLTestRunner 报告框架使用
    Unittest
    随笔-关于飞机维修检测-想到的
    LoadRunner 工具使用
    Appium
    ak发大水发
  • 原文地址:https://www.cnblogs.com/TheFutureIsNow/p/12061644.html
Copyright © 2020-2023  润新知