數字簽名是附加在報文上的特殊加密校驗和。
有以下兩個用處
簽名可以證明作者是編寫了這條報文。只有作者才有這個私有密鑰,因此,只有作者才能計算出這些校驗和。校驗和就像來自作者的簽名一樣。
簽名可以防止報文被篡改,如果有惡意攻擊者在報文傳輸過程中對其進行修改。校驗和就不再匹配了。由于校驗和只有作者保密的私有密鑰才能產生,所以攻擊者無法為篡改了的報文偽造出正確的校驗和
數字簽名通常是用非對稱公開密鑰技術產生的。應為只有所有這才知道私有密鑰,所以可以將作者的私有密鑰當做一種指紋使用。
節(jié)點A將邊長的報文提取為定長的摘要。
節(jié)點A對定長的摘要應用一了一個簽名函數,這個函數會將用戶的私有密鑰作為參數。應為只有用戶才知道私有密鑰,所以正確的簽名函數會說明簽名者就是其所有者。
一旦計算出簽名,節(jié)點A將其附加在報文的尾端,并將報文和簽名都發(fā)送給B
在接受端,如果節(jié)點B需要確定報文確實是節(jié)點A寫的,而且沒有被篡改過,節(jié)點B就可以對簽名進行檢查。節(jié)點B接受經過私有密鑰加密的簽名,并應用了使用公開密鑰的反函數,如果拆包的摘要月節(jié)點B自己的摘要版本匹配就沒有被篡改過。

數字簽名.png