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. js 动画滚动到指定位置 ES6

    ### 开始 ### 写一个自动滚动过度到指定位置的一个函数 通过Class进行封装 /** * 滚动动画过度 * @param {Object} position 定位(只支持Y轴) * @para ...

  2. MySQL之完整建表语句及数据类型

    1.创建表的完整语法 create table 表名( 字段名称 数据类型[(长度) 约束条件], 字段名称 数据类型[(长度) 约束条件] ) 必须的:字段名 数据类型 表名 可选的:长度 约束条件 ...

  3. Java Keyword Static 学习记录

    Static Java编程思想:一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起. 特点:随着类的加载而加载,随着类的销毁而销毁. 作用:可以修饰成员变量,代码块,方法 ...

  4. PDO是一个“数据库访问抽象层”

    PDO是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高 ...

  5. thinkCMF图片上传选择已上传图片

    1.找到上传图片的模板页面 webuploader.html 在上传文件标签后面 添加 <li class=""><a href="#explorer& ...

  6. MyBatis学习——动态SQL

    开发人员在使用JDBC框架或者其他类似的框架进行数据库开发时,通常都要根据需求去手动拼接SQL,这样非常麻烦,而myBatis提供了对SQL语句动态组装的功能,恰好解决了这一问题. 一,动态SQL中的 ...

  7. mysql脚本文件

    DELIMITER $$ -- USE `dev_seal_chip_sell_ms_v1`$$; DROP FUNCTION IF EXISTS `GET_ORDER_STATUS`$$ CREAT ...

  8. ZJNU 1365 - Window--中级

    每次都寻找长度为k的区间内的最小值显然很容易超出时间限制 所以可以把窗户看作一个数量固定的队列 每次观察入列与出列的元素对答案贡献如何,以更新答案 /* Written By StelaYuri */ ...

  9. Vue插件配置和 后台交互

    Vue插件配置和 后台交互 一.全局配置静态文件(csss, js..) 1.1 全局配置css文件 创建css文件 在main.js配置css文件 // 配置全局css样式 // 方式一 impor ...

  10. Java之关键字abstract(抽象类与抽象方法)

    /* * abstract关键字的使用 * 1.abstract:抽象的 * 2.abstract可以用来修饰的结构:类.方法 * * 3. abstract修饰类:抽象类 * > 此类不能实例 ...