Rating:

# Not that easy!! Writeup

This problem is worth 400 points in the "Crypto and Stego" category. This was one of the least solved challenges in the whole cmpetition with only 2% of teams being able to solve it. I was the second to solve this challenge.

## Problem Statement:
Not that easy, only fives!!

### my_data.dat
```
TFTTTTFFTFTTTTFFTTTFFTTFTTFFFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFTFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFTFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFFTFTFFFFTFTTFFFFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFTFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFTFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFTFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFTFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFTFTFFFFTFTTFFFFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFTFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFFFFTTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFTFFFTFFFTFFFTFTFTTFFTFTTTFTTTFTFFFFFTFFFTFFFTFTFTTFFTF
```

## Solution

Taking a look at the ciphertext provided in my_data.dat, we recognize that there are only two characters, T and F. So, let's convert to binary and see if we get any notable results.

We notice that each character in binary representation must have a 0 in the first bit position. So, let's convert T to 0 and F to 1.

```
010000110100001100011001001111010001000101111101110111010100110100010001011111011101110101001101111000010111110111011101010011011110000101111101110111010100110100010001011111011101110101001101111000010101110111011101010011010001000101111101110111010100110111100001011111011101110101001101111000010111110111010101010011011110000101011101110111010100110100010001010111011101010101001101000100010101110111011101010011010001000101111101110111010100110111100001011111011101010101001101000100010111110111011101010011010001000101111101110101010100110111100001011111011101110101001101101011110100111100010001010111011101110101001101000100010101110111011101010011011110000101011101110111010100110100010001010111011101110101001101000100010101110111010101010011011110000101111101110111010100110100010001010111011101110101001101111000010101110111011101010011011110000101111101110101010100110111100001011111011101110101001101111000010101110111011101010011010001000101111101110101010100110100010001011111011101010101001101111000010111110111010101010011011110000101111101110111010100110100010001010111011101010101001101000100010101110111011101010011010001000101111101110101010100110100010001011111011101110101001101101011110100111111100001011111011101110101001101000100010111110111011101010011011110000101111101110111010100110111100001011111011101110101001101111000010101110111010101010011010001000101111101110111010100110111100001010111011101010101001101000100010111110111011101010011010001000101011101110111010100110100010001010111011101110101001101000100010111110111011101010011010001000101011101110101010100110100010001010111011101110101001101111000010101110111011101010011010001000101011101110111010100110100010001011111011101110101001101000100010111110111011101010011010001000101011101110111010100110100010001011111011101110101001101
```

When we try to convert this binary into text, we realize that some bytes form unprintable characters. So, let's reverse the original ciphertext. This is what we get.

```
FTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFFFFTTFTFFFFTFTFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFTFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFTFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFTFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFTFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFFFFTTFTFFFFTFTFFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFTFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFTFTFFFTFFFTFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFTFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFTFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTTFFFFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFTTFTFTFFFTFFFTFFFFFTFTTTFTTTFTFFFFTTFTTFFTTTFFTTTTFTFFTTTTFT
```

This time, the first character is an F so let's convert F to 0 and T to 1.

```
010011010100010001000001011101110100110101000100010001010111011101001101010001000100000101110111010011010100010001000001011101110100110101000100010001010111011101001101010001000100010101111000010011010100010001000101011101110100110101010100010001010111011101001101010001000100000101110111010011010100010001000101011101110100110101000100010001010111011101001101010001000100000101110111010011010101010001000101011110000100110101000100010000010111011101001101010101000100010101111000010011010100010001000001011110000100110101000100010000010111100001001101010001000100000101110111010011010100010001000001011110000000110100001010010011010100010001000001011101110100110101010100010000010111011101001101010001000100010101110111010011010101010001000101011101110100110101000100010000010111100001001101010101000100000101111000010011010101010001000001011101110100110101010100010000010111011101001101010001000100010101111000010011010100010001000001011110000100110101010100010000010111100001001101010001000100010101111000010011010100010001000101011101110100110101000100010000010111100001001101010101000100010101110111010011010100010001000101011101110100110101000100010001010111100001001101010001000100010101110111010011010100010001000101011101110000110100001010010011010100010001000001011110000100110101010100010000010111011101001101010001000100000101110111010011010101010001000001011110000100110101000100010000010111011101001101010001000100010101110111010011010101010001000101011101110100110101000100010001010111100001001101010101000100000101111000010011010100010001000001011110000100110101000100010000010111011101001101010001000100010101111000010011010100010001000001011101110100110101000100010000010111100001001101010001000100000101111000010011010100010001000001011101110100110101000100010000010111011101000011011001110011110100111101
```

We convert this binary to its corresponding ASCII vaues and all the characters are valid.

```
MDAwMDEwMDAwMDAwMDEwMDExMDEwMTEwMDAwMDEwMDEwMDAwMTExMDAwMTExMDAxMDAxMDAwMDAxMDAwMTAwMDEwMTEwMDAxMTAxMTAwMTAwMDExMDAxMTAxMDExMDEwMDAxMTEwMDEwMDExMDEwMDEwMDAxMTAwMDAwMTAxMDAwMDEwMTEwMDExMTAxMDAxMDAwMDExMDAwMDAxMDAxMDAwMDAwCg==
```

This resulting string is encoded by some base, most probably base 64 or base 32 by the two equal signs at the end. Let's try base64.

```
000010000000010011010110000010010000111000111001001000001000100010110001101100100011001101011010001110010011010010001100000101000010110011101001000011000001001000000
```

When we decode it from base64, we get this string that looks like it's in binary. However, there are unprintable characters when we attempt to convert this ciphertext to its ASCII equivalent. It doesn't work if we reverse the string and try again. It's good to note that the string starts and ends with at least 4 0's and thus is not binary.

Another cipher in which there are 2 characters is baconian cipher.

When we decode our ciphertext, we get `BACONCIPHERISNOTGOODTOENCRYPTDATA`, which is our flag.

## Flag

`JISCTF{BACONCIPHERISNOTGOODTOENCRYPTDATA}`

Original writeup (https://github.com/csn3rd/JISCTFWriteups/blob/master/Not%20that%20easy.md).