# Privately Generated Key Pairs for Post Quantum Cryptography in a Distributed Network
## 1 Introduction  
The crucial step needed to implement asymmetrical cryptographic schemes is to generate public/private key pairs and distribute them securely to a set of trusted users through open networks. Practical applications include existing credit cards, SIM cards, cryptocurrencies, secure mail, and many others. In structured implementations such as Public Key Infrastructures (PKIs), a trusted entity that can be called the Certificate Authority (CA) delegates the generation of the key pairs for each user to Hardware Security Modules (HSMs) or another private key store; a second trusted entity that can be called the Registration Authority (RA) solely keeps track of the public keys transmitted to each user by the CA. The transmission of the private keys to the users through an unsecured network is a weak link as third parties could intercept the keys or pretend to be the CA through man-in-the-middle attacks. We developed a challenge-response-pair (CRP) mechanism enabling each user to generate its own key pair with standardized asymmetrical algorithms while allowing the CA to independently verify that the public keys are legitimate and originate from approved users. The role of the RA is then kept unchanged, enabling users to use Digital Signature Algorithms (DSAs) and Key Encapsulation Mechanisms. In the new protocol, each user is equipped with a cryptographic table (CT) that can be generated from, not to be limited to, a Physical Unclonable Function (PUF), a biometric image, or simply a digital file. During an initial enrollment cycle that is performed securely, the users share their cryptographic tables with the CA. The process to generate on-demand a new key pair is summarized as follows:  
* The CA picks a random \"challenge\" and communicates it to the user. * The user receives a \"response\" from this \"challenge\", the CRP mechanism, and root of trust. * The user picks a random number to generate a public/private key pair. * The user sends back to the CA the public key and a digital signature. * The CA finally computes independently a \"response\" from the same \"challenge\" with the same CRP mechanism and Crypto-Table to verify the digital signature and the validity of the public key without having to ever know the private key. In the development of a prototype demonstrating the approach, we implemented two factors for the CRP mechanism: (1) a physical root of trust and template-less biometry and (2) standardized PQC algorithms. The National Institute of Standards and Technology (NIST) standardization effort has been narrowed over the last 7 years [1]. In July 2020, NIST announced the finalists for phase three of the program [2]: CRYSTALS-Kyber, CRYSTALS-Dilithium, SABER, NTRU, and FALCON with lattice cryptography [3; 4; 5; 6; 7]; RAINBOW with multivariate cryptography [8]; and Classic McEliece with code-based cryptography [9; 10]. The standardized software targets DSA applications and KEM. Recently, NIST decided to standardize lattice cryptography because of its relative maturity. Lattice-based algorithms exploit hard problems to resolve issues such as the closest vector problem (CVP) and learning with error (LWE) algorithms. NIST was able to gather impressive resources to demonstrate the strength of these algorithms for replacing the classical digital signature schemes due to the potential security threat of quantum computers' ability to break classical cryptographic schemes. We selected the standardized post-quantum algorithm CRYSTALS Dilithium, which is based on lattices and learning with errors. The end applications that were considered for commercial deployments included existing those for public key infrastructures, financial transactions, loyalty programs, online retail, travel, cryptocurrencies, banking cards, and private networks. The structure of this paper is as follows. Firstly, we start with the abstract and introduction.