1. 密码学概述

1.1密码学基本概念

密码学的定义:

  • 是结合数学、计算机、信息论等的综合性交叉学科
  • 分为密码编码学(cryptography)和密码分析学(cryptanalysis)
  • 密码编码学研究如何设计编码使信息只能被指定接收者读懂
  • 密码分析学研究如何攻击密码系统,设计和使用密码遵守柯克霍夫准则(算法必须公开,对密钥进行保护)

密码体制组成:

  • 明文空间M:全体明文集合
  • 密文空间C:全体密文集合
  • 密钥空间K:全体密钥集合
  • 加密算法E:c = E(ke, m)
  • 解密算法D:m = D(kd, c)

密码体制分类:

  • 对称密码体制:加密密钥ke和解密密钥kd相同
  • 非对称密码体制:加密密钥ke和解密密钥kd不同,也称公钥密码

密码体制设计原则:

  • 密码算法安全强度高

  • 安全性依赖于密钥而非算法保密性(柯克霍夫原则)

  • 密钥空间要足够大

  • 易于实现和使用

1.2 密码学发展历史

  1. 古典密码时期(古代-19世纪末):
    • 主要基于手工完成
    • 代表:凯撒密码、棋盘密码、栅栏密码等

凯撒密码

凯撒密码是一种替换加密,将明文中的每个字母按照固定位数进行偏移

  • 加密公式: 在图中给出的数学表达:

E(ke,m) = (m + n) mod 26

m 是明文字母对应的数值

ke = n 是偏移量

mod 26 确保结果在字母表范围内

  • 解密公式:

D(kd,c) = (c - n) mod 26

c 是密文字母对应的数值

kd = n 是偏移量

例如:偏移量是3(ke = kd = 3):明文:It is a secret 密文:LWLVDVHFUHW


  1. 近代密码时期(20世纪初-50年代末):
  • 使用电动机械设备实现加解密
  • 代表:Vernam密码(一次性密码本或一次性密钥密码)、Enigma转轮密码机

Vernam密码

Vernam密码是一种完全安全的对称加密算法

基本原理:每个明文字符都与一个随机密钥字符进行异或(XOR)运算,密钥必须与明文等长,密钥必须完全随机,每个密钥只能使用一次


  1. 现代密码时期(20世纪50年代至今):
  • 利用计算机技术实现加解密
  • 1949年Shannon的《保密系统的通信理论》标志密码学成为科学
  • 1976年Diffie和Hellman提出公钥密码体制
  • 代表算法:DES(1977)、RSA(1978)、AES(2001)

1.3 密码体制安全性

攻击类型:

  • 穷举攻击:试遍所有可能的密钥
  • 统计分析攻击:分析密文和明文的统计规律
  • 数学分析攻击:利用算法数学特征进行分析

安全性衡量方法:密码的安全性取决于密钥

  • 计算安全性:最有效攻击算法至少是指数时间

  • 可证明安全性:安全性可归结为数学难题

  • 无条件安全性:即使攻击者计算能力无限也无法破解

2. 对称密码

2.1 分组密码

基本概念:

  • 将明文分成固定大小的组进行加密
  • 每组明文分别在密钥控制下变成等长密文

基本原理:

  • 扩散:明文和密钥的每一位都影响密文多个位
  • 混淆:使密文与明文、密钥之间的统计关系复杂化

典型算法——DES:

1977年成为美国数据加密标准,分组长度64比特,密钥56比特,基于Feistel结构

包含初始置换、16轮迭代运算、逆置换

每轮包含扩展置换、与轮密钥异或、S盒代换、P盒置换

SM4算法:

  • 中国国家密码算法标准
  • 分组长度128比特,密钥长度128比特
  • 32轮非线性迭代结构

分组密码工作模式:

  • 电子编码本(ECB)模式
  • 密码分组链接(CBC)模式
  • 密码反馈(CFB)模式
  • 输出反馈(OFB)模式

2.2.2 序列密码

  1. 基本概念:

    • 逐位或逐字节加密
    • 密钥序列与明文进行组合
    • 有状态密码,加密与当前状态有关
  2. 分类:

    • 同步序列密码:密钥序列生成独立于明文
    • 自同步序列密码:密钥序列依赖于以往密文
  3. 组成:

    • 密钥序列生成器
    • 包含驱动部分和非线性组合部分
  4. 典型算法:

    • 线性反馈移位寄存器(LFSR)
    • 祖冲之序列密码算法(ZUC)

3. 公钥密码

3.1 公钥密码概述

  1. 提出背景:

    • 对称密码存在密钥分配问题
    • 密钥管理复杂,n个用户需要n(n-1)/2个密钥
    • 难以实现不可否认功能
  2. 基本原理:

    • 基于数学函数而非字符操作
    • 使用两个独立密钥(公钥和私钥)
    • 依赖单向陷门函数
  3. 单向陷门函数特性:

    • 正向计算容易:给定x,计算y=f(x)容易
    • 逆向计算困难:给定y,计算x=f^(-1)(y)困难
    • 存在陷门:知道特殊信息δ时可以容易计算逆向

3.2 典型算法

  1. RSA算法:

    • 最广泛使用的公钥密码算法
    • 可用于加密和数字签名
    • 基于大整数分解难题
    • 密钥生成步骤:
      • 选择两个大素数p、q
      • 计算n=pq和φ(n)=(p-1)(q-1)
      • 选择公钥e,计算私钥d满足ed≡1 mod φ(n)
    • 加密:c≡m^e mod n
    • 解密:m≡c^d mod n
  2. SM2椭圆曲线公钥密码算法:

    • 中国国家商用密码标准

    • 基于椭圆曲线密码体制

    • 包含数字签名、密钥交换和公钥加密功能

4. Hash函数

4.1 Hash函数概述

  1. 基本概念:

    • 将任意长度输入转换为固定长度输出
    • 输出称为消息摘要或哈希值
    • 是一种单向密码体制
  2. 基本性质:

    • 可处理任意长度输入
    • 输出长度固定
    • 计算效率高
    • 单向性(抗原像性)
    • 抗弱碰撞性(抗第二原像性)
    • 抗强碰撞性
    • 雪崩效应

4.2 典型Hash算法

  1. MD系列:

    • MD2、MD4、MD5
    • 输出长度128位
    • 由RSA公司设计
  2. SHA系列:

    • 美国国家标准
    • 不同版本输出长度不同
  3. SM3算法:

    • 中国国家密码标准
    • 输出长度256位
    • 用于数字签名、完整性保护等

4.3 Hash函数应用

  1. 消息认证码(MAC):

    • 与密钥相关的Hash函数
    • 用于验证消息来源和完整性
    • 实现方式:
      • 基于加密函数的MAC
      • 基于Hash的MAC(HMAC)
  2. Merkle树:

    • 用于区块链系统
    • 快速验证数据完整性
    • 二叉树结构,节点为数据Hash值

5. 数字签名

5.1 数字签名概述

  1. 基本功能:

    • 身份认证
    • 数据完整性验证
    • 不可否认性
    • 匿名性
  2. 特点:

    • 不可否认性:可验证发送者身份和签名时间
    • 不可抵赖性:可验证消息内容
    • 可仲裁性:第三方可验证解决争端
  3. 与手写签名的区别:

    • 签名对象:数字信息vs纸质文件
    • 实现方法:数学运算vs字符串附加
    • 验证方式:验证算法vs签名对比
    • 机密性保护能力:数字签名更优
  4. 与加密的区别:

    • 加密解密是一次性的
    • 签名验证可能需要多次进行
    • 签名可能需要长期保存作为法律依据

5.2 典型数字签名算法

  1. 基于RSA的数字签名:
    • 密钥生成:
      • 选择大素数p、q
      • 计算n=pq,φ(n)=(p-1)(q-1)
      • 选择公钥e,计算私钥d
    • 签名过程:
      • 计算消息hash值h(m)
      • 用私钥d计算签名s≡h(m)^d mod n
    • 验证过程:
      • 计算消息hash值h(m)
      • 验证h(m)≡s^e mod n是否成立

6. 密钥管理

6.1 密钥管理概述

  1. 密钥分类:

    • 会话密钥:用于单次通信
    • 密钥加密密钥:用于加密会话密钥
    • 主密钥:最高层次密钥
  2. 密钥管理层次结构:

    • 分层管理
    • 不同层次密钥功能和重要性不同

6.2 密钥建立技术

  1. 对称密码体制密钥建立:

    • 无中心密钥建立
    • 基于可信第三方的密钥建立
  2. Diffie-Hellman密钥协商:

    • 基于离散对数问题
    • 允许双方在不安全信道上建立共享密钥
    • 过程:
      • 双方分别选择私有数a、b
      • 计算并交换公开值g^a mod p、g^b mod p
      • 分别计算共享密钥(g^b mod p)^a=(g^a mod p)^b
  3. 公钥证书:

    • 包含用户身份、公钥等信息
    • 由CA签名保证真实性
    • 可公开分发和验证

6.3 公钥基础设施(PKI)

  1. 组成部分:

    • 认证机构(CA)
    • 证书和证书库
    • 密钥备份和恢复系统
    • 密钥和证书更新系统
    • 证书历史档案
    • 应用接口系统
    • 交叉认证
  2. 数字证书:

    • X.509证书标准格式
    • 包含持证主体信息和公钥
    • CA签名保证真实性
  3. PKI应用:

    • 安全电子邮件(S/MIME)
    • PGP(Pretty Good Privacy)
    • 提供机密性、完整性和认证服务

7. 本章小结

  1. 密码学是信息安全的核心基础
  2. 主要内容包括:
    • 分组密码
    • 序列密码
    • 公钥密码
    • Hash函数
    • 数字签名
    • 密钥管理
  3. 密码技术是必要但非充分条件,需要配合其他安全措施

以上就是这份密码学基础课件的完整总结。这些内容涵盖了现代密码学的基本概念、主要算法和重要应用,为信息安全提供了理论基础。