Title :
Hardware/software co-verification of cryptographic algorithms using Cryptol
Author :
Erkok, Levent ; Carlsson, Magnus ; Wick, Adam
Author_Institution :
Galois Inc., Portland, OR, USA
Abstract :
Cryptol is a programming language designed for specifying cryptographic algorithms. Despite its high-level modeling nature, Cryptol programs are fully executable. Further, a large subset of Cryptol can be automatically synthesized to hardware. To meet the inherent high-assurance requirements of cryptographic systems, Cryptol comes with a suite of formal-methods based tools that enable users to perform various program verification tasks. In this paper, we provide an overview of Cryptol and its verification toolset, especially focusing on the co-verification of third-party VHDL implementations against highlevel Cryptol specifications. As a case study, we demonstrate the technique on two hand-written VHDL implementations of the Skein hash algorithm.
Keywords :
cryptography; hardware description languages; program verification; programming languages; Skein hash algorithm; cryptographic algorithms; formal-methods based tool; hardware-software co-verification; high-level Cryptol specification; program verification; programming language; third-party VHDL implementations; Algorithm design and analysis; Arithmetic; Availability; Computer languages; Cryptography; Domain specific languages; Hardware; Runtime; Safety; Software algorithms; Cryptography; Equivalence checking; HW/SW Co-verification; Specification and Verification;
Conference_Titel :
Formal Methods in Computer-Aided Design, 2009. FMCAD 2009
Conference_Location :
Austin, TX
Print_ISBN :
978-1-4244-4966-8
Electronic_ISBN :
978-1-4244-4966-8
DOI :
10.1109/FMCAD.2009.5351121