天天看點

RSA非對稱加密

非對稱加密,即加密秘鑰與解密秘鑰不一樣的加密算法。一般用公鑰加密,私鑰解密。

rsa是一種非對稱加密算法,名字是三位發明人的名字首字母,沒什麼其他含義。

rsa的基本思想是大素數的乘積很難被因式分解,它涉及三個參數,n,e1,e2。

其中,n是兩個大質數p、q的積,n的二進制表示的位數,就是密鑰長度。

e1和e2是一對相關的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質;再選擇e2,要求(e1*e2)mod ((p-1)*(q-1))=1。

這樣就得到了公鑰pk:(n,e1);私鑰sk:(n,e2)。

設a為明文(plaintext),b為密文(ciphertext),則b=a^e1 mod n.

a=b^e2 mod n.

java庫函數實作: