摘 要:
下一代加密技术接口是微软在 Windows 下实现的取代上一代加密应用程序接口的密码服务接口。其目的是提供一种可扩展的方式以支持各种应用程序和未知的密码算法,以便不同的算法、协议向操作系统注册,并对应用程序提供统一的调用接口,应用程序无需改造即可支持对新算法的使用。研究了基于下一代加密技术接口在操作系统中注册国密SM2、SM3 算法,完成解析和验证国密 SM2 证书,实现了国密算法在系统中的注册及应用。
内容目录:
1 CNG 简介
2 国密算法在系统中的注册
2.1 算法 OID 的注册
2.2 算法 Provider 的注册
2.3 Provider 库的实现
2.3.1 SM3 的实现
2.3.2 SM2 的实现
3 国密算法的实际应用
4 结 语
目前,国内主流企业所采用的密码算法都是国际公开算法。国家密码管理局早在 2012 年起就颁布了一系列的商密算法实现及应用的规范文件。国内的一些信息安全厂商和一些开源程序,例如,基于开放式安全套接层协议(Open Secure Sockets Layer,OpenSSL)实现的支持国密算法和标准的 OpenSSL 分支(GmSSL)和天安 版 国 密 OpenSSL(TaSSL) 也 基 于 该 系 列 规范实现了国密标准的对称、非对称、散列算法及接口规范。但基于该规范的实现与操作系统的实现有较大差异,目前,国密算法 SM2 虽已被纳入国际标准,但在各大操作系统上依然没有内置该算法的实现。在实际使用时仍是由应用程序开发人员使用各厂商提供的算法库来实现对国密算法的使用。一些利用操作系统应用程 序 接 口(Application