簡(jiǎn)述DSA數(shù)字簽名算法

在之前的文章中,我們了解了很多加密算法,基本上都是作為加密數(shù)據(jù)的工具出現(xiàn),那么今天我們來(lái)了解一個(gè)不能用來(lái)加密數(shù)據(jù),但卻被美國(guó)NIST作為DSS數(shù)字簽名的標(biāo)準(zhǔn)的加密算法——DSA數(shù)字簽名算法。

什么是DSA算法?

DSA數(shù)字簽名算法全稱為Digital Signature Algorithm,它是Schnorr和ElGamal簽名算法的變種,一種公開(kāi)密鑰算法,不能用來(lái)加密數(shù)據(jù),一般用于數(shù)字簽名和認(rèn)證。

DSA

DSA算法的特點(diǎn)

DSA算法中不單單只有公鑰、私鑰,還有數(shù)字簽名。私鑰加密生成數(shù)字簽名,公鑰驗(yàn)證數(shù)據(jù)及簽名。在DSA數(shù)字簽名和認(rèn)證中,發(fā)送者使用自己的私鑰對(duì)文件或消息進(jìn)行簽名,接受者收到消息后使用發(fā)送者的公鑰來(lái)驗(yàn)證簽名的真實(shí)性,包括數(shù)據(jù)的完整性以及數(shù)據(jù)發(fā)送者的身份,如果數(shù)據(jù)和簽名不匹配則認(rèn)為驗(yàn)證失敗。

DSA數(shù)字簽名可以理解為是單向加密的升級(jí),不僅校驗(yàn)數(shù)據(jù)完整性,還校驗(yàn)發(fā)送者身份,同時(shí)還由于使用了非對(duì)稱的密鑰來(lái)保證密鑰的安全,所以相比消息摘要算法更安全。

DSA和RSA不同之處在于它不能用作加密和解密,也不能進(jìn)行密鑰交換,只用于簽名,DSA比RSA要快很多。

DSA算法

DSA算法的原理

DSA是基于整數(shù)有限域離散對(duì)數(shù)難題的,其安全性與RSA相比差不多。DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開(kāi),這樣,當(dāng)使用別人的p和q時(shí),即使不知道私鑰,用戶也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的。

DSA

DSA算法簽名過(guò)程

  1. 使用消息摘要算法將要發(fā)送數(shù)據(jù)加密生成信息摘要。
  2. 發(fā)送方用自己的DSA私鑰對(duì)信息摘要再加密,形成數(shù)字簽名。
  3. 將原報(bào)文和加密后的數(shù)字簽名一并通過(guò)互聯(lián)網(wǎng)傳給接收方。
  4. 接收方用發(fā)送方的公鑰對(duì)數(shù)字簽名進(jìn)行解密,同時(shí)對(duì)收到的數(shù)據(jù)用消息摘要算法產(chǎn)生同一信息摘要。
  5. 將解密后的信息摘要和收到的數(shù)據(jù)在接收方重新加密產(chǎn)生的摘要進(jìn)行比對(duì)校驗(yàn),如果兩者一致,則說(shuō)明在傳送過(guò)程中信息沒(méi)有破壞和篡改;否則,則說(shuō)明信息已經(jīng)失去安全性和保密性。

DSA算法

DSA算法因?yàn)閺?qiáng)大的安全性,成為數(shù)字簽名算法中的佼佼者,目前已經(jīng)廣泛應(yīng)用于數(shù)字簽名領(lǐng)域。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。