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的指令完成一个文件的数字签名和验证流程做了具体的分析和演示

原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/8407142.html

时间: 2024-11-09 02:13:14

09.openssl信息摘要和数字签名指令的相关文章

openssl 摘要和签名验证指令dgst使用详解

1.信息摘要和数字签名概述 信息摘要:对数据进行处理,得到一段固定长度的结果,其特点输入: 1.输出长度固定.即输出长度和输入长度无关. 2.不可逆.即由输出数据理论上不能推导出输入数据 4.对输入数据敏感.当输入数据变化极小时,输出数据也会发生明显的变化 5.防碰撞.即不同的数据数据得到相同输出数据的可能性极低. 由于信息摘要有上述特点,一般保证数据的完整性,对一个大文件进行摘要运算,得到其摘要值.通过网络或者其他渠道传输后,通过验证其摘要值,确定大文件本身有没有发生变化. 数字签名:数字签名

和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)

本文原文连接:http://blog.csdn.net/bluishglc/article/details/7585965 转载请注明出处! 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统开发中遇到的各种安全相关的问题,熟悉和了解这些安全技术的基本原理和使用场景还是非常必要的.本文将对非对称加密.数字摘要.数字签名.数字证书.SSL.HTTPS等这些安全领域内的技术进行一番简要的介绍,解释他们之间的关系,同时补充一些周边话题.   0. 概览--常用安全技

openssl命令行工具简介 - 指令x509

原文链接: http://blog.csdn.net/allwtg/article/details/4982507 openssl命令行工具简介 - 指令x509 用法:           openssl x509 [-inform DER|PEM|NET] [-outform DER|PEM|NET]            [-keyform DER|PEM][-CAform DER|PEM] [-CAkeyform DER|PEM]            [-in filename][-o

网络安全-安全散列函数,信息摘要SHA-1,MD5原理

-----------------------------------------------欢迎查看网络安全连载博客-----------------------------------[网络安全]-安全散列函数.信息摘要SHA-1.MD5算法       [网络安全]-非对称加密,RSA算法,数字签名[网络安全]-RSA非对称算法算法.数字签名                         [网络安全]-建立安全socket连接.登录[网络安全]-[数字证书,证书链]-----------

散列函数、消息摘要与数字签名

一, 散列函数(Hash function) 散列函数:任何一种能将任意大小数据映射为固定大小数据的函数,都能被称为散列函数.散列函数的返回值称为散列值.散列码,摘要或者简单散列. 也就是说散列函数能将任意长度的输入变换成固定长度的输出,该输出就是散列值.散列值空间通常远小于输入的空间. 散列函数的一些特性: 消息的长度不受限制 确定性:对于相同的输入(根据同一函数),它必须始终生成相同的散列值,如果两个散列值是不相同的,那么这两个散列值的原始输入也是不相同的, 但是对于不同的输入可能会散列成相

[Java 安全]消息摘要与数字签名

消息摘要 算法简述 定义 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了.因此消息摘要保证了消息的完整性.消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串密文,这一串密文亦称为数字指纹(Finger Print).它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致.这样这串摘要便可成为验证明文是否是

C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)

openssl里面有很多用于摘要哈希.加密解密的算法,方便集成于工程项目,被广泛应用于网络报文中的安全传输和认证.下面以md5,sha256,des,rsa几个典型的api简单使用作为例子. 算法介绍 md5:https://en.wikipedia.org/wiki/MD5 sha256:https://en.wikipedia.org/wiki/SHA-2 des: https://en.wikipedia.org/wiki/Data_Encryption_Standard rsa: htt

信息加密之信息摘要加密MD2、MD4、MD5

对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式--信息摘要算法MD.它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后,先对其进行加密,然后将加密的结果保存到数据库,这样即使被盗,用户的数据也不会丢失.下面上代码: JAVA的jdk提供了MD2和MD5的加密方式, JAVA不支持MD4的jdk加密方式,jdk的实现如下: private static void MD2_jdk(){ try { MessageDige

MAC信息摘要

MAC(Message Authentication Code ,消息认证码算法)是含有密钥散列函数算法,兼容MD和SHA算法的特性,并在此基础上加入了密钥.因此,MAC也称为HMAC.         MAC算法集合了MD和SHA两大系列消息摘要算法.MD系列有HmacMD2.HmacMD4.HmacMD5三种算法.SHA系列的有HmacSHA1.HmacSHA224.HmacSHA256.HmacSHA384.HmacSHA512这五种算法.MAC算法摘要值的长度与具体的摘要算法的长度一直.