加密的類型及其相關算法--對稱加密

    上節我們講到加密所圍繞的三個方面:機密性、完整性、身份驗證

    

    爲了實現A與B之間通訊是機密,讓第三者即便截獲了信息都無法看得懂,那就要對明文數據進行加密。

    我們知道加密其實就是運用一些算法去實現的(這也就是爲啥計算機與數學家之間關係是這麼緊密的了,計算機就是各種邏輯運算^_^)。例如最簡單的算法就例如將a-e向又移動5位成爲f-j,那麼解密就是向左移動5位,這樣加密和解密使用同一套算法的就稱之爲對稱加密算法

    又例如,大家有沒有看過《風語者納瓦霍密碼,“戰鬥機”被稱爲“達-哈-提-西”(dah-he-tih-hi),納瓦霍語意爲“蜂鳥 ”;“俯衝轟炸機”被稱爲“幾尼”,意爲“小鷹”。就有一份密碼對照本。

示例:

[root@rhel7-01 ~]# cat /etc/issue
\S
Kernel \r on an \m

[root@rhel7-01 ~]# cat /etc/issue | tr "a-e" "f-j"
\S
Kjrnjl \r on fn \m

    有些算法能容易的被人破解,那就會有個問題,開發一個算法的成本很高(要考慮算法本身被破解需要的條件,還要考慮到計算機未來10年、20年的發展,能不能被暴力破解等問題),不可能每個人都使用一套算法,而且有些算法是公開的,那麼如果能將算法和密碼(密鑰)結合來加密,至少更換密碼(密鑰)的成本比算法本身低得多。

    假設A與B之間使用了對稱加密算法並協商了一串密碼(密鑰):123456,這樣就能A與B之間通訊是機密的了。

TIM圖片20180315100226.png


    可是問題又來了,A與B通信之間的機密性是得到保證了,可是A與C,A與D,A甚至與更多機器需要通訊,50個,100個,如果與之通訊的主機都協商一個密碼的話,光維護密碼錶就是一個很困難的事情了。如果A與其他機器通訊都使用同一個算法和密碼的話,不懷好意的E得知A與B正在進行一個非常重要的合同簽訂,使用了A與E之前通訊的密碼,通過各種手段篡改了A與B之間的合同,導致A損失慘重。

    又例如,我們不會將QQ,銀行卡、支付寶、微信等等設置爲同一個密碼,否則一個被攻破,那麼其他就會殃及池魚,全盤都over了。

TIM圖片20180315101053.png


    對稱加密雖然能解決了通訊的機密性,但是信息的完整性就無法得到保證,那麼怎麼保證信息的完整性?在A發送給B的之後,B能通過某種手段驗證收到的信息沒有被篡改或者因其他問題導致無法通過信息完整性的驗證呢?欲知詳情,請各位聽下回分解。^_^

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章