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

    文章

    199

    浏览量

    29425
  • 计数器
    +关注

    关注

    32

    文章

    2253

    浏览量

    94302
  • AES
    AES
    +关注

    关注

    0

    文章

    103

    浏览量

    33193
收藏 人收藏

    评论

    相关推荐

    信号完整性和信号一致你还不知道吗?#示波器 #信号完整性

    信号完整性
    安泰仪器维修
    发布于 :2024年09月25日 17:59:54

    高速电路中的信号完整性和电源完整性研究

    高速电路中的信号完整性和电源完整性研究
    发表于 09-25 14:44 0次下载

    高速高密度PCB信号完整性与电源完整性研究

    高速高密度PCB信号完整性与电源完整性研究
    发表于 09-25 14:43 5次下载

    高速PCB信号完整性设计与分析

    高速PCB信号完整性设计与分析
    发表于 09-21 11:51 0次下载

    超高速数据采集系统的时序设计与信号完整性分析

    电子发烧友网站提供《超高速数据采集系统的时序设计与信号完整性分析.pdf》资料免费下载
    发表于 09-20 11:34 0次下载

    高速PCB的信号完整性、电源完整性和电磁兼容研究

    电子发烧友网站提供《高速PCB的信号完整性、电源完整性和电磁兼容研究.pdf》资料免费下载
    发表于 09-19 17:37 0次下载

    信号完整性与电源完整性-电源完整性分析

    电子发烧友网站提供《信号完整性与电源完整性-电源完整性分析.pdf》资料免费下载
    发表于 08-12 14:31 31次下载

    信号完整性与电源完整性-差分对的特性

    电子发烧友网站提供《信号完整性与电源完整性-差分对的特性.pdf》资料免费下载
    发表于 08-12 14:28 1次下载

    信号完整性与电源完整性-信号的串扰

    电子发烧友网站提供《信号完整性与电源完整性-信号的串扰.pdf》资料免费下载
    发表于 08-12 14:27 0次下载

    信号完整性与电源完整性 第一章 概论

    电子发烧友网站提供《信号完整性与电源完整性 第一章 概论.pdf》资料免费下载
    发表于 08-09 14:49 1次下载

    为什么信号完整性很重要?

    信号完整性决定了仪表必须具有非常高的测试准确和可靠。随着我们面临需要越来越快地数据传输的新技术浪潮,信号
    的头像 发表于 07-03 11:24 397次阅读
    为什么信号<b class='flag-5'>完整性</b>很重要?

    请问ESP-NOW对数据完整性和一致有校验吗?

    当使用ESP-NOW时,传递的数据在传输层有对数据包的完整性(比如对面传给我的字节数和我收到的字节数是否相同)有底层校验吗? 还有这个数据包是否经过了CRC等差错检测的校验呢(就是一致
    发表于 06-17 06:55

    什么是信号完整性

    在现代电子通信和数据处理系统中,信号完整性(Signal Integrity, SI)是一个至关重要的概念。它涉及信号在传输过程中的质量保持,对于确保系统性能和稳定性具有决定性的影响。本文将从信号完整性的定义、影响因素、测试方法
    的头像 发表于 05-28 14:30 1033次阅读

    态势数据如何存储在数据库里面呢

    智慧华盛恒辉态势数据存储在数据库中需要遵循一系列原则和步骤,以确保数据完整性、一致、安全
    的头像 发表于 04-22 16:46 329次阅读

    保障数据完整性:分布式无纸化交互系统的关键特性

    来百度APP畅享高清图片 保障数据完整性是分布式无纸化交互系统的关键特性之一。在分布式无纸化交互系统中,数据的传输、存储和处理都需要得到保障,以确保数据
    的头像 发表于 01-15 14:28 316次阅读
    保障<b class='flag-5'>数据</b><b class='flag-5'>完整性</b>:分布式无纸化交互系统的关键特性