資料加密(對稱加密和非對稱加密)

橘子和香蕉發表於2018-09-19

通過網路通訊的五層模型(ISO規定的是七層模型,TCP/IP規定的是五層模型)可以實現兩個應用程式之間的資料通訊

   但是現在有個問題是 資料如何加密,總不能兩個人之間說的話讓第三個人活著別的人聽到吧

 那最簡單的例子就是:A和B之間傳遞資料,如何保證資料不被第三個人知道,或者說第三個人就算知道資料,但是不知道資料所代表的意思。

在傳遞資料時候不能避免傳遞的資料被別的人知道,那我們能做的就是讓第三個人不知道資料所表達的意思就好了。

A 和 B 約定一套規則,A 通過這套規則將要傳送的資料改變,稱作加密 ,B 接受到資料,在用這套規則將資料還原成原來的資料 稱作解密。這就完成了一次加密資料傳輸。

因為資料傳輸的方式無外乎就有兩種形式;1.通過無線的方式,對應的就是(電磁波)。2.通過有線連線的方式(網線)資料就是轉化為0,1,0,1的這種二進位制來傳送的。

假如A 要傳送一組資料為010101010101,A約定的規則是按位取反,通過這套規則資料就變成了101010101010,將變化後的資料傳送給B,B得到這個資料,通過按位取反,將這套資料變成原來的樣子也就是將1010101010按位置取反變成010101010101,在這個傳輸過程中有人得到了這個資料,那得到的也是101010101010,他並不知道這套規則,那即使知道了資料,也並不影響什麼。

在上面的過程中這套規則就叫做 ——- 公鑰 ———-  

上面的過程就叫做對稱加密

對稱加密是一種思想,具體的實現就是演算法,有很多的對稱加密的演算法 比如DES演算法

對稱的意思就是  加密和解密用的是一套規則

說到這裡對稱加密大體說明白了一點。但不要停下思考的步伐,那請思考一個問題

公鑰加密的公鑰(也就是上面所說的那一套規則)也是資料,那怎麼讓對方知道公鑰,要是通過網路傳遞,那要是公鑰別第三個人截獲,那你所傳的資料第三方就知道了。

新的問題又擺在了眼前。。。。。。怎麼搞,,怎麼半

這個時候非對稱加密就出現了,就是這樣。在一個合適的時間 出現一個合適的東西。

扯多了,迴歸正題:

    繼續上面的情景 A 和 B 倆交流,互通資料,解決上面出現的問題那就定義兩套規則,一套加密(俗稱公鑰),一套解密(俗稱私鑰),那A又一對鑰匙(即就是一個公鑰,一個私鑰),B也有一對鑰匙。如果A想要給B傳資料 那就先用B 的公鑰將資料加密,然後通過網路傳給B。B 接受到資料後,通過自己的私鑰將資料解密 ,就得到A 所傳的真正的資料。 同樣的道理 B 想給A傳資料,那就先通過網路得到A的公鑰,然後加密資料,通過網路傳給A ,A得到資料後用自己的私鑰解密,就可以得到B 傳給A的真正的資料。

    上面的過程就是非對稱加密,所謂非對稱就是有兩套規則,一套是公鑰,一套是私鑰。

    這種規則其實就是演算法,當然這種非對稱加密演算法有很多,但是現在比較常用的就是RSA演算法RSA演算法

    那寫到這裡基本的也就差不多了。資料加密傳輸也就完成了,基本沒什麼問題,但是網路傳資料當然是越快越好,那我接下來就是要寫一些兩個加密方式的優缺點:

    對稱加密 ———簡單,因為只有一套規則。

                    ——— 速度快,因為只有一套規則。

    非對稱加密  ——- 複雜,兩套規則

                        ——–速度慢,兩套規則

那對稱加密的速度快和簡單的優點,我們肯定是首選這個。但是這套規則的問題就在於公鑰怎麼傳過去?思考一下,怎麼搞?

    公鑰 說到底也就是資料。那資料要怎麼傳 !!!!! 是不是很眼熟,這不就是我們之前將的問題嗎?    我們可以用非對稱加密將對稱加密的公鑰傳過去,那之前對稱加密的問題不就解決了嗎? 然後可以放心大膽的使用對稱加密了。有沒有?

    一般先都是用非對稱加密將對稱加密的公鑰傳過去,然後使用對稱加密。。那資料的處理速度就很快。

    ok  就到這了……

        


相關文章