在RSA密碼應用中,公鑰KU是被公開的,即e和n的數值是能夠被第三方獲得的。破解RSA密碼的問題就是從已知的e和n的數值(n等於pq),想辦法求出d的數值,這樣就能夠獲得私鑰來破解密文。
從RSA的原理中咱們知道(de) mod ((p-1)(q-1)) = 1,能夠推導出d ≡e-1 (mod((p-1)(q-1)))或de≡1 (mod((p-1)(q-1))) 由此咱們能夠看出。密碼破解的實質問題是:從p、q的數值,去求出(p-1)和(q-1)。換句話說,只要求出p和q的值,咱們就能求出d的值而獲得私鑰。
當p和q是一個大素數的時候,從它們的積pq去分解因子p和q,這是一個公認的數學難題。好比當pq大到1024位時,迄今爲止尚未人可以利用任何計算工具去完成分解因子的任務。所以,RSA從提出到如今已近二十年,經歷了各類***的考驗,逐漸爲人們接受,廣泛認爲是目前最優秀的公鑰方案之一。
可是RSA除了上述優勢以外,也是有缺點的,RSA的缺點以下:
1)雖然RSA的安全性依賴於大數的因子分解,但並無從理論上證實破譯RSA的難度與大數分解難度等價。
2)產生密鑰很麻煩,受到素數產生技術的限制,於是難以作到一次一密。
3)分組長度太大,爲保證安全性,n 至少也要 600 bits 以上,使運算代價很高,尤爲是速度較慢,較對稱密碼算法慢幾個數量級;且隨着大數分解技術的發展,這個長度還在增長,不利於數據格式的標準化。所以,使用RSA只能加密少許數據,大量的數據加密還要靠對稱密碼算法。
4)一樣安全級別的加密算法,RSA須要更長的密鑰。這就使運算速度較慢,較對稱密碼算法慢幾個數量級。且隨着大數分解技術的發展,這個長度還在增長,不利於數據格式的標準化。
所以,使用RSA只能加密少許數據,大量的數據加密還要靠對稱密碼算法。實際應用中通常用來加密對稱算法的密鑰,而密文多用對稱加密算法加密傳輸。算法