




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5章章 OpenSSL签名和验证签名和验证n概述概述n5.1 函数引见函数引见n5.2 实例运用实例运用n小结小结概述概述nOpenSSL中的签名,是先对原始数据计算摘要,然后对摘要运用私钥加密即签名。n验证签名时,先对原始数据计算摘要,并对收到的签名运用公钥解密,然后对比二者结果,假设一致,那么阐明签名有效,否那么,那么以为签名无效能够缘由:原始数据或签名值被篡改。nOpenSSL在Evp.h中对签名和验证函数进展了封装。对数据签名,其实就是对数据的摘要进展私钥加密。验证签名就是解密签名数据,然后和原始摘要对比,看能否一致。n数字签名结合数字证书可以实现身份认证、防篡改、防抵赖的功能。签
2、名的数据格式为PKCS#1。概述概述5.1 函数引见函数引见n根据上面引见可知,OpenSSL在运用私钥加密前的处置过程就是生成音讯摘要的过程,因此函数本质一样,此处即摘要函数的宏定义,验证前同理。n各个函数引见如下:n 1、 签名初始化函数#define EVP_SignInit_ex EVP_DigestInit_exint EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,ENGINE *impl);n2、 签名更新函数#define EVP_SignUpdate EVP_DigestUpdateint EVP_DigestUpd
3、ate(EVP_MD_CTX *ctx,const void *d, size_t cnt);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_exint EVP_Digest
4、Init_ex(EVP_MD_CTX *ctx, const EVP_MD *type,ENGINE *impl);5.1 函数引见函数引见 5、 验证更新函数#define EVP_VerifyUpdate EVP_DigestUpdateint 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);功能:
5、计算验证终了, 提示输出验证值。参数阐明:ctx:IN上下文变量sigbuf:IN 签名值 siglen:IN 签名的长度pkey:IN 验证签名的公钥。5.1 函数引见函数引见 1. RSA根本构造struct int pad; long version; const RSA_METHOD *meth; ENGINE *engine; BIGNUM *n; n=p*q BIGNUM *e; 公开的加密指数,经常为65537ox10001 BIGNUM *d; 私钥 BIGNUM *p; 大素数p BIGNUM *q; 大素数q BIGNUM *dmp1; d mod (p-1) BIGNUM
6、 *dmq1; d mod (q-1) BIGNUM *iqmp; (inverse of q) mod p int references; int flags; / . RSA;5.1 函数引见函数引见(补充补充) 2 2初始化函数初始化函数RSA RSA * * RSA_new(void); RSA_new(void);初始化一个初始化一个RSARSA构造构造 void RSA_free(RSA void RSA_free(RSA * *rsa);rsa);释放一个释放一个RSARSA构造构造 3 3RSARSA私钥产生函数私钥产生函数RSA RSA * *RSA_generate_key
7、(int num, unsigned long e,void RSA_generate_key(int num, unsigned long e,void ( (* *callback)(int,int,void callback)(int,int,void * *), void ), void * *cb_arg);cb_arg); 产生一个模为产生一个模为numnum位的密钥对,位的密钥对,e e为公开的加密指数,普通为为公开的加密指数,普通为6553765537ox10001ox10001,假设后两个参数不为,假设后两个参数不为NULLNULL,将有些调用。在产生,将有些调用。在产生密钥
8、对之前,普通需求指定随机数种子密钥对之前,普通需求指定随机数种子 5.1 函数引见函数引见(补充补充) 5.2 实例运用实例运用n了解了签名和验证的主要函数后,下面经了解了签名和验证的主要函数后,下面经过一个实例来阐明这些函数的用法。签名过一个实例来阐明这些函数的用法。签名和验证可以完成音讯的防篡改、签名者身和验证可以完成音讯的防篡改、签名者身份认证和防抵赖。份认证和防抵赖。n本例经过本例经过RSA算法,对一段数据进展数字算法,对一段数据进展数字签名并利用公钥进展验证。签名并利用公钥进展验证。 5.2 实例运用实例运用初始化摘要算法构造体初始化摘要算法构造体签名初始化,签名初始化,设置摘要算法、密码算法引擎设置摘要算法、密码算法引擎循环调用签名摘要循环调用签名摘要update,直四处置完一切的数据直四处置完一切的数据调用摘要终了函数,输出调用摘要终了函数,输出最后的摘要值最后的摘要值终了终了开场开场加载或读取私钥加载或读取私钥数据签名流程图数据签名流程图: 5.2 实例运用实例运用验证签名流程图验证签名流程图:终了终了初始化摘要算法构造体初始化摘要算法构造体验证初始化,验证初始化,设置摘要算法、密码算法引擎设置摘要算法、密码算法引擎调用签名终了函数,输出调用签名终了函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脚手架专题-基本知识
- 一体式空气净化处理装置产品介绍
- “四位一体”综合防突措施
- 安全生产责任制文化建设与实践案例分享
- 2025至2030年电容器容量损耗多路测试分选仪项目投资价值分析报告
- 安全技术与装备更新
- 2025至2030年滤扇项目投资价值分析报告
- 中学语文汉字书写规范
- 2025至2030年无毒耐候环氧防水防蚀涂料项目投资价值分析报告
- 2025至2030年数字气象仪项目投资价值分析报告
- 原产地证书【模板】
- 国内种子企业AI应用场景探讨和管理模式研究
- 电影《白日梦想家》课件
- 红楼梦第三回课件
- 抹灰石膏特供采购合同
- 第4课 热在金属中的传递(说课稿)-2023-2024学年五年级下册科学教科版
- 《烹饪原料知识》模块四 水产类用料 习题及答案
- 浙江省七彩阳光新高考研究联盟2023-2024学年高二下学期期中联考地理试题2
- 全国赛课一等奖人美版美术四年级下册《植物写生》课件
- 【《城市文化与城市可持续发展探究:以S市为例》10000字(论文)】
- 包工头和建筑工人雇佣协议
评论
0/150
提交评论