KR101608515B1 - Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same - Google Patents

Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same Download PDF

Info

Publication number
KR101608515B1
KR101608515B1 KR1020130122048A KR20130122048A KR101608515B1 KR 101608515 B1 KR101608515 B1 KR 101608515B1 KR 1020130122048 A KR1020130122048 A KR 1020130122048A KR 20130122048 A KR20130122048 A KR 20130122048A KR 101608515 B1 KR101608515 B1 KR 101608515B1
Authority
KR
South Korea
Prior art keywords
pke
encrypted
fhe
data
server
Prior art date
Application number
KR1020130122048A
Other languages
Korean (ko)
Other versions
KR20150043062A (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 KR1020130122048A priority Critical patent/KR101608515B1/en
Publication of KR20150043062A publication Critical patent/KR20150043062A/en
Application granted granted Critical
Publication of KR101608515B1 publication Critical patent/KR101608515B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터를 연산하는 방법에 있어서, 엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및 동형 또는 암호화 알고리즘에 의해 암호화된 형태의 데이터에 대하여 연산을 수행하는 단계;를 포함하는 공개키로 암호화된 데이터를 연산하는 방법이 개시된다.A method of computing data encrypted by an EIGamal encryption algorithm, the method comprising: converting data encrypted by an EIGamal encryption algorithm into a data form encrypted by a fully isomorphic or perturbed or perturbative algorithm; ; And performing an operation on data of a type that is encrypted by the same type or encryption algorithm, and a method of computing data encrypted with a public key.

Description

동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버{Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same} BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for computing encrypted data using a homogeneous encryption algorithm and a public key encryption algorithm and a server using the same,

본 발명은 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of computing encrypted data using the same encryption algorithm and a public key encryption algorithm, and a server using the same.

완전 동형 또는 준동형 암호화 기술은 암호화된 상태에서 곱셈이나 덧셈이 가능하도록 하는 암호화 기술로서, 여러 분야에서 활용이 기대되고 있다. 예를 들면, 프라이버시를 보호할 필요가 있는 경우, 준동형 암호화 기술은 복호화를 할 필요없이 암호화된 상태에서 처리가 가능하므로, 유용할 수 있다. The completely homogeneous or perturbed cryptographic technique is an encryption technology that enables multiplication or addition in an encrypted state, and is expected to be used in various fields. For example, if privacy needs to be protected, the perturbed encryption technique can be useful because it can be processed in an encrypted state without having to decrypt it.

2009년 완전 준동형 암호화 기술을 제시된 뒤로 완전 준동형 암호에 대한 연구가 활발하게 이루어지고 있으며, 특히, 정수 기반 완전 준동형 암호화 기술은 횟수에 제한 없이 암호문간의 더하기와 곱하기 연산을 지원할 수 있는 기술이다. Full-fledged-type encryption is being actively researched since full-fledged encryption technology was presented in 2009, and in particular, integer-based full-fledged encryption is a technique that can support addition and multiplication between ciphertexts without limitation .

하지만, 완전 동형 또는 준동형 암호화 기술로 암호화된 암호화문은 그 크기가 지나치게 클 뿐만 아니라 암호화에 많은 시간이 걸린다. However, encryption statements encrypted with fully homogeneous or perceptual encryption techniques are not only very large, but also take a long time to encrypt.

본 발명의 일 실시예에 따르면, 암호화된 상태에서 곱하기와 덧셈과 같은 연산이 가능하되, 암호화문의 크기가 작고 암호화 속도가 빠른, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버가 제공될 수 있다.According to an embodiment of the present invention, there can be provided a method of computing encrypted data and a server using the same, which can perform operations such as multiplication and addition in an encrypted state, but has a small size of an encryption statement and a high encryption speed.

본 발명의 하나 이상의 실시예에 따르면, 공개키로 암호화된 데이터를 연산하는 서버에 있어서,According to one or more embodiments of the present invention, there is provided a server for computing data encrypted with a public key,

메모리, 컴퓨터 프로세서, 및 상기 컴퓨터 프로세서에 의해 상기 메모리에 로딩되어 실행되는 컴퓨터 프로그램 코드;를 포함하며, And computer program code that is loaded into and executed by the computer processor in the memory,

상기 컴퓨터 프로그램 코드는,The computer program code comprising:

공개키로 암호화된 데이터(이하, '공개키 암호화 데이터')(PKE(m)={PKE(mi)|1≤i≤n, i,n는 정수} = PKE(m1), PKE(m2), ... , PKE(mn))를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및PKE (m) = PKE (m i ) | 1? I? N, i, n is an integer) = PKE (m 1 ), PKE 2 ), ..., PKE (m n )) into a data form encrypted by a completely isochronous or perturbative algorithm; And

완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(FHE(m)={FHE(mi)|1≤i≤n, i,n는 정수} = FHE(m1), FHE(m2), ... , FHE(mn))에 대하여 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 서버가 제공될 수 있다.(FHE (m) = {FHE (m i ) | 1? I? N, i, n is an integer) = (FHE (FHE (m 1 ), FHE (m 2 ), ..., FHE (m n )).

상기 변환하는 단계는, Wherein the converting comprises:

상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(FHE(e))를 사용하는 것일 수 있다.(FHE (e)) encrypted by the completely isochronous or perturbative algorithm.

상기 공개키 암호화 데이터(PKE(mi))는 엘가말(EIGamal) 암호화 알고리즘 의해 암호화된 것으로서 다음The public key encryption data PKE (m i ) is encrypted by the EIGamal encryption algorithm,

PKE(mi) = (g-r, mi·yr)PKE (m i ) = (g -r , m i · y r )

과 같은 형태를 가지며, 여기서, r은 [0, |G|]에서 랜덤하게 선택되는 값이고, g는 G = {g, g2, .... , }로 정의되는 집합에서 선택되며, y =ge 이고, e는 비밀키를 의미하는 것일 수 있다., Where r is a randomly selected value in [0, | G |], g is selected from the set defined by G = {g, g 2 , ....}, y = g e , And e may be a secret key.

상기 비밀키(e)는 다음의 수식The secret key (e)

Figure 112013092597134-pat00001
Figure 112013092597134-pat00001

여기서, ei ∈ {0, 1},

Figure 112013092597134-pat00002
이며,Here, e i ∈ {0, 1},
Figure 112013092597134-pat00002
Lt;

에 의해 이진법(binary representation)으로 전개된 것일 수 있다.Which may be developed in binary representation.

상기 변환하는 단계는, Wherein the converting comprises:

상기 PKE(mi) = (g-r, mi·yr)를The PKE (m i ) = (g -r , m i · y r )

FHE(mi)로 변환하는 단계인 것일 수 있다.FHE (m i ).

상기 변환하는 단계는, Wherein the converting comprises:

Figure 112013092597134-pat00003
Figure 112013092597134-pat00003

를 계산하는 단계를 포함하며, 여기서,

Figure 112013092597134-pat00004
이고, h = g-r 인 것일 수 있다., Wherein: < RTI ID = 0.0 >
Figure 112013092597134-pat00004
, And h = g- r .

상기 변환하는 단계에서 사용하는 상기 암호화된 비밀키(FHE(e))는, 상기 서버가 상기 공개키를 이용하여 생성한 것이거나, 또는 상기 서버가 외부 장치로부터 전송받은 것일 수 있다.The encrypted secret key FHE (e) used in the transforming step may be one generated by the server using the public key, or the server may be received from an external device.

상기 컴퓨터 프로그램 코드는, 상기 연산에 곱셈 연산이 포함된 경우에는,The computer program code, when a multiplication operation is included in the operation,

상기 변환하는 단계를 수행하기 전에, Before performing the transforming step,

상기 공개키로 암호화된 데이터(PKE(m1), PKE(m2), ... , PKE(mn))들끼리 곱셈 연산을 먼저 하며,(PKE (m 1 ), PKE (m 2 ), ..., PKE (m n )) encrypted with the public key is performed first,

상기 변환하는 단계는, 상기 곱셈 연산의 결과에 대하여 수행되는 일 수 있다.The transforming step may be performed on the result of the multiplication operation.

상기 비밀키(e)는 다음의 수식The secret key (e)

Figure 112013092597134-pat00005
Figure 112013092597134-pat00005

에 의해 W 진법(W-ary representation)으로 전개된 것일 수 있다.May be developed in a W-ary representation.

상기 PKE(mi) = (g-r, mi·yr)를 FHE(mi)로 변환하는 단계일 수 있다.And converting the PKE (m i ) = (g -r , m i · y r ) into FHE (m i ).

상기 변환하는 단계는, Wherein the converting comprises:

Figure 112013092597134-pat00006
Figure 112013092597134-pat00006

를 계산하는 단계를 포함하며, , ≪ / RTI >

여기서, k ∈ {0, 1, 2, … , w-1},Here, k ∈ {0, 1, 2, ... , w-1},

Ψ(ei) = (ei0, ei1, …, eik, …, eiw -1), eik ∈ {0, 1}, 여기서, 함수 Ψ는 집합 W 에 속한 원소를 집합 Z에 속한 원소로 변환하는 함수이며, W = {0, 1, 2, … , w-1}, Z = {f1, f2, f3, … , fw} 이며, h = g-r 일 수 있다. Ψ (e i) = (e i0, e i1, ..., e ik, ..., e iw -1), e ik ∈ {0, 1}, where Ψ is the function belongs to the elements belonging to the set of W in the set Z Element, and W = {0, 1, 2, ... , w-1}, Z = {f 1 , f 2 , f 3 , ... , f w }, and h = g- r .

상기 ei0, ei1, …, eik, …, eiw -1 중에서 k = ei+1 인 경우에만 '1'의 값을 가지고, 나머지는 모두 '0'의 값을 가지는 것일 수 있다.E i0 , e i1 , ... , eik , ... , e iw -1 may have a value of '1' only in the case of k = e i +1, and the rest may have a value of '0'.

본 발명의 다른 실시예에 따르면, 암호화된 데이터를 연산하는 방법에 있어서,According to another embodiment of the present invention, there is provided a method of computing encrypted data,

클라이언트가 연산하고자 하는 데이터를 공개키로 암호화하여 서버로 전송하는 단계;Encrypting data to be operated by a client with a public key and transmitting the encrypted data to a server;

상기 서버가, 상기 클라이언트로부터 전송받은 상기 공개키로 암호화된 데이터(이하, '공개키 암호화 데이터')(PKE(m)={PKE(mi)|1≤i≤n, i,n는 정수} = PKE(m1), PKE(m2), ... , PKE(mn))를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및(PKE (m) = {PKE (m i ) | 1? I? N, i, n is an integer) encrypted with the public key transmitted from the client = PKE (m 1 ), PKE (m 2 ), ..., PKE (m n ) into a data form encrypted by a completely isochronous or cantilever algorithm; And

상기 서버가, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(FHE(m)={FHE(mi)|1≤i≤n, i,n는 정수} = FHE(m1), FHE(m2), ... , FHE(mn))에 대하여 연산을 수행하는 단계;를 포함하는 것일 수 있다.(FHE (m) = {FHE (m i ) | 1? I? N, i, n (m i )) data encrypted by a completely isochronous or quasi-dynamic algorithm (M 1 ), FHE (m 1 ), FHE (m 2 ), ..., FHE (m n ).

상기 변환하는 단계는, Wherein the converting comprises:

상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(FHE(e))를 사용하는 것일 수 있다.(FHE (e)) encrypted by the completely isochronous or perturbative algorithm.

상기 공개키 암호화 데이터(PKE(mi))는 엘가말(EIGamal) 암호화 알고리즘 의해 암호화된 것으로서 다음The public key encryption data PKE (m i ) is encrypted by the EIGamal encryption algorithm,

PKE(mi) = (g-r, mi·yr)PKE (m i ) = (g -r , m i · y r )

과 같은 형태를 가지며, 여기서, r은 [0, |G|]에서 랜덤하게 선택되는 값이고, g는 G = {g, g2, .... , }로 정의되는 집합에서 선택되며, y =ge 이고, e는 비밀키를 의미하는 것일 수 있다., Where r is a randomly selected value in [0, | G |], g is selected from the set defined by G = {g, g 2 , ....}, y = g e , And e may be a secret key.

상기 비밀키(e)는 다음의 수식The secret key (e)

Figure 112013092597134-pat00007
Figure 112013092597134-pat00007

여기서, ei ∈ {0, 1},

Figure 112013092597134-pat00008
이며,Here, e i ∈ {0, 1},
Figure 112013092597134-pat00008
Lt;

에 의해 이진법(binary representation)으로 전개된 것일 수 있다.Which may be developed in binary representation.

상기 변환하는 단계는, Wherein the converting comprises:

상기 PKE(mi) = (g-r, mi·yr)를The PKE (m i ) = (g -r , m i · y r )

FHE(mi)로 변환하는 단계일 수 있다.Into FHE (m i ).

상기 변환하는 단계는, Wherein the converting comprises:

Figure 112013092597134-pat00009
Figure 112013092597134-pat00009

를 계산하는 단계를 포함하며, 여기서, h = g-r 일 수 있다., Where h = g- r . ≪ / RTI >

상기 변환하는 단계에서 사용하는 상기 암호화된 비밀키(FHE(e))는, 상기 서버가 상기 공개키를 이용하여 생성한 것이거나, 또는 상기 서버가 상기 클라이언트로부터 전송받은 것일 수 있다.The encrypted private key FHE (e) used in the transforming step may be generated by the server using the public key, or the server may be received from the client.

상기 서버는, 상기 연산에 곱셈 연산이 포함된 경우에는,The server, when the operation includes a multiplication operation,

상기 변환하는 단계를 수행하기 전에, Before performing the transforming step,

상기 공개키로 암호화된 데이터(PKE(m1), PKE(m2), ... , PKE(mn))들끼리 곱셈 연산을 먼저 하며,(PKE (m 1 ), PKE (m 2 ), ..., PKE (m n )) encrypted with the public key is performed first,

상기 변환하는 단계는, 상기 곱셈 연산의 결과에 대하여 수행되는 일 수 있다.The transforming step may be performed on the result of the multiplication operation.

상기 비밀키(e)는 다음의 수식The secret key (e)

Figure 112013092597134-pat00010
Figure 112013092597134-pat00010

에 의해 W 진법(W-ary representation)으로 전개된 일 수 있다.May be developed in a W-ary representation.

상기 변환하는 단계는, Wherein the converting comprises:

상기 PKE(mi) = (g-r, mi·yr)를 FHE(mi)로 변환하는 단계일 수 있다.And converting the PKE (m i ) = (g -r , m i · y r ) into FHE (m i ).

Figure 112013092597134-pat00011
Figure 112013092597134-pat00011

를 계산하는 단계를 포함하며, , ≪ / RTI >

여기서, k ∈ {0, 1, 2, … , w-1},Here, k ∈ {0, 1, 2, ... , w-1},

Ψ(ei) = (ei0, ei1, …, eik, …, eiw -1), eik ∈ {0, 1}, 여기서, 함수 Ψ는 집합 W 에 속한 원소를 집합 Z에 속한 원소로 변환하는 함수이며, W = {0, 1, 2, … , w-1}, Z = {f1, f2, f3, … , fw} 이며, h = g-r일 수 있다. Ψ (e i) = (e i0, e i1, ..., e ik, ..., e iw -1), e ik ∈ {0, 1}, where Ψ is the function belongs to the elements belonging to the set of W in the set Z Element, and W = {0, 1, 2, ... , w-1}, Z = {f 1 , f 2 , f 3 , ... , f w }, and h = g- r .

상기 (ei0, ei1, …, eik, …, eiw -1) 중에서 k = ei +1 인 경우에만 '1'의 값을 가지고, 나머지는 모두 '0'의 값을 가지는 것일 수 있다.The (e i0, e i1, ... , e ik, ..., e iw -1) In the case of k = e i 1 'only in the case of +1, and all of the others have a value of' 0 '.

상기 서버는, The server comprises:

상기 연산하는 단계의 연산 결과를 상기 클라이언트에게 전송하거나, 또는 And transmits the calculation result of the calculating step to the client, or

상기 연산하는 단계의 연산 결과를, 상기 완전동형 또는 준동형 알고리즘의 비밀키로 복호화하여 상기 클라이언트에게 전송하는 것일 수 있다.Decrypting the result of the operation in the calculating step with the secret key of the completely homogeneous or perceptual algorithm, and transmitting the decrypted result to the client.

본 발명의 다른 실시예에 따르면, 엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터를 연산하는 방법에 있어서,According to another embodiment of the present invention, there is provided a method of computing data encrypted by an EIGamal encryption algorithm,

엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및Converting the data encrypted by the EIGamal encryption algorithm into a data form encrypted by a fully isochronous or perturbed or perturbed algorithm; And

동형 또는 암호화 알고리즘에 의해 암호화된 형태의 데이터에 대하여 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 공개키로 암호화된 데이터를 연산하는 방법이 제공될 수 있다.And a step of performing an operation on data of a type that is encrypted by the same type or encryption algorithm, and a method of computing data encrypted with the public key.

상기 변환하는 단계는, Wherein the converting comprises:

상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(FHE(e))를 사용하는 것일 수 있다.(FHE (e)) encrypted by the completely isochronous or perturbative algorithm.

본 발명의 하나 이상의 실시예에 따르면, 연산 서버에 암호화 데이터를 전송할 때 엘가말 암호화 알고리즘과 같은 공개키 기반의 암호화 알고리즘을 사용할 수 있으므로, 암호화문의 크기가 현격히 작아진다.According to one or more embodiments of the present invention, the size of the encryption query may be significantly reduced since a public key based encryption algorithm such as an Elagar encryption algorithm may be used when transmitting encrypted data to a computation server.

본 발명의 하나 이상의 실시예에 따르면, 곱하기 연산을 하는 경우, 엘가말 암호문 상태로 연산이 가능하므로, 차수가 아무리 높아도 부트트랩핑을 할 필요 없이 연산이 가능하다.According to one or more embodiments of the present invention, since multiplication operation can be performed in the state of an Eligibility ciphertext, operations can be performed without boot trapping even if the degree is high.

연산 서버에서도 동형 암호화 알고리즘에 의해 암호화된 암호화문이 아닌 엘가말 암호화 알고리즘과 같은 공개키 기반의 암호화 알고리즘에 의해 암호화된 암호화문을 저장하므로, 부하가 적게 걸린다.The operation server also stores the encrypted statement encrypted by the public key-based encryption algorithm such as the Elgar encryption algorithm, not the encryption statement encrypted by the same encryption algorithm, so that the load is small.

도 1은 본 발명의 일 실시예에 따른 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화된 데이터를 연산하는 방법을 설명하기 위한 흐름도이고,
도 2는 본 발명의 일 실시예에 따른 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화된 데이터를 연산하는 시스템을 설명하기 위한 도면이고,
도 3 내지 도 5는 도 2의 일 실시예에 따른 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화된 데이터를 연산하는 시스템을 설명하기 위한 도면들이다.
FIG. 1 is a flowchart illustrating a method of computing encrypted data using an encryption algorithm and a public key encryption algorithm according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining a system for calculating encrypted data using an encryption algorithm and a public key encryption algorithm according to an embodiment of the present invention,
FIGS. 3 to 5 are diagrams for explaining a system for computing encrypted data using the same type of encryption algorithm and the public key encryption algorithm according to the embodiment of FIG.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 게재될 수도 있다는 것을 의미한다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features, and advantages of the present invention will become more readily apparent from the following description of preferred embodiments with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein but may be embodied in other forms. Rather, the embodiments disclosed herein are provided so that the disclosure can be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In this specification, when an element is referred to as being on another element, it means that it can be formed directly on the other element, or a third element may be placed therebetween.

어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다. It is to be understood that when an element, component, apparatus, or system is referred to as comprising a program or a component made up of software, it is not explicitly stated that the element, component, (E.g., memory, CPU, etc.) or other programs or software (e.g., drivers necessary to run an operating system or hardware, etc.)

또한 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.It is also to be understood that the elements (or components) may be implemented in software, hardware, or any form of software and hardware, unless the context clearly dictates otherwise.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. The terms "comprises" and / or "comprising" used in the specification do not exclude the presence or addition of one or more other elements.

이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다. Hereinafter, the present invention will be described in detail with reference to the drawings. In describing the specific embodiments below, various specific details have been set forth in order to explain the invention in greater detail and to assist in understanding it. However, it will be appreciated by those skilled in the art that the present invention may be understood by those skilled in the art without departing from such specific details. In some instances, it should be noted that portions of the invention that are not commonly known in the description of the invention and are not significantly related to the invention do not describe confusing reasons for explaining the present invention.

도 1은 본 발명의 일 실시예에 따른, 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화된 데이터를 연산하는 방법을 설명하기 위한 흐름도이다. 1 is a flowchart illustrating a method of computing encrypted data using an encryption algorithm and a public key encryption algorithm according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 암호화된 데이터를 연산하는 방법은, 연산하고자 하는 대상이 되는 데이터를 공개키로 암호화하는 단계(S101), S101 단계에서 암호화된 데이터를, 완전동형 또는 준동형 암호화 알고리즘에 의해 암호화된 형태로 변환하는 단계(S103), S103 단계의 수행결과를 이용하여 연산하는 단계(S105), 및 S105 단계의 연산결과를 복호화하는 단계(S107)를 포함할 수 있다. Referring to FIG. 1, a method of computing encrypted data according to an exemplary embodiment of the present invention includes encrypting data to be computed using a public key (S101), encrypting the encrypted data in step S101, (S103), a step S105 of performing the operation using the result of the operation of the step S103, and a step S107 of decrypting the operation result of the operation S105 have.

도 1을 참조하여 설명하고 있는 암호화된 데이터를 연산하는 방법은, 컴퓨터 장치(이하, '장치'라고도 함)에서 구현되며, 예를 들면 1개의 컴퓨터 장치 내에서 구현되거나 또는 2개 이상의 컴퓨터 장치로 분산되어 구현될 수 있다. The method of computing the encrypted data described with reference to FIG. 1 is implemented in a computer device (hereinafter also referred to as a " device ") and may be implemented, for example, in one computer device or in two or more computer devices And can be implemented in a distributed manner.

1개의 컴퓨터 장치 내에서 이루어지는 경우는, 서버 또는 클라이언트에서 S101, S103, S105, 및 S107가 수행되는 것이다. 한편, 본원 명세서에서 '서버'와 '클라이언트'는 각각 컴퓨터 프로세서(미도시), 메모리(미도시), 및 컴퓨터 프로세서의 제어하에 메모리로 로딩되어 동작하는 컴퓨터 프로그램 코드(미도시)를 포함하도록 구성된 장치를 의미하는 것으로 사용하기로 한다. In the case where it is performed in one computer device, S101, S103, S105, and S107 are performed in the server or the client. In the present description, 'server' and 'client' are each configured to include a computer processor (not shown), a memory (not shown), and computer program code (not shown) Device ".

2개 이상의 컴퓨터 장치에서 분산되어 이루어지는 경우는, 예를 들면, S101, S107 단계는 클라이언트에서 수행되고, S103 및 S105 단계는 서버에서 수행되는 경우일 수 있다. 다른 예를 들면, S101 단계는 클라이언트에서 수행되고, S103 , S105 단계, 및 S107 단계는 서버에서 수행되는 경우일 수 있다. 또 다른 예를 들면, S101 단계와 S107 단계는 클라이언트에서 수행되고, S103는 제1 서버에서 수행되고, S105 단계는 제2 서버에서 수행되는 경우일 수 있다. 또 다른 예를 들면, S101 단계는 클라이언트에서 수행되고, S103는 제1 서버에서 수행되고, S105 단계와 S107 단계는 제2 서버에서 수행되는 경우일 수 있다. In a case where the program is distributed in two or more computer devices, for example, steps S101 and S107 may be performed in the client, and steps S103 and S105 may be performed in the server. As another example, step S101 may be performed in the client, and steps S103, S105, and S107 may be performed in the server. As another example, steps S101 and S107 may be performed in the client, S103 may be performed in the first server, and step S105 may be performed in the second server. As another example, step S101 may be performed in the client, step S103 may be performed in the first server, and steps S105 and step S107 may be performed in the second server.

도 1을 참조하면, S101 단계는, 연산하고자 하는 대상이 되는 데이터를 공개키로 암호화하는 단계이다. Referring to FIG. 1, step S101 is a step of encrypting data to be processed with a public key.

S101 단계는, 공개키 암호화 알고리즘을 이용하여 연산하고자 하는 대상이 되는 데이터를 암호화하는 단계이다. 공개키 기반의 암호화 알고리즘으로서, 예를 들면 엘가말(ELGamal) 암호화 알고리즘(참조문헌: T. E. Gamal. A public key cryptosystem and a signature scheme based on discrete logarithms. In G. R. Blakley and D. Chaum, editors, Advances in Cryptology - CRYPTO 1984, volume 196 of Lecture Notes in Computer Sciences, pages 10-18. Springer, 1984.)을 들 수 있다. Step S101 is a step of encrypting the data to be operated using the public key encryption algorithm. As an encryption algorithm based on a public key, for example, an ELGamal encryption algorithm (see TE Gamal, A public key cryptosystem and a signature scheme based on discrete logarithms. In GR Blakley and D. Chaum, eds., Advances in Cryptology - CRYPTO 1984, volume 196 of Lecture Notes in Computer Sciences, pages 10-18 Springer, 1984.).

한편, 엘가말 암호화 알고리즘은 예시적인 것으로서, 본원 발명은 엘가말 암호화 알고리즘이 아닌 다른 타입의 공개키 기반의 암호화 알고리즘에도 적용될 수 있다.On the other hand, the ELGAR encryption algorithm is exemplary and the present invention can be applied to other types of public key based encryption algorithms other than the ELGAR encryption algorithm.

본 발명의 설명의 목적을 위해서, 연산하고자 하는 데이터(m)를 다음과 같이 표현하기로 한다.For purposes of the description of the present invention, the data m to be computed is expressed as follows.

M = {mi|1≤i≤n, i,n는 정수} = (m1, m2, ... mn) M = {m i | 1≤i≤n, i, n is an integer} = (m 1, m 2 , ... m n)

S101 단계가 수행되면, 데이터('m' 또는 'mi'로 표현하기로 한다)는 다음과 같이 공개키로 암호화된 데이터가 도출된다. When step S101 is performed, data ( denoted by 'm' or 'm i ') is derived from the data encrypted with the public key as follows.

PKE(m)={PKE(mi)|1≤i≤n, i,n는 정수} = PKE(m1), PKE(m2), ... , PKE(mn))PKE (m) = {PKE ( m i) | 1≤i≤n, i, n is an integer} = PKE (m 1), PKE (m 2), ..., PKE (m n))

여기서, PKE는 임의의 공개키 암호화 알고리즘을 나타내며, PKE는 예를 들면 엘가말 암호화 알고리즘일 수 있다는 것은 전술한 바와 같다.Here, it is described that the PKE represents any public key encryption algorithm, and the PKE can be, for example, an Elgar encryption algorithm.

즉, S101 단계에서는 공개키와 공개키 기반의 암호화 알고리즘을 사용하여 연산하고자 하는 데이터(mi)를 암호화한다That is, in step S101, the data m i to be computed is encrypted using the public key and the encryption algorithm based on the public key

S101 단계가 엘가말 암호화 알고리즘에 의해 수행되는 경우, PKE(m)는 다음과 같은 형태로 표현될 수 있다. When the step S101 is performed by the ELGARE encryption algorithm, PKE (m) can be expressed in the following form.

Figure 112013092597134-pat00012
Figure 112013092597134-pat00012

여기서, r은 [0, |G|]에서 랜덤하게 선택되는 값이고, g는 그룹 발생기에 의해 생성되는 값이며, 그룹 생성기는 G = {g, g2, .... , }로 정의되는 집합에서 g를 선택하며, y =ge 이다. 여기서, e는 비밀키를 의미하며, (g, y = ge)는 공개키이다. Where r is a randomly selected value in [0, | G |], g is a value generated by the group generator, and the group generator is defined as G = {g, g 2 , ....} Select g in the set, y = g e to be. Here, e means a secret key, and (g, y = g e ) is a public key.

이상과 같이 정의되면 다음과 같은 조건을 만족하게 된다. When defined as above, the following conditions are satisfied.

(g-r)e·m·yr = (g-r)e·m·(ge)r = m
(g- r ) e · m · y r = (g- r ) e m (g e ) r = m

S103 단계는, S101 단계에서 암호화된 데이터를, 완전동형 또는 준동형 암호화 알고리즘에 의해 암호화된 형태로 변환하는 단계이다. Step S103 is a step of converting the encrypted data in the step S101 into a form encrypted with a completely homogeneous or perceptual type encryption algorithm.

본 단계에서 사용되는 완전동형(Fully Homomorphic Encryption) 또는 준동형 암호화 알고리즘은 암호화문에 대하여 연산을 지원할 수 있는 알고리즘이다. 완전동형 암호화 알고리즘은 리플레쉬라는 기법에 의해 암호화된 상태에서의 연산의 지원 횟수가 무한대인 암호화 알고리즘이고, 준동형 암호화 알고리즘은 암호화된 상태에서의 연산의 지원 횟수가 제한되어 있어서 소정 횟수 이상 연산을 하게 되면 더 이상의 연산이 불가능한 암호화 알고리즘이다. The Fully Homomorphic Encryption or Perceptual Encryption algorithm used in this step is an algorithm that can support operations on ciphertext. A completely homogeneous encryption algorithm is an encryption algorithm that supports infinite number of operations in a state of being encrypted by a technique called refresh, and the number of times of support of operations in an encrypted state is limited. Is an encryption algorithm that can no longer be operated on.

본원 발명에서 사용가능한 완전동형 또는 준동형 암호화 알고리즘은 종래 알려진 어떠한 것이라도 사용가능하며, 장래 개발될 알고리즘도 사용이 가능하다. Any completely homogeneous or perceptual type encryption algorithm that can be used in the present invention can be used in any known manner, and an algorithm to be developed in the future can also be used.

본 발명의 설명의 목적을 위해서, 본원 명세서에서는 '동형 암호화 알고리즘'이라고 함은, '완전 동형 암호화 알고리즘' 또는 '준동형 암호화 알고리즘'을 모두 포함하는 의미로 사용하기로 한다. For the purposes of the present description, the term " homogeneous encryption algorithm " is used herein to mean both a 'completely homogeneous encryption algorithm' or a 'perceptual encryption algorithm'.

S103 단계가 수행되면, 다음과 같이 동형 암호화 알고리즘에 의해 암호화된 형태로 변환된다.When the step S103 is performed, it is converted into a form encrypted by the same type encryption algorithm as follows.

FHE(m)={FHE(mi)|1≤i≤n, i,n는 정수} = FHE(m1), FHE(m2), ... , FHE(mn))FHE (m) = {FHE ( m i) | 1≤i≤n, i, n is an integer} = FHE (m 1), FHE (m 2), ..., FHE (m n))

여기서, 본 발명의 설명의 목적을 위해, 'FHE'는 완전 동형 암호화 알고리즘과 준동형 암호화 알고리즘을 모두 포함하는 의미로 사용하기로 한다. Here, for the purpose of description of the present invention, 'FHE' shall be used to mean both a completely homogeneous encryption algorithm and a perceptual encryption algorithm.

즉, S103 단계는, PKE(mi)를 FHE(mi)로 변환하는 동작을 수행하며, 예를 들면 다음과 같다.That is, in step S103, the operation of converting PKE (m i ) into FHE (m i ) is performed, for example, as follows.

PKE(m1) --> FHE(m1), PKE(m2) --> FHE(m2), ... , PKE(mn) --> FHE(mn) PKE (m 1) -> FHE (m 1), PKE (m 2) -> FHE (m 2), ..., PKE (m n) -> FHE (m n)

S103 단계에서는, 상기와 같은 변환 동작을 수행함에 있어서, 암호화된 비밀키(FHE(e))를 사용한다. 여기서, 암호화된 비밀키(FHE(e))는, S101 단계에서 사용된 공개키에 대응이 되는 비밀키가 암호화된 것으로서, 동형 암호화 알고리즘에 의해 암호화된 것이다. In step S103, an encrypted private key (FHE (e)) is used in performing the above-described conversion operation. Here, the encrypted secret key (FHE (e)) is one obtained by encrypting the secret key corresponding to the public key used in step S101, and encrypted by the same type encryption algorithm.

본 발명의 일 실시예에 따르면, S103 단계에서 사용되는 암호화된 비밀키(FHE(e))는, 다음의 수식에 의해 이진법(binary representation)으로 전개된 비밀키가 동형 암호화 알고리즘에 의해 암호화된 것이다.According to an embodiment of the present invention, the encrypted secret key (FHE (e)) used in step S103 is one in which the secret key developed in binary representation by the following equation is encrypted by the same type of encryption algorithm .

Figure 112013092597134-pat00013
Figure 112013092597134-pat00013

여기서, ei ∈ {0, 1},

Figure 112013092597134-pat00014
로 정의된다.Here, e i ∈ {0, 1},
Figure 112013092597134-pat00014
.

Figure 112013092597134-pat00015
은(여기서, 2는 밑이고 e는 지수를 의미), log2e보다 작은 정수들 중에서 가장 큰 정수를 의미한다. 예를 들면, log2e 가 10.7이 나왔다면 ℓ은 10이 된다.
Figure 112013092597134-pat00015
(Where 2 means lower and e means exponent) and log 2 is the largest integer of integers less than e. For example, if log 2 e is 10.7, then l is 10.

본 실시예에서, S103 단계는, S101 단계에서 사용된 공개키에 대응이 되는 비밀키가 수학식 2에 의해 이진법으로 전개(참조문헌: C.Gentry and S.halevi. Fully homomorphic encryption without squashing using depth-3 arithmetic circuits. In R. Ostrovsky, editor, IEEE 52 nd Annual Symposium on Foundations of Computer Science - FOCS 2011, pages 107-109, IEEE, 2011)되고, 이렇게 이진법으로 전개된 비밀키를 동형 암호화 알고리즘에 의해 암호화한 것을 이용한다.In this embodiment, in step S103, the secret key corresponding to the public key used in step S101 is expanded in a binary manner according to equation (2) (C.Gentry and S. Halevi, Fully homomorphic encryption without squashing using depth -3 arithmetic circuits. In R. Ostrovsky, editor, I EEE 52 nd Annual Symposium on Foundations of Computer Science - FOCS 2011, pages 107-109, IEEE, 2011), and uses a secret key developed by the binary method encrypted by the same type encryption algorithm.

만약 상기 수식 2에 의해 이진법으로 전개된 비밀키를 동형 암호화 알고리즘에 의해 암호화한 것을 사용한다면, S103 단계는 다음과 같은 수식에 의해 변환동작을 수행할 수 있다. If the secret key developed by the binary method according to Equation (2) is encrypted by the same type encryption algorithm, step S103 may perform the conversion operation according to the following equation.

Figure 112013092597134-pat00016
Figure 112013092597134-pat00016

여기서, h=g-r 이다.Here, h = g- r .

본 수식 3을 사용하여 S103 단계가 수행되면 다음과 같은 데이터들이 산출된다. When step S103 is performed using Equation (3), the following data are calculated.

FHE(m1), FHE(m2), ... , FHE(mn)
FHE (m 1 ), FHE (m 2 ), ..., FHE (m n )

본 발명의 다른 실시예에 따르면, S103 단계에서 사용되는 암호화된 비밀키(FHE(e))는, 다음의 수식에 의해 W 진법(W-ary representation)으로 전개된 것일 수 있다.According to another embodiment of the present invention, the encrypted secret key FHE (e) used in step S103 may be developed into a W-ary representation by the following equation.

Figure 112013092597134-pat00017
Figure 112013092597134-pat00017

본 실시예에 따르면, S103 단계는, S101 단계에서 사용된 공개키에 대응이 되는 비밀키가 수식 4에 의해 W 진법으로 전개되고, 이렇게 W 진법으로 전개된 비밀키를 동형 암호화 알고리즘에 의해 암호화한 것을 이용한다. According to the present embodiment, in step S103, the secret key corresponding to the public key used in step S101 is developed by the W-ary method according to equation (4), and the secret key developed in the W- .

상기 수식 4에 의해 w 진법으로 전개된 비밀키를 동형 암호화 알고리즘에 의해 암호화한 것을 사용한다면, S103 단계는 다음과 같은 수식에 의해 변환동작을 수행할 수 있다. If the secret key developed by the winshage method according to Equation (4) is encrypted by the same type encryption algorithm, step S103 can perform the conversion operation according to the following equation.

Figure 112013092597134-pat00018
Figure 112013092597134-pat00018

여기서, k ∈ {0, 1, 2, … , w-1},Here, k ∈ {0, 1, 2, ... , w-1},

Ψ(ei) = (ei0, ei1, …, eik, …, eiw -1), eik ∈ {0, 1}, 여기서, 함수 Ψ는 집합 W 에 속한 원소를 집합 Z에 속한 원소로 변환하는 함수이며, W = {0, 1, 2, … , w-1}, Z = {f1, f2, f3, … , fw} 이며,

Figure 112013092597134-pat00019
이고, h = g-r 이다. 여기서, w는 밑이고 e는 지수를 의미하며, log2e보다 작은 정수들 중에서 가장 큰 정수를 의미한다. 예를 들면, log2e 가 10.7이 나왔다면 ℓ은 10이 된다. Ψ (e i) = (e i0, e i1, ..., e ik, ..., e iw -1), e ik ∈ {0, 1}, where Ψ is the function belongs to the elements belonging to the set of W in the set Z Element, and W = {0, 1, 2, ... , w-1}, Z = {f 1 , f 2 , f 3 , ... , f w }
Figure 112013092597134-pat00019
, And h = g- r . Where w is the base and e means exponent, which means the largest integer among integers smaller than log 2 e. For example, if log 2 e is 10.7, then l is 10.

상기 수식 5를 사용하여 S103 단계가 수행되면 다음과 같은 데이터들이 산출된다. When the step S103 is performed using the equation 5, the following data are calculated.

FHE(m1), FHE(m2), ... , FHE(mn)
FHE (m 1 ), FHE (m 2 ), ..., FHE (m n )

한편, 본 발명의 일 실시예에 따르면,(ei0, ei1, …, eik, …, eiw -1) 중에서 k = ei +1 인 경우에만 '1'의 값을 가지고, 나머지는 모두 '0'의 값을 가지는 것으로 정의될 수 있다. 이러한 경우, f1, f2, f3, … , fw - 1는 다음과 같이 기술할 수 있다.According to an embodiment of the present invention, (e i0 , e i1 , ..., e ik , ..., e iw -1 ) In the case of k = e i 1 'only in the case of +1, and the rest are all defined as having a value of' 0 '. In this case, f 1 , f 2 , f 3 , ... , f w - 1 can be described as follows.

f1 = (1, 0, 0, ... , 0) f 1 = (1, 0, 0, ..., 0)

f2 = (0, 1, 0, ... , 0)f 2 = (0, 1, 0, ..., 0)

f3 = (0, 0, 1, ... , 0)f 3 = (0, 0, 1, ..., 0)

...

fw -1= (0, 0, 0, ... , 1)f w -1 = (0, 0, 0, ..., 1)

위와 같이, (ei0, ei1, …, eik, …, eiw -1) 중에서 k = ei +1 인 경우에 '1'의 값을 가지고, 나머지는 모두 '0'의 값을 가지는 것으로 정의되며, Ψ(ei)는 다음과 같이 기술할 수 있다.(E i0 , e i1 , ..., e ik , ..., e iw -1 ) In the case of k = e i Is defined as having a value of '1' in the case of +1 and all values of '0' in the others, and Ψ (e i ) can be described as follows.

Ψ(e0)= (e00, e01, … e0w -1)Ψ (e 0 ) = (e 00 , e 01 , ... e 0w -1 )

Ψ(e1) = (e10, e11, … e1w -1)Ψ (e 1 ) = (e 10 , e 11 , ... e 1w -1 )

Ψ(e2) = (e20, e21, … e2w -1)Ψ (e2) = (e20, e21, ... e2w -One)

                 ...

Ψ(ew)= (e0, ew1, … eww -1)Ψ (e w ) = (e 0 , e w1 , ... e ww -1 )

S103 단계에서, 상기와 같은 Ψ(ei)를 수식 5에 적용하여 계산하면, 다음과 같은 데이터들이 산출될 수 있다.In step S103, the following data can be calculated by applying Ψ (e i ) as described above to equation (5).

FHE(m1), FHE(m2), ... , FHE(mn)
FHE (m 1 ), FHE (m 2 ), ..., FHE (m n )

상기 실시예들에서, 수식 2와 수식 5를 예로 들어서 설명한 암호화된 비밀키(FHE(e))는, 예를 들면, S103 단계가 수행되는 장치(예를 들면, 서버)에서 생성된 것이거나(이러한 경우, S103 단계를 수행하는 장치는 비밀키(e)를 알고 있어야 함), 또는 S101 단계가 수행되는 장치(예를 들면, 클라이언트)에서 생성된 후, S103 단계가 수행되는 장치로 전송될 수 있다.
In the above embodiments, the encrypted secret key (FHE (e)) described by way of example in Equation 2 and Equation 5 is generated (for example, from a device (e.g., a server) In this case, the device performing step S103 must know the secret key e), or may be generated in a device (e.g., a client) where step S101 is performed and then sent to the device on which step S103 is performed have.

S105 단계는, S103 단계에 의해 동형 암호화 알고리즘 형태로 변환된 데이터들을 연산하는 단계이다. 예를 들면, S105 단계에서 수행하고자 하는 연산이 a(m) = m1 + m2 + 3m3 라고 가정하면, S105 단계에서는, S103 단계에서 산출된 데이터들로부터 다음과 같은 연산을 수행한다. Step S105 is a step of calculating data converted into the same type of encryption algorithm in step S103. For example, assuming that the operation to be performed in step S105 a (m) = m 1 + m 2 + 3m 3, in step S105, and performs the following operations from the data calculated in step S103.

FHE(m1)+FHE(m2)+3FHE(m3)FHE (m 1 ) + FHE (m 2 ) + 3FHE (m 3 )

다른 예를 들면, S105 단계에서 수행하고자 하는 연산이 a(m) = m1 · m2 + 3m3 라고 가정하면, S105 단계에서는, S103 단계에서 산출된 데이터들로부터 다음과 같은 연산을 수행한다. As another example, assuming that the operation to be performed at S105 step a (m) = m 1 · m 2 + 3m 3, in step S105, and performs the following operations from the data calculated in the S103 step.

FHE(m1)· FHE(m2)+3FHE(m3)FHE (m 1 ) FHE (m 2 ) + 3 FHE (m 3 )

S107 단계는, S105 단계에 의해 연산된 결과에 대하여 복호화하는 동작이다. 동형 암호화 알고리즘에 의해 암호화된 데이터의 복호화는 동형 암호화에 사용된 공개키에 대응되는 비밀키를 사용하여 복호화할 수 있다. 한편, 상술한 바와 같이 S107 단계를 수행하는 장치는 S103 및/또는 S105 단계를 수행하는 장치와 동일(또는 상이)할 수 있다. Step S107 is an operation for decoding the result calculated in step S105. The decryption of the data encrypted by the same encryption algorithm can be decrypted using the secret key corresponding to the public key used for the same type of encryption. On the other hand, the apparatus for performing the step S107 as described above may be the same (or different) as the apparatus for performing the steps S103 and / or S105.

도 2는 본 발명의 일 실시예에 따른, 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화된 데이터를 연산하는 시스템을 설명하기 위한 도면이다. 2 is a diagram for explaining a system for computing encrypted data using the same encryption algorithm and a public key encryption algorithm according to an embodiment of the present invention.

도 2를 참조하여, 본 발명의 일 실시예에 따른 암호화된 데이터를 연산하는 시스템(이하, '본 시스템'라고 함)은, 적어도 하나의 클라이언트(C1, C2, C3)와 서버(100)를 포함할 수 있다. Referring to FIG. 2, a system for computing encrypted data (hereinafter referred to as "the present system") according to an embodiment of the present invention includes at least one client (C1, C2, C3) .

본 실시예에서, 서버(100)는 메모리(101), 컴퓨터 프로세서(103), 및 저장부(105)를 포함할 수 있으며, 메모리(101)에는 컴퓨터 프로세서(103)의 제어하에 동작하는 컴퓨터 프로그램이 저장되어 있다. 저장부(105)에는 서버(100)의 동작을 위해 필요한 컴퓨터 프로그램과 데이터가 저장된다. In the present embodiment, the server 100 may include a memory 101, a computer processor 103, and a storage unit 105, and the memory 101 may include a computer program running under the control of the computer processor 103 Is stored. The storage unit 105 stores computer programs and data necessary for the operation of the server 100.

본 실시예에 따르면, 저장부(105)는, 동형 암호화 알고리즘에 의해 암호화된 비밀키(여기서, 비밀키는 연산대상이 되는 데이터를 암호화하는 데 사용된 공개키에 대응되는 것임)와, 동형 암호화 알고리즘의 공개키를 저장하고 있을 수 있다. 본 실시예에서, 저장부(105)는 상술한 수식을 수행하는데 필요한 데이터를 추가적으로 저장할 수 있다. According to the present embodiment, the storage unit 105 stores the secret key encrypted by the same encryption algorithm (here, the secret key corresponds to the public key used to encrypt the data to be computed) And may store the public key of the algorithm. In this embodiment, the storage unit 105 may additionally store data necessary for performing the above-described formula.

다른 실시예에 따르면, 저장부(105)는, 연산대상이 되는 데이터를 암호화하는데 사용된 공개키에 대응되는 비밀키, 동형 암호화 알고리즘의 비밀키와 공개키를 저장할 수 있다. 본 다른 실시예에서, 저장부(105)는 상술한 수식을 수행하는데 필요한 데이터를 추가적으로 저장할 수 있다. According to another embodiment, the storage unit 105 may store a secret key corresponding to a public key used to encrypt data to be computed, a secret key of the same type encryption algorithm, and a public key. In this alternative embodiment, the storage unit 105 may additionally store the data necessary to perform the above-described equations.

상술한 실시예들에서, 저장부(105)에 저장된 데이터들의 적어도 일부는 메모리(101)에 로딩되어, 상기 컴퓨터 프로그램 코드의 동작에 사용될 수 있다. In the embodiments described above, at least some of the data stored in the storage unit 105 may be loaded into the memory 101 and used for operation of the computer program code.

상술한 실시예들에서, 저장부(105)에 저장된 데이터들의 적어도 일부는, 서버(100)가 추가적으로 포함하는 다른 메모리(미도시)(예를 들면, 비휘발성 메모리)에 저장될 수 있다. In the embodiments described above, at least some of the data stored in the storage unit 105 may be stored in another memory (not shown) (e.g., nonvolatile memory) that the server 100 additionally includes.

상기 컴퓨터 프로그램 코드는 후술하겠지만, S101 내지 S107 단계 중 적어도 어느 하나 이상을 수행하도록 구현될 수 있다. The computer program code may be implemented to perform at least one of steps S101 to S107 as described later.

다르게는, 서버(100)는 S101 내지 S107 단계 중 적어도 어느 일부는 하드웨어(미도시)가 수행하도록 하고, 나머지 부분에 대하여 상기 컴퓨터 프로그램 코드가 수행하도록 구현이 가능하다. Alternatively, the server 100 may be configured so that at least some of steps S101 through S107 are performed by hardware (not shown), and the computer program code executes the remaining part.

본 시스템은, 도 1을 참조하여 설명한 암호화를 연산하는 방법들을 수행할 수 있다. 이하에는, 도 1과 도 2를 같이 참조하여, 도 2에 도시된 시스템의 다양한 실시예들에 대하여 설명하기로 한다.
The system can perform the methods of computing the encryption described with reference to FIG. Hereinafter, various embodiments of the system shown in FIG. 2 will be described with reference to FIGS. 1 and 2. FIG.

제1실시예First Embodiment

제1실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101 단계를 수행하고, 서버(100)는 S103 내지 S107 단계를 수행하도록 구성된다.According to the first embodiment, at least one of the clients C1, C2, and C3 performs step S101, and the server 100 is configured to perform steps S103 to S107.

제1실시예를 설명하면, 클라이언트들 중 적어도 하나의 클라이언트(이하, '클라이언트')는 S101 단계를 수행하고, 그 수행결과를 서버(100)로 전송한다. 서버(100)는, 클라이언트로부터 전송받은 암호화된 데이터(즉, 공개키 기반 알고리즘에 의해 암호화된 데이터)를 동형 암호화 알고리즘에 의해 암호화된 형태로 변환하고(S103), 서버(100)는 S103 단계에서 변환된 암호화 데이터에 대하여 연산을 하고(S105), 연산을 한 후(S107) 클라이언트에게 전송한다. In the first embodiment, at least one client (hereinafter referred to as 'client') performs steps S101 and transmits the result of the operation to the server 100. [ The server 100 converts the encrypted data (i.e., the data encrypted by the public key based algorithm) transmitted from the client into the encrypted form by the same type encryption algorithm (S103), and the server 100 (S105), and performs calculation (S107) to the client.

클라이언트가 S101 단계를 수행할 때, 공개키 기반의 암호화 알고리즘을 이용하여, 연산하고자 하는 데이터를 암호화한다. 일 실시예로서, 클라이언트는 엘가말 암호화 알고리즘에 의해, 연산하고자 하는 데이터를 암호화할 수 있다. When the client performs step S101, it encrypts the data to be operated using a public key-based encryption algorithm. In one embodiment, the client may encrypt the data that it intends to operate, by means of an algorithmic encryption algorithm.

서버(100)가 S103 단계를 수행할 때, 상기 클라이언트로부터 수신한 공개키 암호화 데이터를, 동형 암호화 알고리즘에 의해 암호화된 형태로 변환한다. When the server 100 performs step S103, it converts the public key encrypted data received from the client into an encrypted form by the same type encryption algorithm.

서버(100)가 S103 단계를 수행할 때 사용하는 '암호화된 비밀키(FHE(e))'는, 다음의 수식 2에 의해 이진법(binary representation)으로 전개된 비밀키가 동형 암호화 알고리즘에 의해 암호화된 것일 수 있다. 이러한 경우, 서버(100)는, 수식 2을 사용하여 S103 단계를 수행한다. The encrypted secret key (FHE (e)) used by the server 100 in step S103 is a secret key generated in binary representation by the following equation (2) . In this case, the server 100 performs step S103 using Equation (2).

다르게는, 서버(100)가 S103 단계를 수행할 때 사용하는 '암호화된 비밀키(FHE(e))'는, 다음의 수식 4에 의해 W 진법(binary representation)으로 전개된 비밀키가 동형 암호화 알고리즘에 의해 암호화된 것일 수 있다. 이러한 경우, 서버(100)는, 수식 5를 사용하여 S103 단계를 수행한다.Alternatively, the 'encrypted secret key (FHE (e))' used by the server 100 in step S103 may be generated by encrypting the secret key developed in the binary representation according to Equation (4) It may be encrypted by an algorithm. In this case, the server 100 performs step S103 using Equation (5).

도 4는 본 시스템에 따른 일 실시예를 설명하기 위한 것으로서, 제1실시예의 이해를 위한 도면이다.FIG. 4 is a view for explaining an embodiment according to the present system, and an understanding of the first embodiment.

도 4를 참조하여 본 제1실시예를 설명하면, 클라이언트는 연산할 데이터를 공개키 암호화 알고리즘을 사용하여 암호화하여, 서버(100)로 전송한다. 서버(100)는 클라이언트로부터 전송받은 암호화 데이터를, 동형 암호화 알고리즘에 의해 암호화된 형태로 변환하고, 변환결과를 이용하여 연산을 한다. 이후, 서버(100)는 연산 결과를 상기 동형 암호화 알고리즘의 공개키와 대응이 되는 비밀키를 이용하여 복호화한다. 그리고, 서버(100)는 상기 복호화 결과를 클라이언트에게 전송한다.4, the client encrypts data to be computed using a public key encryption algorithm, and transmits the encrypted data to the server 100. [ The server 100 converts the encrypted data received from the client into a form encrypted by the same type encryption algorithm, and performs calculation using the result of the conversion. Thereafter, the server 100 decrypts the operation result using the secret key corresponding to the public key of the isomorphic encryption algorithm. Then, the server 100 transmits the decryption result to the client.

이상 설명한 것 외에 각 단계에 대한 보다 상세한 설명은 도 1을 참조하여 설명한 부분을 참조하기 바란다.
For a more detailed description of each step than those described above, please refer to the section described with reference to FIG.

제2실시예Second Embodiment

제2실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101 단계, S107 단계를 수행하고, 서버(100)는 S103 내지 S105 단계를 수행하도록 구성될 수 있다. According to the second embodiment, at least one of the clients C1, C2, and C3 may perform steps S101 and S107, and the server 100 may be configured to perform steps S103 through S105.

제2실시예와 제1실시예와의 차이점은, S107 단계가 서버(100)가 아닌 클라이언트에서 수행된다는 것이다. The difference between the second embodiment and the first embodiment is that step S107 is performed in the client, not in the server 100. [

도 3은 본 시스템에 따른 일 실시예를 설명하기 위한 것으로서, 구체적으로는 제2실시예의 이해를 위한 도면이다.FIG. 3 is a view for explaining an embodiment according to the present system, specifically, an understanding of the second embodiment.

도 3을 참조하여 제2실시예를 설명하면, 클라이언트는 연산할 데이터를 공개키 암호화 알고리즘을 사용하여 암호화하여, 서버(100)로 전송한다. 서버(100)는 클라이언트로부터 전송받은 암호화 데이터를, 동형 암호화 알고리즘에 의해 암호화된 형태로 변환하고, 변환결과를 이용하여 연산을 한다. 이후, 서버(100)는 연산 결과를 클라이언트로 전송하며, 클라이언트는 서버(100)로부터 수신한 연산 결과를, 상기 동형 암호화 알고리즘의 공개키와 대응이 되는 비밀키를 이용하여 복호화한다.3, the client encrypts data to be computed using a public key encryption algorithm, and transmits the encrypted data to the server 100. [ The server 100 converts the encrypted data received from the client into a form encrypted by the same type encryption algorithm, and performs calculation using the result of the conversion. Thereafter, the server 100 transmits the operation result to the client, and the client decrypts the operation result received from the server 100 by using the secret key corresponding to the public key of the same type encryption algorithm.

제2실시예에서 수행하는 각 단계에 대한 보다 구체적인 설명은, 도 1을 참조하여 설명한 부분을 참조하기 바란다.
For a more detailed description of each step performed in the second embodiment, please refer to the portion described with reference to Fig.

제3실시예Third Embodiment

제3실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101, S105, S107 단계를 수행하고, 서버(100)는 S103 단계를 수행하도록 구성될 수 있다. According to the third embodiment, at least one of the clients C1, C2, and C3 performs steps S101, S105, and S107, and the server 100 may be configured to perform step S103.

제3실시예와 제1실시예와의 차이점은, S105 단계와 S107 단계가 서버(100)가 아닌 클라이언트에서 수행된다는 것이다. The difference between the third embodiment and the first embodiment is that steps S105 and S107 are performed by the client rather than the server 100. [

즉, 제2실시예에 따르면, 서버(100)는 S103 단계의 수행결과를 클라이언트로 전송하며, 클라이언트는 S103 단계의 수행결과를 전송받아서 S105와 S107 단계를 수행할 수 있다. 제2실시예에서 수행하는 각 단계에 대한 구체적인 설명은, 도 1을 참조하여 설명한 부분을 참조하기 바란다.
That is, according to the second embodiment, the server 100 transmits the execution result of step S103 to the client, and the client can receive the execution result of step S103 and perform steps S105 and S107. For a detailed description of each step performed in the second embodiment, please refer to the portion described with reference to Fig.

제4실시예Fourth Embodiment

제4실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101, S107 단계를 수행하고, 서버(100)는 S103 내지 S105 단계를 수행하도록 구성하되, S103 단계의 수행이전에 S102 단계를 더 수행할 수 있다. According to the fourth embodiment, at least one of the clients C1, C2, and C3 performs steps S101 and S107, and the server 100 is configured to perform steps S103 through S105, but before step S103, Step can be further performed.

즉, 클라이언트가 S101 단계를 수행한 후 수행결과를 서버(100)로 전송하면, 서버(100)는 S102 단계, S103, S105 단계를 수행하고 수행결과를 클라이언트에게 전송한다. 이후, 클라이언트는 S107 단계를 수행한다. That is, when the client performs step S101 and transmits the execution result to the server 100, the server 100 performs steps S102, S103, and S105 and transmits the execution result to the client. Thereafter, the client performs step S107.

제4실시예에서 수행하는 각 단계에 대한 구체적인 설명은, 도 1을 참조하여 설명한 부분을 참조하기 바란다For a detailed description of each step performed in the fourth embodiment, see the description with reference to Fig. 1

한편, S102 단계(미표시)는, 도 5를 참조하여 설명하기로 한다. On the other hand, step S102 (not shown) will be described with reference to FIG.

도 5는 본 발명의 일 실시예에 따른 시스템을 설명하기 위한 도면으로서, 상술한 제4실시예를 설명하기 위한 도면이다.5 is a diagram for explaining a system according to an embodiment of the present invention, and is a diagram for explaining the fourth embodiment described above.

도 5를 참조하면, 클라이언트(C1)는 연산할 데이터를 엘가말 암호화 알고리즘에 의해 암호화를 하고, 암호화 결과를 서버(100)로 전송한다. Referring to FIG. 5, the client C1 encrypts the data to be operated by the ElGarn encryption algorithm, and transmits the encryption result to the server 100. [

서버(100)는, 클라이언트(C1)로부터 수신한 암호화된 데이터에 대하여, 곱셈 연산을 한다(S102 단계). 이것이 가능한 이유는 엘가말 암호화 알고리즘에 의해 암호화된 데이터는 암호화된 상태에서 곱셈 연산이 가능하기 때문이다. The server 100 performs a multiplication operation on the encrypted data received from the client C1 (step S102). This is because the data encrypted by the ELG encoding algorithm can be multiplied in the encrypted state.

서버(100)는, 곱셈 연산이 끝나면, 곱셈 연산의 결과물들에 대하여, 동형 암호화 알고리즘에 의해 암호화된 데이터 형태로 변환한다. After completing the multiplication operation, the server 100 converts the results of the multiplication operation into data types encrypted by the same type encryption algorithm.

계속하여, 서버(100)는 나머지 남은 연산을 수행하며, 연산 결과를 클라이언트에게 전송한다. Subsequently, the server 100 performs the remaining operations and transmits the operation result to the client.

클라이언트는, 서버(100)로부터 수신한 연산 결과를, 동형 암호화 알고리즘에 사용된 공개키에 대응되는 비밀키를 사용하여 복호화한다. The client decrypts the operation result received from the server 100 by using the secret key corresponding to the public key used in the same type of encryption algorithm.

본 발명의 설명의 목적을 위해서, 수행하고자 하는 연산이 a(m) = m1 · m2 + 3m3 라고 가정하고 도 5의 실시예를 설명하기로 한다. For purposes of the present description, the embodiment of FIG. 5 will be described assuming that the operation to be performed is a (m) = m 1 · m 2 + 3m 3 .

클라이언트(C1)는 연산할 데이터( m1, m2, m3 )를 엘가말 암호화 알고리즘에 의해 암호화를 하고, 암호화 결과(PKE(m1), PKE(m2), PKE(m3))를 서버(100)로 전송한다. The client C1 sends data (m 1 , m 2 , m 3 ) to be calculated Encryption by Elgar end encryption algorithm, and transmits the encryption result (PKE (m 1), PKE (m 2), PKE (m 3)) to the server (100).

서버(100)는, 클라이언트(C1)로부터 수신한 암호화된 데이터(PKE(m1), PKE(m2), PKE(m3))에 대하여, 곱셈 연산할 부분을 판단하고, 곱셈 연산이 필요한 부분에 대하여 곱셈 연산을 한다(S102 단계). The server 100 to the client (C1) the encrypted data received from (PKE (m 1), PKE (m 2), PKE (m 3)), and determining the portion to be a multiply operation, requires a multiplication operation (Step S102).

PKE(m1)· PKE(m2) = PKE(m1m2)PKE (m 1 ) · PKE (m 2 ) = PKE (m 1 m 2 )

서버(100)는, 곱셈 연산이 끝나면, 곱셈 연산의 결과물(PKE(m1m2))과, PKE(m3)를, 동형 암호화 알고리즘에 의해 암호화된 데이터 형태로 변환한다. 본 예에서, 변환결과는 FHE(m1m2)와 FHE(m3)이다.After completing the multiplication operation, the server 100 converts the result (PKE (m 1 m 2 )) of the multiplication operation and PKE (m 3 ) into the data type encrypted by the same encryption algorithm. In this example, the conversion results are FHE (m 1 m 2 ) and FHE (m 3 ).

서버(100)는, 상기 변환 결과를 이용하여, 곱셈 연산을 제외한 나머지 연산을 수행한다, 즉, FHE(m1m2)+ 3FHE(m3)를 연산하며, 그 결과를 클라이언트로 전송된다.The server 100 performs the operations other than the multiplication operation using the conversion result, that is, calculates FHE (m 1 m 2 ) + 3FHE (m 3 ), and the result is transmitted to the client.

클라이언트는, 서버(100)로부터 수신한 연산 결과를, 동형 암호화 알고리즘에 사용된 공개키에 대응되는 비밀키를 사용하여 복호화한다. The client decrypts the operation result received from the server 100 by using the secret key corresponding to the public key used in the same type of encryption algorithm.

상기와 같이 본 발명적 개념은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명적 개념은 상기의 실시예에 한정되는 것은 아니며, 본 발명적 개념이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명적 개념의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Various modifications and variations are possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by equivalents to the scope of the appended claims, as well as the appended claims.

100: 서버
101: 메모리
103: 컴퓨터 프로세서
105: 저장부
100: Server
101: Memory
103: Computer processor
105:

Claims (27)

공개키로 암호화된 데이터를 연산하는 서버에 있어서,
메모리, 컴퓨터 프로세서, 및 상기 컴퓨터 프로세서에 의해 상기 메모리에 로딩되어 실행되는 컴퓨터 프로그램 코드;를 포함하며,
상기 컴퓨터 프로그램 코드는,
공개키로 암호화된 데이터(이하, '공개키 암호화 데이터')(PKE(m)={PKE(mi)|1≤i≤n, i,n는 정수} = PKE(m1), PKE(m2), ... , PKE(mn))를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및
완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(FHE(m)={FHE(mi)|1≤i≤n, i,n는 정수} = FHE(m1), FHE(m2), ... , FHE(mn))에 대하여 연산을 수행하는 단계;를 포함하며
상기 변환하는 단계는,
상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(FHE(e))를 사용하는 것을 특징으로 하는 서버.
A server for computing data encrypted with a public key,
And computer program code that is loaded into and executed by the computer processor in the memory,
The computer program code comprising:
PKE (m) = PKE (m i ) | 1? I? N, i, n is an integer) = PKE (m 1 ), PKE 2 ), ..., PKE (m n )) into a data form encrypted by a completely isochronous or perturbative algorithm; And
(FHE (m) = {FHE (m i ) | 1? I? N, i, n is an integer) = (FHE FHE (m 1 ), FHE (m 2 ), ..., FHE (m n )
Wherein the converting comprises:
Wherein the secret key (FHE (e)) encrypted by the completely homogeneous or perceptual algorithm is used.
삭제delete 제1항에 있어서,
상기 공개키 암호화 데이터(PKE(mi))는 엘가말(EIGamal) 암호화 알고리즘 의해 암호화된 것으로서 다음
PKE(mi) = (g-r, mi·yr)
과 같은 형태를 가지며, 여기서, r은 [0, |G|]에서 랜덤하게 선택되는 값이고, g는 G = {g, g2, .... , }로 정의되는 집합에서 선택되며, y =ge 이고, e는 비밀키를 의미하는 것인, 서버.
The method according to claim 1,
The public key encryption data PKE (m i ) is encrypted by the EIGamal encryption algorithm,
PKE (m i ) = (g -r , m i · y r )
, Where r is a randomly selected value in [0, | G |], g is selected from the set defined by G = {g, g 2 , ....}, y = g e , and e is a secret key.
제3항에 있어서,
상기 비밀키(e)는 다음의 수식
Figure 112013092597134-pat00020

(여기서, ei ∈ {0, 1},
Figure 112013092597134-pat00021
로 정의됨)
에 의해 이진법(binary representation)으로 전개된 것임을 특징으로 하는 서버.
The method of claim 3,
The secret key (e)
Figure 112013092597134-pat00020

(Where e i ∈ {0, 1},
Figure 112013092597134-pat00021
)
Wherein the server is deployed in a binary representation.
제4항에 있어서,
상기 변환하는 단계는,
상기 PKE(mi) = (g-r, mi·yr)를
FHE(mi)로 변환하는 단계인 것을 특징으로 하는 서버.
5. The method of claim 4,
Wherein the converting comprises:
The PKE (m i ) = (g -r , m i · y r )
To FHE (m i ).
제5항에 있어서,
상기 변환하는 단계는,
Figure 112013092597134-pat00022

를 계산하는 단계를 포함하며, 여기서, h = g-r 인 것을 특징으로 하는, 서버.
6. The method of claim 5,
Wherein the converting comprises:
Figure 112013092597134-pat00022

, Wherein h = g- r . ≪ / RTI >
제6항에 있어서,
상기 변환하는 단계에서 사용하는 상기 암호화된 비밀키(FHE(e))는, 상기 서버가 상기 공개키를 이용하여 생성한 것이거나, 또는 상기 서버가 외부 장치로부터 전송받은 것임을 특징으로 하는, 서버.
The method according to claim 6,
Wherein the encrypted secret key FHE (e) used in the transforming step is generated by the server using the public key, or the server is received from an external device.
제3항에 있어서,
상기 컴퓨터 프로그램 코드는, 상기 연산에 곱셈 연산이 포함된 경우에는,
상기 변환하는 단계를 수행하기 전에,
상기 공개키로 암호화된 데이터(PKE(m1), PKE(m2), ... , PKE(mn))들끼리 곱셈 연산을 먼저 하며,
상기 변환하는 단계는, 상기 곱셈 연산의 결과에 대하여 수행되는 것을 특징으로 하는, 서버.
The method of claim 3,
The computer program code, when a multiplication operation is included in the operation,
Before performing the transforming step,
(PKE (m 1 ), PKE (m 2 ), ..., PKE (m n )) encrypted with the public key is performed first,
Wherein the step of transforming is performed on the result of the multiplication operation.
제3항에 있어서,
상기 비밀키(e)는 다음의 수식
Figure 112013092597134-pat00023

에 의해 W 진법(W-ary representation)으로 전개된 것임을 특징으로 하는 서버.
The method of claim 3,
The secret key (e)
Figure 112013092597134-pat00023

Wherein the server is developed in a W-ary representation.
제9항에 있어서,
상기 변환하는 단계는,
상기 PKE(mi) = (g-r, mi·yr)를 FHE(mi)로 변환하는 단계인 것을 특징으로 하는 서버.
10. The method of claim 9,
Wherein the converting comprises:
And converting the PKE (m i ) = (g -r , m i · y r ) into FHE (m i ).
제10항에 있어서,
상기 변환하는 단계는,
Figure 112013092597134-pat00024

를 계산하는 단계를 포함하며,
여기서, k ∈ {0, 1, 2, … , w-1},
Ψ(ei) = (ei0, ei1, …, eik, …, eiw -1) , eik ∈ {0, 1}, 여기서, 함수 Ψ는 집합 W 에 속한 원소를 집합 Z에 속한 원소로 변환하는 함수이며, W = {0, 1, 2, … , w-1}, Z = {f1, f2, f3, … , fw} 이며, h = g-r 인 것을 특징으로 하는, 서버.
11. The method of claim 10,
Wherein the converting comprises:
Figure 112013092597134-pat00024

, ≪ / RTI >
Here, k ∈ {0, 1, 2, ... , w-1},
(E i ) = (e i0 , e i1 , ..., e ik , ..., e iw -1 ) , e ik ∈ {0, 1}, where the function Ψ is a function that converts an element belonging to set W into an element belonging to set Z, and W = {0, 1, 2, ... , w-1}, Z = {f 1 , f 2 , f 3 , ... , f w }, and h = g- r .
제11항에 있어서,
상기 (ei0, ei1, …, eik, …, eiw -1) 중에서 k = ei +1 인 경우에만 '1'의 값을 가지고, 나머지는 모두 '0'의 값을 가지는 것을 특징으로 하는 서버.
12. The method of claim 11,
The (e i0, e i1, ... , e ik, ..., e iw -1) In the case of k = e i 1 " only in the case of " 1 ", and all of the other values are " 0 ".
암호화된 데이터를 연산하는 방법에 있어서,
클라이언트가 연산하고자 하는 데이터를 공개키로 암호화하여 서버로 전송하는 단계;
상기 서버가, 상기 클라이언트로부터 전송받은 상기 공개키로 암호화된 데이터(이하, '공개키 암호화 데이터')(PKE(m)={PKE(mi)|1≤i≤n, i,n는 정수} = PKE(m1), PKE(m2), ... , PKE(mn))를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및
상기 서버가, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(FHE(m)={FHE(mi)|1≤i≤n, i,n는 정수} = FHE(m1), FHE(m2), ... , FHE(mn))에 대하여 연산을 수행하는 단계;를 포함하며,
상기 변환하는 단계는,
상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(FHE(e))를 사용하는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
A method for computing encrypted data,
Encrypting data to be operated by a client with a public key and transmitting the encrypted data to a server;
(PKE (m) = {PKE (m i ) | 1? I? N, i, n is an integer) encrypted with the public key transmitted from the client = PKE (m 1 ), PKE (m 2 ), ..., PKE (m n ) into a data form encrypted by a completely isochronous or cantilever algorithm; And
(FHE (m) = {FHE (m i ) | 1? I? N, i, n (m i )) data encrypted by a completely isochronous or quasi-dynamic algorithm Performing an operation on an integer FHE (m 1 ), FHE (m 2 ), ..., FHE (m n )
Wherein the converting comprises:
Using a secret key (FHE (e)) encrypted by the completely homogeneous or perturbative algorithm.
삭제delete 제13항에 있어서,
상기 공개키 암호화 데이터(PKE(mi))는 엘가말(EIGamal) 암호화 알고리즘 의해 암호화된 것으로서 다음
PKE(mi) = (g-r, mi·yr)
과 같은 형태를 가지며, 여기서, r은 [0, |G|]에서 랜덤하게 선택되는 값이고, g는 G = {g, g2, .... , }로 정의되는 집합에서 선택되며, y =ge 이고, e는 비밀키를 의미하는 것인, 암호화된 데이터를 연산하는 방법.
14. The method of claim 13,
The public key encryption data PKE (m i ) is encrypted by the EIGamal encryption algorithm,
PKE (m i ) = (g -r , m i · y r )
, Where r is a randomly selected value in [0, | G |], g is selected from the set defined by G = {g, g 2 , ....}, y = g e , and e is a secret key.
제15항에 있어서,
상기 비밀키(e)는 다음의 수식
Figure 112013092597134-pat00025

(여기서, ei ∈ {0, 1},
Figure 112013092597134-pat00026
임)
에 의해 이진법(binary representation)으로 전개된 것임을 특징으로 하는 암호화된 데이터를 연산하는 방법.
16. The method of claim 15,
The secret key (e)
Figure 112013092597134-pat00025

(Where e i ∈ {0, 1},
Figure 112013092597134-pat00026
being)
Wherein the encrypted data is developed in a binary representation by means of a computer.
제16항에 있어서,
상기 변환하는 단계는,
상기 PKE(mi) = (g-r, mi·yr)를
FHE(mi)로 변환하는 단계인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
17. The method of claim 16,
Wherein the converting comprises:
The PKE (m i ) = (g -r , m i · y r )
FHE < / RTI > (m i ).
제17항에 있어서,
상기 변환하는 단계는,
Figure 112013092597134-pat00027

를 계산하는 단계를 포함하며, 여기서, h = g-r 인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
18. The method of claim 17,
Wherein the converting comprises:
Figure 112013092597134-pat00027

, Wherein h = g- r . ≪ / RTI >
제18항에 있어서,
상기 변환하는 단계에서 사용하는 상기 암호화된 비밀키(FHE(e))는, 상기 서버가 상기 공개키를 이용하여 생성한 것이거나, 또는 상기 서버가 상기 클라이언트로부터 전송받은 것임을 특징으로 하는 암호화된 데이터를 연산하는 방법.
19. The method of claim 18,
Characterized in that the encrypted secret key (FHE (e)) used in the transforming step is generated by the server using the public key or is transmitted from the client / RTI >
제15항에 있어서,
상기 서버는, 상기 연산에 곱셈 연산이 포함된 경우에는,
상기 변환하는 단계를 수행하기 전에,
상기 공개키로 암호화된 데이터(PKE(m1), PKE(m2), ... , PKE(mn))들끼리 곱셈 연산을 먼저 하며,
상기 변환하는 단계는, 상기 곱셈 연산의 결과에 대하여 수행되는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
16. The method of claim 15,
The server, when the operation includes a multiplication operation,
Before performing the transforming step,
(PKE (m 1 ), PKE (m 2 ), ..., PKE (m n )) encrypted with the public key is performed first,
Wherein the step of transforming is performed on the result of the multiplication operation.
제15항에 있어서,
상기 비밀키(e)는 다음의 수식
Figure 112013092597134-pat00028

에 의해 W 진법(W-ary representation)으로 전개된 것임을 특징으로 하는 암호화된 데이터를 연산하는 방법.
16. The method of claim 15,
The secret key (e)
Figure 112013092597134-pat00028

Wherein the W-ary representation is developed by a W-ary representation.
제21항에 있어서,
상기 변환하는 단계는,
상기 PKE(mi) = (g-r, mi·yr)를 FHE(mi)로 변환하는 단계인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
22. The method of claim 21,
Wherein the converting comprises:
Wherein the step of converting the PKE (m i ) = (g -r , m i , y r ) into FHE (m i ).
제22항에 있어서,
상기 변환하는 단계는,
Figure 112013092597134-pat00029

를 계산하는 단계를 포함하며,
여기서, k ∈ {0, 1, 2, … , w-1},
Ψ(ei) = (ei0, ei1, …, eik, …, eiw -1), eik ∈ {0, 1}, 여기서, 함수 Ψ는 집합 W 에 속한 원소를 집합 Z에 속한 원소로 변환하는 함수이며, W = {0, 1, 2, … , w-1}, Z = {f1, f2, f3, … , fw} 이며, h = g-r 인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
23. The method of claim 22,
Wherein the converting comprises:
Figure 112013092597134-pat00029

, ≪ / RTI >
Here, k ∈ {0, 1, 2, ... , w-1},
Ψ (e i) = (e i0, e i1, ..., e ik, ..., e iw -1), e ik ∈ {0, 1}, where Ψ is the function belongs to the elements belonging to the set of W in the set Z Element, and W = {0, 1, 2, ... , w-1}, Z = {f 1 , f 2 , f 3 , ... , f w }, and h = g- r .
제23항에 있어서,
상기 (ei0, ei1, …, eik, …, eiw -1) 중에서 k=ei +1 인 경우에만 '1'의 값을 가지고, 나머지는 모두 '0'의 값을 가지는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
24. The method of claim 23,
The (e i0, e i1, ... , e ik, ..., e iw -1) Between has a value of '1' only in the case of k = e i +1, and all of the values have a value of '0'.
제13항에 있어서,
상기 서버는,
상기 연산하는 단계의 연산 결과를 상기 클라이언트에게 전송하거나, 또는
상기 연산하는 단계의 연산 결과를, 상기 완전동형 또는 준동형 알고리즘의 비밀키로 복호화하여 상기 클라이언트에게 전송하는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
14. The method of claim 13,
The server comprises:
And transmits the calculation result of the calculating step to the client, or
And decrypting the result of the operation in the calculating step with a secret key of the completely isomorphic or perceptual algorithm and transmitting the decrypted result to the client.
엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터를 연산하는 방법에 있어서,
엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및
상기 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태로 변환된 데이터에 대하여 연산을 수행하는 단계;를 포함하고,
상기 엘가말(EIGamal) 암호화 알고리즘에 의해 암호화된 데이터는 다음
PKE(mi) = (g-r, mi·yr)
과 같은 형태를 가지며, 여기서, r은 [0, |G|]에서 랜덤하게 선택되는 값이고, g는 G = {g, g2, .... , }로 정의되는 집합에서 선택되며, y =ge 이고, e는 비밀키를 의미하고,
상기 변환하는 단계는,
상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(FHE(e))를 사용하여
상기 PKE(mi) = (g-r, mi·yr)를
FHE(mi)로 변환하는 단계인 것을 특징으로 하는 공개키로 암호화된 데이터를 연산하는 방법.
A method for computing data encrypted by an EIGamal encryption algorithm,
Converting the data encrypted by the EIGamal encryption algorithm into a data form encrypted by a fully isochronous or perceptual algorithm; And
And performing an operation on data converted into an encrypted form by the completely isochronous or quasi-dynamic algorithm,
The data encrypted by the above EIGamal encryption algorithm is
PKE (m i ) = (g -r , m i · y r )
, Where r is a randomly selected value in [0, | G |], g is selected from the set defined by G = {g, g 2 , ....}, y = g e , e means a secret key,
Wherein the converting comprises:
Using the secret key (FHE (e)) encrypted by the completely homogeneous or perceptual algorithm
The PKE (m i ) = (g -r , m i · y r )
FHE < / RTI > (mi). ≪ / RTI >
삭제delete
KR1020130122048A 2013-10-14 2013-10-14 Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same KR101608515B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130122048A KR101608515B1 (en) 2013-10-14 2013-10-14 Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130122048A KR101608515B1 (en) 2013-10-14 2013-10-14 Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same

Publications (2)

Publication Number Publication Date
KR20150043062A KR20150043062A (en) 2015-04-22
KR101608515B1 true KR101608515B1 (en) 2016-04-01

Family

ID=53035936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130122048A KR101608515B1 (en) 2013-10-14 2013-10-14 Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same

Country Status (1)

Country Link
KR (1) KR101608515B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption
US11671239B2 (en) 2020-05-08 2023-06-06 Samsung Electronics Co., Ltd. Encryption method and apparatus based on homomorphic encryption using odd function property
US11870889B2 (en) 2021-02-23 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus with homomorphic encryption

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101971215B1 (en) * 2016-06-17 2019-04-22 서울대학교산학협력단 Homomorphic Encryption Method Supporting Floating-Point Arithmetic and Floating-Point Arithmetic Method for Encrypted Message Generated by the Same
KR101833323B1 (en) 2018-01-12 2018-02-28 한국스마트인증 주식회사 Method for Confirming Statement by Use of Block Chain Which Guarantees Anonymity and Prevents Sybil Attack
CN111125788B (en) * 2019-12-26 2020-11-10 南京星环智能科技有限公司 Encryption calculation method, computer equipment and storage medium
US11546134B2 (en) 2020-04-16 2023-01-03 Samsung Electronics Co., Ltd. Method and apparatus for processing ciphertext based on homomorphic encryption
US11558172B2 (en) 2020-04-22 2023-01-17 Samsung Electronics Co., Ltd. Encryption method and apparatus based on homomorphic encryption using composition of functions
KR102337865B1 (en) * 2020-10-28 2021-12-10 주식회사 더블체인 Homomorphic encryption-based arithmetic operation system and arithmetic operation method using the same
KR20230087983A (en) 2021-12-10 2023-06-19 강석진 System for dghv-based fully homomorphic encryption and calculation method using the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671239B2 (en) 2020-05-08 2023-06-06 Samsung Electronics Co., Ltd. Encryption method and apparatus based on homomorphic encryption using odd function property
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption
US11870889B2 (en) 2021-02-23 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus with homomorphic encryption

Also Published As

Publication number Publication date
KR20150043062A (en) 2015-04-22

Similar Documents

Publication Publication Date Title
KR101608515B1 (en) Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same
JP6083234B2 (en) Cryptographic processing device
JP5966877B2 (en) Decryption method, decryption program, decryption device, and key generation method
Bos et al. Improved security for a ring-based fully homomorphic encryption scheme
EP2936731B1 (en) Managed secure computations on encrypted data
KR101600016B1 (en) method of encrypting data using Homomorphic Encryption and Computing device performing the method
EP2924911B1 (en) Secure pattern matching using somewhat homomorphic encryption
KR102251697B1 (en) Encryption apparatus, method for encryption and computer-readable recording medium
US9374220B2 (en) System and method for providing compressed encryption and decryption in homomorphic encryption based on integers
JP2016012111A (en) Encryption processing method, encryption processing device, and encryption processing program
KR101618941B1 (en) Computation Method of encrypted data using Homomorphic Encryption and Pairing-based Encryption and Server using the same
US20150312028A1 (en) Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
US11277256B2 (en) Ciphertext comparison method using homomorphic encryption and apparatus for performing the same
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
US20090185680A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, and program
US20100329447A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, and program
CN114866221A (en) Improved addition homomorphic encryption method supporting floating point operation
JP2010049213A (en) Encrypting device, decrypting device, cipher communication system, method and program
Qu et al. Improved cryptanalysis of a fully homomorphic symmetric encryption scheme
Akiyama et al. A public-key encryption scheme based on non-linear indeterminate equations
US20220247550A1 (en) Fully homomorphic encryption from error canceling set systems
US11558171B2 (en) Apparatus and method for encryption, apparatus and method for converting ciphertext
JP5300374B2 (en) Expression conversion device, arithmetic device, expression conversion method, and program
JP5354994B2 (en) Apparatus and program for performing data compression processing using algebraic torus
JP6093719B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, AND PROGRAM

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200217

Year of fee payment: 5