1. 程式人生 > >與加密解密相關的一些內容

與加密解密相關的一些內容

加密解密

加密方案:
因素:
加密算法和協議:
加密密鑰:

加密算法和協議:
對稱加密算法:
主流的加密算法:
DES:Data Encryption Standard,數據加密標準;
64bits塊,加密密鑰的長度56bits;
NSA:
3DES,DES3
AES:Advanced Encryption Standard,高級加密標準;
加密密鑰的長度,128bits,192bits,256bits
Blowfish:
Twofish:
IDEA
RC4,RC6
CASTS

特性:
1.每對通信主機都需要保有一個唯一的通信密鑰,用於加密和解密數據;
2.將原始的數據分割成固定大小的塊,逐個加密;
3.加密和解密的速度非常快;
缺陷:
1.在一臺主機上需要保有的密鑰數量會比較多;

2.密鑰的分發非常困難;
3.公鑰加密算法(非對稱加密算法):
密鑰是由私鑰和由私鑰抽取生成的公鑰組成;
私鑰:512bits,1024bits,2048bits,4096bits,8192bits,16384bits;

主流的公鑰加密算法:
RSA:加密,數字簽名;
DSA:Digital Signature Algorithm,數字簽名算法;只能做數字簽名;有時此算法也被稱為DSS,Digital Signature Standard
Elgamal:

特性:
1.使用密鑰進行加密和解密的時候,私鑰加密的數據只能由與之對應的公鑰才能解密;同樣,使用公鑰加密的數據只能由與之對應的私鑰才能解密;
私鑰:通過特定的工具隨機創建生成,由使用者自己留存,務必保證其私密性;被稱為"secret key" 或 "private key";

公鑰:通過特定的工具從私鑰中抽取生成,僅僅是私鑰的一部分;公鑰可以公開給所有人使用;被稱為"public key"
2.私鑰的長度都比較長,加密之後的數據安全等級較高;

缺陷:
加密數據的時候,消耗系統資源和時間都較多,速度很慢,因此,極少用來加密大量數據;

公鑰加密算法的用途:
1.密鑰交換:發送方使用接收方的公鑰加密對稱加密算法的密鑰,將加密後的密鑰發送給接收方;
2.數字簽名:可以確保數據傳輸過程中發送法的身份的正確性;

單向加密算法(Hash加密算法,數據指紋算法):
只能加密不能解密,又稱為"數據指紋提取";數據指紋即數據特征碼;

主流的單向加密算法:
md5:Message Digest Version 5,信息摘要算法第五版;

128bits定長輸出;
sha系列: Security Hash Algerithm,安全的哈希算法;
sha-1:160bits定長輸出;
sha224:224bits定長輸出;
sha256:
sha384:
sha512:

特性:
1.定長輸出;
2.雪崩效應;

認證協議:
密鑰交換算法:
1.公鑰加密:
2.DH算法:Diffie-Hellman
用於在通信雙方生成一對用於公鑰加密算法的密鑰對;
A:p, g
B:p, g
A:x
B: y
A:p^x%g --> B: (p^x%g)^y == p^xy%g
A:p^y%g --> B: (p^y%g)^x == p^xy%g

加密算法的應用:
1.通信雙方互換各自的證書,並到信任的CA進行證書有效性認證;
2.如果證書認證有效,發送方就使用某種協商好的對稱加密算法進行數據加密;對加密後的數據進行特征值抽取,然後再用自己的私鑰加密碼抽取出來的特征值,以證明數據來源可靠性;發送方利用接收方的公鑰加密對稱加密算法的密鑰;
3.接收方在收到數據報文之後,先用自己的私鑰解密對稱加密算法的密鑰,然後用發送方的公鑰解密被加密的特征值,以證明數據來源可靠,再利用相同的加密單向加密算法計算數據的特征值,比較兩個特征值,以證明數據完整性;再用對稱密鑰解密加密的數據即可;

與加密解密相關的一些內容