密码学简介

密码学简介

现代网络存在的问题

  1. 数据窃取
  2. 数据篡改
  3. 身份伪装

对称加解密三要素

  • 加密

    1. 明文
    2. 算法
    3. 秘钥
  • 解密

    1. 密文
    2. 算法
    3. 秘钥

对称加密与非对称加密的区别

  • 对称加密

    1. 加密解密使用同样的秘钥
    2. 加密解密算法不一定相同
  • 非对称加密

    1. 加密解密使用的是两把钥匙

对称加密算法

凯撒密码

凯撒密码是一种简单的对称加密算法

通过平移得到密文
在这里插入图片描述

明文:hello world

算法:向右平移

秘钥:3

密文:khoor zrug

算法:向左平移

秘钥:3

对称加密算法
DES

特点:

  1. 已经不适用了,不安全
  2. 秘钥长度:8字节(64位),每7位提供一个校验位。
  3. 对大的文件进行分组切割,分组长度:8字节
  4. 如果分组长度不足8字节需要填充
3DES

特点:

  1. 进行3次des
  2. 加密过程:
    1. 加密-》解密-》加密
    2. 以解密为加密手段,目的是为了和DES兼容
  3. 解密过程:
    1. 解密-》加密-》解密
  4. 过渡的算法
  5. 安全,可以使用
  6. 秘钥长度:8 * 3 = 24字节
  7. 分组长度:8字节(与DES相同)
  8. 三个秘钥的关系:(了解)
    1. 秘钥1 与秘钥2相同,或者秘钥2与秘钥3相同。相当于DES(兼容)
    2. 如果秘钥1与秘钥3不同,3DES-EDE3
    3. 如果秘钥1与秘钥3相同同,3DES-EDE2
AES

特点:

  1. 主流算法(推荐)
  2. 秘钥:128(16字节),192(24字节),256位(32字节)
  3. 分组:16字节(128比特)
  4. 加密效率高,更加安全
算法秘钥长度分组备注
DES88需要填充(不建议使用)
3DES248可以使用
AES16,24,3216推荐使用
五种分组模式
  • ECB模式:Electronic Code Book mode(电子密码本模式)
  • CBC模式:Cipher Block Chaining mode(密文分组链接模式)
  • CFB模式:Cipher FeedBack mode(密文反馈模式)
  • OFB模式:Output FeedBack mode(输出反馈模式)
  • CTR模式:CounTeR mode(计数器模式)
ECB模式
  1. 对明文进行切割,具体分组长度由算法决定

  2. 对每一个明文分组进行单独加密

  3. 高效

  4. 输入规律的数据,可以得到规律的输出,不安全

  5. 由于直接对分组进行加密,所以需要填充

  6. 不要使用ECB模式

填充思路

最后差几位就填充几位几,比如差3位就填充3个3,不差就填充8个8(因为解密时并不知道要不要去掉最后的值,所以一律都添加)

CBC模式
  1. 分组,长度与算法相同

  2. 需要填充

  3. 后一个分组的输入来自于前一个分组的加密结果

​ 这样就可以避免输入规律的数据得到规律的数据,更加安全

  1. 不能并行加密。

  2. 先异或,再加密

  3. 需要额外提供一个初始化向量(IV:init vector)

​ 要求:iv的长度,与分组长度一致(DES:8bytes,AES:16字节)

异或加密
  • 与&

8:0000,1000

9:0000,1001

&–》0000,1000–》8

  • 或|

8:0000,1000

9:0000,1001

|–》0000,1001–》9

  • 异或^ 相同为0,不同为1(同龄人)

8:0000,1000

9:0000,1001

^–》0000,0001–》1

  • 加密过程:

明文:8

算法:异或

秘钥:9

密文:1

  • 解密过程

密文:1

算法:异或

秘钥:9

明文:8

异或加密,秘钥相同,算法相同

CFB模式
  1. 分组,长度与算法相同

  2. 不需要填充

  3. 后一个分组的输入来自于前一个分组的加密结果

​ 这样就可以避免输入规律的数据得到规律的数据,更加安全

  1. 不能并行加密。
  2. 先加密,后异或
  3. 需要额外提供一个初始化向量(IV:init vector)

​ 要求:iv的长度,与分组长度一致(DES:8bytes,AES:16字节)

OFB模式
  1. 分组,长度与算法相同

  2. 不需要填充

  3. 反复对初始化向量进行加密,得到数据作为下一个分组的输入

  4. 需要额外提供一个初始化向量(IV:init vector)

​ 要求:iv的长度,与分组长度一致(DES:8bytes,AES:16字节)

CTR模式
  1. 需要提供一个数字,每一个分组都会加一
  2. 可以并行的加解密
  3. 推荐使用
对比

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值