数字签名

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

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

签名

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

验签名

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

散列算法/文摘算法/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基础-注释-变量赋值

    一.注释 # 注释 \n 行分隔符 \ 继续上一行 '''   *** ''' 多行注释 二.基本规则 : 分开代码块(组)   头$尾 缩进块  语句代码块  用缩进深度区分 空行     用于分割 ...

  2. 一款非常推荐的用户界面插件----EasyUI

      前  言    easyui是一种基于jQuery的用户界面插件集合. easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能. 使用easyui你不需要写很多代码,你只需要 ...

  3. oracle数据库冷备中的手工备份和恢复

    我的操作系统是red hat5.5 32位系统oracle11g 以我的系统为例: 冷备状态下,数据库必须是关闭的,但是我们现在要做一个实验,在开库的状态下分别查询出: 1.show paramete ...

  4. centos6.5安装rabbitmq3.6.14

    The minimum version of Erlang/OTP required to run RabbitMQ server 3.6.0 through 3.6.14 is R16B03. St ...

  5. [转载] 应用于负载均衡的一致性哈希及java实现

    转载自http://blog.csdn.net/haitao111313/article/details/7537799 这几天看了几遍一致性哈希的文章,但是都没有比较完整的实现,因此试着实现了一下, ...

  6. [转载] epoll详解

    转载自http://blog.csdn.net/xiajun07061225/article/details/9250579 什么是epoll epoll是什么?按照man手册的说法:是为处理大批量句 ...

  7. [转载] Java中常用的加密方法

    转载自http://www.iteye.com/topic/1122076/ 加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的 ...

  8. boot之mybatis

    特别注意,此种方法和starter不兼容,我用了两个方式混蛋,发现跑不起来! spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driv ...

  9. Spring4 快速入门

    Spring4 快速入门 1 Spring简介 1.1 Spring是什么? Spring 是一个 IOC 和 AOP 容器的开源框架,为简化企业级应用而生. IOC(Inversion of Con ...

  10. Unity3D游戏GC优化总结---protobuf-net无GC版本优化实践

    protobuf-net优化效果图 protobuf-net是Unity3D游戏开发中被广泛使用的Google Protocol Buffer库的c#版本,之所以c#版本被广泛使用,是因为c++版本的 ...