Helix: fast encryption and authentication

Helix is an interesting encryption algorithm.   It is about twice as fast as Rijndael or Twofish, and comparable in speed to RC4.   Besides being quick, it produces both a ciphertext and a digest with only a single pass of the data.   Helix requires less than 7 clock cycles per byte whereas AES requires 16 making Helix especially quick.

Helix was designed by Niels Ferguson, Doug Whiting, Bruce Schneier, John Kelsey, Stefan Lucks, and Tadayoshi Kohno.   Dr. Dobbs Journal published an article describing the algorithm in November 2003.

Helix's design strength is 128 bits although the key length can go up to 256 bits.   Helix doesn't require any internal tables so Helix should work well in low memory situations and in hardware.   Helix requires a 128-bit nounce, a value used once, never twice.

The overhead per encrypted/authenticated message is low making Helix well suited for shorter messages of lower sensitivity where speed is important.   "Shorter" because the current implementations require the data be memory resident (no streaming).   "Lower sensitivity" because Helix is a new algorithm and the output digest is only 128 bits.   While the algorithm is new and perhaps not fully scrutinized by the cryptographic community, the authors have solid reputations.   They acknowledge that Helix may have some issues in coming years, but given its's speed combined with a singe pass to get ciphertext and a digest, Helix is certainly worthy of note.

Helix was originally written in Python and since then xhelix and CHelix have appeared.   xhelix is a Python extension written in C and easily compiled for most any platform.   CHelix is written in C++ for Windows.   Python users may also Psyco portions of the original Python Helix for faster run times.

Helix has been released into the public domain, xhelix has been released under the LGPL, and CHelix has a source distribution restriction to insure a single authoritative source.

Note: THIS CODE IS PROVIDED WITHOUT WARRANTY OR GUARANTEE OF ANY KIND.
             USE AT YOUR OWN RISK.

 
Helix: Fast Encryption and Authentication in a Single Cryptographic Primitive
      http://www.macfergus.com/helix/
      http://www.macfergus.com/helix/helix.pdf

helix.py
      helix.py  [dnld]

a helix demo program
      helix-demo.py  [dnld]

xhelix
      http://sourceforge.net/projects/xhelix/

CHelix
      http://www.naughter.com/helix.html

 

Larry Bugbee, March 2005