Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Lucifer (cipher)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Earliest civilian block ciphers}} {{Infobox block cipher | name = Lucifer | image = | caption = | designers = [[Horst Feistel]] et al. | publish date = 1971 | derived from = | derived to = [[Data Encryption Standard|DES]] | related to = | certification = | key size = 48, 64 or 128 bits | block size = 48, 32 or 128 bits | structure = [[Substitution–permutation network]], [[Feistel network]] | rounds = 16 | cryptanalysis = }} In [[cryptography]], '''Lucifer''' was the name given to several of the earliest civilian [[block cipher]]s, developed by [[Horst Feistel]] and his colleagues at [[IBM]]. Lucifer was a direct precursor to the [[Data Encryption Standard]]. One version, alternatively named '''DTD-1''',<ref>{{Cite web|title=QDLPluginEncryptionPS Reference - QDLPlgLucifer|url=http://www.patisoftware.eu/developCentral/QDLPlgPSLibRoot/UserReferences/QDLPluginEncryptionPS_UserRef/QDLPlgLucifer.html|access-date=2020-11-22|website=www.patisoftware.eu}}</ref> saw commercial use in the 1970s for electronic [[banking]]. == Overview == Lucifer uses a combination of transposition and substitution crypting as a starting point in decoding ciphers.{{clarify|date=October 2018}} One variant, described by Feistel in 1971,<ref>Horst Feistel. Block Cipher Cryptographic System, US Patent 3,798,359. Filed June 30, 1971. (IBM)</ref> uses a 48-bit [[cryptographic key|key]] and operates on 48-bit blocks. The cipher is a [[substitution–permutation network]] and uses two 4-bit [[S-box]]es. The key selects which S-boxes are used. The patent describes the execution of the cipher operating on 24 bits at a time, and also a sequential version operating on 8 bits at a time. Another variant by John L. Smith from the same year<ref>John Lynn Smith. Recirculating Block Cipher Cryptographic System, US Patent 3,796,830. Filed Nov 2, 1971. (IBM)</ref> uses a 64-bit key operating on a 32-bit block, using one addition mod 4 and a singular 4-bit S-box. The construction is designed to operate on 4 bits per clock cycle. This may be one of the smallest block-cipher implementations known. Feistel later described a stronger variant that uses a 128-bit key and operates on 128-bit blocks.<ref>Horst Feistel, (1973). Cryptography and Computer Privacy". ''Scientific American'', '''228'''(5), May 1973, pp 15–23.</ref> {{harvtxt|Sorkin|1984}} described a later Lucifer as a 16-round [[Feistel network]], also on 128-bit blocks and 128-bit keys.<ref>{{cite journal |first=Arthur |last=Sorkin |date=1984 |title=Lucifer: a cryptographic algorithm |journal=Cryptologia |volume=8 |number=1 |pages=22–35 |doi=10.1080/0161-118491858746}}</ref> This version is susceptible to [[differential cryptanalysis]]; for about half the keys, the cipher can be broken with 2<sup>36</sup> [[chosen plaintext]]s and 2<sup>36</sup> time complexity.<ref>Ishai Ben-Aroya, Eli Biham (1996). Differential Cryptanalysis of Lucifer. ''Journal of Cryptology'' '''9'''(1), pp. 21–34, 1996.</ref> IBM submitted the Feistel-network version of Lucifer as a candidate for the [[Data Encryption Standard]] (compare the more recent [[Advanced Encryption Standard process|AES process]]). It became the DES after the [[National Security Agency]] reduced the cipher's key size to 56 bits, reduced the block size to 64 bits, and made the cipher resistant against [[differential cryptanalysis]], which was at the time known only to IBM and the NSA. The name "Lucifer" was apparently a pun on "Demon". This was in turn a truncation of "Demonstration", the name for a privacy system Feistel was working on. The operating system used [[Filename#Length_restrictions|could not handle the longer name]].<ref>{{citation|title=Computer Security and Cryptography|first=Alan G.|last=Konheim|publisher=John Wiley & Sons|year=2007|isbn=9780470083970|url=https://books.google.com/books?id=YgT74UPmOk4C&pg=PA283|page=283}}.</ref> ==Description of the Sorkin variant== The variant described by {{harvtxt|Sorkin|1984}} has 16 [[Feistel network|Feistel rounds]], like DES, but no initial or final permutations. The key and block sizes are both 128 bits. The Feistel function operates on a 64-bit half-block of data, together with a 64-bit subkey and 8 "''interchange control bits''" (ICBs). The ICBs control a swapping operation. The 64-bit data block is considered as a series of eight 8-bit bytes, and if the ICB corresponding to a particular byte is zero, the left and right 4-bit halves ([[nibble]]s) are swapped. If the ICB is one, the byte is left unchanged. Each byte is then operated on by two 4×4-bit S-boxes, denoted S<sub>0</sub> and S<sub>1</sub> — S<sub>0</sub> operates on the left 4-bit nibble and S<sub>1</sub> operates on the right. The resultant outputs are concatenated and then combined with the subkey using [[exclusive or]] (XOR); this is termed "''key interruption''". This is followed by a permutation operation in two stages; the first permutes each byte under a fixed permutation. The second stage mixes bits between the bytes. The key-scheduling algorithm is relatively simple. Initially, the 128 key bits are loaded into a [[shift register]]. Each round, the left 64 bits of the register form the subkey, and right eight bits form the ICB bits. After each round, the register is rotated 56 bits to the left. ==References== {{reflist}} ==Further reading== * Eli Biham, Adi Shamir (1991). Differential Cryptanalysis of Snefru, Khafre, REDOC-II, LOKI and Lucifer. CRYPTO 1991: pp156–171 * Whitfield Diffie, Susan Landau (1998). Privacy on the Line: The Politics of Wiretapping and Encryption. * Steven Levy. (2001). Crypto: Secrecy and Privacy in the New Code War (Penguin Press Science). ==External links== * [http://www.quadibloc.com/crypto/co0401.htm John Savard's description of Lucifer] {{IBM}} {{Cryptography navbox | block}} [[Category:Broken block ciphers]] [[Category:Feistel ciphers]] [[Category:Data Encryption Standard]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Clarify
(
edit
)
Template:Cryptography navbox
(
edit
)
Template:Harvtxt
(
edit
)
Template:IBM
(
edit
)
Template:Infobox block cipher
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)