iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Security

我推的資安系列 第 20

我推的資安Day20_公開金鑰密碼系統ECC(5/6)

  • 分享至 

  • xImage
  •  

昨天提到今天會說的ECC(橢圓曲線密碼系統)

ECC

顧名思義就是用橢圓曲線做的密碼學,步驟是:初始化(計算金鑰)、加密、解密。跟ElGamal和RSA一樣~


假設有2個人A和B,B想要傳訊息M給A的話。

  • 計算金鑰:(A的回合)
    1.選擇一個有限域https://chart.googleapis.com/chart?cht=tx&chl=Z_P 的橢圓曲線 https://chart.googleapis.com/chart?cht=tx&chl=y%5E2%20%3D%20x%5E3%20%2B%20ax%20%2B%20b mod P
    和橢圓曲線上的一個點 G
    2.產生1個k 當作私鑰,並計算公鑰 PK = kG mod P。(其中k https://chart.googleapis.com/chart?cht=tx&chl=%5Cin%20Z%5E*_qhttps://chart.googleapis.com/chart?cht=tx&chl=Z*_q是mod q 的範圍內包含所有與mod q 互質的正整數)。
  • 加密:(B的回合)
    1.選擇一個亂數r,計算R = rG
    2.將訊息M分成2個部分https://chart.googleapis.com/chart?cht=tx&chl=M_1https://chart.googleapis.com/chart?cht=tx&chl=M_2 ,之後使用公開金鑰PK計算https://chart.googleapis.com/chart?cht=tx&chl=C_1 = https://chart.googleapis.com/chart?cht=tx&chl=M_1 + (rB ) mod Phttps://chart.googleapis.com/chart?cht=tx&chl=C_2 = https://chart.googleapis.com/chart?cht=tx&chl=M_2 + (rB ) mod P
    3.傳Rhttps://chart.googleapis.com/chart?cht=tx&chl=C_1https://chart.googleapis.com/chart?cht=tx&chl=C_2
  • 解密:(A的回合)
    1.收到Rhttps://chart.googleapis.com/chart?cht=tx&chl=C_1https://chart.googleapis.com/chart?cht=tx&chl=C_2 後,計算D = kR (這邊用D來表示)。
    2.計算https://chart.googleapis.com/chart?cht=tx&chl=M_1 = https://chart.googleapis.com/chart?cht=tx&chl=C_1 - D mod Phttps://chart.googleapis.com/chart?cht=tx&chl=M_2 = https://chart.googleapis.com/chart?cht=tx&chl=C_2 - D mod P

到這邊加密跟解密就完成了。


ECC的安全性在於橢圓曲線的解離散對數k,給你公鑰(PK,G,橢圓曲線)很難求出k


上一篇
我推的資安Day19_公開金鑰密碼系統ElGamal續(4/6)
下一篇
我推的資安Day21_公開金鑰密碼系統數位簽章(6/6)
系列文
我推的資安30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言