r、s sm2签名值_【中国科学报】SM2与SM9数字签名正式成为国际标准

【中国科学报】SM2与SM9数字签名正式成为国际标准

2017-11-13中国科学报 沈春蕾

【字体:大 中 小】

语音播报

近日,第55次ISO/IEC信息安全分技术委员会(SC27)会议在德国柏林召开。我国SM2与SM9数字签名算法一致通过为国际标准,正式进入标准发布阶段,这也是本次SC27会议上密码与安全机制工作组通过的唯一进入发布阶段的标准项目。

这两个数字签名机制为ISO/IEC 14888-3/AMD1标准研制项目的主体部分。该项目由中国科学院软件研究所研究员张振峰主持研制并承担推进任务。这是我国商用密码标准首次正式进入ISO/IEC标准,提升了我国在网络空间安全领域的国际标准化水平。

据悉,SM2椭圆曲线数字签名算法和SM9标识数字签名算法是我国国家密码管理局发布的数字签名标准。数字签名,又称电子签名,用于保证身份的真实性、数据的完整性和行为的不可否认性等,是世界各国保障网络空间安全、构建可信可控信息技术体系的密码重器。

ISO/IEC 14888-3/AMD1进入发布阶段,标志着我国在向国际标准化组织(ISO)和国际电工委员会(IEC)贡献中国密码标准方面取得了重要突破,推进了我国数字签名标准在国际标准中的转化应用,对于增强我国密码产业在国际上的核心竞争力具有重要的意义。

(原载于《中国科学报》 2017-11-13 第5版 创新周刊)

近日,第55次ISO/IEC信息安全分技术委员会(SC27)会议在德国柏林召开。我国SM2与SM9数字签名算法一致通过为国际标准,正式进入标准发布阶段,这也是本次SC27会议上密码与安全机制工作组通过的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java原生的加密库中并没有直接支持SM2证书的API。但是可以通过引入Bouncy Castle加密库来实现SM2证书的生成和使用。 以下是生成SM2证书的示例代码: ```java import java.io.FileOutputStream; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.Security; import java.security.cert.X509Certificate; import java.util.Date; import org.bouncycastle.asn1.x500.X500Name; import org.bouncycastle.cert.X509v3CertificateBuilder; import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.operator.ContentSigner; import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; import org.bouncycastle.operator.jcajce.JcaContentVerifierProviderBuilder; public class SM2CertificateGenerator { public static void main(String[] args) throws Exception { Security.addProvider(new BouncyCastleProvider()); // 生成SM2密钥对 KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", "BC"); kpg.initialize(256); KeyPair keyPair = kpg.generateKeyPair(); // 构建证书 X500Name issuer = new X500Name("CN=Test CA, O=Test Org"); X500Name subject = new X500Name("CN=Test User, O=Test Org"); X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder( issuer, BigInteger.valueOf(System.currentTimeMillis()), new Date(System.currentTimeMillis() - 86400000L), new Date(System.currentTimeMillis() + 86400000L), subject, keyPair.getPublic() ); // 签名证书 ContentSigner signer = new JcaContentSignerBuilder("SM3withSM2") .setProvider("BC") .build(keyPair.getPrivate()); X509Certificate cert = new JcaX509CertificateConverter() .setProvider("BC") .getCertificate(certBuilder.build(signer)); // 保存证书 FileOutputStream out = new FileOutputStream("sm2_cert.cer"); out.write(cert.getEncoded()); out.close(); // 验证证书 cert.verify(new JcaContentVerifierProviderBuilder().setProvider("BC").build(keyPair.getPublic())); } } ``` 以上代码使用Bouncy Castle加密库生成了一个SM2证书,并将其保存到文件中。其中使用了SM3withSM2算法进行证书签名。在验证证书的过程中,需要使用证书的公钥进行验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值