密码技术学习

技术

  • 对称密码
  • 非对称密码
  • 单向散列函数
  • 消息认证码
  • 数字签名
  • 伪随机数生成器

在这里插入图片描述

对称密码

  • 对称密码存在密钥配送的问题,如何将密钥安全的发送给接收者
  • XOR可以作为一个对称密码算法 A x o r B x o r B = A Axor B xor B = A ,其中 A 是明文,B是密钥
  • 一次性密码本是无条件安全的,在理论上是无法破译的

DES

  • 已经不再使用
  • DES(Data Encryption Standard) 是一种将64bit的明文加密成64bit的密文的对称密码算法,它的密钥长度是56bit。
  • DES是以64bit的明文为一个单位进行加密的,这个64bit的单位成为分组。一般来说,以分组为单位进行处理的密码算法成为分组密码

DES的结构 (Fiestel 网络)

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

3重 DES

  • 3重DES由于兼容DES,可能还是使用一段时间,但是会被AES取代
    在这里插入图片描述

AES(Advanced Encryption Standard)

  • AES 是取代 DES成为新标准的一种对称加密算法。
  • AES(Rijndeal) 也是分组密码算法,分组长度为128bit,密钥长度可以32bit为单位在128bit和256bit的范围进行选择,但是AES规格中,密码长度只有128、192、256bit三种。

分组密码的模式

模式
ECB模式
CBC模式
CFB模式
OFB模式
CTR模式

在这里插入图片描述

非对称密码

  • 用公钥(public-key cryptography)加密,用私钥解密
  • 使用公钥密码,解决了密钥配送的问题
  • 公钥和私钥是一一对应的,成为密钥对(key pair)
  • RSA 是公钥密码的事实标准

特性

  • 发送者使用加密密钥
  • 接收者使用解密密钥
  • 加密密钥可以公开
  • 解密密钥一定要保密

流程

  • 接收者生成公私钥对,发送公钥给发送者
  • 发送者使用公钥加密明文
  • 接收者使用私钥解密密文

需要解决的问题

  • 处理速度只有对称密码的几百分之一
  • 公钥认证问题(为了应对中间人攻击)

RSA是一种公钥密码算法,可以用于公钥密码和数字签名

  • RSA利用质因分解的困难度
  • 在RSA中,密文、明文、公钥都是数字,加密过程如下,对代表明文的数字的E次方求模N,(E,D,N都是很大的数字,512比特以上)

    = E m o d N 密文 = 明文^E mod N (E,N的组合就是公钥)

  • 解密过程

    = D m o d e N 明文 = 密文^D mode N (D,N的组合就是私钥)
    在这里插入图片描述

ElGamal

  • 利用mod N 求离散对数的困难度

Rabin

  • 利用mod N 求平方根的困难度

椭圆曲线密码 ECC

  • 将椭圆曲线上的特定点进行特殊的乘法运算,利用了这种乘法运算的逆运算困难度

单向散列函数(一致性或者完整性验证)

  • 用于获取信息的摘要

  • 输入消息,输出散列值,散列值用于检查消息的完整性

  • 散列值的长度和消息的长度没有关系

  • MD4、MD5 是单向散列函数,已经不安全了。(MD是message digest的缩写)

  • SHA、SHA-1(已经被攻破)、SHA-256、SHA-384、SHA-512(统称为SHA-2,还未被攻破)

数字签名

  • 数字签名 由单向散列函数和公钥密码组成
  • 先通过单向散列函数计算出消息的散列值,再对散列值施加数字签名。

证书

  • 证书由公钥和数字签名组成

消息认证码(message authentication code MAC)

  • MAC是一种确认完整性并进行认证的技术
  • 消息认证码是由单向散列函数和密钥组合而成,也可以通过对称密码来生成
发布了20 篇原创文章 · 获赞 0 · 访问量 355

猜你喜欢

转载自blog.csdn.net/weixin_41964962/article/details/104942999