KR20230087983A - Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법 - Google Patents

Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법 Download PDF

Info

Publication number
KR20230087983A
KR20230087983A KR1020210176723A KR20210176723A KR20230087983A KR 20230087983 A KR20230087983 A KR 20230087983A KR 1020210176723 A KR1020210176723 A KR 1020210176723A KR 20210176723 A KR20210176723 A KR 20210176723A KR 20230087983 A KR20230087983 A KR 20230087983A
Authority
KR
South Korea
Prior art keywords
homomorphic encryption
input
ciphertext
noise
secret key
Prior art date
Application number
KR1020210176723A
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 KR1020210176723A priority Critical patent/KR20230087983A/ko
Publication of KR20230087983A publication Critical patent/KR20230087983A/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

입력의 차수를 감산하고, 차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하는 산술 연산 모듈 - 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소의 거듭제곱으로 구성된 단항식을 포함함 -, 및 차수 감산된 상기 입력을 암호화하고, 상기 산술 연산의 결과를 복호화하는 동형암호화 모듈을 포함하는 동형암호 시스템 및 이를 이용한 동형암호 연산 방법이 제공된다. 이에 의하면 암호문에 대하여 산술 연산을 무한히 수행할 수 있다.

Description

DGHV 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법{SYSTEM FOR DGHV-BASED FULLY HOMOMORPHIC ENCRYPTION AND CALCULATION METHOD USING THE SAME}
본 발명은 완전 동형암호 시스템 및 이를 이용한 연산 방법에 관한 것이다.
동형암호(Homomorphic Encryption)는 데이터를 암호화한 상태에서 연산할 수 있는 암호화 방법이다. 암호문을 이용한 연산의 결과는 새로운 암호문이 되며, 이를 복호화하여 얻은 평문은 암호화하기 전의 원래 데이터의 연산 결과와 같다.
동형암호 시스템은 부분 동형암호 시스템, 제한 동형암호 시스템, 완전 동형암호 시스템의 세 가지 유형으로 분류될 수 있다.
부분 동형암호 시스템(partially homomorphic encryption system)은 암호문에 대하여 덧셈만 수행할 수 있거나 곱셈만 수행할 수 있는 동형암호 시스템이다. 예를 들어, Paillier 시스템은 덧셈만 수행할 수 있는 부분 동형암호 시스템이고, RSA 시스템은 곱셈만 수행할 수 있는 부분 동형암호 시스템이다.
제한 동형암호 시스템(somewhat homomorphic encryption system)은 암호문에 대하여 덧셈과 곱셈을 모두 수행할 수 있지만 연산 횟수가 제한되어 있는 동형암호 시스템이다. 암호문은 원문을 숨기기 위하여 필연적으로 어느 정도의 노이즈(noise)를 포함하므로 연산 횟수가 많아질수록 노이즈도 함께 증가한다. 따라서 반복해서 연산을 수행하는 경우 특정 시점에 도달하면 노이즈가 너무 커져 암호문을 복호화 하더라도 원문을 복원할 수 없게 된다. 현재 알려진 대부분의 동형암호 시스템은 제한 동형암호 시스템이다.
완전 동형암호 시스템(fully homomorphic encryption system)은 암호문에 대하여 덧셈과 곱셈을 무한히 수행할 수 있는 동형암호 시스템이다. 현재까지 알려진 완전 동형암호 시스템은 모두 제한 동형암호 시스템에 부트스트래핑(bootstrapping) 기법을 적용하는 방식으로 구현된다. 부트스트래핑 기법은 동형암호 시스템에서 연산을 반복할 때 노이즈가 계속해서 커지는 문제점을 해결하기 위한 것으로서 제한 동형암호 시스템을 완전 동형암호 시스템으로 전환시킬 수 있다.
그러나 부트스트래핑 기법은 큰 키 사이즈(key size)를 필요로 하며 막대한 비용을 초래한다는 문제점이 있다. 이러한 문제점을 해결하기 위하여 보다 효율적인 부트스트래핑 기법을 위한 수많은 연구들이 진행되고 있으며, 현재 대부분의 동형암호 시스템에 관한 연구는 부트스트래핑 기법을 빠르고 효율적으로 적용하는 방법에 관한 것이라고 해도 과언이 아니다.
한국 공개특허공보 제10-2015-0043062호(2015.04.22.)
전술한 문제점을 해결하기 위한 본 발명의 목적은 암호문에 대하여 덧셈과 곱셈을 무한히 수행할 수 있는 동형암호 시스템 및 이를 이용한 연산 방법 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 동형암호 시스템은 입력의 차수를 감산하고, 차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하는 산술 연산 모듈, 및 차수 감산된 상기 입력을 암호화하고, 상기 산술 연산의 결과를 복호화하는 동형암호화 모듈을 포함한다. 여기서, 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소의 거듭제곱으로 구성된 단항식을 포함한다.
일 측면에 따르면, 상기 산술 연산 모듈은 상기 단항식에 대하여 상기 적어도 하나의 원소의 지수(exponent)가 상기 지수를 (q-1)로 나눈 나머지가 되도록 상기 입력의 차수를 감산할 수 있다.
일 측면에 따르면, 상기 동형암호화 모듈은 하기의 수학식
Figure pat00001
에 의해 평문을 암호화하고, 하기의 수학식
Figure pat00002
에 의해 암호문을 복호화할 수 있다. 여기서, x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, mod는 모듈로(modulo) 연산이다.
일 측면에 따르면, 상기 비밀키는
Figure pat00003
의 조건을 만족하도록 결정될 수 있다. 여기서, κ는 보안 파라미터이다.
일 측면에 따르면, 상기 노이즈의 상한값은 하기의 수학식
Figure pat00004
에 의해 결정될 수 있다. 여기서, R은 노이즈의 상한값이다.
일 측면에 따르면, 상기 동형암호화 모듈은 하기의 수학식
Figure pat00005
에 의해 평문을 암호화하고, 하기의 수학식
Figure pat00006
에 의해 암호문을 복호화할 수 있다. 여기서, x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, u는 공개키이고, mod는 모듈로(modulo) 연산이다.
일 측면에 따르면, 상기 비밀키는
Figure pat00007
의 조건을 만족하도록 결정될 수 있다. 여기서, κ는 보안 파라미터이다.
일 측면에 따르면, 상기 노이즈의 상한값은 하기의 수학식
Figure pat00008
에 의해 결정될 수 있다. 여기서, τ는 공개키의 개수이다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 동형암호의 연산 방법은 입력의 차수를 감산하는 단계, 차수 감산된 상기 입력을 암호화하는 단계, 차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하는 단계, 및 상기 산술 연산의 결과를 복호화하는 단계를 포함한다. 여기서, 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소로 구성된 단항식을 포함한다.
일 측면에 따르면, 상기 입력의 차수를 감산하는 단계는 상기 단항식에 대하여 상기 적어도 하나의 원소의 지수(exponent)가 상기 지수를 (q-1)로 나눈 나머지가 되도록 상기 입력의 차수를 감산할 수 있다.
일 측면에 따르면, 상기 암호화하는 단계는 하기의 수학식
Figure pat00009
에 의해 평문을 암호화하고, 상기 복호화하는 단계는 하기의 수학식
Figure pat00010
에 의해 암호문을 복호화할 수 있다. 여기서, x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, mod는 모듈로(modulo) 연산이다.
일 측면에 따르면, 상기 비밀키는
Figure pat00011
의 조건을 만족하도록 결정될 수 있다. 여기서, κ는 보안 파라미터이다.
일 측면에 따르면, 상기 노이즈의 상한값은 하기의 수학식
Figure pat00012
에 의해 결정될 수 있다. 여기서, R은 노이즈의 상한값이다.
일 측면에 따르면, 상기 암호화하는 단계는 하기의 수학식
Figure pat00013
에 의해 평문을 암호화하고, 상기 복호화하는 단계는 하기의 수학식
Figure pat00014
에 의해 암호문을 복호화할 수 있다. 여기서, x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, u는 공개키이고, mod는 모듈로(modulo) 연산이다.
일 측면에 따르면, 상기 비밀키는
Figure pat00015
의 조건을 만족하도록 결정될 수 있다. 여기서, κ는 보안 파라미터이다.
일 측면에 따르면, 상기 노이즈의 상한값은 하기의 수학식
Figure pat00016
에 의해 결정될 수 있다. 여기서, τ는 공개키의 개수이다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 동형암호의 연산을 수행하기 위한, 컴퓨터 판독 가능한 기록매체에 저장된, 컴퓨터 프로그램은 상기 컴퓨터가: 입력의 차수를 감산하도록 하고, 차수 감산된 상기 입력을 암호화하도록 하고, 차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하도록 하고, 그리고 상기 산술 연산의 결과를 복호화하도록 하는 명령어를 포함한다. 여기서, 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소로 구성된 단항식을 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
전술한 본 발명의 실시예들에 따른 동형암호 시스템 및 이를 이용한 연산 방법에 따르면, 암호문에 대하여 덧셈과 곱셈을 무한히 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동형암호 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 동형암호 시스템의 동작을 나타낸 것이다.
도 3은 q = 11인 동형암호 시스템의 동작의 하나의 예시를 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 동형암호 시스템을 이용한 동형암호 연산 방법의 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람이 본 발명을 쉽게 실시할 수 있도록 명확하고 상세하게 설명하기로 한다.
DGHV 동형암호 시스템의 개요
DGHV(Dijk-Gentry-Halevi-Vaikuntanathan) 동형암호 시스템은 포스트-퀀텀 암호화 시스템(post-quantum encryption system), 즉 양자 컴퓨터의 공격에도 안전하다고 여겨지는 암호화 시스템이며, 이론적으로는 근사 최대공약수 문제(AGCP problem)에 기반하고 있다. 개략적으로 설명하면, 보안 파라미터 κ가 주어졌을 때 적절한 성질을 만족하는 κ의 다항함수 ρ, η, γ로부터 나오는 근사 최대공약수 문제를 푸는 것은 양자 컴퓨터를 이용하더라도 불가능하다는 의미이다. 다시 말하면, DGHV 동형암호 시스템은 양자 컴퓨터에 의한 공격에 대해서도 안전하다.
DGHV 동형암호 시스템은 q가 소수(prime number)인 유한체(finite field) Zq에서 정의될 수 있다. 여기서, 유한체 Zq는 원문의 공간일 수 있으며, q는 메시지의 크기일 수 있다. DGHV 동형암호 시스템의 암호문은 비밀키 생성 조건 η에 따라 결정되는 비밀키 p와, 노이즈 범위 ρ에서 무작위로 결정되는 노이즈 r에 의해 생성될 수 있다. 다른 동형암호 시스템과 같이 DGHV 동형암호 시스템에서도 연산을 거듭할수록 노이즈 r의 크기가 커지게 되며, 이에 따라 원문을 복원할 수 있도록 하고 안정성을 보장하기 위해 비밀키 p의 크기도 커져야 한다.
Gentry가 고안한 부트스트래핑 기법은 노이즈가 너무 커지기 전에 노이즈와 암호문의 크기를 줄여서 거기서부터 비슷한 (그러나 보다 더 복잡한) 과정을 반복하는 것이다. 물론 각 과정마다 원문을 복원할 수 있어야 한다. 그러나 앞에서도 언급했듯이 부트스트래핑을 하는 과정에서 키 길이가 매우 커지고 그에 따른 비용이 빠른 속도로 늘어난다. 게다가 DGHV 동형암호 시스템의 경우에는 q = 2 인 경우에만 부트스트래핑 방법이 알려져 있다.
이하에서 설명되는 본 발명은 q > 2 인 모든 소수에 대해 고려한다. 즉, 본 발명은 모든 일반적인 경우에 대해 적용될 수 있다.
DGHV 비밀키 시스템
DGHV 비밀키 시스템은 다음의 변수들을 이용하여 정의될 수 있다.
κ: 보안 파라미터
ρ: 노이즈 범위
η: 비밀키 생성 조건
γ: 암호화 변수 생성 조건
예를 들어, 상기 변수들은 수학식 1 내지 수학식 3의 조건을 만족하도록 결정될 수 있다.
Figure pat00017
Figure pat00018
Figure pat00019
비밀키 p, 암호화 변수 s, 노이즈 r은 다음과 같이 상기 변수들을 이용하여 결정될 수 있다.
p: 구간 [2η -1, 2η)에 포함된 홀수
s: 구간 [0, 2γ/p)에 포함된 정수
r: 구간 (-2ρ, 2ρ)에 포함된 정수
이때 DGHV 비밀키 시스템은 수학식 4 및 수학식 5와 같이 정의된다. 수학식 4는 DGHV 비밀키 시스템의 암호화 과정을 나타낸 것이고, 수학식 5는 DGHV 비밀키 시스템의 복호화 과정을 나타낸 것이며, 수학식 4 및 수학식 5에서 x는 원문이고 c는 암호문이다.
Figure pat00020
Figure pat00021
동형암호에서, 암호문을 이용한 연산의 결과를 복호화하면 원문을 이용한 연산의 결과와 동일하다. 복수의 원문을 고려할 때, 즉 x1, …, xs가 원문 공간 Zq의 원소이고, r1, …, rs가 원문에 대응하는 노이즈이고, c1, …, cs가 원문에 대응하는 암호문이라고 하면, 각각의 원문에 대응하는 암호문은 수학식 6과 같이 표현될 수 있으며, 각각의 ci들을 이용한 연산의 결과를 수학식 5에 따라 복호화하면 각각의 xi들을 이용한 연산의 결과와 동일해야 한다.
Figure pat00022
그러나 앞서 설명한 바와 같이 연산 횟수가 증가하면 노이즈 r이 커지게 되므로 암호문 연산 결과를 복호화했을 때 원문 연산 결과를 얻기 위해서는 비밀키 p도 함께 커져야 한다. 이에 본 발명의 목적은 암호문에 대하여 임의의 연산을 무한히 수행하더라도 그 결과를 복호화했을 때 원문에 대하여 동일한 연산을 수행했을 때의 결과와 동일한 값을 얻을 수 있는 연산 방법을 제공하는 것이다.
사칙 연산 중 동일한 횟수만큼 반복했을 때 노이즈가 가장 많이 증가하는 연산은 곱셈이므로, 동형암호 시스템이 곱셈을 무한히 수행할 수 있다면 다른 사칙 연산도 무한히 수행할 수 있다.
수학식 7과 같은 임의의 자연수 N1, …, Ns를 지수로 가지는 단항식 X를 암호화하면 수학식 8과 같은 단항식 C를 얻을 수 있고, 이를 복호화했을 때 다시 단항식 X를 얻기 위해서는 비밀키 p가 수학식 9의 조건을 만족해야 한다.
Figure pat00023
Figure pat00024
Figure pat00025
그러나 수학식 9에 의하면 각각의 지수 Ni들이 커질수록 비밀키 p가 계속해서 커져야 하므로 DGHV 비밀키 시스템은 q > 2 인 경우 완전 동형암호 시스템이 아니다. 이에 본 발명에서는 페르마의 작은 정리를 적용하여 차수를 감산함으로써 완전 동형암호 시스템을 구현한다.
페르마의 작은 정리에 의하면, x가 유한체 Zq의 원소이고 x≠0이면 xq -1 = 1 (mod q)이다.
ni가 Ni를 q-1로 나눈 나머지라고 하면 0 ≤ ni ≤ q-2 이고, 페르마의 작은 정리에 의해 수학식 10의 관계를 만족한다. 즉, 유한체 Zq 내에서 수학식 11과 같은 x는 수학식 7과 같은 X와 동일하다. 따라서 수학식 12와 같은 다항식 c가 x를 암호화할 수 있다면 c는 x뿐만 아니라 X도 암호화할 수 있으며, 이때 비밀키 p는 수학식 13의 조건을 만족해야 한다.
Figure pat00026
Figure pat00027
Figure pat00028
Figure pat00029
1 ≤ s ≤ q-1, 0 ≤ ni ≤ q-2, |ri| ≤ 2κ-1 이므로, 수학식 13은 수학식 14와 같이 표현될 수 있다.
Figure pat00030
수학식 14를 참조하면, 우변은 메시지의 크기 q와 보안 파라미터 κ에만 의존하므로 실질적으로 Ni, ni, ri와는 독립적인 상수이다. 따라서 비밀키 p가 수학식 14를 만족하도록 결정된다면 DGHV 비밀키 시스템은 임의의 단항식을 암호화하고 복호화할 수 있는 완전 동형암호 시스템이 된다. 예를 들어, 비밀키 p는 수학식 14를 만족하는 홀수 중에서 가장 작은 값으로 결정될 수 있으며, 노이즈의 상한값은 수학식 15와 같다.
Figure pat00031
한편, 덧셈과 관련하여, 비밀키 p가 수학식 16의 조건을 만족하면 DGHV 비밀키 시스템은 덧셈을 무한히 수행할 수 있다. 수학식 16은 곱셈과 관련한 수학식 14로부터 자명하다.
Figure pat00032
DGHV 공개키 시스템
DGHV 공개키 암호 시스템은 DGHV 비밀키 시스템을 만들 때 이용한 변수들 κ, ρ, η, γ에 더하여 공개키의 개수 τ를 더 포함하여 정의될 수 있다. 예를 들어, τ는 수학식 17과 같이 결정될 수 있다.
Figure pat00033
DGHV 공개키 시스템에서 비밀키 p와 암호화 변수 s, 노이즈 r은 다음과 같이 상기 변수들을 이용하여 결정될 수 있다. DGHV 공개키 시스템은 DGHV 비밀키 시스템과 비교하여 노이즈 r의 범위가 더 넓다.
p: 구간 [2η -1, 2η)에 포함된 홀수
s: 구간 [0, 2γ/p)에 포함된 정수
r: 구간 (-2, 2)에 포함된 정수
공개키 암호화 변수 si와 노이즈 ri (0 ≤ i ≤ τ)도 위와 같은 방식으로 결정된다. 그리고 공개키 u0, …, ur은 수학식 18과 같이 정의된다. 이때 u0는 u0, …, ur 중에서 가장 큰 수이고 수학식 19의 조건을 만족한다.
Figure pat00034
Figure pat00035
Figure pat00036
Figure pat00037
이때 DGHV 공개키 시스템은 수학식 20 및 수학식 21과 같이 정의된다. 수학식 20은 DGHV 공개키 시스템의 암호화 과정을 나타낸 것이고, 수학식 21은 DGHV 공개키 시스템의 복호화 과정을 나타낸 것이며, 수학식 20 및 수학식 21에서 x는 원문이고, c는 암호문이고, T는 {1, 2, …, τ}이고, S는 T의 부분집합이다.
Figure pat00038
Figure pat00039
복수의 원문을 고려할 때, 즉 x1, …, xs가 원문 공간 Zq의 원소이고, u0, …, rτ가 공개키이고, r1, …, rs가 원문에 대응하는 노이즈이고, c1, …, cs가 원문에 대응하는 암호문이라고 하면, 각각의 원문에 대응하는 암호문은 수학식 22와 같이 표현될 수 있으며, 각각의 ck들을 이용한 연산의 결과를 수학식 21에 따라 복호화하면 각각의 xk들을 이용한 연산의 결과와 동일해야 한다.
Figure pat00040
수학식 23과 같은 임의의 자연수 N1, …, Ns를 지수로 가지는 단항식 X를 암호화하면 수학식 24와 같은 단항식 C를 얻을 수 있고, 이를 복호화했을 때 다시 단항식 X를 얻기 위해서는 비밀키 p가 수학식 25의 조건을 만족해야 한다.
Figure pat00041
Figure pat00042
Figure pat00043
그러나 수학식 25에 의하면 각각의 지수 Ni들이 커질수록 비밀키 p가 계속해서 커져야 하므로 DGHV 공개키 시스템은 q > 2 인 경우 완전 동형암호 시스템이 아니다. DGHV 비밀키 시스템에서와 마찬가지로 페르마의 작은 정리를 적용하며 차수를 감산하면 완전 동형암호 시스템을 구현할 수 있다.
DGHV 비밀키 시스템에 대하여 설명한 바와 같이, 유한체 Zq 내에서 수학식 26과 같은 x는 수학식 23과 같은 X와 동일하다. 따라서 수학식 27과 같은 다항식 c가 x를 암호화할 수 있다면 c는 x뿐만 아니라 X도 암호화할 수 있으며, 이때 비밀키 p는 수학식 28의 조건을 만족해야 한다.
Figure pat00044
Figure pat00045
Figure pat00046
1 ≤ s ≤ q-1, 0 ≤ ni ≤ q-2, |rk| ≤ 2-1, |rk (i)| ≤2-1 이고, 위 조건의 우변을 최대로 만들기 위해서 모든 Sk를 T와 동일하게 설정하면 되므로, 수학식 28은 수학식 29와 같이 표현될 수 있다.
Figure pat00047
수학식 29를 참조하면, 우변은 메시지의 크기 q와 보안 파라미터 κ에만 의존하므로 실질적으로 상수이고, 노이즈의 상한값은 수학식 30과 같다.
Figure pat00048
DGHV 기반 완전 동형암호 시스템
도 1은 본 발명의 일 실시예에 따른 동형암호 시스템의 구성도이고, 도 2는 본 발명의 일 실시예에 따른 동형암호 시스템의 동작을 나타낸 것이다.
도 1 및 도 2를 참조하면, 동형암호 시스템은 산술 연산 모듈(100) 및 동형암호화 모듈(200)을 포함한다.
산술 연산 모듈(100)은 입력의 차수를 감산(103)하고, 차수 감산된 상기 입력의 암호문에 대하여 산술 연산(101)을 수행한다. 여기서, 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소의 거듭제곱으로 구성된 단항식을 포함한다.
산술 연산 모듈(100)은 단항식에 대하여 상기 적어도 하나의 원소의 지수(exponent)가 상기 지수를 (q-1)로 나눈 나머지가 되도록 상기 입력의 차수를 감산할 수 있다. 도 2에 나타난 바와 같이, 산술 연산 모듈(100)은 입력의 차수 N을 (q-1)로 나눈 나머지인 n으로 차수를 감산할 수 있다. 예를 들어, 산술 연산 모듈(100)은 수학식 10과 같이 상기 입력의 차수를 감산할 수 있다.
동형암호화 모듈(200)은 차수 감산된 상기 입력을 암호화(201)하고, 상기 산술 연산의 결과를 복호화(203)한다. 암호화(201) 및 복호화(203)는 동형암호 시스템의 종류에 따라서 다른 방식으로 수행될 수 있다.
동형암호 시스템이 비밀키 시스템인 경우, 동형암호화 모듈(200)은 수학식 4에 의해 평문을 암호화하고, 수학식 5에 의해 암호문을 복호화할 수 있다. 이때 동형암호 시스템의 비밀키는 수학식 15의 조건을 만족하도록 결정될 수 있으며, 노이즈의 상한값은 수학식 16에 의해 결정될 수 있다.
동형암호 시스템이 공개키 시스템인 경우, 동형암호화 모듈(200)은 수학식 20에 의해 평문을 암호화하고, 수학식 21에 의해 암호문을 복호화할 수 있다. 이때 동형암호 시스템의 비밀키는 수학식 29의 조건을 만족하도록 결정될 수 있으며, 노이즈의 상한값은 수학식 30에 의해 결정될 수 있다.
도 3은 q = 11인 동형암호 시스템의 동작의 하나의 예시를 나타낸 것이다.
도 3을 참조하면, 산술 연산 모듈(100)은 입력 38351508258의 차수를 감산한다. 그 결과 입력의 지수 83, 150, 258은 각각을 10으로 나눈 나머지인 3, 0, 8로 감산된다. 동형암호화 모듈(200)은 차수 감산된 입력 335088을 암호화하고, 암호화된 입력의 연산 결과를 복호화(203)한다.
도 3의 예에서, 입력은 유한체 Z11의 원소이므로 동형암호화 전후의 연산 결과는 3으로 동일하다. 따라서 본 발명의 일 실시예에 따른 동형암호화 시스템은 비밀키가 비밀키 시스템인 경우 수학식 15의 조건 또는 공개키 시스템인 경우 수학식 29의 조건을 만족하면 곱셈을 보존하며, 덧셈, 뺄셈 및 나눗셈도 마찬가지로 보존한다.
DGHV 기반 완전 동형암호 시스템을 이용한 동형암호 연산 방법
도 4는 본 발명의 일 실시예에 따른 동형암호 시스템을 이용한 동형암호 연산 방법의 순서도이다.
도 4를 참조하면, 단계 S401에서는 입력의 차수를 감산한다. 여기서, 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소의 거듭제곱으로 구성된 단항식을 포함한다.
단계 S401은 상기 단항식에 대하여 상기 적어도 하나의 원소의 지수(exponent)가 상기 지수를 (q-1)로 나눈 나머지가 되도록 상기 입력의 차수를 감산할 수 있다.
단계 S403에서는 차수 감산된 상기 입력을 암호화하고, 단계 S405에서는 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하고, 단계 S407에서는 상기 산술 연산의 결과를 복호화한다.
단계 S403의 암호화 및 단계 S407의 복호화는 동형암호 시스템의 종류에 따라서 다른 방식으로 수행될 수 있다.
동형암호 시스템이 비밀키 시스템인 경우, 동형암호화 모듈(200)은 수학식 4에 의해 평문을 암호화하고, 수학식 5에 의해 암호문을 복호화할 수 있다. 이때 동형암호 시스템의 비밀키는 수학식 15의 조건을 만족하도록 결정될 수 있으며, 노이즈의 상한값은 수학식 16에 의해 결정될 수 있다.
동형암호 시스템이 공개키 시스템인 경우, 동형암호화 모듈(200)은 수학식 20에 의해 평문을 암호화하고, 수학식 21에 의해 암호문을 복호화할 수 있다. 이때 동형암호 시스템의 비밀키는 수학식 29의 조건을 만족하도록 결정될 수 있으며, 노이즈의 상한값은 수학식 30에 의해 결정될 수 있다.
전술한 본 발명에 따른 동형암호 연산 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 산술 연산 모듈
200: 동형암호화 모듈

Claims (17)

  1. 입력의 차수를 감산하고, 차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하는 산술 연산 모듈 - 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소의 거듭제곱으로 구성된 단항식을 포함함 -; 및
    차수 감산된 상기 입력을 암호화하고, 상기 산술 연산의 결과를 복호화하는 동형암호화 모듈을 포함하는, 동형암호 시스템.
  2. 제1항에 있어서,
    상기 산술 연산 모듈은 상기 단항식에 대하여 상기 적어도 하나의 원소의 지수(exponent)가 상기 지수를 (q-1)로 나눈 나머지가 되도록 상기 입력의 차수를 감산하는, 동형암호 시스템.
  3. 제2항에 있어서,
    상기 동형암호화 모듈은 하기의 수학식
    Figure pat00049

    에 의해 평문을 암호화하고,
    하기의 수학식
    Figure pat00050

    에 의해 암호문을 복호화하는 - x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, mod는 모듈로(modulo) 연산임 -, 동형암호 시스템.
  4. 제3항에 있어서,
    상기 비밀키는
    Figure pat00051

    의 조건을 만족하도록 결정되는 - κ는 보안 파라미터임 -, 동형암호 시스템.
  5. 제3항에 있어서,
    상기 노이즈의 상한값은 하기의 수학식
    Figure pat00052

    에 의해 결정되는 - R은 노이즈의 상한값임 -, 동형암호 시스템.
  6. 제2항에 있어서,
    상기 동형암호화 모듈은 하기의 수학식
    Figure pat00053

    에 의해 평문을 암호화하고,
    하기의 수학식
    Figure pat00054

    에 의해 암호문을 복호화하는 - x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, u는 공개키이고, mod는 모듈로(modulo) 연산임 -, 동형암호 시스템.
  7. 제6항에 있어서,
    상기 비밀키는
    Figure pat00055

    의 조건을 만족하도록 결정되는 - κ는 보안 파라미터임 -, 동형암호 시스템.
  8. 제6항에 있어서,
    상기 노이즈의 상한값은 하기의 수학식
    Figure pat00056

    에 의해 결정되는 - τ는 공개키의 개수임 -, 동형암호 시스템.
  9. 입력의 차수를 감산하는 단계 - 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소로 구성된 단항식을 포함함 -;
    차수 감산된 상기 입력을 암호화하는 단계;
    차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하는 단계; 및
    상기 산술 연산의 결과를 복호화하는 단계를 포함하는, 동형암호의 연산 방법.
  10. 제9항에 있어서,
    상기 입력의 차수를 감산하는 단계는 상기 단항식에 대하여 상기 적어도 하나의 원소의 지수(exponent)가 상기 지수를 (q-1)로 나눈 나머지가 되도록 상기 입력의 차수를 감산하는, 동형암호의 연산 방법.
  11. 제10항에 있어서,
    상기 암호화하는 단계는 하기의 수학식
    Figure pat00057

    에 의해 평문을 암호화하고,
    상기 복호화하는 단계는 하기의 수학식
    Figure pat00058

    에 의해 암호문을 복호화하는 - x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, mod는 모듈로(modulo) 연산임 -, 동형암호의 연산 방법.
  12. 제11항에 있어서,
    상기 비밀키는
    Figure pat00059

    의 조건을 만족하도록 결정되는 - κ는 보안 파라미터임 -, 동형암호의 연산 방법.
  13. 제11항에 있어서,
    상기 노이즈의 상한값은 하기의 수학식
    Figure pat00060

    에 의해 결정되는 - R은 노이즈의 상한값임 -, 동형암호의 연산 방법.
  14. 제10항에 있어서,
    상기 암호화하는 단계는 하기의 수학식
    Figure pat00061

    에 의해 평문을 암호화하고,
    상기 복호화하는 단계는 하기의 수학식
    Figure pat00062

    에 의해 암호문을 복호화하는 - x는 평문이고, c는 암호문이고, p는 비밀키이고, r은 노이즈이고, s는 암호화 변수이고, u는 공개키이고, mod는 모듈로(modulo) 연산임 -, 동형암호의 연산 방법.
  15. 제14항에 있어서,
    상기 비밀키는
    Figure pat00063

    의 조건을 만족하도록 결정되는 - κ는 보안 파라미터임 -, 동형암호의 연산 방법.
  16. 제14항에 있어서,
    상기 노이즈의 상한값은 하기의 수학식
    Figure pat00064

    에 의해 결정되는 - τ는 공개키의 개수임 -, 동형암호의 연산 방법.
  17. 동형암호의 연산을 수행하기 위한, 컴퓨터 판독 가능한 기록매체에 저장된, 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 상기 컴퓨터가:
    입력의 차수를 감산하도록 하고 - 상기 입력은 q가 소수(prime number)인 유한체 Zq의 적어도 하나의 원소로 구성된 단항식을 포함함 -;
    차수 감산된 상기 입력을 암호화하도록 하고;
    차수 감산된 상기 입력의 암호문에 대하여 산술 연산을 수행하도록 하고; 그리고
    상기 산술 연산의 결과를 복호화하도록 하는 명령어를 포함하는, 컴퓨터 프로그램.
KR1020210176723A 2021-12-10 2021-12-10 Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법 KR20230087983A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210176723A KR20230087983A (ko) 2021-12-10 2021-12-10 Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210176723A KR20230087983A (ko) 2021-12-10 2021-12-10 Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법

Publications (1)

Publication Number Publication Date
KR20230087983A true KR20230087983A (ko) 2023-06-19

Family

ID=86988312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210176723A KR20230087983A (ko) 2021-12-10 2021-12-10 Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법

Country Status (1)

Country Link
KR (1) KR20230087983A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043062A (ko) 2013-10-14 2015-04-22 서울대학교산학협력단 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043062A (ko) 2013-10-14 2015-04-22 서울대학교산학협력단 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버

Similar Documents

Publication Publication Date Title
US20220141038A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
JP6934963B2 (ja) データを暗号化する方法およびシステム
JP6083234B2 (ja) 暗号処理装置
EP2924677B1 (en) Splitting s-boxes in a white-box implementation to resist attacks
US9374220B2 (en) System and method for providing compressed encryption and decryption in homomorphic encryption based on integers
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
US20180198613A1 (en) Homomorphic white box system and method for using same
US20150312028A1 (en) Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
US20210266143A1 (en) Tweakable block ciphers for secure data encryption
Norouzi et al. Breaking a novel image encryption scheme based on an improper fractional order chaotic system
EP2290871A2 (en) Encryption method and apparatus using composition of ciphers
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
KR20150073753A (ko) 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
US20200136798A1 (en) Ciphertext comparison method using homomorphic encryption and apparatus for performing the same
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
US8553878B2 (en) Data transformation system using cyclic groups
Kang et al. Fast image encryption algorithm based on (n, m, k)-PCMLCA
WO2020110800A1 (ja) 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
KR20230087983A (ko) Dghv 기반 완전 동형암호 시스템 및 이를 이용한 연산 방법
WO2022054130A1 (ja) 暗号システム、方法及びプログラム
Abdulameer A cryptosystem for database security based on RC4 algorithm
US11533167B2 (en) Methods and devices for optimal information-theoretically secure encryption key management

Legal Events

Date Code Title Description
E902 Notification of reason for refusal