I. 서론
오늘날 클라우드 환경과 스마트 기기의 보급으로 다양한 온라인 서비스가 활성화 되면서 기기의 생체정보 또는 위치정보를 사용한 인증이 많아지고 있다. 그 중 스마트폰 등 다양한 디바이스에서 생체정보를 활용하여 안전하고 편리한 생체인증 방법이 주목받고 있다.[1]
생체정보는 지문, 얼굴, 장문, 손 모양, 홍채, 정맥 등의 생물학적 특징과 서명, 음성, 키보드 입력, 걸음걸이 등의 행동학적 특징으로 구성되어 있다. 이러한 사용자의 생체정보를 이용하여 사용자의 편리함과 안전성을 유지하며 사용자의 자각을 최소화하는 차세대 인증연구가 활발하게 이루어지고 있다. 하지만 생체정보로부터 추출된 인증정보 템플릿을 암호화 되지 않은 상태로 저장할 경우 정보의 유출로 인해 야기되는 피해는 지식기반인증과 소유기반인증을 사용할 때보다 더 크다고 할 수 있다. 이는 사용자의 생체정보가 변경되지 않기에 지식기반인증 또는 소유기반인증처럼 삭제하고 재발급하기 어렵다는 것에 근거한다.[2]
따라서 생체정보를 이용한 인증은 생체정보를 안전하게 보호할 수 있는 안전한 저장소(Trust Zone)가 갖추어진 스마트폰과 같은 디바이스에서 제한적으로 사용되어야 한다. 하지만 4차 산업혁명 시대에는 다양한 응용분야에서 생체정보나 위치정보 등 인증정보를 활용하여 온라인상에서 안전하게 인증할 수 있는 환경이 요구되고 있다. 이러한 온라인상의 생체정보를 활용한 인증은 일반적으로 인증서버에 인증정보템플릿을 암호화하여 저장하고, 인증요청 시 인증정보를 복호화하여 평문상태에서 인증을 시도한다. 따라서 인증서버는 인증정보를 평문상태에서 알 수 있으며 인증서버의 해킹 또는 관리자의 부주의로 인한 유출 문제가 대두된다. 따라서 안전한 하드웨어를 사용할 수 없는 온라인 인증환경에서도 인증정보를 암호화하여 복호화하지 않은 상태에서 인증할 수 있는 인증기법과 인증정보 템플릿을 안전하게 보호할 수 있는 기법이 필요하다.
본 논문에서는 함수암호를 이용하여 암호화된 상태에서 인증정보의 노출 없이 안전하게 인증할 수 있는 방법을 제안한다.
2장에서는 생체정보를 인증하기 위한 Fuzzy 인증과 Distance measure 방식에 대하여 소개하고 3장에서 안전성을 보장할 DDH기반의 함수암호를 소개한다. 4장에서는 함수암호를 이용한 안전한 인증 Template 보호 방법을 제안한다. 5장에서는 결론을 맺는다.
II. 생체 인증 정보
2.1 Fuzzy 인증
생체정보를 이용한 인증은 Noise가 존재하며 인가자를 비인가자로 판단하는 본인거부 에러(FRR)와 비인가자를 인가자로 판단하는 오인식 에러(FAR)가 발생한다. 따라서 등록된 생체정보와 인증받을 정보 간의 차이가 발생한다. Fuzzy 인증기법은 Distance measure를 사용하여 Template 정보와 인증 대상 정보와의 유사도 분석 결과를 도출한다. 이때 유사도 결과는 일치, 대략 일치, 대략 불일치, 불일치 등으로 표현되며 생체정보의 특성에 따라 적당한 거리함수를 이용하여 판단한다.[3]
Fig. 1. Fuzzy Authentication
2.2 Distance measure
거리함수는 크게 유클리디언 거리함수와 비유클리디언 거리함수로 구분된다. 유클리디언 거리함수에는 대표적으로 L2norm distance, \(L_{\infty}\)norm distance 그리고 norm distance가 있다. 비 유클리디언 거리함수는 집합론에 근거한 Jaccard distance, Cosine 함수에 근거한 Cosine distance가 있다. Hamming distance는 서로 다른 비트의 개수를 출력하는 방식이다.[4]
2.2.1 Hamming distance를 이용한 유사도 비교
지문, 홍채, 얼굴인식 등 생체정보를 이용한 유사도 기법으로 Hamming distance(HD)를 많이 사용한다. Sudha Gupta는 HD를 이용하여 홍채 인식 방법을 제안하였다.[5] Ujwalla Gawande와 Anushree Spare등은 HD를 이용하여 지문정보와 홍채정보를 결합한 생체정보를 인식하는 방법을 제안하였다.[6] 이러한 HD는 데이터 X, Y의 불일치하는 비트 개수의 합으로 볼 수 있다. 따라서 n 비트의 데이터 \(X=\left(x_{1}, \ldots, x_{n}\right), Y=\left(y_{1}, \ldots, y_{n}\right)\)를 비교할 때, Hamming distance는 다음과 같이 정의 될 수 있다.[7]
\(H D(X, Y)=\frac{1}{n} \sum_{j-1}^{n} X_{j} \oplus Y_{j}\)
2.2.2 Euclidean distance를 이용한 유사도 비교
유클리드 거리(Euclidean distance)는 다양한 이미지 인식을 위해 채택되어 매우 유용하게 사용된다.[8] 홍채와 지문 같은 생체정보는 등록된 이미지 벡터와 인증 요청된 이미지 벡터를 비교함으로써 인증 처리한다. 인증처리 방법은 두 벡터의 유클리드 거리를 계산하고, 계산된 거리를 임계값과 비교하여 인증한다. 이때 유클리드 거리가 임계값보다 작거나 같으면 인증 알고리즘은 ‘일치’ 그렇지 않으면 ‘불일치’를 반환한다.
l길이의 벡터 \(X=\left(x_{1}, x_{2}, \cdots, x_{l}\right)\),\(Y=\left(y_{1}, y_{2}, \cdots, y_{l}\right)\)그리고 임계값을 r 라 하면 두 벡터 사이의 유클리드 거리 \(d(X, Y)\)는 다음과 같이 표현 할 수 있다.
\(d(X, Y)=\sqrt{\sum_{i=1}^{l}\left(x_{i}-y_{i}\right)^{2}}\)
위 유클리드 거리 d(X,Y)를 내적으로 표현하면 다음과 같다.
\(d(X, Y)=\sqrt{\langle X-Y, X-Y\rangle}\)
따라서 \(d(X, Y)<\tau\)
III. DDH 가정에 근거한 함수암호
3.1 함수암호
공개키 암호는 평문을 공개키를 이용하여 암호화하고 개인키로 암호문을 복호화하여 평문을 얻는다. 하지만 함수암호는 평문을 공개키로 암호화하고 주어진 함수와 관련된 비밀키를 사용하여 암호문을 평문으로 복호화하지 않고 함수값 만을 얻을 수 있다. 따라서 함수암호를 이용하면 인증정보를 암호화한 상태에서 인증을 수행할 수 있는 가능성을 제시하고 있다. 함수암호는 일반적으로 다음 4가지 알고리즘으로 구성되어 있다.[9]
Fig. 2. Function Encryption Algorithm
● \(\operatorname{Setup}\left(1^{\lambda}\right)\): 보안상수 \(1^{\lambda}\)를 입력으로 하여 마스터 공개키 mpk와 마스터 비밀키 msk를 생성한다.
● Keygen(msk,X): msk와 X를 이용하여 함수 f에 근거한 비밀키 sk(f)를 생성한다.
● Encrypt(mpk,Y): mpk를 이용하여 입력값 Y를 암호문 Ct로 암호화 한다.
● Decrypt(sk(f),Ct): Ct로부터 비밀키 sk(f)를 이용하여 f(Y)를 얻는다.
3.2 DDH 가정에 근거한 내적함수
Decisional Diffie-Hellman(DDH)은 군 G는 위수가 소수 p인 생성원 g로 생성된 순환군이라 하면 \(\left(g^{a}, g^{b}, g^{a b}\right)\)이 주어졌을 때 \(\left(g^{a}, g^{b}, g^{c}\right)\)를 계산적으로 구분할 수 없다는 것을 가정한다. Abdalla가 제안한 다음과 같은 함수암호는 DDH 가정에 근거한 설계로 선택적 평문 공격에 안전하다고 증명되었다.[10]
Fig. 3. Abdalla function encryption scheme[10]
IV. 함수암호를 이용한 적용한 인증기법 설계
본 장에서는 Abdalla의 함수암호기법을 이용한 인증기법을 제안한다. 제안하는 인증기법은 사전단계, 등록단계, 인증단계로 구성된 3가지 단계로 나누어져 있다. 4.1에서는 난수를 안전하게 저장할 수 없는 디바이스의 경우에 적합한 인증 프로토콜을 제안하며 4.2에서는 난수를 안전하게 저장할 수 있는 디바이스에 적합한 인증 프로토콜을 제안한다.
Fig. 4. Suggested protocol
4.1 제안 인증기법
본 소절에서는 난수를 안전하게 저장할 수 없는 디바이스에 적합한 인증 프로토콜을 제안한다.
4.1.1 사전단계
제안 인증 시스템에 사용될 파라미터와 군 G, 소수 p , 생성원 g를 설정한다. 또한 시스템의 마스터 공개키 mpk 와 마스터 비밀키 msk를 생성한다.
●\(1^{\lambda}\) : 보안 상수
● l : 암호문의 벡터의 길이
●\(\text { Group Gen }\left(1^{\lambda}\right):(G, p, g): G=<g>=\left\{g^{1}, \ldots, g^{p}\right\}\)
●\(\begin{aligned} \operatorname{Setup}\left(1^{\lambda}, 1^{l}\right): m s k &=\boldsymbol{s}=\left(s_{1}, \ldots, s_{l}\right) \in Z_{p}^{l} \\ m p k &=\left(h_{1}, \ldots, h_{l}\right), h_{i}=g^{s} \end{aligned}\)
4.1.2 등록단계
인증정보 X를 등록 요청할 사용자 A는 다음 과정을 실행한다.
■ 사용자 A(User A): 인증정보 X를 추출한 후 난수 r을 선택하고 rX , XA 를 생성한다. \(\left(I D_{A}, r X, g^{r}, X_{A}\right)\)를 안전한 채널을 통해 서버에 송신하여 등록을 요청한다. IDA는 사용자의 신분정보를 나타낸다.
\(\text { 1) } X=\left(x_{1}, x_{2}, \ldots, x_{l}\right) \in Z_{p}^{l}\)
\(\text { 2) } r \longleftarrow Z_{p}\)
\(\text { 3) } r X=r\left(x_{1}, x_{2}, \ldots, x_{l}\right) \bmod p\)
\(\text { 4) } X_{A}=g^{r<X, X>}\)
■ 서버(Sever): \(\left(I D_{A}, r X, g^{r}, X_{A}\right)\)를 수신한 서버는 다음 Keygen 알고리즘을 통해 skf를 생성한다.
\(\begin{aligned}
\operatorname{Key} \operatorname{Gen}(m s k, f) \rightarrow s k_{f} &=<m s k, r X>\\
&=r<\boldsymbol{s}, X>(\bmod p) \\
&=r \sum s_{i} x_{i} \quad(\bmod p)
\end{aligned}\)
또한 사용자 IDA의 인증요청 시 검증의 효율성을 위하여 본 제안기법에서는 검증테이블(Authentication Table)을 사용한다. 검증테이블에는 인증여부를 결정하기 위한 임계값 r을 정하고 두 벡터 X, Y의 유클리드거리 함수 \(d(X, Y)\)값이 \(0 \leq d(X, Y)^{2} \leq \tau\)을 만족하는 모든 경우에 대해 Table 2와 같은 효율적인 검증테이블(Authentication Table)을 만든다.
Table 1. Authentication Table
검증테이블은 저장공간의 효율성을 위해서 \(I D_{A} \| g^{r[d(X, Y)]^{2}}\)값에 해시 H를 적용하여 \(H\left(I D_{A} \| g^{r[d(X, Y)]^{2}}\right)\)만든 후 Table에 저장한다.
4.1.3 인증단계
(1) 요청단계
인증 요청할 사용자는 자신의 ID인 IDA를 서버에 송신한 후 서버는 난수 t를 생성하여 IDA에 해당되는 gr을 이용하여 grt를 계산하고 사용자에게 송신한다. 를 수신한 사용자는 다음 과정을 실행한다.
■ 사용자 A(User A): 인증정보 Y를 추출한 후 난수 k을 선택하고 Ct그리고 Ya를 생성한다. \(\left(I D_{A}, C t, Y_{A}\right)\)를 서버에 송신하여 인증을 요청한다.
● \(\text {Encrypt}(m p k, Y) \rightarrow C t=\left(c t_{0},\left(c t_{i}\right)_{i \in[l]}\right)\)
\(\text { 1) } Y=\left(y_{1}, y_{2}, \ldots, y_{l}\right) \in Z_{p}^{l}\)
\(2) k \leftarrow Z_{p}, c t_{0}=g^{k}, c t_{i}=h_{i}^{k} g^{y_{i}}, i \in[l]\)
\(\text { 3) } Y_{A}=g^{r t<Y, Y>}\)
■ 서버(Sever):\(\left(I D_{A}, C t, Y_{A}\right)\)를 수신한 서버는\(Y_{A}^{\prime}=Y_{A}^{1 / t}=g^{r<Y, Y>}\)
●\(\begin{aligned}
\operatorname{Decrypt}\left(s k_{f}, C t\right) \rightarrow & X_{A}\left[\prod_{i=1}^{l}\left(c t_{i}^{r x_{i}} / c t_{0}^{s k_{f}}\right)\right]^{-2} Y_{A}^{\prime} \\
&=X_{A}\left(g^{r}\right)^{-2<X, Y>} Y_{A}^{\prime} \\
&=g^{r<X, X>} g^{-2 r<X, Y>} g^{r<Y, Y>} \\
&=g^{r \mid<X, X>-2<X, Y>+<Y, Y>1} \\
&=g^{r<X-Y, X-Y>}
\end{aligned}\)
(2) 검증단계
요청단계에서 얻은 Decrypt(skf,Ct)=\(g^{r<X-Y, X-Y>}\)
Fig. 5. Registration & Authentication protocol
4.2 변형된 제안 인증기법
난수 r을 안전하게 저장할 수 있는 Trust Zone을 가지고 있는 디바이스의 경우에 적합한 인증 프로토콜을 제안한다. 난수 r을 안전하게 저장할 수 있으므로 4.1.3 의 grt를 수신하는 단계를 제외하여 간단하게 설계할 수 있다.
4.2.1 사전단계 및 등록단계
4.1에서 제안한 스킴의 사전단계 및 등록단계와 동일하다.
4.2.2 인증단계
(1) 요청단계
생체정보 Y를 인증 요청할 사용자는 다음 과정을 실행한다.
■ 사용자 A(User A): 인증정보 Y를 추출한 후 난수 k을 선택하고 Ct그리고 YA를 생성한다. \(\left(I D_{A}, C t, Y_{A}\right)\)를 서버에 송신하여 인증을 요청한다.
● \(\text {Encrypt}(m p k, Y) \rightarrow C t=\left(c t_{0},\left(c t_{i}\right)_{i \in[l]}\right)\)
\(\text { 1) } Y=\left(y_{1}, y_{2}, \ldots, y_{l}\right) \in Z_{p}^{l}\)
\(\text { 2) } k \leftarrow-Z_{n}, c t_{0}=g^{k}, c t_{i}=h_{i}^{k} g^{y_{i}}, i \in[l]\)
\(\text { 3) } Y_{A}=g^{r<Y, Y>}\)
■ 서버(Sever):\(\left(I D_{A}, C t, Y_{A}\right)\) 를 수신한 서버는 다음과 같이 Decrypt 알고리즘을 통해 \(g^{r<X-Y, X-Y>}\)을 생성한다.\(\begin{aligned} \operatorname{Decrypt}\left(s k_{f}, C t\right) \rightarrow & X_{A}\left[\prod_{i=1}^{l}\left(C t_{i}^{r x_{i}} / C t_{0}^{s k_{f}}\right)\right]^{-2} Y_{A} \\ &=X_{A}\left(g^{r}\right)^{-2<X, Y>} Y_{A} \\ &=g^{r<X, X>} g^{-2 r<X, Y>} g^{r<Y, Y>} \\ &=g^{r[\langle X, X>-2<X, Y>+<Y, Y>1} \\ &=g^{r<X-Y, X-Y>} \end{aligned}\)
Fig. 6. Modified protocol
(2) 검증단계
4.1에서 제안한 스킴의 인증 검증단계와 동일하다.
V. 제안된 프로토콜의 안전성 및 효율성
5.1 프로토콜의 안전성
본 논문에서 제안된 인증기법은 Abdalla의 함수암호를 사용함으로서 안전성을 보장하며 Discrete Logarithm Problem(DLP)와 Diffie-Hellman Problem(DHP)의 어려움에 기반을 두고 있다. 제안된 프로토콜은 아래와 같은 공격에 대하여 안전하다.
● 반복공격(Replay Attack) : 공격자가 사용했던 정보\(Y_{A}=g^{r t<Y, Y>}\)
● 위장공격(Impersonation Attack) : 공격자가 사용자 A로 위장하여 속이려 한다고 가정하자. 먼저 공격자가 Y를 변조하지 않았을 경우 검증과정을 통과하기 위해서는 \(g^{<Y, Y>}\)를 얻어야 한 다. \(g^{r t}, \quad g^{r t<Y, Y>}\)를 알고 있는 상황에서 \(g^{<Y, Y>}\)를 얻는 것은 DHP와 DLP에 의하여 어렵다. 공격자가 Y를 변조하였을 경우 \(g^{r t<Y, Y>}\)를 얻어야 한다. 만일 정당한 사용자의 생체정보 Y대신 \(Z(\neq Y)\)로 하여 \(g^{r t<Z, Z>}\) 얻을 경우 인증 검증단계에서 \(H\left(I D_{A} \| g^{r<X-Z, X-Z>}\right)\)가 검증테이블을 만족하기 어렵다. 그러므로 본 프로토콜은 위장공격을 방어할 수 있다.
● 비밀키 노출 : 제안된 프로토콜은 인증서버에서 비밀키 skf가 노출 된다고 하여도 사용자의 인증정보는 유출되지 않는다는 특성을 가지고 있다. 만일 \(s k_{f}=r \sum s_{i} x_{i}(\bmod p)\)을 노출되었다 하더라도 r값과 \(X=\left(x_{1}, x_{2}, \dots, x_{l}\right)\)을 알기 어렵다. 또한 등록단계에서 수신한 \(r X, \quad g^{r}<X, X>\)으로부 터 r은 사용자가 만들어낸 난수이다. 따라서 서버는 사용자의 인증정보 X를 알 수 없으므로 악의적인 인증 서버 관리자로부터 안전하다. 단, 제안 프로토콜에서는 X의 원소 \(x_{1}, x_{2}, \ldots, x_{l}\)는 균일한 난수분포에서 사용자마다 생성된다고 가정 한다.
5.2 프로토콜의 효율성
본 프로토콜에서 주된 계산량은 G에서의 지수승 연산에 의존하며 multi-exponentiation연산이 사용된다. Straus의 Multi-exponentiation 알고리즘[11]을 이용하여 효율적으로 연산할 수 있으며 고정된 값에 대한 지수승에 대해서는 조금 더 효율적으로 연산할 수 있다. 따라서 지수승 연산을 exponentiation(exp), fixed-exponentiation(fexp), multi-exponentiation(mexp), fixed multi-exponentiation(fmexp)으로 구분하여 인증요청단계의 효율성을 분석하였다. 사전 등록단계와 검증단계는 상대적으로 효율적이므로 분석을 생략한다.
Table 2에서는 인증요청단계에서 User와 Server의 지수승 연산 횟수를 나타내었다.
Table 2. efficiency
VI. 결론
본 논문은 함수암호를 이용하여 노이즈가 있는 인증정보의 Template 보호 기술을 제안하였다. 내적을 위해 설계된 Abdalla의 함수 암호를 적용하였으며 인증정보를 암호화한 후, 유클리드 거리 함수를 통하여 유사도를 비교하는 인증 방법을 제시하였다. 기존 인증기법과 달리 함수암호를 이용하여 인증정보를 암호화된 상태에서 복호화 하지 않고 인증을 수행할 수 있는 기법을 제안하였으며 제안된 기법은 Trust Zone과 같은 안전한 공간이 없는 디바이스에서도 안전하게 인증정보를 보호하여 온라인상에서도 생체인증과 위치인증 등 인증서비스를 수행할 수 있도록 한다.
본 제안기법은 기존 RSA, ECC 등 기존 공개키 기반 암호의 도메인 파라미터를 그대로 적용할 수 있으며 기존 암호가 탑재된 환경에서 효율적으로 적용 가능하다. 하지만 인증정보의 벡터값 l이 커지면 연산 효율성이 떨어질 수 있다.
따라서 상대적으로 작은 템플릿정보를 갖는 생체인증에 효율적이며 생체정보 이외에도 위도, 고도, 경도로 이루어진 GPS위치정보 인증에 활용할 수 있다. 위치정보에 제안한 기법을 활용하면 접근하려는 목표 위치와 인접함을 증명할 때 미사일과 같은 군사무기 사용에 있어서 위치정보의 노출 없이 효율적으로 활용할 수 있다.
* 본 논문은 2019년도 정부(과학기술정보통신부)의 재원 으로 정보통신기획평가원의 지원을 받아 수행된 연구임. (No.2017-0-00380,차세대 인증 기술 개발)“
References
- HeeJin Park, Younho Lee "Survey on Privacy-preserving Techniques for Biometric Authentication", Journal of KIIT. vol. 16, no. 4, pp. 109-122, Apr. 2018
- Lifeng Lai, Siu-Wai Ho and H. Vicent Poor, "Privacy-Security Trade-Offs in Biometric Security Systems-Part II:Multiple Use Case," IEEE Transactions on information forensics and security, vol. 6, no. 1, pp. 140-151, Mar. 2011 https://doi.org/10.1109/TIFS.2010.2098873
- Fuchun Guo, Willy Susilo anc Yi Mu, " Distance-Based Encryption: How to Embed Fuzziness in Biometric-Based Encryption" IEEE Transactions on information forensics and security, vol. 11, no. 2, pp. 247-257, Feb. 2016 https://doi.org/10.1109/TIFS.2015.2489179
- Kim S, Lewi K, Mandal A, Montgomery H, Roy A, Wu D.J. (2018) Function-Hiding Inner Product Encryption Is Practical. In: Catalano D, De Prisco R. (eds) Security and Cryptography for Networks. SCN 2018. Lecture Notes in Computer Science, vol 11035. Springer, Cham
- Sudha Gupta, Viral Doshi, Abhinav Jain and Sreeram Iyer, "Iris Recognition System using Biometric Template Matching Technology", International Journal of Computer Applications, vol. 1, no. 2 , pp. 21-30, Feb. 2010
- Ujwalla Gawande, Anushree Spare, Apurva Jain, Sachita Bhriegu, Shruti Sharma,"Fingerprint-Iris Fusion Based Multimodal Biometric System Using Single Hamming Distance Matcher", International Journal of Engineering Inventions, vol 2, no. 4, pp. 54-61 , Feb. 2013
- John G. Daugman, "High Confidence Visual Recognition of Persons by a Test of Statistical Independence", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 15, no. 11, Nov. 1993
- Fuchun Guo, Willy Susilo anc Yi Mu, "POSTER:Euclidean Distance Based Encryption: How to Embed Fuzziness in Biometric Based Encryption", Proc. ACM Conference of Computer Communication and Security, pp. 1430-1432, 2014
- Boneh D., Sahai A., Waters B. (2011) Functional Encryption: Definitions and Challenges. In: Ishai Y. (eds) Theory of Cryptography. TCC 2011. Lecture Notes in Computer Science, vol 6597. Springer, Berlin, Heidelberg
- Abdalla M, Bourse F, De Caro A, Pointcheval D. (2015) Simple Functional Encryption Schemes for Inner Products. In: Katz J. (eds) Public-Key Cryptography, PKC 2015. Lecture Notes in Computer Science, vol 9020. Springer, Berlin, Heidelberg
- Moller B. (2001) Algorithms for Multi-exponentiation. In: Vaudenay S., Youssef A.M. (eds) Selected Areas in Cryptography. SAC 2001. Lecture Notes in Computer Science, vol 2259. Springer, Berlin, Heidelberg