特点
最编程
2024-06-26 19:16:18
...
RSA 之所以叫非对称算法,是因为加密和解密的密钥不一样。任何一个密钥都可以用来加密。
公钥和私钥
通过私钥可以轻松计算出公钥,反之不行。
- 随机选择两个不相等的质数
p
{\displaystyle p}
p 和
q
{\displaystyle q}
q,
p
{\displaystyle p}
p 不等于
q
{\displaystyle q}
q,计算
N
=
p
q
{\displaystyle N=pq}
N=pq。
这里选择 103 和 349。 N = p q {\displaystyle N=pq} N=pq = 35947。 N {\displaystyle N} N 的长度就是密钥长度。35947 对应的二进制是 1000110001101011,一共有 16 位,所以这个密钥就是 16 位。实际应用中 RSA 密钥一般是1024位。 - 计算 N {\displaystyle N} N 的欧拉函数 φ ( N ) {\displaystyle \varphi (N)} φ(N)。 r = φ ( 35947 ) = φ ( 103 ) φ ( 349 ) = ( 102 ) ( 348 ) = 35496 {\displaystyle r=\varphi (35947)=\varphi (103)\varphi (349)=(102)(348)=35496} r=φ(35947)=φ(103)φ(349)=(102)(348)=35496。
- 选择一个小于 r {\displaystyle r} r 的整数 e {\displaystyle e} e,使 e {\displaystyle e} e 与 r {\displaystyle r} r 互质,这里取 e = 773 {\displaystyle e=773} e=773。
- 求 e {\displaystyle e} e 关于 r {\displaystyle r} r 的模反元素,命名为 d {\displaystyle d} d(求 d {\displaystyle d} d 令 e d ≡ 1 ( m o d r ) e d ≡ 1 ( m o d r ) {\displaystyle ed\equiv 1{\pmod {r}}} {\displaystyle ed\equiv 1{\pmod {r}}} ed≡1(modr)ed≡1(modr))。最终转为 773d-1=35496k 这个二元一次方程,求得一组解(d,k)=(45,1)。
- 将 ( N , e ) {\displaystyle (N,e)} (N,e) 封装成公钥, ( N , d ) {\displaystyle (N,d)} (N,d) 封装成私钥。所以公钥就是 (35496 ,773),私钥就是(35496 , 45)。
加密和解密
用公钥加密时,私钥可以解密。反之亦然,私钥加密后的信息用公钥可以解密。
签名和验签
推荐阅读
-
SpeedShield:cdn 高防御服务器防火墙的特点是什么?
-
Qt/C++编写的mqtt调试助手使用说明--二、特点
-
大型模型的数据处理特点
-
常见数据库管理系统(MySQL、Oracle、SQL Server)的特点和区别。
-
分布式微服务 云原生】详细介绍了dubbo和springcloud都能支持微服务的特点,为什么能支持的技术原理,以及适用的业务场景,并对两方面做了详细的比较
-
"解析 C 标准库的功能和特点"
-
在线网盘制作教程分享:从头到尾亲自指导,附带源码!-特点
-
探讨Android平台中高通(Qualcomm)和联发科(MTK)的差异及特点
-
最新CPU架构和特点,CPU架构的排名
-
Tcl的简要概述和其主要特点