常见加密算法及常见加密算法原理

2023-05-16

加密算法和协议

对称加密

简介:加密和解密使用同一个密钥

常见的算法:
- DES:Data Encryption Standard;
- 3DES:Triple DES;
- AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
- Blowfish
- Twofish
- IDEA
- RC6
- CAST5

过程:

A主机将要发送的数据,用密钥加密得到密文。将密文发送至B主机,B主机用相同的密钥解密得到明文

这里写图片描述

特性:

  1. 加密、解密使用同一个密钥;
  2. 将原始数据分割成为固定大小的块,逐个进行加密;

缺陷:

  1. 密钥过多;
  2. 密钥分发困难;

单向加密

简介:即提出数据指纹;只能加密,不能解密;主要用来验证数据是否完整

过程:

A主机将要传输的数据进行一次单向加密,得到数据指纹。当接收方收到数据之后,也进行一次单向加密,如果得到的数据指纹相同,则可以认为数据在传输过程中没有被篡改。

特性
- 定长输出
- 雪崩效应;

算法
- md5:Message Digest 5, 128bits
- sha1:Secure Hash Algorithm 1, 160bits
- sha224, sha256, sha384, sha512

非对称加密:

简介:非对称性加密,也叫公钥加密,加密解密的过程使用不同的密钥。

密钥分为公钥与私钥:
- 公钥:从私钥中提取产生;可公开给所有人;pubkey
- 私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;私钥加密的数据只能使用与之配对的公钥解密。而私钥一般只有一个,而公钥可以有多个主机同时拥有。

用途

  • 数字签名:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”;
    过程:将发送的数据进行一次hash,再用私钥对hash后的数据摘要加密,对方收到密文之后用公钥解密,然后再对数据进行一次hash比对。如果与数字摘要值相同,则数据是完整的。

这里写图片描述

  • 密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
    过程:对称加密中有一个问题,就是如果密钥被截获了,这时候就算传输是密文,第三方也很容易就可以解密成。所以非对称加密也可以用来传送密钥,这样就可以保证密钥的安全。具体如下:
    这里写图片描述

  • 数据加密:可以做到数据加密但是一般不用来传输数据,因为非对称加密过程,速度要比对称加密慢3个数量级。

常用算法:
- RSA
- DSA
- ELGamal

密钥交换: IKE(Internet Key Exchange)

公钥加密

公钥加密,也就是非对称加密方式交换密钥,这种方式交换密钥有一个问题就是。假如有一个主机C,他截获了A和B的通信。C可以生成密钥对,当A向B请求B的公钥的时候,C伪装成B将自己的公钥给他,这时候A发送的密文,可以被C解开。因为A加密的公钥是C的公钥,这时候C还能冒充A去与B通信。所以A以为是在与B进行通信,但是其实是A和B同时与C进行通信,这时候C就可以对会话内容进行修改。这就是中间人攻击,解决的办法一般要依赖pki体系。后面会介绍。

这里写图片描述

PKI(Public Key Infrastructure)
简介:PKI(Public Key Infrastructure)公钥基础设施。

原理
解决上述身份验证问题的关键是确保获取的公钥途径是合法的,能够验证服务器的身份信息,为此需要引入权威的第三方机构CA(如沃通CA)。CA 负责核实公钥的拥有者的信息,并颁发认证”证书”,同时能够为使用者提供证书验证服务,即PKI体系(PKI基础知识)。
基本的原理为,CA负责审核信息,然后对关键信息利用私钥进行”签名”,公开对应的公钥,客户端可以利用公钥验证签名。CA也可以吊销已经签发的证书。具体的流程如下

这里写图片描述

DH(Deffie-Hellman)

简介
需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。
原理
1. 有两个全局公开的参数,一个素数q和一个整数a,a是q的一个原根.
2. 假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA(XA

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

常见加密算法及常见加密算法原理 的相关文章

  • 树莓派3B+ 开启超频

    树莓派3B 43 开启超频 正如我们所知 xff0c 树莓派CPU默认频率是1200MHz xff0c 在一般状态下处于600MHz xff0c 对于这个CPU性能如何 xff0c 我就不多说了 xff0c 由于树莓派到现在都还没有官方64
  • 树莓派3B+ 人脸识别(OpenCV)

    树莓派3B 43 人脸识别 OpenCV 相信大家都看了前面的OpenCV安装和人脸检测教程 xff0c 已经跃跃欲试 xff0c 想要进行人脸识别了 xff0c 现在我们正式进入重头戏 人脸识别 的教程 注意 xff1a 该教程面向pyt
  • Window 设置远程桌面(兼容各平台)

    Window 设置远程桌面 xff08 兼容各平台 xff09 对于window远程桌面 xff0c 相信大家都不陌生 xff0c 它是一个非常好用的且稳定的工具 xff0c 远比第三方提供工具好用 但是 xff0c 有很多朋友在开启远程桌
  • 树莓派3B+ 远程下载服务器(Aria2)

    树莓派3B 43 远程下载服务器 xff08 Aria2 xff09 近来发现之前的部署的迅雷远程下载Xware在下载BT文件时会自动掉线 xff0c 鉴于迅雷不在对该固件的维护 xff0c 所以只能另辟蹊径 xff0c 现在比较主流的下载
  • 物理机下安装 VMware ESXi 6.7

    物理机下安装 VMware ESXi 6 7 ESXI虚拟平台是VMware出品的一个强大平台 xff0c 它可以直接安装在物理机上 xff0c 从而充分利用物理奖性能 xff0c 虚拟多个系统出来 ESXI是一个带WEB管理后台的软件 x
  • VMware ESXi 6.7 安装LEDE

    VMware ESXi 6 7 安装LEDE LEDE是Linux嵌入式开发环境项目 xff0c 在众多路由器固件中 xff0c LEDE可玩性最高的 xff0c 但要真的玩得转 xff0c 还是要一定的耐心 很多小伙伴一般都喜欢 爱快做主
  • vncserver 看不到桌面解决办法

    转载 xff1a http www th7 cn system lin 201308 43197 shtml ubuntu13 04安装vncserver后只显示桌面 不显示菜单栏解决 0 背景介绍 xff1a 一般的server操作系统是
  • Mininet教程(七)Mininet Walkthrough

    文章目录 Mininet教程 xff08 七 xff09 Mininet Walkthrough日常使用指令显示mininet开启选项开启Wireshark主机与路由器之间交互测试主机之间连通性运行一个简单的web服务器和客户端清理缓存 高
  • html的基本知识

    1 常用HTML标签 其他 br标签 xff1a 强制换行 lt br gt lt br gt 应用场景 用于强行换行 gt 不参与分类 xff0c 不能设置其他样式 1 xff09 行级标记 文本格式化标签 span标签 无语义标签 xf
  • 用VC++ 6.0 写贪吃蛇界面

    贪吃蛇界面 第一次写博客 xff0c 有点小紧张 xff0c 也有点激动 不多说了emmmm xff0c 自己跟着网上的视频 xff0c 用C语言做了一个贪吃蛇程序 xff0c 为了学年设计 欢迎界面的部分编译 emmmm xff0c 因为
  • 一、固定定位

    元素的位置相对于浏览器窗口是固定位置 即使窗口是滚动的它也不会移动 xff1a 特性 特性 xff1a 1 元素脱离正常文档流 xff0c 不占位 也脱离文本流 xff0c 全脱 2 始终相对于浏览器窗口四个角为原点进行固定定位的 3 不会
  • 定位元素的层级顺序

    层级 语法 z index n 标签添加定位之后 xff0c 可以覆盖在页面的其他标签上 后面加载的定位元素默认会覆盖在先加载的定位元素上 z index属性 xff1a 设置定位元素的叠放次序 特性 xff1a 1 z index的属性值
  • CSS 透明

    透明度属性 1 rgba r g b a 颜色模式 兼容性 xff1a IE6 7 8下不兼容 xff0c IE9 43 支持 使用 xff1a background color属性 color属性 border color属性等中设置透明
  • 数据类型和流程控制语句

    1 回顾 操作标签内容 闭合标签 标签 innerHTML 标签 innerText 标签 innerHTML 61 值 标签 innerText 61 值 表单标签 标签 value 标签 value 61 值 操作标签属性 标签 属性名
  • day02 JS交互

    1 回顾 基于对象和事件驱动的解释性脚本语言 js的组成 ECMAscript js的标准和核心 DOM 文档对象模型 BOM 浏览器对象模型 js的特性 基于对象 事件驱动 解释性 跨平台 js的引入方式 行间引入 在开始标签上加js 结
  • 一. js逻辑

    1 回顾 js的数据类型 5种基本的数据类型 number 数值 string 字符串 boolean 布尔 undefined 未定义 null 空对象 一种特殊的数据类型 复合 引用 对象 object 对象 array 数组 func
  • Git版本控制工具之Windows系统安装

    1 xff1a Git安装 Windows版本Git下载 a xff1a 地址 https git scm com download win 注意 xff1a 我们上面下载的是2 19 0的windows 64位的版本 进行安装如下 a x
  • Keil5:Error: Flash Download failed - Target DLL has been cancelled

    解决方案 xff1a reset复位Download的节点设备
  • Keil报错:Undefined symbol GPIO_Init

    原因是所需要的C文件没有在工程里面 即使在stm32f10x conf h中开启了包含相关头文件 仍然会出现这样的错误
  • KEIL中SW Device没有识别芯片,jlink下载不进去的问题

    参考了以下链接之后 xff0c 未解决 避坑指南 GD32 KEIL中SW Device没有识别芯片 xff0c jlink下载不进去的问题 无风灬幡动的博客 CSDN博客 jlink识别不到芯片 https blog csdn net q

随机推荐

  • CAS单点登录(二)——搭建基础服务

    前一篇文章中 xff0c 我们对CAS及SSO xff08 单点登录 xff09 有了大致的了解 xff0c 今天我们开始讲解如何搭建一个简单的CAS服务认证中心 xff0c 如果你对CAS中单点登录的概念忘记了 xff0c 可以先去复习一
  • 【20220810】STM32控制各类外设芯片的过程就是配置、读、写该外设寄存器的过程

    STM32等 MCU控制各类外设芯片的过程 xff1a 就是配置 读 写该外设寄存器的过程 因此MCU开发最主要关注的是 xff1a 1 外设芯片的各个功能寄存器的用途 2 寄存器数据的逻辑含义 3 MCU与该外设芯片的通信引脚
  • 【20220816】接触新的通讯协议编程时,只需关注通讯协议初始化和数据接收缓存和发送缓存

    接触新的通讯协议编程时 xff0c 只需关注通讯协议初始化和数据接收缓存和发送缓存 因为通讯协议的实现通常是由硬件或软件实现 xff0c 比如以太网的PHY层芯片 43 MCU的ETH接口 xff0c PHY层芯片 43 MCU的ETH内部
  • Keil5修改与“选中文本“相同变量的背景色

  • C语言的运算符优先级表格

    C语言的运算符包括单目运算符 双目运算符 三目运算符 xff0c 优先级如下 xff1a 第1优先级 xff1a 各种括号 xff0c 如 等 成员运算符 xff1b 第2优先级 xff1a 所有单目运算符 xff0c 如 43 43 等
  • 关于单片机运行时程序卡在B.处的解决方法

    程序运行时 xff0c 程序跳转到startup n32g45x s文件中的B 处卡死 解决方法 xff1a 程序卡死在B 处说明有中断没有处理 xff0c 导致程序进入中断后无法跳出
  • node执行npm -install -g npm版本提示升级成功但执行npm -v还是原来的版本解决方法

    C Users 用户名 AppData Roaming npm node modules npm 的npm复制到node js安装目录下的node modules npm给替换掉 前提是执行npm install g npm成功 执行成功会
  • JAVA工具篇--3 maven项目转gradle项目

    前言 xff1a 将已有的Maven 项目转换为Gradle 项目 xff1b 1 项目转换 xff1a 1 1 win 43 r 打开cmd命令窗口 然后进入到maven项目根目录后 xff0c 输入命令 gradle init span
  • 解决高度塌陷的几种方法

    引入 进行页面布局时 xff0c 为了能够达到自适应 xff0c 通常高度是不会进行固定设置的 xff0c 而使用float进行元素的浮动后 xff0c 由于没有内容的高度 xff0c 所以会发生父元素的高度塌陷问题 xff0c 为了解决此
  • Docker镜像、容器操作

    文章目录 一 Docker镜像操作1 搜索镜像2 获取镜像3 查看镜像查看下载到本地的所有镜像查看下载的镜像文件信息查看镜像详细信息 4 为本地的镜像添加新的标签5 镜像导出导入到本地导出镜像 xff0c 将镜像保存为本地文件导入镜像 xf
  • Python 爬虫库以及库函数总结&&踩坑

    1 Re库的基本使用 Re库介绍 xff1a Re库是Python的标准库 xff0c 主要用于字符串匹配 调用方式 xff1a import re 正则表达式的表示类型 xff1a raw string类型 xff08 原生字符串类型 x
  • mysql创建超级用户

    在安装MySql后只有一个超级管理权限的用户ROOT xff0c 而且ROOT限制只能在数据库本机上使用 xff0c 如果我们要远程管理MySql咋办呢 xff1f 那么事实上我们需要添加一个具有超级管理权限并且可能远程访问的超级用户 xf
  • 论文笔记:Diffusion-Convolutional Neural Networks (传播-卷积神经网络)

    Diffusion Convolutional Neural Networks xff08 传播 卷积神经网络 xff09 2018 04 09 21 59 02 1 Abstract 我们提出传播 卷积神经网络 xff08 DCNNs x
  • JavaEE——CSS3选择器

    声明 xff1a 本栏目所使用的素材都是凯哥学堂VIP学员所写 xff0c 学员有权匿名 xff0c 对文章有最终解释权 xff1b 凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记 CSS3选择器 选择器中的属性 xff1a 之前介绍过
  • vscode 调试 webpack

    在vscode生成的launch json配置文件 span class token punctuation span span class token string 34 version 34 span span class token
  • CentOS8安装

    文章目录 下载镜像安装CentOS8总结参考文档 下载镜像 国内有很多镜像站都可以下载到阿里镜像站或者网易镜像站等 这里使用的是网易镜像站链接 xff1a http mirrors 163 com centos 安装CentOS8 注意 x
  • prometheus基于文件的服务发现

    prometheus基于文件的服务发现 prometheus配置文件如下 xff1a span class token key atrule global span span class token punctuation span spa
  • MySQL8.0自定义表空间

    文章目录 MySQL8 0自定义表空间语法创建表空间语法修改表空间语法 示例参考文档 MySQL8 0自定义表空间 从MySQL 8 0开始允许用户自定义表空间 xff0c 不同表的表空间可以设置使用不同磁盘 xff0c 可以做到冷热数据的
  • SSH远程Ulimit不生效

    SSH远程Ulimit不生效 问题描述 操作系统 etc security limits conf文件内容如下 xff1a soft memlock unlimited hard memlock unlimited 使用远程连接工具moba
  • 常见加密算法及常见加密算法原理

    加密算法和协议 对称加密 简介 xff1a 加密和解密使用同一个密钥 常见的算法 xff1a DES xff1a Data Encryption Standard 3DES xff1a Triple DES AES xff1a Advanc