Improving Software Quality in Cryptography Standardization Projects

Matthias J. Kannwischer, Peter Schwabe, Douglas Stebila, and Thom Wiggers

Abstract

The NIST post-quantum cryptography (PQC) standardization project is probably the largest and most ambitious cryptography standardization effort to date, and as such it makes an excellent case study of cryptography standardization projects. It is expected that with the end of round 3 in early 2022, NIST will announce the first set of primitives to advance to standardization, so it seems like a good time to look back and see what lessons can be learned from this effort. In this paper, we take a look at one specific aspect of the NIST PQC project: software implementations. We observe that many implementations included as a mandatory part of the submission packages were of poor quality and ignored decades-old standard techniques from software engineering to guarantee a certain baseline quality level. As a consequence, it was not possible to readily use those implementations in experiments for post-quantum protocol migration and software optimization efforts without first spending a significant amount of time to clean up the submitted reference implementations. We do not mean to criticize cryptographers who submitted proposals, including software implementations, to NIST PQC: after all, it cannot reasonably be expected from every cryptographer to also have expertise in software engineering. Instead, we suggest how standardization bodies like NIST can improve the software-submission process in future efforts to avoid such issues with submitted software. More specifically, we present PQClean, an extensive (continuous-integration) testing framework for PQC software, which now also contains "clean" implementations of the NIST round 3 candidate schemes. We argue that the availability of such a framework---either in an online continuous-integration setup, or just as an offline testing system---long before the submission deadline would have resulted in much better implementations included in NIST PQC submissions and overall would have saved the community and probably also NIST a lot of time and effort.

Available format(s)
Category
Implementation
Publication info
Published elsewhere. Security Standardization Research 2022
Keywords
NIST PQCpost-quantum implementationstesting cryptographic software
Contact author(s)
matthias @ kannwischer eu
peter @ cryptojedi org
dstebila @ uwaterloo ca
thom @ thomwiggers nl
History
2022-04-13: revised
See all versions
Short URL
https://ia.cr/2022/337

CC BY

BibTeX

@misc{cryptoeprint:2022/337,
author = {Matthias J.  Kannwischer and Peter Schwabe and Douglas Stebila and Thom Wiggers},
title = {Improving Software Quality in Cryptography Standardization Projects},
howpublished = {Cryptology ePrint Archive, Paper 2022/337},
year = {2022},
note = {\url{https://eprint.iacr.org/2022/337}},
url = {https://eprint.iacr.org/2022/337}
}

Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.