目录

非对称密码介绍

公钥通信流程:

公钥密码无法解决的问题:

公钥密码算法:

针对RSA的攻击

其他公钥密码:

总结:


非对称密码介绍

在对称加密中,加密与解密使用的密钥是相同的,因此必须向接收者配送密钥。用于解密的密钥必须配送给接收者,由此产生了密钥配送问题。

密钥配送问题:对一份文件进行加密后发送给接收方,接收方需要查看文件就要用密钥解开加密文件才能查看原文件。所以不发送密钥,接收方无法接收文件,发送密钥后,又会被截取,让第三方知道文件内容

解决密钥配送问题可使用公钥密码

公钥密码中,密钥可分为加密密钥和解密密钥。发送者使用加密密钥对消息进行加密,接受者用解密密钥进行解密

由此可得:

1)发送者只使用加密密钥

2)接收者只是用解密密钥

3)解密密钥不可被第三方获取

4)加秘密钥无所谓

公钥通信流程:

1)接收方生成一个包含公钥和私钥的密钥对

2)接收方将私钥自行保存,并将公钥发送给发送方

3)发送方使用该公钥对消息进行加密后发送(是用公钥只能对数据进行加密,无法解密)

4)接收方使用私钥对密文进行解密

注:公钥密码也称为非对称加密。在对称密码中,加密和解密使用的是同一密钥,只是进行相反运算;而非对称加密中,加密与解密使用的是不同密钥,并非对称

两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密

公钥密码无法解决的问题:

1)公钥认证问题(需要判断得到的公钥是否合法)

2)处理速度(处理速度只有对称密码的几百分之一)

公钥密码算法:

RSA加密公式:密文 = 明文 E mod N(对代表明文代表的数字E次方除于N求余数,E和N的组合就是公钥)

RSA解密公式:明文 = 密文 D mod N (D和N的组合为私钥)

注:N是公开的,所以用于加密和解密的只有E和D

为了生成密钥对:需要求得N、L(仅在生成密钥对的过程中使用的数)、E、D

1)求N

使用伪随机数生成器生成两个很大的质数p、q质数:在大于1的自然数中,除了1和它本身不会有其他因数)N=p*q

2)求L

L只出现在生成密钥对的过程中,不会出现于加解密中

L=lcm(p-1,q-1)L是p-1和q-1的最小公倍数

3)求E

1<E<L,gcd(E,L)=1,E与L的最大公约数为1;使用伪随机数生成器生成E的候选数,再判断是否满足最大公约数为1(使用辗转相除法)

4)求D

D是由E得到

1<D<L,E*DmodL=1

针对RSA的攻击

中间人攻击:

该方法不止针对RSA,可以针对任何公钥密码,因此需要认证公钥是否来自接收方

其他公钥密码:

1)EIGamal

经过加密的密文会变成明文的两倍长;该算法是利用modN下求离散对数的难度

2)Rabin

利用modN下求平方根的难度,

3)椭圆曲线密码

密钥长度短于RSA,利用椭圆曲线上的特定点进行特定的乘法运算

总结:

1)密码的机密性是通过密钥的长度进行比较的,而非公钥密码强于对称密码

2)公钥密码与对称密码的密钥长度不能直接比较


3)公钥密码并不适合对很长的密码进行加密,现在一般使用的是混合密码(公钥密码和对称密码组合使用:对称密码提高处理速度,公钥密码解决密钥配送问题)

4)RSA中使用的质数数量很多不用担心使用完,和生成密钥对时撞车;且RSA在生成、加密、解密都不需要质因数分解,但在破译RSA时需要使用质因数分解(求p和q)

密码篇——非对称加密相关推荐

  1. 密码篇——对称加密—AES

    目录 AES介绍 Rijndael加密中的一轮: Rijndael解密中的一轮: 对三种对称密码的使用: AES介绍 Rijndael于2000年被选为新一代的标准密码算法--AES 在AES规格中, ...

  2. 密码篇——对称加密—3DES

    目录 3重DES介绍 3DES加密: 3DES解密: 3重DES介绍 DES现在可以在现实时间内暴力破解出来,所以使用三重DES来代替DES 三重DES:为了增加DES的强度,将DES重复3次三次所得 ...

  3. 密码篇——对称加密—DES

    目录 一.DES介绍 二.Feistel网络 1)一轮的具体步骤 2)三轮加密与解密 Feistel网络总结: 一.DES介绍 DES以64比特为一分组进行加解密(一般来说DES的密钥长度为64比特, ...

  4. 数据加密 RSA非对称加密篇

    先把代码贴上来,理论后续补充,暂时可先参考数据加密 总篇 package com.jlpay.partner.utils;import android.util.Base64;import java. ...

  5. 密码中对称非对称加密是什么意思?

    在你学习和工作中,经常会用到各种加密算法来保护自己的信息安全,也经常听到对称和非对称加密的概念,可是仔细回想一下,这个对称和非对称到底是怎么来的,怎么个对称法?就自己学习的知识,咋们就来细说一下. 为 ...

  6. 密码学相关基础二(非对称加密和数字签名篇)

    之前对称加密相关基础可以浏览https://blog.csdn.net/qq_44754515/article/details/123577250 一.密钥 1.1.定义 密钥就是一个巨大的数字 密钥 ...

  7. 非对称加密 密码传输_密码学:对称与非对称加密

    非对称加密 密码传输 Before the modern age of cryptography, where the focus has expanded from the confidential ...

  8. java rsa 117_java实现RSA非对称加密解密

    之前写过一篇java实现AES对称加密解密 在对密码加密传输的场景下 RSA非对称加密解密可能会更加适合. 原理就是后台生成一对公钥和私钥,公钥给前端用来加密,后台用私钥去解密,保证了传输过程中就算被 ...

  9. (1)非对称加密——RSA——史上最通俗的小白可看懂!

    摘要 我身边有几个年龄分布在4-6岁的小朋友.由于他们还都不能熟练地掌握100以内的加减法,所以我原计划的对称加密,在他们看来还是有点难.那非对称加密呢,需要他们能熟练进行三位数的乘法,我想就可以逐步 ...

最新文章

  1. 使用CSS将文字长度限制为n行
  2. 入门训练 Fibonacci数列-python实现
  3. 精益分析体系构建如何“因企制宜”?
  4. 论文阅读:Multi-scale orderless pooling of deep convolutional activation features
  5. Redis中的Lua脚本超时
  6. dart系列之:你的地盘你做主,使用Extension对类进行扩展
  7. Libre OJ 「BalticOI 2013」非回文数 数位dp
  8. Windows 系统中 Python下 Pygame 的安装
  9. VSCode如何关闭右侧预览功能 - 截图示下
  10. linux下安装 Sublime Text 3
  11. jQuery Mobile中页面page的data-*选项
  12. Android Retrofit 2.0 使用-补充篇
  13. MetaTrader5平台 Python
  14. 通过doi可以检索到文献_什么是DOI?如何获取文献的DOI?
  15. 研究称在家中工作可提高员工工作效率
  16. php用8好还是php7好,对比说明PHP7的优化提升
  17. mac QQ 语音或视频时其他声音变小的解决办法
  18. Fatal error: Failed to identify device. Check connections and/or resethardware
  19. iTunes只能装C盘吗_为什么电脑软件喜欢默认安装在C盘呢?
  20. 《人力资源视角下的企业数字化转型》高峰圆桌论坛圆满闭幕

热门文章

  1. linux线程并不真正并行,Linux系统编程学习札记(十二)线程1
  2. AI:《DEEP LEARNING’S DIMINISHING RETURNS—深度学习的收益递减》翻译与解读
  3. Py之tornado:tornado库的简介、安装、使用方法之详细攻略
  4. 成功解决bash syntax error near unexpected token from
  5. ML之FE:Kaggle比赛之根据城市自行车共享系统数据进行FE+预测在某个时间段自行车被租出去的个数
  6. Spring MVC框架处理Web请求的基本流程
  7. CentOS7修改默认运行级别
  8. sql server日期时间函数
  9. 将Sublime Text 2搭建成一个好用的IDE
  10. 【工具】模板引擎 Velocity