非對稱性加密定義及原理圖 非對稱加密 原理



文章插圖
非對稱性加密定義及原理圖 非對稱加密 原理

文章插圖

目前大家常說的信息加密技術就兩種,對稱加密和非對稱加密 。
對稱加密
所謂的對稱加密就是加密和解密用同一份密鑰 。對稱加密的好處就是加密速度快,但是缺點也很明顯,一定要保存好這份密鑰,如果密鑰丟失,就會帶來很大的安全風險 。而且如果與服務端進行通信的客戶端比較多的話,服務端要管理很多份不同的密鑰 。
非對稱加密
為了解決對稱加密的缺點,人們提出了非對稱加密,非對稱加密技術也是目前應用最廣泛的加密技術 。所謂的非對稱加密就是生成一對密鑰,分為公鑰和私鑰 。私鑰自己保存,公鑰發布出去 。用私鑰加密的信息只能用公鑰解密,用公鑰加密的信息也只能用私鑰解密 。
舉個例子
假設你的好朋友鐵蛋,經常網購 。購物網站為了保證信息安全傳輸,決定生成一對密鑰,私鑰自己保存,公鑰發給鐵蛋 。鐵蛋發給購物網站的信息都是用公鑰加密的信息,購物網站收到后,用自己的私鑰進行解密 。這樣即使傳輸途中,信息被截獲,也沒辦法破解,因為沒有私鑰 。
有個漏洞
這個時候有個黑客,做了一個假的購物網站,頁面和真的網站一模一樣,連網址都很相似 。同時也生成了一對密鑰,最重要的是黑客偷偷地把鐵蛋電腦里真購物網站的公鑰給替換成了假購物網站的公鑰 。
當鐵蛋打開假的網址進行購物操作時,會用假的公鑰進行加密然后把消息發給假的網站,整個通信過程,鐵蛋都沒有發現自己被騙 。
鐵蛋之所以被騙,是因為他不知道電腦里的真公鑰已經被換成假的了 。為了解決這個問題,出現一個認證機構,這個機構會對網站的公鑰進行加密簽名并形成一個證書,這個證書就是大家常說的CA證書,這個機構就是CA 。
【非對稱性加密定義及原理圖 非對稱加密 原理】只要鐵蛋電腦里面安裝的是經過CA認證的證書,在訪問的時候,瀏覽器就會顯示出一把小鎖,提示可以安全訪問,如果沒有經過認證,瀏覽器就會提示鐵蛋有風險 。
鐵蛋經常在多個網站購物,難道需要每個網站都保存一份證書?其實不用這樣,我們的電腦里面一般都有CA的根證書,只要有了這個證書,所有經過CA認證過的網站就都是安全的 。
沒錯,我上面介紹的就是HTTPS的工作原理,這也是非對稱加密技術的典型應用 。
雙向認證
非對稱加密還有一個應用場景就是雙向認證 。所謂的雙向認證就是不僅服務端要驗證客戶端的身份,客戶端也要驗證服務端的身份 。說白了就是客戶端和服務端各自生成一個密鑰對,私鑰自己保存,公鑰發給對方 。這種情況一般用在系統與系統的對接上 。
為什么需要雙向認證
假設C系統要訪問S系統的服務,S系統對外提供的數據安全級別比較高,只有受信系統才能訪問 。假設目前只允許C系統訪問 。
S系統為了保證信息安全傳輸,決定生成一對密鑰,私鑰自己保存,公鑰發給C系統 。C系統訪問S的時候,會用S的公鑰將消息進行加密發給系統S,S用私鑰進行解密 。
如果這個時候竊密者B系統偷偷拿到的S提供給C的公鑰,然后B用S的公鑰加密消息之后發送給系統S,獲取相應的數據,那么S是沒辦法判斷出請求的消息是來自C還是來自竊密者B 。
如何保證消息來自于受信系統C呢?經過協商,C系統也生成一對密鑰,私鑰自己保存,公鑰發給系統S 。
當C向S發送請求的時候,C先將要發的消息,假設為M,進行一次Hash運算,得到一個固定長度的Hash值,這個值一般稱為數字摘要 。然后C用自己的私鑰對這個數字摘要進行加密,加密后的值稱為數字簽名,其實跟現實中我們在文件中進行手寫簽名是一個意思 。
C系統將數字簽名和要發送的消息M,一起用S的公鑰做一次加密之后發送給系統S 。
S收到消息之后,先用自己的私鑰對消息進行解密,解密之后,得到C的數字簽名和消息M 。這個時候關鍵的一步來了,就是驗簽,驗證消息是否是C發來的 。
首先S用C的公鑰對簽名進行解密操作,解密完成后會得到一個摘要值,我們稱之為D 。能解開就證明消息是C發來的 。S還會用和C一樣的Hash算法對消息M進行Hash運算,這樣將會得到一個摘要值,我們稱之為D‘,如果D和D’相同就證明消息沒有被篡改過 。
總結
上面的雙向認證過程也是有漏洞的,只不過相比于單項認證,降低了被破譯的風險而已 。注意,世界上不存在絕對安全的系統,即便是現在逐漸流行起來的生物識別系統 。我們所做的各種安全措施都只是在降低系統被破解的風險而已 。
就像家里的防盜門,只能防君子不能防小人 。