# Phelix

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 2$^{32}$, 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.

## Performance

Phelix 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" 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

Phelix 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. The first has a complexity of 2$^{88}$ and requires 2$^{12}$ 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 2$^{35.64}$ CP's. Muller's second attack on Helix is a distinguishing attack that requires 2$^{114}$ words of chosen plaintext.
Phelix's design was largely motivated by Muller's differential attack.

## Security

Phelix 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 to Phase 3, largely because of Wu and Preneel's key-recovery attack 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. 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 2$^{37}$ operations, 2$^{34}$ chosen nonces and 2$^{38.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.