ecparam 能做什么
该命令用于列举可用曲线与生成椭圆曲线密钥,也支持国密曲线名。3.x 下生成密钥也可以使用通用的密钥生成命令,但它在快速生成与查看曲线参数时仍然常用。使用时要注意区分参数块与密钥本身:默认输出会带上参数块,加上不输出参数的选项后得到的才是干净的密钥文件。
基本信息
| 列举曲线 | 列出本机支持的曲线名称 |
|---|---|
| 生成密钥 | 按名称指定曲线并生成密钥文件 |
| 国密曲线 | 支持国密曲线名,需注意库版本 |
| 输出控制 | 不输出参数块,避免与密钥混在一起 |
典型使用场景
- 生成椭圆曲线密钥:按目标曲线名称一次性生成
- 核对曲线支持:确认目标环境是否支持所需曲线
- 国密改造:生成国密曲线密钥用于签名与加密
- 排错:确认密钥使用的曲线与对端预期一致
- 验证与教学:查看曲线参数与密钥结构
查看与生成
查看与生成
openssl ecparam -list_curves | head -15 # 列举曲线
openssl ecparam -name prime256v1 -genkey -noout -out p256.key # 生成常用曲线密钥
openssl ecparam -name SM2 -genkey -noout -out sm2.key # 生成国密曲线密钥
openssl ec -in p256.key -noout -text | head -8 # 查看密钥与曲线信息常见曲线
| 曲线名 | 位数 | 常见用途 |
|---|---|---|
| prime256v1 | 256 位 | 通用签名与证书 |
| secp384r1 | 384 位 | 更高强度场景 |
| secp256k1 | 256 位 | 特定行业链 |
| 国密曲线 | 256 位 | 国密合规场景 |
生成椭圆曲线密钥时用不输出参数的选项跳过参数块;带参数块的旧格式文件在部分工具中需要额外处理,容易造成导入失败。
落地建议
- 生成后立刻核对曲线名称与位数
- 密钥文件权限按私钥基线设置
- 国密场景先确认库版本支持对应曲线
- 把生成命令固化到脚本,避免人工选择错误
两条名称相近的 256 位曲线是完全不同的曲线,混用会造成签名无法验证;选择时按标准要求确认,不要凭记忆填写曲线名。