Codebreaking is a wondrous demonstration of the strength of the human mind. It is a practice that weaves together disciplines ranging from math and computing, to history and linguistics. Codebreaking, at its essence, requires the connection of disparate information: the codebreaker takes the garbage data he/she is given, and using the knowledge he/she possesses, uncovers the latent truth behind the cruft. A codebreaker, therefore, needs to possess an aptitude for seeing what others do not, the ability to find creative solutions to problems, and, of course, a great deal of patience.
Codes, on their surface, reveal little. While they may take the form of numbers, letters, bytes, or symbols, the primary goal of most codes is either to conceal or condense information. In the context of codebreaking, the codes that pique the most interest are, of course, the ones that hide a message from unauthorized eavesdroppers. The role of the codebreaker is not always the honest one, for it is his/her job to undo the careful manipulations of the sender to uncover, without the key for the lock, what the message contains. To do this, he/she must rely on intuition, on reasoning, and sometimes on “luck,” to get his/her way.
In his book, “Thinking, Fast and Slow,” Daniel Kahneman defines two “systems” of thought, which he terms System 1 and System 2. Though he defines the two systems in great detail, in essence, the human mind thinks with either “slow thinking” or “fast thinking.” System 1 is the “fast thinking” system. It is automatic and unconscious. It’s based on human instinct and learns by association. System 2, on the other hand, is the “slow thinking” system. It’s the system that we can control, the system that we use when we concentrate hard and consciously think. In a situation that places the subject in danger, System 1 kicks in immediately, attempting to use the basic human instincts and associations it has learned to minimize the damage done. For example, if your eyes perceive a fast moving ball heading toward your head, you will most likely automatically duck. System 1 can then pass information onto System 2 to consolidate and reason out the cause of the danger; after ducking, you will mostly likely look around for the source of the flying object.
With these two terms in mind, it is easier to specifically designate what skills a codebreaker needs. A codebreaker needs a finely honed System 1, what many people call “intuition.” He/she should be able to subconsciously recognize that something is “off” about a message, or that it is different somehow. Oftentimes, a codebreaker needs to scan through a large amount of data, more than can be consciously processed. However, with a trained System 1, the codebreaker can create associations, essentially strengthening and reinforcing his codebreaking “sense.” While System 1 is not able to, for example, distinguish a specific type of code, it is able to slowly learn patterns and then apply those patterns in a...