首页 > 其他分享 >数字加密的基本原理和典型应用场景

数字加密的基本原理和典型应用场景

时间:2024-12-13 17:43:49浏览次数:5  
标签:场景 加密 基本原理 明文 算法 密钥 密文 加密算法

一、数字加密的概念

1.1 加密概念

数据加密技术是指一条消息通过加密密钥和加密函数转换成无意义的密文,接收者通过解密函数和解密密钥将密文还原成明文。这样,我们就可以保护数据不被非法窃取和读取。提高计算机安全水平的基础是掌握数据加密的本质,数据加密由明文(未加密报文)、密文(加密报文)、加解密设备或算法、加解密密钥四部分组成。加密方法有很多种,但主要有对称加密算法、非对称加密算法和不可逆加密算法。密钥加密有两种类型:分组和序列。

1.2 硬件加密

  • 链路加密:对网络中的指定传输链路实施加密。
  • 节点加密:在链路加密的基础上对传输的数据在节点的安全模块进行加密,解密也是在节点的安全模块内对数据进行解密。
  • 端对端加密:从源数据节点到目标节点数据始终采用加密的方式传输,数据在到达目标节点之前不以明文的方式出现。

1.3 异或运算

  • 概念:异或是一个数学运算符,应用与逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。
  • 运算公式:
  • 运算法则:
    • 归零律:a ⊕ a = 0
    • 恒等律:a ⊕ 0 = a
    • 交换律:a ⊕ b = b ⊕ a
    • 结合律:a ⊕ b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c
    • 自反:a ⊕ b ⊕ a = b
  • 应用场景:
    • 位反转:0异或任何数,其结果等于任何数。1异或任何数,其结果等于任何数取反。
    • 值替换场景:利用交换律实现两个变量的值替换不需要引入中间变量。
a = a ^ b;
b = a ^ b;
a = a ^ b;
- 加密场景:通过明文和密钥的异或加密,通过密钥和密文的异或进行解密。

二、哈希(摘要)算法

2.1 哈希算法的概念

哈希算法、散列算法和摘要算法指的都是一个东西,是指根据目标文本生成具有固定长度的、不可逆的杂凑字符串(或叫做消息摘要)。

而加密是将目标文本转换成具有不同长度的、可逆的密文。Hash 算法严格上来说并不属于加密算法,一般都叫摘要算法或者签名算法。

哈希算法的与算法的最大区别是不可逆,这里的不可逆既指不能根据转换后的结果逆转回原文,也指对于两个输入,即使其转换结果相同也不能说这两个输入就一定相同。因为,Hash 算法的定义域是一个无限集合,但是值域确是一个有限集合,将一个无限集合映射到有限集合上,每个哈希结果都存在无数个可能的目标文本,因此哈希是一个多对一的映射,所以它也不存在逆映射。但是对于加密算法,它的结果往往取决于输入,其定义域和值域都是无限集合,明显是一个一一映射,对于一一映射,理论上都是可逆的。

哈希算法的特点是,不同的内容有可能生成一样的Hash Code,这里引入评价一个哈希算法的重要指标:碰撞率。常见的 Hash 算法有:MD5、SHA-1、HMAC、SHA-256 等。MD5的密钥长度是32个字符128个二进制位,所以MD5的碰撞率是1/2^128

哈希算法的特点包含:

  • 算法的输出长度固定:散列函数可以接受任意长度的数据输入,但是输出的数据长度固定。
  • 雪崩效应:原始输入数据的改动,得到的输出会有非常大的变化。
  • 单向性:只能通过输入计算出hash code输出,但是不能从hash code得到原始数据。
  • 唯一性:因为目前流行的hash算法的碰撞率都极小,所以认为针对任何输出,输入都具有唯一性。

2.2 常用哈希算法的实现流程

MD5

  • 填充:如果输入信息的长度(bit)对512求余的结果不等于448,就需要填充使得对512求余结果等于448。填充的方法是填充一个1和n个0。填充完成后,信息的长度为N*512+448
  • 记录信息长度:用64位内存来存储填充前信息长度。这64位加在第一步结果的后面,这样信息长度就变为N512 + 448 + 64 = (N+1)512
  • 装入四个幻数:准备四个整数常量A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L
  • 循环运算:将数据分为512一组,,再将一组中的512位分为16个int32_,分组执行数据处理函数,循环执行处理函数…每一轮运算后加上上面的四幻数,依次循环加完所有的组数,最终得到的ABCD就是MD5的输出结果。

2.3 哈希算法的应用场景

  • 文件传输
    在文件传输时,哈希算法的目的是为了保证文件的唯一性。比如在下载软件时,一般会单独提供该软件文件的md5的摘要或者sha摘要,文件下载完成后计算md5与软件提供方提供的md5进行对比,如果不一致则认为该软件文件已经被篡改。
  • 消息摘要
    当用户使用用户名密码登录网站时,网站服务器的数据库只针对用户密码的hash值进行保存,避免了密码明文在网络传输。网站验证密码时只对用户输入的密码签名和数据库中的签名进行比对。
  • 键值对应
    在对数据进行管理时,如果需要查找数据可以根据数据的hash值进行查找,数据的hash值和原始数据组成键值对,在数据的删改查过程中提高效率。

2.4 哈希算法对比

img

三、加密算法

3.1 按照加密密钥特点划分

3.1.1 分组加密

先将明文填充为小组个数的整数倍,再将明文分组,按照小组加密后混合小组的内容生成密文。常见的加密模式有下面几种

1、ECB:电子密码本格式,是指将明文组块独立加密后将加密结果直接作为密文分组。

img
img

2、CBC:密文分组链接模式,将将每个明文分组与前一个密文分组进行异或运算再进行加密。第一个明文分组前面没有密文分组,需要IV

img
img

3、CFB:密文反馈模式,将每一组的密文组作为密码算法的输入端产生新的密钥流,再将生成的密钥加密下一个明文。需要IV

img
img

4、OFB:输出反馈模式,将密码加密算法的输出和明文进行异或生成密文分组

img
img

5、CTR:计数器模式,CTR与CFB和OFB一样,本质上都是将分组加密和序列加密结合得到密文分组

img
img

3.1.2 分组加密

根据密钥种子和S盒生成密钥,再将密钥和明文进行异或运算生成密文。解密端通过密钥种子和S盒生成密钥,再通过密钥和密文异或操作生成明文。

3.2 按照加解密的统一性划分

3.2.1 对称加密算法

加密过程和解密过程使用同一个密钥,则称为对称加密

img

1、对称加密的应用场景

  • 无线数据的安全传递:蓝牙、网络数据传输的过程中数据可能被抓包捕获,为了数据的安全性采用两端协商后的加密算法将数据以密文的形式传输,保证数据的安全性。
  • 数据的安全存储:数据以明文的方式存储在数据库中可以被数据库后台看到或者数据库可能被非法侵入访问,但是采用加密的方式存储数据,客户端读写数据时再解密,可以保证数据在数据库端被访问时的安全性。

2、常用对称加密算法

  • AES
    • 分组密码:将明文分成一段一段来分组加密生成密文,最后再将密文拼接生成密文
    • padding:分组的过程中最后一组长度可能不够,在后面填充数据补齐。常用填充方式有:
      • PKCS5:末尾缺少n个字节就在末尾补上n个n
      • PKCS7:末尾缺少n个字节,就在末尾补上多少个0
      • NoPadding:不需要填充,就是明文需要自己保证数据可以是被分组的个数整除的
    • 初始化向量IV:初始化IV使更加可靠,除了ECB和CTR两种加密模式,其他的加密模式需要IV来加密第一组明文
    • 加密模式:AES支持四种加密模式:ECB、CBC、CFB、OFB
    • 密钥加法:明文和密钥进行异或得到运算结果
    • 字节代换:通过明文和S_box找到对应的值进行替换

img

- 行移位:将矩阵数据按行移位,第0行移动0位,….第n行移动n位
- 列混合:将生成的矩阵与一个常矩阵进行相乘

3、常用对称算法对比

img

3.2.2 非对称加密算法

加密过程和解密过程使用的不是同一个密钥,则称为非对称加密。密钥是以一个秘钥和一个公钥对的形式出现的,使用私钥加密的内容只能公钥进行解密,使用公钥加密的内容只能私钥进行解密。
非对称加密流程.png
1、常用应用场景

  • 信息传递加密:发信者对数据使用私钥进行加密,收信者通过发信者的公钥进行解密
  • 传输秘钥:登录/连接的过程中A先拿到B的公钥,再通过B的公钥将对称加密的秘钥和IV加密后传输给B,B使用秘钥进行解密。在后续的通信过程中使用解密后的秘钥和IV进行加解密传输。

2、常用非对称加密算法
RSA
ECC
3、常用非对称加密算法对比

img

四、加密技术的典型应用场景

4.1 固件升级验签

固件升级验签是为了保证,打包的固件与用户最终下载的固件文件一致,过程中没有被篡改,签名和验签过程中使用了哈希算法和非对称加密算法

  • 哈希算法:计算固件文件的HASH值
  • 非对称加密算法:打包时对HASH值进行加密,验签时对签名信息进行解密

img
img

4.2连接握手协议

连接握手指的是已经建立稳定的传输层连接后,对后续的通信加密方式进行协商,保证数据能够正确传输。

  • 对称加密:握手之后数据的传输
  • 非对称加密:握手过程可以防止对称加密密钥的明文传输

img

标签:场景,加密,基本原理,明文,算法,密钥,密文,加密算法
From: https://www.cnblogs.com/shumei52/p/18605423

相关文章

  • 聊聊前端常见的数据加密 转载
    前言你是否有过这样的经历?在注册一个新网站时,需要填写个人信息,例如姓名、邮箱、手机号码,甚至身份证号码。你可能会担心,这些信息会被泄露,被不法分子利用。前端数据加密,就是解决这个问题的关键技术之一。它可以在数据传输到服务器之前,对其进行加密处理,即使数据被窃取,也无法被轻易......
  • 数据管理 | 六大数据虚拟化应用场景,解密世界500强安全可信数据管理利器
    在如今的数字化时代,数据已经成为企业最重要的战略资产。无论是驱动业务决策、优化运营,还是提升客户体验,数据的高效利用都关乎企业的未来发展。然而,面对数据孤岛、系统复杂性以及合规要求等挑战,如何最大化释放数据价值成为许多企业亟待解决的问题。作为世界500强企业的首选,Den......
  • [x64dbg] 加密与解密-x32dbg和x64dbg的下载及详细安装过程(附有下载文件)
    前言 x64dbg、x32dbg和ollydbg的分析操作区别不大夸克网盘打开x64dbg链接:https://pan.quark.cn/s/c26c156deefb提取码:Btqc链接失效(可能会被官方和谐)可评论或私信我重发下载压缩包后解压!!安装路径不要有中文解压后得到x64dbg文件打开,点击release双击x96dbg.ex......
  • C++中多态性在实际项目中的应用场景有哪些?
    一、图形绘制系统:在一个图形绘制系统中,可以定义一个抽象的图形类,然后派生出各种具体的图形类,如圆形、矩形、三角形等。通过多态性,可以使用一个统一的接口来绘制不同类型的图形,而不需要为每种图形都编写单独的绘制函数。二、游戏开发在游戏开发中,不同的游戏角色可能有不同的......
  • 【数据库开发】反范式化的应用场景与实践
    在数据库设计中,“范式化”是一种减少冗余、确保数据一致性的原则,但在实际应用中,有些场景却不得不违背这一原则,以换取性能的提升。反范式化(Denormalization)就是在特定性能需求下的一种权衡策略。今天我们将从理论到实践,全面解析反范式化的概念、应用场景、具体策略以及它带来的风险......
  • 保护数据安全:CryptoJS 加密与解密详解
    前言在信息化的今天,数据安全已成为各行各业的核心关注点。无论是网站、移动应用程序还是各类在线服务,都需要确保其敏感数据不会被未经授权的第三方获取或篡改。为了实现这一目标,开发者常常依赖于强大的加密技术。CryptoJS是一个广泛使用的JavaScript加密库,提供了多种高......
  • php加密
    Beast:  https://github.com/liexusong/php-beast?tdsourcetag=s_pctim_aiomsgbeast-安裝wgethttps://github.com/liexusong/php-beast/archive/master.zipunzipmaster.zipcdphp-beast-master先修改key.c文件,配置适合自己的加密方式,可忽略。实际php-config路径......
  • 如何梳理 RPA 自动化场景
    以下是10个关于如何梳理RPA自动化场景的创新点子:一、财务领域发票自动核验与归档:创新点:利用OCR技术识别发票信息后,不仅进行常规的真伪核验,还可以根据发票类型、金额大小等自动分类归档到不同的电子文件夹中,并生成可视化的发票统计报表,方便财务人员随时查看各类发票的......
  • FreeSWITCH外呼系统的常见应用场景有哪些?
    外呼系统的常见应用场景有哪些?作者:开源呼叫中心系统FreeIPCC外呼系统凭借其灵活性、可扩展性和强大的功能特性,广泛应用于多个行业和场景中。它不仅支持传统的电话营销活动,还能满足更加复杂的企业沟通需求。以下是外呼系统的几个常见应用场景:1. 电话营销与销售推广批量呼叫......
  • 排产算法的分类、特点和适用场景分析
    ​ 基于规则或基于约束或基于优化的排产算法在生产管理中扮演着重要角色,它们各自具有不同的特点和适用场景。以下是对这些排产算法的详细归纳。1、基于规则的排产算法算法设计​ 基于规则的排产算法是依据一系列预定义的生产规则来进行排产的。这些规则通常根据企业的生产......