加解密算法

 

對稱加密(Symmetric Cryptography),又稱私鑰加密

對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key),這種方法在密碼學中叫做對稱加密算法。

對稱加密有很多種算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。

因爲密鑰越大,加密越強,但加密與解密的過程越慢。

如果你只用1 bit來做這個密鑰,那黑客們可以先試着用0來解密,不行的話就再用1解;

但如果你的密鑰有1 MB大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。

密鑰的大小既要照顧到安全性,也要照顧到效率,是一個trade-off。

 

非對稱加密(Asymmetric Cryptography),又稱公鑰加密

1976年,美國學者Dime和Henman爲解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,

允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是“公開密鑰系統”。

相對於“對稱加密算法”這種方法也叫做“非對稱加密算法”。

非對稱加密爲數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。

私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。

非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。

比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人–銀行才能對你的消息解密。

與對稱加密不同的是,銀行不需要將私鑰通過網絡發送出去,因此安全性大大提高。

 

混合加密機制

 即先用計算複雜度高的非對稱加密協商一個臨時的對稱加密密鑰(會話密鑰,一般相對內容 來說要短的多),

然後雙方再通過對稱加密對傳遞的大量數據進行加解密處理。

典型的場景是現在大家常用的 HTTPS 機制。HTTPS 實際上是利用了 Transport Layer Security/Secure Socket Layer(TLS/SSL)來實現可靠的傳輸。

TLS 爲 SSL 的升級版本,目 前廣泛應用的爲 TLS 1.0,對應到 SSL 3.1 版本。

建立安全連接的具體步驟如下:

    客戶端瀏覽器發送信息到服務器,包括隨機數 R1,支持的加密算法類型、協議版本、壓 縮算法等。注意該過程爲明文。

    服務端返回信息,包括隨機數 R2、選定加密算法類型、協議版本,以及服務器證書。注 意該過程爲明文。

    瀏覽器檢查帶有該網站公鑰的證書。該證書需要由第三方 CA 來簽發,瀏覽器和操作系統 會預置權威 CA 的根證書。如果證書被篡改作假(中間人攻擊),很容易通過 CA 的證書 驗證出來。

    如果證書沒問題,則用證書中公鑰加密隨機數 R3,發送給服務器。此時,只有客戶端和 服務器都擁有 R1、R2 和 R3 信息,基於 R1、R2 和 R3,生成對稱的會話密鑰(如 AES 算法)。後續通信都通過對稱加密進行保護。

  1. 非對稱加密:傳遞公鑰,用公鑰加密,用私鑰解密。

  2. 非對稱密鑰加密的使用過程:
    1. A要向B發送信息,A和B都要產生一對用於加密和解密的公鑰和私鑰。
    2. A的私鑰保密,A的公鑰告訴B;B的私鑰保密,B的公鑰告訴A。
    3. A要給B發送信息時,A用B的公鑰加密信息,因爲A知道B的公鑰。
    4. A將這個消息發給B(已經用B的公鑰加密消息)。
    5. B收到這個消息後,B用自己的私鑰解密A的消息,其他所有收到這個報文的人都無法解密,因爲只有B纔有B的私鑰。
    6. 反過來,B向A發送消息也是一樣。

  3. 混合加密機制:先用非對稱加密傳遞對稱加密的密鑰,然後再用對稱加密傳遞信息。

    解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。

轉至元數據結尾

AES爲分組密碼,分組密碼也就是把明文分成一組一組的,每組長度相等,每次加密一組數據,直到加密完整個明文。

在AES標準規範中,分組長度只能是128位,也就是說,每個分組爲16個字節(每個字節8位)。

密鑰的長度可以使用128位、192位或256位。密鑰的長度不同,推薦加密輪數也不同。

詳細參見:https://blog.csdn.net/qq_28205153/article/details/55798628

RSA非對稱加密算法

RSA加密算法是現在世界上運用最廣泛的非對稱加密算法,比如常用的https協議、銀行交易等等。

詳細參見:

http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

發佈了21 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章