Photo by Leon Seibert on Unsplash

 

온라인 전자 상거래나 공인 인증이 일상화되면서 보안을 위해 메시지를 암호화하여 주고받는 암호통신의 중요성이 강조되고 있다. 암호통신에서 가장 핵심적인 문제 중 하나는 메시지를 암호화하거나 이를 다시 원래의 메시지로 복호화하는 데 필요한 키를 암호통신의 대상자인 송·수신자가 어떻게 안전하게 주고받느냐에 대한 것이다. 이러한 암호통신은 암호화나 복호화에 필요한 키를 관리하는 방식에 따라 크게 ㉠대칭키 방식과 ㉡공개키 방식으로 구분된다.


대칭키 방식은 메시지를 암호화하거나 복호화할 때 동일한 키를 사용한다. 이러한 이유로 송신자와 수신자만 아는 비밀키를 미리 분배하고 사용하는 과정에서 키 정보가 유출될 가능성이 높아 암호통신을 시도할 때마다 상대에 따라 새로운 비밀키를 사용해야 한다. 이에 반해 공개키 방식은 암호화 키와 복호 화 키가 서로 다른 방식이다. 수신자가 미리 생성하여 공개한 공개키(public key)로 송신자가 메시지를 암호화하여 전송하면 수신자는 공개키에 대응하여 생성한, 자신만 알고 있는 비밀키(private key)를 이용하여 복호화한다. 공개키 방식은 별도의 비밀키 분배 과정이 필요 없고 통신 상대에 따라 비밀키를 바꿀 필요도 없어 대칭키 방식에 비해 보안에 유리하다.


대표적인 공개키 방식인 RSA 알고리즘은 큰 소수의 곱과 추가 연산을 통해 만들어진 정수의 소인수 분해가 매우 어렵다는 점에 기반하여 한 쌍의 공개키와 비밀키를 생성한다. 키를 만드는 연산 과정이 복잡하여 대칭키 방식에 비해 암호화나 복호화 속도가 상대적으로 느리지만 암호화된 문서가 유출되어도 현재의 컴퓨터 성능으로는 비밀키를 유추하는 데 비현실적으로 오랜 시간이 걸리기 때문에 비밀키를 바꿀 필요가 없다. 하지만 컴퓨터 연산 속도가 급격하게 발전하게 되면 복잡한 연산 과정을 기반으로 한 공개키 방식의 암호 체계가 위협받을 가능성이 높아질 수 있다.


그래서 최근 수학적 복잡성에 의존하지 않으면서도 도청으로부터 비밀키를 안전하게 나누어 가질 수 있는 ㉢양자암호통신 기술이 주목받고 있다. 양자암호통신에서는 매번 새롭게 만들어지는 비밀키를 안전하게 나누어 갖기 위해 양자의 종류 중 하나인 광자의 물리적 특성을 이용한다. 원자나 분자 단위 이하의 미시 세계를 다루는 양자 역학에서 광자는 더 이상 나눌 수 없는 최소 단위이기 때문에 광자 하나하나에 정보를 실어 보내는 양자암호통신에서 단일광자에 실린 정보의 일부만을 가로채는 것은 불가능하다. 또한 도청자가 단일광자 자체를 가로챈다 하더라도 수신자에게 가로챈 광자와 동일한 상태의 광자를 보내야만 도청 사실을 숨길 수 있는데 여러 상태를 동시에 지니는 ‘중첩’이라는 양자의 특성 때문에 단일광자의 원래 상태를 정확히 측정해 보낼 수 없다. 이러한 이유들로 인해 양자 암호통신은 도청으로부터 안전한 신호 전달이 가능하다.


양자암호통신의 대표적인 키 분배 기술로는 단일광자의 편광 상태에 정보를 실을 수 있는 BB84 프로토콜*을 들 수 있다. 자연 상태의 빛은 진행하는 방향과 수직인 모든 방향으로 진동하는 특성이 있는데, 진동 방향에 따라 빛을 선택적으로 통과시킬 수 있는 필터를 이용하면 특정한 방향으로 진동하는 빛을 만들 수 있다. 이러한 빛을 ‘편광’이라고 하며, 편광을 만들 때 이용하는 필터를 ‘편광필터’라고 한다. 그런데 편광된 광자 또한 여러 방향으로 진동하는 ‘중첩’ 특성을 지니고 있다. 즉 편광필터를 통과한 수직(↕)이나 수평(↔) 편광의 경우 대각(↗↙)·역대각(↖↘) 편광 특성도 지니고 있으며, 마찬가지로 편광필터를 통과한 대각이나 역대각 편광 또한 수직·수평 편광 특성을 동시에 지니고 있다. 따라서 수직이나 수평 편광을 ✚ 편광필터를 이용하여 측정하면 수직이나 수평 편광으로 100% 측정되지만, 수직이나 수평 편광을 ✖ 편광필터를 이용하여 측정하면 대각 혹은 역대각 편광으로 잘못 측정된다.


이러한 편광의 중첩 특성이 BB84 프로토콜에서 어떻게 이용되는지 알아보자.

※ ‘×’는 누락된 광자.


BB84 프로토콜은 먼저 위 <표>의 (a)처럼 송신자가 무작위로 비트 정보를 생성하는 것으로 시작한다. 이때 BB84 프로토콜은 수직 편광과 역대각 편광은 ‘1’이라는 비트 정보로, 수평 편광과 대각 편광은 ‘0’이라는 비트 정보로 표시하기로 약속되어 있어 (b)처럼 송신자가 ✚ 편광필터와 ✖ 편광필터를 무작위로 선정하면 (c)와 같은 편광 신호들이 생성된다. 수신자는 (c)에서 생성된 편광 신호들이 어떤 편광인지 전혀 모르는 상태에서 (d)처럼 스스로 무작위로 편광필터를 선택하여 (e)와 같이 편광된 광자를 측정한다. 이때 전송 과정에서 잡음 등으로 인해 누락된 광자가 발생할 수 있으며, 누락된 광자는 측정에서 제외된다. 이후 송·수신자는 공개 채널에서 자신들이 어떤 편광필터를 어떤 순서로 사용했는지 서로 공유하면 (f)와 같이 동일한 편광 필터를 사용한 ‘010’이라는 비트 정보만 걸러낼 수 있어 비밀키로 사용하는 측정값을 안전하게 공유할 수 있다.

 

 

― (출전) 한상욱, <양자암호통신 개요 및 기술동향>

@ 2019학년도 7월 고3 전국연합학력평가, 33~37번.