Java app to decrypt substitution ciphers
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Decrypts a Simple Substitution Cipher text. Creates Knowledge Sources with enough knowledge about English language with respect to the spellings of the words, the vowels, consonants, grammar etc, so that it is able to decrypt the input by making a series of intelligent decisions about the mappings and evaluating them against the sentence database. Backtracking is used to explore the search space (which is the sentence database). Inverted Indices on words and sentences are used to search the database swiftly and make the decryption process faster. The BlackBoard Design Pattern is followed in the implementation.

At a high level the main components of the system include

➢ Cryptographer The main entry into the application which interacts with the user to get the input and initializes the various other components like Blackboard,Controller etc.

➢ BlackBoard Central place that maintains the state of the decryption.

➢ Controller Interacts with the various pieces of the system and is the driver of the actual decryption process.

➢ Knowledge Sources The main intelligence engine that do decryption based on intelligence acquired via mining the internet or any text database.