KR102315632B1 - 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 - Google Patents

신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 Download PDF

Info

Publication number
KR102315632B1
KR102315632B1 KR1020190096564A KR20190096564A KR102315632B1 KR 102315632 B1 KR102315632 B1 KR 102315632B1 KR 1020190096564 A KR1020190096564 A KR 1020190096564A KR 20190096564 A KR20190096564 A KR 20190096564A KR 102315632 B1 KR102315632 B1 KR 102315632B1
Authority
KR
South Korea
Prior art keywords
electronic devices
key
homomorphic
homomorphic encryption
server
Prior art date
Application number
KR1020190096564A
Other languages
English (en)
Other versions
KR20210017396A (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 KR1020190096564A priority Critical patent/KR102315632B1/ko
Priority to US16/907,606 priority patent/US11411715B2/en
Publication of KR20210017396A publication Critical patent/KR20210017396A/ko
Application granted granted Critical
Publication of KR102315632B1 publication Critical patent/KR102315632B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Abstract

다양한 실시예들에 따른 통신 시스템 및 그의 동작 방법은, 그룹을 생성하기 위한 복수 개의 전자 장치들이 준동형 암호 키를 공유하고, 서버가 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린(boolean) 회로를 생성하고, 전자 장치들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키를 서버에 전달하고, 서버가 암호화된 세션 개인 키를 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하고, 서버가 전자 장치들 각각으로 준동형 암호 값을 전달하고, 전자 장치들 각각이 준동형 복호화를 통해, 준동형 암호 키 및 준동형 암호 값을 기반으로 그룹을 위한 공통의 세션 키를 생성하도록 구성될 수 있다.

Description

신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템{SYSTEM AND METHOD FOR GENERATING SCALABLE GROUP KEY BASED ON HOMOMORPHIC ENCRYPTION WITH TRUST SERVER}
다양한 실시예들은 통신 시스템 및 그의 동작 방법에 관한 것으로, 특히 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템에 관한 것이다.
보안되지 않은 채널을 통한 전자 장치들 사이의 통신은 무단 접근, 정보의 우발적 공개와 같은 메시지를 읽기 위한 공격을 방지하기 위한 키 교환 프로토콜을 요구한다. 보안 전송을 위해, 메시지는 암호화 키에 의해 암호화되어야 하며, 전자 장치들 중 어느 하나로부터 다른 하나로 전송되어야 한다. 이를 위한 과제는, 어떻게 하면 전자 장치들 간에 키를 안전하게 공유할 수 있는가 하는 것이다.
다양한 실시예들은, 그룹을 생성하고자 하는 전자 장치들이 상호 통신에 사용하기 위한 그룹 키를 안전하게 공유할 수 있는 통신 시스템 및 그의 동작 방법을 제공할 수 있다.
다양한 실시예들은, 그룹 내 전자 장치들 이외의 구성으로 그룹 키에 대한 노출을 방지할 수 있는 통신 시스템 및 그의 동작 방법을 제공할 수 있다.
제 1 실시예에 따른 통신 시스템의 동작 방법은, 그룹을 생성하기 위한 복수 개의 전자 장치들이 준동형 암호 키를 공유하는 동작, 서버가 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린(boolean) 회로를 생성하는 동작, 상기 전자 장치들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키를 상기 서버에 전달하는 동작, 상기 서버가 상기 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하는 동작, 상기 서버가 상기 전자 장치들 각각으로 상기 준동형 암호 값과 임의의 난수를 전달하는 동작, 및 상기 전자 장치들 각각이 준동형 복호화를 통해, 상기 준동형 암호 키, 상기 준동형 암호 값 및 상기 임의의 난수를 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하는 동작을 포함할 수 있다.
제 1 실시예에 따른 통신 시스템은, 그룹을 형성하기 위해 준동형 암호 키를 공유하도록 구성되는 복수 개의 전자 장치들, 및 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로를 생성하도록 구성되는 서버를 포함할 수 있다.
제 1 실시예에 따르면, 상기 서버는, 상기 전자 장치들 각각으로부터 준동형 암호화를 통해 암호화된 세션 개인 키를 수신하고, 상기 암호화된 세션 개인 키를 상기 생성된 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하고, 상기 전자 장치들 각각으로 상기 준동형 암호 값과 임의의 난수를 전달하도록 구성될 수 있다.
제 1 실시예들에 따르면, 상기 전자 장치들 각각은, 준동형 복호화를 통해, 상기 준동형 암호 키, 상기 준동형 암호 값 및 상기 임의의 난수를 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하도록 구성될 수 있다.
제 2 실시예에 따른 통신 시스템의 동작 방법은, 그룹을 생성하기 위한 복수 개의 전자 장치들이 준동형 암호 키를 공유하는 동작, 서버가 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로를 생성하는 동작, 상기 전자 장치들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키를 상기 서버에 전달하는 동작, 상기 서버가 상기 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하는 동작, 상기 서버가 상기 전자 장치들 각각으로 상기 준동형 암호 값을 전달하는 동작, 및 상기 전자 장치들 각각이 준동형 복호화를 통해, 상기 준동형 암호 키 및 상기 준동형 암호 값을 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하는 동작을 포함할 수 있다.
제 2 실시예에 따른 통신 시스템은, 그룹을 형성하기 위해 준동형 암호 키를 공유하도록 구성되는 복수 개의 전자 장치들, 및 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로를 생성하도록 구성되는 서버를 포함할 수 있다.
제 2 실시예에 따르면, 상기 서버는, 상기 전자 장치들 각각으로부터 준동형 암호화를 통해 암호화된 세션 개인 키를 수신하고, 상기 암호화된 세션 개인 키를 상기 생성된 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하고, 상기 전자 장치들 각각으로 상기 준동형 암호 값을 전달하도록 구성될 수 있다.
제 2 실시예들에 따르면, 상기 전자 장치들 각각은, 준동형 복호화를 통해, 상기 준동형 암호 키 및 상기 준동형 암호 값을 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 통신 시스템은 준동형 암호(homomorphic encryption; HE) 기법을 이용하여, 그룹을 생성하고자 하는 전자 장치들이 상호 통신에 사용하기 위한 그룹 키를 전자 장치들에 안전하게 공유시킬 수 있다. 이 때 그룹 키를 생성하는 데 이용되는 준동형 암호 키가 서버에 노출되지 않고도, 서버의 지원 하에 전자 장치들이 그룹 키를 공유할 수 있다. 즉 그룹 키는 그룹 내 전자 장치들에 안전하게 공유될 뿐, 그룹 내 전자 장치들 이외의 구성에 노출되지 않을 수 있다. 아울러, 통신 시스템은 준동형 암호 기법을 이용하여, 그룹 내 구성의 변화에 대해 적응적으로 동작할 수 있다. 즉 통신 시스템은 변화된 그룹의 전자 장치들을 위해 그룹 키를 업데이트할 수 있다.
도 1은 다양한 실시예들에 따른 통신 시스템을 도시하는 도면이다.
도 2a 및 도 2b는 제 1 실시예에 따른 통신 시스템의 그룹 키 생성을 위한 동작 방법을 도시하는 도면이다.
도 3a 및 도 3b는 제 1 실시예에 따른 통신 시스템의 그룹 키 업데이트를 위한 동작 방법을 도시하는 도면이다.
도 4a 및 도 4b는 제 1 실시예에 따른 통신 시스템의 그룹 키 업데이트를 위한 동작 방법을 도시하는 도면이다.
도 5는 제 1 실시예에 따른 서버의 동작 방법을 도시하는 도면이다.
도 6은 도 5의 그룹 키 생성을 위한 서비스 제공 동작을 도시하는 도면이다.
도 7은 도 5의 그룹 키 업데이트를 위한 서비스 제공 동작을 도시하는 도면이다.
도 8은 제 1 실시예에 따른 전자 장치의 동작 방법을 도시하는 도면이다.
도 9는 도 8의 그룹 키 생성 동작 및 그룹 키 업데이트 동작을 도시하는 도면이다.
도 10은 도 8의 그룹 키 업데이트 동작을 도시하는 도면이다.
도 11은 제 2 실시예에 따른 통신 시스템의 동작 방법을 도시하는 도면이다.
도 12는 제 2 실시예에 따른 서버의 동작 방법을 도시하는 도면이다.
도 13은 제 2 실시예에 따른 전자 장치의 동작 방법을 도시하는 도면이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다.
도 1은 다양한 실시예들에 따른 통신 시스템(100)을 도시하는 도면이다.
도 1을 참조하면, 다양한 실시예들에 따른 통신 시스템(100)은, 복수 개의 전자 장치(110)들과 서버(120)를 포함할 수 있다.
전자 장치(110)들 중 적어도 일부는 통신 채널을 통하여 통신할 수 있다. 이 때 통신 보안을 위해, 전자 장치(110)들 중 적어도 일부는 그룹을 형성하고, 그룹 내 전자 장치(110)들은 그룹 키, 즉 공통의 세션 키를 이용하여 통신할 수 있다. 이를 위해, 전자 장치(110)들 중 적어도 일부는 그룹 생성 시, 그룹 키를 생성할 수 있다. 도시되지는 않았으나, 각각의 전자 장치(110)는 통신 채널을 생성하고, 통신을 지원하는 통신 모듈, 각각의 전자 장치(110)의 동작을 위한 프로그램 및 프로그램 수행 중에 발생되는 데이터를 저장하는 메모리 또는 각각의 전자 장치(110)의 구성요소들을 제어하고, 각각의 전자 장치(110)의 전반적인 동작을 수행하도록 구성되는 프로세서 중 적어도 어느 하나를 포함할 수 있다.
서버(120)는, 전자 장치(110)들 중 적어도 일부가 안전하게 그룹 키를 공유하도록 지원할 수 있다. 서버(120)는, 전자 장치(110)들 중 적어도 일부가 그룹 생성 시, 전자 장치(110)들 중 적어도 일부가 개별적으로 동일한 그룹 키를 생성하도록 할 수 있다. 이 때 그룹 키는 그룹 내 전자 장치들에 안전하게 공유될 뿐, 서버에 노출되지 않을 수 있다. 도시되지는 않았으나, 서버(120)는 통신 채널을 생성하고, 통신을 지원하는 통신 모듈, 서버(120)의 동작을 위한 프로그램 및 프로그램 수행 중에 발생되는 데이터를 저장하는 메모리 또는 서버(120)의 구성요소들을 제어하고, 서버(120)의 전반적인 동작을 수행하도록 구성되는 프로세서 중 적어도 어느 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 통신 시스템(100)은 준동형 암호(homomorphic encryption; HE) 기법을 이용하여, 그룹을 생성하고자 하는 전자 장치들이 상호 통신에 사용하기 위한 그룹 키를 전자 장치들에 안전하게 공유시킬 수 있다. 이 때 준동형 암호 기법과 관련하여, 준동형 암호 키, 준동형 암호화, 준동형 복호화 및 준동형 연산이 정의될 수 있다. 준동형 암호 키는 준동형 암호화 또는 준동형 복호화 중 적어도 어느 하나에 사용되는 키를 나타낼 수 있다. 이 때 준동형 암호 키는 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다. 준동형 암호 키는 그룹 내 전자 장치(110)들 중 적어도 어느 하나에서 출력될 수 있으며, 그룹 내 전자 장치(110)들 사이에서 공유될 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다. 준동형 암호화는 준동형 공개 키(pk_HE)를 사용하여, 주어지는 메시지를 암호화하고, 이를 통해 암호문을 출력할 수 있다. 준동형 복호화는 준동형 비밀 키(sk_HE)를 사용하여, 암호문을 복호화하고, 이를 통해 메시지를 출력할 수 있다. 준동형 연산은 복수 개의 암호문들의 집합과 불린(boolean) 회로(C)를 이용하여 연산을 수행하고, 이를 통해 결과를 출력할 수 있다.
도 2a 및 도 2b는 제 1 실시예에 따른 통신 시스템(100)의 그룹 키 생성을 위한 동작 방법을 도시하는 도면이다.
도 2a를 참조하면, 그룹을 생성하고자 하는 복수 개, 즉 N 개의 전자 장치(110)들과 서버(120)가 210 동작에서 상호 통신을 위한 비밀 키들, 즉 통신 비밀 키(sk(t, S))들을 생성할 수 있다. 이 때 각각의, 예컨대 t 번째 전자 장치(110)와 서버(120)가 개별적인 상호 통신을 위한 통신 비밀 키(sk(t, S))를 생성할 수 있다.
전자 장치(110)들은 220 동작에서 준동형 암호 키를 공유할 수 있다. 이 때 준동형 암호 키는 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다.
서버(120)는 230 동작에서 불린 회로(C)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수에 상응하는 입력 값(INPUT)들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C)를 생성할 수 있다. 예를 들면, 서버(120)는 도 2b에 도시된 바와 같은 구조로 불린 회로(C)를 생성할 수 있다. 여기서, 불린 회로(C)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다.
전자 장치(110)들은 240 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))들을 각각 생성할 수 있다. 이 때 전자 장치(110)들 각각은 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)들은 250 동작에서 암호화된 세션 개인 키(Enc(K_i))들을 서버(120)로 각각 전달할 수 있다.
서버(120)는 260 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 후 서버(120)는 270 동작에서 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 전자 장치(110)들 각각으로 전달할 수 있다. 이 때 서버(120)는 통신 비밀 키(sk(t, S))들을 각각 이용하여, 임의의 난수(rand)를 암호화하고, 준동형 암호 값(Eval(K_i, C))과 암호화된 난수(rand)를 함께 전달할 수 있다.
전자 장치(110)들은 280 동작에서 준동형 복호화를 통해, 그룹 키, 즉 공통의 세션 키(K)를 각각 생성할 수 있다. 이 때 전자 장치(110)들은 준동형 암호 키, 준동형 암호 값(Eval(K_i, C)) 및 임의의 난수(rand)를 기반으로, 세션 키(K)를 각각 생성할 수 있다. 이에 따라, N 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K)를 이용하여 통신할 수 있다.
도 3a 및 도 3b는 제 1 실시예에 따른 통신 시스템(100)의 그룹 키 업데이트를 위한 동작 방법을 도시하는 도면이다.
도 3a를 참조하면, 복수 개, 즉 N 개의 전자 장치(110)들로 구성되는 그룹에 추가되고자 하는 적어도 하나의 다른, 예컨대 N+1 번째 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 다른 전자 장치(110)와 서버(120)가 310 동작에서 상호 통신을 위한 비밀 키, 즉 통신 비밀 키(sk(N+1, S))를 생성할 수 있다. 이 때 다른 전자 장치(110)와 서버(120)가 개별적인 상호 통신을 위한 통신 비밀 키(sk(N+1, S))를 생성할 수 있다.
전자 장치(110)들은 320 동작에서 준동형 암호 키를 공유할 수 있다. 이 때 그룹 내 전자 장치(110)들 중 적어도 어느 하나가 다른 전자 장치(110)에 준동형 암호 키를 전달할 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다.
서버(120)는 330 동작에서 기 생성된 불린 회로(C)로부터 불린 회로(C*)를 생성할 수 있다. 여기서, 서버(120)는 그래프 마이너(graph minor) 이론에 기반하여, 기 생성된 불린 회로(C)로부터 불린 회로(C*)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수, 즉 그룹 내 전자 장치(110)들과 다른 전자 장치(110)의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C*)를 생성할 수 있다. 예를 들면, 서버(120)는 도 3b에 도시된 바와 같은 구조로 불린 회로(C*)를 생성할 수 있다. 일 예로, 서버(120)는 기 생성된 불린 회로(C)에 다른 전자 장치(110)의 개수에 상응하는 적어도 하나의 입력 값을 추가하고, 기 생성된 불린 회로(C)의 중간 연산자와 추가되는 입력 값 사이에 적어도 하나의 중간 연산자를 추가함으로써, 불린 회로(C*)를 생성할 수 있다. 여기서, 서버(120)는, 불린 회로(C*)의 뎁스(depth)가 최소가 되도록, 불린 회로(C*)를 생성하며, 불린 회로(C*)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 이를 통해, 서버(120)는, 기 생성된 불린 회로(C)를 불린 회로(C*)로 업데이트할 수 있다.
전자 장치(110)들은 340 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))들을 각각 생성할 수 있다. 이 때 전자 장치(110)들 각각은 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)들은 350 동작에서 암호화된 세션 개인 키(Enc(K_i))들을 서버(120)로 각각 전달할 수 있다.
서버(120)는 360 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C*))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C*)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C*))을 연산할 수 있다. 이 후 서버(120)는 370 동작에서 준동형 암호 값(Eval(K_i, C*))과 임의의 난수(rand*)를 전자 장치(110)들 각각으로 전달할 수 있다. 이 때 서버(120)는 통신 비밀 키(sk(t, S))들을 각각 이용하여, 임의의 난수(rand*)를 암호화하고, 준동형 암호 값(Eval(K_i, C*))과 암호화된 난수(rand*)를 함께 전달할 수 있다.
전자 장치(110)들은 380 동작에서 준동형 복호화를 통해, 그룹 키, 즉 공통의 세션 키(K*)를 각각 생성할 수 있다. 이 때 전자 장치(110)들은 준동형 암호 키, 준동형 암호 값(Eval(K_i, C*)) 및 임의의 난수(rand*)를 기반으로, 세션 키(K*)를 각각 생성할 수 있다. 이를 통해, 전자 장치(110)들은, 기 생성된 세션 키(K)를 세션 키(K*)로 업데이트할 수 있다. 이에 따라, N+1 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K*)를 이용하여 통신할 수 있다.
도 4a 및 도 4b는 제 1 실시예에 따른 통신 시스템(100)의 그룹 키 업데이트를 위한 동작 방법을 도시하는 도면이다.
도 4a를 참조하면, 복수 개, 즉 N 개의 전자 장치(110)들로 구성되는 그룹으로부터 제거되는 적어도 하나의, 예컨대 N 번째 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 서버(120)는 430 동작에서 기 생성된 불린 회로(C)로부터 불린 회로(C*)를 생성할 수 있다. 여기서, 서버(120)는 그래프 마이너(graph minor) 이론에 기반하여, 기 생성된 불린 회로(C)로부터 불린 회로(C*)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들 중 나머지, 예컨대 N-1 개의 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C*)를 생성할 수 있다. 예를 들면, 서버(120)는 도 4b에 도시된 바와 같은 구조로 불린 회로(C*)를 생성할 수 있다. 일 예로, 서버(120)는 기 생성된 불린 회로(C)로부터 제거되는 전자 장치(110)의 개수에 상응하는 적어도 하나의 입력 값을 제거하고, 기 생성된 불린 회로(C)에서 제거된 입력 값을 위한 중간 연산자를 선택적으로 제거함으로써, 불린 회로(C*)를 생성할 수 있다. 여기서, 불린 회로(C*)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 이를 통해, 서버(120)는, 기 생성된 불린 회로(C)를 불린 회로(C*)로 업데이트할 수 있다.
전자 장치(110)들 중 나머지는 440 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))들을 각각 생성할 수 있다. 이 때 전자 장치(110)들 중 나머지 각각은 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)들 중 나머지는 450 동작에서 암호화된 세션 개인 키(Enc(K_i))들을 서버(120)로 각각 전달할 수 있다.
서버(120)는 460 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C*))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C*)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C*))을 연산할 수 있다. 이 후 서버(120)는 470 동작에서 준동형 암호 값(Eval(K_i, C*))과 임의의 난수(rand*)를 전자 장치(110)들 중 나머지 각각으로 전달할 수 있다. 이 때 서버(120)는 통신 비밀 키(sk(t, S))들을 각각 이용하여, 임의의 난수(rand*)를 암호화하고, 준동형 암호 값(Eval(K_i, C*))과 암호화된 난수(rand*)를 함께 전달할 수 있다.
전자 장치(110)들 중 나머지는 480 동작에서 준동형 복호화를 통해, 그룹 키, 즉 공통의 세션 키(K*)를 각각 생성할 수 있다. 이 때 전자 장치(110)들 중 나머지는 준동형 암호 키, 준동형 암호 값(Eval(K_i, C*)) 및 임의의 난수(rand*)를 기반으로, 세션 키(K*)를 각각 생성할 수 있다. 이를 통해, 전자 장치(110)들 중 나머지는, 기 생성된 세션 키(K)를 세션 키(K*)로 업데이트할 수 있다. 이에 따라, N-1 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K*)를 이용하여 통신할 수 있다.
도 5는 제 1 실시예에 따른 서버(120)의 동작 방법을 도시하는 도면이다.
도 5를 참조하면, 서버(120)는, 510 동작에서 그룹을 생성하고자 하는 복수 개, 즉 N 개의 전자 장치(110)들을 감지할 수 있다. 이에 대응하여, 서버(120)는 520 동작에서 전자 장치(110)들의 그룹 키, 즉 공통의 세션 키(K) 생성을 위한 서비스를 제공할 수 있다. 이에 따라, N 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K)를 이용하여 통신할 수 있다.
도 6은 도 5의 그룹 키 생성을 위한 서비스 제공 동작을 도시하는 도면이다.
도 6을 참조하면, 서버(120)는 610 동작에서 복수 개, 즉 N 개의 전자 장치(110)들와 통신을 위한 비밀 키들, 즉 통신 비밀 키(sk(t, S))들을 저장할 수 있다. 이 때 서버(120)는 각각의, 예컨대 t 번째 전자 장치(110)에 대하여, 통신 비밀 키(sk(t, S))를 저장할 수 있다.
서버(120)는 620 동작에서 불린 회로(C)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수, 즉 N 개의 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C)를 생성할 수 있다. 예를 들면, 서버(120)는 도 2b에 도시된 바와 같은 구조로 불린 회로(C)를 생성할 수 있다. 여기서, 불린 회로(C)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 이 후 서버(120)는 630 동작에서 각각의 전자 장치(110)에 불린 회로(C)를 송신할 수 있다.
서버(120)는 640 동작에서 각각의 전자 장치(110)로부터 암호화된 세션 개인 키(Enc(K_i))를 수신할 수 있다. 이 때 각각의 전자 장치(110)는 준동형 암호화를 위한 알고리즘을 기반으로, 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이에 대응하여, 서버(120)는 650 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다.
서버(120)는 660 동작에서 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)로부터 각각의 전자 장치(110)를 위한 암호화 메시지를 생성할 수 있다. 이 때 서버(120)는 각각의 전자 장치(110)의 통신 비밀 키(sk(t, S))를 이용하여, 임의의 난수(rand)를 암호화하고, 이를 통해 준동형 암호 값(Eval(K_i, C))과 암호화된 난수(rand)를 포함하도록 각각의 전자 장치(110)를 위한 암호화 메시지를 생성할 수 있다. 이 후 서버(120)는 670 동작에서 각각의 전자 장치(110)로 암호화 메시지를 송신할 수 있다. 그런 다음, 서버(120)는 도 5로 리턴할 수 있다.
다시 도 5를 참조하면, 서버(120)는 530 동작에서 복수 개, 즉 N 개의 전자 장치(110)들로 구성되는 그룹에 추가되고자 하는 적어도 하나의 다른, 예컨대 N+1 번째 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 서버(120)는 540 동작에서 전자 장치(110)들, 즉 N+1 개의 전자 장치(110)들의 그룹 키, 즉 공통의 세션 키(K*) 업데이트를 위한 서비스를 제공할 수 있다. 이에 따라, N+1 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K*)를 이용하여 통신할 수 있다.
도 7은 도 5의 그룹 키 업데이트를 위한 서비스 제공 동작을 도시하는 도면이다.
도 7을 참조하면, 서버(120)는 710 동작에서 기 저장된 통신 비밀 키(sk(t, S))들을 업데이트할 수 있다. 이 때 서버(120)는 적어도 하나의 다른, 예컨대 N+1 번째 전자 장치(110)의 통신 비밀 키(sk(N+1, S))를 추가적으로 저장할 수 있다.
서버(120)는 720 동작에서 불린 회로(C*)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수, 즉 그룹 내 전자 장치(110)들과 다른 전자 장치(110)의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C*)를 생성할 수 있다. 예를 들면, 서버(120)는 도 3b에 도시된 바와 같은 구조로 불린 회로(C*)를 생성할 수 있다. 여기서, 서버(120)는, 불린 회로(C*)의 뎁스(depth)가 최소가 되도록, 불린 회로(C*)를 생성하며, 불린 회로(C*)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 이를 통해, 서버(120)는, 기 생성된 불린 회로(C)를 불린 회로(C*)로 업데이트할 수 있다. 이 후 서버(120)는 730 동작에서 각각의 전자 장치(110)에 불린 회로(C*)를 송신할 수 있다.
서버(120)는 740 동작에서 각각의 전자 장치(110)로부터 암호화된 세션 개인 키(Enc(K_i))를 수신할 수 있다. 이 때 각각의 전자 장치(110)는 준동형 암호화를 위한 알고리즘을 기반으로, 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이에 대응하여, 서버(120)는 750 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C*))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C*))을 연산할 수 있다.
서버(120)는 760 동작에서 준동형 암호 값(Eval(K_i, C*))과 임의의 난수(rand*)로부터 각각의 전자 장치(110)를 위한 암호화 메시지를 생성할 수 있다. 이 때 서버(120)는 각각의 전자 장치(110)의 통신 비밀 키(sk(t, S))를 이용하여, 임의의 난수(rand*)를 암호화하고, 이를 통해 준동형 암호 값(Eval(K_i, C*))과 암호화된 난수(rand*)를 포함하도록 각각의 전자 장치(110)를 위한 암호화 메시지를 생성할 수 있다. 이 후 서버(120)는 770 동작에서 각각의 전자 장치(110)로 암호화 메시지를 송신할 수 있다. 그런 다음, 서버(120)는 도 5로 리턴할 수 있다.
다시 도 5를 참조하면, 서버(120)는 550 동작에서 복수 개, 즉 N 개의 전자 장치(110)들로 구성되는 그룹으로부터 제거되는 적어도 하나의, 예컨대 N 번째 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 서버(120)는 560 동작에서, 전자 장치(110)들, 즉 N-1 개의 전자 장치(110)들의 그룹 키, 즉 공통의 세션 키(K*) 업데이트를 위한 서비스를 제공할 수 있다. 이에 따라, N-1 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K*)를 이용하여 통신할 수 있다.
도 7은 도 5의 그룹 키 업데이트를 위한 서비스 제공 동작을 도시하는 도면이다.
도 7을 참조하면, 서버(120)는 도 7을 참조하여 전술한 바와 유사하게 동작할 수 있다. 다만, 서버(120)는 710 동작에서 기 저장된 통신 비밀 키(sk(t, S))들을 업데이트할 수 있다. 이 때 서버(120)는 적어도 하나, 예컨대 N 번째 전자 장치(110)의 통신 비밀 키(sk(N, S))를 삭제할 수 있다. 그리고 서버(120)는 720 동작에서 불린 회로(C*)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수, 즉 그룹 내에 남아 있는 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C*)를 생성할 수 있다. 예를 들면, 서버(120)는 도 4b에 도시된 바와 같은 구조로 불린 회로(C*)를 생성할 수 있다. 여기서, 불린 회로(C*)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 이를 통해, 서버(120)는, 기 생성된 불린 회로(C)를 불린 회로(C*)로 업데이트할 수 있다. 이 후 서버(120)는 730 동작에서 각각의 전자 장치(110)에 불린 회로(C*)를 송신할 수 있다. 아울러, 서버(120)는 740 동작, 750 동작, 760 동작 및 770 동작을 수행한 다음, 도 5로 리턴할 수 있다.
도 8은 제 1 실시예에 따른 전자 장치(110)의 동작 방법을 도시하는 도면이다.
도 8을 참조하면, 전자 장치(110)는 810 동작에서 그와 함께 그룹을 생성하고자 하는 적어도 하나의 다른, 즉 N-1 개의 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 전자 장치(110)는 820 동작에서 서버(120)와 통신을 위한 비밀 키, 즉 통신 비밀 키(sk(t, S))를 저장할 수 있다. 그리고 전자 장치(110)는 830 동작에서 다른 전자 장치(110)와 준동형 암호 키를 공유할 수 있다. 이 때 준동형 암호 키는 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다. 이 후 전자 장치(110)는 840 동작에서 서버(120)를 통해 그룹 키, 즉 공통의 세션 키(K)를 생성할 수 있다. 이에 따라, 전자 장치(110)가 다른, 즉 N-1 개의 전자 장치(110)들과 함께 그룹화되어, 그룹 키, 즉 세션 키(K)를 이용하여 통신할 수 있다.
도 9는 도 8의 그룹 키 생성 동작을 도시하는 도면이다.
도 9를 참조하면, 전자 장치(110)는 910 동작에서 서버(120)로부터 불린 회로(C)를 수신할 수 있다. 예를 들면, 불린 회로(C)는, 도 2b에 도시된 바와 같은 구조를 가질 수 있다. 여기서, 불린 회로(C)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다.
전자 장치(110)는 920 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 때 전자 장치(110)는 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 세션 개인 키(K_i)를 암호화하고, 이를 통해 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)는 930 동작에서 서버(120)에 암호화된 세션 개인 키(Enc(K_i))를 송신할 수 있다.
전자 장치(110)는 940 동작에서 서버(120)로부터 암호화 메시지를 수신할 수 있다. 이에 대응하여, 전자 장치(110)는 950 동작에서 암호화 메시지로부터 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 획득할 수 있다. 이 때 전자 장치(110)는 통신 비밀 키(sk(t, S))를 이용하여, 암호화 메시지 내 암호화된 난수(rand)를 복호화하고, 이를 통해 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 획득할 수 있다.
전자 장치(110)는 960 동작에서 준동형 복호화를 통해, 준동형 암호 키, 준동형 암호 값(Eval(K_i, C)) 및 임의의 난수(rand)로부터 그룹 키, 즉 세션 키(K)를 획득할 수 있다. 이 때 전자 장치(110)는 준동형 복호화를 통해, 준동형 비밀 키(sk_HE)와 준동형 암호 값(Eval(K_i, C))으로부터 준동형 복호 값(TK, Dec(Eval(K_i, C), sk_HE))을 획득할 수 있다. 이 후 전자 장치(110)는 준동형 복호 값과 임의의 난수(rand)를 더하여, 세션 키(K=TK+rand)를 획득할 수 있다. 그런 다음, 전자 장치(110)는 도 8로 리턴할 수 있다.
다시 도 8을 참조하면, 전자 장치(110)는 850 동작에서 그룹에 추가되고자 하는 적어도 하나의 다른, 예컨대 N+1 번째 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 전자 장치(110)는 860 동작에서 서버(120)를 통해 그룹 키, 즉 공통의 세션 키(K*)를 업데이트할 수 있다. 이에 따라, 전자 장치(110)가 다른, 즉 N 개의 전자 장치(110)들과 함께 그룹화되어, 그룹 키, 즉 세션 키(K*)를 이용하여 통신할 수 있다.
도 10은 도 8의 그룹 키 업데이트 동작을 도시하는 도면이다.
도 10을 참조하면, 전자 장치(110)는 1010 동작에서 적어도 하나의 다른, 예컨대 N+1 번째 전자 장치(110)에 준동형 암호 키를 송신하기 위한 요청을 수신할 수 있다. 이 때 준동형 암호 키는 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다. 예를 들면, 요청은 그룹 내 다른 전자 장치(110)들 중 어느 하나로부터 수신될 수 있다. 이에 대응하여, 전자 장치(110)는 1020 동작에서 적어도 하나의 다른, 예컨대 N+1 번째 전자 장치(110)에 준동형 암호 키를 송신할 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다. 이 때 1010 동작에서 요청이 수신되지 않더라도, 전자 장치(110)는 1030 동작으로 진행할 수 있다.
전자 장치(110)는 1030 동작에서 서버(120)로부터 불린 회로(C*)를 수신할 수 있다. 예를 들면, 불린 회로(C*)는, 도 3b에 도시된 바와 같은 구조를 가질 수 있다. 여기서, 불린 회로(C*)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다.
전자 장치(110)는 1040 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 때 전자 장치(110)는 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 세션 개인 키(K_i)를 암호화하고, 이를 통해 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)는 1050 동작에서 서버(120)에 암호화된 세션 개인 키(Enc(K_i))를 송신할 수 있다.
전자 장치(110)는 1060 동작에서 서버(120)로부터 암호화 메시지를 수신할 수 있다. 이에 대응하여, 전자 장치(110)는 1070 동작에서 암호화 메시지로부터 준동형 암호 값(Eval(K_i, C*))과 임의의 난수(rand*)를 획득할 수 있다. 이 때 전자 장치(110)는 통신 비밀 키(sk(t, S))를 이용하여, 암호화 메시지 내 암호화된 난수(rand*)를 복호화하고, 이를 통해 준동형 암호 값(Eval(K_i, C*))과 임의의 난수(rand*)를 획득할 수 있다.
전자 장치(110)는 1080 동작에서 준동형 복호화를 통해, 준동형 암호 키, 준동형 암호 값(Eval(K_i, C*)) 및 임의의 난수(rand*)로부터 그룹 키, 즉 세션 키(K)를 획득할 수 있다. 이 때 전자 장치(110)는 준동형 복호화를 통해, 준동형 비밀 키(sk_HE)와 준동형 암호 값(Eval(K_i, C*))으로부터 준동형 복호 값(TK*, Dec(Eval(K_i, C*), sk_HE))을 획득할 수 있다. 이 후 전자 장치(110)는 준동형 복호 값과 임의의 난수(rand*)를 더하여, 세션 키(K=TK*+rand*)를 획득할 수 있다. 그런 다음, 전자 장치(110)는 도 8로 리턴할 수 있다.
다시 도 8을 참조하면, 전자 장치(110)는 870 동작에서 그룹으로부터 제거되는 적어도 하나의 다른, 예컨대 N 번째 전자 장치(110)를 감지할 수 있다. 이에 대응하여, 전자 장치(110)는 880 동작에서 서버(120)를 통해 그룹 키, 즉 공통의 세션 키(K*)를 업데이트할 수 있다. 이에 따라, 전자 장치(110)가 다른, 즉 N-2 개의 전자 장치(110)들과 함께 그룹화되어, 그룹 키, 즉 세션 키(K*)를 이용하여 통신할 수 있다.
도 9는 도 8의 그룹 키 업데이트 동작을 도시하는 도면이다.
도 9를 참조하면, 전자 장치(110)는 도 9를 참조하여 전술한 바와 유사하게 동작할 수 있다. 다만, 전자 장치(110)는 910 동작에서 서버(120)로부터 불린 회로(C*)를 수신할 수 있다. 예를 들면, 불린 회로(C*)는, 도 4b에 도시된 바와 같은 구조를 가질 수 있다. 여기서, 불린 회로(C*)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 그리고 전자 장치(110)는 950 동작에서 통신 비밀 키(sk(t, S))를 이용하여, 암호화 메시지로부터 준동형 암호 값(Eval(K_i, C*))과 임의의 난수(rand*)를 획득할 수 있다. 이를 통해, 전자 장치(110)는 960 동작에서 준동형 복호화를 통해, 준동형 암호 키, 준동형 암호 값(Eval(K_i, C*)) 및 임의의 난수(rand*)로부터 그룹 키, 즉 세션 키(K)를 획득할 수 있다. 이 때 전자 장치(110)는 준동형 복호화를 통해, 준동형 비밀 키(sk_HE)와 준동형 암호 값(Eval(K_i, C*))으로부터 준동형 복호 값(TK*, Dec(Eval(K_i, C*), sk_HE))을 획득할 수 있다. 이 후 전자 장치(110)는 준동형 복호 값과 임의의 난수(rand*)를 더하여, 세션 키(K=TK*+rand*)를 획득할 수 있다. 그런 다음, 전자 장치(110)는 도 8로 리턴할 수 있다.
제 1 실시예에 따른 통신 시스템(100)은, 그룹을 형성하기 위해 준동형 암호 키를 공유하도록 구성되는 복수 개의 전자 장치(110)들, 및 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로(C)를 생성하도록 구성되는 서버(120)를 포함할 수 있다.
제 1 실시예에 따르면, 서버(120)는, 전자 장치(110)들 각각으로부터 준동형 암호화를 통해 암호화된 세션 개인 키(Enc(K_i))를 수신하고, 암호화된 세션 개인 키(Enc(K_i))를 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산하고, 전자 장치(110)들 각각으로 상기 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 전달하도록 구성될 수 있다.
제 1 실시예에 따르면, 전자 장치(110)들 각각은, 준동형 복호화를 통해, 준동형 암호 키, 준동형 암호 값(Eval(K_i, C)) 및 임의의 난수(rand)를 기반으로 그룹을 위한 공통의 세션 키(K)를 생성하도록 구성될 수 있다.
제 1 실시예에 따르면, 준동형 암호 키는, 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다.
제 1 실시예에 따르면, 암호화된 세션 개인 키(Enc(K_i))는, 준동형 암호화를 통해, 준동형 공개 키(pk_HE)와 전자 장치(110)들 각각의 세션 개인 키(K_i)로부터 생성될 수 있다.
제 1 실시예에 따르면, 전자 장치(110)들 각각은, 준동형 복호화를 통해, 준동형 비밀 키(sk_HE)와 준동형 암호 값(Eval(K_i, C))을 복호화하여, 준동형 복호 값(TK, Dec(Eval(K_i, C), sk_HE))을 획득하고, 준동형 복호 값(TK, Dec(Eval(K_i, C), sk_HE))과 임의의 난수(rand)를 더하여, 세션 키(K)를 획득하도록 구성될 수 있다.
제 1 실시예에 따르면, 서버(120)는, 통신 비밀 키(sk(t, S))를 이용하여 임의의 난수(rand)를 암호화하여, 준동형 암호 값(Eval(K_i, C))과 암호화된 난수(rand)를 포함하는 암호화 메시지를 생성하고, 암호화 메시지를 전자 장치(110)들 각각으로 전달하도록 구성될 수 있다.
제 1 실시예에 따르면, 전자 장치(110)들 각각은, 통신 비밀 키(sk(t, S))를 이용하여 암호화 메시지 내 암호화된 난수(rand)를 복호화하여, 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 획득하도록 구성될 수 있다.
제 1 실시예에 따르면, 서버(120)는, 그룹으로 추가되기 위한 적어도 하나의 다른 전자 장치(110)를 검출하고, 전자 장치(110)들과 다른 전자 장치(110)의 개수를 기반으로 불린 회로(C*)를 업데이트하고, 전자 장치(110)들과 다른 전자 장치(110) 각각으로부터 준동형 암호화를 통해 다른 암호화된 세션 개인 키(Enc(K_i))를 수신하고, 다른 암호화된 세션 개인 키(Enc(K_i))를 불린 회로(C*)의 입력 값들로 적용하여, 다른 준동형 암호 값(Eval(K_i, C*))을 연산하고, 전자 장치(110)들과 다른 전자 장치(110) 각각의 통신 비밀 키(sk(t, S))를 이용하여, 전자 장치(110)들 및 다른 전자 장치(110) 각각으로 다른 준동형 암호 값(Eval(K_i, C*))과 임의의 다른 난수(rand*)를 전달하도록 구성될 수 있다.
제 1 실시예에 따르면, 전자 장치(110)들 중 적어도 어느 하나가, 다른 전자 장치(110)에 준동형 암호 키를 제공할 수 있다.
제 1 실시예에 따르면, 전자 장치(110)들과 다른 전자 장치(110) 각각은, 준동형 복호화를 통해, 준동형 암호 키, 다른 준동형 암호 값(Eval(K_i, C*)) 및 임의의 다른 난수(rand*)를 기반으로 그룹을 위한 공통의 세션 키(K*)를 재생성하도록 구성될 수 있다.
제 1 실시예에 따르면, 서버(120)는, 그룹으로부터 제거되는 전자 장치(110)들 중 어느 하나를 검출하고, 전자 장치(110)들 중 나머지의 개수를 기반으로 불린 회로(C*)를 업데이트하고, 전자 장치(110)들 중 나머지로부터 준동형 암호화를 통해 다른 암호화된 세션 개인 키(Enc(K_i))를 수신하고, 다른 암호화된 세션 개인 키(Enc(K_i))를 불린 회로(C*)의 입력 값들로 적용하여, 다른 준동형 암호 값(Eval(K_i, C*))을 연산하고, 전자 장치(110)들 중 나머지 각각의 통신 비밀 키(sk(t, S))를 이용하여, 전자 장치(110)들 중 나머지 각각으로 다른 준동형 암호 값(Eval(K_i, C*))과 임의의 다른 난수(rand*)를 전달하도록 구성될 수 있다.
제 1 실시예에 따르면, 전자 장치(110)들 중 나머지는, 준동형 복호화를 통해, 준동형 암호 키, 다른 준동형 암호 값(Eval(K_i, C*)) 및 임의의 다른 난수(rand*)를 기반으로 그룹을 위한 공통의 세션 키(K*)를 재생성하도록 구성될 수 있다.
제 1 실시예에 따른 통신 시스템(110)의 동작 방법은, 그룹을 생성하기 위한 복수 개의 전자 장치(110)들이 준동형 암호 키를 공유하는 동작, 서버(120)가 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로(C)를 생성하는 동작, 전자 장치(110)들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키(Enc(K_i))를 서버(120)에 전달하는 동작, 서버(120)가 암호화된 세션 개인 키(Enc(K_i))를 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산하는 동작, 서버(120)가 전자 장치(110)들 각각으로 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 전달하는 동작, 및 전자 장치(110)들 각각이 준동형 복호화를 통해, 준동형 암호 키, 준동형 암호 값(Eval(K_i, C)) 및 임의의 난수(rand)를 기반으로 그룹을 위한 공통의 세션 키(K)를 생성하는 동작을 포함할 수 있다.
제 1 실시예에 따르면, 준동형 암호 키는, 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다.
제 1 실시예에 따르면, 암호화된 세션 개인 키(Enc(K_i))는, 준동형 암호화를 통해, 준동형 공개 키(pk_HE)와 전자 장치(110)들 각각의 세션 개인 키(K_i)로부터 생성될 수 있다.
제 1 실시예에 따르면, 세션 키(K)를 생성하는 동작은, 준동형 복호화를 통해, 준동형 비밀 키(sk_HE)와 준동형 암호 값(Eval(K_i, C))으로부터 준동형 복호 값(TK, Dec(Eval(K_i, C), sk_HE))을 획득하는 동작, 및 준동형 복호 값(TK, Dec(Eval(K_i, C), sk_HE))과 임의의 난수(rand)를 더하여, 세션 키(K)를 획득하는 동작을 포함할 수 있다.
제 1 실시예에 따르면, 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 전달하는 동작은, 통신 비밀 키(sk(t, S))를 이용하여 임의의 난수(rand)를 암호화하여, 준동형 암호 값(Eval(K_i, C))과 암호화된 난수(rand)를 포함하는 암호화 메시지를 생성하는 동작, 및 암호화 메시지를 전자 장치(110)들 각각으로 전달하는 동작을 포함할 수 있다.
제 1 실시예에 따르면, 세션 키(K)를 생성하는 동작은, 통신 비밀 키(sk(t, S))를 이용하여 암호화 메시지 내 암호화된 난수(rand)를 복호화하여, 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 획득하는 동작을 더 포함할 수 있다.
제 1 실시예에 따르면, 통신 시스템(110)의 동작 방법은, 서버(120)와 전자 장치(110)들이 그룹으로 추가되기 위한 적어도 하나의 다른 전자 장치(110)를 검출하는 동작, 전자 장치(110)들 중 적어도 어느 하나가 다른 전자 장치(110)에 준동형 암호 키를 제공하는 동작, 및 서버(120)가 전자 장치(110)들과 다른 전자 장치(110)의 개수를 기반으로 불린 회로(C*)를 업데이트하는 동작을 더 포함할 수 있다.
제 1 실시예에 따르면, 암호화된 세션 개인 키(Enc(K_i))를 전달하는 동작, 준동형 암호 값(Eval(K_i, C))을 연산하는 동작, 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 전달하는 동작, 및 세션 키(K)를 생성하는 동작 각각이, 서버(120) 또는 전자 장치(110)들과 다른 전자 장치(110)에 의해, 재수행될 수 있다.
제 1 실시예에 따르면, 통신 시스템(110)의 동작 방법은, 서버(120)가 그룹으로부터 제거되는 전자 장치(110)들 중 어느 하나를 검출하는 동작, 서버(120)가 전자 장치(110)들 중 나머지의 개수를 기반으로 불린 회로(C*)를 업데이트하는 동작을 더 포함할 수 있다.
제 1 실시예에 따르면, 암호화된 세션 개인 키(Enc(K_i))를 전달하는 동작, 준동형 암호 값(Eval(K_i, C))을 연산하는 동작, 준동형 암호 값(Eval(K_i, C))과 임의의 난수(rand)를 전달하는 동작, 및 세션 키(K)를 생성하는 동작 각각이, 서버(120) 또는 전자 장치(110)들 중 나머지에 의해, 재수행될 수 있다.
도 11은 제 2 실시예에 따른 통신 시스템(100)의 동작 방법을 도시하는 도면이다.
도 11을 참조하면, 그룹을 생성하고자 하는 복수 개, 즉 N 개의 전자 장치(110)들이 1120 동작에서 준동형 암호 키를 공유할 수 있다. 이 때 준동형 암호 키는 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다.
서버(120)는 1130 동작에서 불린 회로(C)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C)를 생성할 수 있다. 예를 들면, 서버(120)는 도 2b에 도시된 바와 같은 구조로 불린 회로(C)를 생성할 수 있다. 여기서, 불린 회로(C)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다.
전자 장치(110)들은 1140 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))들을 각각 생성할 수 있다. 이 때 전자 장치(110)들 각각은 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)들은 1150 동작에서 암호화된 세션 개인 키(Enc(K_i))들을 서버(120)로 각각 전달할 수 있다.
서버(120)는 1160 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 후 서버(120)는 1170 동작에서 준동형 암호 값(Eval(K_i, C))을 전자 장치(110)들 각각으로 전달할 수 있다.
전자 장치(110)들은 1180 동작에서 준동형 복호화를 통해, 그룹 키, 즉 공통의 세션 키(K)를 각각 생성할 수 있다. 이 때 전자 장치(110)들은 준동형 암호 키 및 준동형 암호 값(Eval(K_i, C))을 기반으로, 세션 키(K)를 각각 생성할 수 있다. 이에 따라, N 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K)를 이용하여 통신할 수 있다.
도 12는 제 2 실시예에 따른 서버(120)의 동작 방법을 도시하는 도면이다.
도 12를 참조하면, 서버(120)는, 1210 동작에서 그룹을 생성하고자 하는 복수 개, 즉 N 개의 전자 장치(110)들을 감지할 수 있다. 이 후 서버(120)는 1220 동작에서 불린 회로(C)를 생성할 수 있다. 이 때 서버(120)는 전자 장치(110)들의 개수, 즉 N 개의 입력 값들을 기반으로 연산을 수행하기 위한 구조로 불린 회로(C)를 생성할 수 있다. 예를 들면, 서버(120)는 도 2b에 도시된 바와 같은 구조로 불린 회로(C)를 생성할 수 있다. 여기서, 불린 회로(C)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다. 이 후 서버(120)는 1230 동작에서 각각의 전자 장치(110)에 불린 회로(C)를 송신할 수 있다.
서버(120)는 1240 동작에서 각각의 전자 장치(110)로부터 암호화된 세션 개인 키(Enc(K_i))를 수신할 수 있다. 이 때 각각의 전자 장치(110)는 준동형 암호화를 위한 알고리즘을 기반으로, 각각의 세션 개인 키(K_i)를 암호화하고, 이를 통해 각각의 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이에 대응하여, 서버(120)는 1250 동작에서 준동형 연산을 통해, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 때 서버(120)는 암호화된 세션 개인 키(Enc(K_i))들을 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산할 수 있다. 이 후 서버(120)는 1260 동작에서 각각의 전자 장치(110)로 준동형 암호 값(Eval(K_i, C))을 송신할 수 있다. 그런 다음, 서버(120)는 도 5로 리턴할 수 있다. 이에 따라, N 개의 전자 장치(110)들이 그룹화되어, 그룹 키, 즉 세션 키(K)를 이용하여 통신할 수 있다.
도 13은 제 2 실시예에 따른 전자 장치(110)의 동작 방법을 도시하는 도면이다.
도 13을 참조하면, 전자 장치(110)는 1310 동작에서 그와 함께 그룹을 생성하고자 하는 적어도 하나의 다른, 즉 N-1 개의 전자 장치(110)를 감지할 수 있다. 그리고 전자 장치(110)는 1320 동작에서 다른 전자 장치(110)와 준동형 암호 키를 공유할 수 있다. 이 때 준동형 암호 키는 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다. 여기서, 준동형 암호 키, 특히 준동형 비밀 키(sk_HE)는 서버(120)에 노출되지 않을 수 있다.
전자 장치(110)는 1330 동작에서 서버(120)로부터 불린 회로(C)를 수신할 수 있다. 예를 들면, 불린 회로(C)는, 도 2b에 도시된 바와 같은 구조를 가질 수 있다. 여기서, 불린 회로(C)의 중간 연산자는 XOR/AND 연산자를 포함할 수 있다.
전자 장치(110)는 1340 동작에서 준동형 암호화를 통해, 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 때 전자 장치(110)는 준동형 암호화를 위한 알고리즘을 기반으로, 준동형 공개 키(pk_HE)와 세션 개인 키(K_i)를 암호화하고, 이를 통해 암호화된 세션 개인 키(Enc(K_i))를 생성할 수 있다. 이 후 전자 장치(110)는 1350 동작에서 서버(120)에 암호화된 세션 개인 키(Enc(K_i))를 송신할 수 있다.
전자 장치(110)는 1360 동작에서 서버(120)로부터 준동형 암호 값(Eval(K_i, C))을 수신할 수 있다. 이에 대응하여, 전자 장치(110)는 1370 동작에서 준동형 복호화를 통해, 준동형 암호 키 및 준동형 암호 값(Eval(K_i, C))으로부터 그룹 키, 즉 세션 키(K)를 획득할 수 있다. 이 때 전자 장치(110)는 준동형 복호화를 통해, 준동형 비밀 키(sk_HE)와 준동형 암호 값(Eval(K_i, C))으로부터 세션 키(K, Dec(Eval(K_i, C), sk_HE))를 획득할 수 있다. 이에 따라, 전자 장치(110)가 다른, 즉 N-1 개의 전자 장치(110)들과 함께 그룹화되어, 그룹 키, 즉 세션 키(K)를 이용하여 통신할 수 있다.
제 2 실시예에 따른 통신 시스템(100)은, 그룹을 형성하기 위해 준동형 암호 키를 공유하도록 구성되는 복수 개의 전자 장치(110)들, 및 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로(C)를 생성하도록 구성되는 서버(120)를 포함할 수 있다.
제 2 실시예에 따르면, 서버(120)는, 전자 장치(110)들 각각으로부터 준동형 암호화를 통해 암호화된 세션 개인 키(Enc(K_i))를 수신하고, 암호화된 세션 개인 키(Enc(K_i))를 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산하고, 전자 장치(110)들 각각으로 준동형 암호 값(Eval(K_i, C))을 전달하도록 구성될 수 있다.
제 2 실시예에 따르면, 전자 장치(110)들 각각은, 준동형 복호화를 통해, 준동형 암호 키 및 준동형 암호 값(Eval(K_i, C))을 기반으로 그룹을 위한 공통의 세션 키(K)를 생성하도록 구성될 수 있다.
제 2 실시예에 따르면, 준동형 암호 키는, 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다.
제 2 실시예에 따르면, 암호화된 세션 개인 키(Enc(K_i))는, 준동형 암호화를 통해, 준동형 공개 키(pk_HE)와 전자 장치(110)들 각각의 세션 개인 키(K_i)로부터 생성될 수 있다.
제 2 실시예에 따르면, 세션 키(K)는, 준동형 복호화를 통해, 준동형 비밀 키(sk_HE) 및 준동형 암호 값(Eval(K_i, C))으로부터 생성될 수 있다.
제 2 실시예에 따른 통신 시스템(100)의 동작 방법은, 그룹을 생성하기 위한 복수 개의 전자 장치(110)들이 준동형 암호 키를 공유하는 동작, 서버(120)가 전자 장치(110)들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린 회로(C)를 생성하는 동작, 전자 장치(110)들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키(Enc(K_i))를 서버(120)에 전달하는 동작, 서버(120)가 암호화된 세션 개인 키(Enc(K_i))를 불린 회로(C)의 입력 값들로 적용하여, 준동형 암호 값(Eval(K_i, C))을 연산하는 동작, 서버(120)가 전자 장치(110)들 각각으로 준동형 암호 값(Eval(K_i, C))을 전달하는 동작, 및 전자 장치(110)들 각각이 준동형 복호화를 통해, 준동형 암호 키 및 준동형 암호 값(Eval(K_i, C))을 기반으로 그룹을 위한 공통의 세션 키(K)를 생성하는 동작을 포함할 수 있다.
제 2 실시예에 따르면, 준동형 암호 키는, 준동형 비밀 키(sk_HE) 또는 준동형 공개 키(pk_HE) 중 적어도 어느 하나를 포함할 수 있다.
제 2 실시예에 따르면, 암호화된 세션 개인 키(Enc(K_i))는, 준동형 암호화를 통해, 준동형 공개 키(pk_HE)와 전자 장치(110)들 각각의 세션 개인 키(K_i)로부터 생성될 수 있다.
제 2 실시예에 따르면, 세션 키(K)는, 준동형 복호화를 통해, 준동형 비밀 키(sk_HE) 및 준동형 암호 값(Eval(K_i, C))으로부터 생성될 수 있다.
다양한 실시예들에 따르면, 통신 시스템(100)은 준동형 암호 기법을 이용하여, 그룹을 생성하고자 하는 전자 장치(110)들이 상호 통신에 사용하기 위한 그룹 키를 전자 장치(110)들에 안전하게 공유시킬 수 있다. 이 때 그룹 키를 생성하는 데 이용되는 준동형 암호 키가 서버(120)에 노출되지 않고도, 서버(120)의 지원 하에 전자 장치(110)들이 그룹 키를 공유할 수 있다. 즉 그룹 키는 그룹 내 전자 장치(110)들에 안전하게 공유될 뿐, 그룹 내 전자 장치(110)들 이외의 구성에 노출되지 않을 수 있다. 일 실시예에 따르면, 통신 시스템(100)은 준동형 암호 기법을 이용하여, 그룹 내 구성의 변화에 대해 적응적으로 동작할 수 있다. 즉 통신 시스템(100)은 변화된 그룹의 전자 장치(110)들을 위해 그룹 키를 업데이트할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 다양한 실시예들에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(110), 서버(120))에 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
다양한 실시예들에 따르면, 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 통합 이전에 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 통신 시스템의 동작 방법에 있어서,
    그룹을 생성하기 위한 복수 개의 전자 장치들이 준동형 암호 키를 공유하는 동작;
    서버가 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린(boolean) 회로를 생성하는 동작;
    상기 전자 장치들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키를 상기 서버에 전달하는 동작;
    상기 서버가 상기 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하는 동작;
    상기 서버가 상기 전자 장치들 각각으로 상기 준동형 암호 값과 임의의 난수를 전달하는 동작; 및
    상기 전자 장치들 각각이 준동형 복호화를 통해, 상기 준동형 암호 키, 상기 준동형 암호 값 및 상기 임의의 난수를 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하는 동작을 포함하고,
    상기 서버와 상기 전자 장치들이 상기 그룹으로 추가되기 위한 적어도 하나의 다른 전자 장치를 검출하는 동작;
    상기 전자 장치들 중 적어도 어느 하나가 상기 다른 전자 장치에 상기 준동형 암호 키를 제공하는 동작; 및
    상기 서버가 상기 전자 장치들과 상기 다른 전자 장치의 개수를 기반으로 상기 불린 회로를 업데이트하는 동작을 더 포함하고,
    상기 불린 회로가 업데이트된 후에, 상기 암호화된 세션 개인 키를 전달하는 동작, 상기 준동형 암호 값을 연산하는 동작, 상기 준동형 암호 값과 상기 임의의 난수를 전달하는 동작, 및 상기 세션 키를 생성하는 동작 각각이,
    상기 서버 또는 상기 전자 장치들과 상기 다른 전자 장치에 의해, 재수행되는 방법.
  2. 제 1 항에 있어서,
    상기 준동형 암호 키는, 준동형 비밀 키 또는 준동형 공개 키 중 적어도 어느 하나를 포함하고,
    상기 암호화된 세션 개인 키는, 상기 준동형 암호화를 통해, 상기 준동형 공개 키와 상기 전자 장치들 각각의 세션 개인 키로부터 생성되는 방법.
  3. 제 2 항에 있어서, 상기 세션 키를 생성하는 동작은,
    상기 준동형 복호화를 통해, 상기 준동형 비밀 키와 상기 준동형 암호 값으로부터 준동형 복호 값을 획득하는 동작; 및
    상기 준동형 복호 값과 상기 임의의 난수를 더하여, 상기 세션 키를 획득하는 동작을 포함하는 방법.
  4. 제 3 항에 있어서, 상기 준동형 암호 값과 상기 임의의 난수를 전달하는 동작은,
    상기 전자 장치들 각각의 통신 비밀 키를 이용하여 상기 임의의 난수를 암호화하여, 상기 준동형 암호 값과 상기 암호화된 난수를 포함하는 암호화 메시지를 생성하는 동작; 및
    상기 암호화 메시지를 상기 전자 장치들 각각으로 전달하는 동작을 포함하는 방법.
  5. 제 4 항에 있어서, 상기 세션 키를 생성하는 동작은,
    상기 통신 비밀 키를 이용하여 상기 암호화 메시지 내 상기 암호화된 난수를 복호화하여, 상기 준동형 암호 값과 상기 임의의 난수를 획득하는 동작을 더 포함하는 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 서버가 상기 그룹으로부터 제거되는 상기 전자 장치들 중 어느 하나를 검출하는 동작;
    상기 서버가 상기 전자 장치들 중 나머지의 개수를 기반으로 상기 불린 회로를 업데이트하는 동작을 더 포함하고,
    상기 불린 회로가 업데이트된 후에, 상기 암호화된 세션 개인 키를 전달하는 동작, 상기 준동형 암호 값을 연산하는 동작, 상기 준동형 암호 값과 상기 임의의 난수를 전달하는 동작, 및 상기 세션 키를 생성하는 동작 각각이,
    상기 서버 또는 상기 전자 장치들 중 나머지에 의해, 재수행되는 방법.
  8. 통신 시스템에 있어서,
    그룹을 형성하기 위해 준동형 암호 키를 공유하도록 구성되는 복수 개의 전자 장치들; 및
    상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린(boolean) 회로를 생성하도록 구성되는 서버를 포함하고,
    상기 서버는,
    상기 전자 장치들 각각으로부터 준동형 암호화를 통해 암호화된 세션 개인 키를 수신하고,
    상기 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하고,
    상기 전자 장치들 각각으로 상기 준동형 암호 값과 임의의 난수를 전달하도록 구성되고,
    상기 전자 장치들 각각은,
    준동형 복호화를 통해, 상기 준동형 암호 키, 상기 준동형 암호 값 및 상기 임의의 난수를 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하도록 구성되고,
    상기 서버는,
    상기 그룹으로 추가되기 위한 적어도 하나의 다른 전자 장치를 검출하고, 상기 전자 장치들과 상기 다른 전자 장치의 개수를 기반으로 상기 불린 회로를 업데이트하고,
    상기 전자 장치들과 상기 다른 전자 장치 각각으로부터 상기 준동형 암호화를 통해 다른 암호화된 세션 개인 키를 수신하고,
    상기 다른 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 다른 준동형 암호 값을 연산하고,
    상기 전자 장치들 및 상기 다른 전자 장치 각각으로 상기 다른 준동형 암호 값과 임의의 다른 난수를 전달하도록 구성되고,
    상기 전자 장치들 중 적어도 어느 하나가, 상기 다른 전자 장치에 상기 준동형 암호 키를 제공하고,
    상기 전자 장치들과 상기 다른 전자 장치 각각은,
    상기 준동형 복호화를 통해, 상기 준동형 암호 키, 상기 다른 준동형 암호 값 및 상기 임의의 다른 난수를 기반으로 상기 그룹을 위한 공통의 세션 키를 재생성하도록 구성되는 시스템.
  9. 제 8 항에 있어서,
    상기 준동형 암호 키는, 준동형 비밀 키 또는 준동형 공개 키 중 적어도 어느 하나를 포함하고,
    상기 암호화된 세션 개인 키는, 상기 준동형 암호화를 통해, 상기 준동형 공개 키와 상기 전자 장치들 각각의 세션 개인 키로부터 생성되는 시스템.
  10. 제 9 항에 있어서, 상기 전자 장치들 각각은,
    상기 준동형 복호화를 통해, 상기 준동형 비밀 키와 상기 준동형 암호 값을 복호화하여, 준동형 복호 값을 획득하고,
    상기 준동형 복호 값과 상기 임의의 난수를 더하여, 상기 세션 키를 획득하도록 구성되는 시스템.
  11. 제 10 항에 있어서, 상기 서버는,
    상기 전자 장치들 각각의 통신 비밀 키를 이용하여 상기 임의의 난수를 암호화하여, 상기 준동형 암호 값과 상기 암호화된 난수를 포함하는 암호화 메시지를 생성하고,
    상기 암호화 메시지를 상기 전자 장치들 각각으로 전달하도록 구성되는 시스템.
  12. 제 11 항에 있어서, 상기 전자 장치들 각각은,
    상기 통신 비밀 키를 이용하여 상기 암호화 메시지 내 상기 암호화된 난수를 복호화하여, 상기 준동형 암호 값과 상기 임의의 난수를 획득하도록 구성되는 시스템.
  13. 삭제
  14. 삭제
  15. 제 8 항에 있어서, 상기 서버는,
    상기 그룹으로부터 제거되는 상기 전자 장치들 중 어느 하나를 검출하고,
    상기 전자 장치들 중 나머지의 개수를 기반으로 상기 불린 회로를 업데이트하고,
    상기 전자 장치들 중 나머지로부터 상기 준동형 암호화를 통해 다른 암호화된 세션 개인 키를 수신하고,
    상기 다른 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 다른 준동형 암호 값을 연산하고,
    상기 전자 장치들 중 나머지 각각의 통신 비밀 키를 이용하여, 상기 전자 장치들 중 나머지 각각으로 상기 다른 준동형 암호 값과 임의의 다른 난수를 전달하도록 구성되는 시스템.
  16. 제 15 항에 있어서, 상기 전자 장치들 중 나머지는,
    상기 준동형 복호화를 통해, 상기 준동형 암호 키, 상기 다른 준동형 암호 값 및 상기 임의의 다른 난수를 기반으로 상기 그룹을 위한 공통의 세션 키를 재생성하도록 구성되는 시스템.
  17. 통신 시스템의 동작 방법에 있어서,
    그룹을 생성하기 위한 복수 개의 전자 장치들이 준동형 암호 키를 공유하는 동작;
    서버가 상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린(boolean) 회로를 생성하는 동작;
    상기 전자 장치들 각각이 준동형 암호화를 통해 암호화된 세션 개인 키를 상기 서버에 전달하는 동작;
    상기 서버가 상기 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하는 동작;
    상기 서버가 상기 전자 장치들 각각으로 상기 준동형 암호 값을 전달하는 동작; 및
    상기 전자 장치들 각각이 준동형 복호화를 통해, 상기 준동형 암호 키 및 상기 준동형 암호 값을 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하는 동작을 포함하고,
    상기 서버와 상기 전자 장치들이 상기 그룹으로 추가되기 위한 적어도 하나의 다른 전자 장치를 검출하는 동작;
    상기 전자 장치들 중 적어도 어느 하나가 상기 다른 전자 장치에 상기 준동형 암호 키를 제공하는 동작; 및
    상기 서버가 상기 전자 장치들과 상기 다른 전자 장치의 개수를 기반으로 상기 불린 회로를 업데이트하는 동작을 더 포함하고,
    상기 불린 회로가 업데이트된 후에, 상기 암호화된 세션 개인 키를 전달하는 동작, 상기 준동형 암호 값을 연산하는 동작, 상기 준동형 암호 값을 전달하는 동작, 및 상기 세션 키를 생성하는 동작 각각이,
    상기 서버 또는 상기 전자 장치들과 상기 다른 전자 장치에 의해, 재수행되는 방법.
  18. 제 17 항에 있어서,
    상기 준동형 암호 키는, 준동형 비밀 키 또는 준동형 공개 키 중 적어도 어느 하나를 포함하고,
    상기 암호화된 세션 개인 키는, 상기 준동형 암호화를 통해, 상기 준동형 공개 키와 상기 전자 장치들 각각의 세션 개인 키로부터 생성되고,
    상기 세션 키는, 상기 준동형 복호화를 통해, 상기 준동형 비밀 키 및 상기 준동형 암호 값으로부터 생성되는 방법.
  19. 통신 시스템에 있어서,
    그룹을 형성하기 위해 준동형 암호 키를 공유하도록 구성되는 복수 개의 전자 장치들; 및
    상기 전자 장치들의 개수에 상응하는 입력 값들을 기반으로 연산을 수행하기 위한 불린(boolean) 회로를 생성하도록 구성되는 서버를 포함하고,
    상기 서버는,
    상기 전자 장치들 각각으로부터 준동형 암호화를 통해 암호화된 세션 개인 키를 수신하고,
    상기 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 준동형 암호 값을 연산하고,
    상기 전자 장치들 각각으로 상기 준동형 암호 값을 전달하도록 구성되고,
    상기 전자 장치들 각각은,
    준동형 복호화를 통해, 상기 준동형 암호 키 및 상기 준동형 암호 값을 기반으로 상기 그룹을 위한 공통의 세션 키를 생성하도록 구성되고,
    상기 서버는,
    상기 그룹으로 추가되기 위한 적어도 하나의 다른 전자 장치를 검출하고, 상기 전자 장치들과 상기 다른 전자 장치의 개수를 기반으로 상기 불린 회로를 업데이트하고,
    상기 전자 장치들과 상기 다른 전자 장치 각각으로부터 상기 준동형 암호화를 통해 다른 암호화된 세션 개인 키를 수신하고,
    상기 다른 암호화된 세션 개인 키를 상기 불린 회로의 입력 값들로 적용하여, 다른 준동형 암호 값을 연산하고,
    상기 전자 장치들 및 상기 다른 전자 장치 각각으로 상기 다른 준동형 암호 값을 전달하도록 구성되고,
    상기 전자 장치들 중 적어도 어느 하나가, 상기 다른 전자 장치에 상기 준동형 암호 키를 제공하고,
    상기 전자 장치들과 상기 다른 전자 장치 각각은,
    상기 준동형 복호화를 통해, 상기 준동형 암호 키, 상기 다른 준동형 암호 값을 기반으로 상기 그룹을 위한 공통의 세션 키를 재생성하도록 구성되는 시스템.
  20. 제 19 항에 있어서,
    상기 준동형 암호 키는, 준동형 비밀 키 또는 준동형 공개 키 중 적어도 어느 하나를 포함하고,
    상기 암호화된 세션 개인 키는, 상기 준동형 암호화를 통해, 상기 준동형 공개 키와 상기 전자 장치들 각각의 세션 개인 키로부터 생성되고,
    상기 세션 키는, 상기 준동형 복호화를 통해, 상기 준동형 비밀 키 및 상기 준동형 암호 값으로부터 생성되는 시스템.
KR1020190096564A 2019-08-08 2019-08-08 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 KR102315632B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190096564A KR102315632B1 (ko) 2019-08-08 2019-08-08 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템
US16/907,606 US11411715B2 (en) 2019-08-08 2020-06-22 System and method for generating scalable group key based on homomorphic encryption with trust server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190096564A KR102315632B1 (ko) 2019-08-08 2019-08-08 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20210017396A KR20210017396A (ko) 2021-02-17
KR102315632B1 true KR102315632B1 (ko) 2021-10-21

Family

ID=74499464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190096564A KR102315632B1 (ko) 2019-08-08 2019-08-08 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템

Country Status (2)

Country Link
US (1) US11411715B2 (ko)
KR (1) KR102315632B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021119728A1 (de) * 2020-07-31 2022-02-03 Technische Universität Darmstadt, Körperschaft des öffentlichen Rechts Anonymes verteiltes System zur Kontaktverfolgung und -verifizierung
CN114221749B (zh) * 2021-12-13 2022-08-30 成都天府通金融服务股份有限公司 基于多类型服务器的密钥统一管理方法及系统、电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101568871B1 (ko) * 2015-03-05 2015-11-13 (주)엔지엔테크 멀티캐스트 통신방식을 적용한 바이탈 제어 시스템의 암호화 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201701044SA (en) * 2017-02-09 2018-09-27 Huawei Int Pte Ltd System and method for computing private keys for self certified identity based signature schemes
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
US11018875B2 (en) * 2017-08-31 2021-05-25 Onboard Security, Inc. Method and system for secure connected vehicle communication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101568871B1 (ko) * 2015-03-05 2015-11-13 (주)엔지엔테크 멀티캐스트 통신방식을 적용한 바이탈 제어 시스템의 암호화 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lopez-Alt, et. al. "On-the-Fly Multiparty Computation on the Cloud via Multikey Fully Homomorphic Encryption." Proceedings of the forty-fourth annual ACM symposium on Theory of computing(2012.) 1부.*

Also Published As

Publication number Publication date
US11411715B2 (en) 2022-08-09
US20210044419A1 (en) 2021-02-11
KR20210017396A (ko) 2021-02-17

Similar Documents

Publication Publication Date Title
US11451386B2 (en) Method and system for many-to-many symmetric cryptography and a network employing the same
US11431498B2 (en) Quantum-augmentable hybrid encryption system and method
KR102251697B1 (ko) 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
KR20100069610A (ko) 연쇄화된 암호화 모드를 위한 방법 및 디바이스
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
US9571273B2 (en) Method and system for the accelerated decryption of cryptographically protected user data units
KR102315632B1 (ko) 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템
WO2020078804A1 (en) Puf based securing of device update
CN111181944B (zh) 通信系统及信息发布方法、装置、介质、设备
US20210266175A1 (en) Device for data encryption and integrity
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
WO2015008623A1 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
KR20200131688A (ko) 비밀키 생성 장치 및 방법, 연산키 생성 장치 및 방법
KR102022570B1 (ko) 데이터 분산 서비스 시스템 및 이를 이용한 메시지 전송 방법
JP2014017763A (ja) 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム
CN114499829B (zh) 一种密钥对管理方法、装置、电子设备及存储介质
US20180203686A1 (en) Method for configuring a cryptographic program to be executed by a terminal
KR101523214B1 (ko) 공개키 기반의 인증 장치, 방법 및 시스템
KR20220022826A (ko) 대칭키 암호화 장치 및 방법
CN114362934A (zh) 密钥生成方法、装置、电子设备及存储介质
CN116094735A (zh) 一种密码服务管理方法、设备及计算机存储介质
Sohana et al. Agent command manipulation system using two keys encryption model
KR20150124638A (ko) 버냄 사이퍼 암호 알고리즘을 이용한 암복호화 서비스 제공 방법 및 시스템

Legal Events

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