数字签名

数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,可是使用了公钥加密领域的技术实现。用于鉴别数字信息的方法。

一套数字签名通常定义两种互补的运算。一个用于签名,还有一个用于验证。

签名

•签名是非对称加密的一种应用。使用私钥加密数据,就是对数据的签名
•签名是将数据通过运算后得到签名信息,被签名的数据发生不论什么改变哪怕这样的改变很细微,也无法获得相同的签名信息。

验签名

•验签名的过程就是使用公钥对私钥加密的数据解密并验证的过程
•验签名将被签名数据用同样的运算法则得到签名信息后与原有签名信息进行比較

散列算法/文摘算法/Hash

•就是把随意长度的输入(又叫做预映射),通过散列算法,变换成固定长度的输出。该输出就是散列值。这样的转换是一种压缩映射。也就是。散列值的空间通常远小于输入的空间,不同的输入可能会散列成同样的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将随意长度的消息压缩到某一固定长度的消息摘要的函数。

经常使用算法

•SHA-1 , SHA-256、MD5 , MD2

特点

•无法反向运行散列算法恢复最初的明文

•得到的摘要不会告诉不论什么关于最初明文的信息
•同一明文用同一散列算法,生成后的值唯一

PKI

•PKI(Public KeyInfrastructure)即”公钥基础设施”,是一种遵循既定标准的密钥管理平台
•简单地说,PKI技术就是利用公钥理论和技术建立的提供信息安全服务的基础设施。

认证机构CA

•CA是PKI的核心运行机构。是PKI的主要组成部分,通常称它为认证中心。

•从广义上讲。认证中心还应该包含证书申请注冊机构RA(Registration Authority),它是数字证书的申请注冊、证书签发和管理机构。

密钥备份及恢复

•密钥备份及恢复是密钥管理的主要内容,用户因为某些原因将解密数据的密钥丢失,从而使已被加密的密文无法解开。
•为避免这样的情况的发生。PKI提供了密钥备份与密钥恢复机制:当用户证书生成时,加密密钥即被CA备份存储(备份在KM)。当须要恢复时,用户仅仅需向CA提出申请,CA就会为用户自己主动进行恢复。

密钥和证书的更新

•一个证书的有效期是有限的。这样的规定在理论上是基于当前非对称算法和密钥长度的可破译性分析,在实际应用中是因为长期使用同一个密钥有被破译的危急,因此,为了保证安全,证书和密钥必须有一定的更换频度。

•PKI对已发的证书必须有一个更换措施,这个过程称为“密钥更新或证书更新”。

证书历史档案

•从以上密钥更新的过程,我们不难看出,经过一段时间后,每个用户都会形成多个旧证书和至少一个当前新证书。
•这一系列旧证书和对应的私钥就组成了用户密钥和证书的历史档案。记录整个密钥历史是很重要的。比如,某用户几年前用自己的公钥加密的数据或者其它人用自己的公钥加密的数据无法用如今的私钥解密,那么该用户就必须从他的密钥历史档案中,查找到几年前的私钥来解密数据。

client软件

•为方便客户操作。解决PKI的应用问题,在客户装有client软件。以实现数字签名、加密数据传输等功能。
•client软件还负责在认证过程中,查询证书和相关证书的撤消信息以及进行证书路径处理、对特定文档提供时间戳请求等。

交叉认证

•交叉认证就是多个PKI域之间实现互操作。
•交叉认证实现的方法有多种:一种方法是桥接CA。即用一个第三方CA作为桥,将多个CA连接起来。成为一个可信任的统一体。
•还有一种方法是多个CA的根CA(RCA)互相签发根证书,这样当不同PKI域中的终端用户沿着不同的认证链检验认证到根时,就能达到互相信任的目的。

PKI(公钥基础设施)基础知识笔记的更多相关文章

  1. JS基础知识笔记

    2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...

  2. Java多线程基础知识笔记(持续更新)

    多线程基础知识笔记 一.线程 1.基本概念 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process):是程序的一次执行过程,或是 ...

  3. PKI公钥基础设施简介

    PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书.一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的 ...

  4. javascript基础知识笔记-自用

    笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...

  5. Mysql之基础知识笔记

    Mysql数据库基础知识个人笔记 连接本地数据库: mysql -h localhost -u root -p 回车输入数据库密码 数据库的基础操作: 查看当前所有的数据库:show database ...

  6. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  7. JavaScript基础知识笔记

    做前端几年了,一直疏于整理归纳,所以这两天把基础看了一遍,加上使用经验,整理了基础知识中关键技术,旨在系统性的学习和备忘.如果发现错误,请留言提示,谢谢! 重要说明:本文只列举基础知识点,中级和高级内 ...

  8. Javascript 基础知识笔记

    标签(空格分隔): 廖老师学习笔记 javascript 基本入门 根据廖雪峰老师官网,自己看后的简单笔记 第一小节 基本知识 <script type="text/javascrip ...

  9. 初学MySQL基础知识笔记--01

    本人初入博客园,第一次写博客,在今后的时间里会一点点的提高自己博客的水平,以及博客的排版等. 在今天,我学习了一下MySQL数据库的基本知识,相信关于MySQL的资料网上会有很多,所以我就不在这里复制 ...

随机推荐

  1. ⒃bootstrap组件 轮播图 基础案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 双色球js

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Python爬虫入门:URLError异常处理

    大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的 ...

  4. 一:Redis的7个应用场景

    Redis的7个应用场景   一:缓存——热数据 热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相 ...

  5. C#中静态和非静态的区别

    今天下午面试,HR问道:C#中静态类或静态方法和非静态类静态方法有什么区别?我回答是静态的可以直接调用而非静态的需要实例化.HR说这谁都知道,我问的是本质区别.我当时就郁闷了,我只有8个月的编程经验, ...

  6. Spring 4 MVC example with Maven

    In this tutorial, we show you a Spring 4 MVC example, using Maven build tool. Technologies used : Sp ...

  7. MySQL子查询优化实例

    优化:子查询改写成关联查询 线上遇到问题,查询较慢,如为对应SQL的查询执行计划: localhost.\G . row *************************** id: select_ ...

  8. Python使用虚拟环境

    这里想象一下需求,写一个项目使用的一系列1.0版本的插件,现在要新写一个项目,需要用这些插件的2.0版本,该怎么办?都更新成2.0版本?这样之前的项目都没法维护了 这时我们需要一个虚拟环境,Pytho ...

  9. 《Metasploit魔鬼训练营》第四章(上)

    p128 wmap 和昨天一样,我用这些漏洞扫描工具去扫testfire.net或者owaspbwa都扫不出漏洞!不明白! 补充:原来是网络不知道啥时候自己断了.连上后再次扫描就成功了:

  10. [读书笔记]javascript语言精粹'

    人比较笨,以前只做项目,案例,然而一些javascript的很多理论不知道该怎么描述,所以最近开启一波读书之旅: 标识符 1.定义 标识符以字母开头,可能后面跟上一个或多个字母.数字或者下划线. 2. ...