數字簽名原理

科技探索者發表於2017-11-18

以下內容摘自筆者編著的《網管員必讀——網路安全》(第2版)

 

9.5.3  數字簽名原理

    數字簽名是一種確保資料完整性和原始性的方法。數字簽名可以提供有力的證據,表明自從資料被簽名以來資料尚未發生更改,並且它可以確認對資料簽名的人或實體的身份。數字簽名實現了“完整性”和“認可性”這兩項重要的安全功能,而這是實施安全電子商務的基本要求。
    當資料以明文或未加密形式分發時,通常使用數字簽名。在這種情況下,由於訊息本身的敏感性無法保證加密,因此必須確保資料仍然保持其原來的格式,並且不是由冒名者傳送的。因為在分散式計算環境中,網路上具有適當訪問權的任何人,無論是否被授權都可以很容易讀取或改變明文文字。
    數字簽名主要是為了證明發件人身份,就像我們來看到的某檔案簽名一樣。但現在要說的簽名是採取電子數字簽名的方式。這種簽名還可以防止別人仿籤,因為經過加密過的簽名會變得面目全非,別人根本不可能看到真正的簽名樣子。在第9.5.2節介紹了在檔案傳輸和郵件傳送中利用檔案加密方式來阻止非法使用者開啟的原理,其實僅用了檔案加密方式還不足以保證郵件傳輸的真正安全,因為郵件內容還可能被非法使用者替換,儘管這些非法使用者不能檢視原郵件中的真正內容。這就涉及到如何確保自己收到的郵件就是自己希望的使用者發來的問題了,此時就需要用到數字簽名技術。但是在郵件傳輸中,通常又不是單獨使用檔案加密或者數字簽名,而是一起結合起來使用,它們兩者一起作用就可取到非常好的安全保護了。下面仍以第9.5.2節例項為例進行介紹,不同的只是在此封郵件傳送中同時採用了檔案加密和數字簽名,實施雙重保護。具體步驟如下。
n         AliceBob互換公鑰。
n         Alice用自己的私鑰對TXT檔案進行數字簽名。
n         AliceBob的公鑰對TXT檔案進行加密。
n         Alice把經過數字簽名和加密的檔案TXT,通過郵件或其他傳輸途徑,如QQMSN等)傳給Bob
n         Bob在收到簽名並加密的郵件後首先用Bob自己的私鑰進行檔案加密的解密,然後再用Alice的公鑰進行數字簽名解密。
    同樣,在這個過程中Cinda也可以獲取BobAlice的公鑰和簽名並加密的標書檔案TXT。同時因無Bob的私鑰而無法開啟郵件。同時由於Alice在傳送檔案前已用自己的私鑰進行了數字簽名,所以當Bob在收到郵件後完全可以證實自己收到的就是Alice發來的郵件,而不可能是其他使用者的。試想如果Cinda非法使用者想要改變郵件,冒充AliceBob傳送郵件,因Cinda沒有Alice的私鑰,所以在用其他使用者的私鑰進行數字簽名時就不可能再以Alice的公鑰來解密數字簽名了。
在這裡要注意檔案加密和數字簽名的先後順序,一定是先簽名再加密,這樣加密技術就可以同時保證郵件中的數字簽名了。如果先加密,而後簽名,非法使用者在得到郵件後就可通過獲取的公鑰破解數字簽名了,因為公鑰是可以公開的,很容易被一些別有用心的人得到。數字簽名破解後很可能簽名被替換。當然郵件中的內容在沒有收件人私鑰的情況下還是無法開啟的。

    以上介紹的是利用公鑰和私鑰進行檔案加密和數字簽名的原理,其實在實際應用中,這些公鑰和私鑰使用者是不用具體關心它們的組成,而是由證書頒發機構或者軟體自己生成。就拿公鑰來說吧,那麼長的程式碼,看起來都怕,而且隨著金鑰位置的增加,程式碼長度也隨之增加,當然破解難度也將增加,也就越安全。但在一定程度上對使用有一些影響

本文轉自王達部落格51CTO部落格,原文連結http://blog.51cto.com/winda/36962如需轉載請自行聯絡原作者


茶鄉浪子


相關文章