信息安全工程师软考(3):密码学
密码学基础
组成结构:密码编码和密码分析
相关法律:
- 《密码法》实施时间: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等
- 混合密码体制
- 设计原理:结合对称与非对称密码优势
- 工作流程:
- 发送方用对称密钥加密消息,用接收方公钥加密对称密钥(数字信封)
- 组合发送加密消息+数字信封
- 接收方先用私钥解密获得对称密钥,再用对称密钥解密获得明文

对称加密算法
-
分类:
- 分组加密算法:固定长度分组处理(如DES、3DES、IDEA、AES)
- 流加密算法:可变长度处理(如RC4/RC5),类似流水线作业
-
DES核心参数:
- 分组长度:64位
- 密钥结构:64位总长度(含8位校验位),有效密钥长度56位
- 运算特点:采用移位+替换进行16轮迭代
-
3DES增强机制:
-
加密流程:加密-解密-加密
-
密钥配置:通常K1=K3,默认密钥长度112位(56×2)
-
变体情况:三密钥不同时为168位,三密钥相同时退化为56位
-
-
IDEA特征:
- 应用场景:PGP电子邮件加密
- 参数规格:64位分组,128位密钥
- 设计特点:混合不同代数群运算
-
AES优势:
- 分组长度:128位(区别于其他算法的64位)
- 密钥选择:支持128/192/256位三种长度
- 性能表现:硬件实现速度快,安全性与3DES相当
-
RC系列特性:
- 算法类型:流加密代表
- 性能对比:加密速度可达DES的10倍
- 灵活配置:分组和密钥长度均可变
国产加密算法
- 记忆要点:
- 对称算法: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)实现共享
三种模式
- 加密模式
- 核心功能:确保数据传输的机密性
- 加密流程:公钥加密→私钥解密
- 发送方A查询PKDB获取接收方B的公钥
- 用B的公钥加密明文得到密文
- B用私钥解密密文得到明文
- 认证模式
- 核心功能:验证数据来源的真实性
- 认证原理:成功解密证明消息确实由A发出
- 认证流程:私钥加密→公钥解密
- 发送方A使用私钥加密明文得到密文
- B查询PKDB获取A的公钥
- 用公钥解密密文得到明文
- 加密认证混合模式
- 核心功能:同时保证机密性和真实性
- 加密流程:
- A用私钥加密明文得到中间密文
- 再用B的公钥加密中间密文得到最终密文
- 发送C给B
- B用私钥解出中间密文
- 再用A的公钥解出明文
- 技术特点:既防止内容泄露又验证发送方身份
数学基础
欧拉函数
- 定义: 对于正整数,小于且与互素的正整数个数记为
- 素数情况: 当为素数时,
- 复合数情况: 若(为素数),则
欧几里得算法
- 表示方法:表示的最大公约数
- 互质判定: 当时,称互质
同余
- 定义: 若除以余数相同,记作
求解乘法逆元
- 问题形式: 解方程求
- 解题方法:
- 转化为(为正整数)
- 代入测试
- 当时得(因)
RSA计算
- 随机选择两个大素数**(保密)**
- 计算 **(公开)**
- 计算**(保密)**
- 选取一个正整数(公开),选取条件
- (即与互质)
- 根据,求出(公开)
- 加密运算:
- 解密运算:
- 公钥,私钥
哈希算法Hash
- 定义:哈希算法(Hash Function)又称杂凑函数或散列函数,能将任意长度信息转换为固定长度的哈希值(数字摘要),且不同消息生成的哈希值必定不同。
- 用表示哈希函数,满足:
- 任意输入:输入可以是任意长度(1bit到1PB)
- 固定输出:输出长度固定(MD5为128位,SHA-1为160位,SM3为256位)
- 易计算性:给定和,计算容易实现
- 强抗碰撞:找不同和使在计算上不可行
- 特性:不可逆性(单向)、无碰撞性、雪崩效应
- 典型算法:
- MD5:512位分组处理,生成128位摘要,常用于文件校验
- SHA系列:512位分组处理,SHA-1生成**160位摘要,**比MD5更安全
- SM3:国产算法,512位分组处理,生成256位摘要
应用
-
文件完整性校验
-
账号密码存储
- 明文存储:直接保存原始密码,存在内部泄露风险
- 哈希存储:存储密码哈希值,但可能被彩虹表攻击破解
- 加盐哈希:密码+盐生成哈希,有效防御彩虹表攻击
-
用户身份认证
- 客户端发起认证请求
- 服务器返回随机数
- 客户端计算返回,服务器验证
消息认证码(MAC,Message Authentication Code)
- 两种实现:
- 基于哈希:(如HMAC-SHA256)
- 基于对称加密:如AES-CBC-MAC
HASH、MAC、HMAC区别
- 普通哈希:仅验证完整性,无身份认证(无密钥参与)
- MAC:完整性+身份认证(需共享密钥)
- HMAC:MAC的子集,采用哈希函数构造,输出长度与哈希算法一致
数字签名
数字签名可以保证完整性和不可否认性。
核心机制:签名者使用私钥对待签名数据的哈希值进行密码运算,验证时需使用对应的公钥(私钥签名,公钥验证)
特点:非否认性、真实性、可鉴别性、不可篡改
签名和验证过程

PKI与数字证书
数字证书
- 核心作用:用于证明公钥的真实性。包含所有者公钥和CA(认证机构)数字签名,确保公钥不被伪造。
- 获取过程:当Alice需要Bob的公钥时,通过获取Bob的数字证书来确认其公钥的真实性,避免黑客冒充风险。
- 签名机制:CA机构使用自己的私钥对证书进行数字签名,相当于公安的防伪标记,确保证书内容(特别是公钥)的真实性。
- 包含内容:
- 序列号:证书的唯一标识
- 签名算法:采用哈希后签名的双重机制
- 颁发者:CA机构的身份信息
- 有效期:明确的起止日期
- 公钥:证书所有者的公开密钥(核心内容)
分类方式:
- 按主体:个人证书、机构证书、设备证书
- 按用途:签名证书(证明签名公钥)、加密证书(证明加密公钥)
CA服务:提供证书全生命周期管理,包括申请、审核、签发、查询、发布及吊销等服务。
系统组成:包含目录服务器、OCSP服务器、注册服务器、签发服务器等组件。
PKI体系
- 核心组件:
- RA:注册机构,负责用户证书申请的资格审查(如营业执照验证),不直接签发证书。
- CA:证书颁发机构,负责证书的颁发、管理和撤销(核心功能)。
- CRL:证书吊销列表,存放过期或无效证书(有效期管理机制)。
- 考试重点:
- RA的功能定位(用户注册审核)
- CA的核心职责(证书签发管理)
- CRL的定义作用(无效证书存储)
- PKI体系与Kerberos体系(内含KDC、AS、TGS)是不同的体系
密钥管理
- 生命周期管理:包括密钥生成、存储、分发、使用、更新、撤销、备份、恢复、销毁和审计全过程
- 密钥管理政策:
- 核心密码:保护国家秘密信息,由国家密码管理部门统一管理
- 普通密码:保护国家秘密信息,属于国家秘密
- 商用密码:保护非国家秘密信息(如SM1-SM4、SM9算法),公民法人可用
- 密码测评
- 测评内容:对密码产品及系统进行安全性和合规性评估
- 实施机构:国家商用密码检测中心负责测评工作
- 保障目标:确保密码系统安全有效运行