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