I assume that there's some code that converts your fingerprint into some sort of unique identifier but I'm wondering how it does this? How is the fingerprint scan data stored?
All answers/suggestions welcome.
When I got my S10 and everyone talked about the new fingerprint sensor technology I got curious and researched myself, I found a Computerphile [1] video that does a great job at explaining how fingerprint recognition works.
First you acquire a fingerprint image from the sensor. A fingerprint is composed of small ridges and valleys. Every ridge will make physical contact with the sensing device in some way, so that allows for the system to obtain a black and white image showing depth. From there the standard features that are detected is when the ridges either end or split into two ridges (think of them as corners in other image recognition tasks).
In order to obtain the location and direction of the feature points (referred to as minutia) the system algorithms usually segment the image into fingerprint/noise, performs some signal enhancements, changes it into a skeleton (i.e. each ridge is represented by a 1px thick line), and then gets the location+angle of minutia. Matching can have a number of additional features collected, but assuming the process is as described you can find a similarity score by finding the best rotational+translational fitting from two inputs and seeing how many pairs of minutia line up. From there it's just a matter of putting a threshold on the similarity score to decide if it's a match.
My best guess is that the keyboard itself is running it's own Secure Enclave and is running a modern incantation of BridgeOS and it uses a pairing model[2] to the host Mac.
1. https://support.apple.com/guide/security/welcome/web
2. https://support.apple.com/guide/security/pairing-model-secur...