對稱加密、非對稱加密、數(shù)字簽名

對稱加密和非對稱加密

對稱加密

通信雙方使用同一個密鑰,不同算法工作。數(shù)據(jù)發(fā)送方使用密鑰和加密算法對數(shù)據(jù)進行加密,數(shù)據(jù)接收方使用密鑰和解密算法對密文進行解密,還原數(shù)據(jù)。

基本模型如下圖所示。


對稱加密模型
  • 常見對稱加密算法DES、AES。
  • 加密算法缺點:密鑰需要數(shù)據(jù)發(fā)送方通過不可信網(wǎng)絡(luò)傳輸給數(shù)據(jù)接受方,密鑰存在泄漏風(fēng)險。

非對稱加密

通信雙方使用不同的密鑰,相同的算法工作。數(shù)據(jù)發(fā)送方持有公鑰,數(shù)據(jù)接收方持有私鑰。公鑰由數(shù)據(jù)接收方通過網(wǎng)絡(luò)發(fā)送給數(shù)據(jù)發(fā)送方。數(shù)據(jù)發(fā)送方通過加密算法和公鑰對數(shù)據(jù)進行加密,數(shù)據(jù)接收方通過加密算法和私鑰對密文進行解密,還原數(shù)據(jù)。

基本模型如下圖所示。


非對稱加密模型
  • 常見非對稱加密算法 RSA、DSA。
  • 非對稱加密算法私鑰由數(shù)據(jù)接收方持有,不會在網(wǎng)絡(luò)上傳遞,保證了密鑰的安全。
  • 非對稱加密算法通常比對稱加密算法計算復(fù)雜,性能消耗高。
  • 非對稱加密算法可用于數(shù)字簽名。

數(shù)字簽名

數(shù)字簽名是安卓 APK 校驗安裝包是否被篡改、損壞的有效手段。數(shù)字簽名采用了非對稱加密 + Hash 兩種技術(shù)。具體原理參見下圖,主要是以下幾步。

  1. 對原始數(shù)據(jù)進行 hash,得到數(shù)據(jù)摘要。
  2. 通過私鑰和加密算法對數(shù)據(jù)摘要進行加密得到加密后的數(shù)據(jù)摘要。
  3. 將加密后的數(shù)據(jù)摘要附加在原始數(shù)據(jù)后,組合成簽名后的數(shù)據(jù),并發(fā)送個對方。
  4. 對方收到簽名后的數(shù)據(jù)后,將原始數(shù)據(jù)和簽名的摘要分開。同樣通過 hash 原始數(shù)據(jù)得到一份數(shù)據(jù)摘要。
  5. 對加密后的數(shù)據(jù)摘要通過公鑰解密,得到待驗證的數(shù)據(jù)摘要。
  6. 對比兩份數(shù)據(jù)摘要,只要完全一致則表明原始數(shù)據(jù)未被篡改或損壞。


    數(shù)字簽名模型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容