背景
現(xiàn)有的非對稱加密算法有RSA囤锉、Elgamal以故、背包算法蜗细、Rabin、D-H怒详、ECC(橢圓曲線加密算法)
使用最廣泛的是RSA算法炉媒,Elgamal是另一種常用的非對稱加密算法
原理
代碼生成一個隨機(jī)數(shù):123123123jjasfaoif12312hsihdfiodasdfsa0dfasd
以該隨機(jī)數(shù)為輸入,通過非對稱加密算法昆烁,輸出兩個字符串:
key1和key2
其中一個作為公鑰吊骤,那么另外一個就是私鑰;公鑰和私鑰沒有嚴(yán)格的定義静尼,對于算法而言白粉,兩者沒有先后順序
公鑰加密的話,用私鑰解密
私鑰加密的話鼠渺,用公鑰解密
公鑰無法解密公鑰加密的東西
私鑰無法解密私鑰加密的東西
特征
效率低鸭巴,可安全傳輸,一般都綜合使用非對稱加密和對稱加密
應(yīng)用過程
定義 ? ?
A :張三? ? A1:A的公鑰? A2:A的私鑰
B:李四 ? ?B1:B的公鑰 ?B2:B的私鑰?
sign數(shù)字簽名 ?FS文件摘要
場景:A向B發(fā)送一個100M的文件
A B 兩個人 AB各自帶有自己的公鑰(A1 B1)和私鑰(A2 B2)
A向B發(fā)送一個100M的文件(F)
1.A將F通過單向散列算法(md5)拦盹,輸出文件摘要(FS)
2.A用A2對FS進(jìn)行加密鹃祖,輸出(sign1)--------數(shù)字簽名
3.A將F、A1普舆、sign1打包恬口,一并交給B
4.B得到F校读、A1、sign1
5.B將F通過單向散列算法(md5)祖能,輸出文件摘要(FS2)
6.B用A1和sign1解析出文件摘要(FS3)
7.如果FS3和FS2相同歉秫,標(biāo)明文件沒有被篡改
上述過程簡單描述了非對稱加密的應(yīng)用過程
拓展
如果A的私鑰A2被黑客盜取該怎么辦,有沒有更好的辦法防止黑客盜取
如果A抵賴芯杀,不承認(rèn)這是自己的私鑰怎么辦
詳見“數(shù)字證書一文”