BB84 프로토콜 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | '''BB84 프로토콜'''<!--BB84프로토콜-->(BB84 protocol) | + | '''BB84 프로토콜'''<!--BB84프로토콜-->(BB84 protocol)란 [[찰스 베넷]](Charles Bennett)과 [[길레스 브래서드]](Gilles Brassard)가 1984년에 개발한 [[양자키분배]] 체계이다. 최초의 [[양자암호]] 프로토콜이기도 하다. |
== 개요 == | == 개요 == | ||
− | + | 한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. BB84 프로토콜 외에도 [[B92 프로토콜]], [[6-state 프로토콜]], [[Ekert91 프로토콜]], [[BBM92 프로토콜]] 등이 양자키분배에 사용된다. 여기서 BB84 프로토콜과 다른 몇몇 기법들만 이론상 무 조건부 안전성이 증명되었다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에, [[한국정보통신기술협회]]의 [[정보통신단체표준]]에는 디코이 기법을 적용한 BB84 프로토콜을 대상으로 어떻게 양자키분배를 해야 할지에 대해 서술되어 있다.<ref name='BB84 프로토콜 표준'>김나영 외 7인, 〈[http://www.tta.or.kr/data/ttas_view.jsp?rn=1&by=asc&order=kor_standard&totalSu=17417&pk_num=TTAK.KO-12.0329-Part2&nowSu=17411 양자 키 분배 - 제2부: BB84 프로토콜]〉, 《한국정보통신기술협회》, 2018-12-19</ref> | |
+ | |||
+ | 한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에 BB84 프로토콜 표준에는 디코이 기법을 적용한 BB84 프로토콜에 대한 내용을 제시한다. | ||
− | BB84 프로토콜은 찰스 베넷과 길레스 브래서드가 양자암호에 대한 논문을 발표하면서 같이 | + | BB84 프로토콜은 찰스 베넷과 길레스 브래서드가 양자 양자암호에 대한 논문을 발표하면서 같이 제안했다.<ref>BB84 위키피디아 - https://en.wikipedia.org/wiki/BB84</ref> BB84 프로토콜이라는 명칭은 최초 고안자의 이름에서 유래된 이름이다. 특히, 양자암호기술의 창시자인 IBM의 찰스 베넷 박사는 2007년에 고등과학원의 초청으로 서울과학고 학생들을 대상으로 특강을 진행했다. 2011년에는 부산 부경대에서 열린 아시아 양자 정보 국제학술대회(AQIS)에도 참가했다. |
== 원리 == | == 원리 == | ||
78번째 줄: | 80번째 줄: | ||
== 적용 과정 == | == 적용 과정 == | ||
한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에 BB84 프로토콜 표준에는 디코이 기법을 적용한 BB84 프로토콜에 대한 내용을 제시한다. | 한국정보통신기술협회에서 작성한 BB84 프로토콜 표준은 BB84 프로토콜을 정당한 두 사용자가 양자를 이용해서 비밀키를 안전하게 공유하는 것이라고 정의한다. 양자키분배 기술 중 이론적으로 안전성이 잘 증명되어 있는 프로토콜이자, 가장 많이 사용되고 있는 프로토콜이다. 현재는 물리적으로는 단일광자 구현이 불가능하지만, 디코이 기법과 함께 사용되며 이 또한 안전성이 잘 증명되어 있기 때문에 BB84 프로토콜 표준에는 디코이 기법을 적용한 BB84 프로토콜에 대한 내용을 제시한다. | ||
− | BB84 프로토콜은 양자키분배 절차 중 초기 키 생성 단계 및 | + | BB84 프로토콜은 양자키분배 절차 중 초기 키 생성 단계 및 걸리진 키 생성 단계와 직접 연관되어 있으며, 비밀키를 생성하는 과정과 함께 안전성이 증명되었다. |
=== 초기 키 생성 === | === 초기 키 생성 === | ||
86번째 줄: | 88번째 줄: | ||
# 선택한 시그널과 디코이에 대해 생성 기저와 부호화할 값을 각각 무작위로 선택하고 네 가지 양자 상태 중 하나를 생성해서 양자 채널을 통해 수신자에게 전송한다. | # 선택한 시그널과 디코이에 대해 생성 기저와 부호화할 값을 각각 무작위로 선택하고 네 가지 양자 상태 중 하나를 생성해서 양자 채널을 통해 수신자에게 전송한다. | ||
# 수신자는 두 측정 기저 중 하나를 무작위로 선택하여 신호를 측정한다. | # 수신자는 두 측정 기저 중 하나를 무작위로 선택하여 신호를 측정한다. | ||
− | # 송신자는 | + | # 송신자는 성성한 양자 상태를, 수신자는 측정한 양자 상태의 결과를 각각의 초기 키로 저장한다. |
우선 송수신 자는 시그널과 디코이 선택, 기저와 전송 값 선택 등에 사용할 난수를 생성해야 한다. 특히 시그널과 디코이는 송신자를 제외한 그 누구도 구별할 수 없어야 하므로 난수를 사용하여 무작위로 선택한다. 송신자의 생성 기저와 전송 값, 수신자의 측정 기저 또한 모두 난수를 적용하여 무작위로 선택한다. 난수 생성기는 의사 난수 생성기보다 양자난수생성기를 사용할 것을 권고하고 있다. 그러나 양자난수생성기의 물리적 결함 등 완벽한 난수를 생성하기가 어려운 경우에는 의사 난수 생성기를 사용해도 된다. 난수를 생성한 후에는 인증된 송신자가 키 추출에 관여하는 시그널과 외부 공격에 대비하는 디코이를 무작위로 선택한다. 이때 시그널과 디코이는 송신자를 제외해야 하며, 그 누구도 구별할 수 없어야 한다. 만약 구별할 수 있다면 다 광자 환경에서 광자 수 분리 공격을 진행한다. 그다음 선택한 시그널이나 디코이에 대해 두 기저 <math>B_{z}</math>와 <math>B_{x}</math>와 값 0, 1 중에서 각각 하나씩 무작위로 선택한다. 선택한 기저의 무작위로 선택한 값을 부호화해서 네 개의 양자 상태 중 하나를 준비하고, 이를 양자 채널을 통해서 수신자에게 전달한다. 네 개의 양자 상태는 서로 직교하지 않는 관계인 <math>B_{z}</math>와 <math>B_{x}</math>를 이용하여 나타낼 수 있고, 각 기저 내의 두 상태는 서로 직교한 상태이다. 예를 들어 편광 부호화 방법을 이용하는 경우에는 네 가지 양자 상태는 <math>B_{z}</math>와 <math>B_{x}</math>에 대해 각각 <math>\left\{|0>-|1>\right\}</math> 관계이다. 위상 부호화 방식을 사용하는 경우에는 네 가지 양자 상태는 각 기저에 대해 <math>\left\{0, \pi\right\}</math>와 <math>\left\{\frac{1}{2}\pi , \frac{3}{2}\pi\right\}</math>의 상태가 된다. 그리고 수신자는 송신자가 전송한 양자 상태에 대해 측정 기저 <math>\left\{B_{z}, B_{x}\right\}</math> 중 아무거나 하나를 선택하고 측정한다. 마지막으로 송신자는 생성한 양자 상태를, 수신자는 양자 상태의 결과를 각자의 초기 키로 저장한다. | 우선 송수신 자는 시그널과 디코이 선택, 기저와 전송 값 선택 등에 사용할 난수를 생성해야 한다. 특히 시그널과 디코이는 송신자를 제외한 그 누구도 구별할 수 없어야 하므로 난수를 사용하여 무작위로 선택한다. 송신자의 생성 기저와 전송 값, 수신자의 측정 기저 또한 모두 난수를 적용하여 무작위로 선택한다. 난수 생성기는 의사 난수 생성기보다 양자난수생성기를 사용할 것을 권고하고 있다. 그러나 양자난수생성기의 물리적 결함 등 완벽한 난수를 생성하기가 어려운 경우에는 의사 난수 생성기를 사용해도 된다. 난수를 생성한 후에는 인증된 송신자가 키 추출에 관여하는 시그널과 외부 공격에 대비하는 디코이를 무작위로 선택한다. 이때 시그널과 디코이는 송신자를 제외해야 하며, 그 누구도 구별할 수 없어야 한다. 만약 구별할 수 있다면 다 광자 환경에서 광자 수 분리 공격을 진행한다. 그다음 선택한 시그널이나 디코이에 대해 두 기저 <math>B_{z}</math>와 <math>B_{x}</math>와 값 0, 1 중에서 각각 하나씩 무작위로 선택한다. 선택한 기저의 무작위로 선택한 값을 부호화해서 네 개의 양자 상태 중 하나를 준비하고, 이를 양자 채널을 통해서 수신자에게 전달한다. 네 개의 양자 상태는 서로 직교하지 않는 관계인 <math>B_{z}</math>와 <math>B_{x}</math>를 이용하여 나타낼 수 있고, 각 기저 내의 두 상태는 서로 직교한 상태이다. 예를 들어 편광 부호화 방법을 이용하는 경우에는 네 가지 양자 상태는 <math>B_{z}</math>와 <math>B_{x}</math>에 대해 각각 <math>\left\{|0>-|1>\right\}</math> 관계이다. 위상 부호화 방식을 사용하는 경우에는 네 가지 양자 상태는 각 기저에 대해 <math>\left\{0, \pi\right\}</math>와 <math>\left\{\frac{1}{2}\pi , \frac{3}{2}\pi\right\}</math>의 상태가 된다. 그리고 수신자는 송신자가 전송한 양자 상태에 대해 측정 기저 <math>\left\{B_{z}, B_{x}\right\}</math> 중 아무거나 하나를 선택하고 측정한다. 마지막으로 송신자는 생성한 양자 상태를, 수신자는 양자 상태의 결과를 각자의 초기 키로 저장한다. | ||
− | * '''주의할 점''' : 초기 키 생성 단계에서 사용되는 정보의 무작위성이 보장되기 위해서 송신자는 시그널과 디코이의 구분, 양자 상태의 기저와 부호화를 각각 무작위로 선택해야만 한다. 만일 이러한 무작위성이 보장되지 못한다면 도청자에게 키에 대한 정보가 유출될 가능성이 있다. 무작위로 선택된 정보는 걸러진 키 생성 단계 전까지 공개하지 않고 안전하게 보관한다. 초기 키를 생성할 때 송신자의 양자 상태 정보와 송수신 간의 기저 정보가 누출된다면, 도청자가 이를 활용하여 키 정보를 알아낼 수 있다. 또, BB84 프로토콜에서는 디코이와 시그널의 평균 광자 수가 서로 다르게 구성되어야 한다. 그러나 송신자를 제외한 시그널과 디코이는 그 누구도 구별할 수 없어야 한다. 만약 평균광자 수를 다르게 구성하지 않았다면, 디코이 기법의 목적을 상실하게 된다. 그리고 초기 키 생성을 완료하기 전에 송신자를 제외한 누군가가 시그널과 디코이를 구별할 수있다면 시그널 정보에 대한 PNS 공격을 할 수 있다.<ref name='BB84 프로토콜 표준'></ref> | + | * '''주의할 점''' : 초기 키 생성 단계에서 사용되는 정보의 무작위성이 보장되기 위해서 송신자는 시그널과 디코이의 구분, 양자 상태의 기저와 부호화를 각각 무작위로 선택해야만 한다. 만일 이러한 무작위성이 보장되지 못한다면 도청자에게 키에 대한 정보가 유출될 가능성이 있다. 무작위로 선택된 정보는 걸러진 키 생성 단계 전까지 공개하지 않고 안전하게 보관한다. 초기 키를 생성할 때 송신자의 양자 상태 정보와 송수신 간의 기저 정보가 누출된다면, 도청자가 이를 활용하여 키 정보를 알아낼 수 있다. 또, BB84 프로토콜에서는 디코이와 시그널의 평균 광자 수가 서로 다르게 구성되어야 한다. 그러나 송신자를 제외한 시그널과 디코이는 그 누구도 구별할 수 없어야 한다. 만약 평균광자 수를 다르게 구성하지 않았다면, 디코이 기법의 목적을 상실하게 된다. 그리고 초기 키 생성을 완료하기 전에 송신자를 제외한 누군가가 시그널과 디코이를 구별할 수있다면 시그널 정보에 대한 PNS 공격을 할 수 있다.<ref name='BB84 프로토콜 표준'></ref> |
=== 걸러진 키 생성 === | === 걸러진 키 생성 === | ||
111번째 줄: | 113번째 줄: | ||
=== 비밀키 생성 === | === 비밀키 생성 === | ||
걸러진 키에 후처리 과정인 오류 정정과 비밀증폭 절차를 적용해서 최종 비밀키를 생성하는 단계이다. 비밀키 생성에 필요한 핵심요소는 걸러진 키, 오류 정정 기법, 비밀증폭 기법, 인증키이다. 비밀키 생성 단계는 다음과 같이 이뤄진다. | 걸러진 키에 후처리 과정인 오류 정정과 비밀증폭 절차를 적용해서 최종 비밀키를 생성하는 단계이다. 비밀키 생성에 필요한 핵심요소는 걸러진 키, 오류 정정 기법, 비밀증폭 기법, 인증키이다. 비밀키 생성 단계는 다음과 같이 이뤄진다. | ||
− | # 송수신 자는 | + | # 송수신 자는 걸리진 키를 일치시키기 위해 비트 오류정정 기법을 사용하여 오류를 정정한다. |
# 송수신 자는 오류정보 및 오류정정 과정에서 유출된 정보를 비밀증폭 과정으로 제거한다. | # 송수신 자는 오류정보 및 오류정정 과정에서 유출된 정보를 비밀증폭 과정으로 제거한다. | ||
# 송수신 자는 위의 모든 과정 수행 결과를 비밀키로 저장한다. | # 송수신 자는 위의 모든 과정 수행 결과를 비밀키로 저장한다. | ||
117번째 줄: | 119번째 줄: | ||
* '''주의할 점''' : 오류정정 기법에 필요한 정보들은 변조할 수 없어야 하므로 다양한 무결성 보장 기법을 적용해서 변조 가능성을 검사한다. 공개 채널로 송수신되는 오류 정정 정보의 무결성을 보장하기 위해서 전자 서명, 암호 검사합, 오류 감지 코드, 메시지 인증 코드 기법 등이 사용될 수 있다. 오류정정 과정에서 공개되는 정보는 반드시 완전히 제거해야 하며, 공개된 내용을 통해 혹시라도 비밀키 정보가 유출될 가능성이 있기 때문에 이를 보완하기 위한 비밀 증폭을 과정을 진행한다. 이때 양자키분배 안전성을 보장할 수 있는 비밀증폭 기법을 사용한다.<ref name='BB84 프로토콜 표준'></ref> | * '''주의할 점''' : 오류정정 기법에 필요한 정보들은 변조할 수 없어야 하므로 다양한 무결성 보장 기법을 적용해서 변조 가능성을 검사한다. 공개 채널로 송수신되는 오류 정정 정보의 무결성을 보장하기 위해서 전자 서명, 암호 검사합, 오류 감지 코드, 메시지 인증 코드 기법 등이 사용될 수 있다. 오류정정 과정에서 공개되는 정보는 반드시 완전히 제거해야 하며, 공개된 내용을 통해 혹시라도 비밀키 정보가 유출될 가능성이 있기 때문에 이를 보완하기 위한 비밀 증폭을 과정을 진행한다. 이때 양자키분배 안전성을 보장할 수 있는 비밀증폭 기법을 사용한다.<ref name='BB84 프로토콜 표준'></ref> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 용어 == | == 용어 == | ||
151번째 줄: | 147번째 줄: | ||
* 김나영 외 7인, 〈[http://www.tta.or.kr/data/ttas_view.jsp?rn=1&by=asc&order=kor_standard&totalSu=17417&pk_num=TTAK.KO-12.0329-Part2&nowSu=17411 양자 키 분배 - 제2부: BB84 프로토콜]〉, 《한국정보통신기술협회》, 2018-12-19 | * 김나영 외 7인, 〈[http://www.tta.or.kr/data/ttas_view.jsp?rn=1&by=asc&order=kor_standard&totalSu=17417&pk_num=TTAK.KO-12.0329-Part2&nowSu=17411 양자 키 분배 - 제2부: BB84 프로토콜]〉, 《한국정보통신기술협회》, 2018-12-19 | ||
* 나랑 놀자, 〈[https://blog.naver.com/cyj5595/220871341079 양자암호:BB84 protocol]〉, 《네이버블로그》, 2016-11-26 | * 나랑 놀자, 〈[https://blog.naver.com/cyj5595/220871341079 양자암호:BB84 protocol]〉, 《네이버블로그》, 2016-11-26 | ||
− | |||
* 김선우, 〈[https://www.ksakosmos.com/post/%EB%8F%84%EC%B2%AD%EC%9E%90%EB%A5%BC-%EC%9E%A1%EC%95%84%EB%82%BC-%EC%88%98-%EC%9E%88%EB%8A%94-%EC%95%94%ED%98%B8 도청자를 잡아낼 수 있는 암호]〉, 《한국과학영재학교온라인과학매거진》, 2019-10-30 | * 김선우, 〈[https://www.ksakosmos.com/post/%EB%8F%84%EC%B2%AD%EC%9E%90%EB%A5%BC-%EC%9E%A1%EC%95%84%EB%82%BC-%EC%88%98-%EC%9E%88%EB%8A%94-%EC%95%94%ED%98%B8 도청자를 잡아낼 수 있는 암호]〉, 《한국과학영재학교온라인과학매거진》, 2019-10-30 | ||
* 나영인 기자, 〈[http://www.snunews.com/news/articleView.html?idxno=10804 이봐, 우린 도청 당하고 있어!]〉, 《서울대학교대학신문》, 2011-09-04 | * 나영인 기자, 〈[http://www.snunews.com/news/articleView.html?idxno=10804 이봐, 우린 도청 당하고 있어!]〉, 《서울대학교대학신문》, 2011-09-04 | ||
160번째 줄: | 155번째 줄: | ||
* [[양자암호통신]] | * [[양자암호통신]] | ||
* [[양자키분배]] | * [[양자키분배]] | ||
− | |||
− | |||
* [[양자]] | * [[양자]] | ||
{{암호 알고리즘|검토 필요}} | {{암호 알고리즘|검토 필요}} |