上篇咱們講到「非對稱加密」彌補了「對稱加密」密鑰傳送問題的麻煩!
那下面我就具體的講一下「非對稱加密」的加密原理。
「非對稱加密」是在「對稱加密」以後出現的,在「非對稱加密」中融入了 大量的數學運算,「私鑰」和「公鑰」是兩個很是的素數,憑如今計算機的運算速度就是通常的密碼,也須要很長的時間來運算,解密沒有什麼技巧,就是窮舉法,因此說密碼對如今的計算機技術來講是固若金湯的。
「非對稱加密」一共有兩把密鑰,一把是隻有本身知道的「私鑰」一把就是公開的「公鑰」。這就是和「對稱加密」的最大的不一樣之處……
上篇咱們說「對稱密鑰」是用一把「密鑰」來給文件「加密解密」的,「非對稱加密」是用一把密鑰加密,而後用另外一把密鑰解密的。「私鑰」加密的文件「公鑰」能夠解密,相反「公鑰」加密的文件「私鑰」同樣能夠解密。
假設a主機向b主機發送郵件,那麼在發送以前b主機會先把本身的「公鑰」發送給a主機,而後a主機用b主機的「公鑰」把要發送的郵件加密,發送給b主機,當b主機收到郵件之後b主機就用本身的「私鑰」來解密。
如圖:
可是「非對稱加密」有一個致命的弱點,那就是它的傳送速度,很是的慢,是「對稱加密」的上千倍,因此通常再生產中不多單用這種方法,咱們通常是把「對稱加密」和「非對稱加密」一塊兒用,這樣就很好的保證了速度,也很好的證了安全。那它們在一塊兒怎麼用呢?很簡單,咱們第一步就是用「對稱加密」的密鑰,把要傳送的文件加密,這樣文件就能夠直接的傳過去,就算在中間有人奪取了,他也是打不開的,由於他沒有「密鑰」啊,下一步就是咱們怎麼把「對稱加密」的密鑰,傳送給對方了,咱們用「非對稱加密」來解決這個問題,仍是如上圖吧,a主機怎麼把密鑰給b主機呢?咱們能夠用b主機的「公鑰」來給a主機的「密鑰」加密,而後傳給b主機,b主機再用本身的「私鑰」把a主機的「密鑰」解密出來,再用a主機的「密鑰」來解密文件, 到這裏,OK 了。
其實加密技術是博大精深的,上面的一些只是根據我本身理解寫的,但願能給初學網絡技術的朋友有幫助。