[數位簽章]
重點提示:
(1) 簽章 = 身份辨識(真的是你) + 不可否認(是你做的) + 完整性(資料沒被偷改)
(2) private 與 public key 可以互解;使用 public key 加密,則可用 private key 解密。
(3) 不可否認性:我用 "私 key" 加密,如果你能用 "公 key" 解開,表示訊息來源是我。
(4) hash function 兩者事先知道
流程:
要傳給對方的訊息:msg
msg--hash--> msg digest (使用 hash 保證完整性)
msg digest --私key--> signature (訊息是我送的,不可否認)
然後就可以傳送 [msg][signature] 給對方。
但這樣 msg 都被看光光柳, 所以用對方 public key 再包一次:
[msg][signature] --收件者 公key--> 對方公key([msg][signature])
收件者進行驗證:
收件者用 private key 進行解密:得到 [msg] [signature]
這邊別忘了 signature 當初是被 發送者用私key 加密過了
[signature] --發送者公 key --> msg digest (*)
[msg] ----hash---> msg digest (**)
(**)式的 digest 是我算出的
(*) 式的 digest 是我解開信封得到的
比較兩者,如果相同,表示信件內容未遭修改
而且又有你的 signature,所以表示 信件是你發的,你不能否認
沒有留言:
張貼留言