RSA 算法细节|安全性考虑|Java应用

RSA是一种基于大整数分解难题的公钥密码学算法,由Rivest, Shamir, Adleman提出。算法涉及寻找大素数p、q,计算n=pq,选取e和d使得ed ≡ 1 mod φ(n),公钥(ke=(e,n))公开,私钥(kd=(d,n))保密。文章还讨论了算法安全性、实例演示、Java应用以及公钥证书的概念。" 127546676,9859376,游戏建模入门指南:从零到精通,"['3D游戏建模', '次世代建模', '建模教程', '游戏美术', '自学建模']
摘要由CSDN通过智能技术生成

RSA是公钥密码学的经典算法之一,在1977年被Rivest, Shamir, Adleman三个人共同提出。
Ron Rivest http://theory.lcs.mit.edu/~rivest/
Adi Shamir http://www.wisdom.weizmann.ac.il/~shamir/
Len Adleman http://www.usc.edu/dept/molecular-science/

1. RSA算法基本参数

(1)是分组密码算法(区别于流密码算法)
(2)设计基于大整数分解难题
(3)明/密文分组以及公/私钥都被看作小于n的整数(n的大小通常为1024位二进制数)
(4)加/解密是模乘运算,假设某个明文分组是整数m( m<n ),则
加密: c=memodn
解密: m=cdmodn

2. 算法参数建立

step1:找素数,选取两个512bit的随机素数p,q,p!=q,计算模n和Euler函数 φ(n) (小于n且与n互素的正整数的个数)
step2:计算 npq φ(n)=(p1)(q1)
step3:找e、d满足 ed1modφ(n)
选取数e,用扩展Euclid算法求数d(e要求满足 gcd

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值