KR20230028625A - 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법 - Google Patents

양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법 Download PDF

Info

Publication number
KR20230028625A
KR20230028625A KR1020210109510A KR20210109510A KR20230028625A KR 20230028625 A KR20230028625 A KR 20230028625A KR 1020210109510 A KR1020210109510 A KR 1020210109510A KR 20210109510 A KR20210109510 A KR 20210109510A KR 20230028625 A KR20230028625 A KR 20230028625A
Authority
KR
South Korea
Prior art keywords
multiplication
qubits
quantum
circuit unit
constituting
Prior art date
Application number
KR1020210109510A
Other languages
English (en)
Inventor
서화정
장경배
권혁동
Original Assignee
한성대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한성대학교 산학협력단 filed Critical 한성대학교 산학협력단
Priority to KR1020210109510A priority Critical patent/KR20230028625A/ko
Publication of KR20230028625A publication Critical patent/KR20230028625A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법에 관한 것이다.
본 발명에서는 A·B 곱셈을 수행하는 A·B양자곱셈회로부와, - A와 B는 각각 이진 필드상의 복수 개 큐비트로 이루어지는 수이며, A·B양자곱셈회로부 수행 결과 A 및 B는 각각 A’ 및 B’으로 변환됨 - A’를 구성하는 큐비트 중에서 A'·C 곱셈 연산에 더 이상 사용되지 않는 일부 큐비트를 A·C 곱셈 연산에 필요한 큐비트로 변환하는 변환회로부 및 A’를 구성하는 일부 큐비트 및 상기 변환회로부에 의해 변환된 일부 큐비트를 이용하여 A'·C 곱셈 연산을 수행하는 A'·C양자곱셈회로부를 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 장치가 개시된다.
본 발명에 따른 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법에 의하면, 동일한 피연산자를 이용하는 연속적인 선행 곱셈(A·B) 및 후행 곱셈(A·C)을 수행할 때 선행 곱셈(A·B) 이후에 피연자 A를 원상태로 전환하는 역회로를 이용할 필요가 없게 되었다.

Description

양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법{MULTIPLICATON DEVICE ON QUANTUM COMPUTE AND MULTIPLICATON METHOD USING THE SAME}
본 발명은 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법에 관한 것으로서, 보다 구체적으로는 하나의 피연산자를 연속적인 곱셈에 사용할 때 선행 곱셈 결과 후행 곱셈에서 다시 사용해야 하는 피연산자를 초기화하지 않고 선행 곱셈 결과에 따라 변경된 피연산자를 그대로 이용하여 연속적인 곱셈을 수행하는 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법에 관한 것이다.
이진 필드(binary field)는 n 차원(degree)의 비 환원 다항식으로 구성된 이항 다항식인 특성 2의 유한 장(finite field)이다. 이진 필드 산술은 암호화 응용 프로그램에서 널리 사용된다. 암호화 분석의 고성능을 위해 양자 회로에서 최적화된 이진 필드 산술은 기본적인 빌딩 블록이다. 이진 필드 산술 연산 중에서 가장 비용이 많이 드는 연산은 역치(inversion) 연산으로, 요소
Figure pat00001
의 a-1, 즉
Figure pat00002
을 찾는 곱셈 계산이다. 역치 연산은 AES의 대체 계층 및 ECC(Elliptic Curve Cryptography)의 역치와 같은 대칭 및 비대칭 암호화 모두에서 주로 사용된다. 곱셈 역수를 계산하기 위해 여러 최적화 방법이 제안되었다. 널리 알려진 알고리즘 중 하나는 Itoh-Tsuji 곱셈 역치 알고리즘으로 Fermat의 Little Theorem (FLT)에 기반한 역 알고리즘이다.
이진 필드 역치를 계산할 때 곱셈과 제곱 연산이 필요하다. 이진 필드의 곱셈은 두 개의 다항식 곱셈과 비 축소 다항식(irreducible polynomial)을 사용한 모듈식 축소(modular reduction)를 포함한다. 축소 연산은 eXclusive-or 연산으로만 구성되기 때문에 다항식 곱셈보다 상대적으로 간단한 연산이다. 이러한 이유로 이진 필드에 대한 최적화된 다항식 곱셈이 연구되었다. 그중 Karatsuba 알고리즘은 실제로 널리 사용된다. Karatsuba 알고리즘은 1 개의 n 비트 곱셈 연산을 3 개의 n/2 비트 곱셈 연산으로 대체한다. Karatsuba 곱셈에는 몇 가지 추가 덧셈 연산(예: eXclusive-or)이 필요하지만 이 방법은 곱셈의 복잡성을 크게 줄여준다. Karatsuba 알고리즘을 양자 컴퓨팅에 적용하면 양자 회로의 계산 복잡성도 최적화된다.
Itoh-Tsuji 역치 알고리즘에 Karatsuba 곱셈을 사용하여 역치의 곱셈 부분을 최적화한다. 이러한 계산을 하는 동안 A·B 및 A·C 패턴를 진행하는 곱셈 루틴을 수행하여야 한다. 여기서 A, B, C는 각 연산의 피연산자이다. A의 값은 A·B 및 A·C 곱셈에서 재사용되므로 계산 중에 유지되어야 한다. Karatsuba 곱셈의 특성으로 인해 피연산자 A는 A·B 이후에 다른 값으로 변경된다. 따라서 다음 A·C에서 피연산자 A를 직접 재사용 할 수 없다. 따라서 A·B 동작 후 A 값을 원래 값으로 되돌리려면 역 회로(reverse circuit)를 추가해야한다.
1. Quantum binary field inversion: improved circuit depth via choice of basis representation, Brittanney Amento et al., October 15, 2018
본 발명에서는 A·B 연산 이후에 역 회로를 추가하지 않고 A·B 및 A·C 패턴를 연속적으로 진행하는 곱셈 루틴을 수행하는 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법을 제공하는 것을 목적으로 한다.
본 발명에서는 A·B 연산 이후에 제곱 및 곱셈 루틴을 위한 큐비트 재사용하여 최소한의 회로 게이트로 구현할 수 있는 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법을 제시하는 것을 목적으로 한다.
본 발명의 상기 목적은 카라츄바(Karatsuba) 알고리즘을 적용하여 A·B 및 A·C 곱셈 연산을 연속적으로 수행하는 양자 컴퓨터 상의 곱셈 장치로서, A·B 곱셈을 수행하는 A·B양자곱셈회로부와, - A와 B는 각각 이진 필드상의 복수 개 큐비트로 이루어지는 수이며, A·B양자곱셈회로부 수행 결과 A 및 B는 각각 A’ 및 B’으로 변환됨 - A’를 구성하는 큐비트 중에서 A'·C 곱셈 연산에 더 이상 사용되지 않는 일부 큐비트를 A·C 곱셈 연산에 필요한 큐비트로 변환하는 변환회로부; 및 A’를 구성하는 일부 큐비트 및 상기 변환회로부에 의해 변환된 일부 큐비트를 이용하여 A'·C 곱셈 연산을 수행하는 A'·C양자곱셈회로부를 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 장치에 의해서 달성 가능하다.
본 발명의 또 다른 목적은 카라츄바(Karatsuba) 알고리즘을 적용하여 A·B 및 A·C 곱셈 연산을 연속적으로 수행하는 양자 컴퓨터 상의 곱셈 방법으로서, A·B 곱셈을 수행하는 제1단계와, - A와 B는 각각 이진 필드상의 복수 개 큐비트로 이루어지는 수이며, A·B양자곱셈회로부 수행 결과 A 및 B는 각각 A’ 및 B’으로 변환됨 - A’를 구성하는 큐비트 중에서 A'·C 곱셈 연산에 더 이상 사용되지 않는 일부 큐비트를 A·C 곱셈 연산에 필요한 큐비트로 변환하는 제2단계; 및 A’를 구성하는 일부 큐비트 및 상기 변환회로부에 의해 변환된 일부 큐비트를 이용하여 A'·C 곱셈 연산을 수행하는 제3단계를 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 방법에 의해서 달성 가능하다.
본 발명에 따른 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법에 의하면, 동일한 피연산자를 이용하는 연속적인 선행 곱셈(A·B) 및 후행 곱셈(A·C)을 수행할 때 선행 곱셈(A·B) 이후에 피연자 A를 원상태로 전환하는 역회로를 이용할 필요가 없게 되었다. 따라서 A·B 연산 이후에 제곱 및 곱셈 루틴을 위한 큐비트 재사용하여 최소한의 회로 게이트로 연속적인 곱셈을 구현할 수 있게 되었다.
도 1은 본 발명에 따른 일 실시예의 곱셈 장치 구성도.
도 2는 CNOT 게이트 및 Toffoli 게이트의 회로 구성도.
도 3은 Toffoli 게이트의 회로 구성도.
도 4는
Figure pat00003
상에서 스퀘어링(squaring) 연산을 수행하는 양자 회로 구성도.
도 5는 카라츄바 곱셈을 이용한 A­B 비가역적(non-reversiable) 곱셈 연산을 수행하는 양자 회로 구성도.
도 6은 카라츄바 곱셈을 이용한 A­B 가역적(reversiable) 곱셈 연산을 수행하는 양자 회로 구성도.
도 7은 카라츄바 곱셈을 이용한 A­C 비가역적 곱셈 연산을 수행하는 본 발명에 따른 일 실시예의 양자 회로 구성도.
도 8은 카라츄바 곱셈 과정 상에 수행되며 더 이상 사용되지 않는 큐비트를 초기화하는 연산을 포함하는 곱셈 장치의 전체 구성도.
본 발명에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에서, "~ 상에 또는 ~ 상부에" 라 함은 대상 부분의 위 또는 아래에 위치함을 의미하는 것이며, 반드시 중력 방향을 기준으로 상 측에 위치하는 것을 의미하는 것은 아니다. 또한, 영역, 판 등의 부분이 다른 부분 "상에 또는 상부에" 있다고 할 때, 이는 다른 부분 "바로 상에 또는 상부에" 접촉하여 있거나 간격을 두고 있는 경우뿐 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, 통상의 기술자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 곱셈 장치의 예시적 구성을 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 곱셈 장치(100)는, 입출력부(110) 및 연산부(120)를 포함하며, 상기 입출력부(110)를 통하여 외부와 피연산자를 입력받거나 연산 결과값을 출력하는 등 직간접적으로 데이터 신호를 송수신할 수 있다.
구체적으로, 곱셈 장치(100)는, 양자 컴퓨터 하드웨어(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 양자 컴퓨터의 큐비트 정보 단위를 사용하는 연산 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS; network-attached storage) 및 스토리지 영역 네트워크(SAN; storage area network)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 연산 장치로 하여금 특정의 방식으로 기능하게 하는 명령어들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
이와 같은 곱셈 장치의 입출력부(110)는 피연산자를 입력받고, 연산된 결과값을 출력하는 출력부를 의미한다.
또한, 곱셈 장치의 연산부(120)는 MPU(Micro Processing Unit), CPU(central processing unit), GPU(graphics processing unit), NPU(neural processing unit) 또는 TPU(tensor processing unit), 캐시 메모리(cache memory), 데이터 버스(data bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 범용 컴퓨팅 장치인 경우 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
본 발명을 상세히 설명하기에 앞서 관련 기술에 대해 간략히 설명하기로 한다.
Itoh-Tsuji Multiplicative Inverse Algorithm
Itoh-Tsuji 곱셈 역치 알고리즘은 이진 필드의 역치를 위한 지수 기반 알고리즘이다. 정규 기저 표현(normal basis representation)에서는 이진 지수법(binary exponeentiation method)을 사용하여 GF(2n)에서 0이 아닌 요소의 역치를 계산하는 복잡성을 줄인다.
Karatsuba 곱셈
Karatsuba 알고리즘은 추가 덧셈 연산으로 곱셈의 복잡성을 줄인다. 크기가 n인 다항식 f와 g를 h = f·g까지 곱할 때 두 입력 다항식은 수학식 1과 같이 s = n/2 단위로 나뉜다.
Figure pat00004
두 개의 입력 다항식을 분할 한 후 Karatsuba 곱셈을 수학식 2와 같이 수행할 수 있다.
Figure pat00005
두 개의 입력 다항식을 분할한 후 Karatsuba 곱셈을 다음과 같이 수행할 수 있다.
양자 게이트
양자 컴퓨터에는 고전적인 게이트를 나타낼 수 있는 여러 개의 게이트가 있다. 가장 대표적인 두 개의 게이트는 CNOT 및 Toffoli 게이트이다. CNOT 게이트는 두 입력 큐비트의 첫 번째 입력 큐비트가 1 일 때 두 번째 큐비트에서 NOT 게이트 연산을 수행한다. 이 게이트는 바이너리 필드에서 추가 작업과 동일한 역할을 수행한다. 회로 구성은 도 1(a)에 도시하였다. Toffoli 게이트는 3 개의 큐비트를 수신한다. 첫 번째와 두 번째 큐비트가 하나 일 때 게이트는 마지막 큐비트에 대해 NOT 게이트 연산을 수행한다. 이것은 바이너리 필드에서 AND 연산으로 사용되며 회로 구성은 도 1(b)에 도시되어 있다.
본 발명에서 제안하는 방법
본 발명에서는 이진 장 역치를 윈한 Itoh-Tsuji 알고리즘이 양자 컴퓨터에서 최적화되었다. 먼저, Karatsuba 곱셈 기법을 적용하여 Itoh-Tsuji 알고리즘의 곱셈을 최적화했다. 둘째, Karatsuba 알고리즘을 사용하여 Itoh-Tsuji 알고리즘에서 A·B 및 A·C 패턴을 계산할 때 가역 회로를 비가역 회로로 변경하여 양자 회로를 최적화한다. 마지막으로, 일부 큐비트는 초기화 기술을 사용하여 제곱 및 곱셈 연산 중에 재사용된다. 초기화 된 큐비트는 다음 계산에 사용된다. 이 기술을 사용하면 작업에 필요한 총 큐비트 수가 최적화된다.
역치에서 A·B 및 A·C 구조의 최적화
본 발명에서 제안하는 방법은 가역 회로가 아닌 비가역 회로를 사용하여 반전 알고리즘에서 A·B 및 A·C 구조를 최적화하였다. Itoh-Tsuji 알고리즘은 제곱과 곱셈 연산으로 구성된다. 제곱 연산은 양자 회로에서 몇 개의 CNOT 게이트로 설계되었다. 제곱 연산과 달리 곱셈 연산은 비용이 많이 드는 연산이다. 따라서 최적의 성능을 얻기 위해서는 효율적인 곱셈 기법을 적용 할 필요가 있다. 곱셈을 구현하기 위한 많은 연구가 있다. 그중에서 잘 알려진 효율적인 곱셈 방법 중 하나는 Karatsuba 곱셈이다. 양자 게이트에서 두 개의 다항식 f·g 다중화를 수행할 때 Karatsuba 알고리즘은 CNOT 게이트의 수를 증가시키면서 Toffoli 게이트의 사용을 줄일 수 있다. Toffoli 게이트는 도 2와 같이 6 개의 CNOT 게이트와 9 개의 단일 큐비트 게이트로 구성된다. 이러한 이유로 양자 알고리즘을 구현하기 위해 최소수의 Toffoli 게이트로 회로를 설계하는 것이 중요하다.
제안된 방법의 영향을 보여주기 위해 AES의 대체 레이어를 예로 들어
Figure pat00006
을 목표 다항식(target polynomial)으로 사용한다. 대체 계층에는
Figure pat00007
의 이진 필드 역치 연산이 필요하다. AES의 역치 연산은 알고리즘 1에 도시하였다.
1단계로 제곱 작업이 수행된다. 제곱 연산은 도 3과 같이 11 개의 CNOT 게이트로 얻을 수 있다. 제곱은 이진 필드에 대한 제곱의 특성으로 인해 결과를 직접적으로 감소시킨다. 제곱 연산 후 제곱값(즉,
Figure pat00008
)과 입력 정수 z에 대해 곱셈 연산이 수행된다. 정수 z는 2단계에서 재사용된다. 이 단계는 A·B, A·C 구조를 따른다(즉,
Figure pat00009
).
곱셈에 Karatsuba 방법을 적용하면 Karatsuba의 피연산자 더하기 단계로 인해 입력 값(즉, z)이 업데이트된다. 일반적으로 피연산자는 다음 연산을 위해 원래 z 값으로 복원된다. 조건은 도 4의 2 비트 사례에 대한 예와 함께 설명된다. 도 4에 제시된 회로는 2 비트 곱셈 이후의 조건을 설명한다.
피연산자 A(a0, a1) 및 B(b0, b1)에 대해 2 비트 곱셈 연산을 수행하면 a1 및 b1이 각각 a0+a1 및 b0+b1로 변경된다. 곱셈의 결과만 필요한 경우에는 가역 게이트가 필요하지 않다. 그러나 A(a0, a1)의 값은 다음 계산 (즉, A·C)에서 다시 사용된다.
이러한 이유로 피연산자 A에 대해 가역 회로를 수행해야한다. 가역 게이트는 도 6에 설명된다. 각 n 비트 곱셈에서 가역 게이트에는 각 피연산자에 대해 (n-1) 개의 CNOT 게이트가 필요하다.
이러한 오버 헤드를 줄이기 위해 본 발명에서는 역치의 A·B 및 A·C 구조를 기반으로 하는 비가역 게이트를 제시하였다. 2비트 경우에 대한 자세한 설명을 도 7에 도시하였다.
먼저 a0·c0 연산이 계산된다. a0·c0 연산이 완료되면 그 값은 다음 계산에 영향을 주지 않기 때문에 a0 값은 더 이상 다음 연산에 사용되지 않는다. 두 번째 큐비트 a0+a1은 첫 번째 큐비트의 값을 a1로 변경하기 위해 a0으로 CNOT 연산을 수행한다. 그 후 a1·c1 연산은 a1 값과 함께 c1을 사용하여 계산된다. (c0+c1)은 c0과 c1 사이의 CNOT 연산을 통해 간단히 생성된다. 마지막으로 (a0+a1)·(c0+c1)이 계산된다.
결론적으로 가역 회로를 사용하지 않는 A·B 및
Figure pat00010
구조를 이용하여 A·B 및 A·C 구조와 동일한 결과를 얻을 수 있다.
본 발명에 의해서
Figure pat00011
에 대한 역치가 구현된다. 이러한 구현은 기본 곱셈 방법에 비해 사용되는 Toffoli 게이트의 수를 줄였다. 일반 곱셈은 곱셈당 64(n2) Toffoli 게이트를 사용하는 반면 Karatsuba는 곱셈당 27 Toffoli 게이트만 사용한다. 그러나 역치 연산을 위한 Karatsuba 방법은 일반 곱셈 방법보다 108개의 추가 CNOT 게이트를 사용한다. 그러나 Toffoli 게이트는 6 개의 CNOT 게이트와 9개의 단일 게이트(one-gates)로 구성되어 있으므로 CNOT 게이트보다 Toffoli 게이트 수를 고려해야한다.
종래 제안된 Karachuba 곱셈 회로는 가역적으로 설계되지 않았으며 나머지 연산자 A, B 및 입력 큐비트는 연산 결과를 포함하는 큐비트를 제외하고 곱셈 후 가비지(gabbage) 큐비트로 처리된다.
Itoh-Tsuji 알고리즘의 곱셈 중 A·B 다음에 오는 A·C의 계산을 고려하지 않았기 때문이다.
일반적으로 Karatsuba로 Itoh-Tsuji 곱셈을 수행하려면 피연산자의 원래 값을 복구하기 위해 가역 회로가 필요하다.
Figure pat00012
에 대한 역치의 경우 Karatsuba 알고리즘의 역치 회로에 14 개의 CNOT 게이트가 필요하다. 본 발명에서 제안된 방법에서는 14개의 CNOT 게이트를 최적화하는 A·B 및 A·C 패턴을 활용하여 가역 과정을 생략할 수 있었다.
3.2 큐비트수 절약
Itoh-Tsuji 알고리즘의 곱셈 및 제곱 연산 중에 연산에 필요한 전체 큐비트 수를 줄이는 기술을 설명한다.
알고리즘 1
Figure pat00013
알고리즘 1의 1단계와 2단계에서 B 값은 A 값의 제곱(즉, 알고리즘의 z)이고, C 값은 A·B의 제곱을 통해 생성된다. B와 C는 모두 A 값으로부터 파생되는 것이다. B 값은 도 3에 설명된 제곱 연산으로 계산된다. 제곱 연산은 입력 큐비트에 대해 왼쪽 이동 및 모듈식 연산을 수행한다. 즉, B 값은 A의 큐비트를 왼쪽으로 이동하고 이에 대한 모듈식 연산의 결과이다.
첫 번째 단계는 B 값을 나타내고 두 번째 단계는 A 값을 나타내며 세 번째 단계는 Itoh-Tsuji 알고리즘의 A·B, A·C 곱셈의 C 값을 나타낸다. 먼저 A 값으로부터 제곱 연산을 통해 B 값을 형성한다. 2 단계에서는 A·B 곱셈을 한다. 곱셈 후 B와 A의 값은 각각 B'와 A’으로 변경된다. A·B 계산 결과는 세 번째 행에 저장된다. 계산에 역방향 회로가 필요하지 않기 때문에 A가 A'으로 변경된다. 3 단계에서는 A·B 연산이 계산되고 그 결과로 C 값이 형성된다. 4 단계에서 A’과 C'이 곱해진다. 4 단계의 곱셈 과정에서 Karatsuba 연산을 진행하기 위해 A’값이 변경된다(예: A' → A''). 이 과정에서 A'·C의 곱셈 과정에서 변경된 곱셈 값(A'')은 B’과 같은 값을 형성한다. A''과 B’ 사이의 동일한 값에 대해 CNOT 연산을 수행하면 B'의 큐비트 중 일부가 다시 0으로 초기화된다(5 단계 참조). 알고리즘 1에서 B값은 A·B 작업 후에 다시 사용되지 않는다.
이러한 이유로 본 발명에서는 이러한 큐비트를 다른 목적으로 활용할 수 있다. B의 초기화된 큐비트는 다음 반전 작업 동안 추가 큐비트 공간으로 사용된다.
표 1은 A·B에 B를 곱하고 A를
Figure pat00014
에 대한 제곱을 통해 형성된 B' 값에 포함된 값을 나타낸다.
Figure pat00015
표 2에서 보는 바와 같이 A·B 연산 후 B'의 값은 A 값의 합(addition)으로 구성되어 있음을 알 수 있다. 이러한 A 값 조합은 Karatsuba 연산을 통해 이루어진다. 이 조합은 A'·C 곱셈 중에 형성되는 값인 A''에서도 관찰된다. 값은 표 2에 제시되어 있다.
Figure pat00016
표 1과 표 2를 모두 사용하여 조합은 B 값을 0으로 초기화 할 수 있다. 예를 들어, 표 1에서 k0의 요소는
Figure pat00017
로 표시된다. 이 값은 각각 빨간색으로
Figure pat00018
, 주황색으로
Figure pat00019
인 표 2로부터
Figure pat00020
Figure pat00021
값을 사용하여 초기화된다.
Figure pat00022
Figure pat00023
를 사용하여 B0에 CNOT 연산을 수행하면 B0가 0으로 초기화된다.
기존 다중화 방법을 사용하여 곱하기 위해 초기화를 수행하는 경우 kn 요소를 형성하기 위해 18개의 추가 CNOT 게이트가 필요하다. 그러나 Karatsuba 곱셈을 사용하면 kn의 요소를 형성하기 위해 추가 단계를 수행할 필요없이 B 값을 0으로 초기화 할 수 있다. Karatsuba의 곱셈 과정에서 kn의 요소는 결국 곱셈 계수로 사용되기 위해 생성된다. 이 기능을 활용하여 11 개의 CNOT 게이트로 8 큐비트를 초기화 할 수 있었다.
알고리즘 1의 3 단계를 계산하는 과정에서 비슷한 방식으로 큐비트를 줄일 수 있다. 알고리즘 1의 1 단계와 2 단계와 달리 3 단계는 A·B 및 A·C의 구조가 정확히 동일하지 않다. 그러나 여전히 큐비트를 0으로 초기화 할 수 있는 부분이 있다. 8 개의 추가 큐비트를 0으로 초기화 할 수 있다. 마지막으로 16 큐비트를 0으로 초기화하고 다음 계산에 사용할 수 있다.
4. 평가
양자 게이트를 평가하기 위해 양자 컴퓨터 에뮬레이터를 사용하였다. 본 발명에서 제안된 방법 1의 평가를 위해 널리 알려진 IBM의 ProjectQ 프레임 워크를 사용했다. 프레임 워크는 양자 컴퓨터 컴파일러 및 양자 리소스 추정기를 제공한다. 정확한 평가에 유용하다. 제안된 양자 게이트는 Python으로 작성되며 ProjectQ 문법을 따른다.
AES의 대체 계층에서 사용되는
Figure pat00024
반전을 기반으로 하는 구현 방법에서 Toffoli 게이트, CNOT 게이트 및 큐비트 수를 비교한다.
Figure pat00025
의 반전 연산은 Itoh-Tsuji의 알고리즘을 사용한 4 개의 곱셈과 7 개의 제곱 연산으로 구성된다. 본 발명에 의하면 CNOT 감소 버전과 큐비트 재활용 버전을 포함한 두 가지 방법을 제시한다.
CNOT 절약 버전은 비가역 곱셈으로 A·B 및 A·C 패턴을 수행한다. 큐비트 재활용 버전의 경우 CNOT 감소 버전보다 더 많이 사용되는 CNOT 게이트가 거의 없지만 일부 큐비트가 재활용된다. 제안된 방법에 필요한 양자 자원은 표 3과 같다. 종래 Karatsuba 접근 방식과 비교하면 Toffoli 게이트의 수는 동일하다. CNOT 게이트의 경우 CNOT 감소 및 큐비트 재활용 버전은 각각 14 개 및 3 개의 CNOT 게이트를 감소시킨다. 특히 큐비트 리사이클 버전은 큐비트 수를 8개 줄여준다.
Figure pat00026
본 발명은 도 9에 도시된 바와 같은 Itoh-Tsuji 기반의 바이너리 필드 ECC 반전에 적용 할 수 있다. 도 9에 제시된 알고리즘 2에서는 sect283k1 및 sect283r1에 대한 반전 알고리즘이 제공된다. 1, 5, 7, 10 단계에서는 A·B와 A·C 패턴이 관찰된다. 이 경우는 CNOT 게이트와 큐비트 측면에서 제안된 방법을 사용하여 최적화 할 수 있다.
알고리즘 2
Figure pat00027
5. 결론
본 발명에서는 A·B 및 A·C 구조에 대한 양자 회로에서 이진 장 반전의 최적화된 구현을 제시한다. 첫째, A·B 및 A·C 패턴에는 비가역 회로를 사용한다. 둘째, 큐비트 재사용 기법을 제안한다. 두 기술 모두 필요한 CNOT 게이트 및 큐비트 수를 줄인다. Karatsuba 알고리즘 및 모듈식 제곱과 같은 최첨단 최적화 기술도 Toffoli 게이트 및 큐비트 수를 줄이는 데 사용된다. 마지막으로, 이진 필드 반전을 위한 양자 회로는 최적의 Toffoli 게이트, CNOT 게이트 및 큐비트 수를 달성했다. 본 발명에 제시된 방법은 AES의 대체 계층을 구현하는 데 사용된다. 결과는 제안된 방법이 이전의 Karatsuba 기반 접근 방식보다 적은 CNOT 및 큐비트를 사용함을 보여준다. 또한 제안된 방법은 ECC의 바이너리 필드 반전에 사용될 수 있다.
향후 작업은 다른 암호화 알고리즘을 위해 양자 회로를 최적화하기 위한 또 다른 산술 구조를 찾을 것이다. 반전에서는 연속적인 곱셈 및 제곱 구조가 자주 사용된다. 이 구조에 대한 최적의 계산 루틴을 찾을 것이다.
100: 곱셈 장치
110: 입출력부
120: 연산부

Claims (6)

  1. 카라츄바(Karatsuba) 알고리즘을 적용하여 A·B 및 A·C 곱셈 연산을 연속적으로 수행하는 양자 컴퓨터 상의 곱셈 장치로서,
    A·B 곱셈을 수행하는 A·B양자곱셈회로부와,
    - A와 B는 각각 이진 필드상의 복수 개 큐비트로 이루어지는 수이며, A·B양자곱셈회로부 수행 결과 A 및 B는 각각 A’ 및 B’으로 변환됨 -
    A’를 구성하는 큐비트 중에서 A'·C 곱셈 연산에 더 이상 사용되지 않는 일부 큐비트를 A·C 곱셈 연산에 필요한 큐비트로 변환하는 변환회로부; 및
    A’를 구성하는 일부 큐비트 및 상기 변환회로부에 의해 변환된 일부 큐비트를 이용하여 A'·C 곱셈 연산을 수행하는 A'·C양자곱셈회로부를 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 장치.
  2. 제1항에 있어서,
    상기 변환회로부는 CNOT(a0, c0) 연산 이후에 a0 큐비트를 a1 큐비트로 변환하는 회로인 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 장치.
    - 여기서, a0 및 c0는 각각 A' 및 C를 구성하는 하위 비트를 나타내며, a1은 A'를 구성하는 비트 중에서 a0를 제외한 나머지 상위 비트를 나타냄. -
  3. 제1항에 있어서,
    B‘을 구성하는 큐비트를 초기화하는 초기화 양자 회로부를 더 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 장치.
  4. 카라츄바(Karatsuba) 알고리즘을 적용하여 A·B 및 A·C 곱셈 연산을 연속적으로 수행하는 양자 컴퓨터 상의 곱셈 방법으로서,
    A·B 곱셈을 수행하는 제1단계와,
    - A와 B는 각각 이진 필드상의 복수 개 큐비트로 이루어지는 수이며, A·B양자곱셈회로부 수행 결과 A 및 B는 각각 A’ 및 B’으로 변환됨 -
    A’를 구성하는 큐비트 중에서 A'·C 곱셈 연산에 더 이상 사용되지 않는 일부 큐비트를 A·C 곱셈 연산에 필요한 큐비트로 변환하는 제2단계; 및
    A’를 구성하는 일부 큐비트 및 상기 변환회로부에 의해 변환된 일부 큐비트를 이용하여 A'·C 곱셈 연산을 수행하는 제3단계를 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 방법.
  5. 제4항에 있어서, 상기 제2단계는
    CNOT(a0, c0) 연산을 수행하는 제2-1단계 및
    상기 제2-1단계 이후에 a0 큐비트를 a1 큐비트로 변환하는 제2-2단계를 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 방법.
    - 여기서, a0 및 c0는 각각 A' 및 C를 구성하는 하위 비트를 나타내며, a1은 A'를 구성하는 비트 중에서 a0를 제외한 나머지 상위 비트를 나타냄. -
  6. 제4항에 있어서, 상기 제1단계 이후에 수행되는 단계로서,
    B‘을 구성하는 큐비트를 초기화하는 제4단계를 더 포함하는 것을 특징으로 하는 양자 컴퓨터 상의 곱셈 방법.
KR1020210109510A 2021-08-19 2021-08-19 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법 KR20230028625A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210109510A KR20230028625A (ko) 2021-08-19 2021-08-19 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210109510A KR20230028625A (ko) 2021-08-19 2021-08-19 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법

Publications (1)

Publication Number Publication Date
KR20230028625A true KR20230028625A (ko) 2023-03-02

Family

ID=85509000

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210109510A KR20230028625A (ko) 2021-08-19 2021-08-19 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법

Country Status (1)

Country Link
KR (1) KR20230028625A (ko)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1. Quantum binary field inversion: improved circuit depth via choice of basis representation, Brittanney Amento et al., October 15, 2018

Similar Documents

Publication Publication Date Title
US11646880B2 (en) Secret computation method, secret computation system, secret computation apparatus, and program
Bisheh Niasar et al. Efficient hardware implementations for elliptic curve cryptography over Curve448
Timarchi et al. Arithmetic circuits of redundant SUT-RNS
CN108875416B (zh) 椭圆曲线多倍点运算方法和装置
CN115756386A (zh) 基于格密码的高效轻量级ntt乘法器电路
Penchalaiah et al. Design and Implementation of Low Power and Area Efficient Architecture for High Performance ALU
Panahi et al. A novel design of a ternary coded decimal adder/subtractor using reversible ternary gates
Cho et al. Quantum modular multiplication
KR100950581B1 (ko) 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법
Haghparast et al. Optimization approaches for designing quantum reversible arithmetic logic unit
Asadi et al. Towards designing quantum reversible ternary multipliers
Alvarez-Sanchez et al. A quantum architecture for multiplying signed integers
Timarchi et al. A novel high-speed low-power binary signed-digit adder
Taguchi et al. Concrete quantum cryptanalysis of binary elliptic curves via addition chain
KR20230028625A (ko) 양자 컴퓨터 상의 곱셈 장치 및 곱셈 방법
KR101977873B1 (ko) 하드웨어 구현된 모듈러 역원 모듈
Kiran Kumar et al. Efficient implementation of cryptographic arithmetic primitives using reversible logic and Vedic mathematics
Larasati et al. Reducing the depth of quantum flt-based inversion circuit
Jang et al. Impact of optimized operations A· B, A· C for binary field inversion on quantum computers
KR20140089230A (ko) 중복 형태 리코딩을 이용한 곱셈 방법 및 모듈러 곱셈기
KR102658003B1 (ko) 효율성이 향상된 양자 가산기 및 가산 방법
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
Gövem et al. A fast and compact FPGA implementation of elliptic curve cryptography using lambda coordinates
Liu et al. Multiprecision multiplication on ARMv8
KR20230028626A (ko) 양자 컴퓨터상 이진 필드 몽고메리 곱셈 장치 및 곱셈 방법