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

写于前

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
  • 混合加密,结合两者优点
  • 非对称加密是公钥(公开)加密,私钥解密。
  • 私钥加密(签名),公钥解密(验签)(下回再说)

参考文献

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值