DES Cracker Signalling
 
Here is a description of the signals and passing schemes, and a guide to what you're seeing in the simulation:
Step 1: The simulation uses a 2 dimensional matrix of 4-sided cells. It also assumes a starting point where all the processors are set up and ready to go.
 
Step 2: Inputs are passed into the matrix of processors. A pair of text strings is passed into the processor matrix from the upper right corner on 64-bit-wide wires, one for each string. The strings are shown on the bottom of the simulation, "The moon is not made of cheese" is the secret message, and below it is an encryption of the message using some specific key. These are passed in from the upper right corner. Each processor passes the text to its immediate neighbors on the left and below. The processors act in parallel and autonomously; thus the signal is propagated from an increasing number of processors at each time step. The overall shape of signal propagation resembles an advancing front.

  
 
Step 3: Processors immediately begin outputting a non-match signal on the 64-bit-wide key output line. They output this signal all the time, no state machines involved. This non-match output signal is indicated by the color blue during the remaining steps of the simulation.
 
Step 4: One processor is preordained as the one that holds the matching key (although you can change it to another processor by clicking on a different square). Upon generation of its key and comparison of its encryption of the plain text to the desired output, this processor determines that it has the correct key. It outputs the key value on the match output signal line. These lines are set up such that the signal is propagated to the processors immediate neighbors on the right and above. The result propagates upward and rightward in an advancing front. This signal propagation is the mirror of the input propagation pathways. (FIGURE: matchBig.gif, match.gif) The match signal is indicated by yellow. Any processor that sees a match signal as input from its neighbors sends it onward, such that it ultimately reaches the upper right corner of the matrix. The search is now completed.

  
 
The java simulation responds to mouse clicks. You can click on a square to make it the matching processor. Then click on the Restart Simulation button. The next simulation will show the propagation of the match signal from that square rather than the previous one.