若n=pq,且p丶q均为素数,则φ(n)=(p-1)(q-1),由于6958000001674999998647为两个11位的素数的积,则可以当公开模数,做密码,这个位数少容易分解,不安全,只是演示RSA密码的原理。
则φ(n)=(p-1)(q-1)=6958000001505999998640,选公钥,
公钥的选择在1~φ(n)之间,公钥必须与φ(n)互质
根据互质数的性质:
(1):小数与大质数互质,
(2):小质数与不含有它的倍数的大合数互质,
由于122333221和6958000001505999998640 最大公约数为:1,所以122333221可以做公钥,而122333221模6958000001505999998640 的逆元为:4415860875509221693741,这个逆元就是私钥,私钥比公钥长,演示加密:明文123456789^122333221 MOD 6958000001674999998647=2920527367305698772708, 解密是这样:密文2920527367305698772708^4415860875509221693741 MOD 6958000001674999998647=123456789,还原回去了,这就是过程。
6958000001674999998647=71000000041*97999999967为两个11位的素数的积,则可以当公开模数,做密码,这个位数少容易分解,不安全,只是演示RSA密码的原理
我的程序缺点就是慢,太慢,效率低,而且还是仅能算2万位以内的,否则内存不足溢出!请求各位老师指导!
则φ(n)=(p-1)(q-1)=6958000001505999998640,选公钥,
公钥的选择在1~φ(n)之间,公钥必须与φ(n)互质
根据互质数的性质:
(1):小数与大质数互质,
(2):小质数与不含有它的倍数的大合数互质,
由于122333221和6958000001505999998640 最大公约数为:1,所以122333221可以做公钥,而122333221模6958000001505999998640 的逆元为:4415860875509221693741,这个逆元就是私钥,私钥比公钥长,演示加密:明文123456789^122333221 MOD 6958000001674999998647=2920527367305698772708, 解密是这样:密文2920527367305698772708^4415860875509221693741 MOD 6958000001674999998647=123456789,还原回去了,这就是过程。
6958000001674999998647=71000000041*97999999967为两个11位的素数的积,则可以当公开模数,做密码,这个位数少容易分解,不安全,只是演示RSA密码的原理
我的程序缺点就是慢,太慢,效率低,而且还是仅能算2万位以内的,否则内存不足溢出!请求各位老师指导!
[此贴子已经被作者于2020-2-11 11:40编辑过]