English

Verified Correctness and Security of mbedTLS HMAC-DRBG

Cryptography and Security 2017-08-30 v1

Abstract

We have formalized the functional specification of HMAC-DRBG (NIST 800-90A), and we have proved its cryptographic security--that its output is pseudorandom--using a hybrid game-based proof. We have also proved that the mbedTLS implementation (C program) correctly implements this functional specification. That proof composes with an existing C compiler correctness proof to guarantee, end-to-end, that the machine language program gives strong pseudorandomness. All proofs (hybrid games, C program verification, compiler, and their composition) are machine-checked in the Coq proof assistant. Our proofs are modular: the hybrid game proof holds on any implementation of HMAC-DRBG that satisfies our functional specification. Therefore, our functional specification can serve as a high-assurance reference.

Keywords

Cite

@article{arxiv.1708.08542,
  title  = {Verified Correctness and Security of mbedTLS HMAC-DRBG},
  author = {Katherine Q. Ye and Matthew Green and Naphat Sanguansin and Lennart Beringer and Adam Petcher and Andrew W. Appel},
  journal= {arXiv preprint arXiv:1708.08542},
  year   = {2017}
}

Comments

Appearing in CCS '17