Jump to content

MacGuffin (cipher): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Interwiki link corrected
 
(12 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Short description|Block cipher}}
{{Otheruses4|the block cipher|the plot device|MacGuffin}}
{{No footnotes|date=August 2023}}
{{Infobox block cipher
{{Infobox block cipher
| name = MacGuffin
| name = MacGuffin
Line 20: Line 21:
Schneier and Blaze based MacGuffin on [[Data Encryption Standard|DES]], their main change being that the data block is not split into equal halves in the Feistel network. Instead, 48 bits of the 64-bit data block are fed through the round function, whose output is [[XOR]]ed with the other 16 bits of the data block. The algorithm was experimental, intended to explore the security properties of unbalanced Feistel networks.
Schneier and Blaze based MacGuffin on [[Data Encryption Standard|DES]], their main change being that the data block is not split into equal halves in the Feistel network. Instead, 48 bits of the 64-bit data block are fed through the round function, whose output is [[XOR]]ed with the other 16 bits of the data block. The algorithm was experimental, intended to explore the security properties of unbalanced Feistel networks.


The diagram to the right shows one round of MacGuffin. The 64-bit data block is broken into four 16-bit words (each represented by one line). The rightmost three are XORed with subkey bits derived from the secret key. They are then fed through eight [[S-box]]es, each of which takes six bits of input and produces two bits of output. The output (a total of 16 bits) is then recombined and XORed with the leftmost word of the data block. The new leftmost block is then rotated into the rightmost position of the resulting data block. The algorithm then continues with more rounds.
The adjacent diagram shows one round of MacGuffin. The 64-bit data block is broken into four 16-bit words (each represented by one line). The rightmost three are XORed with subkey bits derived from the secret key. They are then fed through eight [[S-box]]es, each of which takes six bits of input and produces two bits of output. The output (a total of 16 bits) is then recombined and XORed with the leftmost word of the data block. The new leftmost block is then rotated into the rightmost position of the resulting data block. The algorithm then continues with more rounds.


MacGuffin's [[key schedule]] is a modified version of the encryption algorithm itself. Since MacGuffin is a Feistel network, decryption is easy; simply run the encryption algorithm in reverse.
MacGuffin's [[key schedule]] is a modified version of the encryption algorithm itself. Since MacGuffin is a Feistel network, decryption is easy; simply run the encryption algorithm in reverse.
Line 27: Line 28:


==Cryptanalysis of MacGuffin==
==Cryptanalysis of MacGuffin==
At the same workshop where MacGuffin was introduced, Rijmen and Preneel showed that it was vulnerable to [[differential cryptanalysis]]. They showed that 32 rounds of MacGuffin is weaker than 16 rounds of DES, since it took "a few hours" to get good differential characteristics for DES with good starting values, and the same time to get good differential characteristics for MacGuffin with no starting values. They found that it is possible to get the last round key with differential cryptanalysis, and from that reverse the last round and repeat the attack for the rest of the rounds.
At the same workshop where MacGuffin was introduced, Rijmen and Preneel showed that it was vulnerable to [[differential cryptanalysis]]. They showed that 32 rounds of MacGuffin is weaker than 16 rounds of DES, since it took "a few hours" to get good differential characteristics for DES with good starting values, and the same time to get good differential characteristics for MacGuffin with no starting values. They found that it is possible to get the last round key with differential cryptanalysis, and from that reverse the last round; and then repeat the attack for the rest of the rounds.


Rijmen and Preneel tried attacking MacGuffin with different S-boxes, taken directly from DES. This version proved to be slightly stronger, but they warn that designing an algorithm to resist only known attacks is generally not a good design principle.
Rijmen and Preneel tried attacking MacGuffin with different S-boxes, taken directly from DES. This version proved to be slightly stronger, but they warn that designing an algorithm to resist only known attacks is generally not a good design principle.
Line 35: Line 36:
| author = Bruce Schneier, Matt Blaze
| author = Bruce Schneier, Matt Blaze
| title = The MacGuffin Block Cipher Algorithm
| title = The MacGuffin Block Cipher Algorithm
| booktitle = 2nd International Workshop on [[Fast Software Encryption]] (FSE '94)
| conference = 2nd International Workshop on [[Fast Software Encryption]] (FSE '94)
| pages = 97–110
| pages = 97–110
| publisher = [[Springer-Verlag]]
| publisher = [[Springer-Verlag]]
Line 42: Line 43:
| url = http://www.schneier.com/paper-macguffin.html
| url = http://www.schneier.com/paper-macguffin.html
| format = [[PDF]]/[[PostScript]]
| format = [[PDF]]/[[PostScript]]
| accessdate = 2007-08-24 }}
| access-date = 2007-08-24 }}
* {{cite conference
* {{cite conference
| author = Vincent Rijmen, Bart Preneel
| author = Vincent Rijmen, Bart Preneel
| title = Cryptanalysis of McGuffin
| title = Cryptanalysis of McGuffin
| booktitle = FSE '94
| conference = FSE '94
| pages = 353–358
| pages = 353–358
| publisher = Springer-Verlag
| publisher = Springer-Verlag
Line 53: Line 54:
| url = http://citeseer.ist.psu.edu/16346.html
| url = http://citeseer.ist.psu.edu/16346.html
| format = PDF/PostScript
| format = PDF/PostScript
| accessdate = 2007-08-24 }}
| access-date = 2007-08-24 }}


{{Crypto navbox | block}}
{{Cryptography navbox | block}}


[[Category:Broken block ciphers]]
[[Category:Broken block ciphers]]
[[Category:1994 introductions]]

[[simple:MacGuffin (cipher)]]

Latest revision as of 19:24, 4 May 2024

MacGuffin
The Feistel function of the MacGuffin cipher
General
DesignersBruce Schneier, Matt Blaze
First published1994-12-14
Derived fromDES
Cipher detail
Key sizes128 bits
Block sizes64 bits
StructureUnbalanced Feistel network
Rounds32

In cryptography, MacGuffin is a block cipher created in 1994 by Bruce Schneier and Matt Blaze at a Fast Software Encryption workshop. It was intended as a catalyst for analysis of a new cipher structure, known as Generalized Unbalanced Feistel Networks (GUFNs). The cryptanalysis proceeded very quickly, so quickly that the cipher was broken at the same workshop by Vincent Rijmen and Bart Preneel.

The algorithm

[edit]

Schneier and Blaze based MacGuffin on DES, their main change being that the data block is not split into equal halves in the Feistel network. Instead, 48 bits of the 64-bit data block are fed through the round function, whose output is XORed with the other 16 bits of the data block. The algorithm was experimental, intended to explore the security properties of unbalanced Feistel networks.

The adjacent diagram shows one round of MacGuffin. The 64-bit data block is broken into four 16-bit words (each represented by one line). The rightmost three are XORed with subkey bits derived from the secret key. They are then fed through eight S-boxes, each of which takes six bits of input and produces two bits of output. The output (a total of 16 bits) is then recombined and XORed with the leftmost word of the data block. The new leftmost block is then rotated into the rightmost position of the resulting data block. The algorithm then continues with more rounds.

MacGuffin's key schedule is a modified version of the encryption algorithm itself. Since MacGuffin is a Feistel network, decryption is easy; simply run the encryption algorithm in reverse.

Schneier and Blaze recommended using 32 rounds, and specified MacGuffin with a 128-bit key.

Cryptanalysis of MacGuffin

[edit]

At the same workshop where MacGuffin was introduced, Rijmen and Preneel showed that it was vulnerable to differential cryptanalysis. They showed that 32 rounds of MacGuffin is weaker than 16 rounds of DES, since it took "a few hours" to get good differential characteristics for DES with good starting values, and the same time to get good differential characteristics for MacGuffin with no starting values. They found that it is possible to get the last round key with differential cryptanalysis, and from that reverse the last round; and then repeat the attack for the rest of the rounds.

Rijmen and Preneel tried attacking MacGuffin with different S-boxes, taken directly from DES. This version proved to be slightly stronger, but they warn that designing an algorithm to resist only known attacks is generally not a good design principle.

References

[edit]
  • Bruce Schneier, Matt Blaze (December 1994). The MacGuffin Block Cipher Algorithm (PDF/PostScript). 2nd International Workshop on Fast Software Encryption (FSE '94). Leuven: Springer-Verlag. pp. 97–110. Retrieved 2007-08-24.
  • Vincent Rijmen, Bart Preneel (December 1994). Cryptanalysis of McGuffin (PDF/PostScript). FSE '94. Leuven: Springer-Verlag. pp. 353–358. Retrieved 2007-08-24.