对称和非对称加密算法

 

 对称加密算法

对称加密算法依赖于一个共享的加密密钥,该密钥会被分发给所有参与通信 的对象。所有通信对象都使用这个密钥对消息数据进行加密和解密。当使用越长 的密钥对消息进行加密时,密文数据越难被破解。对称加密算法主要应用于批量 加密的数据,并且只为安全服务提供机密性。图6-1说明了对称加密算法的加密和 解密过程。对称加密算法的特点是文件加密和解密使用相同的密钥,即发送方和 接收方需要持有同一把密钥。相对于非对称加密算法,对称加密算法具有更高的 加解密速度,但双方都需要事先知道密钥,密钥在传输过程中可能会被窃取,因 此安全性没有非对称加密算法强。常见的对称加密算法包括DES 、AES等。

4678378f077144708fb5f3a69d0f24c4.png

图6-1    对称加密算法的加密和解密过程

因为对称加密算法具有发送方和接收方使用同一把密钥的特点,所以存在如 下优缺点:

·对称加密算法的主要优势在于能够以极快的速度进行操作,通常是非对称加 密算法的1000~10 000倍。

·对称加密算法未实现不可否认性。由于任意通信方都可以利用共享的密钥对 消息进行加密和解密,因此无法分辨指定消息的来源。

·对称加密算法具有不可扩展性。对于大的用户组来说,使用对称密钥的密码 进行通信非常困难。只有在每个可能的用户组合共享私有密钥时,组中个人之间 的安全专有通信才能实现。

·密钥需要经常更新。每当有成员离开用户组时,所有涉及这个成员的密钥都 必须被抛弃。

 

 

 

 

 

 

6.1.2    非对称加密算法

 

非对称密钥算法(也称为公钥算法)针对对称加密算法的弱点提供了另外一 种解决方案。在系统中,每个用户都有两个密钥:一个是在所有用户之间共享的 公钥,另一个是只有用户自己知道并秘密保管的私钥。如果使用公钥加密消息, 那么只有相关的私钥能够进行解密,反之,如果使用私钥加密消息,则只有用相 关的公钥能够解密,即数字签名技术。图6-2是非对称加密算法的加密和解密过  程。

712bae9dfffb4e6ca24fb142b0432331.png

图6-2    非对称加密算法的加密和解密过程

在这里举一个例子,如果小明希望向小红发送消息,首先要生成一条明文消 息,随后使用小红的公钥对消息进行加密。对这个密文进行解密的唯一方法是使 用小红的私钥,并且唯一有权使用这个密钥的用户就是小红。如果小红希望向小 明发出回应消息,小红会使用小明的公钥对回应消息进行加密,小明随后可以使 用他自己的私钥对消息进行解密,从而读取这些消息。

文件加密需要公钥(publickey)和私钥(privatekey)。接收方在发送消息  前,需要事先生成公钥和私钥,然后将公钥发送给发送方。发送方收到公钥后, 将待发送数据用公钥加密,发送给接收方。接收方收到数据后,用私钥解密获得 明文信息。在整个过程中,公钥负责加密,私钥负责解密,这样数据在传输过程 中即使被截获,攻击者没有私钥也无法破解。非对称加密算法的加解密速度低于 对称加密算法,但是安全性更高。通常非对称加密算法包括RSA 、ECC等。

非对称加密算法除了能够确保消息的保密性,还可以实现对数字签名。如果 小明希望使其他用户确信带有其签名的消息是由小明本人发送的,那么首先要使 用散列算法创建一个消息摘要。小明随后使用其私钥对消息摘要进行加密。所有 希望验证这个签名的用户只需要利用小明的公钥对消息摘要进行解密,然后验证 解密的消息摘要是正确的,即可确定是否为小明本人发送的消息。

 

 

 

 

 

非对称加密算法的主要优点如下:

·有较好的扩展性,增加新用户只需要生成一对“ 公钥-私钥” 。新用户与非对 称密码系统中的所有用户通信时都使用这对相同的密钥。

· 容易删除用户。非对称算法提供了一种密钥撤销机制,这个机制准许密钥被 取消,从而能够有效地从非对称系统中删除用户。

· 只有在用户的私钥被破坏时,才需要进行密钥重建。如果某位用户离开了公 司,那么系统管理员只需要简单地将该用户的密钥作废即可。其他密钥都不会被 破坏,因此其他用户都不需要进行密钥重建。

· 非对称加密算法提供了完整性、身份认证和不可否认性。如果某位用户没有 与其他个体共享其私钥,那么具有该用户签名的消息就是正确无误的,并且具有 特定的来源,在以后的任何时刻都不能被否认。

 

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

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

相关文章

【开源】SpringBoot框架开发海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

力扣之2619.数组原型对象的最后一个元素-JS

Array.prototype.last function () {const a this.length;if (a 0) {return -1;}return this[a - 1]; };const nums [null, {}, 3]; console.log(nums.last());说明: 在 JavaScript 中,Array.prototype 是每个数组对象的原型。通过在 Array.prototy…

探索智慧文旅:科技如何提升游客体验

随着科技的迅猛发展,智慧文旅已成为旅游业的重要发展方向。通过运用先进的信息技术,智慧文旅不仅改变了传统旅游业的运营模式,更在提升游客体验方面取得了显著成效。本文将深入探讨科技如何助力智慧文旅提升游客体验。 一、智慧文旅的兴起与…

认识Spring 中的日志

这篇文章你将了解到Spring生态中日志框架是如何演化集成的 Spring Boot 日志 众说周知,Spring Boot 统一了日志框架,统一使用Logback进行日志输出,不管内部依赖框架使用的何种日志,最终都以Logback输出,他为什么需要统…

FCIS 2023:洞悉网络安全新前沿,引领未来安全创新狂潮

在数字化浪潮席卷全球的今天,网络安全问题愈发凸显其重要性。 FCIS 2023网络安全创新大会作为业界瞩目的盛会,不仅汇聚了国际顶尖的网络安全专家,更展示了最前沿的安全技术与研究成果。那么,参与这场大会,我们究竟能学…

05 MyBatis之表关系的声明+事务+SqlSession三件套的作用域

MyBatis 支持一对一,一对多,多对多查询。XML 文件和注解都能实现关系的操作。多对多实质就是一对多 1. 表关系的维护 1.1 One一对一 一对一查询和多表(两表)查询很相似, 都能查询两表的全部属性 区别是一对一可以在对象中嵌套对象, 呈现包含关系; 多表…

ele-h5项目使用vue3+vite开发:第一节、页面头部实现

实现页面 确认需求 顶部提示栏搜索框搜索提示 normalize.css:处理不同浏览器的默认样式 安装 npm i normalize.css 使用 src\App.vue<style scoped> import normalize.css;#app {/** 让字体抗锯齿&#xff0c;看起来更清晰 */-webkit-font-smoothing: antialiased;-moz-o…

python打造光斑处理系统4:裁切光斑感兴趣区域

文章目录 图像裁切给定坐标裁切手动阈值裁切 光斑处理&#xff1a;python处理高斯光束的图像 光斑处理系统&#xff1a;程序框架&#x1f31f;打开图像&#x1f31f;参数对话框/伪彩映射 图像裁切 一般来说&#xff0c;光斑只占图像很小一部分&#xff0c;为了更好的观感和更…

python实现贪吃蛇小游戏(附源码)

文章目录 导入所需的模块坐标主游戏循环模块得分 贪吃蛇小游戏&#xff0c;那个曾经陪伴着00后和90后度过无数欢笑时光的熟悉身影&#xff0c;仿佛是一把打开时光之门的钥匙。它不仅是游戏世界的经典之一&#xff0c;更是我们童年岁月中不可或缺的一部分&#xff0c;一个承载回…

《区块链简易速速上手小册》第6章:区块链在金融服务领域的应用(2024 最新版)

文章目录 6.1 金融服务中的区块链6.1.1 金融服务中区块链的基础6.1.2 主要案例&#xff1a;跨境支付6.1.3 拓展案例 1&#xff1a;去中心化金融&#xff08;DeFi&#xff09;6.1.4 拓展案例 2&#xff1a;代币化资产 6.2 区块链在支付系统中的作用6.2.1 支付系统中区块链的基础…

LRU 缓存置换策略:提升系统效率的秘密武器(上)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Android进阶之路 - ViewPager2 比 ViewPager 强在哪?

我记得前年&#xff08;2022&#xff09;面试的时候有被问到 ViewPager 和 ViewPager2 有什么区别&#xff1f;当时因为之前工作一直在开发售货机相关的项目&#xff0c;使用的技术要求并不高&#xff0c;所以一直没去了解过 ViewPager2~ 去年的时候正好有相关的功能需求&#…

[Java 并发基础]多线程编程

文章参考&#xff1a; https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html https://juejin.cn/post/6970558076642394142 文章目录 线程的创建方式继承 Thread实现 Runnable 接口实现 Callable 接口使用 Lambda使用线程池 线程创建相关的 jdk源码Thr…

TCP四次握手

TCP 协议在关闭连接时&#xff0c;需要进行四次挥手的过程&#xff0c;主要是为了确保客户端和服务器都能正确地关闭连接。 # 执行流程 四次挥手的具体流程如下&#xff1a; 客户端发送 FIN 包&#xff1a;客户端发送一个 FIN 包&#xff0c;其中 FIN 标识位为 1&#xff0c…

【项目管理】立项管理

一、前言 对于甲方的立项&#xff1a;需求调研二编写项目申请书一可行性研究&#xff08;机会、初步、详细&#xff09;一项目论证一项目评估一评审获得批准一发布招标文件&#xff01;对于乙方的立项&#xff1a;看到招标文件一进行项目识别一可行性研究&#xff08;机会、初…

【Java 数据结构】优先级队列(堆)

优先级队列&#xff08;堆&#xff09; 1. 优先级队列1.1 概念 2. 优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度 2.4 堆的插入与删除2.4.1 堆的插入2.4.2 堆的删除 2.5 用堆模拟实现优先级队列 3.常用…

JDBC - 结构优化1

JDBC - 结构优化1 文章目录 JDBC - 结构优化1三层架构1 什么是三层架构2 三层架构项目搭建 结构优化1 - 学生信息管理1 封装工具类2 ORM3 DAO 三层架构 1 什么是三层架构 **三层架构&#xff1a;**将程序划分为表示层, 业务逻辑层, 数据访问层三层&#xff0c;各层之间采用接…

Redis应用-哨兵模式以及缓存穿透雪崩解决方案

文章目录 Redis应用-哨兵模式以及缓存穿透雪崩哨兵模式Redis缓存穿透和雪崩缓存穿透布隆过滤器缓存空对象 缓存击穿设置热点数据永不过期加互斥锁 缓存雪崩Redis高可用限流降级数据预热 Redis应用-哨兵模式以及缓存穿透雪崩 哨兵模式 概述 主从切换技术的方法是&#xff1a;当…

RHCE DNS域名解析服务器

目录 1. 正向解析 1.1 安装必要软件 1.2 配置静态ip 1.3 DNS配置 1.4 测试 2. 反向解析 2.1 关闭安全软件&#xff0c;安装必要软件 2.2 配置静态ip 2.3 DNS配置 2.4 测试 1. 正向解析 1.1 安装必要软件 1.2 配置静态ip 服务器配置 nmcli c modify ens32 ipv4.method man…

基于simulink的模糊PID控制器建模与仿真,并对比PID控制器

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1PID控制器原理 4.2 模糊PID控制器原理 5.完整工程文件 1.课题概述 在simulink&#xff0c;分别建模实现一个模糊PID控制器和一个PID控制器&#xff0c;然后将PID控制器的控制输出和模糊PID的控制输出…