生成方式因算法而异:椭圆曲线只需一个随机标量和一次点乘(耗时以微秒计);Ed25519 或 ML-DSA 需要一个随机种子;RSA 则要搜索两个大素数,在 Apple M4 Max 的单个核心上使用 OpenSSL 3.6.5 时,2048 位平均约需 26 毫秒,4096 位约需 250 毫秒,且波动很大。所有算法都需要密码学安全的随机数生成器;随机数生成器质量不佳,就会生成弱密钥或重复的密钥。
良好实践:在使用密钥的地方生成密钥(HSM、Secure Enclave 或服务器内部),而不是复制过去;把算法和用途与密钥一起记录下来(JWK 的 alg 和 use、X.509 密钥用法);每种用途使用单独的密钥对(SP 800-57 第 1 部分 §5.2);从第一天起就规划密钥轮换。
要确认证书、CSR 或 JWK 是否属于某个私钥,应比较公钥,而不是比较文件名:密钥与证书匹配检测可以在本地完成这项比较。