前言

暑假刷安全牛的课,看视频有点够了,想做点题,选择了实验吧,结果上来就整懵了

web题,牵扯到了CBC反转字节攻击,密码学!?

查阅资料,学习一下

CBC加解密

CBC 模式中会先将明文分组与前一个密文分组进行 XOR 运算,然后再进行加密。

当然,对第一个明文分组来说,是没有前一个密文分组的,那么就需要一个初始化向量(简称IV)

 

CBC加解密图示:

异或的概念

当两个数的二进制表示进行异或运算时,当前位的两个二进制表示不同则为 1,相同则为 0。该方法被广泛推广用来统计一个数的 1 的位数
 
参与运算的两个值,如果两个相应 bit 位相同,则结果为 0,否则为 1。
即:
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
 
按位异或的 3 个特点:
(1) 0 ^ 0 = 0,0 ^ 1 = 1 即 0 异或任何数=任何数
(2) 1 ^ 0 = 1,1 ^ 1 = 0 即 1 异或任何数 = 任何数取反
(3) 任何数异或自己=把自己置 0
 

CBC反转字节攻击

精髓

通过损坏密文字节来改变明文字节

讲解

根据解密方式我们可以知道,A=密文分组2,B=明文分组3,C为经过解密但还没进行异或的密文分组3,D为我们经过攻击反转要得到的明文。
在整个过程中,明文、密文我们都是知道的,但是加解密的密钥是不知道的,所以我们不能直接改变信息,要通过下面的方法进行反转字节攻击
 
 
方便查看:A = 密文分组 2,B = 明文分组 3,C 为经过解密但还没进行异或的密文分组 3(就简称为密文分组 3 了),D 为我们经过攻击反转要得到的明文。
 
B = A ^ C(解密时)解释:明文分组 3 = 密文分组 2 ^ 解密后的密文分组 3(解密时)
C = A ^ B(加密时)解释: 密文分组 3 = 密文分组 2 ^ 明文分组 3(加密时)
 
那么发现:
B ^ A ^ C = 0
解释:明文分组 3 ^ 密文分组 2 ^ 密文分组 3 密文分组 3 ^ 密文分组 3 = 0
 
此时如果:
A ^ B ^ C ^ D = D
解释:明文分组 3 ^ 密文分组 2 ^ 密文分组 3 ^ 任意值 = 密文分组 3 ^ 密文分组 3 ^ 任意值 = 0 ^ 任意值 = 任意值
 
也就是说我们如果改变了密文为 A = A ^ B ^ D,就可以使解密后的明文成为:D
 

总结

 
 
公式可以总结为下:原本的密文改为:原本的密文 ^ 原本对应的明文 ^ 希望变成的值
 
 

【密码学】CBC反转字节攻击的更多相关文章

  1. 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是OPI DTR模式下反转字节序的Octal Flash在i.MXRT下载与启动注意事项. 在恩智浦官方参考设计板 MIMXRT595-E ...

  2. 实验吧之【简单的登录题(】CBC字节反转攻击)

    开始刷ctf题吧  慢慢来. 实验吧---简单的登录题 题目地址:http://ctf5.shiyanbar.com/web/jiandan/index.php 随便提交一个id,看到后台set了两个 ...

  3. CBC翻转攻击(实验吧_简单的登陆题)

    题目链接 http://ctf5.shiyanbar.com/web/jiandan/index.php 有源码在test.php页面 分析代码过程 如果post id,将id转字符串,然后进入sql ...

  4. 密码学系列之:Merkle–Damgård结构和长度延展攻击

    密码学系列之:Merkle–Damgård结构和长度延展攻击 简介 Merkle–Damgård结构简称为MD结构,主要用在hash算法中抵御碰撞攻击.这个结构是一些优秀的hash算法,比如MD5,S ...

  5. [翻译练习]密码学1小时入门 (Everything you need to know about cryptography in 1 hour)

    原文:http://www.daemonology.net/papers/crypto1hr.pdf   [密码学简介]   很多人都误用了密码学   一般可归为三类: 1. 愚蠢 比如Google ...

  6. (转)CBC模式和ECB模式解读

    一 什么是CBC模式 CBC模式的全称是Cipher Block Chaining模式(密文分组链接模式),之所以叫这个名字,是因为密文分组像链条一样相互连接在一起. 在CBC模式中,首先将明文分组与 ...

  7. php攻击漏洞总结

    1.两字节编码(gbk)都存在宽字节攻击问题[character_set_client=gbk] 案例:http://www.cnblogs.com/lcamry/articles/5625276.h ...

  8. SSL及GMVPN握手协议详解

    之前写过一篇文章搞懂密码学基础及SSL/TLS协议,主要介绍了加密学的基础,并从整体上对SSL协议做了介绍.由于篇幅原因,SSL握手的详细流程没有深入介绍.本文将拆解握手流程,在消息级别对握手进行详细 ...

  9. BUGKUctf-web-writeup

    ---恢复内容开始--- 找到了个ctf平台.里面的web挺多的.终于将web题目写的差不多了. Web 签到题 加群就可以了 Web2 直接F12就看到了 文件上传测试 Burp抓包 文件名改成 1 ...

随机推荐

  1. Linux——搭建Apache(httpd)服务器

    一.基本概念 Apache(或httpd)是Internet上使用最多的Web服务器技术之一,使用的传输协议是http超文本传输协议(一个基于超文本的协议),用于通过网络连接来发送和接受对象. 有两个 ...

  2. [luogu3781]切树游戏

    考虑暴力的dp,即用$f_{i,j}$表示以$i$为根的子树内,强制$i$必须选且异或为$j$的方案数,转移用FWT即可,求出该dp数组的时间复杂度为$o(nm\log_{2}m)$ 由于是全局的方案 ...

  3. MySQL数据库从入门到放弃(目录)

    目录 MySQL数据库从入门到放弃 推荐阅读 MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 ...

  4. 洛谷 P2791 - 幼儿园篮球题(第二类斯特林数)

    题面传送门 首先写出式子: \[ans=\sum\limits_{i=0}^m\dbinom{m}{i}\dbinom{n-m}{k-i}·i^L \] 看到后面有个幂,我们看它不爽,因此考虑将其拆开 ...

  5. Codeforces 917C - Pollywog(状压 dp+矩阵优化)

    UPD 2021.4.9:修了个 typo,为啥写题解老出现 typo 啊( Codeforces 题目传送门 & 洛谷题目传送门 这是一道 *2900 的 D1C,不过还是被我想出来了 u1 ...

  6. P6604 [HNOI2016]序列 加强版

    *I. P6604 [HNOI2016]序列 加强版 摘自学习笔记 简单树论 笛卡尔树部分例题 I. 和 P6503 比较类似.我们设 \(f_i\) 表示全局以 \(i\) 结尾的子区间的最小值之和 ...

  7. perl 获取目录信息

    1 #!/usr/bin/perl -w 2 use strict; 3 use FindBin qw($Bin $Script); 4 5 my $rp=$Bin; 6 print "th ...

  8. 🚀 RabbitMQ课程发布-KuangStudy

    RabbitMQ课程上线(44集) 视频教程地址:https://www.kuangstudy.com/course/detail/1323452886432944129 专栏地址:https://w ...

  9. 学习java 7.4

     学习内容:遍历字符串要点:for(int i = 0;i < line.length();i++) { System.out.println(line.chatAt(i)); } 字符串拼接: ...

  10. 基于 Golang 构建高可扩展的云原生 PaaS(附 PPT 下载)

    作者|刘浩杨 来源|尔达 Erda 公众号 ​ 本文整理自刘浩杨在 GopherChina 2021 北京站主会场的演讲,微信添加:Erda202106,联系小助手即可获取讲师 PPT. 前言 当今时 ...