最近项目中,要用到文件加密的算法。准确来说,就是一个文件,里面包含了一些密码信息,只希望被接收者知道,而不想被别人截取。
RSA基本上满足了这一需求。 RSA是一种公开密钥算法,基本原理是利用大数的素数分解没有快速算法来实现。
n是两个大素数p, q的乘积,
其中,;
对于任一整数A, ,必有唯一的整数B满足:
, (1)
有: (2)
这样,甲使用, n对A根据(1)进行加密,然后把B发给乙,乙根据(2)进行解密得到A.
对于其他接收者,由于无法将n分解为p,q,也就无法根据,n来得到,从而无法对B进行解密。
这样,, n和(1)就成了公钥,可以公开给所有人。当别人传送文件时,使用公钥加密。接收方通过私钥来解密。