This project implements a robust and secure biometric authentication system using cancelable biometric templates on the IITD (Indian Institute of Technology Delhi) touchless Iris database. The core idea is to transform raw biometric data into a non-reversible, revocable format, ensuring user privacy and enhancing security against data breaches.
- The Problem with Traditional Biometrics
- Our Solution: Cancelable Biometrics
- How It Works
- Key Features
- 🛠️ Technology Stack
- 🚀 Setup and Installation
- 📈 Performance & Results
- 🤝 Contributing
- 📄 License
Traditional biometric systems store a user's raw or partially processed data (like fingerprint minutiae or an iris scan). This poses significant security risks:
- Irrevocable: If this data is stolen, it's compromised forever. A user cannot simply "change" their fingerprint.
- Privacy Concerns: Direct storage of personal biometric data is a major privacy violation.
- Cross-Contamination: A breach in one system could compromise all other systems where the user has enrolled the same biometric data.
This project solves these problems by creating cancelable biometric templates. Instead of storing the user's actual biometric data, we store a mathematically distorted version of it.
The transformation is a one-way process. It is computationally infeasible to reconstruct the original biometric data from the stored template. If a template is ever compromised, it can be "canceled," and a new template can be generated for the same user by simply issuing a new secret key.
The workflow is designed for maximum security and privacy:
- Feature Extraction: The process begins with pre-extracted features from the IITD IRIS dataset.
- Secure Key Generation: For each user, a unique and strong digital key is generated using cryptographic hashing (SHA256). This key acts as a secret password.
- Orthogonal Matrix Transformation: The secret key is used as a seed to generate a unique orthogonal matrix via the Gram-Schmidt process. This matrix serves as the user's personal transformation function.
- Cancelable Template Creation: The user's raw biometric feature vector is multiplied by their unique orthogonal matrix. The result is the cancelable template, which is the only piece of data stored in the database.
- Model Training: A Deep Neural Network (DNN) is trained to recognize users based on these secure templates.
- Authentication: When a user logs in, their live biometric data is captured, transformed with their secret key, and the resulting template is fed to the DNN for verification.
- Enhanced Security: The system never stores raw biometric data, protecting it from direct theft.
- Privacy Preservation: The one-way transformation ensures a user's biological identity cannot be reverse-engineered.
- Revocability: If a database of templates is breached, they can all be rendered useless by issuing new keys to users.
- High Performance: The trained model achieves outstanding accuracy, demonstrating that top-tier security does not have to compromise performance.
- Python 3.10+
- TensorFlow & Keras: For building and training the deep learning model.
- Scikit-learn: For K-Fold cross-validation and performance metrics.
- NumPy: For numerical operations and matrix manipulations.
- Matplotlib: For plotting results and visualizations.
- Pickle: For data serialization and loading.
Follow these steps to get the project running on your local machine.
-
Clone the Repository
git clone https://github.com/your-username/your-repo-name.git cd your-repo-name -
Create and Activate a Virtual Environment
# For macOS/Linux python3 -m venv venv source venv/bin/activate # For Windows python -m venv venv venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
(Note: You will need to create a
requirements.txtfile containing the necessary libraries liketensorflow,numpy,scikit-learn, etc.) -
Prepare the Data
- Download the
Feature.zipfile containing the pre-extracted biometric features. - Place it in the root directory of the project.
- Unzip the file:
unzip Feature.zip -d .
- Download the
-
Run the Main Script
python your_main_script.py
The system's performance was rigorously evaluated and yielded excellent results:
- Validation Accuracy: The model achieved an accuracy of 99.7% on the validation set.
- Equal Error Rate (EER): The system reached an EER of approximately 0.00487%. This extremely low value signifies a near-perfect balance between security (low False Acceptance Rate) and convenience (low False Rejection Rate).
- K-Fold Cross-Validation: The model's robustness was confirmed with 5-fold cross-validation, maintaining an average accuracy of ~99.8% across all folds.
Model Accuracy & Loss
The training history shows a stable and fast convergence, with validation accuracy closely tracking the training accuracy.

FAR, FRR, and EER
The plot of False Acceptance Rate (FAR) and False Rejection Rate (FRR) shows a clear intersection point, defining the Equal Error Rate.

This project is licensed under the MIT License. See the LICENSE file for more details.