Tags: misc 

Rating: 5.0

## PlayFake (Misc-50)

### Description

See **playfake.py** and decrypt the ciphertext

Ciphertext = KPDPDGYJXNUSOIGOJDUSUQGFSHJUGIEAXJZUQVDKSCMQKXIR

Notice that flag is generated using "msg", not "msg2".
After decryption, you get "msg2".
You must manually add spaces and perform other required changes to get "msg".

### Solution
* It is given that the words `SharifCTF` and `contest` exits in the `msg`
* Also msg2 and msg are almost identical.
* So, I brute-force the 5-letter long key using all the meaningful 5-letter words
* How did I do that?
* If I calculate cipher corresponding to `SharifCTF`, then it must be present in Ciphertext
* I take `SharifCTF` as msg and calculated cipher and check for whick keys it is in Ciphertext
* Similarly I do for `contest`, then I take intersection of possible keys in two cases
* After calculating the key, writing decryption is easy and calculate `msg2`.
* After that msg with a few modification.
* Passing msg to `make_flag()` gives away the flag.
* `SharifCTF{655ad15484a60457f3af49512a5d5206}`

Original writeup (https://github.com/InfoSecIITR/write-ups/tree/master/2016/SharifCTF-2016/misc-50).