对称加密&非对称加密&混合加密

  • 写于前
    • iOS中常在哪些场景应用到
    • 写一个系列
    • 本文概要
  • 对称加密(Symmetric Cryptography)
  • 非对称加密(ASymmetric Cryptography)
  • 混合加密(Hybrid Cryptography)
  • 总结
  • 参考文献

写于前

iOS中常在哪些场景应用到

  • 支付密码、验证码相关的业务场景
  • 之前个人维护的一个数字证书模块,与密码学相关知识也紧密相关,同时数字证书在我们的业务场景中,是作为指纹支付的基础
  • iOS的签名机制。常常跟着网上的教程一顿操作,然而却不知道原理是什么。个人觉得,知道原理后续遇到问题也更能快速定位哪个环节的问题,也能学习优秀的技术方案是如何设计的

写一个系列

  • 对称加密&非对称加密&混合加密
  • 单向散列函数&数字签名&数字证书
  • iOS签名机制

本文概要

  • 白话厘清概念,分析优缺点(不累述算法实现)
  • 看完,能对平常接触的AES,RSA,公钥,私钥,哪个加密,哪个解密有清晰的了解

对称加密(Symmetric Cryptography)

  • 加密,解密使用同一个密钥

  • 常见的加密方式:

    • DES(Data Encryption Standard)

      • 如上,简单流程,补充几点:
      • 明文密文都是64bit
      • 密钥64bit,每隔7bit有一个错误检查专用位,实际密钥长度为56bit
      • 缺点:每次加密只能64bit,数据较大时需要反复迭代。且DES加密目前已不安全
    • 3DES

      • 3重DES操作,第二次为解密
      • 如上,简单流程,补充几点:
        • 3次密钥不同:DES-EDE3。Key1与Key3可以相同,成为DES-EDE2
        • 缺点:此为在DES的基础上的增强加密强度,然而带来了多个密钥的维护成本,同时影响了处理速度,目前已不安全
    • AES(Advanced Encryption Standard)

      • 目前首选的新标准的对称加密算法,速度快,安全级别高
      • 密钥长度:128bit,192bit,256bit三种
      • 基于排序和置换运算,迭代的算法,用128bit(16字节)分组加密解密数据
  • 对称加密的优缺点:

    • 优点:计算量小,速度快,效率高
    • 缺点:密钥配送问题
      • 因为加解密密钥相同,密钥肯定不能直接传输,遭遇中间人攻击窃取,存在很大的风险。目前常见的解决方案:
      • 提前共享密钥
        • 数据传输前分享密钥,但如果一方泄露,隐患仍较大。且麻烦
      • 密钥分配中心
        • 目前在我们的业务场景中就有应用:在运用AES加密前,前端申请分配中心生成与该用户对应的密钥,加密数据后传给后端,后端从分配中心同样获取密钥,进行解密
        • 相对安全
      • Diffie-Hellman密钥交换:在公共信道上安全交换加密密钥的方法(没有深入研究过,大家可以自行深入理解下)
      • 非对称加密

非对称加密(ASymmetric Cryptography)

  • 简介

    • 又称公钥加密-Public-Key Cryptography
    • 公钥(public key):公开,用于加密
    • 私钥(private key):消息接收者保管,不公开,用于解密
    • 一一对应,一起生成成为密钥对
  • 简易流程图:

  • 最常用的加密方式:RSA(名称由三位提出者的首字母拼成)

    • 第一个能同时用于加密和数字签名的算法
  • 非对称加密的优缺点:

    • 优点:解决密钥配送问题,分公私钥,安全性高
    • 缺点:加解密速度慢
  • 补充:

    • 公钥对数据加密,必须使用私钥解密
    • 私钥对数据加密,必须使用公钥解密

    到底公钥,私钥哪个用来加密???

    • 之所以,在后面补充这一点,我之前也对到底是公钥加密还是私钥加密很混乱。因此先对前面的知识点熟悉了,再了解这一点。

    一张知乎问答来结束到底哪个是用来加密的问题?

    • 私钥加密的应用场景:数字签名(下一篇文章会提到)

混合加密(Hybrid Cryptography)

  • 为了结合对称加密速度快和非对称加密安全性高的优点,同时规避两者缺点,产出的方案
  • 加密过程:

    • 会话密钥:由伪随机数生成器生成的临时密钥,又作对称密钥
  • 解密过程:此处流程图略,看了加密过程的图,解密过程应该也很清晰
  • 一句话概括:
    • 发送者用非对称加密的公钥对对称加密的密钥加密
    • 用对称密钥对消息进行加密
    • 接收者用私钥解密获得对称加密的密钥,来解密消息

总结

  • 对称加密速度快,但存在密钥配送问题,常见的有AES
  • 非对称安全性高,但速度慢,常见的有RSA
  • 混合加密,结合两者优点
  • 非对称加密是公钥(公开)加密,私钥解密。
  • 私钥加密(签名),公钥解密(验签)(下回再说)

参考文献

  • 对称密码-DES和3DES
  • DES/3DES/AES区别

对称加密非对称加密混合加密相关推荐

  1. 对称非对称算法混合加密实战(DES和AES混合加密)

    最近需要用加密算法,开始研究加密算法,果然大学落下的需要全都补回来.泪奔啊! 网上找各种资料,看别人的原理解释看了了很多,使用非对称算法和对称算法混合加密在实际项目中是经常用的,但原理听的差不多,没有 ...

  2. 加解密基础——(对称加密、非对称加密和混合加密)

    本文对之前学习过的加解密相关知识做一简单总结,以备后用. 1. 基本概念 加密算法 通常是复杂的数学公式,这些公式确定如何将明文转化为密文的过程和规则. 密钥 是一串被加入到算法中的随机比特. 待续 ...

  3. 对称加密 非对称加密

    目录 一.加解密算法 二.算法体系 三.对称加密 四.非对称加密 五.混合加密机制 六.DES加密原理 七.3DES加密原理 八.AES加密原理 九.RSA加密原理 十.EIGamal加密原理 十一. ...

  4. 对称加密、非对称加密、混合加密

    文章目录 1.对称加密 1.1 对称加密的有优缺点 1.2 密钥分配问题 2.非对称加密 2.1 非对称加密的优缺点 3.混合加密 4.常见的摘要算法 1.对称加密 AES,密钥长度有128/256/ ...

  5. 对称加密,非对称加密,混合加密

    对称加密 https://mp.weixin.qq.com/s/eVpwE6CUrQoGIpYXYsVJWA 两边用同一个密钥来加解密. A把明文通过某一算法加密之后得到密文,然后把密文发送给B,B接 ...

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

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

  7. 对称加密非对称加密怎么一起使用(初级版)

    对称加密 加密和解密使用相同的密钥,使用一把钥匙,所以叫对称加密,对称 加密包括多种算法,如:DES,3DES,AES 加密长度一般小于256位,防止数据被泄. 优点:加密和解密的速度快.缺点:因为使 ...

  8. Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA

    [最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...

  9. 【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密 | 非对称加密 | 散列函数 )

    文章目录 一.加密类型 二.加密解密三要素 三.加密应用场景 四.散列函数 一.加密类型 数据加密操作 分为 对称加密 和 非对称加密 ; 对称加密 : 加密密钥 与 解密密钥 相同 ; 非对称加密 ...

最新文章

  1. 动手扩充FreeTextBox的功能
  2. 使用Visual Studio工作流发布SharePoint网页
  3. c#中对Cross-thread operation not valid错误的处理办法
  4. 五、cookie和web缓存
  5. Ubuntu上面安装Redis Python
  6. rust怎么拆自己石墙_房屋征拆:遭遇非法强拆怎么办?如何依法维护自己的权益...
  7. 《数据结构与抽象:Java语言描述(原书第4版)》一P.4.1 标识类
  8. 消费类电子认证测试资料清单
  9. php中对文件的读取和写入
  10. 查看一个进程的线程情况
  11. 希尔伯特变换(1)-基础理论
  12. 视频播放设计测试用例
  13. R语言 数据抽样(数据失衡处理、sample随机抽样、数据等比抽样、交叉验证抽样)
  14. appium之微信公众号自动化测试实战
  15. Application provided invalid, non monotonically increasing dts to muxer in stream
  16. excel中插入的图表保存时提示 无法保存 html,excel表格保存不了的解决方法步骤...
  17. 防火墙阻止tftp_H3C防火墙常见问题汇总
  18. 亮剑java web_为什么《亮剑Java Web 项目开发案例导航》第二个项目运行不了?
  19. HTML5新特性知识点总结
  20. 循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器

热门文章

  1. ATmi-G 公众号机器人 【永久免费】
  2. Failure 与 Error
  3. opencv中imread函数的使用
  4. monkey 测试 ANR 问题 整理分析
  5. 用手机计算机计算三次根号,手机自带计算器不行求推荐一个能开3次根号的 – 手机爱问...
  6. 树莓派安装Windows
  7. Opencv色彩空间(GRAY、XYZ、HSV、YCrCb、HLS)展示,以及利用HSV标记指定的颜色
  8. SDN(软件定义网络)基本概念
  9. ASP.NET WEBAPI 跨域请求 405错误
  10. 【基础篇】MySQL系列之where条件查询