How would you code a program ( preferably in Java or Python ) to break a random ciphertext where key can't be determined by shifts i.e the key substitution is random.
This website (https://www.guballa.de/substitution-solver) has done it.
I have to do it by frequency analysis (https://en.wikipedia.org/wiki/Frequency_analysis)
The main problem I am facing is to check that if the words are looking like English words or not when I substitute.
Please guide me on how to approach this problem
Thanks hakid
This is maybe a late answer but this code can used as a start for you.
SIDE NOTES: this program can most of the time successfully decrypt most used letters like
e, t, a, obut would fail to successfully map less used letters(since frequency differences start to decrease making results less predictable). This problem can be overcomed a little bit by also analyzing English most used bigrams(liketh) and using the results to make more accurate predictions. Another note you can take advantage of is that the letterais easy to break making breaking the letteriless painfull since any sentence having one ciphertext character in between is likely to correspond toa(ex: a book) ori(ex: i went)(and we already deducedaso any other single ciphertext character is likely to bei)