I. 서론
데이터의 프라이버시와 기밀성을 보장하기 위해 데이터를 암호화된 상태로 유지할 필요성이 높아지고 있다. 특히, 데이터를 신뢰할 수 없는 외부에 아웃소싱할 때에는 반드시 요구되는 기능 중 하나이다. 이 때문에 최근에 암호화된 데이터에 대한 연산에 관심이 높아지고 있으며, 이와 같은 연산 중 Yang 등이 최근에 주장한 비교가능 암호화(comparable encryption)[1]가 있다. 비교가능 암호화는 확률적 공개키 시스템에서 서로 다른 공개키로 암호화된 두 개의 암호문이 주어졌을 때 같은 메시지를 암호화한 것인지 복호화하지 않고 검사할 수 있도록 해준다. 이 연산이 가능하면 Yang 등이 제시한 것처럼 다음과 같은 응용에 사용할 수 있다.
• 검색가능 암호화(searchable encryption): 암호화된 문서와 이 문서 연관된 암호화된 키워드들이 있을 때, 후자를 비교가능 암호화로 암호화한 경우, 누구나 동일 키워드를 자신의 공개키로 암호화하여 트랩도어(암호화된 질의 키워드)로 사용할 수 있다. 물론 이 경우 트랩도어를 아무나 생성할 수 있지만 검색가능 암호화의 경우 검색자를 확인하기 위한 별도의 인증 메커니즘이 필요하기 때문에 이것이 문제가 되지는 않는다.
• 암호문 분류: 위와 동일한 환경에서 암호화된 키워드들을 서로 비교하여 관련 문서들을 분류할 수 있다.
하지만 Yang 등의 기법은 서로 다른 메시지를 암호화한 두 암호문의 경우에도 확인 결과가 참이 되는 허점을 가지고 있다.
이영민 등[2]은 Yang 등의 시스템은 누구나 두 암호문이 같은 메시지를 암호화한 것인지 확인할 수 있기 때문에 이를 제한하기 위한 기법을 제안하였다. 즉, 확인할 때 이를 수행할 확인자의 개인키가 필요하도록 하였다. 하지만 원 기법의 단점인 서로 다른 암호문을 암호화한 경우에도 같다는 결과를 주는 단점이 그대로 남아 있다.
Tang[3]도 이영민 등과 유사하게 확인할 수 있는 주체를 제한하는 기법을 제안하였다. 차이점은 이영민 등의 시스템은 확인자의 개인키가 필요하도록 하여 제한을 한 반면에 Tang은 복호화를 할 수 있는 주체들이 확인자에게 토큰을 발급하여 줄 경우에만 가능하도록 제한을 하였다. 그러나 Tang도 여전이 동일한 단점을 지니고 있다.
이 논문에서는 이와 같은 단점을 제시하고 이 단점이 해당 응용에 어떤 파급효과가 있는지 분석한다. 참고로 Canard 등[4]은 비교가능 암호화와 유사한 평문 확인가능 암호화(plaintext-checkable encryption)을 제안하였다. 평문 확인가능 암호화는 공개키로 암호화된 암호문과 평문이 주어지면 해당 암호문을 복호화하지 않고 해당 평문을 암호화한 암호문인지 확인할 수 있는 암호화를 말한다.
이 논문의 구성은 다음과 같다. 2장에서는 이 논문에서 주장하는 비교가능 암호화의 단점을 각 시스템별로 제시한다. 3장에서는 이 논문에서 발견한 단점의 파급효과에 대해 분석하며, 4장에서는 결론과 향후 연구방향을 제시한다.
II. 비교가능 암호화의 허점
2.1 표기법
이 논문에서 다루는 3개의 프로토콜을 일관성 있게 설명하기 위해 공통적으로 사용되는 기호에 대해서는 표 1에 제시된 표기법을 사용한다
[표 1] 표기법
2.2 Yang 등의 시스템
Yang 등이 제안한 시스템[1]의 암호화 연산과 검사 연산은 다음과 같다. 여기서 사용자 A의 개인키는 xA ∈ Zq*이며, 공개키는 yA = gxA이다.
• E(yA, m): r∈RZq*를 선택하고, U = gr , V = mr , W= H1(UA||VA||yrA)⊕{m||r}을 계산한다. 결과 암호문은 C= (U,V,W)이다.
• Test(CA,CB): CA = (UA,VA,WA)는 사용자 A가 생성한 암호문이고, CB = (UB,VB,WB)는 사용자 B가 생성한 암호문일 때, 만약 ê(UA,VB)와 ê(UB,VA)가 같으면 1을 반환하고, 아니면 0을 반환한다.
CA = (UA = grA, VA = mrA, WA = H1 (UA||VA||yArA)⊕{m||rA})이고 CB = (UB = grB , VB = mrB ,WB = H1 (UB||VB||yBrB)⊕{m||rB})이면 ê(UA,VB)와 ê(UB,VA)는 다음과 같이 동일함을 알 수 있다.
ê(UA,VB) = ê(grA,mrB) = ê(g,m)rArB
= ê(grB ,mrA) = ê(UB,VA)
하지만 Test 연산에서 WA와 WB가 전혀 사용되지 않기 때문에 CA와 CB가 각각 서로 다른 m과 m′을 다음과 같이 암호화하였을 경우에도 1을 반환하게 된다.
CA = (UA = grA,VA = mrA,WA = H1(UA||VA||yrA )⊕{m||rA})
CB = (UB = grB ,VB = mrB ,WB = H1(UB||VB||yrB )⊕{m′||rB})
다음은 Yang 등[1]이 제시한 비교가능 암호화의 강건성(soundness) 정의이다.
정의 1. [강건성] 모든 다항시간 알고리즘 M에 대해 다음이 성립해야 한다.
\(\operatorname{Pr}\left[\begin{array}{l} \left(C_{A}, C_{B}, x_{A}, x_{B}\right) \rightarrow M\left(1^{k}\right), m \leftarrow D\left(x_{A}, C_{A}\right), \\ m^{\prime} \leftarrow D\left(x_{B}, C_{B}\right): m \neq \perp \wedge m^{\prime} \neq \perp \wedge \\ m \neq m^{\prime} \wedge \operatorname{Test}\left(C_{A}, C_{B}\right)=1 \end{array}\right] \leq \epsilon(k)\)
여기서 k는 보안 파라미터이며, ε(k)는 무시할 수 있을 정도로 작은 값으로 수렴하는 함수이다.
앞서 지적한 바와 같이 서로 다른 평문을 암호화한 CA와 CB에 대해 Test 연산은 1을 반환하여 주지만 강건성 정의에 위배되지는 않는다. Yang 등의 강건성 정의는 복호화가 정상적으로 이루어지는 경우만을 고려하기 때문이다. 제시된 예의 경우 VB와 WB에 서로 다른 m을 사용하고 있다는 것이 복호화 과정에서 발견되기 때문에 복호화 연산은 ⊥을 반환한다.
하지만 비교가능 암호화에서 비교를 수행하는 개체와 복호화를 수행하는 개체는 다르며, 복호화를 한 후에 비교하는 것은 아니다. 더욱이 서로 다른 공개키로 암호화된 암호문의 비교가 가능하기 때문에 비교를 수행하는 사용자는 두 암호문을 복호화할 수 있는 개인키들을 모두 가지고 있을 수가 없다. 즉, 비교가능 암호화의 핵심은 복호화하지 않고 비교하는데 있기 때문에 이 허점을 가진 상태로는 어떤 응용에서도 그 역할을 하기 어렵다.
2.3 Tang의 시스템
Tang이 제안한 시스템[3]의 암호화 연산과 검사 연산은 다음과 같다. 여기서 사용자 A의 개인키는 \(x_{A}, z_{A} \in Z_{q}^{*}\)이며, 공개키는 yA = (gXA,gZA)이다.
• E(yA, m): u, v∈RZq*를 선택하고, U = gu , V = gv , W= H1(guxA)⊕{m||u},\(Z=g^{H_{2}\left(g^{v z_{A}}\right)+m}\), S = H3(U||V|| W||Z||m||u)을 계산한다. 결과 암호문은 C= (U,V,W,Z,S)이다.
• Test(CA,CB,TA,TB): CA = (UA, VA, WA, ZA, SA)는 사용자 A가 생성한 암호문이고, CB = (UB, VB, WB, ZB, SB)는 사용자 B가 생성한 암호문이며, TA = zA, TB = zB가 각 사용자가 프록시에게 제출한 토큰일 때, 만약 \(Z_{A} \cdot g^{-H_{2}\left(V_{A}^{T_{A}}\right)}\)와 \(Z_{B} \cdot g^{-H_{2}\left(V_{B}^{T_{B}}\right)}\)가 같으면 1을 반환하고, 아니면 0을 반환한다.
이 시스템의 경우에도 CA와 CB가 규칙대로 생성되었다고 가정하였을 때 다음과 같이 Test 결과가 1임을 알 수 있다.
\(\begin{aligned} Z_{A} \cdot g^{-H_{2}\left(V_{A}^{T_{A}}\right)} &=g^{H_{2}\left(g^{v_{A} z_{A}}\right)+m} \cdot g^{-H_{2}\left(V_{A}^{T_{A}}\right)} \\ &=g^{H_{2}\left(g^{v_{A} z_{A}}\right)+m} \cdot g^{-H_{2}\left(g^{v_{A} z_{A}}\right)}=g^{m} \end{aligned}\)
\(\begin{aligned} Z_{B} \cdot g^{-H_{2}\left(V_{B}^{T_{B}}\right)} &=g^{H_{2}\left(g^{v_{B} z_{B}}\right)+m} \cdot g^{-H_{2}\left(V_{B}^{T_{B}}\right)} \\ &=g^{H_{2}\left(g^{v_{B} z_{B}}\right)+m} \cdot g^{-H_{2}\left(g^{v_{B} z_{B}}\right)}=g^{m} \end{aligned}\)
하지만 Test 연산에서 Yang 등과 마찬가지로 WA와 WB가 전혀 사용되지 않기 때문에 CA와 CB가 각각 서로 다른 m과 m′을 다음과 같이 암호화하였을 경우에도 1을 반환하게 되어 Yang 등과 동일한 문제점을 가지고 있다.
CA= (UA = guA,VA = gvA, WA = H1(guAxA)⊕{m||uA},
ZA = \(g^{H_{2}\left(g^{v_{A} z_{A}}\right)+m}\),SA = H3(UA||VA||WA||ZA||m||uA))
CB = (UB = guB,VB = gvB , WB = H1(H1(guBxB))⊕{m′||uB}, ZB =\(g^{H_{2}\left(g^{v_{B} z_{B}}\right)+m}\),SB = H3 (UB||VB||WB||ZB||m||uB))
2.4 이영민 등의 시스템
이영민 등이 제안한 시스템[2]의 암호화 연산과 검사 연산은 다음과 같다. 여기서 사용자 A의 개인키는 xA∈Zq*이며, yA = gxA이고, 서버의 개인키 xT∈Zq*이며, yT = gXT이다.
• E(yA, yT, m): u,v∈RZq*를 선택하고, U = gu , V = H4(m)v , W= gv⊕H4 (yTu), Z= m⊕H4 (yAu)을 계산한다. 결과 암호문은 C= (U,V,W,Z)이다.
• Test(CA,CB,xT): CA = (UA, VA, WA, ZA)는 사용자 A가 생성한 암호문이고, CB = (UB, VB, WB, ZB)는 사용자 B가 생성한 암호문일 때, 서버는 gVA= H4(UAxT)⊕WA와 gVB = H4(UBxT)⊕WB를 계산한 후, 만약 ê(gVA,VB)와 ê(gVB,VA)가 같으면 1을 반환하고, 아니면 0을 반환한다.
이 시스템의 경우에도 CA와 CB가 규칙대로 생성되었다고 가정하였을 때 다음과 같이 Test 결과가 1임을 알 수 있다.
e(gVA,VB) = ê(gVA,H4 (m)vB) = ê(g,H4 (m))vAvB
= ê(gVB,H4 (m)vA) = ê(gVB ,VA)
하지만 Test 연산에서 ZA와 ZB가 전혀 사용되지 않기 때문에 기존 두 개의 시스템과 마찬가지로 CA와 CB가 각각 서로 다른 m과 m′을 다음과 같이 암호화하였을 경우에도 1을 반환하게 되어 Yang 등과 동일한 문제를 가지고 있다.
CA= (UA = gUA,VA = H4(m)vA,WA =gVA⊕H4(yTuA), ZA = m⊕H4(yAuA))
CB= (UB = gUB ,VB = H4(m)vB ,WB = gUB⊕H4(yTuB), ZB = m′⊕H4(yBuB))
III. 고찰
검색가능 암호화에서 키워드를 암호화하고 트랩도어를 생성할 때 이 논문에서 살펴본 비교가능 암호화 기법을 사용하면 키워드 추측 공격[5]에 더 취약해지는 문제점이 있다. Yang 등의 기법[1]은 아무나 확인할 수 있는 기법이기 때문에 암호화된 키워드를 확보하면 추측 키워드를 아무 사용자의 공개키로 암호화하여 비교함으로써 누구나 키워드 추측 공격을 할 수 있다. 이영민 등[2]과 Tang[3]처럼 검색서버만 할 수 있도록 제한하더라도 검색가능 암호화 환경에서 검색서버는 정직하지만 궁금한(curious-but- honest) 서버이므로 여전히 문제가 된다.
이와 같은 문제를 고려하지 않을 경우 실제 검색가능 암호화에서는 암호화된 키워드의 복호화가 필요하지 않기 때문에 비교가능 암호화의 일부분만을 사용할 수는 있다. 즉, w가 키워드일 때 Yang 등의 기법[1]을 응용하여 UA = grA, VA = H4(w)rA을 키워드 암호화를 위해 사용하고, 트랩도어로 UB = grB, VB = H4(w)rB를 사용하면 ê(UA,VB)와 ê(UB,VA)의 비교를 통해 검색이 가능하다. 따라서 검색자에 대한 별도 인증이 필요하다는 것(트랩도어만을 가지고는 검색자의 권한을 확인할 수 없음)을 고려하면 다중사용자 환경(여러 사용자가 데이터를 저장하고 검색할 수 있는 환경)을 위한 수단으로 고려할 수 있다. 그러나 키워드 추측 공격에 매우 취약하기 때문에 현실적으로 적용하는 것은 어렵다.
Yang 등[1]의 논문에서 주장된 것처럼 키워드가 아닌 메시지를 직접 이용하여 검사하는 것도 고려해 볼 수 있으나 검색가능 암호화는 외부에 아웃소싱된 데이터를 효과적으로 얻는 것이 목표이므로 데이터 자체를 가지고 검색하는 것은 응용에 한계가 있다.
검색가능 암호화 환경에서 비교가능 암호화를 활용할 경우 이 논문에서 제시된 허점을 공격자들이 실제 활용할 가능성은 크지 않다. 특히, 데이터를 암호화하여 저장하는 측이나 이를 검색하는 측에서 부정을 할 이유가 없기 때문이다. 하지만 이 허점을 이용하여 Baek 등[6]이 제시한 연관된 키워드를 조작하는 공격은 가능하다. 연관된 키워드를 조작하는 공격은 암호화된 문서와 연관되어 있는 암호화된 키워드를 삭제하거나 다른 문서에 있는 것과 바꾸는 공격을 말한다. 이 공격은 암호화된 키워드가 문서와 바인딩되어 있지 않고 이것을 바인딩하기 어렵기 때문에 가능한 공격이다. 즉, 연관된 키워드 조작 공격은 비교가능 암호화를 사용하지 않고 다른 기법을 통해 키워드를 암호화하더라도 기존 검색가능 암호화 기법들이 가지고 있는 취약점이다.
이 논문에서 지적한 문제점은 비교가능 암호기법의 암호문을 구성하는 값 중 비교할 때만 사용되는 값과 복호화할 때만 사용되는 값이 동일한 메시지를 이용하여 생성된 값인지 확인하는 메커니즘이 없기 때문에 발생한다. 즉, Yang 등의 시스템[1]에서 V와 W가 같은 m을 이용하여 생성된 값인지 확인할 수 있어야 이 허점을 제거할 수 있다. 하지만 이것은 복호화할 수 없는 사용자에게 숨겨진 값에 대한 접근이 필요하므로 제공하는 것이 쉽지 않다. 즉, 기본 ElGamal 기법 U =gr, W= yr∙m에 V = mr를 추가한 비교가능 암호기법을 생각할 수 있고, 이 때 W와 V가 같은 m을 이용하여 생성되었다는 것을 영지식 형태로 증명할 수 있는지 여부를 검토하면 필요한 해결책의 난이도를 예측할 수 있다.
IV. 결론
이 논문에서는 최근에 제안된 비교가능 암호화가 모두 동일한 취약점을 가지고 있다는 것을 보였다. 즉, 서로 다른 메시지를 암호화한 두 암호문의 경우에도 확인 검사를 통과하는 문제점이 있다. 검색가능 암호화 환경에서 비교가능 암호화 기법을 키워드 암호화에 활용할 경우 이 문제점을 활용한 의미 있는 공격은 없지만 키워드 추측 공격에 더 취약해지기 때문에 이 문제점과 상관없이 활용가치가 적다. 더욱이 복호화하지 않고 서로 다른 공개키로 암호화된 암호문의 비교가 가능해야 하기 때문에 현재의 허점이 해결되지 않으면 이 기법은 어떤 응용에서도 활용되기 힘들며, 이 문제 자체를 해결하는 것도 쉽지 않을 것으로 보인다.
* 이 논문은 2011년도 한국기술교육대학교 교수교육연구진흥비 지원에 의하여 연구되었음.
* 이 논문은 2013년도 정부(교육과학기술부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임 (No. 2012-R1A2A2A01046986).
References
- G. Yang, C.H. Tan, Q. Huang, and D.S. Wong, "Probabilistic public key encryption with equality test," Proceedings of the Cryptographis' Track at the RSA Conference, LNCS 5985, pp. 119-131, Mar. 2010.
- 이영민, 구우권, 이현숙, 이동훈, "고정된 검사자를 고려한 메시지 동일성 검사 공개키 암호시스템," 정보보호학회논문지, 21(5), pp. 3-13, 2011년 10월.
- Q. Tang, "Public key encryption supporting plaintext equality test and user-specified authorization," Security and Communication Networks, vol. 5, no. 12, pp. 1351-1362, Dec. 2012. https://doi.org/10.1002/sec.418
- S. Canard, G. Fuchsbauer, A. Gouget, and F. Laguillaumie, "Plaintext-checkable encryption," Proceedings of the Cryptographis' Track at the RSA Conference, LNCS 7178, pp. 332-348, Mar. 2012
- I.R. Jeong, J.O. Kwon, D.W. Hong, and D.H. Lee, "Constructing PEKS schemes secure against keyword guessing attacks is possible?," Computer Communications, vol. 32, no. 2, pp. 394-396, Feb. 2009. https://doi.org/10.1016/j.comcom.2008.11.018
- J. Baek, R. Safavi-Naini, and W. Susilo, "On the integration of public key data encryption and public key encryption with keyword search," Proceedings of the 9th International Conference on Information Security, LNCS 4176, pp. 217-232, Sept. 2006.
Cited by
- A Study of Definition of Security Requirements on Encryption and Audit Logging vol.19, pp.9, 2014, https://doi.org/10.9708/jksci.2014.19.9.085