KR20210128313A - 동형 암호 기반 암호문 처리 방법 및 장치 - Google Patents

동형 암호 기반 암호문 처리 방법 및 장치 Download PDF

Info

Publication number
KR20210128313A
KR20210128313A KR1020200137640A KR20200137640A KR20210128313A KR 20210128313 A KR20210128313 A KR 20210128313A KR 1020200137640 A KR1020200137640 A KR 1020200137640A KR 20200137640 A KR20200137640 A KR 20200137640A KR 20210128313 A KR20210128313 A KR 20210128313A
Authority
KR
South Korea
Prior art keywords
ciphertext
approximate polynomial
polynomial
samples
difference
Prior art date
Application number
KR1020200137640A
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 US17/172,643 priority Critical patent/US11546134B2/en
Priority to CN202110257766.8A priority patent/CN113541916A/zh
Priority to EP21163199.9A priority patent/EP3896895B1/en
Priority to JP2021067688A priority patent/JP2021179603A/ja
Publication of KR20210128313A publication Critical patent/KR20210128313A/ko

Links

Images

Classifications

    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

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

Abstract

동형 암호 기반 암호문 처리 방법 및 장치가 개시된다. 개시된 동형 암호 기반 암호문 처리 방법은 암호문의 부트스트래핑을 위한 모듈러스 리덕션에 대응하는 근사 다항식을 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정하는 단계 및 근사 다항식에 기반하여, 암호문에 부트스트래핑을 수행하는 단계를 포함한다.

Description

동형 암호 기반 암호문 처리 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING CIPHERTEXT BASED ON HOMOGENEOUS ENCRYPTION}
아래 실시예들은 동형 암호 기반 암호문 처리 방법 및 장치에 관한 것이다.
완전 동형 암호화(fully homomorphic encryption)는 암호화된 데이터를 이용한 임의의 논리적 연산 또는 수학적 연산을 가능하게 하는 암호화 방식이다. 완전 동형 암호화 방식은 데이터 처리에서 보안을 유지하도록 한다. 완전 동형 암호화는 고객들이 프라이버시를 지키면서 많은 서비스를 받는 것을 가능하게 한다.
일실시예에 따른 동형 암호 기반 암호문 처리 방법은 암호문(ciphertext)의 부트스트래핑(bootstrapping)을 위한 모듈러스 리덕션(modulus reduction)에 대응하는 근사 다항식을 상기 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정하는 단계; 및 상기 근사 다항식에 기반하여, 상기 암호문에 부트스트래핑을 수행하는 단계를 포함한다.
일실시예에 따른 암호문 처리 방법에서 상기 근사 다항식을 결정하는 단계는 상기 복수의 샘플들과 상기 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작도록 상기 근사 다항식의 계수를 결정할 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 근사 다항식을 결정하는 단계는 상기 복수의 샘플들과 상기 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작은지 여부를 판단하고, 상기 차이가 미리 정해진 임계치보다 같거나 큰 경우, 상기 차이와 이전 스텝에서 결정된 차이 간 비교에 기초하여 상기 복수의 샘플들의 개수 또는 상기 근사 다항식의 차수를 증가시킬 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 근사 다항식을 결정하는 단계는 상기 차이와 이전 스텝에서 결정된 차이 간 유사도가 미리 정해진 임계 유사도보다 작으면 상기 복수의 샘플들의 개수를 증가시키고, 상기 유사도가 미리 정해진 임계 유사도보다 같거나 크면 상기 근사 다항식의 차수를 증가시킬 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 복수의 샘플들과 상기 근사 다항식의 값들 간 차이는 상기 복수의 샘플들과 상기 근사 다항식의 값들 간 L2-norm에 기초하여 결정될 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 근사 다항식을 결정하는 단계는 홀수 차수항들로 구성된 상기 근사 다항식을 결정할 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 근사 다항식을 결정하는 단계는 체비셰프(Chebyshev) 다항식을 기저로 한 상기 근사 다항식을 결정할 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 복수의 샘플들은 상기 모듈러스 리덕션에 대응하는 함수 중 기준점을 중심으로 대칭 형태를 가진 조각 연속 구간에서 추출될 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 복수의 샘플들은 상기 조각 연속 구간에서 상기 기준점에 의해 나누어진 일부분에서 추출될 수 있다.
일실시예에 따른 암호문 처리 방법에서 상기 암호문에 부트스트래핑을 수행하는 단계는 상기 근사 다항식을 이용하여 상기 모듈러스 리덕션을 동형적으로 평가함으로써 상기 암호문에 상기 부트스트래핑을 수행할 수 있다.
일실시예에 따른 동형 암호 기반 암호문 처리 장치는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는 암호문의 부트스트래핑을 위한 모듈러스 리덕션에 대응하는 근사 다항식을 상기 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정하고, 상기 근사 다항식에 기반하여, 상기 암호문에 부트스트래핑을 수행한다.
도 1은 일실시예에 따라 동형 암호에 기반하여 암호화된 암호문을 처리하는 사용자 단말과 서버의 동작을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 스케일링된 모듈러스 리덕션 함수를 예시적으로 나타낸 도면이다.
도 3은 일실시예에 따른 근사 다항식을 결정하는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라 결정된 근사 다항식을 이용한 부트스크래핑을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 암호문 처리 방법을 나타낸 도면이다.
도 6은 일실시예에 따른 암호문 처리 장치를 나타낸 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 실시예의 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 관련 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타내며, 공지된 기능 및 구조는 생략하도록 한다.
도 1은 일실시예에 따라 동형 암호에 기반하여 암호화된 암호문을 처리하는 사용자 단말과 서버의 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 사용자 단말(110)과 서버(120)가 도시된다. 사용자 단말(110)은 사용자에 의해 제어되는 장치로, 예를 들어, 스마트 폰, 태블릿, 랩탑, 퍼스널 컴퓨터 등 다양한 컴퓨팅 장치, 스마트 시계, 스마트 안경 등 다양한 웨어러블 기기, 스마트 스피커, 스마트 TV, 스마트 냉장고 등 다양한 가전장치, 스마트 자동차, 스마트 키오스크, IoT(Internet of Things) 기기, 드론, 로봇 등을 포함할 수 있다. 사용자 단말(110)은 저장된 데이터를 동형 암호에 기반하여 암호화하여 서버(120)로 전송할 수 있다. 사용자 단말(110)은 서버(120)에서 제공하는 다양한 서비스 이용 등을 위해 데이터를 서버(120)로 전송할 수 있는데, 이때 전송되는 데이터는 정보 보호를 위해 암호화된 데이터일 수 있다. 서버(120)에서 암호화된 데이터에 대한 처리를 위해서, 사용자 단말(110)은 동형 암호에 기반하여 데이터를 암호화할 수 있다.
동형 암호는 복호화 없이 암호화된 데이터에 대한 연산을 허용하는 암호화 기법일 수 있다. 동형 암호는 복호화 없이 암호화된 데이터를 처리할 수 있으므로, 프라이버시가 필요한 데이터가 많은 어플리케이션에 적합할 수 있다. 예를 들어, 동형 암호는 CKKS(Cheon-Kim-Kim-Song) 기법일 수 있으며, 이에 대한 자세한 설명은 후술한다. 본 명세서에서 암호화되지 않은 데이터는 평문(plaintext)으로, 암호화된 데이터는 암호문(ciphertext)으로 표현될 수 있다.
동형 암호에는 노이즈가 포함되어 있으며, 암호문에 대한 연산이 수행됨에 따라 노이즈 레벨이 증가할 수 있다. 노이즈가 데이터를 압도(overwhelming)하는 것을 방지하기 위해 노이즈 처리, 다시 말해, 노이즈를 리프레쉬(refresh)하는 부트스트래핑이 수행될 수 있다. 부트스트래핑을 통해 회로 깊이(circuit depth)에 관계없이 파라미터 크기와 계산 오버헤드가 고정될 수 있다.
동형 암호로 암호화된 암호문에는 부트스트래핑 없이 가능한 연산의 최대 횟수가 존재하며, 이는 레벨 l(
Figure pat00001
)로 표현될 수 있다. 부트스트래핑은 연산이 더 이상 수행될 수 없는 레벨 0의 암호문을 리프레쉬하여, 동일 메시지를 갖는 레벨 L의 암호문을 생성하는 과정일 수 있다.
서버(120)는 부트스트래핑을 통해 암호문에 대해 여러 연산들을 수행할 수 있으며, 이때 암호문에 대한 복호화가 필요치 않아 개인 정보 보호가 침해되지 않는다. 실시예에 따라, 서버(120)에서 연산된 암호문은 다시 사용자 단말(110)로 전송되고, 사용자 단말(110)은 해당 암호문을 복호화한 데이터를 사용자로 제공하거나, 또는 후속 동작에 이용할 수 있다.
부트스트래핑에서는 모듈러스 리덕션의 동형 평가(homomorphic evaluation)가 중요하다. 산술 연산만 동형으로 평가될 수 있는데, 모듈러스 리덕션은 산술 연산이 아니므로 모듈러스 리덕션을 위한 다항식 근사가 필요하다. 본 명세서에서 동형 평가는 동형 값 구하기 또는 동형 수행으로도 표현할 수 있다.
본 명세서에서는 모듈러스 리덕션을 위한 근사 다항식을 찾는 문제를 최적 솔루션을 직접 계산 가능한 L2-norm 최소화 문제로 치환할 수 있다. 따라서, 삼각함수(예컨대, sine 함수 등)를 이용한 다항식 근사에 의한 한계가 쉽게 극복될 수 있다. 모듈러스 리덕션의 근사 다항식을 구하는데 이산화 최적화 방법(discretized optimization method)이 적용될 수 있다. 수정된 이산화 문제의 솔루션을 통해 모듈러스 리덕션에 대한 근사 다항식의 차수를 줄이면서도 낮은 오차를 가질 수 있다. 또한, 부트스트래핑의 레벨 손실이 감소되고, 캐스트 문제(cast problem)에 대한 솔루션이 반복 없이 효율적인 방식으로 결정될 수 있다.
도 2는 일실시예에 따른 스케일링된 모듈러스 리덕션 함수를 예시적으로 나타낸 도면이다.
본 명세서에서 벡터는 x와 같이 볼드체로 표시되며, 벡터는 열 벡터일 수 있다. 행렬은 A와 같이 볼드체 대문자로 표시될 수 있다. 두 벡터의 내적은
Figure pat00002
또는 간단히
Figure pat00003
로 표시될 수 있다. 행렬 곱셈은
Figure pat00004
로 표시되거나, 불필요한 경우 생략될 수 있다. 벡터의 Lp-norm은
Figure pat00005
로 표시될 수 있다. 여기서 x[i]는 벡터 x의 i번째 엘리먼트를 나타낼 수 있다. 마찬가지로, A[i, j]는 i번째 행과 j번째 열에 있는 행렬 A의 엘리먼트를 나타낼 수 있다.
Figure pat00006
는 분포 D에 따른 샘플링 x를 나타낼 수 있다. 분포 대신 집합(set)을 사용하는 경우, x는 집합 엘리먼트들 중 무작위로 균일하게 샘플링됨을 나타낼 수 있다.
체비셰프 보간(Chebyshev interpolation)
체비셰프 보간(Chebyshev interpolation)은 체비셰프 다항식을 보간 다항식의 기저(basis)로 사용하는 다항식 보간법일 수 있다. 제1 종 체비셰프 다항식, 간단히 말해서 체비셰프 다항식은 재귀 관계(recursive relation)에 의해 다음과 같이 표현될 수 있다.
Figure pat00007
차수 n의 체비셰프 다항식은 구간 [-1,1]에 n 개의 고유한 근(distinct root)을 가지며, 모든 극한값도 [-1,1]에 존재할 수 있다. 또한,
Figure pat00008
은 n 차의 일원 다항식(monic polynomials) 중 최대 절대 값(maximal absolute value)이 최소이고, 절대 값이
Figure pat00009
인 다항식일 수 있다.
체비셰프 보간에서, n 차 다항식 p n (x)은 다음과 같은 형식의 체비셰프 다항식 합으로 표현될 수 있다.
Figure pat00010
p n (x)는 n + 1 포인트들 {x 0 , x 1 , ..., x n }을 보간함으로써, f(x)에 대한 근사 다항식일 수 있다.
Figure pat00011
포인트들 {x 0 , x 1 , ..., x n }의 선택이 좋은 근사치를 위해 중요할 수 있다.
CKKS 기법
양의 정수 M에 대해
Figure pat00012
N차의 M번째 순환 다항식(cyclotomic polynomial)이라고 한다. 여기서, M은 2의 거듭제곱, M = 2N,
Figure pat00013
일 수 있다.
Figure pat00014
는 숫자 필드(number field)
Figure pat00015
의 정수환(ring of integers)이고,
Figure pat00016
이라고 쓸 수 있다.
CKKS 기법 및 RNS(residual number system) 변형은 오류가 있는 실수 데이터(real number data)에 대한 동형 연산을 제공할 수 있다. 이것은 캐노니컬 임베딩(canonical embedding)과 그 반대에 의해 수행될 수 있다.
Figure pat00017
으로의
Figure pat00018
의 캐노니컬 임베딩
Figure pat00019
Figure pat00020
의 근(root)에서의 평가 값 a의 벡터일 수 있다.
Figure pat00021
Figure pat00022
에서
Figure pat00023
까지의 자연 투영(natural projection)을 나타낼 수 있다. 여기서
Figure pat00024
은 정수 모듈로(integer modulo) M의 곱셈 그룹일 수 있다. 이하, 인코딩(
Figure pat00025
) 및 디코딩을 설명한다.
Figure pat00026
. (N / 2)-차원 벡터 z에 대한 인코딩은 다음을 리턴할 수 있다.
Figure pat00027
여기서,
Figure pat00028
는 스케일링 인자이고,
Figure pat00029
Figure pat00030
의 엘리먼트로
Figure pat00031
의 이산화(discretization)를 나타낼 수 있다.
Figure pat00032
. 입력 다항식
Figure pat00033
에 대해, 인덱스 j의 엔트리(entry)이
Figure pat00034
에 대해
Figure pat00035
이 되도록, 벡터
Figure pat00036
가 출력될 수 있다. 여기서,
Figure pat00037
은 유니티(unity)의 M번째 근이고, T는
Figure pat00038
를 만족하는
Figure pat00039
의 곱셈 서브그룹(multiplicative subgroup)일 수 있다.
Figure pat00040
에 대한
Figure pat00041
의 L-infinity norm은
Figure pat00042
로 표시되는 a의 캐노니컬 임베딩 norm으로 지칭될 수 있다.
다음과 같이 세 가지 분포가 정의될 수 있다. 실수
Figure pat00043
의 경우,
Figure pat00044
Figure pat00045
의 벡터 분포를 나타내며, 엔트리는 분산
Figure pat00046
의 이산 가우스 분포(discrete Gaussian distribution)에 독립적으로 샘플링될 수 있다.
Figure pat00047
는 해밍 가중치(Hamming weight) h 인
Figure pat00048
의 부호를 가진 이진 벡터(signed binary vectors)의 집합이고,
Figure pat00049
는 각
Figure pat00050
에 대해 확률
Figure pat00051
과 0이 될 확률
Figure pat00052
Figure pat00053
의 벡터 분포를 나타낼 수 있다.
Figure pat00054
에 대해 레벨 l의 암호문이 있다고 가정한다. 여기서, 레벨 l은 부트스트래핑 전에 가능한 최대 곱셈 수를 나타낼 수 있다. 설명의 편의를 위해, 베이스 p > 0과 모듈러스 q를 고정하고,
Figure pat00055
로 한다. 베이스 정수 p는 스케일링의 베이스
Figure pat00056
일 수 있다.
CKKS 기법은 다음과 같은 키 생성, 암호화, 복호화 및 대응하는 동형 연산으로 정의될 수 있다.
Figure pat00057
. 보안 파라미터(security parameter)
Figure pat00058
가 주어지면, 2의 거듭제곱인 M, 정수 h, 정수 P, 실수 값
Figure pat00059
Figure pat00060
이 되는 최대 암호문 모듈러스 Q가 결정될 수 있으며, 아래와 같이 샘플이 수행될 수 있다.
Figure pat00061
암호키 및 공개키는 각각
Figure pat00062
으로 결정되고, 이때
Figure pat00063
일 수 있다.
Figure pat00064
.
Figure pat00065
에 의해 샘플이 수행되고, 스위칭 키(switching key)는
Figure pat00066
으로 출력되고, 이때
Figure pat00067
일 수 있다. 평가 키(evaluation key)는
Figure pat00068
으로 설정될 수 있다.
Figure pat00069
.
Figure pat00070
에 의해 샘플이 수행되고,
Figure pat00071
이 출력될 수 있다.
Figure pat00072
.
Figure pat00073
이 출력될 수 있다.
Figure pat00074
.
Figure pat00075
에 대해,
Figure pat00076
이 출력될 수 있다.
Figure pat00077
.
Figure pat00078
에 대해,
Figure pat00079
을 가정하면,
Figure pat00080
이 출력될 수 있다.
Figure pat00081
.
Figure pat00082
에 대해,
Figure pat00083
이 출력될 수 있다.
Figure pat00084
.
Figure pat00085
에 대해,
Figure pat00086
이 출력될 수 있다.
상술된 연산 외에도, 복잡한 켤레 및 회전과 같은 다양한 연산을 제공하기 위해 키 스위칭 기법이 이용될 수 있다.
여기서 지원되는 기본 연산들은 CKKS의 full-RNS 변형들에도 유사하게 적용될 수 있다. 따라서, 본 명세서에서 설명하는 방안은 CKKS 기법과 다양한 변형들에 모두 적용될 수 있다.
CKKS 기법에서의 부트스트래핑
부트스트래핑은 ModRaise(Modulus Raising), CoeffToSlot(Putting Polynomial Coefficients in Plaintext Slots), EvalMod(Evaluation of the Approximated Modulus Reduction) 및 SlotToCoeff(Switching Back to the Coefficient Representation)의 네 단계를 포함할 수 있다.
ModRaise는 암호문의 모듈러스를 더 큰 값으로 변경하는 과정일 수 있다. ct
Figure pat00087
를 만족하는 암호문이라고 가정한다. t(X) = <ct, sk>(mod X N +1)은 바운드
Figure pat00088
Figure pat00089
에 대한 t(X) = qI(X) + m(X) 형태이고, 여기서 K
Figure pat00090
에 의해 바운드될 수 있다. 다음 과정은 t(X) 계수(coefficient)의 나머지, 다시 말해, t를 q로 나눈 나머지 [t] q 를 동형으로 계산하는 것일 수 있다. 모듈러스 리덕션은 산술 연산이 아니기 때문에 이를 근사하는 다항식을 찾는 것이 중요하다. 메시지의 크기가 제어될 수 있으므로, 작은
Figure pat00091
에 대해
Figure pat00092
를 보장할 수 있다.
CoeffToSlot과 관련하여, 근사 동형 연산은 평문 슬롯(plaintext slot)에서 수행될 수 있다. 따라서 t(X)를 다루기 위해서는, 평문 슬롯에 다항식 계수를 넣어야 할 수 있다. CoeffToSlot 단계에서,
Figure pat00093
는 행렬 곱셈, 단일 근(roots of unity)의 관계를 사용한 FFT와 유사한 연산, 또는 이들의 하이브리드 방법을 이용하여 동형적으로 수행될 수 있다. 그리고,
Figure pat00094
Figure pat00095
(또는, 결합 형태
Figure pat00096
)를 암호화하는 두 개의 암호문이 획득될 수 있다.
EvalMod 과정에서, 각 슬롯의 엘리먼트들은 단일 명령 다중 데이터(single instruction multiple data)의 관점에서 고려될 수 있다. 다시 말해, t = qI + m은 슬롯 내 엘리먼트를 나타낼 수 있다. EvalMod 단계에서는 [t] q 에 대한 근사 평가가 수행될 수 있다.
SlotToCoeff는 CoeffToSlot의 역 연산일 수 있다.
모듈러스 리덕션에 대응하는 근사 다항식
앞서 설명한 것처럼, CKKS 방식의 부트스트래핑에서 모듈러스 리덕션의 동형 평가가 중요하다.
도 2에 도시된 그래프처럼, 모듈러스 리덕션 함수를 1/q로 스케일링하여, [t] q
Figure pat00097
로 정의할 수 있다. 이때,
Figure pat00098
이고, k는
Figure pat00099
인 정수일 수 있다. 또한,
Figure pat00100
은 메시지 다항식의 최대 계수와 암호문 모듈러스 간 비율, 다시 말해,
Figure pat00101
을 나타낼 수 있다. [t] q 의 도메인은
Figure pat00102
로 주어질 수 있다. 다시 말해,
Figure pat00103
일 수 있다.
L2-norm 최적화를 이용한 근사 다항식
이하, sine 함수 또는 cosine 함수와 같은 중간 근사를 이용하지 않고 [t] q 의 근사 다항식 p o (t)를 직접 찾는 방법을 설명한다. 제안된 방법은 최소 제곱 추정(least-squares estimation) 또는 L2-norm 최적화를 이용할 수 있다. 목표는
Figure pat00104
를 최소화시키는 계수 c = (c 0 , c 1 , ..., c n ) 집합을 찾는 것일 수 있다. 여기서, n 차 다항식은
Figure pat00105
로 정의될 수 있다. 이러한 다항식을 미니맥스 다항식이라고 지칭할 수 있다. p(t)는 cT = (1, t 1 , ..., t n )의 내적과 동일하다.
여기서, t i '는 각 I k 에서
Figure pat00106
내 구간에서 균일하게 샘플링된 것으로, 예를 들어,
Figure pat00107
일 수 있다. I k 에는
Figure pat00108
샘플들이 존재하며, 따라서 총 샘플 개수는
Figure pat00109
일 수 있다. t i N tot 샘플들을 이용하여, t i 차수의 벡터, 다시 말해,
Figure pat00110
에 대한 T i = (1, t i , t 2 i , ..., t n i )가 결정될 수 있다.
다시 말해, 도 2에 도시된 모듈러스 리덕션 함수의 조각 연속(piecewise continuous) 구간들
Figure pat00111
각각에서
Figure pat00112
샘플들이 추출될 수 있다. 이후에서 설명하겠으나, 모듈러스 리덕션 함수에서 조각 연속 구간들
Figure pat00113
각각은 기준점(예컨대, -2, -1, 0, 1, 2 등)을 중심으로 대칭 형태를 가지며, 이러한 특성을 이용하면 조각 연속 구간들
Figure pat00114
각각에서 기준점에 의해 나누어진 일부분(예컨대, 0보다 큰 모듈러스 리덕션 함수 값을 가지는 일부분 또는 0보다 작은 모듈러스 리덕션 함수 값을 가지는 일부분)에서 추출된 샘플들만을 이용하여 근사 다항식을 결정할 수도 있다.
최소화할 목적 함수(object function)는 다음과 같이 주어진다.
Figure pat00115
여기서, T
Figure pat00116
N tot Х (n + 1) 행렬이고, y y [i] = [t i ] q 인 벡터일 수 있다. L-infinity norm 대신, 앞선 목적 함수가 L2-norm을 이용한 손실 함수로 대체될 수 있다. 그러면, L2-norm 최소화를 위한 최적의 솔루션이 효율적으로 계산될 수 있다. L c 가 계수 c를 가지는 L2-norm을 나타낼 수 있다. 그리고, 다음을 최소화하는 c를 찾을 수 있다.
Figure pat00117
불행히도, 다항식의 차수 n가 높음에 따라, T의 엔트리들이 상당히 크거나 0에 가까운 작은 값을 가질 수 있다.
따라서, 파워 기저(power basis) 대신 다항식의 기저로 체비셰프 다항식이 사용될 수 있다. 다시 말해, N tot Х (n + 1) 행렬 T를 엔트리들
Figure pat00118
으로 재정의할 수 있다.
Figure pat00119
이므로,
Figure pat00120
일 수 있다. 따라서, T의 엔트리들은 0 주변의 작은 값이나 상당히 큰 값보다는 [-1,1]에 잘 분포되어 있을 수 있다.
그리고, 최적 계수 벡터 c *는 다음과 같을 수 있다.
Figure pat00121
손실이 볼록 함수(convex function)이므로, 최적 솔루션(optimum solution) c는 기울기 0에 있을 수 있다. 손실 함수 L c 의 기울기는 다음과 같을 수 있다.
Figure pat00122
기울기를 0으로 설정하면, 다음과 같이 최적 계수가 생성될 수 있다.
Figure pat00123
요약하면, 모듈러스 리덕션 함수는 다음과 같이 근사될 수 있다.
Figure pat00124
1) 샘플의 최대 오차와 근사 오차
근사 오차는 샘플링된 포인트들의 최대 오차와
Figure pat00125
의 곱에 의해 제한될 수 있다.
Figure pat00126
의 경우, 근사 오차가 다음의 절대 값으로 정의될 수 있다.
Figure pat00127
E(t)는 도메인
Figure pat00128
에 대한 다항식일 수 있다.
Figure pat00129
으로 표현될 수 있다. 불연속 포인트들(discrete points) t i 's에 대한
Figure pat00130
이 최적화될 수 있다.
작은 구간
Figure pat00131
t 에 대한
Figure pat00132
를 고려해 볼 수 있다. 그러면,
Figure pat00133
이 결정되고,
Figure pat00134
이 다음과 같이 제한될 수 있다.
Figure pat00135
여기서,
Figure pat00136
에 대해
Figure pat00137
이 성립될 수 있다.
Figure pat00138
이므로, 선형 근사
Figure pat00139
가 적용될 수 있다. 더욱이,
Figure pat00140
에 대해
Figure pat00141
이 성립할 수 있다. 그렇지 않으면, 적어도
Figure pat00142
는 항상 만족할 수 있다.
따라서 아래의 수학식이 도출될 수 있다.
Figure pat00143
요약하면, 파인 샘플링(fine sampling)을 사용하면, 샘플링된 포인트의 최대 오차가 근사 오차의 글로벌 최대(global maximum)에 가까울 수 있다. 또한, 목적 함수의 도메인은 CKKS 기법에서 오류가 있는 실수이므로 샘플링된 값을 처리하는 것이 합리적일 수 있다.
2) L-infinity Norm 대신 L2-norm
다음과 같이, L2-norm으로 L-infinity norm을 제한할 수 있다.
Figure pat00144
따라서, L2-norm을 최소화하면, L-infinity norm이 감소할 수 있다. 엄격한 제한이 아니기 때문에, 더 높은 norm을 이용하여 최적화 할 여지가 있을 수 있으나, L2-norm의 솔루션이 명확하고 쉽게 계산될 수 있다. 모듈러스 리덕션 함수의 미니맥스 다항식을 찾는 것이 어려울 수 있는 반면, L2-norm 최적화 문제를 통해 반복없이 상당히 효율적인 방식으로 미니맥스 다항식의 최적에 가까운 솔루션을 찾을 수 있다.
3) c 를 찾는 시간 복잡도(Time Complexity)
N tot > n을 고려하면, 행렬 반전
Figure pat00145
이 지배적 계산(dominant computation)일 수 있다. 따라서, Coppersmith-Winograd algorithm을 이용할 때, 시간 복잡도는
Figure pat00146
일 수 있다. 이것은 c가 미리 계산되어 추후 설명할 baby-step giant-step algorithm 또는 Paterson-Stockmeyer algorithm에 대한 계수로 저장되기 때문에 허용될 수 있다.
근사 다항식의 효율적인 동형 평가
근사 다항식은 체비셰프 다항식 기저로 최적화될 수 있다. 따라서, 제안된 다항식의 효율적인 동형 평가를 위해 baby-step giant-step algorithm과 modified Paterson-Stockmeyer algorithm이 적용될 수 있다. baby-step giant-step algorithm을 이용하면, m 깊이를 소모하면서, 최대 2 l + 2 m - l + m - l - 3 비스칼라(nonscalar) 곱셈으로 p o (t)를 동형적으로 평가할 수 있다. 여기서 2 m 는 n 차보다 클 수 있다.
baby-step giant-step algorithm을 통해 체비셰프 다항식이 평가되면,
Figure pat00147
Figure pat00148
가 이용되고, 2의 곱셈이 덧셈으로 대체될 수 있다. 따라서, 하나의 비스 칼라 곱셈과 두 개의 덧셈이 필요할 수 있다.
baby-step giant-step algorithm의 baby-step에서는, 2 l -1차 다항식이 평가되고, 최대 2 m /2 l 의 다항식이 존재할 수 있다. 그러나, 2 m > n+1이면, 계수가 모두 0 인 다항식이 존재할 수 있다. 이를 무시하면, baby-step에서 차수가 최대 2 l -1인
Figure pat00149
다항식이 존재할 수 있다. 다시 말해, 2 m n+1가 상이하기 때문에, baby-step giant-step algorithm에는
Figure pat00150
에 해당하는
Figure pat00151
다항식이 존재할 수 있다. 따라서, 이러한 0 다항식이 무시될 수 있으며, 재귀 구조(recursive structure)에서는 giant-step에서 정확히
Figure pat00152
비스칼라 곱셈이 무시될 수 있다. 따라서,
Figure pat00153
을 사용하면,
Figure pat00154
을 획득할 수 있으며,
Figure pat00155
을 유도할 수 있다.
여기서,
Figure pat00156
은 giant-step에서 비스칼라 곱셈의 개수이고, k < 2 l 에 대해 N(k) = 0일 수 있다. 따라서, 비스칼라 곱셈의 개수는
Figure pat00157
일 수 있다.
스칼라 곱셈의 개수는
Figure pat00158
이고, 덧셈의 개수는 n + 2(2 l + m - l - 2)일 수 있다. m
Figure pat00159
을 만족하는 가장 작은 정수일 때, 비스칼라 곱셈의 깊이와 개수가 최소화될 수 있다.
홀수 함수 특성
근사 다항식의 차수가 2n - 1과 2n일 때, 최대 근사 오차가 서로 유사할 수 있으며, 이는 근사 목표인 모듈러스 리덕션 함수 [t] q 가 홀수 함수(odd function)이기 때문일 수 있다. 다음 명제(proposition)는 홀수 함수에 대한 미니맥스 다항식이 홀수 함수임을 보여줄 수 있다.
명제: 만약 f(t)가 홀수 함수라면, n 차 다항식 중 최상의 근사도 가장 근사도 홀수.
P m 이 최대 m차수의 다항식 함수의 부분 공간(subspace)을 나타내고, f m (t)가 supreme norm에서 f(t)에 가장 가까운 P m 의 고유 엘리먼트를 나타낼 수 있다.
Figure pat00160
이 정의될 수 있다. 그러면, f(t)의 도메인에서 모든 u에 대해 다음의 수학식이 성립할 수 있다.
Figure pat00161
만약
Figure pat00162
이면, f m (t)가 f(t)에 가장 가깝다는 것과 모순될 수 있다. 따라서
Figure pat00163
이 홀수 함수일 수 있다.
제안된 방법의 다항식 계수에서, 짝수 항의 계수는 p o (t)에서 0에 가까운 상당히 작은 값을 가질 수 있다. 이는 모듈러스 리덕션 함수가 홀수 함수이기 때문에, 제안된 방법이 미니맥스 다항식 근처에서 다항식을 찾는다는 사실에 대한 증거일 수 있다. 짝수 항은 근사 다항식을 찾는 데 핸디캡이 될 수 있다. 따라서 홀수 차수 체비셰프 다항식만을 이용하여 근사하면 보다 정확한 근사 다항식이 생성될 수 있다.
홀수 함수의 특성을 활용할 수 있다는 것이 제안된 방법의 장점 중 하나일 수 있다. 홀수 함수가 원점에 대해 대칭이라는 사실을 이용하여, 값이 0보다 큰 샘플(또는, 값이 0보다 작은 샘플)로만 L2-norm 최소화를 풀 수 있다. 따라서, 행렬 T의 행과 열의 개수가 각각 절반으로 감소할 수 있다. 결과적으로 행렬 반전(matrix inversion)의 시간 복잡도는 약 1/8로 감소될 수 있다. 또한, 짝수 차수 항에 대한 일부 연산이 동형 평가 중에 무시 될 수 있다.
부트스트래핑에 의한 레벨 감소
제안된 방법을 사용하면, 부트스트래핑 중 레벨 손실을 줄이는데 보다 적합한 파라미터를 선택할 수 있다. 앞선 설명처럼, 제안된 방법은 이전의 최상의 방법보다 상대적으로 큰 경우 더 정확한 근사 다항식을 찾을 수 있다. 이하에서는 이러한 특성에 기반하여 파라미터가 어떻게 선택되는지를 설명한다.
노이즈 추정을 위해, 다음의 렘마들(lemmas)이 이용될 수 있다.
Figure pat00164
슬롯들에서 값의 정밀도를 유지하기 위해, CoeffToSlot 단계에서 충분히 큰 스케일링 인자(factor)
Figure pat00165
를 곱할 수 있다.
Figure pat00166
는 메시지
Figure pat00167
의 스케일링 인자와 상이할 수 있다. 앞선 렘마 3으로부터, 충분히 큰 P가 선택되었을 때 CoeffToSlot 단계의 총 오류는
Figure pat00168
일 수 있다.
EvalMod 단계에서, 대응하는 평문 슬롯의 각 컴포넌트들은
Figure pat00169
와 같은 작은 오류 e j 에 대한 t j + e j 를 포함할 수 있다. 근사 다항식 p o (t j )는 스케일링 인자
Figure pat00170
로 평가되므로, 근사 오류는 다음과 같을 수 있다.
Figure pat00171
EvalMod 단계의 오류를
Figure pat00172
으로 제한하려면, 다음이 보장되어야 할 수 있다.
Figure pat00173
EvalMod 단계의 오류가
Figure pat00174
으로 제한되면, SlotToCoeff 단계 이후의 오류가
Figure pat00175
으로 제한될 수 있다.
앞선 렘마 2에서, 부트스트래핑의 오류는 메시지
Figure pat00176
의 스케일링 인자에 독립적이며
Figure pat00177
에 제한될 수 있다. 따라서, 평문 정밀도는
Figure pat00178
에 비례하며, 여기서
Figure pat00179
Figure pat00180
을 결정할 수 있다. 앞서 설명한 방법에서 부트스트래핑의 레벨 손실은 대략
Figure pat00181
가 아닌
Figure pat00182
에 비례할 수 있다. 이것은 제안된 방법의 장점 중 하나이며, 기존 방법의 한계를 극복할 수 있으며, 더 정확한 계산이 필요할수록 더 많은 효과를 얻을 수 있다.
슬롯 수와 같은 다양한 인자들이 평문 정밀도에 영향을 줄 수 있다. 따라서, 평문 정밀도는 수치적 방법을 이용하여 얻어질 수 있으며, 파라미터를 결정하는 데 이용될 수 있다. 제안된 방법을 이용하면, 상대적으로 작은 q가 이용될 수 있으므로, 경우에 따라서는 부트스트래핑 후 더 많은 레벨이 남을 수 있다.
앞선 설명을 통해, 부트스트래핑을 위한 모듈러스 리덕션 함수의 근사 다항식이 결정될 수 있다. 모듈러스 리덕션을 위한 근사 다항식을 찾는 문제는 사인 함수와 같은 중간 함수 없이도 직접 찾을 수 있는 L2-norm 최소화 문제로 치환될 수 있다.
제안된 방법의 근사 오차는 사인 함수의 영향을 받지 않기 때문에 모듈러스 리덕션을 높은 정확도로 근사할 수 있다. 체비셰프 다항식을 기저로 사용하여 낮은 차수로도 더 낮은 근사 오차를 달성할 수 있다. 또한, 제안된 다항식은 baby-step giant-step algorithm과 Paterson-Stockmeyer algorithm을 활용할 수 있다. baby-step giant-step algorithm에 필요한 비스칼라 곱셈, 스칼라 곱셈 및 덧셈의 개수에 기반하여, 제안된 다항식이 동형 근사 모듈러스 리덕션을 위해 필요한 연산 수를 줄인다는 것을 알 수 있다.
제안된 방법은 특히 큰 스케일링 인자를 선택할 때 더 적은 오류로 부트스트래핑을 제공할 수 있다. 따라서, 파라미터 선택의 폭이 확장될 수 있다. 무엇보다 제안된 방법은 정확한 근사가 필요한 어플리케이션에 필수적일 수 있다. 반대로, 제안된 방법은 이러한 하한이 없기 때문에, 더 좋은 파라미터를 선택할 수 있다. 결과적으로, 부트스트래핑은 제안된 방법을 사용할 때 더 적은 레벨을 소비할 수 있다.
도 3은 일실시예에 따른 근사 다항식을 결정하는 과정을 설명하기 위한 도면이다.
단계(301)에서, 샘플 개수 N, 근사 다항식의 차수 n, 목표 오차 e target 이 결정될 수 있다. 예를 들어, 샘플 개수 N은 16으로 결정될 수 있다. 다만, 실시예를 이로 제한하는 것은 아니며, 초기 샘플 개수는 상황에 따라 다양하게 설정될 수 있다.
단계(302)에서, 각 구간 I k 마다 N개의 샘플들 t1, ..., tN(2K-1)이 추출될 수 있다. 이때,
Figure pat00183
일 수 있다.
단계(303)에서, 체비셰프 다항식을 기저로 하는 근사 다항식 T와 모듈러스 리덕션에 대응하는 함수 값 Y가 결정될 수 있다. 여기서,
Figure pat00184
,
Figure pat00185
이고,
Figure pat00186
는 제1 종의 i차수 체비셰프 다항식을 나타낼 수 있다.
단계(304)에서, 각 샘플에 대하여 모듈러스 리덕션 함수 값 [t i ] q 과 n차 다항식 값
Figure pat00187
의 차들의 L2-norm을 최소화하는 최적 계수 벡터 c*가 결정될 수 있다.
단계(305)에서, 결정된 최적 계수 벡터 c*를 이용하여 근사 다항식 p n (t)이 결정될 수 있다.
단계(306)에서, 결정된 근사 다항식 p n (t)과 모듈러스 리덕션 함수 [t] q 간 오차 error가 계산될 수 있다.
단계(307)에서, 계산된 오차 error가 목표 오차 e target 보다 작은지 여부가 판단될 수 있다. 만약 계산된 오차 error가 목표 오차 e target 보다 크거나 같다면, 단계(308)가 이어서 수행될 수 있다.
단계(308)에서, 계산된 오차 error가 이전 스텝에서 계산된 오차 간 유사도가 미리 정해진 임계 유사도보다 작은지 여부가 판단될 수 있다. 만약 유사도가 미리 정해진 임계 유사도보다 작은 경우, 다시 말해 이전 스텝에서 계산된 오차보다 현재 스텝에서 계산된 오차 error가 감소하여 서로 유사하지 않은 경우에는 단계(309)가 이어서 수행되어 샘플 개수 N이 증가될 수 있다. 반대로 유사도가 미리 정해진 임계 유사도보다 크거나 같은 경우, 다시 말해 현재 스텝에서 계산된 오차 error가 이전 스텝에서 계산된 오차와 유사한 경우에는 단계(310)가 이어서 수행되어 근사 다항식 차수 n이 증가될 수 있다. 이처럼, 샘플 개수가 적으면 근사 다항식이 모듈러스 리덕션 함수를 잘 근사하지 못할 수 있어 샘플 개수 N를 증가시킬 필요가 있다. 샘플 개수를 증가시켜도 오차가 크게 개선되지 않으면 근사 다항식의 차수가 부족한 것이므로 차수 n을 증가시킬 수 있다. 앞선 설명처럼 근사 다항식은 홀수 차수 항들로 구성될 수 있으므로, 차수 n가 2만큼 증가될 수 있다.
단계(307)에서 계산된 오차 error가 목표 오차 e target 보다 작은 것으로 판단되면, 단계(311)가 이어서 수행되어, 근사 다항식 p n (t)가 최종 결정되어 반환될 수 있다.
위 방식으로 찾은 계수로 표현되는 근사 다항식은 베이비-스텝 자이언트-스텝 알고리즘이나, 피터슨-스톡메이어 알고리즘 등 연산의 횟수와 깊이(depth)를 줄이기 위한 연산을 포함한 다양한 방법을 통해 완전 동형 암호의 부트스트래핑에 활용될 수 있다.
실시예에 따라서는, 연산의 용이성을 위해서 일부 차수의 체비세프 다항식만이 근사 다항식에 사용할 수도 있다. 또한, 체비세프 다항식 이외에 르장드르 다항식이나, x의 power들이 기저로 사용될 수 있다.
도 4는 일실시예에 따라 결정된 근사 다항식을 이용한 부트스크래핑을 설명하기 위한 도면이다.
단계(410)에서, 부트스트래핑 과정 중 모듈러스 연산이 필요한 암호문이 식별될 수 있다. 단계(420)에서 도 3에서 결정된 모듈러스 리덕션 함수에 대한 근사 다항식 p(t)가 동형적으로 평가되어, 단계(430)에서 모듈러스 연산의 근사 결과물이 획득될 수 있다.
도 5는 일실시예에 따른 암호문 처리 방법을 나타낸 도면이다.
도 5를 참조하면, 일실시예에 따른 암호문 처리 장치에 구비된 프로세서에서 수행되는 암호문 처리 방법이 도시된다.
단계(510)에서, 암호문 처리 장치는 암호문의 부트스트래핑을 위한 모듈러스 리덕션에 대응하는 근사 다항식을 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정한다. 암호문 처리 장치는 복수의 샘플들과 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작도록 근사 다항식의 계수를 결정할 수 있다.
암호문 처리 장치는 복수의 샘플들과 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작은지 여부를 판단하고, 차이가 미리 정해진 임계치보다 같거나 큰 경우, 차이와 이전 스텝에서 결정된 차이 간 비교에 기초하여 복수의 샘플들의 개수 또는 근사 다항식의 차수를 증가시킬 수 있다. 예를 들어, 암호문 처리 장치는 차이와 이전 스텝에서 결정된 차이 간 유사도가 미리 정해진 임계 유사도보다 작으면 복수의 샘플들의 개수를 증가시키고, 유사도가 미리 정해진 임계 유사도보다 같거나 크면 근사 다항식의 차수를 증가시킬 수 있다. 복수의 샘플들과 근사 다항식의 값들 간 차이는 복수의 샘플들과 근사 다항식의 값들 간 L2-norm에 기초하여 결정될 수 있다.
암호문 처리 장치는 홀수 차수항들로 구성된 근사 다항식을 결정할 수 있다. 암호문 처리 장치는 체비셰프(Chebyshev) 다항식을 기저로 한 근사 다항식을 결정할 수 있다.
단계(520)에서, 암호문 처리 장치는 근사 다항식에 기반하여, 암호문에 부트스트래핑을 수행한다. 암호문 처리 장치는 근사 다항식을 이용하여 모듈러스 리덕션을 동형적으로 평가함으로써 암호문에 부트스트래핑을 수행할 수 있다.
도 5에 도시된 각 단계들에는 도 1 내지 도 4를 통하여 전술한 사항들이 그대로 적용되므로, 보다 상세한 설명은 생략한다.
도 6은 일실시예에 따른 암호문 처리 장치를 나타낸 도면이다.
도 6을 참조하면, 일실시예에 따른 암호문 처리 장치(600)는 메모리(610) 및 프로세서(620)를 포함한다. 메모리(610) 및 프로세서(620)는 버스(bus)(630) 등을 통하여 서로 통신할 수 있다.
메모리(610)는 컴퓨터에서 읽을 수 있는 명령어를 포함할 수 있다. 프로세서(620)는 메모리(610)에 저장된 명령어가 프로세서(620)에서 실행됨에 따라 앞서 언급된 동작들을 수행할 수 있다. 메모리(610)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(620)는 명령어들, 혹은 프로그램들을 실행하거나, 암호문 처리 장치(600)를 제어하는 장치로서, 예를 들어, CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등을 포함할 수 있다. 프로세서(620)는 암호문의 부트스트래핑을 위한 모듈러스 리덕션에 대응하는 근사 다항식을 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정하고, 근사 다항식에 기반하여 암호문에 부트스트래핑을 수행한다.
암호문 처리 장치(600)는 완전 동형 암호 중 실수(real number) 또는 복소수(complex number)로 된 평문이 암호화된 암호문의 부트스트래핑 과정에 사용될 수 있다. 암호문 처리 장치(600)에서 결정되는 근사 다항식의 차수를 낮추는 경우 연산의 횟수가 줄어들기 때문에 암호문 처리 동작에 요구되는 리소스를 효과적으로 줄일 수 있다.
또한, 암호문 처리 장치(600)는 클라우드 컴퓨팅, 정보보호 머신러닝, 기타 동형암호 응용 분야 전체, 네트워크 보안, 시스템(단말)보안, 암호/인증, 보안관리, 콘텐츠/정보 유출 방지 보안, 인증서비스 등의 암호/보안 기술 분야 등에 적용될 수 있다.
그 밖에, 암호문 처리 장치(600)에 관해서는 상술된 동작을 처리할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(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 (20)

  1. 동형 암호 기반 암호문 처리 방법에 있어서,
    암호문(ciphertext)의 부트스트래핑을 위한 모듈러스 리덕션에 대응하는 근사 다항식을 상기 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정하는 단계; 및
    상기 근사 다항식에 기반하여, 상기 암호문에 부트스트래핑을 수행하는 단계
    를 포함하는
    암호문 처리 방법.
  2. 제1항에 있어서,
    상기 근사 다항식을 결정하는 단계는
    상기 복수의 샘플들과 상기 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작도록 상기 근사 다항식의 계수를 결정하는,
    암호문 처리 방법.
  3. 제2항에 있어서,
    상기 근사 다항식을 결정하는 단계는
    상기 복수의 샘플들과 상기 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작은지 여부를 판단하고,
    상기 차이가 미리 정해진 임계치보다 같거나 큰 경우, 상기 차이와 이전 스텝에서 결정된 차이 간 비교에 기초하여 상기 복수의 샘플들의 개수 또는 상기 근사 다항식의 차수를 증가시키는,
    암호문 처리 방법.
  4. 제3항에 있어서,
    상기 근사 다항식을 결정하는 단계는
    상기 차이와 이전 스텝에서 결정된 차이 간 유사도가 미리 정해진 임계 유사도보다 작으면 상기 복수의 샘플들의 개수를 증가시키고,
    상기 유사도가 미리 정해진 임계 유사도보다 같거나 크면 상기 근사 다항식의 차수를 증가시키는,
    암호문 처리 방법.
  5. 제2항에 있어서,
    상기 복수의 샘플들과 상기 근사 다항식의 값들 간 차이는 상기 복수의 샘플들과 상기 근사 다항식의 값들 간 L2-norm에 기초하여 결정되는,
    암호문 처리 방법.
  6. 제1항에 있어서,
    상기 근사 다항식을 결정하는 단계는
    홀수 차수항들로 구성된 상기 근사 다항식을 결정하는,
    암호문 처리 방법.
  7. 제1항에 있어서,
    상기 근사 다항식을 결정하는 단계는
    체비셰프(Chebyshev) 다항식을 기저로 한 상기 근사 다항식을 결정하는,
    암호문 처리 방법.
  8. 제1항에 있어서,
    상기 복수의 샘플들은
    상기 모듈러스 리덕션에 대응하는 함수 중 기준점을 중심으로 대칭 형태를 가진 조각 연속 구간에서 추출되는,
    암호문 처리 방법.
  9. 제8항에 있어서,
    상기 복수의 샘플들은
    상기 조각 연속 구간에서 상기 기준점에 의해 나누어진 일부분에서 추출되는,
    암호문 처리 방법.
  10. 제1항에 있어서,
    상기 암호문에 부트스트래핑을 수행하는 단계는
    상기 근사 다항식을 이용하여 상기 모듈러스 리덕션을 동형적으로 평가함으로써 상기 암호문에 상기 부트스트래핑을 수행하는,
    암호문 처리 방법.
  11. 제1항 내지 제10항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 저장 매체.
  12. 동형 암호 기반 암호문 처리 장치에 있어서,
    하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는
    암호문의 부트스트래핑을 위한 모듈러스 리덕션에 대응하는 근사 다항식을 상기 모듈러스 리덕션에서 추출된 복수의 샘플들에 기반하여 결정하고,
    상기 근사 다항식에 기반하여, 상기 암호문에 부트스트래핑을 수행하는
    암호문 처리 장치.
  13. 제12항에 있어서,
    상기 하나 이상의 프로세서는
    상기 복수의 샘플들과 상기 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작도록 상기 근사 다항식의 계수를 결정하는,
    암호문 처리 장치.
  14. 제13항에 있어서,
    상기 하나 이상의 프로세서는
    상기 복수의 샘플들과 상기 근사 다항식의 값들 간의 차이가 미리 정해진 임계치보다 작은지 여부를 판단하고,
    상기 차이가 미리 정해진 임계치보다 같거나 큰 경우, 상기 차이와 이전 스텝에서 결정된 차이 간 비교에 기초하여 상기 복수의 샘플들의 개수 또는 상기 근사 다항식의 차수를 증가시키는,
    암호문 처리 장치.
  15. 제14항에 있어서,
    상기 하나 이상의 프로세서는
    상기 차이와 이전 스텝에서 결정된 차이 간 유사도가 미리 정해진 임계 유사도보다 작으면 상기 복수의 샘플들의 개수를 증가시키고,
    상기 유사도가 미리 정해진 임계 유사도보다 같거나 크면 상기 근사 다항식의 차수를 증가시키는,
    암호문 처리 장치.
  16. 제13항에 있어서,
    상기 복수의 샘플들과 상기 근사 다항식의 값들 간 차이는 상기 복수의 샘플들과 상기 근사 다항식의 값들 간 L2-norm에 기초하여 결정되는,
    암호문 처리 장치.
  17. 제12항에 있어서,
    상기 하나 이상의 프로세서는
    홀수 차수항들로 구성된 상기 근사 다항식을 결정하는,
    암호문 처리 장치.
  18. 제12항에 있어서,
    상기 하나 이상의 프로세서는
    체비셰프 다항식을 기저로 한 상기 근사 다항식을 결정하는,
    암호문 처리 장치.
  19. 제12항에 있어서,
    상기 복수의 샘플들은
    상기 모듈러스 리덕션에 대응하는 함수 중 기준점을 중심으로 대칭 형태를 가진 조각 연속 구간에서 추출되는,
    암호문 처리 장치.
  20. 제19항에 있어서,
    상기 복수의 샘플들은
    상기 조각 연속 구간에서 상기 기준점에 의해 나누어진 일부분에서 추출되는,
    암호문 처리 장치.
KR1020200137640A 2020-04-16 2020-10-22 동형 암호 기반 암호문 처리 방법 및 장치 KR20210128313A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US17/172,643 US11546134B2 (en) 2020-04-16 2021-02-10 Method and apparatus for processing ciphertext based on homomorphic encryption
CN202110257766.8A CN113541916A (zh) 2020-04-16 2021-03-09 基于同态加密的密文处理方法和装置
EP21163199.9A EP3896895B1 (en) 2020-04-16 2021-03-17 Method and apparatus for processing ciphertext based on homomorphic encryption
JP2021067688A JP2021179603A (ja) 2020-04-16 2021-04-13 準同型暗号基盤の暗号文処理方法及び装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063010812P 2020-04-16 2020-04-16
US63/010,812 2020-04-16

Publications (1)

Publication Number Publication Date
KR20210128313A true KR20210128313A (ko) 2021-10-26

Family

ID=78268674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137640A KR20210128313A (ko) 2020-04-16 2020-10-22 동형 암호 기반 암호문 처리 방법 및 장치

Country Status (2)

Country Link
JP (1) JP2021179603A (ko)
KR (1) KR20210128313A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936350B (zh) * 2022-02-08 2024-02-27 西北工业大学 一种基于gpu快速数论转换的全同态加密门自举方法

Also Published As

Publication number Publication date
JP2021179603A (ja) 2021-11-18

Similar Documents

Publication Publication Date Title
Al Badawi et al. Implementation and performance evaluation of RNS variants of the BFV homomorphic encryption scheme
ES2598298T3 (es) Cálculos seguros gestionados, sobre datos cifrados
EP3296981A1 (en) Secret sharing method, secret sharing system, sharing device, and program
EP3896895B1 (en) Method and apparatus for processing ciphertext based on homomorphic encryption
Belaïd et al. Private multiplication over finite fields
US20150270964A1 (en) Encryption device, encryption method, information processing device, and encryption system
US11277256B2 (en) Ciphertext comparison method using homomorphic encryption and apparatus for performing the same
EP3573039B1 (en) Secure computing system, secure computing device, secure computing method, and program
EP3364398B1 (en) Secret random number synthesizing device, secret random number synthesizing method, and program
KR20200070090A (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
CN111611621A (zh) 基于区块链的分布式数据加密存储方法和电子设备
Kim et al. Comprehensive introduction to fully homomorphic encryption for dynamic feedback controller via LWE-based cryptosystem
JP2021177239A (ja) 同型暗号を用いた暗号化方法及び装置
CN117094008A (zh) 神经网络模型加密方法、解密方法、装置、设备及介质
KR20210128313A (ko) 동형 암호 기반 암호문 처리 방법 및 장치
JPWO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
US11700110B2 (en) Approximate algebraic operations for homomorphic encryption
JP7449911B2 (ja) 同型暗号文に対する非多項式演算を行う装置
CN115834018A (zh) 一种保护隐私的多方数据处理方法、系统和设备
Troncoso-Pastoriza et al. Secure genomic susceptibility testing based on lattice encryption
US9842086B2 (en) Calculation device, calculation method, and program
KR102451633B1 (ko) 동형암호를 위한 암호화 처리 장치 및 방법
KR20210136815A (ko) 동형 암호를 이용한 암호화 방법 및 장치
KR102418016B1 (ko) 래티스를 기반으로 하는 신원 기반 암호화 방법
KR102393941B1 (ko) 근사 암호화된 암호문에 대한 인코딩 또는 디코딩