검수요청.png검수요청.png

BB84 프로토콜

해시넷
7095sj (토론 | 기여)님의 2020년 8월 6일 (목) 17:59 판 (초기 키 저장)
이동: 둘러보기, 검색

BB84 프로토콜(BB84 protocol)란 찰스 베넷(Charles Bennett)과 길레스 브래서드(Gilles Brassard)가 1984년에 개발한 양자키분배 체계이다. 최초의 양자암호 프로토콜이기도 하다.

개요

한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. BB84 프로토콜 외에도 B92 프로토콜, 6-state 프로토콜, Ekert91 프로토콜, BBM92 프로토콜 등이 양자키분배에 사용된다. 여기서 BB84 프로토콜과 다른 몇몇 기법들만 이론상 무 조건부 안전성이 증명되었다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에, 한국정보통신기술협회정보통신단체표준에는 디코이 기법을 적용한 BB84 프로토콜을 대상으로 어떻게 양자키분배를 해야 할지에 대해 서술되어 있다.[1]

한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에 BB84 프로토콜 표준에는 디코이 기법을 적용한 BB84 프로토콜에 대한 내용을 제시한다.

BB84 프로토콜은 찰스 베넷과 길레스 브래서드가 양자 양자암호에 대한 논문을 발표하면서 같이 제안했다.[2] BB84 프로토콜이라는 명칭은 최초 고안자의 이름에서 유래된 이름이다. 특히, 양자암호기술의 창시자인 IBM의 찰스 베넷 박사는 2007년에 고등과학원의 초청으로 서울과학고 학생들을 대상으로 특강을 진행했다. 2011년에는 부산 부경대에서 열린 아시아 양자 정보 국제학술대회(AQIS)에도 참가했다.

원리

암호학에서 앨리스는 사람 A, 밥은 사람 B와 같은 역할을 맡는다. 송수신 자 간의 통신에서 송신자를 앨리스, 수신자를 밥이라고 가정하자. 앨리스와 밥이 교환을 하면서 얻는 키를 시프트키라고 부른다. 이브가 존재할 때 시프트 키 중 일부를 이브가 알아낼 가능성이 있어서 양자키분배의 마지막 과정에서는 현대 암호 기술을 이용하여 키를 파악할 가능성을 제거한다. 이렇게 얻은 키를 비밀키라고 부른다. 양자키분배로 비밀키를 공유하게 된 앨리스와 밥은 최종적으로 일회용 비밀번호나 EDS, AES 등 현대 비밀키 암호를 사용해서 암호화된 메시지를 주고받는다. 여기서 참고로 일회용 비밀번호는 OTP 혹은 원 타임 패드라고도 불리는데, 비밀키를 중복해서 사용하지 않는 이상 보안을 완전하게 보장하는 특성이 있어 지속해서 새로운 비밀키를 공유해야 하는 양자키분배에 잘 어울린다.[3]

앨리스와 밥 사이에 일회용 비밀번호를 생성할 때, 송신자인 앨리스는 무작위로 0bit와 1bit를 생성하여 광자의 편광이나 스핀 같은 양자 상태를 통해서 나타낸다. 광자의 편광을 예로 들자면, 빛을 +방향 또는 ×방향으로 편광 필터로 편광 시킨다. 이때, +방향의 편광 필터의 수직 방향 편광은 0, 수평 방향 편광은 1이라고 가정한다. 그리고 ×방향의 편광 필터의 오른쪽 위 방향 편광은 0, 오른쪽 아래 방향 편광은 1이라고 가정한다. 앨리스는 0bit나 1bit를 아무렇게 생성한 다음, 무작위로 +방향이나 ×방향으로 편광 시킨 광자를 전송한다. 그러면 수신자인 밥은 무작위로 선택된 편광 필터를 통하여 앨리스가 보낸 광자의 편광을 측정한다. 밥이 측정을 마친 후에는 앨리스와 밥은 공개 채널을 통하여 같은 편광 필터를 사용했는가의 유무를 파악하고, 같은 편광 필터를 사용한 절반 정도의 정보만 사용한다. 이 중 일부는 앨리스가 보낸 신호가 밥이 측정한 정보와 일치하는지 파악 및 비교한다. 만약 여기서 앨리스와 밥 사이에 도청자가 존재하지 않는다면 신호를 보낸 필터와 측정하는 데 사용된 필터가 같기 때문에 송신한 정보와 측정한 정보가 동일해야 한다.

송신자가 생성한 비트 1 1 0 0 0 1 0 1
송신자가 전송하는 편광 필터 × + + + × + × +
송신자가 선택한 전송 편광 신호
수신자가 선택한 필터 × × × + × × × +
수신자가 측정한 편광 상태
최종적으로 생성되는 비밀키 1 0 0 0 1

만약 앨리스와 밥의 송수신 과정에 외부 위협인 이브가 도청을 시도한다면, 양자 역학적인 정보는 측정하는 순간 정보가 뒤바뀔 수 있다. 앨리스가 + 방향 편광 필터를 통하여 수직 방향으로 편광된 빛을 보낸다고 가정할 때, 이브가 그 사실을 모른 채로 ×방향 편광 필터를 사용해서 측정하면 광자가 사선 방향의 편광으로 바뀐다. 밥이 다시 여기서 +방향 편광 필터를 통해 측정하면 50% 확률로 빛을 수평 방향으로 측정하게 된다. 앨리스와 밥이 서로 공개 채널을 통해서 서로 같은 편광 필터를 사용한 정보 중에서 서로 같은 게 어느 것인지 물어볼 때, 앨리스가 보냈던 신호와 밥이 측정한 정보가 같지 않다면 중간에 도청자가 있었음을 알게 된다. 도청자를 감지한 후에는 처음부터 다시 송수신을 시작하면 되고, 이 과정에서 앨리스와 밥이 72개의 결괏값만 비교해도 도청자를 알아챌 확률이 0.999999999에 육박한다.[4]

적용 과정

한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에 BB84 프로토콜 표준에는 디코이 기법을 적용한 BB84 프로토콜에 대한 내용을 제시한다. BB84 프로토콜은 양자키분배 절차 중 초기 키 생성 단계 및 걸리진 키 생성 단계와 직접 연관되어 있으며, 비밀키를 생성하는 과정과 함께 안전성이 증명되었다.

초기 키 저장

시그널과 디코이를 생성하여 각각에 대응되는 양자 상태를 생성하고 전송하고 수신하고 측정하는 단계를 말한다. 생성 단계는 다음과 같다.

  1. 송수신 자는 시그널과 디코이 선택, 기저 선택과 부호화 등에 사용할 난수를 생성한다.
  2. 송신자가 키 추출에 관여하는 시그널과 외부 공격에 대비하는 디코이를 무작위로 선택한다.
  3. 선택한 시그널과 디코이에 대해 생성 기저와 부호화할 값을 각각 무작위로 선택하고 네 가지 양자 상태 중 하나를 생성해서 양자 채널을 통해 수신자에게 전송한다.
  4. 수신자는 두 측정 기저 중 하나를 무작위로 선택하여 신호를 측정한다.
  5. 송신자는 성성한 양자 상태를, 수신자는 측정한 양자 상태의 결과를 각각의 초기 키로 저장한다.
  • 난수생성
송수신 자는 시그널과 디코이 선택, 기저와 전송 값 선택 등에 사용할 난수를 생성해야 한다. 특히 시그널과 디코이는 송신자를 제외한 그 누구도 구별할 수 없어야 하므로 난수를 사용하여 무작위로 선택한다. 송신자의 생성 기저와 전송 값, 수신자의 측정 기저 또한 모두 난수를 적용하여 무작위로 선택한다. 난수 생성기는 의사 난수 생성기보다 양자난수생성기를 사용할 것을 권고하고 있다. 그러나 양자난수생성기의 물리적 결함 등 완벽한 난수를 생성하기가 어려운 경우에는 의사 난수 생성기를 사용해도 된다.
  • 시그널과 디코이 선택
디코이가 적용된 BB84 프로토콜에서 초기 키를 생성할 때, 우선 인증된 송신자가 키 추출에 관여하는 시그널과 외부 공격에 대비하는 디코이를 무작위로 선택한다. 이때 시그널과 디코이는 송신자를 제외해야 하며, 그 누구도 구별할 수 없어야 한다. 만약 구별할 수 있다면 다 광자 환경에서 광자 수 분리 공격을 진행한다.
  • 양자 상태 생성 및 전송
선택한 시그널이나 디코이에 대해 두 기저 와 값 0, 1 중에서 각각 하나씩 무작위로 선택한다. 선택한 기저의 무작위로 선택한 값을 부호화해서 네 개의 양자 상태 중 하나를 준비하고, 이를 양자 채널을 통해서 수신자에게 전달한다. 네 개의 양자 상태는 서로 직교하지 않는 관계인 를 이용하여 나타낼 수 있고, 각 기저 내의 두 상태는 서로 직교한 상태이다. 예를 들어 편광 부호화 방법을 이용하는 경우에는 네 가지 양자 상태는 에 대해 각각 관계이다. 위상 부호화 방식을 사용하는 경우에는 네 가지 양자 상태는 각 기저에 대해 의 상태가 된다.
  • 양자 상태 수신 및 측정
  • 초기 키 저장

걸러진 키 생성

비밀키 생성

용어

  • 양자키분배 프로토콜 : 양자키분배를 하기 위한 통신 규약들이다.
  • 초기 키 : 양자 채널을 통한 양자 상태의 송수신 결과인 키 수열이다.
  • 걸러진 키 : 송수신 자 간에서 동일한 기저를 사용한 키 수열이다.
  • 광자 : 빛의 입자인 양자로 빛 에너지의 최소 단위를 의미한다.
  • 광자 수 분리 공격 : 단일 광자 상태를 가정한 양자키분배 장비를 실제로 구현할 때는 기술상의 한계로 인하여 높은 확률로 다중 광자가 전송된다. 따라서 공격자가 다중 광자 중 일부 광자를 가로채어 키 정보를 알아내는데, 이 공격을 광자 수 분리 공격이라고 부른다.
  • 공개 채널 : 도청자를 포함하여 외부에 완전히 공개된 채널로, 양자 정보가 전송되는 채널이다. 공개 채널로 전송되는 정보는 누구나 확인할 수 있지만, 변조되지 않았다고 가정하여 일반적으로는 양자키분배에서 사용되는 공개 채널은 고전 채널이라고 칭하기도 한다.
  • 기저 : 양자 상태를 구분 짓는 기준 좌표이다.
  • 디코이 : PNS 공격 감지를 위하여 시그널과 다른 평균 광자 수를 가지도록 조작돼서 섞인 양자의 상태를 의미한다.
  • 비밀증폭 : 오류를 정정할 때 공개된 정보와 이로 인해 비밀키의 유추할 수 있는 정보를 제거하는 과정이다.
  • 비밀키 : 양자키분배를 통해서 생성된 최종 키이자 최종 결과물이다.
  • 시그널 : 일반적으로 신호를 뜻하는 말이지만, 양자키분배에서는 키 정보를 전달하는 데 직접적으로 관여한다.
  • 양자비트 오류율 : 걸러진 키에서의 오류의 정도를 의미한다.
  • 양자채널 : 양자의 물리적 상태를 전송하는 채널
  • 오류정정 : 걸러진 키의 오류를 수정하는 과정
  • 위상 부호화 : 광자의 위상차를 이용하여 부호화한다.
  • 유니버설 해시함수 : 한 방향 함수의 일종으로 볼 수 있다. 충돌이 일어날 가능성이 최대 이 되는 함수를 의미한다. 여기서 M은 입력 메시지의 전체 길이이다.
  • 인증키 : 사용자나 장비 인증에 사용되는 키로, 사전에 나누어 공유되거나 비밀키 중에서 일부를 인증키로 사용한다.
  • 편광 부호화 : 광자의 방향성을 이용해서 부호화한다.
  • 후처리 과정 : 오류 정정 단계와 비밀 증폭 단계를 합쳐서 일컫는 과정이다.[1]

각주

  1. 1.0 1.1 김나영 외 7인, 〈양자 키 분배 - 제2부: BB84 프로토콜〉, 《한국정보통신기술협회》, 2018-12-19
  2. BB84 위키피디아 - https://en.wikipedia.org/wiki/BB84
  3. 나랑 놀자, 〈양자암호:BB84 protocol〉, 《네이버블로그》, 2016-11-26
  4. 김선우, 〈도청자를 잡아낼 수 있는 암호〉, 《한국과학영재학교온라인과학매거진》, 2019-10-30

참고자료

같이 보기


  검수요청.png검수요청.png 이 BB84 프로토콜 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.