# Modern Clueless Child

by anishbadhri

‘I was surfing the crimson wave and oh my gosh I was totally bugging. I also tried out the lilac hair trend but it didn’t work out. That’s not to say you are any better, you are a snob and a half. But let’s get back to the main question here- Who am I? (You don’t know my name)’

Ciphertext = “52f41f58f51f47f57f49f48f5df46f6ef53f43f57f6cf50f6df53f53f40f58f51f6ef42f56f43f41f5ef5cf4e”

(hex) Key = “12123”

## Solution

This question needs a number of observations.

First, it can be seen that `f`

occurs after every 2 characters. Splitting the ciphertext on `f`

yields an array of bytes.

It is known that the flag starts with `csictf{`

. When represented in bytes, this results in an array, `63 73 69 63 74 66 7b`

.
On taking an xor of this array with the first 7 elements of the ciphertext, we get a bytearray, `31 32 31 32 33 31 32`

. It can be seen that the unit digit of this bytearray is key.

Hence, taking each element of the key and prepending `3`

before it gives an array of bytes. Taking the xor of this key with the ciphertext returns the flag.

**Solution Script**:

```
import base64
cipher = "52f41f58f51f47f57f49f48f5df46f6ef53f43f57f6cf50f6df53f53f40f58f51f6ef42f56f43f41f5ef5cf4e".split('f')
key = ['3' + i for i in "12123"]
res = []
for i, n in enumerate(cipher):
x = int(n, 16)
y = int(key[i % len(key)], 16)
res.append(hex(x ^ y)[2:])
res = "".join(res)
print(bytes.fromhex(res).decode())
```

## Flag

```
csictf{you_are_a_basic_person}
```

*Crypto*