# Implementing Rsa Key Pair Management

> RSA（Rivest-Shamir-Adleman）是应用最广泛的非对称密码算法，用于数字签名、密钥交换和加密。本技能涵盖遵循 NIST SP 800-57 密钥管理指南生成、存储、轮换和管理 RSA 密钥对，包括密钥序列化格式（PEM、DER、PKCS#8）、密码保护和密钥强度验证。

- Skill: `killvxk/implementing-rsa-key-pair-management` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/implementing-rsa-key-pair-management`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/implementing-rsa-key-pair-management/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/implementing-rsa-key-pair-management

---

# 实现 RSA 密钥对管理

## 概述

RSA（Rivest-Shamir-Adleman）是应用最广泛的非对称（asymmetric）密码算法，用于数字签名、密钥交换和加密。本技能涵盖遵循 NIST SP 800-57 密钥管理指南生成、存储、轮换和管理 RSA 密钥对，包括密钥序列化格式（PEM、DER、PKCS#8）、密码保护和密钥强度验证。

## 目标

- 生成适当密钥大小（2048、3072、4096 位）的 RSA 密钥对
- 使用 PKCS#8 以 PEM 和 DER 格式序列化密钥
- 使用强密码加密保护私钥
- 实现带版本控制的密钥轮换
- 提取公钥组件和指纹
- 验证密钥强度并检测弱密钥
- 使用 RSA-PSS 签名和验证数据

## 核心概念

### RSA 密钥大小与安全强度

| 密钥大小（位）| 安全强度（位）| 推荐使用至 |
|-------------|-------------|----------|
| 2048 | 112 | 2030 年 |
| 3072 | 128 | 2030 年以后 |
| 4096 | ~140 | 2030 年以后 |

### RSA 填充方案

| 方案 | 使用场景 | 标准 |
|------|---------|------|
| OAEP | 加密 | PKCS#1 v2.2（RFC 8017）|
| PSS | 签名 | PKCS#1 v2.2（RFC 8017）|
| PKCS#1 v1.5 | 仅遗留系统 | 新系统已弃用 |

### 密钥存储格式

- **PEM**：带头部的 Base64 编码，人类可读
- **DER**：二进制 ASN.1 编码，紧凑
- **PKCS#8**：私钥封装标准
- **PKCS#12/PFX**：密钥 + 证书捆绑，密码保护

## 安全注意事项

- 新部署最少使用 3072 位密钥（NIST 推荐）
- 始终使用 AES-256-CBC 密码加密保护私钥
- 使用 RSA-PSS 签名（不要使用 PKCS#1 v1.5）
- 使用 RSA-OAEP 加密（不要使用 PKCS#1 v1.5）
- 以限制性文件权限（0600）存储私钥
- 至少每年实施一次密钥轮换

## 验证标准

- [ ] 密钥生成产生有效的 RSA 密钥对
- [ ] 可以从私钥中提取公钥
- [ ] 私钥受密码保护
- [ ] RSA-PSS 签名验证成功
- [ ] 篡改后的签名验证失败
- [ ] 密钥指纹计算正确
- [ ] 密钥轮换保留对旧密钥的访问以供验证

