【seedlab】secret-key encryption Task6.3

做实验时参考了这篇文章:Secret-Key Encryption Lab网安实验
但是做到6.3就看不懂了,问了班里的大佬后做出来了!感谢dalao!


Task6.3 题目

你的任务是构造一个信息,然后让Bob加密后给你密文。你的目的是,使用这个机会找出Bob的秘密信息到底是Yes还是No。在本任务中,有一个虚拟机代表Bob,可以使用128位AES、CBC模式对明文进行加密。你可以使用以下代码连接虚拟机。

$ nc 10.9.0.80 3000
Bob’s secret message is either "Yes" or "No", without quotations.
Bob’s ciphertex: 54601f27c6605da997865f62765117ce
The IV used : d27d724f59a84d9b61c0f2883efa7bbc
Next IV : d34c739f/59a84d9b61c0f2883efa7bbc
Your plaintext : 11223344aabbccdd
Your ciphertext: 05291d3169b2921f08fe34449ddc3611
Next IV : cd9f1ee659a84d9b61c0f2883efa7bbc
Your plaintext : <your input>

向你展示了下一个IV后,你应该输入一段明文。虚拟机会使用刚展示过的IV加密这个信息,然后输出新的密文。

CBC原理介绍

CBC模式加密会将上一轮的密文与本轮明文做异或然后再加密,而第一组明文没有上一组明文,所以需要给一个初始化向量,与第一组明文做异或,然后再加密。原理图如下所示:
image-20230209182348328

解题

M: 明文
IV0: M加密时使用的初始向量
C = F(M xor IV0)
next_iv已知
设我们打算发送的信息为M'
要使F(M' xor next_iv) = C = F(M xor IV0)
则需要构造M' = M xor IV0 xor next_iv,
这样才可以得到F(M xor IV0 xor next_iv xor next_iv) = F(M xor IV0)

接下来要做的就比较清楚了。我们先构造消息Yes,编码为596573,填充后为5965730d0d0d0d0d0d0d0d0d0d0d0d0d。将构造的信息与Bob使用的iv和下一个iv异或,再送去加密,可得到下图。

img

加密后的密文和Bob的密文相同,所以原来的明文是Yes。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值