非對稱加密,即加密秘鑰與解密秘鑰不一樣的加密算法。一般用公鑰加密,私鑰解密。
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庫函數實作: