简介

RSA加密算法是一种非对称加密算法,所谓非对称,就是指该算法加密和解密使用不同的密钥,即使用加密密钥进行加密、解密密钥进行解密,分别称为公钥和私钥

在RAS算法中,公钥是公开的,而私钥是需要保密的。加密算法和解密算法也都是公开的。虽然私钥是由公钥决定的,但由于无法计算出大数n的欧拉函数phi(N),所以不能根据公钥计算出私钥,这就是RSA的安全性

使用方法:

  • 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
  • 甲方获取乙方的公钥,然后用它对信息加密。
  • 乙方得到加密后的信息,用私钥解密。

数论基础

欧拉函数

φ(n)表示小于n且与n互素的正整数

  • 对于素数来说,φ(n) = n - 1
  • 对于不是素数的数来说,可以将n进行质因数分解,再套用φ(n)=n∗(1−1p1)(1−1p2)......(1−1pc)φ(n)=n*(1-\frac{1}{p_1})(1-\frac{1}{p_2})......(1-\frac{1}{p_c})φ(n)=n∗(1−p1​1​)(1−p2​1​)......(1−pc​1​)

欧拉函数的原理这里就不介绍了,只需要知道素数的欧拉函数等于它-1即可

欧拉定理

aφ(n) % n = 1

乘法逆元

(a*b)%n=1,就称ba在模n下的乘法逆元,求逆元的方法有两种,如果n是素数,那利用费马小定理可以知道逆元b = a n-1%n,如果不是素数,就只能用扩展欧几里得计算了,这里就不展开

RSA算法流程

密钥的产生

  • 取两个保密的大素数p和q
  • 计算n = p * q, n的欧拉函数值为φ(n) = (p - 1) * (q - 1)
  • 任取一个整数 e, 1<e<φ(n),且与φ(n)互素
  • 计算e在模φ(n)意义下的乘法逆元
  • 公钥为(e, n), 私钥为(d, n)

加密

密文=明文emodN密文=明文^emodN 密文=明文emodN

也就是c=memodNc = m^emodNc=memodN,m为明文,c为密文

解密

明文=密文dmodN明文 = 密文^{d}modN 明文=密文dmodN

也就是m=cdmodNm = c^dmodNm=cdmodN

RSA解密的正确性证明

RSA加密过程详解 | 公钥加密| 密码学| 信息安全相关推荐

  1. HTTPS 加密过程详解

    HTTPS 加密过程详解 HTTPS 中的概念 对比 HTTP 与 HTTPS 网络分层结构 对称加密 非对称加密 HTTPS 中的概念 明文:可以直接看到原始数据的文本: 密文:看不见原始数据的文本 ...

  2. HTTPS加密过程详解

    HTTPS加密过程详解 一.前言 二.HTTPS的混合加密 1.摘要算法 2.混合加密和数字证书 三.补充 四.参考资料 一.前言 http是为了解决http存在的问题而在http基础上加入了SSL/ ...

  3. RSA加密原理详解,以及RSA中的数论基础

    文章目录 1. RSA加密算法介绍 2. RSA密钥生成 3. RSA加密和解密 4. RSA的安全性 5.涉及到的数论基础 5.1. 模的逆元 5.1.1. 扩展欧几里得算法计算模逆元 5.1.2. ...

  4. 网络传输数据的加密过程详解

    常见的明文传输协议有:http,smtp,dns,pop3,imap4. 常见的攻击方式有:窃听,数据注入,会话劫持 为了保证互联网上的数据传输的安全性,于是各种的加密方式和加密算法诞生了: 数据加密 ...

  5. https中SSL加密过程详解,看这一篇就够了!

    我们所说的https实际上就是安全版本的http,是http+ssl加密实现的. SSL握手协议 1.客户端:发起一个 HTTPS 请求,请给我公钥 2.服务器:这是我的证书,里面有加密后的公钥 3. ...

  6. 登录与注册时两次md5加密过程详解

    1 当前端传送密码到后端时候,需要进行两次MD5加密,登录和注册时的加解密流程是怎么样的? 前端和后端加密都可以规定使用密码的某几位作为盐进行加解密操作,而这种约定俗成的盐选取操作只有程序员自己知道, ...

  7. RSA加解密过程详解

    RSA加解密过程详解 RSA加密是一种非对称加密,由一对密钥来完成加解密过程,分别为公钥和私钥. RSA的加密过程如下: (1)A生成一对密钥(公钥和私钥),私钥不公开,A自己保留.公钥为公开的,任何 ...

  8. [crypto]-02-非对称加解密RSA原理概念详解

    说明:本文使用的数据来自网络,重复的太多了,也不知道哪篇是原创. 算法原理介绍 step 说明 描述 备注 1 找出质数 P .Q - 2 计算公共模数 N = P * Q - 3 欧拉函数 φ(N) ...

  9. Android签名与校验过程详解

    原文:https://blog.csdn.net/gulinxieying/article/details/78677487 目 录 一.签名与校验原理概要    2 1.数字签名简介    2 2. ...

最新文章

  1. linux自动挂载方法,Linux操作系统下硬盘手工和自动挂载的方法
  2. (转)Android 使用com.j256.ormlite
  3. 黑马lavarel教程---13、分页
  4. python作业网站_python大作业
  5. boost::spirit模块实现展示不同容器类型的输出格式化的统一和简单的方法
  6. Javascript闭包与作用域
  7. 基于 Azure 的认知服务将文本合成语音
  8. matlab ssgs工具箱,基于PI控制方式的1A开关电源MATLAB仿真研究
  9. 超火的漫画线稿上色AI出新版了!无监督训练,效果更美好 | 代码+Demo
  10. 你必须知道的.NET
  11. 能源DEA-动态SBM模型
  12. 【无标题】计算机网络故障诊断与排除习题集题库及答案
  13. 初始3D打印机(Hori 3D Z600)
  14. 君正Magik算法平台介绍
  15. 戴尔7472黑苹果之旅
  16. textpad设置Java版本_如何在textpad中保存设置以显示行号?
  17. 李开复给中国大学生的第三封信---成功、自信、快乐
  18. 用 Python 将 matplotlib 图表集成到 PDF 中
  19. 软件测试方法_等价类划分法
  20. A4纸的长宽尺寸怎么这么奇怪啊?

热门文章

  1. SETP7 Professional V11 SP1
  2. 02进度控件-01水波进度条-progresswater
  3. Dialogue System for Unity使用(三)本地化语言
  4. PNAS:以移情尴尬为主的社交焦虑者大脑和行为改变
  5. Linux 平台中文TTS开源库 余音
  6. PDF文件怎么在线去除水印?
  7. 运营商联通CPS号卡手机卡流量卡系统网
  8. 将多个月的nc数据文件合并成一个(月平均)
  9. osgEarth 编译
  10. idea添加web3j 依赖