對稱加密
:A與 B 之間之間的通訊數(shù)據(jù)都用同一套的密鑰來進(jìn)行加密解密晴弃。
- 優(yōu)點(diǎn)
簡單快捷纯路,密鑰較短或油,且破譯困難。 - 缺點(diǎn)
如果用戶一旦多的話驰唬,管理密鑰也是一種困難顶岸。不方便直接溝通的兩個(gè)用戶之間怎么確定密鑰也需要考慮,這其中就會(huì)有密鑰泄露的風(fēng)險(xiǎn)叫编,以及存在更換密鑰的需求辖佣。 - 對稱加密通常有 DES,IDEA,3DES 加密算法。
非對稱加密
:用公鑰和私鑰來加解密的算法宵溅。打個(gè)比方凌简,A 的公鑰加密過的東西只能通過 A 的私鑰來解密;同理恃逻,A 的私鑰加密過的東西只能通過 A 的公鑰來解密雏搂。顧名思義,公鑰是公開的寇损,別人可以獲取的到凸郑;私鑰是私有的,只能自己擁有矛市。
- 缺點(diǎn)
加解密比對稱加密耗時(shí). - 優(yōu)點(diǎn)
比對稱加密安全.
但是非對稱加密也是存在漏洞芙沥,因?yàn)楣€是公開的,如果有 C 冒充 B 的身份利用 A 的公鑰給 A 發(fā)消息浊吏,這樣就亂套了而昨,所以接下來就采用非對稱加密+摘要算法+數(shù)字簽名的機(jī)制來確保傳輸安全。
常見的非對稱加密算法有:RSA找田、ECC(移動(dòng)設(shè)備用)歌憨、Diffie-Hellman、El Gamal墩衙、DSA(數(shù)字簽名用)
Hash算法(摘要算法)
Hash算法的特點(diǎn)是單向不可還原务嫡,用戶可以通過hash算法對目標(biāo)信息生成一段特定長度的唯一hash值,卻不能通過這個(gè)hash值重新獲得目標(biāo)信息漆改。因此Hash算法常用在不可還原的密碼存儲(chǔ)心铃、信息完整性校驗(yàn)等。只要源數(shù)據(jù)不同挫剑,算法得到的摘要必定不同去扣。
常見的Hash算法有MD2、MD4暮顺、MD5厅篓、HAVAL秀存、SHA
數(shù)字簽名
數(shù)字簽名用來,保證信息傳輸?shù)耐暾杂鸬l(fā)送者的身份認(rèn)證或链、防止交易中的抵賴發(fā)生。
數(shù)字簽名是 A將原始明文通過 hash 算法得到摘要档押,這個(gè)摘要是不可逆的澳盐;將明文加密,連同摘要一起發(fā)送給B令宿;B接收到后解密叼耙,得到這個(gè)摘要 a
和加密的明文,再將加密明文解密得到原始明文粒没,然后通過同一 hash 算法得到新的摘要 b
筛婉,比較 a
與 b
就可得知在傳輸過程中是否被更改過。
因此數(shù)字簽名能夠驗(yàn)證信息的完整性癞松。如果中途數(shù)據(jù)被纂改或者丟失爽撒。那么對方就可以根據(jù)數(shù)字簽名來辨別是否是來自對方的第一手信息數(shù)據(jù)。
完整的非對稱加密過程
假如現(xiàn)在 你向支付寶 轉(zhuǎn)賬(術(shù)語數(shù)據(jù)信息)响蓉,為了保證信息傳送的保密性硕勿、真實(shí)性、完整性和不可否認(rèn)性枫甲,需要對傳送的信息進(jìn)行數(shù)字加密和簽名源武,其傳送過程為:
1.首先你要確認(rèn)是否是支付寶的數(shù)字證書,如果確認(rèn)為支付寶身份后想幻,則對方真實(shí)可信粱栖。可以向?qū)Ψ絺魉托畔ⅲ?br>
2.你準(zhǔn)備好要傳送的數(shù)字信息(明文)計(jì)算要轉(zhuǎn)的多少錢脏毯,對方支付寶賬號等查排;
3.你 對數(shù)字信息進(jìn)行哈希運(yùn)算,得到一個(gè)信息摘要(客戶端主要職責(zé))抄沮;
4.你 用自己的私鑰對信息摘要進(jìn)行加密得到 你 的數(shù)字簽名,并將其附在數(shù)字信息上岖瑰;
5.你 隨機(jī)產(chǎn)生一個(gè)加密密鑰叛买,并用此密碼對要發(fā)送的信息進(jìn)行加密(密文);
6.你用 支付寶的公鑰對剛才隨機(jī)產(chǎn)生的加密密鑰進(jìn)行加密蹋订,將加密后的 DES 密鑰連同密文一起傳送給支付寶率挣;
7.支付寶收到 你 傳送來的密文和加密過的 DES 密鑰,先用自己的私鑰對加密的 DES 密鑰進(jìn)行解密露戒,得到 你隨機(jī)產(chǎn)生的加密密鑰椒功;
8.支付寶 然后用隨機(jī)密鑰對收到的密文進(jìn)行解密捶箱,得到明文的數(shù)字信息,然后將隨機(jī)密鑰拋棄动漾;
9.支付寶 用你 的公鑰對 你的的數(shù)字簽名進(jìn)行解密丁屎,得到信息摘要;
10.支付寶用相同的哈希算法對收到的明文再進(jìn)行一次哈希運(yùn)算旱眯,得到一個(gè)新的信息摘要晨川;
11.支付寶將收到的信息摘要和新產(chǎn)生的信息摘要進(jìn)行比較,如果一致删豺,說明收到的信息沒有被修改過共虑。
12 確定收到信息,然后進(jìn)行向?qū)Ψ竭M(jìn)行付款交易呀页,一次非對稱密過程結(jié)束妈拌。在這后面的流程就不屬于本次非對稱加密的范疇,算支付寶個(gè)人的自我流程蓬蝶,也就是循環(huán)以上過程尘分。
借鑒:
http://www.reibang.com/p/d022470cef7e
https://blog.csdn.net/sk719887916/article/details/46810595