中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
非對稱加密概述

前言

在閱讀《精通比特幣》的過程中,我發(fā)現比特幣系統(tǒng)中有兩個重要的概念需要利用非對稱加密技術:

比特幣地址的生成

交易合法性的驗證

因此,我用了幾天時間學習了密碼學基礎知識,尤其是非對稱加密技術的原理。這里加以整理總結,本文只求通俗,必需涉及數學公式才能解釋的部分只給出優(yōu)質教程的鏈接,根據需求選擇學習就好。

本文以一個一臉懵逼的新手視角進行介紹:

  • 想了解非對稱加密,那么對稱加密是什么?

  • 非對稱加密又是什么??

  • 非對稱加密技術能做什么???

  • 如果想深入了解非對稱加密算法原理看哪些資料????

先說說對稱加密

想了解非對稱加密,不妨先解釋對稱加密是什么

對稱加密,全稱應該是對稱密鑰加密(Symmetric-key algorithm),是密碼學中的一類基本的加密算法。這類算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。

而在密碼學中,密鑰(key)是指某個用來完成加密、解密、完整性驗證等密碼學應用的秘密信息。

一個密鑰大概長這樣“A56FDJK3 dj2slh345dhi”,一般以一定長度的字母和數字組成的字符串來表達,具體長度和使用的字母由具體的加密算法規(guī)定,沒有統(tǒng)一規(guī)定。

下面用例子和圖來直觀解釋對稱密鑰加密,有請出密碼學中出鏡率最高的兩個人:Alice和Bob

假設Alice正在利用網絡向Bob發(fā)送一條消息“Alice已向Bob轉賬1BTC,請查收?!?


由于通信過程不能保證是安全的,兩人的通信暴露在網絡中是存在被第三方劫持的可能

因此Alice和Bob商量使用對稱加密方法對消息進行。

為了安全,兩人私下確定了使用的加密規(guī)則(例如對稱加密算法DES),以及密鑰(例如“AliceBobKey”)

于是新的通信過程如下圖所示:


從圖中可以看出,Alice使用事先商量好的加密算法和密鑰對消息進行加密,通過互聯網發(fā)送給Bob,Bob收到密文后,使用同樣的算法和密鑰對密文進行解密。加密-解密的過程完全對稱,因此被稱為對稱密鑰加密。

于是,即使現在存在第三方劫持了Alice發(fā)送的消息,也無法得知消息的具體內容,安全性得到的一定程度的保證。

事實上,這組密鑰成為了Alice和Bob的共同秘密,以便維持專屬的通信聯系,任何一方都不能將密鑰泄露。

對稱加密的過程非常好理解,在很多場合都需要這種技術,也有著很多優(yōu)點(比如速度快)。

但與非對稱加密相比,要求雙方獲取相同的密鑰是對稱密鑰加密的主要缺點之一。在某些特殊的場景下,這種加密技術就會有局限性,比如它無法用于身份驗證,因為你不能將密鑰提供給其他人。

下面就來說說非對稱加密

非對稱加密是什么?

非對稱加密(asymmetric cryptography),也稱為公開密鑰加密(Public-key cryptography),是密碼學的一種算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰。顧名思義,公鑰可以任意對外發(fā)布;而私鑰必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供,也不會透露給要通信的另一方,即使他被信任。

非對稱加密的重要性質:

1.加密的雙向性。

加密具有雙向性,即公鑰和私鑰中的任一個均可用作加密,此時另一個則用作解密。


使用其中一個密鑰把明文加密后所得的密文,只能用相對應的另一個密鑰才能解密得到原本的明文,甚至連最初用來加密的密鑰也不能用作解密,這是非對稱加密最重要的性質或者說特點。

2.公鑰無法推導出私鑰

必須確保使用公鑰無法推導出私鑰,至少妄想使用公鑰推導私鑰必須在計算上是不可行的,否則安全性將不復存在。

雖然兩個密鑰在數學上相關,但如果知道了公鑰,并不能憑此計算出私鑰;因此公鑰可以公開,任意向外發(fā)布;而私鑰不公開,絕不透過任何途徑向任何人提供。

注1:任何一種實現上面兩條性質的不同方法,便是一種新的非對稱加密算法。例如RSA算法和橢圓曲線算法,其背后原理大不相同,但都滿足這兩個重要性質或者說定義。這就好像好比歐式距離,馬氏距離都滿足了范數的定義,因此都是一種具體的范數。

注2:如果你第一次接觸非對稱加密,你可能會和我一樣對上面兩條性質如何實現深感好奇,但目前你不必深陷于此,其背后的數學原理還是需要耐心鉆研上幾天的?,F在僅僅牢記這兩個性質就好,文末提供了一些優(yōu)質的材料以供進一步學習。

非對稱加密的應用

了解了非對稱加密大致是什么,這小節(jié)來說說它能夠做什么?

前面已經知道,非對稱加密具有雙向性,即公鑰和私鑰中的任一個均可用作加密,此時另一個則用作解密。于是不同加密方向便產生了不同的應用。

應用1:加密通信

|明文|->公鑰加密->|密文|->私鑰解密->|明文|

這種加密路徑用于和他人進行加密通信,作用等同于對稱加密。

我們回到Alice和Bob的例子來看下。

如果Bob想利用非對稱加密算法私密的接收他人向他發(fā)送的信息,步驟是這樣的。

1.首先Bob需要使用具體約定的算法(例如RSA)生成密鑰和公鑰,密鑰自己保留,公鑰對外公布。

2.Alice拿到Bob的公鑰后,便可以對想要發(fā)送的消息“Alice已向Bob轉賬1BTC,請查收?!边M行加密。

3.然后Alice將密文(例如是“FH39ggJ shi3djifg35”)發(fā)送給Bob。

4.Bob收到消息后,用自己的私鑰進行解密,還原出消息原文“Alice已向Bob轉賬1BTC,請查收?!?/p>

用圖來表示便是下面的過程:


由于使用Bob公鑰加密的消息只能用Bob的私鑰解密(Bob的公鑰也是不行的),而私鑰只有Bob擁有,因此即使消息被第三方劫持,他也無法還原出消息明文。

應用2:數字簽名

如果反過來,先用私鑰加密呢?這便誕生了非對稱加密的另一個重要應用:數字簽名

我們回到Alice和Bob的例子來看下。

在比特幣系統(tǒng)中,類似“Alice已向Bob轉賬1BTC,請查收。”這樣的消息最終會被礦工記錄在賬本上,是與轉賬雙方利益相關的。這樣一條消息的受益方是Bob,我們腹黑一點想,如果Bob一直向網絡中廣播Alice給他轉賬的消息呢?

Bob:“Alice已向Bob轉賬1BTC”

Bob:“Alice已向Bob轉賬2BTC”

Bob:“Alice已向Bob轉賬3BTC”

因此,我們需要一種機制來證明Alice是“自愿”的,也就是消息是Alice親自發(fā)出的。步驟是這樣的:

1.Alice需要使用具體約定的算法(例如RSA)生成密鑰和公鑰,密鑰自己保留,公鑰對外公布。

2.當Alice想要發(fā)送消息 Alice已向Bob轉賬1BTC,請查收。| 我的公鑰是:“gh3giPGFN2jgh3sF”。 時,Alice使用自己的私鑰對消息進行加密,假設加密后的密文是 SHG356g3T4 dh4fh,現在這個密文可以看作Alice的數字簽名。

3.Alice將消息明文和數字簽名放到一起并發(fā)送到網絡中

發(fā)送的消息類似這樣的形式 Alice已向Bob轉賬1BTC,請查收。| 我的公鑰是:“gh3giPGFN2jgh3sF”。| 簽名:“SHG356g3T4 dh4fh”

4.網絡中的所有人接收到消息后,都可以進行如下操作完成驗證:

收到消息 Alice已向Bob轉賬1BTC,請查收。| 我的公鑰是:“gh3giPGFN2jgh3sF”。| 簽名:“SHG356g3T4 dh4fh”

使用Alice在消息中提供的公鑰 gh3giPGFN2jgh3sF對私鑰簽署的數字簽名SHG356g3T4 dh4fh進行解密

將解密結果與消息明文 Alice已向Bob轉賬1BTC,請查收。| 我的公鑰是:“gh3giPGFN2jgh3sF”進行對比

如果一致,說明消息是Alice親自發(fā)送的,因為只有Alice本人擁有Alice的密鑰

如果不一致,則說明消息不是Alice發(fā)送的,或者雖然消息是Alice發(fā)送的但已遭到他人篡改

5.于是,通過4中描述的方法,Bob確認了Alice給他了一筆價值1BTC的轉賬。

網絡中其他人(礦工)均成功驗證了這條消息的真實性,并為Bob作證他的賬戶新增了1個BTC,Alice的賬戶減少了1個BTC。

整個過程可以被下圖描述:


注1:上面僅僅是對數字簽名技術的一個簡單描述,很好理解吧~實際應用中的操作略有區(qū)別,比如通常是先對明文進行hash,再對hash后結果用私鑰進行簽名。

注2:此外,上述介紹的數字簽名簡略版本是存在被第三方攻擊的漏洞的。你能想到問題以及如何解決嗎?[提示:相同內容的消息、時間戳]

注3:如果你覺得對數字簽名的理解還不夠清晰,不妨再讀讀What is a Digital Signature?

應用3:數字證書

數字證書是非對稱加密的又一個重要應用,由于與區(qū)塊鏈的學習的關系相對不那么密切,這里就先放一邊了。

大家有興趣可以看這篇文章數字證書原理,講的很清晰

教程推薦:加密-解密背后的數學原理

讀到現在,你應該對非對稱加密的步驟非常了解了

但你不清晰的地方是背后的數學原理,其實還是圍繞非對稱加密的兩條性質來的:

  • 加密-解密的過程到底是如何實現的?

  • 為什么公鑰無法推導出私鑰?

如果你想進一步探索,不妨讀讀下面這些資料:

RSA算法是如何實現加密解密的?

wiki:RSA algorithm

阮一峰的網絡日志:RSA算法原理(一)

阮一峰的網絡日志:RSA算法原理(二)

橢圓曲線算法的具體原理?

橢圓曲線算法可以用來進行秘密的共享以及數字簽名,實際上其具體步驟和本文介紹的還是略有差異的,如果想詳細了解原理,不妨看看下面這些文章:

橢圓曲線算法的幾個簡單有意思的解釋(知乎)

推薦!橢圓曲線算法的通俗介紹(tutorial)

橢圓曲線加密算法介紹

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
密碼學入門科普(加密、簽名、證書、HMAC、CA、PKI) · 語雀
密碼學入門科普
密碼學及公鑰基礎設施入門 | Linux 中國
公鑰密碼學簡介
AI已殺入密碼界,密碼攻堅不再是人類的專利!
密碼學復習題
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服