❶ 什麼是公鑰加密和私鑰解密
如果只是單方面採用非對稱性加密演算法,其實有兩種方式,用於不同用處.
第一種是簽名,使用私鑰加密,公鑰解密,用於讓所有公鑰所有者驗證私鑰所有者的身份並且用來防止私鑰所有者發布的內容被篡改.但是不用來保證內容不被他人獲得.
第二種是加密,用公鑰加密,私鑰解密,用於向公鑰所有者發布信息,這個信息可能被他人篡改,但是無法被他人獲得.
如果甲想給乙發一個安全的保密的數據,那麼應該甲乙各自有一個私鑰,甲先用乙的公鑰加密這段數據,再用自己的私鑰加密這段加密後的數據.最後再發給乙,這樣確保了內容即不會被讀取,也不會被篡改.
❷ RSA的公鑰和私鑰到底哪個才是用來加密和哪個用來解密
其實公鑰和私鑰都可以用來加密或解密---只要能保證用A加密,就用B解密就行。至於A是公鑰還是私鑰,其實可以根據不同的用途而定。
例如說,如果你想把某個消息秘密的發給某人,那你就可以用他的公鑰加密。因為只有他知道他的私鑰,所以這消息也就只有他本人能解開,於是你就達到了你的目的。
但是如果你想發布一個公告,需要一個手段來證明這確實是你本人發的,而不是其他人冒名頂替的。那你可以在你的公告開頭或者結尾附上一段用你的私鑰加密的內容(例如說就是你公告正文的一段話),那所有其他人都可以用你的公鑰來解密,看看解出來的內容是不是相符的。如果是的話,那就說明這公告確實是你發的---因為只有你的公鑰才能解開你的私鑰加密的內容,而其他人是拿不到你的私鑰的。
最後再說一下數字簽名。
數字簽名無非就兩個目的:
證明這消息是你發的;
證明這消息內容確實是完整的---也就是沒有經過任何形式的篡改(包括替換、缺少、新增)。
其實,上面關於「公告」那段內容,已經證明了第一點:證明這消息是你發的。
那麼要做到第二點,也很簡單,就是把你公告的原文做一次哈希(md5或者sha1都行),然後用你的私鑰加密這段哈希作為簽名,並一起公布出去。當別人收到你的公告時,他可以用你的公鑰解密你的簽名,如果解密成功,並且解密出來的哈希值確實和你的公告原文一致,那麼他就證明了兩點:這消息確實是你發的,而且內容是完整的。
其實概念很簡單:
❸ 公鑰密碼裡面,如果一方用自己的私鑰加密,解密用自己的公鑰,公鑰不是公開的嗎任何人都可以解開
信息傳輸有兩條路徑,一是信息加密,二是身份認證,你說的這種只是身法認證環節,任何人擁有了你的公鑰,都能確認是「你」發出的(因為你使用自己的私鑰加密的,這個環節叫電子簽名)。
而具體的密文的加密是使用你的公鑰加密的,只有你的私鑰可解密,其它人沒有你的私鑰,雖然收到了消息,也知道是你發出的(即前面說的身份認證過程暢通無阻),但是沒法解密,因此無法知道具體信息內容。
❹ 公鑰與私鑰用於加解密和簽名
公鑰:公開持有,每個人都可以獲得。
私鑰:個人持有,需要保密不能泄露。
公鑰加密,私鑰解密
信息從公鑰持有者中的某一個向私鑰持有者發送。
加解密是為了讓通信的第三方無法獲取消息內容。
私鑰簽名,公鑰驗簽
信息從私鑰持有者向公鑰持有者中的某一個發送。
簽名是為了證明消息發送者的身份合法,即是「我」本人而不是其他人冒充我發送的消息。(但這個消息可能是公開的,如果希望加密發送,則需要另外一對兒公鑰和私鑰反方向持有,完成加解密過程)
私鑰和公鑰是一對,誰都可以加解密,只是誰加密誰解密是看情景來用的:
第一種情景是簽名,使用私鑰加密,公鑰解密,用於讓所有公鑰所有者驗證私鑰所有者的身份並且用來防止私鑰所有者發布的內容被篡改.但是不用來保證內容不被他人獲得。
第二種情景是加密,用公鑰加密,私鑰解密,用於向公鑰所有者發布信息,這個信息可能被他人篡改,但是無法被他人獲得。
比如加密情景:
如果甲想給乙發一個安全的保密的數據,那麼應該甲乙各自有一個私鑰,甲先用乙的公鑰加密這段數據,再用自己的私鑰加密這段加密後的數據.最後再發給乙,這樣確保了內容即不會被讀取,也不會被篡改。
英文版: http://www.youdzone.com/signature.html
中文版: http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html
https://www.hu.com/question/25912483