Qsr Nrwn
Website
Classical Cryptography Course by Lanaki |
Lecture 09
German Reduction Ciphers |
In Lecture 9, we circumvent the schedule for another real treat - the ENIGMA cipher machine. Considering the focus of the 1995 ACA convention, several articles in CRYPTOLOGIA, a recent book by Robert Harris called " Enigma ", a Randomhouse challenge cipher contest based on the Enigma (won by several of the KREWE), many questions from my students, I thought we would address the subject of ENIGMA.
I have had the pleasure to work with ESSAYONS on a project in which we looked at the security of the original Enigma D machine in terms of 1995 technology improvements. ESSAYONS has brought to light some brilliant insights.
The ENIGMA 95 computer program cited in this lecture is available at the CDB. Contact NORTH DECODER for access.
Students have asked 1) what is Enigma and 2) where does Enigma fit into history of radio communications in WWII?
There are three pillars of radio-intelligence: direction finding, traffic analysis and deciphering. Direction finding equipment and technology is outside the scope of this course. Traffic analysis has been discussed in a previous lecture. We will quickly revisit its value and then follow Professor Jurgen Rohwer's analysis of the Atlantic Warfare to understand Enigma's position in cryptographic history. [ROHE]
The Enigma machine is actually a good starting point for my discussion on polygraphic and polyalphabetic cipher analysis (originally planned for Lecture 9). We start at the endpoint of a discussion and return to the beginning to build up the cryptanalytic tools to understand the cleverness of the ENIGMA. We will continue with the Friedman and MASTERTON in Lecture 10 and following. [MAST], [FR2], [FR3]
Recall that traffic analysis yields information via Crib messages, Isologs and Chatter. Crib messages assume a partial knowledge of the underlying plain text through recognition of the external characteristics. Command reports, up and down German channels, were especially easy for American crypees. The origin, serial number range, the cryptonet id, report type, the file date and time, message length and error messages in the clear, gave a clear picture of the German command process. German order of battle, troop dispositions and movements were deduced by traffic analysis.
An Isolog exists when the underlying plain text is encrypted in two different systems. They exist because of relay repetition requirements, book messages to multiple receivers or error by the code clerk. American crypees were particularly effective in obtaining intelligence from this method.
Traffic analysis boils down to finding the contact relationships among units, tracking their movements, building up the cryptonet authorities, capitalizing on lack of randomness in their structures, and exploiting book and relay cribs.
ENIGMA was the generic term for the German machine ciphers. It was both the name of the first enciphering device and the many variations used during WWII. ULTRA was the British code-name for intelligence derived from cracking the Enigma machine ciphers by an organization of about 10,000 at Bletchley Park (BP). The extent of the penetration of the German command structure was so profound and so pervasive that it is clear that BP's work changed not only the conduct but the outcome of Allied European Operations in WWII. Most brilliant of ULTRA successes was against German Afrika Korps whereby the 8th Army HQ read Enigma telegrams before Rommel himself. [ASIR] [KAH2]
There now exists a fair amount of material on Enigma. The following annotated outline should give the reader some ideas how important Enigma was in WWII and sources of information:
Enigma was central to the Battle of the Atlantic in WWII. Primary sources for the historical perspective come from Germany, Canada, UK, and USA. Professor Jurgen Rohwer's Comparative Analysis of Allied and Axis Radio-Intelligence in the Battle of the Atlantic, [ROHE] presents the ENIGMA history in 8 phases:
| Phase 1 - 9/39-6/40 | Single U-Boats vs Independent Ships Failure of BP on Schlussel M (Navy Machine) |
| Phase 2 - 7/40-5/41 | Wolf Pack vs Convoy Success of B-Dienst (German Naval decryption service) |
| Phase 3 - 6/41-12/41 | Evasive Routing, US Entry U-33 3 rotors recovered, U-110, Munchen Bombe limited success 336 settings German 4 rotor improvement |
| Phase 4 - 1/1-6/42 | BP Successes on Enigma D, US losses |
| Phase 5 - 7/47-12/13 | Convoy Battles Triton Broken; Rerouting; Milch runs |
| Phase 6 - 6/43-8/43 | Bay Offensive |
| Phase 7 - 9/43-5/44 | Decreased Operations vs Convoys Increased use of Ultra |
| Phase 8 - 6/44-end | Holding Campaign with Schnorkel U-boats New Enigma not released in time for Germany |
Professor Rohwer presents 105 primary references. [ROHE]
From September, 1939 to June 1940, German U-boats cruised west of the British Isles and Bay of Biscay to intercept Allied Merchant ships. U-boats found enough targets. Radio signals were as indispensable to the German Commander in Chief, U-boats (BdU = Befehlshaber der Unterseeboote - Commander in Chief of Submarines) for directing his U-boat groups or wolf packs as they were for Allied commanders directing the convoys of merchant ships and their escorts. The aim of the Axis powers was to sever the lines of communication by surface radars, aircraft and especially U-boats to attack ships in the convoys and thus sink more vessels and tonnage than the Allied shipbuilding yards could replace.
In the first two phases of the Battle of the Atlantic, there was a clear superiority with cryptanalytic success on the German side. Intelligence was of limited value to actual operations. The Germans introduced the short signal system, using a codebook to shorten communications to a few four letter groups which were superenciphered with daily settings of the Schlussel M [M Key] in the circuit of Heimische Gewasser (home waters). The Royal Navy used two crypto-systems - the first was the Naval Cypher which used 4 figure codebooks and the second was the 5 figure codebook Naval code. Both used subtractor tables of 5000 groups changed monthly. B-dienst was reading about 30 -50 % of the Naval Cypher, used by officers. The Merchant Navy Code was broken by the B-dienst in March 1940.
In the third phase BP mastered the Schlussel M- 3 and saved about 400 ships by rerouting convoys. The Schlussel M-3 used three rotors out a stock of eight rotors. BP had limited no success against VI-VIII and limited success against rotors I-IV. The boarding of the Krebs gave the British a box of five rotors. A key to Enigma is its two inner settings, the Walzenlage, or rotor order, and the Ringstellung, the setting of the alphabet rings. In addition to these were the plugboard , the Steckerverbindungen, of ten pairs of letters and the Grundstellung, the starting positions of the rotors. The capture of U-110 gave BP a consistent set of settings and grid maps to reference. The British STR (Submarine Tracking Room) became key to rerouting ships valued at 1.5 mm GRT.
Phase 4 clearly went to the Germans because of their score of ships sunk off the Americas.
In Phase 5, near 1942, the BdU had many interceptions because the B-dienst decrypted the rerouting signals more effectively. Triton introduced and stumps BP. In March 1943, BP solves the Triton and Admiralty changes the operation patterns.
The six and seventh phases German cipher improvements broken by use of U. S. and British high speed Bombes.
Introduction of Kurier system for high speed transmissions to new U-boat type XXI was released to late to stop operation Overlord.
Allied shipping losses were significant and import tonnage was reduced because of the U-boat success and communication. T. J. Runyan and Jan M. Copes "To Die Gallently" [RUNY] presents details.
David Kahn presents an Enigma chronology in terms of world events. A clearer picture of the effect of ULTRA can not be found. Timelines based on his and the honorable F. H. Hinsley books. [KAH2], [KAH3], [HINS] and [KAH3]
The early history of the Enigma, the Polish attack and the beginnings of BP covered in [KAH3] ,[WINT] Winterbotham and Beesley give us special insights into the fray. [BEES] Other perspectives found in [ANTH] and [HYDE].
The story of the Marian Rejewski, Jerzy Rozycki and Henryk Zygalski pioneering work in the Biuro Szyfrow (Cipher Bureau) and their escape to France is told in [ASIR].
Enigma was a class of machines. Cipher A. Deavours and Louis Kruh, in Chapter III of "Machine Cryptography and Modern Cryptanalysis", give detailed descriptions with pictures, rotor order, settings, plug-board and their influence on frequency distribution. [DEVO]
David Kahn in his "Seizing the Enigma" , pp 178 ff gives good detail. Also "Codebreakers" p422. , also various articles by Kahn in Cryptologia give pictorials. [KAH3] [KAHN]
F.H. Hinsley and Alan Strip in "Codebreakers - Story of Bletchley Park", [HINS] have pictures and supporting detail for the Army version 3 rotor device.
NSA's Friedman Legacy - A Tribute to William and Elizabeth Friedman, 1992, pp 201 ff discusses the early Enigma variants. [FL]
See Ref's [ASIR]
See section B3.
Dr. Klaus Brunnstein (University of Hamburg) has provided excellent GIF Enigma pictures in their Working Groups "museum":
Address: http://www.informatik.uni-hamburg.de Select "international homepage"
From 2nd entry "groups", select AGN (first of the working groups)
There, select "Museum" (4th entry) where you get a list of about 40 pictures. The CDB has these also.
Jack Levine presents the most comprehensive treatment of U.S. Cryptographic Patents 1861-1981 in [LEVI].
Rudolph F Lauer discusses the original A. Scherbius Enigma patent # 1657411 in his "Computer Simulation of Classical Substitution Cryptographic Systems" in [LAUE]. This machine was used for diplomatic communications and had ten rotors. BP broke it late in the game using the Colossus machines.
Reference [ASIR] gives an interesting account of Herbern's efforts.
David Kahn in his "Seizing the Enigma" Appendix presents a detailed Enciphering procedure for the Naval Enigma. Approximately 20 pages of notes, biblio, interviews and diagrams. [KAH3]
Cryptanalysis of the various Enigma variants starts with Alan Turing "The Enigma", in [ALAN]
Perhaps the earliest and best attack, Marian Rejewski wrote the brilliant "Mathematical Solution of the Enigma Cipher" published in [REJE].
Gilbert Bloch and Ralph Erskine exploit the double encipherment flaw in article on Enigma, in Cryptologia. [BLOC]
Rudolph F. Lauer presents Cipher A Deavours simulation program p73 ff in reference [LAUE]. Deavour's program reveals the German Army cipher machine simulated consisted of three rotors (of eight), rings settings, plugboard (for key super - encipherment, rotor starting positions and a reflecting rotor. The program requires the user to set "prepare the machine" by setting the rotor wirings, rotor order, rotor starting position, ringsettings, plugboard pairs and no of plugs used and the current rotor positions. It calculates the patchpanel, dis- placements of cylinder coding and effects of reverse rotors, and reflecting rotor. There are no error checks for singularity.
Lauer also presents ten cryptographic systems and representative cipher machines in increasing order of difficulty. He presents 72 references (including the Cipher A. Deavours simulations) on disk. Each system is not only simulated but the principles for the entire class of machines are presented. Ignoring the programming language, BASIC ( I would choose FORTRAN, others would choose C, and others APL, and others ADA and..); the methods applicable to one machine apply equally well to others in the same class.
I have rearranged his classification methodology and added my own thoughts to show how ENIGMA fits into the progression of classical cryptographic / mechanical systems: E40: Mathematical Footholds a: Modulo 26 Arithmetic, Congruences, Matrices b: Statistical Phi values for small distributions c: Isomorphism - reference [CAND] d: Optimization Theory e: Advanced Calculus, Linear Transformations f: Probability Theory E41: Simple Substitution - Cipher Disk {My Lectures 1-8 } Principles: monosubstitution, K1,K2,K3,K4, KM sequence keying, transpositional keys. Examples: Aristocrats, Patristocrats, Xenocrypts Caesar, sliding strips, rotating disks Attacks: Frequency analysis, word pattern, bigram, trigram, vowel spotting, letter distribution. E42: Periodic Polyalphabetic Substitution - Viggy Devices {My Lectures 10-13} Principles: poly-alpha-substitution, repeat key sequence Examples: Vigenere, Variant, Beaufort, Porta, Gronsfeld Attack: Periodicity, Kasiski, trigraphic, traffic analysis, Kerckhoff's method. E43: Running Key and Autokey - Kammel and Weller Devices Principles: polyalphasubstitution, non-repeat key sequence, PT autokey, CT autokey and running key Examples: Running key and autokey ciphers Attack: Friedman attack - "Solution of Running Key Ciphers, probable word, known plain text". E44: Simple Progressive Principles: constant shift interval to employ all secondary alphabets (period = 26) Examples: Progressive Cipher Attacks: Friedman attacks, periodicity at 26,13,2,1 same as E42, Chi test, matching frequency distributions, decimation intervals, coherent key E45: Irregular - KRYHA Principles: irregular shifting of primary components non coherent key, non recognizable key, long key derived from two or more short keys, pseudo-random different interval shifts on progressive; sum of shifts be relatively prime to N in alphabet Examples: One time pad, Vernam Key Tape Attacks: Sacco's solution, Isomorphism, Friedmans technique E46: Wheatstone Cryptograph Principles: Aperiodic cipher, extra sequence shift, error control Examples: Jefferson, Hebern machine, Vernam Attack: Friedmans techniques [FR4] probable phrase E47: Multiplex Systems Principles: Wheel ciphers Examples: Jefferson, M-138, M-94 Attack: Friedman techniques, De Viaris examination, synoptic tables, G. Mellen attack, Rohrbach method coincidences - generatrices group E48: HAGELIN M-209 Principles: pin lug mechanism, cylindrical cage, guide arm - print wheel rotates number of positions = sum of the lugs on those key wheels which were affected by active pins. ==> key value with period of 3,120,180 letters. Examples: C-36, M-209 Attack: Wayne Barker analysis one wheel to six wheels, statistical analysis on settings, probable word E49: ENIGMA Principles: electrical rotor or transfer wheel, stepping gears, maze between keyboard and indicating device producing 26 ** N different enciphering alphabets, re-entrance phenomenon, excess contacts. superencipherment Examples: ENIGMA A-E Attacks: Polish, BP, Turing, Deavours, Friedman IC, E1-E8 previously cited, Chi test on diagonals, isomorphs, Pohlig w/ PT, Konheim analysis, Lisicki Grille 1000x1000 rearrangements Modern Experiments: Remove reflecting rotor. Use re-entrance type rotor [ ACA and Install bi-directional Rotors University of Increase entropy Hamburg ] Expand character sets E410: HILL SYSTEM {NORTH DECODER in Lecture 8} Principles: Polygraphic encipherment, non - linear encipherment == forerunner of "S" boxes in DES Examples: Playfair, Hill Device Attacks: Konheim technique, Rhee analysis, Mapping, ------------------------------------------------------------
Dr. Wladyslaw Kozaczuk discusses the Polish attacks on Enigma in [KOZA]
Involution principles are presented by Alan G. Konheim, "Cryptography -A Primer" , in [KONH]
Wayne G. Barker presents a related analysis in "Cryptanalysis of the Hagelin Cryptograph", in [BARK].
A clever treatment of the Enigma 3 wheel device can be found in George Sassoons, "Radio Hackers Code Book", [SASS]
Bruce Schneier, in his "Applied Cryptography", presents Tieman's C program. [SCH1]
The general theory of rotor systems is well presented in chapter 5 of Konheim's primer. [KONH]
The brilliance of Marian Rejewski solution is presented in "The Mathematical Solution of the Enigma Cipher" in [REJE]
Norbert Ryska and Siegfried Herda give a fresh look at computer techniques required for Cryptography. From a German point of view, it gives the reader a look at security risks, and crypto- methodology. [RYSK]
Sassoon suggests improvements to Enigma by using full ASCII set of 256. Sequence length 256 x x 256. Rotor settings in blocks of 256 8-bit bytes one to define the position of each rotor. Sassoon's Basic Enigma3 simulation 4 rotors and a reflector rotor. It simulates the movement towards the reflector or away from it. Rotor cross connections are well defined. Subroutines to test the encryption and decryption are included. Clear rotor advancement routines. Error checking subs as well. No plugboard. [SASS]
Clarence Tyner Jr. has spent significant time since 1944 on German cipher production and reduction efforts. Starting with a Model D (circa 1920's) Tyner simulated the original Enigma with wartime enhancements (plugboard, expanded rotor sets, etc.) and then improved it while staying within the original concepts of the original machine (keyboard input, data path through a plugboard, rotating rotors, reflecting rotors, and output display. Presented in detail later in this lecture.
David Kahn in his books "Seizing Enigma", "Codebreakers", "Kahn on Codes" and "Hitlers Spies" presents the various people and organizations surrounding Enigma. Also the British Air Scientific Institute, chap 6 describes the relevance of each organization in the cracking of Enigma. [ASIR] [KAH1] [KAH2] [KAHN]
A simulation of an enhanced Enigma Cipher Machine on a standard personal computer
ABSTRACT: An exploration into the possibilities of what can be done with the operating methods of the Enigma on the personal computer. The same concept of employing keyboard input, a plugboard, rotors (both normal and reflecting), Uhr box and visual output are used, but are expanded by using 100-position rotors that intermittently rotate a prime amount after each input, allowing the number of rotors to vary from 1 to 12, in front or backwards orientation, top permit any keyboard character (including spaces) to be encrypted, and to simultaneously display cipher and clear text for editing. A rotating Character Set converts single-character input into 2-digit numbers for processing and superencipherment of numeric output into alpha bigrams is possible. Regular rotors, Reversing rotors, Character Sets and Superencipherment Tables are provided in sets of 100 for extensive variety. Visual monitor display and paper printout are employed and other controls are provided. It is a "what if" speculation that shows what could have been possible if the technology had been available.
KEYWORDS: Enigma, prime numbers, rotors, intermittent rotation, superencipherment, personal computer, QBasic, interval method, character set, random numbers, checksum, plugboard, orientation, internal settings, external settings.
Everyone is familiar with the Enigma Cipher Machine and the way it operates.
However, the more you learn about it and read about the cryptanalysis that overcame it in World War II, the more you wonder if it could be improved without becoming impossibly complicated. The personal computer provides a means to improve the concepts that made the original Enigma work, and it can make it work much better.
This project started as a simulation of the original Enigma. The pathway of the electric circuit caused by pressing a key is easy to understand. It goes from the keyboard through the plugboard to the rotors, is reflected from the reversing rotor, back through the rotors, through the plugboard and finally to a lamp that lights under a round window with an alphabet on it. At least one rotor will rotate during the pressing of the key and the pathway through the rotors will change from what it was previously. The internal wiring of the rotors is random and the cumulative circuit offset combinations produce an extensive number of substitution alphabets. The plugboard adds to this, as did the Uhr box.
Aside from administrative and operator errors, the weaknesses of the enigma were as follows:
Creation of rotors presented a challenge in establishing the internal wiring and in making a set from which to choose three. Edward H. Hebern used the Interval Method of wiring his rotors, so it was decided to use that approach. For those who are not familiar with it, it involves determining the positional difference (interval) between points connected on opposite faces of the rotor. For a 26 (A - Z) position rotor, the intervals range from 0 to 25, with each interval being used only once. But the geometry of the problem prevents one interval from being used and requires one interval to be used twice. All intervals are measured in the same direction. For example, a connection from point A on one face to point C on the other has an interval of 2 (assuming opposite positions are identified with the same letter).
I don't know how Mr. Hebern did it, but it is a job perfectly suited for a computer. At any rate, "wiring" a rotor using the Interval Method can be very tedious because it involves a lot of trial and error if done manually (or, as it turned out, by computer). It would be interesting to know if there is a simple algorithm. It is supposed to produce a more secure encryption. After trying to do it manually (by diagramming on paper), programs were written to do it for both regular and reversing rotors. The programs also produce a file on a floppy disk to simulate a set of rotors and print the results for record purposes. Each rotor had to be unique from all others so use of random numbers was involved.
The plugboard was programmed so that it was possible to enter the 2-point (from - to) sets that were to be connected. Multiple sets could be created, just as it is possible to have multiple cable connections on a mechanical Enigma. A file of plugboards is not needed because the variance within fixed fields is derived from the connections, and to allow numbers of connections to be varied. It was necessary though to provide for editing to insure that each position was used only once (as in real life).
At this point, the idea of expanding the Enigma came into being in the form of introducing variability between the keyboard and the plugboard such as the Uhr Box does. It was decided to make the Enigma process the data in numerical form and expand it from a 26 to a 100 character format. This numerical format (00 -99) has the disadvantage of doubling the length of a message, but it has certain advantages. In addition to handling alphabetic letters, it can also:
This format required a method of converting input into 2-digit form. It was done by creating what are called "Character Sets". These are randomly organized sets of 100 characters (upper and lowercase) that appear on the keyboard. The entire 100 positions are not used and the unused are filled with a seldom-used accent mark. One hundred sets are available in a file on floppy disk. The sets are used in both encryption and decryption to convert from and back to cleartext.
Using 100 as a common feature, brought into use the digits 00 - 99 to identify rotors, sets, tables and plugboard positions. Sets of these components have 100 of each ("00" means "100").
The next feature was to provide for the unique rotation or non-rotation (movement of each rotor is randomly intermittent) of each regular and the reversing rotor after each input. The Character Set also rotates so that doubles (like "oo" in book) are converted differently. Rotation is by a prime amount to 100 (2 and 5 are not used). Editing prevents using other numbers. An additional feature was to provide a Rotor Display similar to the windows on the Enigma. This is primarily informational but has proven to be helpful in de-bugging the program.....and it does provide a sense of rotor movement.
Another idea was borrowed from Mr. Hebern. That was the ability to "insert" rotors into the machine either forwards or backwards which doubles the number of rotors in a given set. It was also possible to provide for a variable number of rotors. An arbitrary limit of 12 was chosen but it would be possible to have more (though that might be considered overkill). The important thing here is that it would be possible to employ from 1 to 12 rotors (from a set of 100), depending on the security desired. The rotor display automatically adjusts to the selected number.
The next feature that was added was the ability to optionally superencipher the resulting numeric ciphertext. This involves replacing a 2-digit numeric cipher with a 2-character alphabetic bigram (e.g., 36 to HK). It also permits each numeric cipher to be represented by one of 6 or 7 bigrams (e.g., 36 could be HK, UM, RY, AU, ZM or BI). The 7th bigram appears only for selected numerics because the 676 (26 x 26) possible bigrams are evenly distributed amongst the 100 numerics. In addition, the use of a given bigram in a set for each numeric is incremented sequentially so using this example, the numeric "36" would be converted to HK the first time it appears, to UM the second time, etc. The first selection can start at any of the first 6 positions and it cycles around to position 1 when position 6 or 7 is used. A SuperEnciphering Table (Figure 18) accomplishes this and there is a matching SuperDeciphering Table (Figure 19) to reverse it.
Text input requires no use of the <enter> key and the computer buffer handles rapid input so that the entry of clear or cipher text is faster than that of the original Enigma. Input is displayed on the monitor and the resulting cipher/clear text is displayed immediately below so that it is possible to visually check it. If an error occurs, a simple procedure allows you to correct it without having to re-type everything. A screenful of data consists of 6 sets of double lines (one input, one output) double spaced with the sets separated by a dotted line for clarity. There are 27 inputs per line for a total of 162. When the 159th - 161st are entered, a beep sounds to alert you to the approaching end of a screen. This allows you to make a final check of the input for errors (and easily correct them) before entering the 162nd which triggers printing that screenful to paper. During the printing you can start entering the next screenful. A limit of 1943 inputs (12 screenfuls less 1) was arbitrarily chosen for demonstration purposes (more would be possible, depending on memory available). This limit can be easily set to a shorter value to control message length to make cryptanalysis more difficult.
Printing is considered essential for the purpose of having a record of what was sent and how it was encrypted or decrypted (e.g., was the cleartext entered correctly and was the machine correctly set ?). It also eliminates the need for a second person to transcribe the output. Attached are four exhibits that are examples of the printouts that can be produced: Exhibit A : Encryption into numeric form Exhibit B : Decryption of Exhibit A Exhibit C : Encryption in Superenciphered Form Exhibit D : Decryption of Exhibit C
Each exhibit is divided into the following parts:
However, only non-superenciphered (numeric ciphertext) messages have the following additional data provided:
The purpose of providing column and row totals is to be able to locate transmission garbles. They would be sent only if requested. Variances in any given column and row would locate the error by intersection.
This completes the printing.
Next displayed on the monitor is an option to re-use the Internal Control Settings for another message (it was assumed that these would remain in effect for a period of time as was the case for the Enigma). If this is not selected, the program ends.
The Enigma 95 is a program written in Microsoft QBasic. This was done so that it could be run on any standard MS DOS computer using MS DOS 5 or higher (QBasic is bundled with MS DOS) thereby eliminating the need for a specialized computer. It fits onto a 3.5 inch floppy disc, together with the necessary data files that constitute the Regular Rotors Set, Reversing Rotors Set, Character Sets and Superencipherment Tables. It is possible to also have on the same disk, the programs that create these files and the necessary documentation (.DOC) text files for each one. This makes the Enigma 95 very portable, very inexpensive and very easy to replicate.
Any computer that will run MS DOS QBasic is suitable for the Enigma 95. A color monitor is preferred but not essential. A printer is very useful, but could be eliminated if one is willing to copy output manually from the monitor screen (as the original Enigma required).
There is provided a program that produces a graphic representation of the circuit path through the Enigma 95 and a program to produce pseudo-random numbers to use in programs that produce the rotor disks. Also included are programs to analyze the Enigma 95.
The following is a run-through of the operating procedure, with the appropriate illustrations of the monitor screen at each meaningful step.
SOI : ENTER THE NUMBER OF PLUGBOARD CONNECTIONS TO SET : 21
SET 1 : 1735 SET 11 : 2653 SET 21 :
SET 2 : 2356 SET 12 : 4899
SET 3 : 4581 SET 13 : 6250
SET 4 : 9852 SET 14 : 4069
SET 5 : 3377 SET 15 : 3180
SET 6 : 5544 SET 16 : 9402
SET 7 : 6612 SET 17 : 8437
SET 8 : 5987 SET 18 : 9307
SET 9 : 3254 SET 19 : 8843
SET 10 : 6791 SET 20 : 8514
Plugboard Positions not yet selected
01 03 04 05 06 08 09 10 11 13 15 16 18 19 20
21 22 24 25 27 28 29 30 34 36 38 39
41 42 46 47 49 51 57 58 60
61 63 64 65 68 70 71 72 73 74 75 76 78 79
82 83 86 89 90 92 95 96 97 00
12 ROTORS ARE TO BE SELECTED FROM THE S.O.I.
Select Rotor ( 1 to 100 ) and Orientation ( 1 or 2 ) IN THE SAME ENTRY
For example : < RO > or < RRO > or < RRRO >
< 71 > < 232 > < 1001 >
ROTOR ORIENTATION
Position No. 1 32 1 - Forward
Position No. 2 49 2 - Backward
Position No. 3 42 1 - Forward
Position No. 4 98 1 - Forward
Position No. 5 63 2 - Backward
Position No. 6 94 2 - Backward
Position No. 7 62 1 - Forward
Position No. 9 4 1 - Forward
Position No. 10 33 2 - Backward
Position No. 11 25 1 - Forward
Position No. 12 11 1 - Forward
ENTER REVERSING ROTOR NUMBER (1 TO 100): 53
(See the current S.O.I. for the values to use)
SET ROTATIONAL SHIFT VALUES FOR EACH ROTOR POSITION
USING THE FOLLOWING PRIME NUMBERS (EACH ONLY ONCE)
0,1,3,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
FOR ROTOR POSITION 1 : 07
FOR ROTOR POSITION 2 : 29
FOR ROTOR POSITION 3 : 01
FOR ROTOR POSITION 4 : 71
FOR ROTOR POSITION 5 : 17
FOR ROTOR POSITION 6 : 13
FOR ROTOR POSITION 7 : 11
FOR ROTOR POSITION 8 : 47
FOR ROTOR POSITION 9 : 03
FOR ROTOR POSITION 10 : 61
FOR ROTOR POSITION 11 : 23
FOR ROTOR POSITION 12 : 19
FOR REVERSING ROTOR : 31
( See S.O.I. )
ENTER CHARACTER SET NUMBER : 44
( See the current S.O.I. for the values to use )
SET ROTATIONAL SHIFT VALUE FOR THE CHARACTER SET
USING ONE OF THE FOLLOWING PRIME NUMBERS NOT USED FOR THE ROTORS
0,1,3,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
ROTATIONAL VALUE : 89
Internal Checksum = 60354
( See your list )
SET INITIAL ROTOR SETTINGS ( 1 TO 100 )
ROTOR 1 : 15
ROTOR 2 : 22
ROTOR 3 : 09
ROTOR 4 : 41
ROTOR 5 : 87
ROTOR 6 : 36
ROTOR 7 : 08
ROTOR 8 : 01
ROTOR 9 : 57
ROTOR 10 : 91
ROTOR 11 : 03
ROTOR 12 : 49
REVERSING ROTOR : 77
( See your list )
ENTER SUPERENCIPHERMENT TABLE NUMBER : 35
SET INITIAL COUNT ( 1 TO 6 ) : 4
ENTERNAL CHECKSUM = 99
To stop operations and :
1. Print text : Press \
2. Correct input : Press Shift & |
Press ENTER key to start - or - to make the next screen
START ENTERING MESSAGE Rotor Display 15 22 09 41 87 36 08 01 57 91 03 49 77
F O U R S C O R E A N D S E V E N Y E A R S A
FM VQ ND OU UF OF EN MX FE ZR DO YD BS YW VO RB BB HC QI UR ZD BW BZ TQ EO WD RF
--------------------------------------------------------------------------------
G O , O U R F
FW DP JA XW QN ZX OT DA WX
Enter '\' to end message. Press 'Shift |' to make correction. Input No. 36
Rotor Display 41 73 31 61 44 79 62 00 11 72 25 67 04
Below is a listing ( in columns 4 through 16 ) of the 13 Rotor Display windows of the above 36 inputs, to show the intermittent movement of the rotors. See Figures 11 and 12.
When numbers are repeated in a rotor column, this indicates that the rotor did not rotate after that specific input. When rotation does occur, it rotates the amount previously set for that rotor. This illustration is not part of the regular operating display. It was used only as a test and to illustrate intermittent movement.
Start 15 22 09 41 87 36 08 01 57 91 03 49 77
-- -- -- -- -- -- -- -- -- -- -- -- --
1 F 87 15 51 10 12 87 49 19 48 60 52 03 68 08 52 FM
2 O 26 15 51 11 83 87 49 19 48 63 52 03 68 39 18 VQ
3 U 64 15 51 12 54 04 62 19 48 66 52 03 68 70 06 ND
4 R 57 15 51 13 54 21 62 30 48 69 13 26 87 01 15 OU
5 S 79 22 80 14 25 21 62 30 95 69 13 26 06 32 03 UF
6 C 10 29 09 15 96 21 75 41 42 69 74 49 06 32 64 OF
7 O 81 29 09 15 96 38 75 41 42 69 35 49 06 32 69 EN
8 R 01 36 38 15 67 38 75 52 42 69 35 72 25 32 03 MX
9 E 65 36 38 15 38 38 75 63 42 72 96 72 44 32 92 FE
10 06 43 67 16 09 55 88 74 89 75 96 72 63 32 37 ZR
11 A 20 50 67 16 80 72 88 74 89 78 57 72 82 63 53 DO
12 N 12 50 96 16 80 89 88 85 89 81 18 95 01 94 34 YD
13 D 61 57 25 17 80 89 88 85 89 81 79 18 01 94 46 BS
14 50 57 25 18 51 06 88 96 89 81 79 18 20 94 93 YW
15 S 89 64 25 18 51 06 01 96 36 84 79 18 39 25 42 VO
16 E 42 64 54 19 22 23 14 96 36 84 40 18 39 25 65 RB
17 V 71 64 83 20 22 23 27 96 36 84 01 41 58 25 13 BB
18 E 64 64 83 21 93 40 40 96 83 84 62 64 77 56 66 HC
19 N 89 64 83 21 93 57 40 96 83 87 62 87 77 56 53 QI
20 16 71 12 22 64 57 53 07 30 87 62 10 96 56 20 UR
21 Y 84 71 12 22 64 74 53 07 30 90 23 10 15 56 60 ZD
22 E 8 78 12 22 35 91 66 07 77 93 23 10 34 56 93 BW
23 A 52 78 12 23 06 08 66 07 77 96 84 10 53 56 80 BZ
24 R 77 85 41 24 06 25 66 07 24 96 84 10 72 87 39 TQ
25 S 99 92 41 25 06 42 66 18 71 96 84 10 91 18 55 EO
26 82 92 70 25 06 59 66 29 18 96 84 33 10 18 20 WD
27 A 96 92 99 25 77 59 66 29 18 96 45 33 10 49 92 RF
28 G 65 99 99 26 77 76 66 29 65 99 06 33 29 49 01 FW
29 O 23 99 28 26 77 76 66 40 12 02 67 33 48 49 01 DP
30 ' 36 06 57 27 77 93 66 40 59 05 28 56 67 80 65 JA
31 37 13 86 27 48 10 66 40 59 05 89 79 67 11 59 XW
32 O 56 20 15 28 19 10 66 40 06 08 50 79 67 11 18 QN
33 U 94 27 15 28 19 27 66 40 06 08 50 02 67 11 38 ZX
34 R 87 34 44 29 90 27 79 40 53 11 50 02 67 42 34 OT
35 81 34 44 30 61 27 79 51 53 11 11 02 67 73 28 DA
36 F 72 41 73 31 61 44 79 62 00 11 72 25 67 04 17 WX
Figure 12 is the same as Figure 11 except that the repeated numbers in each column have been replaced by a [] to indicate no movement to emphasize the irregular movement of each rotor.
Rotor No. 01 02 03 04 05 06 07 08 09 10 11 12 RR
Rotation 7 29 1 71 17 13 11 47 3 61 23 19 31
Start Posn 15 22 09 41 87 36 08 01 57 91 03 49 77
-- -- -- -- -- -- -- -- -- -- -- -- --
1 F 87 [] 51 10 12 [] 49 19 48 60 52 [] 68 08 52 FM
2 O 26 [] [] 11 83 [] [] [] [] 63 [] [] [] 39 18 VQ
3 U 64 [] [] 12 54 04 62 [] [] 66 [] [] [] 70 06 ND
4 R 57 [] [] 13 [] 21 [] 30 [] 69 13 26 87 01 15 OU
5 S 79 22 80 14 25 [] [] [] 95 [] [] [] 06 32 03 UF
6 C 10 29 09 15 96 [] 75 41 42 [] 74 49 [] [] 64 OF
7 O 81 [] [] [] [] 38 [] [] [] [] 35 [] [] [] 69 EN
8 R 01 36 38 [] 67 [] [] 52 [] [] [] 72 25 [] 03 MX
9 E 65 [] [] [] 38 [] [] 63 [] 72 96 [] 44 [] 92 FE
10 06 43 67 16 09 55 88 74 89 75 [] [] 63 [] 37 ZR
11 A 20 50 [] [] 80 72 [] [] [] 78 57 [] 82 63 53 DO
12 N 12 [] 96 [] [] 89 [] 85 [] 81 18 95 01 94 34 YD
13 D 61 57 25 17 [] [] [] [] [] [] 79 18 [] [] 46 BS
14 50 [] [] 18 51 06 [] 96 [] [] [] [] 20 [] 93 YW
15 S 89 64 [] [] [] [] 01 [] 36 84 [] [] 39 25 42 VO
16 E 42 [] 54 19 22 23 14 [] [] [] 40 [] [] [] 65 RB
17 V 71 [] 83 20 [] [] 27 [] [] [] 01 41 58 [] 13 BB
18 E 64 [] [] 21 93 40 40 [] 83 [] 62 64 77 56 66 HC
19 N 89 [] [] [] [] 57 [] [] [] 87 [] 87 [] [] 53 QI
20 16 71 12 22 64 [] 53 07 30 [] [] 10 96 [] 20 UR
21 Y 84 [] [] [] [] 74 [] [] [] 90 23 [] 15 [] 60 ZD
22 E 8 78 [] [] 35 91 66 [] 77 93 [] [] 34 [] 93 BW
23 A 52 [] [] 23 06 08 [] [] [] 96 84 [] 53 [] 80 BZ
24 R 77 85 41 24 [] 25 [] [] 24 [] [] [] 72 87 39 TQ
25 S 99 92 [] 25 [] 42 [] 18 71 [] [] [] 91 18 55 EO
26 82 [] 70 [] [] 59 [] 29 18 [] [] 33 10 [] 20 WD
27 A 96 [] 99 [] 77 [] [] [] [] [] 45 [] [] 49 92 RF
28 G 65 99 [] 26 [] 76 [] [] 65 99 06 [] 29 [] 01 FW
29 O 23 [] 28 [] [] [] [] 40 12 02 67 [] 48 [] 01 DP
30 ' 36 06 57 27 [] 93 [] [] 59 05 28 56 67 80 65 JA
31 37 13 86 [] 48 10 [] [] [] [] 89 79 [] 11 59 XW
32 O 56 20 15 28 19 [] [] [] 06 08 50 [] [] [] 18 QN
33 U 94 27 [] [] [] 27 [] [] [] [] [] 02 [] [] 38 ZX
34 R 87 34 44 29 90 [] 79 [] 53 11 [] [] [] 42 34 OT
35 81 [] [] 30 61 [] [] 51 [] [] 11 [] [] 73 28 DA
36 F 72 41 73 31 [] 44 [] 62 00 [] 72 25 [] 04 17 WX
[] = no movement (repeated numbers)
F O U R S C O R E A N D S E V E N Y E A R S A
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
FM VQ ND OU UF OF EN MX FE ZR DO YD BS YW VO RB BB HC QI UR ZD BW BZ TQ EO WD RF
--------------------------------------------------------------------------------
G O , O U R F U R F A Y T H E R S
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
FW DP JA XW QN ZX OT DA WX MG LY QW KM WQ EL WM DG XB HY
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
Enter '\' to end message. Press 'Shift |' to make correction. Input No. 46
ENTER THE (FIRST) POSITION TO CORRECT 37
F O U R S C O R E A N D S E V E N Y E A R S A
FM VQ ND OU UF OF EN MX FE ZR DO YD BS YW VO RB BB HC QI UR ZD BW BZ TQ EO WD RF
--------------------------------------------------------------------------------
G O , O U R F
FW DP JA XW QN ZX OT DA WX
CONTINUE ENTERING MESSAGE
Enter '\' to end message. Press 'Shift |' to make correction. Input No. 36
Rotor Display 41 73 31 61 44 79 62 00 11 72 25 67 04
If Decipherment (2) is selected, the process is essentially the same (entering control settings, etc.) except the input is ciphertext and the output is cleartext. Message Control Data is available but message analysis is not.
The term "data files" encompasses the files that constitute the 100 each groupings of Regular Rotors, Reversing Rotors, Character Sets and Superencipherment Tables that are used by Enigma 95. They have been described earlier and now they are presented for inspection. They were used in the examples discussed earlier.
A From 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
B To 58 28 56 40 80 78 05 92 49 31 14 93 30 77 62 64 79 25 13 22 41 65 29 43 39
A From 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
B To 51 19 73 02 01 42 83 94 08 69 04 07 66 57 84 26 54 44 09 68 85 52 34 03 46
A From 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
B To 27 10 17 70 37 23 06 38 59 97 91 71 95 88 96 32 45 18 82 53 61 99 81 12 16
A From 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
B To 36 60 24 48 67 33 11 72 63 76 21 75 87 86 00 50 47 35 98 90 89 74 20 55 15
The "To" position indicates the position on the rotor's opposite face to achieve the offset effect. (For example, position 1 on face A is connected to position 58 on face B)
From 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
To 48 65 34 39 86 95 82 51 12 71 17 09 90 26 43 42 11 91 67 60 59 89 87 25 24
From 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
To 14 83 78 99 72 77 61 35 03 33 53 57 97 04 50 96 16 15 93 49 62 54 01 45 40
From 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
To 08 70 36 47 63 69 37 73 21 20 32 46 55 85 02 00 19 92 56 52 10 30 58 79 84
From 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
To 98 31 28 74 94 88 07 27 75 64 05 23 81 22 13 18 68 44 80 06 41 38 76 29 66
The "To" position indicates the connecting position on the same face to achieve the offset effect. (For example, Positions 1 and 48 are connected, 2 and 65 are connected, etc.)
Posn 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Char # q . c j t + 9 A * 4 f r O ~ , { 8 d
Posn 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Char y o 5 R n h w X D p g M ~ 3 S e m l T -
Posn 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Char [ U 1 & @ / z ~ ~ Q a = P ! C 7 ~ 0 K u
Posn 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Char B ' ~ Y s b < G W v ? I ~ H ( > E : ~ x
Posn 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Char } L J ~ k Z F ~ _ ) N ~ 2 ; V i 6 ] % $
"Posn" is the position value the Character is converted to when it is input. The characters "rotate" afterwards so that character position values change. This figure shows the set before the first input.
Letter "A" = 10 initially. After the first input, "A" = "99", then "88" (For a rotation values of 89), etc.
01 02 03 04 05 06 07 01 02 03 04 05 06 07
-- -- -- -- -- -- -- -- -- -- -- -- -- --
01 HO HI BV FW DP PX BK 51 AO YC JI VC CT ET IX
02 EF DS SJ QJ MK BH GS 52 DD NO NL FM XA EM
03 BG HD EP UF MX YB WV 53 NT PJ CJ DO QI AN FC
04 JG OO TI QW UJ IQ 54 TD VR TV QG EE JU RK
05 VW ZL BX LD KF TL CM 55 QD GE MD EO OX JW IH
06 DQ XZ CK ND AM MH LE 56 XP BL UN FQ KR MV
07 WO FH PT FY WN GN SI 57 OL CH SU NI GX HZ DU
08 UW FN RA YU YR ZZ 58 MS MJ FA EW TY YX WJ
09 WB DZ OJ LU QL WZ SK 59 VA TO OI XW ZQ ZA WG
10 XG KL OB RE QP UQ JH 60 RJ IK YH ZD SR HJ
11 FU WI QS MP UX ZH IF 61 M0 AA NZ AP IV JB VS
12 KP OA SF IG SO FS 62 DE LF FO UP EV CB GB
13 CY BJ TJ BB KQ WE PA 63 GH UV IM OE XL ST QF
14 NK BQ HA HU FG XS CN 64 GF TX NS OF NU VY
15 VU FI UB OU YV GT PH 65 SG KC MN RB JA KE TE
16 UH PI RU LC HB NJ 66 VX CW QO HC BM SC ES
17 LQ NM UD WX WM EH PQ 67 VJ PF QQ QR LS XI BE
18 CF HM DY VQ QN HW AS 68 LJ LV ZT LY DM WC
19 JV CX ED XC OG ID KS 69 JN YG XV EN FL AB TT
20 HH AX AJ UR WD MY 70 VP AT GL PO KI IY WK
21 YY KA NF AI VT ZO TM 71 ME UU SX XN RN HE KD
22 ER DX JF QK TF MA FT 72 YI QA GA EL KO QH
23 HF OH DC VM VD VG RR 73 LX CS FK PE JO YN VK
24 JX FZ SD UZ DN FX 74 WU LT DR ZC IE BC XK
25 RG PG HX RM IJ RQ LZ 75 XR US KG EQ JZ QT MB
26 KX YA GO XQ OM FD NC 76 CP IU PK ZN IZ AW
27 IA BP PZ II KH PP IO 77 GU QB EY ZV LM XF TG
28 MM UL IT DA GQ IB 78 EC SS VH NP PS ZI ON
29 IW CU IC GI KY BR CL 79 MR TU NW AY QM ZY BY
30 KJ PL JE DJ RT XU PU 80 QC OD RW BZ CZ SW
31 CE JK WS UT AD AK JJ 81 ZP SA XO YZ NG EU QE
32 UK XJ PR JY XY SQ 82 GJ ZW RX RH EK AC JC
33 WL KV LG YM NR BA EB 83 TA OS KZ CQ UA WP AV
34 IP CR LB YD OT XB GC 84 TK OW AH UY HP DW
35 QU YP JT VB KT AR VI 85 FR WW PY KM WQ MQ LN
36 HK UM RY AU ZM BI 86 SY GZ TR RC BO UC EI
37 MZ PD YK ZR UE JL NA 87 AQ DV RD YL RO PM KK
38 OC TZ DF ZX CC NB IS 88 KU CA CQ MG QV YS
39 BF XE NH TQ HN SE JM 89 NV BU GK EJ GR LW MW
40 SL LI WF NQ NN XT 90 PB OR TB RV VN CV VL
41 MF MC WH OZ VE ZG AG 91 DL TN DB LP YO LH LL
42 HG GD GG VO OQ UO HS 92 QZ DI XM FE RF WA
43 HL SM VF SZ PW HV RL 93 YQ MI NX YW BW PN GY
44 KW JQ SN ZB BD VZ 94 LO JS GV YE ML YT FP
45 WY EZ SB AZ GW ZS ZF 95 OV JD DT DG QX PV JR
46 OP NE GP BS RS CO HQ 96 NY EA MU AL FJ CD
47 LK YJ IN ZJ XH CI PC 97 OY KB ZU HY GM QY TW
48 RI WT FF RP SH EX 98 FB TS HR UG TH BN IL
49 MT XD ZE WR AF DH RZ 99 EG YF IR LR SP TC LA
50 DK ZK UI JP VV HT TP 00 AE KN SV FV XX BT OK
The left column is the numeric cipher. The other 7 columns are the possible super encipherments. 36 can be converted to HK , UM , RY , AU , ZM , BI in turn, depending on where the counter starts. A blank causes the counter to be reset to 1.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
A 61 69 82 31 00 49 41 84 21 20 31 96 06 53 51 61 87 35 18 70 36 83 76 20 79 45 A
B 33 13 74 44 67 39 03 02 36 13 01 56 66 98 86 27 14 29 46 00 89 01 93 05 79 80 B
C 88 62 38 96 31 18 88 57 47 53 06 29 05 14 46 76 83 34 73 51 29 90 66 19 13 80 C
D 28 91 23 52 62 38 95 49 92 30 50 91 68 24 53 01 06 74 02 95 57 87 84 22 18 09 D
E 96 33 78 19 54 02 99 17 86 89 82 72 52 69 55 03 75 22 66 51 81 62 58 48 77 45 E
F 58 98 53 26 92 48 14 07 15 96 73 69 52 08 62 94 56 85 12 22 11 00 01 24 07 24 F
G 72 62 34 42 55 64 42 63 29 82 89 70 97 07 26 46 28 89 02 15 77 94 45 57 93 86 G
H 14 16 66 03 71 23 42 20 01 60 36 43 18 39 01 84 46 98 42 50 14 43 18 25 97 57 H
I 27 28 29 19 74 11 12 55 27 25 60 98 63 47 27 34 04 99 38 28 76 61 29 51 70 76 I
J 65 61 82 95 30 22 04 10 51 31 31 37 39 69 73 50 44 95 94 35 54 19 55 24 32 75 J
K 21 97 65 71 65 05 75 27 70 30 87 10 85 00 72 12 13 56 19 35 88 33 44 26 29 83 K
L 99 34 16 05 06 62 33 91 40 68 47 91 77 85 94 91 17 99 67 74 09 68 89 73 68 25 L
M 22 75 41 55 71 41 88 06 93 58 02 94 28 65 61 11 85 79 58 49 96 56 89 03 20 37 M
N 37 38 26 06 46 21 81 39 57 16 14 52 17 40 52 78 40 33 64 53 64 89 79 93 96 61 N
O 12 10 38 80 63 64 19 23 59 09 00 57 26 78 04 46 42 90 83 34 15 95 84 55 97 41 O
P 13 90 47 37 73 67 25 15 16 53 76 30 87 93 70 27 17 32 78 07 30 95 43 01 85 27 P
Q 72 77 80 55 81 63 54 72 53 02 22 09 79 18 66 10 67 67 11 75 35 88 04 95 97 92 Q
R 08 65 86 87 10 92 25 82 48 60 54 43 25 71 87 48 25 23 46 30 16 90 80 82 36 49 R
S 81 45 66 24 39 12 65 48 07 02 09 40 43 44 12 99 32 60 78 63 57 00 80 71 86 43 S
T 83 90 99 54 65 22 77 98 04 13 84 05 21 91 59 50 39 86 98 69 79 54 97 64 58 38 T
U 83 15 86 17 37 03 98 16 50 04 32 28 36 56 42 62 10 20 75 31 71 63 08 11 84 24 U
V 59 35 51 23 41 43 23 78 35 67 73 90 23 90 42 70 18 54 61 21 15 50 05 66 64 44 V
W 92 09 68 20 13 40 59 41 11 58 70 33 17 07 07 83 85 49 31 48 74 03 85 17 45 09 W
X 52 34 19 49 39 77 10 47 67 32 74 63 92 71 81 56 26 75 14 40 30 69 59 00 32 06 X
Y 26 03 51 34 94 99 69 60 72 47 37 87 33 73 91 35 93 08 88 94 08 15 93 58 21 81 Y
Z 59 44 74 60 49 45 41 11 78 47 50 05 36 76 21 81 59 37 45 68 97 77 82 38 79 08 Z
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
First letter at left. Second letter at top. Numeric cipher at intersection (HK, UM, RY, etc. = 36)
The Enigma rotor operation principle has probably been long superseded by much more sophisticated methods of encryption that are faster and more secure, but it will remain interesting for a long time to amateurs such as myself. It is something that is understandable and before the advent of the computer, resulted in some beautiful machines.
The Enigma 95 is not one now, but I believe that it could be "translated" into a handsome electro-mechanical device. It is something to dream about.
The only absolutely secure cipher is the One Time Pad and it has the disadvantage of requiring copies to be destroyed after one use. The Enigma 95 is an attempt to approach this holy Grail of cryptography by providing an almost unlimited supply of enhanced (both in size and method of rotation) Rotors, Character Sets, Superencipherment Tables and a lengthened Plugboard. While I cannot prove it mathematically or otherwise, I suspect that the ability to use almost unlimited expendable sets of all possible combinations of these for very limited periods (throw away feature) such as is possible in the Enigma 95, would strengthen any cipher considerably by preventing the accumulation of sufficient material on which to base an in-depth cryptanalysis. Any comments would appreciated.
The disk accompanying this article contains ENIGMA 95 and the necessary supporting files needed in its operation. Also included are program files to create them and to analyze and test its operation. DOC files are included for each file to explain them. Start with CRYPTO.1ST, then read ENIGMA95.DOC and study ENIGMA95.FLO to gain an understanding of Enigma 95 before running it. The list of files is:
CRYPTO.1ST : An outline of the files that constitute Enigma 95 system
ENIGMA95.DOC : Detailed documentation pertaining to ENIGMA95
ENIGMA95.FLO : A flowchart of the ENIGMA95 operation
ENIGMA95.BAS * : ENIGMA95
ROTORS.DAT : Set of 100 Regular Rotors
REVROTRS.DAT : Set of 100 Reversing Rotors
CHARS.DAT : Set of 100 Character Sets
CODE.DAT : Set of 100 Super Encipherment Tables
CRYPTO05.BAS * : Random Numbers Generator for CRYPTO27 & CRYPTO34
CRYPTO27.BAS * : Regular Rotor Creation using the Interval Method
CRYPTO28.BAS * : Super Encipherment Tables Creation
CRYPTO30.BAS * : Character Set Creation
CRYPTO34.BAS * : Reversing Rotor Creation
CRYPTO43.BAS * : ENIGMA95 Cipher Machine Data Paths Demonstrator
CRYPTO45.BAS * : Rotors Matching Analysis
CRYPTO47.BAS * : Check of Rotor Files for Errors
CRYPTO48.BAS * : Analysis of Cleartext vs. Ciphertext
CRYPTO49.BAS * : Rotor Intermittent Movement Test
CRYPTO51.BAS : Plugboard Combinations
ENIGMA95.WRI : The article about Enigma 95. (Created using Windows 3.1 Write)
* = Has a matching .DOC file
The .1st , .DOC and .FLO files are DOS files
The .BAS and .DAT files are QBASIC or QUICKBASIC files
The .WRI file is a WINDOWS 3.1 Write file
ENCRYPTION 10-31-1995 16:36:57 Hours
---------------------------------------------------------------------------------
No. of PB Connections 21
Plugboard Connections (1735) (2356) (4581) (9852) (3377) (5544) (6612)
(5987) (3254) (6791) (2653) (4899) (6250) (4069)
(3180) (9402) (8437) (9307) (8843) (8514) (2176)
No. of Rotors 12
Rotors Sequence 32 49 42 98 63 94 62 60 04 33 25 11
Rotors Orientation 1 2 1 1 2 2 1 1 2 2 1 1
Reversing Rotor No. 53
Rotors Rotation Values 07 29 01 71 17 13 11 47 03 61 23 19
Rev Rotor Rotation Value 31
Character Set (CS) No. 44
CS Rotation Value 89 Internal Checksum 60354
---------------------------------------------------------------------------------
Rotors Initial Settings 15 22 09 41 87 36 08 01 57 91 03 49
Rev Rotor Initial Setting 77
External Checksum 64
---------------------------------------------------------------------------------
F O U R S C O R E A N D S E V E N Y E A R S A
52 18 06 15 03 64 69 03 92 37 53 34 46 93 42 65 13 66 53 20 60 93 80 39 55 20 92
---------------------------------------------------------------------------------
G O , O U R F O R E F A T H E R S B R O U G H T
01 01 65 59 18 38 34 28 17 43 63 98 60 64 41 31 11 13 56 20 34 65 57 72 73 95 10
---------------------------------------------------------------------------------
F O R T H U P O N T H I S C O N T I N E N T
53 19 21 23 57 21 59 32 96 45 50 23 79 29 01 92 30 12 30 42 04 58 82 66 86 40 28
---------------------------------------------------------------------------------
A N E W N A T I O N . 1 2 3 4 5 6 7 8 9 0 ( * )
27 86 23 88 28 11 26 30 91 76 90 06 96 83 85 74 48 64 96 82 80 53 00 59 25 74 73
---------------------------------------------------------------------------------
TOTAL INPUT CHARACTERS IS 108 HASH TOTAL OF CODE IS 02
COL CHECK TOTALS 33 24 15 85 06 34 88 93 96 01 56 61 81 69 69 62 02 55 35 64 78 69 19 36 39 29 03 TOTAL COLUMNS = 5202 ROW CHECK TOTALS 83 67 78 74 TOTAL ROWS = 5202
EXHIBIT A-2
================================= SEPARATE PAGE ================================
FOR TRANSMISSION AS MESSAGE No.
---------------------------------------------------------------------------------
15 22 09 41 87 36 08 01 57 91 03 49 77 64 10 31 95 16 36 57
---------------------------------------------------------------------------------
52 18 06 15 03 64 69 03 92 37 53 34 46 93 42 65 13 66 53 20 60 93 80 39 55 20 92
01 01 65 59 18 38 34 28 17 43 63 98 60 64 41 31 11 13 56 20 34 65 57 72 73 95 10
53 19 21 23 57 21 59 32 96 45 50 23 79 29 01 92 30 12 30 42 04 58 82 66 86 40 28
27 86 23 88 28 11 26 30 91 76 91 06 96 83 85 74 48 64 96 82 80 53 00 59 25 74 73
108 02
---------------------------------------------------------------------------------
Column and row totals. Do not transmit unless requested.
33 24 15 85 06 34 88 93 96 01 56 61 81 69 69 62 02 55 35 64 78 69 19 36 39 29 03
83 67 78 74
EXHIBIT A-3
INPUT FREQUENCY ANALYSIS
| Char Freq | Char Freq | Char Freq | Char Freq | Char Freq |
| ---- ---- | ---- ---- | ---- ---- | ---- ---- | ---- ---- |
| A 6 | U 4 | ; | k | ? |
| B 1 | V 1 | ' | l | ( 1 |
| C 2 | W 1 | = | m | ) 1 |
| D 1 | X | ! | n | { |
| E 8 | Y 1 | @ | o | } |
| F 4 | Z | # | p | < |
| G 2 | 0 1 | $ | q | > |
| H 4 | 1 1 | % | r | [ |
| I 3 | 2 1 | & | s | ] |
| J | 3 1 | * 1 | t | ~ |
| K | 4 1 | a | u | ~ |
| L | 5 1 | b | v | ~ |
| M | 6 1 | c | w | ~ |
| N 9 | 7 1 | d | x | ~ |
| O 10 | 8 1 | e | y | ~ |
| P 1 | 9 1 | f | z | ~ |
| Q | space 15 | g | _ | ~ |
| R 8 | . 1 | h | - | ~ |
| S 5 | , 1 | i | + | ~ |
| T 7 | : | j | / | ~ |
Total = 108
OUTPUT FREQUENCY ANALYSIS
Code Count Code Count Code Count Code Count Code Count
|---------------|----------------|----------------|----------------|----------------|
| 1 = 3 | 21 = 2 | 41 = 1 | 61 = | 81 = |
| 2 = | 22 = | 42 = 2 | 62 = | 82 = 2 |
| 3 = 2 | 23 = 3 | 43 = 1 | 63 = 1 | 83 = 1 |
| 4 = 1 | 24 = | 44 = | 64 = 3 | 84 = |
| 5 = | 25 = 1 | 45 = 1 | 65 = 3 | 85 = 1 |
| 6 = 2 | 26 = 1 | 46 = 1 | 66 = 2 | 86 = 2 |
| 7 = | 27 = 1 | 47 = | 67 = | 87 = |
| 8 = | 28 = 3 | 48 = 1 | 68 = | 88 = 1 |
| 9 = | 29 = 1 | 49 = | 69 = 1 | 89 = |
| 10 = 1 | 30 = 3 | 50 = 1 | 70 = | 90 = 1 |
| 11 = 2 | 31 = 1 | 51 = | 71 = | 91 = 1 |
| 12 = 1 | 32 = 1 | 52 = 1 | 72 = 1 | 92 = 3 |
| 13 = 2 | 33 = | 53 = 4 | 73 = 2 | 93 = 2 |
| 14 = | 34 = 3 | 54 = | 74 = 2 | 94 = |
| 15 = 1 | 35 = | 55 = 1 | 75 = | 95 = 1 |
| 16 = | 36 = | 56 = 1 | 76 = 1 | 96 = 3 |
| 17 = 1 | 37 = 1 | 57 = 2 | 77 = | 97 = |
| 18 = 2 | 38 = 1 | 58 = 1 | 78 = | 98 = 1 |
| 19 = 1 | 39 = 1 | 59 = 3 | 79 = 1 | 99 = |
| 20 = 3 | 40 = 1 | 60 = 2 | 80 = 2 | 00 = 1 |
Total = 108
EXHIBIT A-4
DECRYPTION 10-31-1995 17:00:58 Hours
---------------------------------------------------------------------------------
No. of PB Connections 21
Plugboard Connections (1735) (2356) (4581) (9852) (3377) (5544) (6612)
(5987) (3254) (6791) (2653) (4899) (6250) (4069)
(3180) (9402) (8437) (9307) (8843) (8514) (2176)
No. of Rotors 12
Rotors Sequence 32 49 42 98 63 94 62 60 04 33 25 11
Rotors Orientation 1 2 1 1 2 2 1 1 2 2 1 1
Reversing Rotor No. 53
Rotors Rotation Values 07 29 01 71 17 13 11 47 03 61 23 19
Rev Rotor Rotation Value 31
Character Set (CS) No. 44
CS Rotation Value 89 Internal Checksum 60354
---------------------------------------------------------------------------------
Rotors Initial Settings 15 22 09 41 87 36 08 01 57 91 03 49
Rev Rotor Initial Setting 77
External Checksum 64
---------------------------------------------------------------------------------
52 18 06 15 03 64 69 03 92 37 53 34 46 93 42 65 13 66 53 20 60 93 80 39 55 20 92
F O U R S C O R E A N D S E V E N Y E A R S A
---------------------------------------------------------------------------------
01 01 65 59 18 38 34 28 17 43 63 98 60 64 41 31 11 13 56 20 34 65 57 72 73 95 10
G O , O U R F O R E F A T H E R S B R O U G H T
---------------------------------------------------------------------------------
53 19 21 23 57 21 59 32 96 45 50 23 79 29 01 92 30 12 30 42 04 58 82 66 86 40 28
F O R T H U P O N T H I S C O N T I N E N T
---------------------------------------------------------------------------------
27 86 23 88 28 11 26 30 91 76 90 06 96 83 85 74 48 64 96 82 80 53 00 59 25 74 73
A N E W N A T I O N . 1 2 3 4 5 6 7 8 9 0 ( * )
---------------------------------------------------------------------------------
TOTAL INPUT CHARACTERS IS 108 HASH TOTAL OF CODE IS 02
EXHIBIT B-1
COL CHECK TOTALS
33 24 15 85 06 34 88 93 96 01 56 61 81 69 69 62 02 55 35 64 78 69 19 36 39 29 03
TOTAL COLUMNS = 5202
ROW CHECK TOTALS
83 67 78 74
TOTAL ROWS = 5202
EXHIBIT B-2
================================= SEPARATE PAGE ================================
Messsage No.--------------------From----------------------------------Date/Time
of Receipt
: :
: / :
: :
: / :
---------------------------------------------------------------------------------
----------
FOURSCORE AND SEVEN YEARS AGO, OUR FOREFATHERS BROUGHT FORTH UPON THIS CONTINENT
A NEW NAT
ION. 1234567890(*)
EX
HIBIT B-3
ENCRYPTION 10-31-1995 16:36:57 Hours
---------------------------------------------------------------------------------
No. of PB Connections 21
Plugboard Connections (1735) (2356) (4581) (9852) (3377) (5544) (6612)
(5987) (3254) (6791) (2653) (4899) (6250) (4069)
(3180) (9402) (8437) (9307) (8843) (8514) (2176)
No. of Rotors 12
Rotors Sequence 32 49 42 98 63 94 62 60 04 33 25 11
Rotors Orientation 1 2 1 1 2 2 1 1 2 2 1 1
Reversing Rotor No. 53
Rotors Rotation Values 07 29 01 71 17 13 11 47 03 61 23 19
Rev Rotor Rotation Value 31
Character Set (CS) No. 44
CS Rotation Value 89 Internal Checksum 60354
---------------------------------------------------------------------------------
Rotors Initial Settings 15 22 09 41 87 36 08 01 57 91 03 49
Rev Rotor Initial Setting 77
Super Encipher Table No. 35
External Checksum 99
---------------------------------------------------------------------------------
F O U R S C O R E A N D S E V E N Y E A R S A
FM VQ ND OU UF OF EN MX FE ZR DO YD BS YW VO RB BB HC QI UR ZD BW BZ TQ EO WD RF
---------------------------------------------------------------------------------
G O , O U R F O R E F A T H E R S B R O U G H T
FW DP JA XW QN ZX OT DA WX SZ OE UG SR NU OZ UT MP KQ FQ MY XB KE NI EL PE DG RE
---------------------------------------------------------------------------------
F O R T H U P O N T H I S C O N T I N E N T
AN XC AI VM GX VT ZQ JY AL AZ JP VD AY GI PX WA DJ IG RT OQ QW EW RH BM RC NQ GQ
---------------------------------------------------------------------------------
A N E W N A T I O N . 1 2 3 4 5 6 7 8 9 0 ( * )
II BO VG MG IB UX XQ XU LP ZN RV AM FJ CQ KM ZC RP VY CD EK CZ FC FV ZA RM IE JO
---------------------------------------------------------------------------------
TOTAL INPUT CHARACTERS IS 108
EXHIBIT C-1
FOR TRANSMISSION AS MESSAGE No.
---------------------------------------------------------------------------------
15 22 09 41 87 36 08 01 57 91 03 49 77 35 99 10 31 95 17 00 58
---------------------------------------------------------------------------------
FM VQ ND OU UF OF EN MX FE ZR DO YD BS YW VO RB BB HC QI UR ZD BW BZ TQ EO WD RF
FW DP JA XW QN ZX OT DA WX SZ OE UG SR NU OZ UT MP KQ FQ MY XB KE NI EL PE DG RE
AN XC AI VM GX VT ZQ JY AL AZ JP VD AY GI PX WA DJ IG RT OQ QW EW RH BM RC NQ GQ
II BO VG MG IB UX XQ XU LP ZN RV AM FJ CQ KM ZC RP VY CD EK CZ FC FV ZA RM IE JO
108
EXHIBIT C-2
INPUT FREQUENCY ANALYSIS
| Char Freq | Char Freq | Char Freq | Char Freq | Char Freq |
| ---- ---- | ---- ---- | ---- ---- | ---- ---- | ---- ---- |
| A 6 | U 4 | ; | k | ? |
| B 1 | V 1 | ' | l | ( 1 |
| C 2 | W 1 | = | m | ) 1 |
| D 1 | X | ! | n | { |
| E 8 | Y 1 | @ | o | } |
| F 4 | Z | # | p | < |
| G 2 | 0 1 | $ | q | > |
| H 4 | 1 1 | % | r | [ |
| I 3 | 2 1 | & | s | ] |
| J | 3 1 | * 1 | t | ~ |
| K | 4 1 | a | u | ~ |
| L | 5 1 | b | v | ~ |
| M | 6 1 | c | w | ~ |
| N 9 | 7 1 | d | x | ~ |
| O 10 | 8 1 | e | y | ~ |
| P 1 | 9 1 | f | z | ~ |
| Q | space 15 | g | _ | ~ |
| R 8 | . 1 | h | - | ~ |
| S 5 | , 1 | i | + | ~ |
| T 7 | : | j | / | ~ |
Total = 108
OUTPUT FREQUENCY ANALYSIS
\2 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Total
1\ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -----
A 1 1 1 1 1 1 6
B 1 1 1 1 1 1 6
C 1 1 1 3
D 1 1 1 1 1 5
E 1 1 1 1 1 5
F 1 1 1 1 1 1 1 7
G 1 1 1 3
H 1 1
I 1 1 1 1 4
J 1 1 1 1 4
K 1 1 1 3
L 1 1
M 1 1 1 1 4
N 1 1 1 1 4
O 1 1 1 1 1 1 6
P 1 1 2
Q 1 1 1 3
R 1 1 1 1 1 1 1 1 1 9
S 1 1 2
T 1 1
U 1 1 1 1 1 5
V 1 1 1 1 1 1 1 7
W 1 1 1 3
X 1 1 1 1 1 5
Y 1 1 2
Z 1 1 1 1 1 1 1 7
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -----
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Total
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -----
4 4 5 6 6 3 5 1 5 2 1 2 6 4 5 5 10 3 1 4 3 2 6 6 4 5 108
EXHIBIT C-3
DECRYPTION 10-31-1995 17:36:57 Hours
---------------------------------------------------------------------------------
No. of PB Connections 21
Plugboard Connections (1735) (2356) (4581) (9852) (3377) (5544) (6612)
(5987) (3254) (6791) (2653) (4899) (6250) (4069)
(3180) (9402) (8437) (9307) (8843) (8514) (2176)
No. of Rotors 12
Rotors Sequence 32 49 42 98 63 94 62 60 04 33 25 11
Rotors Orientation 1 2 1 1 2 2 1 1 2 2 1 1
Reversing Rotor No. 53
Rotors Rotation Values 07 29 01 71 17 13 11 47 03 61 23 19
Rev Rotor Rotation Value 31
Character Set (CS) No. 44
CS Rotation Value 89 Internal Checksum 60354
---------------------------------------------------------------------------------
Rotors Initial Settings 15 22 09 41 87 36 08 01 57 91 03 49
Rev Rotor Initial Setting 77
Super Encipher Table No. 35
External Checksum 99
---------------------------------------------------------------------------------
FM VQ ND OU UF OF EN MX FE ZR DO YD BS YW VO RB BB HC QI UR ZD BW BZ TQ EO WD RF
F O U R S C O R E A N D S E V E N Y E A R S A
---------------------------------------------------------------------------------
FW DP JA XW QN ZX OT DA WX SZ OE UG SR NU OZ UT MP KQ FQ MY XB KE NI EL PE DG RE
G O , O U R F O R E F A T H E R S B R O U G H T
---------------------------------------------------------------------------------
AN XC AI VM GX VT ZQ JY AL AZ JP VD AY GI PX WA DJ IG RT OQ QW EW RH BM RC NQ GQ
F O R T H U P O N T H I S C O N T I N E N T
---------------------------------------------------------------------------------
A N E W N A T I O N . 1 2 3 4 5 6 7 8 9 0 ( * )
II BO VG MG IB UX XQ XU LP ZN RV AM FJ CQ KM ZC RP VY CD EK CZ FC FV ZA RM IE JO
---------------------------------------------------------------------------------
TOTAL INPUT CHARACTERS IS 108
EXHIBIT D-1
Messsage No.--------------------From----------------------------------Date/Time of Receipt
: : : / :
: : : / :
-------------------------------------------------------------------------------------------
FOURSCORE AND SEVEN YEARS AGO, OUR FOREFATHERS BROUGHT FORTH UPON THIS CONTINENT
A NEW NATION. 1234567890(*)
Thanks to GRAPE JUICE for the quick and clear reply:
A>0 , B= 1...3, E>0, R>0 (16) ** 2 = 256 and (31) ** 2 = 961
R, A, T, S A= E+1 +4,9
----------- B
|Q UA RT ET E
-A I > A
----- O=0
T UA Q >A, T
-T SI R =2,3
----- S
U RT T
-A UT U =S+1 > A, E
----- T
E AO ET U
-E ES UB
---------
R AR
2 4 1 7 4=4,9
+ ------------ 9> 1
| 5 84 21 31 3
-4 6
---------------- 0=0
1 84 5>4,1
-1 76 2=2,3
---------------- 7
1
8 21 8=7+1 >4,3 =7,8
-4 81 1
---------------- 8
3 40 31
-3 37 89
----------------
2 42
A B E I O Q R S T U 1 2 3 4 5 6 7 8 9 0
T R E A Q I S U B O
A B E I O Q R S T U 0 1 2 3 4 5 6 7 8 9
O T R E A Q I S U B
A B E I O Q R S T U 0 9 8 7 6 5 4 3 2 1
O B U S I Q A E R T
A B E I O Q R S T U 9 8 7 6 5 4 3 2 1 0
B U S I Q A E R T O
From Sinkov [SINK] two Hill system problems:
Irrationally held truths may be more harmful than reasoned errors.
© 2004 Qsr Nrwn