PKI基礎內容介紹(3)
PKI基礎之公開密鑰數字簽名算法(簽名)
DSA(Digital Signature Algorithm,數字簽名算法,用作數字簽名標準的一部分),它是另一種公開密鑰算法,它不能用作加密,只用作數字簽名。DSA使用公開密鑰,為接受者驗證數據的完整性和數據發送者的身份。它也可用于由第三方去確定簽名和所簽數據的真實性。DSA算法的安全性基于解離散對數的困難性,這類簽字標準具有較大的兼容性和適用性,成為網絡安全體系的基本構件之一。
DSA簽名算法中用到了以下參數:
1.p是L位長的素數,其中L從512到1024且是64的倍數。
2.q是160位長且與p-1互素的因子。
3.其中h是小于p-1并且滿足 大于1的任意數。
4.x是小于q的數。
另外,算法使用一個單向散列函數H(m)。標準指定了安全散列算法(SHA)。三個參數p,q和g是公開的,且可以被網絡中所有的用戶公有。私人密鑰是x,公開密鑰是y。
對消息m簽名時:
(1) 發送者產生一個小于q的隨機數k。
(2) 發送者產生:r和s就是發送者的簽名,發送者將它們發送給接受者。
(3) 接受者通過計算來驗證簽名:如果v=r,則簽名有效。
DSA簽名:
公開密鑰:
p 512位到1024位的素數,q 160位長,并與p-1互素的因子,其中h是小于p-1并且滿足 大于1的任意數。
私人密鑰:x小于q
簽名:k選取小于q的隨機數
驗證:如果v=r,則簽名被驗證。
PKI基礎之數字簽名與數字信封
公鑰密碼體制在實際應用中包含數字簽名和數字信封兩種方式。
數字簽名是指用戶用自己的私鑰對原始數據的哈希摘要進行加密所得的數據。信息接收者使用信息發送者的公鑰對附在原始信息后的數字簽名進行解密后獲得哈希摘要,并通過與自己用收到的原始數據產生的哈希哈希摘要對照,便可確信原始信息是否被篡改。這樣就保證了數據傳輸的不可否認性。
哈希算法是一類符合特殊要求的散列函數(Hash)函數,這些特殊要求是:
1.接受的輸入報文數據沒有長度限制;
2.對任何輸入報文數據生成固定長度的摘要("數字指紋")輸出;
3.由報文能方便地算出摘要;
4.難以對指定的摘要生成一個報文,由該報文可以得出指定的摘要;
5.難以生成兩個不同的報文具有相同的摘要。
數字信封的功能類似于普通信封。普通信封在法律的約束下保證只有收信人才能閱讀信的內容;數字信封則采用密碼技術保證了只有規定的接收人才能閱讀信息的內容。數字信封中采用了單鑰密碼體制和公鑰密碼體制。信息發送者首先利用隨機產生的對稱密碼加密信息,再利用接收方的公鑰加密對稱密碼,被公鑰加密后的對稱密碼被稱之為數字信封。在傳遞信息時,信息接收方要解密信息時,必須先用自己的私鑰解密數字信封,得到對稱密碼,才能利用對稱密碼解密所得到的信息。這樣就保證了數據傳輸的真實性和完整性。
【編輯推薦】