9.5.3 數字簽名原理
數字簽名是一種確保數據完整性和原始性的方法。數字簽名可以提供有力的證據,表明自從數據被簽名以來數據尚未發生更改,並且它可以確認對數據簽名的人或實體的身份。數字簽名實現了“完整性”和“認可性”這兩項重要的安全功能,而這是實施安全電子商務的基本要求。
當數據以明文或未加密形式分發時,通常使用數字簽名。在這種情況下,由於消息本身的敏感性無法保證加密,因此必須確保數據仍然保持其原來的格式,並且不是 由冒名者發送的。因為在分布式計算環境中,網絡上具有適當訪問權的任何人,無論是否被授權都可以很容易讀取或改變明文文本。
數字簽名主要是為了證明發件人身份,就像我們來看到的某文件簽名一樣。但現在要說的簽名是采取電子數字簽名的方式。這種簽名還可以防止別人仿簽,因為經過加密過的簽名會變得面目全非,別人根本不可能看到真正的簽名樣子。在第9.5.2節 介紹了在文件傳輸和郵件發送中利用文件加密方式來阻止非法用戶打開的原理,其實僅用了文件加密方式還不足以保證郵件傳輸的真正安全,因為郵件內容還可能被 非法用戶替換,盡管這些非法用戶不能查看原郵件中的真正內容。這就涉及到如何確保自己收到的郵件就是自己希望的用戶發來的問題了,此時就需要用到數字簽名 技術。但是在郵件傳輸中,通常又不是單獨使用文件加密或者數字簽名,而是一起結合起來使用,它們兩者一起作用就可取到非常好的安全保護了。下面仍以第9.5.2節實例為例進行介紹,不同的只是在此封郵件發送中同時采用了文件加密和數字簽名,實施雙重保護。具體步驟如下。
n
Alice與Bob互換公鑰。
n
Alice用自己的私鑰對TXT文件進行數字簽名。
n
Alice用Bob的公鑰對TXT文件進行加密。
n
Alice把經過數字簽名和加密的文件TXT,通過郵件或其他傳輸途徑,如QQ、MSN等)傳給Bob。
n
Bob在收到簽名並加密的郵件后首先用Bob自己的私鑰進行文件加密的解密,然后再用Alice的公鑰進行數字簽名解密。
同樣,在這個過程中Cinda也可以獲取Bob、Alice的公鑰和簽名並加密的標書文件TXT。同時因無Bob的私鑰而無法打開郵件。同時由於Alice在發送文件前已用自己的私鑰進行了數字簽名,所以當Bob在收到郵件后完全可以證實自己收到的就是Alice發來的郵件,而不可能是其他用戶的。試想如果Cinda非法用戶想要改變郵件,冒充Alice向Bob發送郵件,因Cinda沒有Alice的私鑰,所以在用其他用戶的私鑰進行數字簽名時就不可能再以Alice的公鑰來解密數字簽名了。
|
在 這里要注意文件加密和數字簽名的先后順序,一定是先簽名再加密,這樣加密技術就可以同時保證郵件中的數字簽名了。如果先加密,而后簽名,非法用戶在得到郵 件后就可通過獲取的公鑰破解數字簽名了,因為公鑰是可以公開的,很容易被一些別有用心的人得到。數字簽名破解后很可能簽名被替換。當然郵件中的內容在沒有 收件人私鑰的情況下還是無法打開的。
|
以上介紹的是利用公鑰和私鑰進行文件加密和數字簽名的原理,其實在實際應用中,這些公鑰和私鑰用戶是不用具體關心它們的組成,而是由證書頒發機構或者軟件 自己生成。就拿公鑰來說吧,那么長的代碼,看起來都怕,而且隨着密鑰位置的增加,代碼長度也隨之增加,當然破解難度也將增加,也就越安全。但在一定程度上 對使用有一些影響。
