對稱加密 非對稱加密 單向加密 ...
對稱加密
1.對稱加密:
加密和解密使用同一個密鑰,其安全性依賴於密鑰而非演算法。
2.對稱加密的演算法:
DES(Data Encryption Standard):數據加密標準,速度較快,適用於加密大量數據的場合,是56bits加密。
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行的三次加密,強度較高。
AES(Advanced Encrpytion Standard):高級加密標準,是下一代的加密演算法標準,速度快,安全級別高,含有128、192、256bits加密。
IDEA:這種演算法是在DES演算法的基礎上發展出來的,類似於三重DES,IDEA的密鑰為128位。
Blowfish 、Twofish、RC6 、CAST5….等
3.對稱(傳統)加密演算法的優缺點:
優點:
演算法公開、計算量小、加密速度快、加密效率高。
缺點:
1.交易雙方都用同樣的密鑰,安全性得不到保證。
2.每對用戶每次使用對稱加密演算法時,都需要使用其他人不知道的唯一密鑰,這會使得發收雙方所擁有的密鑰數量幾何級增長,密鑰管理成為用戶的負擔。對稱加密演算法在分散式網路系統上使用較為困難,主要因為密鑰管理困難,使用成本高。3.數據來源無法確認。
4.實現對稱加密的工具:
gpg(有些麻煩)
openssl enc (常用)
非對稱加密
1。非對稱加密:
加密和解密用不同個的密鑰,其安全性依賴於演算法與密鑰。非對稱加密另一個稱呼為公鑰加密。
2。非對稱加密的特點:
有兩個密鑰,公鑰(publicky)和私鑰(privatekey),一個公鑰有且只有一個與之對應的私鑰。
加密密鑰和解密密鑰是成對出現的,公鑰公開,私鑰自己留存。
公鑰是從私鑰中提取而來,用公鑰加密數據,只能使用與之配對的私鑰解密;反之亦然。
某個用戶用其私鑰解密數據,其他用戶有其公約解密,從而實現了數字簽名的作用。
公約加密的另一個作用是實現密鑰交換。
公鑰的密鑰長,加密和解密速度慢。
3。註意:
1.非對稱加密的演算法運行速度相對慢,所以當需要加密大量數據時,建議採用速度快的對稱加密演算法,提高加解密速度。
2.實際操作中是配合對稱和非對稱加密的,採用非對稱加密演算法管理對稱加密演算法的密鑰,然後用對稱加密演算法的密鑰來加密和解密數據。
4。非對稱加密的演算法:
RSA:由RSA公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的。
DSA(Digital Signature Algoorithm):數字簽名演算法,是一種標準的DSS(數字簽名標準)。
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
5。實現:
實現加密:
接收者:
生成公鑰/密鑰對:P和S
公開公鑰P ,保密密鑰S
發送者:
使用接收者的公鑰來加密消息M
將P(M)發送給接收者
接收者:
使用密鑰S來解密:M=S(P(M))
實現數字簽名:
發送者:
生成公鑰/密鑰對:P和S
公開公鑰P,保密密鑰S
使用密鑰S來加密消息M
發送給接收者S(M)
接收者:
使用發送者的公鑰來解密M=P(S(M))
結合簽名和加密:
a用密鑰S來加密消息M1發給b來確認身份,
b確認身份後,用a公開的密鑰P來加密消息M2發送給a,
a用密鑰S解密M2。
6。非對稱加密的工具
openssl rsautl,openssl genrsa,openssl rsa
gpg(很少用)
單向加密
1。單向加密:
單向加密,不能解密,因為解密過程是一個二次加密的過程,主要是提取數據的特征碼。
單向加密演算法又稱摘要演算法或散列演算法,也稱散列或散列值。
散列就是通過把一個叫做散列演算法的單向數學函數應用於數據,將任意長度的一塊數據轉換位一個定長的、不可逆轉的數字,其長度在128-256位之間。
由於散列值足夠長,因此找到兩塊相同散列值的數據的機會很小。
2。單向加密的特性:
只要源文本不同,計算得到的結果必然不同,或者說相同的機會很少。
無法從結果反退出源數據。
任何輸入信息的變化,哪怕僅僅一位,都將導致結果的明顯變化,也就是說具有雪崩效應。
定長輸出且不可逆。
3。單向加密的作用:
確保數據的完整性
4。單向加密的演算法有:
MD5(Message Digest Algorithm 5)(信息-摘要演算法):是一種單向散列演算法,可以用來把不同長度的數據塊進行暗碼運算成一個固定位的數值(通常為128位);其作用是讓大容量信息在用數字簽名軟體簽署私人密鑰前被“壓縮”成一種保密的格式。
SHA(Secure Hash Algorithm):安全散列演算法,該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段通常更小的密文,也可以簡單的理解為取一段輸入碼(稱為預映射或信息),並把它們轉換為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。
MAC(Message Authentication Code):消息認證代碼,是一種使用密鑰的單向函數,可以用它們在系統上或用戶之間認證文件或消息,常見的是HMAC(用於消息認證的密鑰散列演算法)。MAC是單向加密的一種延伸應用,用於實現網路通信中保證所傳輸數據的完整性機制。
CRC(Cyclic Redundancy Check):迴圈冗餘校驗碼,CRC校驗由於實現簡單,檢錯能力強,被廣泛使用在各種數據校驗應用中,占用系統資源少,用軟硬體都可實現,是進行數據傳輸差錯檢測地一種很好的手段。
5。單向加密工具:
md5sum
sha1sum,shaNsum...
openssl dgst