Problema 4 – Algoritmo de força bruta

Os nossos serviços secretos intercetaram uma mensagem que queremos ler, mas que se encontra cifrada. A mensagem é: oebbea itw atfiw hlrrfi
Felizmente, conseguimos saber que a mensagem contém a palavra “rabbit”. Sabemos também que foi utilizado um algoritmo de substituição de letras e que o conjunto de letras utilizado apenas contempla as letras na mensagem. Ou seja, no ato de cifra da mensagem, foi primeiramente construído um array com as letras da mensagem, e de seguida outro array com as mesmas letras, mas numa ordem diferente, o qual foi utilizado como referência para substituir as letras da mensagem. Utilizando o exemplo apresentado na figura abaixo, podemos cifrar a mensagem “rabbit” obtendo “troobw”.

O nosso objetivo é descobrir qual foi a ordenação de letras utilizada, recorrendo ao poder computacional do nosso computador. A ideia é utilizar um algoritmo de força bruta que teste todas as permutações possíveis até encontrar a mensagem correta. Para determinarmos se conseguimos decifrar a mensagem, devemos ter uma condição que guarde numa lista todos os resultados decifrados que contenham a palavra “rabbit”. A frase que estiver em inglês correto é a solução para este problema. Deve ser apresentado o código e a frase decifrada.