在非對(duì)稱加密算法出現(xiàn)之前,對(duì)稱加密算法是運(yùn)用最為廣泛的,在前文《加密算法之對(duì)稱加密算法是什么?》中我們已經(jīng)知道了什么是對(duì)稱加密算法。由于對(duì)稱加密算法缺點(diǎn)顯著,于是科學(xué)家們?cè)诖嘶A(chǔ)上提出了非對(duì)稱加密算法這個(gè)概念,今天我們就來了解一下到底什么是非對(duì)稱加密算法。
非對(duì)稱加密算法
1976年,W.Diffie和M.Hellman兩位科學(xué)家提出了“非對(duì)稱密碼體制即公開密鑰密碼體制”的概念,通過這個(gè)概念,人們意識(shí)到加密和解密可以使用不同的規(guī)則,只要這兩種規(guī)則中存在必然的關(guān)系即可,這樣就可以避免直接傳遞私鑰,而這種新的加密模式就是“非對(duì)稱加密算法”。
非對(duì)稱加密算法是一種密鑰的保密方法。
非對(duì)稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey:簡(jiǎn)稱公鑰)和私有密鑰(privatekey:簡(jiǎn)稱私鑰)。公鑰與私鑰一一對(duì)應(yīng),如果用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私鑰才能解密。其中私鑰需要保密,而公鑰可以公開。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱加密算法。
非對(duì)稱加密的原理
非對(duì)稱加密算法實(shí)現(xiàn)信息交換的過程是:
如果乙方生成一對(duì)密鑰(公鑰和私鑰)后將公鑰公開,甲方獲取乙方的公鑰,然后對(duì)機(jī)密信息加密后再發(fā)送給乙方,乙方再用私鑰進(jìn)行解密。其中乙方只能用私鑰解密公鑰加密后的任何信息。如果公鑰加密的信息只有私鑰解得開,那么只要私鑰不泄漏,通信就是安全的。
舉個(gè)例子簡(jiǎn)單說明,假如小明買了一個(gè)保險(xiǎn)箱配有兩把鑰匙(鑰匙A和鑰匙B),小明將鑰匙A寄給小紅后,小紅用鑰匙A打開保險(xiǎn)箱將重要物件鎖進(jìn)保險(xiǎn)箱,然后將保險(xiǎn)箱郵寄給小明,小明用鑰匙B才能打開保險(xiǎn)箱取出物件。鑰匙A將保險(xiǎn)箱上鎖后,任何人都無法再打開保險(xiǎn)箱,必須用鑰匙B才能打開保險(xiǎn)箱。
在非對(duì)稱加密算法中,鑰匙A就相當(dāng)于公鑰,而鑰匙B就是私鑰。“鎖保險(xiǎn)箱”和“開鎖”就相當(dāng)于加密和解密的過程,在非對(duì)稱加密算法中,加密和解密用的不是同一把鑰匙,而是一對(duì)密鑰,即公鑰和私鑰。
非對(duì)稱加密算法的特點(diǎn)
首先,非對(duì)稱加密算法強(qiáng)度非常復(fù)雜,由于其算法復(fù)雜,從而使得加密解密速度沒有對(duì)稱加密解密的速度快。
但是,非對(duì)稱加密算法安全性很高,由于對(duì)稱加密算法只有一個(gè)密鑰,并且是非公開性的,如果密鑰泄露即影響數(shù)據(jù)安全性。而非對(duì)稱加密算法具有兩個(gè)密鑰,其中一個(gè)是公開的,另外一個(gè)是私密的,用公鑰加密的消息只能用與之對(duì)應(yīng)的私鑰來解密,私鑰除了持有者外無人知道,而公鑰卻可通過非安全管道來發(fā)送或在目錄中發(fā)布,這樣安全性就提高很多。
目前,非對(duì)稱加密算法主要有RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。
非對(duì)稱加密算法在區(qū)塊鏈的運(yùn)用
應(yīng)用在區(qū)塊鏈錢包地址的創(chuàng)建及賬戶管理
通過非對(duì)稱加密算法將私鑰生成對(duì)應(yīng)的公鑰用來創(chuàng)建錢包地址,該錢包地址也相當(dāng)于是用戶在區(qū)塊鏈上的一個(gè)賬戶,當(dāng)用戶下次在使用錢包的時(shí)候直接可以使用私鑰來解鎖帳戶。
應(yīng)用在用戶創(chuàng)建新交易時(shí)的簽名以及礦工打包交易區(qū)塊前驗(yàn)證簽名
在比特幣系統(tǒng)中采用的是UTXO賬戶模型,每一筆交易都包含有輸入及輸出兩部分,在產(chǎn)生一筆新交易的輸出時(shí)通過私鑰進(jìn)行簽名上鎖,另外在交易輸入時(shí)即區(qū)塊打包確認(rèn)前通過公鑰進(jìn)行交易簽名驗(yàn)證解鎖,以確定交易的合法性,安全性。
小結(jié)
非對(duì)稱加密算法不要求通信雙方事先傳遞密鑰或有任何約定就能完成保密通信,并且密鑰管理方便,可實(shí)現(xiàn)防止假冒和抵賴,因此,非對(duì)稱加密算法比對(duì)稱加密算法更適合網(wǎng)絡(luò)通信中的保密通信要求。