密碼學(xué)是數(shù)學(xué)和計算機科學(xué)的一個交叉。主要有兩個方面的應(yīng)用:一個就是加密通信;另一個方向是數(shù)字簽名。
數(shù)字簽名跟紙筆簽名類似,可以用來認證簽署人身份。密碼學(xué)早期主要用于軍事領(lǐng)域,隨著互聯(lián)網(wǎng)發(fā)展,民用方面涉及電子商務(wù)、銀行支付、數(shù)字版權(quán)等領(lǐng)域也普遍得到應(yīng)用。
最近幾年,區(qū)塊鏈和加密貨幣興起,密碼學(xué)的發(fā)展又進入了一個新的階段,區(qū)塊鏈的底層是密碼學(xué)技術(shù),但是也涉及到經(jīng)濟學(xué)。
01互聯(lián)網(wǎng)上的密碼學(xué)
密碼學(xué)包括:加密、解密、密文和密鑰。比如A有份秘密文件傳給B,首先通過加密算法把文件轉(zhuǎn)換成密文,密文就是一些看起來不知所云的內(nèi)容。B收到密文后,通過對應(yīng)的解密算法,就可以把密文再轉(zhuǎn)換成數(shù)據(jù)。
那么密鑰是什么呢?其實在加密和解密運算過程中有兩個要素,一個是算法,另外一個是密鑰,英文叫key。key就是參與加密解密運算過程的一小段數(shù)據(jù)。
目前流行的加密解密算法一般都是公開的,因為不公開一般也沒人敢用,怕有后門。所以信息的安全完全在于加密人和解密人手里握的key。
例如凱撒密碼,凱撒要給他的將軍發(fā)一封密信,凱撒使用的算法是把字母按照字母表順序往后移動一定的位數(shù),比如信息本來是A,現(xiàn)在往后移動3個位數(shù),就變成了D,這樣生成的密文就誰也看不懂了。
這個過程中算法是“字母偏移”,而key就是3。將軍收到密文后,根據(jù)同樣的算法和key反推就可以解密。
隨著電氣革命興起,發(fā)明了專門用于加密的硬件器材。但是真正密碼學(xué)的大發(fā)展是在計算機興起之后,尤其是互聯(lián)網(wǎng)的到來。
互聯(lián)網(wǎng)時代,所有信息都是在公共區(qū)域進行傳輸,任何人都可以截取我們的數(shù)據(jù),于是在數(shù)據(jù)傳輸之前進行加密就顯得尤其重要,當(dāng)代的密碼學(xué)也是在這個情景下來發(fā)展的,因此當(dāng)代密碼學(xué)被稱為“互聯(lián)網(wǎng)上的密碼學(xué)”。
沒有不可破解的密碼!理論上,任何密碼都可以通過暴力搜索的方式來破解。互聯(lián)網(wǎng)上的加密算法都是公開的,所以key的一些特征也是明確的,例如總共多少位。
利用計算機暴力搜索的方式去破解是一種很容易想到的攻擊方式。
這就給加密算法的設(shè)計者提出了一個基本要求,那就是算法一定是要保證足夠的計算難度,使得破解密碼所花時間是不可接受的,例如一萬年。沒有不可以破解的密碼,只有很難破解的密碼,隨著計算機運算速度不斷的提升,加密算法也需要不斷迭代。
02公鑰加密的核心地位
當(dāng)代密碼學(xué)分為兩套系統(tǒng):對稱加密和非對稱加密。其中非對稱加密也被叫做公鑰加密,是密碼學(xué)的核心技術(shù)。
在加密和解密過程中都有key參與,如果加密和解密使用同一個key,這就是對稱加密技術(shù),反之是非對稱加密技術(shù)。
具體做法是首先生成一對key,其中一個是公鑰,PublicKey,公鑰是可以公開給任何人的,另外一個是私鑰,PrivateKey,要嚴格保密。發(fā)送方首先拿到接收方的公鑰,用公鑰把信息加密,接收方收到密文后,用私鑰解密獲得信息。
之所以公鑰和私鑰能夠這樣配合工作,是因為它們兩個天生就是一對兒,有著天然的數(shù)學(xué)聯(lián)系,具體的聯(lián)系方式就跟使用的具體的加密算法有關(guān)了。
非對稱加密中最著名的算法有兩種,一個是RSA,是非對稱加密技術(shù)的開山鼻祖;另外一個是ECC,也就是橢圓曲線算法(WisdomChain采用的就是橢圓曲線算法)。ECC是一種更高效的加密算法。
對稱加密在發(fā)送方和接收方使用相同的key,所以建立安全通信的前提是雙方先要有共享的key。在沒有加密通道的情況下,key應(yīng)該如何安全的傳遞給對方呢?
這個在互聯(lián)網(wǎng)上是非常有挑戰(zhàn)性的。相對比之下,公鑰加密技術(shù)要分享的是公鑰,不用擔(dān)心泄露問題,相對要安全一些,另外公鑰加密技術(shù)也衍生出了數(shù)字簽名技術(shù)。
當(dāng)然,公鑰加密技術(shù)也需要考慮如何確認公鑰所有人等技術(shù)問題,所以就有了發(fā)證機構(gòu)CA。
總的來說:第一,密碼學(xué)是對安全通信技術(shù)的研究,要能抵御各種惡意攻擊。第二,密碼學(xué)的底層是數(shù)學(xué),密碼學(xué)的安全取決于一個難度足夠高的數(shù)學(xué)問題,保證計算機在可接受的時間跨度內(nèi)根本不可能運算出密鑰。第三,當(dāng)代密碼學(xué)是互聯(lián)網(wǎng)環(huán)境下的密碼學(xué),關(guān)鍵性技術(shù)是公鑰加密技術(shù)。
責(zé)任編輯:YYX
-
加密算法
+關(guān)注
關(guān)注
0文章
216瀏覽量
25562 -
公鑰
+關(guān)注
關(guān)注
0文章
22瀏覽量
12053 -
區(qū)塊鏈
+關(guān)注
關(guān)注
111文章
15563瀏覽量
106485
發(fā)布評論請先 登錄
相關(guān)推薦
評論