加解密原理(HCIA)

一、加密技术

1、加密的两个核心组件

2、加密技术作用:

二、加解密技术原理

1、对称加密

2、非对称加密

(1)思考问题?

1)、有了非对称加密为什么还用对称加密?

2)、如何传递秘钥呢(解决秘钥分发问题,对称加密存在这个问题)?

4、数字信封(数据加密,验证接收方身份,数字信封结合数据签名)

5、什么是哈希函数、哈希函数特点

6、数字签名(数据验证,接收方验证发送方的身份,数字信封结合数据签名)

三、加密常见算法

1、对接加密算法:

(1)、流加密算法:

(2)、分组加密算法:分块加密

2、非对称加密算法

3、散列算法


一、加密技术

加密是利用数学方法将明文 (需要被隐蔽的数据) 转换为密文(不可读的数据)从而达到保护数据的目的。

1、加密的两个核心组件

加密的两个核心组件:算法、秘钥。

2、加密技术作用:

加密技术作用:是实现数据的保密性、完整性、鉴别性、不可抵赖性。

二、加解密技术原理

1、对称加密

对称加密:又称为共享密钥加密,它使用同一个密钥对数据进行加密和解密。

2、非对称加密

非对称加密:加解密使用两个不同的密钥,私钥加密公钥解密,公钥加密私钥解密,用来检验信息及其发送者的真实性和身份。

3、密钥

密钥: 公钥&私钥

(1)思考问题?

1)、有了非对称加密为什么还用对称加密?

2)、如何传递秘钥呢(解决秘钥分发问题,对称加密存在这个问题)?

有RSA和DH算法。

非对称加密适合小文件,大文件加密速度相对于对称加密慢很多。

4、数字信封(数据加密,验证接收方身份,数字信封结合数据签名)

对称秘钥加密数据,传递对称加密的公钥使用非对称加密进行(对称加密公钥不是很大)

A用对称密钥加密数据,再用B的公钥封装对称密钥,B收到用私钥解密得到对称密钥,再用对称密钥解密业务数据。

5、什么是哈希函数、哈希函数特点

哈希函数(hash):做数据的一个完整性校验,哈希的特点有:

(1)、相同输入,相同输出:MD5,原始数据用MD5(123)=abc,那么不管谁用MD5(123)永远都是abc。

(2)、等长输出:MD5,MD5(123)=abc,MD5算出的哈希值长度都是固定的,不管原始数据有多大,计算出的长度是相同的(MD5的哈希值是固定128位)。

(3)、不可逆推:无法从哈希结果逆推出原数据。

(4)、雪崩效应:原本MD5(123456)=abcdef,这个时候MD5(1234567)得到的数据跟MD5(123456)没有一点关系MD5(1234567)=dg4,*as。由于微妙的变化导致结果发生天翻地覆的变化。

HMAC哈希信息验证码:带秘钥的哈希,传输哈希前先通过DH算法协商秘钥(全球唯一),秘钥不加密,参与哈希计算,A做完哈希后加上秘钥发送B,C由于没有秘钥,修改了数据发送给B也无法验证成功。

6、数字签名(数据验证,接收方验证发送方的身份,数字信封结合数据签名)

数字签名:用私钥加密的哈希值得到的密文就是签名,不可抵赖性。

(1)、A先使用哈希计算1G数据得出数据哈希值AJ。

(2)、A使用私钥加密哈希值AJ得到的签名发送给B。

(3)、B收到数据后,使用A的公钥解密签名,得到了一个哈希值。

(4)、B再对1G的数据进行一次哈希运算,如果B计算的哈希值和A发的哈希值相同,这1G数据是A发的。

三、加密常见算法

1、对接加密算法:

(1)、流加密算法:

1)、RC4:用在WiFi传输加密。

(2)、分组加密算法:分块加密

1)、DES标准加密算法:是一个函数,但是每次加密用56位的秘钥key加密64位长度的数据,不满足64位的最小倍数会进行填充。

2)、3DES:做3次DES,例如原始数据是ABC,使用A秘钥用DES加密ABC变成密文1ABC,用B秘钥解密A秘钥加密后的1ABC得出2ABC,再用A秘钥结合B秘钥解密后的2ABC加密得出3ABC。(整个计算过程用到2个56位的EDS加密)

3)、AES:AES-128,AES-192,AES-256.

4)、IDEA

5)、RC2、RC5、RC6

6)、SM1、SM4:国密算法。

2、非对称加密算法

(1)、DH:用来算秘钥的,DH算法一般用于双方协商出一个对称加密的密钥,即加密解密都是同一个密钥。实质是双方共享一些参数然后各自生成密钥,然后根据数学原理,各自生成的密钥是相同的,这个密钥不会涉及到在链路中传播,但是之前的参数的交互会涉及链路传输。

DH的目的就是在一个不安全的环境下,产生安全的秘钥(计算秘钥的算法,算秘钥的,不是用来加密的)。

A————B算秘钥过程:

1、A和B进行秘钥交换协商出一个P(P是素数,因式分解只能分解出自己,素数就是质数,最小的质数是2可以被1和本身分解)

A的P=11,g=2(固定是2),B的P=11,g=2(固定是2)

A本地产生小x=3(素数),B本地产生y=2(素数)

mol取余数

A的大X=g的小x次方molP

B的大Y=g的小y次方molP

2、A把X=8发给B,B把Y=4发给A。

3、A算Z,Z=Y的小x次方molP,Z=9

B算算Z,Z=X的小y次方molP,Z=9

A和B算出来Z的值都是一样的,计算过程中双方各有小x和小y,小x和小y从头到尾都没发送出去,只是交互了大X和大Y(X和Y是DH的公开值),公开值攻击者抓到无所谓,私有x和y抓不到永远算不出来,动态计算P、小x、小y,利用数学难题。

DH1素数是768位

DH2素数是1048位

(2)、RSA:RSA公加密算法是1977年由Ron RivestAdi Shamirh和LenAdleman在(美国麻省理工学院)开发的RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。是第一个能同时用于加密和数字签名的算法。

(3)、DSA:DSA是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。在保证数据的完整性、私有性、不可抵赖性等方面起着非常重要的作用。DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名接受者收到消息后使用发送者的公钥来验证签名的真实性。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,它比RSA要快很多。

目前比较常用的公钥加密算法,主要包含DH ()Diffie-Hellman)、RSA (Ron Rivest、Adi Shamirh.LenAdleman)和DSA (Digital Signature Algorithm)算法。

3、散列算法

散列算法:把任意长度的输入变换成固定长度的输出。挖矿就是一个算哈希的过程(SHA-256)。

常见散列算法

(1)、MD5 (Message Digest Algorithm 5)

(2)、SHA (Secure Hash Algorithm)

(3)、SM3 (Senior Middle 3)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/173278.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++标准模板(STL)- 类型支持 (类型特性,is_union,is_class,is_function)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

Docker 入门

What - 什么是容器 容器是一种轻量级、可移植、自包含的软件打包技术&#xff0c;使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器&#xff0c;无须任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。容器与虚拟机谈…

尚硅谷大数据项目《在线教育之实时数仓》笔记004

视频地址&#xff1a;尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第8章 数仓开发之DIM层 P024 P025 P026 P027 P028 P029 P030 第8章 数仓开发之DIM层 P024 package com.atguigu.edu.realtime.app.func;import com.alibaba.druid.pool.DruidDat…

网络流学习笔记

网络流基础 基本概念 源点&#xff08;source&#xff09; s s s&#xff0c;汇点 t t t。 容量&#xff1a;约等于边权。不存在的边流量可视为 0 0 0。 ( u , v ) (u,v) (u,v) 的流量通常记为 c ( u , v ) c(u,v) c(u,v)&#xff08;capacity&#xff09;。 流&#xff…

Vue项目搭建及使用vue-cli创建项目、创建登录页面、与后台进行交互,以及安装和使用axios、qs和vue-axios

目录 1. 搭建项目 1.1 使用vue-cli创建项目 1.2 通过npm安装element-ui 1.3 导入组件 2 创建登录页面 2.1 创建登录组件 2.2 引入css&#xff08;css.txt&#xff09; 2.3 配置路由 2.5 运行效果 3. 后台交互 3.1 引入axios 3.2 axios/qs/vue-axios安装与使用 3.2…

SpringCloud 微服务全栈体系(五)

第七章 Feign 远程调用 先来看我们以前利用 RestTemplate 发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; 代码可读性差&#xff0c;编程体验不统一 参数复杂 URL 难以维护 Feign 是一个声明式的 http 客户端&#xff0c;官方地址&#xff1a;https://github.…

【C++】缺省参数及函数重载

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1. 缺省参数1.1 缺省…

迭代器的封装与反向迭代器

一、反向迭代器 在list模拟实现的过程中&#xff0c;第一次接触了迭代器的封装&#xff0c;将list的指针封装成了一个新的类型&#xff0c;并且以迭代器的基本功能对其进行了运算符重载 反向迭代器是对正向迭代器的封装&#xff0c;并且体现了泛型编程的思想&#xff0c;任意…

win10虚拟机安装教程

目录 1、安装VMware 10、12、16都可以&#xff0c;看个人选择 2、开始安装系统&#xff08;以vm16为例&#xff09; 3、在虚拟机中安装win10 完成 1、安装VMware 10、12、16都可以&#xff0c;看个人选择 下面链是我虚拟机安装包&#xff0c;需要可以下载。 YR云盘 软件安…

华为OD机考算法题:高效的任务规划

题目部分 题目高效的任务规划难度难题目说明 你有 n 台机器编号为 1 ~ n&#xff0c;每台都需要完成一项工作&#xff0c; 机器经过配置后都能独立完成一项工作。 假设第 i 台机器你需要花 分钟进行设置&#xff0c; 然后开始运行&#xff0c; 分钟后完成任务。 现在&#x…

虚拟机构建部署单体项目及前后端分离项目

目录 一.部署单体项目 1.远程数据库 1.1远程连接数据库 1.2 新建数据库运行sql文件 2.部署项目到服务器中 3.启动服务器运行 二.部署前后端分离项目 1.远程数据库和部署到服务器 2.利用node环境启动前端项目 3.解决主机无法解析服务器localhost问题 方法一 ​编辑 方…

Illustrator 2024(AI v28.0)

Illustrator 2024是一款功能强大的矢量图形编辑软件&#xff0c;由Adobe公司开发。它是设计师、艺术家和创意专业人士的首选工具&#xff0c;用于创建和编辑各种矢量图形、插图、图标、标志和艺术作品。 以下是Adobe Illustrator的主要功能和特点&#xff1a; 矢量图形编辑&…

命令模式——让程序舒畅执行

● 命令模式介绍 命令模式&#xff08;Command Pattern&#xff09;&#xff0c;是行为型设计模式之一。命令模式相对于其他的设计模式来说并没有那么多条条框框&#xff0c;其实并不是一个很“规矩”的模式&#xff0c;不过&#xff0c;就是基于一点&#xff0c;命令模式相对于…

实战授权码登录流程

我是经常阅读公众号优质文章&#xff0c;也经常体验到公众号的授权登录功能。今天就来实现下&#xff0c;流程图如下 效果图 后端接口 主要用来接收微信服务器推送的公众号用户触发的事件、生成和验证授权码的有效性 解析微信服务器推送的事件通知 public String login(Se…

MySQL 概述 数据库表操作 数据增删改

目录 MySQL概述前言安装与配置MySQL登录与卸载 数据模型概述SQL简介SQL通用语法简介SQL分类 数据库设计(数据库操作)-DDL数据库操作查询数据库 show databases、select database()创建数据库 create database使用数据库 use删除数据库 drop database 图形化工具连接数据库操作数…

Node.js中的单线程服务器

为了解决多线程服务器在高并发的I/O密集型应用中的不足&#xff0c;同时避免早期简单单线程服务器的性能障碍&#xff0c;Node.js采用了基于"事件循环"的非阻塞式单线程模型&#xff0c;实现了如下两个目标&#xff1a; &#xff08;1&#xff09;保证每个请求都可以…

通过el-tree 懒加载树,创建国家地区四级树

全国四级行政地区树数据库sql下载路径&#xff1a;【免费】全国四级地区(省市县)数据表sql资源-CSDN文库https://download.csdn.net/download/weixin_51722520/88469807?spm1001.2014.3001.5503 我在后台获取地区信息添加了限制&#xff0c;只获取parentid为当前的地…

[AUTOSAR][诊断管理][ECU][$34] 下载请求

文章目录 一、简介二、服务请求报文定义肯定响应支持的NRC三、示例代码34_req_dowload.c一、简介 RequestDownload(0x34)—— 下载请求 这个服务主要是用来给ECU下载数据的,最常见的应用就是在bootloader中,程序下载工具会发起下载请求,以完成ECU程序的升级。 二、服务…

计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

一物体被放置在传送带上&#xff0c;转轴的直径为100mm。已知线阵相机4K7u&#xff08;一行共4096个像素单元&#xff0c;像素单元大小7um&#xff09;&#xff0c;镜头35mm&#xff0c;编码器2000脉冲/圈。保证图像不变形的条件下&#xff0c;计算相机到产品之间 摆放距离&…

国际阿里云CDN加速OSS资源教程!

当您需要加速OSS上的静态资源时&#xff0c;可以通过阿里云CDN加速OSS域名&#xff0c;实现静态资源的访问加速。本文详细介绍了通过CDN控制台实现OSS加速的操作流程和应用场景。 客户价值 阿里云OSS可提供低成本的存储&#xff0c;CDN可以实现静态资源加速分发。使用OSS作为C…