数字签名

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

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

签名

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

验签名

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

散列算法/文摘算法/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. Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量

    Python并不是我的主业,当初学Python主要是为了学爬虫,以为自己觉得能够从网上爬东西是一件非常神奇又是一件非常有用的事情,因为我们可以获取一些方面的数据或者其他的东西,反正各有用处. 这两天闲 ...

  2. WebGL学习(2) - 3D场景

    原文地址:WebGL学习(2) - 3D场景 经过前面WebGL学习(1) - 三角形的学习,我们已经掌握了webGL的基础知识,也已经能够画出最基本的图形,比如点,线,三角形,矩形等.有了2D绘图的 ...

  3. IE浏览器中用Firebug调试网站的方法

    对于大部分做前端设计者而言应该都使用过Firefox浏览器下一款调试网站的扩展插件firebug吧,功能非常的强大,对于我们找出网页兼容性的问题非常的有效.不过对于很多不喜欢使用Firefox浏览器的 ...

  4. ubuntu小技巧(不定期更新)

    1.gedit打开windows保存的txt出现乱码 默认情况下,用ubuntu打开windows保存含有中文的txt文件时会出现乱码. 只需在终端运行以下两条命令则可解决. gsettings se ...

  5. C#中迭代器的概念和两种实现方式

    1.首先我们看下IEnumerable接口定义:   namespace System.Collections    {        // Summary:        //     Expose ...

  6. c#基础知识索引器

    代码 ]);    }} 在这里我们看到,无非是实现了一个泛型算法 等同于 Ontology List<string> lit=new List<string>(); lis. ...

  7. Kotlin编码----var和val的区别

    var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量.这种声明变量的方式和Java中常规的变量的声明方式一样. val是一个只读变量,这种声明变量的方式相当于java中的final变量 ...

  8. 使用Jedis操作redis 缓存

    案例:http://blog.csdn.net/linlzk/article/details/41801391 Redis是一个开源的Key-Value数据缓存,和Memcached类似. Redis ...

  9. 安装VisualSVN Server时候,端口号冲突

    今天在本机安装VisualSVN Server 时,发现https默认端口号:443被占用了, 于是到cmd下面执行 netstat -ano命令发现是pid:4276的进程在试用, 打开任务管理里一 ...

  10. jmockit学习

    下图为jmockit 类图.在我们编写代码时几乎都会用到Expectations(期望)和Verifications(校验),二者均继承自Invacations. 常会用到的注解有:@Mocked @ ...