KR20230087377A - 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법 - Google Patents

동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법 Download PDF

Info

Publication number
KR20230087377A
KR20230087377A KR1020220152341A KR20220152341A KR20230087377A KR 20230087377 A KR20230087377 A KR 20230087377A KR 1020220152341 A KR1020220152341 A KR 1020220152341A KR 20220152341 A KR20220152341 A KR 20220152341A KR 20230087377 A KR20230087377 A KR 20230087377A
Authority
KR
South Korea
Prior art keywords
homomorphic
operator
scheme
isomorphic
encryption
Prior art date
Application number
KR1020220152341A
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 US18/077,621 priority Critical patent/US20230188320A1/en
Publication of KR20230087377A publication Critical patent/KR20230087377A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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
    • H04L2209/122Hardware reduction or efficient architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)

Abstract

동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법이 개시된다. 이 방법은 통신 인터페이스에서, 암호문 생성 장치로부터 동형 암호문과 암호 스킴 정보를 수신하는 단계; 동형 곱셈 연산기에서, 상기 동형 암호문에 대해 동형 곱셈 연산을 수행하는 단계; 메인 컨트롤러에서, 상기 암호 스킴 정보를 분석하여 재선형화 연산기에 의해 수행되는 재선형화 연산 및 키 변환 연산기에 의해 수행되는 키 변환 연산 중에서 어느 하나의 연산을 결정하는 단계; 상기 재선형화 연산기 또는 상기 키 변환 연산기에서, 상기 결정된 연산을 수행하는 단계; 및 모듈러스 변환 연산기에서, 상기 결정된 연산의 연산 결과에 대해 모듈러스 변환 연산을 수행하는 단계를 포함한다.

Description

동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법{COMPUTING APPARATUS AND METHOD FOR INTEGRATING DIFFERENT HOMOMORPHIC OPERATIONS IN HOMOMORPHIC ENCRYPTION}
본 발명은 동형 암호 기술(homomorphic encryption technology)에 관한 것으로, 동형 암호 스킴들(homomorphic encryption schemes)에서 정의한 서로 다른 동형 연산들(homomorphic operations, homomorphic arithmetic operations 또는 homomorphic computation)을 통합하기 위한 기술에 관한 것이다.
동형 암호 기술(homomorphic encryption technology)은 원본 데이터(예, 메시지 또는 평문(plaintext))를 암호화한 상태에서 연산(computation)을 수행하는 암호화 기법 중에 하나로서, 원본 데이터의 연산 결과(computation result)와 암호화된 데이터(예, 암호문(ciphertext))의 연산 결과(computation result)가 동일한 특징을 갖는다. 이러한 특징으로 인해, 동형 암호 기술에서는 암호화한 데이터의 복호화(decryption) 없이, 상기 데이터를 암호화한 상태에서 연산을 수행할 수 있다.
이러한 동형 암호 기술은 프라이버시 보호가 필요한 민감한 데이터를 암호화된 상태로 외부 매체에 저장하거나 그 외부 매체(예, 상업용 클라우드 서버)에게 암호화된 상태로 데이터의 결합 및 연산을 요청하기 위한 목적으로 유용하게 활용될 수 있다.
동형 암호 기술에서 정의하는 암호문(ciphertext)은 수학적으로 n차수의 고차 다항식(higher-order polynomials of order n)으로 표현될 수 있다. 즉, 동형 암호 기술에서 암호문의 생성은 평문(plaintext)을 n차수의 고차 다항식으로 변환함을 의미한다. 따라서, 동형 암호 기술은 고차 다항식에 대한 동형 연산(homomorphic operation)을 수행하기 때문에, 높은 연산량과 이에 따른 연산 처리 속도의 저하를 동반한다. 이것은 동형 암호 기술의 실용화를 어렵게 하는 요소들이다.
또한 동형 암호 기술에는 공지된 다양한 동형 암호 스킴들(schemes)이 있다. 공지된 암호 스킴들은 n차수의 고차 다항식으로 표현되는 암호문을 사용하는 점에서 유사하지만, 서로 다른 동형 연산(homomorphic operation)을 정의한다. 이것은 서로 다른 동형 암호 스킴으로 설계된 동형 암호 응용 시스템들 간의 호환성이 부족함을 의미한다.
상술한 문제점을 해결하기 위한 본 발명의 목적은 동형 암호의 막대한 연산량으로 인한 긴 연산 처리시간을 줄이는 동시에 서로 다른 동형 암호 스킴들에서 정의하는 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법을 제공하는 데 있다.
상술한 목적을 달성하기 위한 본 발명의 일면에 따른 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법은 통신 인터페이스에서, 암호문 생성 장치로부터 동형 암호문과 암호 스킴 정보를 수신하는 단계; 동형 곱셈 연산기에서, 상기 동형 암호문에 대해 동형 곱셈 연산을 수행하는 단계; 메인 컨트롤러에서, 상기 암호 스킴 정보를 분석하여 재선형화 연산기에 의해 수행되는 재선형화 연산 및 키 변환 연산기에 의해 수행되는 키 변환 연산 중에서 어느 하나의 연산을 결정하는 단계; 상기 재선형화 연산기 또는 상기 키 변환 연산기에서, 상기 결정된 연산을 수행하는 단계; 및 모듈러스 변환 연산기에서, 상기 결정된 연산의 연산 결과에 대해 모듈러스 변환 연산을 수행하는 단계를 포함한다.
본 발명의 다른 일면에 따른 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치는, 암호문 생성 장치로부터 동형 암호문과 암호 스킴 정보를 수신하는 통신 인터페이스; 상기 동형 암호문에 대해 동형 곱셈 연산을 수행하는 제1 연산기; 상기 동형 곱셈 연산의 연산 결과에 대해 재선형화 연산을 수행하는 제2 연산기; 상기 동형 곱셈 연산의 연산 결과에 대해 키 변환 스위칭 연산을 수행하는 제3 연산기; 및 상기 재선형화 연산의 연산 결과 또는 상기 키 변환 스위칭 연산의 연산 결과에 대해 모듈러스 변환 연산을 수행하는 제4 연산기를 포함하고, 상기 암호 스킴 정보를 기반으로 선택 신호를 생성하는 메인 컨트롤러; 및 상기 선택 신호에 따라 상기 동형 곱셈 연산의 연산 결과를 상기 제2 연산기 또는 상기 제3 연산기로 입력하는 선택기를 더 포함한다.
실시 예에서, 상기 제1 연산기, 상기 제2 연산기, 상기 제3 연산기, 상기 제4 연산기 및 상기 선택기는 하나의 전용 칩에 통합된다.
실시 예에서, 상기 메인 컨트롤러는, 상기 암호 스킴 정보를 분석하여 상기 동형 암호문의 암호 스킴을 판단하고, 상기 판단된 암호 스킴에 대응하는 상기 선택 신호를 생성한다.
실시 예에서, 상기 메인 컨트롤러는, 상기 암호 스킴이 BFV 스킴 또는 CKKS 스킴인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제2 연산기에 입력하기 위한 상기 선택 신호를 생성하고, 상기 암호 스킴이 BGV 스킴인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제3 연산기에 입력하기 위한 상기 선택 신호를 생성한다.
실시 예에서, 상기 암호 스킴 정보는, 상기 동형 암호문을 구성하는 비트열에서 에러값을 나타내는 비트 위치를 식별하기 위한 정보이다.
실시 예에서, 상기 메인 컨트롤러는, 상기 에러값을 나타내는 비트 위치가 하위 비트인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제2 연산기로 입력하기 위한 상기 선택 신호를 생성하고, 상기 에러값을 나타내는 비트 위치가 상위 비트인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제3 연산기로 입력하기 위한 상기 선택 신호를 생성한다.
실시 예에서, 상기 선택기는 디멀티플렉서인 컴퓨팅 장치.
실시 예에서, 상기 제1 연산기는, 상기 동형 곱셈 연산을 고속 병렬 처리하기 위해 NTT(Number Theoretic Transform) 기법과 RNS(Residue Number System) 기법에 따라 구현된 로직 회로를 포함한다.
본 발명에 따르면, 동형 덧셈 연산기, 동형 곱셈 연산기, 재선형화 연산기, 키 변환 연산기, 모듈러스 변환 연산기 및 선택기가 하나의 전용 칩에 통합되고, 선택기의 선택에 따라 재선형화 연산기의 재선형화 연산과 키 변환 연산기의 키 변환 연산이 선택적으로 수행됨으로써, 동형 암호 스킴별로 다르게 정의하고 있는 동형 연산 프로세스들을 통합할 수 있고, 서로 다른 동형 암호 스킴으로 설계된 동형 암호 응용 시스템들을 하나의 시스템으로 통합할 수 있다.
도 1은 본 발명의 실시 예에 따른 전체 시스템의 구성도이다.
도 2는 도 1에 도시된 동형 암호문 생성 장치의 개략적인 구성도이다.
도 3은 도 1에 도시된 컴퓨팅 장치의 개략적인 구성도이다.
도 4는 본 발명의 실시 예에 따른 컴퓨팅 장치에서 서로 다른 동형 연산들을 통합하기 위한 방법을 설명하기 위한 순서도이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명은 동형 암호 스킴들에서 다르게 정의하고 있는 동형 연산들을 통합하기 위한 방법 및 장치를 제공한다. 먼저, 본 발명의 이해를 돕기 위해, 몇 가지 기술적 용어들이 아래에서 간략히 소개된다.
동형 암호 스킴 (homomorphic encryption scheme)
동형 암호 기술(homomorphic encryption technology)에는 다양한 암호 스킴들(Schemes)이 있다. 본 명세서에서는 알려진 암호 스킴들 중에서 BGV 스킴, BFV 스킴, CKKS 스킴이 소개된다. 여기서, BGV는 Brakerski, Gentry, and Vaikuntanathan의 약어이고, BFV는 Brakerski, Fan, and Vercauteren의 약어이다. 그리고, CKKS는 Cheon, Kim, Kim and Song의 약어이다.
이러한 암호 스킴들은 R-LWE(Ring-Learning with Error) 정의에 의해 메시지(또는 데이터)를 동형 암호문으로 암호화한다. 암호화 과정은 메시지를 n차 다항식 쌍으로 매핑하여 메시지 다항식을 생성하는 과정, 상기 메시지 다항식에 에러(Error) 다항식이라 불리는 에러 값을 더하는 과정 및 암호키 다항식을 상기 메시지 다항식에 포함시키는 등의 암호문 생성 과정을 통해서 상기 동형 암호문을 생성한다.
BGV 스킴, BFV 스킴 및 CKKS 스킴은 n차수의 고차 다항식으로 표현되는 암호문을 사용하는 점에서 유사하지만, 서로 다른 동형 연산(homomorphic operation)을 정의한다.
각 암호 스킴은 동형 암호문을 구성하는 비트열에서 상기 동형 암호문을 생성하는 과정에서 추가되는 에러값을 나타내는 비트들의 비트 위치(bit position)가 다르다. 이러한 특성으로 인해, BGV 스킴, BFV 스킴 및 CKKS 스킴은 서로 다른 동형 연산을 정의한다.
본 발명은 BGV, BFV 및 CKKS 스킴 등과 같은 암호 스킴들에서 정의하는 알고리즘의 변형 및 개량에 초점이 있는 것이 아니라 각 암호 스킴에서 다르게 정의하는 동형 연산을 통합하기 위한 방법과 장치에 초점이 있다. 따라서, 각 암호 스킴에 대한 상세한 설명은 학술 문헌 등을 공개된 설명으로 대신한다.
동형 연산 (homomorphic operation 또는 homomorphic arithmetic operation)
동형 암호 기술은 동형 연산(homomorphic operation)이라는 수학적 특성을 활용하여 암호화된 데이터(동형 암호문)에 대해 결합 및 연산 처리를 가능하게 한다.
동형 연산은 암호화 연산(encryption operation), 복호화 연산(Decryption operation), 동형 곱셈 연산(homomorphic multiplication operation), 모듈러 연산(modular operation), 재선형화 연산(relinearization operation), 키 변환 연산(key switching operation) 및 모듈러스 변환 연산(modulus switching operation) 등을 포함할 수 있다.
암호화 연산(encryption operation)과 복호화 연산(Decryption operation)은 클라이언트와 같은 장치에서 수행되는 동형 연산들일 수 있다. 그리고 동형 곱셈 연산(homomorphic multiplication operation), 모듈러 연산(modular operation), 재선형화 연산(relinearization operation), 키 변환 연산(key switching operation) 및 모듈러스 변환 연산(modulus switching operation)은 클라우드 서버와 같은 장치에서 수행되는 동형 연산들일 수 있다.
본 발명은 클라이언트와 같은 장치에서 수행되는 동형 연산의 통합에 초점에 있는 것이 아니라 클라우드 서버와 같은 장치에서 수행되는 동형 연산들의 통합에 초점을 두고 있다.
암호화 연산(encryption operation)
암호화 연산은 BGV, BFV 또는 CKKS 스킴에서 정의한 알고리즘에 따라 동형 암호문을 생성하기 위한 연산일 수 있다. 본 발명은 각 암호 스킴에서 정의한 암호화 연산의 변형에 초점이 있는 것이 아니므로, 이에 대한 설명은 공지기술로 대신한다. 다만, 전술한 바와 같이, BGV, BFV 및 CKKS 스킴은 n차수의 고차 다항식으로 표현되는 암호문을 사용하는 점에서 유사하지만, 동형 암호문을 구성하는 비트열에서 에러값을 나타내는 비트들의 비트 위치가 다른 점에서 차이가 있다.
예를 들면, BFV 또는 CKKS 스킴은 동형 암호문을 구성하는 비트열은 메시지(또는 원본 데이터)에 대응하는 상위 비트들과 에러값에 대응하는 하위 비트들을 포함하도록 정의하고, BGV 스킴은 상기 에러값에 대응하는 상위 비트들과 상기 메시지에 대응하는 하위 비트들을 포함하도록 정의한다. 이때, 상위 비트들은 최상 비트를 포함하고, 하위 비트는 최하위 비트를 포함한다. 그리고, 상위 비트들과 하위 비트들 사이에는 중간 비트들이 더 존재할 수 있다.
이처럼 에러값을 나타내는 비트들의 위치 차이로 인해, BGV 스킴에서 정의하는 동형 연산 프로세스와 BFV/CKKS 스킴에서 정의하는 동형 연산 프로세스는 다를 수 있다.
본 발명은 서로 다른 동형 연산 프로세스들을 하나의 장치(예, 하나의 전용 칩)에서 수행할 수 있도록 통합하는데 특징이 있다.
복호화 연산(Decryption operation)
복호화 연산은 동형 연산들 중에 하나로서, 동형 암호문을 암호화된 상태에서 동형 연산을 수행하여 획득한 결과 동형 암호문(resulting homomorphic ciphertext)을 복호화 하는 연산이다.
동형 곱셈 연산(homomorphic multiplication operation)
동형 곱셈 연산은 동형 연산들 중에 하나이다. 동형 암호문은 암호문 ct1=(c0, c1)과 암호문 ct2=(c′0, c′1)를 포함하도록 구성될 수 있으며, 이때, 동형 곱셈 연산의 연산 결과는 (c0×c'0, c1×c'1, c0×c'1+c1×c'0) 일 수 있다.
또한, 동형 암호에서는 동형 곱셈 연산과 병렬적으로 수행되는 동형 덧셈 연산(homomorphic addition operation)이 더 수행될 수 있으며, 동형 덧셈 연산의 연산 결과는 좌측 다항식(c0, c′0) 간의 덧셈과 우측 다항식(c1, c′1) 간의 덧셈에 대한 결과 다항식인 ct = (c0+c′0, c1+c′1)일 수 있다.
모듈러 연산(modular operation)
모듈러 연산은 동형 연산들 중에 하나로서, 모듈러 곱셈 연산(modular multiplication operation)이라 불릴 수도 있다.
동형 암호에서는, 메시지를 암호화한 동형 암호문이 큰 워드 사이즈의 계수값을 갖는 고차 다항식(higher-order polynomial)으로 표현되며, 암호화된 상태에서 동형 암호문에 대한 동형 연산을 수행하는 특성으로 인해, 다항식들 간의 동형 연산에서 동형 곱셈 연산 외에 기약 다항식(irreducible polynomial)을 설정하여 수행되는 모듈러 연산(modular operation 또는 modular reduction operation)이 추가적으로 수행된다.
BGV, BFV 및 CKKS 스킴은 큰 워드 사이즈 계수값을 갖는 고차 다항식 들 간의 동형 곱셈 연산, 동형 덧셈 연산 및 모듈러 연산을 동일하게 정의하고 있다. 이것은 BGV, BFV 및 CKKS 스킴에서 정의하는 동형 연산들을 하나의 장치 또는 하나의 프로세스로 통합할 수 있게 하는 동기를 제공한다.
재선형화 연산(relinearization operation)
재선형화 연산은 동형 연산들 중에 하나로서, 재부팅(Bootstrapping) 연산이라 불릴 수도 있다. 동형 암호는 메시지의 높은 보안성을 제공하기 위해 R-LWE(Ring-Learning with Error)를 적용하고 있다. 이것은 메시지를 암호화할 때 작은 워드 사이즈의 계수값을 갖는 에러값(또는 에러값 다항식)을 큰 워드 사이즈의 계수값을 갖는 고차 다항식의 암호문에 추가함을 의미한다. 이렇게 함으로써, 원본 메시지를 알 수 없는 동형 암호문이 생성될 수 있다.
BFV와 CKKS 스킴에서는 동형 암호문을 구성하는 하위 비트들이 에러값(또는 노이즈값)을 나타내고, 동형 암호문을 구성하는 상위 비트들이 메시지를 나타내기 때문에, 동형 암호문에 대해 동형 곱셈 연산 및/또는 모듈러 연산과 같은 동형 연산을 반복적으로 수행하면, 하위 비트를 나타내는 에러값의 워드 사이즈가 증가하여 상위 비트를 나타내는 메시지가 오염된다. 이 경우, 메시지를 복원할 수 없는 상태가 된다.
따라서, 메시지가 오염되지 않도록 동형 연산의 연산 횟수(number of operation)를 적절히 제한하고, 제한된 연산 횟수로 동형 연산을 수행함에 따라 증가한 에러값의 워드 크기를 원래 워드 크기로 되돌리는 재선형화(Relinearization) 연산이 필요하다.
BFV와 CKKS 스킴은 재선형화 연산을 동일하게 정의하고 있다. 이것은 BFV 및 CKKS 스킴에서 동일하게 정의하는 재선형화 연산을 하나의 장치 또는 하나의 프로세스로 통합할 수 있게 하는 동기를 제공한다. 다만, BGV 스킴은 재선형화 연산을 정의하고 있지 않다. 따라서, 본 발명에서는 재선형화 연산을 정의하지 않는 BGV 스킴과 재선형화 연산을 정의하는 BFV/CKKS 스킴에서 각각 정의하는 동형 연산을 하나의 장치 또는 하나의 프로세스로 통합할 수 있는 방법을 제공한다.
키 변환 연산(key switching operation)
키 변환 연산은 서버라 불릴 수 있는 장치에서 수행되는 동형 연산들 중에서 하나로서, 동형 곱셈 연산 및 모듈러 연산을 포함하는 동형 연산을 수행하는 과정에서 증가한 고차 다항식의 차수를 원래의 차수로 되돌리는 연산이다.
n차수의 고차 다항식으로 표현되는 동형 암호문에 대해 곱셈 연산을 반복적으로 수행하면, 연산 결과인 동형 암호문의 차수가 n + n 차수로 증가하기 때문에, 원래의 차수인 n 차로 되돌려야 다음 연산을 수행할 수 있다.
BGV, BFV, CKKS 스킴은 동일하거나 유사한 키 변환 연산을 정의하고 있다. 이것은 BGV, BFV 및 CKKS 스킴에서 정의하는 동형 연산들을 하나의 장치 또는 하나의 프로세스로 통합할 수 있게 하는 동기를 제공한다.
모듈러스 변환 연산(modulus switching operation)
동형 암호문은 메시지를 암호화한 암호문이 큰 워드 사이즈 계수값을 갖는 n차수 고차 다항식을 표현될 수 있다. 동형 암호문에 대한 수행되는 반복되는 동형 연산은 다항식에 포함된 계수값의 워드 크기를 증가시킨다. 연산 횟수가 제한된 연산 횟수를 초과하면, 오버플로우(overflow)로 인해 연산 결과를 나타내는 상위 비트가 손상된다.
모듈러스 변환 연산은 앞서 소개한 동형 연산들(동형 덧셈 연산, 동형 곱셈 연산, 모듈러 연산, 재선형화 연산, 키 변환 연산 등)을 수행함에 따라 증가한 결과 동형 암호문의 워드 크기를 원래의 크기로 되돌리는 연산으로서, BGV, BFV, CKKS 스킴은 동일하거나 유사한 모듈러스 변환 연산을 정의하고 있다. 이것은 BGV, BFV 및 CKKS 스킴에서 정의하는 동형 연산들을 하나의 장치 또는 하나의 프로세스로 통합할 수 있게 하는 동기를 제공한다.
이상 동형 연산들에 대해서 간략히 소개하였다. 본 발명은 각 동형 연산의 변형에 초점이 있는 것이 아니라 동형 암호 스킴별로 조금씩 다르게 정의하고 있는 동형 연산들을 하나의 장치(전용 칩) 또는 하나의 프로세스로 통합하기 위한 방법에 있다. 따라서, 각 동형 연산 및 이를 구현하기 위한 하드웨어 로직 회로에 대한 상세한 설명은 공지 기술로 대신한다.
이하, 첨부한 도면들을 참조하여, 동형 암호 스킴별로 다르게 정의하는 동형 연산들을 하나의 장치로 통합하기 위한 실시예를 도면을 참조하여 상세히 설명하기로 한다. 도면에서 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시 예에 따른 전체 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 전체 시스템은 동형 암호문 생성 장치(100), 컴퓨팅 장치(300) 및 이들 간의 유선 또는/및 무선 통신을 위한 네트워크(200)를 포함한다.
동형 암호문 생성 장치(100)는 BGV, BFV 및 CKKS 스킴 등과 같은 다양한 동형 암호 스킴들에서 정의한 알고리즘에 따라 메시지를 암호화하여 동형 암호문(12)을 생성하고, 상기 동형 암호문(12)을 네트워크(200)를 통해 컴퓨팅 장치(300)로 송신하도록 구성될 수 있다.
또한 동형 암호문 생성 장치(100)는 동형 암호문(12)이 어떤 동형 암호 스킴을 기반으로 암호화된 것인 지를 컴퓨팅 장치(300)에게 알리기 위한 암호 스킴 정보를 생성하여, 상기 암호 스킴 정보를 네트워크(200)를 통해 컴퓨팅 장치(300)로 송신하도록 구성될 수 있다.
또한, 동형 암호문 생성 장치(100)는 암호화된 상태에서 상기 동형 암호문(12)에 대해 다수의 동형 연산들을 수행하여 최종적으로 획득한 연산 결과인 결과 동형 암호문(16)을 네트워크(200)를 통해 수신하고, 그 결과 동형 암호문(16)을 복호화한다.
또한, 동형 암호문 생성 장치(100)는 클라이언트로 지칭될 수 있다. 동형 암호문 생성 장치(100)는 유선 및/또는 무선 통신 기능을 갖는 전자 장치 또는 상기 전자 장치에 포함되도록 구성될 수 있다.
전자 장치는, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 카메라, 웨어러블 장치, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 운동기구 등) 중 적어도 하나로 구현될 수 있다.
컴퓨팅 장치(300)는 동형 암호문 생성 장치(100)로부터 상기 동형 암호문 및 암호 스킴 정보를 수신한다. 컴퓨팅 장치(300)는 암호 스킴 정보를 기반으로 상기 수신된 동형 암호문의 암호 스킴을 확인하고, 확인된 암호 스킴에 따라 암호화된 상태에서 동형 암호문(12)에 대한 동형 연산들을 수행한다.
컴퓨팅 장치(300)는 상기 동형 암호문(12)에 대해 다수의 동형 연산들을 수행하여 결과 동형 암호문(16)을 생성하고, 이를 네트워크(200)를 동형 암호문 생성 장치(100)로 송신한다.
컴퓨팅 장치(300)는, 서버 또는 클라우드 서버로 지칭될 수 있다.
컴퓨팅 장치(300)는 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 카메라, 웨어러블 장치, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 운동기구 등) 중 적어도 하나로 구현될 수 있다.
네트워크(200)는 암호문 생성 장치(100)와 컴퓨팅 장치(300) 간의 유선 통신 연결 또는 무선 통신 연결을 지원한다. 네트워크(200)는 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 이동 통신 네트워크 또는 근거리 무선 통신 네트워크 중 적어도 하나를 포함할 수 있다.
도 1에서는 동형 암호문 생성 장치(100)와 컴퓨팅 장치(300)가 물리적으로 분리된 예를 도시하고 있으나, 하나의 장치로 통합될 수 있다. 이 경우, 동형 암호문 생성 장치(100)가 컴퓨팅 장치(300)에 포함되거나 반대로 컴퓨팅 장치(300)가 동형 암호문 생성 장치(100)에 포함될 수 있다.
도 2는 도 1에 도시된 동형 암호문 생성 장치(100)의 개략적인 구성도이다.
도 2를 참조하면, 동형 암호문 생성 장치(100)는 컨트롤러(110), 암호화 유닛(120), 복호화 유닛(130) 및 통신 인터페이스(140)를 포함한다.
컨트롤러(110)는 암호화 유닛(120), 복호화 유닛(130) 및 통신 인터페이스(140)의 전반적인 동작을 제어 및 관리하는 장치로서, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하도록 구성될 수 있다. 프로세서는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서는 암호화 유닛(120), 복호화 유닛(130) 및 통신 인터페이스(140)의 제어와 관련된 연산 또는 데이터 처리를 실행할 수 있다. 메모리는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리는, 예를 들면, 암호화 유닛(120), 복호화 유닛(130) 및 통신 인터페이스(140)와 관련된 명령어 또는 데이터를 저장할 수 있다.
또한 컨트롤러(110)는 암호문 생성 장치(100)가 사용하는 암호 스킴을 컴퓨팅 장치(300)에게 알리기 위한 암호 스킴 정보를 생성하고, 이를 통신 인터페이스(140)로 전달한다.
암호화 유닛(120)은 컨트롤러(110)의 제어에 따라 상기 암호 스킴을 기반으로 메시지(또는 원본 데이터)를 암호화화여 동형 암호문을 생성하고, 이를 통신 인터페이스(140)로 전달한다.
통신 인터페이스(140)은 컨트롤러(110)의 제어에 따라 상기 동형 암호문(12)와 상기 암호 스킴 정보(14)를 유선 통신 및/또는 무선 통신을 이용하여 컴퓨팅 장치(300)로 송신한다. 여기서, 무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), GSM(Global System for Mobile Communications), WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비 (Zigbee), NFC(near field communication) 등 중 적어도 하나를 포함할 수 있다.
또한, 통신 인터페이스(140)는 컴퓨팅 장치(300)로부터 상기 동형 암호문(12)에 대해 다수의 동형 연산들을 수행하여 획득한 결과 동형 암호문(16)을 수신하고, 이를 복호화 유닛(130)으로 전달한다.
복호화 유닛(130)는 통신 인터페이스(140)로부터 전달된 결과 동형 암호문(16)을 상기 암호 스킴을 기반으로 복호화한다.
도 3은 도 1에 도시된 컴퓨팅 장치의 개략적인 구성도이다.
도 3을 참조하면, 컴퓨팅 장치(300)는 다양한 동형 암호 스킴들, 예를 들면, BGV, BFV 및 CKKS 스킴에서 정의하는 동형 연산들을 통합하도록 구성될 수 있다.
이를 위해, 컴퓨팅 장치(300)는 통신 인터페이스(310), 메인 컨트롤러(main controller: 320), 동형 곱셈 연산기(homomorphic multiplication operator: 330), 선택기(selector: 340), 재선형화 연산기(relinearization operator: 350), 키 변환 연산기(key switching operator: 360) 및 모듈러스 변환 연산기(modulus switching operator: 370)를 포함할 수 있다.
통신 인터페이스(310)는 유선 통신 및/또는 무선 통신을 이용하여 동형 암호문 생성 장치(100)로부터 동형 암호문(12) 및 암호 스킴 정보(14)를 수신한다. 또한 통신 인터페이스(310)는 유선 통신 및/또는 무선 통신을 이용하여 모듈러스 변환 연산기의 연산 결과인 결과 동형 암호문(160)을 동형 암호문 생성 장치(100)로 송신한다.
메인 컨트롤러(320)는 컴퓨팅 장치(300)에 포함된 적어도 하나의 구성의 전반적인 동작을 제어 및 관리하는 장치로서, 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함하도록 구성될 수 있다. 프로세서는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서는 상기 구성들(310 및 330~370) 중에서 적어도 하나와 관련된 연산 또는 데이터 처리를 실행할 수 있다. 메모리는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리는, 상기 구성들(310 및 330~370) 중에서 적어도 하나와 관련된 명령어 또는 데이터를 저장할 수 있다.
또한 메인 컨트롤러(320)는 통신 인터페이스(310)로부터 전달된 상기 암호 스킴 정보(14)를 기반으로 상기 암호문 생성 장치(100)로부터 수신된 동형 암호문(12)이 어떤 종류의 암호 스킴을 기반으로 하는지를 분석하고, 그 분석 결과에 대응하는 선택 신호(SE)를 생성하고, 이를 상기 선택기(340)로 입력한다. 여기서, 선택 신호는 예를 들면, '0' 또는 '1'을 나타내는 한 비트의 신호일 수 있다.
실시 예에서, 메인 컨트롤러(320)는, 상기 수신된 동형 암호문(12)의 암호 스킴이 BFV 또는 CKKS 스킴인 경우(동형 암호문(12)의 상위 비트들이 메시지를 나타내고 동형 암호문(12)의 하위 비트들이 에러값을 나타내는 경우), 상기 선택 신호(SE)는 '1' 이고, 상기 수신된 동형 암호문(12)의 암호 스킴이 상기 BGV 스킴인 경우(동형 암호문(12)의 상위 비트들이 에러값을 나타내고 동형 암호문(12)의 하위 비트들이 데이터를 나타내는 경우), 상기 선택 신호(SE)는 '0' 일 수 있다. 이하의 실시 예에서는, 암호 스킴이 BFV 또는 CKKS 스킴인 경우, 상기 선택 신호(SE)는 '1'이고, 암호 스킴이 상기 BGV 스킴인 경우, 상기 선택 신호는 '0'으로 가정한다.
실시 예에서, 상기 선택 신호(SE)는 제1 동형 연산 프로세스 및 제2 동형 연산 프로세스 중에서 어느 하나의 동형 연산 프로세스를 선택하기 위한 신호일 수 있다. 여기서, 상기 제1 동형 연산 프로세스는, 동형 곱셈 연산(homomorphic multiplication operation), 재선형화 연산(relinearization operation) 및 모듈러스 변환 연산(modulus switching operation)을 순차적으로 수행하는 프로세스로 정의하고, 상기 제2 동형 연산 프로세스는, 상기 동형 곱셈 연산, 키 변환(key switching) 연산 및 상기 모듈러스 변환 연산을 순차적으로 수행하는 프로세스로 정의할 수 있다.
실시 예에서, 상기 선택 신호(SE)가 '1'인 경우(암호 스킴이 BFV 또는 CKKS 스킴인 경우), 상기 제1 동형 연산 프로세스가 선택되고, 상기 선택 신호(SE)가 '0'인 경우(암호 스킴이 BGV 스킴인 경우), 상기 제1 동형 연산 프로세스가 선택된다.
동형 곱셈 연산기(330)는 통신 인터페이스(310)로부터 전달된 동형 암호문(12)에 대해 동형 곱셈 연산(homomorphic multiplication operation) 및/또는 모듈러 연산(modular operation 또는 modular multiplication operation)을 수행한다. 동형 곱셈 연산기(330)는 본 문서의 청구범위에 기재된 '제1 연산기(a first operator)'로 지칭될 수 있다.
실시 예에서, 상기 동형 곱셈 연산기(330)는 상기 동형 곱셈 연산 및/또는 상기 모듈러 연산을 고속 병렬 처리하기 위해 NTT(Number Theoretic Transform) 기법과 RNS(Residue Number System) 기법에 따라 구현된 로직 회로로 구현될 수 있다.
선택기(340)는 메인 컨트롤러(320)로부터 입력된 선택 신호(SE)에 따라 상기 동형 곱셈 연산기(330)에 수행되는 상기 동형 곱셈 연산의 연산 결과를 재선형화 연산기(350) 또는 키 변환 연산기(360)로 입력한다. 이를 위해, 선택기(340)는, 예를 들면, 디멀티플렉서를 포함할 수 있다.
실시 예에서, 선택기(340)는, 상기 선택 신호(SE)가 '1'인 경우(상기 암호 스킴이 상기 BFV 또는 상기 CKKS 스킴인 경우), 동형 곱셈 연산기(330)의 출력과 재선형화 연산기(350)의 입력을 연결하고, 상기 선택 신호(SE)가 '0'인 경우(상기 암호 스킴이 상기 BGV 스킴인 경우), 동형 곱셈 연산기(330)의 출력과 키 변환 연산기(360)의 입력을 연결한다.
이러한 선택기(340)의 선택 동작에 따라, 컴퓨팅 장치(300)는 동형 곱셈 연산, 재선형화 연산 및 모듈러스 변환 연산을 순차적으로 수행하는 상기 제1 동형 연산 프로세스와 상기 동형 곱셈 연산, 키 변환(key switching) 연산 및 상기 모듈러스 변환 연산을 순차적으로 수행하는 상기 제2 동형 연산 프로세스를 선택적으로 실행할 수 있다.
재선형화 연산기(350)는 선택기(340)의 선택 동작에 따라 동형 곱셈 연산기(330)로부터 입력된 연산 결과(18)에 대해 재선형화 연산(relinearization operation) 또는 재부팅 연산(bootstrapping operation))을 수행한다. 이러한 재선형화 연산기(350)는 본 문서의 청구범위에 기재된 '제2 연산기(a second operator)'로 지칭될 수 있다.
키 변환 연산기(360)는 선택기(340)의 선택 동작에 따라 동형 곱셈 연산기(330)로부터 입력된 연산 결과(18)에 대해 키 변환 연산(key switching operation)을 수행한다. 이러한 키 변환 연산기(360)는 본 문서의 청구범위에 기재된 '제3 연산기(a third operator)'로 지칭될 수 있다.
모듈러스 변환 연산기(370)는 상기 재선형화 연산기(350)의 연산 결과(20) 또는 상기 키 변환 연산기의 연산 결과(22)에 대해 모듈러스 변환 연산(modulus switching operation)을 수행하여 결과 동형 암호문을 출력한다.
상기 결과 동형 암호문은 통신 인터페이스(310)로 전달되고, 상기 통신 인터페이스(310)는 상기 결과 동형 암호문을 동형 암호문 생성 장치(100)로 송신한다.
실시 예에서, 상기 동형 곱셈 연산기(330), 상기 선택기(340), 상기 재선형화 연산기(350), 상기 키 변환 연산기(360) 및 상기 모듈러스 변환 연산기(370)를 하나의 전용 칩에 통합될 수 있다. 여기서, 전용 칩은 FPGA 칩, 시스템 온 칩(SoC), 반도체 칩일 수 있다.
이와 같이, 본 발명의 실시 예에서는, 상기 동형 곱셈 연산기(330), 상기 선택기(340), 상기 재선형화 연산기(350), 상기 키 변환 연산기(360) 및 상기 모듈러스 변환 연산기(370)를 하나의 전용 칩에 통합되고, 상기 선택기(340)에 의해 선택된 연산기들(350 및 360)이 상기 동형 곱셈 연산기(330)의 연산 결과에 대해 동형 연산을 선택적으로 수행함으로써, 동형 암호 스킴에서 정의한 서로 다른 동형 연산 프로세스들을 통합할 수 있다.
도 4는 본 발명의 실시 예에 따른 컴퓨팅 장치에서 서로 다른 동형 연산들을 통합하기 위한 방법을 나타내는 설명하기 위한 순서도이다.
도 4를 참조하면, 먼저, S410에서, 통신 인터페이스(310)가 암호문 생성 장치(100)로부터 동형 암호문(12)과 암호 스킴 정보(14)를 수신한다.
실시 예에서, 상기 암호 스킴 정보는, 상기 동형 암호문의 암호 스킴을 식별하기 위한 정보이며, 상기 암호 스킴은, 예를 들면, BGV, BFV 및 CKKS 스킴을 포함할 수 있다.
실시 예에서, 상기 암호 스킴 정보는, 상기 동형 암호문에 포함된 에러값의 비트 위치를 식별하기 위한 정보일 수 있다.
이어, S420에서, 동형 곱셈 연산기(330)가 상기 동형 암호문(12)에 대해 동형 곱셈 연산을 수행한다.
이어, S430 및 S440에서, 메인 컨트롤러(320)가 상기 암호 스킴 정보를 분석하여 상기 동형 암호문의 암호 스킴을 판단한다.
실시 예에서, 상기 동형 암호문의 암호 스킴을 판단하는 단계는, 상기 암호 스킴 정보를 분석하여 재선형화 연산기에 의해 수행되는 재선형화 연산 및 키 변환 연산기에 의해 수행되는 키 변환 연산 중에서 어느 하나의 연산을 결정하는 단계일 수 있다.
실시 예에서, 상기 어느 하나의 연산을 결정하는 단계는 상기 암호 스킴이 상기 BFV 는 상기 CKKS 스킴인 경우, 상기 재선형화 연산을 결정하는 단계 및 상기 암호 스킴이 상기 BGVS 스킴인 경우, 상기 키 변환 연산을 결정하는 단계를 포함할 수 있다.
실시 예에서, 상기 어느 하나의 연산을 결정하는 단계는 상기 에러값의 비트 위치가 하위 비트인 경우, 상기 재선형화 연산을 결정하는 단계 및 상기 에러값의 비트 위치가 상위 비트인 경우, 상기 키 스위칭 연산을 결정하는 단계를 포함할 수 있다.
실시 예에서, 상기 어느 하나의 연산을 결정하는 단계는, 상기 에러값의 비트 위치가 하위 비트인 경우, 상기 재선형화 연산을 결정하는 단계 및 상기 에러값의 비트 위치가 상위 비트인 경우, 상기 키 스위칭 연산을 결정하는 단계를 포함할 수 있다.
실시 예에서, 상기 어느 하나의 연산을 결정하는 단계는 상기 메인 컨트롤러에서, 상기 암호 스킴 정보를 분석하여 상기 동형 암호문의 암호 스킴을 결정하는 단계, 상기 메인 컨트롤러에서, 상기 결정된 암호 스킴에 대응하는 선택 신호를 생성하는 단계 및 선택기에서, 상기 선택 신호에 따라 상기 동형 곱셈 연산기의 출력을 상기 재선형화 연산기 또는 상기 키 변환 연산기의 입력에 연결하는 단계를 포함할 수 있다.
실시 예에서, 상기 연결하는 단계는 상기 BFV 스킴 또는 상기 CKKS 스킴에 대응하는 상기 선택 신호에 따라, 상기 동형 곱셈 연산기의 출력을 상기 재선형화 연산기의 입력에 연결하는 단계 및 상기 BGV 스킴에 대응하는 상기 선택 신호에 따라, 상기 동형 곱셈 연산기의 출력을 상기 키 변환 연산기의 입력에 연결하는 단계를 포함할 수 있다.
이어, S450에서, 상기 판단된 암호 스킴이 BGV 스킴인 경우, 키 변환 연산기(360)가 키 변환 연산을 수행하고, S460에서, 상기 판단된 암호 스킴이 BGV 스킴인 경우, 재선형화 연산기(350)가 BFV 또는 CKKS 스킴에 따른 재선형화 연산을 수행한다.
이어, S470에서, 모듈러스 변환 연산기(370)가 상기 키 변환 연산 또는 상기 재선형화 연산의 연산 결과에 대해 모듈러스 변환 연산을 수행한다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (16)

  1. 컴퓨팅 장치에서 서로 다른 동형 연산들을 통합하기 위한 방법에서,
    통신 인터페이스에서, 암호문 생성 장치로부터 동형 암호문과 암호 스킴 정보를 수신하는 단계;
    동형 곱셈 연산기에서, 상기 동형 암호문에 대해 동형 곱셈 연산을 수행하는 단계;
    메인 컨트롤러에서, 상기 암호 스킴 정보를 분석하여 재선형화 연산기에 의해 수행되는 재선형화 연산 및 키 변환 연산기에 의해 수행되는 키 변환 연산 중에서 어느 하나의 연산을 결정하는 단계;
    상기 재선형화 연산기 또는 상기 키 변환 연산기에서, 상기 결정된 연산을 수행하는 단계; 및
    모듈러스 변환 연산기에서, 상기 결정된 연산의 연산 결과에 대해 모듈러스 변환 연산을 수행하는 단계
    를 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  2. 제1항에서,
    상기 암호 스킴 정보는,
    상기 동형 암호문의 암호 스킴을 식별하기 위한 정보이고,
    상기 암호 스킴은,
    BGV(Brakerski, Gentry, and Vaikuntanathan) 스킴, BFV(Brakerski, Fan, and Vercauteren) 스킴 및 CKKS(Cheon, Kim, Kim and Song) 스킴을 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  3. 제2항에서,
    상기 암호 스킴은,
    BGV(Brakerski, Gentry and Vaikuntanathan) 스킴, BFV(Brakerski, Fan, and Vercauteren) 스킴 및 CKKS(Cheon, Kim, Kim and Song) 스킴 중에서 어느 하나를 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  4. 제3항에서,
    상기 어느 하나의 연산을 결정하는 단계는,
    상기 암호 스킴이 상기 BFV 또는 상기 CKKS 스킴인 경우, 상기 재선형화 연산을 결정하는 단계; 및
    상기 암호 스킴이 상기 BGVS 스킴인 경우, 상기 키 변환 연산을 결정하는 단계
    를 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  5. 제1항에서,
    상기 암호 스킴 정보는,
    상기 동형 암호문에 포함된 에러값의 비트 위치를 식별하기 위한 정보인 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  6. 제5항에서,
    상기 어느 하나의 연산을 결정하는 단계는,
    상기 에러값의 비트 위치가 하위 비트인 경우, 상기 재선형화 연산을 결정하는 단계; 및
    상기 에러값의 비트 위치가 상위 비트인 경우, 상기 키 변환 연산을 결정하는 단계
    를 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  7. 제1항에서,
    상기 어느 하나의 연산을 결정하는 단계는,
    상기 메인 컨트롤러에서, 상기 암호 스킴 정보를 분석하여 상기 동형 암호문의 암호 스킴을 결정하는 단계;
    상기 메인 컨트롤러에서, 상기 결정된 암호 스킴에 대응하는 선택 신호를 생성하는 단계; 및
    선택기에서, 상기 선택 신호에 따라 상기 동형 곱셈 연산기의 출력을 상기 재선형화 연산기 또는 상기 키 변환 연산기의 입력에 연결하는 단계
    를 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  8. 제7항에서,
    상기 결정된 암호 스킴은 BGV 스킴, BFV 스킴 및 CKKS 스킴 중에서 어느 하나이고,
    상기 연결하는 단계는,
    상기 BFV 스킴 또는 상기 CKKS 스킴에 대응하는 상기 선택 신호에 따라, 상기 동형 곱셈 연산기의 출력을 상기 재선형화 연산기의 입력에 연결하는 단계; 및
    상기 BGV 스킴에 대응하는 상기 선택 신호에 따라, 상기 동형 곱셈 연산기의 출력을 상기 키 변환 연산기의 입력에 연결하는 단계
    를 포함하는 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 방법.
  9. 암호문 생성 장치로부터 동형 암호문과 암호 스킴 정보를 수신하는 통신 인터페이스;
    상기 동형 암호문에 대해 동형 곱셈 연산을 수행하는 제1 연산기;
    상기 동형 곱셈 연산의 연산 결과에 대해 재선형화 연산을 수행하는 제2 연산기;
    상기 동형 곱셈 연산의 연산 결과에 대해 키 변환 스위칭 연산을 수행하는 제3 연산기; 및
    상기 재선형화 연산의 연산 결과 또는 상기 키 변환 스위칭 연산의 연산 결과에 대해 모듈러스 변환 연산을 수행하는 제4 연산기를 포함하고,
    상기 암호 스킴 정보를 기반으로 선택 신호를 생성하는 메인 컨트롤러; 및
    상기 선택 신호에 따라 상기 동형 곱셈 연산의 연산 결과를 상기 제2 연산기 또는 상기 제3 연산기로 입력하는 선택기
    를 더 포함하는 컴퓨팅 장치.
  10. 제9항에서,
    상기 제1 연산기, 상기 제2 연산기, 상기 제3 연산기, 상기 제4 연산기 및 상기 선택기는 하나의 전용 칩에 통합되는 컴퓨팅 장치.
  11. 제9항에서,
    상기 메인 컨트롤러는,
    상기 암호 스킴 정보를 분석하여 상기 동형 암호문의 암호 스킴을 판단하고, 상기 판단된 암호 스킴에 대응하는 상기 선택 신호를 생성하는 컴퓨팅 장치.
  12. 제11항에서,
    상기 메인 컨트롤러는,
    상기 암호 스킴이 BFV 스킴 또는 CKKS 스킴인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제2 연산기에 입력하기 위한 상기 선택 신호를 생성하고,
    상기 암호 스킴이 BGV 스킴인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제3 연산기에 입력하기 위한 상기 선택 신호를 생성하는 컴퓨팅 장치.
  13. 제9항에서,
    상기 암호 스킴 정보는,
    상기 동형 암호문을 구성하는 비트열에서 에러값을 나타내는 비트 위치를 식별하기 위한 정보인 컴퓨팅 장치.
  14. 제13항에서,
    상기 메인 컨트롤러는,
    상기 에러값을 나타내는 비트 위치가 하위 비트인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제2 연산기로 입력하기 위한 상기 선택 신호를 생성하고,
    상기 에러값을 나타내는 비트 위치가 상위 비트인 경우, 상기 동형 곱셈 연산의 연산 결과를 상기 제3 연산기로 입력하기 위한 상기 선택 신호를 생성하는 컴퓨팅 장치.
  15. 제9항에서,
    상기 선택기는 디멀티플렉서인 컴퓨팅 장치.
  16. 제9항에서,
    상기 제1 연산기는,
    상기 동형 곱셈 연산을 고속 병렬 처리하기 위해 NTT(Number Theoretic Transform) 기법과 RNS(Residue Number System) 기법에 따라 구현된 로직 회로를 포함하는 구현된 컴퓨팅 장치.
KR1020220152341A 2021-12-09 2022-11-15 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법 KR20230087377A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/077,621 US20230188320A1 (en) 2021-12-09 2022-12-08 Computing apparatus and method of integrating different homomorphic operations in homomorphic encryption

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210176079 2021-12-09
KR20210176079 2021-12-09

Publications (1)

Publication Number Publication Date
KR20230087377A true KR20230087377A (ko) 2023-06-16

Family

ID=86948301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220152341A KR20230087377A (ko) 2021-12-09 2022-11-15 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20230087377A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118118155A (zh) * 2024-04-29 2024-05-31 浪潮电子信息产业股份有限公司 数据的同态加密方法、系统、装置、设备、介质及产品

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118118155A (zh) * 2024-04-29 2024-05-31 浪潮电子信息产业股份有限公司 数据的同态加密方法、系统、装置、设备、介质及产品

Similar Documents

Publication Publication Date Title
US9438423B2 (en) Encryption device, encryption method, and information processing device
US20180367293A1 (en) Private set intersection encryption techniques
EP3264671A1 (en) Key replacement direction control system, and key replacement direction control method
CN105122721A (zh) 针对加密数据的托管安全计算
US11496295B2 (en) Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device
KR20200070090A (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR20200047002A (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
KR101697868B1 (ko) 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
KR20230087377A (ko) 동형 암호에서 서로 다른 동형 연산들을 통합하기 위한 컴퓨팅 장치 및 방법
CN113711247A (zh) 一种机器学习模型的数据处理方法、装置及系统
CN114422237B (zh) 数据传输方法及装置、电子设备和介质
KR102443255B1 (ko) 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법
Lenk et al. GeoFPE: Format preserving encryption of geospatial data for the Internet of Things
US9553723B2 (en) Multi-dimensional encryption
US20230188320A1 (en) Computing apparatus and method of integrating different homomorphic operations in homomorphic encryption
Yu et al. Privacy-preserving cloud-edge collaborative learning without trusted third-party coordinator
CN112131596B (zh) 加解密方法、设备及存储介质
US20230008949A1 (en) Simulation device and method for homomorphic cryptosystem
US11399017B1 (en) Quantum and classical cryptography (QCC) for data encryption and data decryption
Samanth et al. CLEA-256-based text and image encryption algorithm for security in IOD networks
CN110492998B (zh) 加解密数据的方法
CN116415271A (zh) 数据处理的方法和计算平台
KR20200054117A (ko) 동형암호 기법으로 암호화된 데이터의 로그 연산 서버 및 방법
CN109756506A (zh) 基于gnss接收机的数据加密方法、装置、设备及存储介质
KR102633416B1 (ko) 동형 암호를 활용한 사적 변수의 보안 방법 및 장치