前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >非对称加密和混合密码系统

非对称加密和混合密码系统

作者头像
linjinhe
修改2018-06-06 22:53:26
9810
修改2018-06-06 22:53:26
举报
文章被收录于专栏:linjinhe的专栏linjinhe的专栏

简介

非对称加密算法的特点是,密钥分为加密密钥和解密密钥,并且这两个密钥是不一样的(非对称)。发送者用加密密钥对消息进行加密,接受者用解密密钥对密文进行解密。

一般情况下:

  • 加密密钥是公开的,称为公钥
  • 解密密钥是私有的,称为私钥

一次使用非对称加密通信的流程

假设A是发送者,B是接收者。

  1. B生成一个密钥对(公钥+私钥)。私钥由B自行妥善保管
  2. B将自己的公钥发送给A。公钥是公开的,无需保密
  3. A用B的公钥对消息进行加密。加密后的消息只有B的私钥能解密。
  4. A将密文发送给B。
  5. B用自己的私钥对密文进行解密。

RSA

  • RSA是目前最常用的非对称加密算法。在RSA中,明文、密钥和密文都是数字(很大的数字)。下面对RSA进行简单介绍,跟多原理和细节请自行网上搜索参考。
  • RSA的密文是对代表明文的数字的E次方求mod N的结果:密文=明文^E mod N
  • RSA解密就是密文的数字D次方求mod N就可以得到明文:明文=密文^D mode N
  • E和N是RSA加密的密钥,E和N的组合就是公钥
  • D和N是RSA解密的密钥,D和N的组合就是密钥
  • 生成RSA算法的密钥对(E、D、N):
  1. 求N
    • 准备两个很大(比如512比特)的质数p和q
    • N = p * q
  2. 求L(L是个中间数值)
    • L是p-1和q-1的最小公倍数
  3. 求E
    • 1 < E < L
    • E与L的最大公约数为1
  4. 求D
    • 1 < D < L
    • E * D mod L = 1

非对称加密存在的问题

  • 中间人攻击,公钥是公开的,怎么确定密文来自所期望的对象。
  • 计算速度慢,只有对称加密算法的几百分之一。

下面介绍混合加密系统,用于解决计算速度慢的问题。

混合密码系统

混合密码系统结合了非对称加密算法和对称加密算法的优势:

  • 利用非对称加密算法的“非对称性”,解决对称密钥的传递问题。
  • 利用对称加密算法的加解密速度,解决非对称加解密的速度问题。

混合密码系统的加密

混合加密

  1. 发送者利用一个随机数生成器生成一个对称加密算法的会话密钥。
  2. 使用会话密钥加密会话消息,得到会话消息密文(对称加密)。
  3. 使用接受者的公钥加密会话密钥,得到会话密钥密文(非对称加密)。 4.组合会话密钥密文和会话消息密文。

混合密码系统的解密

混合解密

  1. 分离密文,等到会话密钥密文和会话消息密文。
  2. 用私钥解密会话密钥密文,得到会话密钥(非对称加密)。
  3. 用会话密钥解密会话消息密文,得到会话消息(对称加密)。

参考

  • 维基百科
  • 《图解密码学》
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 一次使用非对称加密通信的流程
  • RSA
  • 非对称加密存在的问题
  • 混合密码系统
    • 混合密码系统的加密
      • 混合密码系统的解密
      • 参考
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档