聲明
本文轉自:RSA等非對稱加密為什么要用公鑰加密,而用私鑰解密?
正文
1.RSA是不對稱加密算法,它的公鑰可能會被多人持有(公鑰公鑰,公開的密鑰),而私鑰只有一人擁有,例如支付寶開放平台,私鑰只有支付寶公司持有,而公鑰則是所有接入它API的公司都能得到。對於公鑰加密的信息,只有私鑰才能解密,從而實現了數據可以的保密的到達擁有私鑰的一方。即使被第三方截取,也無法解密。
2.因為私鑰本身長度更長,對於破解難度更大。
3.而私鑰加密,公鑰解密一般被用於數字簽名。數字簽名是用於防篡改和防止假冒的,因為只有一人擁有私鑰。甲方通過私鑰對數據進行簽名,乙方通過甲方的公鑰驗證簽名,如果成功,說明確實是甲方發來的,並且數據沒有被修改。一旦相反,公鑰是公開的,大家都能做簽名,就沒意義了。
總結:公鑰加密|私鑰解密用於防止密文被破解、被第三方得到明文;私鑰加密|公鑰解密用於防止明文被篡改,確保消息的完整性和正確的發送方。那么既然為了防止明文被篡改,我們是不是直接都可以用公鑰加密的方式呢,這樣整串都是密文了,其實當然也可以,只不過簽名的效率要高的多,而非對稱加解密很費時間,所有對於不值得加密的非關鍵性數據,還是用簽名合適。