您現在的位置是:首頁 > 單機遊戲首頁單機遊戲
什麼是公鑰,什麼是私鑰
- 2021-12-18
簡介下面我簡化一下,說一下這個過程:證明A是A:A用自己的私鑰將一個檔案加密,然後B用A的公鑰來驗證,如果能解密,那麼就證明A是AA傳檔案給B:A用B的公鑰將要傳輸的檔案加密,然後B用自己的私鑰來解密,最終獲得檔案
金鑰是什麼
孫子曰,知己知彼,百戰不殆,從古至今,不管是戰場還是商場,資訊的保密都是非常重要的一個工作。
在對稱加密的時代,加密和解密用的是同一個金鑰,這個金鑰既用於加密,又用於解密。這樣做有一個明顯的缺點,如果兩個人之間傳輸檔案,兩個人都要知道金鑰,如果是三個人呢,五個人呢?
那麼多人知道的金鑰,還叫金鑰嗎?
還好後來有了非對稱加密,用一個金鑰進行加密(公鑰),用另一個金鑰進行解密(私鑰)。
那麼什麼是非對稱加密呢?
在數學中,有些數學過程正向運算很容易,但是逆推卻很難,比如說:將兩個大素數相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。這只是其中一個例子(RSA演算法)
說人話就是:用私鑰能計算出公鑰,但是用公鑰卻算不出私鑰(不能逆推)
發信人身份的驗證:
檔案的加密傳輸解決了,還有另一個問題,那就是發信人身份的驗證,換句話說,你怎麼知道對方不是釣魚網站?
A將檔案用雜湊演算法加密一次,生成摘要,再將摘要用私鑰加密一次,生成數字簽名。B收到A的檔案之後,用自己的私鑰進行解密,獲得需要的檔案,自己將檔案生成一個摘要。
然後用A的公鑰將A發過來的數字簽名進行解密,也生成一個摘要。
如果兩個摘要相同,那麼就可以證明A是A並且資訊在傳遞過程中沒有被篡改。
是不是有點暈?下面我簡化一下,說一下這個過程:
證明A是A:
A用自己的私鑰將一個檔案加密,然後B用A的公鑰來驗證,如果能解密,那麼就證明A是A
A傳檔案給B:
A用B的公鑰將要傳輸的檔案加密,然後B用自己的私鑰來解密,最終獲得檔案。
這下應該有一個感性的認識了吧?具體的演算法其實我們不用瞭解的那麼清楚,畢竟我們不是攻城獅,有個概念就可以了。