选择ECC/SM2算法时,无需关注加密位数选项,仅适用于RSA/DSA算法,算法解释:
ECC: 椭圆曲线数字签名算法; RSA: 非对称加密; DSA: 数字签名算法,每类算法都又根据参数不同有具体的实现,比如:
ECC根据曲线名称的不同分为几种:
| Curve | Possible identifiers |
|---|---|
| NIST P-256 | 'NIST P-256', 'p256', 'P-256', 'prime256v1', 'secp256r1' |
| NIST P-384 | 'NIST P-384', 'p384', 'P-384', 'prime384v1', 'secp384r1' |
| NIST P-521 | 'NIST P-521', 'p521', 'P-521', 'prime521v1', 'secp521r1' |
RSA/DSA算法 有对应的计算位数,如1024,2048, 3072,计算位数越多,安全性越高,但性能越低,另
PKCS(The Public-Key Cryptography Standards)定义也有几种如:PKCS#1,PKCS#8。
私钥密码对私钥进行保护加密,解密时需要提供,否则可以不用设置.
DSA 是用于数字签名的一种算法,私钥进行签名,公钥进行验证.
SM2 公钥格式:
主要分为未压缩和压缩两种形式, 具体如下:
未压缩公钥以 04 为前缀, 后跟两个 256 位的数字, 分别表示椭圆曲线点的 x 坐标 和 y 坐标。格式为 04 || x || y, 总长度为 65 字节(04 可忽略)。
压缩公钥根据 y 坐标的奇偶性, 使用 02 或 03 作为前缀, 仅存储 x 坐标。如果 y 坐标最低位为 0, 前缀为 02; 如果 y 坐标最低位为 1,前缀为 03。格式为 02/03 || x, 总长度为 33 字节。