rsa的加密和解密原理 RSA算法的功能?
RSA算法的功能?RSA算法是一種公鑰加密機(jī)制,它使用不同的加密密鑰和解密密鑰。從已知的加密密鑰推導(dǎo)解密密鑰在計算上是不可行的。RSA由Ron Rivest、ADI Shamir和Leonard Ad
RSA算法的功能?
RSA算法是一種公鑰加密機(jī)制,它使用不同的加密密鑰和解密密鑰。從已知的加密密鑰推導(dǎo)解密密鑰在計算上是不可行的。
RSA由Ron Rivest、ADI Shamir和Leonard Adleman于1977年提出。他們?nèi)齻€都在麻省理工學(xué)院工作。RSA是他們姓氏首字母的組合。它的原理是:根據(jù)數(shù)論,找到兩個大素數(shù)相對簡單,但對它們的乘積進(jìn)行因式分解卻極為困難,因此乘積可以作為加密密鑰公開。
簡述RSA算法中密鑰的產(chǎn)生,數(shù)據(jù)加密和解密的過程,并簡單說明RSA算法安全性的原理?
RSA方法的工作原理如下:
1)任意選擇兩個不同的大素數(shù)P和Q,計算乘積R=P*Q;
2)任意選擇一個大整數(shù)e,e與(P-1)*(Q-1)互質(zhì),整數(shù)e作為加密密鑰。
注意:E的選擇很容易。例如,所有大于P和Q的素數(shù)都可用。
3)確定解密密鑰D:D*e=1 mod(P-1)*(Q-1)D可以很容易地從e、P和Q計算出來。
4)5)通過C=PE mod R(e是冪)將明文P(假設(shè)P是小于R的整數(shù))加密到密文C
RSA算法的具體過程?
RSA算法非常簡單,概括如下:求兩個素數(shù)P和Q,取n=P*Q,取t=(P-1)*(Q-1),取任意數(shù)E,滿足E<T要求,取d*E%t==1表示E和t的互質(zhì)(即最大公因數(shù)為1)N d E設(shè)置消息數(shù)m(m<N)set C=(m**d)%N得到加密消息C set m=(C**E)%N然后m==m完成C的解密。注:**表示冪,上述兩個公式中的D和E可以互換。在對稱加密中:兩個數(shù)字組成一個公鑰,可以告訴其他人;兩個數(shù)字組成一個私鑰,由e保管,沒有人知道。發(fā)送給他人的信息是用E加密的,只要別人能用d來解密,就證明信息是你發(fā)送的,這就構(gòu)成了一種簽名機(jī)制。當(dāng)有人給你發(fā)信息時,使用d加密,這樣只有你有e才能解密。RSA的安全性在于,對于大數(shù)n,沒有有效的分解方法,因此當(dāng)nd已知時不能得到e;同樣地,當(dāng)ne已知時也不能得到d。RSA算法簡單而優(yōu)雅,但計算速度相對較慢。一般情況下,RSA并不是直接用于加密所有的信息。最常見的情況是隨機(jī)生成一個對稱加密密鑰,然后使用對稱加密算法對信息進(jìn)行加密,然后使用RSA對剛才的加密密鑰進(jìn)行加密。最后,應(yīng)該注意的是,小于1024位的當(dāng)前n被證明是不安全的。在自己使用時,不要使用小于1024位的RSA,最好使用2048位。