① RSA和DES演算法的優缺點、比較
DES演算法:
優點:密鑰較短,加密處理簡單,加解密速度快,適用於加密大量數據的場合。
缺點:密鑰單一,不能由其中一個密鑰推導出另一個密鑰。
RSA演算法:
優點:應用廣泛,加密密鑰和解密密鑰不一樣,一般加密密鑰稱為私鑰。解密密鑰稱為公鑰,私鑰加密後只能用公鑰解密,,當然也可以用公鑰加密,用私鑰解密。
缺點:密鑰尺寸大,加解密速度慢,一般用來加密少量數據,比如DES的密鑰。
(1)用私鑰加密之後可以用公鑰解密擴展閱讀:
安全性
RSA的安全性依賴於大數分解,但是否等同於大數分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數分解。假設存在一種無須分解大數的演算法,那它肯定可以修改成為大數分解演算法。RSA 的一些變種演算法已被證明等價於大數分解。
不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個十進制位的大素數。因此,模數n必須選大一些,因具體適用情況而定。
② 公鑰密碼裡面,如果一方用自己的私鑰加密,解密用自己的公鑰,公鑰不是公開的嗎任何人都可以解開
信息傳輸有兩條路徑,一是信息加密,二是身份認證,你說的這種只是身法認證環節,任何人擁有了你的公鑰,都能確認是「你」發出的(因為你使用自己的私鑰加密的,這個環節叫電子簽名)。
而具體的密文的加密是使用你的公鑰加密的,只有你的私鑰可解密,其它人沒有你的私鑰,雖然收到了消息,也知道是你發出的(即前面說的身份認證過程暢通無阻),但是沒法解密,因此無法知道具體信息內容。
③ 公鑰與私鑰用於加解密和簽名
公鑰:公開持有,每個人都可以獲得。
私鑰:個人持有,需要保密不能泄露。
公鑰加密,私鑰解密
信息從公鑰持有者中的某一個向私鑰持有者發送。
加解密是為了讓通信的第三方無法獲取消息內容。
私鑰簽名,公鑰驗簽
信息從私鑰持有者向公鑰持有者中的某一個發送。
簽名是為了證明消息發送者的身份合法,即是「我」本人而不是其他人冒充我發送的消息。(但這個消息可能是公開的,如果希望加密發送,則需要另外一對兒公鑰和私鑰反方向持有,完成加解密過程)
私鑰和公鑰是一對,誰都可以加解密,只是誰加密誰解密是看情景來用的:
第一種情景是簽名,使用私鑰加密,公鑰解密,用於讓所有公鑰所有者驗證私鑰所有者的身份並且用來防止私鑰所有者發布的內容被篡改.但是不用來保證內容不被他人獲得。
第二種情景是加密,用公鑰加密,私鑰解密,用於向公鑰所有者發布信息,這個信息可能被他人篡改,但是無法被他人獲得。
比如加密情景:
如果甲想給乙發一個安全的保密的數據,那麼應該甲乙各自有一個私鑰,甲先用乙的公鑰加密這段數據,再用自己的私鑰加密這段加密後的數據.最後再發給乙,這樣確保了內容即不會被讀取,也不會被篡改。
英文版: http://www.youdzone.com/signature.html
中文版: http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html
https://www.hu.com/question/25912483
④ RSA解密:已知N,E,密文,怎麼能得到明文呢根據公式應該先求D,但是不知道PQ…
RSA是非對稱加密演算法,用公鑰加密的可以用私鑰解密,反之用私鑰加密的也可以用公鑰解密。
假設密文使用私鑰加密,那麼用公鑰(n,e)執行解密演算法即可
求解c^e≡m(mod n)即可得到明文m,其中c是密文
假設密文使用公鑰加密,那麼只有公鑰的情況下無法解密。