实验一报告

密码引擎的设计与实现

密码引擎-1-OpenEuler-OpenSSL编译

  1. 安装Ubuntu和OpenEuler虚拟机
  2. 下载最新的OpenSSL源码(1.1版本)
  3. 用自己的8位学号建立一个文件夹,cd 你的学号,用pwd获得绝对路径
  4. 参考https://www.cnblogs.com/rocedu/p/5087623.html先在Ubuntu中完成OpenSSL编译安装,然后在OpenEuler中重现

​ ./config --prefix=..(学号目录的绝对路径)指定OpenSSL编译链接

  1. 提交 test_openssl.c 编译运行截图

  2. 加分项:在Windows中编译OpenSSL,记录编译过程,提交相关文档(推荐MarkDown格式)

成功安装Ubuntu和OpenEuler虚拟机

成功安装openeuler

安装ubuntu

ubuntu用自己的8位学号建立一个文件夹,cd 你的学号,用pwd获得绝对路径

3
openeuler用自己的8位学号建立一个文件夹,cd 你的学号,用pwd获得绝对路径

4

在OpenEuler和ubuntu中完成OpenSSL编译安装
./config --prefix=..(学号目录的绝对路径)指定OpenSSL编译链接

5

6

test_openssl.c 编译运行截图

7

windows测试openssl

8

OpenSSL 使用 base64 编码/解码

9

密码引擎-2-电子钥匙功能测试

在Ubuntu中运行例程

1

2

3(1)

初始化

4(1)

运行“龙脉密码钥匙驱动实例工具等\mToken-GM3000\skf\samples\windows”中例程

5(1)

6(1)

7(1)

密码引擎-3-加密API研究

密码引擎API的主要标准和规范包括:
1 微软的Crypto API
2 RAS公司的PKCS#11标准
3 中国商用密码标准:GMT 0016-2012 智能密码钥匙密码应用接口规范,GMT 0018-2012密码设备应用接口规范等

研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客链接和代码链接。
内容:
0 查找各种标准的原始文档,研究学习(至少包含Crypto API,PKCS#11,GMT 0016-2012,GMT 0018-2012)(5分)
1 总结这些API在编程中的使用方式(5分)
2 列出这些API包含的函数,进行分类,并总结它们的异同(10分)
3 以龙脉GM3000Key为例,写出调用不同接口的代码(Crypto API,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接(10分)

详见我的另一篇博客:https://www.cnblogs.com/moonyecho/p/17285617.html

密码引擎-4-国䀄算法交叉测试

0 2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名
1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图
2 在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)
3 在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSL SM2算法计算Hash值的签名,用龙脉eKey进行验签,提交代码和运行结果截图
4 加分项:在Windows中重现上述过程

本小组为20201322与20201315
在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密

1

将原始的私钥文件,转换为pkcs8格式,利用原始的私钥,生成对应的公钥

2

openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey生成完成后的EC私钥信息

3

在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSL SM2算法计算Hash值的签名,用龙脉eKey进行验签

4

在windows下中使用OpenSSL用SM4算法加密上述文件

5

在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)但应该是因为编码问题不能查看报错

6(2)

SM3算法签名

7(2)

8

posted @ 2023-06-04 18:57  无响应trance少年  阅读(21)  评论(0)    收藏  举报