KR102337865B1 - 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법 - Google Patents

동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법 Download PDF

Info

Publication number
KR102337865B1
KR102337865B1 KR1020200141565A KR20200141565A KR102337865B1 KR 102337865 B1 KR102337865 B1 KR 102337865B1 KR 1020200141565 A KR1020200141565 A KR 1020200141565A KR 20200141565 A KR20200141565 A KR 20200141565A KR 102337865 B1 KR102337865 B1 KR 102337865B1
Authority
KR
South Korea
Prior art keywords
input
division
arithmetic operation
subtracted
subtraction
Prior art date
Application number
KR1020200141565A
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 KR1020200141565A priority Critical patent/KR102337865B1/ko
Application granted granted Critical
Publication of KR102337865B1 publication Critical patent/KR102337865B1/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • 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/3033Public 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 pseudo-prime or prime number generation, e.g. primality test
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

뺄셈 및 나눗셈 연산을 위하여 입력을 전처리하는 단계 - 상기 입력은 q가 소수(prime number)인 유한체 Z-q에 속하는 원소임 -, 상기 입력을 암호화하는 단계, 상기 암호화된 입력에 대하여 덧셈, 뺄셈, 곱셈, 나눗셈, 및 빠른 거듭제곱 중 적어도 하나의 연산을 수행하는 단계, 및 상기 연산의 결과를 복호화하는 단계를 포함하는 동형 암호 산술 연산 시스템, 방법, 및 컴퓨터 프로그램이 제공된다.
이에 의하면, 동형 암호화된 암호문에 대한 뺄셈, 나눗셈, 빠른 거듭제곱 연산을 할 수 있으며, 기계학습, 통계 처리 및 분석과 같은 사칙 연산이 필요한 다양한 분야에 동형 암호를 적용할 수 있다.

Description

동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법{HOMOMORPHIC ENCRYPTION-BASED ARITHMETIC OPERATION SYSTEM AND ARITHMETIC OPERATION METHOD USING THE SAME}
본 발명은 동형 암호에 기초한 산술 연산 시스템 및 방법에 관한 것이다.
동형 암호(Homomorphic Encryption)는 데이터를 암호화한 상태에서 연산할 수 있는 암호화 방법이다. 암호문을 이용한 연산의 결과는 새로운 암호문이 되며, 이를 복호화하여 얻은 평문은 암호화하기 전의 원래 데이터의 연산 결과와 같다. 동형 암호는 개인정보를 안전하게 보호한 채로 외부 매체에 저장 및 계산하는 목적으로 사용될 수 있으며, 동형 암호를 이용하면 데이터를 암호화한 채로 상업용 클라우드 서비스에 외주를 맡겨 암호화된 채로 데이터를 처리할 수 있다. 금융, 의료, 교육, 군사 등의 분야와 같이 개인 및 기밀 정보 보호에 대한 규제가 심한 분야에서 동형 암호를 사용함으로써 데이터 공유를 막는 장벽을 극복하고 새로운 서비스를 개척할 수 있다.
그러나 종래의 동형 암호의 산술 연산은 덧셈과 곱셈에 대하여만 암호문의 연산 결과가 원문의 연산 결과와 동일할 뿐 뺄셈과 나눗셈에 대하여는 암호문과 원문의 연산 결과가 다르다는 문제점이 있다. 이로 인해 기계학습, 통계 처리 및 분석과 같은 사칙 연산이 필요한 분야에는 사용될 수 없거나 제한적으로 사용될 수 밖에 없다.
한국 공개특허공보 제10-2017-0122458호(2017.11.06. 공개)
전술한 문제점을 해결하기 위한 본 발명의 목적은 동형 암호화된 암호문에 대한 뺄셈, 나눗셈, 빠른 거듭제곱 연산을 할 수 있는 동형 암호 산술 연산 시스템 및 방법을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 동형 암호 산술 연산 시스템은, 뺄셈 및 나눗셈 중 적어도 하나의 연산을 위하여 입력을 전처리하고, 덧셈 프로세스, 뺄셈 프로세스, 곱셈 프로세스, 나눗셈 프로세스, 및 빠른 거듭제곱 프로세스 중 적어도 하나의 프로세스를 처리하는 산술 연산 모듈 - 상기 입력은 q가 소수(prime number)인 유한체 Zq에 속하는 원소임 -, 및 상기 입력을 암호화하고, 상기 산술 연산 모듈의 프로세스 처리 결과를 복호화하는 동형 암호화 모듈을 포함한다.
일 측면에 따르면, 상기 뺄셈 연산에 대하여, 상기 입력은 빼어지는 수(minuend, Pa) 및 빼는 수(subtrahend, Pb)를 포함할 수 있고, 상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 뺄셈 프로세스를 통해 상기 빼는 수의 부호(sign)를 바꾸는 것일 수 있고, 상기 산술 연산 모듈은 상기 덧셈 프로세스를 통해 상기 빼어지는 수와 상기 전처리된 빼는 수의 덧셈 연산을 수행할 수 있다.
일 측면에 따르면, 상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 뺄셈 프로세스를 통해 하기의 수학식
Figure 112020114965631-pat00001
에 따라 상기 빼는 수의 부호를 바꾸는 것 - Pb neg는 전처리 결과이고, Pb는 상기 빼는 수임 - 일 수 있다.
일 측면에 따르면, 상기 나눗셈 연산에 대하여, 상기 입력은 나누어지는 수(dividend, Pa) 및 나누는 수(divisor, Pb)를 포함할 수 있고, 상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 나눗셈 프로세스를 통해 상기 나누는 수를 역수로 바꾸는 것일 수 있고, 상기 산술 연산 모듈은 상기 곱셈 프로세스를 통해 상기 나누어지는 수와 상기 전처리된 나누는 수의 곱셈 연산을 수행할 수 있다.
일 측면에 따르면, 상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 나눗셈 프로세스를 통해 하기의 수학식
Figure 112020114965631-pat00002
에 따라 상기 나누는 수를 역수로 바꾸는 것 - Pb inv는 전처리 결과이고, Pb는 상기 나누는 수임 - 일 수 있다.
일 측면에 따르면, 상기 빠른 거듭제곱 연산에 대하여, 상기 입력은 밑(base, Pa)을 포함할 수 있고, 상기 산술 연산 모듈은 상기 빠른 거듭제곱 프로세스를 통해 지수를 분해하고, 상기 분해된 지수에 대하여 거듭제곱 연산을 수행하는 것일 수 있다.
일 측면에 따르면, 상기 산술 연산 모듈은 상기 빠른 거듭제곱 프로세스를 통해 하기의 수학식
Figure 112020114965631-pat00003
에 따라 상기 지수를 n으로 분해하고, Ca n에 대하여 거듭제곱 연산을 수행하며 - Ca는 암호화된 상기 밑이고, N은 상기 지수이고, m 및 n은 N보다 작은 양의 정수임 -, 상기 동형 암호화 모듈은 상기 Ca n에 대한 거듭제곱 연산 결과를 복호화함으로써 Pa n의 연산 결과를 출력하는 것일 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 동형 암호 산술 연산 방법은, 뺄셈 및 나눗셈 중 적어도 하나의 연산을 위하여 입력을 전처리하는 단계 - 상기 입력은 q가 소수(prime number)인 유한체 Zq에 속하는 원소임 -, 상기 입력을 암호화하는 단계, 상기 암호화된 입력에 대하여 덧셈, 뺄셈, 곱셈, 나눗셈, 및 빠른 거듭제곱 중 적어도 하나의 연산을 수행하는 단계, 및 상기 연산의 결과를 복호화하는 단계를 포함한다.
일 측면에 따르면, 상기 뺄셈 연산에 대하여, 상기 입력은 빼어지는 수(minuend, Pa) 및 빼는 수(subtrahend, Pb)를 포함할 수 있고, 상기 입력을 전처리하는 단계는 상기 빼는 수의 부호(sign)를 바꾸고, 상기 적어도 하나의 연산을 수행하는 단계는 상기 빼어지는 수와 상기 전처리된 빼는 수의 덧셈 연산을 수행하는 것일 수 있다.
일 측면에 따르면, 상기 입력을 전처리하는 단계는 하기의 수학식
Figure 112020114965631-pat00004
에 따라 상기 빼는 수의 부호를 바꾸는 것 - Pb neg는 전처리 결과이고, Pb는 상기 빼는 수임 - 일 수 있다.
일 측면에 따르면, 상기 나눗셈 연산에 대하여, 상기 입력은 나누어지는 수(dividend, Pa) 및 나누는 수(divisor, Pb)를 포함할 수 있고, 상기 입력을 전처리하는 단계는 상기 나누는 수를 역수로 바꾸고, 상기 적어도 하나의 연산을 수행하는 단계는 상기 나누어지는 수와 상기 전처리된 나누는 수의 곱셈 연산을 수행하는 것일 수 있다.
일 측면에 따르면, 상기 입력을 전처리하는 단계는 하기의 수학식
Figure 112020114965631-pat00005
에 따라 상기 나누는 수를 역수로 바꾸는 것 - Pb inv는 전처리 결과이고, Pb는 상기 나누는 수임 - 일 수 있다.
일 측면에 따르면, 상기 빠른 거듭제곱 연산에 대하여, 상기 입력은 밑(base, Pa)을 포함할 수 있고, 상기 적어도 하나의 연산을 수행하는 단계는 지수를 분해하고, 상기 분해된 지수에 대하여 거듭제곱 연산을 수행하는 것일 수 있다.
일 측면에 따르면, 상기 적어도 하나의 연산을 수행하는 단계는 하기의 수학식
Figure 112020114965631-pat00006
에 따라 상기 지수를 n으로 분해하고, Ca n에 대하여 거듭제곱 연산을 수행하며 - Ca는 암호화된 상기 밑이고, N은 상기 지수이고, m 및 n은 N보다 작은 양의 정수임 -, 상기 연산의 결과를 복호화하는 단계는 상기 Ca n에 대한 거듭제곱 연산 결과를 복호화함으로써 Pa n의 연산 결과를 출력하는 것일 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 동형 암호 산술 연산을 수행하기 위한, 컴퓨터 판독 가능한 기록매체에 저장된, 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 상기 컴퓨터가: 뺄셈 및 나눗셈 중 적어도 하나의 연산을 위하여 입력을 전처리하도록 하고 - 상기 입력은 q가 소수(prime number)인 유한체 Z-q에 속하는 원소임 -, 상기 입력을 암호화하도록 하고, 상기 암호화된 입력에 대하여 덧셈, 뺄셈, 곱셈, 나눗셈, 및 빠른 거듭제곱 중 적어도 하나의 연산을 수행하도록 하고, 그리고 상기 연산의 결과를 복호화하도록 하는 명령어를 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
전술한 본 발명의 실시예들에 따른 동형 암호 산술 연산 방법 및 시스템에 따르면, 동형 암호화된 암호문에 대한 뺄셈, 나눗셈, 빠른 거듭제곱 연산을 할 수 있으며, 기계학습, 통계 처리 및 분석과 같은 사칙 연산이 필요한 다양한 분야에 동형 암호를 적용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동형 암호 산술 연산 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 동형 암호 연산 시스템의 동작 개념도이다.
도 3a는 본 발명의 일 실시예에 따른 동형 암호 연산 시스템이 뺄셈 연산을 수행하는 것의 일 예를 나타낸 것이다.
도 3b는 본 발명의 일 실시예에 따른 동형 암호 연산 시스템이 나눗셈 연산을 수행하는 것의 일 예를 나타낸 것이다.
도 3c는 본 발명의 일 실시예에 따른 동형 암호 연산 시스템이 빠른 거듭제곱 연산을 수행하는 것의 일 예를 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 동형 암호 연산 방법의 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람이 본 발명을 쉽게 실시할 수 있도록 명확하고 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 동형 암호 연산 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 동형 암호 연산 시스템은 산술 연산 모듈(100) 및 동형 암호화 모듈(200)을 포함한다. 동형 암호화 모듈(200)은 암호화(201) 및 복호화(203)를 처리하며, 데이터를 동형 암호화 하기 위한 임의의 방법이 사용될 수 있다.
산술 연산 모듈(100)은 덧셈 프로세스(101), 뺄셈 프로세스(103), 곱셈 프로세스(105), 나눗셈 프로세스(107), 및 빠른 거듭제곱 프로세스(109)를 처리할 수 있다.
산술 연산 모듈(100)이 처리하는 연산 프로세스는 유한체(finite field)에서 정의되며, 덧셈 프로세스(101)와 곱셈 프로세스(105)는 모듈로(modulo) 연산에 의해 정의된다.
즉, q가 소수(prime number)인 유한체 Zq에 속하는 두 원소 Pa, Pb에 대하여, Pa와 Pb에 대한 덧셈 프로세스(101)는 Pa와 Pb를 더한 결과를 q로 나눈 나머지로 정의되고, Pa와 Pb에 대한 곱셈 프로세스(105)는 Pa와 Pb를 곱한 결과를 q로 나눈 나머지로 정의된다. Pa와 Pb에 대한 덧셈 프로세스(101)와 곱셈 프로세스(105)는 각각 수학식 1 및 수학식 2와 같이 표현될 수 있다.
Figure 112020114965631-pat00007
Figure 112020114965631-pat00008
본 발명의 일 실시예에 따른 동형 암호 연산 시스템에서 산술 연산 모듈(100)이 처리하는 뺄셈 프로세스(103), 나눗셈 프로세스(107), 및 빠른 거듭제곱 프로세스(109)는 도 2 및 도 3a 내지 도 3c를 참조하여 후술하기로 한다.
도 2는 본 발명의 일 실시예에 따른 동형 암호 연산 시스템의 동작 개념도이고, 도 3a 내지 도 3c는 각각 일 실시예에 따른 동형 암호 연산 시스템이 뺄셈 연산, 나눗셈 연산, 빠른 거듭제곱 연산을 수행하는 것의 일 예를 나타낸 것이다.
도 2를 참조하면, 동형 암호 뺄셈 연산은 산술 연산 모듈(100)이 뺄셈 프로세스(103)를 통해 입력을 전처리하고, 동형 암호화 모듈(200)이 상기 전처리된 입력을 암호화(201)하고, 산술 연산 모듈(100)이 덧셈 프로세스(101)를 통해 암호화된 데이터를 처리하고, 동형 암호화 모듈(200)이 그 결과값을 복호화(203)함으로써 처리된다.
q가 소수(prime number)인 유한체 Zq에 속하는 두 원소 Pa, Pb에 대하여, Pb neg를 -Pb로 정의하면 Pa - Pb는 Pa + Pb neg와 같다. 한편 Pa, Pb neg를 동형 암호화한 결과를 각각 Ca, Cb neg라 하면, 동형 암호는 암호화 전후의 덧셈 연산 결과가 동일하므로, Pa + Pb neg는 Ca + Cb neg의 연산 결과를 복호화한 것과 동일하다.
따라서, -Pb를 Pb neg로 변환하면, Pa와 Pb의 뺄셈 연산은 산술 연산 모듈(100)의 덧셈 프로세스(101)에 의해 Ca와 Cb neg의 덧셈 연산으로 처리될 수 있다. 여기서, Pb neg는 수학식 3과 같이 계산될 수 있다.
Figure 112020114965631-pat00009
예를 들어, 도 3a를 참조하면, q = 11, Pa = 8, Pb = 3일 때, Pa와 Pb의 뺄셈 연산을 위해 산술 연산 모듈(100)은 뺄셈 프로세스(103)에 의해 -3을 8(= 11 - 3)로 변환함으로써 입력을 전처리한다. 이후 동형 암호화 모듈(200)은 전처리된 입력(8, 8)을 암호화(201)하고, 산술 연산 모듈(100)은 덧셈 프로세스(101)를 통해 암호화된 데이터(E(8), E(8))를 처리하고, 동형 암호화 모듈(200)이 그 결과값(E(8)+E(8))을 복호화(203)하면 Pa - Pb의 계산 결과와 동일한 5가 출력된다.
다시 도 2를 참조하면, 동형 암호 나눗셈 연산은 산술 연산 모듈(100)이 나눗셈 프로세스(103)를 통해 입력을 전처리하고, 동형 암호화 모듈(200)이 상기 전처리된 입력을 암호화(201)하고, 산술 연산 모듈(100)이 곱셈 프로세스(105)를 통해 암호화된 데이터를 처리하고, 동형 암호화 모듈(200)이 그 결과값을 복호화(203)함으로써 처리된다.
q가 소수(prime number)인 유한체 Zq에 속하는 두 원소 Pa, Pb에 대하여, Pb inv를 1/Pb로 정의하면 Pa/Pb는 Pa×Pb inv와 같다. 한편 Pa, Pb inv를 동형 암호화한 결과를 각각 Ca, Cb inv라 하면, 동형 암호는 암호화 전후의 곱셈 연산 결과가 동일하므로, Pa×Pb neg는 Ca×Cb neg의 연산 결과를 복호화한 것과 동일하다.
따라서, 1/Pb를 Pb inv로 변환하면, Pa와 Pb의 나눗셈 연산은 산술 연산 모듈(100)의 곱셈 프로세스(105)에 의해 Ca와 Cb inv의 곱셈 연산으로 처리될 수 있다. 여기서, Pb inv는 페르마의 작은 정리에 의해 수학식 4와 같이 계산될 수 있다.
Figure 112020114965631-pat00010
예를 들어, 도 3b를 참조하면, q = 11, Pa = 10, Pb = 2일 때, Pa와 Pb의 나눗셈 연산을 위해 산술 연산 모듈(100)은 나눗셈 프로세스(107)에 의해 2를 6(= 211-2 mod 11)으로 변환함으로써 입력을 전처리한다. 이후 동형 암호화 모듈(200)은 전처리된 입력(10, 6)을 암호화(201)하고, 산술 연산 모듈(100)은 곱셈 프로세스(105)를 통해 암호화된 데이터(E(10), E(6))를 처리하고, 동형 암호화 모듈(200)이 그 결과값(E(10)×E(6))을 복호화(203)하면 Pa/Pb의 계산 결과와 동일한 5가 출력된다.
다시 도 2를 참조하면, 동형 암호 빠른 거듭제곱 연산은 동형 암호화 모듈(200)이 입력을 암호화(201)하고, 산술 연산 모듈(100)이 빠른 거듭제곱 프로세스(109)를 통해 암호화된 데이터를 처리하고, 동형 암호화 모듈(200)이 그 결과값을 복호화(203)함으로써 처리된다.
q가 소수(prime number)인 유한체 Zq-{0}에 속하는 원소 Pa를 동형 암호화한 결과를 Ca라 하면, 동형 암호는 암호화 전후의 곱셈 연산 결과가 동일하므로, 양의 정수 N에 대하여 Pa N은 Ca N의 연산 결과를 복호화한 것과 동일하다.
한편, 페르마의 작은 정리에 의해, N보다 작은 양의 정수 m, n에 대하여 Pa N과 Ca N은 각각 수학식 5 및 수학식 6과 같이 분해될 수 있으며, 그 연산 결과는 각각 Pa n 및 Ca n의 연산 결과와 동일하므로 연산 횟수가 최소화된 빠른 거듭제곱 연산이 가능하다.
Figure 112020114965631-pat00011
Figure 112020114965631-pat00012
예를 들어, 도 3c를 참조하면, q = 11, Pa = 2, N = 103, m = 10, n = 3일 때, Pa N의 거듭제곱 연산을 위해 동형 암호화 모듈(200)은 입력(2103)을 암호화(201)하고, 산술 연산 모듈(100)은 빠른 거듭제곱 프로세스(109)를 통해 암호화된 데이터(E(2)103)를 분해한 후(E(2)10*10+3) Pa n에 해당하는 E(2)3의 거듭제곱 연산을 수행하고, 동형 암호화 모듈(200)이 그 결과값을 복호화(203)하면 Pa N의 계산 결과와 동일한 8이 출력된다.
도 4는 본 발명의 일 실시예에 따른 동형 암호 연산 방법의 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 동형 암호 연산 방법은 뺄셈 및 나눗셈 연산을 위하여 입력을 전처리하는 단계(S410)를 포함한다. 여기서, 상기 입력은 q가 소수(prime number)인 유한체 Zq에 속하는 원소이다.
뺄셈 연산에 대하여, 상기 입력은 빼어지는 수(minuend) 및 빼는 수(subtrahend)를 포함할 수 있고, 상기 입력을 전처리하는 단계는 상기 빼는 수의 부호(sign)를 바꾸는 것일 수 있다. 또는 상기 입력을 전처리하는 단계는 수학식 3에 따라 상기 빼는 수의 부호를 바꾸는 것일 수 있다.
나눗셈 연산에 대하여, 상기 입력은 나누어지는 수(dividend) 및 나누는 수(divisor)를 포함할 수 있고, 상기 입력을 전처리하는 단계는 상기 나누는 수를 역수로 바꾸는 것일 수 있다. 또는 상기 입력을 전처리하는 단계는 수학식 4에 따라 상기 나누는 수를 역수로 바꾸는 것일 수 있다.
덧셈, 곱셈, 및 빠른 거듭제곱 연산에 대하여 단계 S410은 생략될 수 있다.
동형 암호 연산 방법은 상기 입력을 암호화하는 단계(S430)를 더 포함한다. S430은 뺄셈 및 나눗셈 연산에 대하여 단계 S410에서 전처리된 입력을 암호화하고, 덧셈, 곱셈, 및 빠른 거듭제곱 연산에 대하여 단계 S410이 생략된 경우 전처리되지 않은 입력을 암호화한다.
동형 암호 연산 방법은 상기 암호화된 입력에 대하여 산술 연산을 수행하는 단계를 더 포함한다. 여기서, 상기 산술 연산은 덧셈, 뺄셈, 곱셈, 나눗셈, 및 빠른 거듭제곱 중 적어도 하나의 연산을 포함한다.
뺄셈 연산에 대하여, 상기 적어도 하나의 연산을 수행하는 단계는 상기 빼어지는 수와 상기 전처리된 빼는 수의 덧셈 연산을 수행하는 것일 수 있다. 여기서, 덧셈 연산은 수학식 1에 따라 수행될 수 있다.
나눗셈 연산에 대하여, 상기 적어도 하나의 연산을 수행하는 단계는 상기 나누어지는 수와 상기 전처리된 나누는 수의 곱셈 연산을 수행하는 것일 수 있다. 여기서, 곱셈 연산은 수학식 2에 따라 수행될 수 있다.
상기 빠른 거듭제곱 연산에 대하여, 상기 입력은 밑(base)을 포함할 수 있고, 상기 적어도 하나의 연산을 수행하는 단계는 지수를 분해하고, 상기 분해된 지수에 대하여 거듭제곱 연산을 수행하는 것일 수 있다. 또는 상기 적어도 하나의 연산을 수행하는 단계는 수학식 6에 따라 상기 지수를 분해하는 것일 수 있다.
본 발명의 일 실시예에 따른 동형 암호 연산 방법은 상기 연산의 결과를 복호화하는 단계를 더 포함한다.
전술한 본 발명에 따른 동형 암호 연산 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 산술 연산 모듈
200: 동형 암호화 모듈

Claims (15)

  1. 뺄셈 및 나눗셈 중 적어도 하나의 연산을 위하여 입력을 전처리하고, 덧셈 프로세스, 뺄셈 프로세스, 곱셈 프로세스, 나눗셈 프로세스, 및 빠른 거듭제곱 프로세스 중 적어도 하나의 프로세스를 처리하는 산술 연산 모듈 - 상기 입력은 q가 소수(prime number)인 유한체 Zq에 속하는 원소임 -; 및
    상기 입력을 암호화하고, 상기 산술 연산 모듈의 프로세스 처리 결과를 복호화하는 동형 암호화 모듈을 포함하되,
    상기 빠른 거듭제곱 연산에 대하여,
    상기 입력은 밑(base, Pa)을 포함하고,
    상기 산술 연산 모듈은 상기 빠른 거듭제곱 프로세스를 통해 지수(N)를 분해하고, 분해된 지수(n)에 대하여 거듭제곱 연산을 수행하는, 동형 암호 산술 연산 시스템.
  2. 제1항에 있어서,
    상기 뺄셈 연산에 대하여,
    상기 입력은 빼어지는 수(minuend, Pa) 및 빼는 수(subtrahend, Pb)를 포함하고,
    상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 뺄셈 프로세스를 통해 상기 빼는 수의 부호(sign)를 바꾸는 것이고,
    상기 산술 연산 모듈은 상기 덧셈 프로세스를 통해 상기 빼어지는 수와 상기 전처리된 빼는 수의 덧셈 연산을 수행하는, 동형 암호 산술 연산 시스템.
  3. 제2항에 있어서,
    상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 뺄셈 프로세스를 통해 하기의 수학식
    Figure 112020114965631-pat00013

    에 따라 상기 빼는 수의 부호를 바꾸는 것인 - Pb neg는 전처리 결과이고, Pb는 상기 빼는 수임 -, 동형 암호 산술 연산 시스템.
  4. 제1항에 있어서,
    상기 나눗셈 연산에 대하여,
    상기 입력은 나누어지는 수(dividend, Pa) 및 나누는 수(divisor, Pb)를 포함하고,
    상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 나눗셈 프로세스를 통해 상기 나누는 수를 역수로 바꾸는 것이고,
    상기 산술 연산 모듈은 상기 곱셈 프로세스를 통해 상기 나누어지는 수와 상기 전처리된 나누는 수의 곱셈 연산을 수행하는, 동형 암호 산술 연산 시스템.
  5. 제4항에 있어서,
    상기 입력을 전처리하는 것은 상기 산술 연산 모듈이 상기 나눗셈 프로세스를 통해 하기의 수학식
    Figure 112020114965631-pat00014

    에 따라 상기 나누는 수를 역수로 바꾸는 것인 - Pb inv는 전처리 결과이고, Pb는 상기 나누는 수임 -, 동형 암호 산술 연산 시스템.
  6. 삭제
  7. 제1항에 있어서,
    상기 산술 연산 모듈은 상기 빠른 거듭제곱 프로세스를 통해 하기의 수학식
    Figure 112021097771064-pat00015

    에 따라 상기 지수를 n으로 분해하고, Ca n에 대하여 거듭제곱 연산을 수행하며 - Ca는 암호화된 상기 밑이고, N은 상기 지수이고, m 및 n은 N보다 작은 양의 정수임 -,
    상기 동형 암호화 모듈은 상기 Ca n에 대한 거듭제곱 연산 결과를 복호화함으로써 Pa n의 연산 결과를 출력하는, 동형 암호 산술 연산 시스템.
  8. 뺄셈 및 나눗셈 중 적어도 하나의 연산을 위하여 입력을 전처리하는 단계 - 상기 입력은 q가 소수(prime number)인 유한체 Zq에 속하는 원소임 -;
    상기 입력을 암호화하는 단계;
    상기 암호화된 입력에 대하여 덧셈, 뺄셈, 곱셈, 나눗셈, 및 빠른 거듭제곱 중 적어도 하나의 연산을 수행하는 단계; 및
    상기 연산의 결과를 복호화하는 단계를 포함하되,
    상기 빠른 거듭제곱 연산에 대하여,
    상기 입력은 밑(base, Pa)을 포함하고,
    상기 적어도 하나의 연산을 수행하는 단계는 지수(N)를 분해하고, 분해된 지수(n)에 대하여 거듭제곱 연산을 수행하는 것을 포함하는, 동형 암호 산술 연산 방법.
  9. 제8항에 있어서,
    상기 뺄셈 연산에 대하여,
    상기 입력은 빼어지는 수(minuend, Pa) 및 빼는 수(subtrahend, Pb)를 포함하고,
    상기 입력을 전처리하는 단계는 상기 빼는 수의 부호(sign)를 바꾸고,
    상기 적어도 하나의 연산을 수행하는 단계는 상기 빼어지는 수와 상기 전처리된 빼는 수의 덧셈 연산을 수행하는, 동형 암호 산술 연산 방법.
  10. 제9항에 있어서,
    상기 입력을 전처리하는 단계는 하기의 수학식
    Figure 112020114965631-pat00016

    에 따라 상기 빼는 수의 부호를 바꾸는 - Pb neg는 전처리 결과이고, Pb는 상기 빼는 수임 -, 동형 암호 산술 연산 방법.
  11. 제8항에 있어서,
    상기 나눗셈 연산에 대하여,
    상기 입력은 나누어지는 수(dividend, Pa) 및 나누는 수(divisor, Pb)를 포함하고,
    상기 입력을 전처리하는 단계는 상기 나누는 수를 역수로 바꾸고,
    상기 적어도 하나의 연산을 수행하는 단계는 상기 나누어지는 수와 상기 전처리된 나누는 수의 곱셈 연산을 수행하는 동형 암호 산술 연산 방법.
  12. 제11항에 있어서,
    상기 입력을 전처리하는 단계는 하기의 수학식
    Figure 112020114965631-pat00017

    에 따라 상기 나누는 수를 역수로 바꾸는 - Pb inv는 전처리 결과이고, Pb는 상기 나누는 수임 -, 동형 암호 산술 연산 방법.
  13. 삭제
  14. 제8항에 있어서,
    상기 적어도 하나의 연산을 수행하는 단계는 하기의 수학식
    Figure 112021097771064-pat00018

    에 따라 상기 지수를 n으로 분해하고, Ca n에 대하여 거듭제곱 연산을 수행하며 - Ca는 암호화된 상기 밑이고, N은 상기 지수이고, m 및 n은 N보다 작은 양의 정수임 -,
    상기 연산의 결과를 복호화하는 단계는 상기 Ca n에 대한 거듭제곱 연산 결과를 복호화함으로써 Pa n의 연산 결과를 출력하는, 동형 암호 산술 연산 방법.
  15. 동형 암호 산술 연산을 수행하기 위한, 컴퓨터 판독 가능한 기록매체에 저장된, 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 상기 컴퓨터가:
    뺄셈 및 나눗셈 중 적어도 하나의 연산을 위하여 입력을 전처리하도록 하고 - 상기 입력은 q가 소수(prime number)인 유한체 Zq에 속하는 원소임 -;
    상기 입력을 암호화하도록 하고;
    상기 암호화된 입력에 대하여 덧셈, 뺄셈, 곱셈, 나눗셈, 및 빠른 거듭제곱 중 적어도 하나의 연산을 수행하도록 하고; 그리고
    상기 연산의 결과를 복호화하도록 하는 명령어를 포함하되,
    상기 빠른 거듭제곱 연산에 대하여,
    상기 입력은 밑(base, Pa)을 포함하고,
    상기 적어도 하나의 연산을 수행하도록 하는 것은 지수(N)를 분해하고, 분해된 지수(n)에 대하여 거듭제곱 연산을 수행하도록 하는 것을 포함하는, 컴퓨터 프로그램.
KR1020200141565A 2020-10-28 2020-10-28 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법 KR102337865B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200141565A KR102337865B1 (ko) 2020-10-28 2020-10-28 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200141565A KR102337865B1 (ko) 2020-10-28 2020-10-28 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법

Publications (1)

Publication Number Publication Date
KR102337865B1 true KR102337865B1 (ko) 2021-12-10

Family

ID=78865275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200141565A KR102337865B1 (ko) 2020-10-28 2020-10-28 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법

Country Status (1)

Country Link
KR (1) KR102337865B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07113887B2 (ja) * 1988-04-14 1995-12-06 松下電器産業株式会社 逆数計算装置と割算装置
KR20150043062A (ko) * 2013-10-14 2015-04-22 서울대학교산학협력단 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
KR101677114B1 (ko) * 2015-08-28 2016-11-18 고려대학교 산학협력단 동형 암호를 이용한 생체정보의 이상치 탐색 방법
KR20170122458A (ko) 2016-04-27 2017-11-06 서울대학교산학협력단 암호문의 크기가 감소되는 동형 암호화 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07113887B2 (ja) * 1988-04-14 1995-12-06 松下電器産業株式会社 逆数計算装置と割算装置
KR20150043062A (ko) * 2013-10-14 2015-04-22 서울대학교산학협력단 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
KR101677114B1 (ko) * 2015-08-28 2016-11-18 고려대학교 산학협력단 동형 암호를 이용한 생체정보의 이상치 탐색 방법
KR20170122458A (ko) 2016-04-27 2017-11-06 서울대학교산학협력단 암호문의 크기가 감소되는 동형 암호화 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Greer, Kieran. "How the Brain might use Division." arXiv preprint arXiv:2003.05320 (2020.03.24.)* *
Mathew, Shiji Mariam 외 1명, "Arithmetic Operations on Encrypted Data using Fully Homomorphic Encryption." 2017 14th IEEE India Council International Conference (INDICON). (2017.)* *

Similar Documents

Publication Publication Date Title
EP3566385B1 (en) Homomorphic white box system and method for using same
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
KR20070039161A (ko) 암호화 시스템, 방법 및 결합 함수
JP2006003905A (ja) 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
EP2742644B1 (en) Encryption and decryption method
EP3644544A1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
KR20060134992A (ko) 정수를 가산하는 컴퓨터 시스템
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
US8553878B2 (en) Data transformation system using cyclic groups
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
EP3085005B1 (en) Secure data transformations
JP7117964B2 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
KR102337865B1 (ko) 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법
US11558171B2 (en) Apparatus and method for encryption, apparatus and method for converting ciphertext
CN115085897A (zh) 用于保护隐私的数据处理方法、装置和计算机设备
US20230291553A1 (en) Cypher system, method and program
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
US11012089B1 (en) System and method for encrypting and compressing blocks of data
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
EP3419213A1 (en) Computer implemented method, computer system and computer readable computer program product
CN115276950B (zh) 隐私数据的处理方法、装置和计算设备
CN114006689B (zh) 基于联邦学习的数据处理方法、装置及介质
CN115563638B (zh) 数据处理方法、系统、设备及存储介质
CN116455575B (zh) 一种密钥生成、加密、解密方法、电子设备及存储介质

Legal Events

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