BTP(Biometric Template Protection)


들어가며..

예전에 지문인식 Security 관련하여 짧게 프로젝트를 진행했던 경험이 있습니다.

그리고 요즘 다시 찾아보니까 Hardware 보안 기술도 좋아지고 딥러닝 기술도 많이 발전하여 해당 기술과 결합하여 사용되는게 트렌드인것 같지만 그래도 고전기법에 대해서 모르곤 진행할 수 없기에 고전기법에 대해서 물론 기억도 가물가물하긴 하지만 오래되었지만 간략하게 정리를 해보려고 합니다.


BTP(Biometric Template Protection)은 생체정보를 토대로 생성된 템플릿을 보호하는 기법으로 주로 지문이나 얼굴인식, 홍채등을 사용할 때 지문과 얼굴 이미지를 보호하기 위해 사용합니다.

저는 지문인식만 해봤기 때문에 지문인식을 가지고만 얘기를 해보도록 하겠습니다.

보안 수준은 가장 취약한 부분이 해당 시스템의 보안 수준이 되기 때문에 당시의 생체인식의 경우에는 Spoofing이 제일 취약하다고 여겨졌으며 이 Spoofing을 해결하기 위해 많은 노력들이 이루어지고 있었습니다.

또한 생체 정보의 경우 한번 탈취당하게 되면 자신의 생체 정보를 변경하기 쉽지 않아 특히 보안에 더 신경을 써야합니다.

BTP는 이런 혹시 모를 자신의 생체 정보가 탈취당했을 상황을 대비하여 생체 정보에 약간의 변형을 가해 생체 정보가 탈취당하더라도 원래 생체 정보를 알 수 없게 하여 보호하는 역할을 합니다. => Cancelable Biometrics

그 중에서 이번에는 Cancelable Biometrics에서 가장 중요한 기법 중 하나인 Non Invertible Transformation에 대해서 알아보도록 하겠습니다.



Non Invertible Transformation

출처: https://www.researchgate.net/figure/Non-invertible-transformation-function_fig4_327156298

지문의 경우 지문 이미지 자체를 사용할수도 있지만 주로 지문들의 특징점(Minutiae)를 추출하여 Minutia의 x, y, theta 정보를 활용하는 방법이 있습니다. ※ Minutia의 복수형이 Minutiae 입니다.

어떤 정보를 활용하는지와 상관없이 주된 내용은 원래의 지문을 손상시키는 개념(Many to One)이며 이 손상시킨다는 것이 바로 Non invertible하다는 것을 의미합니다. 이렇게 Non invertible해야 지문 정보를 탈취당해도 원래의 지문 정보로 복원이 불가능합니다.

즉, 두 Minutia 이상의 점을 하나의 point로 이동시켜 만약 해당 정보가 탈취될 경우 복호화를 시키려고 해도 해당 point의 점이 원래 어디에서 왔는지 모르도록 합니다. 예를 들어, y = x^2에서 y가 4인 것을 알아도 x가 2인지 -2인지 정확하게 x의 값을 모르도록 한다는 개념입니다.

이런 변형을 가할 때 Locally Smooth, Globally Not Smooth 해야합니다.

Locally Smooth

locally smooth란 지문에서 minutia를 뽑을 때 늘 같은 x, y, theta가 뽑히기가 어렵습니다. 상황(지문 센서 인식시의 압력이나 수분의 정도, 틀어짐 정도)에 따라 약간의 오차가 발생할 수 있으며 이로 인해 minutia를 변형시킬 때 기존의 위치에서 변형시킬때의 point와 약간의 오차가 있는 minutia를 변형시킬 때의 point 사이 또한 약간의 오차만 존재해야한다는 것입니다.

즉, 원래는 동일한 minutia인데 상황에 따라 약간의 오차가 있을 때 그때마다 minutia가 변형되는 point가 너무 달라지게 되면 지문 인식 정확도가 떨어지게 됩니다.

Globally Not Smooth

그러나 이러한 locally smooth 성질을 만족하는 minutiae들이 변형된 전체 point들에 대해서는 globally not smooth 해야합니다.

즉, 좁은 지역적으로 봤을 땐 Transform 정도가 비슷해야하나 전체 집합적으로 봤을 때는 전혀 다른 집합이 되어야 합니다.


이를 측정하는 가장 간단한 방법은 transform 하기 전 원래의 minutiae들과 transform을 가한 후의 minutiae들의 매칭 스코어를 비교해보는 것입니다.

해당 스코어가 threshold(정하기가 무척 어렵지만..)를 넘지 않아야합니다.

그 밖에도
Non-invertibility: 역함수가 존재하지 않거나 실질적으로 계산이 불가해야함 / Many to One (두개 이상의 Minutiae가 하나의 Point로 변환)
Diversity: 같은 원본에서도 서로 다른 변환 Template이 생성 / 다른 서비스나 시스템에서는 동일한 생체 정보라도 다른 Template 발급 필요
Revocability: 유출될 경우 같은 생체정보로 새로운 Template 생성 가능 / 다른 변환 파라미터나 랜덤 시드 등으로 새로운 Transform이 가능해야함 등의 특징들이 존재합니다.


Performance

여기서 지문의 성능은 보통 FAR과 FRR로 표현을 하게됩니다.

FAR(False Acceptance Rate)의 경우 내 지문을 등록한 후 다른 사람의 지문을 인식했을 때 성공하는 비율입니다. (False Negative)

FRR(False Rejection Rate)의 경우 내 지문을 등록한 후 내 지문을 인식했는데 실패하는 비율을 나타냅니다. (False Positive)

보통 전자의 상황을 더 심각하게 취급하며 이 두 경우는 서로 영향을 주게 됩니다.

무슨 말인가 하면, threshold를 낮춰서 대부분의 지문이 서로 매칭된다고 하는 경우 FRR은 낮아지는 반면 FAR은 높아지게 됩니다. 반대로 threshold를 엄청 높일 경우 FRR은 높아지는 반면 FAR은 낮아지게 됩니다.

당연히 들어오는 모든 지문에 대해서 무조건 등록된 지문과 같다고 인식하게 한다면 내 지문을 등록하고 내 지문을 인식할 경우 실패할 경우가 없어져서 낮은 FRR을 기록할 수 있게되며 대신 다른 사람의 지문도 무조건 같다고 판단되므로 FAR이 높아지게 됩니다.
물론 반대의 경우에는 반대의 상황이 발생할 수 있습니다.

그래서 통상적으로 FMR을 토대로 판단을 하게 되는데 보통 백만분의 일의 FAR을 가질 때의 FRR을 나타내는 것으로 백만번의 비교 중 한번 False Negative가 발생할 때 이 때의 FRR 성능을 나타내는 것입니다.

BTP에는 여러 방식들이 존재하는데 지금까지 Cancelable Transform의 가장 중요한 특징인 Non Invertible Transform에 대해서 설명하였습니다.
이제 Cancelable Transform의 대표적인 3가지 방식에 대해서 설명드리도록 하겠습니다.


Cancelable Transform Method

Cancelable Transform의 방식에는 크게 3가지가 있는데
Cartesian 방식, Polar 방식, Functional 방식입니다.

위 세 가지 방식 모두 개념은 비슷합니다. (Many to One)
즉, 두개 이사의 Minutiae를 하나의 Point로 Transform하는 방식이며 Cartesian은 우리가 아는 직교 좌표계 위에 minutiae를 찍고 이를 기준으로 영역들을 나눈 후 변환됩니다.

같은 방식으로 Polar의 경우 극좌표계에서 minutiae들을 변환시키는 개념입니다.

출처: https://support.cognex.com/docs/cvl_900/web/EN/cvl_vision_tools/Content/Topics/VisionTools/Polar_Coordinate_Transfo_1.htm?TocPath=Image%20Transformation%20Tools|Polar%20Coordinate%20Transformation%20Tool|_____1

Functional의 경우 minutia 마다 위치를 바꾸는 함수와 각도를 바꾸는 함수를 준비한 후 함수에 x, y, theta를 넣어 나온 값들로 minutia를 이동시키는 방법으로 어떤 함수를 사용하는야 즉, 사용되는 함수가 성능의 주요 포인트가 됩니다.


일반적으로 성능을 봤을 때 Cartesian < Polar < Functional 순으로 성능이 좋으며 그 이유는 Boundary에 있는 Minutia들이 아무래도 Cartesian과 Polar의 경우 경계선이 존재하기 때문에 해당 부분에 겹쳐있는 minutia의 경우 약간의 오차에도 서로 다른 곳으로 변형되어 이동될 수 있기에 인식률이 Functional에 비해 낮습니다.

여기서 또 중요한 포인트는 위의 방법들을 사용할 때 대부분의 논문에서는 Align은 고려하지 않는다고 나와있습니다. 즉, 지문의 방향이나 절대적인 위치에 따라 Minutiae의 정보가 많이 다를 수 밖에 없는데 이를 Align한 후 Transform을 해야하지만 이 Align을 하는 방법이 제법 어렵습니다.

방법이 없는것은 아니지만 하나를 소개해드리면 지문에도 Core부분이 존재하게 되며 지문의 대략적인 모양이 있습니다. 대표적으로 많은 사람들의 지문이 Arch 모양을 이루고 있으며 이 Arch모양을 기준으로 Core와 Delta를 추출하여 이를 기준점으로 Align을 맞추는 방법이 있습니다.
자세한 내용은 Fast and accurate algorithm for core point detection in fingerprint images 논문에서 살펴보실 수 있습니다.

그리고 최근에는 딥러닝 등이 많이 발전하였기 때문에 CNN을 써서 Core/Delta 검출을 자동화 하는 논문도 많이 있습니다.

Deep Learning을 활용한 BTP와 관련된 논문은 아래에서 확인해볼 수 있습니다.
Deep Learning in the Field of Biometric Template Protection: An Overview