Day19-03|4.4.3 非对称密钥加密算法:解决身份、密钥交换与数字签名问题

本文对应《系统架构设计师教程(第2版)》第4章“信息安全技术基础知识”4.4.3“非对称密钥加密算法”。非对称密码使用一对不同但相互关联的密钥,主要解决对称密码中的密钥分发、身份认证和不可否认问题,并与对称加密共同构成现代安全通信体系。

一、学习目标

完成本节后,应能够:

  1. 解释公钥、私钥、加密和解密的基本关系;
  2. 区分非对称加密用于保密与数字签名的不同过程;
  3. 掌握RSA、ECC、SM2及数字证书的基本考试要点;
  4. 理解PKI、证书链、密钥生命周期和证书吊销;
  5. 在案例和论文中设计安全、高效、可验证的混合密码方案。

二、非对称密钥加密的基本原理

非对称密码使用一对密钥:公钥可以公开,私钥必须由持有者秘密保管。二者在数学上相关,但从公钥推导私钥在计算上应当不可行。非对称密码既可以用于保密通信,也可以用于数字签名,但两种用途的密钥使用方向不同。

用于保密

发送方使用接收方的公钥加密,只有接收方使用自己的私钥才能解密。其目标是保证只有指定接收方能够读取内容。

明文 + 接收方公钥 → 密文;密文 + 接收方私钥 → 明文

用于数字签名

签名者使用自己的私钥对消息摘要或签名数据生成签名,验证者使用签名者公钥验证签名。其目标是证明来源、保证完整性并在满足条件时支持不可否认。

消息摘要 + 签名者私钥 → 数字签名;消息 + 签名者公钥 → 验证结果

用途 加密或签名者使用 接收或验证者使用 主要目标
保密通信 接收方公钥 接收方私钥 机密性
数字签名 签名者私钥 签名者公钥 真实性、完整性、不可否认性

最容易考错的是“用私钥加密、用公钥解密”这种简化说法。它在口语中常被用来描述签名,但严格的数字签名通常对摘要进行签名,并不等同于把整段消息用私钥加密。

三、非对称密码的优势与局限

非对称密码的优势是公钥可以公开,通信双方不需要事先通过秘密渠道交换长期共享密钥;它可以支持身份认证、密钥协商和数字签名;在多参与者场景中,密钥管理规模相对容易扩展。

局限是计算速度通常低于对称密码,不适合直接加密大量文件和长消息;公钥本身不能自动证明属于谁,仍需要证书、可信机构或其他信任机制;私钥一旦泄露,攻击者可能冒充主体或解密数据;证书、吊销和密钥生命周期会增加治理复杂度。

方面 非对称密码表现 架构含义
密钥关系 公钥与私钥不同 公钥可发布,私钥必须保护
分发 公钥可通过目录或证书分发 需要验证公钥归属
性能 计算成本较高 通常只处理小数据或密钥
身份 可支持签名和认证 需要证书或信任链
扩展 适合多主体通信 需管理证书、吊销和私钥

四、RSA算法

RSA是经典的非对称密码算法,安全性建立在大整数分解等数学问题的计算困难性之上。RSA可以用于加密、密钥交换和数字签名,但实际使用必须选择足够安全的密钥参数、填充方式和经过审计的密码库。

RSA的工程特点是生态成熟、兼容性强,但密钥和计算开销较大。它不适合直接加密大型文件,而适合加密会话密钥或生成签名。新系统不能使用过时的填充方式和弱密钥长度,也不能自行实现RSA运算。

RSA私钥需要安全保存和定期轮换,证书需要验证用途、有效期和吊销状态。若私钥泄露,除了更新证书,还要评估历史签名、已加密数据和会话的影响。

五、ECC与椭圆曲线密码

椭圆曲线密码(ECC)基于椭圆曲线离散对数问题,在相近安全强度下通常可以使用更短密钥,适合移动设备、嵌入式设备和网络通信。ECC可以用于密钥协商和数字签名。

ECC的安全性依赖曲线参数、随机数和实现质量。随机数重复或可预测可能导致私钥泄露,曲线选择和协议参数错误也会削弱安全性。系统应使用标准曲线和成熟库,禁止自定义曲线和自行编写关键密码代码。

六、SM2算法

SM2是我国商用密码体系中的椭圆曲线公钥密码算法,常用于数字签名、密钥交换和公钥加密。其使用要遵循相应密码标准、证书体系和合规要求,不能简单把算法名称替换为SM2就认为系统已经安全合规。

SM2工程落地需要考虑签名格式、用户证书、密钥生成、证书签发、验证链、吊销、密钥备份和密码设备。与业务系统集成时,应明确哪些字段签名、签名覆盖范围、时间戳和验签失败处理。

算法 类型 典型用途 考试和工程关注点
RSA 公钥密码 加密、签名、密钥交换 成熟但计算和密钥开销较大
ECC 公钥密码体系 密钥协商、签名 密钥较短,依赖曲线和随机数
SM2 商用密码公钥算法 签名、加密、密钥交换 遵循商密标准和证书体系

七、数字证书与PKI

公钥公开并不等于公钥可信。攻击者可以发布自己的公钥,冒充目标服务。数字证书由可信的证书认证机构(CA)签发,把主体身份、公钥、有效期、用途和签名关联起来。验证者通过证书链验证证书是否由可信机构签发、是否在有效期内、用途是否匹配、是否被吊销。

PKI通常包括CA、注册机构、证书目录、证书策略、密钥管理和吊销服务。证书生命周期包括申请、身份核验、签发、部署、使用、更新、挂起、吊销和过期。私钥泄露、主体信息变化、证书用途改变或设备报废时,应及时吊销或更换证书。

证书验证不能只看域名或是否存在证书,还应校验证书链、签名算法、有效期、主机名、密钥用途、吊销状态和信任根。开发测试环境应使用独立证书和独立信任链,不能把生产私钥复制到测试系统。

八、数字签名与不可否认性

数字签名通常先对消息计算摘要,再使用签名者私钥生成签名。验证者使用公钥验证签名,并重新计算消息摘要,只有两者一致才能认为消息来源和内容未被破坏。

数字签名可以用于电子合同、政务申报、支付授权、配置发布、软件包和审计证据。签名系统要明确签名覆盖范围,不能只签名一个容易被替换的字段;要记录签名时间、证书、算法、版本和验证结果;对长期保存材料,还要考虑时间戳、证书过期和长期验证。

不可否认性不仅依赖数学签名,还依赖私钥由谁控制、签名主体是否经过可靠认证、时间是否可信、签名内容是否完整、证书是否有效和审计证据是否保存。若多人共用私钥或私钥保护失效,就很难确定实际签名人。

九、非对称密码与混合加密

现代网络通信通常采用混合加密。建立连接时,客户端验证服务端证书,使用非对称机制完成身份认证和密钥协商,生成短期会话密钥;数据传输阶段使用高性能对称算法加密;必要时使用数字签名或认证标签保证来源和完整性。

这种方式既避免了直接传递长期共享密钥,又避免用非对称算法处理大量业务数据。会话密钥应有生命周期和过期时间,连接关闭或异常时及时失效。密钥协商过程要防止降级、中间人、重放和随机数错误。

十、私钥保护与密钥生命周期

私钥是非对称密码体系中最敏感的秘密。用户私钥、服务器私钥、签名私钥和CA私钥的保护等级不同,但都不能写入代码仓库、镜像、普通配置或日志。

高价值私钥可以存放在硬件安全模块、可信执行环境或专用密码设备中,使用时通过受控接口完成签名或解密,避免导出明文私钥。私钥访问要按主体、用途、设备和时间限制,并保留审计。CA私钥需要更严格的双人控制、离线保护和备份恢复。

私钥轮换要考虑证书更新、服务平滑切换、历史签名验证和旧数据解密。私钥吊销后,新的签名和连接应被拒绝,但历史业务可能需要通过时间戳和验证服务确认当时有效性。

十一、非对称密码中的安全误区

第一,把公钥当作天然可信,忽略证书和信任链;第二,把数字签名理解为“用私钥加密整段消息”;第三,用非对称算法直接加密大文件,造成严重性能问题;第四,把私钥复制到多个服务器和测试环境;第五,忽略证书过期、吊销和主机名验证;第六,自行实现RSA、ECC或签名协议;第七,使用可预测随机数生成密钥或签名参数;第八,签名覆盖范围不完整,导致业务字段被替换。

十二、案例分析:电子合同签署平台

某电子合同平台需要支持企业签约、合同验签和长期归档。项目组计划使用RSA私钥对合同全文“加密”,把公钥放在数据库中,并在证书过期后删除证书。

改进方案:首先明确平台需要的是签名、保密还是二者兼有;合同签署采用签名者私钥对规范化合同摘要签名,验证者使用证书中的公钥验签,必要时加可信时间戳;若合同需要保密,使用接收方公钥加密会话密钥,再用对称算法加密合同内容;证书由可信CA签发,验证主体、有效期、用途、证书链和吊销状态;私钥存放在硬件安全模块或受保护的密钥服务中,签名操作通过授权接口完成;签名覆盖合同正文、附件、版本、签署主体和必要元数据,防止只签名标题而替换正文;保存证书、算法、签名时间、时间戳、验证结果和合同版本;证书更新不能删除历史验证所需证据,长期归档要支持证书链和算法迁移;设置多因素认证、职责分离、签署意愿确认和异常撤销;所有私钥调用、证书变更和验签失败都要审计。

十三、综合知识练习

选择题1

使用接收方公钥加密、接收方私钥解密,主要用于( )。

A. 保密通信 B. 证明发送方身份 C. 数据库索引 D. 压缩文件

答案:A。解析:接收方私钥只有接收方掌握,能够保证内容主要由接收方读取。

选择题2

数字签名通常由( )生成。

A. 签名者私钥 B. 接收者私钥 C. 任意公钥 D. 数据库密码

答案:A。解析:签名者使用自己的私钥生成签名,验证者使用对应公钥验证。

选择题3

数字证书的主要作用是( )。

A. 证明公钥与主体身份的绑定 B. 替代所有加密算法 C. 保存业务订单 D. 提高数据库查询速度

答案:A。解析:证书通过可信签发机构把主体身份、公钥和有效期等信息绑定起来。

简答题

为什么非对称算法通常不直接加密大数据量文件?

参考答案:非对称算法计算开销较大、处理效率较低,直接加密大文件会造成明显性能和延迟压力,也不适合高并发场景。实际系统通常用非对称机制完成身份认证、密钥协商或加密短期会话密钥,再使用高性能对称算法加密文件内容,形成混合加密。

十四、论文素材与今日复盘

论文可写:“在安全通信设计中,我使用非对称密码解决身份认证、密钥协商和数字签名问题,使用对称密码承担大数据量传输和存储保护。客户端通过证书链验证服务身份,双方协商短期会话密钥,数据阶段采用高性能带认证加密;对合同、支付和配置等关键内容使用签名、时间戳和版本绑定保证来源、完整性和不可否认;私钥由专用密钥服务或硬件安全模块保护,实施轮换、吊销、备份和审计,并保留历史证书和签名证据以支持长期验证。”

今日复盘:公钥/私钥要结合具体用途理解;保密通信与数字签名的密钥方向不同;RSA、ECC、SM2是典型非对称密码知识点;证书解决公钥归属问题,PKI解决信任和生命周期问题;非对称密码与对称密码结合,才是现代系统的常见工程方案。第4.4节完成,下一篇进入 4.5 访问控制技术。