理解公鑰與私鑰
一、公鑰演算法與私鑰演算法
1、私鑰演算法
私鑰加密演算法,又稱 對稱加密演算法,因為這種演算法解密金鑰和加密金鑰是相同的。也正因為同一金鑰既用於加密又用於解密,所以這個金鑰是不能公開的。常見的有《des加密演算法》、《aes加密演算法》。
2、公鑰演算法
公鑰加密演算法,也就是 非對稱加密演算法,這種演算法加密和解密的密碼不一樣,乙個是公鑰,另乙個是私鑰:
公鑰和私鑰成對出現
公開的金鑰叫公鑰,只有自己知道的叫私鑰
用公鑰加密的資料只有對應的私鑰可以解密
用私鑰加密的資料只有對應的公鑰可以解密
如果可以用公鑰解密,則必然是對應的私鑰加的密
如果可以用私鑰解密,則必然是對應的公鑰加的密
公鑰和私鑰是相對的,兩者本身並沒有規定哪乙個必須是公鑰或私鑰。
二、實現資料的安全傳輸
要實現資料的安全傳輸,當然就要對資料進行加密了。
如果使用對稱加密演算法,加解密使用同乙個金鑰,除了自己儲存外,對方也要知道這個金鑰,才能對資料進行解密。如果你把金鑰也一起傳過去,就存在密碼洩漏的可能。所以我們使用非對稱演算法,過程如下:
首先 接收方 生成一對金鑰,即私鑰和公鑰;
然後,接收方 將公鑰傳送給 傳送方;
傳送方用收到的公鑰對資料加密,再傳送給接收方;
接收方收到資料後,使用自己的私鑰解密。
由於在非對稱演算法中,公鑰加密的資料必須用對應的私鑰才能解密,而私鑰又只有接收方自己知道,這樣就保證了資料傳輸的安全性。
三、對資訊進行數字簽名
除了保證資料的安全傳輸之外,公鑰體系的另乙個用途就是對資料進行簽名。通常「數字簽名」是用來驗證傳送方的身份並幫助保護資料的完整性。
例如:乙個傳送者 a 想要傳些資料給大家,用自己的私鑰對資料加密,即簽名。這樣一來,所有收到資料的人都可以用傳送者的公鑰進行驗證,便可確認資料是由 a 發出來的了。(因為只有a使用私鑰簽名得到的資訊,才能用這個公鑰來解) 採用數字簽名,可以確認兩點:
保證資訊是由簽名者自己簽名傳送的,簽名者不能否認或難以否認。
保證資訊自簽發後到收到為止未曾作過任何修改。
之所以可以確認這兩點,是因為用公鑰可以解密的必然是用對應的私鑰加的密,而私鑰只有簽名者持有。
四、公鑰演算法的缺點
現實中,公鑰機制也有它的缺點,那就是效率非常低,比常用的私鑰演算法(如 des 和 aes)慢上一兩個數量級都有可能。所以它不適合為大量的原始資訊進行加密。為了同時兼顧安全和效率,我們通常結合使用公鑰演算法和私鑰演算法:
首先,傳送方使用對稱演算法對原始資訊進行加密。
接收方通過公鑰機制生成一對金鑰,乙個公鑰,乙個私鑰。
接收方 將公鑰傳送給 傳送方。
傳送方用公鑰對對稱演算法的金鑰進行加密,並傳送給接收方。
接收方用私鑰進行解密得到對稱演算法的金鑰。
傳送方再把已加密的原始資訊傳送給接收方。
接收方使用對稱演算法的金鑰進行解密。
總結:每個使用者都有一對私鑰和公鑰。
私鑰用來進行解密和簽名,是給自己用的。
公鑰由本人公開,用於加密和驗證簽名,是給別人用的。
當該使用者傳送檔案時,用私鑰簽名,別人用他給的公鑰解密,可以保證該資訊是由他傳送的。即數字簽名。
當該使用者接受檔案時,別人用他的公鑰加密,他用私鑰解密,可以保證該資訊只能由他看到。即安全傳輸。
公鑰 私鑰 公鑰私鑰
小明想寫一封情書給小紅,但是這封情書是很私密的東西,小明不想讓除了小紅之外的其他人知道。小明看過flydean的部落格,他知道了有個對稱加密的好東西。於是小明想,如果我將情書使用對稱加密演算法進行加密,然後再把加密後的情書傳給小紅豈不就是安全了?但是小明又仔細思考了一下,發現了乙個問題,對稱加密演算...
github 公鑰 私鑰 理解公鑰與私鑰
一 公鑰演算法與私鑰演算法 1 私鑰演算法 私鑰加密演算法,又稱 對稱加密演算法,因為這種演算法解密金鑰和加密金鑰是相同的。也正因為同一金鑰既用於加密又用於解密,所以這個金鑰是不能公開的。常見的有 des加密演算法 aes加密演算法 2 公鑰演算法 公鑰加密演算法,也就是 非對稱加密演算法,這種演算...
公鑰與私鑰
公鑰和私鑰就是俗稱的不對稱加密方式,是從以前的對稱加密 使用使用者名稱與密碼 方式的提高。我用電子郵件的方式說明一下原理。使用公鑰與私鑰的目的就是實現安全的電子郵件,必須實現如下目的 1.我傳送給你的內容必須加密,在郵件的傳輸過程中不能被別人看到。2.必須保證是我傳送的郵件,不是別人冒充我的。要達到...