国家商用密码(四)开放动态库及演示程序

同系列文章:

开放动态库支持中国商用密码算法:SM2、SM3、SM4,同时也支持AES对称加密算法。

下载地址:

国家商用密码算法开放动态库及演示程序C#语言版
国家商用密码算法开放动态库及演示程序Java语言版

当前提供的语言版本:

C#语言版本,其开发环境为:Visual Studio V2013、.NET Framework 4.5
Java语言版本,其开发环境为:NetBeans 8.0.2、JDK 8u45

算法说明
SM2:

  • 支持P-256、P-384、P-521椭圆曲线
  • 实现公钥加密算法、数字签名算法、密钥交换协议
  • 实现基于椭圆曲线加密算法的软件授权码生成及校验

// 使用中国国家密码管理局推荐P256椭圆曲线
SM2 sm2 = new SM2();
SM2 sm2A = new SM2(SM2.EC256[0], SM2.EC256[1], SM2.EC256[2], SM2.EC256[3], SM2.EC256[4], SM2.EC256[5]);

// 使用美国国家标准与技术研究院推荐P256椭圆曲线
SM2 NISTECP256 = SM2.CreateInstance(256);
SM2 NISTECP256A = new SM2(SM2.NISTEC256[0], SM2.NISTEC256[1], SM2.NISTEC256[2], SM2.NISTEC256[3], SM2.NISTEC256[4], SM2.NISTEC256[5]);

// 使用美国国家标准与技术研究院推荐P384椭圆曲线
SM2 NISTECP384 = SM2.CreateInstance(384);
SM2 NISTECP384A = new SM2(SM2.NISTEC384[0], SM2.NISTEC384[1], SM2.NISTEC384[2], SM2.NISTEC384[3], SM2.NISTEC384[4], SM2.NISTEC384[5]);

// 使用美国国家标准与技术研究院推荐P521椭圆曲线
SM2 NISTECP521 = SM2.CreateInstance(521);
SM2 NISTECP521A = new SM2(SM2.NISTEC521[0], SM2.NISTEC521[1], SM2.NISTEC521[2], SM2.NISTEC521[3], SM2.NISTEC521[4], SM2.NISTEC521[5]);

SM3:

  • 实现SM3密码杂凑算法
  • 实现HMACSM3消息验证代码

SM4:

  • 运算模式支持:ECB、CBC、CFB、OFB、PCBC、CTR、ECBCTS、CBCCTS
  • 填充类型支持:PKCS7、ANSIX923、ISO10126、ISO7816、Zeros、None

Comments are closed.