第5章OpenSSL签名和验证.pptVIP

  • 10
  • 0
  • 约2.52千字
  • 约 12页
  • 2019-02-05 发布于湖北
  • 举报
第5章OpenSSL签名和验证

第5章 OpenSSL签名和验证 概述 5.1 函数介绍 5.2 实例应用 小结 概述 OpenSSL中的签名,是先对原始数据计算摘要,然后对摘要使用私钥加密即签名。 验证签名时,先对原始数据计算摘要,并对收到的签名使用公钥解密,然后对比二者结果,如果一致,则说明签名有效,否则,则认为签名无效(可能原因:原始数据或签名值被篡改)。 概述 OpenSSL在Evp.h中对签名和验证函数进行了封装。对数据签名,其实就是对数据的摘要进行私钥加密。验证签名就是解密签名数据,然后和原始摘要对比,看是否一致。 数字签名结合数字证书可以实现身份认证、防篡改、防抵赖的功能。签名的数据格式为PKCS#1。 5.1 函数介绍 根据上面介绍可知,OpenSSL在使用私钥加密前的处理过程就是生成消息摘要的过程,因此函数实质一样,此处即摘要函数的宏定义,验证前同理。 各个函数介绍如下: 1、 签名初始化函数 #define EVP_SignInit_ex EVP_DigestInit_ex int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,ENGINE *impl); 2、 签名更新函数 #define EVP_SignUpdate EVP_DigestUpdate int EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d, size_t cnt); 5.1 函数介绍 3、 签名结束函数 int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char* md, unsigned int *s, EVP_PKEY *pkey); 功能:计算签名结束, 输出签名值。 参数说明: ctx:[IN]上下文变量 md:[OUT] 签名结果输出值的指针 s:[OUT] 签名的长度 pkey:[IN] 签名的私钥。 4、 验证初始化函数---设置摘要算法和摘要算法引擎 #define EVP_VerifyInit_ex EVP_DigestInit_ex int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,ENGINE *impl); 5.1 函数介绍 5、 验证更新函数 #define EVP_VerifyUpdate EVP_DigestUpdate int EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d,size_t cnt); 6、 验证结束函数 int EVP_VerifyFinal (EVP_MD_CTX *ctx, const unsigned char *sigbuf, unsigned int siglen, EVP_PKEY *pkey); 功能:计算验证结束, 提示输出验证值。 参数说明: ctx:[IN]上下文变量 sigbuf:[IN] 签名值 siglen:[IN] 签名的长度 pkey:[IN] 验证签名的公钥。 5.1 函数介绍(补充) 5.1 函数介绍(补充) 5.2 实例应用 5.2 实例应用 5.2 实例应用 小结 理解并掌握签名和验证签名的基本原理。 理解并掌握openssl签名和验证签名的常用函数。 * * 1. RSA基本结构 struct ????{ ????? int pad; ????? long version; ????? const RSA_METHOD *meth; ????? ENGINE *engine; ????? BIGNUM *n;???????? n=p*q ????? BIGNUM *e;???????? 公开的加密指数,经常为65537(ox10001) ????? BIGNUM *d;???????? 私钥 ????? BIGNUM *p;???????? 大素数p ????? BIGNUM *q;???????? 大素数q ????? BIGNUM *dmp1;????? d mod (p-1) ????? BIGNUM *dmq1;????? d mod (q-1) ????? BIGNUM *iqmp;????? (inverse of q) mod p ????? int references; ????? int flags; ??????? // ... ????? }RSA; 2.初始化函数 RSA * RSA_new(void);初始化一个RSA结构 void RSA_free(RSA *rsa);释

文档评论(0)

1亿VIP精品文档

相关文档