NSA@home is a fast FPGA-based SHA-1 and MD5 bruteforce cracker. It is capable
of searching the full 8-character keyspace (from a 64-character set) in about a day in
the current configuration for 800 hashes concurrently.
The chip design consists of a pattern generator, a hash algorithm
and a lookup engine in each FPGA. The FPGAs are connected to smaller “switch FPGAs”, which
distribute data to and gather results from them. Those switches link to each other and
ultimately to an USB port (which had to be added).
A dedicated PC box communicates with the boards through an USB hub. The
software running on it post-processes hit indications from the FPGA
boards and prepares inputs for them.