国密算法的ekey基本使用的说明

概述

本次需要进行的实验研究是国密算法的ekey的使用。对于一个或者多个应用来说,每个应用可以包含一个或多个容器(Container),每个容器中可以存放两对分别用于加密和签名的密钥对,以及两个相应的证书或证书链。每一个容器只能为ECC或RSA一种类型,一个容器中不能混用ECC密钥和RSA密钥。根据个人的理解,ekey的作用就是生成容器,将需要加密的消息或文件利用相应的加密算法加密后,生成证书,将证书导入ekey的容器中。这样以便于在其他终端上用到该文件时,使用ekey,其容器中的对应的证书可以进行身份验证,确保安全。

实验环境

  • Windows 7
  • Linux Debian Kali
  • The GmSSL Project
    这里使用SM2算法对相关文件进行加密

实验过程

实验主要分为以下几个流程:

  • 生成SM2密钥对
  • 生成SM2自签证书作为根CA
  • 生成SM2密钥对
  • 生成证书请求CSR
  • 用CA进行签名
  • 验签
  • 生成PKCS12格式的证书文件
  • 在win环境下验证证书

具体过程如下:
生成SM2密钥对cakeyGM.pem:

生成 SM2 自签证书,作为根CA ,输入相关的详细信息,生成cacertGM.crt:

生成SM2密钥对 testUserGM.key:

之后,生成证书请求CSR:
gmssl req -new -key testUserGM.com.key -out testUserGM.com.csr
再后,用一开始生成的CA进行签名:
gmssl ca -in testUserGM.com.csr -out testUserGM.com.crt -cert demoCA/cacertGM.crt -keyfile demoCA/private/cakeyGM.pem
验签:
gmssl verify -verbose -x509_strict -CAfile demoCA/cacertGM.crt testUserGM.crt
生成PKCS12格式的证书文件:

上述操作已经生成了PKCS12格式的证书,并已经导入到了ekey,之后打开win7系统,配置好ekey的管理工具,发现已经生成了ContainerGuo的容器,里面显示出了上面生成的证书,如下图所示:

点击证书的详细信息,查看证书颁发者的详细信息,与上面配置输入的相关信息一致,如下图所示:

至此,ekey里已经存入了生成的证书,并且信息与配置的一致,验证成功。

以上,即为ekey的基本使用的介绍。
参考文献:https://blog.csdn.net/weixin_42037232/article/details/88537092

原文地址:https://www.cnblogs.com/intoxication/p/10963932.html