KR20160017226A - Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same - Google Patents

Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same Download PDF

Info

Publication number
KR20160017226A
KR20160017226A KR1020140098808A KR20140098808A KR20160017226A KR 20160017226 A KR20160017226 A KR 20160017226A KR 1020140098808 A KR1020140098808 A KR 1020140098808A KR 20140098808 A KR20140098808 A KR 20140098808A KR 20160017226 A KR20160017226 A KR 20160017226A
Authority
KR
South Korea
Prior art keywords
encryption
acd
computer
method based
quot
Prior art date
Application number
KR1020140098808A
Other languages
Korean (ko)
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 KR1020140098808A priority Critical patent/KR20160017226A/en
Publication of KR20160017226A publication Critical patent/KR20160017226A/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

According to an embodiment of the present invention, provided is an additive homomorphic encryption and decryption method based on a co-ACD problem, and an apparatus for using the same. The additive homomorphic encryption based on a co-ACD problem comprises the following steps: randomizing data to be calculated; and calculating the randomized data in a modular manner.

Description

co-ACD 문제 기반의 부가적 동형 암호화 및 복호화 방법과 이를 이용하는 장치{Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same}[0001] The present invention relates to an additional homogeneous encryption and decryption method based on a co-ACD problem, and a device using the same homomorphic encryption and decryption method based on co-

본 발명은 co-ACD 문제 기반의 부가적 동형 암호화 및 복호화 방법과 이를 이용하는 장치에 관한 것이다.The present invention relates to an additional isochronous encryption and decryption method based on a co-ACD problem and an apparatus using the same.

부가적 동형 암호화 방법(Additive Homomorphic Encryption)은 많은 분야에 사용되며, 예를 들면, 암호화 프로토콜(cryptographic protocol)을 설계하는데 기본적인 도구가 된다. Additive Homomorphic Encryption is used in many fields, for example, as a basic tool for designing a cryptographic protocol.

암호화 프로토콜(cryptographic protocol)의 예를 들면 oblivious pseudorandom functions, oblivious transfer, private information retrieval, secure 2-party computations 일 수 있다(S. Jarecki and X. Liu. Efficient oblivious pseudorandom function with applications to adaptive and secure computation of set intersection. In O. Reingold, editor, Theory of Bryptography (TCC) 2009, volume 5444 of LNCS, pages 577-594, Springer, 2009.; M. Freedman, K. Nissim, and B. Pinkas. Efficient private matching and set-intersection. In C. Cachin and J. Camenisch, editors. EUROCRYPT 2004, volume 3027 of LNCS, pages 1-19. Springer-Verlag, 2004; R. Ostrovsk and W. E. S. III. A survey of single-database private information retrieval: Techniques and applications. In T. Okamoto and X. Wang, editors, Public Key Cryptography (PKC) 2007, volume 4450 of LNCS, pages 393-411, Springer, 2007)Examples of cryptographic protocols are oblivious pseudorandom functions, oblivious transfer, private information retrieval, and secure 2-party computations (S. Jarecki and X. Liu, Efficient oblivious pseudorandom functions with applications to adaptive and secure computation of Ellen, E., and E. Pinkas, Efficient private matching and set intersection, In O. Reingold, Editor, Theory of Bryptography (TCC) 2009, volume 5444 of LNCS, pages 577-594, Springer, set-intersection. In C. Cachin and J. Camenisch, editors. EUROCRYPT 2004, volume 3027 of LNCS, pages 1-19 Springer-Verlag, 2004. R. Ostrovsk and WES III. : Techniques and applications. In T. Okamoto and X. Wang, Editors, Public Key Cryptography (2007), volume 4450 of LNCS, pages 393-411, Springer, 2007)

본 발명의 일 실시예에 따르면 co-ACD 문제 기반의 부가적 동형 암호화 및 복호화 방법과 이를 이용하는 장치가 제공될 수 있다.According to an embodiment of the present invention, an additional isochronous encryption and decryption method based on a co-ACD problem and an apparatus using the same can be provided.

본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 방법은, 연산하고자 하는 대상이 되는 데이터(M)를 랜덤화하는 단계, 랜덤화된 데이터에 대하여 모듈러 연산하는 단계를 포함할 수 있다. An additional isochronous encryption method based on a co-ACD problem according to an embodiment of the present invention includes a step of randomizing data M to be operated on, and a step of performing a modular operation on randomized data .

본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 방법에 의해 암호화된 암호문을 복호화하는 방법은, 암호화문( C )을 C1과 C2로 파싱하는 단계, S105 단계의 수행결과에 대하여 CRT 연산을 하는 단계, 및 CRT 연산결과에 대하여 모듈러 연산하는 단계(S109)를 포함할 수 있다.A method of decrypting a cipher text encrypted by an additional isochronous encryption method based on a co-ACD problem according to an embodiment of the present invention includes parsing an encrypted statement ( C ) into C 1 and C 2 , performing step S105 Performing a CRT operation on the result, and performing a modular operation on the CRT operation result (S109).

본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 및 복호화 방법과 이를 이용한 장치는 모듈러 연산이나 덧셈 연산과 같이 간단한 동작들을 통해서 암호화 및 복호화를 구현할 수 있다. The additional isochronous encryption and decryption method based on the co-ACD problem according to an embodiment of the present invention and the apparatus using it can implement encryption and decryption through simple operations such as modular operation and addition operation.

도 1은 본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 및 복호화 방법을 설명하기 위한 방법이고,
도 2는 본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 방법을 사용하는 컴퓨터 장치를 설명하기 위한 도면이고, 그리고
도 3은 본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 방법에 의해 암호화된 암호문을 복호화하는 방법을 사용하는 컴퓨터 장치를 설명하기 위한 도면이다.
FIG. 1 is a diagram for explaining an additional isochronous encryption and decryption method based on a co-ACD problem according to an embodiment of the present invention,
FIG. 2 illustrates a computer apparatus using an additional isochronous encryption method based on a co-ACD problem according to an embodiment of the present invention, and FIG.
3 is a diagram for explaining a computer apparatus using a method of decrypting a cipher text encrypted by an additional isochronous encryption method based on a co-ACD problem according to an embodiment of the present invention.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 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.

용어Terms

Figure pat00001
: 벡터를 의미하며, 설명의 편의를 위해서 화살표를 위에 표시한 '
Figure pat00002
'표현과 언더라인을 표시한 ' C '표현을 같은 의미로서 혼용하여 사용하기로 하며, 도면들에서는 화살표를 이용한 표현을 사용하였고, 상세한 설명에서는 언더라인으로 표현하였음.
Figure pat00001
: Means vector, and for convenience of explanation,
Figure pat00002
'And the' C ' expression indicating the expression and the underline are used as the same meaning. In the drawings, the expression using the arrow is used, and in the detailed description, the expression is expressed by the underline.

서버, 클라이언트: '서버'와 '클라이언트'는 각각 컴퓨터 프로세서(미도시), 메모리(미도시), 및 컴퓨터 프로세서의 제어하에 메모리로 로딩되어 동작하는 컴퓨터 프로그램 코드(미도시)를 포함하도록 구성된 장치를 의미함.
Server " and " client " are each configured to include a computer processor (not shown), memory (not shown), and computer program code (not shown) .

도 1은 본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 및 복호화 방법을 설명하기 위한 방법이다.1 is a method for explaining an additional isochronous encryption and decryption method based on a co-ACD problem according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 방법은, 연산하고자 하는 대상이 되는 데이터(M)를 랜덤화하는 단계(S101), S101 단계에서 랜덤화된 데이터에 대하여 모듈러 연산하는 단계(S103), S103 단계의 수행결과인 암호화문( C )을 C1과 C2로 파싱하는 단계(S105), S105 단계의 수행결과에 대하여 CRT 연산을 하는 단계(S107), 및 S107 연산결과에 대하여 모듈러 연산하는 단계(S109)를 포함할 수 있다. Referring to FIG. 1, a method according to an embodiment of the present invention includes randomizing (M) data to be processed (S101), performing a modular operation on randomized data in step S101 (S103), parse the encrypted statement ( C ) as the result of step S103 into C 1 and C 2 (S105), perform a CRT operation on the result of step S105 (S107), and S107 And modular operation (S109).

도 1을 계속 참조하면, S101와 S103 단계는 암호화를 위한 동작들이고, S105, S107, 및 S109 단계는 복호화를 위한 동작들임을 알 수 있으며, 여기서 암호화 동작들과, 복호화 동작들은 1개의 컴퓨터 장치 내에서 이루어지거나, 또는 암호화 동작들을 수행하는 컴퓨터 장치와, 복호화 동작들을 수행하는 컴퓨터 장치는 서로 다른 장치일 수 있다. 예를 들면, 암호화 동작들을 수행하는 컴퓨터 장치는 서버 컴퓨터이고, 복호화 동작들을 수행하는 컴퓨터 장치는 클라이언트 컴퓨터이거나, 반대로 암호화 동작들을 수행하는 컴퓨터 장치가 클라이언트 컴퓨터이고, 복호화 동작들을 수행하는 컴퓨터 장치는 서버 컴퓨터일 수 있다.1, it can be seen that steps S101 and S103 are operations for encryption, and steps S105, S107, and S109 are operations for decryption, wherein the encryption operations and the decryption operations are performed in one computer device Or a computer device that performs encryption operations and a computer device that performs decryption operations may be different devices. For example, a computer device that performs encryption operations is a server computer, a computer device that performs decryption operations is a client computer, or, conversely, a computer device that performs encryption operations is a client computer, Lt; / RTI >

도 1을 참조하여 설명하고 있는 암호화를 위한 동작들(예를 들면, S101와 S103 단계)은, 컴퓨터 장치(이하, '장치'라고도 함)에서 구현되며, 예를 들면 1개의 컴퓨터 장치 내에서 구현되거나 또는 2개 이상의 컴퓨터 장치로 분산되어 구현될 수 있고, S101 단계와 S103 단계는 하드웨어(예를 들면, 칩) 및/또는 컴퓨터 프로그램 코드에 의해 구현될 수 있다. 또한, 도 1을 참조하여 설명하고 있는 복호화를 위한 동작들(예를 들면, S105, S107, S109 단계)도, 컴퓨터 장치(이하, '장치'라고도 함)에서 구현되며, 예를 들면 1개의 컴퓨터 장치 내에서 구현되거나 또는 2개 이상의 컴퓨터 장치로 분산되어 구현될 수 있고, S105, S107, S109 단계는, 하드웨어(예를 들면, 칩) 및/또는 컴퓨터 프로그램 코드에 의해 구현될 수 있다. The operations for encrypting (e.g., steps S101 and S103) described with reference to FIG. 1 are implemented in a computer device (hereinafter also referred to as a "device") and are implemented, for example, in one computer device Or distributed over two or more computer devices, and steps S101 and S103 may be implemented by hardware (e.g., a chip) and / or computer program code. The operations (S105, S107, and S109) for decoding described with reference to FIG. 1 are also implemented in a computer device (hereinafter also referred to as an "apparatus"), The steps S105, S107, and S109 may be implemented by hardware (e.g., a chip) and / or computer program code.

도 1을 참조하면, S101 단계는, 다음 수학식 1을 수행하는 단계로서, 연산하고자 하는 대상이 되는 데이터(M)에 대하여 에러(e)를 부가하여 랜덤화하는 단계이다.
Referring to FIG. 1, step S101 is a step of performing the following equation (1), wherein an error e is added to data M to be an object to be calculated and is randomized.

<수학식 1>&Quot; (1) &quot;

M + eQ
M + eQ

여기서, eQ는 e와 Q의 내적을 의미하며, e는 에러(error)로서 예를 들면 양의 정수일 수 있으며, 시큐어리티 파라미터(: security parameter)가 정해지면 e ∈ [0, 2λ] 을 만족한다. 그리고, 여기서, [0, 2λ] 표현은, 0 부터 2λ까지 존재하는 양의 정수들을 원소로서 가지는 집합을 의미한다. Here, eQ denotes the inner product of e and Q, e can be an error, for example, a positive integer, and when a security parameter is defined, e ∈ [0, 2 λ ] is satisfied do. Here, [0, 2 ? ] Represents a set having positive integers existing from 0 to 2 ? As an element.

Q는 메시지 공간의 크기(size of the message space)를 의미하며, 양의 정수로서 Q < N 으로 정의된다. Q is the size of the message space, defined as Q <N as a positive integer.

이하에서는, 설명의 편의를 위해서 M + eQ 연산 결과를 M' 로 표현하기로 한다. Hereinafter, for convenience of explanation, the M + eQ operation result is represented by M '.

도 1을 계속 참조하면, S103 단계는, 비밀키(sk)(또는 '대칭키'라고도 함)를 이용하여 S101 단계의 결과물 M'에 대하여 다음 수학식 2로 정의된 수식을 수행하는 단계로서, 모듈러 연산을 수행하는 단계이다.
1, step S103 is a step of performing an equation defined by the following equation (2) on an output M 'of step S101 using a secret key sk (or a' symmetric key '), And performs a modular operation.

<수학식 2>&Quot; (2) &quot;

(M' mod p1, M' mod p2)
(M 'mod p 1 , M' mod p 2 )

이하에서는, 설명의 편의를 위해서 (M' mod p1, M' mod p2)를 벡터 C 로 표현하기로 한다. mod 는 모듈러 연산자로서, M' mod p1는 M'를 p1으로 나누어 모듈러를 계산하는 것이고, M' mod p2 는 M'를 p2으로 나누어 모듈러를 계산하는 것이다.Hereinafter, for convenience of explanation, (M 'mod p 1 , M' mod p 2 ) will be represented by a vector C. mod is a modulo operator, M 'mod p 1 is to compute modulo by dividing M' by p 1 , and M 'mod p 2 Is to compute modulo by dividing M 'by p 2 .

여기서, p1 과 p2는 gcd (Q, pi) = 1을 만족하는 서로 다른 소수이고, 그리고 p1 과 p2는 비트를 가지며, N = p1 p2 로 정의된다. gcd는 최대 공약수를 의미하는 연산자이다. Here, p 1 And p 2 are different prime numbers satisfying gcd (Q, p i ) = 1, and p 1 And p 2 have bits, and N = p 1 p 2 . gcd is an operator that means the greatest common divisor.

한편, P = {pi|1≤i≤k, i,k는 정수} = (p1, p2, ... pk) 이며, 여기서, p1, p2, ... pk 는 어떤 쌍을 선택하더라도 항상 서로 소(coprime)이다. 이처럼, p가 k개인 경우 N는 다음과 같이 보다 일반화된 수학식으로 표현이 가능하다.
On the other hand, P = {p i | 1≤i≤k, i, k is an integer} = (p 1, p 2 , ... p k) , where, p 1, p 2, ... p k Is always coprime no matter which pair is chosen. In this way, if p is k, N can be expressed by the more generalized equation as follows.

<수학식 3>&Quot; (3) &quot;

Figure pat00003

Figure pat00003

한편, 본 발명의 설명의 목적을 위해서 고유 양의 정수(unique positive integer)

Figure pat00004
가 다음 수학식으로 정의된다. 여기
For purposes of the present description, the term &quot; unique positive integer &quot;
Figure pat00004
Is defined by the following equation. here

<수학식 4>&Quot; (4) &quot;

Figure pat00005

Figure pat00005

즉,

Figure pat00006
는, {
Figure pat00007
|1≤i<N, i, N는 양의 정수} 로 정의되는 집합의 일(一) 원소이다.
In other words,
Figure pat00006
Is {
Figure pat00007
(1) i <N, i, N is a positive integer}.

이러한

Figure pat00008
는, 또한, 다음 수학식 5로 표현될 수 있다.
Such
Figure pat00008
Can also be expressed by the following equation (5).

<수학식 5>Equation (5)

for j≠ i,for j ≠ i,

Figure pat00009

Figure pat00009

이제, 비밀키 세트 sk는 다음과 같이

Figure pat00010
로 이루어진 세트로 정의될 수 있다. Now, the secret key set, sk,
Figure pat00010
&Lt; / RTI &gt;

Figure pat00011

Figure pat00011

이러한 비밀키 sk를 구성하는

Figure pat00012
값들 중에서 적어도 하나 이상이 S103 단계와 S107에서 각각 사용된다.The secret key sk
Figure pat00012
At least one of the values is used in steps S103 and S107, respectively.

이상 전술한 바와 같이 메시지 M은 S101 단계 및 S103 단계를 통해서 벡터 C 암호화될 수 있다. S101 단계 및 S103 단계를 통해서 암호화된 암호화문 C는 다음과 같이 표현된다.As described above, the message M can be vector- c encrypted through steps S101 and S103. The encryption statement C encrypted through steps S101 and S103 is expressed as follows.

Figure pat00013

Figure pat00013

이하에서는, 도 1을 계속 참조하여 복호화 동작을 설명하기로 한다.
Hereinafter, the decoding operation will be described with continued reference to Fig.

S105 단계에서는, 암호화문 C를 C1과 C2로 파싱하는 동작이 수행된다. 여기서, C1은 M + eQ mod p1 이고, C2는 M + eQ mod p2 이다. In step S105, an operation of parsing the encrypted statement C into C 1 and C 2 is performed. Where C 1 is M + eQ mod p 1 and C 2 is M + eQ mod p 2 to be.

S107 단계에서는, S105 단계에서 파싱된 C1과 C2 각각에 대하여 다음 수학식 2로 정의된 수식에 따라서 CRT (Chinese Remainder Theorem: CRT) 연산을 수행한다.
In step S107, a CRT (Chinese Remainder Theorem) operation is performed on each of C 1 and C 2 parsed in step S105 according to a formula defined by the following equation (2).

<수학식 6>&Quot; (6) &quot;

Figure pat00014

Figure pat00014

한편, 수학식 6은 다음과 같이 표현될 수 있다. Equation (6) can be expressed as follows.

Figure pat00015

Figure pat00015

본 발명의 설명의 목적을 위해서 CRT 연산에 대하여 기술하기로 한다.For purposes of the present description, the CRT operation will be described.

CRT는 중국인의 나머지 정리를 적용하는 함수(환 동형 사상(Ring Isomorphism)의 일예)이고, P = {pi|1≤i≤k, i,k는 정수}, 여기서 p1, p2, ..., pk가 서로 소인 정수이고, b = p1 ·p2 ·p3 ... pk라고 가정하고, CRTp(c)라고 하면, 임의의 수열 a1, a2, ..., ak 대하여 c=ak (mod pk) 가 되는 c가 mod p 로 유일하게 존재한다는 것이다.CRT is a function (an example of Ring Isomorphism) applying the rest of the Chinese theorem, P = {p i | 1 | i k, i, k is an integer}, where p 1 , p 2 ,. ..., and p k are constants of a small number of each other, and b = p 1 · p 2 · p 3 · p k and letting CRT p (c) be a random number sequence a 1 , a 2 , , and for a k , c = a k (mod p k ) is unique to mod p.

c에 대한 연립 합동식은 다음과 같이 기재될 수 있다. The algebraic equations for c can be written as:

c = a1 (mod p1)c = a 1 (mod p 1 )

c = a2 (mod p2) c = a 2 (mod p 2 )

..

..

..

c = ak (mod pk)
c = a k (mod p k )

CRTp(c)에서, c는 나머지에 해당하고 p는 제수(나누는 수)에 해당하며, 수식 CRTp(c)의 해는 상기 연립 합동식들을 만족하는 값이 된다. In CRT p (c), c corresponds to the remainder and p corresponds to the divisor (divisor), and the solution of the formula CRT p (c) is a value satisfying the algebraic equations.

S109 단계에서는, 다음의 수학식 7을 수행하는 단계로서, S107 단계의 결과물에 대하여 모듈러 Q를 연산하는 동작이 수행된다.
In step S109, an operation of calculating the modulus Q with respect to the result of step S107 is performed, as follows, by performing the following equation (7).

<수학식 7>&Quot; (7) &quot;

Figure pat00016

Figure pat00016

한편, 수학식 7은 다음과 같이 표현될 수 있다. On the other hand, Equation (7) can be expressed as follows.

Figure pat00017

Figure pat00017

변형예Variation example

이상과 같이 도 1을 참조하여, 본 발명의 일 실시예에 따른 암호화 및 복호화 방법을 설명하였다. 도 1의 실시예에서는, pi가 p1과 p2 인 경우를 가정하여 설명하였지만, 본원 발명은 P = {pi|1≤i≤k, i,k는 정수} = (p1, p2, ... pk) 정의되는 p에 대하여 일반적으로 적용될 수 있을 것이다. As described above, the encryption and decryption method according to the embodiment of the present invention has been described with reference to FIG. In the embodiment of FIG. 1, it is assumed that p i is p 1 and p 2. However, the present invention is applicable to the case where p i = 1 , 2 , ..., p k ).

예를 들면, pi로 일반화하면, 비밀키 세트는 다음과 같이 다시 정의될 수 있다.For example, if we generalize to p i , the secret key set can be redefined as follows.

Figure pat00018
Figure pat00018

여기서, N은

Figure pat00019
로 기술된다.Here, N is
Figure pat00019
.

pi로 일반화되면, S103 단계는 아래의 수학식 8을 수행하는 것으로 변형될 수 있다.
p i , the step S103 can be modified by performing the following equation (8).

<수학식 8>&Quot; (8) &quot;

(M' mod p1, M' mod p2, ... , M' mod pk)(M 'mod p 1 , M' mod p 2 , ..., M 'mod p k )

여기서, k는 p의 갯수이다.
Here, k is the number of p.

S103 단계가 수학식 8을 수행하는 것으로 변형되면, S103 단계의 수행결과는 다음과 같이 표현될 수 있다. If step S103 is modified to perform equation (8), the result of performing step S103 may be expressed as follows.

Figure pat00020
= (C1, C2, ... , Ck)
Figure pat00020
= (C 1 , C 2 , ..., C k )

이제, 수학식 8에 의해 암호화된 암호화문에 대하여 S105, S107, 및 S109 단계를 거쳐서 복호화하는 동작을 설명하기로 한다.Now, the operation of decrypting the encrypted statement encrypted by the expression (8) through steps S105, S107, and S109 will be described.

S105 단계에서는,

Figure pat00021
를 C1, C2, C3, ... , Ck로 파싱하는 동작이 수행된다.In step S105,
Figure pat00021
Is parsed into C 1 , C 2 , C 3 , ..., C k .

S107 단계에서는, 다음 수학식 9가 수행된다.
In step S107, the following equation (9) is performed.

<수학식 9>&Quot; (9) &quot;

Figure pat00022

Figure pat00022

S109 단계에서는, 다음 수학식 10이 수행된다.
In step S109, the following equation (10) is performed.

<수학식 10>&Quot; (10) &quot;

Figure pat00023

Figure pat00023

도 2는 본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 방법을 사용하는 컴퓨터 장치를 설명하기 위한 도면이다.2 is a diagram for explaining a computer apparatus using an additional isochronous encryption method based on a co-ACD problem according to an embodiment of the present invention.

도 2의 컴퓨터 장치는, 도 1을 참조하여 설명한 암호화 방법을 수행하는 장치이다. The computer apparatus of FIG. 2 is an apparatus that performs the encryption method described with reference to FIG.

도 2를 참조하면, 본 발명의 일 실시예에 따른 암호화 방법을 수행하는 컴퓨터 장치는 컴퓨터 프로세서(11), 메모리(13), 저장부(15), 및 암호화부(17)를 포함할 수 있다. 암호화부(17)는 저장부(15)에 저장되어 있다가, 컴퓨터 프로세서(11)의 제어하에 메모리(13)에 로딩되어 동작할 수 있다. 여기서, 암호화부(17)는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있다. 2, a computer apparatus for performing an encryption method according to an embodiment of the present invention may include a computer processor 11, a memory 13, a storage unit 15, and an encryption unit 17 . The encryption unit 17 is stored in the storage unit 15 and can be loaded into the memory 13 and operated under the control of the computer processor 11. [ Here, the encryption unit 17 may be constituted by program codes executable on a computer.

저장부(15)는, 암호화부(17)의 동작을 위한 파라미터들을 저장할 수 있다. The storage unit 15 may store parameters for operation of the encryption unit 17.

암호화부(17)는, 랜덤화부(14)와 모듈러 연산부(16)를 포함할 수 있다. 랜덤화부(14)는, 도 1을 참조하여 설명한 S101 단계를 수행하는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있고, 모듈러 연산부(16)는 도 1을 참조하여 설명한 S103 단계를 수행하는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있다. The encryption unit 17 may include a randomization unit 14 and a modular operation unit 16. The randomizer 14 may be composed of program codes executable on a computer that performs the step S101 described with reference to FIG. 1, and the modular computing unit 16 may be implemented by a computer executing the step S103 described with reference to FIG. 1 It may be composed of possible program codes.

모듈러 연산부(16)는, (M' mod p1, M' mod p2)를 연산하거나, 또는 확장예의 경우 (M' mod p1, M' mod p2, ... , M' mod pk)를 연산하는 동작을 수행할 수 있다. Modular arithmetic unit 16, (M 'mod p 1, M' mod p 2), the operation, or extended our example, (M 'mod p 1, M ' mod p 2, ..., M 'mod p k ) Of the input signal.

암호화부(17)는 컴퓨터 프로세서(11)의 제어하에 메모리(13)에 로딩되어 동작될 수 있다.  The encryption unit 17 can be loaded into the memory 13 under the control of the computer processor 11 and operated.

한편, 도 2의 실시예에서, 암호화부(17)가 하드웨어로만 구성되거나, 또는 암호화부(17)가 수행하는 동작의 일부는 칩과 같은 하드웨어로 구현되고 나머지 부분은 프로그램 코드로 구현되는 것도 가능하다. On the other hand, in the embodiment of FIG. 2, it is also possible that the encryption unit 17 is constituted only by hardware, or a part of the operation performed by the encryption unit 17 is implemented by hardware such as a chip, and the rest is implemented by program code Do.

본원 명세서에서, '암호화부'는 i) 하드웨어, ii) 컴퓨터 프로그램 코드, 또는 iii) 하드웨어 및 컴퓨터 프로그램 코드로 구현된 것일 수 있다.As used herein, an 'encryption portion' may be implemented in i) hardware, ii) computer program code, or iii) hardware and computer program code.

도 3은 본 발명의 일 실시예에 따른 co-ACD 문제 기반의 부가적 동형 암호화 방법에 의해 암호화된 암호문을 복호화하는 방법을 사용하는 컴퓨터 장치를 설명하기 위한 도면이다. 3 is a diagram for explaining a computer apparatus using a method of decrypting a cipher text encrypted by an additional isochronous encryption method based on a co-ACD problem according to an embodiment of the present invention.

도 3의 복호화 방법을 사용하는 컴퓨터 장치는, 도 1을 참조하여 설명한 복호화 방법을 수행하는 장치이다. The computer apparatus using the decoding method of FIG. 3 is an apparatus for performing the decoding method described with reference to FIG.

도 3을 참조하면, 본 발명의 일 실시예에 따른 복호화 방법을 수행하는 컴퓨터 장치는 컴퓨터 프로세서(21), 메모리(23), 저장부(25), 및 복호화부(17)를 포함할 수 있다. 3, a computer apparatus for performing a decoding method according to an embodiment of the present invention may include a computer processor 21, a memory 23, a storage unit 25, and a decryption unit 17 .

복호화부(17)는, 컴퓨터 프로세서(21)의 제어하에 메모리(23)에 로딩되어 동작할 수 있다. 여기서, 복호화부(27)는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있다. The decoding unit 17 can be loaded into the memory 23 and operated under the control of the computer processor 21. [ Here, the decryption unit 27 may be constituted by program codes executable by a computer.

복호화부(27)는, 파싱부(24), CRT 연산부(28), 및 모듈러 연산부(26)을 포함할 수 있다. 파싱부(24)는, 도1 을 참조하여 설명한 S105 단계를 수행하는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있고, CRT 연산부(28) 도 1을 참조하여 설명한 S107 단계를 수행하는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있고, 그리고 모듈러 연산부(26)는 도 1을 참조하여 설명한 S109 단계를 수행하는 컴퓨터에서 실행가능한 프로그램 코드로 구성된 것일 수 있다.The decoding unit 27 may include a parsing unit 24, a CRT computing unit 28, and a modular computing unit 26. The parsing unit 24 may be constituted by program codes executable on a computer that performs step S105 described with reference to FIG. 1, and the CRT computing unit 28 may be implemented on a computer that performs step S107 described with reference to FIG. 1 And the modular operation unit 26 may be composed of program code executable on a computer that performs step S109 described with reference to FIG.

복호화부(27)는 컴퓨터 프로세서(21)의 제어하에 메모리(23)에 로딩되어 동작될 수 있다. The decryption unit 27 may be loaded into the memory 23 under the control of the computer processor 21 and operated.

한편, 도 3의 실시예에서, 복호화부(27)가 하드웨어로만 구성되거나, 또는 복호화부(27)가 수행하는 동작의 일부는 칩과 같은 하드웨어로 구현되고 나머지 부분은 프로그램 코드로 구현되는 것도 가능하다. On the other hand, in the embodiment of FIG. 3, the decoding unit 27 may be constituted only by hardware, or a part of the operations performed by the decoding unit 27 may be implemented by hardware such as a chip, and the rest may be implemented by program code Do.

본원 명세서에서, '복호화부'는 i) 하드웨어, ii) 컴퓨터 프로그램 코드, 또는 iii) 하드웨어 및 컴퓨터 프로그램 코드로 구현된 것일 수 있다. As used herein, the 'decryption unit' may be implemented in i) hardware, ii) computer program code, or iii) hardware and computer program code.

상기와 같이 본 발명적 개념은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명적 개념은 상기의 실시예에 한정되는 것은 아니며, 본 발명적 개념이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명적 개념의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.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.

10, 20 : 컴퓨터 장치 11, 21 : 컴퓨터 프로세서
13, 23 : 메모리 15, 25 : 저장부
14 : 랜덤화부 16 : 모듈러 연산부
17: 암호화부 24: 파싱부
26: 모듈러 연산부 28 : CRT 연산부
27: 복호화부
10, 20: computer device 11, 21: computer processor
13, 23: memory 15, 25:
14: randomizer 16: modular operator
17: Encryption unit 24:
26: modular operation unit 28: CRT operation unit
27:

Claims (2)

연산하고자 하는 대상이 되는 데이터(M)를 랜덤화하는 단계와 랜덤화된 데이터에 대하여 모듈러 연산하는 단계를 포함하는 co-ACD 문제 기반의 부가적 동형 암호화 방법. A method of additional isomorphic encryption based on a co-ACD problem, comprising randomizing data to be computed (M) and modularizing the randomized data. 암호화문( C )을 C1과 C2로 파싱하는 단계, S105 단계의 수행결과에 대하여 CRT 연산을 하는 단계, 및 CRT 연산결과에 대하여 모듈러 연산하는 단계(S109)를 포함하는 co-ACD 문제 기반의 부가적 동형 암호화 방법에 의해 암호화된 암호문을 복호화하는 방법.The co-ACD problem-based method including the steps of parsing the encryption statement ( C ) into C 1 and C 2 , performing a CRT operation on the result of the operation in step S105, and modulo-computing (S109) The method comprising the steps of:
KR1020140098808A 2014-08-01 2014-08-01 Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same KR20160017226A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140098808A KR20160017226A (en) 2014-08-01 2014-08-01 Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140098808A KR20160017226A (en) 2014-08-01 2014-08-01 Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same

Publications (1)

Publication Number Publication Date
KR20160017226A true KR20160017226A (en) 2016-02-16

Family

ID=55447765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140098808A KR20160017226A (en) 2014-08-01 2014-08-01 Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same

Country Status (1)

Country Link
KR (1) KR20160017226A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180057255A (en) * 2016-11-22 2018-05-30 명지대학교 산학협력단 ACD Instance Hardening Process, Hardening Recovery Process And Device Which Utilize

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014035146A2 (en) * 2012-08-28 2014-03-06 서울대학교산학협력단 Homomorphic encryption method and decryption method using ring isomorphism, and device using same
KR20140028233A (en) * 2012-08-28 2014-03-10 서울대학교산학협력단 Homomorphic encryption and decryption method using chinese remainder theorem and apparatus using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014035146A2 (en) * 2012-08-28 2014-03-06 서울대학교산학협력단 Homomorphic encryption method and decryption method using ring isomorphism, and device using same
KR20140028233A (en) * 2012-08-28 2014-03-10 서울대학교산학협력단 Homomorphic encryption and decryption method using chinese remainder theorem and apparatus using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문:(2005) *
논문:(2013) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180057255A (en) * 2016-11-22 2018-05-30 명지대학교 산학협력단 ACD Instance Hardening Process, Hardening Recovery Process And Device Which Utilize

Similar Documents

Publication Publication Date Title
EP2858296B1 (en) Information processing technique for secure pattern matching
JP6260442B2 (en) Information processing method and program
JP6083234B2 (en) Cryptographic processing device
JP5291795B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, DECRYPTION METHOD, SECURITY METHOD, PROGRAM, AND RECORDING MEDIUM
US10726108B2 (en) Protecting the input/output of modular encoded white-box RSA
EP2835932B1 (en) Encryption device, decryption device, encryption method, decryption method, and program
Gür et al. Practical applications of improved gaussian sampling for trapdoor lattices
Bartusek et al. Affine determinant programs: a framework for obfuscation and witness encryption
JP2015184594A (en) Cryptography processing device, cryptography processing method, cryptography processing program and information processor
JPWO2016088453A1 (en) Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program
JP6059347B2 (en) Decoding device, decoding capability providing device, method and program thereof
US20160328541A1 (en) White-box modular exponentiation
JP2020515093A (en) Computing device for coded addition
US20100329447A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, and program
US10140437B2 (en) Array indexing with modular encoded values
EP3125145B1 (en) White-box elliptic curve point multiplication
Liu et al. One-Way Functions and the Hardness of (Probabilistic) Time-Bounded Kolmogorov Complexity wrt Samplable Distributions
Braeken et al. SFINKS: A synchronous stream cipher for restricted hardware environments
US10068070B2 (en) White-box elliptic curve point multiplication
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same
KR20160017226A (en) Additive Homomorphic Encryption and Decryption Method based on the co-ACD Problem and Apparatus using the same
US11070358B2 (en) Computation device and method
Hamoudi et al. Side-channel analysis of CRYSTALS-Kyber and a novel low-cost countermeasure
EP3125144B1 (en) Array indexing with modular encoded values
JP2017038336A (en) Decryption method

Legal Events

Date Code Title Description
N231 Notification of change of applicant
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application