Publication Details

This article was originally published as, Biham, E and Seberry, J, Py (Roo): A Fast and Secure Stream Cipher, EUROCRYPT'05 Rump Session, Aarhus - Denmark, 24 June 2005 at the Symmetric Key Encryption Workshop (SKEW 2005), Aarhus - Denmark, 26-27 May 2005.


Py (pronounced Roo, a shorthand for Kangaroo) is a new stream cipher designed especially for the Ecrypt stream cipher contest. It is based on a new kind of primitive, which we call Rolling Arrays. It also uses various other ideas from many types of ciphers, including variable rotations and permutations. In some sense, this design is a kind of a new type of rotor machine, which is specially designed with operations that are very efficient in software. The allowed stream size is 2(to the power 64) bytes in each stream (or 2 (to the power 40) in the smaller version Py6). The security claims of the cipher are that no key recovery attacks can be performed with complexity smaller than that of exhaustive search, and distinguishing attacks are also impractical with a similar complexity. The speed of the cipher is impressively fast, as it is more than 2.5 times faster than RC4 on a Pentium III (with less than 2.9 cycles/byte when implemented with the API of NESSIE and tested with the NESSIE software).