앨리스와 밥

앨리스(Alice), 밥(Bob), 말로리(Mallory) 이미지 그림 **앨리스와 밥**(Alice and Bob)은 암호학이나 물리학 등의 분야에서 자주 사용하는 가상 이름(placeholder names)이다. 예를 들어 "사용자 **A**가 사용자 **B**에게 안전하게 메시지를 전송하려 한다면..."이라는 식으로 이야기를 풀어나가면 헷갈리기 쉽고 이해가 어려우므로, 사람 이름을 이용하여 "앨리스가 밥에게 안전하게 메시지를 전송하려 한다면..."이라는 식으로 설명하는 것이다. 암호학이나 전산 보안에서는, 프로토콜을 설명할 때 관습적으로 널리 사용하는 대표적인 이름들이 몇몇 있다. 원하는 의미를 가지고 있는 영어 단어와 비슷한 발음을 가지도록 재치있게 이름 지은 것이 많다. 물론 실제 프로토콜에서는 이런 역할을 사람이 직접 하는 것이 아니라 자동으로 동작하는 개체(예를 들어 컴퓨터 프로그램) 등이 대신하게 된다.
# 이름 목록
앨리스와 밥은 암호학에서 널리 쓰이지만, 나머지 것들은 그만큼 널리 쓰이지는 않는다. 알파벳 순서대로 이름을 짓는다. 홀수번째 알파벳에는 여성 이름을, 짝수번째 알파벳에는 남성 이름을 사용하는 게 일반적이다. 단순히 n번째 당사자에 해당한다면, 보통 악의가 없다고 가정한다. 악의가 있는 사람을 나타낸다면 특별한 이름을 붙인다. * **A 앨리스**(Alice)는 통신 과정의 첫 번째 당사자를 말한다. * **B 밥**(Bob)은 통신 과정의 두 번째 당사자를 말한다. ** 보통 앨리스가 밥에게 메시지를 보내려 한다고 가정한다. 이 이름은 로널드 라이베스트가 RSA 암호에 대한 1978년의 논문에서 처음으로 사용했다. (1977년에 만든 RSA에 대한 기술문서에는 이런 이름이 나오지 않는다. * **C** ** **캐롤**(Carol), **카를로스**(Carol), **찰리**(Charlie)은 통신 과정의 세 번째 당사자를 뜻한다. ** **척**(Chuck)은 통신 과정의 세 번째 당사자이며, 악의가 있다. ** **크레이그**(Craig)는 비밀번호를 훔치려는 사람이다. * **D 데이브**(Dave), **댄**(Dan), **데이빗**(David)는 통신 과정의 네 번째 당사자를 말한다. * **E 이브**(Eve)는 '엿듣는 사람'이라는 뜻의 'eavesdropper'에서 온 것이며, 소극적 공격자를 뜻한다. 앨리스와 밥 사이의 통신을 엿듣기는 하지만, 통신 내용을 바꿔치기 하는 등의 적극적 공격은 하지 않는다. ** 통신 과정의 다섯 번째 당사자라는 뜻으로 에린(Erin)이 배정되어 있지만, 거의 쓰지 않는다. * **F 페이데**(Faythe)는 신뢰할만한 조언자라는 뜻으로 Faith에서 왔다. 통신 과정의 여섯번째 당사자로 프랭크(Frank)를 쓴다. * **G 그레이스**(Grace)는 정부 대표(Government Representitave)를 뜻한다. * **H 하이디**(Heidi)는 멍청한 암호제작자(mischievous designer)를 뜻하나, 거의 쓰지 않는다. * **I** ** **아이작**(Isaac)은 보통 ISP를 뜻한다. ** **이반**(Ivan)은 발행자(issuer)를 뜻한다. * **J 저스틴**(Justin)은 법원(justice system)을 뜻한다. * K 없다. * L 없다. * **M** ** **말로리**(Mallory)는 '악의적인'이라는 뜻의 'malicious'에서 온 것으로 적극적 공격자를 뜻한다. Mallet이라고 하기도 한다. 이브와 달리 말로리는 앨리스와 밥 사이의 통신 내용을 고치거나, 원하는 메시지로 바꿔치기 하거나, 이전 메시지를 재전송하는 등 적극적으로 통신을 방해한다. 말로리가 방해하지 못하도록 하는 것은 이브가 방해하지 못하도록 하는 것보다 훨씬 어렵다. ** **마틸다**(Matilda)는 전자상거래 등에서 상인(merchant)을 뜻한다. ** 말렛(Mallet)도 적극적 공격자를 뜻하나, 적게 쓰인다. ** 마이크(Mike)와 마이클(Michael)은 소극적 공격자를 뜻하며 Eve와 동의어다. 거의 쓰지 않는다. * **N 니아지**(Niaj)는 동남아권에서 소극적 공격자를 뜻하는 표현으로 자주 쓴다. * **O** ** **오스카**(Oscar)는 적(opponent)을 뜻하며, 보통 말로리와 같은 구실을 한다. 악의가 없을 수도 있다는 점이 말로리와 다른 점. ** **올리비아**(Olivia)는 오라클(oracle)을 뜻한다. * **P** ** **페기**(Peggy)는 증명자(prover)이다. 검증자 V와 서로 메시지를 주고받아 원하는 동작이 제대로 일어났음을 보인다. 영지식 증명에서 흔히 사용한다. 가끔 텔레비전 쇼 《Wheel of Fortune》의 진행자 이름을 따서 **팻**(Pat)과 바나(Vanna)라고 하기도 한다. ** **플로드**(Plod)는 경찰(police)의 머리글자 P를 딴 것이며 법집행 기관을 뜻한다. * Q 없다. * R 없다. * **S** ** **사이빌**(Sybil)은 익명 공격자(pseudonymous attacker)로서 주로 sybil attack을 한다. ** **스티브**(Steve)는 흔히 심층 암호(steganography)를 뜻한다. * **T** ** **트루디**(Trudy)는 침입자(intruder)를 뜻하며 말로리와 비슷하다. ** **트렌트**(Trent)는 신뢰할 수 있는 중재자(trusted arbitrator)를 뜻하며, 흔히 중립적인 제3자를 뜻한다. **테드**(Ted)로 쓰기도 한다. * **V** ** **빅터**(Victor)는 검증자(verifier)이다. 증명자 P와 서로 메시지를 주고받아 원하는 동작이 제대로 일어났음을 보인다. 영지식 증명에서 흔히 사용한다. 가끔 텔레비전 쇼 《Wheel of Fortune》의 진행자 이름을 따서 팻(Pat)과 **바나**(Vanna)라고 하기도 한다. * **W** ** **월터**(Walter)는 앨리스와 밥 사이의 통신을 감시하는 간수(warden)를 뜻한다 ** **웬디**(Wendy)는 내부고발자(whistleblower)를 말한다. * X 없다. * Y 없다. * **Z 조**(Zoe)는 보통 암호 프로토콜의 맨 마지막 당사자를 가리킨다. 알파벳 순서에서 맨 끝이기 때문이다. 대화형 증명 체계에서 사용하는 이름도 있다. * **아서**(Arthur)와 **멀린**(Merlin): IPSs에서 증명자는 무한한 계산능력을 가지고 있으므로 아서왕 전설에 나오는 마법사 멀린의 이름을 따서 멀린이라고 부른다. 이 경우 검증자는 아서라고 부른다. 이 이름에서 딴 복잡도 종류 MA와 AM도 있다. * **폴**(Paul)과 **캐롤**(Carole): 폴은 질문하고, 캐롤은 대답한다. 조합론적 게임에서는 Pusher 와 Chooser를 뜻한다. * **아서**(Arthur)와 **베르타**(Bertha): 조합론적 게임에서, 아서는 왼쪽이나 검정 또는 수직 참가자를 뜻하고, 베르타는 오른쪽이나 하양 또는 수평 참가자를 말한다. 의미를 추가하면 아서는 같은 결과에 대해서 최소한으로 움직이기를 선호하고, 베르타는 최대한 많이 움직이기를 선호한다.