Quantum cryptography basic - BB84를 중심으로

1. 양자암호

최근에 중국이 양자위성을 쏘았다든지 북한이 양자컴퓨터 기술을 가지고 있다 든지 비트코인이 양자컴퓨터 때문에 망할꺼라는 기술 등, 약간의 IT 지식이 있는 사람이라면 누구나 양자암호, 양자컴퓨터 등등의 단어는 들어보았을 거 같다.

근데 정작, 이게 뭔지 어떤 원리인지도 잘 모르겠는데 단지 저 단어만 들어가면 “모든 보안 시스템이 무력화된다”든가 “모든 시스템이 해킹된다”든가 등등의 엄청난 FUD 의 위용을 자랑하고 있다.

나도 양자에 대해서 정확하게 아는 것도 아니고, 기술 트랜드를 꿰고 있는 것은 아니지만 최소한 기본적인 내용을 알면 저런 얘기에 휘둘리지는 않을 거 같아 공부해본 결과, 재미있는 기술이지만, 아직 상용화의 길은 멀다 가 결론이 아닐까 한다.

일단 살펴본 바로는 아래와 같이 구성된다.

fig1

  • 양자기술 양자기술은 크게 두 가지 흐름으로 발전하고 있는 듯 하다. 근데 그 두 가지 기술이 서로 창과 방패의 역할을 하고 있는데 “현재의 보안시스템을 무력화 할 수 있는” 양자 컴퓨터 기술 과 현재의 보안시스템의 기능을 크게 강화할 수 있는 양자통신암호 기술이 그것이다.
    • 양자 컴퓨터 기존의 디지털 처리기술 대비, 양자를 기본으로 하여 대용량의 연산을 한번에 처리할 수 있다고 한다. 예를 들어 8 bit 컴퓨터의 경우, 기존 0000 0001 은 하나의 데이터를 나타내지만 양자 컴퓨팅에서는 8bit 전수 2^8 을 한번에 처리할 수 있다고 한다. 이걸 shor라는 사람이 이러한 특성을 이용하여, 기존 정수론 기반의 암호체계(RSA, ECC, DH) 를 모두 polynomial time 안에 계산해낼 수 있다고 발표하여 shor’s algorithm 이라고 하는데 현재 모든 그 두려움들이 이 이론에 기반한다고 보면 된다. 그렇다면 그러한 두려움이 얼마나 현실로 다가왔느냐? 를 찾아보면, 위 링크에 나와있지만 2001년에 3 x 5 = 15, 2012년에 3 x 7 = 21을 찾아냈다고 한다.. 아하…그렇구나 참고로 현대 암호에서 쓰이는 RSA 의 개인키가 2048bit가 권고되고 && 쓰이고 있음..

    • 양자통신암호 흔히 얘기하는 양자암호이다. QDE라고 하여 data를 암호화하는 기술도 있지만, 실제로 양자통신암호라고 하는 부분은 키 분배 를 양자기술로 이용할 뿐, 실제 암호통신은 기존 레거시(AES)를 사용하는 것과 똑같다. 즉, 뭔가 굉장히 센세이션하게 모든 통신을 양자로 사용하는 것처럼 보이지만 실제로는 QKD, 즉 Quantum Key Distribution을 양자통신암호로 통칭하여 사용하고 있다.

2. 양자의 특성

양자란?

fig8

일단 위 그림처럼 정리해봤지만.. 아직 잘 모르겠다. 양자를 이야기할 때 늘 슈뢰딩거의 고양이 를 이야기하는데.. 솔직히 이거 읽어봐도 더 이해가 안된다.

양자는 상호작용과 관계된 모든 물리적 독립체의 최소단위라고 하는데, 백과사전을 읽어봐도 단순하게 분자-원자-중성자-양성자-쿼크 등의 크기로 딱 나눠서 설명할 수 있는 거 같지도 않다. 그냥 아주 작은 물질인데 상태와 방향을 가진다 정도로만 나는 이해하련다. 더 이상 알기는 불가능하다…ㅋㅋ

양자의 특성과 암호

Claude E. Shannon - 정보이론의 아버지 외계인

fig2

디지털 컴퓨터의 이론 기반, 압축/암호/통신 이론 기반 제시하여 한 가지도 제대로 알기 어려운데, 거의 먼치킨 급이라고 할 수 있다. 신호처리, 인공지능 이론 기반 제시했다고 하는데 암호 쪽에서도 굉장한 기여를 했다.

바로 OTP(One time pad) 보안카드 대신 쓰는 OTP가 아님!! 를 암호학적으로 해독할 수 없음을 수학적으로 증명했다는 점인데(OTP를 최초로 제안한건 아니고..ㅋ), OTP는 Message와 동일한 size의 random한 암호화 키를 사용하여 암호화의 다양한 부수적인 문제를 가지고 있다. 예를 들면, Key distribution, Authentication, True randomness 및 한번 쓰고 버려야 하는 점과 키의 길이가 매우 길어진다는 단점이 존재하여 현실세계에서는 사용하기 어려운 방법이지만, 암호학적으로는 완벽하다는 것을 증명했다.

양자암호통신에서 나는 이러한 OTP의 향기를 느꼈는데, 개인적으로 이러한 OTP를 양자의 물리학적 특성을 이용하여 가장 근접하게(or 이상적으로) 구현한 방법이라고 생각한다. 즉, Unconditionally secure한 양자통신을 이용하여 암호키 구성 및 프로토콜을 제공하는 방법 이라고 생각한다.

3. BB84 프로토콜

개요

  • C.H.Benett과 G.Brassard가 1984년에 제시한 프로토콜이며
  • 양자역학의 관측이론과 원타임패드 암호 방식을 결합하여 해독이 불가능하게 만든 암호이다.

Background

  • Basis(기저)와 polarizing photon(편광 광자)라는 두 가지 요소가 존재하는데
  • 기저는 Filter 개념으로, 광자는 방향성을 가진 벡터(수직, 수평, +- 45)로 이해하면 된다. 맞나?ㅋㅋㅋ

크게 2개의 phase로 나눌 수가 있음

Quantum transmission

  • 실제 양자 데이터를 주고 받는 과정
  • Basis(기저)와 polarizing photon(편광 광자)를 이용하여 random data를 주고받음
  • 유일하게 양자통신을 수행하는 단계

Public discussion

  • 서로 basis를 교환하여 위에서 받은 광자의 결과값을 각자 계산함 서로 계산한 결과값 중 일부 결과는 검증용으로 사용(폐기), 나머지는 Data 를 암호화하는 키의 재료(material)로 사용
  • 모든 과정은 공개된 채널을 통해서 수행(ethernet, etc.)

fig3

간단히 요약하면?

  • 기저와 편광 광자를 이용하여 0과 1을 표현하기로 약속하고(Encoding rule)
  • 기저/광자와 데이터를 랜덤하게 생성한 후, 약속에 맞게 광자를 전송한 이후 (Quantum transmission)
  • 기저를 교환하여 기저에 맞는 결과값이 도출하였는지를 검증, 틀리면 폐기, 맞으면 사용(Validation)

더 간단히?

  • 서로 난수를 주고받고, 필터로 걸러낸 후
  • 필터를 교환하여, 결과값과 필터를 비교하여 올바르게 걸러졌는지 확인하는 작업

BB84 상세 분석(Textbook version)

fig4

실제 원 논문에서 가져온 그림이다. 간단히 요약하면

  1. [광자의 방향, 기저] 를 아래와 같이 Encoding
    • (사선) D + 45 = 0, D – 45 = 1
    • (직선) R + 90 = 0, R + 0 = 1
  2. Quantum phase
    • Alice와 Bob이 random한 기저를 생성
    • Alice가 쏜 광자를 Bob이 수신
  3. Validation phase
    • Alice와 Bob이 서로의 기저를 교환
    • 주고받은 데이터를 검증
    • 오류율이 높으면 discard, 그렇지 않으면
    • Raw key 생성 (이게 암호키, 대칭키)

중요한 전제는 바로 single photon, 즉 단일광자에 의한 통신이며 따라서 양자통신암호의 가장 중요한 기술적 기반요소는 physics 물리학에서 단일 광자를 얼마나 정확하게 컨트롤 할 수 있느냐이다. 재미있는 것은, 이러한 단일 광자를 정확하게 컨트롤 하는 것이 앞서 언급했던 양자 컴퓨터의 핵심기술 이기도 하다. 실제로 우리나라에서 확보된 기술은 1 QBit를 통제할 수 있는 수준이라고 한다.

이는 양자얽힘 등의 기타 다른 QKD 대비, BB84 중심으로 QKD가 구성될 수 밖에 없는 배경이기도 하다.

혼히 착각하는 것 중에(나도 이 논문을 보기 전에) public channel을 통해 검증 과정이 있다는 것을 간과하는데, 서로의 필터(기저)를 교환하여 쏜대로 받았는지를 검증하는 것은 물리적인 성질과 S/W기반의 보안 프로토콜 설계 간의 아름다운 조합이 아닌가 한다.

어쨌든 이러한 단일 광자를 방향성을 기반으로 전달하고 이를 필터링하여 “에러가 나지 않고(중간 도청이든 뭐든)” 정확하게 수신이 되면, 양 쪽은 같은 값을 갖게 되고 이것을 실제 데이터를 암호화하는 키로 사용하겠다는 것이다.

도청(eavesdropping)이 방지되는 이유는 아래와 같다. 1) Passive eavesdropping(그냥 얌전히 도청만 하려고 하는 공격자): 광자 상태를 복제할 수 없음 (광자를 도청자가 받으면 끝) 2) Active eavesdropping(뭔가 직접 비밀값도 건드리고 실제 데이터도 조작하면서 열심히 도청하려는 공격자): A,B의 기저를 알아냈을 때는 이미 폐기된 기저(random, OTP). 만약 A,B가 동일한 기저를 다시 재활용하고 공격자가 정확한 시작지점을 포착하여 광자를 쏘는 게 아니라면, 확률상 불가능하다.

참고

BB84 Textbook version이라고 했던 이유는 가장 기본적인 scheme만 살펴봤기 때문이다. 실제로 BB84는 더 많은 단계를 거친다.

fig9

위에서 표기된 링크 를 쫓아가면, 실제로 practical한 BB84의 실 단계들을 볼 수 있다. 기본적인 흐름을 조금 더 구체화하여 단계별로 수행한다고 보면 될 듯 하다.

기타 양자성질에 따른 보안 프로토콜

간단히 표로 요약하면 아래와 같음

fig5

아직은 양자를 확실히 통제하는 수준이 미미하기 때문에, 상대적으로 안정되고 구현이 용이한 single photon 기반의 QKD가 상용화되고 있다고 보면 될 듯 하다. (참고로 중국의 통신위성은 양자얽힘 현상을 활용하는 듯..)

4. 기타

Quantum Hacker의 등장

제목 참 센세이션하다. 양자통신은 Unconditionally secure하다고 증명되었지만, 그것은 이론의 문제이고 실제 현실 상에서는 그렇지 않다고 한다.

fig6

대충 이해한 바로는 computing 환경에서 overflow와 유사한 기법으로써, 이론적으로 single photon 이 쓰여야하는데 실제로는 검출기 등의 성능 등의 문제로 인하여 photon 덩어리들을 쏘는데. 이 때 avalanche 효과를 이용하여 레이저를 와아악! 쏴버리면 검출기가 망가져서 공격자의 control 하에 시스템이 놓이게 된다는 내용의 논문이다.

물론 이를 필터나 다른 부수적인 보완책으로 막을 수도 있고, 요런 논문 처럼 S/W 적인 방어방법도 제시되고 있지만.. 완벽히 안전하다고 생각할 수 있는 quantum system도 실제 환경에서는 그렇지 않을 수 있다는 점은 참 센세이션 하다.

QKD의 영향력

fig7

BB84를 개발한 찰스 베넷의 인터뷰 글이다. 출처

결국 QKD가 인프라적인 측면에서의 영향력은 매우 제한적일 것이라는 얘기.. 다만 동전의 양면처럼, 같은 기술로 두 가지 응용분야가 생긴다면 명분 상으로는 막기 위한 보안시스템을 만든다고 하겠지만 실제로는 뒤에서는 뚫기 위한 양자 컴퓨팅 쪽이 더 빠르게 발전하지 않을까? 하는 생각이 든다.

영국 NCSC의 QKD 평가

출처는 여기

NCSC는 National Cyber Security Centre. 영국 정보통신본부(GCHQ) 산하의 정보부서로써 2016년에 CESG를 개편하여 신규 구성한 조직이다. 미국의 NSA나 한국의 국정원 산하 사이버안전센터와 유사한 성격의 기관이라고 보면 될 듯.

정리하자면,

  • Security 문제의 일부만을 이야기 하고 있음
    • 다양한 문제 가운데 key agreement만을 해결함
    • 인증과 무결성 문제를 전혀 해결하지 못함
  • 상용 QKD 시스템은 현실적인 문제가 존재함
    • 전송구간이 짧음
    • 기존 인터넷과 모바일 환경과 쉽게 통합되기 어려움
    • 일부 통합문제를 해결하기 위한 노력이 있으나, 
새로운 보안문제를 야기하고 있음
  • QKD 시스템은 효율적이지 못함
    • 전용 장비의 가격이 비쌈 – 원격 패치, 취약점 대응 포함
    • Device-independent QKD는 아직 너무나 먼 이야기
  • 영국정부의 방향
    • 아직은 정부나 군사용 어플리케이션의 활용을 보증하지 못함
    • Real-world에서 사용할 QKD 취약점 분석을 병행하며, 상용표준이 제정될 때까지는 해당 방향 유효

5. 마무리

아무래도 보안 쪽에서 일을 하다보니, 뭘 긍정적으로 받아들이기보다는 비판적으로 바라보는 시각 때문에 quantum에 대한 안 좋은 얘기도 많았지만, 사실 많이 기대가 되는 분야이기도 하다.

아무래도 이 기술은 기업보다는 기관이나 국가 차원에서 많은 투자를 해줘야 하는 분야가 아닐까 싶다. 또한, 기반은 물리학자들이 닦되 위의 BB84처럼 결국 그러한 특성을 이해하고 보안 쪽에 응용할 수 있는 사람은 computer science 분야가 되어야 하지 않을까 싶다.

물리학과 컴퓨터공학(과학)의 절묘한 collaboration을 기대해볼만한 분야이다.

Written on August 21, 2017