内容安全补充

第十一天

密码学

近现代加密算法

古典加密技术 --- 算法保密原则

近现代加密技术 --- 算法公开,密钥保密

对称加密算法,非对称加密算法

对称加密 --- 加密和解密的过程中使用的是同一把密钥。 所以,对称加密所使用的算法一定是一种双向函数,是可逆的。 异或运算 --- 相同为0,不同为1

流加密

主要是基于明文流(数据流)进行加密,在流加密中,我们需要使用的密钥是和明 文流相同长度的一串密钥流

常见的流加密算法 --- RC4

分组加密(块加密算法)

目前比较常用的对称加密算法 --- DES/3DES,AES(高级加密标准)

1,密钥共享

带外传输 --- 不方便

带内传输 --- 不安全

2,密钥管理 --- N * N

非对称加密算法

思路:设计类似家用邮箱取放

非对称加密算法和对称加密算法的主要区别在于,对称加密算法加解密仅使用同一把密 钥,而非对称加密算法,加密和解密使用的是不同的密钥。 --- 两把密钥

一把叫做公钥,另一把叫做私钥。 ---- 这两把钥匙,任意一把钥匙都可以进行加密的操 作,然后,需要通过另外一把钥匙来进行解密。

非对称加密算法使用的算法一定是不可逆的,取模运算(求余)

目前常用的非对称加密算法 --- RSA

结论 ---我们一般采用的做法是,在数据传输的时候,我们会选择使用对称加密算法进行加密,为了保证效率。但是,对称加密算法最主要的问题是密钥传递可能存在安全风险,所以,我们在传递密钥的时候,可以通过非对称加密算法进行加密,保证密钥传递的安全性。实现二者的互补,达到安全传输的目的。

DH算法 --- Diffie-Hellman算法 ---密钥交换算法 ---用来分发对称密钥的。

身份认证以及数据认证技术

对数据进行完整性校验 --- 我们会针对原始数据进行HASH运算,得到摘要值,之后, 发送到对端,也进行相同的运算,比对摘要值。如果摘要值相同,则数据完整;如果不 同,则数据不完整。

HASH算法 --- 散列函数

1,不可逆性

2,相同输入,相同输出。

3,雪崩效应 --- 原始数据中即使存在细微的区别,也会在结果中呈现出比较明显 的变化,方便,我们看出数据是否被篡改。

4,等长输出 --- 不管原始数据多长,运算之后的摘要值长度是固定。(MD5可以 将任意长度的输入,转换成128位的输出。

我们可以使用私钥对摘要值进行加密,之后传递,这就形成了数字签名。

注意:这整个过程只能表示Bob收到的数据,的确是他拥有公钥的这个人发送的数据, 但是,你拥有公钥有没有被别人恶意篡改或者替换,这种方法是无法识别出来的,所 以,这仅能实现一种数据源的检测,不能进行身份认证。 同时,可以完成完整性校验。

数字证书

CA可信机构 --- 提供身份信息证明的第三方机构

通信双方需要完全信任这个第三方机构,之后,让CA为公钥作证。 因为双方都信任该CA机构,所以,实现拥有这个CA机构的公钥信息。 CA机构会使用自己的私钥对A的公钥和一些其他信息一起进行加密,生成数字证书。

1,原始信息HASH算法得到摘要值 ---- 为了做完整性校验。为了保证我们的摘要 值在传递的过程中,不会被篡改,所以,需要使用私钥进行加密。形成数字签名。

2,针对原始信息,数字签名,数字证书(是用户提前向CA机构申请,获取到的通 过CA机构私钥加密后的证书。里面主要包含了Alice的公钥。主要是做身份认证使 用)进行加密。使用的是对称加密算法。对称机密算法需要使用对应的密钥来进行 加密。

3,将对称加密算法的密钥通过Bob的公钥进行加密,形成密钥信封。(这里是通 过非对称加密算法的方式,来传输对称密钥的。也可以使用DH算法,使双方获得 对称密钥。)

4,将加密信息和密钥信封通过公网传递到对端Bob处。

5,Bob首先对密钥信封进行解密。因为这个密钥信封是通过Bob的公钥进行加密 的,所以,使用Bob自己的私钥就可以进行解密。解密后,将得到对称密钥。

6,使用对称密钥去解密加密信息。 ---- 原始数据,数字签名,数字证书

7,使用CA机构的公钥来解开数字证书。因为数字证书是由CA机构的私钥进行加 密的,并且,Bob本身也信任CA机构,所以,自身设备上是拥有CA机构的公钥 的。

8,解开数字证书后将得到Alice的公钥,根据Alice的公钥可以解开数字签名。因 为数字签名是由Alice自己的私钥来进行加密的,所以,如果可以顺利的使用ALICE 的公钥进行解密,则完成了身份认证和数据源鉴别工作。

9,Bob自身需要对原始信息进行HASH运算,并且,数字签名解开后,里面也包 含ALice发送时对原始信息进行HASH运算的摘要值,比对两次摘要值,则可完成 完整性校验。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】鼠标拖拽修改控件尺寸---八个方位修改

前提 在开发一个类似qdesiger的项目中 使用QGraphicsProxyWidget将Qt基础控件作为item放在场景视图中显示和编辑 创建自定义类继承QGraphicsProxyWidget,管理控件 成员变量 有控件的xywh等,其中x、y坐标存储是基于最底层widgetitem的 坐标系 x轴以右为正…

15-36V降压充电光伏MPPT充电方案

1.MPPT原理--简介 MPPT,全称为Maximum Power Point Tracking,即最大功点跟踪,它是一种通过调节电气模块的工作状态,使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中,可有效地…

Mac怎么运行赛博朋克2077,使用Game Porting Toolkit

Game Porting Toolkit通过转译的方式,将Direct3D指令翻译成Metal指令,让不少Windows游戏都能够在Apple Silicon Mac上成功运行。作为一款开发者工具,运行起来自然有不少的坑,本文手把手带你在M芯片Mac上运行赛博朋克2077。 CrossO…

数据库期末简答题速成-救命专用

简答题: 第 1 章 绪论 DBMS 的主要功能有哪些? 答:数据库管理系统(DBMS)是位于操作系统与用户之间的一个数据管理软件,它主要功能包括以下几个方面: 数据定义功能 DBMS提供数据描述语言&…

(响应数据)学习SpringMVC的第三天

响应数据 一 . 传统同步业务数据响应 1.1 请求资源转发与请求资源重定向的区别 请求资源转发时,froward:可不写 二 . 前后端分离异步方式 回写json格式的字符串 1 用RestController代替Controller与 ResponseBody 2 . 直接返回user对象实体 , 即可向 前端ajax 返回json字…

day02_java基础_变量_数据类型等

零、今日内容 1 HelloWorld程序 2 idea使用 3 变量 4 数据类型 5 String 一、复习 班规班纪。。。。。 安装jdk JDK 是开发工具 JRE 是运行代码 JDK包含JRE 配置环境变量 二、HelloWorld程序 前提:JDK已经安装配置完毕,有了这些环境就敲代码 代码…

Protocol Buffers v21.12 安装 ( linux 系统 )

下载 Protocol Buffers v21.12 Protocol Buffers v21.12 解压 tar zxvf protobuf-cpp-3.21.12.tar.gz执行 进入解压目录,执行下面configure可执行程序,目的是监测安装环境,生成makefile ./configure执行完后可以检查是否生成makefile文件 构…

kaggle网站简单介绍

Kaggle 是一个面向数据科学和机器学习爱好者的在线平台,它提供了一个用于数据科学竞赛、数据集分享和模型训练的环境。这个平台由 Kaggle Inc. 运营,Kaggle Inc. 是一家位于美国加州旧金山的人工智能公司。 Kaggle 最有特色的功能之一是举办各种数据科学…

MongoDB实战 – 用Python访问MongoDB数据库

MongoDB实战 – 用Python访问MongoDB数据库 MongoDB in Action – Access MongoDB Databases with Python By JacksonML Python语言功能强大众所周知,在数据库管理领域也无所不能。MongoDB是文档数据库,属于NoSQL数据库的一种,在业界也非常…

Java实现就医保险管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…

多层的二叉树结构如何快速写出其前序、中序、后序。

问题描述:多层的二叉树结构如何快速写出其前序、中序、后序。 问题解答:从顶部的二叉树,依次往下写,先写出第一层的二叉树,然后再写第二层的二叉树。当然按照的规则还是前序根左右,中序左根右,后…

Shiro 1.2.4反序列化漏洞

一、shiro描述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序 二、漏洞原理 AES加密的密钥Key被硬…

K线实战分析系列之六:启明星——空方力量减弱信号

KK线实战分析系列之六:启明星——空方力量减弱信号 一、星线二、多种反转形态三、启明星形态四、启明星形态的总结 一、星线 星线在单根K线形态上是属于纺锤线,之所以被称为星线,主要是因为它在行情当中的相对位置,区别于其他纺锤…

postman测试上传文件、导出excel的方法

按照如下操作步骤执行就可以了: 1、PostMan测试接口实现上传文件 第一步: 打开postman,将上传方式改为POST,再点击下【Body】 第二步: 然后,我们点击里面的【form-data】选项(如图所示)。 第三步&#xff…

基于编译器的静态代码分析与软件开发效率、质量和性能

基于编译器的静态代码分析与软件开发效率、质量和性能 本文节选自《基础软件之路:企业级实践及开源之路》一书,该书集结了中国几乎所有主流基础软件企业的实践案例,由 28 位知名专家共同编写,系统剖析了基础软件发展趋势、四大基…

EtherCAT 转 ModbusTCP 网关

功能概述 本产品是 EtherCAT 和 Modbus TCP 网关,使用数据映射方式工作。 本产品在 EtherCAT 侧作为 EtherCAT 从站,接 TwinCAT 、CodeSYS 、PLC 等;在 ModbusTCP 侧做为 ModbusTCP 主站(Client)或从站(Se…

RabbitMq:什么是RabbitMq? ①

一、RabbitMq定位 RabbitMq是一个基于消息订阅发布的一款消息中间件。 二、技术原理 核心概念 server:又称broker,接受客户端连接,实现AMQP实体服务。缓存代理,Kafka集群中的一台或多台服务器统称broker.connection:…

VUE基础知识九 ElemrntUI项目

ElementUI官网 一 项目 最终完成的效果: 切换上边的不同按钮,下方显示不同的表格数据 在src/components下新建不同业务组件的文件夹 1.1 搭建项目 使用脚手架搭建项目后,引入ElementUI(搭建、引入ElementUI步骤在第七节里已…

数据库管理-第154期 Oracle Vector DB AI-06(20240223)

数据库管理154期 2024-02-23 数据库管理-第154期 Oracle Vector DB & AI-06(20240223)1 环境准备创建表空间及用户TNSNAME配置 2 Oracle Vector的DML操作创建示例表插入基础数据DML操作UPDATE操作DELETE操作 3 多Vector列表4 固定维度的向量操作5 不…

链表 迭代方式实现链表反转

#include <stdio.h> #include <stdlib.h> 这两行是包含标准的输入输出库和动态内存分配库&#xff0c;以便你能够使用 printf、scanf 和 malloc 函数。 struct Node{//定义一个结构体类型 作为节点 int data;//存储整型数据 struct Node* next;//存储下一…