天天看點

加密解密-簽名驗簽-學習

基本概念:

加密:發送方利用接收方的公鑰對要發送的明文進行加密。

解密:接受方利用自己的私鑰進行解密。

公鑰和私鑰配對的,用公鑰加密的檔案,隻有對應的私鑰才能解密。當然也可以反過來,用私鑰加密,用對應的公鑰進行解密。

簽名:發送方用一個哈希函數從封包文本中生成封包摘要,然後用自己的私人密鑰對這個摘要進行加密,得到的就是這個封包對應的數字簽名。通常來說,發送方會把數字簽名和封包原文一并發送給接受者。

過程示例如下圖

加密解密-簽名驗簽-學習

驗簽:接收方得到原始封包和數字簽名後,用同一個哈希函數從封包中生成摘要A,另外,用發送方提供的公鑰對數字簽名進行解密,得到摘要B,對比A和B是否相同,就可以得知封包有沒有被篡改過。

過程示例如下:

加密解密-簽名驗簽-學習

其實, 數字簽名有兩種功效:一是能确定消息确實是由發送方簽名并發出來的,因為别人假冒不了發送方的簽名。二是數字簽名能确定消息的完整性。

很容易看得出來,數字簽名技術有一個問題,就是原始封包是明文傳輸的,這對一些敏感内容來說通常是不合适的,是以有些時候,這兩種技術會結合起來使用。

發送方用自己的私鑰完成數字簽名,然後再用接收方的公鑰對封包進行加密,将數字簽名和封包傳送給接收方。

接收方在拿到密文和數字簽名後,先用自己的私鑰對密文進行解密,得到明文,然後再用發送方提供的公鑰進行驗簽,確定發送方身份的準确性,以及封包并沒有被篡改過。

總結:公鑰和私鑰是成對的,它們互相解密。

公鑰加密,私鑰解密。

私鑰數字簽名,公鑰驗證。