2019-2020-1学期 20192415 《网络空间安全专业导论》openssl实践

2019-2020-1学期 20192415

《网络空间安全专业导论》openssl实践

- 任务详情

参考https://www.cnblogs.com/rocedu/p/5087623.html,https://www.cnblogs.com/yangxiaolan/p/6256838.html,两人一组实践附图中的混合加密,提交实践截图

  1. A,B两位同学分别产生一个公私钥对Apub,Apri, Bpub,Bpri,自己把公钥文件发送给对方(A的Apub给B,B的Bpub给A)
  2. A同学准备一个文件demo.txt,内容为AB的学号,A同学用3DES算法对demo.txt加密得到 demo1,加密密钥为K
  3. A同学用B同学的公钥Bpub对K加密得到K1,A同学用自己私钥Apri对K1签名得到K2, A把K2和Demo1发送给B
  4. B同学用A同学的公钥Apub对K2验签得到K1,再用自己的私钥Bpri对K1解密得到K
  5. B同学用K对demo1解密得到demo.txt, 查看demo内容对不对
  6. 提交过程截图

一、openssl常用命令

  1. rsa

  2. rsautl

  3. dgst

  4. enc

二、实践过程

(一)生成A的公私钥

openssl genrsa -out Apri.txt                                #生成私钥
openssl rsa -in Apri.txt -pubout -out Apub.txt              #从公钥中提取出公钥

-in filename:指明私钥文件

-out filename:指明将提取出的公钥保存至指定文件中

-pubout:根据私钥提取出公钥

参考:http://www.178linux.com/48764?utm_source=tuicool&utm_medium=referral

(二) 学号文件加密

openssl enc -in demo.txt -e -des3 -out demo1.txt -p         #用3DES算法对demo.txt加密得到demo1.txt,并打印文件密钥Key

-in filename:指定要利用的文件存放路径

-out filename:指定生成的文件存放路径

-e/d:加密/解密

-des3表示使用的加密算法是3DES

-p:打印文件密钥Key和IV值

参考:https://www.cnblogs.com/gordon0918/p/5317701.html

(三) K的加密与签名

openssl rsautl -encrypt -in K.txt -inkey Bpub.txt -pubin -out K1.txt    #利用B公钥加密K得到K1

-encrypt:用我们的公共密钥对输入的数据进行加密

-in filename:需要加密的文件

-inkey file:指定我们的私有(公有)密钥文件,格式必须是RSA私有(公有)密钥文件

-pubin:表明我们输入的是一个公钥文件(默认输入为私钥文件)

-out filename:输出加密后的文件

参考:

https://www.stackoverflow.wiki/blog/articles/2019/03/17/1552806479704.html

https://blog.csdn.net/sunweixiang1002/article/details/83864727

openssl dgst -out K2.txt -sign Apri.txt K1.txt                          #利用A私钥签名K1得到K2
或
openssl rsautl -sign -inkey Apri.pem -in K1.txt -out K2.txt             #使用rsautl需要密钥的pem形式

参考:https://blog.csdn.net/linan101/article/details/83858095

实践过程中所遇问题

  1. 学号文件加密中-p/P的使用

    [pP]

    加上p参数会打印文件密钥Key和IV值,加上P参数也会打印文件密钥Key和IV值,但不进行真正的加解密操作

    P→显示Key但不执行加密,如果此时重复out,则原本加密的文件会变成空文件

  2. 关于pem与txt

    将公钥、私钥转为文本格式:

    openssl rsa -in root.pem -text -out private.txt(私钥)

    openssl rsa -pubin -in pub.pem -text -out public.txt(公钥)

    参考:https://blog.csdn.net/sunweixiang1002/article/details/81116427

  3. 另附:genssl部分命令的中文详解——https://blog.csdn.net/liao20081228/article/details/77159039

原文地址:https://www.cnblogs.com/lanvin/p/12104165.html

时间: 2024-07-31 19:42:21

2019-2020-1学期 20192415 《网络空间安全专业导论》openssl实践的相关文章

2019-2020-1学期 20192415《网络空间安全专业导论》第一周学习总结

2019-2020-1学期 20192415 <网络空间安全专业导论> 第一周学习总结(第二章) 2.1数字形式储存信息 数字分类 数字,自然数,负数,整数,有理数 2.2 位置计数法 一个数字采用以R为基数的记数系统,具有n个数位,可表示为: 注: 任何技术系统中的最大数字比基数小1 同一数值有多种不同表示方式 无论以谁为基数,10是基数值本身 2.加减计算(进位与借位) 二进制与(2^n)进制之间的特殊关系 二进制数转换为八进制数:每三个数为一组 二进制数转换为十六进制数:每四个数为一组

2019-2020-1学期 20192415 《网络空间安全专业导论》第一周学习总结 第四章

2019-2020-1学期 20192415 <网络空间安全专业导论>第二周学习总结 第四章 门与电路 硬件元件,用电信号表示操作二进制值 4.1 计算机与电学 信号电平区分信号的值: 0~2伏为低电压,由二进制数字0表示 2~5伏为高电压,由二进制数字1表示 门(gate):对电信号执行基本运算的设备. 电路(circuit):相互关联的门组合,用于实现特定的逻辑函数. 表示法: 布尔代数--用数学符号定义和操作逻辑电路 逻辑框图--图形化表示(特定) 真值表--列举,定义功能 注:三种表示

2019-2020-1学期 20192415 《网络空间安全专业导论》GPG实践

2019-2020-1学期 20192415 <网络空间安全专业导论>GPG实践 一.安装GPG 安装编译好的二进制包: # Ubuntu sudo apt-get install gnupg 安装完成后,键入下面的命令: gpg --help 屏幕显示如下,安装成功: 二.生成自己的密匙,并输出公钥 公钥文件(.gnupg/pubring.gpg)以二进制形式储存,armor参数可以将其转换为ASCII码显示. gpg --armor --output public-key.txt --ex

2019-2020-1学期 20192415 获奖感想与网络空间安全专业导论学习总结

2019-2020-1学期 20192415 获奖感想与网络空间安全专业导论学习总结 一. 获奖感想 "你现在的状态,是过去的你用努力换来的:而你未来的状态,由你现在的努力决定." 拿到小黄衫的时候,有一点兴奋激动,也有一点惶恐紧张.兴奋激动是因为老师对我的肯定与鼓励,惶恐紧张是因为随之而来的压力. 在过去一学期的学习中,走进计算机这个对我来说既陌生又熟悉的领域:从无知的小白一点一滴积累基础理论.构建知识框架:从迷茫的新手一步步学习各种各样的应用程序.亲手敲下属于自己的第一行代码···

2019-2020-1学期 20192403 《网络空间安全专业导论》第三周学习总结

2019-2020-1学期 20192403 <网络空间安全专业导论>第三周学习总结 第六章 学习收获 计算机能够执行的操作 机器语言的定义 Pep/8 指令格式 汇编语言,汇编器,实例Hello程序的汇编语言版本 表达算法,伪代码 测试 理解思路 计算机能真正执行的程序设计是机器语言编写的-在Pep/8中体会运用机器语言-关于Pep/8本身(指令格式,一些指令)-汇编语言-表达算法(伪代码)-写伪代码算法,并检测-伪代码算法和汇编语言之间的联系(翻译) 理解难点 Pep/8的指令格式-时刻谨

2019-2020-1学期20192429《网络空间安全专业导论》第三周学习总结

2019-2020-1学期20192429<网络空间安全专业导论> 第六章 低级程序设计语言与伪代码 6.1 计算机操作 计算机是能够存储.检索和处理数据的可编程电子设备. 要改变计算机对数据的处理,只需要改变指令即可. 存储.检索和处理是计算机能够对数据执行的动作. 6.2 机器语言 计算机真正执行的程序设计指令是用机器语言编写的指令,这些指令固定在计算机的硬盘中. 机器语言(machine language):由计算机直接使用的二进制编码指令构成的语言. 这些指令是处理器唯一**真正能够执

2019-2020-1学期20192429《网络空间安全专业导论》第四周学习总结

2019-2020-1学期20192429<网络空间安全专业导论>第四周学习总结 # 第八章 抽象数据类型与子程序 # 8.1 抽象数据类型 抽象数据类型(Abstract Data Type,ADT):属性(数据和操作)明确地与特定实现分离的容器 目标:通过抽象减小复杂度. Q:如何通过抽象减小复杂度 计算机领域,可以通过从应用层,逻辑三个方面观察数据层和实现层 应用(或用户)层:特定问题中的数据的视图 逻辑(或抽象)层:数据值(域)和处理它们操作的抽象视图 实现层:明确表示出了存放数据项的

2019-2020-1学期20192423《网络空间安全专业导论》第五周学习总结

2019-2020-1学期20192423<网络空间安全专业导论>第五周学习总结 一.内容总结 第十章: 操作系统的角色 应用软件:为了满足特定需要—解决现实世界中的问题的程序 系统软件:管理计算机系统并与硬件进行交互的程序.它为创建和运行应用软件提供了工具及环境.系统软件通常直接与硬件交互. 操作系统:计算机的操作系统是系统软件的核心.管理计算机资源并为系统交互提供界面的系统软件. 引导计算机:初始时载入永久性存储器(ROM)中存储的一小组系统指令.这些指令将从二级存储器(通常是硬盘)中载入

2019-2020-1学期20192424《网络空间安全专业导论》第五周学习总结

2019-2020-1学期20192424<网络空间安全专业导论>第五周学习总结 应用软件:帮助我们解决现实世界的问题的软件. 系统软件:管理计算机系统并与计算机硬件进行交互的程序. 操作系统:管理计算机资源并为系统交互提供界面的系统软件. 多道程序设计:同时在贮存中驻留多个程序,由他们竞争CPU的技术. 内存管理:了解主存中载有多少个程序及他们的位置的动作. 进程:程序执行过程中的动态表示法. 进程管理:了解活动进程的信息的动作. CPU调度:确定主存中的哪个进程可以访问CPU以便执行的动作