Yey! finally i can decrypt the message..
now i want to share what i learn when i try to solve the message
first, most people know how the xecryption algorithm work, but the problem is "how can i get the password value?"
the password value take a very important role in this mission.. coz if you know the password value, you don't need to brute force the message
second, remember the magic word!
thanks to T3hR34p3r for writing the article (sry i doubt to post the link)
here's the magic word from that article that help me to recognize my mistake:
In English, the letter which most frequently occurs is e. Afterward, the succession runs thus: a o i d h n r s t u y c f g l m w b k p q x z.
-Edgar Allen Poe
but you need to think something.. beside character 'e' there is another character which most frequently occurs
let's say that another character is "Mr.X"
that quote help me to relize my mistake.. what is that?
after i recognize how xecryption works, i write my own program using python to sum the number in the encrypted message.. so i get a list like this:
[849, 861, 811, 879, 863, 870, 793, ... <-- dummy
and then i find the minimum number from that list using min() function to find (Mr.X) character ascii, after that i will manipulate that number with (Mr.X) ascii code to get the password value. for example 871 - 65 = 806 <- here's the password value. but what i get is so many unknow character
this is my biggest mistake coz i made an assumption "if i can get the minimum number, there is a posibility that number is (Mr.X) character" i forget there is possibily for "new line" character
but, after reading the quote from Allen Poe, i realize that i don't need to find the minimum number! i just need to find the most frequently occurs number! because in long text, the possibilty of (Mr.X) character become the most frequently occurs is very high.. so i write my own function to find the most frequently occurs number from the list. here's the result looks like:
845 : 4
846 : 3
851 : 1
859 : 21
860 : 2
861 : 10
now, i get the number and i know the meaning of this number. so, i get the password value and i can manipulate the encrypted value using the password value to get the "real value" and then convert them to character to get the message
if you want to make the script using python here's the function which i use:
1. open(filename) <- to read encrypted message from text file
2. rstrip() <- clean the encrypted message from new line char
3. split('.') <- split the number using '.' delimiter
4. list_of_number.count(number) <- to count the number occurence
5. chr(ascii_code) <- convert the ascii code to character
6. set() <- to remove duplicate number
ps: i hope this is not a spoiler, if u think this is a spoiler please remind me so i can delete this post. (or maybe moderator can delete it for me