密码学(上)

密码学笔记

1.加密三要素

  • 密钥,密文,加密算法

PS:对称加密,非对称加密

  • 对称加密
    • 特点:简单,效率高,加密强度低,加密和解密的密钥是相同的
    • 使用场景:应用于大文件,大数据加密
    • 缺点:密钥分发困难
  • 非对称加密
    • 特点:效率低,加密强度高,密钥对,对应公钥加密,对应的私钥解密
    • 使用场景:针对少量数据。(消息认证,签名)
    • 公钥:可以公开获取
    • 私钥:私密保存,越少人知道越好
    • 优点:密钥分发容易
    • 缺点:无法快速处理大数据

2.最早的加密方式————>凯撒密码——>将明文按照一定的字数进行“平移”的方式加密

3.密码信息安全常识:

  • 不要使用保密的密码算法
  • 使用低强度的密码比不进行任何加密更加危险
  • 任何密码终有一天会被破解
  • 密码只是信息安全的一部分

4.DES加密——对称加密(不安全)

  • DES的密钥长度是64比特,但由于每隔7比特会设置一个用于错误检查的比特,因此实质上其密钥长度是56 比特。
  • 加密和解密的密钥是相同的
  • 分组长度:8byte=64bit

5.3DES——三重DES加密(安全)

  • 将DES重复三次所得到的一种密码算法
  • 每一次加密的密钥都不相同,一共三个不同密钥
  • 同时兼容DES,只要三个密钥都相同,就是普通的DES

6.AES加密——对称加密(更安全)

  • 在AES中,密钥长度只有128,192(24byte),256bit三种,go语言中只支持16byte
  • 分组密码模式,最后一个分组,采用缺几补几的方式填充。对于刚好整除的,补分组数据长度(16byte)
  • 按位 异或 加密 (XOR)

7.分组密码模式(5种)

  • EBC
    • 特点:简单,效率高,密文有规律,容易破解
    • 最后一组明文分组要填充
      • DES,3DES(8byte)
      • ADE(16byte)
    • 不需要初始化向量
  • CBC (重点)
    • 特点:效率略低,密文无规律,不容易破解,推荐使用
    • 最后一组明文必须填充
    • 需要初始化向量
      • 初始化向量长度==分组数据长度
      • 加密解密使用的是同一个初始化向量
      • 加密者提供初始化向量
    • 在这里插入图片描述
  • CFB
    • 特点:密文无规律,将初始化向量借助密钥加密,生成一个密钥流(数据流), 用明文分组与密钥流异或得到密文
    • 最后一个明文分组,不需要填充
    • 需要初始化向量
      • 初始化向量长度==分组数据长度
      • 加密解密使用的是同一个初始化向量
      • 加密者 提供 初始化向量
    • 在这里插入图片描述
  • OFB (了解)
    • 逐层加密初始化向量,而CFB是将上一级的密文当作本层的初始化向量
    • 其他内容跟CFB一致,直接看图
      -在这里插入图片描述
  • **CTR(重点)**推荐使用
    • 特点:密文无规律,将 计数器+随机数 借助密钥加密,生成一个密钥流(数据流), 用明文分组与密钥流异或得到密文
    • 最后一个明文分组 不需要填充。
    • 不需要初始化向量
      • Go语言中 IV 不是初始化向量,对应一个 随机数种子。 大小 == 分组数据长度。
    • 在这里插入图片描述
  • 在这里插入图片描述
  • 总结:
    • 最后一个明文分组的填充
      • ECB、CBC分组密码模式需要填充
      • CFB、OFB、CTR分组密码模式 不需要填充
    • 初始化向量 - IV — 一个数组 (切片)
      • ECB、CTR 分组密码模式 不需要
      • CFB、OFB、CBC 分组密码模式 需要
        • 数据长度:== 分组长度。(受加密算法影响)
          • des、3des --> 8byte = 64bit
          • AES --> 16byte = 128bit
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值