***技術中非對稱密鑰作用的理解

 

相信大家在學習非對稱密鑰的時候,作者肯定會給出非對稱密鑰的兩種使用場合,或者說是非對稱密鑰的兩個作用:
 
一、非對稱密鑰和加密
場景描述:
在這種情況下,設備首先建立一個公鑰/私鑰對。這臺設備,假如是路由器A,把該公鑰給遠端的對等體,比如是路由器B。路由器B使用A的公鑰PubA來加密它發送給路由器的任何數據。使用非對稱密鑰,只有相關的私鑰才能解密這個數據。因此,路由器A將使用它的私鑰PriA來解密數據。
同樣的,爲了使路由器A發送給路由器B,路由器B會產生一個公鑰/私鑰對,並且將公鑰PubB與路由器A共享。路由器A將使用這第二個公鑰來加密發送給路由器B的數據,路由器B將會使用相關的私鑰PriB來解密這個數據。
針對這種場景,勤于思考的朋友會問:爲何不用私鑰加密,公鑰解密?如:A發送消息給B,A先產生公鑰/私鑰對,A和B共享自己的公鑰PubA.B收到A的消息後,用PubA解密消息。但是假設在共享公鑰的過程中,如果有***者在竊聽,獲取了A的公鑰PubA,那麼***者就可以解密A發功給B的消息了。所以在用非對稱密鑰加密數據時,需要用接受者B的公鑰加密發送的數據,用接受者B的私鑰解密發給它的數據。
二、非對稱密鑰和驗證
場景描述:

除了用於加密外,非對稱密鑰也可用於執行驗證功能。圖1說明了非對稱密鑰如何用於驗證,在這裏,路由器A需要向路由器B提供驗證。

 

 

 

正如在圖1中所發生的,下面的事情發生了:
1、 路由器A產生了一個公鑰/私鑰對。
2、 路由器A和路由器B共享了其公鑰。
3、 路由器A取出其自己的身份信息,比如它的名字,並使用自己的私鑰進行加密。
4、 路由器A將身份信息和加密後的身份信息發功給路由器B。
5、 路由器B解密了加密的身份信息,並將解密後的身份信息和路由器A發送過來的明文身份信息進行對比。
6、 如果解密後的身份信息和明文身份是相同的,那麼路由器B可以確認確實是路由器A做的加密。
在圖1中,私鑰和加密有關,永遠都不會被共享(私下存放)。公鑰可以共享,並用於檢驗加密的身份信息,通常這個加密的身份信息被稱爲數字簽名,它是用相關的私鑰創建的。
使用這種方法進行驗證的一個擔憂就是中間人***,在這裏,有些人而不是路由器A,他們會產生公鑰/私鑰對並且假裝是路由器A。這可以通過帶外的和路由器B預共享這個公鑰來解決該問題。(因爲即使***者用自己的私鑰加密,B此時認爲***者就是A。B接收到“A”發過來的消息後,會用預先共享的A的公鑰PubA來解密”A”發送過來的信息,但是解密不成功,因爲”A”不是A,此時B就知道“A”是假冒的。)更具有擴展性的方法是“數字證書”,請有興趣的讀者自行研究。
在這個場景中,有朋友可能會問:非對稱密鑰用於驗證時,爲何路由器A不用接受者路由器B的公鑰PubB加密發送給路由器B的身份信息?
設想情形,路由器A向路由器B提供驗證,執行下述步驟:
1、 路由器B產生了一個公鑰/私鑰對
2、 路由器B和路由器A共享了其公鑰PubB
3、 路由器A取出自己的身份信息,比如它的名字,並使用路由器B公鑰PubB加密
4、 路由器A將身份信息和加密後的身份信息發功給路由器B。
5、 路由器B用自己的私鑰PriA解密了加密的身份信息,並將解密後的身份信息和路由器A發送過來的明文身份信息進行對比。
6、 如果解密後的身份信息和明文身份是相同的,那麼路由器B可以確認確實是路由器A做的加密。
假設在B與A共享PubB的過程中,***者獲取到了PubB,此時假冒的***者用PubB加密發送給B的身份信息,當然這個身份信息實質是假冒***者的身份信息,就算此時B認爲假冒者就是A,但是當B接收到假冒***者發給B的信息後,一旦B用私鑰PriB解密,就會自然而然發現接收到的身份信息上顯示的B的身份,這樣假冒的***者就會被識破,相當於假冒的***者自己把自己的虛假身份告訴B,這樣傻瓜的做法相信沒有哪個***會做的。

所以,在非對稱密鑰用於驗證過程中,要用發送者路由器A的私鑰加密身份信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章