【SCRY知識課堂】什麼是數字簽名?

買賣虛擬貨幣

上週我們講到了公鑰、私鑰,今天要講的數字簽名,剛好也會用到它們。小狐狸有兩個金鑰,一個叫公鑰Public Key,一個叫私鑰Private Key。

小狐狸的公鑰大家都能獲得,不管是二哈、柴柴還是小短腿,不過私鑰是自己私有的。但不管是私鑰還是公鑰,都可以用來加密資訊,將一段可以理解閱讀的明文資訊進行加密後,變成一段‘亂碼。因此,只有持有正確金鑰,才能重新將這段加密後的資訊恢復成可以理解閱讀的真實資訊。

有一天,二哈要發一個重要的訊息給好朋友小狐狸。他把“明天中午,老地方見”這句話,用小狐狸的公鑰進行了加密。小狐狸收到後,就可以用自己的私鑰進行解密。就算後來有人竊取了二哈傳給小狐狸的資訊,但是由於沒有小狐狸的私鑰,無法對資訊進行解碼,所以即使竊取了資訊,也無法閱讀理解。

這時候,柴柴發現了二哈傳送的這段資訊,可自己又沒有私鑰無法看到資訊原本內容。卻可以對資訊進行篡改,破壞原有的資訊,這樣小狐狸收到被篡改的資訊之後,再用自己的私鑰進行解碼,就會與二哈本來想要傳達的資訊出現不一致。

這時心裡就想:“嘿嘿嘿,得想辦法捉弄一下小狐狸”。可是柴柴真的能如嘗所願嗎?

所以,我們現在的問題就是,我們要保證資訊的完整性,也就是保證資訊不被破壞,或者說,當資訊被破壞之後,接收方可以識別出,這個時候的資訊是被破壞過的,就將其丟棄。

數字簽名就可以解決這樣的問題。根據數字簽名,接收方接收到資訊之後,可以判斷資訊是否被破壞過,如果沒有被破壞,就可以正確的解碼,如果被破壞,就直接丟棄。

數字簽名可以保證對資訊的任何篡改都可以被發現,從而保證資訊傳輸過程中的完整性。

那麼,數字簽名是如何實現對完整性保證的呢?

這裡有一個關鍵技術:Hash,也就是雜湊技術。

首先,二哈先對將要傳輸的資訊(原文資訊)進行Hash,得到一串獨一無二的字元,這就是——資訊摘要Message Digest。

這段字元有多麼獨一無二呢?我們要知道,Hash往往是不可逆的。而且,不同的原文,Hash過後,結果是不一樣的。比如下面的”bitcoin”和”bit.coin”, 只多了一個“.”,結果就大相徑庭。

這樣就保證了柴柴對原文的任何修改都會被發現。

這時候,二哈還要將Hash後得到的資訊摘要,用自己的私鑰進行加密,以此保證只有二哈的公鑰才能對資訊摘要進行正確的解碼。這樣一來,就保證了資訊摘要一定是來自二哈的,也就是起到了一個獨一無二的簽名的作用。

下面是重點:
加密後的資訊摘要實際就是數字簽名的內容。

其實到這裡,我已經回答了一個問題——“什麼是數字簽名?”

那麼,數字簽名的作用是如何體現的呢?我們繼續往下看。

在得到數字簽名後,二哈還需要把數字簽名附加在原文資訊後面,這樣就形成了一個完整的帶數字簽名的資訊報文。

二哈現在把這個數字簽名附加在信件原文下面,一起發給了小狐狸。

小狐狸收到來信後,取下數字簽名,用二哈的公鑰解密,這時候就得到了信件的摘要。既然能用二哈的公鑰進行解密,那就說明了這個信件確實是二哈發出的。

這時,小狐狸還需要確認一個問題,那就是這封信有沒有被別人(柴柴)修改過?

小狐狸應該做呢?大家思考一下。

回答這個問題,我們需要先理清小狐狸現在有什麼?
小狐狸有:1、來自二哈的帶有數字簽名的信件;2、已經透過二哈的公鑰解密出的資訊摘要。

在最前面跟大家說過,由信件原文,透過Hash運算也可以得到資訊摘要。

因為Hash過後的資訊,都是獨一無二的,小狐狸只需要將兩個資訊摘要進行比較,就可以知道信件原文到底有沒有被修改過。

從上圖中,我們可以看到兩個資訊摘要是相同的,這說明了信件原文未被修改過。

以上,就是今天所講數字簽名的全部內容。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;