Ⅰ. 서론
인터넷과 같은 공개된 통신망에서 안전하게 통신을 하기 위해서는 서로가 적법한지를 확인할 수 있는 인증과 전송 메시지들에 대한 암호화가 필요하다. 암호화를 위해서는 통신 참여자들 사이에 암호화키를 미리 공유하여야 한다. 사용자 인증을 위해 사람 이 가진 소유, 사람이 알고 있는 지식, 사람 자신인 생체정보 중의 한 방법을 사용하거나 이들 중 몇 개를 혼합하여 보안을 강화할 수 있다. 패스워드를 이용한 인증은 사람이 알고 있는 지식을 확인하는 방법으로 여러 장점들로 인해 오래전부터 가장 널리 이용되고 있다. 그러나 이 방법은 사람이 보통 패스워드로 쉽게 기억할 수 있는 정보를 사용하기 때문에 사전공격이라고도 불리는 패스워드 추측 공격에 취약하기 쉽다. 몇몇 프로토콜들에서는 이 공격에 안 전하도록 프로토콜을 설계하기 위하여 서버의 공개 키를 추가적으로 사용하기도 한다. 그러나 이 방법은 클라이언트가 서버의 공개키를 얻고, 검증하고, 안전하게 보관해야 할 뿐 아니라 매우 많은 계산량을 요 구하는 비대칭 키 암호화 연산을 수행해야 하기 때문에 클라이언트에게 많은 부담을 주게 된다.
일반적으로 인증과 키 교환은 함께 제공되어야 하는데, 이러한 프로토콜을 인증된 키 교환 프로토콜 (Authenticated key exchange)이라 한다. 1992년에 Bellovin과 Merrit(1)은 처음으로 패스워드만을 사용하여 패스워드 추측 공격에 안전한 EKE라는 패스워드 기반의 인증된 키 교환 프로토콜을 제안하였다. 그 이후로 다양한 환경에서 많은 프로토콜들이 제안되어 왔다. 패스워드 기반의 키 교환 프로토콜들은 참여자들의 수에 따라 두 참여자 환경, 세 참여자 환경, 그룹 참여자 환경 등으로 나뉠 수 있다. 본 논문에서는 세 참여자들이 프로토콜에 참여하는 환경에만 초점을 맞추고자 한다. 여기서 세 참여자란 한 서버와 이 서버에 등록된 두 클라이언트(사용자)들을 일컫는다. 즉 같은 서버에 자신의 아이디와 패스워드를 등록한 두 사용자가 각각 자신의 패스워드를 사용하여 서버와 상호 인증을 수행하고 세션 키를 공유하려 는 상황이다. 이때 서버는 두 사용자를 인증하고 그 들이 세션 키를 공유하도록 도울 뿐 생성된 세션 키는 알 수 없기 때문에 두 사용자들 사이에 전송되는 메시지들은 안전하게 보호된다. 지금까지 이 환경에서 몇몇 프로토콜들이 제안되어 왔다.
Steiner(2)은 EKE 프로토콜을 토대로 하여 서버의 공개키를 사용하지 않는 STW-3PEKE라 불리는 세 참여자를 위한 프로토콜을 처음으로 제안하였다. Ding과 Horster(3)는 이 프로토콜이 참여자들이 탐지할 수 없는 온라인 패스워드 추측 공격에 안전하지 않음을 보여주었다. 또한 Lin(4)은 STW-3PEKE이 오프라인 패스워드 추측 공격에도 취약하다는 것을 보여주고 서버의 공개키를 사용하여 LSH-3PEKE라 불리는 프로토콜을 제안하였다. 그 후에 Lin⑸은 다시 서버의 공개키를 사용하지 않는 LSSH-3PEKE 프로토콜을 제안하였다. 그러나 LSSH-3PEKE는 LSH-3PEKE 보다 두 번의 추가적인 메시지 교환을 요구한다. 그 후에 Chang⑹은 super-poly-to-one trapdoor라는 추가적인 함수를 사용하여 이 메시지 수를 감소시키는 ECC-3PEKE 프로토콜을 제안하였다. 그런데, 이러한 추가적인 함수의 사용은 프로토콜의 안전성을 떨어뜨릴 수 있을 수 있을 뿐만 아니라 프로토콜의 구조를 복잡하게 하여 구현 시 어렵게 할 수 있다. 한편 Sun⑺은 위의 프로토콜들과는 달리, 서버의 패스워드 파일에 사용자의 패스워드 자체 대신 패스워드로부터 유도된 검증자 값을 저장하는 첫 번째 검증자 기반의 프로토콜인 SCH-3PEKE를 제 안 하였다. 이러한 검증자 기반의 키 교환 프로토콜은 공격자가 서버의 패스워드 파일을 습득하더라도 바로 합법적인 사용자로 위장할 수 없다는 장점이 있다. 그러나 공격자는 습득한 검증자 값에 대하여 오 프라인 패스워드 추측 공격을 수행하면 적은 노력으로 정확한 패스워드를 얻을 수 있다. 또한 이 프로토 콜은 패스워드 추측 공격을 막기 위하여 서버의 공개 키를 사용하기 때문에 효율적이지 못하다.
본 논문에서는 동일한 서버에 등록되어 있는 두 사용자들에게 안전한 통신 서비스를 제공하기 위한 패스워드 기반의 인증된 키 교환 프로토콜을 제안한다. 제안된 프로토콜은 패스워드 검증자 기반의 키 교환 프로토콜로서 서버 Compromise 공격뿐 아니라 다양한 공격들에 대하여도 안전하고 완전한 전 방향 보안성을 제공할 수 있다. 또한 본 논문에서는 제안된 프로토콜을 간단히 수정함으로써 서버에 저 장된 패스워드 파일의 노출에도 패스워드 추측 공격에 안전한 프로토콜을 제시하였다. 이때 사용자들은 안전한 저장장치를 소유해야 한다. 제안된 프로토콜에서 서버는 두 사용자들 사이에 공유된 세션 키를 알 수 없기 때문에 사용자들 사이의 통신은 매우 안 전하게 유지될 수 있다. 더욱이 서버의 공개키를 사용하지 않고 패스워드 추측 공격을 막을 수 있기 때문에 성능 면에서 매우 효율적이다.
Ⅱ. 관련 연구
여기서는 세 참여자들을 위한 프로토콜들 중에서 제안된 프로토콜과 비슷한 환경에서 제안되었던 검 증자 기반의 키 교환 프로토콜인 SCH-3PEKE 프로토콜에 대하여 살펴본다. Alice와 Bobe 각각 서버에 검증자 값 \(V_{A}=g^{x_{A}}\)와 \(V_{B}=g^{x_{B}}\)를 저장하고 있다고 가정하자. 여기서 xA와 xB는 Alice와 Bob의 패스워드 \(\pi_{A}\)와 \(\pi_{B}\)로부터 계산된 비밀 값들이다. SCH-3PEKE 프로토콜은 匸다음과 같이 수행된다.
① Alice는 \(\pi_{A}\)로부터 xA를 계산한 후 \(V_{A}=g^{x_{A}}\)를 계산한다. 그리고 임의의 정수 a를 선택하여 ga를 계산한다. 또한 서버의 공개키 PK를 사용하여 비대칭 키 암호화 연산을 수행함으로써 Xa = PK{A, ga,vA}를 계산한 후 XA를 Bob에게 전송한다.
② Bobe \(\pi_{B}\)로부터 XB를 계산한 후 \(V_{B}=g^{x_{B}}\)를 계산한다. 그리고 임의의 정수 b를 선택하여 gb를 계산한다. 또한 서버의 공개키 PK를 사용하여 XB = PK{B, gb, vB}를 계산한 후 XA와 XB를 Bob에게 전송한다.
③ 서버는 Bob으로부터 XA와 XB를 받은 후에 자신의 비밀키로 비대칭 키 복호화 연산을 수행하여 복호화하고 vA와 vB이 정확한지를 검사한다. 이 값들이 정확하다면 서버는 임의의 정수 c, d, e를 선택하여 XSA =\(\left(g^{b c} \cdot V_{B}\right)^{e}\) 와 XSB = \(\left(g^{a d} \cdot V_{A}\right)^{e}\)를 계산하고 XSA, XSB, c, d를 Alice에게 전송한다.
④ Alice는 세션 키 \(K=\left(X_{S A}\right)^{a d+x_{A}}=g^{\left(b c+x_{B}\right)\left(a d+x_{A}\right) e}\)를 계산한다. 그리고 K를 키로 대칭키 암호화 연산을 수행하여 Vab = K〔XA]를 계산한 후 VAB를 Bob에게 전송한다.
⑤ Bobe 세션키 \(K=\left(X_{SB}\right)^{b c+x_{B}}=g^{\left(b c+x_{B}\right)\left(a d+x_{A}\right)_{e}}\)를 계산하고 K를 키로 대칭키 복호화 연산을 수행하여 VAB를 복호화한 후 XA가 정확한지를 확인한다. 그리고 VBA = K[VAB]를 계산하여 VBA를 Alice에게 전송한다.
⑥ 마지막으로, Alice는 VBA를 검사하여 Bob이 정확한 세션 키 K를 얻었는지를 확인하다.
SCH-3PEKE는 패스워드 추측 공격에 안전하도록 하기 위하여 클라이언트들이 서버의 공개키를 사용하여 비대칭 키 암호화 연산을 수행하도록 설계하였기 때문에 클라이언트들에게 많은 부담이 될 수 있다.
Ⅲ. 제안된 프로토콜
1. 시스템 파라미터
먼저 프로토콜에서 사용할 시스템 파라미터들을 정의한다. k와 l은 보안 파라미터들이라 하자. k는 해쉬 함수들과 세션 키를 위한 160비트 크기이고 I은 1024비트 또는 2048비트 크기이다. p와 q는 각각 q와 서로소인 임의의 r에 대해 p = rq + 1을 만족하는 l과 k 크기의 값들이고. Gq는 곱셈군 Zp*의 위수 q를 갖는 부분군, g는 Gq의 생성자라 하자. 프로토콜 기술 중에 'mod p' 표기는 생략하기로 한다. 한편, {0, 1}*는 유한한 이진 문자열의 집합이 고, {0, 1}n는 길이가 n인 이진 문자열의 집합이라 하자. 충돌이 없는 일방향 해쉬 함수 h는 \(h:\{0,1\}^{*} \rightarrow\{0,1\}^{n}\)로 표기될 수 있다. 이것은 임의의 길이의 문자열을 필요한 길이의 문자열로 변환할 수 있다. 추가적인 해쉬 함수 h'는 h를 이용하여 쉽게만 들어질 수 있다. 예를 들어 h'(X)= h('00', x).
표 1. 표기
2. 3PAKE 프로토콜
제안된 프로토콜에서 동일한 서버에 등록되어 있는 두 사용자 Alice와 Bobe 안전한 통신을 하기 위하여 자신들만이 아는 세션 키를 공유하고자 한다. Alice와 Bobe 프로토콜이 시작하기 전에 다음과 같은 과정을 통해 서버에 등록한다.
① Alice는 패스워드 \(\pi_A\)를 선택한 후에 xA = h'(A, S, \(\pi_A\)), vA = \(g^{h\left(A , S, \pi_{A}\right)^{-1}}\)를 계산하고 XA와 vA를 안전한 채널을 통해 서버에 전송한다.
② Bob는 패스워드 \(\pi_B\)를 선택한 후에 xB= h' {B, S, \(\pi_B\)), VB = \(g^{h\left(B, S, \pi_{B}\right)^{-1}}\)를 계산하고 xB 와 vA를 안전한 채널을 통해 서버에 전송한다.
③ 서버는 Alice와 Bob을 위하여 xA, vA와 xB, vB를 패스워드 파일에 저장한다.
제안된 3PAKE 프로토콜은 동일한 서버에 등록되 그림 1. 3PAKE 프로토콜 어 있는 Alice와 Bob 사이에 같은 세션 키 K를 공유하도록 하기 위하여 다음과 같은 과정을 수행한다.
그림 1. 3PAKE 프로토콜
① Alice는 \(a \in_{R} G_{q}\)를 선택하고 XA = ga를 계산하여 Bob에게 A,XA 를 전송한다.
② Bob은 \(b \in_{R} G_{q}\)를 선택하고 \(X_{B}=g^{b}\)를 계산하여 A, B, XA, XB 를 서버에 전송한다.
③ 서버는 패스워드 파일로부터 \(V_{A}, \boldsymbol{X}_{A},V_{B}, \boldsymbol{X}_{B}\)를 검색하고 c, d \(\in_{R} G_{q}\)를 선택하여 \(X_{S A}=\left(V_{A}\right)^{c}\)
④ Alice는 KAS = \(\left(X_{S A} \oplus x_{A}\right)^{h\left(A, S, \pi_{A}\right) a}=g^{a c}\)를 계산하고 \(V_{S A} \approx h\left(S, X_{A}, X_{B}, X_{S A}, K_{A S}\right)\)를 검사함으로 서버를 인증한다. 그리고 KAB=(XB)a = gab , VAS = h(A, XA, XB, XSA, KAS), VAB = h(A, XA, XB, KAB)를 순서대로 계산하고 XSB, VSB, VAS, VAB를 Bob에 게 전송한다.
⑤ Bob은 \(K_{A B}=\left(X_{A}\right)^{b}=g^{a b}\)를 계산하고 VAB\(\approx h\left(A, X_{A}, X_{B}, K_{A B}\right)\)를 검사하여 Alice를 인증한다. 또한\(K_{B S}=\left(X_{S B} \oplus x_{B}\right)^{h\left(B, S, \pi_{B}\right) b}= g^{bd}\)계산하고 \(V_{S B} \approx\) h(S, XA, XB, XSB, KBS)를 검사하여 서버를 인증한다. 그리고 VBS = h{B, XA, XB, XSB, KBS)와 VBA= h(B, XA, XB, KAB)를 계산하여 VAS, VBS를 서버에 전송하고 VBA를 Alice에게 전송한 후 세션키 K = h(A, B, KAB)를 계산한다.
⑥ 서버는 \(V_{AS} \approx\) h(A, XA, XB, XSA, KAS)와 VBS\(\approx\) h(B, XA, XB, XSB, KBS)를 검사하여 Alice와 Bob을 인증한다.
⑦ Alice는 VBA \(\approx\) h(B, XA, XB, KAB)를 검사하여 Alice를 인증한 후 세션키 K = h(A,B. KAB)를 계산한다.
제안된 프로토콜에서 세 참여자들은 상호 간에, 즉 Alice와 Server, Bob과 Server, Alice와 Bob 사이에 상호 인증을 수행한다. 서버는 VAS와 VBS 값들을 검사함으로써 Alice와 Bob이 정당한 사용자들인지를 인증할 수 있다. 이것은 Alice와 Bob이 각각 자신의 정확한 패스워드를 사용해야 만이 서버에서 계산한 KAS = gac, KBS = gbd와 같은 값들을 계산할 수 있기 때문이다. 비슷하게 Alice와 Bob은 각각 VSA와 VSB 를 검사함으로써 서버의 적법성을 인증하고 VAB와 VBA를 검사함으로써 서로를 인증하게 된다. 이러한 인증 과정들이 성공적으로 끝나면 Alice와 Bobe 세 션키 K = h(A B, KAB)를 계산하고 프로토콜을 종료한다.
추가적으로, 제안된 프로토콜은 사용자가 패스워드 이외에 USB 토큰 같은 추가적인 휴대용 안전한 저장장치를 사용하게 하여 사용자의 안전성을 강화 할 수 있다. 이를 위해 Alice와 Bobe 서버에 등록할 때에 각각 임의의 정수 SA와 SB를 선택하여 XA =h' {A, S, sA, \(\pi_{A}\)), vA =\(g^{h\left(A, S, s_{A}, \pi_{A}\right)-1}\), XB = h'{B. S, SB. \(\pi _B\)), vB =\(g^{h\left(B, S, s_{B}, \pi_{B}\right)-1}\)를 계산하고 이들을 안전한 채널을 통해 서버에 저장한다. 또한 자신들의 안전한 저장 장치에도 각각 sA, xA와 sB, xB를 저장하여 등록을 마친다. 그리고 프로토콜 수행 중에 Alice와 Bob은 각각 KAS = \(\left(X_{S A} \oplus x_{A}\right.\)\()^{h\left(A, S_{,} s_{A}, \pi_{A}\right) a}\), \(K_{B S}=\left(X_{S B} \oplus x_{B}\right)^{h\left(B , S , s_{B}, \pi_{B}\right) b}\)와 같이 KAS와 KBS를 계산한다. 그러면 공격자가 서버의 패스워드 파일을 습득하여 패스워드 추측 공격을 수행한다 할 지라도 패스워드에 관한 정보를 전혀 얻을 수 없다.
Ⅳ. 안전성 분석
프로토콜에 참여하는 참여자들 사이의 모든 통신은 공격자의 통제하에 있다고 가정하자. 즉 공격자 는 정당한 사용자들이 전송하는 메시지들을 읽을 수 있고, 메시지를 수정하여 전송하기도 하고, 그들에게 새로운 메시지를 보낼 수도 있으며 메시지를 연 착시키거나 이전 메시지들을 재전송하여 공격을 수행할 수도 있다. 제안된 프로토콜의 안전성은 산술 시간에 풀기 어렵다고 알려져 있는 이산대수 문제와 Diffie-Hellman 문제의 어려움, 그리고 사용되는 해쉬 함수의 암호학적 강도에 근거한다. 다음에서 제안된 프로토콜이 여러 종류의 공격들에 안전함을 보이고자 한다.
① 수동적이고 적극적인 공격들에 대하여 안전하다. 공격자가 수동적인 공격, 즉 전송되는 메시지들을 도청하였다면 XA. XB. XSA, XSB. VSA, VSB, VAS, VBS. VAB. VBA 값들을 얻을 수 있다. 그러나 이 값들로부터 패스워드 \(\pi_A,\pi_B\)나 세션 키 K에 대한 정보를 얻을 확률은 사용된 해쉬 함수의 특성들과 이산 대수문제 그리고 Diffie-Hellman 문제의 어려움 때문에 무시할만하다. 공격자가 적극적인 공격자라면 공격자는 Alice와 Bob이 올바르지 않는 값을 세션 키로 받아드리도록 하기 위해 메시지를 수정하거나 그들에게 새로운 메시지를 보낼 수도 있으며 메시지를 연착시키거나 이전 메시지들을 재전송하여 공격을 수행할 수도 있다. 공격자는 이러한 공격을 통하여 많은 정보를 얻을 수 있지만 그러나 이러한 공격이 성공할 확률은 수동적인 공격과 비슷하게 무시할만하다.
② 오프라인 패스워드 추측 공격에 대하여 안전하다. 공격자는 오프라인 패스워드 추측 공격을 수행하기 위하여 메시지들을 도청하거나, Alice나 Bob, 그리고 서버로 위장하여 정보들을 수집한다. 그리고 패스워드 후보자 \(\pi'\)를 추측하고 도청한 값들을 이용하여 \(\pi'\)가 정확한 패스워드인지를 검증해야 한다. 그러나 제안된 프로토콜에서 이 공격이 성공할 확률은 사용된 해쉬 함수의 특성들과 이산대수 문제, 그리고 Diffie- Hellman 문제의 어려움 때문에 무시할만하다.
③ Denning-Sacco 공격에 대하여 안전하다. Denning-Sacco 공격에 안전하기 위해서는 공 격자가 이전의 세션 키를 안다 할지라도 사용자의 패 스워드를 구할 수 없어야 한다. 공격자가 세션 키 K를 안다고 가정하자. 공격자는 이 값과 이전 세션에서 도청한 XA. XB. XSA, XSB. VSA, VSB, VAS, VBS. VAB. VBA 값들을 이용하여 패스워드 \(\pi\)를 직접 계산하려 하거나 오프라인 패스워드 추측 공격을 수행하려 할 것이다. 그러나 이것이 성공할 확률은 사용된 해쉬 함수의 특성들과 이산대수 문제, 그리고 Diffiee Hellman 문제의 어려움 때문에 무시할만하다.
©완전한 전 방향 보안성을 제공한다.
완전한 전 방향 보안성은 공격자가 임의의 시점에 패스워드를 알게 된다 할 지라도 이전 세션 키들을 계산할 수 없을 때 제공된다. 공격자가 为4나 府를 안다고 가정하자. 공격자는 이 값과 이전 세션에서도 청한 정보 XA. XB. XSA, XSB. VSA, VSB, VAS, VBS. VAB. VBA 값들을 이용하여 이전 세션 키를 얻으려고 할 것이다. 그러나 이것이 성공할 확률은 해 쉬 함수의 특성들과 이산대수 문제, 그리고 Diffie- Hellman 문제의 어려움 때문에 무시할만하다.
표 2. SCH-3PEKE 프로토콜과의 성능 비교
⑤ 서버 Compromise 공격에 대하여 안전하다. 프로토콜이 서버 Compromise 공격에 안전하기 위해서는 공격자가 서버의 패스워드 파일에 저장되어 있는 사용자의 검증자 값을 얻었다 할지라도 그 값을 바로 이용하여 그 사용자로 위장할 수 없어야 한다. 공격자가 Alice의 검증자 XA= h'(A, S, \(\pi_A\)). vA = \(g^{h\left(A, S, \pi_{A}\right)-1}\)를 안다고 가정하자. 공격자가 Alice로 위장하기 위해서는 정확한 KAS와 VAS를 계산해서 서버의 검증을 통과할 수 있어야 한다. 그러나 공격자는 h(A, S, \(\pi_A\)를 알지 못하기 때문에 정확한 KAS를 계산할 수 없고 결국 서버의 인증을 통과할 수 없다.
⑥ 서버는 세션 키 k를 알 수 없다.
제안된 프로토콜에서 서버는 c, d. XA, XB, XSA, XSB, VSA, VSB, VAS. VBS 값들을 알 수 있다. 그러나 이들로부터 KAB = gab를 계산할 확률은 해쉬 함 수의 특성과 이산대수 문제, 그리고 Diffie-Hellman 문제의 어려움 때문에 무시할만하다. 그러므로 서버는 세션키 K를 알기 어렵다.
Ⅴ. 효율성 분석
여기서는 제안된 프로토콜의 성능을 검증자 기반의 프로토콜인 SCH-3PEKE 프로토콜과 비교하고 자 한다. 일반적으로 비대칭 키 연산과 지수연산은 다른 연산들에 비해 상대적으로 수행 시간이 매우 길기 때문에 프로토콜의 성능에 가장 큰 영향을 미친다고 할 수 있다. 또한 지수연산은 160비트 연산을 수행하기 때문에 1024비트 또는 2048비트 연산을 수행하는 비대칭 키 연산에 비해 몇 배 빠르다. 표 2는 제안된 프로토콜인 3PAKE가 대칭키 연산과 비 대칭키 연산을 전혀 사용하지 않기 때문에 SCH-3 PEKE에 비해 구조적으로 단순하고 성능 면에서 효율적임을 보여준다.
Ⅵ. 결론
본 논문에서는 같은 서버에 등록되어 있는 두 사용자들 사이에 안전하게 키를 공유할 수 있도록 해주는 패스워드 기반의 키교환 프로토콜을 제안하였다. 또한 제안된 프로토콜에 대한 간단한 수정을 통하여 사용자는 패스워드 이외에 추가적인 안전한 저장장치를 사용함으로써 좀 더 강화된 안전성을 제공받을 수 있다. 제안된 프로토콜은 여러 종류의 다양한 공격에 안전할 뿐만 아니라 완전한 전향 보안성을 제공한다. 더욱이 사용자들 사이에 공유된 세션키는 서버라 할지라도 알 수 없어 사용자들 사이에 통신 기밀성은 완전하게 보장된다. 특히 제안된 프로토콜은 서버의 공개키를 사용하지 않기 때문에 비슷한 환경에 있는 기존 프로토콜에 비해 성능 면에서 효율적이며 한 서버에 등록되어 있는 사용자들 사이에 안전한 통신을 필요로 하는 많은 응용들에. 사용될 수 있다.
참고문헌
- S. M. Bellovin and M. Merrit, 'Encrypted key exchange: Password-based protocols secure against dictionary attacks,' Proceedings of the IEEE Symposium on Research in Security and Privacy, pp. 72-84, 1992
- M. Steiner, G. Tsudik, and M. Waidner, 'Refinement and extension of Encrypted Key Exchange,' ACM Operating Systems Review, vol. 29, no. 3, pp. 22-30, 1995 https://doi.org/10.1145/206826.206834
- Y. Ding and P. Horster, 'Undetectable on-line password guessing attacks,' ACM Operating Systems Review, vol. 29, no. 4, pp. 77-86, 1995 https://doi.org/10.1145/219282.219298
- C. Lin, H. Sun, and T. Hwang, 'Threeparty encrypted key exchange: Attacks and a solution,' ACM Operating Systems Review, vol. 34, no. 4, pp. 12-20, 2000 https://doi.org/10.1145/506106.506108
- C. Lin, H. Sun, M. Steiner, and T. Hwang, 'Three-party Encrypted Key Exchange Without Server Public Keys,' IEEE Communication Letters, vol. 5, no. 12, pp. 497-499, 2001 https://doi.org/10.1109/4234.974498
- C. Chang and Y. Chang, 'A novel three-party encrypted key exchange protocol,' Computer Standards & Interfaces, vol. 26, no. 5, pp. 471-476, 2004 https://doi.org/10.1016/j.csi.2003.12.001
- H. Sun, B. Chen, and T. Hwang, 'Secure key agreement protocols for three-party against guessing attacks,' The Journal of Systems and Software, vol. 75, no. 1-2, pp. 63-68, 2005 https://doi.org/10.1016/j.jss.2003.11.017