數字簽名的全過程簽名與驗證

2021-09-25 17:46:46 字數 1388 閱讀 7980

數字簽名的全過程分兩大部分,即簽名與驗證。

一側為簽名,一側為驗證過程。

發方將原文用雜湊演算法求得數字摘要,用簽名私鑰對數字摘要加密得數字簽名,發方將原文與數字簽名一起傳送給接受方;

收方驗證簽名,即用發方公鑰解密數字簽名,得出數字摘要;收方將原文採用同樣雜湊演算法又得一新的數字摘要,將兩個數字摘要進行比較,如果二者匹配,說明經數字簽名的電子檔案傳輸成功。

1、數字簽名的簽名過程   

數字簽名的操作過程需要有發方的簽名數字證書的私鑰及其驗證公鑰。      具體過程如下:首先是生成被簽名的電子檔案(《電子簽名法》中稱資料電文),然後對電子檔案用雜湊演算法做數字摘要,再對數字摘要用簽名私鑰做非對稱加密,即做數字簽名;之後是將以上的簽名和電子檔案原文以及簽名證書的公鑰加在一起進行封裝,形成簽名結果傳送給收方,待收方驗證。 

2、數字簽名的驗證過程   

接收方收到發方的簽名結果後進行簽名驗證,其具體操作過程如下:      接收方收到數字簽名的結果,其中包括數字簽名、電子原文和發方公鑰,即待驗證的資料。接收方進行簽名驗證。驗證過程是:接收方首先用發方公鑰解密數字簽名,匯出數字摘要,並對電子檔案原文做同樣雜湊演算法得出乙個新的數字摘要,將兩個摘要的雜湊值進行結果比較,相同簽名得到驗證,否則無效。這就做到了《電子簽名法》中所要求的對簽名不能改動,對簽署的內容和形式也不能改動的要求。  

3、數字簽名的實現方法   

基本原理是將原文用對稱金鑰加密傳輸,而將對稱金鑰用收方公鑰加密傳送給對方。收方收到電子信封,用自己的私鑰解密信封,取出對稱金鑰解密得原文。

其詳細過程如下:  

(1)發方a將原文資訊進行雜湊運算,得一雜湊值即數字摘要md;  

(2)發方a用自己的私鑰pva,採用非對稱rsa演算法,對數字摘要md進行加密,即得數字簽名ds;  

(3)發方a用對稱演算法des的對稱金鑰sk對原文資訊、數字簽名sd及發方a證書的公鑰pba採用對稱演算法加密,得加密資訊e;  

(4)發方用收方b的公鑰pbb,採用rsa演算法對對稱金鑰sk加密,形成數字信封de,就好像將對稱金鑰sk裝到了乙個用收方公鑰加密的信封裡;    (5)發方a將加密資訊e和數字信封de一起傳送給收方b;  

(6)收方b接受到數字信封de後,首先用自己的私鑰pvb解密數字信封,取出對稱金鑰sk;  

(7)收方b用對稱金鑰sk通過des演算法解密加密資訊e,還原出原文資訊、數字簽名sd及發方a證書的公鑰pba;  

(8)收方b驗證數字簽名,先用發方a的公鑰解密數字簽名得數字摘要md;    (9)收方b同時將原文資訊用同樣的雜湊運算,求得乙個新的數字摘要md;    (10)將兩個數字摘要md和md進行比較,驗證原文是否被修改。如果二者相等,說明資料沒有被篡改,是保密傳輸的,簽名是真實的;否則拒絕該簽名。這樣就做到了敏感資訊在數字簽名的傳輸中不被篡改,未經認證和授權的人,看不見原資料,起到了在數字簽名傳輸中對敏感資料的保密作用。

數字簽名的簽名與驗證

1 數字簽名的簽名過程 數字簽名的操作過程需要有發方的簽名數字證書的私鑰及其驗證公鑰。具體過程如下 首先對代發檔案做雜湊演算法形成數字摘要,在對數字摘要用簽名私鑰做非對稱加密形成數字簽名 之後將以上的簽名和電子檔案原文以及簽名證書的公鑰加在一起進行封裝,形成簽名結果傳送給收方待收方驗證。2 數字簽名...

openssl DSA 數字簽名與簽名驗證

與rsa不同,dsa的主要功能是做數字簽名與簽名驗證。dsa不具備對資料進行加密解密的功能,因此在使用上面請注意。往往有很多使用者誤認為非對稱加密演算法都可以對資料進行加解密處理,其實不然,dsa就是乙個很好的例子。使用c c 呼叫openssl crypt庫進行dsa測試,如下 gcc o tes...

數字簽名的驗證

通常的我們在軟體發布前要對binary dll,exe 進行數字簽名,數字簽名可以標識軟體的發布商,也可以通過數字簽名來檢查此軟體是否被修改或受病毒影響。sigcheck是來自sysinternals的數字簽名驗證工具,可以檢視指定的檔案或目錄下的哪些檔案沒有數字簽名。此工具是命令列工具,可以用來批...