You might also interesting and there is an article to help us on that topic.
Fingerprint recognition is an active research area nowadays. An important component in fingerprint recognition systems is the fingerprint matching algorithm. According to the problem domain, fingerprint matching algorithms are classified in two categories: fingerprint verification algorithms and fingerprint identification algorithms.
This has been stated in CodeProject where you can find many articles related to .NET, it helps a lot.
If you want to go further, please read a newly published article: A Framework in C# for Fingerprint Verification
So if we want to have for Cambodia, example, to verify 1 person among 15 million people in Cambodia, above article can be a tool and machine learning can be a methodology to deal with huge data.