1. 程式人生 > >什麼是非對稱加密?非對稱加密概念

什麼是非對稱加密?非對稱加密概念

什麼是非對稱加密

對稱加密演算法在加密和解密時使用的是同一個祕鑰;而非對稱加密演算法需要兩個金鑰來進行加密和解密,這兩個祕鑰是公開金鑰(public key,簡稱公鑰)和私有金鑰(private key,簡稱私鑰)

  與對稱加密演算法不同,非對稱加密演算法需要兩個金鑰:公開金鑰(publickey)和私有金鑰(privatekey)。公開金鑰與私有金鑰是一對,如果用公開金鑰對資料進行加密,只有用對應的私有金鑰才能解密;如果用私有金鑰對資料進行加密,那麼只有用對應的公開金鑰才能解密。因為加密和解密使用的是兩個不同的金鑰,所以這種演算法叫作非對稱加密演算法。

工作原理/非對稱加密

  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的私鑰。

工作過程/非對稱加密

  如下圖所示,甲乙之間使用非對稱加密的方式完成了重要資訊的安全傳輸。

  1、乙方生成一對金鑰(公鑰和私鑰)並將公鑰向其它方公開。

  2、得到該公鑰的甲方使用該金鑰對機密資訊進行加密後再發送給乙方。

  3、乙方再用自己儲存的另一把專用金鑰(私鑰)對加密後的資訊進行解密。乙方只能用其專用金鑰(私鑰)解密由對應的公鑰加密後的資訊。

  在傳輸過程中,即使攻擊者截獲了傳輸的密文,並得到了乙的公鑰,也無法破解密文,因為只有乙的私鑰才能解密密文。

  同樣,如果乙要回復加密資訊給甲,那麼需要甲先公佈甲的公鑰給乙用於加密,甲自己儲存甲的私鑰用於解密。

優缺點/非對稱加密

  非對稱加密與對稱加密相比,其安全性更好:對稱加密的通訊雙方使用相同的祕鑰,如果一方的祕鑰遭洩露,那麼整個通訊就會被破解。而非對稱加密使用一對祕鑰,一個用來加密,一個用來解密,而且公鑰是公開的,祕鑰是自己儲存的,不需要像對稱加密那樣在通訊之前要先同步祕鑰。

  非對稱加密的缺點是加密和解密花費時間長、速度慢,只適合對少量資料進行加密。

  在非對稱加密中使用的主要演算法有:RSA、Elgamal、揹包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)等。

  不同演算法的實現機制不同,可參考對應演算法的詳細資料。