In cryptography, Achterbahn is the name of a synchronous stream cipher algorithm submitted to the eSTREAM Project of the eCRYPT network. In the final specification the cipher is called ACHTERBAHN-128/80, because it supports the key lengths of 80 bits and 128 bits, respectively. [1] Achterbahn was developed by Berndt Gammel, Rainer Göttfert and Oliver Kniffler. Achterbahn means rollercoaster (in German), though a literal translation of the term would be eight-track, which indicates that the cipher can encrypt eight bit streams in parallel.
The parameters of the cipher are given in the following table:
ACHTERBAHN-80 | ACHTERBAHN-128 | |
---|---|---|
Max. key length | 80 bit | 128 bit |
Max. IV length | 80 bit | 128 bit |
Max. frame length | 244 | 244 |
Internal state | 297 bit | 351 bit |
ACHTERBAHN-128 is downward compatible and can produce the same keystream as ACHTERBAHN-80 if so desired. The keystream generator of ACHTERBAHN-128/80 is based on the design principle of the nonlinear combination generator, however it deploys primitive nonlinear feedback shift registers ( NLFSR) instead of linear ones ( LFSR).
There are no known cryptanalytic attacks against ACHTERBAHN-128/80 for the tabulated parameters that are faster than brute force attack. Recent analysis showed that attacks are possible if larger frame ( packet) lengths are used in a communication protocol. [2] [3] [4] The cipher's authors recommend a maximum frame length of 244 bits. [5] This value does however not imply practical limitations.
The ACHTERBAHN-128/80 stream cipher is optimized for hardware applications with restricted resources, such as limited gate count and power consumption. An implementation of ACHTERBAHN-80 has a design size of only 2188 gate equivalents (Nand-GE) in a standard CMOS technology and delivers a throughput of up to 400 Megabit/s. This makes it suitable for RFID tags.[ citation needed] A high-speed implementation with a throughput of 8 Gigabit/s has a design size of 8651 Nand-GE. [6]
{{
cite journal}}
: Cite journal requires |journal=
(
help)