美文网首页大数据-简书spark大数据
信息安全课程设计一周任务(7条指令的分析)

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

作者: 码农奋斗之路 | 来源:发表于2020-11-08 20:13 被阅读0次

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

    7条指令如下:

    image

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

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

    image

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

    1.dsaparam指令说明

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

    image

    指令解释:

    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位的密钥参数

    image

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

    image

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

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

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

    image

    3、直接生成DSA密钥

    (1)直接生成DSA密钥

    image

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

    image

    2.dsa指令说明

    dsa指令功能如下:

    image

    指令解释:

    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密钥

    image

    (2)使用des3加密DSA密钥

    image

    (3)解密DSA密钥

    image

    2、提取DSA的公钥

    image

    二、openssl对称加密算法enc

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

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

    查询本机Ubuntu版本:

    image

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

    image image

    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指令的参数:

    image

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

    a.对文件进行base64编码

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

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

    image

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

    a.命令行输入:

    image

    b.文件输入:

    image

    c.文件描述输入:

    image

    d.从标准输入输入:

    image

    (4)固定salt值加密

    image

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

    image

    (5)手动指定Key和IV值

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

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

    三、消息摘要命令: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的实现

    image

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

    image image

    相关文章

      网友评论

        本文标题:信息安全课程设计一周任务(7条指令的分析)

        本文链接:https://www.haomeiwen.com/subject/xeohbktx.html