High speed architectures for leviathan: A binary tree based stream cipher

Darshan Sonecha, Bo Yang, Ramesh Karri, David A. MCGrew

Research output: Contribution to journalArticlepeer-review


Connectionless routed networks, built atop high-speed communication medium, require cryptographic algorithms capable of out-of-order keystream generation and high throughput. Binary tree based stream ciphers, of which Leviathan is an example, are capable of meeting both of these requirements. We investigate high-speed architectures for the binary tree traversal and show that the traversal approaches discussed can be extended to m-ary tree of height h. Of the two architectures presented, the pipeline architecture computes keystream at uniform rate and the parallel architecture bounds the worst-case variance in the time period between computations of consecutive output key words, which form the keystream. The design and implementation of Leviathan keystream generator based on the pipeline architecture for binary tree traversal are presented. We show that it is possible to achieve keystream generation rates approaching 1 Gbps with the pipeline architecture. The design was implemented in two parts, the keysetup and the keystream pipeline, targeting commercially available Xilinx XC2V4000 and XC2V3000 FPGAs. The keystream pipeline implementation operated at frequency of 50 MHz and occupied 6864 slices. The results were verified performing the timing simulation.

Original languageEnglish (US)
Pages (from-to)573-584
Number of pages12
JournalMicroprocessors and Microsystems
Issue number10
StatePublished - Dec 1 2004


  • Binary tree
  • Cryptography
  • Encryption
  • FPGA
  • Leviathan
  • Parallel
  • Pipeline
  • Stream cipher
  • VHDL

ASJC Scopus subject areas

  • Software
  • Hardware and Architecture
  • Computer Networks and Communications
  • Artificial Intelligence


Dive into the research topics of 'High speed architectures for leviathan: A binary tree based stream cipher'. Together they form a unique fingerprint.

Cite this