type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 28, 2023 10:41 AM
Parent item
领域
RSA公开密钥密码体制是非对称秘钥的一种,RSA名称是3位作者Ron Rivest、Adi Shamir和Leonard Adleman的姓名首字母,虽然RSA已经从诞生之初至今已50多年,但今天仍然使用, 因为秘钥足够长,就足够安全。
生成私钥公钥秘钥对
- 计算N值。首先选取2个大数:和, 要求和都是质数, 然后对和进行相乘运算, 得到:,的长度即为秘钥的长度, 例如长度为2048位。
- 计算值。函数lcm表示计算结果L是p-1和q-1的最小公倍数:
- 选择一个值,使得:,其中, 表示和的最大公约数=1。
- 计算一个值,使得:,其中。
可以得到公钥和私钥:
- 公钥的定义是组合
- 私钥的定义就是组合
通常值选择较小的值, 例如,采用这三个值中的任何一个都不存在安全问题,前提是使用正确的填充方案。 X.509建议用,这样选取主要是为了提高加密或签名验证的性能,因为3、17或65537分别只需要2或17次模乘运算,而一个随机选择的(假设n是1024-bit)则大约需要1000次模乘运算。