양자역학적인 현상을 쓴다? 0과 1이 동시에 존재한다..?
전자가 저기있을 수도 있고 여기 있을 수도 있다..?
그러나 관측하는순간 여기에 나타난다..?
이게 뭐고 뭐가 대단하길래 요즘 난리일까?
빠르게 알아보자.
양자 컴퓨터는 양자역학적 현상을 활용하여 연산을 수행하는 새로운 패러다임의 컴퓨터이다. 일반 컴퓨터가 비트(0 또는 1)를 사용한다면, 양자 컴퓨터는 큐비트(quantum bit)를 사용하여 정보를 처리한다.
양자역학에서는 전자가 동시에 여러 위치에 존재할 수 있는 특이한 현상이 있다. 이를 중첩 상태라고 한다.
'무슨 소리인가 1이면 1이고 0이면 0이지..' 싶을 때
종이 앞면에 새와 뒷면에 새장이 그려진 종이를 빠르게 회전시켰을 때 새와 새장이 동시에 존재하는 것처럼 보이는 상태와 비슷하다.
이걸 파바박 돌리면 밑에 그림처럼 보이는 상태
중첩 상태의 특징은 관측하는 순간 하나의 상태로 "붕괴"한다는 것이다. 양자역학에서 관측이란 단순히 눈으로 보는 것이 아니라 물리적으로 부딪히는 것에 가까운 개념이다. 이는 회전하는 동전을 잡는 순간 반드시 한 면만 보이는 것과 같은 원리이다.
양자 컴퓨터의 강력한 점은 동시 연산 능력이다.
예를 들어 10개의 비트로는 2¹⁰ = 1024가지 경우의 수가 가능한데, 일반 컴퓨터는 이를 하나씩 계산해야 한다. 반면 양자 컴퓨터는 10개의 큐비트로 1024가지 상태를 동시에 다룰 수 있다. 0과 1의 상태를 동시에 갖기 때문이다.
당연히 현재 인프라로는 제약이 있다.
중첩 상태는 극도로 민감해서 먼지 하나라도 묻으면 안 되며, 관측하는(부딪히는) 순간 상태가 깨진다. 따라서 계산만 하고 그 안에서 최적의 결론을 찾아야 하며, 이 상태를 유지하기 위한 인프라 비용이 매우 크다. 온도도 낮아야하고 진공이어야 하고 등등.. 양자역학을 전공하시는 분들의 팟캐스트나 강연을 참고한 결과 현재의 인프라로 상용화되기에는 수지타산이 안맞는다고 한다.
요즘 양자컴퓨터 양자컴퓨터 말이 많은 이유가 바로 '이제 암호화 어떡하징?'에 대한 걱정 때문이다.
현재 웹 보안의 근간인 RSA 암호화를 예로 들어보자. 서버는 두 개의 소수를 선택한다. 53(비밀키)과 59(공개키)라고 가정하자. 이 두 수를 곱하면 3127이 된다. 서버는 59라는 공개키만 클라이언트에게 제공하고 53이라는 비밀키는 안전하게 보관한다.
이제 클라이언트가 중요한 정보를 서버로 전송하고 싶다면:
1. 공개키(59)와 n값(3127)을 사용해 데이터를 암호화한다
2. 암호화된 데이터를 서버로 전송한다
3. 서버는 자신만 알고 있는 비밀키(53)를 사용해 이 데이터를 복호화한다
실제로는 훨씬 더 큰 소수를 사용하기 때문에, 일반 컴퓨터로는 공개키만으로 비밀키를 찾아내는 것이 거의 불가능하다. n값을 소인수분해하여 비밀키를 찾으려면 수백 년이 걸리기 때문이다.
하지만 양자 컴퓨터는 이야기가 다르다. 양자 컴퓨터는 모든 가능한 소인수를 동시에 계산할 수 있다.
예를 들어 3127이라는 숫자의 소인수를 찾기 위해:
일반 컴퓨터: 2로 나눠보고, 3으로 나눠보고... 하나씩 시도 양자 컴퓨터: 모든 수로 동시에 나눗셈 시도 가능
즉, 양자 컴퓨터는 서버의 비밀키를 매우 빠른 시간 내에 찾아낼 수 있다는 것이다. 이는 현재 웹 보안의 기반을 흔들 수 있는 심각한 위협이 된다.
일반 컴퓨터: 가능한 모든 열쇠 조합을 하나씩 시도 → 수백 년 소요
양자 컴퓨터: 모든 조합을 동시에 시도 → 매우 빠른 시간 내 해결 가능
이것이 바로 새로운 암호화 방식, 특히 양자 내성 암호화(Post-Quantum Cryptography)가 필요한 이유이다. 양자 컴퓨터로도 풀 수 없는 새로운 수학적 문제를 기반으로 한 암호화 방식을 개발해야 한다.
한 세기 안으로 가능할까 싶다.
필자는 웹 개발자를 꿈꾸는 새싹이기 때문에 이 글이 결론적으로 이러한 파도속에서 어떤 웹 개발자로 준비해야하는가로 끝나야 그림이 예쁠 것 같아 정리해본다.
웹 개발에서 렌더링은 CPU, GPU, RAM이 협력하여 웹 페이지를 화면에 그리는 과정이다.
- CPU: JavaScript 실행, DOM 조작
- GPU: 그래픽 처리, 애니메이션
- RAM: 임시 데이터 저장
계산이 빠르게 되면 렌더링이 엄청 빨라지려나? 싶었지만 현재로서는 양자 컴퓨터가 웹 렌더링에 직접적인 영향을 미치지는 않는다고한다.
왜?
렌더링과 양자컴퓨팅의 관계를 보면 알 수 있다.
- 렌더링의 특성:
- 순차적 처리가 필요한 작업이 많음 - 실시간 처리가 필요함 - 결과를 즉시 관찰해야 함
- 특정 종류의 병렬 계산에 강점
- 중간 관찰이 불가능
- 결과 관찰 시 상태가 무너짐
- 매우 불안정한 환경
웹 렌더링 과정:
1. HTML 파싱 → 2. CSS 계산 → 3. 레이아웃 계산 → 4. 페인팅 (각 단계가 이전 단계의 결과에 의존적)
양자컴퓨팅이 잘 하는 것:
독립적인 많은 계산을 동시에 처리 예) 1024개의 숫자를 동시에 더하기
여기서 집중!!
왜 렌더링에 적합하지 않은가:
- 순차성
- 렌더링은 이전 단계의 결과를 보고 다음 작업을 결정해야 함
- 양자컴퓨터는 중간 결과 확인이 불가능
- 실시간성
- 웹은 실시간 상호작용이 필요
- 양자컴퓨터는 결과 관찰에 제약이 있음
- 안정성
- 렌더링은 지속적이고 안정적인 처리 필요
- 양자컴퓨터는 극도로 통제된 환경 필요
따라서 현재의 CPU, GPU가 렌더링에 더 적합한 구조를 가지고 있다.
양자컴퓨터는 암호화 해독이나 대규모 데이터 분석 같은 특수한 계산에 더 적합하다.
보안 관련 역량
- 양자 내성 암호화에 대한 이해
- 새로운 보안 프로토콜 학습
- 암호화 관련 최신 동향 파악(현실적으로는 이 방법이 양자시대 속 작은 무기를 갖추는데 도움이 될 것 같다.)
양자 컴퓨터 시대가 도래하더라도 계산하는 하드웨어가 바뀌는것이기때문에 웹 개발의 기본 원칙은 변하지 않을 것이라고 한다. 다만 보안과 암호화 분야에서 큰 변화가 예상되므로, 이에 대한 준비가 필요할 것 같다.