數字簽名是一種常用的工具用來實現簽名,認證,資料完整性保證,這是一種公鑰保證的方式,相應的私鑰也有這種保護方式為mac,訊息驗證碼,但是對於訊息驗證碼原理雖然相同的,但是是通過雙方共享的金鑰產生的驗證碼,如果乙個傳送者對多個人傳送相同的簽名,則如果是對稱方式,每兩兩之間就會有產生乙個新的訊息驗證碼,但是對於公鑰密碼體制而言就不需要了,因為對於公鑰密碼體制是採用私鑰進行簽名,而採用公鑰進行驗證,不需要達到每兩個人直接都有一種不能被別人知道的金鑰,簽名者的公鑰可以被任何人知道,只要生成一次,那麼就可以被多方驗證。而且對於金鑰而言,公鑰密碼體制中的公鑰我可以在公開信道進行傳輸,但是對稱密碼體制不會在公開信道進行傳送,必須保護對稱密碼。
在可不可以否認上的不同,對於對稱密碼,既然都是用相同的金鑰進行的簽名,那麼某方能夠形成這種簽名,另一方能夠生成同樣的簽名。而且當某方否認的時候,需要將兩方共享的金鑰分享給第三方。
數字簽名的弊端在於其效率要比訊息驗證碼低好多,2至3個數量級。
數字簽名的簽名與驗證
1 數字簽名的簽名過程 數字簽名的操作過程需要有發方的簽名數字證書的私鑰及其驗證公鑰。具體過程如下 首先對代發檔案做雜湊演算法形成數字摘要,在對數字摘要用簽名私鑰做非對稱加密形成數字簽名 之後將以上的簽名和電子檔案原文以及簽名證書的公鑰加在一起進行封裝,形成簽名結果傳送給收方待收方驗證。2 數字簽名...
openssl DSA 數字簽名與簽名驗證
與rsa不同,dsa的主要功能是做數字簽名與簽名驗證。dsa不具備對資料進行加密解密的功能,因此在使用上面請注意。往往有很多使用者誤認為非對稱加密演算法都可以對資料進行加解密處理,其實不然,dsa就是乙個很好的例子。使用c c 呼叫openssl crypt庫進行dsa測試,如下 gcc o tes...
數字簽名的驗證
通常的我們在軟體發布前要對binary dll,exe 進行數字簽名,數字簽名可以標識軟體的發布商,也可以通過數字簽名來檢查此軟體是否被修改或受病毒影響。sigcheck是來自sysinternals的數字簽名驗證工具,可以檢視指定的檔案或目錄下的哪些檔案沒有數字簽名。此工具是命令列工具,可以用來批...