密码学基础

组成结构:密码编码和密码分析

相关法律

  • 《密码法》实施时间:2020年1月1日(重点记忆)
  • 《电子签名法》实施时间:2005年4月1日(了解即可)

密码安全分析

  • 唯密文攻击:

    • 条件:仅掌握一个/多个同密钥加密的密文
    • 特点:攻击难度最大(如截获加密文件但无其他信息)
  • 已知明文攻击:

    • 条件:已知部分明文-密文对
    • 特点:合格密码需能抵御此类攻击
  • 选择明文攻击:

    • 条件:可自主选择明文并获取对应密文
    • 特点:对攻击者最有利,适用于攻击文件/数据库系统
  • 密文验证攻击:

    • 条件:可验证任意密文是否合法
    • 特点:仅能判断合法性(Yes/No),无法获取内容
  • 选择密文攻击:

    • 条件:可选择密文并获取对应明文
    • 特点:主要攻击公钥密码体制(特别是数字签名系统)

密码体制分类

  • 对称密码体制(私钥密码体制)
    • 核心特征:加密/解密使用相同密钥
    • 密钥管理:
      • 必须通过安全渠道交换密钥
      • 密钥数量:n(n-1)/2(1000用户需约50万对密钥)
    • 典型算法:DES(56位)、3DES(112位)、AES、RC4/5、IDEA
    • 优势:加解密速度快、密文紧凑、长密钥难破解
    • 缺陷:密钥分发困难(需安全信道)、密钥管理复杂(用户量大密钥数量也大)、无法认证源
  • 非对称体制(公钥密码体制)
    • 核心特征:加密/解密使用不同密钥
    • 密钥管理:
      • 每个实体持有公钥+私钥
      • 密钥数量:2n(1000用户2000密钥)
    • 应用模式:
      • 保密通信:公钥加密->私钥解密
      • 数字签名:私钥加密->公钥解密
    • 优势:密钥分发方便、密钥保管量少、支持数字签名
    • 缺陷:加密速度慢、数据膨胀率高
    • 典型算法:RSA、RCC、DH等
  • 混合密码体制
    • 设计原理:结合对称与非对称密码优势
    • 工作流程:
      • 发送方用对称密钥加密消息,用接收方公钥加密对称密钥(数字信封)
      • 组合发送加密消息+数字信封
      • 接收方先用私钥解密获得对称密钥,再用对称密钥解密获得明文
image-20250723103329084

对称加密算法

image-20250723103601428

  • 分类:

    • 分组加密算法:固定长度分组处理(如DES、3DES、IDEA、AES)
    • 流加密算法:可变长度处理(如RC4/RC5),类似流水线作业
  • DES核心参数:

    • 分组长度:64位
    • 密钥结构:64位总长度(含8位校验位),有效密钥长度56位
    • 运算特点:采用移位+替换进行16轮迭代
  • 3DES增强机制:

    • 加密流程:加密-解密-加密

      image-20250723105523665

    • 密钥配置:通常K1=K3,默认密钥长度112位(56×2)

    • 变体情况:三密钥不同时为168位,三密钥相同时退化为56位

  • IDEA特征:

    • 应用场景:PGP电子邮件加密
    • 参数规格:64位分组,128位密钥
    • 设计特点:混合不同代数群运算
  • AES优势:

    • 分组长度:128位(区别于其他算法的64位)
    • 密钥选择:支持128/192/256位三种长度
    • 性能表现:硬件实现速度快,安全性与3DES相当
  • RC系列特性:

    • 算法类型:流加密代表
    • 性能对比:加密速度可达DES的10倍
    • 灵活配置:分组和密钥长度均可变

国产加密算法

image-20250723105721682

  • 记忆要点:
    • 对称算法:SM1、SM4(两个算法分组长度和密钥长度都为128比特)
    • 非对称算法:SM2(非对称加密,采用椭圆曲线)、SM9(标识密码)
    • 哈希算法:SM3(分组512位,输出长度256位)

非对称加密算法

考试重点为RSA算法。

公钥密码分类

  • 基于大素数因子分解困难性:典型代表为RSA算法
  • 基于离散对数问题困难性:包括DH、Elgamal、ECC(椭圆曲线密码)等

RSA

概述

  • 算法起源:由Ronald Rivest、Adi Shamir、Leonard Adleman三人发明,名称取自三人姓氏首字母
  • 密钥特性:
    • 公钥和私钥均可用于加密,但加密与解密密钥必须相反配对
    • 提供机密性、完整性、真实性和不可否认性保障
  • 应用场景:SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能
  • 密钥管理:
    • 用户需在KMC(密钥管理中心)登记个人信息和公钥
    • 公钥存储于PKDB(Public Key Database)实现共享

三种模式

  • 加密模式
    • 核心功能:确保数据传输的机密性
    • 加密流程:公钥加密→私钥解密
      1. 发送方A查询PKDB获取接收方B的公钥KeBKeB
      2. 用B的公钥KeBKeB加密明文MM得到密文CC
      3. B用私钥KdAKdA解密密文CC得到明文MM
  • 认证模式
    • 核心功能:验证数据来源的真实性
    • 认证原理:成功解密证明消息确实由A发出
    • 认证流程:私钥加密→公钥解密
      1. 发送方A使用私钥KdAKdA加密明文MM得到密文CC
      2. B查询PKDB获取A的公钥KeAKeA
      3. 用公钥KeAKeA解密密文CC得到明文MM
  • 加密认证混合模式
    • 核心功能:同时保证机密性和真实性
    • 加密流程
      1. A用私钥KdAKdA加密明文MM得到中间密文SS
      2. 再用B的公钥KeBKeB加密中间密文SS得到最终密文CC
      3. 发送C给B
      4. B用私钥KdBKdB解出中间密文SS
      5. 再用A的公钥KeAKeA解出明文MM
    • 技术特点:既防止内容泄露又验证发送方身份

数学基础

欧拉函数

  • 定义: 对于正整数nn,小于nn且与nn互素的正整数个数记为φ(n)\varphi(n)
  • 素数情况: 当nn为素数时,φ(n)=n1\varphi(n)=n-1
  • 复合数情况: 若n=p×qn=p×q(p,qp,q为素数),则φ(n)=(p1)(q1)\varphi(n)=(p-1)(q-1)

欧几里得算法

  • 表示方法:gcd(a,b)\operatorname{gcd}(a,b)表示a,ba,b的最大公约数
  • 互质判定: 当gcd(a,b)=1\operatorname{gcd}(a,b)=1时,称a,ba,b互质

同余

  • 定义: 若a,ba,b除以mm余数相同,记作ab(modm)a \equiv b (\bmod m)

求解乘法逆元

  • 问题形式: 解方程5×d1(mod72)5×d \equiv 1 (\bmod 72)求dd
  • 解题方法:
    • 转化为5d1=72n5d-1=72n(nn为正整数)
    • 代入n=1,2,3...n=1,2,3...测试
    • 当n=2n=2时得d=29d=29(因5×291=144=72×25×29-1=144=72×2)

RSA计算

  1. 随机选择两个大素数p,qp,q**(保密)**
  2. 计算n=p×qn=p×q **(公开)**
  3. 计算φ(n)=(p1)(q1)\varphi(n)=(p-1)(q-1)**(保密)**
  4. 选取一个正整数ee(公开),选取条件
    • 1<e<φ(n)1<e<\varphi(n)
    • gcd(e,φ(n))=1\operatorname{gcd}(e,\varphi(n))=1(即ee与φ(n)\varphi(n)互质)
  5. 根据e×d1(modφ(n))e×d \equiv 1 (\bmod \varphi(n)),求出dd(公开)
  6. 加密运算:C=Me(modn)C = M^e (\bmod n)
  7. 解密运算:M=Cd(modn)M = C^d (\bmod n)
  8. 公钥Ke=<n,e>Ke=<n,e>,私钥Kd=<p,q,d,φ(n)>Kd=<p,q,d,\varphi(n)>

哈希算法Hash

  • 定义:哈希算法(Hash Function)又称杂凑函数或散列函数,能将任意长度信息转换为固定长度的哈希值(数字摘要),且不同消息生成的哈希值必定不同。
  • 用hh表示哈希函数,满足:
    • 任意输入:输入MM可以是任意长度(1bit到1PB)
    • 固定输出:输出长度固定(MD5为128位,SHA-1为160位,SM3为256位)
    • 易计算性:给定hh和MM,计算h(M)h(M)容易实现
    • 强抗碰撞:找不同M1M_1和M2M_2使h(M1)=h(M2)h(M_1)=h(M_2)在计算上不可行
  • 特性:不可逆性(单向)、无碰撞性、雪崩效应
  • 典型算法:
    • MD5:512位分组处理,生成128位摘要,常用于文件校验
    • SHA系列:512位分组处理,SHA-1生成**160位摘要,**比MD5更安全
    • SM3:国产算法,512位分组处理,生成256位摘要

应用

  1. 文件完整性校验

  2. 账号密码存储

    • 明文存储:直接保存原始密码,存在内部泄露风险
    • 哈希存储:存储密码哈希值,但可能被彩虹表攻击破解
    • 加盐哈希:密码+盐生成哈希,有效防御彩虹表攻击
  3. 用户身份认证

    • 客户端发起认证请求
    • 服务器返回随机数RR
    • 客户端计算MAC=Hash(密码+R)MAC=Hash(密码+R)返回,服务器验证

消息认证码(MAC,Message Authentication Code)

  • 两种实现:
    • 基于哈希:HMAC=Hash(M+key)HMAC=Hash(M+key)(如HMAC-SHA256)
    • 基于对称加密:如AES-CBC-MAC

HASH、MAC、HMAC区别

  • 普通哈希:仅验证完整性,无身份认证(无密钥参与)
  • MAC:完整性+身份认证(需共享密钥KK)
  • HMAC:MAC的子集,采用哈希函数构造,输出长度与哈希算法一致

数字签名

数字签名可以保证完整性不可否认性

核心机制:签名者使用私钥对待签名数据的哈希值进行密码运算,验证时需使用对应的公钥(私钥签名,公钥验证)

特点:非否认性、真实性、可鉴别性、不可篡改

签名和验证过程

image-20250723153514204

PKI与数字证书

数字证书

  • 核心作用:用于证明公钥的真实性。包含所有者公钥和CA(认证机构)数字签名,确保公钥不被伪造。
  • 获取过程:当Alice需要Bob的公钥时,通过获取Bob的数字证书来确认其公钥的真实性,避免黑客冒充风险。
  • 签名机制:CA机构使用自己的私钥对证书进行数字签名,相当于公安的防伪标记,确保证书内容(特别是公钥)的真实性。
  • 包含内容:
    • 序列号:证书的唯一标识
    • 签名算法:采用MD5MD5哈希后RSARSA签名的双重机制
    • 颁发者:CA机构的身份信息
    • 有效期:明确的起止日期
    • 公钥:证书所有者的公开密钥(核心内容)

分类方式

  • 按主体:个人证书、机构证书、设备证书
  • 按用途:签名证书(证明签名公钥)、加密证书(证明加密公钥)

CA服务:提供证书全生命周期管理,包括申请、审核、签发、查询、发布及吊销等服务。

系统组成:包含目录服务器、OCSP服务器、注册服务器、签发服务器等组件。

PKI体系

image-20250723154629578

  • 核心组件:
    • RA:注册机构,负责用户证书申请的资格审查(如营业执照验证),不直接签发证书。
    • CA:证书颁发机构,负责证书的颁发、管理和撤销(核心功能)。
    • CRL:证书吊销列表,存放过期或无效证书(有效期管理机制)。
  • 考试重点:
    • RA的功能定位(用户注册审核)
    • CA的核心职责(证书签发管理)
    • CRL的定义作用(无效证书存储)
    • PKI体系与Kerberos体系(内含KDC、AS、TGS)是不同的体系

密钥管理

  • 生命周期管理:包括密钥生成、存储、分发、使用、更新、撤销、备份、恢复、销毁和审计全过程
  • 密钥管理政策:
    • 核心密码:保护国家秘密信息,由国家密码管理部门统一管理
    • 普通密码:保护国家秘密信息,属于国家秘密
    • 商用密码:保护非国家秘密信息(如SM1-SM4、SM9算法),公民法人可用
  • 密码测评
    • 测评内容:对密码产品及系统进行安全性和合规性评估
    • 实施机构:国家商用密码检测中心负责测评工作
    • 保障目标:确保密码系统安全有效运行