数据加密方式(对称加密/非对称加密 /数字签名/证书)

文章目录

  • 数据加密方式
    • 常用加密方式对比
      • 哈希算法(Hashing)
        • 哈希算法的特点
        • 常见的哈希算法
        • 哈希算法的应用
        • 哈希与加密的区别
        • 哈希算法的安全性问题
      • 对称加密(Symmetric Encryption)
        • 工作原理
        • 主要特点
        • 常见的对称加密算法
        • 优缺点
      • 非对称加密(Asymmetric Encryption)
        • 工作原理
        • 常见的非对称加密算法
        • 优缺点
      • 混合加密
        • 混合加密的基本原理
        • 混合加密的优点
        • 应用场景
    • 数字签名、证书和数据加密的关系
      • 核心概念对比
      • 三者的协作关系
      • 典型应用场景(HTTPS为例)
      • 三者的依赖关系
      • 常见误区澄清

数据加密方式

数据加密是信息安全的核心技术,用于保护数据的机密性、完整性和可用性。

常用加密方式对比

加密类型特点典型算法密钥管理速度主要用途安全性
哈希算法不可逆,固定长度输出SHA-256, MD5无需密钥密码存储、数据完整性校验MD5已淘汰,SHA-256安全
对称加密加密解密使用相同密钥AES, DES, ChaCha20密钥分发困难大数据加密、SSL/TLS依赖密钥长度(AES-256安全)
非对称加密公钥加密,私钥解密RSA, ECC, ElGamal无需共享私钥密钥交换、数字签名RSA-2048/ECC-256安全
混合加密结合对称和非对称加密TLS/SSL, PGP动态协商对称密钥中等HTTPS通信、安全邮件依赖底层算法组合

哈希算法(Hashing)

哈希算法(Hashing)并不是一种加密算法,而是一种用于数据处理的算法,它将输入的数据(无论大小)转换为固定长度的输出(哈希值或摘要)。哈希算法通常用于数据验证、校验、存储索引等场景,并且具有“单向性”特性,意味着从哈希值无法还原原始数据。

哈希算法的特点
特性说明示例
确定性相同输入始终产生相同的哈希值。输入"hello" -> 哈希值
“2cf24dba5fb0a30e26e83b2ac5b9e29e1b1695f1b4c6ad45d8f8e68eac4b3e3f”
快速计算对任意输入,哈希值可以高效计算。无论输入是"hello"还是"world",计算哈希值的时间都非常快。
不可逆性无法从哈希值反推出原始输入(单向函数)。从哈希值
“2cf24dba5fb0a30e26e83b2ac5b9e29e1b1695f1b4c6ad45d8f8e68eac4b3e3f”
无法推测出原始输入"hello"。
抗碰撞性极难找到两个不同的输入产生相同的哈希值(如SHA-256碰撞概率≈1/2²⁵⁶)。SHA-256的设计确保不同输入的哈希值几乎不可能相同。
雪崩效应输入微小变化(如1bit)会导致哈希值完全不同。输入"hello"的哈希值为
"2cf24dba5fb0a30e26e83b2ac5b9e29e1b1695f1b4c6ad45d8f8e68eac4b3e3f",
而输入"Hello"(仅大小写不同)的哈希值
为"2cf24dba5fb0a30e26e83b2ac5b9e29e1b1695f1b4c6ad45d8f8e68eac4b3e3f"。
常见的哈希算法
算法输出长度安全性应用场景
MD5128bit已破解(碰撞攻击)文件校验(非安全场景)
SHA-1160bit已淘汰旧版TLS、Git提交哈希
SHA-256256bit安全(抗量子)比特币、SSL证书、密码存储
SHA-3可变长度高安全替代SHA-2(如Keccak算法)
Bcrypt可变专为密码设计密码哈希(加盐+慢哈希)
哈希算法的应用
  • 数据校验:如文件下载时,提供哈希值(MD5、SHA-1、SHA-256等)供用户校验下载文件的完整性。
  • 密码存储:密码存储时通常会使用哈希算法(如SHA-256或bcrypt)对密码进行哈希,存储哈希值而非明文密码,增加安全性。
  • 数字签名:通过对消息内容进行哈希计算,再用私钥对哈希值进行签名,接收方可以使用公钥验证签名的有效性。
  • 区块链:区块链中的每个区块通过哈希算法与前一个区块的哈希值链接,确保数据的不可篡改性。
哈希与加密的区别
  • 哈希:是单向操作,不可逆的,用于生成数据摘要,常用于验证数据完整性。
  • 加密:是可逆操作,使用密钥加密数据,只有授权的密钥持有者可以解密,确保数据的机密性。
哈希算法的安全性问题

虽然哈希算法非常高效且适用于各种场景,但由于理论上的碰撞问题和一些攻击方法(如暴力破解、字典攻击等),某些哈希算法(如MD5、SHA-1)已不再安全。对于重要的应用场合,建议使用更加安全的哈希算法,如SHA-256或SHA-3。

对称加密(Symmetric Encryption)

对称加密(Symmetric Encryption)是加密技术中的一种,指的是加密和解密操作使用相同的密钥。这种加密方式是最传统的加密方法之一,其基本特点是加密和解密的密钥相同,因此,发送方和接收方必须共同保管这个密钥,并确保其安全性。对称加密广泛应用于数据加密、文件保护和通信加密等领域。

工作原理

在这里插入图片描述

对称加密的工作原理非常简单,通常包括以下几个步骤:

  • 密钥生成:发送方和接收方共享一个密钥。这个密钥必须在加密和解密时保持一致。
  • 加密:发送方使用密钥对明文(原始数据)进行加密,将其转换为密文(加密后的数据)。
  • 传输:加密后的密文通过不安全的通道(如互联网)传输。
  • 解密:接收方使用相同的密钥对密文进行解密,恢复出原始的明文。
主要特点
  • 效率高:对称加密算法通常较为高效,特别适合加密大量数据。
  • 密钥管理问题:密钥的安全性非常重要,因为如果密钥泄露,任何人都可以解密数据。因此,如何安全地传输和存储密钥是对称加密的挑战。
  • 计算速度:相比非对称加密,对称加密的计算速度要快得多,适合加密大规模数据。
常见的对称加密算法
算法名称密钥长度加密模式安全性状态典型应用场景示例说明
DES56位(实际64位)块加密(Feistel)已淘汰(不安全)旧金融系统、遗留设备加密"Hello" → 密文7A9B3C2D4E5F(易被暴力破解)
3DES168位(3×56位)块加密(三重DES)逐步淘汰支付系统(PCI DSS旧版兼容)加密"123456" → 三次DES运算 → 密文F1E2D3C4B5A6
AES128/192/256位块加密(SPN)安全(推荐)HTTPS、VPN、文件加密(如ZIP)AES-256加密"Password" → 密文9A7B8C6D5E4F(需IV+填充)
RC440-2048位流加密已弃用(漏洞)旧版WEP、早期SSL加密"Data" → 逐字节异或 → 密文3E5F(易受WEP攻击)
ChaCha20256位流加密安全(移动优先)TLS 1.3、移动端通信加密"Message" → 密文A2B4C6…(无需填充,抗侧信道攻击)
Blowfish32-448位块加密(Feistel)仍安全但过时旧版数据库加密加密"Secret" → 变长密钥 → 密文D5E6F7…(被AES取代)
优缺点
  • 优点:
    • 高效性:对称加密算法计算速度较快,适合加密大量数据。
    • 易于实现:对称加密算法通常较为简单,容易实现。
    • 广泛应用:对称加密在实际应用中非常广泛,特别是在文件加密、VPN等领域。
  • 缺点:
    • 密钥管理问题:密钥的安全性至关重要。如果密钥被泄露,攻击者可以轻松解密数据。密钥分发和管理成为主要挑战。
    • 无法提供身份验证:对称加密本身不能提供身份验证和数据完整性保护,需要配合其他技术(如数字签名)使用。

非对称加密(Asymmetric Encryption)

非对称加密(Asymmetric Encryption),又称为公钥加密,是一种加密方法,使用一对密钥:公钥和私钥。与对称加密不同,非对称加密的加密和解密过程使用不同的密钥。公钥用于加密数据,而私钥用于解密数据。非对称加密技术在信息安全中扮演着重要角色,尤其是在确保数据传输的机密性、完整性和身份认证方面。

工作原理

在这里插入图片描述

非对称加密的工作流程通常如下:

  • 密钥对生成:每个用户生成一对密钥,分别为公钥和私钥。公钥是公开的,可以广泛分发;私钥是保密的,仅由用户自己持有。
  • 加密:发送方使用接收方的公钥对消息进行加密。由于公钥是公开的,任何人都可以获取并加密信息。
  • 传输:加密后的数据(密文)通过不安全的网络传输。
  • 解密:接收方使用自己的私钥对密文进行解密,恢复出原始的明文。由于只有接收方拥有私钥,只有他们能够解密消息。
  • 特点
  • 密钥对:非对称加密使用公钥和私钥两把密钥。公钥可以公开,私钥必须保密。
  • 安全性:非对称加密的安全性基于数学难题,尤其是大数分解问题或离散对数问题。即使攻击者知道了公钥,也无法推算出私钥。
  • 加密解密:加密和解密使用不同的密钥,不需要事先共享密钥,解决了对称加密中的密钥分发问题。
常见的非对称加密算法
算法名称密钥长度加密模式安全性状态典型应用场景示例说明
RSA1024-4096位公钥加密(基于大数分解)安全(推荐)数字签名、证书、HTTPSRSA-2048加密"Message" → 密文F8A9B2…(基于公钥加密)
ECC160-512位(椭圆曲线)公钥加密(椭圆曲线算法)安全(高效)移动设备、TLS、数字签名ECC加密"Message" → 密文A7D1C3…(相比RSA更小的密钥,性能更好)
ElGamal2048-4096位公钥加密(基于离散对数问题)安全(推荐)数字签名、加密协议ElGamal加密"Secret" → 密文B2D4E7…(基于大数对数问题)
DSA1024-3072位数字签名(基于离散对数问题)安全(较旧)数字签名、身份认证DSA签名"Message" → 签名值G3F7…(主要用于认证)
Diffie-Hellman1024-4096位密钥交换(基于离散对数问题)安全(较旧)安全密钥交换协议Diffie-Hellman密钥交换"Key" → 共享密钥A1B2C3…
LWE(学习有误差)128-512位公钥加密(基于学习有误差假设)安全(前沿研究)后量子密码、加密协议LWE加密"Data" → 密文F4E2…(对抗量子计算攻击的候选算法)
优缺点
  • 优点:
    • 密钥管理简单:由于加密和解密使用不同的密钥,密钥传输不再需要保密。公钥可以公开,私钥只需保管好。
    • 安全性高:非对称加密基于复杂的数学问题(如大数分解或离散对数问题),即使公钥公开,攻击者也无法轻易推算出私钥。
    • 支持数字签名和身份验证:通过私钥进行签名和通过公钥验证签名,提供了身份认证和数据完整性保护。
  • 缺点:
    • 计算复杂度高:非对称加密算法的计算量相对较大,效率较低,特别是加密大数据时。与对称加密相比,它处理速度较慢。
    • 密钥长度较大:为了保证足够的安全性,非对称加密算法通常需要较长的密钥(例如,2048位或更长),这增加了存储和计算负担。

混合加密

混合加密是一种结合了对称加密和非对称加密优势的加密方法,通常用于解决传统加密方法中的效率和安全性问题。它通过结合对称加密算法和非对称加密算法,既保证了加密效率,又提升了安全性。

混合加密的基本原理

在这里插入图片描述

混合加密通常由以下两部分组成:

  • 对称加密:使用相同的密钥对数据进行加密和解密,效率高,适合加密大量数据。
  • 非对称加密:使用一对公钥和私钥进行加密和解密。公钥用来加密,私钥用来解密。非对称加密的优点是密钥管理更安全,但加密和解密速度较慢。

在混合加密中,通常的步骤如下:

  • 生成对称密钥:首先生成一个随机的对称加密密钥(例如AES密钥)。
  • 用对称加密加密数据:用生成的对称密钥加密需要保护的数据。
  • 用非对称加密加密对称密钥:用接收者的公钥加密对称密钥。
  • 发送加密数据:将加密后的数据和加密的对称密钥一起发送给接收者。
  • 解密过程:接收者用私钥解密对称密钥,然后用该对称密钥解密数据。
混合加密的优点
  • 高效性:对称加密在加密和解密过程中速度较快,适合加密大数据量。
  • 安全性:非对称加密提供了更强的密钥管理安全性,确保只有接收者可以解密对称密钥,从而解密数据。
  • 密钥交换安全:通过非对称加密传输对称密钥,避免了直接传输对称密钥所带来的安全风险。
应用场景

混合加密常见于以下场景:

  • SSL/TLS协议:在互联网中,SSL/TLS协议(如HTTPS)就是利用混合加密进行安全通信的典型例子。客户端和服务器通过非对称加密交换密钥,然后使用对称加密进行实际的数据传输。
  • 数字货币:例如,比特币等加密货币使用混合加密技术保障交易的安全性。

数字签名、证书和数据加密的关系

数字签名、证书和数据加密是信息安全领域的三大核心机制,它们相互关联但功能不同,共同构建了完整的信任与保密体系。

核心概念对比

机制作用技术基础主要目标
数据加密保护数据机密性对称/非对称加密(如AES、RSA)防止未授权访问
数字签名验证数据来源和完整性非对称加密+哈希(如RSA+SHA256)防篡改、抗抵赖
证书绑定公钥与身份数字签名+X.509标准身份认证与信任传递

三者的协作关系

  • 数据加密与数字签名

    • 加密保护内容,签名验证身份

      • 场景示例:Alice向Bob发送加密邮件

        • 加密:用Bob的公钥加密邮件内容(保密性)

        • 签名:用Alice的私钥对邮件哈希值签名(身份验证+完整性)

        • 验证:Bob用Alice的公钥验证签名,再用自己的私钥解密邮件。

  • 证书如何连接二者

    • 证书的核心作用:解决"公钥归属"问题(证明公钥属于真实的Alice/Bob)。

      • 流程:

        • CA(证书颁发机构)用私钥对Alice的公钥+身份信息签名,生成数字证书。

        • Bob收到Alice的证书后,用CA的公钥验证证书签名,确认Alice的公钥可信。

        • 后续通信中,Bob使用已验证的Alice公钥加密数据或验证签名。

典型应用场景(HTTPS为例)

在这里插入图片描述

  • 证书验证:

    • 服务器发送SSL证书(含公钥+域名信息+CA签名)。

    • 浏览器用CA公钥验证证书合法性。

  • 密钥交换:

    • 客户端生成对称密钥,用服务器公钥(来自证书)加密后传输。
  • 数据加密:

    • 后续通信使用对称密钥加密数据(如AES)。
  • 签名验证:

    • 关键操作(如登录请求)会用服务器私钥签名,客户端验证防止中间人攻击。

三者的依赖关系

在这里插入图片描述

  • 证书是信任的起点:没有证书,公钥无法被可信分发,签名和加密可能遭遇中间人攻击。

  • 签名保障加密的安全性:确保通信对方的公钥真实(如TLS握手阶段的签名验证)。

  • 加密保护签名过程:防止签名被截获重放(如签名前先加密哈希值)。

常见误区澄清

  • 误区1:加密和签名可以互相替代?
    → 不能!加密解决保密性,签名解决认证和完整性。

  • 误区2:有证书就不需要加密?
    → 证书仅验证身份,数据仍需加密保护(如HTTPS同时使用二者)。

  • 误区3:哈希算法足以替代签名?
    → 哈希无密钥,需配合非对称加密才能实现签名(防篡改+身份绑定)。

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

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

相关文章

UnityDots学习(五)

此篇开始研究实际应用到项目或个人Demo中。参考国外CodeMonkey的RTS包含一些基础API应用。 前言 游戏不必100%使用Dots完全实现。因为面向组件开发一个功能复杂度和调试都比面向对象要更难。对于某些模块,比如UI,事件管理系统,网络等&#…

移动端前端开发中常用的css

在开发移动端项目的时候,很多样式都是相同的,比如说图标大小,头像大小,页面底部保存(添加按钮),项目主体颜色等等,对于这些在项目中常用到的,通常都会写在公共样式中(pub…

Vue3 中 ref 与 reactive 的区别及底层原理详解

一、核心区别 1. 数据类型与使用场景 • ref 可定义基本类型(字符串、数字、布尔值)和对象类型的响应式数据。对于对象类型,ref 内部会自动调用 reactive 将其转换为响应式对象。 语法特点:需通过 .value 访问或修改数据&#…

AGV导航控制器技术方案——基于EFISH-SBC-RK3576/SAIL-RK3576的国产化革新‌(新一代工业级自主可控解决方案)‌

一、方案核心架构 ‌1. 硬件拓扑设计‌ ‌主控单元‌:SAIL-RK3576核心板(八核A72A53M0异构架构)‌传感器层‌: 双激光雷达(RS-LiDAR-16线 SICK TIM240)9轴IMU(BMI088) 轮式编码器&…

AI 辅助生成原型图

AI 辅助生成原型图 一、HTML 转设计稿工具介绍 网页转设计稿工具 使用 MasterGo 的 html-to-mastergo 插件可将网页转为设计稿,支持: 任意在线 HTML 文件(通过将 AI 生成的 UI 发布为在线页,可通过 Vercel 实现)离…

从零打造个人博客静态页面与TodoList应用:前端开发实战指南

前言 在当今数字时代,拥有个人博客和高效的任务管理工具已成为开发者展示自我和提升生产力的标配。本文将带你从零开始,通过纯前端技术实现一个兼具个人博客静态页面和TodoList任务管理功能的综合应用。无论你是前端新手还是希望巩固基础的中级开发者&a…

工作流与n8n:自动化技术的演进与开源工具的核心地位

第一章 工作流的基础理论介绍 1.1 工作流的定义与核心要素 工作流(Workflow)是指一系列相互衔接、自动化的业务活动或任务,其核心在于通过规则驱动的流程设计,实现跨系统、跨角色的协同作业。根据国际工作流管理联盟&#xff08…

WordPress插件:WPJAM Basic优化设置

WPJAM Basic 插件的「优化设置」是我爱水煮鱼博客多年使用 WordPress 的经验而整理的各类优化设置。 一、功能屏蔽 功能屏蔽就是屏蔽一些WordPress中用不上、难用的功能,目前的支持屏蔽以下功能: (1)屏蔽文章修订功能 文章修…

Spring AI 入门(持续更新)

介绍 Spring AI 是 Spring 项目中一个面向 AI 应用的模块&#xff0c;旨在通过集成开源框架、提供标准化的工具和便捷的开发体验&#xff0c;加速 AI 应用程序的构建和部署。 依赖 <!-- 基于 WebFlux 的响应式 SSE 传输 --> <dependency><groupId>org.spr…

c/c++日志库初识

C/C日志库&#xff1a;从入门到实践的深度指南 在软件开发的世界里&#xff0c;日志&#xff08;Logging&#xff09;扮演着一个沉默却至关重要的角色。它像是飞行记录仪的“黑匣子”&#xff0c;记录着应用程序运行时的关键信息&#xff0c;帮助开发者在问题发生时追溯根源&a…

C 语言图形编程 | 界面 / 动画 / 字符特效

注&#xff1a;本文为 “C 语言图形编程” 相关文章合辑。 略作重排&#xff0c;如有内容异常&#xff0c;请看原文。 C 语言图形化界面——含图形、按钮、鼠标、进度条等部件制作&#xff08;带详细代码、讲解及注释&#xff09; 非线性光学元件于 2020-02-15 09:42:37 发布…

开发狂飙VS稳定刹车:Utility Tree如何让架构决策“快而不失控”

大家好&#xff0c;我是沛哥儿。 在软件技术架构的世界里&#xff0c;架构师们常常面临灵魂拷问&#xff1a;高并发和低成本哪个优先级更高&#xff1f; 功能迭代速度和系统稳定性该如何平衡&#xff1f; 当多个质量属性相互冲突时&#xff0c;该如何做出科学决策&#xff1f; …

SCI论文图数据提取软件——GetData Graph Digitizer

在写综述或者毕业论文的时候一般会引用前人的文献数据图&#xff0c;但是直接截图获取来的数据图通常质量都不太高。因此我们需要从新画一张图&#xff0c;可以通过origin绘图来实现&#xff0c;今天介绍一个新的软件GetData Graph Digitizer 感谢下面博主分享的破解安装教程 …

深入探索 Apache Spark:从初识到集群运行原理

深入探索 Apache Spark&#xff1a;从初识到集群运行原理 在当今大数据时代&#xff0c;数据如同奔涌的河流&#xff0c;蕴藏着巨大的价值。如何高效地处理和分析这些海量数据&#xff0c;成为各行各业关注的焦点。Apache Spark 正是为此而生的强大引擎&#xff0c;它以其卓越…

场景可视化与数据编辑器:构建数据应用情境​

场景可视化是将数据与特定的应用场景相结合&#xff0c;借助数据编辑器对数据进行灵活处理和调整&#xff0c;通过模拟和展示真实场景&#xff0c;使企业能够更直观地理解数据在实际业务中的应用和影响&#xff0c;为企业的决策和运营提供有力支持。它能够将抽象的数据转化为具…

攻防世界-php伪协议和文件包含

fileinclude 可以看到正常回显里面显示lan参数有cookie值表示为language 然后进行一个判断&#xff0c;如果参数不是等于英语&#xff0c;就加上.php&#xff0c;那我们就可以在前面进行注入一个参数&#xff0c;即flag&#xff0c; payload&#xff1a;COOKIE:languageflag …

手撕LFU

博主介绍&#xff1a;程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章&#xff0c;首发gzh&#xff0c;见文末&#x1f447;&#x1f…

火影bug,未保证短时间数据一致性,拿这个例子讲一下Redis

本文只拿这个游戏的bug来举例Redis&#xff0c;如果有不妥的地方&#xff0c;联系我进行删除 描述&#xff1a;今天在高速上打火影&#xff08;有隧道&#xff0c;有时候会卡&#xff09;&#xff0c;发现了个bug&#xff0c;我点了两次-1000的忍玉&#xff08;大概用了1千七百…

KRaft (Kafka 4.0) 集群配置指南(超简单,脱离 ZooKeeper 集群)还包含了简化测试指令的脚本!!!

docker-compose方式部署kafka集群 Kafka 4.0 引入了 KRaft 模式&#xff08;Kafka Raft Metadata Mode&#xff09;&#xff0c;它使 Kafka 集群不再依赖 ZooKeeper 进行元数据管理。KRaft 模式简化了 Kafka 部署和管理&#xff0c;不需要额外配置 ZooKeeper 服务&#xff0c;…

Admyral - 可扩展的GRC工程自动化平台

文章目录 一、关于 Admyral相关链接资源关键特性 二、安装系统要求 三、快速开始1、启动服务 四、核心功能1、自动化即代码2、AI增强工作流3、双向同步编辑器4、工作流监控5、企业级基础设施 五、示例应用六、其他信息许可证遥测说明 一、关于 Admyral Admyral 是一个基于 Pyt…