type
status
date
slug
summary
tags
category
icon
password
加密与解密
加密:对于明文m,公钥(e, n)
c = m^e(此处异或为m的e次方) mod n
解密:对于密文c和私钥(d, n)
m = c ^ d(同上) mod n
安全性
RSA的安全性基于大整数分解的难度。即使知道 nnn 和 eee,没有 ppp 和 qqq 的情况下推导出 ddd 是极其困难的。因此,RSA在密钥足够大的情况下是非常安全的。常用的密钥长度为 2048 位或更高。
公钥和密钥的生成
1.选择两个大质数p和q
2.n=p×q
n为模数,决定了RSA密钥的长度
3.ϕ(n)=(p−1)×(q−1)
这里ϕ(n)是欧拉函数,用于生成公钥和私钥
4.选出公钥指数e
选择一个与ϕ(n)互质且通常较小的整数
5.计算私钥指数d
d * e = 1 mod ϕ(n),d是e的模ϕ(n)逆元
逆元计算
rsa加密与解密实现
RSA密钥的常见格式通常是PEM和DER这两种。
PEM格式是基于Base64编码的文本格式,通常包含明确的头部和尾部标签,如 -----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY-----,或者 -----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY-----
- PEM格式易于阅读和复制,因为它是ASCII文本格式。
- PEM格式通常用于存储和传输证书、私钥、公钥、以及证书签名请求等。
Der格式
- DER格式是二进制编码格式,没有头部和尾部标签,因此不易直接阅读。
- DER格式比PEM格式更紧凑,因为它省略了Base64编码的开销。
使用RSA模块生成密钥对并转化为PEM格式
格式转化
- Author:Albert1x
- URL:https://albert-1x.top//article/rsa
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!