非對稱加解密原理

非對稱加解密需要兩個祕鑰:公開祕鑰(publickey)和私有密鑰(privatekey)。公開祕鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因爲加密和解密使用的是兩個不同的祕鑰,所以這種算法叫作非對稱加解密算法。

實現方案:

加密原理:

1,先產生一組隨機數,32字節

2,根據產生的隨機數計算出一個橢圓曲線點(採用國際標準給出的基點),由32字節變成64字節 A

3,根據產生的隨機數計算出一個橢圓曲線點(採用公開密鑰作爲基點),由32字節變成64字節,取橢圓曲線點X座標前16字節作爲加

   密祕鑰祕鑰

4,對明文進行對稱加密,加密祕鑰爲第3步產生的共享祕鑰,得出密文 B

5,對密文進行一次消息認證碼,基於AES-128的消息認證碼算法,其中的祕鑰取橢圓曲線點X座標後16字節作爲祕鑰,產生認證碼 C

6,計算非對稱加密後的密文爲 A + B + C


解密原理:

1,根據密文截取前面的64字節橢圓曲線點與中間部分的對稱加密密文與最後的16字節消息認證碼

2,根據私有密鑰計算出一個橢圓曲線點(採用第一步64字節橢圓曲線點作爲基點),由32字節變成64字節,取橢圓曲線點X座標前16

   字節作爲解密祕鑰

3,根據對稱加密密文進行一次消息認證碼,其中校驗祕鑰爲取橢圓曲線點X座標後16字節作爲祕鑰,消息爲對稱加密密文,產生認

   證碼

4,校驗消息認證碼是否準確,對已經獲取的16字節消息認證碼與產生的進行比較,如果不相等,校驗失敗,意味着解密失敗。

5,對加密密文進行對稱解密,祕鑰爲取橢圓曲線點X座標前16字節作爲祕鑰,然後解密成功。


小結:橢圓曲線點滿足交換律哦。a*(b*G) = b*(a*G),根據這個原理可以共享出一個祕鑰來。


發佈了33 篇原創文章 · 獲贊 10 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章