密碼學(xué)中SM2算法
2018-03-20 16:04:27 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)
3. SM2算法
SM2是我們國家密碼管理局于2010年12月17日發(fā)布(第21號)的國家密碼標(biāo)準(zhǔn),是基于ECC(橢圓曲線密碼算法)的公鑰密碼算法。隨著密碼技術(shù)和計算技術(shù)的發(fā)展,目前常用的1024位RSA算法面臨嚴(yán)重的安全威脅,我們國家密碼管理部門經(jīng)過研究,決定采用SM2橢圓曲線算法替換RSA算法。SM2算法在安全性、性能上都具有優(yōu)勢。
SM2算法是國家發(fā)明,其計算上比國際上公布的ECC算法復(fù)雜。SM2算法采用的橢圓嗑線方程為:y2=x3+ax+b。在SM2算法標(biāo)準(zhǔn)中,通過指定a、1)系數(shù),確定了唯一的標(biāo)準(zhǔn)曲線。同時,為了將曲線映射為加密算法,SM2標(biāo)準(zhǔn)中還確定了其它參數(shù),供算法程序使用。
這里不深人探討橢圓曲線的數(shù)學(xué)理論,僅通過圖示展示算法原理。選a=-l,b=0,則橢圓曲線方程為:。曲線參見下圖:
(I)P點為基點;
(2)通過P點做切線,交與點2P點,在2P’點做垂線,交與2P點,2P點即為P點的2倍點;
(3)進(jìn)一步,P點和2P點之間做直線,交與3P’點,在3P’點做豎線,交與3P點,3P 點即為P點的3倍點;
(4)同理,可以計算出P點的4、5、6、…倍點;
(5)如果給定圖上Q點是P的一個倍點,請問Q是P的幾倍點呢?
(6)直觀上理解,正向計算一個倍點是容易的,反向計算一個點是P的幾倍點則困難的多。
在橢圓曲線算法中,將倍數(shù)d做為私鑰,將Q做為公鑰。當(dāng)然,橢圓曲線算法還有更嚴(yán)格的計算過程,相對圖示要復(fù)雜的多。
標(biāo)簽:
SM2算法