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

任务详情

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

任务过程

0 2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名

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

1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图

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

2 在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)

在安装了正确版本的openssl之后,下面就是利用openssl自带的命令生成SM2公私钥对了:

1.创建EC参数和原始私钥文件:
openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey

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

生成完成后可以查看一下EC私钥信息:
openssl ecparam -in ec_param.pem -text

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

验证一下参数是否正确:
openssl ecparam -in ec_param.pem -check

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

2.将原始的私钥文件,转换为pkcs8格式:
openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out pri_key_pkcs8.pem

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

3.利用原始的私钥,生成对应的公钥:
openssl ec -in ec_param.pem -pubout -out pub_key.pem
至此SM2的秘钥对已经生成结束,pri_key_pkcs8.pem是SM2私钥,而pub_key.pem是公钥。

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

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

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

把摘要值放进dgst.txt中:

用sm2的私钥进行签名:

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

Original: https://www.cnblogs.com/zzjjyy123/p/16150636.html
Author: 20191223张俊怡
Title: 实验一 密码引擎-4-国䀄算法交叉测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585841/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • WSL2+Docker+IDEA一站式开发调试

    WSL2+Docker+IDEA一站式开发调试 前言 ​ 我们知道,Docker是一个容器引擎;对于开发者来说,使用Dokcer容器部署各种开发需要的中间件(比如myql、redi…

    Linux 2023年6月7日
    0101
  • 每周一个linux命令(ip)

    基础环境 Ip命令介绍 ip命令是一个能够给linux系统设置网络相关信息的命令,通过ip命令可以设置ip地址、子网掩码、网关、路由信息,本节主要讲解ip地址的查看、临时ip地址、…

    Linux 2023年6月8日
    0107
  • [20220314]利用vim下使用gdb进行各种进制转换插件.txt

    [20220314]利用vim下使用gdb进行各种进制转换插件.txt –//前一段时间学习使用gdb进行各种进制转换,当时遇到有时候16进制与10进制一起运算的问题,…

    Linux 2023年5月27日
    068
  • shell 中的EOF

    EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表EOF。EOF一般会配合cat能…

    Linux 2023年5月28日
    098
  • SharePoint 2010开发工具图解系列:PowerShell脚本

    练习 :使用PowerShell脚本 在此次练习中,您将了解到如何使用PowerShell和专为SharePoint 2010构建的PowerShell加载项。 从Windows …

    Linux 2023年5月28日
    086
  • 5.9 Linux Vim批量注释和自定义注释

    使用 Vim 编辑 Shell 脚本,在进行调试时,需要进行多行的注释,每次都要先切换到输入模式,在行首输入注释符 #再退回命令模式,非常麻烦。 连续行的注释其实可以用替换命令来完…

    Linux 2023年6月7日
    081
  • 重启电脑后Mysql无法在cmd运行

    问题描述:如果在cmd窗口显示 ‘mysql’不是内&#x90…

    Linux 2023年6月15日
    0132
  • 单片机 MCU 固件打包脚本软件

    ​ 1 前言 开发完 MCU 软件后,通常都会生成 hex 文件或者 bin 文件,用来做固件烧录或者升级,如果用来做产品开发,就涉及到固件版本的问题,初学者通常采用固件文件重命名…

    Linux 2023年6月7日
    091
  • 让Mac界面和Windows界面在Laxcus集群操作系统上合体

    如果一套操作系统,同时拥有苹果Mac风格的图形桌面,和微软Windows风格的图形桌面,你会是一种什么样的体验? 最近,我们公司的GUI研发团队完成了这项技术突破,在持续不断地技术…

    Linux 2023年6月6日
    0104
  • Ubuntu18上面一个非常有用的配置工具【gnome-tweaks】

    Ubuntu 18.04 LTS的Gnome桌面UI主打简约,但是相比前几个发行版本上的UI功能, 18.04默认的UI已经阉割掉了。其实 Ubuntu官方将我们上面所说的UI功能…

    Linux 2023年5月27日
    0105
  • 数据库常用函数

    一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然…

    Linux 2023年6月13日
    086
  • 将Java代码打包成jar文件转换为.exe可执行程序方法

    ​ 做完学生管理系统后我想将代码打包成一个可执行程序,那样就可以直接点击在Windows下运行了,下面就跟大家分享下打包方法。 将Java的代码转换成 .exe 文件需要先把代码打…

    Linux 2023年6月6日
    096
  • python写日志

    写日志的办法多种多样,我这个是我喜欢的办法,可以做个参考 没啥说的,直接上代码 import time def write_log(value): now_time = time….

    Linux 2023年6月6日
    074
  • Java秒杀系统三:web层

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    091
  • Markdown基础语法

    Markdown语法 ## 欢迎使用Markdown编辑器 你好! 这是你第一次使用 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下M…

    Linux 2023年6月14日
    0101
  • Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录【已成功实例】

    本文转自https://blog.csdn.net/qjc_501165091/article/details/51278696 ssh登录提供两种认证方式:口令(密码)认证方式和…

    Linux 2023年5月28日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球