KR101600016B1 - 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치 - Google Patents

동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR101600016B1
KR101600016B1 KR1020140177514A KR20140177514A KR101600016B1 KR 101600016 B1 KR101600016 B1 KR 101600016B1 KR 1020140177514 A KR1020140177514 A KR 1020140177514A KR 20140177514 A KR20140177514 A KR 20140177514A KR 101600016 B1 KR101600016 B1 KR 101600016B1
Authority
KR
South Korea
Prior art keywords
key
computing device
encrypted
ciphertext
epk
Prior art date
Application number
KR1020140177514A
Other languages
English (en)
Inventor
천정희
김진수
Original Assignee
서울대학교기술지주 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교기술지주 주식회사 filed Critical 서울대학교기술지주 주식회사
Priority to KR1020140177514A priority Critical patent/KR101600016B1/ko
Application granted granted Critical
Publication of KR101600016B1 publication Critical patent/KR101600016B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms

Landscapes

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

Abstract

본 발명의 일 실시예에 따르면, 컴퓨팅 장치에서 동형 암호화 알고리즘을 이용한 암호화를 수행하는 방법에 있어서, (가) 대칭키(sk')로 하나 이상의 평문(mi)(단, 1≤i≤n, i,n은 정수}을 각각 암호화하여 하나 이상의 암호문(Esk'(mi))을 생성하는 단계; (나) 상기 컴퓨팅 장치가 외부 장치로부터 수신한 공개키(pk)로 상기 대칭키(sk')를 암호화하여 암호화된 대칭키(ck)(단, ck= Epk(sk'))를 생성하는 단계; 및 (다) 상기 하나 이상의 암호문(Esk'(mi))의 각각을, 완전동형 또는 준동형 알고리즘에 의해 상기 공개키(pk)로 암호화된 암호문(Epk(mi))으로 키스위칭하는 단계;를 포함하는 암호화 방법이 제공된다.

Description

동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치 {method of encrypting data using Homomorphic Encryption and Computing device performing the method}
본 발명은 동형 암호화 알고리즘을 이용한 암호화 방법 및 이 방법을 수행하는 컴퓨팅 장치에 관한 것이다.
완전 동형 또는 준동형 암호화 기술은 암호화된 상태에서 곱셈이나 덧셈이 가능하도록 하는 암호화 기술로서, 여러 분야에서 활용이 기대되고 있다. 예를 들면, 프라이버시를 보호할 필요가 있는 경우, 준동형 암호화 기술은 복호화를 할 필요없이 암호화된 상태에서 처리가 가능하므로, 유용할 수 있다.
2009년 완전 준동형 암호화 기술을 제시된 뒤로 완전 준동형 암호에 대한 연구가 활발하게 이루어지고 있으며, 특히, 정수 기반 완전 준동형 암호화 기술은 횟수에 제한 없이 암호문간의 더하기와 곱하기 연산을 지원할 수 있는 기술이다.
하지만 완전 동형 또는 준동형 암호화 기술로 암호화된 암호화문은 그 크기가 수십만 비트이기 때문에 암호화 과정 및 전송과 저장시에 비효율적이다.
본 발명의 일 실시예에 따르면, 공개키 기반 동형 암호화 알고리즘을 이용하되 키 스위칭 기술을 사용함으로써 암호문 용량을 감소시키고 암호화 과정 및 암호문의 전송과 저장 등의 작업을 신속하고 효율적으로 수행할 수 있는 암호화 방법 및 이를 이용하는 암호화 장치를 제공한다.
본 발명의 일 실시예에 따르면, 컴퓨팅 장치에서 동형 암호화 알고리즘을 이용한 암호화를 수행하는 방법에 있어서, (가) 대칭키(sk')로 하나 이상의 평문(mi)(단, 1≤i≤n, i,n은 정수}을 각각 암호화하여 하나 이상의 암호문(Esk'(mi))을 생성하는 단계; (나) 상기 컴퓨팅 장치가 외부 장치로부터 수신한 공개키(pk)로 상기 대칭키(sk')를 암호화하여 암호화된 대칭키(ck)(단, ck= Epk(sk'))를 생성하는 단계; 및 (다) 상기 하나 이상의 암호문(Esk'(mi))의 각각을, 완전동형 또는 준동형 알고리즘에 의해 상기 공개키(pk)로 암호화된 암호문(Epk(mi))으로 키스위칭하는 단계;를 포함하는 암호화 방법이 제공된다.
본 발명의 일 실시예에 따르면, 상기 방법을 수행하기 위한 프로그램 명령어가 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
본 발명의 일 실시예에 따르면, 동형 암호화 알고리즘을 이용하여 암호화를 수행하는 컴퓨팅 장치에 있어서, 상기 컴퓨팅 장치는 컴퓨터 프로세서, 메모리, 및 컴퓨터 프로세서에 의해 상기 메모리에 로딩되어 실행되는 컴퓨터 프로그램 코드;를 포함하며, 상기 컴퓨터 프로그램 코드는, 하나 이상의 암호문(Esk'(mi))의 각각을, 암호화된 대칭키(ck)를 사용하여, 완전동형 또는 준동형 알고리즘에 의해 공개키(pk)로 암호화된 암호문(Epk(mi))으로 키스위칭하는 단계를 포함하며, 이 때, 상기 하나 이상의 암호문(Esk'(mi))은, 대칭키(sk')로 하나 이상의 평문(mi)(단, 1≤i≤n, i,n은 정수}을 각각 암호화하여 생성된 것을 특징으로 하는 컴퓨팅 장치가 제공된다.
본 발명의 하나 이상의 실시예에 따르면, 클라이언트에서 처리하는 암호문의 크기가 감소되기 때문에 클라이언트의 암호화 과정 및 암호문 전송과 저장 등의 작업을 신속하고 효율적으로 수행할 수 있다.
도1은 본 발명의 제1 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 설명하기 위한 흐름도,
도2는 제1 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 수행하는 예시적인 시스템을 설명하기 위한 도면,
도3은 제2 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 설명하기 위한 흐름도,
도4는 제2 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 수행하는 예시적인 시스템을 설명하기 위한 도면,
도5는 일 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 수행하는 예시적인 컴퓨팅 장치 구성을 설명하기 위한 도면이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 게재될 수도 있다는 것을 의미한다.
어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.
또한 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는데 있어 혼란이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
본 발명의 일 실시예에 따르면, 동형 성질(homomorphic property)을 가지며 암호문의 크기가 기존의 동형암호보다 현저히 작은 공개키 암호 시스템을 개시한다. RLWE(Ring Learning With Errors) 기반, NTRU 기반, 또는 정수기반 동형암호에서 기본적으로 메세지를 암호화하기 위해서는 안전성과 성능을 위해 큰 암호문이 필요하다. 암호문의 많은 부분을 차지하는 랜덤 부분을 난수생성함수를 이용하여 대체함으로써 암호문의 사이즈를 크게 낮출 수 있는데, 이 기술을 적용하기 위해서는 공개키 기반이 아닌 대칭키 기반 동형암호를 사용해야 했었다. 본 발명의 바람직한 일 실시예에서는 이를 공개키로 전환하기 위해 키 스위칭(key Switching) 기술을 사용한다. 종래에 키 스위칭 기술은 암호문에 포함된 에러를 효율적으로 조절하기 위해 사용되었지만, 본 발명에서는 공개키 전환에 사용함으로써 암호문의 크기가 작은 공개키 동형암호를 설계할 수 있다.
기호의 정의
이하에서 본 발명의 실시예들을 설명할 때 다음과 같이 기호를 사용하기로 한다.
m : 평문(plaintext)으로, 암호화 및 연산의 대상이 되는 임의의 데이터를 포함한다.
C : 공개키 기반 암호화에 의해 평문을 암호화한 암호문(cyphertext)
C': 대칭키 기반 암호화에 의해 평문을 암호화한 암호문
pk : 공개키 기반 암호화에서 사용되는 공개키(public key)
sk : 공개키 기반 암호화에서 사용되는 비밀키(secret key)(사설키)
sk': 대칭키 기반 암호화에서 사용되는 비밀키
Ekey(m) : 평문(m)을 임의의 암호화 알고리즘에 의해 암호화한 암호문으로, "key" 자리에 sk', pk, sk 등의 특정 키 기호가 사용된다. 예컨대, "Epk(m)"은 공개키(pk)에 의해 암호화된 암호문을 의미한다.
Dsk(C) : 암호문(C)을 비밀키(sk)로 복호화한 평문
도1은 본 발명의 제1 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 설명하기 위한 흐름도이다.
도1의 제1 실시예에 따른 암호화 방법은, 제1 컴퓨팅 장치에서 대칭키를 생성하는 단계(S110), 이 대칭키를 이용하여 평문을 암호화하고, 또한 컴퓨팅 장치가 외부 장치로부터 수신한 공개키를 이용하여 상기 대칭키를 암호화하는 단계(S120), 상기 단계에서 암호화된 대칭키와 암호문을 제2 컴퓨팅 장치로 전송하는 단계(S130), 제2 컴퓨팅 장치에서 암호문을 키 스위칭하는 단계(S140)를 포함하며, 선택적으로, 제2 컴퓨팅 장치(또는 제3 컴퓨팅 장치)에서 암호문을 복호화하는 단계(S150)를 더 포함할 수 있다.
이 실시예에서 제1 내지 제3 컴퓨팅 장치는 클라이언트 장치, 서버 장치 등의 컴퓨팅 장치일 수 있다. 예를 들어 클라이언트 컴퓨터는 데스크탑이나 노트북과 같은 개인용 디바이스일 수도 있고 서버와 같은 컴퓨팅 장치일 수도 있다.
도1의 실시예에 따른 단계들(S110 내지 S150)은 하나 이상의 컴퓨팅 장치에서 수행될 수 있다. 예를 들어, 단계(S110 및 S130)는 제1 컴퓨팅 장치(예컨대 클라이언트 장치)에서 수행되고, 단계(S140)는 제2 컴퓨팅 장치(예컨대 연산을 전문으로 하는 연산 서버)에서 수행되고, 단계(S150)는 제3 컴퓨팅 장치(예컨대 복호화의 결과물을 필요로 하는 곳의 서버 장치)에서 수행될 수 있다. 대안적으로, 상기 제2 컴퓨팅 장치와 제3 컴퓨팅 장치가 물리적으로 동일한 장치일 수도 있다.
도1을 참조하면, 단계(S110)에서, 컴퓨팅 장치가 임의의 대칭키를 생성한다. 이 때 생성되는 대칭키는 대칭키 기반의 임의의 암호화 방식에 따른 대칭키(sk') 이다.
그 후 단계(S120)에서, 이 대칭키(sk')를 이용하여 평문(m)을 암호화하고 또한 공개키(pk)를 이용하여 상기 대칭키(sk')를 암호화한다.
여기서 평문(m)의 암호화는 임의의 대칭키 기반의 암호화 방식에 따라 대칭키(sk')를 사용하여 암호화하는 것으로, 다음과 같은 암호문(C')이 생성된다.
C' = Esk'(m)
이 때 암호화 대상이 되는 평문은 하나 이상의 평문일 수 있다. 즉 복수개의 평문(m1, m2,…, mi, …, mn)(단, 1≤i≤n 이고, i,n는 정수)의 각각이 대칭키(sk')에 의해 각각 암호화될 수 있다. 이하에서는 설명의 편의를 위해 하나의 평문(m)을 암호화하는 것을 예로서 설명하기로 한다.
한편, 단계(S120)에서 또한, 평문(m)의 암호화에 사용된 대칭키(sk')를 공개키(pk)를 이용하여 암호화한다. 이 때 공개키(pk)는 예를 들어 외부의 컴퓨팅 장치로부터 수신한 키이며, 임의의 공개키 암호화 알고리즘을 이용하여 대칭키(sk')를 암호화한다. 이에 따라 다음과 같이 암호화된 대칭키(ck)가 생성된다.
ck = Epk(sk'))
여기서 "ck"는 전환키("conversion key")의 약어로서, 단계(S140)에서 후술하는 바와 같이 키 스위칭(key switching)시에 이 암호화된 대칭키가 필요하기 때문에 "ck"라고 표현하기로 한다.
한편 이 단계(S120)에서, 암호문(C')의 생성 동작 및 암호화된 대칭키(ck)의 생성 동작은 동시에 또는 순차적으로 수행될 수 있으며, 어느 동작이 먼저 수행되어도 무방하다.
일 실시예에서, 대칭키(sk')는 완전동형 또는 준동형 알고리즘에 의해 암호화될 수 있다. 여기서 사용되는 완전동형(Fully Homomorphic) 또는 준동형 암호화 알고리즘은 암호화문에 대하여 연산을 지원할 수 있는 알고리즘이다. 완전동형 암호화 알고리즘은 리플레쉬라는 기법에 의해 암호화된 상태에서의 연산의 지원 횟수가 무한대인 암호화 알고리즘이고, 준동형 암호화 알고리즘은 암호화된 상태에서의 연산의 지원 횟수가 제한되어 있어서 소정 횟수 이상 연산을 하게 되면 더 이상의 연산이 불가능한 암호화 알고리즘이다.
본 발명의 실시예에서 사용가능한 완전동형 또는 준동형 암호화 알고리즘은 종래 알려진 어떠한 것이라도 사용가능하며 장래 개발될 알고리즘도 사용이 가능하다. 본 발명의 설명의 목적을 위해서, 본원 명세서에서 "동형 암호화 알고리즘"이라고 함은 완전 동형 암호화 알고리즘과 준동형 암호화 알고리즘을 모두 포함하는 의미로 사용하기로 한다.
다음으로 단계(S130)에서, 단계(S120)에서 생성된 암호문(C')과 암호화된 대칭키(ck)를 다른 컴퓨팅 장치로 전송할 수 있다. 예를 들어, 제1 컴퓨팅 장치에서 단계(S110, S120)를 수행한 경우 제1 컴퓨팅 장치가 암호문(C')과 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송할 수 있다.
그 후, 암호문(C')과 암호화된 대칭키(ck)를 수신한 컴퓨팅 장치는, 단계(S140)에서 키 스위칭(key switching)을 수행한다. 즉 다음과 같이, 대칭키(sk')로 암호화되어 있는 암호문(C')을, 동형 암호화 알고리즘에 의해 공개키(pk)로 암호화된 암호문(C) 형태로 변환한다.
Esk'(m) → Epk(m)
키 스위칭 기술은 동형암호에서 암호문의 에러를 효율적으로 조절하기 위해 개발된 기법으로, 암호문에 포함된 비밀키를 다른 비밀키로 바꾸는 방법이다. 키 스위칭에 대한 구체적 설명은 예를 들어 미국특허출원 제2010-0020976호(2010년 1월 28일 공개)의 "METHOD OF DECRYPTION KEY SWITCHING, A DECRYPTION DEVICE AND A TERMINAL EQUIPMENT", 미국특허출원 제2012-0082315호(2012년 4월 5일 공개)의 "METHOD AND SYSTEM FOR GENERATING CIPHER KEY DURING SWITCHING", 또는 미국특허출원 제2013-0216044호(2013년 8월 22일 공개)의 "HOMOMORPHIC EVALUATION INCLUDING KEY SWITCHING, MODULUS SWITCHING, AND DYNAMIC NOISE MANAGEMENT" 등에 개시되어 있다.
일반적으로 공개키 기반의 동형 암호화 알고리즘에서는 암호문의 사이즈가 매우 크기 때문에 암호화 과정과 암호문의 전송 및 저장시 효율적이지 못한 점이 있었고 이에 비해 대칭키 기반의 동형 암호화에서는 암호문 사이즈를 크게 줄일 수 있다. 본 발명에서는 예컨대 클라이언트측에서 암호화 할 때 암호문 사이즈가 작은 대칭키 기반으로 암호화를 하고(단계 S120) 이 암호문을 연산 속도가 빠른 연산 서버로 전송하고(S130), 연산 서버에서 키 스위칭 기술을 이용하여 공개키 기반 동형 암호화 알고리즘에 따른 암호문 형태로 변환(S140)한 뒤 추가적인 연산 등의 작업을 수행함으로써, 암호화 과정 및 암호문 전송, 저장 등의 작업을 신속하고 효율적으로 수행할 수 있게 된다.
한편 이 단계(S140)에서 암호문(C')에 대한 키 스위칭을 할 때, 암호화된 대칭키(ck)를 사용하여 키 스위칭을 수행한다. 여기서 암호화된 대칭키(ck)는, 단계(S120)에서 대칭키(sk')가 공개키(pk)에 의해 암호화된 것이다(즉, ck = Epk(sk')).
그 후 단계(S150)에서, 키 스위칭에서 의해 변환된 암호문(C=Epk(m))을 비밀키(sk)를 이용하여 복호화한다. 여기서 사용되는 비밀키(sk)는 상술한 공개키(pk)의 쌍이 되는 비밀키이다. 이에 따라 다음과 같이 복호화가 수행된다.
Dsk(Epk(m)) → m
이 단계(S150)는 키 스위칭 단계(S140)를 수행한 컴퓨팅 장치에서 수행되거나 또 다른 컴퓨팅 장치에서 수행될 수 있다. 예를 들어, 제1 컴퓨팅 장치에서 단계(S110, S120)를 수행한 뒤 암호문(C')과 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송하면(S130), 제2 컴퓨팅 장치가 단계(S140, S150)를 수행할 수 있다. 이 때 공개키(pk)의 쌍이 되는 비밀키(sk)는 제2 컴퓨팅 장치가 가지고 있다고 가정한다.
또 다른 예로서, 제1 컴퓨팅 장치에서 단계(S110, S120)를 수행한 뒤 암호문(C')과 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송하고(S130), 제2 컴퓨팅 장치는 단계(S140)를 수행하여 변환된 암호문(C)(즉, Epk(m))을 제3 컴퓨팅 장치로 전송하고, 제3 컴퓨팅 장치가 복호화 단계(S150)를 수행할 수 있다. 이 때 공개키(pk)의 쌍이 되는 비밀키(sk)는 제3 컴퓨팅 장치가 가지고 있다고 가정한다.
이와 같이 본 발명의 일 실시예에 따르면, 기본적으로 공개키 기반 동형 암호화 알고리즘을 이용하되 키 스위칭 기술을 도입함으로써 암호문 용량을 감소시키고 암호화 과정 및 암호문의 전송과 저장 등의 작업을 신속하고 효율적으로 수행할 수 있다.
도2는 제1 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 수행하는 예시적인 시스템을 설명하기 위한 도면이다.
도2의 단계(S210, S220, S230, S240, S250)는 도1의 각 단계(S110 내지 S150)에 일대일로 대응되며 동일 또는 유사한 동작을 수행한다. 다만 도2의 실시예에서는, 단계(S210, S220)가 클라이언트(10)에서 실행되고, 단계(S240)가 연산 서버(20)에서 실행되고, 단계(S250)가 키관리 및 복호화 서버(30)에서 실행된다. 일 예로서, 여기서 클라이언트(10)는 예컨대 암호화 대상이 되는 특정 데이터를 갖고 있는 장치이고, 연산 서버(20)는 빠른 속도로 연산을 수행할 수 있는 서버 장치이고, 키관리 및 복호화 서버(30)는 상기 암호화된 특정 데이터를 필요로 하는 측의 장치로서 공개키(pk) 및 이의 쌍이 되는 비밀키(sk)를 생성 및 관리하고 암호화된 데이터를 복호화하는 서버 장치일 수 있다.
도2를 참조하면, 우선 단계(S205)에서 키관리 및 복호화 서버(30)가 공개키 기반하의 동형 암호화 알고리즘에 따른 공개키(pk)를 클라이언트(10)로 전달한다. 클라이언트는 단계(S210)에서, 대칭키 기반 암호화 방식에 따른 대칭키(sk')를 생성한다. 이 때 단계(S205)와 단계(S210)는 그 순서가 서로 바뀌거나 동시에 수행되어도 무방하다.
그 후 클라이언트(10)는 대칭키(sk')를 사용하여 평문(m)을 암호화하고, 키관리 및 복호화 서버(30)로부터 수신한 공개키(pk)를 사용하여 대칭키(sk')를 암호화한다. 이 때 바람직하게는 대칭키(sk')는 완전동형 또는 준동형 알고리즘에 의해 암호화될 수 있다.
단계(S220)에 의해 다음과 같이 암호문(C') 및 암호화된 대칭키(ck)가 생성된다.
C'= Esk'(m)
ck = Epk(sk'))
그 후 상기 생성된 암호문(C')과 암호화된 대칭키(ck)를 연산 서버(20)로 전송하고(S230), 이를 수신한 연산 서버(20)는 암호문(C')에 대해 키 스위칭을 수행하여 동형 암호화 알고리즘에 의해 공개키(pk)로 암호화된 암호문 형식으로 변환한다. 이 때 암호화된 대칭키(ck)가 키 스위칭 동작시에 사용될 수 있다. 즉 단계(S240)에 의해 다음과 같이 암호문(C')이 암호문(C)으로 변환된다.
C' (=Esk'(m)) → C (=Epk(m))
다음으로 연산 서버(20)는 암호문(C)을 키관리 및 복호화 서버(30)로 전송하고(S245), 키관리 복호화 서버(30)는 수신한 암호문(C)을 공개키(pk)의 쌍이 되는 비밀키(sk)를 이용하여 복호화한다.
도3은 제2 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 설명하기 위한 흐름도이다.
도3의 제2 실시예에 따른 암호화 방법은, 제1 컴퓨팅 장치에서 대칭키를 생성하는 단계(S310), 이 대칭키를 이용하여 평문을 암호화하고, 또한 외부 장치로부터 수신한 공개키를 이용하여 상기 대칭키를 암호화하는 단계(S320), 상기 단계에서 암호화된 대칭키와 암호문을 제2 컴퓨팅 장치로 전송하는 단계(S330), 제2 컴퓨팅 장치에서 암호문을 키 스위칭하는 단계(S340), 및 키 스위칭에 의해 변환된 암호문을 연산하는 단계(S350)를 포함하며, 선택적으로, 제2 컴퓨팅 장치(또는 제3 컴퓨팅 장치)에서 암호문을 복호화하는 단계(S360)를 더 포함할 수 있다.
이 실시예에서 제1 내지 제3 컴퓨팅 장치는 클라이언트 장치, 서버 장치 등의 컴퓨팅 장치일 수 있다.
도3의 단계들(S310 내지 S360)은 하나 이상의 컴퓨팅 장치에서 수행될 수 있다. 예를 들어, 단계(S310 내지 S330)는 제1 컴퓨팅 장치(예컨대 클라이언트 장치)에서 수행되고, 단계(S340, S350)는 제2 컴퓨팅 장치(예컨대 연산을 전문으로 하는 연산 서버)에서 수행되고, 단계(S360)는 제3 컴퓨팅 장치(예컨대 복호화의 결과물을 필요로 하는 곳의 서버 장치)에서 수행될 수 있다. 대안적으로, 제2 컴퓨팅 장치와 제3 컴퓨팅 장치가 물리적으로 동일한 장치일 수도 있다.
도1과 비교할 때 도3의 실시예는 암호문을 연산하는 단계(S350)만 새로 추가되었고, 나머지 단계(S310~S340, 및 S360)의 각각은 도1의 각 단계(S110~S150)에 대응하며 각각 동일 또는 유사한 동작을 수행하므로 이하에서 간단히 설명하기로 한다.
도3을 참조하면, 컴퓨팅 장치는 단계(S310)에서 대칭키 기반 암호화 방식에 따른 대칭키(sk')를 생성한다. 그 후 컴퓨팅 장치는 단계(S320)에서 대칭키(sk')를 사용하여 평문(m)을 암호화하고, 또한 외부 장치로부터 수신한 공개키(pk)를 사용하여 대칭키(sk')를 암호화한다. 바람직하게는 대칭키(sk')는 완전동형 또는 준동형 알고리즘에 의해 암호화될 수 있다. 단계(S320)에 의해 다음과 같이 암호문(C') 및 암호화된 대칭키(ck)가 생성된다.
C' = Esk'(m)
ck = Epk(sk'))
그 후 단계(S330)에서, 암호문(C')과 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송하고, 제2 컴퓨팅 장치는 암호화된 대칭키(ck)를 이용하여 암호문(C')에 대해 키 스위칭을 수행한다. 이에 따라 암호문(C')이 다음과 같이 동형 암호화 알고리즘에 따른 공개키(pk)로 암호화된 암호문(C) 형태로 변환된다.
C' (=Esk'(m)) → C (=Epk(m))
다음으로, 도시된 제2 실시예에 따르면 제2 컴퓨팅 장치가 이 키스위칭된 암호문(C)에 대해 임의의 연산을 수행한다. 이 연산은 예컨대 미리 정의된 임의의 함수 f(m)에 따라 암호문(C)을 연산하는 것이다.
도1을 참조하여 설명하였듯이 하나 이상의 평문(mi), 즉 m1, m2, …, mi,…, mn(단, 1≤i≤n, i,n은 정수)이 각각 암호화될 수 있고, 이에 따라 단계(S340)에서 키스위칭에 의해 하나 이상의 암호문, 즉 Epk(m1), Epk(m2),…, Epk(mn)의 암호문이 각각 생성될 수 있다. 일 실시예에서, 단계(S350)는 이러한 하나 이상의 암호문(C)들끼리의 임의의 연산을 수행하는 것을 의미한다. 예를 들어 단계(S350)에서 수행할 연산이 f(m) = m1 + m2 + 3m3 라고 가정하면, 이 단계(S350)에서는 암호문(C)들에 대해 상기 함수 f(m)를 적용하여 다음의 연산 결과가 도출될 것이다.
f(Epk(m)) = Epk(m1) + Epk(m2) + 3Epk(m3)
그런데 동형 암호화 알고리즘에 따르면 암호문에 대한 임의의 연산을 수행한 결과를 복호화한 결과는 평문에 대한 임의의 연산을 수행한 결과와 동일하다. 즉 다음과 같은 특성이 있다.
f(Epk(m)) = Epk(f(m))
따라서 단계(S350)에서 수행한 연산 결과인 f(Epk(m))의 값은 Epk(f(m))와 동일하므로, 이 연산 결과를 복호화하면 f(m)이 도출될 수 있다.
한편 바람직한 일 실시예에서, 단계(S350)에서 키스위칭된 암호문에 대한 연산을 수행할 때 평가키(evaluation key)가 사용될 수 있다. 이 때 일 실시예에서 평가키(ek)는 복호화를 수행할 컴퓨팅 장치(예컨대 제3 컴퓨팅 장치)에 의해 단계(S350)를 수행하는 장치(예컨대 제2 컴퓨팅 장치)로 전달될 수 있다.
다음으로, 제2 컴퓨팅 장치는 단계(S350)의 연산 결과를 다른 컴퓨팅 장치(예컨대 제3 컴퓨팅 장치)로 전송하고, 제3 컴퓨팅 장치는 공개키(pk)의 쌍이 되는 비밀키(sk)를 이용하여 이 연산 결과를 복호화한다(S360). 이에 따라 다음과 같이 복호화가 수행된다.
Dsk[f{Epk(m)}] = Dsk[Epk{f(m)}] → f(m)
일 실시예에서 이 단계(S360)는 키스위칭 및 연산 단계(S340, S350)를 수행한 컴퓨팅 장치에서 수행되거나 또 다른 컴퓨팅 장치에서 수행될 수 있다. 예를 들어, 제1 컴퓨팅 장치에서 단계(S310, S320)를 수행한 뒤 암호문(C')과 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송하고(S330), 제2 컴퓨팅 장치가 단계(S340 내지 S360)를 수행할 수 있다. 이 때 공개키(pk)의 쌍이 되는 비밀키(sk) 및 평가키(ek)는 제2 컴퓨팅 장치가 가지고 있다고 가정한다.
또 다른 예로서, 제1 컴퓨팅 장치에서 단계(S310, S320)를 수행한 뒤 암호문(C')과 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송하고(S330), 제2 컴퓨팅 장치는 단계(S340, S350)를 수행하여 키스위칭과 연산을 한 뒤 연산 결과(즉, f(Epk(m)))를 제3 컴퓨팅 장치로 전송하고, 제3 컴퓨팅 장치가 복호화 단계(S360)를 수행할 수 있다. 이 때 연산에 필요한 평가키(ek)는 제2 컴퓨팅 장치가 가지고 있고 공개키(pk)의 쌍이 되는 비밀키(sk)는 제3 컴퓨팅 장치가 가지고 있다고 가정할 수 있다.
도4는 제2 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 수행하는 예시적인 시스템을 설명하기 위한 도면이다.
도4의 단계(S410, S420, S430, S440, S450, S460)는 도3의 각 단계(S310 내지 S360)에 일대일로 대응되며 동일 또는 유사한 동작을 수행한다. 다만 도4의 실시예에서는, 단계(S410, S420)가 클라이언트(10)에서 실행되고, 단계(S440, S450)가 연산 서버(20)에서 실행되고, 단계(S360)가 키관리 및 복호화 서버(30)에서 실행된다. 여기서 클라이언트(10)는 예컨대 암호화 대상이 되는 특정 데이터를 갖고 있는 장치이고, 연산 서버(20)는 빠른 속도의 연산을 수행할 수 있는 서버 장치이고, 키관리 및 복호화 서버(30)는 상기 암호화된 특정 데이터를 필요로 하는 측의 장치로서 공개키(pk) 및 이의 쌍이 되는 비밀키(sk) 및 평가키(ek)를 생성 및 관리하고 암호화된 데이터를 복호화하는 서버 장치일 수 있다.
도4를 참조하면, 우선 단계(S405)와 단계(S407)에서, 키관리 및 복호화 서버(30)가 공개키 기반하의 동형 암호화 알고리즘에 따른 공개키(pk)를 클라이언트(10)로 전달하고 암호문의 연산에 필요한 평가키(ek)를 연산 서버(20)에 전달한다. 단계(S405,S407)은 동시에 실행되거나 실행 순서가 변경되어도 무방하다.
클라이언트는 단계(S410)에서, 대칭키 기반 암호화 방식에 따른 대칭키(sk')를 생성한다. 그 후 클라이언트(10)는 대칭키(sk')를 사용하여 평문(m)을 암호화하고, 키관리 및 복호화 서버(30)로부터 수신한 공개키(pk)를 사용하여 동형 암호화 알고리즘에 의해 대칭키(sk')를 암호화할 수 있다.
그 후 상기 생성된 암호문(C')과 암호화된 대칭키(ck)를 연산 서버(20)로 전송하고(S430), 이를 수신한 연산 서버(20)는 암호문(C')에 대해 키 스위칭을 수행하여 동형 암호화 알고리즘에 의해 공개키(pk)로 암호화된 암호문 형식으로 변환한다. 이 때 암호화된 대칭키(ck)가 키 스위칭 동작시에 사용될 수 있다.
다음으로 연산 서버(20)는 변한된 암호문에 대해 평가키(ek)를 사용하여 임의의 연산을 수행하고(S450), 연산 결과를 키관리 및 복호화 서버(30)로 전송한다(S455). 키관리 및 복호화 서버(30)는 수신한 연산 결과를 공개키(pk)의 쌍이 되는 비밀키(sk)를 이용하여 복호화한다.
도5는 일 실시예에 따른 동형 암호화 알고리즘을 이용한 암호화 방법을 수행하는 예시적인 컴퓨팅 장치 구성을 설명하기 위한 도면이다.
도5를 참조하면, 일 실시예에 따른 암호화 시스템은 하나의 클라이언트(10), 연산 서버(20), 및 키관리 및 복호화 서버(30)를 포함할 수 있다.
도시한 실시예에서, 클라이언트(10), 연산 서버(20), 및 키관리 및 복호화 서버(30)의 각각은 컴퓨터 프로세서(110,210,310), 메모리(120,220,320), 및 저장부(130,230,330)를 각각 포함할 수 있으며, 메모리(120,220,320)에는 컴퓨터 프로세서(110,210,310)의 제어하에 동작하는 컴퓨터 프로그램이 저장되어 있다. 각 저장부(130,230,330)에는 각 장치(10,20,30)의 동작을 위해 필요한 컴퓨터 프로그램과 데이터들이 저장된다.
본 실시예에 따르면, 각 장치(10,20,30)의 컴퓨터 프로세서(110,210,310)의 제어하에 동작하는 컴퓨터 프로그램은 도1 또는 도3에 도시한 각 단계들(S110 내지 S150, 및 S310 내지 S360) 중 적어도 하나 이상을 수행하도록 구현될 수 있다. 예를 들어, 클라이언트(10)에서 실행되는 컴퓨터 프로그램은 도3의 단계(S310,S320,S330)를 실행하도록 프로그래밍되고, 연산 서버(20)에서 실행되는 컴퓨터 프로그램은 단계(S340,S350)를 실행하도록 프로그래밍되고, 키관리 및 복호화 서버(30)에서 실행되는 컴퓨터 프로그램은 단계(S360)를 실행하도록 프로그래밍될 수 있다.
이상과 같이 본 발명적 개념이 한정된 실시예와 도면에 의해 설명되었으나, 본 발명적 개념은 상기의 실시예에 한정되는 것은 아니며, 본 발명적 개념이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로 본 발명적 개념의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 클라이언트
20: 연산 서버
30: 키관리 및 복호화 서버

Claims (20)

  1. 컴퓨팅 장치에서 동형 암호화 알고리즘을 이용한 암호화를 수행하는 방법에 있어서,
    (가) 대칭키(sk')로 하나 이상의 평문(mi)(단, 1≤i≤n, i,n은 정수}을 각각 암호화하여 하나 이상의 암호문(Esk'(mi))을 생성하는 단계;
    (나) 상기 컴퓨팅 장치가 외부 장치로부터 수신한 공개키(pk)로 상기 대칭키(sk')를 암호화하여 암호화된 대칭키(ck)(단, ck= Epk(sk'))를 생성하는 단계; 및
    (다) 상기 하나 이상의 암호문(Esk'(mi))의 각각을, 완전동형 또는 준동형 알고리즘에 의해 상기 공개키(pk)로 암호화된 암호문(Epk(mi))으로 키스위칭하는 단계;를 포함하는 것을 특징으로 하는 암호화 방법.
  2. 제 1 항에 있어서,
    상기 키스위칭하는 (다) 단계는, 상기 암호화된 대칭키(ck)를 사용하여 키스위칭하는 것을 특징으로 하는 암호화 방법.
  3. 제 1 항에 있어서,
    상기 암호화된 대칭키(ck)를 생성하는 (나) 단계는, 완전동형 또는 준동형 알고리즘에 의해 상기 대칭키(sk')를 암호화하는 것을 특징으로 하는 암호화 방법.
  4. 제 1 항에 있어서,
    상기 (가) 및 (나) 단계의 순서가 서로 바뀌어서 또는 동시에 실행되는 것을 특징으로 하는 암호화 방법.
  5. 제 1 항에 있어서,
    상기 (가) 및 (나) 단계가 제1 컴퓨팅 장치에서 수행되고,
    상기 (다) 단계가 제2 컴퓨팅 장치에서 수행되고,
    상기 (나) 단계와 상기 (다) 단계 사이에, 제1 컴퓨팅 장치가 상기 암호문(Esk'(mi)) 및 상기 암호화된 대칭키(ck)를 제2 컴퓨팅 장치로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 암호화 방법.
  6. 제 5 항에 있어서,
    상기 공개키(pk)는 상기 제1 컴퓨팅 장치가 상기 제2 컴퓨팅 장치로부터 수신한 것이고,
    상기 암호화 방법은,
    (라) 상기 제2 컴퓨팅 장치가, 상기 키스위칭된 암호문(Epk(mi))을 상기 공개키(pk)의 쌍이 되는 비밀키(sk)로 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 암호화 방법.
  7. 제 5 항에 있어서,
    상기 공개키(pk)는 상기 제1 컴퓨팅 장치가 제3 컴퓨팅 장치로부터 수신한 것이고,
    상기 암호화 방법은,
    (라) 상기 제2 컴퓨팅 장치가 상기 키스위칭된 암호문(Epk(mi))을 상기 제3 컴퓨팅 장치로 전송하는 단계; 및
    (마) 상기 제3 컴퓨팅 장치가, 상기 키스위칭된 암호문(Epk(mi))을 상기 공개키(pk)의 쌍이 되는 비밀키(sk)로 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 암호화 방법.
  8. 제 1 항에 있어서, 상기 암호화 방법이,
    (라) 상기 키스위칭된 암호문(Epk(mi))에 대해 연산을 수행하는 단계;를 더 포함하고,
    상기 연산은 기정의된 함수 f(m)에 따라 상기 키스위칭된 암호문을 연산하는 것을 특징으로 하는 암호화 방법.
  9. 제 8 항에 있어서,
    상기 연산을 수행하는 (라) 단계는, 평가키(ek)를 사용하여 상기 연산을 수행하는 것을 특징으로 하는 암호화 방법.
  10. 제 9 항에 있어서,
    상기 (가) 및 (나) 단계가 제1 컴퓨팅 장치에서 수행되고,
    상기 (다) 및 (라) 단계가 제2 컴퓨팅 장치에서 수행되고,
    상기 (나) 단계와 상기 (다) 단계 사이에, 제1 컴퓨팅 장치가 상기 암호문(Esk'(mi)) 및 상기 암호화된 대칭키(ck)를 상기 제2 컴퓨팅 장치로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 암호화 방법.
  11. 제 10 항에 있어서,
    상기 공개키(pk)는 상기 제1 컴퓨팅 장치가 상기 제2 컴퓨팅 장치로부터 수신한 것이고,
    상기 암호화 방법은,
    (마) 상기 제2 컴퓨팅 장치가, 상기 (라) 단계에 따른 연산 결과를 상기 공개키(pk)의 쌍이 되는 비밀키(sk)로 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 암호화 방법.
  12. 제 10 항에 있어서,
    상기 공개키(pk)는 상기 제1 컴퓨팅 장치가 제3 컴퓨팅 장치로부터 수신한 것이고,
    상기 평가키(ek)는 상기 제2 컴퓨팅 장치가 상기 제3 컴퓨팅 장치로부터 수신한 것이고,
    상기 암호화 방법은,
    (마) 상기 제2 컴퓨팅 장치가 상기 (라) 단계에 따른 연산 결과를 상기 제3 컴퓨팅 장치로 전송하는 단계; 및
    (바) 상기 제3 컴퓨팅 장치가, 상기 연산 결과를 상기 공개키(pk)의 쌍이 되는 비밀키(sk)로 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 암호화 방법.
  13. 제 1 항 내지 제 12 항 중 한 항에 따른 방법을 수행하기 위한 프로그램 명령어가 기록된 컴퓨터로 읽을 수 있는 기록매체.
  14. 동형 암호화 알고리즘을 이용하여 암호화를 수행하는 컴퓨팅 장치에 있어서,
    상기 컴퓨팅 장치는 컴퓨터 프로세서, 메모리, 및 컴퓨터 프로세서에 의해 상기 메모리에 로딩되어 실행되는 컴퓨터 프로그램 코드;를 포함하며,
    상기 컴퓨터 프로그램 코드는, 하나 이상의 암호문(Esk'(mi))의 각각을, 암호화된 대칭키(ck)를 사용하여, 완전동형 또는 준동형 알고리즘에 의해 공개키(pk)로 암호화된 암호문(Epk(mi))으로 키스위칭하는 단계를 포함하며,
    이 때, 상기 하나 이상의 암호문(Esk'(mi))은, 대칭키(sk')로 하나 이상의 평문(mi)(단, 1≤i≤n, i,n은 정수}을 각각 암호화하여 생성된 것을 특징으로 하는 컴퓨팅 장치.
  15. 제 14 항에 있어서,
    상기 암호화된 대칭키(ck)가, 상기 공개키(pk)로 상기 대칭키(sk')를 암호화하여 생성된 것(ck= Epk(sk'))을 특징으로 하는 컴퓨팅 장치.
  16. 제 14 항에 있어서,
    상기 암호화된 대칭키(ck)가 완전동형 또는 준동형 알고리즘에 의해 암호화된 것을 특징으로 하는 컴퓨팅 장치.
  17. 제 14 항에 있어서,
    상기 암호문(Esk'(mi)) 및 상기 암호화된 대칭키(ck)는 상기 컴퓨팅 장치가 외부의 장치로부터 수신한 것이고,
    상기 컴퓨터 프로그램 코드는, 상기 키스위칭된 암호문(Epk(mi))을 상기 공개키(pk)의 쌍이 되는 비밀키(sk)로 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  18. 제 14 항에 있어서,
    상기 컴퓨터 프로그램 코드가, 상기 키스위칭된 암호문(Epk(mi))에 대해 연산을 수행하는 단계;를 더 포함하고,
    상기 연산은 기정의된 함수 f(m)에 따라 상기 키스위칭된 암호문을 연산하는 것을 특징으로 하는 컴퓨팅 장치.
  19. 제 18 항에 있어서,
    상기 연산을 수행하는 단계는, 평가키(ek)를 사용하여 상기 연산을 수행하는 것을 특징으로 하는 컴퓨팅 장치.
  20. 제 19 항에 있어서,
    상기 암호문(Esk'(mi)) 및 상기 암호화된 대칭키(ck)는 상기 컴퓨팅 장치가 외부의 장치로부터 수신한 것이고,
    상기 컴퓨터 프로그램 코드는, 상기 연산의 연산 결과를 상기 공개키(pk)의 쌍이 되는 비밀키(sk)로 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨팅 장치.
KR1020140177514A 2014-12-10 2014-12-10 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치 KR101600016B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140177514A KR101600016B1 (ko) 2014-12-10 2014-12-10 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140177514A KR101600016B1 (ko) 2014-12-10 2014-12-10 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
KR101600016B1 true KR101600016B1 (ko) 2016-03-15

Family

ID=55542258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140177514A KR101600016B1 (ko) 2014-12-10 2014-12-10 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치

Country Status (1)

Country Link
KR (1) KR101600016B1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101817087B1 (ko) 2016-02-16 2018-01-11 서울대학교산학협력단 동형 암호화된 염기서열의 편집 거리 산출 방법
KR101861089B1 (ko) 2016-07-28 2018-05-25 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
WO2019139200A1 (ko) * 2018-01-12 2019-07-18 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
WO2019194403A1 (ko) * 2018-04-06 2019-10-10 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
KR102437715B1 (ko) 2021-06-07 2022-08-26 성신여자대학교 연구 산학협력단 데이터 분산처리 장치 및 이의 동작방법
KR102451633B1 (ko) 2021-12-09 2022-10-06 인하대학교 산학협력단 동형암호를 위한 암호화 처리 장치 및 방법
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
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
KR20230088877A (ko) * 2019-09-11 2023-06-20 바이두 유에스에이 엘엘씨 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송
US11870889B2 (en) 2021-02-23 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus with homomorphic encryption

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101398216B1 (ko) * 2012-10-19 2014-05-22 숭실대학교산학협력단 검색 가능한 암호화 방법 및 암호화된 데이터 검색방법
JP2014102398A (ja) * 2012-11-20 2014-06-05 Fujitsu Ltd 復号方法、復号プログラム、復号装置、および鍵生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101398216B1 (ko) * 2012-10-19 2014-05-22 숭실대학교산학협력단 검색 가능한 암호화 방법 및 암호화된 데이터 검색방법
JP2014102398A (ja) * 2012-11-20 2014-06-05 Fujitsu Ltd 復号方法、復号プログラム、復号装置、および鍵生成方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101817087B1 (ko) 2016-02-16 2018-01-11 서울대학교산학협력단 동형 암호화된 염기서열의 편집 거리 산출 방법
KR101861089B1 (ko) 2016-07-28 2018-05-25 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
US11303427B2 (en) 2018-01-12 2022-04-12 Korea Smart Authentication Corp. Method for verifying opinion by use of block chain which guarantees anonimity and prevents sybil attack
WO2019139200A1 (ko) * 2018-01-12 2019-07-18 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
WO2019194403A1 (ko) * 2018-04-06 2019-10-10 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
EP3780480A4 (en) * 2018-04-06 2022-01-05 Crypto Lab Inc. USER DEVICE AND ELECTRONIC DEVICE FOR SHARING DATA BY MEANS OF A CHAIN OF BLOCKS AND HOMORPHIC ENCRYPTION PROCESS AND ASSOCIATED PROCESSES
KR20190117286A (ko) * 2018-04-06 2019-10-16 서울대학교산학협력단 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
US11316657B2 (en) 2018-04-06 2022-04-26 Crypto Lab Inc. User device and electronic device for sharing data based on block chain and homomorphic encryption technology and methods thereof
KR102602119B1 (ko) * 2018-04-06 2023-11-15 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들
KR102565414B1 (ko) 2019-09-11 2023-08-08 바이두 유에스에이 엘엘씨 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송
KR20230088877A (ko) * 2019-09-11 2023-06-20 바이두 유에스에이 엘엘씨 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송
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
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
KR102437715B1 (ko) 2021-06-07 2022-08-26 성신여자대학교 연구 산학협력단 데이터 분산처리 장치 및 이의 동작방법
KR102451633B1 (ko) 2021-12-09 2022-10-06 인하대학교 산학협력단 동형암호를 위한 암호화 처리 장치 및 방법

Similar Documents

Publication Publication Date Title
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
JP6964688B2 (ja) 暗号文に対する近似演算を行う装置及び方法
KR102251697B1 (ko) 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
US10177906B2 (en) Method and apparatus for encrypting data
JP6273951B2 (ja) 暗号化装置、暗号化方法、情報処理装置および暗号化システム
CN111510281B (zh) 一种同态加密方法及装置
JP2016513825A (ja) 安全通信方法および装置
KR101608515B1 (ko) 동형 암호화 알고리즘과 공개키 암호화 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
JP6194886B2 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
US10305689B2 (en) Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
KR101727312B1 (ko) 순서 보존 암호화 및 복호화 장치와 그 방법
US20050008162A1 (en) System and method for encrypting and verifying messages using three-phase encryption
US11411715B2 (en) System and method for generating scalable group key based on homomorphic encryption with trust server
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
US20220029782A1 (en) Apparatus and method for processing non-polynomial operation on encrypted messages
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
WO2019220900A1 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
JP6167721B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
JP2019215391A (ja) 復号装置、暗号化装置及び暗号システム
JP6093719B2 (ja) 暗号化装置、復号装置、およびプログラム
KR101812311B1 (ko) 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법
US20170126399A1 (en) Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium
Dodmane A new hybrid symmetric-key technique to enhance data security of textual information using random number generator
JP2014017763A (ja) 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム

Legal Events

Date Code Title Description
A201 Request for examination
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