1、SM2算法簡介
? ? ? ? SM2密碼算法是我國2010年發(fā)布的商用密碼算法,屬于公鑰密碼算法,也成為非對稱密鑰機(jī)制密碼算法。SM2基于橢圓曲線離散對數(shù)問題,相對于RSA基于大整數(shù)因數(shù)分解更具優(yōu)越性。
? ? ? ? SM2算法于2012年成為我國密碼行業(yè)標(biāo)準(zhǔn),并于2017年被ISO采納,成為國際標(biāo)準(zhǔn)的一部分。SM2算法行業(yè)標(biāo)準(zhǔn)包括如下構(gòu)成:
????????GMT 0003.1-2012-SM2 橢圓曲線公鑰密碼算法第1部分:總則
????????GMT 0003.2-2012-SM2 橢圓曲線公鑰密碼算法第2部分:數(shù)字簽名算法
????????GMT 0003.3-2012-SM2 橢圓曲線公鑰密碼算法第3部分:密鑰交換協(xié)議
????????GMT 0003.4-2012-SM2 橢圓曲線公鑰密碼算法第4部分:公鑰加密算法
????????GMT 0003.5-2012 SM2 橢圓曲線公鑰密碼算法第5部分:參數(shù)定義
? ? ? ? 簡要說,SM2是一種橢圓曲線密碼學(xué)(Elliptic Curve Cryptograghy,ECC)的實(shí)現(xiàn),具體推薦參數(shù)是定義在256bit素域上。
? ? ? ? SM2算法私鑰長度為256bit,公鑰長度為512bit。數(shù)字簽名算法的輸出簽名長度為512bit,公鑰加密算法的輸出密文長度為文明長度+96byte。
2、數(shù)字簽名算法
? ? ? ? 數(shù)字簽名算法由一個(gè)簽名者對數(shù)據(jù)產(chǎn)生數(shù)字簽名,并由一個(gè)驗(yàn)簽者驗(yàn)證簽名的可靠性。每個(gè)簽名者由一個(gè)公鑰和一個(gè)私鑰,其中私鑰用于產(chǎn)生簽名,驗(yàn)證者用簽名者的公鑰驗(yàn)證簽名。一般來說,數(shù)字簽名不會(huì)直接對原始數(shù)據(jù)進(jìn)行簽名操作,而是先使用密碼雜湊算法(例如SM3)對原始數(shù)據(jù)進(jìn)行壓縮輸出摘要值,再對該摘要值進(jìn)行簽名。在驗(yàn)證時(shí),也要同樣進(jìn)行得到摘要值進(jìn)行比較驗(yàn)證。
? ? ? ? 上面提到了私鑰和公鑰,具體來說私鑰dA為256bit隨機(jī)數(shù),對應(yīng)的公鑰PA=[dA]G=(XA,YA),XA和YA都是256bit,所以PA就是512bit長。按照SM2參數(shù)公開如下,SM2使用素?cái)?shù)域256位橢圓曲線,基點(diǎn)G也就是(xG、yG),p是一個(gè)大素?cái)?shù),也就是定義在有限域GF(p)上的橢圓曲線。
?2.1 簽名生成算法
? ? ? ? 這里ZA是簽名者的可辨別標(biāo)識(shí)(公開固定值)、M的待簽名的消息(公開)、PA是公鑰(公開)、DA是私鑰(不可公開妥善保存)。注意這里引入隨機(jī)數(shù)k,從而使得即使對相同的M多次簽名,每次的簽名值都不同。
? ? ? ? SM2算法輸出數(shù)字簽名是(r,s),其中r和s都是256bit長,所以數(shù)字簽名長度為512bit。簽名者將原始消息M和簽名(r,s)一起發(fā)送給驗(yàn)證者。
2.2簽名驗(yàn)證算法
????????驗(yàn)證者在驗(yàn)簽時(shí)擁有的數(shù)據(jù)包括ZA(簽名者的公開標(biāo)識(shí))、PA(簽名者的公鑰)以及收到的M'和簽名值(r',s')。這里我們可以看到,SM2算法的驗(yàn)簽過程相比較簽名過程要計(jì)算更多的橢圓曲線上點(diǎn)乘運(yùn)算,故SM2算法的驗(yàn)簽速度較慢。
????????
?3、SM2數(shù)字簽名算法特點(diǎn)(與RSA對比)
(1)安全性高,相當(dāng)于RSA-3072。SM2安全強(qiáng)度為128位。
(2)密鑰短(256bit VS. 3072bit)
(3)私鑰產(chǎn)生簡單,256bit的隨機(jī)數(shù)即可。RSA則需要大素?cái)?shù)判定等。文章來源:http://www.zghlxwxcb.cn/news/detail-487844.html
(4)簽名速度快,同等安全強(qiáng)度下,速度遠(yuǎn)超RSA。文章來源地址http://www.zghlxwxcb.cn/news/detail-487844.html
到了這里,關(guān)于商用密碼應(yīng)用與安全性評估要點(diǎn)筆記(SM2數(shù)字簽名算法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!