KR20230076723A - 하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치 - Google Patents

하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치 Download PDF

Info

Publication number
KR20230076723A
KR20230076723A KR1020220045015A KR20220045015A KR20230076723A KR 20230076723 A KR20230076723 A KR 20230076723A KR 1020220045015 A KR1020220045015 A KR 1020220045015A KR 20220045015 A KR20220045015 A KR 20220045015A KR 20230076723 A KR20230076723 A KR 20230076723A
Authority
KR
South Korea
Prior art keywords
ciphertext
homomorphic
ntt
modular
butterfly
Prior art date
Application number
KR1020220045015A
Other languages
English (en)
Other versions
KR102683569B1 (ko
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 US17/954,029 priority Critical patent/US20230163945A1/en
Publication of KR20230076723A publication Critical patent/KR20230076723A/ko
Application granted granted Critical
Publication of KR102683569B1 publication Critical patent/KR102683569B1/ko

Links

Images

Classifications

    • 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
    • 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/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치에 관한 것이다. 본 발명에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법은, 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 각 서로소 인수에 기초하여 복수의 동형 암호문에서 분할표현 암호문을 추출하는 단계와, 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 단계와, NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 단계와, 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하는 INTT 변환 단계와, INTT 변환 단계에서 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성하는 단계를 포함한다.

Description

하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치{METHOD AND APPARATUS FOR HARDWARE-BASED ACCELERATED ARITHMETIC OPERATION ON HOMOMORPHICALLY ENCRYPTED MESSAGES}
본 발명은 동형 암호문 연산에 소요되는 시간을 단축하기 위한 하드웨어 기반의 가속 연산 방법 및 장치에 관한 것이다.
동형암호기술에 있어서, 데이터(평문)를 암호화하여 암호문을 생성한다는 점은 다른 암호기술과 동일하지만, 다른 암호 기술과 달리 암호화된 상태의 암호문을 복호화하지 않고도 연산할 수 있다는 특성이 있다. 이 특성으로 인해 동형암호기술은 많은 연산량을 필요로 하며, 그에 따라 연산 처리 속도가 느리다는 문제점이 있다. 이러한 문제점은 동형암호기술의 실용화에 걸림돌이 된다.
동형암호기술은 암호문을 복호화하지 않고도 동형 연산(Homomorphic Operation)을 할 수 있다는 특성을 갖고 있고, 암호문을 동형 연산하여 연산 결과를 얻기까지 긴 처리 시간이 필요하여, 이를 개선하기 위해 연산 속도를 끌어 올리기 위한 방법들이 연구되고 있다. 대표적인 방법은 암호문이 다항식이라는 점에서 다항식들 간의 사칙연산을 수학적인 효율적 계산 알고리즘을 사용하는 방법이 있다. 그럼에도 동형 연산하는 과정은 긴 처리 시간이 필요하다는 한계가 있다.
본 발명은, 상기와 같은 한계를 극복하기 위하여, 하드웨어 기반의 병렬 연산 처리 기법을 도입함으로써 동형 암호문의 연산 처리시간을 단축할 수 있는 하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치를 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법은, 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 각 서로소 인수에 기초하여 상기 복수의 동형 암호문에서 분할표현 암호문을 추출하는 암호문 분할 단계; 상기 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 NTT 변환 단계; 상기 NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 포인트와이즈 곱셈 연산 단계; 상기 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하는 INTT 변환 단계; 및 상기 INTT 변환 단계에서 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성하는 암호문 병합 단계를 포함한다.
본 발명의 일 실시예에서, 상기 암호문 분할 단계는, 상기 동형 암호문의 각 계수를 제1 피연산자로 하고, 상기 서로소 인수를 제2 피연산자로 하는 모듈러스 연산을 통하여 상기 복수의 동형 암호문에서 상기 분할표현 암호문을 추출하는 것일 수 있다.
본 발명의 일 실시예에서, 상기 암호문 분할 단계는, 상기 각 동형 암호문에 대하여 동일한 서로소 인수의 순서를 적용하여 상기 모듈러스 연산을 수행하여 상기 분할표현 암호문을 추출하는 것일 수 있다.
본 발명의 일 실시예에서, 상기 암호문 분할 단계는, 상기 모듈러스를 소정 워드 크기 이하의 서로소 인수의 곱으로 분해하는 것일 수 있다.
본 발명의 일 실시예에서, 상기 NTT 변환 단계는, 상기 분할표현 암호문의 각 계수를 CT 버터플라이(Cooley-Tukey Butterfly)에 입력하여 NTT 변환을 수행하는 것일 수 있다.
본 발명의 일 실시예에서, 상기 CT 버터플라이는, 상기 동형 암호문의 최고 차수에 기초하여 그 입력단의 개수가 정해질 수 있다.
본 발명의 일 실시예에서, 상기 CT 버터플라이는, 상기 동형 암호문의 최고 차수에 기초하여 그 계산 단계(스테이지)의 수가 정해질 수 있다.
본 발명의 일 실시예에서, 상기 포인트와이즈 곱셈 연산 단계는, 상기 NTT 변환 단계에서 얻어진 모든 NTT 변환의 결과값을 대상으로 하여, 상기 각 서로소 인수에 대하여 동일한 차수 별로 포인트와이즈 곱셈 연산을 수행하는 것일 수 있다.
본 발명의 일 실시예에서, 상기 INTT 변환 단계는, 상기 포인트와이즈 곱셈 연산의 결과값을 GS 버터플라이(Gentleman-Sande Butterfly)에 입력하여 INTT 변환을 수행하는 것일 수 있다.
본 발명의 일 실시예에서, 상기 GS 버터플라이는, 상기 동형 암호문의 최고 차수에 기초하여 그 계산 단계(스테이지)의 수가 정해질 수 있다.
그리고, 본 발명의 일 실시예에 따른 동형 암호문 모듈라 곱셈기는, 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 각 서로소 인수에 기초하여 상기 복수의 동형 암호문에서 분할표현 암호문을 추출하는 CRT 논리회로부; 상기 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 NTT 논리회로부; 상기 NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 포인트와이즈 곱셈 연산부; 상기 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하는 INTT 논리회로부; 및 상기 INTT 변환을 통해 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성하는 ICRT 논리회로부;를 포함한다.
본 발명의 일 실시예에서, 상기 CRT 논리회로부는, 상기 모듈러스를 소정 워드 크기 이하의 서로소 인수의 곱으로 분해할 수 있다.
본 발명의 일 실시예에서, 상기 NTT 논리회로부는, 상기 분할표현 암호문의 각 계수를 CT 버터플라이(Cooley-Tukey Butterfly)에 입력하여 NTT 변환을 수행할 수 있다.
본 발명의 일 실시예에서, 상기 CT 버터플라이는, 상기 동형 암호문의 최고 차수에 기초하여 그 입력단의 개수가 정해질 수 있다.
본 발명의 일 실시예에서, 상기 CT 버터플라이는, 상기 동형 암호문의 최고 차수에 기초하여 그 계산 단계(스테이지)의 수가 정해질 수 있다.
본 발명의 일 실시예에서, 상기 포인트와이즈 곱셈 연산부는, 상기 복수의 동형 암호문에서 유도된 모든 NTT 변환의 결과값을 대상으로 하여, 상기 각 서로소 인수에 대하여 동일한 차수 별로 포인트와이즈 곱셈 연산을 수행할 수 있다.
본 발명의 일 실시예에서, 상기 INTT 논리회로부는, 상기 포인트와이즈 곱셈 연산의 결과값을 GS 버터플라이(Gentleman-Sande Butterfly)에 입력하여 INTT 변환을 수행할 수 있다.
본 발명의 일 실시예에서, 상기 GS 버터플라이는, 상기 동형 암호문의 최고 차수에 기초하여 그 계산 단계(스테이지)의 수가 정해질 수 있다.
그리고, 본 발명의 다른 실시예에 따른 동형 암호문 모듈라 곱셈기는, 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 각 서로소 인수에 기초하여 상기 복수의 동형 암호문에서 분할표현 암호문을 추출하는 CRT 논리회로부; 상기 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 NTT 논리회로부; 및 상기 NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 포인트와이즈 곱셈 연산부;를 포함한다. 이 경우, 상기 NTT 논리회로부는, 상기 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하고, 상기 CRT 논리회로부는, 상기 INTT 변환을 통해 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성한다.
본 발명의 다른 실시예에서, 상기 CRT 논리회로부는, 상기 모듈러스를 소정 워드 크기 이하의 서로소 인수의 곱으로 분해할 수 있다.
본 발명의 일 실시예에 따르면, n차 다항식들 간의 곱셈 연산에 소요되는 연산 복잡도가 O(n2) 수준이던 것을 동일 차수의 계수들 간의 동일 차수 항(point-wise) 곱셈 만으로 연산 복잡도를 O(n log n) 수준의 곱셈 횟수로 처리할 수 있고, 동시에 큰 계수값의 다항식을 작은 서로소 인수의 계수값으로 분할하여 모듈라(modular) 연산을 독립적으로 병렬 처리할 수 있다.
따라서 본 발명에 따를 때, 병렬로 다수 배열한 NTT 논리회로 연산기와 CRT 논리회로 연산기를 통해 동형암호의 곱셈 횟수는 대폭 줄어 들게 되고, 동시에 큰 계수값의 모듈라 연산을 분할한 작은 단위의 값으로 모듈라 연산을 각 CRT 논리회로 연산기가 독립적으로 병렬 연산 처리할 수 있게 되므로, 암호문 간의 곱셈 및 모듈라 연산을 고속 처리할 수 있다는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법을 설명하기 위한 흐름도.
도 2a 내지 도 2f는 본 발명의 일 실시예에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 각 단계의 연산에 관한 참고도.
도 3은 본 발명에 따른 동형 암호문 모듈라 곱셈기에 대한 제1 실시예의 구성을 나타낸 블록도.
도 4는 본 발명에 따른 동형 암호문 모듈라 곱셈기에 대한 제2 실시예의 구성을 나타낸 블록도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
도 1은 본 발명의 일 실시예에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법을 설명하기 위한 흐름도이며, 도 2a 내지 도 2f는 본 발명의 일 실시예에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 각 단계의 연산에 관한 참고도이다.
본 발명의 일 실시예에 따른 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법은 S110 단계 내지 S150 단계를 포함한다.
S110 단계는 암호문 분할 단계이다. 본 발명에 따른 동형 암호문 모듈라 곱셈기(이하 '동형 암호문 모듈라 곱셈기')는 모듈라 곱셈 연산에 적용될 모듈러스(q)와, 곱셈 연산 대상이 되는 복수 개의 동형 암호문을 입력받는다. 이 경우에 동형 암호문은 다항식 형태로 표현되는 것을 전제로 한다. 동형 암호문 모듈라 곱셈기는 CRT(Chinese Remainder Theorem) 연산을 통해 모듈러스(q)를 복수의 서로소 인수(pairwise coprime)의 곱으로 분해하며, 다항식 형태로 표현된 동형 암호문의 각 계수가 제1 피연산자이고 CRT 연산을 통해 얻은 서로소 인수를 제2 피연산자로 하는 모듈러스 연산을 통하여 각 동형 암호문에 대한 분할표현 암호문을 추출한다. 분할표현 암호문의 추출은 서로소 인수의 일정한 순서에 따라 이루어진다.
S110 단계에 대하여, 도 2a와 도 2b를 참조하여 하기와 같이 구체적으로 설명한다. 본 실시예에서는 동형 암호문 모듈라 곱셈기에 입력되는 동형 암호문이 2개(a, b)라고 가정한다. 동형 암호문 a, b는 각각 최고차수가 (n-1)이고. n개의 항을 가진 다항식(수학식 1 및 수학식 2)으로 표현될 수 있다.
Figure pat00001
Figure pat00002
수학식 1에서 a0, a1, …, an-1은 a의 각 항의 계수이며, 수학식 2에서 b0, b1, …, bn-1은 b의 각 항의 계수이다. a와 b의 각 항의 계수는 정수(integer)값을 가지는데, 모듈러스 q로 나누기 전 상태의 정수값에 해당한다.
도 2a에 aq에 관한 수식()이 있는데, 이 수식은 다항식으로 표현된 동형 암호문 a에 모듈러스 q에 의한 모듈러 연산이 최종적으로 적용된다는 의미이다. 도 2b의 bq에 관한 수식도 동형 암호문 b에 모듈러스 q에 의한 모듈러 연산이 최종적으로 적용된다는 의미로 사용되었다.
동형 암호문 모듈라 곱셈기는 CRT 연산을 통해 모듈러스 q를 q0, q1, … qr-1로 분할한다. 즉, 동형 암호문 모듈라 곱셈기는 CRT 연산을 통해 모듈러스 q에서 복수의 서로소 인수 q0, q1, … qr-1을 추출한다. q는 q0, q1, … qr-1 곱으로 나타낼 수 있으며, q0, q1, … qr-1은 임의의 쌍에 있어서 서로소의 관계에 있다. 한편, CRT 연산은 RNS(Residue Number System) 연산이라고도 일컬어진다.
동형 암호문 모듈라 곱셈기는 동형 암호문의 각 계수와 CRT 연산을 통해 추출한 서로소 인수(q0, q1, … qr-1)를 피연산자로 하는 모듈러스 연산을 통해 각 동형 암호문에 대한 분할표현 암호문을 획득한다.
예를 들어, 동형 암호문 모듈라 곱셈기는 동형 암호문 a의 각 계수와 서로소 인수 q0을 모듈러스 연산의 피연산자로 하는 모듈러스 연산을 통하여 분할표현 암호문 aq0를 얻는다. aq0은 수학식 3과 같이 표현할 수 있다.
Figure pat00003
수학식 3에서, a0,0은 동형 암호문 a의 상수항 a0를 q0로 나눈 나머지이며, a1,0은 동형 암호문 a의 1차항의 계수 a1을 q0로 나눈 나머지이다. 또한 an-1,0은 동형 암호문 a의 (n-1)차항의 계수 an-1을 q0로 나눈 나머지이다. (mod q0)은 다항식으로 표현된 분할표현 암호문 aq0에 대하여 모듈러스 q0에 의한 모듈러 연산이 최종적으로 적용된다는 의미로 사용되었다.
이와 같은 방식으로 q0 부터 qr-1까지 순차적으로 모듈러스 연산에 적용하여 각 서로소 인수에 대한 분할표현 암호문을 획득할 수 있다. 결국, 동형 암호문 모듈라 곱셈기는 동형 암호문 a에 대하여 서로소 인수의 개수(r)만큼의 분할표현 암호문(aq0, aq1, …, aqr-1)을 얻을 수 있다(도 2a 참조).
이와 동일한 방식으로 동형 암호문 모듈라 곱셈기는 동형 암호문 b에 대해서도 각 서로소 인수를 동형 암호문 a의 경우와 동일한 순서에 따라 모듈러스 연산에 적용하여, 서로소 인수의 개수(r)만큼의 분할표현 암호문(bq0, bq1, …, bqr-1)을 얻을 수 있다(도 2b 참조).
S110 단계를 통하여 동형 암호문 모듈라 곱셈기는 LAWS(Large Arithmetic Word Size)를 가지는 동형 암호문 a와 b의 각 계수 및 모듈러스 q를 SAWS(Small Arithmetic Word Size)를 갖는 계수(a0,0 등)와 모듈러스(q0 등)로 분할할 수 있다. 참고로, LAWS는 프로세서의 기본 워드 크기(예: 64비트)를 초과하는 워드 크기를 의미하며, SAWS는 프로세서의 기본 워드 크기 이하의 워드 크기를 의미한다.
본 발명에서는 CRT 연산을 이용하여 다양한 워드 크기로 계수나 모듈러스를 분할할 수 있다(도 2a의 '가변 워드 사이즈 분할 지원'). 즉, 동형 암호문 모듈라 곱셈기는 CRT 연산을 이용한 계수/모듈러스 분할을 통하여 가변 설정된 워드 크기(예: 64비트, 128비트, 256비트, 512비트 등)에 해당하는 계수와 모듈러스를 얻을 수 있다. 가변 설정된 워드 크기, 즉 목표로 하는 계수나 모듈러스의 워드 크기에 따라 CRT 분할 개수(r)도 변할 수 있다. 동형 암호문 모듈라 곱셈기는 큰 계수값을 가지는 다항식을 작은 서로소 인수의 계수값을 가지는 다항식들로 분할하여 모듈라(modular) 연산을 독립적으로 병렬 처리할 수 있다.
S120 단계는 NTT(Number Theoretic Transform) 변환 단계이다. 본 단계에서 동형 암호문 모듈라 곱셈기는 각 동형 암호문에 대한 분할표현 암호문에 대한 NTT 변환을 수행한다. 즉, 동형 암호문 모듈라 곱셈기는 S110 단계에서 획득한 분할표현 암호문의 계수에 대하여 NTT 변환을 수행하여 NTT 변환 결과값(함수값)을 얻는다. 분할표현 암호문의 계수를 수열로 표현할 수 있듯이, NTT 변환 결과값(함수값) 또한 수열로 표현할 수 있다.
S120 단계에 대하여, 도 2c와 도 2d를 참조하여 하기와 같이 구체적으로 설명한다. 본 실시예에서는 CT 버터플라이(Cooley-Tukey Butterfly) 연산을 NTT 변환에 사용한다. 도 2d에 두 개의 입력값(u와 v)이 주어졌을 때 CT 버터플라이 연산 과정을 거쳐 두 개의 출력값(u+w*v, u-w*v)이 산출되는 과정이 도시되어 있다. 다만, 해당 NTT 변환이 모듈러스 q로 구성되는 링 다항식(ring polynomial)에 대해 수행되므로, 두 개의 출력값에 q에 의한 모듈러스 연산(즉, mod q)이 수행된다. 도 2d는 n=8인 경우를 가정하였을 때 분할표현 암호문 aq0의 각 계수(a0,0, a1,0, …, a7,0)를 CT 버터플라이에 입력하여 NTT 변환이 수행되는 과정이 나타나 있다. 분할표현 암호문 aq0의 NTT 변환 과정에서 모듈러스로는 q0이 적용된다. CT 버터플라이의 Stage 0에서 a0,0(u에 해당)과 a4,0(v에 해당)이 입력된 부분을 살펴보면, a0,0에 a4,0 * wn 0 을 더하거나 뺀 후 q0에 의한 모듈라 연산을 수행한 결과 값을 Stage 0의 출력 값으로 하고 있음을 알 수 있다. 동일한 방식으로 (a1,0, a5,0), (a2,0, a6,0), (a3,0, a7,0)에 대해서도 Stage 0의 출력값을 얻을 수 있다. NTT 변환에 투입되는 다항식의 차수(n)가 8인 경우, NTT 변환은 (log2 8), 즉 3개의 스테이지(Stage 0, Stage 1, Stage 2)를 거쳐 수행된다. NTT 변환의 결과 {A0,0, A1,0, … ,A7,0}으로 구성된 NTT 변환 결과값(함수값) Aq0를 얻을 수 있다. 상술한 바와 같이, CT 버터플라이 연산의 입력단의 수(n) 및 스테이지(단계)의 수(log2 n)는 동형 암호문의 다항식의 차수(n)에 따라 변경될 수 있다.
상술한 방식과 같이 동형암호문 a와 b의 분할표현 암호문 전부에 대해 NTT 변환을 수행하여 각 분할표현 암호문에 대한 NTT 변환 결과값(Aq0, … , Aqr-1, Bq0, … , Bqr-1)을 얻을 수 있다.
한편, S120 단계의 NTT 변환은 동형 암호문의 다항식 차수가 변화하더라도 그에 따른 CT 버터플라이 구조를 형성하여 수행될 수 있다(도 2d의 '가변 차수 지원'). CT 버터플라이에서 사용되는 트위들 팩터(twiddle factor)는 도 2d에 도시한 바와 같이 Xn + 1 = 0(mod q) 방정식의 n개의 근으로 구성된다. 즉, 트위들 팩터는 모듈로(modulo) q로 구성되는 잉여계의 원시근(primitive root)인데, 파라미터를 바꾸어 가며 조건을 만족하는 수를 찾는 방식으로 구하게 된다. 트위들 팩터는 NTT 알고리즘에 따라 CT 버터플라이에 배치되는데, 도 2d의 예시에 따를 때 스테이지(stage) 별로 아래와 같이 배치된다.
- stage 0 : wn 4k (k=0)이므로 wn 0
- stage 1 : wn 2k (k=0,1)이므로 wn 0, wn 2
- stage 2 : wn k (k=0,1,2,3)이므로 wn 0, wn 1, wn 2, wn 3
S130 단계는 포인트와이즈(pointwise) 곱셈 연산 단계이다. 본 단계에서 동형 암호문 모듈라 곱셈기는 동형 암호문 간의 포인트와이즈 곱셈 연산을 수행한다. 구체적으로, 동형 암호문 모듈라 곱셈기는 동형 암호문의 각 분할표현 암호문의 NTT 변환 결과값 간 분할표현 암호문 추출 순서(S110 단계에 대한 설명 참조)에 따른 포인트와이즈(pointwise) 곱셉 연산을 수행한다. 각 NTT 변환 결과값 간의 포인트와이즈 곱셈 연산은 동일 차수 항(point-wise)별로 동일 차수의 계수들 간의 곱셈 결과를 구하는 연산이다. 도 2c에 도시된 실시예를 참조할 때, 동형 암호문 모듈라 곱셈기는 동형 암호문 a의 분할표현 암호문의 NTT 변환 결과값(Aq0, … , Aqr-1)과 동형 암호문 b의 분할표현 암호문의 NTT 변환 결과값(Bq0, … , Bqr-1) 간의 포인트와이즈 곱셈 연산을 암호문 추출 순서(서로소 인수의 순서)에 따라 순차적으로 수행하여 포인트와이즈 곱셈 연산 결과값(Cq0, Cq1, …, Cqr-1)을 얻는다. 예컨대, Cq0는 Aq0와 Bq0의 포인트와이즈 곱셈 연산의 결과이며, Cqr-1은 Aqr-1과 Bqr-1의 포인트와이즈 곱셈 연산의 결과이다. Cq0의 성분 중 하나인 C0,0은 A0,0과 B0,0간의 곱이다. 포인트와이즈 곱셈 연산 결과값 각각은 수열로 표현될 수 있다.
본 실시예와 다른 예로, 동형 암호문 모듈라 곱셈기에 3개의 동형 암호문(k,l,m)이 입력된 경우, 동형 암호문 모듈라 곱셈기는 암호문 분할(CRT 연산)과 NTT 변환을 거쳐 3개의 동형 암호문 각각에 대한 NTT 변환 결과값을 얻은 후, 동형 암호문 k의 분할표현 암호문의 NTT 변환 결과값과 동형 암호문 l의 분할표현 암호문의 NTT 변환 결과값 간의 포인트와이즈 곱셈 연산을 수행하고, 그 연산 결과값과 동형 암호문 m의 분할표현 암호문의 NTT 변환 결과값 간의 포인트와이즈 곱셈 연산을 추가적으로 수행하여 최종적인 포인트와이즈 곱셈 연산 결과값을 얻게 된다. 즉, 동형 암호문 모듈라 곱셈기는 복수의 동형 암호문의 모든 NTT 변환 결과값에 대하여, 하나의 최종적인 포인트와이즈 곱셈 연산 결과값을 얻을 때까지 포인트와이즈 곱셈 연산을 반복적으로 수행한다.
본 발명에 따른 동형 암호문 모듈라 곱셈기는, NTT 변환과 포인트와이즈 곱셈 연산을 통하여, n차 다항식들 간의 곱셈 연산에 소요되는 연산 복잡도를 O(n log n) 수준의 곱셈 횟수로 처리할 수 있다.
S140 단계는 INTT 변환 단계이다. 본 단계에서 동형 암호문 모듈라 곱셈기는 S130 단계에서 얻어진 최종적인 포인트와이즈 곱셈 연산 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득한다.
S140 단계에 대하여, 도 2e와 도 2f를 참조하여 하기와 같이 구체적으로 설명한다. 본 실시예에서는 GS 버터플라이(Gentleman-Sande Butterfly) 연산을 INTT 변환에 사용한다. 도 2f에 두 개의 입력값(u와 v)이 주어졌을 때 GS 버터플라이 연산 과정을 거쳐 두 개의 출력값(u+v, (u-v)*w)이 산출되는 과정이 도시되어 있다. 다만, 해당 INTT 변환이 모듈러스 q로 구성되는 링 다항식(ring polynomial)에 대해 수행되므로, 두 개의 출력값에 q에 의한 모듈러스 연산(즉, mod q)이 수행된다. 도 2f는 n=8인 경우를 가정하였을 때 q0에 대응되는 포인트와이즈 곱셈 연산 결과값(Cq0)의 각 성분(C0,0, C1,0, …, C7,0)를 GS 버터플라이에 입력하여 INTT 변환이 수행되는 과정이 나타나 있다. q0에 대응되는 포인트와이즈 곱셈 연산 결과값(Cq0)의 INTT 변환 과정에서 모듈러스로는 q0이 적용된다. GS 버터플라이의 Stage 0에서 C0,0(u에 해당)과 C4,0(v에 해당)이 입력된 부분을 살펴보면, (C0,0 + C4,0)과 (C0,0 - C4,0)*w에 q0에 의한 모듈라 연산을 수행한 결과 값을 Stage 0의 출력 값으로 하고 있음을 알 수 있다. 동일한 방식으로 (C1,0, C5,0), (C2,0, C6,0), (C3,0, C7,0)에 대해서도 Stage 0의 출력값을 얻을 수 있다. INTT 변환에 투입되는 다항식의 차수(n)가 8인 경우, INTT 변환은 (log2 8), 즉 3개의 스테이지(Stage 0, Stage 1, Stage 2)를 거쳐 수행된다. NTT 변환의 결과 c0,0, c1,0, …, c7,0을 계수로 하는 분할표현 다항식 cq0을 얻을 수 있다. 예컨대, c0,0은 cq0의 상수항의 계수이고, c7,0은 cq0의 7차항의 계수이다. 상술한 바와 같이, GS 버터플라이 연산의 입력단의 수(n) 및 스테이지(단계)의 수(log2 n)는 동형 암호문의 다항식의 차수(n)에 따라 변경될 수 있다.
상술한 방식과 같이 포인트와이즈 곱셈 연산 결과값 전부에 대해 INTT 변환을 수행하여 각 서로소 인자에 대한 분할표현 암호문(cq0, cq1, …, cqr-1)을 얻을 수 있다.
한편, INTT 변환은 동형 암호문의 다항식 차수가 변화하더라도 그에 따라 형성된 GS 버터플라이 구조를 통하여 수행될 수 있다(도 2f의 '가변 차수 지원').
트위들 팩터를 구하는 방법은 S120 단계와 동일하다. 트위들 팩터는 INTT 알고리즘에 따라 GS 버터플라이에 배치되는데, 도 2f의 예시에 따를 때 스테이지(stage) 별로 아래와 같이 배치된다.
- stage 0 : wn -k (k=0,1,2,3)이므로 wn -0, wn -1, wn -2, wn -3
- stage 1 : wn -2k (k=0,1)이므로 wn -0, wn -2
- stage 2 : wn -4k (k=0)이므로 wn -0
S150 단계는 암호문 병합 단계이다. 본 단계에서 동형 암호문 모듈라 곱셈기는 S140 단계에서 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성한다(도 2e 참조). CRT는 q에서 분할한 q0 내지 qr-1을 이용하여 각 계수들을 분할하는 방법으로 암호문(분할표현 암호문)을 표현하는 반면, ICRT는 분할되어 표현된 다항식을 병합하는 과정으로서 CRT의 역순으로 상기 다항식의 병합과정을 수행한다.
도 2e에서,
c0 = (c0,0 * M0 * M0-1 + … + c0,r-1 * Mr-1 * Mr-1-1) (mod q)
으로 나타낼 수 있다. 여기서 Mi = q/qi이고, Mi-1은 Mi * Mi-1 (mod qi) = 1을 만족하는 모듈러 곱셈 역원이다.
도 1 및 도 2(도 2a 내지 도 2f)를 참조한 설명에서, 각 단계는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 3 및 도 4의 내용은 도 1 및 도 2(도 2a 내지 도 2f)의 내용에 적용될 수 있다. 또한, 도 1 및 도 2(도 2a 내지 도 2f)의 내용은 도 3 및 도 4의 내용에 적용될 수 있다.
전술한 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법은 도면에 제시된 흐름도를 참조로 하여 설명되었다. 간단히 설명하기 위하여 상기 방법은 일련의 블록들로 도시되고 설명되었으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 다른 블록들과 본 명세서에서 도시되고 기술된 것과 상이한 순서로 또는 동시에 일어날 수도 있으며, 동일한 또는 유사한 결과를 달성하는 다양한 다른 분기, 흐름 경로, 및 블록의 순서들이 구현될 수 있다. 또한, 본 명세서에서 기술되는 방법의 구현을 위하여 도시된 모든 블록들이 요구되지 않을 수도 있다.
도 3은 본 발명에 따른 동형 암호문 모듈라 곱셈기에 대한 제1 실시예의 구성을 나타낸 블록도이다.
상기 제1 실시예에 따른 동형 암호문 모듈라 곱셈기(200)는 CRT 논리회로부(210), NTT 논리회로부(220), 포인트와이즈 곱셈 연산부(230), INTT 논리회로부(240) 및 ICRT 논리회로부(250)를 포함하여 구성된다.
제1 실시예는 동형 암호문 모듈라 곱셈기에 입력되는 동형 암호문의 계수와 모듈러스의 워드 크기가 크거나, 입력되는 동형 암호문의 수가 많을 경우, 병렬 연산을 통하여 동형 암호문의 모듈라 곱셈 연산을 고속으로 처리하기에 적합하다.
CRT 논리회로부(210)는 다항식 형태로 표현된 복수의 동형 암호문과 모듈라 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 입력받은 모듈러스를 복수의 서로소 인수의 곱으로 분해한다. 또한 CRT 논리회로부(210)는 입력받은 동형 암호문의 각 계수가 제1 피연산자이고 상기 서로소 인수가 제2 피연산자인 모듈러스 연산을 통하여 각 동형 암호문에 대한 분할표현 암호문을 추출한다. CRT 논리회로부(210)는 모듈러스에서 분해된 서로소 인수의 일정한 순서에 따라 각 동형 암호문에서 분할표현 암호문을 추출한다.
CRT 논리회로부(210)는 CRT 연산을 이용하여 입력받은 모듈러스를 설정된 워드 크기에 해당하는 서로소 인수로 분해할 수 있으며, 설정된 워드 크기에 해당하는 계수를 가지는 분할표현 암호문을 추출할 수 있다. 동형 암호문 모듈라 곱셈기(200)는 CRT 연산을 통하여 큰 계수값을 가지는 다항식을 작은 서로소 인수의 계수값을 가지는 다항식들로 분할함으로써, 모듈라(modular) 연산을 독립적으로 병렬 처리할 수 있다.
CRT 논리회로부(210)는 단일한 CRT 논리회로를 가질 수도 있으나, 복수의 CRT 논리회로를 포함할 수도 있다. CRT 논리회로부(210)가 복수의 CRT 논리회로를 포함하는 경우, 분할표현 암호문 생성을 위하여 각 CRT 논리회로가 독립적으로 모듈라 연산을 병렬 처리한다.
CRT 논리회로부(210)에 대한 상세한 사항은, 전술한 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 S110 단계에 관한 내용과 도 2a 및 도 2b를 참조하여 이해할 수 있다.
NTT 논리회로부(220)는 분할표현 암호문에 대한 NTT(Number Theoretic Transform) 변환을 수행한다. 즉, NTT 논리회로부(220)는 CRT 논리회로부(210)가 산출한 분할표현 암호문의 계수에 대한 NTT 변환을 수행하여 NTT 변환 결과값(함수값)을 얻는다. NTT 논리회로부(220)는 NTT 변환 수행을 위해 CT 버터플라이(Cooley-Tukey Butterfly) 연산을 사용할 수 있는데, 입력된 동형 암호문의 다항식 차수에 따라 CT 버터플라이 구조를 변화시켜 NTT 변환을 수행할 수 있다(가변 차수 지원).
NTT 논리회로부(220)는 단일한 NTT 논리회로를 가질 수도 있으나, 복수의 NTT 논리회로를 포함할 수도 있다. NTT 논리회로부(220)가 복수의 NTT 논리회로를 포함하는 경우, 각 NTT 논리회로가 독립적으로 NTT 변환(연산)을 병렬 처리한다.
NTT 논리회로부(220)에 대한 상세한 사항은, 전술한 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 S120 단계에 관한 내용과 도 2c 및 도 2d를 참조하여 이해할 수 있다.
포인트와이즈 곱셈 연산부(230)는 복수의 동형 암호문 모두에 대하여, 그 NTT 변환 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 반복적으로 수행한다. 구체적으로, 포인트와이즈 곱셈 연산부(230)는, 분할표현 암호문 추출 순서(서로소 인수의 일정한 순서)에 따라, 동형 암호문의 각 분할표현 암호문의 NTT 변환 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행한다. 각 NTT 변환 결과값 간의 포인트와이즈 곱셈 연산은 동일 차수 항(point-wise)별로 동일 차수의 계수들 간의 곱셈 결과를 구하는 연산이다.
본 발명에 따른 동형 암호문 모듈라 곱셈기(200)는, NTT 변환과 포인트와이즈 곱셈 연산을 통하여, n차 다항식들 간의 곱셈 연산에 소요되는 연산 복잡도를 O(n log n) 수준의 곱셈 횟수로 처리할 수 있다.
포인트와이즈 곱셈 연산부(230)에 대한 상세한 사항은, 전술한 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 S130 단계에 관한 내용과 도 2c를 참조하여 이해할 수 있다.
INTT 논리회로부(240)는 포인트와이즈 곱셈 연산부(230)가 얻은 최종적인 포인트와이즈 곱셈 연산 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득한다. INTT 논리회로부(240)는 INTT 변환 수행을 위해 GS 버터플라이(Gentleman-Sande Butterfly) 연산을 사용할 수 있는데, 입력된 동형 암호문의 다항식 차수에 따라 GS 버터플라이 구조를 변화시켜 INTT 변환을 수행할 수 있다(가변 차수 지원).
INTT 논리회로부(240)에 대한 상세한 사항은, 전술한 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 S140 단계에 관한 내용과 도 2e 및 도 2f를 참조하여 이해할 수 있다.
ICRT 논리회로부(250)는 INTT 논리회로부(240)가 INTT 변환을 통해 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성한다.
ICRT 논리회로부(250)에 대한 상세한 사항은, 전술한 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법의 S150 단계에 관한 내용과 도 2e를 참조하여 이해할 수 있다.
도 4는 본 발명에 따른 동형 암호문 모듈라 곱셈기에 대한 제2 실시예의 구성을 나타낸 블록도이다.
상기 제2 실시예에 따른 동형 암호문 모듈라 곱셈기(200')는 CRT 논리회로부(210'), NTT 논리회로부(220') 및 포인트와이즈 곱셈 연산부(230')를 포함하여 구성된다.
제2 실시예는 제1 실시예와 동형 암호문 모듈라 곱셈기의 구성에 있어서 차이가 있다. 제2 실시예는 제1 실시예에 비하여 상대적으로 저렴하게 구현할 수 있으며, 높은 병렬 연산 처리 성능을 요구하지 않는 경우(예: 입력되는 동형 암호문의 수가 2개) 적합하다.
CRT 논리회로부(210')는 CRT 논리회로부(210)의 기능은 물론, ICRT 논리회로부(250)의 기능을 수행한다. 즉, CRT 논리회로부(210')는 동형 암호문을 기초로 CRT 연산을 통해 분할표현 암호문을 추출하여 NTT 논리회로부(220')에 전달하고, NTT 논리회로부(220')가 INTT 변환을 통해 획득한 분할표현 암호문을 ICRT 연산을 통해 병합하여 출력암호문을 생성한다. 예를 들어, CRT 논리회로부(210')는 CRT 논리회로와 ICRT 논리회로를 포함하고, 필요에 따라 CRT 논리회로 또는 ICRT 논리회로를 선택적으로 작동시킬 수 있다. CRT 논리회로부(210')는 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 동형 암호문의 각 계수가 제1 피연산자이고 상기 서로소 인수가 제2 피연산자인 모듈러스 연산을 통하여 상기 각 동형 암호문에 대한 상기 복수의 서로소 인수의 일정한 순서에 따른 분할표현 암호문을 추출한다.
NTT 논리회로부(220')는 NTT 논리회로부(220)의 기능은 물론, INTT 논리회로부(240)의 기능을 수행한다. 즉, NTT 논리회로부(220')는 동형 암호문의 분할표현 암호문을 NTT 변환하여 그 변환 결과(NTT 변환 결과값)를 포인트와이즈 곱셈 연산부(230')에 전달할 뿐만 아니라, 포인트와이즈 곱셈 연산부(230')의 최종적인 포인트와이즈 곱셈 연산 결과값을 INTT 변환하여 출력암호문 생성을 위한 분할표현 암호문을 획득하여 CRT 논리회로부(210')에 전달한다.
포인트와이즈 곱셈 연산부(230')는 포인트와이즈 곱셈 연산부(230)와 동일한 기능을 수행한다. 즉, 포인트와이즈 곱셈 연산부(230')는 복수의 동형 암호문 모두에 대하여, 그 NTT 변환 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 반복적으로 수행한다. 구체적으로, 포인트와이즈 곱셈 연산부(230')는, 분할표현 암호문 추출 순서(서로소 인수의 일정한 순서)에 따라, 동형 암호문의 각 분할표현 암호문의 NTT 변환 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행한다. 포인트와이즈 곱셈 연산부(230')는 최종적인 포인트와이즈 곱셈 연산 결과값을 NTT 논리회로부(220')에 전달한다.
제2 실시예에 따른 동형 암호문 모듈라 곱셈기(200')의 각 구성요소의 구체적인 사항에 관해서는 도 1, 도 2(도 2a 내지 2f) 및 도 3을 참조한 설명을 바탕으로 본 발명이 속한 기술분야에서 통상의 지식을 가진 자가 용이하게 이해할 수 있을 것이다.
참고로, 본 발명의 실시예에 따른 구성 요소들은 클라우드 연산(cloud computation) 전용의 완전동형암호 ASIC(Application Specific Integrated Circuit) 등의 하드웨어 형태로 구현될 수 있으나, 소프트웨어 형태로도 구현될 수도 있음은 물론이다.
본 발명의 실시예에서 사용되는 '~부'라는 용어는 ASIC과 같은 하드웨어 구성요소 또는 소프트웨어를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 하드웨어 또는 소프트웨어에 한정되는 의미는 아니다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
200, 200': 동형 암호문 모듈라 곱셈기
210, 210': CRT 논리회로부
220, 220': NTT 논리회로부
230, 230': 포인트와이즈 곱셈 연산부
240: INTT 논리회로부
250: ICRT 논리회로부

Claims (20)

  1. 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 각 서로소 인수에 기초하여 상기 복수의 동형 암호문에서 분할표현 암호문을 추출하는 암호문 분할 단계;
    상기 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 NTT 변환 단계;
    상기 NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 포인트와이즈 곱셈 연산 단계;
    상기 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하는 INTT 변환 단계; 및
    상기 INTT 변환 단계에서 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성하는 암호문 병합 단계;
    를 포함하는 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  2. 제1항에 있어서, 상기 암호문 분할 단계는,
    상기 동형 암호문의 각 계수를 제1 피연산자로 하고, 상기 서로소 인수를 제2 피연산자로 하는 모듈러스 연산을 통하여 상기 복수의 동형 암호문에서 상기 분할표현 암호문을 추출하는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  3. 제2항에 있어서, 상기 암호문 분할 단계는,
    상기 각 동형 암호문에 대하여 동일한 서로소 인수의 순서를 적용하여 상기 모듈러스 연산을 수행하여 상기 분할표현 암호문을 추출하는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  4. 제1항에 있어서, 상기 암호문 분할 단계는,
    상기 모듈러스를 소정 워드 크기 이하의 서로소 인수의 곱으로 분해하는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  5. 제1항에 있어서, 상기 NTT 변환 단계는,
    상기 분할표현 암호문의 각 계수를 CT 버터플라이(Cooley-Tukey Butterfly)에 입력하여 NTT 변환을 수행하는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  6. 제5항에 있어서, 상기 CT 버터플라이는,
    상기 동형 암호문의 최고 차수에 기초하여 입력단의 개수가 정해지는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  7. 제5항에 있어서, 상기 CT 버터플라이는,
    상기 동형 암호문의 최고 차수에 기초하여 계산 단계(스테이지)의 수가 정해지는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  8. 제1항에 있어서, 상기 포인트와이즈 곱셈 연산 단계는,
    상기 NTT 변환 단계에서 얻어진 모든 NTT 변환의 결과값을 대상으로 하여, 상기 각 서로소 인수에 대하여 동일한 차수 별로 포인트와이즈 곱셈 연산을 수행하는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  9. 제1항에 있어서, 상기 INTT 변환 단계는,
    상기 포인트와이즈 곱셈 연산의 결과값을 GS 버터플라이(Gentleman-Sande Butterfly)에 입력하여 INTT 변환을 수행하는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  10. 제9항에 있어서, 상기 GS 버터플라이는,
    상기 동형 암호문의 최고 차수에 기초하여 계산 단계(스테이지)의 수가 정해지는 것
    인 하드웨어 기반의 동형 암호문 모듈라 곱셈 방법.
  11. 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 각 서로소 인수에 기초하여 상기 복수의 동형 암호문에서 분할표현 암호문을 추출하는 CRT 논리회로부;
    상기 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 NTT 논리회로부;
    상기 NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 포인트와이즈 곱셈 연산부;
    상기 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하는 INTT 논리회로부; 및
    상기 INTT 변환을 통하여 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성하는 ICRT 논리회로부;
    를 포함하는 동형 암호문 모듈라 곱셈기.
  12. 제11항에 있어서, 상기 CRT 논리회로부는,
    상기 모듈러스를 소정 워드 크기 이하의 서로소 인수의 곱으로 분해하는 것
    인 동형 암호문 모듈라 곱셈기.
  13. 제11항에 있어서, 상기 NTT 논리회로부는,
    상기 분할표현 암호문의 각 계수를 CT 버터플라이(Cooley-Tukey Butterfly)에 입력하여 NTT 변환을 수행하는 것
    인 동형 암호문 모듈라 곱셈기.
  14. 제13항에 있어서, 상기 CT 버터플라이는,
    상기 동형 암호문의 최고 차수에 기초하여 입력단의 개수가 정해지는 것
    인 동형 암호문 모듈라 곱셈기.
  15. 제13항에 있어서, 상기 CT 버터플라이는,
    상기 동형 암호문의 최고 차수에 기초하여 계산 단계(스테이지)의 수가 정해지는 것
    인 동형 암호문 모듈라 곱셈기.
  16. 제11항에 있어서, 상기 포인트와이즈 곱셈 연산부는,
    상기 복수의 동형 암호문에서 유도된 모든 NTT 변환의 결과값을 대상으로 하여, 상기 각 서로소 인수에 대하여 동일한 차수 별로 포인트와이즈 곱셈 연산을 수행하는 것
    인 동형 암호문 모듈라 곱셈기.
  17. 제11항에 있어서, 상기 INTT 논리회로부는,
    상기 포인트와이즈 곱셈 연산의 결과값을 GS 버터플라이(Gentleman-Sande Butterfly)에 입력하여 INTT 변환을 수행하는 것
    인 동형 암호문 모듈라 곱셈기.
  18. 제17항에 있어서, 상기 GS 버터플라이는,
    상기 동형 암호문의 최고 차수에 기초하여 계산 단계(스테이지)의 수가 정해지는 것
    인 동형 암호문 모듈라 곱셈기.
  19. 다항식 형태로 표현된 복수의 동형 암호문과 모듈러 곱셈을 위한 모듈러스를 입력받고, CRT(Chinese Remainder Theorem) 연산을 통해 상기 모듈러스를 복수의 서로소 인수의 곱으로 분해하며, 상기 각 서로소 인수에 기초하여 상기 복수의 동형 암호문에서 분할표현 암호문을 추출하는 CRT 논리회로부;
    상기 분할표현 암호문의 각 계수에 대하여 NTT(Number Theoretic Transform) 변환을 수행하는 NTT 논리회로부; 및
    상기 NTT 변환의 결과값 간의 포인트와이즈(pointwise) 곱셉 연산을 수행하는 포인트와이즈 곱셈 연산부;를 포함하고,
    상기 NTT 논리회로부는,
    상기 포인트와이즈 곱셈 연산의 결과값을 INTT(Inverse Number Theoretic Transform) 변환하여 분할표현 암호문을 획득하는 것이고,
    상기 CRT 논리회로부는,
    상기 INTT 변환을 통해 획득한 분할표현 암호문을 ICRT(Inverse Chinese Remainder Theorem) 연산을 통해 병합하여 출력암호문을 생성하는 것
    인 동형 암호문 모듈라 곱셈기.
  20. 제19항에 있어서, 상기 CRT 논리회로부는,
    상기 모듈러스를 소정 워드 크기 이하의 서로소 인수의 곱으로 분해하는 것
    인 동형 암호문 모듈라 곱셈기.
KR1020220045015A 2021-11-24 2022-04-12 하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치 KR102683569B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/954,029 US20230163945A1 (en) 2021-11-24 2022-09-27 Method and apparatus for hardware-based accelerated arithmetic operation on homomorphically encrypted message

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210163684 2021-11-24
KR20210163684 2021-11-24

Publications (2)

Publication Number Publication Date
KR20230076723A true KR20230076723A (ko) 2023-05-31
KR102683569B1 KR102683569B1 (ko) 2024-07-10

Family

ID=86543250

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220045015A KR102683569B1 (ko) 2021-11-24 2022-04-12 하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102683569B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150091691A (ko) * 2014-02-03 2015-08-12 삼성전자주식회사 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
KR20210128303A (ko) * 2020-04-16 2021-10-26 주식회사 크립토랩 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150091691A (ko) * 2014-02-03 2015-08-12 삼성전자주식회사 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
KR20210128303A (ko) * 2020-04-16 2021-10-26 주식회사 크립토랩 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법

Also Published As

Publication number Publication date
KR102683569B1 (ko) 2024-07-10

Similar Documents

Publication Publication Date Title
Costache et al. Which ring based somewhat homomorphic encryption scheme is best?
EP2056519B1 (en) Cryptographic system configured for extending a repetition period of a random sequence
JP4842993B2 (ja) 選択された統計的アーティファクトを有する混合基数数生成器
CA2633858C (en) Mixed radix conversion with a priori defined statistical artifacts
US8363830B2 (en) Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts
Pedrouzo-Ulloa et al. Number theoretic transforms for secure signal processing
US20230163945A1 (en) Method and apparatus for hardware-based accelerated arithmetic operation on homomorphically encrypted message
Scholl et al. Improved key generation for Gentry’s fully homomorphic encryption scheme
KR20110009221A (ko) 유한체 연산을 사용하는 랜덤 번호 발생기를 포함하는 암호 시스템
CN110912674B (zh) 图像加密方法、装置、电子设备及可读存储介质
Lin et al. Cryptanalysis of a chaotic stream cipher and its improved scheme
CN111490869A (zh) 一种用于量子密钥分发系统中支持大规模输入块的高速保密增强方法
US11206136B1 (en) Method for multiplying polynomials for a cryptographic operation
Xin et al. A multi-layer parallel hardware architecture for homomorphic computation in machine learning
Bian et al. APAS: Application-specific accelerators for RLWE-based homomorphic linear transformations
Ye et al. Performance modeling and FPGA acceleration of homomorphic encrypted convolution
KR102683569B1 (ko) 하드웨어 기반의 동형 암호문 가속 연산 방법 및 장치
CN116633526A (zh) 一种数据处理方法、装置、设备及介质
Babenko et al. Euclidean division method for the homomorphic scheme ckks
Jo et al. Full cryptanalysis of hash functions based on cubic ramanujan graphs
Ali et al. A Total norm of τ-adic Non-Adjacent Form Occuring among all Element of Z (τ): An Alternative Formula
Kim et al. An experimental study of encrypted polynomial arithmetics for private set operations
Perera et al. Sparse Matrix Based Low-Complexity, Recursive, and Radix-2 Algorithms for Discrete Sine Transforms
Pote et al. Elliptic curve cryptography arithmetic in terms of one variable polynomial division
Kuchta et al. Efficient lattice-based polynomial evaluation and batch zk arguments

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right