其實數字簽名的概念很簡單。大家知道,要確保可靠通訊,必須要解決兩個問題:首先,要確定訊息的**確實是其申明的那個人;其次,要保證資訊在傳遞的過程中不被第三方篡改,即使被篡改了,也可以發覺出來。
所謂數字簽名,就是為了解決這兩個問題而產生的,它是對前面提到的非對稱加密技術
與數字摘要
技術的乙個具體的應用。
對於訊息的傳送者來說,先要生成一對公私鑰對,將公鑰給訊息的接收者。
如果訊息的傳送者有一天想給訊息接收者發訊息,在傳送的資訊中,除了要包含原始的訊息外,還要加上另外一段訊息。這段訊息通過如下兩步生成:
1)對要傳送的原始訊息提取訊息摘要;
2)對提取的資訊摘要用自己的私鑰加密。
通過這兩步得出的訊息,就是所謂的原始資訊的數字簽名。
而對於資訊的接收者來說,他所收到的資訊,將包含兩個部分,一是原始的訊息內容,二是附加的那段數字簽名。他將通過以下三步來驗證訊息的真偽:
1)對原始訊息部分提取訊息摘要,注意這裡使用的訊息摘要演算法要和傳送方使用的一致;
2)對附加上的那段數字簽名,使用預先得到的公鑰解密;
3)比較前兩步所得到的兩段訊息是否一致。如果一致,則表明訊息確實是期望的傳送者發的,且內容沒有被篡改過;相反,如果不一致,則表明傳送的過程中一定出了問題,訊息不可信。
通過這種所謂的數字簽名技術,確實可以有效解決可靠通訊的問題。如果原始訊息在傳送的過程中被篡改了,那麼在訊息接收者那裡,對被篡改的訊息提取的摘要肯定和原始的不一樣。並且,由於篡改者沒有訊息傳送方的私鑰,即使他可以重新算出被篡改訊息的摘要,也不能偽造出數字簽名。
所以,綜上所述,數字簽名其實就是只有資訊的傳送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對資訊的傳送者傳送資訊真實性的乙個有效證明。
不知道大家有沒有注意,前面講的這種數字簽名方法,有乙個前提,就是訊息的接收者必須要事先得到正確的公鑰。如果一開始公鑰就被別人篡改了,那壞人就會被你當成好人,而真正的訊息傳送者給你發的訊息會被你視作無效的。而且,很多時候根本就不具備事先溝通公鑰的資訊通道。那麼如何保證公鑰的安全可信呢?這就要靠數字證書來解決了。
所謂數字證書,一般包含以下一些內容:
可以看出,數字證書其實也用到了數字簽名技術。只不過要簽名的內容是訊息傳送方的公鑰,以及一些其它資訊。但與普通數字簽名不同的是,數字證書中簽名者不是隨隨便便乙個普通的機構,而是要有一定公信力的機構。這就好像你的大學畢業證書上簽名的一般都是德高望重的校長一樣。一般來說,這些有公信力機構的根證書已經在裝置出廠前預先安裝到了你的裝置上了。所以,數字證書可以保證數字證書裡的公鑰確實是這個證書的所有者的,或者證書可以用來確認對方的身份。數字證書主要是用來解決公鑰的安全發放問題。
即數字證書是ca使用自己的私鑰對訊息傳送方的公鑰和相關資訊進行簽名,訊息接受者拿到證書後從ca處獲取ca的公鑰,以此公鑰對證書的合法性進行驗證。若ca是可信的話,則該方法可以證明訊息傳送方公鑰的有效性。
數字簽名和數字證書
到底什麼是 數字簽名 digital signature 和 數字證書 digital certificate 對這些問題的理解,一直模模糊糊,很多細節搞不清楚。今天,讀完一篇 通俗易懂的文章後,思路豁然開朗。為了加深記憶,這篇文章的翻譯版記錄如下。1.鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。2....
數字簽名和數字證書
英文 為 到底什麼是 數字簽名 digital signature 和 數字證書 digital certificate 對這些問題的理解,一直模模糊糊,很多細節搞不清楚。今天,讀完一篇 通俗易懂的文章後,思路豁然開朗。為了加深記憶,這篇文章的翻譯版記錄如下。1.鮑勃有兩把鑰匙,一把是公鑰,另一把是...
數字簽名和數字證書
數字簽名的全過程簽名與驗證 數字證書原理 數字簽名的全過程分兩大部分,即簽名與驗證。一側為簽名,一側為驗證過程。發方將原文用雜湊演算法求得數字摘要,用簽名私鑰對數字摘要加密得數字簽名,發方將原文與數字簽名一起傳送給接受方 收方驗證簽名,即用發方公鑰解密數字簽名,得出數字摘要 收方將原文採用同樣雜湊演...