KR20230049575A - 동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법 및 장치 - Google Patents

동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법 및 장치 Download PDF

Info

Publication number
KR20230049575A
KR20230049575A KR1020220127892A KR20220127892A KR20230049575A KR 20230049575 A KR20230049575 A KR 20230049575A KR 1020220127892 A KR1020220127892 A KR 1020220127892A KR 20220127892 A KR20220127892 A KR 20220127892A KR 20230049575 A KR20230049575 A KR 20230049575A
Authority
KR
South Korea
Prior art keywords
bit
encrypted data
encrypted
bootstrapping
operations
Prior art date
Application number
KR1020220127892A
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 고려대학교 산학협력단
Publication of KR20230049575A publication Critical patent/KR20230049575A/ko

Links

Images

Classifications

    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법이 개시된다. 상기 방법은 적어도 프로세서를 포함하는 서버에 의해 수행되고, 사용자 단말로부터, 동형암호(Homomorphic Encryption, HE)를 이용하여 비트 단위로 암호화된 데이터를 수신하는 단계, 상기 암호화된 데이터에 포함된 제1 암호화된 데이터와 제2 암호화된 데이터에 대한 덧셈 연산을 수행하는 단계, 및 상기 덧셈 연산의 결과를 상기 사용자 단말로 송신하는 단계를 포함하고, 상기 덧셈 연산을 수행하는 단계는 비트 단위로 수행된다.

Description

동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법 및 장치{DEVICE AND METHOF FOR ACCELERATION OF HOMOMORPHIC ARITHMETIC CIRCUITS WITH MULTI-INPUT BINARY LOGIC GATES}
본 발명은 동형암호를 이용하여 비트 단위로 암호화된 암호문들 사이에서 연산을 가속화할 수 있는 방법에 관한 것으로, 특히 3개 이상의 다중 입력을 받는 논리 게이트를 이용하여 비트 단위 동형암호 기법에서의 산술 연산을 가속화하는 방법에 관한 것이다.
동형암호 또는 완전동형암호(Fully Homomorphic Encryption, FHE)는 암호화된 데이터를 복호화하지 않고 암호화된 데이터에 대한 연산을 가능케 한다. 대부분의 FHE 기법들은 가우시안(Gaussian)과 같은 에러 분포(typical error distribution)로부터 샘플링된 노이즈로 평문(plaintext)을 마스킹한다. 그러나, 마스킹으로 인한 노이즈는 동형암호 연산을 수행할 때마다 증가하고, 노이즈가 특정 레벨을 초과하면 평문은 복호화될 수 없다. 따라서, 대부분의 FHE 기법들은 부트스트래핑(bootstrapping)이라 불리는 프로세스를 포함한다. 부트스트래핑은 동형적으로(homomorphically) 암호문를 복호화하는 과정으로 이해될 수 있으며, 입력 암호문 보다 더 적은 노이즈 레벨을 갖는 새로운 암호문을 제공한다. 부트스트래핑 이후, 새롭게 생성된 암호문에 대한 동형암호 연산이 수행될 수 있다.
부트스트래핑의 유용성에도 불구하고, 부트스트래핑은 시간(time)적, 공간(space)적 높은 복잡성을 갖는다. 따라서, 많은 연구자들은 부트스트래핑에 요구되는 지연(latency)과 공간을 감소시키기 위해 노력하고 있다.
또한, 최근에는 한 암호문에 여러 암호문을 패킹하거나, 패킹한 암호문에 동시다발적으로 연산을 수행하는 SIMD(Single Instruction Multiple Data) 연산 등이 활발하게 연구되고 있다.
본 발명에서는, 동형암호를 이용하여 비트 단위로 암호화된 암호문들 사이에서 연산을 가속할 수 있는 방법을 제안하고자 한다. 특히, 3개 이상의 다중 입력을 받는 논리 게이트를 이용하여 비트 단위 동형암호 기법에서의 산술 연산을 가속화하는 방법을 제안한다.
기존 동형암호를 비트 단위로 이용하기 위해서는 모든 산술 회로들을 비트 단위로 디자인하여 게이트 연산을 이용하였다. 암호화된 비트 게이트 연산을 수행하기 위해서는 부트스트래핑으로 인하여 평문 연산에 비해 메모리가 많이 소모되고 지연이 발생하는 문제점이 있다.
본 발명의 일 실시예에 따른 연산 방법은 적어도 프로세서를 포함하는 서버에 의해 수행되는 연산 방법으로서, 사용자 단말로부터, 동형암호(Homomorphic Encryption, HE)를 이용하여 비트 단위로 암호화된 데이터를 수신하는 단계, 상기 암호화된 데이터에 포함된 제1 암호화된 데이터와 제2 암호화된 데이터에 대한 덧셈 연산을 수행하는 단계, 및 상기 덧셈 연산의 결과를 상기 사용자 단말로 송신하는 단계를 포함하고, 상기 덧셈 연산을 수행하는 단계는 비트 단위로 수행되고, i번째 비트의 섬(sum)은
Figure pat00001
의 연산 결과에 기초하여 생성되고, 상기 cta는 상기 제1 암호화된 데이터의 i번째 비트의 값이고, 상기 ctb는 상기 제2 암호화된 데이터의 i번째 비트의 값이고, 상기 ctc는 상기 제1 암호화된 데이터의 (i-1)번째 비트의 값과 상기 제2 암호화된 데이터의 (i-1)번째 비트의 값에 대한 덧셈 연산의 결과로 발생한 캐리(carry)인 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 연산 방법은 적어도 프로세서를 포함하는 서버에 의해 수행되는 연산 방법으로서, 사용자 단말로부터, 동형암호(Homomorphic Encryption, HE)를 이용하여 비트 단위로 암호화된 데이터를 수신하는 단계, 제2 알고리즘을 이용하여, 상기 암호화된 데이터에 포함된 제1 암호화된 데이터(CA)와 제2 암호화된 데이터(CB)에 대한 덧셈 연산을 수행하는 단계, 및 상기 덧셈 연산의 결과(C)를 상기 사용자 단말로 송신하는 단계를 포함한다.
본 발명의 실시예에 따른 실시예들에 의할 경우, 비트 단위 동형암호 기법들이 공통적으로 가지고 있는 대수적 구조를 이용하여 다중 입력 값을 받는 논리 게이트를 디자인하여 덧셈, 뺄셈, 비교 연산 등을 구현하는 데에 필요한 게이트 수를 줄여 회로 연산에 필요한 시간과 연산량을 감소시킬 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 1-비트 전가산기(1-bit full adder)의 회로를 도시한다.
도 2는 3-인풋 논리 게이트들을 이용하여 구성된 동형암호 1-비트 전가산기를 도시한다.
도 3은 이진 논리 게이트들로 구성된 1-비트 전감산기를 도시한다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 명세서를 통해 이용되는 표기법을 정의하고 (완전)동형암호 기법에 대하여 기술한다.
표기법(Notations)
토러스(torus)를
Figure pat00002
로 표기하고,
Figure pat00003
를 토러스의 표현(representation)이라 하자.
Figure pat00004
는 바이너리 셋(binary set) {0,1}을 나타낸다.
Figure pat00005
에 대하여,
Figure pat00006
는 집합
Figure pat00007
를 나타낸다.
또한, 집합
Figure pat00008
에 대하여,
Figure pat00009
는 a가 집합
Figure pat00010
로부터 균등하게 샘플링되었음(uniformly sampled)을 의미한다. 유사하게, 실수(real number)
Figure pat00011
에 대하여,
Figure pat00012
는 평균(mean)
Figure pat00013
와 표준 편차(standard deviation)
Figure pat00014
를 갖는 가우시안 분포(Gaussian distribution)로부터 x가 샘플링되었음을 의미한다.
암호문 c에 대하여,
Figure pat00015
는 c에서 암호화된 토러스 메시지
Figure pat00016
를 나타낸다. 또한,
Figure pat00017
에 대하여
Figure pat00018
는 0 또는 1을 암호화한 TFHE 암호문을 나타낸다. 여기서, 비트들은 실제로 토러스
Figure pat00019
내의 메시지로 인코딩된다.
TFHE
Chillotti 등은 2016년에 TFHE라 불리는 완전동형암호 기법을 제안하였다(I. Chillotti, N. Gama, M. Georgieva, and M. Izabachene, “Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds,” in international conference on the theory and application of cryptology and information security. Springer, 2016, pp. 3-33.). 이는 LWE(Learning with Errors) 문제와 이의 링 변형체(ring variant), 즉 RLWE(Ring-LWE)에 기초한다. TFHE는 부트스트래핑 과정을 개선하였고, 단일 부트스트래핑 당 지연을 690 ms에서 13 ms로 감소시켰다. TFHE는 부트스트래핑이 뒤따르는, 암호화된 바이너리 메시지에 대한 게이트 연산들(gate operations)을 지원한다. 모든 게이트 연산 이후에 동작하는 부트스트래핑으로 인하여, 이진 산술 회로들(binary arithmetic circuits)은 BGV, BFV, 또는 HEAAN과 같은 정수 기반 동형 기법들에 비하여 비효율적이다. 그러나, TFHE에서의 바이너리 게이트 연산들은 암호화된 데이터에 대한 정확한 계산 결과를 제공한다.
TFHE의 게이트 부트스트래핑 모드를 설명한다. 사용자(또는 사용자의 단말을 의미할 수 있음)가 사용자의 데이터를 암호화하고 암호화된 데이터를 사용자의 암호화된 데이터로 임의의 이진 산술 회로를 연산할 서버로 송신하는 것을 가정한다. TFHE 기법은 리얼 토러스(real torus)
Figure pat00020
상에서 동작한다.
·키생성 알고리즘(
Figure pat00021
) :
Figure pat00022
-비트의 보안 레벨(security level)을 달성하기 위해, 보안 파라미터(security parameter)
Figure pat00023
가 우선 선택된다. 또한, 메시지 암호화를 위해, LWE 파라미터들
Figure pat00024
Figure pat00025
이 선택된다.
파라미터들이 선택되면, 사용자의 데이터를 암호화하기 위한 비밀키(secret key)
Figure pat00026
가 생성된다. 비밀키와 더불어 부트스트래핑 키(bootstrapping key)를 구성하는 공개키(public key)
Figure pat00027
와 키스위칭키(keyswitching key) 역시 생성된다.
·암호화 알고리즘(
Figure pat00028
: 파라미터들과 비밀키
Figure pat00029
를 가지고, LWE 암호를 이용하여 사용자는 메시지를 이루는 비트
Figure pat00030
을 암호화할 수 있다. LWE 암호는
Figure pat00031
내의 메시지를 암호화하기 때문에, 비트 메시지는 우선 토러스 내의 이산 메시지 공간(discrete message space)으로, 즉
Figure pat00032
를 계산하여
Figure pat00033
를 도출함으로써, 인코딩된다.
그런 다음, 토러스로부터 임의로 선택된
Figure pat00034
를 이용한 암호화 동작이 시작된다. 비밀키
Figure pat00035
를 이용하여, 사용자는
Figure pat00036
(여기서,
Figure pat00037
)를 계산한다. 결과적으로 도출되는 암호문은 튜플
Figure pat00038
이다. 본 발명에서는, 추가적으로, 복호화 과정에서 이용되는 페이즈 함수(phase function)
Figure pat00039
를 더 정의할 수 있다.
사용자의 메시지를 암호화한 후, 사용자는 암호문과 공개키를, 사용자의 데이터를 동형적으로 연산할 서버로 송신한다.
·게이트 연산(
Figure pat00040
) : 서버가 사용자의 암호문과 공개키를 수신한 이후, 서버는, TFHE에서 게이트 연산들을 구성하는, 미리 디자인된 이진 산술 회로들(binary arithmetic circuits)을 적용할 수 있다. 이진 AND 게이트(binary AND gate)를 중심으로 게이트 연산을 설명한다.
두 암호문들 ct1과 ct2 사이의 동형암호 AND 게이트 연산은 아래 식을 계산함으로써 수행될 수 있다.
Figure pat00041
두 암호문들의 에러 e1과 e2의 크기(magnitude)는 1/16 보다 작다고 가정한다. 그러면, 인코딩과 LWE 암호의 이체동형(homomorphism) 특성으로부터, ct1과 ct2가 모두 1/8(=1)를 암호화한 경우에는 아래 식이 성립되고, 그렇지 않은 경우에는
Figure pat00042
이 성립된다.
Figure pat00043
암호문 c에 대하여, Bootstrap(c)는 새로운 암호문 Enc(1)(msg(c)>0인 경우)와 Enc(0)(그렇지 않은 경우)을 출력한다. 따라서, bootstrapping(
Figure pat00044
)을 수행함으로써, 서버는 AND 게이트의 인코딩된 결과 비트를 암호화한 LWE 암호문을 획득할 수 있다.
서버는 게이트 연산을 수행하는 도중 사용자의 암호문에 대한 어떠한 정보도 알아낼 수 없다. OR, NAND, NOR 게이트와 같은 다른 이진 게이트들 역시 동일한 방식으로 구현될 수 있고, 단일의 게이트 연산이 수행될 때마다 부트스트래핑이 요구된다. 이는 TFHE 기반의 회로들의 병목 현상의 주된 원인이다.
이진 회로들에 대한 연산이 수행된 이후, 결과들은 복호화를 위해 사용자(사용자 단말을 의미할 수 있음)에게 전송된다.
복호화 알고리즘(
Figure pat00045
) : 암호문의 복호화는 암호문의 페이즈(phase)
Figure pat00046
Figure pat00047
를 계산하고 계산 결과를 가장 근접한 메시지 공간(nearest message space)
Figure pat00048
으로 라운딩(rounding)시킴으로서 수행될 수 있다. 이때, 암호문의 에러 e의 크기가 1/16 보다 크다면, 메시지는 올바르게 복호화될 수 없다. 복호화된 토러스 메시지들은 그런 다음 이진 형태(binary form)로 다시 디코딩된다(즉,
Figure pat00049
). 페이즈 함수의 선형성으로 인하여, LWE 암호문들 역시 동형(homomorphic)이다.
이상에서는, Chillotti 등이 제안한 TFHE에 대하여 설명하였다. 그러나, 본 발명이 동형암호 기법의 종류에 제한되는 것은 아니며, LWE 및/또는 RLWE에 기반한 동형암호 기법이라면 제한없이 적용될 수 있다.
이하에서는, 가산기(adder)와 감산기(subtractor)를 포함하는 이진 회로들(binary circuits)의 처리 속도를 향상시키는 방법에 대해 소개한다.
TFHE에서의 이진 게이트들의 입력 슬롯들을 확장함으로써 이진 대수 회로들을 가속화하는 방법을 소개한다. 1-비트 가산기(1-bit adder)로부터 시작하여, 1-비트 가산기의 진리표(truth table)를 반영하는 BootsSUM과 BootsCARRY로 불리는 두 개의 3-인풋 논리 게이트들을 제안한다. 유사하게, 1-비트 감산기(1-bit subtractor)를 위한, BootsBorrow로 불리는 추가적인 3-인풋 논리 게이트를 제안한다. 이를 통해, 기존 기법에 의할 경우 요구되는 5n-3 회가 아닌 2n-1 회의 부트스래핑만을 수행하여 더욱 빠른 n-비트 가산기와 감산기를 구현할 수 있다. 대수적 수들(algebraic numbers)의 이진 암호를 위해 2의 보수 표현(two's complement representation)이 사용될 수 있음을 주의할 필요가 있다.
전가산기(Full Adder)
두개의 수들 A와 B에 대한 덧셈을 고려하자. 도 1에 도시된 바와 같이, 1-비트 전가산기는 3개의 입력들 Ai, Bi, 및 Cin을 수신한다. Ai와 Bi는 각각 피가수(augend)와 가수(addend)의 i-번째 비트이고, Cin은 캐리(carry)이다. 5 개의 논리 게이트 연산들 이후, 전가산기는 섬(sum)과 캐리(carry)를 출력한다. 캐리는 i+1 번째 비트에 대한 전가산기의 연산에서 사용된다. 동형암호 게이트 연산들로 1-비트 전가산기를 구현함으로써, 두 개의 암호화된 n-비트 대수적 수들 사이의 덧셈을 구현할 수 있다. 알고리즘 1(Algorithm 1)은 1-비트 전가산기를 순차적으로 수행하는 동형암호 n-비트 전가산기를 위한 알고리즘을 제공한다.
[알고리즘 1]
Figure pat00050
그러나, 상술한 접근법을 이용한 동형암호 1-비트 전가산기는 5 개의 게이트 연산들을 이용하고, 이는 5 번의 부트스트래핑을 필요로 한다. 이에, 본 발명에서는 5 번의 부트스트래핑을 단 2 번의 부트스트래핑으로 감소시킬 수 있는 기법을 제안한다.
동형암호 전가산기의 스피드업(Speeding up Homomorphic Full Adder)
FHEW와 TFHE 등에서의 게이트 연산들의 디자인과 유사하지만, 3 개의 암호문을 입력으로 받는다는 점에서 차이점이 있다. 즉, 이진 산술 회로 Circ를 위하여,
Figure pat00051
Figure pat00052
에 대하여, 3 개의 암호문들 cta, ctb, ctc에 대한 선형 대수 연산을 아래와 같이 제안한다.
Figure pat00053
선형적인 가중(linear summation)은 단순한 덧셈으로, 시간을 소모하는 연산이 아니다. 따라서, 제안하는 회로 Circ는 부트스트래핑의 횟수를 감소시키고 더 적은 비용으로 회로를 구현할 수 있다.
1-비트 전 가산기의 진리표는 표 1과 같다. 표 1에서, A, B, 및 Cin은 3 개의 입력 비트들이고, Sum과 Cout은 1-비트 전가산기의 출력 비트들이다.
[표 1]
Figure pat00054
아래 식을 만족하는 두 세트의 파라미터들
Figure pat00055
이 결정되어야 한다.
Figure pat00056
위 식에서 해비사이드 스텝 함수(Heaviside step function)는 아래와 같다.
Figure pat00057
따라서, 선형적인 연산들 이후에, 아래의 두 파라미터 셋 ParamS와 ParamCo를 이용하여 S와 Co의 메시지들을 계산할 수 있다. 결과는 표 2에 도시되어 있다.
Figure pat00058
[표 2]
Figure pat00059
표 2이 네번째와 다섯번째 컬럼은, 각각이 파라미터들 ParamS와 ParamCo를 이용한 3 개의 암호문들 Enc(A), Enc(B), 및 Enc(Cin)에 대한 선형적인 연산들 이후의 암호화된 메시지들을 나타낸다. 결과적인 암호문의 각 메시지들의 부호(sign)는 표 1의 진리표에 대응한다. 따라서, 표 2의 S와 Co 각각에 부트스트래핑을 수행함으로써, 부호에 기초하는 Enc(0) 또는 Enc(1)에 대한 새롭게 대응되는 암호문을 획득할 수 있다. 따라서, 1-비트 전가산기는 2 회의 부트스트래핑만으로 구현할 수 있다. 본 명세서에서, 두 개의 연산들을 각각 BootsSUM과 BootsCARRY로 나타낸다.
Figure pat00060
Figure pat00061
이제, 제안한 3-인풋 논리 게이트들을 갖는 새로운 n-비트 동형암호 전가산기를 설명한다. 이에 대한 알고리즘은 알고리즘 2에 나타나 있다. 전통적인 n-비트 동형암호 전가산기와 비교하면, (5n-3) 부트스트래핑은 (2n-1) 회로 감소되어, 거의
Figure pat00062
배의 가속 효과를 달성할 수 있다. 3-인풋 논리 게이트들을 이용하여 구성된 동형암호 1-비트 전가산기는 도 2에 도시되어 있다.
Figure pat00063
동형암호 감산기 스피드업(Speeding up Homomorphic subtractor)
전가산기에서와 유사하게, 1-비트 전감산기(1-bit full subtractor)를 순차적으로 수행하여, n-비트의 수들에 대한 감산을 수행할 수 있다. 도 3은 이진 논리 게이트들로 구성된 1-비트 전감산기를 도시한다. 1-비트 전감산기는 7 개의 논리 게이트들로 구성되고, 그 중 2 개는 NOT 게이트들이다. 그러나, TFHE에서의 HomNOT 게이트는 암호문을 부정(negating)함으로써 수행될 수 있기 때문에, 부트스트래핑이 필요하지 않다. 동형암호 n-비트 감산기의 알고리즘은 알고리즘 3에 나타나 있다.
[알고리즘 3]
Figure pat00064
3 개의 입력 A, B, 및 bin과 두 개의 출력 Dif과 bout을 갖는 1-비트 전감산기의 진리표를 살펴본다. 여기서, Dif, bin, bout은 각각 차이(difference), 입력 빌림수(input borrow), 출력 빌림수(boutput borrow)를 나타낸다. 진리표는 표 3에 나타나 있다.
[표 3]
Figure pat00065
Dif의 진리값(truth value)은 1-비트 전가산기에서의 Sum과 정확하게 일치한다. 따라서, Dif를 구현하기 위해, BootsSUM을 재차 사용할 수 있다. bout을 구현하기 위해, BootsBorrow로 불리는 3-인풋 논리 게이트를 디자인할 수 있다. bout은 파라미터들
Figure pat00066
의 선형 결합에 의해 구현될 수 있고, BootsBorrow는 선형합(linear summation)을 부트스트래핑함으로써 구현될 수 있다.
Figure pat00067
따라서, 1-비트 전감산기는, 전가산기와 마찬가지로, 2 개의 부트스트래핑만으로 수행될 수 있다. 새로운 n-비트 동형암호 전감산기 알고리즘은 알고리즘 4와 같다. 알고리즘 3의 전통적인 동형암호 가산기와 비교하면, (5n-3) 회의 부트스트래핑은 (2n-1) 회로 감소하여,
Figure pat00068
배의 가속 효과를 얻을 수 있다. 이하에서, 3-인풋 논리 게이트들을 갖는 새로운 n-비트 동형암호 전가산기와 전감산기를 각각 newADD와 newSUB로 표기하기로 한다.
[알고리즘 4]
Figure pat00069
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPA(Field Programmable array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operation System, OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor)와 같은, 다른 처리 구성(Processing Configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (5)

  1. 적어도 프로세서를 포함하는 서버에 의해 수행되는 연산 방법에 있어서,
    사용자 단말로부터, 동형암호(Homomorphic Encryption, HE)를 이용하여 비트 단위로 암호화된 데이터를 수신하는 단계;
    상기 암호화된 데이터에 포함된 제1 암호화된 데이터와 제2 암호화된 데이터에 대한 덧셈 연산을 수행하는 단계; 및
    상기 덧셈 연산의 결과를 상기 사용자 단말로 송신하는 단계를 포함하고,
    상기 덧셈 연산을 수행하는 단계는 비트 단위로 수행되고,
    i번째 비트의 섬(sum)은
    Figure pat00070
    의 연산 결과에 기초하여 생성되고,
    상기 cta는 상기 제1 암호화된 데이터의 i번째 비트의 값이고, 상기 ctb는 상기 제2 암호화된 데이터의 i번째 비트의 값이고, 상기 ctc는 상기 제1 암호화된 데이터의 (i-1)번째 비트의 값과 상기 제2 암호화된 데이터의 (i-1)번째 비트의 값에 대한 덧셈 연산의 결과로 발생한 캐리(carry)인,
    연산 수행 방법.
  2. 제1항에 있어서,
    상기 i번째 비트의 섬(sum)은 상기
    Figure pat00071
    의 연산 결과에 대한 부트스트래핑(bootstrapping)을 수행함으로써 생성되는,
    연산 수행 방법.
  3. 제1항에 있어서,
    상기 i번째 비트의 캐리는
    Figure pat00072
    의 연산 결과에 기초하여 생성되는,
    연산 수행 방법.
  4. 제3항에 있어서,
    상기 i번째 비트의 캐리는 상기
    Figure pat00073
    의 연산 결과에 대한 부트스트래핑을 수행함으로써 생성되는,
    연산 수행 방법.
  5. 적어도 프로세서를 포함하는 서버에 의해 수행되는 연산 방법에 있어서,
    사용자 단말로부터, 동형암호(Homomorphic Encryption, HE)를 이용하여 비트 단위로 암호화된 데이터를 수신하는 단계;
    제2 알고리즘을 이용하여, 상기 암호화된 데이터에 포함된 제1 암호화된 데이터(CA)와 제2 암호화된 데이터(CB)에 대한 덧셈 연산을 수행하는 단계; 및
    상기 덧셈 연산의 결과(C)를 상기 사용자 단말로 송신하는 단계를 포함하는 연산 수행 방법.
    Figure pat00074
KR1020220127892A 2021-10-06 2022-10-06 동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법 및 장치 KR20230049575A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210132346 2021-10-06
KR1020210132346 2021-10-06

Publications (1)

Publication Number Publication Date
KR20230049575A true KR20230049575A (ko) 2023-04-13

Family

ID=85978824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220127892A KR20230049575A (ko) 2021-10-06 2022-10-06 동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20230049575A (ko)

Similar Documents

Publication Publication Date Title
US20220141038A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
US10180824B2 (en) Computing device comprising a table network
US9760737B2 (en) Techniques for integrated circuit data path confidentiality and extensions thereof
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
JP2022533950A (ja) 準群演算を含む暗号化データに対して等価演算および未満演算を実行するシステムおよび方法
JPH07253752A (ja) 疑似乱数生成装置と該装置により生成された疑似乱数に基づく暗号文を用いる通信方法とその装置
US11870913B2 (en) Method for generating a digital signature of an input message
CN115314211A (zh) 基于异构计算的隐私保护机器学习训练与推理方法及系统
Chen et al. Integer arithmetic over ciphertext and homomorphic data aggregation
KR20230049575A (ko) 동형암호에 기반한 다중 입력 논리 게이트를 통한 암호화된 산술 연산 가속화 방법 및 장치
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Shooshtari et al. Smooth projective hash function from codes and its applications
Lou et al. vFHE: Verifiable Fully Homomorphic Encryption with Blind Hash
KR102451633B1 (ko) 동형암호를 위한 암호화 처리 장치 및 방법
CN116455575B (zh) 一种密钥生成、加密、解密方法、电子设备及存储介质
US20230017265A1 (en) Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
CN114244552B (zh) 基于区块链的数据加密传输方法及装置
US20240171401A1 (en) Method for calculating using an one-way function effienct in a zero knowledge proof, and apparatus implementing the same method
KR102337865B1 (ko) 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법
US20240039695A1 (en) Electronic apparatus for generating homomorphic encrypted message and method therefor
US11664976B2 (en) Method and devices for creating redundancy and encryption using Mojette Transform
JP7073295B2 (ja) 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム
JP4708914B2 (ja) 解読化方法
WO2021131667A1 (ja) 秘匿計算装置、秘匿計算方法及びプログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal