內容基本包括如下各個方面(出自維基百科):git
在說SSL以前介紹相關一些相關的概念,這些東西大學老師都有講過,就是基本忘光了,沒學好啊。算法
Sysmmetric-key algorithm:大數據
中文意思爲對稱鑰算法。對稱鑰算法是一系列密碼算法,它使用同一個密鑰去加密明文和解密密文。這個密鑰是在進行私密信息交流中,多方間共享的一個secret。正因如此,因此存在多方都有權得到這個密鑰,這是它對比public-key cryptgraphy的主要缺點。加密
接下來講Public-key cryptgraphy:spa
它一樣被稱爲asymmetric cryptography(非對稱密碼),這裏會涉及到一系列的密碼算法,而這些算法的特色是須要兩個密鑰,一個是public(公有的),一個是private(私有的)。這兩個密鑰是存在必定的數學聯繫的。公鑰用於加密明文或者驗證數字簽名(digital signature),私密用於解密密文或者建立數字簽名。ip
通俗點說,對稱與非對稱的區別就在因而否使用同一把密鑰,public-key algorithm和sysmmetric-key algorithm不須要在多方之間交換同一個密鑰。ci
公鑰是能夠公諸於世的,而私鑰只能給那些通過受權的人去讀取信息或者進行數字簽名,因此問題就來了,怎麼進行受權:
文檔
消息受權涉及到使用 私鑰 去處理 消息 產生一個 數字簽名。任何人均可以經過使用公鑰去處理這個數字簽名進行驗證,看獲得的結果是否和消息是一致的。成功的話,證實消息在被簽名後就沒有被修改過(內容不被修改),和除了簽名者外沒有人惡意進行過簽名操做(保證發送者是合法的,而不是惡意篡改者)。這裏說到的消息在實際上通常不是要發送的message body自己,而多是對messaga的hash後得出的結果,主要緣由是對大數據進行處理是「高能耗」工做,換成hash值會「低能高效」。get
上面描述反覆說到數字簽名,什麼是數字簽名?數學
A digital signature is a mathematical scheme for demonstrating the authenticity of a digital message or document. 數字簽名是一種用於證實數字消息或者文檔真實性的數學策略。一個合法的數字簽名保證有足夠的理由讓接受者相信消息是由一個已知的發送者建立的,所以發送者不得否定發送過該信息,同時保證消息在運輸過程當中不被篡改。
Continue。。。