個人理解:
A想從B那里拿到消息,B想給A發送消息,這個過程需要加密,
這個時候A提供一個空箱子和一把打開的鎖給B,A有這個鎖的鑰匙
B把消息放進箱子里,用A給的鎖把箱子鎖上,連同箱子和鎖都給A
這個過程: 鎖就是公鑰,鑰匙就是私鑰,箱子里裝的就是報文
公鑰:所有人都可以得到的密鑰。比如說:A的公鑰,A、B、C都可以得到並使用。同理:B的公鑰,A、B、C都可以得到並使用。C的公鑰,A、B、C都可以得到並使用。
私鑰:只用自己才能用的密鑰。比如說:A的私鑰只有A自己才能得到並使用,B和C不可能得到,除非A自己泄露給B和C。同理:B的私鑰只有B自己才能得到並使用,A和C不可能得到。C的私鑰只有C自己才能得到並使用,A和B不可能得到
A–>B
A發送報文給B
A需要用B的公鑰加密報文,因為只有B才擁有自己的私鑰,所以只有B才能用自己的私鑰解密報文,查看報文內容。
在A發送報文的同時,A要在報文末尾加上自己的數字簽名以證明這篇報文是我A寫的。因於數字簽名只是用來查看到底是誰寫的這封報文,所以不需要很高的保密性,所以A只需要用自己的私鑰加密自己的數字簽名,這樣就具有不可抵賴性了(A就不能辯解這封報文不是他寫的了)。而所有人包括B都可以用A的公鑰來解密這封報文里面的數字簽名,這樣就能夠明白這封報文是A寫的。
總的來說,公鑰加密需要傳送的報文,報文只想給特定的人看到,所以只有擁有對應的私鑰的特定的那個人才能解密這個報文,
所以只有對應私鑰持有人才能看到報文的內容。
而隨報文一起傳遞的還有數字簽名,數字簽名是用來驗證這封報文是誰寫的,使其具有不可抵賴性,所以數字簽名需要用發送報文人的私鑰加密,而所有人都可以用他的公鑰來解密這個數字簽名,證明這封報文是這個人寫的,這個人不能抵賴他沒發過這篇報文。
————————————————
版權聲明:本文為CSDN博主「余殤」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yuzijm/article/details/99626739