自古以來,人們就普遍需要以一種只能被目標接收者看到的方式來傳遞信息。加密的文本和消息被用于從軍事應用到外交和商業(yè)的各種領(lǐng)域。經(jīng)過幾個世紀的發(fā)展,加密以密碼學的形式出現(xiàn),這是一門基于信息保護的復雜科學。
我們今天使用的大多數(shù)現(xiàn)代互聯(lián)網(wǎng)服務(wù),如網(wǎng)上銀行、私人信息和個人數(shù)據(jù)保護,如果沒有現(xiàn)代密碼學是不可能實現(xiàn)的。
由于密碼學是一門相當復雜的科學,所以我們希望在本文開始時簡要介紹一下它的歷史。這將使您更好地理解現(xiàn)代加密算法的工作原理。
密碼學的歷史可以分以下幾個時期:
經(jīng)典密碼學
直到16世紀,迷惑敵人的手段還相當原始,使用的方法如簡單的密碼,其中每個文本符號都有一個特殊的代碼。隱寫術(shù)(Steganography)也很流行,它將秘密信息隱藏在另一種信息或媒介中(比如使用隱形墨水書寫在一定條件下可以被揭露的文本)。這些方法與密碼學相關(guān),但并不相同。
使用的大多數(shù)密碼是單字母替代法的變體。這涉及到按照某種算法創(chuàng)建加密表,其中明文的每個字母對應于密文的單個字母。最早有歷史記載的例子之一是凱撒密碼,這是一種替代密碼。
凱撒密碼如何運作
正式的密碼學
這個時期的特點是出現(xiàn)了對手工密碼分析具有相對抵抗力的正式密碼。當時,大多數(shù)密碼分為單字母密碼和多字母密碼(后者基于使用多個替代字母)。
在科學之前的密碼學中,最后一個詞是轉(zhuǎn)子系統(tǒng),它提供了更大的抗密碼性,并允許加密過程機械化。在轉(zhuǎn)子機械的幫助下,多字母替換是通過改變旋轉(zhuǎn)車輪的相對位置來完成的,每個旋轉(zhuǎn)車輪都執(zhí)行各自預先設(shè)定的替換模式。這種機器最早的例子之一是恩尼格瑪,二戰(zhàn)期間在納粹德國用于秘密通信。
Enigma,首批也是最突出的轉(zhuǎn)子系統(tǒng)應用之一
Enigma是最早也是最突出的轉(zhuǎn)子系統(tǒng)應用之一,隨著早期計算機的出現(xiàn),對轉(zhuǎn)子系統(tǒng)的攻擊成為了可能,因此密碼學進入了下一個發(fā)展階段。在這個階段,出現(xiàn)了擴散和混淆的方法。分組密碼也出現(xiàn)了,它們比轉(zhuǎn)子系統(tǒng)具有更強的抗攻擊能力,但只能用電子計算設(shè)備來實際應用。從本質(zhì)上說,塊密碼與多字母密碼非常相似,在多字母密碼中,明文消息被分成特定長度的塊,然后每個塊都用自己的替換表進行加密。
計算機密碼學
計算機密碼學的出現(xiàn)歸功于計算機的發(fā)展,計算機的性能水平足以創(chuàng)建比手動和機械密碼具有更高的加密速率和更高的密碼抵抗力的密碼系統(tǒng)。
在這個階段,最常用的加密方法最初是基于相當簡單的原理的對稱算法。假設(shè)Alice和Bob需要交換消息,以確保在攔截時沒有其他人能夠讀取它們的內(nèi)容。為此,Alice和Bob有一個公共密鑰(本質(zhì)上是一個密碼)。使用這個密鑰,Bob可以加密一條消息并將其傳輸給Alice。反過來,Alice可以使用她這邊的相同密鑰來解密接收到的消息并讀取其內(nèi)容。從Alice到Bob的反向通信將以相同的方式進行。
盡管這些類型的算法簡單且快速,但它們也有一些嚴重的缺點。主要問題是需要有一種安全的方式將公共密鑰傳遞給參與者。理論上,Alice到Bob可以見面并把鑰匙遞給對方。但是,如果它們想與大量對等方交換消息,或者它們彼此相距很遠,那么這種方法就行不通。
當今最突出的對稱算法是高級加密標準(AES)、數(shù)據(jù)加密標準(DES)、國際數(shù)據(jù)加密算法(IDEA)和世界自動密鑰加密算法。
1975年,為了滿足對更高級加密方法的需要,引入了非對稱加密的概念。
讓我們回到Alice到Bob。現(xiàn)在它們每個人都有自己的密鑰,也稱為私鑰,因為除了它的所有者之外,沒有人知道這個密鑰。對于任何人都可以知道的每個私鑰,還有一個可能的開放公鑰。這對密鑰的工作方式是,公鑰只能用于消息加密,而不能用于解密。為了解密用公鑰加密的消息,您需要相應的私鑰?,F(xiàn)在,如果Bob想向Alice發(fā)送一條消息,他將獲取她的公鑰(在開放網(wǎng)絡(luò)上是免費可用的),對消息進行加密并將其發(fā)送。而且Alice可以用她的私有密匙解密它,這是她唯一知道的,而不用擔心消息的內(nèi)容會暴露給第三方。
非對稱加密的工作原理
區(qū)塊鏈上的密碼學
現(xiàn)在我們可以討論如何在區(qū)塊鏈中使用密碼學了。密碼學是任何區(qū)塊鏈的核心,它提供了系統(tǒng)的基本功能。區(qū)塊鏈體系結(jié)構(gòu)意味著網(wǎng)絡(luò)參與者之間的信任是建立在數(shù)學和經(jīng)濟學的基礎(chǔ)上的,即是形式化的。密碼學還保證了安全性,它基于所有操作的透明性和可驗證性,這與業(yè)界傳統(tǒng)的方法不同,傳統(tǒng)方法限制了系統(tǒng)關(guān)鍵部件的可見性。各種加密技術(shù)保證了區(qū)塊鏈的交易分類賬的高概率不變性,并提供了對網(wǎng)絡(luò)和區(qū)塊鏈數(shù)據(jù)的一般身份驗證和訪問控制。
比特幣
首先,我們將詳細描述第一種加密貨幣的加密技術(shù),因為它將提供理解這個復雜問題的起點。哈希值函數(shù)是大多數(shù)現(xiàn)有加密貨幣的加密基礎(chǔ)。它可以將任意輸入的數(shù)據(jù)映射為固定大小的數(shù)據(jù),即將隨機長度的數(shù)據(jù)數(shù)組轉(zhuǎn)換為固定長度的位串。這個操作是不可逆的,也就是說,在函數(shù)f(x)=y中,如果我們知道x,我們可以找到y(tǒng),但是我們不能通過知道y來找到x。在比特幣中,這個函數(shù)的作用是由SHA-256來完成的。哈希值函數(shù)的另一個重要特性是,即使對輸入數(shù)據(jù)進行最小的更改,也會導致哈希值的急劇變化。因此,哈希值函數(shù)在區(qū)塊鏈中的應用是為了保證整個事務(wù)鏈的完整性。每個新事務(wù)塊引用分類賬中前一個塊的哈希值。前一塊哈希值取決于所有過去交易的哈希值,所有的哈希函數(shù)都融合到一個哈希值線并通過事物在一個二進制情況下建立哈希值樹(Merkle樹)。
Merkle樹
通過這種方式,哈希值被用作傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)指針的一種替代。通過使用哈希值函數(shù),你可以表達一個區(qū)塊鏈的一般狀態(tài)。因此,任何塊的哈希值的不變性保證了整個區(qū)塊鏈的不變性。
接下來,我們將考慮在事務(wù)本身中使用密碼學?,F(xiàn)在我們需要回憶一下什么是非對稱加密。當我們想要執(zhí)行比特幣交易時,接收方的公鑰(通過哈希值函數(shù)轉(zhuǎn)換)將被用作接收地址。然后,發(fā)送方的私鑰將用于簽署交易,因此任何網(wǎng)絡(luò)參與者都將能夠驗證該交易是否由該特定比特幣的實際所有者發(fā)起。私鑰是隨機生成的,可以是任何自然數(shù)量,從1到22??可以通過數(shù)學計算變成了熟悉的16位代碼轉(zhuǎn)換。然后使用ECDSA從私鑰獲得公鑰。
以太坊
ECDSA也用于在以太坊中生成公鑰。其區(qū)塊鏈的完整性和不變性是通過使用SHA-3 (Keccak-256)哈希值函數(shù)實現(xiàn)的。
量子威脅
盡管當代計算機攻擊私鑰在數(shù)學上極其復雜,但由于量子計算機的出現(xiàn),在未來解決這一問題還是很有可能的。量子計算機是一種全新水平的計算機器,在計算能力上大大超過了現(xiàn)有的計算機。
首先,讓我們來看看為什么量子計算機會帶來威脅。在傳統(tǒng)計算中,信息處理的單位是位。每個比特只能處于兩種可能狀態(tài)之一:0或1。注冊表2 ^ N N比特可以包含一個的可能組合的狀態(tài)和形式。經(jīng)典計算的算法是一系列簡單的后續(xù)運算。在量子裝置中,量子位(量子位)被用來代替位。與位的主要區(qū)別在于它們能夠同時處于1,0狀態(tài)(疊加)。
在經(jīng)典計算中,計算機內(nèi)存中加載了2^n數(shù)據(jù)變體中的一個,并且為這個變量計算了函數(shù)的值。因此,一次只能處理2^n個可能的數(shù)據(jù)集中的一個。
然而,在量子計算機的存儲器中,初始數(shù)據(jù)的所有2^n組合都是同時存在和處理的。這意味著一個數(shù)據(jù)集的所有可能的2^n變種的函數(shù)在一個操作期間被計算出來(在最后將只得到一個解決方案)。通過這種方式,量子裝置的計算能力將有助于使用Shor的算法(降低電阻和應用新的計算方法)獲得私鑰。
兩個估計量子計算機作為時間函數(shù)打破簽名方案所需的時間(以秒為單位)
目前,只有幾個主要的方法,使用戶免受量子計算機攻擊:
· 基于哈希值加密;
· 基于代碼加密;
· 多變量加密;
· 超奇異橢圓曲線同源密碼術(shù);
· 對稱鍵量子論;
· 基于Lattice加密。
這些方法具有足夠長的密鑰,并遵循安全要求,可以抵御經(jīng)典攻擊和量子攻擊。不幸的是,由于技術(shù)上的困難和大尺寸的量子抵抗簽名(需要存儲這樣的簽名將大大增加區(qū)塊鏈的大小),現(xiàn)有的解決方案無法應對即將到來的威脅。
這就是比特幣、以太幣、NEO和其他一些加密貨幣的開發(fā)者正在尋找解決這個問題的方法的原因。但是有幾個項目已經(jīng)將后量子密碼學作為保護數(shù)據(jù)的基礎(chǔ)技術(shù)。
1. IOTA
為物聯(lián)網(wǎng)(IoT)創(chuàng)建的一種加密貨幣。它使用DAG(有向無環(huán)圖)代替標準的區(qū)塊鏈。它的量子攻擊抗性由Winternitz簽名提供,這是一種一次性輕量級簽名技術(shù)。不幸的是,目前這種類型的簽名還沒有得到數(shù)學上的證實。
2. 抗量子分類帳
項目名稱不言自明。它使用擴展的Merkle簽名方案(XMSS)來實現(xiàn)量子電阻。
3.GEO協(xié)議
在GEO網(wǎng)絡(luò)中,每個節(jié)點都存儲它與所有相鄰節(jié)點(本地存儲)的當前余額和信用關(guān)系。該協(xié)議的這一特性,加上缺乏一個通用的分布式賬本(GEO是一個非區(qū)塊鏈解決方案),使我們能夠使用解決量子問題的最佳方法之一——Lamport簽名。這種方法的本質(zhì)在于對每個事務(wù)使用一次性密鑰。這些鍵是預先生成的,數(shù)量有限。在使用所有預生成的鍵之后,將生成新的鍵。這使我們能夠安全快捷地進行無限數(shù)量的交易。
結(jié)論
量子威脅似乎還有很長的路要走,這就是為什么大多數(shù)加密貨幣項目似乎并不關(guān)心它的原因。量子威脅很少在與區(qū)塊鏈相關(guān)的大型會議上討論,這一點就證明了這一點。但在不久的將來,隨著期待已久的量子計算突破,這一切都可能改變。鑒于這種可能性以及它所帶來的危險,加密貨幣社區(qū)應該保持警惕并采取先發(fā)制人的措施來對抗這種威脅。