zoukankan      html  css  js  c++  java
  • 09.openssl信息摘要和数字签名指令

    9.1 信息摘要算法和数字签名
    信息摘要算法是现代密码学算法中不可缺少的一部分,与对称算法和非对称加密算法不同,他不是一种可逆的操作,经过它进行处理的数据,输出数据长度一般来说总是固定的,并且理论上很难从输出恢复输入。
    数字签名操作一般采用非对称算法(公开密钥算法),其实质是使用费对称加密算法密钥对的私钥对数据进行加密,而数字签名的验证操作则是使用公钥对数据进行解密操作,然后比较得到的原始文件跟解密得到的文件信息是否一致,如果一致,则认为数字签名有效,从而确认文件的有效性。
    指令
    指令功能描述
    sha
    SHA信息摘要算法指令,包括使用RSA密钥进行数字签名和验证功能
    sha1
    SHA1信息摘要算法指令,包括使用RSA密钥进行数字签名和验证功能
    md5
    MD5信息摘要算法指令,包括使用RSA密钥进行数字签名和验证功能
    md4
    MD4信息摘要算法指令,包括使用RSA密钥进行数字签名和验证的功能
    md2
    MD2信息摘要算法的指令,包括使用RSA密钥进行数字签名和验证的功能
    mdc2
    MDC2信息摘要算法指令,包括使用RSA密钥进行数字签名和验证的功能
    rmd1160
    RIPEMD160信息摘要算法指令,包括使用RSA密钥进行数字签名和验证的功能
    dgst
    集成了所有信息摘要算法指令的功能
    9.2 指令格式
    9.3 指令选项说明
    signature指定了保存要进行验证的签名信息的文件,通常来说,为了正确验证,应该是一个二进制编码的文件,十六进制编码的文件可能导致不能正确验证。
    verify选项表示将要输入的用于验证数字签名的密钥是一个公钥
    prverify选项,择表示将输入的文件保存的是一个私钥
    keyform选项告诉指令输入用于签名或者验证的密钥属于什么编码格式。
    9.4 使用信息摘要指令进行数字签名和验证
    9.4.1 执行数字签名
    a.数字签名流程概述
    a1.产生一个RSA或者DSA密钥对
    a2.使用某种信息摘要算法对文件进行信息摘要操作得到摘要信息
    a3.使用RSA或DSA私钥对摘要信息进行加密完成签名操作
    a4.将RSA获DSA私钥对应的公钥、文件和签名信息一起保存或者发送给接收方。
    b.执行RSA数字签名
    b1.首先生成一个RSA密钥,并加密保存
    b2.从生成的RSA私钥中导出一个相应的RSA公钥并保存
    c.执行DSA数字签名
    c1.首先生成一组DSA密钥参数,可硬用来生成以后可能需要的许多DSA密钥
    c2.根据这组DSA密钥参数生成一个DSA私钥,并加密保存在文件中
    c3.根据DSA私钥导出DSA公钥并保存
    c4.使用dgst指令文件进行信息摘要操作和数字签名操作
    c5.sgn.txt 、file.doc和dsapubkey.pem一起保存或者发送给接收方,完成整个DSA数字签名流程。
    9.4.2 验证数字签名
    a.验证数字签名流程概述
    条件:原始文件file.doc,文件数字签名信息sgn.txt;签名私钥对应的公钥
    验证:
    a1.对原始文件采用跟签名时相同的信息摘要算法对原始文件file.doc做信息摘要操作得到摘要信息M1;
    a2.使用公钥解密sgn.txt里面的签名信息得到解密后的数据M2
    a3对比M1和M2,如果一致则签名验证通过,
    b.验证RSA数字签名
    c.验证DSA数字签名
    9.5 本章小结
    a.介绍了信息摘要算法的性质及其在数字签名中的应用,并对Openssl提供的相关指令的功能作了简要的分析
    b.dgst等信息摘要指令的格式和功能做了详细的分析介绍,对每个选项都做了必要的说明
    c.openssl的指令完成一个文件的数字签名和验证流程做了具体的分析和演示
  • 相关阅读:
    BUU MISC 刷题记录 (一)
    BUU MISC 刷题记录(三)
    2021/8/18 随笔(区间互质)
    2021/8/17随笔
    连通图与Tarjan算法
    【tarjan/v-DCC】Redundant Paths POJ
    ACM OJ常见错误以及解决方法
    【鸽巢原理】Halloween treats HDU
    frp&nps实现socks5代理
    零组文库签到+腾讯云函数+钉钉推送
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/8407142.html
Copyright © 2011-2022 走看看