openssl

算法基础

1.1 对称算法 : 密钥相同,加密解密使用同一密钥

1.2 摘要算法:无论用户输入的数据什么长度,输出的都是固定长度的密文;即信息摘要,可用于判断数据的完整性;目前常用的有 MD5(16字节), SHA1(20字节)

1.3 公钥算法:使用同一个公钥和算法加密(公开),使用各自的密钥解密; 主要有 RSA、DSA;

1.4 RSA算法:原理:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即是公钥(通常1024位);通常用于数字签名和保密通信;

1.5 DSA算法:原理:DSA是基于整数有限域离散对数难题的;不能用作加密,只用作数字签名;

1.6 openssl简介: c语言开发,是一个功能丰富的开源安全工具箱;openssl 官网

1.7 MD5校验:mac下,可以直接使用终端md5命令,查看生成文件,字符串的md5

1.8 哈希表: 指存储位置与关键字之间建立的确定关系,不同的关键字可能得到同一哈希表。

1.9 伪随机数:软件生成的随机数,一般称之为伪随机数,安全性高的应用使用硬件方式生成随机数(随机数发生器)。

1.10 ASN1 :描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。

1.11 EVP:openssl evp 提供了丰富的密码学中的和种函数,包括对称算法,摘要算法,签名/验签等;

1.12 PEM : openssl 使用 pem格式来存放各种信息,是默认的信息存放方式;

1.13 Engine:由硬件内部的密码计算方法控件openssl内的各密码计算;从而替换openssl提供的一些密码计算方法;

1.14 X509数字证书:数字证书是将用户(或其他实体)身份与公钥绑定的信息载体。一个合法的数字证书 不仅要符合 X509 格式规范,还必须有 CA 的签名。用户不仅有自己的数字证书,还必 须有对应的私钥。即是 .cer 文件;

1.15 OCSP:在线证书状态协议,用于实时表明 证书状态。

1.16 CRL : 证书撤销列表,是一种包含摊销的证书列表的签名数据结构。好比黑名单。

1.17 PKCS7 : 是各种消息存放的格式标准。这些消息包括:数据、签名数据、数字信封、签名数字信封、摘要数据和加密数据。

1.18 PKCS12: 用于存放用户证书、crl、用户私钥等的个人信息文件;里面的数据是加密的;

@2014-10-27

数字签名流程

  1. 假定用户 userA,要给用户 userB,发送信息 sms ;
  2. userA 先生成自己的 公钥 (PKa )和 密钥 (SKa ), 常用的算法有 RSA,DSA;
  3. userA 对信息 sms 做信息摘要处理得到 md5_SMS , 常用的摘要算法md5,sha1;
  4. userA 用 自己的密钥 SKa 加密信息摘要 md5_SMS 得到 enc_md5_SMS,即数字签名;
  5. userA 把 enc_md5_SMS 数字签名 、自己的公钥PKa 以及 原数据 sms 一起发送给 userB;
  6. userB 用同样的摘要算法对 sms 处理得到 userB_md5_SMS;
  7. userB 用 userA的公钥 PKa 解密 数字签名enc_md5_SMS 得到 userB_dec_md5_SMS;
  8. userB 去比较 userB_dec_md5_SMS 和 userB_md5_SMS 是不是相同的,如果相同那么确认数字签名是userA发的,并且数据安全没有被篡改。

数字签名的特性:一是不可冒充,别人假冒不了(因为没有私钥);二是可以保证数据的完整性(因为内容改变信息摘要也改变);

@2014-10-28

数字信封

数字信封:是将对称密钥通过 非对称加密技术加密,然后将结果分发出去。

  1. 假定用户 userA 要给用户 userB,发送信息 sms;
  2. userB 先生成自己的 公钥和私钥,即是 PKb, SKb;
  3. userB 把自己的 公钥 Pkb 分发给 userA, 此公钥可公开;
  4. userA 随机生成一个 对称加密密码 PWD ,然后用 PWD加密信息 sms得到 userA_enc_sms;
  5. userA 用 userB的 PKb 去加密 对称加密密码 PWD 得到 userA_enc_PWD;然后userA 把 userA_enc_PWD 分发给用户 userB(这就是数字信封);
  6. userB收到 userA_enc_PWD 之后,用自己的私钥去解密,就是打开信封,即 用 SKb 解密 userA_enc_PWD 得到 PWD; 即得到对称加密密码;
  7. userB再用 PWD 去 解密数据 userA_enc_sms ,得到 sms; 完成了信息传递;

数字信封克服了私钥加密中分发私钥和公开密钥加密数据时间长的问题;因为对称加密速度快,非对称加密更安全;

@2014-10-29

数字证书

数字证书:是互联网通信中的身份标识(主要是用户身份信息和公钥),相当于生活中的身份证;一般由CA中心颁发,既CA认证中心,或第三方权威机构;如身份证中的公安局。

数字证书上通常包括:颁发给某人的签名,证书所有人的公钥,CA中心的签名算法,证书的唯一编号,版本,有效期等。

  1. 用户userA 生成自己的 公钥和私钥 ,既 PKa,SKa;
  2. 用户userA 把自己的公钥和一些其他个人身份信息提交给 CA中心认证;
  3. CA中心在审核用户信息之后,用CA中心的 私钥 SKca 对 用户的PKa和其他信息做 数字签名,然后生成数字证书;
  4. 用户userB在拿到userA数字证书时用 CA的公钥PKca 打开数字证书得到userA的公钥PKa,然后比对自己手的PKa,即可验证 userA的身份是否是假冒的;

数字证书上的数字签名可以验证证书在颁发之后是否被修改过。

@2014-10-29

作者:cocoajin
链接:https://www.jianshu.com/p/af5bfff9a470
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

数字签名和数字证书等openssl加密基本术语的更多相关文章

  1. 安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS【下】

    1.  HTTPS 1.1. 什么是HTTPS HTTPS(HypertextTransfer Protocol Secure)即安全的HTTP.HTTPS的安全基础是安全套接层(Secure Soc ...

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

    转自http://blog.csdn.net/bluishglc/article/details/7585965 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统 ...

  3. 大话https演化过程(对称加密、非对称加密、公钥、私钥、数字签名、数字证书)

    大话https演化过程(包括概念:对称加密.非对称加密.公钥.私钥.数字签名.数字证书.https访问全过程)   在网络上发送数据是非常不安全的,非常容易被劫持或是被篡改,所以每次定向发送数据你都可 ...

  4. 转!!通俗理解数字加密,数字签名,数字证书和https

    原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...

  5. 对称加密、非对称加密、数字签名、数字证书、SSL是什么

    非对称密钥加解密 对于一份数据,通过一种算法,基于传入的密钥(一串由数字或字符组成的字符串,也称key),将明文数据转换成了不可阅读的密文,这就是“加密”,同样的,密文到达目的地后,需要再以相应的算法 ...

  6. 探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。

    一.准备 1. 角色:小白.美美.小黑. 2. 剧情:小白和美美在谈恋爱:小黑对美美求而不得.心生怨念,所以从中作梗. 3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性. ...

  7. 数字签名、数字证书的原理以及证书的获得java版

    数字签名原理简介(附数字证书) 首先要了解什么叫对称加密和非对称加密,消息摘要这些知识. 1. 非对称加密 在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密.同时,一般一个密钥加 ...

  8. 通俗理解数字签名,数字证书和https

    最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不能被更 ...

  9. 数字签名与数字证书以及https

    数字签名与数字证书以及httpshttps://blog.csdn.net/lzghxjt/article/details/79604602

随机推荐

  1. Maven相关:mvn的配置和简单命令

    1.配置mvn: 点击链接 http://maven.apache.org/download.cgi 下载 解压到文件夹: 配置系统环境变量: 测试:mvn -v 2.mvn命令: 1. 显示版本信息 ...

  2. 2. Rabbitmq php 安装 amqp 拓展

    记录一下 使用 rabbitmq 安装 amqp 拓展 环境 ubuntu   安装目录在 /user/local 下进行 1. 安装 wget apt-get update apt-get inst ...

  3. Kerbernetes的Service资源管理

    Kerbernetes的Service资源管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.Service概述 1>.为什么需要Service资源 我们知道在Kube ...

  4. 用Chrome网页获取PDF?

    在网页浏览的时候,我常常想保存网页上的内容 这时候有几种选择,要么copy and paste,要么windows自带截图,要么就是借用tencent的截图工具... 但是对于一些用chrome预览的 ...

  5. CodeForces 382B 数学推导

    这个题目题意简单,但是TLE得哭哭的... 输入 a b w x c五个数,最终要使得c<=a, 每一秒可以进行一个操作,如果b>=x,则 b=b-x,同时 c--;如果b<x,则a ...

  6. 吴裕雄--天生自然 PHP开发学习:MySQL 插入数据

    <?php $servername = "localhost"; $username = "root"; $password = "admin& ...

  7. UML-操作契约总结

    1.操作契约属于什么? 属于用例模型 如图: 2.操作契约在那个阶段引入? 在细化阶段,并非初始阶段. 3.哪些需要写操作契约? 1).最复杂的系统操作 2).最微妙的系统操作

  8. ZJNU 1422 - 碰撞的小球

    完全弹性碰撞可以视作互相穿过 所以直接考虑只有单个小球的时候,从板子上滑下所需要的时间即可 最后以30000为界分开流读入与缓冲区优化的io方法 //Case4用缓冲区io优化会WA??? /* Wr ...

  9. Django专题-中间件

    前戏 我们给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁 ...

  10. webapp项目vue框架点击按钮实现微信好友分享,朋友圈分享

    当时做这个这个效果真把人给*了,网上能搜到的基本是微信页面的分享,特征是方法是wx.**开头,不适用于app内.思路都是一样的,先调取服务(这里使用plus的内置方法),再发送分享请求 <tem ...