0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在数据完整性方面,我们可以只加密数据吗

星星科技指导员 作者:jwallrabenstein 2023-02-07 11:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

为了防止有目的地尝试修改数据的对手,我们需要比错误检测/纠正CRC等代码更强大的解决方案。 理想情况下,任何(计算限制的)对手都不应该能够说服我们非法数据来自我们的设备或在我们没有注意到的情况下修改我们的数据。在介绍两种可能的解决方案之前,我们将回顾一些所需的构建块。首先,我们需要了解对称和非对称密码学之间的高级差异。

可以根据私钥的使用方式将不同的加密解决方案分组到类中。当所有用户共享单个私钥时,他们对密钥材料都有相同的知识。由于每个用户在密钥材料上的信息是对称的,因此此类称为对称加密。在另一个类中,每个用户都有一组两个数学上相关的密钥:一个只有他们知道的私钥,以及一个他们与所有人共享的公钥。由于私钥只有用户知道,因此用户之间的信息现在是不对称的。

需要注意的重要区别是,在对称加密中,每个用户都有同一私钥的副本,并且相同的密钥用于两种类型的操作:加密和解密,以及生成和验证签名。在非对称加密中,只有用户知道其私钥,并且只有该私钥可用于解密或签名数据。

需要的另一个工具是一种创建任意大量数据的简短摘要或“指纹”的方法。由于加密操作的计算成本很高,因此在表示(可能更大)数据量的简短摘要上运行它们会更方便。

加密哈希函数采用任意长度的输入并生成固定长度的摘要或“哈希”,该摘要将用作数据的摘要。由于该函数将任意大的输入映射到固定的输出范围,因此肯定会发生冲突。但是,通过使哈希输出的大小足够大,冲突概率可以忽略不计。

哈希函数的另一个重要属性是,即使输入数据中非常小的变化,例如一位翻转,也会导致输出哈希的实质性变化。平均而言,输入数据中的单个位翻转(即使数TB)将导致大约50%的哈希输出位发生变化。这意味着对原始数据的微小更改将导致生成截然不同的摘要或摘要作为哈希函数的输出。再加上碰撞的可能性可以忽略不计,这将作为我们要保护的数据的指纹。

我们可以只加密数据吗?

在尝试保护数据时,我们通常会想到加密。使用密钥加密数据可以使没有密钥的任何人都无法读取加密的密文。那么,我们为什么不对数据进行加密以保护它呢?

加密本身仅提供机密性,不提供真实性或完整性。让我们研究一种常用的加密方法:计数器模式下的 AES。AES 是一种对称分组密码,它使用共享密钥一次加密 16 字节的数据块。分组密码可以在几种不同的模式下运行(组合每个数据块的方法),一种常用的模式是计数器模式。在这种模式下,有一个单调递增的计数器,该计数器被加密以产生伪随机密钥流。为了加密数据,此密钥流与明文输入进行异或运算以生成密文。

密文可以与使用的初始计数器值(初始化向量)一起存储或发送,以便以后使用相同的密钥解密。解密时,将加载初始计数器值,并使用相同的密钥再次加密以生成相同的密钥流。此密钥流与密文进行 XOR 运算,以取消加密操作并恢复明文。

pYYBAGPhwc2AZULRAAEutl-WBUU068.png

如果对密文的修改也以可预测的方式修改基础明文,则密文称为可延展性。计数器模式下的分组密码(以及其他流密码)具有微不足道的延展性。翻转密文中的单个位将在解密时翻转明文中的相同位,而不会更改任何其他位。这意味着攻击者可以轻松修改加密数据并预测此更改对解密数据的影响,即使他们不知道密钥或基础明文消息也是如此。

考虑有两个系统通过无线发送和接收在计数器模式下使用 AES 加密的消息进行通信的情况。攻击者可能能够拦截通信,即使他们可能无法解密消息,他们也知道他们可以翻转密文中的位以翻转明文中的相同位。在某些情况下,可能很容易猜到明文可能是什么。这些类型的机器对机器通信通常具有结构化和可预测的格式。攻击者可能已经获得了与之相关的文档,或者可能只是能够猜测它或对其进行逆向工程。

在我们的示例中,攻击者想要中断运营中心的订单。攻击者知道交换消息的格式(通过阅读用户手册),处理订单的命令是“fill”,删除订单的命令是“kill”。在上图中,我们可以看到执行订单的命令已正确加密和解密。让我们看看攻击者如何在不被发现的情况下更改此命令,即使消息将被加密!

攻击者知道明文消息中“fill”命令的位置,并希望恶意将命令更改为“kill”,以导致订单被取消,而不是履行。

首先,攻击者计算消息 M = “填充” 和 M' = “kill” 之间的差∆。通过∆包含明文消息“fill”的密文块进行异或运算,解密消息中的字符“f”将更改为“k”!

由于仅加密并不能阻止这些数据被修改,我们可以通过加密消息及其CRC来保护其完整性吗?攻击者不会知道CRC的值,如果他们修改密文,CRC应该检测到修改,对吧?正如我们在上一节中看到的,加密可以是可延展的,不幸的是,加密的CRC也可以。

poYBAGPhwc6AaSvQAAEwDXT9Exk854.png

假设我们有一个加密的消息M,它也包含该消息上的加密CRC,并且我们知道密文中与加密CRC相对应的位置。如果我们想将消息 M 修改为新消息 M',我们还需要修改 CRC。

设 ∆ = M Å M' 是原始消息 M 和新消息 M' 之间的差值。这是两个异或一起,或者已经改变的位(如果∆的每个位是我们翻转的消息中的位,则为 1)。原始 CRC 与新计算的 M' 上的 CRC 不匹配。我们需要修改 CRC,使其在新消息 M' 上有效。

由于CRC是一个线性函数,CRC(M') = CRC(M) Å CRC(∆)。换句话说,为了获得一个新的有效CRC,我们计算∆上的CRC函数(我们已经更改的位的CRC),并使用CRC对这个值进行XOR。正如我们之前看到的,我们甚至可以在密文上完成所有这些操作,甚至不知道消息的真实值或 CRC 的值,我们可以使用有效的 CRC 将消息更改为我们想要的任何内容!

poYBAGPhwc6AGV-EAAGjRVMHQiA522.png

这种弱点不仅仅是理论上的。它存在于有线等效保密 (WEP) 算法中,该算法允许以类似的方式修改 WEP 流量。

因此,仅仅加密数据本身并不能保护它不被修改,加密的CRC也不能。如果明文CRC,加密数据或加密数据及其CRC不能保护我们的数据免受故意修改,那又有什么作用呢?

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • crc
    crc
    +关注

    关注

    0

    文章

    205

    浏览量

    30618
  • 计数器
    +关注

    关注

    32

    文章

    2306

    浏览量

    97565
  • AES
    AES
    +关注

    关注

    0

    文章

    107

    浏览量

    33851
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电能质量在线监测装置数据日志能加密存储吗?

    电能质量在线监测装置的数据日志 可以加密存储 ,且已成为工业级与电力系统合规应用的标准配置。加密机制通常采用 分级加密策略 ,并结合硬件安全
    的头像 发表于 12-05 10:16 264次阅读
    电能质量在线监测装置<b class='flag-5'>数据</b>日志能<b class='flag-5'>加密</b>存储吗?

    加密算法的应用

    完整性数据在存储过程需要加密算法的保护,例如对于数据库、文件等敏感数据加密
    发表于 10-24 08:03

    网络延迟具体是怎样影响电能质量在线监测装置的实时完整性的?

    网络延迟对电能质量在线监测装置实时完整性的影响,本质是 破坏 “数据传输的时序” 与 “数据接收的
    的头像 发表于 10-23 11:59 546次阅读

    远程校准电能质量在线监测装置时,如何保证数据传输的完整性

    远程校准电能质量在线监测装置时,保证数据传输完整性的核心是建立 “ 预处理防错→实时校验防篡改→丢包重传补缺失→全量验证闭环 ” 的全流程机制,通过技术手段确保数据在传输中不被篡改、不丢失、不重
    的头像 发表于 10-11 16:47 551次阅读
    远程校准电能质量在线监测装置时,如何保证<b class='flag-5'>数据</b>传输的<b class='flag-5'>完整性</b>?

    什么是信号完整性

    电子发烧友网站提供《什么是信号完整性?.pdf》资料免费下载
    发表于 07-09 15:10 0次下载

    了解信号完整性的基本原理

    作者:Cece Chen 投稿人:DigiKey 北美编辑 随着支持人工智能 (AI) 的高性能数据中心的兴起,信号完整性 (SI) 变得至关重要,这样才能以更高的速度传输海量数据。为确保信号
    的头像 发表于 05-25 11:54 887次阅读
    了解信号<b class='flag-5'>完整性</b>的基本原理

    Samtec虎家大咖说 | 浅谈信号完整性以及电源完整性

    。与会者提出了关于信号完整性和电源完整性设计的问题,这些问题反映了一些新兴的工程挑战。Scott、Rich和Istvan在回答中强调了严格分析、细节工具表征以及深入理解基本原理的重要。 照例,
    发表于 05-14 14:52 1076次阅读
    Samtec虎家大咖说 | 浅谈信号<b class='flag-5'>完整性</b>以及电源<b class='flag-5'>完整性</b>

    电源完整性基础知识

    等)。这些工作是电源工程师的专业范畴。电源这一块很复杂,光各种拓扑结构就已经让人云里雾里了,绝对是可以深究的一份职业。 02PDN电源完整性(PI)更关注于电源路径及终端,也就是电源分配网络(PDN
    发表于 05-13 14:41

    信号完整性测试基础知识

    在当今快速发展的数字时代,高速传输已成为电子设备的基本要求。随着数据传输速率的不断提升,信号完整性(Signal Integrity,简称SI)问题变得越来越重要。信号完整性是高速互连系统设计的基石
    的头像 发表于 04-24 16:42 3332次阅读
    信号<b class='flag-5'>完整性</b>测试基础知识

    电源完整性分析及其应用

    引言 电源完整性这一概念是以信号完整性为基础的,两者的出现都源自电路开关速度的提高。当高速信号的翻转时间和系统的时钟周期可以相比时,具有分布参数的信号传输线、电源和地就和低速系统中的情况完全不同了
    发表于 04-23 15:39

    技术资讯 | 信号完整性测试基础知识

    本文重点信号完整性测试需要从测试电路板和原型获取实验数据并加以分析。在理想的工作流程中,还会仿真信号完整性指标,并将其与实际测量值进行比较。信号完整性测试只能检查特定的结构,通常需要在
    的头像 发表于 04-11 17:21 1929次阅读
    技术资讯 | 信号<b class='flag-5'>完整性</b>测试基础知识

    iic协议的信号完整性测试

    主机、多从机的串行通信协议,它允许多个设备共享同一总线。I2C总线由两条线组成:数据线(SDA)和时钟线(SCL)。数据传输是通过主设备生成的时钟信号同步的。 信号完整性测试的必要
    的头像 发表于 02-05 11:44 2500次阅读

    如何解決信号完整性问题

    如何解决信号完整性问题呢?是德科技在向您介绍信号完整性分析基础知识的同时,我们还向您展示如何使用基本信号完整性(Signal Integrity - SI) 分析技术(例如眼图、S参数
    的头像 发表于 12-25 16:51 2462次阅读
    如何解決信号<b class='flag-5'>完整性</b>问题

    数据加密办法

    ,当我们聊到数据加密的时候,可以从这些角度入手来提高数据的安全。 TDE手段 TDE也就是透明
    的头像 发表于 12-24 09:47 1000次阅读

    听懂什么是信号完整性

    2024年12月20日14:00-16:00中星联华科技将举办“高速信号完整性分析与测试”-“码”上行动系列线上讲堂线上讲堂。本期会议我们将为大家介绍高速串行总线传输基本框架,什么是信号完整性?高速
    的头像 发表于 12-15 23:33 1034次阅读
    听懂什么是信号<b class='flag-5'>完整性</b>