Доброго дня!
За очень недорого тут достался мне оптический USB-сканер отпечатка пальца (пока на руках нет, едет). Собственно, с темой алгоритмов работы подобных устройств не знаком, но захотелось мне его приспособить как средство для входа в систему/программы/сайты и для расшифровки данных. Скачал SDK, посмотрел описания/сигнатуры предоставляемого API... и понимаю, что аппарат то очень не точный, судя по всему.
Насколько я понял работает это так:
1. При сканировании отпечатка получается изображение (BMP, например).
2. Эта картинка по некоторому алгоритму превращается в template (набор байтов, полученный с помощью некоторого алгоритма из BMP).
2а. Темплейты могут мерджиться (то есть из нескольких разных получается один обобщенный - я так понимаю, это нужно для того, чтобы палец при разном положении на считывающем устройстве таки идентифицировался как один и тот же).
3. Эти темплейты помещаются в БД, и с ними потом и происходит сравнение. НО результат сравнения это не true/false, а некоторый score (уровень соответствия, шкала)!
Вопросы - правильно ли я понимаю, что получить однозначно одинаковый темплейт для однозначно одинакового пальца не выйдет? То есть сравнение вероятностное, а не конкретное? Беспокоит это, так как думалось, что будет возможно использовать некий "хэш пальца" в качестве ключа шифрования, но получается, что так не выйдет и придется хранить промежуточные данные в БД...
Кто сталкивался с подобными устройствами - правильно ли я понимаю, что однозначно преобразовать конкретный рисунок в конкретный ключ не выйдет?
Спасибо.
За очень недорого тут достался мне оптический USB-сканер отпечатка пальца (пока на руках нет, едет). Собственно, с темой алгоритмов работы подобных устройств не знаком, но захотелось мне его приспособить как средство для входа в систему/программы/сайты и для расшифровки данных. Скачал SDK, посмотрел описания/сигнатуры предоставляемого API... и понимаю, что аппарат то очень не точный, судя по всему.
Насколько я понял работает это так:
1. При сканировании отпечатка получается изображение (BMP, например).
2. Эта картинка по некоторому алгоритму превращается в template (набор байтов, полученный с помощью некоторого алгоритма из BMP).
2а. Темплейты могут мерджиться (то есть из нескольких разных получается один обобщенный - я так понимаю, это нужно для того, чтобы палец при разном положении на считывающем устройстве таки идентифицировался как один и тот же).
3. Эти темплейты помещаются в БД, и с ними потом и происходит сравнение. НО результат сравнения это не true/false, а некоторый score (уровень соответствия, шкала)!
Вопросы - правильно ли я понимаю, что получить однозначно одинаковый темплейт для однозначно одинакового пальца не выйдет? То есть сравнение вероятностное, а не конкретное? Беспокоит это, так как думалось, что будет возможно использовать некий "хэш пальца" в качестве ключа шифрования, но получается, что так не выйдет и придется хранить промежуточные данные в БД...
Кто сталкивался с подобными устройствами - правильно ли я понимаю, что однозначно преобразовать конкретный рисунок в конкретный ключ не выйдет?
Спасибо.