KR101618941B1 - 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버 - Google Patents

동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버 Download PDF

Info

Publication number
KR101618941B1
KR101618941B1 KR1020140003056A KR20140003056A KR101618941B1 KR 101618941 B1 KR101618941 B1 KR 101618941B1 KR 1020140003056 A KR1020140003056 A KR 1020140003056A KR 20140003056 A KR20140003056 A KR 20140003056A KR 101618941 B1 KR101618941 B1 KR 101618941B1
Authority
KR
South Korea
Prior art keywords
encrypted
pairing
algorithm
enc
data
Prior art date
Application number
KR1020140003056A
Other languages
English (en)
Other versions
KR20150083391A (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 KR1020140003056A priority Critical patent/KR101618941B1/ko
Publication of KR20150083391A publication Critical patent/KR20150083391A/ko
Application granted granted Critical
Publication of KR101618941B1 publication Critical patent/KR101618941B1/ko

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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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

Landscapes

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

Abstract

페어링 기반 암호 알고리즘에 의해 암호화된 데이터를 연산하는 방법에 있어서, 페어링 기반 암호 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및 동형 또는 암호 알고리즘에 의해 암호화된 형태의 데이터에 대하여 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법이 개시된다.

Description

동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버{Computation Method of encrypted data using Homomorphic Encryption and Pairing-based Encryption and Server using the same}
본 발명은 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버에 관한 것이다.
완전 동형 또는 준동형 암호화 기술은 암호화된 상태에서 곱셈이나 덧셈이 가능하도록 하는 암호화 기술로서, 여러 분야에서 활용이 기대되고 있다. 예를 들면, 프라이버시를 보호할 필요가 있는 경우, 준동형 암호화 기술은 복호화를 할 필요 없이 암호화된 상태에서 처리가 가능하므로, 유용할 수 있다.
2009년 완전 준동형 암호화 기술을 제시된 뒤로 완전 준동형 암호에 대한 연구가 활발하게 이루어지고 있다.
하지만, 완전 동형 또는 준동형 암호화 기술로 암호화된 암호화문은 그 크기가 지나치게 클 뿐만 아니라 암호화에 많은 시간이 걸린다.
본 발명의 일 실시예에 따르면, 암호화된 상태에서 곱하기와 덧셈과 같은 연산이 가능하되, 암호화문의 크기가 작고 암호화 속도가 빠른, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버가 제공될 수 있다.
본 발명의 일 실시예에 따르면, 모바일 기기와 같이 제한된 리소스를 가진 장치에서도 빠른 속도로 암호화된 데이터에 대한 연산을 수행할 수 있는 암호화 데이터를 연산하는 방법 및 이를 이용한 서버가 제공될 수 있다.
본 발명의 일 실시예에 따르면, 암호화된 데이터를 연산하는 서버에 있어서,
메모리, 컴퓨터 프로세서, 및 상기 컴퓨터 프로세서에 의해 상기 메모리에 로딩되어 실행되는 컴퓨터 프로그램;을 포함하며,
상기 컴퓨터 프로그램은,
페어링 기반 암호 알고리즘으로 암호화된 데이터(이하, '페어링 기반 암호화 데이터')(C)를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및
상기 변환하는 단계에서, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(Enc(m))에 대하여 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 서버가 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 암호화된 데이터를 연산하는 방법에 있어서,
클라이언트가 연산하고자 하는 데이터를 페어링 기반 알고리즘으로 암호화하여 서버로 전송하는 단계;
상기 서버가, 상기 클라이언트로부터 전송 받은 페어링 기반 암호 알고리즘에 의해 암호화된 데이터(이하, '페어링 기반 암호화 데이터')(C)를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태로 변환하는 단계; 및
상기 서버가, 상기 변환하는 단계에서, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(Enc(m))에 대하여 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법이 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 컴퓨터에, 페어링 기반 암호 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및 상기 변환하는 단계에서, 동형 또는 암호 알고리즘에 의해 암호화된 형태의 데이터에 대하여 연산을 수행하는 단계;를 포함하는 방법을 실행시키는 프로그램을 기록한 기록매체가 제공될 수 있다.
상술한 실시예들에서, 상기 변환하는 단계는, 상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(Enc(skID))를 사용하며, 여기서 skID는 상기 페어링 기반 암호 알고리즘으로 암호화된 데이터에 사용된 공개키에 대응되는 비밀키일 수 있다.
상술한 실시예들에서, 상기 페어링 기반 암호화 데이터(C)는, 브로드캐스트 암호 알고리즘, ID 기반 암호 알고리즘, 또는 어트리뷰트 암호 알고리즘 중 어느 하나에 의해 암호화된 것일 수 있다.
상술한 실시예들에서, 상기 페어링 기반 암호화 데이터(C)는 ID 기반 암호 알고리즘에 의해 암호화된 것이고, 상기 변환하는 단계는 상기 ID 기반 암호 알고리즘에 의해 암호화된 암호화문과 상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(Enc(skID))를 입력으로 하여, 상기 페어링 기반 암호화 데이터(C)에 완전동형 또는 준동형 알고리즘을 적용하는 단계일 수 있다.
상술한 실시예들에서, 상기 페어링 기반 암호화 데이터(C)는 다음의 형태
C = (q, P)로 표현 가능하며, 상기 변환하는 단계는 다음의 수식
Enc(m) = Enc(q) * Enc(e(P, skID))
을 수행하는 단계이며, 여기서, e는 페어링 연산일 수 있다.
상술한 실시예들에서, 상기 페어링 기반 암호화 데이터(C)는 다음의 형태
C = (q, P)로 표현 가능하며, 상기 변환하는 단계는 다음의 수식
Enc(m) = Enc(q) * Enc(H(e(P, skID)))
을 수행하는 단계이며, 여기서, e는 페어링 연산, H는 해시값을 산출하는 해시함수를 의미할 수 있다.
본 발명의 하나 이상의 실시예에 따르면, 연산 서버에 암호화 데이터를 전송할 때 페어링 기반 암호 알고리즘과 같은 공개키 기반의 암호 알고리즘을 사용할 수 있으므로, 암호화문의 크기가 현격히 작아진다.
본 발명의 하나 이상의 실시예에 따르면, 페어링 기반 암호 알고리즘을 사용하고 있는 암호시스템의 암호문 (혹은 서명) 등을 임의의 연산이 가능한 동형 암호시스템의 암호문으로 변환할 수 있게 된다. 따라서, 페어링 기반 암호화 방법이 갖는 다양한 기능성을 유지하면서 클라우드 환경에서 안전하게 연산 가능한 암호시스템을 설계할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화된 데이터를 연산하는 방법을 설명하기 위한 흐름도이고,
도 2는 본 발명의 일 실시예에 따른 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화된 데이터를 연산하는 시스템을 설명하기 위한 도면이고,
도 3 내지 도 4는 도 2의 일 실시예에 따른 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화된 데이터를 연산하는 시스템을 설명하기 위한 도면들이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 게재될 수도 있다는 것을 의미한다.
어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.
또한 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
용어의 정의
본원 명세서에서 '소프트웨어'는 컴퓨터에서 하드웨어를 움직이는 기술을 의미한다.
본원 명세서에서 '하드웨어'는 컴퓨터를 구성하는 유형의 장치나 기기(예: CPU, 메모리, 입력 장치, 출력 장치, 주변 장치 등)를 의미한다.
본원 명세서에서 '단계'는 소정의 목적을 달성하기 위해 시계열적으로 연결된 일련의 처리 또는 조작을 의미한다.
본원 명세서에서 '프로그램'은 컴퓨터로 처리하기에 적합한 명령의 집합을 의미한다.
본원 명세서에서, '프로그램 기록 매체'는 프로그램을 설치하고 실행하거나 유통하기 위해 사용되는 ‘프로그램을 기록한 컴퓨터로 읽을 수 있는 매체’를 의미한다.
본원 명세서에서 '테이트(Tate) 페어링'은 비퇴화 겹선형 사상(non-degenerate bilinear map)으로서 다음과 같이 정의되는 함수를 의미한다.
Figure 112014002471946-pat00001
(
Figure 112014002471946-pat00002
)를 계산하는 부분이 Miller 단계(Miller step)이고, 최종 지수승 연산을 하는 부분을 마지막 지수승 단계(final exponentiation step)임(V. S. Miller. The Weil pairing, and its e_cient calculation. Journal of Cryptology, 17(4):235-261, 2004) )참조)
여기서, E는 소수 p의 거듭제곱 q(즉,
Figure 112014002471946-pat00003
)에 대하여 유한체 (finite field)
Figure 112014002471946-pat00004
에서 정의된 타원곡선(elliptic curve)이고, r은 타원곡선 군
Figure 112014002471946-pat00005
의 위수(order)로서 큰 소수이며, k는 매립차수(embedding degree)로서 r이
Figure 112014002471946-pat00006
을 나누는 자연수들 중 최초의 자연수임).
도 1은 본 발명의 일 실시예에 따른, 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화된 데이터를 연산하는 방법을 설명하기 위한 흐름도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 암호화된 데이터를 연산하는 방법은, 연산하고자 하는 대상이 되는 데이터를 페어링 기반 암호 알고리즘으로 암호화하는 단계(S101), S101 단계에서 암호화된 데이터를, 완전동형 또는 준동형 암호 알고리즘에 의해 암호화된 형태로 변환하는 단계(S103), S103 단계의 수행결과를 이용하여 연산하는 단계(S105), 및 S105 단계의 연산결과를 복호화하는 단계(S107)를 포함할 수 있다.
도 1을 참조하여 설명하고 있는 암호화된 데이터를 연산하는 방법은, 컴퓨터 장치(이하, '장치'라고도 함)에서 구현되며, 예를 들면 1개의 컴퓨터 장치 내에서 구현되거나 또는 2개 이상의 컴퓨터 장치로 분산되어 구현될 수 있다.
1개의 컴퓨터 장치 내에서 이루어지는 경우는, 서버 또는 클라이언트에서 S101, S103, S105, 및 S107가 수행되는 것이다. 한편, 본원 명세서에서 '서버'와 '클라이언트'는 각각 컴퓨터 프로세서(미도시), 메모리(미도시), 및 컴퓨터 프로세서의 제어하에 메모리로 로딩되어 동작하는 컴퓨터 프로그램(미도시)을 포함하도록 구성된 장치를 의미하는 것으로 사용하기로 한다.
2개 이상의 컴퓨터 장치에서 분산되어 이루어지는 경우는, 예를 들면, S101, S107 단계는 클라이언트에서 수행되고, S103 및 S105 단계는 서버에서 수행되는 경우일 수 있다. 다른 예를 들면, S101 단계는 클라이언트에서 수행되고, S103, S105 단계, 및 S107 단계는 서버에서 수행되는 경우일 수 있다. 또 다른 예를 들면, S101 단계와 S107 단계는 클라이언트에서 수행되고, S103는 제1 서버에서 수행되고, S105 단계는 제2 서버에서 수행되는 경우일 수 있다. 또 다른 예를 들면, S101 단계는 클라이언트에서 수행되고, S103는 제1 서버에서 수행되고, S105 단계와 S107 단계는 제2 서버에서 수행되는 경우일 수 있다.
도 1을 참조하면, S101 단계는, 연산하고자 하는 대상이 되는 데이터를 페어링 기반 암호 알고리즘으로 암호화하는 단계이다.
S101 단계는, 페어링 기반 암호 알고리즘을 이용하여 연산하고자 하는 대상이 되는 데이터를 암호화하는 단계이다.
페어링 기반 암호 알고리즘으로서, 예를 들면 브로드캐스트 암호화(broadcast encryptions)(참조문헌: D. Boneh, C. Gentry, and B. Waters. Collusion resistant broadcast encryption with short ciphertexts and private keys. In V. Shoup, editor, Advances in Cryptology - CRYPTO 2005, volume 7417 of LNCS, pages 258-275, Springer, 2012), ID 기반 암호 알고리즘(ID-based encryption)(참조문헌들: D. Boneh and X. Boyen. Efficient selective-ID secure identity-based encryption without random oracles. In C. Cachin and J. Camenisch, editors, Advances in Cryptology - EUROCRYPTO 2004, volume 3027 of LNCS, pages 223-238, Springer, 2004; D. Boneh and M. K. Franklin. Identity-based encryption from the Weil pairing. In J. Kilian, editor, Advances in Cryptology - CRYPTO 2001, volume 2139 of LNCS, pages213-229, Springer, 2001; A. B. Lewko, Tools for simulating features of composite order bilinear groups in the prime order setting. In D. Pointcheval and T. Johansson, editors, Advances in Cryptology - EUROCRYPTO 2012, volume 7237 of LNCS, pages 318-335, Springer, 2012), 또는 어트리뷰트 기반 암호화(Attribute-based encryption)(참고문헌들:
A. B. Lewko, T. Okamoto, A. Sahai, K. Takrshima, and B. Waters. Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption. In H. Gilbert, editor, Advances in Cryptology - EUROCRYPTO 2010, volume 6110 of LNCS, pages 62-91, Springer, 2012; A. B. Lewko and B. Water. New proof methods for attribute-based encryption: Achieving full security through selective techniques. In R. Safavi-Naini and R. Canetti, editors, Advances in Cryptology - CRYPTO 2012, volume 7417 of LNCS, pages 180-198, Springer, 2012).
이러한, 암호 알고리즘들은 예시적인 것으로서, 본원 발명은 예시된 상기 암호 알고리즘들이 아닌 다른 타입의 페어링 기반의 암호 알고리즘에도 적용될 수 있다.
S101 단계가 수행되면, 예를 들면 연산하고자 하는 데이터는 다음과 같이 페어링 기반의 암호 알고리즘에 의해 암호화된 데이터가 도출될 수 있다.
C = (q, P)
여기서, C는 임의의 페어링 기반 암호 알고리즘에 의해 암호화된 암호화문을 나타내며, 이러한 암호화문은 q와 P와 같이 한 쌍의 형태로 도출된다.
S101 단계에서, 페어링 기반 암호 알고리즘으로 ID 기반 암호 알고리즘이 사용된 경우, C = (q, P)와 비밀키(Enc(skID))는 S103 단계에서 입력으로 사용된다.
암호화된 비밀키(Enc(skID))는 skID 를 S103 단계에서 사용되는 완전동형 또는 준동형 알고리즘에 의해서 암호화한 것으로서, 서버가 미리 알고 있는 값이다.
skID 는 S101 단계에서 사용된 페어링 기반의 암호 알고리즘의 공개키에 대응되는(쌍을 이루는) 비밀키이다. 본 발명에서 서버는 비밀키(skID)는 모르지만, 비밀키(Enc(skID))가 암호화된 값은 알고 있다.
S103 단계는, S101 단계에서 암호화된 데이터를, 완전동형 또는 준동형 암호 알고리즘에 의해 암호화된 형태로 변환하는 단계이다.
본 단계에서 사용되는 완전동형(Fully Homomorphic Encryption) 또는 준동형 암호 알고리즘은 암호화문에 대하여 연산을 지원할 수 있는 알고리즘이다. 완전동형 암호 알고리즘은 리플레쉬라는 기법에 의해 암호화된 상태에서의 연산의 지원 횟수가 무한대인 암호 알고리즘이고, 준동형 암호 알고리즘은 암호화된 상태에서의 연산의 지원 횟수가 제한되어 있어서 소정 횟수 이상 연산을 하게 되면 더 이상의 연산이 불가능한 암호 알고리즘이다.
본원 발명에서 사용 가능한 완전동형 또는 준동형 암호 알고리즘은 종래 알려진 어떠한 것이라도 사용가능하며, 장래 개발될 알고리즘도 사용이 가능하다.
본 발명의 설명의 목적을 위해서, 본원 명세서에서는 '동형 암호 알고리즘'이라고 함은, '완전 동형 암호 알고리즘' 또는 '준동형 암호 알고리즘'을 모두 포함하는 의미로 사용하기로 한다.
S103 단계가 수행되면, 다음과 같이 동형 암호 알고리즘에 의해 암호화된 형태로 변환된다.
S101 단계에서 암호화된 암호화문을 C = (q, P)로 표현할 때, S103 단계의 산출물은
Enc(m) = Enc(q) * Enc(e(P, skID))
과 같이 표현될 수 있다.
S103 단계의 대체 실시예로서, S101 단계에서 암호화된 암호화문을 C = (q, P)로 표현할 때, S103 단계의 산출물은
Enc(m) = Enc(q) * Enc(H(e(P, skID)))
과 같이도 표현될 수 있다. 여기서, e(P, skID)는 e는 페어링 연산을 의미하고, H는 해시값을 산출하는 해시함수이며, H(e(P, skID))는 임의의 해시값에 e(P, skID)를 입력하여 산출되는 값을 의미한다.
S103 단계에서 사용될 수 있는 해시함수는, 예를 들면 종래 알려진 해시함수들 중에서 동형 또는 준동형 연산이 가능한 해시함수(예: Guido BERTONI, Joan Daemen, Michael Peeters, Gilles Van Assche, The Keccak reference, Available online, 2013, http://keccak.noekeon.org/Keccak-reference-3.0.pdf )를 선택하여 사용할 수 있다. 한편, 해시함수 Keccak의 동형 또는 준동형 연산에 대한 이론적 배경은 종래 알려진 논문들(예: Silvia Mella, Ruggero Susella, On the Homomorphic Computation of Symmetric Cryptographic Primitives, Lecture Notes in Computer Science Volume 8308, 2013,pp 28-44)을 참조할 수 있다.
상술한 S103 단계에서 사용되는 페어링 연산은 종래 알려진 방법이므로 본원 명세서에는 상세히 설명하지는 않기로 한다.
이하에서는, S103 단계의 예시적 실시예에 대하여, 개략적으로 설명하기로 한다. 본 예시적 실시예에서, 동형 또는 준동형 암호 알고리즘 Enc를 사용한다.
본 단계에서는,
페어링
Figure 112014002471946-pat00007
에 대하여 두 인수 P, Enc(Q)가 주어졌을 때, Enc(e(P, Q))를 구한다.
우선, 정수 r에 대하여
Figure 112014002471946-pat00008
의 p진 표현을
Figure 112014002471946-pat00009
라 하자. 특별히, 정수
Figure 112014002471946-pat00010
는 p진 표현
Figure 112014002471946-pat00011
에 대응하는 정수이다. 다항식
Figure 112014002471946-pat00012
를 Miller 알고리즘을 이용하여 r의 p진법 전개에 대하여 다음과 같이 표현할 수 있다.
Figure 112014002471946-pat00013
이 때,
Figure 112014002471946-pat00014
는 점 P, Q를 지나는 직선의 방정식을 나타낸다.
주어진 r과 P에 대하여 식 (*)에 나타나는 모든 직선의 식을 구한다. 즉,
Figure 112014002471946-pat00015
Figure 112014002471946-pat00016
을 구하고,
Figure 112014002471946-pat00017
Figure 112014002471946-pat00018
의 2진 전개에 대하여 다음과 같이 표현하고,
Figure 112014002471946-pat00019
마찬가지로 모든 ri에 대하여
Figure 112014002471946-pat00020
에 나타나는 모든 직선의 식을 구한다.
각각의 직선의 식
Figure 112014002471946-pat00021
과 주어진 암호화된 인수 Enc(Q) = (Enc(x), Enc(y)) 에 대하여 직선의 식에 점 Q를 대입한 결과값
Figure 112014002471946-pat00022
의 암호문을 다음과 같이 구한다.
Figure 112014002471946-pat00023
암호 알고리즘이며,
Figure 112014002471946-pat00024
를 구한 후, Frobenius 사상을 적용하여
Figure 112014002471946-pat00025
를 구한다.
위의 방법으로 구한 모든 인수들을 곱하여
Figure 112014002471946-pat00026
의 값을 구한다.
Miller 단계의 결과값
Figure 112014002471946-pat00027
에 대하여 마지막 지수승
Figure 112014002471946-pat00028
을 계산하면 원하는 결과값을 얻는다.
마지막 지수승 단계에서는
Figure 112014002471946-pat00029
의 p진 전개에 대하여 Frobenius 사상을 먼저 계산한 후, 각 i에 대하여 지수승 ai를 구한다. 즉,
Figure 112014002471946-pat00030
이다.
상술한 S103 실시예에서, 페어링 연산이 사용되었으므로, 이에 대하여 개략 설명하기로 한다. 페어링의 두 인수 P, Q에 대하여 평문 상태의 P와 암호문 상태의 Enc(Q)=(Enc(x), Enc(y))가 주어졌다고 하자. 본래의 Miller 단계에서는
Figure 112014002471946-pat00031
를 계산하는데, 이는 r과 P에 의하여 결정되는 여러 개의 일차식
Figure 112014002471946-pat00032
들의 곱으로 이루어진다.
Figure 112014002471946-pat00033
를 구하기 위하여, r과 P로부터 여러 개의 상수 λ 와 μ를 구하고, 주어진 Enc(x)와 Enc(y)로부터
Figure 112014002471946-pat00034
를 계산한다.
이 후,
Figure 112014002471946-pat00035
의 계산식은 r의 p진법 표현에 의하여 결정되며, 암호 스킴 Enc에 대하여 Frobenius 사상을 사용하면
Figure 112014002471946-pat00036
의 계산을 더 효율적으로 할 수 있다. 페어링 연산의 효율적 연산에 대한 논문들은 예를 들면, E. Lee, H.-S. Lee, and C.-M. Park. E_cient and generalized pairing computation on abelian varieties. IEEE Transactions on Information Theory, 55(4):1793-1803, 2009.; F. Vercauteren. Optimal pairings. IEEE Transactions on Information Theory, 56(1):455-461, 2010.; F. Hess, N. P. Smart, and F. Vercauteren. The eta pairing revisited. IEEE Transactions on Information Theory, 52(10):4595-4602, 2006.등을 예로 들 수 있다.
이상 설명한 실시예들에서, 본 발명의 설명의 목적을 위해, 'Enc'는 완전 동형 암호 알고리즘과 준동형 암호 알고리즘을 모두 포함하는 의미로 사용하기로 한다.
상기 실시예들에서, 암호화된 비밀키(Enc(skID))는, 예를 들면, S103 단계가 수행되는 장치(예를 들면, 서버)에서 생성된 것이거나(이러한 경우, S103 단계를 수행하는 장치는 비밀키(skID)를 알고 있어야 함), 또는 S101 단계가 수행되는 장치(예를 들면, 클라이언트)에서 생성된 후, S103 단계가 수행되는 장치로 전송될 수 있다.
S105 단계는, S103 단계에 의해 동형 암호 알고리즘 형태로 변환된 데이터들을 연산하는 단계이다. 예를 들면, S105 단계에서 수행하고자 하는 연산이 a(m) = m1 + m2 + 3m3 라고 가정하면, S105 단계에서는, S103 단계에서 산출된 데이터들로부터 다음과 같은 연산을 수행한다.
Enc(m1)+Enc(m2)+3Enc(m3)
S107 단계는, S105 단계에 의해 연산된 결과에 대하여 복호화하는 동작이다. 동형 암호 알고리즘에 의해 암호화된 데이터의 복호화는 동형 암호화에 사용된 공개키에 대응되는 비밀키를 사용하여 복호화할 수 있다. 한편, 상술한 바와 같이 S107 단계를 수행하는 장치는 S103 및/또는 S105 단계를 수행하는 장치일 수 있으나 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른, 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화된 데이터를 연산하는 시스템을 설명하기 위한 도면이다.
도 2를 참조하여, 본 발명의 일 실시예에 따른 암호화된 데이터를 연산하는 시스템(이하, '본 시스템'라고 함)은, 적어도 하나의 클라이언트(C1, C2, C3)와 서버(100)를 포함할 수 있다.
본 실시예에서, 서버(100)는 메모리(101), 컴퓨터 프로세서(103), 및 저장부(105)를 포함할 수 있으며, 메모리(101)에는 컴퓨터 프로세서(103)의 제어하에 동작하는 컴퓨터 프로그램이 저장되어 있다. 저장부(105)에는 서버(100)의 동작을 위해 필요한 컴퓨터 프로그램과 데이터가 저장된다.
본 실시예에 따르면, 저장부(105)는, 동형 암호 알고리즘에 의해 암호화된 비밀키(여기서, 비밀키는 연산대상이 되는 데이터를 암호화하는 데 사용된 공개키에 대응되는 것임, (Enc(skID))와, 동형 암호 알고리즘의 공개키를 저장하고 있을 수 있다. 본 실시예에서, 저장부(105)는 상술한 수식을 수행하는데 필요한 데이터를 추가적으로 저장할 수 있다.
다른 실시예에 따르면, 저장부(105)는, 연산대상이 되는 데이터를 암호화하는데 사용된 공개키에 대응되는 비밀키(skID), 동형 암호 알고리즘의 비밀키와 공개키를 더 저장할 수 있다.
본 다른 실시예에서, 저장부(105)는 상술한 수식을 수행하는데 필요한 데이터를 추가적으로 저장할 수 있다.
상술한 실시예들에서, 저장부(105)에 저장된 데이터들의 적어도 일부는 메모리(101)에 로딩되어, 컴퓨터 프로그램의 동작에 사용될 수 있다.
상술한 실시예들에서, 저장부(105)에 저장된 데이터들의 적어도 일부는, 서버(100)가 추가적으로 포함하는 다른 메모리(미도시)(예를 들면, 비휘발성 메모리)에 저장될 수 있다.
상기 컴퓨터 프로그램은 후술하겠지만, S101 내지 S107 단계 중 적어도 어느 하나 이상을 수행하도록 구현될 수 있다.
다르게는, 서버(100)는 S101 내지 S107 단계 중 적어도 어느 일부는 하드웨어(미도시)가 수행하도록 하고, 나머지 부분에 대하여 컴퓨터 프로그램이 수행하도록 구현이 가능하다.
본 시스템은, 도 1을 참조하여 설명한 암호화를 연산하는 방법들을 수행할 수 있다.
이하에는, 도 1과 도 2를 같이 참조하여, 도 2에 도시된 시스템의 다양한 실시예들에 대하여 설명하기로 한다.
제1실시예
제1실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101 단계를 수행하고, 서버(100)는 S103 내지 S107 단계를 수행하도록 구성된다.
제1실시예를 설명하면, 클라이언트들 중 적어도 하나의 클라이언트(이하, '클라이언트')는 S101 단계를 수행하고, 그 수행결과를 서버(100)로 전송한다.
서버(100)는, 클라이언트로부터 전송 받은 암호화된 데이터(즉, 페어링 기반 알고리즘에 의해 암호화된 데이터)를 동형 암호 알고리즘에 의해 암호화된 형태로 변환하고(S103), 서버(100)는 S103 단계에서 변환된 암호화 데이터에 대하여 연산을 하고(S105), 연산 결과를 클라이언트 또는 다른 장치에게 전송한다(S1017).
클라이언트가 S101 단계를 수행할 때, 페어링 기반의 암호 알고리즘을 이용하여, 연산하고자 하는 데이터를 암호화한다. 일 실시예로서, 클라이언트는 아이디 기반 암호 알고리즘에 의해, 연산하고자 하는 데이터를 암호화할 수 있다.
서버(100)가 S103 단계를 수행할 때, 상기 클라이언트로부터 수신한 페어링 기반 암호화 데이터를, 동형 암호 알고리즘에 의해 암호화된 형태로 변환한다.
도 4는 본 시스템에 따른 일 실시예를 설명하기 위한 것으로서, 제1실시예의 이해를 위한 도면이다.
도 4를 참조하여 본 제1실시예를 설명하면, 클라이언트는 연산할 데이터를 페어링 기반 암호 알고리즘을 사용하여 암호화하여, 서버(100)로 전송한다.
서버(100)는 클라이언트로부터 전송 받은 암호화 데이터를, 동형 암호 알고리즘에 의해 암호화된 형태로 변환하고, 변환결과를 이용하여 연산을 한다.
이후, 서버(100)는 연산 결과를 상기 동형 암호 알고리즘의 공개키와 대응이 되는 비밀키를 이용하여 복호화하고, 복호화 결과를 클라이언트에게 전송한다. 본 실시예에서는 복호화 결과를 클라이언트에게 전송하였지만, 클라이언트가 아닌 다른 장치로 전송되는 것도 가능하다.
이상 설명한 것 외에 각 단계에 대한 보다 상세한 설명은 도 1을 참조하여 설명한 부분을 참조하기 바란다.
제2실시예
제2실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101 단계, S107 단계를 수행하고, 서버(100)는 S103 내지 S105 단계를 수행하도록 구성될 수 있다.
제2실시예와 제1실시예와의 차이점은, S107 단계가 서버(100)가 아닌 클라이언트에서 수행된다는 것이다.
도 3은 본 시스템에 따른 일 실시예를 설명하기 위한 것으로서, 구체적으로는 제2실시예의 이해를 위한 도면이다.
도 3을 참조하여 제2실시예를 설명하면, 클라이언트는 연산할 데이터를 페어링 기반 암호 알고리즘을 사용하여 암호화하여, 서버(100)로 전송한다.
서버(100)는 클라이언트 C1 으로부터 전송 받은 암호화 데이터를, 동형 암호 알고리즘에 의해 암호화된 형태로 변환하고, 변환결과를 이용하여 연산을 한다. 이후, 서버(100)는 연산 결과를 클라이언트 C2로 전송하며, 클라이언트 C2는 서버(100)로부터 수신한 연산 결과를, 상기 동형 암호 알고리즘의 공개키와 대응이 되는 비밀키를 이용하여 복호화한다.
제2실시예에서 수행하는 각 단계에 대한 보다 구체적인 설명은, 도 1을 참조하여 설명한 부분을 참조하기 바란다.
제3실시예
제3실시예에 따르면, 클라이언트들(C1, C2, C3) 중 적어도 하나는 S101, S105, S107 단계를 수행하고, 서버(100)는 S103 단계를 수행하도록 구성될 수 있다.
제3실시예와 제1실시예와의 차이점은, S105 단계와 S107 단계가 서버(100)가 아닌 클라이언트에서 수행된다는 것이다.
즉, 제2실시예에 따르면, 서버(100)는 S103 단계의 수행결과를 클라이언트로 전송하며, 클라이언트는 S103 단계의 수행결과를 전송 받아서 S105와 S107 단계를 수행할 수 있다. 제2실시예에서 수행하는 각 단계에 대한 구체적인 설명은, 도 1을 참조하여 설명한 부분을 참조하기 바란다.
상술한 실시예들에 따르면, 컴퓨터 프로그램은 컴퓨터로 읽을 수 있는 매체에 기록되어 있을 수 있다.
또한, 상술한 실시예들에 따르면, 아이디 기반 완전 동형 암호(ID-based fully homomorphic encryption; ID Enc)를 설계할 수 있다. 송신자는 수신자의 아이디를 공개키로 하여 메시지를 암호화한 후 수신자의 클라우드 서버에 전송한다. 클라우드 서버는 완전 동형 암호 알고리즘 또는 준동형 암호 알고리즘(Enc)를 이용하여 아이디 기반 암호의 암호문을 같은 평문에 대응하는 동형암호의 암호문으로 변환한 후, 이 암호문을 입력 값으로 하여 필요한 연산을 수행할 수 있다. 이후, 클라우드 서버는 수행된 결과를 수신자에게 보낸다.
또한, 상술한 실시예들에 따르면 아이디 기반 암호에 적용한 예를 기반으로 설명되었지만, 본원 발명은, 속성 기반 암호(Attribute-based Encryption) 등 페어링에 기반하는 기능 암호(Functional Encryption)에도 같은 원리로 적용 가능하다.
또한, 상술한 실시예들 또는 그 변형에 따르면, 페어링 기반 암호 알고리즘에 의해 암호화된 데이터를 연산함에 있어서, 컴퓨터에, 페어링 기반 암호 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계, 및 변환하는 단계에서 동형 또는 암호 알고리즘에 의해 암호화된 형태의 데이터에 대하여 연산을 수행하는 단계를 포함하는 방법을 실행시키는 프로그램으로 구현가능하며, 이러한 프로그램은 기록매체에 기록된 것일 수 있다.
상기와 같이 본 발명적 개념은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명적 개념은 상기의 실시예에 한정되는 것은 아니며, 본 발명적 개념이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명적 개념의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 서버
101: 메모리
103: 컴퓨터 프로세서
105: 저장부

Claims (19)

  1. 암호화된 데이터를 연산하는 서버에 있어서,
    메모리, 컴퓨터 프로세서, 및 상기 컴퓨터 프로세서에 의해 상기 메모리에 로딩되어 실행되는 컴퓨터 프로그램;을 포함하며,
    상기 컴퓨터 프로그램은,
    페어링 기반 암호 알고리즘으로 암호화된 데이터(이하, '페어링 기반 암호화 데이터')(C)를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및
    상기 변환하는 단계에서, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(Enc(m))에 대하여 연산을 수행하는 단계;를 포함하는 암호화된 데이터를 연산하는 방법을 수행하며,
    상기 변환하는 단계는,
    암호화된 비밀키(Enc(skID))를 사용하며, 상기 암호화된 비밀키(Enc(skID))는 skID를 상기 변환하는 단계에서 사용된 완전 동형 또는 준동형 알고리즘에 의해 암호화한 것이고,
    여기서 skID는 상기 페어링 기반 암호 알고리즘으로 암호화된 데이터에 사용된 공개키에 대응되는 비밀키인 것을 특징으로 하는 서버.
  2. 삭제
  3. 제1항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는,
    브로드캐스트 암호 알고리즘, ID 기반 암호 알고리즘, 또는 어트리뷰트 암호 알고리즘 중 어느 하나에 의해 암호화된 것을 특징으로 하는 것인, 서버.
  4. 제1항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 ID 기반 암호 알고리즘에 의해 암호화된 것이고,
    상기 변환하는 단계는
    상기 ID 기반 암호 알고리즘에 의해 암호화된 암호화문과 상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(Enc(skID))를 입력으로 하여, 상기 페어링 기반 암호화 데이터(C)에 완전동형 또는 준동형 알고리즘을 적용하는 단계인 것을 특징으로 하는 서버.
  5. 제4항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 다음의 형태
    C = (q, P)로 표현 가능하며,
    상기 변환하는 단계는 다음의 수식
    Enc(m) = Enc(q) * Enc(e(P, skID))
    을 수행하는 단계이며, 여기서, e는 페어링 연산인 것을 특징으로 하는 서버.
  6. 제4항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 다음의 형태
    C = (q, P)로 표현 가능하며,
    상기 변환하는 단계는 다음의 수식
    Enc(m) = Enc(q) * Enc(H(e(P, skID)))
    을 수행하는 단계이며, 여기서, e는 페어링 연산, H는 해시값을 산출하는 해시함수를 의미하는 것을 특징으로 하는 서버.
  7. 암호화된 데이터를 연산하는 방법에 있어서,
    클라이언트가 연산하고자 하는 데이터를 페어링 기반 알고리즘으로 암호화하여 서버로 전송하는 단계;
    상기 서버가, 상기 클라이언트로부터 전송받은 페어링 기반 암호 알고리즘에 의해 암호화된 데이터(이하, '페어링 기반 암호화 데이터')(C)를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태로 변환하는 단계; 및
    상기 서버가, 상기 변환하는 단계에서 완전동형 또는 준동형 알고리즘에 의해 암호화된 형태의 데이터(이하, '동형 또는 준동형 데이터')(Enc(m))에 대하여 연산을 수행하는 단계;를 포함하며,
    상기 변환하는 단계는,
    암호화된 비밀키(Enc(skID))를 사용하며, 상기 암호화된 비밀키(Enc(skID))는 skID를 상기 변환하는 단계에서 사용된 완전 동형 또는 준동형 알고리즘에 의해 암호화한 것이고,
    여기서 skID는 상기 페어링 기반 암호 알고리즘으로 암호화된 데이터에 사용된 공개키에 대응되는 비밀키인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
  8. 삭제
  9. 제7항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는,
    브로드캐스트 암호 알고리즘, ID 기반 암호 알고리즘, 또는 어트리뷰트 암호 알고리즘 중 어느 하나에 의해 암호화된 것을 특징으로 하는 것인, 암호화된 데이터를 연산하는 방법.
  10. 제7항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 ID 기반 암호 알고리즘에 의해 암호화된 것이고,
    상기 변환하는 단계는
    상기 ID 기반 암호 알고리즘에 의해 암호화된 암호화문과 상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(Enc(skID))를 입력으로 하여, 상기 페어링 기반 암호화 데이터(C)에 완전동형 또는 준동형 알고리즘을 적용하는 단계인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
  11. 제10항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 다음의 형태
    C = (q, P)로 표현 가능하며,
    상기 변환하는 단계는 다음의 수식
    Enc(m) = Enc(q) * Enc(e(P, skID))
    을 수행하는 단계이며, 여기서, e는 페어링 연산인 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
  12. 제10항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 다음의 형태
    C = (q, P)로 표현 가능하며,
    상기 변환하는 단계는 다음의 수식
    Enc(m) = Enc(q) * Enc(H(e(P, skID)))
    을 수행하는 단계이며, 여기서, e는 페어링 연산, H는 해시값을 산출하는 해시함수를 의미하는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
  13. 제7항에 있어서,
    상기 서버는,
    상기 연산을 수행하는 단계의 연산 결과를 상기 클라이언트 또는 다른 장치에게 전송하거나, 또는
    상기 연산을 수행하는 단계의 연산 결과를, 상기 완전동형 또는 준동형 알고리즘의 비밀키로 복호화하여 상기 클라이언트 또는 다른 장치에게 전송하는 것을 특징으로 하는 암호화된 데이터를 연산하는 방법.
  14. 컴퓨터에
    페어링 기반 암호 알고리즘에 의해 암호화된 데이터를, 완전동형 또는 준동형 알고리즘에 의해 암호화된 데이터 형태로 변환하는 단계; 및
    상기 변환하는 단계에서 동형 또는 암호 알고리즘에 의해 암호화된 형태의 데이터에 대하여 연산을 수행하는 단계;를 포함하는 방법을 실행시키는 프로그램으로서,
    상기 변환하는 단계는,
    암호화된 비밀키(Enc(skID))를 사용하며, 상기 암호화된 비밀키(Enc(skID))는 skID를 상기 변환하는 단계에서 사용된 완전 동형 또는 준동형 알고리즘에 의해 암호화한 것이고,
    여기서 skID는 상기 페어링 기반 암호 알고리즘으로 암호화된 데이터에 사용된 공개키에 대응되는 비밀키인 것을 특징으로 하는 것인, 프로그램을 기록한 기록매체.
  15. 삭제
  16. 제14항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는,
    브로드캐스트 암호 알고리즘, ID 기반 암호 알고리즘, 또는 어트리뷰트 암호 알고리즘 중 어느 하나에 의해 암호화된 것을 특징으로 하는 프로그램을 기록한 기록매체.
  17. 제14항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 ID 기반 암호 알고리즘에 의해 암호화된 것이고,
    상기 변환하는 단계는
    상기 ID 기반 암호 알고리즘에 의해 암호화된 암호화문과 상기 완전동형 또는 준동형 알고리즘에 의해서 암호화된 비밀키(Enc(skID))를 입력으로 하여, 상기 페어링 기반 암호화 데이터(C)에 완전동형 또는 준동형 알고리즘을 적용하는 단계인 것을 특징으로 하는 프로그램을 기록한 기록매체.
  18. 제17항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 다음의 형태
    C = (q, P)로 표현 가능하며,
    상기 변환하는 단계는 다음의 수식
    Enc(m) = Enc(q) * Enc(e(P, skID))
    을 수행하는 단계이며, 여기서, e는 페어링 연산인 것을 특징으로 하는 프로그램을 기록한 기록매체.
  19. 제17항에 있어서,
    상기 페어링 기반 암호화 데이터(C)는 다음의 형태
    C = (q, P)로 표현 가능하며,
    상기 변환하는 단계는 다음의 수식
    Enc(m) = Enc(q) * Enc(H(e(P, skID)))
    을 수행하는 단계이며, 여기서, e는 페어링 연산, H는 해시값을 산출하는 해시함수를 의미하는 것을 특징으로 하는 프로그램을 기록한 기록매체.
KR1020140003056A 2014-01-09 2014-01-09 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버 KR101618941B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140003056A KR101618941B1 (ko) 2014-01-09 2014-01-09 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140003056A KR101618941B1 (ko) 2014-01-09 2014-01-09 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버

Publications (2)

Publication Number Publication Date
KR20150083391A KR20150083391A (ko) 2015-07-17
KR101618941B1 true KR101618941B1 (ko) 2016-05-09

Family

ID=53873489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140003056A KR101618941B1 (ko) 2014-01-09 2014-01-09 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버

Country Status (1)

Country Link
KR (1) KR101618941B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044456A (ko) 2018-10-19 2020-04-29 삼성에스디에스 주식회사 프라이버시를 보장하는 데이터 연산 장치 및 방법
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102213835B1 (ko) * 2018-11-09 2021-02-09 고려대학교 산학협력단 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법
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
KR102466015B1 (ko) * 2021-06-21 2022-11-11 주식회사 크립토랩 동형 암호문을 처리하는 서버 장치 및 그 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015047A1 (ja) * 2010-07-30 2012-02-02 国立大学法人岡山大学 埋め込み次数1かつ合成数位数の楕円曲線上の有理点のスカラー倍算およびペアリング演算

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015047A1 (ja) * 2010-07-30 2012-02-02 国立大学法人岡山大学 埋め込み次数1かつ合成数位数の楕円曲線上の有理点のスカラー倍算およびペアリング演算

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044456A (ko) 2018-10-19 2020-04-29 삼성에스디에스 주식회사 프라이버시를 보장하는 데이터 연산 장치 및 방법
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
KR20150083391A (ko) 2015-07-17

Similar Documents

Publication Publication Date Title
KR101618941B1 (ko) 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
JP5291795B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体
KR102251697B1 (ko) 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
JP6273951B2 (ja) 暗号化装置、暗号化方法、情報処理装置および暗号化システム
JP5562475B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
KR101608515B1 (ko) 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
US20090279694A1 (en) Privacy-preserving scalar product calculation system, privacy-preserving scalar product calculation method and cryptographic key sharing system
JP5852551B2 (ja) 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム
Obaid et al. Image encryption based on elliptic curve cryptosystem
WO2007011071A1 (ja) タイム装置、暗号化装置、復号化装置、暗号化/復号化システム
JP2010049213A (ja) 暗号化装置、復号装置、暗号通信システム、方法及びプログラム
KR101533950B1 (ko) 브로드캐스트 암호화 방법 및 시스템
Santhiya et al. Analysis on DGHV and NTRU fully homomorphic encryption schemes
JP5300374B2 (ja) 表現変換装置、演算装置、表現変換方法及びプログラム
JP5354994B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
Zhigang et al. Review of how to construct a fully homomorphic encryption scheme
KR101932032B1 (ko) 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법
JP2002023626A (ja) 公開鍵暗号方法および公開鍵暗号を用いた通信システム
Burger et al. A Diffie-Hellman-like key exchange protocol based on multivariate Ore polynomials
Karki A comparative analysis of public key cryptography
JP5506633B2 (ja) 代理計算システム、端末装置、代理計算装置、代理計算方法、及びプログラム
Gazizullina Fully homomorphic encryption scheme for secure computation
Tomar et al. Implementation of elliptic–curve cryptography
JP5514345B2 (ja) 表現変換装置、演算装置、表現変換方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right