УДК 681.322.067
С.М. Гончаров, А.А. Суховей
Алгоритм формирования криптографического ключа на основе особых точек отпечатка пальца
Предложен алгоритм формирования криптографического ключа на основе особых точек отпечатка пальца. Алгоритм разделен на блоки, в которых представлены основные этапы обработки данных. Описаны процедуры формирования последовательностей при регистрации пользователя в системе и последующих этапах генерации криптографического ключа.
Ключевые слова: отпечаток пальца, особые точки, криптография, нечеткие данные, генерация ключа, биометрический ключ, папиллярные линии, уникальная последовательность.
Биометрические технологии в настоящее время достаточно быстро развиваются, что связано с повышением производительности современных информационных платформ и всеобщей информатизацией общества. На стыке биометрии и криптографии сформировалось научное направление, названное «биокриптография».
Одним из основных направлений современной биокриптографии являются исследования в области применения биометрических данных в криптографических приложениях. Для этого ключевым моментом является наличие алгоритмов выработки уникальных последовательностей пользователей на основе нечетких биометрических данных.
Такой подход позволяет применять хеш-функции к биометрическим последовательностям, которые могут быть использованы в качестве ключей для криптографических алгоритмов либо материала для генерации таких ключей.
Авторами разработан алгоритм генерации ключевой последовательности для шифрования с использованием биометрических данных на основе отпечатков пальцев, который содержит 4 основных блока:
1. Блок предварительной обработки отпечатка пальца.
2. Генерация биометрической последовательности.
3. Блок Fuzzy Extractor.
4. Генерация криптографического ключа на основе битовой последовательности.
Блок предварительной обработки отпечатка пальца
Выделение особых точек отпечатка пальца и его центра невозможно без предварительной обработки изображения, поскольку исходный материал является нечетким и содержит различные шумы, вызывающие ошибки в дальнейших вычислениях [1].
Предварительная обработка отпечатка пальца сводится к преобразованию полученного со сканера изображения в бинарную матрицу с толщиной папиллярного узора в 1 пиксель.
Для решения данной задачи на первом этапе производится сглаживающая фильтрация исходного изображения.
Пусть T - полутоновое изображение размера n*m; r - размер матрицы фильтра, 2
W(i,j) = 1/r ;i,je{0,r} - фильтрующая матрица, а teT - массив размера rxr, подвергающийся фильтрации, с центральной точкой T (i, j), тогда:
T(i,j) = £ jrw(u,v)*t(u,v), (1)
u=0v=0
где 0 < i < n,0 < j < m .
Полученное изображение бинаризуется относительно заданного порога. Для этого вся матрица делится на блоки размером H х H . В каждом блоке рассчитывается математическое ожидание, относительно которого все точки блока преобразуются в 1 или 0.
Проведение дальнейших преобразований предполагает получение изображения с толщиной линий папиллярного узора в 1 пиксель. Для решения этой задачи выбран алгоритм скелетизации изображения Зонга-Суня.
На выходе блока предварительной обработки отпечатка пальца формируется изображение с толщиной линий, равной одному пикселю.
Генерация биометрической последовательности
Блок генерации биометрической последовательности решает задачу преобразования входного набора биометрических данных в битовую последовательность, используемую далее для формирования криптографического ключа.
Авторами предлагается использование п, і-пороговой схемы Шамира для преобразования особых точек отпечатка пальца в биометрическую последовательность.
Для решения этой задачи вводится новая система координат с центром в точке O (центр папиллярного узора), относительно которой далее производятся вычисления координат особых точек.
Этапы блока в процедуре регистрации пользователя:
1. Вычислим координаты множества особых точек D = , dyi} предварительно обработанного изображения отпечатка пальца. Координаты рассматриваются как элементы поля GF(р), где p -простое число, задающее конечное поле GF(р).
2. Построим многочлен над полем GF(р) размерности п — 1, график которого проходит через подмножество особых точек D' с D :
3. На основе построенного полинома выберем произвольные точки и вычислим их координаты, сформировав множество R = {гх- , Гу- } такое, что:
где ? - произвольное целое число, являющееся константой для алгоритма и определяющее количе -ство точек, необходимых для восстановления полинома (1 < ? < п -1).
Таким образом, <R,n,р > в данной системе является открытой информацией, хранимой в базе данных.
4. Сформируем искомую биометрическую последовательность 5 путем конкатенации коэффициентов полинома а-.
Данная последовательность не требует защищенного хранилища, т.к. восстанавливается из вновь полученного отпечатка пальца.
Этапы блока в процедуре регистрации пользователя:
1. Во вновь полученном и предварительно обработанном отпечатке пальца выделим особые точки Д = Мх ,<%-} .
2. Сформируем полином на основе множества Я и ? точек из Е\, воспользовавшись интерполяционным многочленом Лагранжа:
Все операции в выражении выполняются в конечном поле ОГ(р).
Восстановить коэффициенты полинома возможно только при условии, что выбранные ? точки были использованы при формировании полинома Г (х), т.е. мощность множества Д, являющегося пересечением исходного и вновь полученного множеств особых точек папиллярного узора, не меньше значения ?:
3. Сформируем вновь полученную биометрическую последовательность путем конкатенации коэффициентов полинома Г'(х).
п—1
F(х) = ^ щХ modр, і=0
F(d'хі) = dyi mod р .
(2)
(3)
Щ = п—і,
(4)
гхі ^ d хі,
F'(х) = ^1і (х) Уі,
(5)
(6)
Выполнение всех вычислений в пределах конечного поля приводит к высокой точности системы, а использование проблемы восстановления полинома из определенного числа точек - к высокой степени безопасности.
Блок Fuzzy Extractor
Стандартные системы биометрической идентификации обладают серьезным недостатком -биометрический образ или последовательность при каждой генерации соответствуют исходному биометрическому материалу и относительно постоянны. В результате в случае компрометации такой последовательности заменить ее невозможно. Для решения данной проблемы авторами задаются следующие требования к биометрической системе:
- криптографический ключ при каждой процедуре регистрации пользователя в системе должен отличаться от предыдущего;
- один из входных параметров функции генерации ключа должен быть случайным;
- случайный параметр в открытом виде не должен нигде храниться, как и биометрическая последовательность.
Выполнение поставленных требований возможно путем генерации случайной последовательности, используемой в качестве соли в алгоритме генерации криптографического ключа. Алгоритмом решения этой задачи в биокриптографии является Fuzzy Extractor [2], позволяющий выполнить в том числе и требование формирования случайной последовательности (отсутствия хранилища) из вновь сгенерированной биометрической и открытой информации.
Пусть dis(a,b) - расстояние между двумя последовательностями а и b , а l - длина требуемой
уникальной последовательности U е {0,1}1, тогда метод генерации уникальной последовательности в контексте схемы fuzzy extractor будет содержать две функции (генерация закрытой последовательности и восстановление данной последовательности, используемой для аутентификации либо дальнейших криптографических преобразований):
1. Gen(S) =< U,P >, где S - биометрическая последовательность, полученная в предыдущем блоке; U - сгенерированная случайная последовательность; P - соответствующая открытая последовательность.
2. Rep(S',P) = U , где S' - вновь полученная биометрическая последовательность.
Пусть C - корректирующий код длины k, тогда Ce : W ^ {0,1}k - функция кодирования, а
Cd :{0,1}k ^ W - функция декодирования.
В этом случае алгоритм сводится к следующим выражениям:
1. P = S © CE (U).
2. Cd (S© P) = Cd (S© S© Ce (U)) = U', U' = U « dis(S,S') < r , где r - корректирующая способность кода C .
Таким образом, U - битовая последовательность, взаимосвязанная с биометрической информацией и не хранящаяся ни в каком виде, а получаемая каждый раз при генерации биометрической последовательности.
Генерация криптографического ключа на основе битовой последовательности
Выработка криптографического ключа производится на основе битовой биометрической последовательности S .
Для решения данной задачи используется RFC 2898, в частности, стандарт формирования ключа на основе пароля PBKDF2 (Password-Based Key Derivation Function) [3]:
K = PBKDF2(S,U,c,dkLen), (7)
где S - биометрическая последовательность; U - случайная битовая последовательность, определяющая возможность формирования ключа, отличного от предыдущих на каждом этапе регистрации пользователя в биокриптографической системе; с - количество итераций в PBKDF2; dkLen -длина ключа K .
Алгоритм PBKDF2, в отличие от аналогичных алгоритмов PBKDF и bcrypt, генерирует ключ не фиксированной длины, а заданной в качестве входного параметра, что является преимуществом для биокриптографической системы, поскольку описываемый алгоритм может быть использован для последующего применения в различных криптографических алгоритмах, а не только в тех, которые
используют ключи определенной длины. В декабре 2010 г. PBDKF2 был рекомендован для использования в криптографических системах Национальным институтом стандартов и технологий (National Institute of Standards and Technology, NIST) в США [4].
В результате работы всех блоков рассматриваемого алгоритма формируется открытая информация <R,n,p,P > , используемая для восстановления биометрической последовательности S и «соли» U , а также вырабатывается криптографический ключ K .
Создание алгоритмов, основанных на биометрии и криптографии, позволит разработать системы, в которых отсутствуют недостатки обоих направлений, например возможность хищения закрытого криптографического ключа или незащищенность биометрического образа.
Литература
1. Гончаров С.М. Этапы генерации уникальных ключевых последовательностей на основе папиллярного узора отпечатков пальцев / С.М. Гончаров, А.А. Суховей // Докл. Том. гос. ун-та систем управления и радиоэлектроники. - 2010. - № 1 (21), ч. 1. - С. 97-99.
2. Харин Е.А. Построение систем биометрической аутентификации с использованием генератора ключевых последовательностей на основе нечетких данных / Е.А. Харин, С.М. Гончаров, П.Н. Корнюшин // Матер. 50-й Всерос. межвуз. науч.-техн. конф. - Владивосток: ТОВМИ, 2007. - С. 112-115.
3. Kaliski, B. PKCS #5: Password-Based Cryptography Specification Version 2.0 // RFC 2898. - RSA Laboratories, 2000. - 34 p.
4. Turan M.S. Recommendation for Password-Based Key Derivation / M.S. Turan, E. Barker, W. Burr, L. Chen // NIST Special Publication 800-132. - National Institute of Standards and Technology, 2010. - 14 p.
Гончаров Сергей Михайлович
Канд. техн. наук, доцент, зав. каф. «Безопасность информации и телекоммуникационных систем» Морского государственного университета им. адм. Г.И. Невельского, г. Владивосток,
Тел.: +7-914-707-29-93
Эл. почта: sgprim@smtp.ru, goncharov@msun.ru Суховей Александр Александрович
Аспирант Морского государственного университета им. адм. Г.И. Невельского
Тел.: +7-902-488-23-10
Эл. почта: sumastal@mail.ru
Goncharov S.M., Sukhovey A.A
The algorithm for generating a cryptographic key based on the singular points of fingerprint
The algorithm for generating a cryptographic key based on the singular points of fingerprint is offered. The algorithm is divided into blocks, which are the main stages of processing. We describe the procedure of forming sequences with a user registration in system and the subsequent stages of the generation of cryptographic keys. Keywords: fingerprint, cryptography, fuzzy data, key generation, biometric key, papillary lines, unique sequence.