一、引言
密码学是软考信息安全工程师考试的核心模块,占比约 15%-20%,其中对称加密、非对称加密、哈希算法三类核心算法是选择题、计算题的高频考点,同时也是安全系统设计的技术基础。密码算法的发展经历了古典密码、现代对称密码、公钥密码三个阶段:1977 年 DES 标准的发布标志着现代对称加密的商业化应用,1978 年 RSA 算法的提出奠定了公钥密码体系的基石,1990 年代 MD5、SHA 系列哈希算法的标准化完善了密码学的应用体系。本文将按照考试大纲要求,详细拆解三类算法的原理、参数、计算方法及典型应用,覆盖所有核心考点。
二、对称加密算法:速度与安全的权衡
对称加密算法的核心特征是加密与解密使用相同密钥,通信双方需提前安全共享密钥,其优势是加密速度快、硬件实现效率高,适合大量数据加密场景,缺点是密钥分发难度大、多用户场景下密钥管理复杂度高。
2.1 核心对称加密算法参数对比
对称加密分为分组密码和流密码两类:分组密码将明文按固定长度分组后逐块加密,流密码逐字节 / 位进行加密运算。典型算法的关键参数如下:
(1)DES:1977 年美国国家标准局发布的分组密码标准,总密钥长度 64 位,其中 8 位为奇偶校验位,有效密钥长度 56 位,分组长度 64 位,核心运算包括 16 轮 Feistel 结构的移位、置换和 S 盒替换,目前已被暴力破解,仅用于 legacy 系统兼容,考试中常考 S 盒计算规则。
(2)3DES:为提升 DES 安全性提出的改进算法,采用 "加密 - 解密 - 加密" 的三重 DES 运算,支持两种密钥模式:双密钥模式使用 K1、K2 两个 56 位密钥,有效密钥长度 112 位;三密钥模式使用三个独立 56 位密钥,有效密钥长度 168 位,分组长度仍为 64 位,兼容性强但运算效率较低。
(3)AES:2001 年发布的新一代分组密码标准,取代 DES 成为全球主流对称加密算法,支持 128、192、256 位三种密钥长度,分组长度固定 128 位,采用 SPN 结构,支持硬件加速,运算效率是 3DES 的 5-10 倍,目前广泛用于文件加密、VPN、TLS 等场景,符合 GB/T 17964-2021 国家标准要求。
(4)IDEA:128 位密钥、64 位分组长度的分组密码,主要应用于 PGP 电子邮件加密系统。
(5)RC4:典型流加密算法,密钥长度可变,加密速度极快,曾用于 WEP、早期 WPA 无线加密,因存在密钥流 biases 漏洞已被弃用。
2.2 高频考点真题解析
(1)DES S 盒计算考点:DES 每个 S 盒输入为 6 位,计算规则为取第 1、6 位组成二进制数作为行号,第 2-5 位组成二进制数作为列号,查表得到 4 位输出。例如输入为 110011 时,行号为 11(十进制 3),列号为 1001(十进制 9),查对应 S 盒第 3 行第 9 列得到 14,输出为 1110。
(2)3DES 密钥长度考点:双密钥 3DES 采用 K1 加密、K2 解密、K1 加密的流程,有效密钥长度为 2*56=112 位;三密钥 3DES 有效密钥长度为 168 位。
主流对称加密算法参数对比表
三、非对称加密核心:RSA 算法原理与计算
非对称加密算法使用公钥、私钥两个密钥,公钥公开分发,私钥由持有者保密,公钥加密的内容仅能由对应私钥解密,反之亦然,解决了对称加密的密钥分发难题,其安全性基于数学难题。RSA 是目前应用最广泛的非对称加密算法,安全性基于大整数质因数分解的困难性,是软考的必考计算考点。
3.1 RSA 密钥生成六步流程
RSA 密钥生成需严格遵循以下步骤,所有参数计算均为考试重点:
(1)选大素数:随机选择两个足够大的保密素数 p 和 q,实际应用中长度通常为 1024 位及以上,考试中一般采用小素数简化计算。
(2)计算模数 n:n = p * q,n 长度即为 RSA 密钥长度,n 作为公钥组成部分公开。
(3)计算欧拉函数 φ(n):φ(n) = (p-1)(q-1),欧拉函数表示小于 n 且与 n 互质的整数个数,该参数需严格保密。
(4)选择公钥指数 e:选择整数 e 满足 1 < e < φ(n),且 e 与 φ(n) 互质(即 gcd (e, φ(n))=1),常用公钥指数为 65537,e 作为公钥组成部分公开。
(5)计算私钥指数 d:求解 d 使得 (ed) mod φ(n) = 1,即 d 是 e 模 φ(n) 的乘法逆元,d 为私钥核心参数需严格保密。
(6)输出密钥对:公钥为 (n, e),私钥为 (n, d)(或包含 p、q、φ(n) 用于快速运算)。
3.2 RSA 加解密运算规则
RSA 加密运算:密文 C = M^e mod n,其中 M 为明文,要求 M < n。
RSA 解密运算:明文 M = C^d mod n。
3.3 计算实例与真题解析
(1)基础计算实例:已知 p=3,q=17,e=13,明文 M=2。计算过程为:n=317=51,φ(n)=(3-1) (17-1)=32,求解 13d ≡ 1 mod 32 得 d=5,加密得 C=2^13 mod 51=32,解密得 32^5 mod 51=2,验证运算正确。
(2)真题拓展:已知公钥 (e,n)=(7,55),求解私钥 d。首先分解 n=5 11,φ(n)=(5-1)(11-1)=40,求解 7d ≡1 mod 40,可得 d=23。
RSA 密钥生成与加解密流程示意图
四、哈希算法:数据完整性验证的核心
哈希函数(散列函数)可将任意长度的输入数据映射为固定长度的输出(哈希值 / 消息摘要),是数据完整性校验、身份认证、数字签名的核心技术,软考中重点考察其特性、应用场景及典型算法参数。
4.1 哈希函数核心特性
(1)单向性:由输入计算哈希值容易,由哈希值反推原始输入在计算上不可行。
(2)抗碰撞性:找到两个不同输入产生相同哈希值在计算上不可行,分为弱抗碰撞(给定输入,找到另一输入产生相同哈希值不可行)和强抗碰撞(找到任意两个不同输入产生相同哈希值不可行)。
(3)雪崩效应:输入的微小变化会导致输出哈希值发生不可预测的显著变化,即使输入仅改变 1 位,输出约有一半比特位发生变化。
4.2 典型哈希算法参数对比
(1)MD5:输出长度 128 位,1992 年发布,2004 年被证明存在碰撞漏洞,目前仅用于非安全场景的文件完整性校验。
(2)SHA-1:输出长度 160 位,2017 年被证明存在碰撞漏洞,安全性已不足,逐步被淘汰。
(3)SHA-2 系列:包含 SHA-224、SHA-256、SHA-384、SHA-512 等,输出长度对应为 224、256、384、512 位,是当前主流应用的安全哈希算法,符合 NIST 标准要求。
(4)SHA-3:2015 年发布的新一代哈希算法,采用海绵结构,抗量子计算攻击能力优于 SHA-2,是未来的主流发展方向。
(5)SM3:我国商用密码哈希算法标准,输出长度 256 位,安全性等同于 SHA-256,用于等保合规要求的国产密码应用场景。
4.3 核心应用场景
(1)数据完整性校验:通过对比文件传输前后的哈希值,判断文件是否被篡改,例如软件安装包的哈希值校验。
(2)口令存储:业务系统不存储用户明文口令,仅存储口令的哈希值,为防范彩虹表攻击,需在口令中加入随机 "盐" 值后再进行哈希运算,存储格式通常为 "盐值 + 哈希结果"。
(3)消息认证码(MAC):采用 "哈希 (消息 + 密钥)" 的方式生成 MAC 值,接收方使用相同密钥重新计算 MAC 并对比,可同时验证消息完整性和来源合法性,HMAC 是基于哈希函数实现的标准化 MAC 构造方法,符合 RFC 2104 标准。
(4)数字签名:由于非对称加密运算效率低,实际数字签名流程中仅对消息的哈希值进行签名,大幅提升运算效率。
哈希算法特性与应用场景示意图
常见哈希算法安全性与性能对比表
五、三类算法的应用架构设计
在实际安全系统设计中,三类算法通常组合使用,形成互补的安全体系,符合密码学应用的最佳实践。
5.1 混合加密架构
对称加密速度快但密钥分发困难,非对称加密密钥分发方便但运算速度慢(仅为对称加密的 1/1000-1/100),因此实际应用中采用混合加密模式:
(1)发送方生成随机对称密钥,使用对称密钥加密大量明文数据。
(2)使用接收方的公钥加密该对称密钥,形成数字信封。
(3)将加密后的密文和数字信封一起发送给接收方。
(4)接收方使用私钥解密数字信封得到对称密钥,再使用对称密钥解密密文。
该架构兼顾了加密效率和密钥分发安全性,广泛应用于 TLS、VPN、加密邮件等场景。
5.2 数字签名与验签架构
数字签名实现身份认证、防抵赖、完整性校验功能,典型流程为:
(1)发送方计算消息的哈希值,使用自己的私钥对哈希值加密得到数字签名。
(2)将消息和数字签名一起发送给接收方。
(3)接收方计算收到消息的哈希值,使用发送方的公钥解密数字签名得到原始哈希值,对比两个哈希值是否一致完成验签。
5.3 口令存储安全架构
用户口令存储需遵循三级安全机制:
(1)强制使用复杂度符合要求的口令,避免弱口令。
(2)每个用户生成独立的 16 位以上随机盐值,盐值与口令拼接后进行哈希运算。
(3)采用慢哈希算法(如 bcrypt、PBKDF2、Argon2)增加暴力破解的计算成本,禁止直接使用 MD5、SHA-1 等快哈希算法存储口令。
混合加密系统架构图
数字签名完整流程图
六、算法发展趋势与考试方向预测
6.1 技术发展前沿
(1)抗量子密码:现有 RSA、ECC 等公钥密码算法可被量子计算机的 Shor 算法破解,NIST 已启动抗量子密码标准制定,CRYSTALS-Kyber 等格密码算法已成为候选标准,未来将逐步替代现有公钥算法。
(2)轻量级密码:面向物联网设备的低功耗、小体积密码算法成为研究热点,适用于资源受限的传感器、RFID 等场景。
(3)国产密码应用:等保 2.0 明确要求重要信息系统优先采用国产密码算法,SM1(对称)、SM2(非对称)、SM3(哈希)、SM4(对称)等国密算法的应用将进一步普及。
6.2 考试命题趋势
(1)计算题仍以 RSA 密钥生成、加解密运算,DES S 盒计算,3DES 密钥长度为核心考点,占比约 3-5 分。
(2)选择题重点考察三类算法的参数对比、应用场景、安全特性,哈希加盐、HMAC、混合加密架构是高频考点。
(3)新增国密算法相关考点,需掌握 SM2、SM3、SM4 的分类和基本应用场景。
密码算法演进路线图
七、总结与备考建议
7.1 核心知识点总结
(1)对称加密核心考点:DES、3DES、AES 的密钥长度、分组长度、特点对比,DES S 盒计算规则,对称加密的优缺点和适用场景。
(2)RSA 核心考点:密钥生成六步流程,n、φ(n)、e、d 的计算方法,加解密运算规则,安全性基础。
(3)哈希算法核心考点:三大特性,MD5、SHA 系列、SM3 的输出长度和安全性,加盐哈希、MAC、HMAC 的应用场景,数字签名的流程。
7.2 考试重点提示
(1)高频易错点:DES 有效密钥长度为 56 位而非 64 位,双密钥 3DES 有效长度为 112 位,RSA 加密明文需小于 n,φ(n) 是私钥参数不可公开,哈希算法不提供机密性保护。
(2)计算题备考:熟练掌握扩展欧几里得算法求解乘法逆元,RSA 运算中可通过模运算性质简化指数计算,避免直接计算大指数。
7.3 实践与学习建议
(1)通过 openssl 工具实际测试各类算法的运算过程,例如使用 openssl enc 命令实现 AES 加密,openssl rsa 命令生成 RSA 密钥对,openssl dgst 命令计算哈希值,加深对算法的理解。
(2)重点练习近 5 年软考真题中的密码学相关题目,总结命题规律,重点掌握计算类题目的解题步骤,确保计算题不失分。