Download PDF Download PDF

Symposium on Trends in Functional Programming, Date: 2012/06/12 - 2012/06/14, Location: St Andrews, U.K.

Publication date: 2012-06-01

Author:

Wolfs, Davy
Aerts, Kris ; Mentens, Nele

Keywords:

cryptography, FPGA, functional programming, Lava, VHDL-generation

Abstract:

This paper describes a project that helps hardware developers in generating cryptographic hardware. Instead of supplying an expressive programming environment giving full control to the user and allowing him to implement any algorithm, the tool removes the burden of having to program and offers the user a choice between a number of cryptographic algorithms that can be generated in hardware to the desired specification, i.e. specifying data width and non-functional requirements concerning area, speed, power consumption and the desired physical security level. The tool will also automatically take care of countermeasures against side channels attacks. The tool builds on the success of applying functional languages in the field of hardware design, cryptography and design exploration using higher order functions, and thus uses Haskell and Lava to implement the tool. However, functional programming is not exposed to the end user as the tool is positioned as an EDA (Electronic Design Automation) tool, instead of as a programming environment. Therefore the usage of functional programming is only visible in the quality of the results.