简介:面向准备商用密码应用与安全性评估考试、需要巩固密码基础的考生,这份刷题资料以单选、多选及参考答案形式覆盖密码模式、KDC密钥分发、PGP、PKI、SSL/TLS、IPSec、SM4、RSA、密钥管理、《密码法》和侧信道攻击等高频考点,适合考前自测、错题复盘与知识点查漏补缺。压缩包共1个docx文件,约26KB,题目按题干、选项、结果和正确答案组织,便于打印或导入设备反复练习。目前已有3239人学习下载,可作为密评备考和网络安全基础训练的轻量题库,帮助读者快速定位薄弱环节并形成系统复习索引。
1. 密评到底在考什么:从一道CTR模式题说起
准备密评的人,大多先被“商用密码应用与安全性评估”这串长名字劝退,再被密码基础题里的 CTR、KDC、PKI 绕晕。密评不是背几个缩写,而是判断一个系统里的密码有没有用对地方。这份题库把密码基础题和商用密码应用与安全性评估题放在一起,适合边学边刷、用错题反推概念。比如一道“哪种分组模式的消息长度可以不是分组长度整数倍”的题,看着像记忆题,背后其实是流密码和分组密码的分界。把这类题刷明白,网络安全里的加密、签名、证书、协议才不容易混成一锅粥。
2. 为什么“用了密码”还要做评估:密码基础不是背概念
2.1 机密性、完整性、真实性:密码解决的三个基本问题
很多人对密码的第一印象是“把明文变成密文”,这只说对了三分之一。密码技术要解决的核心问题通常拆成三块:机密性、完整性、真实性。机密性是别人看不懂,完整性是别人改不了,真实性是确认对方到底是谁。三个目标对应的手段不一样,混着背就容易在选择题里翻车。
比如对称加密主要解决机密性,AES、SM4 这类分组密码把数据切成块再加密;杂凑算法如 SM3 解决完整性,给数据算一个“指纹”;数字签名则同时碰完整性和真实性,用私钥签、公钥验。你在题库里看到“对称加密能不能实现数字签名”这类题,考的不是记忆,而是有没有把“加密”和“签名”当成两件事。
再往深一层,密码基础还关心密钥怎么来、怎么存、怎么换。密钥产生首先要保证随机性,弱口令、默认密钥、顺序数字、生日编号都属于典型踩坑点。一个系统就算用了很强的算法,密钥是出厂默认值,整个安全链条也会松掉。密评之所以要查密码模块、密钥管理、协议流程,就是因为“算法安全”不等于“系统安全”。
2.2 密评的评估对象:密码模块、密码边界和密码应用
密评的全称是商用密码应用与安全性评估,评估对象不是单独一个算法,而是一个系统里的密码应用。换句话说,它要看你有没有用密码、用在哪、用得对不对、密钥管没管住。题库里出现“密码边界是密码模块中特有的重要概念”这类判断题,就是在提醒你:密码模块有自己的边界,边界内外的信任关系不一样。
打个比方,密码模块像一个小保险柜,算法、密钥、敏感参数都在柜子里;密码边界就是柜门和柜壁。评估时要看边界划分是否清楚,边界内有没有保护,边界外有没有把敏感数据漏出去。密码模块安全等级里,三级会在二级基础上增强物理安全、身份鉴别、环境保护和非入侵式攻击缓解。这些词听着硬,其实就是一句话:不光要防“猜密钥”,还要防“撬柜子”“听功耗”“看电磁泄漏”。
评估视角还会看密码技术框架体系,常见分法是密码资源、密码支撑、密码服务、密码应用。资源是算法和模块,支撑是证书系统、密钥管理系统,服务是对外提供的加密、签名、认证能力,应用是最终业务系统怎么调用。把这四层分开,很多题就不容易选错。
2.3 题库为什么把“基础题”和“评估题”放在一起
单独背密码基础,容易变成缩写记忆;单独看评估要求,又容易飘在空中。题库把两类题放一起,实际是在逼你建立一条链:概念题问“这是什么”,评估题问“少了它会怎样”。比如 PKI 里的 RA 负责申请者信息检查和管理,CA 负责签发证书;到了评估场景,就要看证书申请、审核、吊销、查询这条链是否完整。
刷题时最怕一种状态:答案记住了,换个问法就不会。比如“传输密钥一般使用哪种密钥技术”,正确方向是非对称密钥技术,因为它缓解密钥分发问题;但到了具体协议里,又会用非对称密钥协商出一个会话密钥,再拿会话密钥做对称加密。这里既有非对称,也有对称,不是二选一。题库里这类题反复出现,就是让你把“分工”而不是“站队”刻进脑子。
提示:刷密码基础题时,不要只记正确答案,顺手在旁边写一句“它解决的是机密性、完整性还是真实性”。错题按概念归类,比按题号归类有用得多。
3. 密码基础的四条主线:分组模式、密钥分发、PKI、安全协议
3.1 分组密码工作模式:ECB、CBC、CFB、CTR的分水岭
分组密码把明文切成固定长度的块,比如 128 位一块。问题来了:最后一块不够 128 位怎么办?这就引出了工作模式。ECB、CBC 这类模式通常需要填充,把最后一块补齐;CFB、CTR 属于流式用法,消息长度可以不是分组长度的整数倍,不需要为了凑整块做填充。题库里那道“消息长度可以不是分组长度的整数倍”的题,答案落在 CTR,考的就是这个分界。
ECB 最简单,同样的明文块加密成同样的密文块,模式本身不隐藏重复结构,所以一般不适合直接加密大段业务数据。CBC 把前一块密文和当前明文异或,需要初始向量 IV,加密过程串行,解密可以并行。CFB 更像把分组密码当流密码用,同样需要 IV,加密链式、解密可并行。CTR 用计数器生成密钥流,再和明文异或,加解密都能并行,计数器不能重复。
| 模式 | 是否通常需要填充 | 加密能否并行 | 解密能否并行 | 关键点 |
|---|---|---|---|---|
| ECB | 需要 | 可以 | 可以 | 相同明文块产生相同密文块,结构暴露明显 |
| CBC | 需要 | 不能 | 可以 | 需要 IV,前一块密文参与当前块 |
| CFB | 不需要 | 不能 | 可以 | 分组密码当流密码用,需要 IV |
| CTR | 不需要 | 可以 | 可以 | 计数器生成密钥流,计数器不可重复 |
下面这段代码只示意 CTR 的核心流程,不涉及具体分组算法实现:
# CTR 模式示意:用计数器生成密钥流,再与明文异或 def ctr_encrypt(plaintext: bytes, key: bytes, nonce: int, block_cipher) -> bytes: out = bytearray() counter = nonce # 每次取一个分组长度的明文片段;最后一段可以不足一个分组 for i in range(0, len(plaintext), 16): keystream = block_cipher.encrypt(key, counter.to_bytes(16, "big")) chunk = plaintext[i:i + 16] out.extend(b ^ k for b, k in zip(chunk, keystream)) counter += 1 return bytes(out)参数里,plaintext是任意长度明文,key是分组密钥,nonce是初始计数器,block_cipher是分组加密函数。逻辑很直白:计数器每用一次就往前走一格,生成一段密钥流,再和明文逐字节异或。因为明文可以最后一段不足 16 字节,zip会自动按较短的一方截断,所以 CTR 不需要填充。真正使用时,计数器不能重复,否则同一段密钥流被复用,机密性会出问题。这类细节在题库里常以判断题出现,刷题时别只背“CTR 不需要填充”,还要记住“计数器不能重用”。
3.2 密钥分发:KDC和CA各自解决哪一段信任
密钥分发的难点不在算法,而在“怎么让双方安全地拿到同一把钥匙”。常见技术里,CA 和 KDC 经常被放在一起考,但它们解决的不是同一段问题。KDC 是密钥分发中心,通信双方都信任它,由它分发会话密钥。主机与 KDC 通信时,使用的是双方共享的永久密钥,也叫主密钥。这个主密钥提前存在,不通过每次会话临时协商,所以能用来保护“申请会话密钥”这条通道。
CA 是证书颁发机构,解决的是公钥和身份绑定。你把公钥交给 CA,CA 用数字证书把“这个公钥属于谁”签出来。别人拿到证书,验证 CA 的签名,就能判断公钥有没有被冒名替换。KDC 更像“发临时票的柜台”,CA 更像“给公钥盖章的登记处”。一个偏向对称密钥体系的密钥分发,一个偏向公钥体系的身份绑定。
题库里还会问“常用的密钥分发技术有 CA 技术和什么技术”,答案方向是 KDC。这类题容易混,因为两者都叫“中心”。区分时看密钥类型:KDC 分发的大多是会话密钥,通信双方和 KDC 之间要有共享的长期密钥;CA 签发的是证书,证书里装的是公钥,私钥不离开持有者。再比如“密钥加密密钥”是用来加密会话密钥或文件密钥的,不是直接加密业务数据;这个层次关系在密钥分类题里反复出现。
注意:KDC 不是抗重放攻击的手段。抵抗重放通常靠时间戳、计数器、挑战应答等机制。把 KDC 当成“万能安全盒”是常见误区。
3.3 PKI的组件分工:CA、RA、CRL、OCSP、LDAP
PKI 不是“一张证书”,而是一套组件。CA 负责签发和管理证书;RA 负责申请者信息检查和管理,相当于前台审核;CRL 是证书撤销列表,告诉别人哪些证书提前作废;OCSP 是在线证书状态协议,可以实时查询某张证书状态;LDAP 则常用于查询、下载新签发的证书和证书撤销链。题库里问“哪个协议可以供用户查询、下载新签发的证书与证书撤销链”,答案落在 LDAP,就是在考组件分工。
数字证书里通常能看到主体信息、公钥、有效期、用途、签发机构名称和签名等内容。但“从一张数字证书无法得到什么信息”这类题容易绕人:证书里不一定直接给你签发机构的公钥,签发机构公钥要通过信任链和本地信任库去获得。证书用途、主体公钥、有效日期一般都在证书里,签发机构公钥信息则不是“拆开证书就能直接拿到”的字段。
PKI 还有一个常考点:签名密钥与加密密钥要分隔使用。原因不复杂,密钥用途越单一,风险越小。签名私钥用于不可否认,加密私钥用于解密,混用会让权限边界变糊。评估时看到密钥用途没有分隔,往往会追问密钥管理制度。题库里“PKI 管理对象不包括 ID 和口令”这类题,也是在提醒你:PKI 管的是证书、密钥、证书撤销列表这些对象,不是普通账号口令。
3.4 SSL/TLS与IPSec:应用层会话和网络层通道的区别
SSL/TLS 和 IPSec 经常一起出现,因为它们都保护通信,但位置不一样。SSL/TLS 在应用层和传输层之间工作,常见于网页、邮件、API 调用;IPSec 工作在网络层,保护 IP 包。SSL/TLS 的握手从握手消息交换开始,客户端和服务器协商版本、算法、随机数,再完成密钥交换和身份验证。题库里“SSL 连接机制”常考:客户端创建一个会话密钥,并用服务器的公钥加密这个会话密钥。这里非对称密钥负责把会话密钥送过去,真正加密业务数据的是对称会话密钥。
IPSec 里 AH 提供完整性认证,不提供机密性;ESP 可以同时提供机密性和认证。传输模式保护端到端,隧道模式保护站到站。评估场景里,网络边界部署核准的 IPSec 安全网关或 SSL 安全网关,是满足网络和通信安全层面要求的常见做法。这里的关键不是设备名字,而是它有没有使用核准的密码算法、密钥管理是否合规、身份鉴别是否到位。
SSL 和 TLS 的关系也常被拿来出题:TLS 是 SSL 的升级版,不是两个毫无关系的东西;两者都为网络通信过程中的机密性和完整性提供保障。题目里如果把 SSL 说成 TLS 的升级版,方向就反了。刷题时遇到协议题,先问自己三个问题:它工作在哪一层、它保护的是会话还是数据包、它用对称密钥还是非对称密钥做哪一步。把这三问答完,很多选项自然排掉。
4. 商用密码应用与安全性评估:把密码放回系统里看
4.1 密码模块安全等级:三级比二级多了什么
密码模块是密码功能的“黑匣子”,算法、密钥、敏感参数都在里面。评估密码模块时,安全等级不是越高越好,而是要和场景匹配。二级通常已经有身份鉴别、角色管理、物理安全等要求;三级在二级基础上增强物理安全、身份鉴别、环境保护和非入侵式攻击缓解。所谓非入侵式攻击,就是不打孔、不拆壳,靠功耗、电磁辐射、时间差异等信息去推断密钥。侧信道攻击就是典型代表:通过功耗、电磁辐射等信息推断密钥,简单功耗分析可能只用一条或几条功耗曲线,要求噪声较低,还需要知道部分实现细节。
这些概念在题库里常以多选题出现。记忆时不要只背四个词,要理解它们的方向:物理安全防直接接触,身份鉴别防冒用,环境保护防温湿度、电压等异常影响,非入侵式攻击缓解防“侧面观察”。密码边界则是密码模块中特有的概念,边界内是受保护区域,边界外是调用方。边界画不清,密钥就可能从接口、日志、调试口漏出去。
密码模块还会涉及密钥量要求。高防护级别对密钥量有最低要求,题目里会出现数量级表达式。实际理解时抓住一点:密钥空间要足够大,不能因为密钥生成算法或截断方式把有效密钥量削小。密钥产生首先要保证随机性,随机性不够,后面算法再强也白搭。
4.2 高风险判定:为什么有些缺口会被“一票否决”
评估里说的“一票否决”,不是吓唬人,而是指某些关键安全目标缺失且没有缓解措施时,整体风险会被判得很高。题库里有一类判断题:未采用基于对称密码算法或密码杂凑算法的消息鉴别码、也未采用基于公钥密码算法的数字签名机制对通信实体进行身份鉴别,没有缓解措施,可一票否决。这个点的核心是“身份鉴别不能用普通口令硬扛”。口令只能证明“知道某个秘密”,不能证明“就是那个实体”,在重要通信场景里力度不够。
另一类高风险点和数据机密性、完整性有关。通信过程中重要数据该加密没加密,或者该做完整性保护只做了普通校验,评估时都会追问。这里容易翻车的地方是“用了密码但用错位置”:比如只在登录环节用了密码,业务数据传输还是明文;或者只对数据做了杂凑,没有密钥参与,攻击者可以连数据带指纹一起改。杂凑能发现偶然损坏,但面对主动篡改,需要 MAC 或数字签名。
高风险判定还看部署条件。密码产品不满足安全策略或使用手册说明的部署条件,可能被判定为高危问题。举例来说,密码模块要求放在受控机房,你把它放在公网可直达的普通主机上;或者要求使用特定接口调用,你绕过接口直接读密钥文件。这些都不是算法问题,而是使用问题。评估视角下,“买对了”只是第一步,“装对了、配对了、管住了”才算完成。
4.3 密码支撑、密码服务、密码应用:三层视角怎么用
密码技术框架体系常拆成密码资源、密码支撑、密码服务、密码应用。资源层是算法、模块、芯片;支撑层是证书认证系统、密钥管理系统、密码管理基础设施;服务层是对业务提供的加密、签名、认证、时间戳等能力;应用层是具体业务怎么调用这些能力。密码管理基础设施又常涉及运维管理、信任管理、设备管理、密钥管理。把这些层次分开,评估时就不会把“算法合格”误当成“系统合格”。
举个虚构场景:某实验室做一个跨平台系统,登录用了数字证书,业务数据也加密了,但密钥管理日志谁都能改,证书吊销状态从来不查。这个系统在“密码服务”层看起来有加密、有签名,但在“密码支撑”层信任链是断的。评估时会问:证书是谁签的、吊销了怎么办、密钥多久换一次、管理员权限怎么分。题库里那些 PKI 组件题、密钥分类题,落到这里就是支撑层的检查点。
再看密码应用层。业务系统调用密码服务,不能只写一句“已加密”。要能说清哪些字段加密、哪些字段做 MAC、密钥从哪来、失败时怎么处理。典型密码保障系统包括数字证书认证系统、发票防伪税控系统、电子印章系统等,它们共同点是把密码能力嵌进业务流程,而不是外挂一个加密机就完事。刷题时遇到“以下属于密码技术框架体系”的多选题,别死记四个词,想想资源、支撑、服务、应用这条链,选项就顺了。
5. 易混概念盘点:对称加密、数字签名、哈希、MAC别混着背
5.1 对称加密与非对称加密:速度、密钥分发和签名的分工
易混点:把对称加密和非对称加密当成“新替代旧”。为什么混:两者都叫加密,都能把明文变密文,题库里又常问“传输密钥用哪种技术”。怎么区分:看密钥是否相同、看速度、看用途。对称加密加解密用同一把密钥,速度快,适合加密大量数据,主要缺点是密钥分配和管理;非对称加密用公钥和私钥一对,速度慢,适合密钥交换、数字签名和身份认证。
实际系统很少只用一种。传输密钥一般使用非对称密钥技术,因为能缓解密钥分发问题;但真正加密业务数据时,通常用非对称密钥协商出一个会话密钥,再用对称算法加密数据。题库里“可以将对称密钥密码体制与非对称密钥密码体制混合使用”这类判断题,答案方向是“可以”。把两者对立起来,就会在“传输密钥”和“加密数据”之间选错。
还有一个常考点:对称加密算法不能实现数字签名。数字签名需要私钥签、公钥验,依赖非对称密钥对。对称加密双方共享同一把密钥,谁都能签,也就无法区分是谁签的。看到“对称加密既可加密也可数字签名”这种选项,基本可以排掉。非对称密码的典型代表有 RSA、SM2、SM9;SM3 是杂凑算法,不是非对称加密,这个也常被混进来考。
5.2 哈希、MAC、数字签名:完整性保护的三种力度
易混点:都叫“完整性保护”,以为可以随便替换。为什么混:三者都能产生一段固定长度的校验值。怎么区分:看有没有密钥、能不能抗主动篡改、能不能确认身份。哈希也叫杂凑,输入任意长度数据,输出固定长度摘要,不需要密钥;它擅长发现偶然损坏,但攻击者可以改数据后重新算哈希。
MAC 是消息鉴别码,基于对称密码算法或密码杂凑算法,带共享密钥。双方共享密钥,发送方算 MAC,接收方用同一把密钥验证。它能抗主动篡改,但无法向第三方证明“是谁发的”,因为双方都有密钥。数字签名用私钥签、公钥验,既能发现篡改,也能提供不可否认性。评估里说“未采用 MAC 或数字签名做通信实体身份鉴别”,就是把后两者当成有密钥参与的鉴别手段,而不是普通哈希。
题库里“传统密码分析利用的信息包括算法输入、算法输出、公开参数”这类题,也和完整性、机密性有关。密码分析不是只看密文,有时还看公开参数和输入输出关系。区分哈希、MAC、签名时,抓住“密钥在哪、验证者是谁”就行:无密钥是哈希,共享密钥是 MAC,公私钥是签名。
5.3 会话密钥与永久密钥:临时钥匙和长期钥匙
易混点:把会话密钥、主密钥、密钥加密密钥都当成“一把钥匙”。为什么混:它们都是密钥,题库里又常问“哪个密钥用来加密会话密钥”。怎么区分:看生命周期和用途。会话密钥是一次性或者短期的,用来加密本次会话的数据;永久密钥是长期共享的,用来保护会话密钥分发;密钥加密密钥专门用来加密会话密钥或文件密钥,属于密钥层次里的“管钥匙的钥匙”。
KDC 场景最典型:两台主机要和 KDC 通信,使用的是二者共享的永久密钥;KDC 分发的是会话密钥。SSL/TLS 场景也类似:客户端生成会话密钥,用服务器公钥加密后送过去,后续业务数据用会话密钥对称加密。PGP 里有一次性会话的常规密钥、公开密钥、私有密钥和基于口令的常规密钥,四种密钥分工不同。题目问“PGP 利用了四种类型密钥,缺哪个”,就是在考分类。
实际评估时,密钥生命周期要能说清:怎么生成、怎么分发、怎么使用、怎么更新、怎么销毁。会话密钥长期不换,或者永久密钥到处复制,都是风险点。刷题时看到“临时密钥”“会话密钥”“主密钥”这些词,先画一条时间线:长期保护短期,短期保护数据。
5.4 零知识证明:交互式和非交互式差在“共享前提”
易混点:以为非交互式零知识证明就是“双方不说话”。为什么混:名字里带“交互”,很容易理解成要不要聊天。怎么区分:交互式零知识证明需要证明者和验证者多轮交互;非交互式零知识证明不需要双方实时交互,但通常需要双方提前共享公共参考串 CRS。题库里“非交互零知识证明不需要双方提前共享 CRS”这类选项,方向是错的。
通俗地说,交互式像现场盘问:验证者不断出题,证明者每次回答,几轮下来验证者相信对方知道秘密,但不知道秘密本身。非交互式像提前准备好一张“一次性通行证”,证明者生成一个证明,验证者事后验证。通行证要防伪造,就需要一些公共参数,这就是 CRS 的作用。把“不交互”理解成“不需要任何公共前提”,就会选错。
零知识证明在隐私保护、身份认证、区块链等场景常见,但密评基础题更多考概念边界。刷题时记住三句话:交互式需要交互;非交互式不需要实时交互;非交互式通常需要提前共享 CRS。再把“零知识”理解成“不泄露秘密本身”,就不容易和普通签名混在一起。
6. 什么时候刷这套题最有效:别把题库当“后悔药”
6.1 适合刷题的三个节点
这套题最适合放在三个节点刷。第一个节点是刚学完密码基础概念,用题来检验“分组模式、密钥分发、PKI、协议”有没有形成框架;第二个节点是看完商用密码应用与安全性评估的框架后,用判断题和多选题检查“密码模块、密码边界、高风险判定”有没有理解;第三个节点是考前两周,用错题做定向补漏,而不是从头到尾重新背。
| 场景 | 适合做什么 | 不适合做什么 |
|---|---|---|
| 刚入门 | 按概念分类刷基础题,整理错题原因 | 一上来背答案,不查概念 |
| 学完评估框架 | 用多选题检查层次关系,用判断题检查边界 | 只刷单选,不看多选和判断 |
| 考前冲刺 | 回看错题,按“机密性、完整性、真实性”归类 | 盲目追求刷题数量,不总结错因 |
6.2 只刷题会漏掉什么
只刷题最容易漏掉“为什么”。比如你知道 CTR 不需要填充,但不知道计数器不能重复;你知道 RA 负责审核,但不知道 RA 和 CA 的职责边界;你知道高风险判定会一票否决,但不知道“没有缓解措施”这个前提。题库的价值在于暴露盲点,不在于替代理解。每做错一道题,最好回到概念里找一句话解释,再用自己的话写一遍。下一次遇到换问法,才不会靠模糊记忆硬猜。
我在准备密评时吃过一次亏:一开始把 KDC 和 CA 都当成“发密钥的中心”,题目一换场景就选错。后来我把它们拆成“对称体系的密钥分发”和“公钥体系的身份绑定”,错题率才降下来。从那以后我每次刷题,都强制先写一句“这题考的是哪个安全目标、哪个层次”,再去看选项。希望帮到你。这份资料适合放在手边,学完一个概念就翻到对应题目验证;需要完整题库的,可以从文末资料入口自取。
本文还有配套的精品资源,点击获取