說到數字信封和數字簽名,我們就得來談談加密算法了;
對稱算法:
特點: 加密密鑰 = 解密密鑰
常用的加密算法包括: DES ,3DES ,RC ,SM1 ,SM4
優點:加密速度相對於非對稱加密算法快很多。適用於加密大規模的數據
缺點: 由於對稱加密算法加密密鑰和解密密鑰相同的原因,在加密過程中需要保障密鑰的安全,抗抵賴性差
非對稱加密算法
特點:加密和解密使用不同的密鑰
一個密鑰公開稱公鑰
一個密鑰保密稱私鑰
常用的算法有:RSA .DSA ,ECC ,SM2
優點: 由於加密和解密使用不同的密鑰,所以在機密過程不必保持信道的保密性
抗抵賴性強,可以用來簽名
缺點: 耗能大,不適用加密大規模數據
Hash算法:
特點: 輸入長度不固定,輸出長度固定
不可逆
有可能發生碰撞
常用算法:
MD5
SHA-1 .SHA-224 ,SHA-256 ,SHA-384 ,SHA-512
SM3
數字信封:
由於對稱加密算法能夠加密大規模數據,但是需要對加密信道保密,而非對稱加密算法不需要保持加密信道的保密,但是 卻不能加密大量數據,我們將兩者的優點接合起來,這就是數字信封的由來
將明文數據通過對稱加密算法進行加密,在講對稱密鑰通過非對稱加密算法進行加密,把密文和數字信封發送給對方 對方通過私鑰解開數字信封得到對稱密鑰,然後用對稱密鑰解開密文就能得到明文了。
數字簽名:
把明文通過Hash函數生成數字摘要,然後通過接收方的私鑰對數字摘要進行簽名,把簽名和原文發送給對方,接收方驗簽得到數字摘要,然後把明文經過相同的Hash進行摘要,再把兩者進行對比。