我想用白話講懂公鑰和私鑰

我想用白話講懂公鑰和私鑰

公鑰和私鑰這對東西很早就出現了, 其實想基本的弄懂它並不需要什麼長篇大論,幾句話就能說清楚的,所以我希望用一些簡單易懂的話來幫助大家理解公鑰和私鑰。

公鑰

公鑰的作用通俗的來講就是加密,比如你希望和 A 君之間的通信加密,這個時候你可以給 A 一個公鑰,當 A 拿到公鑰之後,之後 A 給你發的任何消息都能通過你給他的公鑰來進行加密了,當你收到 A 的加密信息,那麼你就可以通過你的私鑰來進行解密看到明文了。

它的加密防止了在傳輸過程中的竊取。

私鑰

私鑰的作用除了用來解密公鑰加密後的東西,還有個作用就是用來簽名,簽名的作用就是防止別人冒充自己發送消息,和你腦海裏的簽名的含義其實是差不多的,就是就像你簽署一個文件,那隻要簽名後,別人要再冒充你發送消息就很困難了。

如何驗證私鑰簽名的消息

還是上面那個例子,如果你想給 A 發送消息,那麼你需要先將消息用 hash 算法產出一個 digest,即一個信息摘要,然後利用你的私鑰將 digest 加密,現在要做的事情就是將信息加上 digest 給 A。

現在 A 拿到你傳輸的消息了,他會用你給的公鑰來解密加密後的摘要,得到原始的摘要,然後 hash 原信息,將得到的結構跟 digest 進行對比,如果相等,那就是沒有被修改僞造,這樣就完成了簽名的整個過程。

爲什麼要有 CA

CA 是一個值得信任的第三方機構,它的作用就是證明你給 A 的公鑰真實有效。它的場景是,假如有人通過 (whatever)方法更換了你的公鑰,比如現在有個人叫 B,它自己也有一個私鑰和公鑰,他通過一系列的辦法把你給 A 的公鑰換成了他自己的,接下來,它便可以無所顧忌的給 A 發送消息,A 也可以拿到 B 的公鑰來解密,但是此時 A 並不知道他自己的公鑰已經被換成 B 了的,他還以爲他正在用你的公鑰解密你發給他的信息,其實這時候發信息的是 B,換句話說,B 在通過偷換公鑰冒充你。

這時候,需要一個值得信賴的第三方機構(CA),它也有一個公鑰和私鑰,它會用它的私鑰將你的公鑰和私鑰的信息加上它的公鑰進行簽名,產出一個數字證書,然後將數字證書給你,下次你再跟 A 通信的時候,就發送數字證書和 CA 的公鑰過去,A 在拿到 CA 的公鑰的時候就能通過它來解開數字證書,拿到你的公鑰,這個時候就能明辨公鑰的真僞了。

其實整個過程要的就是數字證書是信任和可靠的,這就需要一個合適的 CA 了呀~

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