公鑰私鑰(白話文)

時間:2019-8-13

假設有 A ,B 兩個服務器,

它們有各自的公鑰和私鑰。

大家都知道,公鑰是公開的!

所以 A 和 B 互相知道對方的 公鑰

A 向 B 發文件。

A 會把 自己 要發的數據B的公鑰 打包。

那麼這串數據 也就只有 B 能用自己的私鑰解開了。

ok,這是一種情況。

那假如有黑客 C。

C 想要破解 A 發的數據就必須要 B 的私鑰了。

所以 C 其實是破解不了的。

但是 C 不老實,他不喜歡 A,就把 A 發的 數據 篡改了。

那麼 B 解開 A 發的數據之後,並不知道 A 發的數據已經被 C 篡改了。(因爲 B 剛開始也不知道 A 發的數據是什麼)

所以呢!

https 就是說 A 會給 B 發一串數據,然後再發一個hash。

這樣 B 收到 A 的數據之後,會再次通過數據生成 hash,如果 hash 一樣,那麼他就知道,這是 A 發過來的數據,並且是未被篡改的!

因爲 傳輸的數據其實都是密文,所以 C 篡改的時候只能是瞎改。

B 解出 A 的數據會是一串明文 和 一串 hash。

用 明文 生成 hash,如果相等,則表示是 A 發過來的!

 

其實 公鑰 和 私鑰 是可以互相解密的

A 想給 B, C, D, E, F ...  發數據怎麼辦呢?

如果想把自己知道的數據廣播出去,想知道就可以看。

那麼其實是這樣的。他會把 數據 和 自己的 私鑰 加密。

大家可以用他的 公鑰 來解密

===============================================================

 

# 這裏補充一個問題。

爲什麼根據 私鑰 能推出來 公鑰,但是 公鑰 卻推不出 私鑰 來呢?

因爲私鑰是這樣的。我就舉個簡單的例子吧。

私鑰:19

公鑰: 9

那麼 可以看出 公鑰 = 私鑰[0] * 私鑰[1] 也就是說 9 = 1 * 9

但是如果只是擁有公鑰也就是9   你知道私鑰嗎?

當然了,現實中的 私鑰 和 公鑰 特別長,根本不是這樣簡單的。

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