Page 187 of the State Department 1899 code book, a one part code with a choice of code word or numeric ciphertext. Numeric codes are prefixed by the page number.
A codebook is a type of document used for gathering and storing cryptography codes. Originally codebooks were often literally books, but today codebook is a byword for the complete record of a series of codes, regardless of physical format.
In cryptography, a codebook is a document used for implementing a code. A codebook contains a lookup table for coding and decoding; each word or phrase has one or more strings which replace it. To decipher messages written in code, corresponding copies of the codebook must be available at either end. The distribution and physical security of codebooks presents a special difficulty in the use of codes, compared to the secret information used in ciphers, the key, which is typically much shorter.
The United States National Security Agency documents sometimes use codebook to refer to block ciphers; compare their use of combiner-type algorithm to refer to stream ciphers.
Codebook come in two forms, one-part or two-part:
- In one part codes, the plain text words and phrases and the corresponding code words are in the same alphabetical order. They are organized similar to a standard dictionary. Such codes are half the size of two-part codes but are more vulnerable since an attacker who recovers some code word meanings can often infer the meaning of nearby code words. One part codes may be used simply to shorten messages for transmission or have their security enhanced with superencryption methods, such as adding a secret number to numeric code words.
- In two part codes, one part is for converting plaintext to ciphertext, the other for the opposite purpose. They are usually organized similar to a language translation dictionary, with plaintext words (in the first part) and ciphertext words (in the second part) presented like dictionary headwords.
The earliest known use of a codebook system was by Gabriele de Lavinde in 1379 working for the Antipope Clement VII.
Two-part codebooks go back as least as far as
Antoine Rossignol in the 1800s.
From the 15th century until the middle of the 19th century,
nomenclators (named after nomenclator) were the most used cryptographic method.
Codebook with superencryption was the most used cryptographic method of World War I.
The JN-25 code used in World War II used a code book of 30,000 code groups superencrypted with 30,000 random additives.
The book used in a book cipher or the book used in a running key cipher can be any book shared by sender and receiver and is different from a cryptographic codebook.
In social sciences, a codebook is a document containing a list of the codes used in a set of data to refer to variables and their values, for example locations, occupations, or clinical diagnoses.
Codebooks were also used in 19th- and 20th-century commercial codes for the non-cryptographic purpose of data compression.
Codebooks are used in relation to precoding and beamforming in mobile networks such as 5G and LTE. The usage is standardized by 3GPP, for example in the document TS 38.331, NR; Radio Resource Control (RRC); Protocol specification.