博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RSA 加密算法
阅读量:5845 次
发布时间:2019-06-18

本文共 773 字,大约阅读时间需要 2 分钟。

hot3.png

RSA 加密算法

RSA 加密算法是一种,是最早的公钥密码系统之一。

1978年,MIT 的 Ron Rivest,Adi Shamir 和 Leonard Adleman 三人一起提出 RSA 加密算法

原理

  1. 选择 2 个质数 pq
  2. 计算 n = p * q
  3. 根据欧拉函数 φ(n) = (p - 1) * (q - 1) 计算出 φ(n)
  4. 确定公钥(整数)e,要求:1 < e < φ(n)eφ(n) 互质
  5. 确定私钥(整数)d,要求:(e * d) / φ(n) 的余数为 1
  6. 加密:原文 m,计算 me 次幂除以 n,求余数 cc 就是加密后所得的密文
  7. 解密:密文 c,计算 cd 次幂除以 n,求余数得到原文 m

示例(来自 wikipedia)

  1. p = 61q = 53
  2. n = 61 * 53 = 3233
  3. φ(n) = (61 - 1) * (53 - 1) = 60 * 52 = 3120
  4. e = 17
  5. d = 2753
  6. 公钥 (3233,17),私钥 (3233,2753)
  7. 原文 18,公钥加密密文 2100,私钥解密得到原文 18
  8. 原文 81,私钥加密密文 2083,公钥解密得到原文 81

安全性

  1. 加解需要 n 和公钥 e 生成密文 c
  2. 解密需要 n 、密钥 d 和密文 c
  3. 公开场合窃听者只能获取 n e c,但是获取不到密钥 d,需要通过 e 计算出 d
  4. 如果想通过 e 计算出 d 则必须知道 φ(n)
  5. 想知道 φ(n) 必须求出 pq
  6. 因为 n = p * qn 已知,所以必须进行【质因数分解】,数学证明大数质因数分解十分困难,这也是 RSA 算法安全性的根本保证

转载于:https://my.oschina.net/u/3190679/blog/2120349

你可能感兴趣的文章
js控制图片等比例缩放
查看>>
Openstack API常用命令
查看>>
关于k-means聚类算法的matlab实现
查看>>
跟随我在oracle学习php(8)
查看>>
UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
查看>>
求两个集合的交集,并集,差集
查看>>
Kotlin的语法糖(一)基础篇
查看>>
亚信安全参加第六届全国等保技术大会 态势感知助力“等保2.0”落地
查看>>
大数据公司Palantir融得7亿美元 曾追踪拉登
查看>>
建立备份策略的重要性
查看>>
发力IoT领域 Marvell注重生态系统发展
查看>>
你应该知道的 RPC 原理
查看>>
Ubuntu安装词典
查看>>
KVM虚拟机在线添加网卡
查看>>
Spring解析
查看>>
python中str和repr区别
查看>>
数据挖掘-同比与环比
查看>>
RedHat6 管理应用服务【11】
查看>>
stm32F10x复习-1
查看>>
[转] vue异步处理错误
查看>>