理解SSL(https)中的對稱加密與非對稱加密

加密 解密

  
 

Code Talkers

密碼學最早可以追溯到古希臘羅馬時代,那時的加密方法很簡單:替換字母。

早期的密碼學


\古希臘人用一種叫 Scytale 的工具加密。更快的工具是 transposition cipher—:只是把羊皮紙卷在一根圓木上,寫下信息,羊皮紙展開後,這些信息就加密完成了。

雖然很容易被解密,但它確實是第一個在現實中應用加密的例子

Julius Caesar 用了另外一個類似的加密方法:把字母往右或往左移動幾位;此法稱爲Caesar’s cipher. 比如“GEEK” 加密後就是“JHHN”.

Plain:  ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC

因爲只有信息接受者知道如何解密,對其他人來說,那就是一段無意義的信息了。

還有像如下圖的加密方法:每個字母放在座標系裏

\

這樣 “G”就是 “23”,  “GEEK”就是 “23 31 31 43”.

Enigma Machine




加密算法

  

加密算法有很多種,區別和衡量他們的方法就是看他們是否容易被破解的程度和加密的速度

如下圖可見AES 是最快的強加密算法

\

當然有更快或比較慢的算法了,他們都有用處。如果你只是加密一段信息,也不是經常需要,那你可以用最強的加密算法,甚至也可以用不同的算法加密兩次。如果想要加密速度快點,那就用AES.

加密類型

之前說過的加密算法絕大部分都屬於以下兩種加密類型之一:

  • 對稱加密:加密解密用的是同樣的“鑰匙”
  • 非對稱加密:加密解密用的是不同的“鑰匙”

對稱加密

用郵局的例子來解釋下對稱加密

Alice 在盒子裏放有信息,盒子上有掛鎖,她有鑰匙。通過郵局她把這個盒子寄給Bob。Bob收到盒子後,用相同的鑰匙打開盒子(鑰匙之前就得到了,可能是Alice面對面給他的)。然後Bob可以用同樣的方法回覆。

\

對稱加密可以分爲兩種:一種是一個一個加密信息,另一種是分塊加密信息,通常分爲64位加密爲一塊。塊 TwofishSerpentAES (Rijndael), BlowfishCAST5RC4TDES, and IDEA.

非對稱加密

Bob和Alice各有自己的盒子。Alice要跟Bob祕密通信,她先讓Bob把開着的盒子通過郵局發給她。Alice拿到盒子後放入信息鎖上,然後發給Bob。Bob就可以用他自己的鑰匙打開了。回覆的話就用同樣的方法。\

  

此法最大的好處是你不必得到對方的“鑰匙”,以防別人在鑰匙發送過程中偷偷複製鑰匙,進而竊取信息。。而且就算Bob的鑰匙被竊取複製了,Alice跟別人的通信也是安全的,因爲Alice用的是別人的鑰匙。

非對稱算法在加密和解密時用的是不同的鑰匙。信息接受者有兩把鑰匙:一把“公匙”,一把“私匙”。公匙是給信息發送者用來加密的,私匙是自己用來解密的

這樣最大的好處是:不必通過不安全的渠道發送私密的東西。公匙本來就是給別人用的,不用藏好。你的私匙在你產生私匙的電腦裏保存着

網站如何通過加密和用戶安全通信

SSL (Secure Sockets Layer) 是用來保障你的瀏覽器和網站服務器之間安全通信,免受網絡“中間人”竊取信息。

SSL原理很簡單。當你的瀏覽器向服務器請求一個安全的網頁(通常是 https://)
\

服務器就把它的證書和公匙發回來
\
瀏覽器檢查證書是不是由可以信賴的機構頒發的,確認證書有效和此證書是此網站的。
\
 

使用公鑰加密了一個隨機對稱密鑰,包括加密的URL一起發送到服務器
\
服務器用自己的私匙解密了你發送的鑰匙。然後用這把對稱加密的鑰匙給你請求的URL鏈接解密。
\
服務器用你發的對稱鑰匙給你請求的網頁加密。你也有相同的鑰匙就可以解密發回來的網頁了
\

  

---------------------------譯者分割-------

本文翻譯得很不完整。

在網站通過SSL來與用戶建立安全的通信中,對稱加密算法和非對稱加密算法起到了很大作用。

看了此文我才弄懂,所以我把它翻譯出來。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章