iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0

數位簽章(digital signature)大致上可分三個操作:生成金鑰(key generation)、簽章(signing)、驗證(signature verification)。

第一個操作:生成金鑰(key generation)

金鑰生成演算法(key generation),沒 input。而他的 output 是一對公鑰(public key)和私鑰(private key)。一把公鑰一定是對一把私鑰。成對的概念。

第二個操作:簽章(signing)

簽章(signing),簽章演算法 function 拿的 input 有兩個,一個是剛才產生的私鑰(private key),另一個是即將要進行操作簽章的訊息(message)。他的 output 是簽章(signature),長的樣子也是一大串看似亂數的東西。因此,想到簽章(sign)這個操作一定會想到需要使用者的私鑰(private key)。只有使用者有私鑰,有私鑰的使用者才能簽出簽章。想到簽章這個操作,還一定會想到要簽的訊息(message)是什麼,所以除了私鑰還需要訊息(message)。

第三個操作:驗證(signature verification):

驗證(Signature Verification),驗證演算法拿的 input 是剛才第一步產生的公鑰(public key)、剛才第二步產生的簽章(signature),以及剛簽名完的訊息(message)。他的 output 是一個布林值(boolean),通過驗證是 true,驗證通過(valid);沒有通過驗證是 flase,驗證未通過(invalid)。

這裡談數位簽章的三個操作,整體來看想強調的重點只有一個:用私鑰(private key)對訊息(message)做簽章(sign);用公鑰(public key)對訊息(message)做驗證(verify)。


上一篇
回覆來自讀者的提問:區塊鏈技術常混淆的詞
下一篇
雜湊函數 hash functions 與資料完整性 data integrity
系列文
合約開發特訓班30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言