密碼學——ECC橢圓曲線加密算法
2023-03-30 19:54 作者:Vector永遠的神 | 我要投稿
ECC橢圓曲線加密算法是一個經(jīng)典的非對稱加密算法,利用的就是 y^2 =? x^3 +ax +b 的橢圓曲線進行加密,曲線會隨著a和b的變化而發(fā)生形態(tài)變化。其中4a^3 + 27 b^2? != 0為了使得曲線不包含奇點,曲線上沒一點都存在切線。?
在曲線上 點P為基點, Q? =? K? *? P? ? Q作為公鑰,k作為私鑰存在。
給定 K和 P 求解公鑰Q是十分容易的,但是給定PQ想求解 私鑰K是十分復(fù)雜的。

曲線上的加法運算規(guī)則是在曲線上兩個點A和B相連接的直線一定會與橢圓曲線相交于一點C1,此點關(guān)于x軸的對稱點則為點C? 寫作A+B=C。

切線的時候可以理解為A+A的情況,得到的結(jié)果就是2A,這個就是乘法的含義了。

當A和2A相連接得到交點的對稱點就是3A了。
這個記錄表達的方式就是參考了正常的四則運算。但是可以把這個理解為點運算,也滿足交換律和結(jié)合律等形式。
給定參數(shù)a和b確定一條橢圓曲線Ep(a,b),并且在此曲線上選擇一個基點P
選擇一個大數(shù) k? 作為私鑰? , 計算得到公鑰 Q? =? k * P。
加密過程是? 選擇一個隨機數(shù)r,將消息M生成密文C? ,密文C是一個點對(r*P,M + r * Q)
解密過程就是使用私鑰 k去乘以 r*P ,??M + r *?Q - k*(r * P )=? M + r *?k * P?- k*(r?*?P ) =? M。
數(shù)學過程過于復(fù)雜,不說了。