探探我对加密算法的认识

news2024/11/13 9:35:40

密码学基本认知

为什么需要加密算法,如果不加密可能导致哪些问题?

在这里插入图片描述

如果对传输的数据不使用加密算法,所有的数据在传输过程中都是明文传输的,那么会出现以下三种问题:

1)泄露问题:如果在网络中进行数据传输,数据以明文方式传输的话,通信双方传输的数据都是肉眼可见的,随意一个抓包软件就可以获取到通信双方传递的所有数据,造成数据泄露。

泄露问题举例

  1. 在线购物:用户在未加密的网站上输入信用卡信息进行支付。黑客可以拦截这些数据,获取信用卡号、有效期和安全码,从而盗刷信用卡。
  2. 电子邮件:未加密的电子邮件在传输过程中可能被第三方截取,邮件中的个人信息、商业机密或敏感内容可能被他人获取。

2)篡改问题:如果不采取一些防篡改机制,那么如果有一个中间人拦截了通信双方传输的信息,并且在中间进行了修改,然后将修改过后的数据再传输给接收端,但是接收端对此数据是否被修改是无感应的,也就是说中间人对数据的修改接收方和发送方均感应不到

篡改问题举例:

  1. 金融交易:股票交易指令在网络中传输时未加密,攻击者可以篡改交易金额或股票代码,导致投资者遭受重大经济损失。
  2. 软件更新:软件的更新包在下载过程中未加密,黑客可以修改更新内容,植入恶意代码,从而控制用户设备或窃取数据。

3)冒充问题:通信双方如果不采取某些认证机制,那么网络上的任何人都可以相互冒充,并且利用你对某些身份的信任去让你执行一些不正当的操作

冒充问题举例

  1. 网络登录:用户登录网站的认证信息未加密传输,攻击者可以窃取并冒充用户身份登录,进行非法操作。
  2. 通信应用:即时通讯工具中的消息未加密,攻击者可以冒充一方发送虚假消息,误导另一方做出错误决策。

本文主要介绍解决上述三种问题的常用机制:

  • 信息加密:用于解决泄露问题
  • 校验机制:用于解决篡改问题
  • 身份证书:用于解决冒充问题

常见的加密算法

对称加密算法:

  • AES(Advanced Encryption Standard):是目前最常用、最安全的对称加密算法之一。适用于大量数据的加密和解密,如文件加密、数据库加密、网络通信加密等。
  • DES(Data Encryption Standard):相对较旧,安全性不如 AES,但在一些旧系统中仍可能使用。适用于对安全性要求不是特别高的场景。
  • 3DES(Triple DES):是 DES 的改进版本,安全性有所提高。可用于对旧的 DES 系统进行升级。

对称加密算法适用于需要快速加密大量数据,并且通信双方可以安全地共享密钥的场景。

非对称加密算法:

  • RSA:应用广泛,可以用于数字签名、密钥交换和数据加密。常用于网络通信中的身份验证和密钥协商。
  • DSA(Digital Signature Algorithm):主要用于数字签名。
  • ECC(Elliptic Curve Cryptography):在相同安全性下,密钥长度更短,计算效率更高。适用于资源受限的设备,如移动设备。

非对称加密算法适用于密钥交换数字签名身份验证等场景。

单向加密算法(哈希算法):

  • MD5(Message Digest Algorithm 5):但由于安全性问题,现在不建议用于重要数据。
  • SHA-1:也因安全性逐渐不被推荐。
  • SHA-2(包括 SHA-256、SHA-384、SHA-512 等):安全性较高,常用于数据完整性校验、密码存储等。

单向加密算法适用于验证数据的完整性生成消息摘要密码存储的哈希处理等。

对称加密

为什么对称加密算法适用于需要快速加密大量数据

  1. 计算效率高:对称加密算法在加密和解密过程中使用相同的密钥,其**加密和解密的计算过程相对简单,速度快。**相比之下,非对称加密算法的计算复杂度通常较高。
  2. 密钥长度相对较短:在提供相同安全级别的情况下,对称加密算法所需的密钥长度通常比非对称加密算法短。较短的密钥意味着加密和解密操作所需的计算量减少,从而提高了处理大量数据时的速度。
  3. 硬件支持:许多现代硬件设备(如 CPU、加密芯片等)对常见的对称加密算法有专门的优化和指令集支持,进一步提高了加密和解密的速度。
  4. 流加密模式:对称加密算法可以采用流加密模式,能够实时处理数据流,无需对整个数据块进行缓冲,特别适合对连续的大量数据进行加密。

非对称加密

什么是密钥交换,为什么非对称加密算法适合做密钥交换,过程是怎么样的?

密钥交换是指在通信双方之间安全地共享用于后续加密通信的密钥的过程。

非对称加密算法适合做密钥交换的原因主要有:

  1. 解决对称加密中密钥配送的难题:在对称加密中,双方需要共享相同的密钥,如果直接传输密钥可能被窃取。非对称加密可以在不安全的信道上安全地交换密钥信息。
  2. 安全性高:基于数学难题,私钥的保密性强,难以从公钥推导出私钥,保证了密钥交换的安全性。

以下是以 RSA 算法为例的非对称加密密钥交换过程:

  1. 通信双方 A 和 B 分别生成自己的 RSA 密钥对,包括公钥和私钥。A 的公钥为 PU_A,私钥为 PR_A;B 的公钥为 PU_B,私钥为 PR_B
  2. A 想要与 B 进行安全通信,A 首先获取 B 的公钥 PU_B
  3. A 生成一个随机的对称密钥 K(也称为会话密钥),这个密钥将用于后续的通信数据加密。
  4. A 使用 B 的公钥 PU_B 对对称密钥 K 进行加密,得到加密后的密钥 EK
  5. A 将加密后的密钥 EK 发送给 B。
  6. B 接收到 EK 后,使用自己的私钥 PR_B 对其进行解密,得到对称密钥 K
  7. 此时,A 和 B 都拥有了相同的对称密钥 K,后续的通信就可以使用这个对称密钥进行加密和解密数据。

什么是数字签名,为什么非对称加密算法适合做数字签名,过程是怎么样的?

数字签名是一种用于验证消息来源和完整性的机制。**(防止篡改)**它类似于传统手写签名在数字世界中的等效形式,用于证明消息是由特定的发送方创建,并且在传输过程中未被篡改。

非对称加密算法适合做数字签名的原因包括:

  1. 不可否认性:只有拥有私钥的发送方能够生成有效的数字签名,从而无法否认发送过该消息。
  2. 验证来源:接收方可以使用发送方的公钥验证签名,确定消息确实来自声称的发送方。
  3. 完整性保障:签名与原始消息紧密相关,如果消息被篡改,签名验证将会失败。

数字签名的过程通常如下:

  1. 发送方生成消息。
  2. 发送方使用特定的哈希算法(如 SHA-256)对消息进行处理,生成消息摘要(一个固定长度的哈希值)。
  3. 发送方使用自己的私钥对消息摘要进行加密,得到的加密结果就是数字签名。
  4. 发送方将原始消息和数字签名一起发送给接收方。
  5. 接收方收到消息和数字签名后:
    • 使用与发送方相同的哈希算法对原始消息进行计算,得到一个新的消息摘要。
    • 使用发送方的公钥对数字签名进行解密,得到另一个消息摘要。
  6. 接收方比较这两个消息摘要。如果相同,则表明消息在传输过程中未被篡改,且确实来自声称的发送方。

什么是身份验证,为什么非对称加密算法适合做身份验证,过程是怎么样的?

身份验证是确认声称的身份是否真实有效的过程,目的是确保用户或实体是他们所声称的那个人或那个实体。(防止冒充)

非对称加密算法适合做身份验证的原因包括:

  1. 私钥的唯一性:每个实体的私钥是唯一且保密的,只有拥有正确私钥的实体才能成功完成身份验证过程。
  2. 不可伪造性:由于难以从公钥推导出私钥,攻击者难以伪造合法实体的身份验证信息。

以下是使用非对称加密算法进行身份验证的一般过程:

  1. 实体(如用户、服务器等)生成非对称密钥对,包括私钥和公钥。
  2. 实体将其公钥公开或注册到可信的认证机构或服务中。
  3. 当进行身份验证时,实体向验证方提供身份信息和使用其私钥对特定数据(如随机挑战值、时间戳等)进行签名。
  4. 验证方获取该实体的公钥。
  5. 验证方使用获取到的公钥对收到的签名进行验证。
  6. 如果验证成功,即签名与使用公钥验证的数据匹配,表明该实体拥有对应的私钥,从而确认其身份合法;否则,身份验证失败。

例如,在客户端与服务器的通信中,服务器向客户端发送一个随机挑战值,客户端使用其私钥对挑战值进行签名并返回给服务器,服务器使用客户端的公钥验证签名来确认客户端的身份。

单向加密

为什么单向加密算法适用于验证数据的完整性,过程是怎么样的

单向加密算法适用于验证数据完整性的原因主要有以下几点:

  1. 唯一性:相同的输入数据始终会产生相同的摘要。只要数据内容不变,摘要就不变。
  2. 敏感性:数据的微小变化会导致摘要的显著不同,能敏锐察觉数据的任何改动。
  3. 不可逆性:无法通过摘要反推出原始数据,增加了安全性。

以下是使用单向加密算法验证数据完整性的过程:

  1. 发送方:
    • 对待发送的数据使用单向加密算法(如 SHA-256)进行计算,得到数据的摘要值。
    • 将原始数据和摘要值一起发送给接收方。
  2. 接收方:
    • 接收到数据后,使用与发送方相同的单向加密算法对收到的原始数据进行计算,得到新的摘要值。
    • 将新计算得到的摘要值与接收到的原始摘要值进行对比。
    • 如果两个摘要值相同,说明数据在传输过程中没有被篡改,完整性得到了保证;如果不同,则表明数据的完整性遭到了破坏。

例如,使用 SHA-256 算法计算 “Hello World” 的摘要值。发送方计算出摘要值并与数据一同发送。接收方收到后重新计算数据的摘要值并与收到的摘要值比较,以此判断数据完整性。

为什么单向加密算法适用于密码存储的哈希处理,过程是怎么样的

单向加密算法适用于密码存储的哈希处理,主要原因如下:

  1. 安全性:单向加密算法的不可逆性使得即使数据库被攻击者获取,也无法直接从哈希值还原出原始密码。这大大降低了密码泄露的风险。
  2. 效率:计算哈希值的速度通常很快,适合在用户注册或登录时快速处理密码。
  3. 存储节省:哈希值通常比原始密码占用更少的存储空间。

过程通常如下:

  1. 用户注册时:
    • 用户输入密码。
    • 系统使用单向加密算法(如 bcrypt、scrypt 或 PBKDF2 结合 SHA-256 等)对密码进行处理,生成哈希值。
    • 系统将生成的哈希值存储在数据库中,而不是存储原始密码。
  2. 用户登录时:
    • 用户输入密码。
    • 系统使用相同的单向加密算法对输入的密码进行处理,生成新的哈希值。
    • 系统将新生成的哈希值与数据库中存储的哈希值进行比较。
    • 如果两个哈希值匹配,登录成功;否则,登录失败。

通过这种方式,即使数据库被攻破,攻击者获得的也只是密码的哈希值,而不是明文密码,从而增加了密码的安全性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大美祖国之地名篇-探寻全国同名地名

目录 前言 一、地名数据库 1、数据库模型 2、数据表结构 二、实践之旅,发现同名地名 1、省、市同名 2、市、县同名 3、 区县、乡镇同名 4、乡镇和村委会同名 三、总结 前言 我们祖国地大物博,从北到南,从东到西。祖国位于亚洲东部&…

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行…

信创企业级即时通讯:私有化安全沟通的新趋势

随着信息技术的不断发展,企业间的及时沟通和高效协作成为了推动业务创新和发展的关键。而信创企业作为信息创新的先驱者,对即时通讯工具的安全性和私有化能力提出了更高的要求。在这样的背景下,私有化安全沟通逐渐成为了信创企业级即时通讯的…

特殊类设计与单例模式

特殊类设计与单例模式 一、不能被拷贝的类1、介绍2、示例代码 二、只能在堆上创建对象的类1、介绍2、示例代码 三、只能在栈上创建对象的类1、介绍2、示例代码 四、单例模式1、介绍2、设计模式3、懒汉式(1)介绍(2)示例代码1&#…

Android 12 SystemUI下拉状态栏禁止QuickQSPanel展开

1.概述 遇到需求,QuickQSPanel首次下拉后展示快捷功能模块以后就是显示QuickQSPanel,而不展开QSPanel,接下来要从下滑手势下拉出状态栏分析功能实现。也就是直接是展开状态。 2、涉及核心类 frameworks\base\packages\SystemUI\src\com\and…

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实…

【C++】手把手教你看懂的 STL map 详解(超详细解析,小白一看就懂!!)

目录 一、前言 二、预备知识 💢关联式容器💢 💢键值对💢 💢哈希结构的关联式容器💢 三、map 详解 🔥map 的介绍 🔥map的模板参数说明 🔥map的构造…

HarmonyOS应用开发( Beta5.0)HOS-用户认证服务:面部识别

介绍 User Authentication Kit(用户认证服务)提供了基于用户在设备本地注册的人脸和指纹来认证用户身份的能力。 用户向应用/系统服务请求访问某些个人数据或执行某些敏感操作时,应用/系统服务将调用系统用户身份认证控件对用户身份进行认证…

AI在医学领域:MIL回归用于前列腺癌复发预测

2024年,全球男性新癌症病例预计为1029080例,其中前列腺癌病例预计为29%。前列腺癌是男性中第二常见的癌症类型,仅次于肺癌。它主要影响老年男性,且发病率随年龄增长而增加。前列腺癌的主要治疗方法是前列腺切除术,但术…

知识竞赛答题软件应用场景有哪些

知识竞赛答题软件应用常见场景有哪些? 一、场景分析:该答题软件基于java技术和原生小程序开发完成,其功能主要包括:个人答题、好友pk、排位pk升级赛、专题pk答题、多人pk答题、积分兑换、排行榜等七大功能模块页面,适用…

记一次学习--内网穿透

目录 环境搭建 两张网卡如何配置 Ubuntu配置 渗透 ubuntu的拿下 centos的拿下 探测内网环境 fscan扫描 msf上马 渗透 拿下bage cms windows的拿下 ​编辑 使用fscan查看内网环境,发现了192.168.110.128这台设备 使用msf上马,现在这台机器是…

npm安装electron报错 RequestError: connect ETIMEDOUT 185.199.110.133:443

文章目录 npm安装electron报错的问题解决办法 npm安装electron报错的问题 报错信息如下: 由于网络原因一直报错,但是安装其他依赖没问题,查看源,使用淘宝源,也无效 解决办法 设置electron_mirror专用源: npm con…

C++入门基础知识57——【关于C++日期 时间】

成长路上不孤单😊【14后,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊!!!!&#xff…

分布式部署①

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 1. 需要部署的服务 Nacos 理论上,应…

Popup源码分析 -- ant-design-vue系列

Popup源码分析 – ant-design-vue系列 1 极简代码 直接返回两个组件&#xff1a;Mask 和 PopupInner&#xff0c;后者在上一篇已经分析过了。下面我们先看一下 Mask的源码。 setup(props, { slots }) {return () > {if (!props.visible) return null;return (<div cla…

【Qt】窗口移动和大小改变事件

窗口移动和大小改变事件 moveEvent窗口移动时触发的事件resizeEvent窗口大小改变时触发的事件 例子&#xff1a;测试移动窗口和改变窗口事件 代码展示 #include "widget.h" #include "ui_widget.h"#include <QDebug> #include <QMoveEvent> …

chapter13-常用类——(String类)——day16

目录 477-StringBuffer方法 477-StringBuffer练习 479-StringBuilder结构剖析 480-StringBuilder应用 477-StringBuffer方法 三个字换两个字 477-StringBuffer练习 1、下面那个StringBuffer&#xff08;str&#xff09;有参构造器&#xff0c;在传入的是null的时候会报错&a…

mybatisplus使用OptimisticLockerInnerInterceptor实现版本号乐观锁

目录 OptimisticLockerInnerInterceptor 介绍 创建项目 创建项目 引入依赖 创建数据表 application.yml配置 项目结构 配置乐观锁拦截器 创建实体类 创建mapper 创建service 创建返回包装类BaseResponse 创建UserController 测试 查询 修改 ​编辑 修改后再查…

imu+wheel融合

ImuWheel融合 文章目录 ImuWheel融合1 轮速计1.1 航迹递推1.1.1 基于欧拉法1.1.2 基于二阶Runge-Kutta积分1.1.3 群空间闭式积分 1.2 雅可比计算 2 IMU观测更新3 数据处理 1 轮速计 1.1 航迹递推 ​ 常见的轮速计积分的方式有三种&#xff1a;欧拉积分、二阶Runge-Kutta积分、…

拯救者y9000p外接显示器黑屏

一开始会出现偶尔黑屏的情况&#xff0c;短则一两秒&#xff0c;长则五分钟。开始以为是屏幕或者是hdmi线的问题。后来网上查&#xff0c;发现可能是联想自带的XRite颜色校准器。 如果不需要该软件可以设置成为开机禁用&#xff0c;这样暂时就没问题了。