數字簽名(Digital Signature)是公鑰密碼體系中籤名驗證功能的一個應用。其目的是保證信息傳輸的完整性、發送者的身份認證、防止交易中的抵賴發生。其中數字簽名是個加密的過程,數字簽名驗證是個解密的過程。其原理首先要理解非對稱加密和消息摘要。git
非對稱加密中公鑰是公開的,若是用公鑰解密,只能開解對應私鑰加密的內容,所以,私鑰也能夠認爲是我的身份的證實。若是通訊雙方須要互發消息,那麼應該創建兩套非對稱加密的機制(即兩對公私鑰密鑰對),發消息的一方使用對方的公鑰進行加密,接收消息的一方使用本身的私鑰解密。加密
消息摘要能夠將消息哈希轉換成一個固定符長度的值惟一的字串。值惟一的意思是不一樣的消息轉換的摘要是不一樣的,而且可以確保惟一。該過程不可逆,即不能經過摘要反推明文。利用這一特性,能夠驗證消息的完整性。cdn
數字簽名就是非對稱加密和消息摘要的組合,具體過程以下:blog
假設如今有通訊雙方A和B,二者之間使用兩套非對稱加密機制。 如今A向B發消息。圖片
爲了解決上面兩個問題,數字簽名的過程以下圖:it