数字签名

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

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

签名

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

验签名

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

散列算法/文摘算法/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 ...

  2. HTTP中的Range: bytes=0-

    HTTP中的Range就是分段请求字节数,也是大家经常说的断点续传.Range头域可以请求实体的一个或者多个子范围,Range的值为0表示第一个字节,也就是Range计算字节数是从0开始的 表示第二个 ...

  3. Excel 生成SQL

    '"&A21&"'   Excel 中要做字符串连接 "& + 单元格地址 + &", 如果单纯做测试在某个单元格中测试输出内容 ...

  4. 用笔记本写C程序

    首先在Visual Studio Tools 文件中打开 Visual Studio 命令提示(2010),输入命令 notepad 打开记事本,写好程序保存,保存类型:所有文档  文件名:1.c . ...

  5. java之JVM学习--基本机构

    JDK,JRE,JVM关系图 JVM物理结构: jvm内存区详解: 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字 ...

  6. [转]查询 SQL Server 系统目录常见问题

    查询 SQL Server 系统目录常见问题 http://msdn.microsoft.com/zh-cn/library/ms345522.aspx#_FAQ4 下列部分按类别列出常见问题. 数据 ...

  7. 使用Dropwizard(2)-配置分类ConfiguredBundle

    前言 不可避免的要用dropwizard作为service框架.持续学习.上次在dropwizard中使用feign,使用hystrix, 算是基本入门了.接下来就是基于此的优化. 把需要使用Conf ...

  8. bzoj1015星球大战

    1015: [JSOI2008]星球大战starwar Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝 ...

  9. python中函数的参数解析

    python中函数的各种参数梳理: 1.形参:函数定义时传入的参数 2.实参:函数调用时传入的参数 (有形参必传实参,形参里自身特点可不传的,可传可不传) 3.缺省参数:不传为默认值,传了会覆盖(下面 ...

  10. 爬起点小说 day01

    先介绍下我自己爬起点小说的思路: 1.爬取所有的类型列表 a.链接存redis中 类型表:novel_list 具体每一种类型:bnovel_all_list(把novel_list和bnovel_l ...