的那個人;其二,要保證信息在傳遞的過程中不被第三方篡改,即使被篡改了,也可以
發覺出來。
所謂數字簽名,就是為了解決這兩個問題而產生的,它是對非對稱加密技術與數字摘要
技術的壹個具體的應用。
對於消息的發送者來說,先要生成壹對公私鑰對,將公鑰給消息的接收者。
如果消息的發送者有壹天想給消息接收者發消息,在發送的信息中,除了要包含原始的
消息外,還要加上另外壹段消息。這段消息通過如下兩步生成:
1)對要發送的原始消息提取消息摘要;
2)對提取的信息摘要用自己的私鑰加密。
通過這兩步得出的消息,就是所謂的原始信息的數字簽名。
而對於信息的接收者來說,他所收到的信息,將包含兩個部分,壹是原始的消息內容,
二是附加的那段數字簽名。他將通過以下三步來驗證消息的真偽:
1)對原始消息部分提取消息摘要,註意這裏使用的消息摘要算法要和發送方使用的壹致;
2)對附加上的那段數字簽名,使用預先得到的公鑰解密;
3)比較前兩步所得到的兩段消息是否壹致。如果壹致,則表明消息確實是期望的發送者
發的,且內容沒有被篡改過;相反,如果不壹致,則表明傳送的過程中壹定出了問題,
消息不可信。
通過這種所謂的數字簽名技術,確實可以有效解決可靠通信的問題。如果原始消息在傳
送的過程中被篡改了,那麽在消息接收者那裏,對被篡改的消息提取的摘要肯定和原始
的不壹樣。並且,由於篡改者沒有消息發送方的私鑰,即使他可以重新算出被篡改消息
的摘要,也不能偽造出數字簽名。
那麽數字簽名呢?
綜上所述,數字簽名其實就是只有信息的發送者才能產生的別人無法偽造的壹段數字
串,這段數字串同時也是對信息的發送者發送信息真實性的壹個有效證明。
不知道大家有沒有註意,前面講的這種數字簽名方法,有壹個前提,就是消息的接收者
必須要事先得到正確的公鑰。如果壹開始公鑰就被別人篡改了,那壞人就會被妳當成好
人,而真正的消息發送者給妳發的消息會被妳視作無效的。而且,很多時候根本就不具
備事先溝通公鑰的信息通道。那麽如何保證公鑰的安全可信呢?這就要靠數字證書來解
決了。
所謂數字證書,壹般包含以下壹些內容:
證書的發布機構(Issuer)
證書的有效期(Validity)
消息發送方的公鑰
證書所有者(Subject)
數字簽名所使用的算法
數字簽名
可以看出,數字證書其實也用到了數字簽名技術。只不過要簽名的內容是消息發送方的
公鑰,以及壹些其它信息。但與普通數字簽名不同的是,數字證書中簽名者不是隨隨便
便壹個普通的機構,而是要有壹定公信力的機構。這就好像妳的大學畢業證書上簽名的
壹般都是德高望重的校長壹樣。壹般來說,這些有公信力機構的根證書已經在設備出廠
前預先安裝到了妳的設備上了。所以,數字證書可以保證數字證書裏的公鑰確實是這個
證書的所有者的,或者證書可以用來確認對方的身份。數字證書主要是用來解決公鑰的
安全發放問題。
綜上所述,總結壹下,數字簽名和簽名驗證的大體流程如下圖所示:
引用鏈接: blogs.com/dacainiao/p/5842987.html