# Challenge-Response Pair Mechanisms and Multi-Factor Authentication Schemes to Protect Private Keys
## 2 Description of the Protocol Protecting Private Keys with MFA
### Description of the Enrollment Cycle  
An enrollment cycle is needed to record the reference tables generated from the multiple factors of the MFA. The operation can be solely controlled by a user with a terminal device equipped with physical tokens, biometric schemes, and virtual tokens. The enrollment cycle can also be completed in cooperation with a service company, called a Keystore, which provides the first random number RN1, and the physical token, as shown in Figure 1.  
The first random number is concatenated with the password to generate the set of responses used by each of the multiple factors of authentication, for example a physical token, biometric scheme, and virtual token. From each factor, an \(n\times n\) reference table is generated from the responses: CT-T from the physical token, CT-Bio from the biometric image, CT-VT from the virtual token. A combined \(n\times n\) reference table CT is computed from the multiple reference tables, for example, CT-T, CT-bio, and CT-VT. Each position of the three tables contains one of the three states, \"0\", \"1\", or \"x\". One way to compute the combined table is to apply an addition modulo 2 as follows:  
* Let \(a_{ij}\) be the state contained at each position \((i,j)\) of the \(n\times n\) table CT-T generated from the physical token.
* Let \(b_{ij}\) be the state contained at each position \((i,j)\) of the \(n\times n\) table CT-bio generated from the biometric scheme.
* Let \(c_{ij}\) be the state contained at each position \((i,j)\) of the \(n\times n\) table CT-VT generated from the biometric scheme.  
* Let \(d_{ij}\) be the state contained at each position (\(i\), \(j\)) of the resulting \(n\times n\) table CT computed from CT-T, CT-Bio, and CT-VT. They are computed as follows: \(\circ\) If all \(a_{ij}\), \(b_{ij}\), and \(c_{ij}\) consist only of \"0\" or \"1\" states then: \[d_{ij}=\left(a_{ij}+b_{ij}+c_{ij}\right)\ mod2=a_{ij}\oplus b_{ij}\oplus c_{ij}\] \(\circ\) Otherwise: \(d_{ij}=x\)  
For each position, when the information contained in one of the tables is a flaky state \"x\", this results in a state of \"x\" in the combined table CT. The addition mod 2 with three factors can be generalized to compute reference tables with N factors of authentication. We then use the notation \(a_{ij})k\) for the state contained at position (\(i\), \(j\)) of the table generated from the factor \(k\), with \(k\in\{1,N\}\). The computed \(d_{ij}\) is given by:  
\(\circ\) If all \(a_{ij})k\) regardless of k are states \"0\" or \"1\", then: \[d_{ij}=\sum_{k=1}^{k=N}a_{ij})k\ mod2;\] \(\circ\) Otherwise: \(d_{ij}=x\)  
The small example shown in Figure 2 describes the computation of three factors, k = 3 and \(n=8\). The reference tables CT-T generated from the token, and CT-Bio from the biometric image contain flaky positions; however, the table CT-VT, which is generated from a blockchain-based virtual token, contains only states \"0\" and \"1\".  
Figure 1: Example of enrollment cycle with multiple factors of authentication completed by a user in cooperation with a Keystore corporation. The Keystore transmits the random number RN1 and the token while the user transmits a visual image, the password, and a virtual token. Both parties independently generate the reference table CT through the CRP mechanism.