CA,证书,公钥,私钥,加密算法常识总结

2023-11-16

数据传输安全要满足的要求:

  • 发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密)
  • 接收方可以确定消息是由谁发送的(接收方可以确定消息的发送方)
  • 接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性)

加密和认证

  • 加密是将数据资料加密,使别人即使获取加密数据,也无法获取正确的资料内容,重点在于数据的安全性

通常发送者使用自己的私钥进行加密,接收者使用发送者的公钥进行解密

  • 认证是是确定数据的真实发送方,使别人无法伪造或冒充,重点在于用户的真实性

公钥算法和私钥算法

  • 摘要算法(散列,无需密钥)

      一般有MD5(128位)和SHA1(160位),不可逆

  • 对称加密算法(DES,AES)

      又称 对称加密算法,因为这种算法解密密钥和加密密钥是相同的。也正因为同一密钥既用于加密又用于解密,所以这个密钥是不能公开的

      但是密钥不能手把手交给对方

  • 非对称加密算法(RSA,DSA)

      这种算法加密和解密的密钥不一样,一个是公钥,另一个是私钥,安全性最高,但加解密速度慢,通常比对称加密算法慢1-2个数量级

   利用的是两个大质数相乘十分容易,而对其乘积进行因素分解十分困难。这样就可以将乘积作为密钥了

   这个乘积为N值,根据两个大质数选择e和生成d,删掉两个大质数。这样(N,e)为公钥,(N,d)为私钥

     公钥无法破解出私钥。由于非对称加密的密钥生成麻烦,所以无法做到一次一密,而且其加密速度很慢,无法对大量数据加密

     因此最常用的使用场景就是数字签名和密码传输,用作数字签名时使用私钥加密,公钥解密;用作加密解密时,使用公钥加密,私钥解密。

     大部分情况都使用对称加密,而对称加密的密钥交换时使用非对称加密来保护密钥的安全

公钥和私钥(密钥对)

记住这句:公钥加密,私钥解密;私钥签名,公钥验签。

必须实现如下目的:

  • 发送方将数据加密,在数据传输过程中不能被别人看到真实数据内容
  • 接收方能确定数据是发送方发送的数据,不是别人冒充

意义和作用:

  • 公钥:是公布出去给别人用的,可以被很多人获取。用来加密和验签
  • 私钥:只能自己持有,并且不可以被其他人知道,用来解密和签名

关系:

  • 一个公钥对应一个私钥
  • 密钥对中,让大家都知道的是公钥,自己知道是私钥
  • 用公钥加密的数据只有对应的私钥可以解密
  • 用私钥加密的数据只有对应的公钥可以解密
  • 如果用其中一个密钥加密数据,则只有对应的那个密钥才能解密
  • 如果用其中一个密钥可以解密数据,则该数据必然由对应密钥进行加密(最后两个类似当且仅当,充分必要条件)

CA证书:

CA是证书的签发机构,是公钥基础设施(Public Key Infrastructure,PKI)的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。

CA 拥有一个证书(内含公钥私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

证书主要内容:

  • 公钥
  • 权威机构的签字
  • 有效期

证书原理:

1、CA证书中包含公钥,公钥绑定的用户信息,机构的签名。(证书中心CA会用自己的私钥对用户的公钥和相关信息加签名,生成数字证书)

2、密钥对包含公钥和私钥。公钥公之于众,谁都可以使用。私钥只有自己知道

3、由公钥加密的信息只能由与之相对应的私钥解密

4、为确保只有某个人才能阅读自己的信件,发送者要用收件人的公钥加密信件;收件人用自己的私钥解密信件

5、同样,为证实发件人的身份,发送者要用自己的私钥对信件进行签名;收件人可使用发送者的公钥对签名进行验证,以确认发送者的身份。

证书作用:

保密性 - 只有收件人才能阅读信息。

认证性 - 确认信息发送者的身份。

完整性 - 信息在传递过程中不会被篡改。

不可抵赖性 - 发送者不能否认已发送的信息。

保证请求者与服务者的数据交换的安全性

根证书:

根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
使用证书验证需要先验证该证书的真伪,这样会构成一条证书链,证书链由根证书终结
根证书是一份特殊的证书,它的签发者是它本身,下载根证书就表明您对该根证书以下所签发的证书都表示信任,
而技术上则是建立起一个验证证书信息的链条,证书的验证追溯至根证书即为结束。
所以说用户在使用自己的数字证书之前必须先下载根证书。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CA,证书,公钥,私钥,加密算法常识总结 的相关文章

  • linux下搭建goprotobuf

    linux下搭建goprotobuf 1 搭建go语言环境 参考官网 http golang org doc install 主要是设置好GO PATH这个变量 这个就是你的工作环境目录 可以使用go env来查询设置好了没 2 搭建pro
  • python中列表概念,Python基本数据类型——List(列表)

    1 序列 1 1 序列的基本概念 序列是Python中最基本的一种数据结构 序列用于保存一组有序的数据 所有的数据在序列当中都有一个唯一的位置 索引 并且序列中的数据会按照添加的顺序来分配索引 数据结构是指计算机中数据存储的方式 1 2 序

随机推荐

  • Pinpoint--基础--04--请求追踪和字节码插装

    Pinpoint 基础 04 请求追踪和字节码插装 备注 背景 英文原文 https naver github io pinpoint 1 8 4 techdetail html Dapper原文 https ai google resea
  • 00后卷王自述,我真的很卷吗?

    前段时间我去面试了一个软件测试公司 成功拿到了offer 薪资也从10k涨到了18k 对于工作都还没两年的我来说 还是比较满意的 毕竟有些工作了3到4年的可能还没有我的高 在公司一段时间后大家都说我是卷王 其实我也没办法 自己家里条件不是很
  • Pytorch ----注意力机制与自注意力机制的代码详解与使用

    注意力机制的核心重点就是让网络关注到它更需要关注的地方 当我们使用卷积神经网络去处理图片的时候 我们会更希望卷积神经网络去注意应该注意的地方 而不是什么都关注 我们不可能手动去调节需要注意的地方 这个时候 如何让卷积神经网络去自适应的注意重
  • Java基础6--对象和类

    Java基础6 对象和类 文章目录 Java基础6 对象和类 概念 Java中的对象 Java 中的类 构造方法 创建对象 访问实例变量和方法 Java 内部类 非静态内部类 静态内部类 从内部类访问外部类成员 import 语句 概念 对
  • 异步编程CompletableFuture系列3 接口合并

    直接上代码 import java util concurrent CompletableFuture import java util concurrent TimeUnit public class Test3 public stati
  • 没有找到MSVCR90D.DLL的两种解决方法

    1 没有找到MSVCR90D DLL的简单解决方法之一 在VS2005 2008下写C C 程序时 偶然会出现这样的错误 这样的错误一般会出现在第一次运行项目时 或重装VS后 这里提供一种简单的解决办法 希望对初学者有用 打开项目的属性页
  • 【CCPC-2019】【江西省赛】【霖行】J-Worker

    CCPC 2019 江西省赛 霖行 J Worker 题目 Avin meets a rich customer today He will earn 1 million dollars if he can solve a hard pro
  • python中用pickle打开文件报错:EOFError: Ran out of input

    用pickle dump 保存文件之后如果不关闭文件就会出现此错误 f open test pkl wb pickle dump dict f f close 后面添加关闭就不会报错
  • JAVA - 判断两个浮点数相等

    背景知识 float型和double型是JAVA的基本类型 用于浮点数表示 在JAVA中float型占4个字节32位 double型占8个字节64位 一般比较适合用于工程测量计算中 其在内存里的存储结构如下 float型 符号位 1 bit
  • 基于梯度下降算法求解线性回归

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 01 线性回归 Linear Regression 梯度下降算法在机器学习方法分类中属于监督学习 利用它可以求解线性回归问题 计算一组二维数据之间的线性关系 假设有一组数
  • Solidworks2022-2-软件安装步骤

    Solidworks2022软件安装步骤 1 先确定你的系统是否已经安装了 net 3 5 和 net 4 0 net 3 5 和 net 4 0查看方法 如果 没有或缺少 根据第二张图进行下载或增加一下 2 断开网络连接 关闭保护设置 3
  • Linux_centos7_vi/vim程序编辑器_(6)_(bird_bro)

    参考资料 https studylib net doc 11479665 vi vim graphical cheat sheet q j
  • noj.26 二叉排序树的合并

    题目描述 分析 1 先序 创建二叉排序树 2 在二叉排序树中插入一个值 3 n 大于根节点在右子树中插入 4 n 小于根节点在左子树中插入 5 合并排序二叉树 6 中序输出合并后的排序二叉树 完整代码 include
  • 谈谈react操作onMouseEnter、onMouseLeave结合css里的hover

    react对于每个html元素都添加了很多事件处理函数 这些事件网上一搜就都出来了 这里简单说下在react中利用js进行操作类似于css里的hover所使用的事件 比如这样一个需求 有以下3个div div class a abc a d
  • 在 cocos2d 里面如何使用 Texture Packer 和像素格式来优化 spritesheet

    原文链接 http www cnblogs com andyque archive 2011 03 18 1988097 html 免责申明 必读 本博客提供的所有教程的翻译原稿均来自于互联网 仅供学习交流之用 切勿进行商业传播 同时 转载
  • java开发思路_Java Web开发教程——基本思路

    思路 将需求拆解为基本技术的简单组合 再分别实现 基本技能必须是足够简单且容易理解的 对基本技能的组合 必须是严格相等于需求域的 不能有缺漏 一 基本技能 基础知识 B S Browser Server 就是以浏览器作为用户界面与用户进行交
  • LeetCode 解题笔记(三)字符串

    文章目录 一 基础篇 344 反转字符串 2022 03 06 7 整数反转 2022 03 07 387 字符串中的第一个唯一字符 2022 03 08 242 有效的字母异位词 2022 03 09 总目录 LeetCode 解题笔记
  • Docker部署node.js应用

    前言 什么是docker 通俗的理解 docker是创建和管理容器的一种技术 那什么是容器呢 容器的功能与虚拟机很近似 都是在一个物理主机上运行多个操作系统的技术 最大的不同之处在于 虚拟机技术是虚拟出一套硬件后 在其上运行一个完整操作系统
  • 某银行降低贷款拖欠率的逻辑回归建模

    代码 coding utf 8 Created on Sat Jul 15 17 48 35 2017 author Administrator 逻辑回归建模 import pandas as pd from sklearn linear
  • CA,证书,公钥,私钥,加密算法常识总结

    数据传输安全要满足的要求 发送方能够确定消息只有预期的接收方可以解密 不保证第三方无法获得 但保证第三方无法解密 接收方可以确定消息是由谁发送的 接收方可以确定消息的发送方 接收方可以确定消息在途中没有被篡改过 必须确认消息的完整性 加密和