密码学系列——数字签名
前言
什么是數字簽名呢?數字簽名其實是消息摘要和非對稱加密的一起應用。
正文
數字簽名是怎么來的呢?
在非對稱加解密中,公鑰方對私鑰方發送消息,只需要公鑰方用公鑰加密即可,因為私鑰只有一人持有。
那么私鑰方給公鑰方發送數據是否可以用私鑰發送即可呢?當然可以的啊。
但是又一個問題就是私鑰加密后,所有的公鑰都可以解開,那么問題來了是否安全呢?
也就是說私鑰加密公鑰去解密的意義并不大。而且私鑰是單方,單方作為服務器的話去加密可想而知效率問題就很大了。
回到問題得原點上,我們要驗證的是什么問題呢?
驗證的是如何保證公鑰方如何確認私鑰方的身份,收到私鑰方的信息沒有串改過?
確定私鑰方的身份只能通過私鑰要確認,那么如果用私鑰加密效率低,那么是否記得如何進行文件校驗的呢?文件校驗就是消息摘要,取一部分進行加密啊。
那么數字簽名就是這樣子的:
私鑰方 通過hash要發送的內容,然后用私鑰進行加密就是數字簽名和內容一起發送出去。
公鑰方取下數字簽名,然后對簽名進行解密,也就是得到hash的內容。這個時候就確認了秘鑰方的身份。
那么如果確認信息沒有在中途改過呢?
那么可以這樣,公鑰方對內容進行hash,然后和數字簽名解密出來的進行對比,如果相等就沒有串改,如果不相等就串改了。
這樣似乎就很愉快了,那么為啥又有數字證書這東西呢?
是這樣的,我們知道公鑰方是靠公鑰作為探頭來識別私鑰信息。
那么問題來了,如果發生一件這種事情就是公鑰方的公鑰被黑客換了,那么這個時候就有一個情況了。
加入公鑰被換了,那么和原來的私鑰方無法確認關系了,但是這不是最恐怖的,最恐怖的在于假設有一個黑客,生成了B私鑰和B公鑰。
把B公鑰和公鑰方的公鑰換了,然后用私鑰B和公鑰方溝通,那么這個時候呢,可想而知多么恐怖。公鑰方會一直認為是在和私鑰方溝通,其實一直在和黑客玩耍。
這時候數字證書的作用就來了。
首先有一家公共的CA機構,專門管理證書。它做了這么一件事,那就是用自己的私鑰對其他私鑰方的公鑰和其他信息進行加密。
那么私鑰方在公鑰方第一次請求自己信息的時候,把證書給公鑰方,公鑰方通過證書拿到公鑰,而不是一個固定的公鑰,這樣子就很好了。
來看下https的吧。
下面是阮一峰的解釋:
1.
首先,客戶端向服務器發出加密請求。
服務器用自己的私鑰加密網頁以后,連同本身的數字證書,一起發送給客戶端。
3.
客戶端(瀏覽器)的"證書管理器",有"受信任的根證書頒發機構"列表。客戶端會根據這張列表,查看解開數字證書的公鑰是否在列表之內。
就是證書里面的網址和我們瀏覽的網站不一致。
如果這張數字證書不是由受信任的機構頒發的,瀏覽器會發出另一種警告。
6.
如果數字證書是可靠的,客戶端就可以使用證書中的服務器公鑰,對信息進行加密,然后與服務器交換加密信息。
總結
以上是生活随笔為你收集整理的密码学系列——数字签名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows远程管理服务winrm
- 下一篇: 算法生成青天白日满地红旗