什么是非對(duì)稱加密和對(duì)稱加密又有什么具體應(yīng)用
春節(jié)期間,整個(gè)數(shù)字貨幣市場(chǎng)波瀾不驚,不過,有些事件卻也引發(fā)了圈內(nèi)的廣泛討論,比如,比特幣交易所QuadrigaCX創(chuàng)始人去世,他獨(dú)自掌握了約1.47億美元加密數(shù)字貨幣的私鑰,他的意外離世,導(dǎo)致這些數(shù)字貨幣被永久“上鎖”,這跟丟失了沒什么區(qū)別。
肖恩不由感慨,無論科技多么發(fā)達(dá),資金安全風(fēng)險(xiǎn)可能也永遠(yuǎn)不會(huì)徹底消除,因?yàn)轱L(fēng)險(xiǎn)很多時(shí)候來源于人本身。
在前面的文章中,肖恩講解了比特幣交易的本質(zhì),這套交易模型,保證了比特幣在沒有中心化機(jī)構(gòu)背書的前提下的交易安全。在這套交易模型中,有一個(gè)非常重要的東西,叫“非對(duì)稱加密”,而“公鑰”和“私鑰”就是非對(duì)稱加密里的概念。在比特幣的交易中,通過它們,可以判斷某筆交易是否真實(shí)有效。
“非對(duì)稱加密”是相對(duì)于“對(duì)稱加密”來說的,我們先來看看什么是“對(duì)稱加密”。
在一些以早期的戰(zhàn)爭(zhēng)為背景的諜戰(zhàn)片中,特工們以電報(bào)機(jī)來進(jìn)行通訊,通信雙方需要事先確定密碼本,密碼本只是一本普通的書籍,發(fā)送方通過密碼本,把情報(bào)內(nèi)容轉(zhuǎn)換為數(shù)字內(nèi)容,接收方依據(jù)接收到的數(shù)字內(nèi)容,再通過密碼本把它還原成情報(bào)內(nèi)容。
這種加密方式,就是對(duì)稱加密,即明文通過密鑰加密成密文,而密文同樣可以通過同一個(gè)密鑰來解密出明文。
這種加密方式,一旦被敵人找到密碼本(密鑰),情報(bào)就會(huì)被破解,而且敵人還可能偽造假情報(bào),所以在諜戰(zhàn)片里面,我們經(jīng)??梢钥吹礁鼡Q密碼本的情節(jié)。
頻繁更換密碼本,這當(dāng)然很不方便,而且依然沒有從根本上解決安全問題。于是,密碼學(xué)家們找到了另一種加密方法,即加密采用一種方法,解密采用另一種方法,兩個(gè)密鑰不一樣,所以叫非對(duì)稱加密。
非對(duì)稱加密有兩個(gè)密鑰,即公鑰和私鑰,公鑰是公開的,可以讓任何人知道,私鑰絕對(duì)不能公開,只能自己知道,公鑰加密只能用對(duì)應(yīng)的私鑰才能解,同樣的,私鑰加密只能用對(duì)應(yīng)的公鑰解。另外,公鑰是通過私鑰算出來的,但私鑰無法通過公鑰算出。
具體怎么應(yīng)用呢?
繼續(xù)用上面的例子。假如肖恩和張三都是特工,肖恩和張三各有一對(duì)公鑰和私鑰,雙方需要傳遞消息,則事先把各自的公鑰發(fā)送給對(duì)方,然后,肖恩就可以把需要傳遞的消息通過張三的公鑰加密,再發(fā)送給張三,這可以通過任何方式發(fā)送,電話、信件、廣播都行,即使被敵方知道都沒有關(guān)系。
因?yàn)檫@份被張三公鑰加密的內(nèi)容,外人無法讀取,只有張三通過自己手里的私鑰才能進(jìn)行解密讀取。這就好比,肖恩往張三家的實(shí)體郵箱里投遞了一封信,只有張三能打開郵箱查看信件,這里郵箱相當(dāng)于公鑰,而鑰匙相當(dāng)于私鑰。
比特幣采用的“橢圓曲線算法”就是非對(duì)稱加密的一種。我們常說的比特幣賬戶(比特幣地址)其實(shí)就是通過公鑰計(jì)算得來的。在“比特幣交易的本質(zhì)”一文中,肖恩有提到,我們接收到的任何比特幣金額,實(shí)質(zhì)上都是被鎖定在比特幣地址(公鑰)中的,我們要想花費(fèi)它,就必須用對(duì)應(yīng)的鑰匙(私鑰)去解鎖它。也就是說只有你掌握了私鑰,才能說某筆比特幣是屬于你的。