1. 程式人生 > >怎麽理解RSA算法

怎麽理解RSA算法

tar 加密算法 spa 非對稱加密 rgb ont content wid 理解

原文地址:http://www.ittenyear.com/414/rsa/
怎麽理解RSA算法
能夠把非對稱加密算法裏的公鑰想象成一個帶鎖的箱子,把私鑰想象成一把鑰匙 能夠把對稱加密算法裏的密鑰想象成箱子和鑰匙的組合

HTTPS使用了非對稱加密和對稱加密的組合:RSA和DES的組合就是,用DES把用戶數據加密,然後把DES的密鑰用RSA的公鑰加密,這樣用戶數據和DES的密鑰都是安全的,就像是把用戶數據鎖在了DES的箱子裏,然後把DES的鑰匙鎖在了RSA的箱子裏,而RSA的鑰匙在server端保存著,所以在運送這兩個箱子的途中,數據不會被竊取,是安全的

具體原理能夠看一下阮一峰的博客文章,寫的很具體:

http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html
摘抄一些文字: 1976年曾經,全部的加密方法都是對稱加密算法。這樣的加密模式有一個最大弱點:甲方必須把加密規則告訴乙方。否則無法解密。

保存和傳遞密鑰,就成了最頭疼的問題。

1976年。D和H兩個人提出了非對稱加密算法 1977年,R/S/A三個人設計了RSA算法,RSA算法一直是最廣為使用的"非對稱加密算法"。

密鑰越長,它就越難破解。

依據已經披露的文獻,眼下被破解的最長RSA密鑰是768個二進制位。也就是說,長度超過768位的密鑰,還無法破解(至少沒人公開宣布)。因此能夠覺得。1024位的RSA密鑰基本安全,2048位的密鑰極其安全 RSA算法的實現方式決定了公鑰(n,e) 僅僅能加密小於n的整數m,那麽假設要加密大於n的整數,該怎麽辦?有兩種解決方法:一種是把長信息切割成若幹段短消息,每段分別加密;還有一種是先選擇一種"對稱性加密算法"(比方DES)。用這樣的算法的密鑰加密信息,再用RSA公鑰加密DES密鑰

n的長度就是密鑰長度。3233寫成二進制是110010100001,一共同擁有12位,所以這個密鑰就是12位。

實際應用中,RSA密鑰通常是1024位,重要場合則為2048位

技術分享

怎麽理解RSA算法