9月 18, 2010

數位簽章 (digital signature)

[數位簽章]

重點提示:

(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,所以表示 信件是你發的,你不能否認

沒有留言:

張貼留言