一、SM2加密運算
1.1加密原始數(shù)據(jù)
SM2加密運算首先是用戶A對數(shù)據(jù)加密,用戶A擁有原始數(shù)據(jù)
- 橢圓曲線系統(tǒng)參數(shù)
- 長度為klen比特的消息M
- 公鑰Pb
橢圓曲線系統(tǒng)參數(shù),已經(jīng)在 橢圓曲線參數(shù)(二)中詳細介紹;M就是需要加密消息,長度為klen;
1.1.1 公鑰Pb的計算方式
公鑰Pb=dBG,其中dB是私鑰,是256bit的隨機數(shù)(1<d<n,d為整數(shù)),n、G都為橢圓曲線參數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-717537.html
1.2 SM2加密步驟
- 選取一個隨機數(shù)k,計算C1=kG,k此時為用戶A的臨時私鑰,是為了和解密用戶B進行密鑰交換。(解密用戶B拿到C1,會進行s=dB C1=dB k G)
- 判斷 S=hPb結(jié)果是否為無窮遠點, 該步驟的意義是如果S 的結(jié)果不是無窮遠點,后續(xù)步驟 kPb 就不可能是無窮遠點。具體的詳細證明見G點的選擇
- kPb=k dB G,密鑰交換,后續(xù)的密鑰派生和異或操作,就是將用戶A的臨時密鑰k和用戶B的密鑰dB 對消息進行加密。
- 最后的hash操作是防止在信息傳遞的過程中,數(shù)據(jù)被篡改。
- C1 將自己的臨時密鑰k傳遞給解密用戶B
- C2 就是把自己臨時密鑰k的解密用戶B的dB和消息一起加密起來,傳遞給解密用戶B
- C3 就是防止C1,C2在傳遞到解密用戶B的過程中信息被篡改。
二、SM2解密運算
2.1解密擁有的數(shù)據(jù)
- 橢圓曲線系統(tǒng)參數(shù)
- 加密用戶A傳遞過來的信息C1,C2,C3
- 解密用戶B的私鑰dB
2.2解密步驟
- dB C1就是密鑰交換,要將C2中的消息解密出來,必須要有加密用戶A的臨時密鑰k和機密用戶B的私鑰dB。
- 密鑰派生和異或操作就是將C2中的消息解密出來
- 哈希運算就是確定在信息的傳遞過程中,沒有人篡改數(shù)據(jù)
文章來源地址http://www.zghlxwxcb.cn/news/detail-717537.html
到了這里,關(guān)于橢圓曲線在SM2加解密中的應(yīng)用(三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!