Compact Hardware Implementations of ChaCha, BLAKE, Threefish, and Skein on FPGA
IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I-REGULAR PAPERS, vol.61, no.2, pp.485-498, 2014 (SCI-Expanded, Scopus)
- Publication Type: Article / Article
- Volume: 61 Issue: 2
- Publication Date: 2014
- Doi Number: 10.1109/tcsi.2013.2278385
- Journal Name: IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I-REGULAR PAPERS
- Journal Indexes: Science Citation Index Expanded (SCI-EXPANDED), Scopus
- Page Numbers: pp.485-498
- Keywords: Ciphers, cryptography, coprocessors, field programmable gate arrays
- Open Archive Collection: AVESIS Open Access Collection
- Anadolu University Affiliated: Yes
Abstract
The cryptographic hash functions BLAKE and Skein are built from the ChaCha stream cipher and the tweakable Threefish block cipher, respectively. Interestingly enough, they are based on the same arithmetic operations, and the same design philosophy allows one to design lightweight coprocessors for hashing and encryption. The key element of our approach is to take advantage of the parallelism of the algorithms considered in this work to deeply pipeline our Arithmetic and Logic Units, and to avoid data dependencies by interleaving independent tasks. We show for instance that a fully autonomous implementation of BLAKE and ChaCha on a Xilinx Virtex-6 device occupies 144 slices and three memory blocks, and achieves competitive throughputs. In order to offer the same features, a coprocessor implementing Skein and Threefish requires a substantial higher slice count.