软件设计师中的加密算法题,表面上在考 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-256SHA-2家族,输出256位摘要。常见的现代安全散列算法。

五、数字签名到底签了什么

实际签名通常不会直接对整份大文件做昂贵的非对称运算,而是先对文件计算摘要,再对摘要进行签名。

  1. 发送方对消息计算摘要。
  2. 发送方用自己的私钥对摘要进行签名。
  3. 接收方用发送方公钥验证签名,并重新计算消息摘要。
  4. 两个摘要一致,说明来源可信且内容没有被修改。

所以,数字签名不是为了让消息保密。任何拿到发送方公钥的人都可以验证签名,签名的核心是“证明是谁发的”和“内容有没有被改”。

六、数字证书和PKI

问题来了:接收方拿到的“发送方公钥”是真的吗?数字证书就是由可信认证机构把“身份”和“公钥”绑定在一起的凭证。

概念大白话考试关键词
数字证书证明某个身份对应某个公钥。身份、公钥、CA签名、有效期
CA大家信任的证书签发机构。认证中心、签发、吊销、信任链
PKI围绕证书和公钥建立的完整基础设施。证书、CA、注册、吊销、验证
CRL/OCSP检查证书是否已经失效或被吊销。证书状态、吊销检查

七、常见算法一张表

算法/技术类别主要用途一句话记忆
DES / 3DES / AES对称加密大量数据保密传输AES是现代主流,DES已过时。
RSA非对称加密密钥交换、数字签名公钥私钥,速度比对称算法慢。
ECC非对称加密密钥交换、签名同等安全强度下密钥更短。
MD5 / SHA散列函数摘要、完整性、签名辅助不是加密,不能靠摘要还原原文。
HMAC带密钥散列消息认证和完整性散列 + 共享密钥,用于认证消息。
TLS安全协议安全通信、协商密钥、认证不是单个加密算法,而是协议组合。

八、软件设计师高频辨析

容易混淆正确区分
加密 vs 散列加密强调保密,理论上可解密;散列强调摘要和完整性,通常不可逆。
私钥加密 vs 数字签名题目里常用“私钥签名、公钥验证”描述签名;不要把签名简单理解成保密加密。
公钥加密 vs 私钥解密用于保密通信,接收方私钥必须保密。
私钥签名 vs 公钥验证用于身份认证、完整性和不可否认性,消息本身不因此保密。
对称 vs 非对称对称快但密钥分发难;非对称慢但密钥分发方便。
数字证书 vs 数字签名签名是动作,证书是把身份和公钥绑定起来的凭证。

九、考场做题顺序

  1. 01
    先问安全目标

    题目是在防窃听、查篡改、验身份,还是证明责任?

  2. 02
    再看密钥关系

    同一把密钥?对称。公钥/私钥成对?非对称或签名。

  3. 03
    再看输出形式

    固定长度摘要且不可逆?散列。可恢复明文?加密。

  4. 04
    最后看协议角色

    出现CA、证书、吊销、信任链,通常是在考PKI。

对称加密保密,非对称加密解决密钥和身份,散列验证完整性,数字签名证明来源和责任,数字证书绑定身份与公钥。