數字簽名
1. 定義
數字簽名簡單來說就是通過提供可鑑別的數字信息驗證自身身份的一種方式。
一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。分別由發送者持有能夠代表自己身份的私鑰(私鑰不可泄露),和接收者持有與私鑰對應的公鑰,能夠在接收到來自發送者信息時用於驗證其身份。
2. 簽名過程
2.1 發送方簽名過程
發送報文時,發送方用一個哈希函數從報文文本中生成報文摘要,然後用自己的私鑰對這個摘要進行加密,這個加密後的摘要將作爲報文的數字簽名和報文一起發送給接收方。
2.2 接收方解密過程
接收方首先用與發送方一樣的哈希函數從接收到的原始報文中計算出報文摘要,接着再用發送方的公用密鑰來對報文附加的數字簽名進行解密,如果這兩個摘要相同、那麼接收方就能確認該數字簽名是發送方的。
3. 數字簽名有兩種功效
- 一是能確定消息確實是由發送方簽名並發出來的,因爲別人假冒不了發送方的簽名。
- 二是數字簽名能確定消息的完整性。因爲數字簽名的特點是它代表了文件的特徵,文件如果發生改變,數字摘要的值也將發生變化。不同的文件將得到不同的數字摘要。
4. 總結
一次數字簽名涉及到一個哈希函數、發送者的公鑰、發送者的私鑰。
問題:不法分子修改信息內容的同時也修改hash值,從而讓它們可以相匹配,怎麼辦?
採用數字證書