“The Enigma machine used electric-powered mechanical rotors to both encrypt and decrypt text-based messages sent over radio waves. The device had German origins and would become an important technological development during the Second World War.”
“The device looked like a large square or rectangular mechanical typewriter. On each key press, the rotors would move and record a seemingly random character that would then be transmitted to all nearby Enigma machines. However, these characters were not random, and were defined by the rotation of the rotor and a number of configuration options that could be modified at any time on the device. Any Enigma machine with a specific configuration could read or “decrypt” messages sent from another machine with an identical configuration. This made the Enigma machine extremely valuable for sending crucial messages while avoiding interception.”
“While a sole inventor of the rotary encryption mechanism used by the machine is hard to pinpoint, the technology was popularized by a two-man company called Chiffriermaschinen AG based in Germany. In the 1920s, Chiffriermaschinen AG traveled throughout Germany demonstrating the technology, which led to the German military adopting it in 1928 to secure top-secret military messages in transit.”
“The ability to avoid the interception of long-distance messages was a radical development that had never before been possible. In the software world of today, the interception of messages is still a popular technique that hackers try to employ, often called a man-in-the-middle attack. Today’s software uses similar (but much more powerful) techniques to those that the Enigma machine used a hundred years ago to protect against such attacks.”
“While the Enigma machine was an incredibly impressive technology for its time, it was not without flaws. Because the only criterion for interception and decryption was an Enigma machine with an identical configuration to the sender, a single compromised configuration log (or private key, in today’s terms) could render an entire network of Enigma machines useless.”
“To combat this, any groups sending messages via the Enigma machine changed their configuration settings on a regular basis. Reconfiguring Enigma machines was a time-consuming process. First, the configuration logs had to be exchanged in person, as secure ways of sharing them remotely did not yet exist. Sharing configuration logs between a network of two machines and two operators might not be painful. But a larger network, say 20 machines, required multiple messengers to deliver the configuration logs — each increasing the probability of a configuration log being intercepted and stolen, or potentially even leaked or sold.”
“The second problem with sharing configuration logs was that manual adjustments to the machine itself were required for the Enigma machine to be able to read, encrypt, and decrypt new messages sent from other Enigma machines. This meant that a specialized and trained staff member had to be present in case a configuration update was needed. This all occurred in an era prior to software, so these configuration adjustments required tampering with the hardware and adjusting the physical layout and wiring of the plugboard. The adjuster needed a background in electronics, which was very rare in the early 1900s.”
“As a result of how difficult and time-consuming it was to update these machines, updates typically occurred on a monthly basis — daily for mission-critical communication lines. If a key was intercepted or leaked, all transmissions for the remainder of the month could be intercepted by a malicious actor — the equivalent of a hacker today.”
“The type of encryption these Enigma machines used is now known as a symmetric key algorithm, which is a special type of cipher that allows for the encryption and decryption of a message using a single cryptographic key. This family of encryption is still used today in software to secure data in transit (between sender and receiver), but with many improvements on the classic model that gained popularity with the Enigma machine.”
“In software, keys can be made much more complex. Modern key generation algorithms produce keys so complex that attempting every possible combination (brute forcing or brute force attack) with the fastest possible modern hardware could easily take more than a million years. Additionally, unlike the Enigma machines of the past, software keys can change rapidly.”
“Depending on the use case, keys can be regenerated at every user session (per login), at every network request, or at a scheduled interval. When this type of encryption is used in software, a leaked key might expose you for a single network request in the case of per-request regeneration, or worst-case scenario, a few hours in the case of per-login (per-session) regeneration.”
“If you trace the lineage of modern cryptography far back, you will eventually reach World War II in the 1930s. It’s safe to say that the Enigma machine was a major milestone in securing remote communications. From this, we can conclude that the Enigma machine was an essential development in what would later become the field of software security.”
“The Enigma machine was also an important technological development for those who would be eventually known as “hackers.” The adoption of Enigma machines by the Axis Powers during World War II resulted in extreme pressure for the Allies to develop encryption-breaking techniques. General Dwight D. Eisenhower himself claimed that doing so would be essential for victory against the Nazis.”
“In September of 1932, a Polish mathematician named Marian Rejewski was provided a stolen Enigma machine. At the same time, a French spy named Hans-Thilo Schmidt was able to provide him with valid configurations for September and October of 1932. This allowed Marian to intercept messages from which he could begin to analyze the mystery of Enigma machine encryption.”
“Marian was attempting to determine how the machine worked, both mechanically and mathematically. He wanted to understand how a specific configuration of the machine’s hardware could result in an entirely different encrypted message being output.”
“Marian’s attempted decryption was based on a number of theories as to what machine configuration would lead to a particular output. By analyzing patterns in the encrypted messages and coming up with theories based on the mechanics of the machine, Marian and two coworkers, Jerzy Różycki and Henryk Zygalski, eventually reverse engineered the system. With the deep understanding of Enigma rotor mechanics and board configuration that the team developed, they were able to make educated guesses as to which configurations would result in which encryption patterns. They could then reconfigure a board with reasonable accuracy and, after several attempts, begin reading encrypted radio traffic. By 1933 the team was intercepting and decrypting Enigma machine traffic on a daily basis.”
“Much like the hackers of today, Marian and his team intercepted and reverse engineered encryption schemes to get access to valuable data generated by a source other than themselves. For these reasons, I would consider Marian Rejewski and the team assisting him as some of the world’s earliest hackers.”
“In the following years, Germany would continually increase the complexity of its Enigma machine encryption. This was done by gradually increasing the number of rotors required to encrypt a character. Eventually the complexity of reverse engineering a configuration would become too difficult for Marian’s team to break in a reasonable time frame. This development was also important, because it provided a look into the ever-evolving relationship between hackers and those who try to prevent hacking.”
“This relationship continues today, as creative hackers continually iterate and improve their techniques for breaking into software systems. And on the other side of the coin, smart engineers are continually developing new techniques for defending against the most innovative hackers.”
Return to Timeline of the History of Computers
Jay Forrester (1918–2016), Robert R. Everett (b. 1921)
“In 1944, the US Navy asked the MIT Servomechanisms Laboratory to create a flight simulator to train Navy pilots. MIT tried building an analog computer, but it was soon clear that only a digital machine could possibly offer the speed, flexibility, and programmability required to create a realistic simulation. So, in 1945, the Office of Naval Research contracted MIT to create what would be the world’s first interactive, real-time computer.”
“Called Whirlwind, the machine was a massive undertaking: the project involved 175 people with a budget of $1 million a year. The machine used 3,300 vacuum tubes and occupied 3,300 square feet in MIT Building N42, a 25,000-square-foot, two-story building that MIT bought specifically for the project.” Fair Use Source: B07C2NQSPV
Whirlwind had the first computer graphics display, a pair of 5-inch video screens on which the computer could draw airspace maps. It also had the first graphical input device, a “light pen” (invented by associate director Robert R. Everett), for selecting points on the screen. When Whirlwind was partially operational in 1949, MIT professor Charles Adams and programmer John Gilmore Jr. used its graphics capabilities to create one of the first video games: a line with a hole, and a ball that made a thunk sound every time it bounced. The goal was to move a hole so that the ball would fall in.”
“Soon, however, it was clear that the electronics technology of the day needed improving. Whirlwind’s vacuum tubes kept burning out. The lab performed an in-depth analysis and determined that trace amounts of silicon in the tube cathodes were at fault. The lab had the contaminant removed, and the lifetime of the tubes was extended by a factor of a thousand. When it became clear that the computer would need memory that was larger and more reliable than storage tubes, Forrester invented magnetic core memory, which would become the primary storage system of computers for the next two decades. Later, when it became evident that Whirlwind needed code that would permanently reside in the computer, load other programs, and provide basic functions, the project drove the invention of the first operating system.”
Whirlwind was fully operational in 1951. Although it was never actually used as a flight simulator, its graphic display showed that computers could present maps and track objects, demonstrating the feasibility of using computers for air defense.”
SEE ALSO Core Memory (1951)
“Created to run a flight simulator for the US Navy, Whirlwind was the world’s first interactive computer.”
Return to Timeline of the History of Computers
Frederic Calland Williams (1911–1977), Tom Kilburn (1921–2001)
“The defining characteristic of the digital computer is that it stores both program and data in a single memory bank. In a modern computer, this arrangement lets one program load a second program into memory and execute it. On the limited-memory machines of the 1950s, intermixing programs and code made it possible to squeeze out more functionality by writing programs that literally modified themselves, now called self-modifying code. Modern computers use this ability to load code into the computer’s memory and execute it—the fundamental capability that makes a computer a general-purpose machine. But none of the machines built before the Manchester Small-Scale Experimental Machine (SSEM) were actually digital computers, at least not in the modern sense. Either they were hardwired to perform a particular calculation, like the Atanasoff-Berry Computer, they read their instructions from some kind of punched tape, like the Konrad Zuse machines, or the program was set on wires and switches, like ENIAC. They were really calculators, not computers.
The SSEM, nicknamed Baby by its creators at the University of Manchester, was built for testing and demonstrating the storage tube that Frederic Williams had designedWilliams Tube Random Access Memory (RAM) – 1946 A.D. in 1946. Baby filled a 20-foot-square room and consisted of eight racks of equipment, the Williams storage tube, many radio tubes, and meters that reported voltages. Each tube had 1,024 bits. As the program ran and changed what was stored in its memory, the arrangement of dots on the storage tube changed.
Because the program was stored in memory, and relied on self-modifying code, it was easy for Kilburn to make changes. The first program that Baby successfully ran, written by Kilburn, was designed to find the highest factor of 218 (262,144). The program ran in 52 minutes and found the right answer: 217 (131,072), averaging 1.5 milliseconds per instruction. The original program was just 17 instructions long.
Arriving at the correct answer was no easy feat. As Williams reportedly stated, “The spots on the display tube entered a mad dance. In early trials, it was a dance of death leading to no useful result . . . But one day it stopped, and there, shining brightly in the expected place, was the expected answer.””
“Recreation of the Manchester Small-Scale Experimental Machine (a.k.a., the Manchester “Baby”) at the Museum of Science and Industry in Manchester, UK.”
Return to Timeline of the History of Computers
Curt Herzstark (1902–1988)
“The Curta is perhaps the most elegant, compact, and functional mechanical calculator ever manufactured. Designed by Austrian engineer Curt Herzstark, it is the only digital mechanical pocket calculator ever invented. Handheld and powered by a crank on the top, the Curta can add, subtract, multiply, and divide.
Curt Herzstark’s father, Samuel Jacob Herzstark, was a highly regarded Austrian importer and manufacturer of mechanical calculators and other precision instruments. Herzstark finished high school and apprenticed at his father’s company, which he took over when his father died in 1937.
At the time, mechanical calculators were big and heavy desktop affairs. After one of Herzstark’s customers complained that he didn’t want to go back to the office just to add up a column of numbers, Herzstark started designing a handheld calculator. He had an early prototype working in January 1938, just two months before Germany invaded and annexed Austria. Despite Herzstark being half-Jewish, the Nazis let him continue to operate the factory, provided that it cease all civilian production and devote itself to creating devices for the Reich.
In 1943, two of Herzstark’s employees were arrested for distributing transcripts of English radio broadcasts; Herzstark was subsequently arrested for aiding the employees and for “indecent contact with Aryan women.” He was sent to the Buchenwald concentration camp, where he was recognized by one of his former employees, who was now a guard. The guard told the head of the camp’s factory about the mechanical calculator. The Germans then instructed Herzstark to finish his project, so that the camp could give the device to Hitler as a present after Germany won the war. That never happened: Buchenwald was liberated on April 11, 1945, and Hitler killed himself 19 days later.
After liberation, Herzstark took the drawings he had done at the camp to a machine shop and had three working prototypes eight weeks later. The first calculators were produced commercially in the fall of 1948.”
“The Curta mechanical calculator, pictured here, is the only digital mechanical pocket calculator ever invented.”
Return to Timeline of the History of Computers
Claude E. Shannon (1916–2001), John W. Tukey (1915–2000)
“It was the German mathematician Gottfried Wilhelm Leibniz (1646–1716) who first established the rules for performing arithmetic with binary numbers. Nearly 250 years later, Claude E. Shannon realized that a binary digit—a 0 or a 1—was the fundamental, indivisible unit of information.
Shannon earned his PhD from MIT in 1940 and then took a position at the Institute for Advanced Study in Princeton, New Jersey, where he met and collaborated with the institute’s leading mathematicians working at the intersection of computing, cryptography, and nuclear weapons, including John von Neumann, Albert Einstein, Kurt Gödel, and, for two months, Alan Turing.
In 1948, Shannon published “A Mathematical Theory of Communication” in the Bell System Technical Journal. The article was inspired in part by classified work that Shannon had done on cryptography during the war. In it, he created a mathematical definition of a generalized communications system, consisting of a message to be sent, a transmitter to convert the message into a signal, a channel through which the signal is sent, a receiver, and a destination, such as a person or a machine “for whom the message is intended.”
Shannon’s paper introduced the word bit, a binary digit, as the basic unit of information. While Shannon attributed the word to American statistician John W. Tukey, and the word had been used previously by other computing pioneers, Shannon provided a mathematical definition of a bit: rather than just a 1 or a 0, it is information that allows the receiver to limit possible decisions in the face of uncertainty. One of the implications of Shannon’s work is that every communications channel has a theoretical upper bound—a maximum number of bits that it can carry per second. As such, Shannon’s theory has been used to analyze practically every communications system ever developed—from handheld radios to satellite communications—as well as data-compression systems and even the stock market.
Shannon’s work illuminates a relationship between information and entropy, thus establishing a connection between computation and physics. Indeed, noted physicist Stephen Hawking framed much of his analysis of black holes in terms of the ability to destroy information and the problems created as a result.”
SEE ALSO Vernam Cipher (1917), Error-Correcting Codes (1950)
Mathematician and computer scientist Claude E. Shannon.