數字簽名
數字簽名是筆跡簽名的模擬,用於保證信息傳輸的完整性、發送者身份認證,以及防止交易中抵賴行為等。
公鑰簽名體制的基本思路是:
①發送者A用自己的私鑰加密信息,從而對文件簽名
②將簽名的文件發送給接受者B
③B利用A的公鑰(可以從CA機構等渠道獲得)解密文件,從而驗證簽名。
非對稱加密算法流程
A與B之間要進行加密通信,非對稱加密流程是:
①A與B都要產生一對用於加密和解密的加密密鑰和解密密鑰
②A生成一對密鑰,將公用密鑰向其他方公開。將公鑰傳送給B,將私鑰自己保管。B將公鑰傳送給A,將私鑰自己保管。
③A發送消息給B時,先用B的公鑰對信息進行加密,再將密文發送給B
④B收到A發來的消息時,用自己的私鑰解密
注意:A和B都只能用其專用私鑰加密由其公鑰加密后的任何信息。
非對稱加密為數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那么只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網絡發送出去,因此安全性大大提高。
目前最常用的非對稱加密算法是RSA算法,是Rivest, Shamir, 和Adleman於1978年發明,他們那時都是在MIT。.NET中也有RSA算法,
對稱加密
對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。
對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。因為密鑰越大,加密越強,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰,那黑客們可以先試着用0來解密,不行的話就再用1解;但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。