## 3 Methodology
### Random Permutation and Fuzzy Commitment
#### 3.3.2 Fuzzy Commitment  
Considering the distance error between the predicted binary code and the corresponding random binary code during the reconstruction stage, we can correct the predicted binary code using an error correction code (ECC) technique for obtaining a stable bio-key. Inspired by the fuzzy commitment, we construct a new fuzzy commitment to extract a robust bio-key from the binary code and adopt BCH code as the encoder and decoder of ECC in Figure 6. There are two advantages in our fuzzy commitment. The first is that the error correction code is utilized to reconstruct a stable bio-key from the predicted binary code during the decoder stage. The second is that generated helper data does not reveal the biometric data or bio-key during the encoder stage.  
In the next part, we describe how to construct the encoder of the fuzzy commitment from random binary code \(K\) and the permuted binary code \(K_{R}\) during the encoder stage. Then, we introduce how the decoder of the fuzzy commitment is designed to recover the bio-key from query permuted code \(K_{R}{}^{*}\) during the decoder stage.  
Encoder stage: Random binary code \(K\) is encoded by BCH to generate a binary codeword \(Z\):  
\[Z=ENC(K) \tag{7}\]  
where \(ENC(0)\) means the BCH encoder of the fuzzy commitment. Then, the generated \(Z\) is XORed with the permuted binary code \(K_{R}\) to generate AD:  
\[\text{AD}=Z\;\oplus\;K_{R}=ENC(K)\;\oplus\;K_{R} \tag{8}\]  
where \(\oplus\) denotes XOR operation and \(K_{R}\) is generated from \(K\) through random permutation module. Since \(K_{R}\) and \(K\) are random, the AD does not expose any biometric data and bio-key although it is public.  
Decoder stage: Query permuted code \(K_{R}^{*}\) is XORed with AD to yield \(Z{}^{*}\). Then, \(Z{}^{*}\) is decoded to generate the corresponding binary code \(K^{*}\) through the BCH decoder:  
\[K^{*}=DEC(Z^{*})=DEC(\text{AD}\;\oplus\;K_{R}^{*}) \tag{9}\]  
where \(DEC(0)\) denotes the BCH decoder of fuzzy commitment and \(K_{R}^{*}\) is obtained from query biometric image through DNN and random permutation modules. Finally, the bio-key \(K_{R}\) is reconstructed by XOR operation between \(K^{*}\) and AD:  
\[K_{R}\;=K^{*}\;\oplus\;\text{AD}=DEC(\text{AD}\;\oplus\;K_{R}^{*})\oplus\text {AD} \tag{10}\]  
Figure 6: The implementation process of the fuzzy commitment. During the encoder stage, binary codes \(K_{R}\) and \(K\) are encoded to auxiliary data AD through the fuzzy commitment encoder. During the decoder stage, the bio-key is decoded with the help of the AD and query permuted code \(K_{R}^{*}\) through the fuzzy commitment decoder.  
If the distance error \(|\epsilon|\) between permuted binary codes \(K_{R}\) and \(K_{R}^{*}\) is less than the error tolerance threshold \(\tau\) of the BCH code, the reconstructed \(K_{R}^{*}\) is equal to \(K_{R}\). It can be deduced as the following formula:  
\[\begin{array}{ll}K_{R}&=DEC(\text{AD}\,\oplus\,K_{R}^{*})\oplus\text{AD}\\ &=DEC(ENC(K)\,\oplus\,K_{R}\,\oplus\,K_{R}^{*})\oplus\text{AD}\\ &=DEC(ENC(K)\,\oplus\,\varepsilon\,)\oplus\\ &=K_{R}\end{array} \tag{11}\]  
The constructed fuzzy commitment has two characteristics: reliability and security. In terms of reliability, the bio-key can be correctly recovered when \(|\epsilon|\) of a genuine query is less than \(\tau\). On the contrary, the bio-key cannot be correctly reconstructed when \(|\epsilon|\) of imposter query is larger than \(\tau\), which has the ECC ability and increases the stability of the bio-key. In terms of security, the generated AD does not reveal biometric data or the bio-key because input binary codes \(K_{R}\) and \(K\) are uniformly distributed during the encoder stage, which can enhance the security of bio-key generation.