paint-brush
양자 회로 및 키 분배를 통한 암호화 강화~에 의해@angelinatsuboi
1,176 판독값
1,176 판독값

양자 회로 및 키 분배를 통한 암호화 강화

~에 의해 Angelina Tsuboi13m2023/05/04
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

양자 컴퓨팅은 양자 역학과 같은 물리 법칙을 활용하여 기존 컴퓨터보다 훨씬 빠르게 계산을 수행합니다. 이는 금융 모델링, 최적화, 양자 통신 및 양자 암호화와 같은 수천 가지 잠재적 응용 프로그램의 문을 열어줍니다. 이 기사에서는 양자 회로에 대한 간략한 설명과 이 모든 것을 작동시키는 양자 역학의 원리를 제공할 것입니다.
featured image - 양자 회로 및 키 분배를 통한 암호화 강화
Angelina Tsuboi HackerNoon profile picture


최신 컴퓨팅 기술에 대해 잘 알고 계시다면 아마도 양자 컴퓨팅이라는 개념에 대해 들어보셨을 것입니다. 용어 때문에 현장이 다소 위협적이고 난해하게 들릴 수 있지만, 양자 컴퓨팅 의 원리와 그 응용은 충분한 노출과 경험을 통해 직관적인 수준에서 이해할 수 있습니다.


양자 컴퓨팅은 양자 역학과 같은 물리 법칙을 활용하여 기존 컴퓨터보다 훨씬 빠르게 계산을 수행합니다. 이는 금융 모델링, 최적화, 양자 통신 및 양자 암호화 (이 기사의 뒷부분에서 더 자세히 살펴보겠습니다)와 같은 수천 가지 잠재적 응용 프로그램에 대한 문을 열어줍니다. 기술이 계속 발전함에 따라 결국 점점 더 많은 양의 컴퓨터 시스템이 양자 컴퓨팅 전략을 채택하여 광범위한 응용을 가능하게 하고 기본적인 물리적 원리를 적용하여 일반적인 문제를 해결하게 될 것입니다.


이 기사에서는 양자 회로에 대한 간략한 설명과 이를 작동시키는 양자 역학의 원리를 제공할 것입니다.


목차

  • 양자 상태와 큐비트
  • 상태 벡터와 Bloch 구
  • 양자 회로
  • 양자 게이트에 대해 더 깊이 알아보기
  • 샘플 양자 회로
  • 양자 회로 응용
  • 양자 암호화
  • 양자 키 분배
  • QKD의 메커니즘
  • 취약점 예: RSA
  • BB84 프로토콜
  • 결론

양자 상태와 큐비트

양자 회로에 대해 자세히 알아보기 전에 양자 회로가 양자 게이트와 큐비트로 구성되어 있는지 알아보겠습니다.


큐비트

여러분이 지금 사용하고 있는 것과 같은 고전적인 컴퓨터는 정보를 전송하기 위해 비트에 의존합니다. 비트는 0과 1의 두 값 중 하나만 될 수 있는 상태를 나타냅니다. 비트는 숫자에서 텍스트에 이르는 모든 정보를 나타내는 데 사용할 수 있는 이진수를 만들기 위해 함께 뭉쳐질 수 있습니다. 예를 들어 숫자 12는 이진수로 1100으로 표시됩니다. 이는 바이너리의 기본이 2이므로 가능한 값 슬롯이 2⁰, 21, 23, 2⁴ 등이 될 수 있기 때문입니다. 이 개념을 적용하면 12를 이진수로 변환하면 다음과 같습니다.


8 4 2 1 1 1 0 0 -> 8 + 4 + 0 + 0 -> 12


우리는 8과 4를 더하면 12가 된다는 것을 알고 있습니다. 따라서 8과 4에는 이진수로 1의 값이 할당됩니다. 반면에 2와 1은 12의 출력을 생성하는 데 관련이 없으므로 둘 다 0의 값이 제공됩니다. 이는 숫자 12에 대한 최종 이진 값 1100을 제공합니다.


큐비트를 이해하기 위해 비트의 원리를 양자 컴퓨팅에 적용할 수 있습니다. 비트와 마찬가지로 큐빗은 컴퓨터의 상태를 나타내는 데 사용되지만, 비트와는 달리 상태의 중첩으로 존재할 수 있습니다. 즉, 0과 1을 동시에 나타낼 수 있습니다. 그런데 어떻게 이런 일이 있을 수 있겠는가? 하나의 단위가 어떻게 두 가지 가능한 값을 동시에 나타낼 수 있습니까?


위에 놓기

중첩을 더 자세히 이해하기 위해 비유를 사용해 보겠습니다. 동전을 공중으로 던진다고 상상해 보세요. 동전이 공중에 있는 동안 동전은 앞면과 뒷면의 값을 동시에 나타내는 중첩 상태에 있습니다. 우리는 동전이 땅에 떨어지고 중첩 상태가 붕괴되어 앞면이나 뒷면이 나올 때에만 동전의 가치를 확실히 알 수 있습니다. 마찬가지로, 양자 역학에서 큐비트(양자 비트라고도 함)는 0과 1의 값을 모두 나타내는 상태로 존재할 수 있습니다. 큐비트가 0이나 1로 붕괴된 후에만 큐비트의 명확한 상태를 알 수 있습니다.


양자 게이트

양자 게이트는 회로의 논리 게이트와 매우 유사합니다. 클래식 컴퓨터와 양자 컴퓨터 모두에 적용되는 논리 게이트는 이진 입력(예: 0과 1, 스핀업 전자 및 스핀다운 전자 장치, 고양이와 개 등)을 받아들이고 단일 결과를 생성하는 구조입니다. 부울 함수라는 시스템을 사용하여 값(예: 1, 스핀업 전자 및 개)을 사용합니다. 그런 다음 이러한 게이트를 함께 사용하여 견고한 회로를 생성할 수 있습니다. 큐비트를 도입하면 클래식 게이트와 양자 게이트의 차이점이 드러납니다. 양자 게이트와 고전 게이트의 차이점은 중첩, 가역성 및 얽힘입니다. 양자역학을 자유롭게 사용할 수 없는 기존 게이트와 달리 양자 게이트는 어떤 값이 통과하는지에 대한 정보를 유지하여 본질적으로 가역성을 제공할 수 있습니다. 양자 게이트를 통과한 모든 것은 역전될 수 있지만, 고전 게이트에서는 동일한 원리가 유지되지 않습니다. 즉, 양자 게이트는 입력을 원하는 특정 출력으로 조작하는 데 사용됩니다.


녹채

배워야 할 마지막 중요한 개념 중 하나는 얽힘입니다. 양자 얽힘은 두 개 이상의 입자 상태가 서로 연결되고 상호 의존할 때 발생합니다. 이를 통해 연구자들은 입자를 분리하는 거리에 관계없이 다른 입자의 상태를 측정하여 한 입자의 상태를 결정할 수 있습니다. 예를 들어 스핀업 입자와 스핀다운 입자가 모두 존재하는 경우 스핀업 입자의 상태를 참조하여 스핀다운 입자의 구성을 정확하게 유추할 수 있습니다. 특히 보안 통신 채널에 의존하는 양자 알고리즘을 더 자세히 살펴보면 얽힘이 중요해집니다.


상태 벡터와 Bloch 구

벡터 이론

벡터를 사용한 상태 표현에 대해 자세히 알아보기 전에 벡터에 대한 몇 가지 예비 지식을 이해하는 것이 중요합니다.


상태 벡터

양자 물리학에서는 상태 벡터를 사용하여 시스템의 현재 상태를 설명합니다. 상태 벡터는 벡터 내의 각 요소에 큐비트가 특정 상태에 있을 확률을 포함하는 숫자 컬렉션을 호스팅합니다.


간단한 예는 다음과 같습니다…


Qiskit의 이미지



위 이미지는 측정 시 확실히 0을 출력하는 큐비트 |0⟩을 보여줍니다. 마찬가지로 |1⟩로 표시된 1을 출력하는 큐비트도 있어야 합니다. 상태 간에 수렴이 없기 때문에 이 두 상태는 상호 배타적이라는 것을 알고 있습니다(큐비트는 0 또는 1을 출력함). 이는 위에서 직교 벡터로 표현됩니다. 아래의 약간 더 복잡한 예에 동일한 개념을 적용할 수 있습니다.



Qiskit의 이미지




위의 이미지(|q0⟩로 표시)는 |0⟩ 및 |1⟩보다 더 미묘한 상태를 설명합니다. 위의 큐비트는 다음과 같이 다시 작성할 수 있습니다.



Qiskit의 이미지




이 상태는 출력이 완전히 |0⟩ 또는 |1⟩이 아니고 출력이 중첩이라고도 알려진 두 가지의 선형 조합인 큐비트 q0에 대한 상태 벡터를 보여줍니다.


블로흐 구체

중첩의 추상적 현상을 시각화하기 위해 양자 물리학자들은 Bloch Sphere라는 수학적 도구를 사용하여 큐비트의 가능한 상태를 시각화합니다. Bloch Sphere의 모든 지점은 큐비트의 가능한 상태가 될 수 있습니다. 아래 이미지는 theta = pi / 2 및 phi = 0인 |+⟩ 상태의 큐비트를 시각화합니다.



Qiskit의 이미지



양자 회로

작동 중인 큐비트와 양자 게이트를 시연하기 위해 입력이 왼쪽에 표시되고 출력이 오른쪽에 표시되는 회로도를 볼 수 있습니다. 그 사이의 작업은 모호한 기호로 표시되는 게이트입니다. 이것은 표준 비트 기반 컴퓨터의 일반적인 회로입니다. 입력 신호는 A, B, C이며 모두 회로로 전달되고 그 사이의 게이트에 의해 조작되어 결과 신호 Q를 생성합니다. 이것은 고전 회로를 시각화한 고전 회로도입니다.


회로에 관한 모든 것의 이미지


양자 회로 다이어그램은 고유한 가역성도 고려해야 하기 때문에 이 회로 규칙을 조금 더 향상시킵니다. 따라서 모양이 약간 다르며 클래식 회로와는 몇 가지 다른 규칙을 따릅니다. 양자 회로의 모습은 다음과 같습니다.


Qiskit의 이미지


이 회로를 구성 요소로 나누어 보겠습니다.


  • 각 수평선(예: q0, q1 및 q2)은 단일 큐비트를 나타냅니다.
  • 가장 왼쪽 문자는 각 큐비트의 이름(예: q0, q1 및 q2)을 나타냅니다.
  • 다이어그램은 각 열이 알고리즘 순서의 단계를 나타내는 열로 분할됩니다. 음악의 음표처럼 순차적인 순간의 단계로 생각할 수 있습니다.
  • 사이의 블록은 큐비트에서 작업을 수행하는 양자 게이트를 나타냅니다.


양자 회로와 고전 회로의 주요 차이점은 양자 회로는 직선 수평선으로 표시되는 큐비트를 표시하는 반면 , 양자 게이트는 동일한 양의 입력 및 출력 큐비트를 갖는 반면 고전 회로는 다양한 방향으로 이동할 수 있는 비트 라인을 갖는다는 것입니다.

양자 게이트에 대해 더 깊이 알아보기

파울리 X-게이트

Pauli X-gate는 양자 게이트의 내부 작동에 대한 간단한 소개를 제공합니다. 그 목적은 매우 간단합니다. 부정입니다. 기존 NOT 게이트와 매우 유사한 Pauli X-gate는 큐비트의 상태를 아래 진리표에 설명된 반대 값으로 뒤집습니다. X-gate의 기능을 물리적 세계에 적용하면 전자의 스핀업 상태를 스핀다운 상태로 전환하거나 그 반대로 전환할 수 있습니다.
|0>|1> 또는 |1>|0>




Pauli Y-게이트 및 Z-게이트

X-게이트와 마찬가지로 Pauli Y-게이트는 다음을 변환하는 단일 큐비트 작업입니다.

|0> → -i|1> AND |1> → i|0>


이는 Bloch 구의 Y축을 중심으로 큐비트를 회전하여 표시할 수 있습니다.


Pauli Z-gate는 |1> → -|1>을 매핑하고 |0>을 변경하지 않는 단일 큐비트 작업이기도 합니다. Z-게이트 연산은 Bloch 구의 z축을 중심으로 파이 라디안 단위로 회전하여 시각화할 수 있습니다.




Pauli X, Y 및 Z 게이트의 Bloch 구 표현


하다마르 게이트

Hadamard 게이트는 양자 컴퓨팅에 사용되는 가장 보편적인 게이트입니다. 이는 다음 매핑을 생성하는 단일 큐비트 작업입니다.


∣0> → (|0> + |1>)/√2 AND ∣1> → ( |0> — |1>)/√2


이는 두 가지 기본 큐비트 상태의 동일한 중첩을 생성합니다. 즉, 상태가 1 또는 0일 확률이 동일하다는 것을 의미합니다.



제어되는 게이트

제어된 게이트는 2개 이상의 큐비트가 큐비트의 일부 작업에 대한 제어 역할을 할 수 있는 2개 이상의 큐비트 작업입니다. 예를 들어 CX, CY 및 CZ 게이트가 있습니다.



제어되는 X 게이트

CX 게이트라고도 알려진 제어된 x-게이트는 2큐비트에서 작동하고 첫 번째 큐비트 상태가 |1>일 때 두 번째 큐비트에서 NOT 작업을 수행합니다.



StackExchange의 이미지



기타 게이트

이 기사에서 다룰 수 있는 범위를 벗어나는 게이트가 훨씬 더 많습니다. 다른 양자 게이트와 그 기능에 대해 더 자세히 살펴보고 싶다면 Qiskit의 양자 연산 및 게이트 요약을 살펴보는 것이 좋습니다.


양자 회로의 예

아래의 예제 회로를 분석하기 위해 양자 회로에 대한 지식을 적용하여 더 자세히 살펴보겠습니다.




위의 이 예제 회로는 얽힌 상태를 생성하기 위해 두 개의 Hadamard 게이트와 CNOT(일명 CX) 게이트를 활용합니다.


처음에는 두 개의 Hadamard 게이트를 적용하면 중첩 상태가 생성되고 CX 게이트를 적용합니다. 큐비트의 초기 상태는 |0⟩입니다.


Hadamard 게이트를 통해 해당 상태를 전달하면 |+⟩가 출력됩니다. 이 회로에는 두 개의 Hadamard 게이트가 있으므로 |+⟩ ⊗ |+⟩인 두 값의 텐서 곱을 얻습니다. 이 경우 CX 게이트를 적용해도 아무 작업도 수행되지 않으므로 |00⟩ + |01⟩ + |10⟩ + |11⟩ 출력이 발생합니다.


이 회로를 동작시킨 후 출력은 동일한 확률로 4단계가 되어야 한다.



Qiskit의 이미지



Bloch Sphere를 사용하여 각 큐비트에 대한 상태 벡터를 시각화하면 Hadamard 게이트를 각 큐비트에 적용하면 Z(|0⟩, |1⟩)에서 X 기반으로 전환되고 CX Gate는 아래 이미지와 같이 아무것도 변경하지 않았습니다…



Qiskit의 이미지


양자 회로 응용

양자 회로는 고유한 특성을 가진 물질의 거동을 모델링하는 등 양자 시스템의 거동을 시뮬레이션하는 양자 시뮬레이션, 금융부터 물류까지 광범위한 분야의 복잡한 최적화 문제 해결, 기계 학습 알고리즘 등 다양한 응용 분야를 보유하고 있습니다. 이미지 및 오디오 인식, 암호화와 같은 사이버 보안 애플리케이션에 사용됩니다.


양자 암호화

이제 우리는 양자 역학에 대한 지식을 적용하여 통신 보안을 보장하는 방법을 이해할 수 있습니다. 양자 암호화는 두 당사자 간에 암호화 키를 교환하여 메시지를 암호화하고 해독함으로써 두 당사자 간의 통신을 위한 보안 채널을 허용합니다. 고전적인 컴퓨팅 기술에 의존하는 전통적인 암호화 시스템은 강력한 컴퓨터에 의해 신속하게 해독되고 해독될 수 있는 수학적 원리를 기반으로 합니다. 양자암호학은 양자역학의 불확정성 원리를 이용해 도청자가 발각되지 않고 두 당사자 간의 통신을 가로채는 것을 불가능하게 만들어 이 문제를 해결합니다.


양자 키 분배

양자 암호화를 구현하는 프로토콜 중 하나는 양자 키 배포(QKD)입니다. 양자암호화의 가장 널리 연구된 방법이다. QKD는 일련의 광자를 활용하여 키라고 알려진 무작위 시퀀스로 표시되는 비밀을 전송합니다. 이렇게 하면 전송이 끝날 때마다 값을 비교하여 키가 손상된 시기를 감지할 수 있습니다. 전화선과 같은 전통적인 계산 시스템을 사용하면 "듣기"를 통해 비밀 코드를 가로채는 것이 가능합니다.


그러나 양자 암호화 키를 관찰하려는 시도는 전송을 통과하는 광자를 방해하여 결국 다른 값으로 이어지기 때문에 QKD에서는 이를 수행할 수 있는 방법이 없습니다. 이 현상을 설명하기 위해 아래 이미지를 참조해 보겠습니다. Alice와 Bob은 둘 다 서로 비밀 키를 교환하기를 원하지만 Eve가 서로 보내는 메시지를 엿보는 것을 방지하고 싶어합니다. QKD를 사용하면 Alice는 특정 양자 상태의 광자를 전송하여 Bob에게 보안 메시지를 보낼 수 있습니다. Bob은 상태를 해독하기 위해 Alice가 보낸 각 광자를 측정하여 메시지를 해독할 수 있습니다.


IEEE의 이미지


불확정성 원리는 입자의 양자 상태에 대해 수행되는 모든 종류의 측정이 그 상태를 무한정 변경한다는 것을 알려줍니다. QKD에서는 Eve가 Alice가 Bob에게 보낸 양자 입자를 측정하려고 하면 입자 상태가 변경되어 그녀의 존재가 알려지기 때문에 이는 보호 메커니즘으로 사용됩니다. 더욱이 이브가 전송 중에 전송된 입자를 은밀하게 복사하려고 시도하면 "복제 불가 정리" 로 인해 복사할 수 없습니다. 이 시스템은 Eve가 메시지를 엿볼 수 있다는 극심한 편집증 없이 Alice와 Bob 모두가 일회용 패드라고도 알려진 비밀 키를 전송할 수 있는 방법을 제공합니다.


QKD는 다양한 프로토콜을 지원합니다. 일부에는 하나의 광자를 사용하여 Alice와 Bob 사이에 정보를 전송하는 단일 광자 QKD , 약한 레이저 펄스를 사용하여 광자 상태를 보내는 Weak-Coherent Laser Pulse QKD , 얽힌 광자 소스 쌍을 Alice와 Bob에게 전송하는 Entangled Photon QKD가 포함됩니다.

QKD의 메커니즘

QKD가 발생하는 물리적 양자 채널은 광자, 이온 또는 초전도 회로와 같은 다양한 물리적 시스템을 사용합니다. 광자 기반 QKD의 경우 회로는 일반적으로 단일 광자 소스, 빔 분할기, 두 개의 편광 필터 및 두 개의 단일 광자 검출기를 사용합니다.


회로는 Alice가 임의의 편광 상태로 Bob에게 일련의 단일 광자를 보낼 때 Bob이 두 극성 상태 중에서 무작위로 선택하여 최종 키 비트 값을 결정하는 광자를 측정하도록 구성됩니다. 모든 광자가 측정되면 Alice와 Bob은 클래식 채널을 사용하여 각 결과의 하위 집합을 비교하여 도청 시도를 감지할 수 있습니다.

취약점 예: RSA

RSA(Rivest–Shamir–Adleman이라고도 함) 암호화 알고리즘은 공개 채널을 통한 통신을 보호하기 위해 널리 사용되는 프로토콜입니다. 그러나 양자 컴퓨터는 큰 숫자를 인수분해하는 데 기존 컴퓨팅 시스템의 비효율성에 의존한다는 알고리즘에 내재된 취약성을 도입했습니다.


이 취약점에 대응하여 보안 연구원들은 Quantum-Safe RSA(QS-RSA라고도 함)와 같은 여러 양자 저항 알고리즘을 개발했습니다. QS-RSA는 양자 안전 대체 수학 함수를 사용하여 기존 RSA 암호화/암호 해독 기능을 유지하면서 공개 및 개인 키를 생성하는 RSA의 수정된 버전입니다.

BB84 프로토콜

또 다른 양자 안전 암호화 프로토콜은 BB84입니다. BB84 프로토콜의 경우 이진수 0을 직선 기준으로 0° 또는 대각선 기준으로 45°로 구성하도록 정의합니다. 마찬가지로 이진수 1은 직선 기준으로 90° 또는 대각선 기준으로 135°로 표시됩니다.


이미지는 Mart Haitjema에서 제공한 것입니다.



첫째, Alice는 동일한 길이의 비트 및 염기(직선 또는 대각선) 문자열을 무작위로 선택하여 양자 채널을 통해 정보를 보냅니다. 그 후, 문자열의 각 비트가 반복되고 Alice는 채널을 통해 동일한 편광의 광자를 Bob에게 전송합니다. Bob이 광자를 수신하면 각 광자의 극성을 측정하기 위한 기준을 무작위로 선택합니다. 그가 선택한 극성이 Alice가 보낸 극성과 일치하면 Alice가 보낸 비트를 올바르게 찾을 수 있습니다. 비트가 Alice가 보낸 비트와 일치하지 않으면 Bob에게 임의의 비트가 할당됩니다.


둘째, Alice와 Bob은 공개 채널을 통해 통신하여 Bob이 Alice가 보낸 광자를 측정하는 데 사용한 베이스를 전달합니다. 그런 다음 Alice는 Bob이 인코딩된 비트에 대해 올바르게 추측할 수 있었던 베이스를 Bob에게 다시 보냅니다. 그 후 Alice와 Bob은 서로 다른 기반에서 인코딩된 비트와 측정된 비트를 제거하여 이동된 키 라고 하는 동일한 비트 문자열을 생성합니다.



BB84 프로토콜 예시 전송. MR의 이미지. 마치



누군가가 정보 전송을 엿보고 있는지 확인하기 위해(에헴 이브), Alice와 Bob은 일치해야 하는 이동된 키의 몇 비트를 교환할 수 있습니다. 교환된 비트 중 하나라도 일치하지 않으면 Eve가 전송을 듣고 있는지 확인할 수 있습니다. 아래 이미지는 Eve가 Bob과 Alice 사이의 전송을 모니터링하는 예를 보여줍니다. Alice와 Bob은 둘 다 6개의 일치하는 베이스를 가지고 있었지만 그 중 하나만 일치하여 Eve의 존재를 드러냈습니다. 이로 인해 Alice와 Bob은 통신을 계속하기 위해 다른 양자 채널로 되돌아갑니다.


Eve의 가로채기를 통한 BB84 프로토콜 전송 예시. MR의 이미지. 마치



결론

전반적으로 이 기사에서는 양자 컴퓨팅 뒤에 있는 최신 기술을 간략하게 살펴봅니다. 제공된 예제와 설명이 양자 회로, 얽힘, 중첩, Pauli Y-gate와 같은 양자 게이트, QS-RSA 및 BB84와 같은 양자 암호화 알고리즘 및 프로토콜 등 양자 역학의 몇 가지 개념을 설명하는 데 도움이 되기를 바랍니다. 양자 역학은 통신 채널을 보호하는 보다 효과적인 방법을 제공함으로써 암호화에 혁명을 일으켰습니다. 사이버 보안 관련 애플리케이션에 양자 역학을 적용하면 앞으로 몇 년 동안 데이터를 통신하고 보호하는 방식이 계속해서 변화할 것이라는 점은 분명합니다.


여기에도 게시되었습니다 .