密码学基础

[toc]

1.体系

1
2
3
4
5
6
7
8
graph TD;
密码学--->密码编码学;
密码学-->密码分析学;
密码编码学-->对称加密体制;
密码编码学-->非对称加密体制;
密码编码学-->安全协议;
对称加密体制-->流加密算法;
对称加密体制-->分组加密算法;

2.对称加密体制

加密双方共享同一个密钥来进行加解密计算

模式

1
2
3
4
5
6
7
8
flowchart LR
id0[m]
id1["E(k,m)=c"]
id2["D(k,c)=m"]
id3[k]
id3-->Alice
id0-->Alice--> id1-->信道-->传输-->Bob-->id2
Bob-->id3

安全性在密钥的保密

一次一密(无条件安全),但是密钥长度会超过明文长度

流密码

需要密钥流生成器,生成伪随机序列,它将明文消息和一个伪随机密钥流逐位或逐字节结合,生成密文。与分组密码不同,流密码连续不断地处理数据流,而不是将数据分成固定大小的块。

核心概念和工作原理:

  • 密钥流生成器: 流密码的核心是一个密钥流生成器,它使用密钥生成一个伪随机的密钥流。
  • 加密: 明文消息与密钥流进行异或 (XOR) 操作,生成密文。
  • 解密: 使用相同的密钥流与密文进行异或操作,恢复明文。

漏洞:1.可以通过一个已知明文来推出另一个明文

​ 2.相同明文产生相同密文

分组密码

逐分组进行处理,对明文分组进行加密,产生密文。

通过迭代来产生密文。

1
2
3
4
5
6
7
8
9
10
11
12
13
graph LR;

id1["R(k1,·)"];
id2["R(k2,·)"];
idn["R(kn,·)"];
i["…………"];
m-->id1-->id2-->i-->idn;
k1-->id1
k2-->id2
kn-->idn
k-->k1
k-->k2
k-->kn

3.非对称加密体系

加密双方使用一对密钥来进行加解密计算,使用两个密钥:公钥私钥。公钥可以公开分发,而私钥必须保密。这两个密钥在数学上相关联,使用公钥加密的数据只能用对应的私钥解密,反之亦然。

以下是更详细的解释:

核心概念和工作原理:

  • 密钥对: 每个用户或实体都有一对密钥:公钥和私钥。
  • 加密: 使用接收者的公钥加密消息。只有拥有对应私钥的接收者才能解密消息。
  • 解密: 使用私钥解密消息。
  • 数学基础: 非对称加密算法通常基于数学难题,例如大数分解(RSA)或椭圆曲线离散对数问题(ECC)。这些难题使得在已知公钥的情况下计算私钥非常困难。

主要优势:

  • 密钥分发更安全: 无需安全通道即可交换公钥。
  • 数字签名: 可以使用私钥对消息进行数字签名,以验证消息的发送者和完整性。
  • 身份验证: 可以使用公钥验证用户的身份。

主要劣势:

  • 加密速度较慢: 相比对称加密,非对称加密的计算量更大,速度较慢。
  • 密钥管理更复杂: 需要安全地生成、存储和管理密钥对。

常用的非对称加密算法:

  • RSA (Rivest-Shamir-Adleman): 基于大数分解难题。
  • ECC (Elliptic Curve Cryptography): 基于椭圆曲线离散对数问题。ECC 在相同安全级别下可以使用更短的密钥,因此效率更高。
  • ElGamal: 基于离散对数问题。
  • DSA (Digital Signature Algorithm): 主要用于数字签名。

应用场景:

  • TLS/SSL (Transport Layer Security/Secure Sockets Layer): 用于保护网络通信,例如 HTTPS。
  • SSH (Secure Shell): 用于安全远程登录。
  • PGP (Pretty Good Privacy): 用于电子邮件加密和数字签名。
  • 比特币和其他加密货币: 用于数字签名和交易验证。
  • 数字证书: 用于验证网站和用户的身份。