三分鐘了解對稱加密和非對稱加密是如何工作的?

2020-12-25 幣圈金馬獎

前段時間,我做了一個視頻 三分鐘講清楚比特幣,在這個視頻中,我分享了了解比特幣的一個基本事實和兩個核心, 其中第一個核心就是數字籤名,數字籤名保證了誰都無法拿到我們的帳戶權限,而 POW 工作量證明保證誰都不可以隨便更改我們的帳戶餘額,最終這兩個核心保證比特幣資產神聖不可侵犯。

而數字籤名的根本就是密碼學,今天我講講加密的事情。

比特幣的安全性依賴於數字籤名技術的安全性

在《比特幣:一種點對點的電子現金系統》( Bitcoin: A Peer-to-PeerElectronic Cash System )的第二章《交易》裡定義:

一枚電子貨幣( an electronic coin )是這樣的一串數字籤名:每一位所有者通過對前一次交易和下一位擁有者的公鑰( Public key ) 籤署一個隨機散列的數字籤名,並將這個籤名附加在這枚電子貨幣的末尾,電子貨幣就發送給了下一位所有者。而收款人通過對籤名進行檢驗,就能夠驗證該鏈條的所有者。

其中提到的數字籤名方案,無論是 RSA,還是 ECDSA 或 Schnorr 加密算法,都是非對稱加密算法

那麼什麼是非對稱加密?什麼又是對稱加密?

對稱加密( Symmetric Cryptography )

對稱密鑰加密,又稱私鑰加密。是指信息的發送方和接收方採用同一個密鑰去進行數據的加密和解密。如下圖所示:

優點:加密/解密速度快,適合大數據量加密

缺點:密鑰的管理與分配存在風險

如何把密鑰發送到接收方(需要解密數據的人)?如果接收方住在我們小區,那麼可以把密鑰抄紙上,直接跑過去給他。但是,如果他住在別的城市,別的國家,怎麼辦?郵寄嗎?太慢!通過 Email 發送嗎?被黑客攔截了怎麼辦?

為了解決這個問題,就有了非對稱加密。

非對稱加密( Asymmetric Cryptography )

非對稱加密,又稱公鑰加密,它解決了對稱加密的缺陷,使得比特幣更安全。非對稱加密和對稱加密,兩者的主要區別在於:對稱加密使用共享(單一)密鑰加密解密數據,而非對稱加密使用密鑰對解密數據。如下圖所示,兩把鑰匙不同。

優點:安全性高,解決了對稱加密的缺陷缺點:加密和解密速度比對稱密鑰加密慢

非對稱加密使用的密鑰對,就是公鑰(public key)和私鑰(private key)。公鑰可以對外發布,人人可見。而私鑰則自己保管,不外洩。

非對稱加密使用這密鑰對中的一個密鑰進行加密,另一個密鑰進行解密。比如用公鑰加密,那麼用私鑰解密。用私鑰加密,就用公鑰來解密。

用公鑰加密信息,用私鑰解密信息

舉個例子,小明和小王是特工,使用非對稱加密算法保證信息傳遞的安全。

1、小明和小王,都知道對方的公鑰。2、小明發送「任務 A 」給小王。小明使用小王的公鑰對信息加密。加密之後,信息變成 「XXXXXXX」。就算信息被有心人截獲,由於沒有小王的私鑰,也無從解密,不能得知「任務A」的信息,更不能進行篡改。3、小王收到信息,用自己的私鑰去解密信息,讀取「任務 A 」。4、接著,小王通過小明的公鑰,把回饋「已收到,任務 A 開始執行」用小明的公鑰加密,發給小明。5、同理,小明用自己的私鑰解開信息。而第三人因為沒有小明的私鑰,就算捕獲信息,也不能讀取內容,更不能篡改。

用私鑰加密信息,用公鑰解密信息

這種情況是用來確保:信息是由私鑰擁有方發布的,且是完整的、正確的。這被稱作數字籤名。公鑰的形式就是數字證書。

舉個例子,銀行發布一個客戶端補丁供所有用戶更新。

1、為了確保客戶下載的是完整、正確、沒有被篡改的補丁,銀行為這個補丁打上一個數字籤名,就是用銀行的私鑰對這個程序加密,然後發布。2、小明的電腦裡,已裝有銀行的數字證書,就是銀行對外發布的公鑰3、小明下載補丁,用數字證書(公鑰)去解密這個補丁的數字籤名,如果解密成功,補丁才能安裝使用。

通過數字證書(公鑰)解密,小明知道這個補丁確實是銀行發布的,是完整的、正確的、沒有動過手腳的,可以放心使用。

非對稱加密在區塊鏈中的主要應用

1、身份驗證:通過私鑰驗證身份,是否擁有對應的公鑰,對應的錢包地址。2、加密:加密過程中,編碼信息,只有擁有私鑰的人,才能解密和閱讀經過加密的區塊鏈數據。

總結

打個簡單的比方,對稱加密,就像你家大門的鑰匙,丟了它,撿到鑰匙的人就可以通過這把鑰匙打開你家大門,有失竊的可能。非對稱加密,就像一對鑰匙AB,而且是鎖門是鑰匙 A,開門是鑰匙 B,那麼就算你丟了鎖門的鑰匙 A ,拿到鑰匙 A 的人,也不能打開你家大門,家裡還是安全的。

總之,非對稱加密讓區塊鏈技術更安全,更健壯。看完這篇,對稱加密和非對稱加密你了解了嗎?

參考文章

《比特幣白皮書:一種點對點的電子現金系統(吳忌寒翻譯版)》《How Does Symmetric and Asymmetric Public Key Cryptography Work?》《如何用通俗易懂的話來解釋非對稱加密?》

相關焦點

  • 對稱加密和非對稱公鑰加密有什麼區別
    Asymmetric cryptography不對稱加密對稱密碼技術對稱密碼技術與凱撒密碼技術相同,用單個密鑰加密和解密數據。 為了更好地理解此過程,將此過程可視化為下圖雖然可以使用相同的鑰匙,但是存在如何在共享鑰匙的同時防止被竊聽者竊聽的問題。如果使用對稱加密技術傳輸數據並確保其他人不會截取數據,則必須向接收者共享密鑰。 如果收件人住在附近,可以通過信封或其他線路直接傳遞密鑰,但如果收件人來自其他州或其他國家,該怎麼辦? 在這種情況下,發送密鑰的任務非常困難,因此需要另一種技術「非對稱加密」來克服這個問題。
  • 什麼是非對稱加密?
    這個群體由眾多的天才極客和IT精英組成,陣容極為豪華,包括英維基解密創始人Tim May、全球資訊網發明者Tim Berners-Lee、Facebook創始人之一Sean Parker,當然,還包括比特幣之父中本聰。豪華陣容的背後只有一個目的,就是使用強大的加密算法來保護個人信息和隱私免受攻擊。
  • 加密算法科普:des、aes加密、對稱、非對稱加密、Hash算法都是啥
    加密算法導讀加密一般分為對稱加密(Symmetric Key Encryption)和非對稱加密(Asymmetric Key Encryption)常見的對稱加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6 和 AES常見的非對稱加密算法:RSA、ECC (行動裝置用)、Diffie-Hellman、El Gamal、
  • 區塊鏈丨非對稱加密算法,區塊鏈的加密秘訣!
    前面講到了對稱加密算法,今天講講非對稱加密算法。可以說非對稱算法是對稱算法的升級,因為非對稱算法是基於對稱算法而被研究出來的。非對稱算法與對稱算法的不同之處在於非對稱算法省去了對稱加密算法時要分發密鑰的麻煩,所以說是對稱加密算法的升級。在非對稱加密算法中同樣具有兩種密鑰:私鑰(private key)和公鑰(public key)。
  • 【深度】關於非對稱加密你知道多少?
    現在恭喜你,你只用了半分鐘的時間就了解了百年對稱加密史。1、什麼是「對稱加密」?恭親王奕訢想告訴慈禧:「當心肅順、端華、戴桓。答案是「非對稱加密「。2、什麼是「非對稱加密」?非對稱加密比慈禧的對稱加密晚出生80年,至於為什麼要晚那麼久,因為必須要等到有了計算機網絡,人們有了安全傳輸文件的需求,才能點燃研究的火焰。這一把火直接燒出了「非對稱加密「——一種更安全的加密技術。與對稱加密不同,非對稱加密不支持逆推。
  • 區塊鏈丨對稱加密算法
    在前面的文章中,有提到「對稱加密算法」,這是一種相對應用得比較早的加密算法之一,其技術也是比較成熟的。在執行對稱加密時,數據發出方將需要明文(之前的文章中有解釋)和加密密鑰一起輸入至加密算法中進行處理,使之變成更為複雜的加密密文,之後再將密文發布出去。
  • 淺談對稱加密中的流加密
    之前介紹的對稱加密算法都是分組加密,如DES,3DES,SM4等。被加密的原文需要分成組,每組長度與密鑰長度相同,再分別加密。實際上,對稱加密裡還有一種類型算法叫做流加密。所謂流加密,就是使用一個與原文同樣長度的密鑰,與原文數據按位進行異或操作,得到的結果就是密文。
  • 加密類型:5種加密算法以及如何選擇正確的算法
    在深入探討5種最常用的加密算法,以前所未有地簡化它們之前,我們將分解兩種主要的加密類型,對稱和非對稱。加密是始終成為頭條新聞的那些網絡安全主題之一。對不同類型的加密有充分了解的任何人都可能會覺得,這種非凡的技術正處於一種不公正的狀態,而這種非凡的技術是Internet安全和隱私的核心。
  • 數據加密中的DES加密算法詳解
    [摘要] 本文詳細介紹了DES數據加密算法的原理,並給出了一個例子演示了如何使用c#中的加密包進行DES算法加密,最後對DES進行了評價。本文引用地址:http://www.eepw.com.cn/article/202130.htm[關鍵詞] 加密 對稱 非對稱 DES 密鑰 明文 密文從最初的保密通信發展到目前的網絡信息加密,信息加密技術一直伴隨著信息技術的發展而發展。作為計算機信息保護的最實用和最可靠的方法,信息加密技術被廣泛應用到信息安全的各個領域。
  • SSL協議之數據加密過程詳解
    這種我和A知道,別人不知道的加密方法就是一種對稱加密算法,對稱加密算法也是我們日常最常見的加密算法。這種算法的不足是鑰匙只有一把,加密解密都用同一把鑰匙,一旦洩露就全玩完了。隨時時代的進步,人們發現實際上加密和解密不用同一把鑰匙也是可以的,只要加密和解密的兩把鑰匙存在某種關係就行了。於是,層出不窮的非對稱加密算法就被研究了出來,那麼它基於什麼樣的道理呢?
  • 常見加密算法DES、AES和RSA的原理和特點
    本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫主要總結下常用的對稱性加密算法DES和AES,非對稱性加密算法RSA。Key為8個字節共64位,是DES算法的工作秘鑰;Data也為8個字節64位,是要被加密或解密的數據;Mode為DES的工作方式,有兩種:加密或解密。3.DES加密原理DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。
  • 軟體加密鎖CodeMeter的5種加密方式,如何選擇最適合的加密方案
    軟體智慧財產權保護越來越受到企業的重視,給軟體加密、保護核心技術不被竊取或被非法使用,成為軟體商必須選擇的戰略。軟體商在選擇加密方案時會遇到各種困擾:什麼樣的方案是安全的?什麼樣的方案性價比最高?如何選擇最適合自己企業的加密方案?
  • 什麼是加密算法?
    常用的加密算法有對稱加密算法,非對稱加密算法,哈希算法,數字籤名等幾類。    對稱加密顧名思義就是加密和解密是對稱的,加密時用一個秘鑰去加密,解密時用同一個秘鑰去解密,由信息發送方和接收方共同約定一個秘鑰。缺點是風險都在這個秘鑰上面,一旦被竊取,信息會暴露。所以安全級別不夠高。常用對稱加密算法有DES,3DES,AES等。在jdk中也都有封裝。
  • DES、RC4、AES等加密算法優勢及應用
    程式設計師捍衛自己珍貴的代碼,全靠花式的加密算法。代碼加密有多重要?程式設計師半年做出的產品,盜版者可能半天就能完全破解。  加密算法的本質,首先是為了對數據進行保密並防止篡改,其次更具有了身份驗證的功能。像是你跟女友約定好的話術,這句話一說出來,她就知道是什麼意思,並且知道說話的人是你,但任何其他人根本不知道你們在說什麼。  根據密鑰類型的不同,加密算法分為對稱和非對稱兩種。
  • 區塊鏈中的密碼學系列之對稱加密算法DES(六)
    前言DES是一種數據加密標準( Data Encryption Standard) , 有30多年歷史,是一種對稱密碼算法,是第一個得到廣泛應用的密碼算法,是一種分組加密算法,輸入的明文為64位,密鑰為64位(實際上只有56位,原因是每隔7個比特設置一個奇偶校驗位),生成的密文分組長度為64位。但是現在已經不再安全。課件來自我們老師上課的PPT。2.
  • 目前已知的最強加密算法RSA
    RSARSA是一種非對稱加密算法,1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的,因此以三人姓氏的首字母命名了該非對稱加密算法,RSA算法。
  • 端到端加密技術分析:在即時通信領域中如何應用來提高安全性
    3 端到端加密系統實現簡單,只需在發送方和接收方提供加解密服務即可,無需考慮中間傳輸環節。端到端加密技術加密算法分析:國密算法目前常用的非對稱算法中存在著兩種不同的技術,一種是國際標準的密碼算法,另外一種是我國國產密碼算法。
  • 一種基於DES加密算法的加密方法
    摘要:本發明公開了一種基於DES加密算法的加密方法,其加密方法採用服務端與客戶端共享密鑰集文件,實現通信過程中使用動態密鑰的對稱加密方法,建立密鑰集文件,密鑰集文件由三個互相垂直方向的X、Y、Z組成的長方體形的三維模型;伺服器端在X、Y有效值範圍內隨機一個坐標,確定一組密鑰,進行DES加密;將選取的X、Y分別值轉換為4位16進位數
  • 密碼學 RSA加密與破解
    如果一對一的話,那麼兩人需要交換一個密鑰。一對多的話,比如總部和多個特工的通信,依然可以使用同一套密鑰。這樣一種加密算法叫做非對稱加密(asymmetric encryption)。非對稱加密的經典算法是RSA算法。它來自於數論與計算機計數的奇妙結合。 為了了解RSA加密,請聽一個臥底的自白: RSA加密我是潛伏在龍鳳大酒樓的臥底。
  • RSA加密與破解
    如果一對一的話,那麼兩人需要交換一個密鑰。一對多的話,比如總部和多個特工的通信,依然可以使用同一套密鑰。但這種情況下,對手偷到一個密鑰的話,就知道所有交流的信息了。二戰中盟軍的情報戰成果,很多都來自於破獲這種對稱加密的密鑰。