概述
RSA算法是一个不对称加密算法,也就是说加密密钥和解密密钥不同。它最基础的理论依据就是:对一个极大整数做因数分解是很困难的。
生成公钥和密钥
- 随意选择两个大的质数p和q,且p不等于q,设N=p*q
- 设欧拉函数为f,求出r=f(N)=(p-1)*(q-1)
- 选择一个小于r的整数e,且e与r互质。求出e关于r的模反元素d
这时,(N,e)是公钥,(N,d)是私钥。
参考资料
什么是互质关系:
互质就是:两个正整数,除了1之外没有其他公共因子,那么称这两个数互质。
什么是欧拉函数:
欧拉函数的输入是一个整数,其输出是比该数小的且互质的数的个数。
如f(8)=4;即8以内,与8互质的数有4个:1,3,5,7
什么是模反元素:
如果两个正整数a和n互质,那么一定可以找到整数b,使得ab-1被n整除。
记为:ab≡1(mod n),这时b就叫a的“模反元素”。
例如:求整数3对同余11的模逆元素x。即求比11小一个数字x,使得3*x%11==0,求得结果为4。
参考链接
https://blog.csdn.net/kikajack/article/details/80703894