通訊安全 -- 對稱加密與非對稱加密的基本概念

之前咱們還只是聊聊QQ,看看網頁,通訊安全彷佛並不爲人所重視,而現現在電子商務已經極爲普及,咱們在網上的生活也已經很是豐富和重要,所以對賬戶的安全,信息的保密便愈來愈重視。對信息進行加密是保證通訊安全的最爲基本也是最爲重要的手段之一。最近的項目正好涉及到通訊安全相關的內容,因此也學習一些入門的基本知識。算法

基本概念

明文就是咱們真正想要通訊的信息,這些信息要不就是人類可讀的,要不就是有明顯意義,容易理解的。在電子通訊的過程當中,不管是有線仍是無線的方式,數據經過各類媒介到達對方的過程當中很容易就能夠被別人獲取到。若是對於咱們發送的信息不加任何變化,那麼對方獲取到以後不費力就能夠徹底瞭解了通訊的內容(好比咱們的賬戶和密碼,還有你和MM聊的那些肉麻的話)。爲了防止本身的信息徹底裸露在別人面前,就須要對信息進行加密。加密就是把明文以某種方式變換成一堆看起來亂七八糟的數據--密文,再把密文發給對方,對方收到以後,用對應的方法再用相應的方法再數據還原成明文(解密)。對信息進行加密的步驟就是加密算法。安全

有些算法自己,除了要輸入明文以外,還須要輸入另外一個專門的數據(密鑰)才能輸出密文。現代的加密系統,通常都由加密算法和密鑰組成。沒有密鑰的加密系統也是有的,但保密性和實用性相對來講比較差。好比一旦組織中有人離開,那麼全部人都要更換加密算法,不然安全性就沒法保證了。而帶密鑰的加密系統解決了這個問題。由於即便算法公開,沒有密鑰也沒法解密密文信息,而密鑰的更換比算法的更換要容易得多。學習

什麼是非對稱加密算法?爲何須要非對稱加密算法?

帶密鑰的加密算法通常分爲兩類:對稱加密算法和非對稱加密算法。網站

對稱加密算法是指加密和解密使用相同,或是關連性很強的密鑰。對稱加密算法速度比較快,比較適合在大量數據加密的狀況下使用。但對稱加密要求通訊雙方能共享同一密鑰,並對密鑰進行嚴格地保護,不然密鑰泄漏了,信息就被破解了。但在互聯網的環境下,要達到這個要求是很難的。由於通訊的對象多種多樣,幾乎不可能作到方便地共享同一密鑰而鮮爲人知。由於畢竟通訊的雙方極可能以前徹底沒有見接觸過,是第一次通訊,而他們的通訊信息又但願被加密,好比我第一次登陸亞馬遜的網站買東西,那麼如何與亞馬遜共享同一密鑰來保證個人賬戶和密碼的安全呢?對密鑰自己已經沒法加密了(對方根本沒法解密)。把密鑰發給對方,那就至關於也把密鑰告訴了竊聽者。因此共享密鑰,同時對密鑰嚴格保護,在現實中是很是困難的。加密

爲了解決對稱加密算法的問題,牛X的人發明了非對稱加密算法。在非對稱加密算法中,存在兩個密鑰。一個是加密密鑰(e),一個解密密鑰(d)。經過 e 對明文加密獲得的密文,只有用 d 來解密出來還原成明文。並且算法自己能夠保證,就算你知道 e ,想要獲得 d 也是很是很是困難的。既然有這種特性,那麼咱們就能夠這樣作:我把加密密鑰公佈出去(發給通訊的對方 A)。A 收到密鑰 e 之後,用 e 對他要發送的信息(M)進行加密獲得密文 C 發送給我,我再使用解密密鑰 d 把密文解密,還原成 M。在這個過程當中,我並不擔憂第三方的竊聽者竊聽咱們的通訊過程,由於就算他有了 e,也沒法使用 e 來解密 C。除了解密密鑰 d 的擁有者(我)以外,誰都沒法解密。這樣,我只要保證 d 的只有我知道(這個相對容易作到),就能夠保證通訊的安全。對象

不過,這世上沒有徹頭徹尾的絕望,也沒有十全十美的事情。非對稱加密算法通常都比較慢,須要耗費比較多的計算時間,並不適合用在大量的數據加密上。爲了保證安全性,同時又下降計算上的需求,通常的通訊應用都會結合使用對稱加密算法和非對稱加密算法。即,在通訊的開始,先用非對稱加密算法交換對稱加密算法的密鑰,以後再用對稱加密算法進行通訊。blog

image

後面的博文中將會陸續學習一些非對稱加密和對稱加密和算法。get

相關文章
相關標籤/搜索