Android笔记-对称与非对称加密及DH密钥交换
對稱加密算法
AES:Advanced Encryption Standard,高級加密標(biāo)準(zhǔn)。
算法邏輯是這樣的:
? ? 加密:C = E(K, P)? ? 其中P為明文,K為密鑰,C為密文;
? ? 解密:P = D(K, C)? ? 其中C為密文,K為密鑰,P為明文;
加密解密使用同一個密鑰,用同樣的方式還原明文;
優(yōu)點
? ? 1.加密效率高;
? ? 2.計算量小;
? ? 3.使用方便。
缺點:
? ? 1.雙方需要協(xié)商密鑰,一旦密鑰泄漏則機(jī)密系統(tǒng)崩塌;
? ? 2.密鑰維護(hù)和更新困難。
非對稱加密算法
RSA:是一種公開密鑰體制;
RSA算法可靠性基礎(chǔ):
? ? 1.大質(zhì)數(shù)相乘計算很容易;
? ? 2.對極大整數(shù)做因數(shù)分解很困難,如1111 * 3331 = 3700741,但是3700741 = ? * ?就很多了。
優(yōu)點:
? ? 1.公鑰可可以開放;
? ? 2.密鑰方便管理;
? ? 3.安全性高。
缺點:
? ? 1.性能差,加密時間長;
? ? 2.使用相對復(fù)雜。
密鑰交換算法DH
DH:Diffie-Hellman,是一種保存共享KEY安全的穿越不安全網(wǎng)絡(luò)的方法;
? ? 1.不需要保證信道安全;
? ? 2.計算公式可完全公開;
? ? 3.雙方不需要指定對方的私鑰;
? ? 4.可協(xié)商出一個其他人都不知道的密鑰;
關(guān)鍵詞: PubKey:公鑰(可公開)、PriKey:私鑰(不公開)、Secret:密鑰(加密用)
如這樣的場景,客戶端(A)和服務(wù)端(B)進(jìn)行通信。
公鑰公式:A|B = g exp (a|b) % p
私鑰公式:s = B|A exp(a|b) %p
上面的公式都可以公開到互聯(lián)網(wǎng)
比如公開的g=11,p=29
私鑰是不會公開的,都是自己用的,A的私鑰為4,B的私鑰為6。
A的公鑰:(11 ^ 4) mod 29 = 25
B的公鑰:(11 ^ 6) mod 29 = 9
A拿B的公鑰算密鑰:s = (9 ^ 4) mod 29 = 7
B拿A的公鑰算密鑰:s = (25 ^ 6) mod 29 = 7
這樣大家都知道是7了,就用這個密鑰作為對稱加密的密鑰。
注意:
1.實際過程中,這個數(shù)據(jù)是比較大的復(fù)雜的,不存在計算這么簡單的情況;
2.如果C(黑客)想從網(wǎng)絡(luò)中獲取(不考慮破解等因素)是算不出其密鑰的,因為密鑰都是通過自己的私鑰和對方的公鑰計算的,黑客是拿不到A和B的私鑰的,所以無法解密。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Android笔记-对称与非对称加密及DH密钥交换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python笔记-PyCharm远程连接
- 下一篇: Android逆向笔记-通过字符串定位跳