數字簽名基礎

數字簽名(Digital Signature)是公鑰密碼體系中籤名驗證功能的一個應用。其目的是保證信息傳輸的完整性、發送者的身份認證、防止交易中的抵賴發生。其中數字簽名是個加密的過程,數字簽名驗證是個解密的過程。其原理首先要理解非對稱加密和消息摘要。git

  • 非對稱加密中公鑰是公開的,若是用公鑰解密,只能開解對應私鑰加密的內容,所以,私鑰也能夠認爲是我的身份的證實。若是通訊雙方須要互發消息,那麼應該創建兩套非對稱加密的機制(即兩對公私鑰密鑰對),發消息的一方使用對方的公鑰進行加密,接收消息的一方使用本身的私鑰解密。加密

  • 消息摘要能夠將消息哈希轉換成一個固定符長度的值惟一的字串。值惟一的意思是不一樣的消息轉換的摘要是不一樣的,而且可以確保惟一。該過程不可逆,即不能經過摘要反推明文。利用這一特性,能夠驗證消息的完整性。cdn

數字簽名就是非對稱加密和消息摘要的組合,具體過程以下:blog

假設如今有通訊雙方A和B,二者之間使用兩套非對稱加密機制。 如今A向B發消息。圖片

這裏寫圖片描述
那麼,若是在發送過程當中,有人修改了裏面密文消息,B拿到的密文,解密以後獲得明文,並不是A所發送的,信息不正確。這就要解決以下兩個問題:

  • A的身份認證
  • A發送的消息完整性 那麼就要用到上面所講的基礎知識。

爲了解決上面兩個問題,數字簽名的過程以下圖:it

這裏寫圖片描述
簡單解釋: A:將明文進行摘要運算後獲得摘要(消息完整性),再將摘要用A的私鑰加密(身份認證),獲得數字簽名,將密文和數字簽名一塊發給B。 B:收到A的消息後,先將密文用本身的私鑰解密,獲得明文。將數字簽名用A的公鑰進行解密後,獲得正確的摘要(解密成功說明A的身份被認證了)。再對明文進行摘要運算,摘要比對一致說明消息沒有被篡改(消息完整性)。
相關文章
相關標籤/搜索