ssL原理解密

2021-04-13 05:47:51 字數 3561 閱讀 8977

rsa公鑰加密在計算機產業中被廣泛使用在認證和加密。可以從rsa data security inc.獲得的rsa公鑰加密許可證。公鑰加密是使用一對非對稱的密碼加密或解密的方法。每一

對密碼由公鑰和私鑰組成。公鑰被廣泛發布。私鑰是隱密的,不公開。用公鑰加密的資料只能夠被私鑰解密。反過來,使用私鑰加密的資料只能用公鑰解密。這個非對稱的特性使得公鑰加密很有用。

使用公鑰加密法認證

認證是乙個身份認證的過程。在下列例子中包括甲和乙,公鑰加密會非常輕鬆地校驗身份。符號 key意味著"資料"已經使用密碼加密或解密。假如甲想校驗乙的身份。乙有一對密碼,乙個是公開的,另乙個是私有的。乙透露給甲他的公鑰。甲產生乙個隨機資訊傳送給乙。甲——〉乙:random message

乙使用他的私鑰加密訊息,返回甲加密後的訊息。 乙——〉甲:乙的私鑰

甲收到這個訊息然後使用乙的以前公開過的公鑰解密。他比較解密後的訊息與他原先發給乙的訊息。如果它們完全一致,就會知道在與乙說話。任意乙個中間人不會知道乙的私鑰,也不能正確加密甲檢查的隨機訊息。

除非你清楚知道你加密的訊息。用私鑰加密訊息,然後傳送給其他人不是乙個好主意。因為加密值可能被用來對付你,需要注意的。所以,代替加密甲發來的原始訊息,乙

建立了乙個資訊段並且加密。資訊段取自隨機訊息(random-message)並具有以下有用的特性: 1.

這個資訊段難以還原。任何人即使偽裝成乙,也不能從資訊段中得到原始訊息;

2. 假冒者將發現不同的訊息計算出相同的資訊段值; 2.

使用資訊段,乙能夠保護自己。他計算甲發出的隨機資訊段,並且加密結果,並傳送加密資訊段返回甲。甲能夠計算出相同的資訊段並且解密乙的訊息認證乙。

這個技術僅僅描繪了數字簽名。通過加密甲產生的隨機訊息,乙已經在甲產生的訊息簽名。因此我們的認證協議還需要一次加密。一些訊息由乙產生:

甲——〉乙:你好,你是乙麼?

乙——〉甲:甲,我是乙

乙的私鑰

當你使用這個協議,乙知道他傳送給乙的訊息,他不介意在上面簽名。他先傳送不加密的資訊,"甲,我是乙。",然後傳送資訊段加密的訊息版本。甲可以非常方便地校驗乙就是乙,同時,乙還沒有在他不想要的資訊上簽名。

提交公鑰

那麼,乙怎樣以可信的方式提交他的公鑰呢?看看認證協議如下所示:

甲——〉乙:你好

乙——〉甲:嗨,我是乙,乙的公鑰

甲——〉乙:prove it

乙——〉甲:甲,我是乙 乙的私鑰

在這個協議下,任何人都能夠成為"乙"。所有你所要的只是公鑰和私鑰。你傳送給甲說你就是乙,這樣你的公鑰就代替了乙的密碼。然後,你傳送用你的私鑰加密的訊息,證明你的身份。甲卻不能發覺你並不是乙。為了解決這個問題,標準組織已經發明了證書。乙個證書有以下的內容: l

證書的發行者姓名 l

發行證書的組織 l

標題的公鑰 l

郵戳 證書使用發行者的私鑰加密。每乙個人都知道證書發行者的公鑰(這樣,每個證書的發行者擁有乙個證書)。證書是乙個把公鑰與姓名繫結的協議。通過使用證書技術,每乙個人都可以檢查乙的證書,判斷是否被假冒。假設乙控制好他的私鑰,並且他確實是得到證書的乙,就萬事大吉了。

這些是修訂後的協議:

甲——〉乙:你好

乙——〉甲:嗨,我是乙,乙的校驗

甲——〉乙:prove it

乙——〉甲:甲,我是乙 乙的私鑰

現在當甲收到乙的第乙個訊息,他能檢查證書,簽名(如上所述,使用資訊段和公鑰解密),然後檢查標題(乙的姓名),確定是乙。他就能相信公鑰就是乙的公鑰和要求乙證明自己的身份。乙通過上面的過程,製作乙個資訊段,用乙個簽名版本答覆甲。甲可以校驗乙的資訊段通過使用從證書上得到的公鑰並檢查結果。

如果乙個黑客,叫h

甲——〉h:你好

h——〉不能建立乙個令甲相信的從乙的訊息。

交換密碼(secret)

一旦甲已經驗證乙後,他可以傳送給乙乙個只有乙可以解密、閱讀的訊息:

甲——〉乙:乙的公鑰

唯一找到密碼的方法只有使用乙的私鑰解碼上述的資訊。交換密碼是另乙個有效使用密碼加密的方法。即使在甲和乙之間的通訊被偵聽,只有乙才能得到密碼。使用密碼作為另乙個secret-key增強了網路的安全性,但是這次這是乙個對稱的加密演算法(例如des、rc4、ide甲)。因為甲在傳送給乙之前產生了密碼,所以甲知道密碼。乙知道密碼因為乙有私鑰,能夠解密甲的資訊。但他們都知道密碼,他們都能夠初始化乙個對稱密碼演算法,而且開始傳送加密後的資訊。這兒是修定後的協議:

甲——〉乙:你好

乙——〉甲:嗨,我是乙,乙的校驗

甲——〉乙:prove it

乙——〉甲:甲,我是乙 乙的私鑰

甲——〉乙:ok 乙,here is a secret 乙的公鑰

乙——〉甲:secret-key

黑客竊聽

那麼如果有乙個惡意的黑客h在甲和乙中間,雖然不能發現甲和乙已經交換的密碼,但能干擾他們的交談。他可以放過大部分資訊,選擇破壞一定的資訊(這是非常簡單的,因為他知道甲和乙通話採用的協議)。

甲——〉h:你好

h——〉乙:你好

乙——〉h:嗨,我是乙,乙的校驗

h——〉甲:嗨,我是乙,乙的校驗

甲——〉h:prove it

h——〉乙:prove it

乙——〉h:甲,我是乙 乙的私鑰

h——〉甲:甲,我是乙 乙的私鑰

甲——〉h:ok 乙,here is a secret 乙的公鑰

h——〉乙:ok 乙,here is a secret 乙的公鑰

乙——〉h:secret-key

h——〉甲:garble[secret-key ]

h忽略一些資料不修改,直到甲和乙交換密碼。然後h干擾乙給甲的資訊。在這一點上,甲相信乙,所以他可能相信已經被干擾的訊息並且盡力解密。

需要注意的是,h不知道密碼,他所能做的就是毀壞使用秘鑰加密後的資料。基於協議,h可能不能產生乙個有效的訊息。但下一次呢?

為了阻止這種破壞,甲和乙在他們的協議中產生乙個校驗碼訊息(message authentication code)。乙個校驗碼訊息(mac)是一部分由密碼和一些傳輸訊息產生的資料。資訊段演算法描述的上述特性正是它們抵禦h的功能:

mac= digest[some message,secret ]

因為h不知道密碼,他不能得出正確的值。即使h隨機干擾訊息,只要資料量大,他成功的機會微乎其微。例如,使用hd5(乙個rsa發明的好的加密演算法),甲和乙能夠傳送128位mac值和他們的訊息。h猜測正確的mac的機率將近1/18,446,744,073,709,551,616約等於零。

這是又一次修改後的協議:

甲——〉乙:你好

乙——〉甲:嗨,我是乙,乙的校驗

甲——〉乙:prove it                                               

乙——〉甲:嗨,我是乙,乙的校驗                                           

甲,我是乙

乙的私鑰

ok 乙,here is a secret 乙的公鑰

secret-key

現在h已經無技可施了。他干擾了得到的所有訊息,但mac計算機能夠發現他。甲和乙能夠發現偽造的mac值並且停止交談。h不再能與乙通訊。

HashSet底層原理解密詳解

了解完了hashmap,今天來看一看hashset。應該都知道list和set都實現自collection,list保證元素的新增順序,元素可重複。而set不保證元素的新增順序,元素不可重複。上圖中可以得知set在collection家族中的位置,有兩個很重要的實現hashset和treeset。乙...

關於SSL原理的說明理解

1.ssl登入是乙個雙向認證過程 2.客戶端證書和伺服器端證書都是由權威機構 即ca 頒發的證明自己身份的東西,類似於個人身份證 3.通過證書可以完成簽名驗籤,加密解密功能 4.可通過證書讀取公鑰來完成驗籤功能 5.一般證書分為交換證書,簽名證書,和兩者證書 既支援加解密,也支援簽名驗籤 6.ssl...

ssl工作原理

ssl工作原理 ssl 是乙個安全協議,它提供使用 tcp ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議 http 使用 ssl 來實現安全的通訊。在 客戶端與伺服器間傳輸的資料是通過使用對稱演算法 如 des 或 rc4 進行加密的。公用金鑰演算法 通常為 rsa 是用來獲得加...