【 1-6 】
密码技术基础
第1.6章 密码技术基础
本章内容依据《数据安全工程技术人员(初级)第一模块零基础详细学习教材》整理,系统讲解密码技术基础。
6.1 密码技术保护什么
| 安全目标 | 含义 | 常见技术 |
|---|---|---|
| 机密性 | 未授权人员不能读取数据 | 加密、访问控制 |
| 完整性 | 能够发现数据是否被篡改 | 哈希、消息认证码、数字签名 |
| 身份真实性 | 确认通信或操作主体身份 | 证书、数字签名、多因素认证 |
| 不可否认性 | 重要操作具有可验证证据 | 数字签名、可信时间、审计记录 |
6.2 明文、密文、加密、解密和密钥
明文:13812341234
│ 使用算法 + 密钥
▼
密文:X7a9K...(不可直接阅读)
│ 使用相应密钥
▼
恢复明文:13812341234
│ 使用算法 + 密钥
▼
密文:X7a9K...(不可直接阅读)
│ 使用相应密钥
▼
恢复明文:13812341234
密钥是控制加密和解密过程的重要参数。算法可以公开,密钥必须受到严格保护。密钥泄露后,使用该密钥保护的数据可能失去机密性。
6.3 对称加密
对称加密使用同一把密钥完成加密和解密,速度快,适合保护大量数据,例如数据库字段、文件和备份。核心难点是安全分发和保存密钥。
| 特点 | 说明 |
|---|---|
| 速度 | 通常较快,适合大批量数据 |
| 密钥 | 加密和解密使用同一密钥 |
| 典型场景 | 磁盘加密、数据库加密、文件加密、备份加密 |
| 主要风险 | 密钥被复制、硬编码、长期不轮换或与数据放在同一位置 |
6.4 非对称加密
非对称加密使用一对密钥:公钥可以公开,私钥需要保密。公钥和私钥在不同操作中配合使用,常见于身份认证、密钥交换、数字签名和证书体系。
公钥:可以提供给通信对方
私钥:由持有者严格保管
加密场景:对方用公钥加密 → 持有者用私钥解密
签名场景:持有者用私钥签名 → 对方用公钥验证
私钥:由持有者严格保管
加密场景:对方用公钥加密 → 持有者用私钥解密
签名场景:持有者用私钥签名 → 对方用公钥验证
6.5 哈希是什么
哈希是把任意长度的数据转换成固定长度摘要的过程。哈希结果常被称为摘要、散列值或哈希值。相同输入在相同算法下得到相同结果,输入发生细小变化时,摘要通常会明显变化。
输入:“数据安全”
↓ 哈希算法
输出:固定长度摘要(示意) 8f3a...c91d
输入:“数据安全。”
↓ 哈希算法
输出:另一个摘要(示意) 1b72...4ea0
↓ 哈希算法
输出:固定长度摘要(示意) 8f3a...c91d
输入:“数据安全。”
↓ 哈希算法
输出:另一个摘要(示意) 1b72...4ea0
| 问题 | 答案 |
|---|---|
| 哈希能否直接还原原文? | 设计目标通常是单向计算,不能像解密那样直接恢复原文。 |
| 哈希是否等于加密? | 哈希用于生成摘要,加密用于在密钥控制下隐藏内容并可解密恢复。 |
| 哈希有什么用途? | 完整性校验、口令验证、数字签名、文件指纹、数据去重等。 |
| 相同输入是否得到相同哈希? | 在相同算法和相同输入下通常相同。 |
| 哈希值相同是否绝对代表原文相同? | 理论上可能出现碰撞,安全应用应选择合适算法并结合场景设计。 |
口令保存:系统通常不应直接保存用户明文口令。常见做法是使用专门的口令哈希方案,并加入随机盐值和适当计算成本。普通快速哈希不适合作为完整的口令存储方案。
6.6 哈希、加密、编码的区别
| 技术 | 是否需要密钥 | 能否恢复原文 | 主要目的 | 示例用途 |
|---|---|---|---|---|
| 哈希 | 通常不需要 | 不能直接恢复 | 生成摘要、校验完整性 | 文件校验、口令验证 |
| 加密 | 需要密钥 | 持有正确密钥可恢复 | 保护机密性 | 数据库字段、文件、传输 |
| 编码 | 通常不需要 | 按规则可还原 | 改变表示格式 | Base64、字符编码 |
6.7 数字签名
数字签名用于验证信息来源和完整性。签名过程通常会先对数据计算摘要,再由签名者使用私钥完成签名;验证者使用对应公钥检查签名。
原始文件 → 计算哈希摘要 → 使用私钥签名 → 形成数字签名
↓
接收方取得文件和签名 → 使用公钥验证
↓
验证来源与内容是否被改动
↓
接收方取得文件和签名 → 使用公钥验证
↓
验证来源与内容是否被改动
6.8 数字证书
数字证书用于把一个身份与公钥绑定。网站使用 HTTPS 时,浏览器会检查服务器证书,从而确认访问的服务器身份,并协商建立加密通信。
6.9 密钥生命周期管理
| 阶段 | 管理要求 |
|---|---|
| 生成 | 使用安全随机源和合适算法生成,记录用途和责任人 |
| 分发 | 通过受控渠道交付,避免明文邮件和普通聊天工具 |
| 存储 | 使用密钥管理系统、硬件安全模块或受控环境,限制导出 |
| 使用 | 最小授权,记录重要加解密和签名操作 |
| 轮换 | 按周期或风险事件更换密钥 |
| 备份 | 安全备份并限制恢复权限 |
| 吊销 | 密钥泄露、人员离岗或证书失效时停止使用 |
| 销毁 | 到期后安全销毁,保留必要记录 |
6.10 常见错误
- 把密钥直接写在程序源代码、配置文件或脚本中。
- 数据和密钥存放在同一位置且使用相同权限。
- 所有系统长期使用同一把密钥。
- 只加密生产数据库,未加密备份和导出文件。
- 使用自创密码算法或过时算法。
- HTTPS 已启用,但接口鉴权、令牌保护和访问控制缺失。
本节自测
1. 哈希和加密的核心区别是什么?
2. 为什么对称加密适合保护大批量数据?
3. 数字签名主要验证哪两件事?
4. 密钥为什么需要轮换和吊销?