Skip to content

Cracking Utilities

Jordan Gloor edited this page Dec 6, 2020 · 3 revisions

Roark Creek includes a simple built-in cracking utility called snagFish. The main purpose of snagFish is to test for key collisions in Roark Creek. If snagFish manages to decrypt ciphertext with a key different key than the one used to encrypt it, then obviously Roark Creek's keys are not secure.

You can initiate a snagFish attack with the command s or snagFish. Add the option -v to either for a verbose output. Otherwise, you will only be updated every 1000 attempts with the number of keys attempted per second.

SnagFish will first ask you for ciphertext to attack, and then a target word or phrase to look for in the output of a decryption attempt. If it finds the target, snagFish will stop and give you the key it found the target with and the full decryption printout. It will also save the results in a file called snagFishLog.txt.

Version 1.0.1 and above computes a Cartesian product of every possible key combination and attempts decryption with each. Since Roark Creek keys are 24 bits, and there are over 90 possible characters for each bit, this comes to a very large number keys to try. Therefore, snagFish will almost always take a long time.

Note that snagFish uses the same exact string with every attack. That means it always starts at with same key and tests the proceeding keys in the same order. If you want to start at a different point, you'll need to edit the roark_creek.py file.

More cracking utilties are planned to be developed, and snagFish will eventually include additional features like a verbose option and guess clocking.

Clone this wiki locally