Phelix is a high-speed stream cipher with a built-in single-pass message authentication code (MAC) functionality, submitted in 2004 to the eSTREAM contest by Doug Whiting, Bruce Schneier, Stefan Lucks, and Frédéric Muller. The cipher uses only the operations of addition modulo 232, exclusive or, and rotation by a fixed number of bits. Phelix uses a 256-bit key and a 128-bit nonce, claiming a design strength of 128 bits. Concerns have been raised over the ability to recover the secret key if the cipher is used incorrectly.
General | |
---|---|
Designers | Doug Whiting, Bruce Schneier, Stefan Lucks, and Frédéric Muller |
First published | 2004 |
Cipher detail | |
Key sizes | 256 bits |
Speed | 8 cycles per byte on modern x86-based processors (claimed) |
Best public cryptanalysis | |
All known attacks are computationally infeasible when the cipher is used properly. If nonces are reused, a differential attack breaks the cipher with about 237 operations, 234 chosen nonces and 238.2 chosen plaintext words. |
Performance
editPhelix is optimised for 32-bit platforms. The authors state that it can achieve up to eight cycles per byte on modern x86-based processors.
FPGA Hardware performance figures published in the paper "Review of stream cipher candidates from a low resource hardware perspective"[citation needed] are as follows:
Xilinx Chip | Slices | FPGA Mbit/s | Gate Equiv Estimate | Implementation Description |
---|---|---|---|---|
XC2S100-5 | 1198 | 960.0 | 20404 | (A) full-round 160-bit design, as per developers paper |
XC2S100-5 | 1077 | 750.0 | 18080 | (B) half-round 160-bit design |
XC2S30-5 | 264 | 3.2 | 12314 | (C) 32-bit data path |
Helix
editPhelix is a slightly modified form of an earlier cipher, Helix, published in 2003 by Niels Ferguson, Doug Whiting, Bruce Schneier, John Kelsey, Stefan Lucks, and Tadayoshi Kohno; Phelix adds 128 bits to the internal state.
In 2004, Frédéric Muller published two attacks on Helix.[1] The first has a complexity of 288 and requires 212 adaptive chosen-plaintext words, but requires nonces to be reused. Souradyuti Paul and Bart Preneel later showed that the number of adaptive chosen-plaintext words of Muller's attack can be reduced by a factor of 3 in the worst case (a factor of 46.5 in the best case) using their optimal algorithms to solve differential equations of addition. In a later development, Souradyuti Paul and Bart Preneel showed that the above attack can also be implemented with chosen plaintexts (CP) rather than adaptive chosen plaintexts (ACP) with data complexity 235.64 CP's. Muller's second attack on Helix is a distinguishing attack that requires 2114 words of chosen plaintext.
Phelix's design was largely motivated by Muller's differential attack.
Security
editPhelix was selected as a Phase 2 Focus Candidate for both Profile 1 and Profile 2 by the eSTREAM project. The authors of Phelix classify the cipher as an experimental design in its specifications. The authors advise that Phelix should not be used until it had received additional cryptanalysis. Phelix was not advanced[2] to Phase 3, largely because of Wu and Preneel's key-recovery attack[3] noted below that becomes possible when the prohibition against reusing a nonce is violated.
The first cryptanalytic paper on Phelix was a chosen-key distinguishing attack, published in October 2006.[4] Doug Whiting has reviewed the attack and notes that while the paper is clever, the attack unfortunately relies on incorrect assumptions concerning the initialisation of the Phelix cipher. This paper was subsequently withdrawn by its authors.
A second cryptanalytic paper on Phelix titled "Differential Attacks against Phelix" was published on 26 November 2006 by Hongjun Wu and Bart Preneel. The paper is based on the same attacks assumption as the Differential Attack against Helix. The paper shows that if the cipher is used incorrectly (nonces reused), the key of Phelix can be recovered with about 237 operations, 234 chosen nonces and 238.2 chosen plaintext words. The computational complexity of the attack is much less than that of the attack against Helix.
The authors of the differential attack express concern that each plaintext word affects the keystream without passing through (what they consider to be) sufficient confusion and diffusion layers. They claim this is an intrinsic weakness in the structure of Helix and Phelix. The authors conclude that they consider Phelix to be insecure.
References
edit- D. Whiting, B. Schneier, S. Lucks, and F. Muller, Phelix: Fast Encryption and Authentication in a Single Cryptographic Primitive (includes source code)
- T. Good, W. Chelton, M. Benaissa: Review of stream cipher candidates from a low resource hardware perspective (PDF)
- Yaser Esmaeili Salehani, Hadi Ahmadi: A Chosen-key Distinguishing Attack on Phelix, submitted to eSTREAM [withdrawn 2006-10-14]
- Niels Ferguson, Doug Whiting, Bruce Schneier, John Kelsey, Stefan Lucks and Tadayoshi Kohno, Helix: Fast Encryption and Authentication in a Single Cryptographic Primitive, Fast Software Encryption - FSE 2003, pp330–346.
- Frédéric Muller, Differential Attacks against the Helix Stream Cipher, FSE 2004, pp94–108.
- Souradyuti Paul and Bart Preneel, Solving Systems of Differential Equations of Addition, ACISP 2005. Full version
- Souradyuti Paul and Bart Preneel, Near Optimal Algorithms for Solving Differential Equations of Addition With Batch Queries, Indocrypt 2005. Full version
- ^ "Differential Attacks against the Helix Stream Cipher"
- ^ "eSTREAM Short Report on the End of the Second Phase"
- ^ "Differential-Linear Attacks against the Stream Cipher Phelix"
- ^ Yaser Esmaeili Salehani; Hadi Ahmadi (2006). "A Chosen-key Distinguishing Attack on Phelix". CiteSeerX 10.1.1.431.3015.