SM2属于非对称加密算法,它基于椭圆曲线密码学(ECC),主要用于公钥加密、密钥交换和数字签名。虽然SM2常与数字签名紧密关联(SM2标准本身包含数字签名算法),但其本质是非对称密码算法(即公钥密码算法),数字签名是其一种典型应用模式;而独立的国密数字签名标准也统称为SM2算法体系。选项D“数字签名”描述的是功能用途,而非算法分类类别;按密码学基本分类,SM2明确归属于非对称加密(公钥密码)。
因此,正确答案是:B. 非对称加密 ✅
SM2基于椭圆曲线密码学(ECC),其私钥长度为256位,对应公钥长度通常为512位(未压缩格式:1个标志字节 + 2×256位坐标;压缩格式为257位)。其安全强度等效于RSA-3072,远高于RSA-2048(RSA-2048仅约等效于ECC-224)。
✅ 与RSA-2048相比,SM2(256位ECC)的主要优势包括:
- 更高安全强度:SM2-256提供约128比特级安全强度,而RSA-2048仅提供约112比特级安全强度;
- 更短密钥/签名长度:SM2签名长度约64字节(512位),RSA-2048签名长达256字节,显著降低带宽与存储开销;
- 更快的运算速度:私钥运算(签名、解密)在相同安全等级下,SM2比RSA快数倍(尤其在资源受限环境如智能卡、物联网设备中优势明显);
- 更低功耗与资源占用:适合嵌入式系统、移动终端及国密合规的金融IC卡、电子政务USBKey等场景;
- 国密合规强制要求:在国家关键信息基础设施中,SM2是等效替代RSA的指定非对称算法,满足《密码法》及GM/T系列标准要求。
注:根据GM/T 0003.1—2021《SM2椭圆曲线公钥密码算法 第1部分:总则》,SM2采用素域F_p上y² ≡ x³ + ax + b (mod p) 曲线,推荐参数为p为256位素数(如GB/T 32918.1定义的sm2p256v1曲线)。
SM2使用的标准椭圆曲线参数(包括素数域模数 $ p $、曲线方程系数 $ a、、、b $、基点 $ G = (G_x, G_y) $、基点阶 $ n $ 等)明确规定于国家标准:
✅GB/T 32918.1—2016《信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则》
(该标准已于2021年更新为GB/T 32918.1—2021,技术内容保持一致,仅编辑性修订;同时等同采用行业标准GM/T 0003.1—2021)
其中核心参数(sm2p256v1曲线)为:
$ p = \text{FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF}_{16} $
(即 $ 2^{256} - 2^{224} + 2^{192} + 2^{96} - 1 $,一个256位素数)$ a = \text{FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC}_{16} $
$ b = \text{28E9FA9E 9D9F5E34 4D5A9E4B CAF55000 CC072321 02020202 02020202 02020202}_{16} $
基点 $ G = (G_x, G_y) $:
$ G_x = \text{32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7}{16} $
$ G_y = \text{BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0}{16} $阶 $ n = \text{FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 2B9E519B F4489917 90412112}_{16} $(素数)
⚠️ 注意:这些参数不可自定义,必须严格采用GB/T 32918.1(或GM/T 0003.1)所指定的
sm2p256v1曲线,否则不满足国密合规要求(如等保测评、商用密码应用安全性评估)。