經典加密算法入門-RSA

RSA概述

RSA公鑰加密算法是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一塊兒提出的。算法

1987年首次公佈,當時他們三人都在麻省理工學院工做。RSA就是他們三人姓氏開頭字母拼在一塊兒組成的。安全

RSA是目前最有影響力的公鑰加密算法,它可以抵抗到目前爲止已知的絕大多數密碼攻擊,已被ISO推薦爲公鑰數據加密標準。 今天只有短的RSA鑰匙纔可能被強力方式解破。到2008年爲止,世界上尚未任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息其實是不能被解破的。但在分佈式計算和量子計算機理論日趨成熟的今天,RSA加密安全性受到了挑戰。分佈式

RSA算法基於一個十分簡單的數論事實:將兩個大質數相乘十分容易,可是想要對其乘積進行因式分解卻極其困難,所以能夠將乘積公開做爲加密密鑰。

RSA的原理

RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法須要一對密鑰,使用其中一個加密,則須要用另外一個才能解密。加密

RSA的算法涉及三個參數,n、e一、e2。class

其中,n是兩個大質數p、q的積,n的二進制表示時所佔用的位數,就是所謂的密鑰長度。原理

e1和e2是一對相關的值,e1能夠任意取,但要求e1與(p-1)(q-1)互質;再選擇e2,要求(e2e1)mod((p-1)*(q-1))=1。 (n,e1),(n,e2)就是密鑰對。其中(n,e1)爲公鑰,(n,e2)爲私鑰。二進制

RSA加解密的算法徹底相同,設A爲明文,B爲密文,則:A=B^e2 mod n;B=A^e1 mod n;(公鑰加密體制中,通常用公鑰加密,私鑰解密)密碼

e1和e2能夠互換使用,即: A=B^e1 mod n;B=A^e2 mod n;數據

相關文章
相關標籤/搜索