信息安全课程设计第一周任务(7条指令的分析)

时间:2024-01-27 16:46:47

信息安全课程设计第一周任务(7条指令的分析)

概述:本篇博客主要为大家介绍openssl的7条指令的具体功能和实现。

7条指令如下:

dsaparam       dsa     enc

md_gost94 bf-ecb bf-ofb camellia-128-cbc

 

一、openssl和DSA算法相关的指令

openssl中DSA算法指令主要有三个,分别是

指令 功能
dsaparam 生成、处理DSA密钥参数,也可以直接生成DSA密钥
dsa 处理DSA密钥格式的转换
gendsa 根据DSA密钥参数生成一个DSA密钥

 

本文主要为大家介绍前两个

1.dsaparam指令说明

dsaparam主要用户生成密钥参数,也可以生成DSA密钥其用法如下:

 

 指令解释:

1.[-help]:显示总结

2.[-inform PEM|DER]:PEM|DER输入格式- DER 或者 PEM

3.[-in infile]:输入文件

4.[-outform PEM|DER]:PEM|DER输出格式- DER 或者 PEM

5.[-out outfile]:输出文件

6.[-text]:文本打印为文本

7.[-C]:输出C代码

8.[-noout]:没有输出

9.[-genkey]:生成一个DSA密钥

10.[-rand val]:加载文件到随机数生成器

11.[-writerand outfile]:将随机数据写入指定的文件

12.[-engine val]:引擎是否使用引擎e,可能是硬件设备

 具体实现:

1、生成密钥参数并查看其各个参数值

(1)生成1024位的密钥参数

 

 

(2)明文查看密钥参数的值

 

2、密钥参数格式间的转换

第一条指令为pem格式的密钥参数转为der格式

第二三条指令为der格式的密钥参数转为pem格式

 

 3、直接生成DSA密钥

(1)直接生成DSA密钥

 

(2)查看DSA密钥,可知参数和密钥都被放在输出文件中,说明本质上还是先生成参数,再利用参数生成密钥

 

 

 

2.dsa指令说明

dsa指令功能如下:

 指令解释:

1.[-help]:显示总结

2.[-inform format]:输入格式 DER PEM PVK

3.[-outform format]:输出格式 DER PEM PVK

4.[- in val]:输入关键

5.[-out outfile]:输出文件

6.[-noout]:没有输出

7.[-text]:文本打印为文本

8.[-modulus]:打印DSA公共值

9.[-pubin]:期望输入文件中有一个公钥

10.[-pubout]:输出公钥,而不是私钥

11.[-passin val]:输入文件传递短语源文件

12.[-passout val]:输出文件传递短语源文件

13.[-pvk-strong]:启用'强'PVK编码级别(默认)

14.[-pvk-weak]:启用'弱'PVK编码级别

15.[-pvk-none]:不要强制PVK编码

16.[-engine val]:引擎是否使用引擎e,可能是硬件设备

17.[-*]:任何受支持的密码

具体实现:

1、加密密钥和解密密钥

(1)生成未加密的DSA密钥

 

(2)使用des3加密DSA密钥

 

 

(3)解密DSA密钥

 

 

 

 2、提取DSA的公钥

二、openssl对称加密算法enc

openssl的加密算法库提供了丰富的对称加密算法,我们可以通过openssl提供的对称加密算法指令的方式使用。

openssl的对称加密算法指令主要用来对数据进行加密和解密处理,openssl基本上为所有其支持的对称加密算法都提供了指令的方式的应用,这些应用指令的名字基本上都是对称加密算法本身的名字加上位数、加密模式或者其他属性组合而成。

查询本机Ubuntu版本:

 1.Ubuntu20.04 openssl版本enc指令功能如下:

1.[-help]:显示这个总结

2.[-list]:密码列表

3.[-ciphers]:别名附些

4.[-in infile]:输入文件

5.[--out outfile]:输出文件

6.[-pass val]:密码来源

7.[-e/-d]:加解密

8.[-p]:打印iv/key

9.[-P]:打印iv/key并退出

10.[-v]:详细输出

11.[-nopad]:禁用标准块填充

12.[-salt]:在KDF中使用盐(默认)

13.[-nosalt]:在KDF不使用盐

14.[-debug]:打印调试信息

15.[-a]:Base64编码/解码,取决于加密标志

16:[-base64]:同-a

17.[-A]:与-[base64|a]一起使用,将base64缓冲区指定为单个

18.[-bufsize val]:缓冲区大小

19.[-k val]:密码

20.[-kfile infile]:从文件中读取密码

21:[-K val]:Raw键,十六进制

22.[-S val]:盐,在十六进制

23.[-iv val]:IV在十六进制

24.[-md val]:使用指定的摘要从密码短语创建密钥

25.[-iter +int]:指定迭代计数和PBKDF2Use基于密码的密钥派生函数2的强制使用

26.[-none]:不加密

27.[-*]:任何受支持的密码

28.[-rand val]:将文件加载到随机数生成器中

29.[-writerand outfile]:向指定的文件写入随机数据

30.[-engine val]:引擎是否使用引擎e,可能是硬件设备

2.具体实现:

(1)用对称加密指令作为enc指令的参数:

 

(2)只对文件进行base64编码,而不使用加解密

a.对文件进行base64编码

b.对base64格式文件进行解密操作

c.使用diff命令查看可知解码前后明文一样

(3)不同方式的密码输入方式

a.命令行输入:

 

 b.文件输入:

 

 c.文件描述输入:

 

 d.从标准输入输入:

 

 (4)固定salt值加密

 

可以看到,不使用-S参数,salt参数随机生成,key和iv值也不断变化,当slat值固定时,key和iv值也是固定的。

 

 

 

(5)手动指定Key和IV值

手动指定key和iv值,salt固定

 


指定pass密码,不起作用,注意Key和IV值是16进制

三、消息摘要命令:md_gost94

网上找到和md_gost94相关的资料

加密私钥和PKCS12
要生成与MagPro CSP兼容的PKcs12文件,需要使用
对PKcs12文件和GOST R34.11-94文件进行加密的GOST算法
从密码派生密钥的哈希

Openssl pksc12-export-inkey gost.pem-in gost_cert.pem-keypbe gost89
- certpbe gost89 - macalg md_gost94

 

 

四、密码命令:     

bf-ecb           bf-ofb          camellia-128-cbc

 在密码学中,camellia是块密码的意思。Camellia算法每块的长度为128位元,密钥长度则可以使用128、192或256位元。具有与AES同等级的安全强度及运算量。这里所描述的两条命令是密钥长度为256位元时两种不同的加密解密模式。

1.camellia-128-cbc的实现

 

 

2.bf-ecb和bf-ofd的实现: