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