关于ecc加密算法
前置芝士
$ \quad \quad $ 椭圆曲线 \(y^2=x^3+ax+b\) 基点\(P(A,B)\)
$ \quad \quad$ 椭圆曲线上的运算 $ \quad \quad$ 定义\(Q=P1+P2\)$ \quad \quad$ \(P1,P2\)与\(C\)交点关于\(x\)轴对称点
$ \quad \quad$ $ \quad \quad$ $ \quad \quad$ $ \quad \quad$ $ \quad \quad$ 定义\(Q=2P\) $ \quad \quad$ 过\(P\)切线与\(C\)交点关于\(x\)轴对称点
$ \quad \quad$ 椭圆曲线上运算性质 $ \quad \quad$ \(A+A=2A\)
$ \quad \quad$ 椭圆曲线Q的计算 $ \quad \quad$ \(k^2=x_1+x_2+x_3\) $ \quad \quad$ $ \quad \quad$$ \quad\quad$$ \quad \quad$$ \quad$$ \quad \quad$$k=\frac{y3-y1}{x3-x1}$
$ \quad \quad$ 斜率k的计算 $ \quad \quad$ 对于\(P1=P2=P0\) \(\qquad\) \(k=\frac{3x+a}{2y}\)
算法流程
$ \quad \quad$ Alice选取基点\(G(x_0,y_0)\),私钥\(g\)
$ \quad \quad$ Bob计算公钥\(Q(x_1,y_1)=gG\)
$ \quad \quad$ Bob选定随机数\(r\),计算\(C = \{rG, M+rQ\}\)
$ \quad \quad $ Alice收到\(C\{x_1,y_1\}\) $ \quad \quad $ Alice计算\(M=y_1-gx_1\)
安全性保障与NPC
$ \quad \quad$ 在有限域\(GF(k)\)中,知道\(G与C=gG\)时,计算\(g\)是\(npc\)的
$ \quad \quad$ 在有限域\(GF(k)\)中,知道\(G与g\)时,计算\(C\)是\(ksm\)的
攻击方法
$ \quad \quad$ \(Bruteforce\) :适用于p较小的情况,在基点选取合适的情况下,近似于\(GF(p)\)的本原根,即离散对数问题·,可以用\(BSGS\)加速运算。 【2013 SECCON CTF quals Cryptanalysis】
$ \quad \quad$ \(Pohlig-Hellman\) :适用于\(p-1\)光滑的情况,复杂度约为\(O(\sqrt{p_1})\),重载运算符后同经典离散对数算法相似。【picoctf2017 ECC 2】

浙公网安备 33010602011771号