通過網路通訊的五層模型(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 就到這了……
對稱加密和非對稱加密!
主要是對稱加密和非對稱加密兩種。可供各位參考 using system using system.collections.generic using system.linq using system.text using system.security.cryptography using syst...
對稱加密和非對稱加密!
對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文...
對稱加密和非對稱加密
對稱加密是最快速 最簡單的一種加密方式,加密 encryption 與解密 decryption 用的是同樣的金鑰 secretkey 對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。非對稱加密為 資料的加密 與解密提供了乙個非常安全的方法,它使用了一對金鑰,公鑰 p...