非對稱加密的原理及種類介紹
原標題:非對稱加密的原理及種類介紹
什麼是非對稱加密
非對稱加密是一種保證區塊鏈安全的基礎技術。該技術含有兩個金鑰:公鑰和私鑰,首先,系統按照某種金鑰生成演算法,將輸入經過計算得出私鑰,然後,採用另一個演算法根據私鑰生成公鑰,公鑰的生成過程不可逆。由於在現有的計算能力條件下難以通過公鑰來窮舉出私鑰(即計算上不可行),因此可以認為是資料是安全的,從而能夠保證區塊鏈的資料安全。
一個簡單的例子理解非對稱加密是什麼:
北京的Bob發了一個快遞到廣州的Alice,途中經過了上海,上海快遞中心出現了一個黑客H,他偷偷打開了Bob給Alice的快遞,然後偷偷把裡邊的衣服剪爛,再按照原樣包裝好發往廣州,可以看到對於這樣簡單包裝的傳輸在中途是可以偷偷修改裡邊的東西。
HTTP的資料包是明文傳輸,也即是如果中途某個黑客嗅探到這個HTTP包,他可以偷偷修改裡邊包的內容,至於Bob跟Alice是互相不知道這個動作的,因此我們必須要有一個方案來防止這種不安全的篡改行為,有個方法就是加密!
Bob將衣服放到一個保險箱裡邊鎖起來,他打了個電話告訴Alice保險箱開櫃密碼是1234,而黑客H不知道密碼,所以他看不到保險箱裡邊的東西,Alice收到快遞後用預先溝通好的密碼就可以開啟保險箱了。
這裡保護的手段就是Bob對物品進行加密,同時給了告訴Alice解密的方法!
那如果現在要求Bob的密碼只能通過快遞傳給Alice呢?如果Bob直接傳密碼給Alice,H如果嗅探到這個快遞,那H也知道密碼了,這就無法保護快遞的安全性了。因此還需要有個方案,讓Bob能夠告訴Alice密碼的同時,H又無法檢視到Bob跟Alice通訊的資料。
非對稱加密在這個時候就發揮作用了,來看看怎麼回事:Bob擁有兩把鑰匙,一把叫做公鑰,一把叫做私鑰。公鑰是公開讓全社會都知道,沒關係,Bob告訴所有人,你們要傳遞資料給我的時候請先用這個金鑰(公鑰)去加密一下你們的資料,加密後的資料只能通過Bob私自藏著的私鑰才能解密。
回到剛剛例子,Bob先發給保險櫃(Bob公鑰)給Alice,接著Alice把自己的保險櫃(Alice公鑰)放到Bob的保險櫃(即使用Bob的公鑰加密Alice的公鑰)裡邊發還給Bob,接著Bob拿到Alice的資料包後,用自己的私鑰解開了外層保險櫃(Bob的公鑰),拿到了裡邊Alice保險櫃(Alice的公鑰)。此時Alice跟Bob都有了各自的公鑰(並且都有他們自己的私鑰),接著只要保證每次互相傳遞資料的時候,把資料放在對方的保險櫃裡邊即可(即每次都用對方的公鑰加密資料),這樣無論如何,H都無法解開保險櫃(因為只有各自的私鑰才能解開各自的保險櫃)。
非對稱加密原理
非對稱加密演算法需要兩個金鑰來進行加密和解密,這兩個祕鑰是公開金鑰(簡稱公鑰)和私有金鑰(簡稱私鑰),即常說的“公鑰加密,私鑰加密”或“私鑰加密,公鑰加密”。私鑰只能由一方安全保管,不能外洩,而公鑰則可以發給任何請求它的人。非對稱加密使用這對金鑰中的一個進行加密,而解密則需要另一個金鑰。
比如,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對訊息加密,那麼只有私鑰的持有人--銀行才能對你的訊息解密。與對稱加密不同的是,銀行不需要將私鑰通過網路傳送出去,因此安全性大大提高。
優點:安全性更高,公鑰是公開的,祕鑰是自己儲存的,不需要將私鑰給別人。
缺點:加密和解密花費時間長、速度慢,只適合對少量資料進行加密。
非對稱加密演算法有哪些
幾種常見的非對稱性加密演算法:RSA,DSA,ECC
RSA:由 RSA 公司發明,是一個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標準);
ECC(Elliptic Curve Cryptography):一種更加高效的公鑰密碼系統,即橢圓曲線密碼系統,在達到相同安全程度的前提下, ECC 所使用的金鑰長度小於 RSA 的金鑰長度,且 ECC 的計算過程更簡單。
RSA和DSA的安全性及其它各方面效能都差不多,而ECC較之則有著很多的效能優越,包括處理速度,頻寬要求,儲存空間等等。
RSA,DSA,ECC效能方面的比較:
1.安全性:RSA和DSA差不多,而ECC系列好一些。
2.效能:RSA和DSA差不多,ECC系列有更好的效能。,包括處理速度,頻寬要求,儲存空間等等。
3.需要注意點:
- RSA建議採用1024位的數字。
- DSA只能用於數字簽名,不能用於加解密,比RSA要快很多。
- ECC建議採用160位。
BB財經原創,作者:區塊鏈百科,轉載請註明出處:http://www.bbcaijing.cn/baike/26305.html