网站首页 > 技术文章 正文
目标
Bob的公开密钥是e=13,n=51,Alice需要将明文“2”加密后发送给Bob,而Bob可解密收到的密文。
信息加密方式(发送方)
Alice首先用Bob的公开密钥加密明文,即:
C=(M的e次方)mod(n)=(2的13次方)mod(51)=8192mod51=32;
备注:mod指取余数运算。
信息解密方式(接收方)
Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即:
M=(C的d次方)mod(n)=(32的5次方)mod(51)=2。
私钥d如何计算
非对称算法RSA中发送者利用公约(n,e)加密信息,而接收方利用私钥(d)解密加密信息,那么,私钥d如何计算的呢?
第一步:生成两个大素数p和q;
第二步:计算这两个素数的乘积n=p*q;
第三步:计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)*(q-1);
第四步:选取一个随机数e,且满足1<e<φ(n),并且e和φ(n)互素,即gcd(e,φ(n))=1(gcd指最大公约数);
第五步:计算d=(k*φ(n)+1)/e,其中k是p-1和q-1的最大公约数;
第六步:保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥;
注意事项:明文信息M的十进制值小于n。
举例说明:
设素数p=3,q=17,e=13,那么私钥d的计算过程如下所示:
计算:n=3*17=51
计算:φ(n)=2*16=32
计算:k,即2和16最大公约数是2
计算:d=(2*32+1)/13=65/13=5
总结
RSA安全性保证要做到选取的素数p和q足够大,使得给定了它们的乘积n后,在事先不知道p或q的情况下分解n是计算上不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑,要求n长度至少应为1024位,然而从长期的安全性来看,n的长度至少应为2048比特,或者是616位的十进制数。
- 上一篇: 对“RSA公开密钥密码体制”的粗浅学习
- 下一篇: 支付中的加密/解密算法——RSA加密和AES加密
猜你喜欢
- 2025-07-01 Java 如何加载带密码的 PCKS8 PEM 私钥
- 2025-07-01 犯罪啊 2.8万台路由器居然共用一把RSA密钥
- 2025-07-01 HTTPS全站加密时代 网宿推证书优选方案
- 2025-07-01 如何在 Windows 11 或 10 上使用 Winget 安装 OpenSSH
- 2025-07-01 网络篇:朋友面试之https认证加密过程
- 2025-07-01 如何安全管理SSH密钥以防止服务器被入侵
- 2025-07-01 在 Windows 10 上实现免密码 SSH 登录
- 2025-07-01 HTTPS的加密过程是怎样的?(https加密和解密的过程)
- 2025-07-01 Linux系统实现SSH安全免密登录的设置与管理
- 2025-07-01 Burpsuit插件开发之RSA加解密(burpsuite安装插件)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)