软件设计师中的加密算法题,表面上在考 DES、AES、RSA、SHA、数字签名和数字证书,实际上经常考的是“这个工具到底解决什么问题”。先把安全目标分清,再看密钥和算法,题目会容易很多。
这篇考点速查主要记录
- 保密性、完整性、身份认证、不可否认性分别是什么
- 对称加密和非对称加密的密钥、速度与应用场景
- 散列函数、数字签名、数字证书和PKI的关系
- DES、3DES、AES、RSA、ECC、MD5、SHA的高频考法
一、先分清四个安全目标
| 安全目标 | 大白话 | 常见技术 | 题目关键词 |
|---|---|---|---|
| 保密性 | 不该看的人看不懂。 | 对称加密、非对称加密 | 防窃听、机密、密文、解密 |
| 完整性 | 内容没有被偷偷改过。 | 散列、MAC、数字签名 | 篡改检测、摘要、校验 |
| 身份认证 | 确认对方确实是他声称的那个人。 | 数字签名、数字证书、认证协议 | 验证身份、证书、可信第三方 |
| 不可否认性 | 做过的事情不能轻易赖掉。 | 数字签名、时间戳、审计 | 签名者不能否认、责任追踪 |
一个技术可以同时支持多个目标。例如数字签名既能让接收方验证身份,也能发现内容被修改,还能在一定条件下证明签名者不能否认自己的签名。
二、对称加密:同一把钥匙进出
对称加密使用同一个密钥进行加密和解密。发送方和接收方必须提前共享密钥,所以它的最大问题不是“算得慢”,而是“密钥怎么安全交给对方”。
明文 + 共享密钥 → 加密 → 密文
密文 + 同一把共享密钥 → 解密 → 明文
| 算法 | 考点 | 当前认识 |
|---|---|---|
| DES | 分组密码,密钥长度较短。 | 安全性已经不足,历史上常考。 |
| 3DES | 对DES重复执行多次。 | 比DES强,但速度慢,逐渐被淘汰。 |
| AES | 现代主流对称分组密码。 | 速度快、安全性高,应用广泛。 |
| RC4 | 流密码。 | 历史上常见,现已不推荐用于新系统。 |
优点:速度快,适合大量数据加密。缺点:密钥分发困难,参与者多时密钥管理复杂。
三、非对称加密:公钥公开,私钥保密
非对称加密使用一对密钥:公钥可以公开,私钥必须保密。公钥和私钥成对工作,但“用哪把钥匙加密”取决于你想解决什么问题。
| 目的 | 发送方操作 | 接收方操作 | 解决的问题 |
|---|---|---|---|
| 保密通信 | 用接收方公钥加密 | 用接收方私钥解密 | 只有接收方能看懂 |
| 数字签名 | 用发送方私钥签名 | 用发送方公钥验证 | 确认身份、发现篡改、支持不可否认 |
保密:公钥加密,私钥解密。签名:私钥签名,公钥验证。
非对称加密的优点是密钥分发更方便,缺点是计算速度通常比对称加密慢。因此实际系统常用“混合加密”:先用非对称算法安全交换会话密钥,再用对称算法加密大量业务数据。
四、散列函数:把内容压成指纹
散列函数把任意长度的输入映射成固定长度的摘要。摘要不是加密结果,通常不能靠“解密”还原原文。
文件内容 → SHA-256 → 摘要
文件被修改 → SHA-256 → 不同摘要
| 算法 | 考点 | 注意事项 |
|---|---|---|
| MD5 | 输出128位摘要。 | 已发现碰撞问题,不适合安全场景。 |
| SHA-1 | 输出160位摘要。 | 安全性不足,不建议用于新系统。 |
| SHA-256 | SHA-2家族,输出256位摘要。 | 常见的现代安全散列算法。 |
五、数字签名到底签了什么
实际签名通常不会直接对整份大文件做昂贵的非对称运算,而是先对文件计算摘要,再对摘要进行签名。
- 发送方对消息计算摘要。
- 发送方用自己的私钥对摘要进行签名。
- 接收方用发送方公钥验证签名,并重新计算消息摘要。
- 两个摘要一致,说明来源可信且内容没有被修改。
所以,数字签名不是为了让消息保密。任何拿到发送方公钥的人都可以验证签名,签名的核心是“证明是谁发的”和“内容有没有被改”。
六、数字证书和PKI
问题来了:接收方拿到的“发送方公钥”是真的吗?数字证书就是由可信认证机构把“身份”和“公钥”绑定在一起的凭证。
| 概念 | 大白话 | 考试关键词 |
|---|---|---|
| 数字证书 | 证明某个身份对应某个公钥。 | 身份、公钥、CA签名、有效期 |
| CA | 大家信任的证书签发机构。 | 认证中心、签发、吊销、信任链 |
| PKI | 围绕证书和公钥建立的完整基础设施。 | 证书、CA、注册、吊销、验证 |
| CRL/OCSP | 检查证书是否已经失效或被吊销。 | 证书状态、吊销检查 |
七、常见算法一张表
| 算法/技术 | 类别 | 主要用途 | 一句话记忆 |
|---|---|---|---|
| DES / 3DES / AES | 对称加密 | 大量数据保密传输 | AES是现代主流,DES已过时。 |
| RSA | 非对称加密 | 密钥交换、数字签名 | 公钥私钥,速度比对称算法慢。 |
| ECC | 非对称加密 | 密钥交换、签名 | 同等安全强度下密钥更短。 |
| MD5 / SHA | 散列函数 | 摘要、完整性、签名辅助 | 不是加密,不能靠摘要还原原文。 |
| HMAC | 带密钥散列 | 消息认证和完整性 | 散列 + 共享密钥,用于认证消息。 |
| TLS | 安全协议 | 安全通信、协商密钥、认证 | 不是单个加密算法,而是协议组合。 |
八、软件设计师高频辨析
| 容易混淆 | 正确区分 |
|---|---|
| 加密 vs 散列 | 加密强调保密,理论上可解密;散列强调摘要和完整性,通常不可逆。 |
| 私钥加密 vs 数字签名 | 题目里常用“私钥签名、公钥验证”描述签名;不要把签名简单理解成保密加密。 |
| 公钥加密 vs 私钥解密 | 用于保密通信,接收方私钥必须保密。 |
| 私钥签名 vs 公钥验证 | 用于身份认证、完整性和不可否认性,消息本身不因此保密。 |
| 对称 vs 非对称 | 对称快但密钥分发难;非对称慢但密钥分发方便。 |
| 数字证书 vs 数字签名 | 签名是动作,证书是把身份和公钥绑定起来的凭证。 |
九、考场做题顺序
- 01先问安全目标
题目是在防窃听、查篡改、验身份,还是证明责任?
- 02再看密钥关系
同一把密钥?对称。公钥/私钥成对?非对称或签名。
- 03再看输出形式
固定长度摘要且不可逆?散列。可恢复明文?加密。
- 04最后看协议角色
出现CA、证书、吊销、信任链,通常是在考PKI。
对称加密保密,非对称加密解决密钥和身份,散列验证完整性,数字签名证明来源和责任,数字证书绑定身份与公钥。