
The VIC cipher was a pencil and paper
cipher
In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure. An alternative, less common term is ''encipherment''. To encipher or encode i ...
used by the
Soviet
The Union of Soviet Socialist Republics. (USSR), commonly known as the Soviet Union, was a List of former transcontinental countries#Since 1700, transcontinental country that spanned much of Eurasia from 1922 until Dissolution of the Soviet ...
spy
Espionage, spying, or intelligence gathering, as a subfield of the intelligence field, is the act of obtaining secret or confidential information (intelligence). A person who commits espionage on a mission-specific contract is called an ''e ...
Reino Häyhänen
Reino Häyhänen (; May 14, 1920 – February 17, 1961) was a Soviet intelligence officer of the KGB who defected from the Soviet Union to the United States in May 1957. Häyhänen surrendered information on Soviet espionage activities that solv ...
,
codename
A code name, codename, call sign, or cryptonym is a code word or name used, sometimes clandestinely, to refer to another name, word, project, or person. Code names are often used for military purposes, or in espionage. They may also be used in ...
d "VICTOR".
If the cipher were to be given a modern technical name, it would be known as a "straddling bipartite monoalphabetic substitution superenciphered by modified double transposition."
[
David Kahn]
"Number One From Moscow"
1993.
However, by general classification it is part of the
Nihilist family of ciphers.
It was arguably the most complex hand-operated cipher ever seen, when it was first discovered. The initial analysis done by the American
National Security Agency
The National Security Agency (NSA) is an intelligence agency of the United States Department of Defense, under the authority of the director of national intelligence (DNI). The NSA is responsible for global monitoring, collection, and proces ...
(NSA) in 1953 did not absolutely conclude that it was a hand cipher, but its placement in a hollowed out
5¢ coin (later known as the
Hollow Nickel Case
The Hollow Nickel Case (or the Hollow Coin) was the FBI investigation that grew out of the discovery of a container disguised as a U.S. coin and containing a coded message, eventually found to concern the espionage activities of William August ...
) implied it could be decoded using pencil and paper. The VIC cipher remained unbroken until more information about its structure was available.
Although certainly not as complex or secure as modern computer operated
stream cipher
stream cipher is a symmetric key cipher where plaintext digits are combined with a pseudorandom cipher digit stream ( keystream). In a stream cipher, each plaintext digit is encrypted one at a time with the corresponding digit of the keystrea ...
s or
block cipher
In cryptography, a block cipher is a deterministic algorithm that operates on fixed-length groups of bits, called ''blocks''. Block ciphers are the elementary building blocks of many cryptographic protocols. They are ubiquitous in the storage a ...
s, in practice messages protected by it resisted all attempts at
cryptanalysis
Cryptanalysis (from the Greek ''kryptós'', "hidden", and ''analýein'', "to analyze") refers to the process of analyzing information systems in order to understand hidden aspects of the systems. Cryptanalysis is used to breach cryptographic se ...
by at least the NSA from its discovery in 1953 until Häyhänen's
defection
In politics, a defector is a person who gives up allegiance to one state in exchange for allegiance to another, changing sides in a way which is considered illegitimate by the first state. More broadly, defection involves abandoning a person, ca ...
in 1957.
A revolutionary leap
The VIC cipher can be regarded as the evolutionary pinnacle of the
Nihilist cipher family.
The VIC cipher has several important integrated components, including
mod 10 chain addition, a
lagged Fibonacci generator A Lagged Fibonacci generator (LFG or sometimes LFib) is an example of a pseudorandom number generator. This class of random number generator is aimed at being an improvement on the 'standard' linear congruential generator. These are based on a gener ...
(a recursive formula used to generate a sequence of
pseudorandom
A pseudorandom sequence of numbers is one that appears to be statistically random, despite having been produced by a completely deterministic and repeatable process. Pseudorandom number generators are often used in computer programming, as tradi ...
digits), a
straddling checkerboard
A straddling checkerboard is a device for converting an alphanumeric plaintext into digits whilst simultaneously achieving fractionation (a simple form of information diffusion) and data compression relative to other schemes using digits. It als ...
, and a disrupted
double transposition
In cryptography, a transposition cipher (also known as a permutation cipher) is a method of encryption which scrambles the positions of characters (''transposition'') without changing the characters themselves. Transposition ciphers reorder units ...
.
Until the discovery of VIC, it was generally thought that a double transposition alone was the most complex cipher an agent, as a practical matter, could use as a field cipher.
History
During
World War II
World War II or the Second World War (1 September 1939 – 2 September 1945) was a World war, global conflict between two coalitions: the Allies of World War II, Allies and the Axis powers. World War II by country, Nearly all of the wo ...
, several Soviet spy rings communicated to Moscow Centre using two ciphers which are essentially evolutionary improvements on the basic Nihilist cipher. A very strong version was used by
Max Clausen in
Richard Sorge
Richard Gustavovich Sorge (; 4 October 1895 – 7 November 1944) was a German-Russian journalist and GRU (Soviet Union), Soviet military intelligence officer who was active before and during World War II and worked undercover as a German journa ...
's network in
Japan
Japan is an island country in East Asia. Located in the Pacific Ocean off the northeast coast of the Asia, Asian mainland, it is bordered on the west by the Sea of Japan and extends from the Sea of Okhotsk in the north to the East China Sea ...
, and by
Alexander Foote
Alexander Allan Foote (13 April 1905 – 1 August 1956) was a radio operator for a Soviet espionage ring in Switzerland during World War II. Foote was born in Liverpool and raised mostly in Yorkshire by his Scottish-born father and English mother. ...
in the
Lucy spy ring
The Lucy spy ring () was an anti-Nazi World War II espionage operation headquartered in Switzerland and run by Rudolf Roessler, a German refugee. Its story was only published in 1966, and very little is clear about the ring, Roessler, or the effo ...
in
Switzerland
Switzerland, officially the Swiss Confederation, is a landlocked country located in west-central Europe. It is bordered by Italy to the south, France to the west, Germany to the north, and Austria and Liechtenstein to the east. Switzerland ...
. A slightly weaker version was used by the ''
Rote Kapelle'' network.
In both versions, the plaintext was first converted to digits by use of a straddling checkerboard rather than a
Polybius square
The Polybius square, also known as the Polybius checkerboard, is a device invented by the ancient Greeks Cleoxenus and Democleitus, and made famous by the historian and scholar Polybius. The device is used for fractionating plaintext characters s ...
. This has the advantage of slightly compressing the plaintext, thus raising its
unicity distance
In cryptography, unicity distance is the length of an original ciphertext needed to break the cipher by reducing the number of possible spurious keys to zero in a brute force attack. That is, after trying every possible key, there should be just ...
and also allowing radio operators to complete their transmissions quicker and shut down sooner. Shutting down sooner reduces the risk of the operator being found by enemy
radio direction finder
Direction finding (DF), radio direction finding (RDF), or radiogoniometry is the use of radio waves to determine the direction to a radio source. The source may be a cooperating radio transmitter or may be an inadvertent source, a natural ...
s. Increasing the unicity distance increases strength against statistical attacks.
Clausen and Foote both wrote their plaintext in English, and memorized the 8
most frequent letters of English (to fill the top row of the checkerboard) through the mnemonic phrase "a sin to err" (dropping the second "r"). The standard English straddling checkerboard has 28 character slots and in this cipher the extra two became "full stop" and "numbers shift". Numbers were sent by a numbers shift, followed by the actual plaintext digits in repeated pairs, followed by another shift. Then, similarly to the basic Nihilist, a digital additive was added in, which was called "closing". However a different additive was used each time, so finally a concealed "indicator group" had to be inserted to indicate what additive was used.
Unlike basic Nihilist, the additive was added by non-carrying addition (digit-wise addition
modulo
In computing and mathematics, the modulo operation returns the remainder or signed remainder of a division, after one number is divided by another, the latter being called the '' modulus'' of the operation.
Given two positive numbers and , mo ...
10), thus producing a more uniform output which doesn't leak as much information. More importantly, the additive was generated not through a keyword, but by selecting lines at random from almanacs of industrial statistics. Such books were deemed dull enough to not arouse suspicion if an agent was searched (particularly as the agents' cover stories were as businessmen), and to have such high entropy density as to provide a very secure additive. Of course the figures from such a book are not actually uniformly distributed (there is an excess of "0" and "1" (see
Benford's Law), and sequential numbers are likely to be somewhat similar), but nevertheless they have much higher entropy density than
passphrase
A passphrase is a sequence of words or other text used to control access to a computer system, program or data. It is similar to a password in usage, but a passphrase is generally longer for added security. Passphrases are often used to control ...
s and the like; at any rate, in practice they seem never to have been successfully cryptanalysed.
The weaker version generated the additive from the text of a novel or similar book (at least one ''Rote Kapelle'' member actually used ''
The Good Soldier Schweik
''The'' is a grammatical article in English, denoting nouns that are already or about to be mentioned, under discussion, implied or otherwise presumed familiar to listeners, readers, or speakers. It is the definite article in English. ''The ...
''). This text was converted to a digital additive using a technique similar to a straddling checkerboard.
The ultimate development along these lines was the VIC cipher, used in the 1950s by
Reino Häyhänen
Reino Häyhänen (; May 14, 1920 – February 17, 1961) was a Soviet intelligence officer of the KGB who defected from the Soviet Union to the United States in May 1957. Häyhänen surrendered information on Soviet espionage activities that solv ...
. By this time, most Soviet agents were instead using
one-time pad
The one-time pad (OTP) is an encryption technique that cannot be Cryptanalysis, cracked in cryptography. It requires the use of a single-use pre-shared key that is larger than or equal to the size of the message being sent. In this technique, ...
s. However, despite the theoretical perfection of the one-time pad, in practice they ''were'' sometimes
broken due to reuse of 'one-time' cipher pages in practice,
while VIC was not.
Mechanics overview
The secret key for the encryption is the following:
* A short Phrase (e.g. the first line of a song, at least 20 letters long)
* A Date (written numerically, with no leading zeroes)
* A Personal Number (unique to agent, a 1 or 2 digit number)
The encryption was also aided by the adversary not knowing a 5-digit Keygroup which was unique to each message. The Keygroup was not strictly a 'secret', (as it was embedded in-clear in the ciphertext), but it was at a location in the ciphertext that was not known to an adversary.
The cipher broadly worked as follows:
# Use the secrets above (Phrase, Date, Keygroup and Personal Number) create a 50 digit block of pseudo random-numbers
# Use this block to create the message keys for:
## A
Straddling Checkerboard
A straddling checkerboard is a device for converting an alphanumeric plaintext into digits whilst simultaneously achieving fractionation (a simple form of information diffusion) and data compression relative to other schemes using digits. It als ...
## Two
Columnar transpositions
# Encrypt the Plaintext message via the straddling checkerboard
# Apply two transpositions to the resultant (intermediary) ciphertext through two columnar
## A 'Standard' Columnar Transposition
## A Diagonal Columnar Transposition
# Insertion of the Keygroup into the ciphertext - as determined by the sixth digit of the Date
Detailed mechanics
''Note: this section tracks the calculations by referring to
ine-Xor similar. This is to align with the notation stated in the CIA archive description.
''
Pseudorandom block derivation
*
ine-A'': Generate a random 5-digit ''Keygroup''
*
ine-B'': Write the first 5 digits of the secret ''Date''
*
ine-C'': Subtract
ine-Bfrom
ine-Aby
modular arithmetic
In mathematics, modular arithmetic is a system of arithmetic operations for integers, other than the usual ones from elementary arithmetic, where numbers "wrap around" when reaching a certain value, called the modulus. The modern approach to mo ...
(digit-by-digit, not 'borrowing' any tens from a neighboring column)
*
ine-D'': Write out the first 20 letters from the secret ''Phrase''
*
ine-E.1&2'': ''Sequence'' (see below) the first and second ten characters separately (to get
ine-E.1&
ine-E.2respectively)
*
ine-F.1'': Write out the 5-Digits from
ine-C then apply ''Chain Addition'' (see below) applied to create five more digits
*
ine-F.2'': The digit sequence '1234567890' is written out (under
ine-E.2 as an aide for encoding when creating
ine-H*
ine-G'': Addition of
ine-E.1to
ine-F.1- this is digit-by-digit by mod-10 arithmetic, i.e. no 'carrying' over tens to the next column
*
ine-H'': ''Encoding'' (see below) of the digits in
ine-Gunder
ine-E.2as the key
* ''
ine-I No
ine-Iused, presumably to avoid confusion (as 'I' may be misread as a '1' or 'J')''
*
ine-J'': The ''Sequencing'' of
ine-H*
ines-K,L,M,N,P These are five 10-digit lines created by chain addition of
ine-H The last two non-equal digits are added to the agent's personal number to determine the key length of the 2 transpositions. (Lines K-to-P are in-effect a key-driven pseudo-random block used for the next stage of encryption)
* ''
ine-O No
ine-Oused, presumably to avoid confusion (as 'O' may be misread as a zero or 'Q')''
Message key derivation
*
ine-Q'': The first 'a' digits (where 'a' is the first value resulting from the addition of the last non-equal digits in
ine-Pto the Personal Number) extracted from
ines-K,L,M,N,Pwhen transposed via
ine-J This
transposition is done by writing out the columns of numbers underneath the digits in
ine-J beginning with the column of numbers underneath the digit ‘1', then the column beneath the digit ‘2’, and so on in numerical order, until 'a' digits have been written out (in the example below, the value of 'a' would be 13, so this transposition would carry on for 13 digits). These digits are used as the key to the Columnar Transposition.
*
ine-R'': The next 'b' digits (where 'b' is the second value resulting from the addition of the last non-equal digits in
ine-Pto the Personal Number) extracted (after the 'a' digits have been extracted) from
ines-K,L,M,N,Pwhen transposed via
ine-J This transposition is done in the same manner as
ine-Q but is carried on from the previous transposition, meaning it may start mid-column under the digit of
ine-Jwhere the last transposition left off (in the example below,
ine-Rstarts mid-way through the column underneath the digit '3' in
ine-J. These resulting digits are used to key the Diagonal Transposition.
*
ine-S'': The Sequencing of
ine-P this is used as the key to the Straddling Checkerboard.
Example of key generation
Personal Number: 6
Date: 13 Sept 1959 // Moon Landing - 13 Sept 1959 ('139195' - truncated to 6 digits)
Phrase: 'Twas the night before Christmas' // from 'A visit from St. Nicholas' - poem
Keygroup: 72401 // randomly generated
ine-A 72401 // Keygroup
ine-B 13919 // Date - truncated to 5 digits
ine-C 69592 // subtract ine-Bfrom ine-A ine-D TWASTHENIG HTBEFORECH // Phrase - truncated to 20 characters
ine-E 8017942653 6013589427 // via Sequencing
ine-F 6959254417 1234567890 // from ine-Cand chain addition, then '1234567890'
ine-G 4966196060 // add ine-E.1to ine-F.1 ine-H 3288628787 // encode ine-Gwith ine-E.2 ine-F.2helps
ine-J 3178429506 // The Sequencing of ine-H ine-K 5064805552 // BLOCK: Chain addition of ine-Hfor 50 digits
ine-L 5602850077
ine-M 1620350748
ine-N 7823857125
ine-P 5051328370
Last two non-equal digits are '7' and '0', added to Personal Number (6) means that the permutation keys are 13 and 6 digits long.
ine-Q 0668005552551 // first 13 digits from block
ine-R 758838 // next 6 digits from block
ine-S 5961328470 // Sequencing of ine-P
Message encryption
Straddling checkerboard
Once the key has been generated, the first stage of actually encrypting the Message is to convert it to a series of digits via a
straddling checkerboard
A straddling checkerboard is a device for converting an alphanumeric plaintext into digits whilst simultaneously achieving fractionation (a simple form of information diffusion) and data compression relative to other schemes using digits. It als ...
. The key (header row) for the checkerboard is based on
ine-S Then a pre-agreed series of common letters used on the second row. The example below uses the English mnemonic 'AT ONE SIR'; however, the Cyrillic mnemonic used by Hayhanen was 'snegopad', the Russian word for snowfall.
The remaining cells are filled in, with the rest of the alphabet filled in in order, followed by
.
(fullstop) and
/
(number-shift symbol, indicating that the following symbols until the next number-shift are numbers; see example below).
An example encoding is below, where numbers :
MESSAGE: 'Attack at dawn. By dawn I mean 0500. Not 0915 like you did last time.'
Encoding of individual symbols:
A T T A C K A T D A W N (...) 0 9 1 5
5 9 9 5 69 64 5 9 66 5 83 3 80 000 999 111 555 80
Final code:
59956 96459 66583 38765 88665 83376 02538 00005
55000 00080 87319 80000 99911 15558 06776 42881
86667 66675 49976 0287-
Transpositions: columnar transposition
The message is transposed via standard columnar transposition keyed by
ine-Qabove. (Note: if the message encoded length is not a multiple of 5 at this stage, an additional digit is added)
The message is then transposed via Diagonal Transposition keyed by
ine-Rabove. The meaning of 'diagonal' in this case is that triangular disruption zones were employed to make the transposition irregular.
= Keygroup insertion
=
The (unencrypted) Keygroup is inserted into the ciphertext 'P' groups from the end; where 'P' is the unused sixth digit of the Date.
= Modular addition/subtraction
=
Modular addition or subtraction, also known as 'false adding/subtraction', in this context (and many pen and paper ciphers) is digit-by-digit addition and subtraction without 'carrying' or 'borrowing'. For example:
* 1234 + 6789 = 7913
* 1234 - 6789 = 5555
= Sequencing
=
Sequencing in this context is ordering the elements of an input from 1-10 (where '0' represents 10). This occurs either to letters (whereby alphabetical order is used), or numbers (where numerical value is used). In the event of equal values, then the leftmost value is sequenced first. For example:
* LETTERS: The word 'Octopus' is sequenced as '2163475' - (i.e. C=1, first 'O'=2, second 'O'=3, ...)
* NUMBERS: The number '90210' is sequenced as '34215' - (by numerical order. Zero is valued at '10' in terms of ordering)
= Chain addition
=
Chain addition is akin to a
linear-feedback shift register
In computing, a linear-feedback shift register (LFSR) is a shift register whose input bit is a Linear#Boolean functions, linear function of its previous state.
The most commonly used linear function of single bits is exclusive-or (XOR). Thus, ...
, whereby a stream of number is generated as an output (and fed back in as an input) to a seed number. Within the VIC Cipher chain addition works by (1) taking the original (seed) number, (2) false-adding the first two digits, (3) putting this new number at the end of the chain. This continues, however the digits being added are incremented by one. For example, if the seed was '90210', the first 5 iterations are shown below:
90210 // Initial seed value
90210 9 // 9 = 9+0 (first two digits)
90210 92 // 2 = 0+2 (next two...)
90210 923 // 3 = 2+1
90210 9231 // 1 = 1+0
90210 92319 // 9 = 0+9; note how the first '9' generated is being fed back in
= Digit encoding
=
The encoding step replaces each digit in a number (i.e.
ine-Gin the cipher) with one from a key sequence (i.e.
ine-E.2 that represents its position in the 1-10 ordering. It should be seen that by writing out the series '1234567890' (shown as
ine-F.2 underneath
ine.E.2each value from 0-9 has another above it. Simply replace every digit in the number to be encoded with the one above it in the key sequence.
For example, the number '90210' would have encodings as follows;
.
So the output would be: '27067'.
Decryption
Decryption of the VIC Cipher is as follows:
* Extract the Keygroup - By knowledge of the sixth digit of the secret Date, remove the 5 digits of the Keygroup from the ciphertext
* Generate the Message Keys - By using the knowledge of the various secrets (Phrase, Date, Personal Number, Keygroup) generate the keys in the same manner as the encryption process
* Decrypt the Ciphertext - By using knowledge of the Message Keys for the transpositions and straddling checkerboard decrypt them
Cryptanalysis
The cipher is one of the strongest pen and paper ciphers actually used in the real world, and was not broken (in terms of determining the underlying algorithm) by the NSA at the time.
However, with the advent of modern computing, and public disclosure of the algorithm this would not be considered a strong cipher. It can be observed that the majority of the entropy in the secret key converges to a 10-digit number
ine-H This 10-digit number is approximately 34 bits of entropy, combined with the last digit of the date (needed to identify where the KeyGroup is) would make about 38 bits of entropy in terms of Message Key strength. 38 bits is subject to a
Brute-force attack
In cryptography, a brute-force attack or exhaustive key search is a cryptanalytic attack that consists of an attacker submitting many possible keys or passwords with the hope of eventually guessing correctly. This strategy can theoretically be ...
within less than a day on modern computers.
See also
*
Topics in cryptography
The following outline is provided as an overview of and topical guide to cryptography:
Cryptography (or cryptology) – practice and study of hiding information. Modern cryptography intersects the disciplines of mathematics, computer scie ...
References
External links
FBI page on the hollow nickel casewith images of the hollow nickel that contained the VIC encrypted message
Various different versions of checkerboards on Cipher Machines and Cryptology
by Greg Goebel 2009
{{DEFAULTSORT:Vic Cipher
Classical ciphers
Science and technology in the Soviet Union