Files
examination/topics/cybersecurity/crypto-basics/single_choice.json
T
wonder 70e368e235
Deploy Examination / deploy (push) Successful in 7s
feat: add cybersecurity topic with 6 subtopics (204 questions)
New topic group: 网络安全专题 (cybersecurity)
Subtopics:
- web-security: Web 安全基础 (34 questions)
- crypto-basics: 密码学基础 (34 questions)
- buffer-overflow: 缓冲区溢出与漏洞利用 (34 questions)
- os-security: 操作系统安全 (34 questions)
- network-attack: 网络攻防 (34 questions)
- secure-coding: 安全编程实践 (34 questions)

Question types per subtopic:
- single_choice × 20
- true_false × 10
- short_answer × 3
- code_reading × 1

Difficulty range: 1-3 (基础)
2026-09-17 13:33:04 +08:00

412 lines
18 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"topic": "crypto-basics",
"type": "single_choice",
"schema_version": "1.0.0",
"generated": "2026-09-17T00:00:00+08:00",
"questions": [
{
"id": "sc-001",
"type": "single_choice",
"difficulty": 1,
"tags": [
"密码学",
"加密"
],
"question": "以下哪种加密算法属于对称加密?",
"options": {
"A": "AES",
"B": "RSA",
"C": "ECC",
"D": "Diffie-Hellman"
},
"answer": "A",
"explanation": "AES(Advanced Encryption Standard)是对称加密算法,加密和解密使用相同的密钥。RSA 和 ECC 都是非对称加密算法,使用公钥/私钥对。Diffie-Hellman 是密钥交换协议,本身不是加密算法,但属于非对称密码学范畴。",
"source": null,
"related": []
},
{
"id": "sc-002",
"type": "single_choice",
"difficulty": 1,
"tags": [
"密码学",
"加密"
],
"question": "AES 支持的密钥长度不包括以下哪一项?",
"options": {
"A": "128 位",
"B": "192 位",
"C": "256 位",
"D": "512 位"
},
"answer": "D",
"explanation": "AES 标准支持三种密钥长度:128 位、192 位和 256 位,分别对应 AES-128、AES-192 和 AES-256。512 位不是 AES 标准定义的密钥长度。更长的密钥通常意味着更高的安全性,但 AES 最高只定义到 256 位。",
"source": null,
"related": []
},
{
"id": "sc-003",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"加密"
],
"question": "关于 DES 和 3DES,以下说法正确的是?",
"options": {
"A": "DES 使用 128 位密钥,安全性很高",
"B": "3DES 通过对数据执行三次 DES 加密来提升安全性",
"C": "DES 目前仍被认为是最安全的对称加密标准",
"D": "3DES 的密钥有效长度为 168 位,不存在任何已知弱点"
},
"answer": "B",
"explanation": "3DES(Triple DES)通过对数据执行三次 DES 加密(通常使用加密-解密-加密 EDE 模式)来提升安全性。DES 实际使用 56 位密钥(加 8 位校验),已被证明不够安全。3DES 的有效密钥长度为 112 位(两密钥模式)或 168 位(三密钥模式),但存在中间相遇攻击等弱点,NIST 已在 2023 年正式废弃 3DES。",
"source": null,
"related": []
},
{
"id": "sc-004",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"加密"
],
"question": "RSA 算法的安全性基于以下哪个数学难题?",
"options": {
"A": "离散对数问题",
"B": "大整数质因数分解问题",
"C": "背包问题",
"D": "椭圆曲线离散对数问题"
},
"answer": "B",
"explanation": "RSA 的安全性基于大整数质因数分解的困难性:将两个大素数相乘很容易,但将乘积分解回原来的两个素数在计算上极其困难。离散对数问题对应的是 Diffie-Hellman 和 DSA 等算法的基础。椭圆曲线离散对数问题(ECDLP)是 ECC 算法的安全性基础。",
"source": null,
"related": []
},
{
"id": "sc-005",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"加密"
],
"question": "与 RSA 相比,ECC(椭圆曲线密码学)的主要优势是什么?",
"options": {
"A": "加解密速度更快,但需要更长的密钥",
"B": "在相同安全强度下,所需密钥长度更短",
"C": "ECC 不依赖任何数学难题,因此绝对安全",
"D": "ECC 只能用于签名,不能用于加密"
},
"answer": "B",
"explanation": "ECC 最大的优势是在提供相同安全强度的情况下,所需的密钥长度远小于 RSA。例如 256 位 ECC 密钥的安全强度约等于 3072 位 RSA 密钥,这意味着更小的存储空间、更快的计算和更低的带宽消耗。ECC 的安全性基于椭圆曲线离散对数问题,并非绝对安全,且 ECC 既可用于密钥交换和加密,也可用于数字签名。",
"source": null,
"related": []
},
{
"id": "sc-006",
"type": "single_choice",
"difficulty": 1,
"tags": [
"密码学",
"哈希"
],
"question": "以下关于哈希函数的描述,正确的是?",
"options": {
"A": "哈希函数是可逆的,可以从哈希值恢复原始数据",
"B": "哈希函数将任意长度的输入映射为固定长度的输出",
"C": "哈希函数的输出长度随输入长度线性增长",
"D": "不同的输入一定产生不同的哈希值"
},
"answer": "B",
"explanation": "哈希函数的核心特性是将任意长度的输入映射为固定长度的输出,例如 SHA-256 始终输出 256 位。哈希函数是单向函数,不可从哈希值逆向恢复原始数据。由于输出空间有限而输入空间无限,理论上不同的输入可能产生相同的哈希值(碰撞),所以\"不同输入一定产生不同哈希值\"是错误的。",
"source": null,
"related": []
},
{
"id": "sc-007",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"哈希"
],
"question": "MD5 算法目前被认为不安全的主要原因是什么?",
"options": {
"A": "MD5 的输出长度只有 32 位,太短",
"B": "MD5 已被发现存在实际可行的碰撞攻击",
"C": "MD5 是对称加密算法,密钥太短",
"D": "MD5 的计算速度太慢,不适合实际应用"
},
"answer": "B",
"explanation": "MD5 的输出长度实际是 128 位(通常以 32 位十六进制字符串表示),不是 32 位。MD5 不是加密算法而是哈希函数,不存在密钥的概念。MD5 的计算速度其实很快,但这反而有利于碰撞攻击。MD5 不安全的根本原因是 2004 年王小云教授等人展示了实际可行的碰撞攻击,此后碰撞实例不断被构造出来,因此不应再用于安全场景。",
"source": null,
"related": []
},
{
"id": "sc-008",
"type": "single_choice",
"difficulty": 1,
"tags": [
"密码学",
"哈希"
],
"question": "SHA-256 产生的哈希值长度是多少位?",
"options": {
"A": "128 位",
"B": "160 位",
"C": "256 位",
"D": "512 位"
},
"answer": "C",
"explanation": "SHA-256 是 SHA-2 家族的成员,顾名思义,它产生 256 位(32 字节)的哈希值,通常用 64 个十六进制字符表示。SHA-1 产生 160 位输出,SHA-512 产生 512 位输出。128 位是 MD5 的输出长度。",
"source": null,
"related": []
},
{
"id": "sc-009",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"数字签名"
],
"question": "数字签名的主要功能不包括以下哪一项?",
"options": {
"A": "身份认证",
"B": "数据完整性保护",
"C": "数据加密",
"D": "不可否认性"
},
"answer": "C",
"explanation": "数字签名的三大核心功能是:身份认证(确认签名者身份)、数据完整性(确保数据未被篡改)和不可否认性(签名者不能否认签名行为)。数字签名本身不提供数据加密功能,虽然签名过程中会用到非对称加密技术,但签名结果并不对原始数据进行保密处理。若需同时加密,通常需要将数字签名与加密机制结合使用。",
"source": null,
"related": []
},
{
"id": "sc-010",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"数字签名"
],
"question": "在数字签名过程中,发送方用什么密钥对消息摘要进行签名?",
"options": {
"A": "接收方的公钥",
"B": "接收方的私钥",
"C": "发送方的公钥",
"D": "发送方的私钥"
},
"answer": "D",
"explanation": "数字签名的基本流程是:发送方先对消息计算哈希得到消息摘要,然后用自己的私钥对摘要进行加密(签名)。接收方收到后用发送方的公钥解密(验签),再与自己计算的摘要比对。使用发送方的私钥签名可以确保只有持有私钥的人才能生成该签名,从而实现身份认证和不可否认性。",
"source": null,
"related": []
},
{
"id": "sc-011",
"type": "single_choice",
"difficulty": 1,
"tags": [
"密码学",
"PKI",
"证书"
],
"question": "PKI(公钥基础设施)中,CA 的主要职责是什么?",
"options": {
"A": "生成对称加密密钥",
"B": "颁发和管理数字证书",
"C": "对所有网络流量进行加密",
"D": "存储用户的私钥"
},
"answer": "B",
"explanation": "CA(Certificate Authority,证书颁发机构)是 PKI 的核心组件,主要负责颁发、续期、吊销和管理数字证书。CA 通过验证实体(个人、组织、服务器等)的身份后,将其公钥与身份信息绑定在数字证书中。CA 不负责生成对称密钥或加密所有网络流量,而用户的私钥应由用户自己安全保管,不应存储在 CA 端。",
"source": null,
"related": []
},
{
"id": "sc-012",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"PKI",
"证书"
],
"question": "X.509 数字证书中通常不包含以下哪项信息?",
"options": {
"A": "证书持有者的公钥",
"B": "证书持有者的私钥",
"C": "颁发该证书的 CA 信息",
"D": "证书的有效期"
},
"answer": "B",
"explanation": "X.509 证书包含持有者的公钥、持有者的身份信息(如域名、组织名)、颁发机构(CA)的信息、有效期、序列号以及 CA 的数字签名等内容。证书中绝对不包含持有者的私钥,私钥必须由持有者自行秘密保管。证书的本质是将公钥与身份信息绑定的可信声明,如果包含私钥就会导致严重的安全问题。",
"source": null,
"related": []
},
{
"id": "sc-013",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"PKI",
"证书"
],
"question": "当浏览器访问 HTTPS 网站时发现证书已过期,这违反了以下哪项证书检查?",
"options": {
"A": "证书链验证",
"B": "有效期检查",
"C": "证书吊销检查",
"D": "域名匹配检查"
},
"answer": "B",
"explanation": "证书包含一个明确的有效期(notBefore 和 notAfter 字段),浏览器在验证证书时会检查当前时间是否在有效期内。如果证书已过期,说明有效期检查失败。证书链验证是检查证书是否由受信任的 CA 签发;吊销检查是通过 CRL 或 OCSP 确认证书是否被提前撤销;域名匹配检查是确认证书中的域名与实际访问的域名一致。",
"source": null,
"related": []
},
{
"id": "sc-014",
"type": "single_choice",
"difficulty": 3,
"tags": [
"密码学",
"PKI"
],
"question": "以下哪种机制用于实时查询证书是否已被吊销?",
"options": {
"A": "CRL(证书吊销列表)",
"B": "OCSP(在线证书状态协议)",
"C": "TLS 握手",
"D": "DNS 解析"
},
"answer": "B",
"explanation": "OCSP(Online Certificate Status Protocol,在线证书状态协议)允许客户端实时向 OCSP 响应器查询单个证书的吊销状态,相比 CRL 更加即时和高效。CRL 虽然也用于检查证书吊销状态,但它是周期性发布的完整列表,实时性较差。TLS 握手是建立加密连接的过程,DNS 解析是域名到 IP 的映射,两者都不是证书吊销检查机制。",
"source": null,
"related": []
},
{
"id": "sc-015",
"type": "single_choice",
"difficulty": 2,
"tags": [
"密码学",
"加密"
],
"question": "关于分组密码的工作模式,以下哪项说法正确?",
"options": {
"A": "ECB 模式对相同明文块总是产生相同的密文块,因此模式安全性较差",
"B": "所有工作模式都能完全防止重放攻击",
"C": "CBC 模式不需要初始化向量(IV)",
"D": "CTR 模式将分组密码转换为流密码,因此不需要密钥"
},
"answer": "A",
"explanation": "ECB(Electronic Codebook)模式对每个明文块独立加密,相同明文块总是产生相同密文块,这会泄露数据模式,因此安全性较差,不适合加密大量数据。CBC 模式需要一个随机的初始化向量(IV)来确保相同明文产生不同密文。CTR 模式虽然将分组密码转换为类似流密码的模式,但仍需要密钥来驱动分组加密运算。工作模式本身并不能防止重放攻击。",
"source": null,
"related": []
},
{
"id": "sc-016",
"type": "single_choice",
"difficulty": 3,
"tags": [
"密码学",
"加密"
],
"question": "Diffie-Hellman 密钥交换协议容易受到以下哪种攻击?",
"options": {
"A": "已知明文攻击",
"B": "中间人攻击",
"C": "差分密码分析",
"D": "线性密码分析"
},
"answer": "B",
"explanation": "原始的 Diffie-Hellman 密钥交换协议不包含身份认证机制,因此容易受到中间人攻击(MITM)。攻击者可以分别与通信双方建立独立的密钥交换,从而拦截和篡改所有通信内容。已知明文攻击、差分密码分析和线性密码分析主要针对分组密码,不是 DH 密钥交换的主要威胁。实际应用中通常结合数字证书或数字签名来抵御中间人攻击。",
"source": null,
"related": []
},
{
"id": "sc-017",
"type": "single_choice",
"difficulty": 3,
"tags": [
"密码学",
"哈希"
],
"question": "HMAC(基于哈希的消息认证码)相比普通哈希函数多了什么安全特性?",
"options": {
"A": "更快的计算速度",
"B": "更长的输出长度",
"C": "消息认证,能验证消息来源和完整性",
"D": "数据加密能力"
},
"answer": "C",
"explanation": "HMAC 将密钥与哈希函数结合使用,能够同时验证消息的完整性和来源真实性(消息认证)。只有持有正确密钥的人才能生成有效的 HMAC 值,而普通哈希函数不涉及密钥,任何人计算同一消息的哈希值都相同,因此无法验证消息来源。HMAC 并不提供加密能力,其输出长度与所使用的哈希函数相同,计算速度也与底层哈希函数相当。",
"source": null,
"related": []
},
{
"id": "sc-018",
"type": "single_choice",
"difficulty": 3,
"tags": [
"密码学",
"加密"
],
"question": "以下哪种攻击方式针对的是密钥交换过程而非加密算法本身?",
"options": {
"A": "暴力破解",
"B": "生日攻击",
"C": "中间人攻击",
"D": "彩虹表攻击"
},
"answer": "C",
"explanation": "中间人攻击针对的是密钥交换或通信建立过程,攻击者在通信双方之间插入自己,分别与双方建立独立连接。暴力破解是尝试所有可能的密钥来破解加密算法;生日攻击是针对哈希函数碰撞的攻击方法;彩虹表攻击是针对密码哈希的预计算表攻击。这三种攻击都不是直接针对密钥交换过程的。",
"source": null,
"related": []
},
{
"id": "sc-019",
"type": "single_choice",
"difficulty": 3,
"tags": [
"密码学",
"加密",
"密钥管理"
],
"question": "在密钥管理的最佳实践中,以下哪项做法是正确的?",
"options": {
"A": "将加密密钥硬编码在源代码中以便于使用",
"B": "所有系统共享同一个密钥以简化管理",
"C": "定期轮换密钥,并安全销毁不再使用的旧密钥",
"D": "将密钥与加密数据存储在同一个数据库中"
},
"answer": "C",
"explanation": "定期轮换密钥是密钥管理的核心最佳实践,可以限制单个密钥泄露造成的影响范围。旧密钥不再使用时应安全销毁,防止被攻击者获取。将密钥硬编码在源代码中会导致密钥随代码泄露;所有系统共享同一密钥违反最小权限原则,且一旦泄露影响范围巨大;密钥与加密数据存储在同一位置违反了密钥分离原则,攻击者获取数据的同时也会获取解密密钥。",
"source": null,
"related": []
},
{
"id": "sc-020",
"type": "single_choice",
"difficulty": 1,
"tags": [
"密码学",
"加密"
],
"question": "对称加密和非对称加密的根本区别是什么?",
"options": {
"A": "对称加密速度慢,非对称加密速度快",
"B": "对称加密使用同一密钥加密和解密,非对称加密使用不同的密钥",
"C": "对称加密不安全,非对称加密绝对安全",
"D": "对称加密只能加密文本,非对称加密可以加密任何数据"
},
"answer": "B",
"explanation": "对称加密和非对称加密的根本区别在于密钥的使用方式:对称加密使用同一个密钥进行加密和解密,通信双方必须安全地共享该密钥;非对称加密使用一对密钥(公钥和私钥),公钥加密的数据只有对应私钥才能解密。实际上对称加密通常比非对称加密速度更快,两者都能加密各种类型的数据,且两者都不是绝对安全的。",
"source": null,
"related": []
}
]
}