软考学习(一)
尝试使用AI分析pdf和真题集,总结出一份学习指南。
第3章 密码学基本理论 · 核心总结
依据《信息安全工程师教程(第2版)》第3章(教材第 60–79 页)整理;第八、九节基于真题集 965 题中筛选出的 193 道密码学相关真题逐题研读补充。
一、密码学概况(3.1)
密码学 = 密码编码学 + 密码分析学,目标是保障信息的机密性、完整性、可用性、抗抵赖性。
发展脉络(选择题高频)
- 1949 年:香农发表《保密系统的通信理论》,提出混乱(Confusion)与扩散(Diffusion),交替使用换位和置换以抵御统计分析
- 20 世纪 70 年代:Diffie-Hellman、RSA 算法开辟公钥密码学新纪元;美国发布 DES 标准——两者标志现代密码学诞生
- 1984 年:Shamir 提出基于身份的公钥密码思想(公钥直接用身份信息如身份证号、邮箱,简化证书管理)
- 当前热点:量子计算威胁 RSA 安全性 → 后量子密码(PQC)成为研究热点
基本概念
明文 →(加密算法 + 加密密钥)→ 密文 →(解密算法 + 解密密钥)→ 明文。
五种密码分析攻击类型(按攻击者掌握信息递增,常考排序)
| 攻击类型 | 攻击者掌握的信息 |
|---|---|
| 唯密文攻击 | 仅密文 |
| 已知明文攻击 | 一些”明文-密文”对 |
| 选择明文攻击 | 可选定明文并获取对应密文 |
| 密文验证攻击 | 可获知选定密文”是否合法”的判断 |
| 选择密文攻击 | 可获取任意选定密文对应的明文(除挑战密文外) |
二、密码体制分类(3.2)
| 对比项 | 私钥(对称)体制 | 公钥(非对称)体制 |
|---|---|---|
| 密钥 | 加解密同一密钥 | 加密密钥公开,解密密钥保密 |
| 形象比喻 | 保险柜(密钥=号码) | 邮局邮筒(投信公开、开箱很难) |
| 缺陷 | ①密钥分配难 ②密钥量大(n 个用户需 n(n-1)/2 个密钥)③无法认证源 | 计算速度慢 |
| 优点 | 速度快,适合数据加密 | ①密钥分发方便 ②密钥保管量少 ③支持数字签名 |
| 典型算法 | DES、IDEA、AES | RSA、ElGamal、椭圆曲线(ECC)(教材明确”三种被证明安全有效”) |
混合密码体制(数字信封,流程题常考)
- Alice 用对称密钥加密消息
- Alice 用 Bob 的公钥加密该对称密钥,形成数字信封,连同密文一起发送
- Bob 用自己的私钥解开数字信封,得到对称密钥
- Bob 用该对称密钥解密消息
三、常见密码算法(3.3)——参数必背
国际算法
| 算法 | 类型 | 分组长度 | 密钥长度 | 要点 |
|---|---|---|---|---|
| DES | 对称分组 | 64 位 | 56 位 | IBM 研制;1997 年互联网挑战 96 天破解,1998 年 EFF 机器不到 3 天攻破 → 不安全;3DES/TDEA(加密-解密-加密)作过渡(NIST 1999 年采用),现被 AES 取代 |
| IDEA | 对称分组 | 64 位 | 128 位 | 来学嘉(X.J.Lai)与 Massey 提出;应用于 PGP;思想是”混合使用不同代数群中的运算” |
| AES | 对称分组 | ≥128 位 | 128/192/256 位 | NIST 1997 年征集,Rijndael 当选;公开、全球免费使用 |
| RSA | 非对称 | — | n≥1024 位(长期建议 2048 位) | 1977 年 Rivest、Shamir、Adleman 提出;基于大整数因子分解困难性;SSH、OpenPGP、S/MIME、SSL/TLS 都依赖它 |
RSA 算法步骤(计算题必会)
- 生成两个大素数 p 和 q
- 计算 n = pq
- 计算欧拉函数 φ(n) = (p-1)(q-1)
- 选取随机数 e,满足 1 < e < φ(n) 且 gcd(e, φ(n)) = 1
- 计算 d = e⁻¹ mod φ(n)
- 保密 d、p、q(私钥);公开 n 和 e(公钥)
加密:C = Mᵉ mod n 解密:M = Cᵈ mod n
教材例题:p=3,q=17,e=13 → n=51,φ(n)=32,d=5;加密明文 2:C = 2¹³ mod 51 = 32;解密:32⁵ mod 51 = 2。
国产密码算法(每年必考)
| 算法 | 类型 | 关键参数 |
|---|---|---|
| SM1 | 对称分组 | 分组/密钥均 128 位(算法不公开) |
| SM2 | 椭圆曲线公钥 | 256 位素数域椭圆曲线;用于数字签名、密钥交换、公钥加密;同等安全强度下密钥规模比其他公钥密码小得多 |
| SM3 | 杂凑(Hash) | 消息分组 512 位,输出杂凑值 256 位(GM/T 0004—2012) |
| SM4 | 对称分组 | 分组/密钥均 128 位;32 轮非线性迭代;加解密结构相同,解密轮密钥是加密轮密钥的逆序(GM/T 0002—2012) |
| SM9 | 标识密码 | 公钥=用户标识唯一确定,私钥由密钥生成中心 KGC 根据主密钥和用户标识计算,无需第三方证明公钥真实性(GM/T 0044—2016) |
四、Hash 函数与数字签名(3.4)
Hash 函数
四个条件:① 输入任意长度的消息 M;② 输出长度固定;③ 给定 h 和 M,计算 h(M) 容易;④ 找两个不同消息 M1≠M2 使 h(M1)=h(M2) 计算上不可行(抗碰撞)。
安全性:在现有计算资源下找到一个碰撞是不可能的。
用途:① 保护消息/文件完整性(如网页防篡改:定时重算 Hash 与备份值比对);② 口令的安全存储。
常见 Hash 算法
| 算法 | 分组 | 输出 | 要点 |
|---|---|---|---|
| MD5 | 512 位 | 128 位 | Rivest 设计(1992,RFC 1321);王小云团队提出快速寻找碰撞的方法 → 安全性已不足 |
| SHA 系列 | 512 位 | SHA-1 为 160 位 | NIST 开发;输出长度有 SHA-224/256/384/512;已发布 SHA-2、SHA-3 |
| SM3 | 512 位 | 256 位 | 国家密码管理局 2010 年公布;Merkle-Damgård 结构 |
数字签名
定义:签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果,只能用签名者的公钥验证。用于确认完整性、签名者身份真实性、签名行为抗抵赖性。
特点:可信、不可伪造、不可重用、不可抵赖、不可修改。
三个条件:① 非否认(签名者事后不能否认)② 真实性(接收者能验证、他人不能伪造)③ 可鉴别性(争执时可由第三方仲裁)。
典型方案:RSA 签名、Rabin 签名、ElGamal 签名、DSS(数字签名标准)。
流程(排序题常考):
- 签名方:文件 → Hash 得消息摘要 → 用发送者私钥加密摘要形成签名 → 文件 + 签名一同发送
- 验证方:对收到的文件重新 Hash → 用发送者公钥解密签名中摘要 → 比对两个摘要:相同则确认来源与完整性,不同则已被篡改
签名与加密的区别:加密的目的是防止信息被非授权访问;签名的目的是让接收者确信发送者是谁、信息是否被篡改。
五、密码管理与数字证书(3.5)
密码管理三方面
① 密钥管理(围绕生命周期,十大环节):生成、存储、分发、使用、更新、撤销、备份、恢复、销毁、审计
- 存储:不应以明文方式存储
- 分发:通过安全通道,方式有人工、自动化、半自动化(自动化主要靠密钥交换协议)
- 销毁:过程应不可逆
② 密码管理政策:
- 《商用密码管理条例》(1999 年国务院发布)
- 《中华人民共和国密码法》:密码分为核心密码、普通密码、商用密码,实行分类管理
- 核心密码、普通密码:保护国家秘密信息,属国家秘密,由密码管理部门严格统一管理
- 商用密码:保护不属于国家秘密的信息,公民、法人和其他组织均可依法使用
③ 密码测评:国家设立商用密码检测中心(产品检测、等级保护商用密码测评、国家电子认证根 CA 建设运维等)。
数字证书
定义:由证书认证机构(CA)签名的、包含公开密钥拥有者信息、公开密钥、签发者信息、有效期、扩展信息的数据结构,也称公钥证书。
基本信息域字段(按序):version(版本号)、serialNumber(序列号)、signature(签名算法)、issuer(颁发者)、validity(有效日期)、subject(主体)、subjectPublicKeyInfo(主体公钥信息)、issuerUniqueID、subjectUniqueID、extensions(扩展项)。
分类:
- 按类别:个人证书、机构证书、设备证书
- 按用途:签名证书(证明签名公钥)、加密证书(证明加密公钥)
CA 系统:基于 PKI 技术建立,提供证书申请、审核、签发、查询、发布、吊销等全生命周期管理;系统组成主要有目录服务器、OCSP 服务器、注册服务器、签发服务器。
六、安全协议(3.6)
Diffie-Hellman 密钥交换协议(1976)
- 基于离散对数问题的困难性(已知 C、P 由 d 求 M 容易,由 M 反求 d 需指数级计算)
- 步骤:
- Alice 和 Bob 公开商定大素数 p 和整数 a(a 是 p 的原根)
- Alice 秘密选随机数 aA,计算 Y_A = a^aA mod p 发给 Bob
- Bob 秘密选随机数 aB,计算 Y_B = a^aB mod p 发给 Alice
- 双方分别计算得到相同的共享密钥 K
- 弱点:不提供身份认证,不能抵抗中间人攻击
SSH(安全外壳,端口 22)
基于公钥的安全应用协议,由三个子协议组成:
- SSH 传输层协议:算法协商、密钥交换、服务器认证,建立加密安全连接(提供完整性、保密性、压缩)
- SSH 用户认证协议:口令认证、公钥认证、主机认证等多种机制
- SSH 连接协议:分解为多个并发逻辑通道,支持会话隧道和 TCP 转发,提供流控
- SSH1 因漏洞停用,现使用 SSH2
- 验证服务器公钥真实性的三种方法:① 随身携带公钥拷贝读入本机;② 从公开信道下载公钥及指纹,电话验证指纹后用 Hash 软件比对;③ 通过 PKI 验证
- 支持 Telnet、rsh、rlogin、scp 等安全服务(端口转发技术)
- 仍可能受到中间人攻击和拒绝服务攻击
七、密码学网络安全应用(3.7)
六大应用场景类型
- 网络用户安全:数字证书标识用户身份、身份鉴别;加密保护个人敏感信息
- 物理和环境安全:门禁访问者身份鉴别;门禁进出记录、视频监控记录的存储完整性和机密性
- 网络和通信安全:通信实体双向身份鉴别;数字签名保完整性;敏感字段/报文加密;设备接入认证
- 设备和计算安全:登录用户身份鉴别;Hash 及密码算法建立可信计算环境;数字签名验证可执行程序来源;加密保护口令文件;SSH/SSL 建立远程管理安全通道
- 应用和数据安全:安全协议及数字证书鉴别登录用户;加密访问控制信息;SSL/SSH 传输重要数据;加密存储;Hash/签名保护应用系统完整性
- 业务应用创新:数字证书+签名构建网络发票;Hash 函数构建区块链;密码技术建立电子证照
典型应用参考(案例题素材)
- 路由器:① 管理员口令用 MD5 Hash 后保存;② 远程管理用 SSH 替代 Telnet(防口令泄露);③ 路由更新包用 MD5-HMAC 做完整性认证,防路由欺诈(Hash 比对不一致则拒绝该更新包)
- Web 网站:数字证书 + SSL 共同保护,防止浏览器与服务器间通信信息泄露、篡改、伪造
- 电子邮件:PGP 加密软件——密钥管理用 RSA、数据加密用 IDEA、完整性检测与数字签名用 MD5(+随机数生成器),兼取对称与非对称算法优点
八、真题补充考点(教材未细讲,但真题反复考)
1. DES 内部细节(选择题挖得很深)
- DES 共 16 轮迭代,每一轮子密钥长度为 48 位(56 位密钥经置换选择产生),加密分组 64 位——“子密钥长度和加密分组长度”一题真题考过 3 次
- S 盒是 DES 中唯一的非线性部件,是一种压缩替换:8 个 S 盒,每个将 6 位输入压缩为 4 位输出(48 位 → 32 位)
- S 盒查表方法(真题出过计算题):输入 b1b2b3b4b5b6,用首尾两位 b1b6 作行号、中间四位 b2~b5 作列号,查 S 盒表得到 4 位输出
- 3DES/TDEA:加密流程 E(K1) → D(K2) → E(K3);采用双密钥时 K1=K3,有效密钥长度 = 2×56 = 112 位(真题考过)
2. 分组密码工作模式(真题至少 4 题,教材只列了名字)
| 模式 | 名称 | 要点 |
|---|---|---|
| ECB | 电码本模式 | 相同明文分组 → 相同密文分组,易暴露明文数据模式;数据长度非分组整数倍需做短块处理;是分组密码的基本工作模式 |
| CBC | 密码分组链接模式 | 明文分组先与前一密文分组异或再加密;存在误码传播 |
| CFB | 密码反馈模式 | 将分组密码当作流密码使用,反馈的是密文 |
| OFB | 输出反馈模式 | 反馈的是加密器的输出,密钥流可预先运算 |
真题考法:① 给结构框图识别是哪种模式;② 判断 ECB 的特点(注意”ECB 间接利用分组密码对明文各分组加密”是错误说法,应为”直接”)。
3. AES/Rijndael 结构
- AES 由四个模块组成:字节代换(SubBytes)、行移位、列混淆、轮密钥加,其中字节代换是唯一的非线性模块(真题原题)
- 支持的密钥长度为 128/192/256 位,没有 512 位(真题考”不包括”)
4. 攻击类型的重要结论(真题考过 2 次的原话)
- **”近代密码学认为,一个密码仅当它能经得起已知明文攻击时才是可取的”**(答案:已知明文攻击,注意不是选择明文)
- 对攻击者最不利:唯密文攻击;最有利:选择密文攻击(该方式下特别用于攻击数字签名)
5. 安全性分类概念
- 无条件安全:无论多少密文都得不到足够信息(一次一密)
- 计算上安全:破译代价超过信息价值或所需时间超过信息有效期
- 可证明安全:破译依赖某个经过深入研究的数学难题的解决(真题原题答案)
6. 密码体制的其他分类(真题陷阱)
- 按对明文的处理方法分:分组密码 / 序列(流)密码——不是”对称/非对称”(对称与否按密钥特点分,真题设过此陷阱)
- 传统密码两大技术:置换(换位)与代替(替代)——“bananaorange → boarnaanngae”属于置换密码;”字母加 5(a→f)”属于代替密码中的对称加密
- 流密码概念(案例判断题):明文划分成字符或基本编码单元,分别与密钥流作用加密,解密时以同步产生的同样密钥流实现
7. ECC 与 RSA 的换算与区别
- 160 位 ECC 的安全性 ≈ 1024 位 RSA(真题填过数值)
- ECC 签名与 RSA 签名的区别(真题答案):ECC 签名后的内容中包含原文,RSA 签名后的内容中没有原文(RSA 直接对摘要运算,需随附原文)
8. ZUC 祖冲之算法与 WAPI
- ZUC(祖冲之算法):我国序列密码(流密码)算法,常作为国密选择题的干扰项出现(教材表 3-1 未列出)
- 无线局域网 WAPI 系列密码算法中,密钥协商算法使用 ECDH(真题 2016 下半年原题)
9. 国密算法国际化(教材未提,真题各考 1 次)
- SM3 收入国际标准 ISO/IEC 10118-3:2018《信息安全技术 杂凑函数 第 3 部分:专用杂凑函数》(第 4 版)
- SM2 数字签名算法以正文形式收入 ISO/IEC 14888-3:2018《信息安全技术 带附录的数字签名 第 3 部分:基于离散对数的机制》
九、真题高频考法与案例分析题型
综合知识选择题高频问法
| 考点 | 真题问法与答案要点 |
|---|---|
| 五类攻击 | 排序/辨析题:最不利=唯密文,最有利=选择密文;选择密文攻击特别用于攻击数字签名 |
| 密码系统符号 | E/D/M/C 描述中必然成立的是 D(E(M)) = M(出现过 5 次) |
| RSA 计算 | 两种题型:① 给 p、q、e 求 d 并加解密(教材例题原样出现过);② 给 (e,n) 直接求 d,如 (13,35):φ(35)=(5-1)(7-1)=24,13×13=169≡1 (mod 24),d=13 |
| 数字证书 | “验证网站真伪/证书有效性”→ 验证 CA 的签名;”证书防篡改”→ CA 用私钥对证书签名 |
| SSH | “无法抵御____攻击”→ 拒绝服务(教材说中间人+DoS,真题选项无中间人时选 DoS);三子协议名称选择 |
| PGP | 数据加密采用 IDEA(真题专门用”DES”设错误选项);密钥管理 RSA、完整性检测 MD5 |
| Diffie-Hellman | 功能是密钥交换(不是加密);安全性基于求解离散对数的困难性 |
| Hash 参数 | SHA-1 输出 160 位、分组 512 位;MD5 输出 128 位;SM3 输出 256 位 |
| 密码法 | 2020 年 1 月 1 日施行;分类管理:核心密码、普通密码、商用密码(考过 3 次) |
| 数字签名细节 | ① 先 Hash 的原因:缩小签名密文长度、加快签名与验证速度;② 验证签名用签名者的公钥;③ 签名三条件不含”签名必须是文件的物理部分” |
案例分析题型(画风与选择题完全不同)
真题集中约 19 道密码学相关案例题,主要三类:
- 认证协议消息序列分析(占比最大):给出 Needham-Schroeder 风格的消息流程(如
A→B: E(Kab: Na)、1. A→S: A,B,Na…),要求分析挑战-应答过程、会话密钥如何分发、重放攻击如何防范、各密钥 Kab/Kas/Kbs 的用途。复习时要能手推协议每一步谁知道了什么。 - 流密码/密码体制概念判断:判断题形式考流密码、本原多项式等概念正误。
- 古典密码手工破译:如”密文 FMXVEDKAP 由仿射密码加密,已知 R 对应 e、K 对应 t,求明文”——需列方程组解出仿射参数 (a, b) 再解密。只背参数不练手算,案例分析会吃亏。
备考提示
真题研读后的优先级排序(按出题频次与分值):
- 五类密码分析攻击——概念+排序+结论,出现 10 次以上
- 国密算法 SM2/SM3/SM4/SM9——类型与参数每年必考,并延伸到 ZUC、ECDH、ISO 国际标准
- DES 深层细节——子密钥 48 位、S 盒计算、3DES 112 位(超出教材,务必补)
- RSA 计算——两种题型都要动手练
- 数字证书/CA——“验证 CA 签名”是标准答案句式
- 分组密码工作模式——ECB/CBC/CFB/OFB 框图识别
- 数字签名流程与 Hash——选择题+案例题双料考点
- SSH、PGP、DH——固定考法,答案句式稳定
RSA 小计算题建议动手练教材例题(p=3、q=17、e=13:求出 n=51、φ(n)=32、d=5,加密明文 2 得密文 32,解密还原为 2),再做变式 (e,n)=(13,35) 求私钥。
易混速记
| 对比 | 内容 |
|---|---|
| 对称 vs 非对称 | 同一密钥 vs 公钥/私钥成对;快 vs 慢;不支持 vs 支持数字签名 |
| 加密 vs 签名 | 防未授权访问 vs 确认发送者身份与防篡改 |
| MD5 / SHA-1 / SM3 输出 | 128 位 / 160 位 / 256 位 |
| SM2 / SM3 / SM4 / SM9 | 椭圆曲线公钥 / 杂凑 / 对称分组 / 标识密码 |
| DES / IDEA / AES 密钥 | 56 位 / 128 位 / 128、192、256 位 |

