怎么防止数据重放攻击——CBC模式【密码学】(7)

这篇具有很好参考价值的文章主要介绍了怎么防止数据重放攻击——CBC模式【密码学】(7)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、什么是CBC模式 

二、初始化向量

三、异或运算 

四、密钥少一位会有影响吗 


一、什么是CBC模式 

CBC模式中,明文分组在加密前,要与前一组的密文分组进行异或运算,异或运算的结果参与加密函数的运算。

每一个密文分组,都依赖于前面所有的明文分组,包括初始化向量。

怎么防止数据重放攻击——CBC模式【密码学】(7)

 怎么防止数据重放攻击——CBC模式【密码学】(7)

 文章来源地址https://www.toymoban.com/news/detail-492680.html

加密过程中:加密函数的输入数据是明文分组和上一次密文分组异或运算的结果。

解密过程中:解密函数的输入数据是密文分组,得到的结果是明文分组和上一次密文分组异或运算的结果,因此,要得到明文分组,还要将他们分离开来。 

加密过程的初始化向量和解密过程的初始化向量必须一样,否则无法得到第一个明文分组。初始化向量只影响第一个明文分组,并不影响后续的解密过程和明文分组。

加密分组只影响它的下一个明文分组,并不影响后续的解密过程和明文分组。

而在加密过程中,每一个密文分组,都依赖于前面所有的明文分组,包括初始化向量。 

怎么防止数据重放攻击——CBC模式【密码学】(7) 

二、初始化向量

如果每一次运算,初始化向量都不能重复,即使是相同的明文数据,它的加密结果也是不同的。但是,如果初始化向量重复使用,相同的明文就会有相同的密文。重复使用的初始化向量,会消解密文反馈的作用,使得CBC模式和ECB模式一样脆弱。

所以,初始化向量的唯一性在加密算法中的安全性至关重要

初始化向量不需要保密。

三、异或运算 

异或运算在密码学中应用广泛,为什么?

第一个原因:异或运算数据只与数据的位数有关,与数值无关,因此无法通过运算时间和数值的的关联来破解密码。

第二个原因:在相同的计算环境下,异或运算的复杂度,只与数据的位数相关。因而无法通过CPU的占用、电力消耗或内存消耗,来破解密码。

第三个原因:相同的数据归0,不同的数据归

归零律:如果两段数据完全相同,它们的异或运算结果,就是每一位都是零的数据;
恒等律:如果一段数据和一段全足零的数据进行异或运算,前一段数据中是要的位运算后还是零,是一的位运算后还是一。也就是说,和零进行异或运算,不改变原数据的数值。

正是异或运算的归零律和恒等律,CBC模式才能成立,解密才能进行。这两个性质,还使得解密运算和加密运算具有相同的运算效率。
然而,CBC模式的主要安全问题,也来源于异或运算的这两个性质。

如果两段数据中只有一位不同,它们的异或运算结果,就是只有这一位的数据是一,其他的数据都是零。那是不是我们就可以通过构造明文分组或者密文分组,一次改变一位数据,然后把数据交给加密运算或者解密运算来处理,通过观察加密或者解密的结果展开攻击了?


比如说,一个128位的密钥,它的强度能承受2^128次的运算,是一个强度的指数级别的量级。

怎么防止数据重放攻击——CBC模式【密码学】(7)一次改变一个字节的意思就是攻击的时候,需要一个字节一个字节的尝试。256表示,一个字节有8位,如果每次改变这个字节的一位,需要256次,才能把这个字节所有的可能数值列举完。4080表示攻击一个数据分组需要的计算量,一个字节需要256次,由于尝试了255种可能性后,最后一种可能性就不需要再尝试了,所以不是256,是最多需要255次尝试。一个数据分组16个字节,255乘以16,就是需要的计算次数。

 阻断一个攻击的方式之一,就是破坏攻击依赖的路径或者条件。对于上面的攻击方式,其实只要攻击者没有办法一次改变一位数据或者少量的数据,这样的攻击就可以被有效破解了。
也就是要保证攻击者在展开攻击的时候,没有办法一次改变不少于一个数据分组的数据。

对于AES来说,数据分组大小是128位,攻击者需要运算2^128次,才可以攻击得逞。
57
计算量这么大,攻击者的攻击方式就无效了。那我们怎么做才能让攻击者没办法呢?
密文分组、密钥、加密算法、解密算法,这些都是固定的数据或算法,没有考量的空间。剩下的变量,就只有明文分组和初始化向量了。要想解决掉这个安全问题,该怎么控制明文分组和初始化向量?异或运算又是怎样带来麻烦的?

四、密钥少一位会有影响吗 

在分组运算中,初始化向量、密文分组和明文分组密钥的数据位数也都是固定的。所以,我们也不需要担心它们的位数的变化。加密算法和解密算法不涉及数据位数,所以我们也不担心算法。剩下的一个变量,就是密钥了。密钥的位数会变化吗?密钥的位数变化有影响吗?


出于互操作性的考虑,很多标准和协议(包括应用最广泛的TLS 1.2协议)需要把密钥的高位的零清除掉,然后再参与运算。


原来128位的密钥,可能就被清除成了127位或者126位的密钥了。2018年发布的的TLS 1.3版本,不再需要清除密钥高位的零。少一位密码,当然会带来计算性能的差异,以及由此引发的计算时间偏差。


“浣熊攻击”可以利用密钥高位清零的造成的计算时间差,通过观察,测算运算时间,运用统计学的技术破解运算密钥。

因此,我们要量避免计算时间偏差和计算算力偏差,谨慎地处理不可避免的计算时间偏差和算力偏差。

 

到了这里,关于怎么防止数据重放攻击——CBC模式【密码学】(7)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何设置CISCO路由器密码(防止用户攻击)

    在CISCO路由器产品中,我们在最初进行配置的时候通常需要使用限制一般用户的访问。这对于路由器是非常重要的,在默认的情况下,我们的路由器是一个开放的系统,访问控制选项都是关闭的,任一用户都可以登陆到设备从而进行更进一步的攻击,所以需要我们的网络管理

    2024年02月05日
    浏览(48)
  • 【密码学】块加密(分组加密)的工作模式

    上一篇文章讨论了 DES 算法,现在我们有了“给定 64-bit 的明文、64-bit 的密钥,输出 64-bit 的密文”的加密手段。这离实际应用还有一点点距离,因为要传递的信息当然不止 64 位。 要用 DES 加密一条信息,一般先把信息填充到 64 的倍数,于是就可以分成许多组,每组 8 个字节

    2024年02月16日
    浏览(47)
  • 服务器被攻击怎么办?如何防止服务器被攻击?

    目前,服务器遭受攻击已经成为屡见不鲜的事情了,而且大部分企业都发生过服务器被攻击的情况,从而导致业务无法正常运行,造成严重的损失和影响。那么服务器被攻击怎么办?如何有效应对服务器被攻击呢?跟着小编来看看吧。 1、换高防IP或切换高防服务器,流量攻击进

    2024年02月12日
    浏览(60)
  • 现代密码学第二次实验:分组加密算法DES及其工作模式

    为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 1、掌握DES算法的工作原理。 2、熟悉分组加密算法的4种工作模式(OFB模式可不做)。 3、了解DES的雪

    2024年02月06日
    浏览(61)
  • wifi密码是怎么让破解的 如何设置防止wifi密码被破解

    小编这篇文章只是简单的介绍一些破解wifi密码的方法和思路,并且教大家好何做好wifi密码的安全防范,并不是教大家如何去破解wifi密码。呵呵,小伙伴们,不要想多了哦! wifi的密码是如何被破解的? wifi破解密码的方法 1、暴力破解。 就是用户通过linux系统一个一个去试密

    2024年02月06日
    浏览(40)
  • 防重放、防篡改攻击的实现(Java版)

    1、重放攻击:请求被攻击者获取,并重新发送给认证服务器,从而达到认证通过的目的。 2、篡改攻击:请求被攻击者获取,修改请求数据后,并重新发送给认证

    2024年01月17日
    浏览(59)
  • 网络安全-重放攻击(Replay Attack)

    API重放攻击(Replay Attacks)又称重播攻击、回放攻击,这种攻击会不断恶意或欺诈性地重复一个有效的API请求。攻击者利用网络监听或者其他方式盗取API请求,进行一定的处理后,再把它重新发给认证服务器,是黑客常用的攻击方式之一。 重放攻击的示意图如下所示: 从上面

    2024年02月13日
    浏览(41)
  • tplink无线路由器怎么设置密码 防止别人蹭网

    现在我们在连接网络的时候有部分用户都会使用无线路由器来连接网络,可是有的网友买回来无线路由器就不会这么设置路由器的密码,今天小编就教那些不会设置密码的用户 tplink无线路由器怎么设置密码 的方法。具体操作步骤如下: 步骤一、当然每一款无线路由器的设置

    2024年02月05日
    浏览(54)
  • ECDSA 签名的内在延展性(“重放“攻击)学习

    相关推特:https://twitter.com/danielvf/status/1563169773684305921 原理文章:https://www.derpturkey.com/inherent-malleability-of-ecdsa-signatures/ 签名的内在延展性,意味着可以为相同的数据创建第二有效的签名,导致如果在签名中没有加入nonce ,deadline等限制条件,攻击者可以再次提交对应交易(使用第

    2024年02月11日
    浏览(42)
  • Java实现数据加密:掌握DES CBC和ECB两种模式

    DES算法是一种对称加密算法,它使用相同的密钥进行加密和解密。DES算法是一种分组密码,即将明文分成固定长度的块,并对每个块进行加密。DES算法将每个64位的明文块分成两个32位的半块,然后进行一系列的加密和解密操作,最终得到一个64位的密文块。 CBC(Cipher Block C

    2023年04月19日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包