KR20210135075A - 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법 - Google Patents

동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법 Download PDF

Info

Publication number
KR20210135075A
KR20210135075A KR1020200053287A KR20200053287A KR20210135075A KR 20210135075 A KR20210135075 A KR 20210135075A KR 1020200053287 A KR1020200053287 A KR 1020200053287A KR 20200053287 A KR20200053287 A KR 20200053287A KR 20210135075 A KR20210135075 A KR 20210135075A
Authority
KR
South Korea
Prior art keywords
encryption
ciphertext
homomorphic encryption
homomorphic
decryption
Prior art date
Application number
KR1020200053287A
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 KR1020200053287A priority Critical patent/KR20210135075A/ko
Priority to US17/115,161 priority patent/US11575502B2/en
Priority to CN202110399828.9A priority patent/CN113609495A/zh
Publication of KR20210135075A publication Critical patent/KR20210135075A/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
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

본 발명의 일 실시예에 따른 동형 암복호화 장치는, 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 필드 정보를 수신하고, 상기 필드 정보에 기초하여 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈 연산을 수행할 수 있는 최대 횟수를 나타내는 암호문 연산 레벨을 결정하여 출력하는 암호문 연산 레벨 결정부, 상기 암호문 연산 레벨에 기초하여 동형 암호 스킴에 따른 암복호화 파라미터를 선택하여 출력하는 파라미터 출력부, 및 상기 암복호화 파라미터에 기초하여 동형 암호화를 수행하는 동형 암호 처리부를 포함한다.

Description

동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법{DEVICE OF PERFORMING HOMOMORPHIC ENCRYPTION AND DECRYPTION, SYSTEM INCLUDING THE SAME, METHOD OF PERFORMING HOMOMORPHIC ENCRYPTION AND DECRYPTION}
본 발명은 동형 암호 기술에 관한 것으로서, 더욱 상세하게는 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 상기 장치의 동작 방법에 관한 것이다.
동형 암호 기술은 암호화된 상태에서 연산, 탐색, 및 분석 등의 작업을 지원하는 암호화 기술로서, 현대에 이르러 개인 정보의 유출이 문제됨에 따라 그 중요성이 더욱 강조되고 있다.
다만, 동형 암호 기술에 따라 암호화된 암호문의 크기는 암호화 이전의 평문의 크기의 수십 배에 이르고, 동형 암호 기술이 지원하는 연산 등의 계산 복잡도 또한 매우 높다.
본 발명의 일 목적은 동형 암호 기술을 적용하고자 하는 기술 응용 분야에 따라 적응적으로 암복호화 파라미터를 생성하고, 상기 암복호화 파라미터에 기초하여 동형 암호화, 동형 복호화, 및 동형 연산을 수행하는 동형 암복호화 장치를 제공하는 것이다.
본 발명의 다른 목적은 상기 동형 암복호화 장치를 포함하는 동형 암복호화 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 동형 암복호화의 수행 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해 본 발명의 일 실시예에 따른 동형 암복호화 장치는, 연산 레벨 결정부, 파라미터 출력부, 및 동형 암호 처리부를 포함한다. 상기 연산 레벨 결정부는 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 필드 정보를 수신하고, 상기 필드 정보에 기초하여 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈 연산을 수행할 수 있는 최대 횟수를 나타내는 암호문 연산 레벨을 결정하여 출력한다. 상기 파라미터 출력부는 상기 암호문 연산 레벨에 기초하여 동형 암호 스킴에 따른 암복호화 파라미터를 선택하여 출력한다. 상기 동형 암호 처리부는 상기 암복호화 파라미터에 기초하여 동형 암호화를 수행한다.
상기 다른 목적을 달성하기 위해 본 발명의 일 실시예에 따른 동형 암복호화의 수행 방법은, 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 필드 정보를 결정하는 단계, 상기 필드 정보에 기초하여 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈 연산을 수행할 수 있는 최대 횟수를 나타내는 암호문 연산 레벨을 결정하는 단계, 상기 암호문 연산 레벨에 기초하여 동형 암호 스킴에 따른 암호화 파라미터를 선택하는 단계, 및 상기 암호화 파라미터에 기초하여 동형 암호화를 수행하는 단계를 포함한다.
상기 또 다른 목적을 달성하기 위해 본 발명의 일 실시예에 따른 동형 암호 시스템은, 동형 암호 처리 서버, 및 클라이언트들을 포함하고, 상기 동형 암호 처리 서버 및 상기 클라이언트들 중 적어도 하나는 동형 암복호화 장치를 포함하고, 상기 동형 암복호화 장치는, 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 필드 정보를 수신하고, 상기 필드 정보에 기초하여 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈연산을 수행할 수 있는 최대 횟수를 나타내는 암호문 연산 레벨을 결정하여 출력하는 암호문 연산 레벨 결정부, 상기 암호문 연산 레벨에 기초하여 동형 암호 스킴에 따른 암복호화 파라미터를 선택하여 출력하는 파라미터 출력부, 및 상기 암복호화 파라미터에 기초하여 동형 암호화를 수행하는 동형 암호 처리부를 포함한다.
본 발명의 실시예들에 포함되는 따른 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 상기 장치의 동작 방법은 필드 정보에 기초하여 결정된 암호문 연산 레벨에 따라 암복호화 파라미터를 적응적으로 생성하고, 상기 암복호화 파라미터에 기초하여 동형 암호화, 동형 복호화, 및 동형 연산을 수행할 수 있다. 따라서, 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 상기 장치의 동작 방법은 필드 정보를 고려하여 적응적으로 동형 암호화, 동형 복호화, 및 동형 연산을 수행할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 2a는 도 1의 암호문 연산 레벨 결정부의 일 실시예를 나타내는 블록도이고, 도 2b는 필드 정보와 암호문 연산 레벨 간의 관계를 설명하기 위한 도면이다.
도 3a는 도 1의 파라미터 출력부의 일 실시예를 나타내는 블록도이고, 도 3b는 암호문 연산 레벨과 암복호화 파라미터 간의 관계를 설명하기 위한 도면이다.
도 4는 도 1의 동형 암호 처리부의 일 실시예를 나타내는 블록도이다.
도 5a는 도 4의 암호화부의 일 실시예를 나타내는 블록도이고, 도 5b는 도 4의 복호화부의 일 실시예를 나타내는 블록도이다.
도 6은 본 발명의 다른 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 7a는 도 6의 보안 레벨 결정부의 일 실시예를 나타내는 블록도이고, 도 7b는 필드 정보와 보안 레벨 간의 관계를 설명하기 위한 도면이다.
도 8a는 도 6의 파라미터 출력부의 일 실시예를 나타내는 블록도이고, 도 8b는 암호문 연산 레벨, 보안 레벨, 및 암복호화 파라미터 간의 관계를 설명하기 위한 도면이다.
도 9는 본 발명의 또 다른 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 10은 본 발명의 또 다른 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 11은 도 1에 도시된 동형 암복호화의 수행 방법을 나타내는 흐름도이다.
도 12는 본 발명의 실시예들에 따른 동형 암복호화 장치를 포함하는 클라이언트 또는 서버를 나타내는 블록도이다.
도 13, 도 14 및 도 15는 본 발명의 실시예들에 따른 동형 암복호화 장치에 의한 딥러닝의 수행에 이용되는 네트워크 구조의 예를 설명하기 위한 도면들이다.
도 16은 본 발명의 실시예들에 따른 동형 암복호화 장치를 포함하는 동형 암호 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 1을 참조하면, 동형 암복호화 장치(1000)는 암호문 연산 레벨 결정부(100), 파라미터 출력부(300), 및 동형 암호 처리부(500)를 포함한다.
암호문 연산 레벨 결정부(100)는 외부로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 암호문 연산 레벨(CTLV)을 결정하여 파라미터 출력부(300)로 출력한다.
필드 정보(FLDI)는 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 정보를 포함할 수 있다.
상기 기술 응용 분야는 통계청이 제공하는 표준산업분류에 따른 다양한 기술 분야들 중 어느 하나일 수 있다. 예를 들어, 상기 기술 응용 분야는 정보통신업, 금융 및 보험업, 운수 및 창고업, 전문서비스업, 또는 보건업 중 어느 하나일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 상기 기술 응용 분야는 상기 동형 암호 기술이 상기 기술 응용 분야에 적용되는 경우 수행되는 동형 연산의 연산량의 크기에 따라 복수의 필드들 중 어느 하나로 분류될 수 있다.
필드 정보(FLDI)는 상기 기술 응용 분야에 상기 동형 암호 기술을 적용하고자 하는 경우, 상기 적용의 과정 또는 결과에 대한 전체적인 상황을 나타내는 정보라는 의미에서 시나리오 정보라고 지칭될 수도 있다. 보다 구체적인 설명은 후술하기로 한다.
암호문 연산 레벨(CTLV)은 필드 정보(FLDI)에 기초하여 결정되는 정보로서, 동형 암호 처리부(500)가 수행하는 동형 연산의 능력에 관한 정보를 포함할 수 있다. 예를 들어, 암호문 연산레벨(CTLV)은 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈 연산을 수행할 수 있는 최대 횟수를 나타낼 수 있고, 실시예에 따라 20, 30, 및 40 중 어느 하나의 값으로 결정될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
암호문 연산 레벨(CTLV)의 값을 증가시키는 경우(예를 들어, 20->40), 상기 동형 연산의 성능은 증가하나, 동형 암호화에 의하여 생성되는 암호문의 크기가 증가하고, 상기 동형 연산의 계산 복잡도 또한 증가할 수 있다. 반대 해석상, 암호문 연산 레벨(CTLV)의 값을 감소시키는 경우(예를 들어, 40->20), 상기 동형 연산의 성능은 감소하나, 상기 암호문의 크기가 감소하고, 상기 계산 복잡도 또한 감소할 수 있다. 보다 구체적인 설명은 후술하기로 한다.
파라미터 출력부(300)는 암호문 연산 레벨 결정부(100)로부터 암호문 연산 레벨(CTLV)을 수신하고, 암호문 연산 레벨(CTLV)에 기초하여 동형 암호 스킴(homomorphic encryption scheme)에 따른 암복호화 파라미터(PARAM)를 결정하여 동형 암호 처리부(500)로 출력한다.
상기 동형 암호 스킴은 미리 설정될 수 있고, 암복호화 파라미터(PARAM)는 상기 동형 암호 스킴에 상응하는 복수(2 이상)의 파라미터들을 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
동형 암호 처리부(500)는 파라미터 출력부(300)로부터 암복호화 파라미터(PARAM)를 수신하고, 외부로부터 평문(PTIN) 또는 암호문(CTIN) 중 적어도 하나를 수신한다.
동형 암호 처리부(500)는 암복호화 파라미터(PARAM)에 기초하여, 평문(PTIN)을 동형 암호화하여 암호화 된 암호문(CTOUT)을 생성할 수 있고, 암호문(CTIN)을 동형 복호화하여 복호화 된 평문(PTOUT)을 생성할 수 있으며, 암호문(CTIN)에 대하여 상기 동형 연산을 수행하여 동형 연산된 암호문(CTOUT)을 생성할 수도 있다.
동형 암호 처리부(500)는 외부로부터 동형 암호 처리부(500)의 동작 모드를 결정하는 동작 모드 정보(OPRI)를 더 수신할 수 있다. 동형 암호 처리부(500)는 동작 모드 정보(OPRI)에 기초하여 상기 동형 암호화, 상기 동형 복호화, 또는 상기 동형 연산 중 어느 하나를 수행할 수 있다.
동형 암복호화 장치(1000)는 동형 암호 시스템 상에서 구현될 수 있다. 상기 동형 암호 시스템이 동형 암호 처리 서버, 클라이언트, 및 통신 네트워크를 포함하는 경우, 동형 암복호화 장치(1000)는 상기 동형 암호 처리 서버 또는 상기 클라이언트 중 적어도 하나에 구현될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
상술한 바와 같이, 동형 암호 기술은 개인 정보 보안의 관점에서 장점을 가지나, 동시에 암호문의 크기 및 계산 복잡도의 관점에서 단점을 가진다. 그러나, 동형 암복호화 장치(1000)는 필드 정보(FLDI)에 기초하여 결정된 암호문 연산 레벨(CTLV)에 따라 암복호화 파라미터(PARAM)를 적응적으로 생성하고, 상기 암복호화 파라미터에 기초하여 동형 암호화, 동형 복호화, 및 동형 연산을 수행할 수 있다. 따라서, 동형 암복호화 장치(1000)는 필드 정보(FLDI)를 고려하여 적응적으로 동형 암호화, 동형 복호화, 및 동형 연산을 수행할 수 있게 된다. 보다 구체적인 설명은 후술하기로 한다.
도 2a는 도 1의 암호문 연산 레벨 결정부의 일 실시예를 나타내는 블록도이다. 도 2b는 필드 정보와 암호문 연산 레벨 간의 관계를 설명하기 위한 도면이다.
도 1 및 도 2a를 참조하면, 암호문 연산 레벨 결정부(100)는 필드 정보 수신부(130) 및 암호문 레벨 출력부(150)를 포함한다.
필드 정보 수신부(130)는 외부로부터 필드 정보(FLDI)를 수신하여 저장하고, 필드 정보(FLDI)를 암호문 레벨 출력부(150)로 출력할 수 있다. 상술한 바와 같이, 동형 암복호화 장치(1000)는 상기 동형 암호 처리 서버 또는 상기 클라이언트 중 적어도 하나에 구현될 수 있다. 실시예에 따라, 동형 암복호화 장치(1000)가 상기 동형 암호 처리 서버에 구현되는 경우, 필드 정보(FLDI)는 상기 동형 암호 처리 서버에서 자체적으로 생성될 수 있고, 다른 실시예에 따라 상기 클라이언트에서 생성되어 상기 동형 암호 처리 서버로 전송될 수 있다. 이 경우, 필드 정보(FLDI)는 상기 동형 암호 처리 서버 또는 상기 클라이언트에서 동형 암호 기술을 사용하기 위해 실행되는 미리 설정된 애플리케이션에 의해 생성될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
암호문 레벨 출력부(150)는 필드 정보 수신부(130)로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 암호문 연산 레벨(CTLV)을 결정하여 출력할 수 있다.
이하에서, 필드 정보(FLDI)와 암호문 연산 레벨(CTLV) 간의 관계를 설명하기로 한다.
도 2a를 참조하면, 필드 정보(FLDI)는 상기 기술 응용 분야를 나타내는 정보를 포함할 수 있고, 상기 기술 응용 분야는 상기 동형 암호 기술이 적용되는 경우 수행되는 동형 연산의 연산량의 크기에 따라 제1 내지 제3 필드들(F1, F2, 및 F3)로 분류될 수 있다. 실시예에 따라, 제1 필드(F1)로 분류되는 상기 기술 응용 분야에 대하여 가장 크기가 작은 연산량의 동형 연산만이 수행될 수 있고, 그 다음으로 제2 필드(F2), 제3 필드(F3) 순으로 크기가 증가하는 연산량의 동형 연산이 수행될 수 있다. 예를 들어, 제1 필드(F1)로 분류되는 상기 기술 응용 분야에 대하여 사칙 연산의 동형 연산만이 수행될 수 있고, 제2 필드(F2)로 분류되는 상기 기술 응용 분야에 대하여 지수 및 로그 연산의 동형 연산이 더 수행될 수 있고, 제3 필드(F3)로 분류되는 상기 기술 응용 분야에 대하여 미분 연산의 동형 연산이 더 수행될 수 있다. 여기서, 상기 사칙 연산의 동형 연산만이 수행되는 상기 기술 응용 분야는 데이터 검색 또는 데이터 평가와 관련된 기술 응용 분야일 수 있고, 상기 지수 및 로그 연산의 동형 연산이 더 수행되는 상기 기술 응용 분야는 데이터 분석과 관련된 기술 응용 분야일 수 있고, 상기 미분 연산의 동형 연산이 더 수행되는 상기 기술 응용 분야는 딥 러닝과 같은 기계 학습과 관련된 기술 응용 분야일 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
암호문 연산 레벨(CTLV)은 필드 정보(FLDI)에 기초하여 결정되는 정보로서, 동형 암호 처리부(500)가 수행하는 동형 연산의 능력에 따라 제1 내지 제3 암호문 연산 레벨들(CL1, CL2, 및 CL3)을 포함할 수 있다. 실시예에 따라, 제1 내지 제3 암호문 연산 레벨들(CL1, CL2, 및 CL3) 각각은 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈 연산을 수행할 수 있는 최대 횟수를 나타내는 값을 포함할 수 있다. 예를 들어, 제1 암호문 연산 레벨(CL1)은 20, 제2 암호문 연산 레벨(CTLV)은 30, 제3 암호문 연산 레벨(CL3)은 40의 값을 각각 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 2b에서 예시된 바와 같이, 필드 정보(FLDI)가 포함하는 필드들의 개수와 암호문 연산 레벨(CTLV)이 포함하는 암호문 연산 레벨들의 개수가 동일한 경우, 상기 필드들과 상기 암호문 연산 레벨들 각각은 일대일 매칭될 수 있다. 즉, 제1 필드(F1)에 포함되는 상기 기술 응용 분야는 제1 암호문 연산 레벨(CL1)로, 제2 필드(F2)에 포함되는 상기 기술 응용 분야는 제2 암호문 연산 레벨(CL2)로, 제3 필드(F3)에 포함되는 상기 기술 응용 분야는 제3 암호문 연산 레벨(CL3)로 각각 매칭될 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
필드 정보(FLDI)가 포함하는 필드들의 개수와 암호문 연산 레벨(CTLV)이 포함하는 암호문 연산 레벨들의 개수가 서로 상이한 경우, 상기 필드들과 상기 암호문 연산 레벨들 각각은 일대다 매칭이 될 수 있고, 다대일 매칭이 될 수도 있다.
도 3a는 도 1의 파라미터 출력부의 일 실시예를 나타내는 블록도이다. 도 3b는 암호문 연산 레벨과 암복호화 파라미터 간의 관계를 설명하기 위한 도면이다.
도 1 및 도 3a를 참조하면, 파라미터 출력부(300)는 암호문 연산 레벨 수신부(310), 파라미터 로딩부(330), 및 파라미터 저장부(350)를 포함한다.
암호문 연산 레벨 수신부(310)는 암호문 연산 레벨 결정부(100)로부터 암호문 연산 레벨(CTLV)을 수신하여 저장하고, 암호문 연산 레벨(CTLV)을 파라미터 로딩부(330)로 출력할 수 있다.
파라미터 로딩부(330)는 암호문 연산 레벨 수신부(310)로부터 암호문 연산 레벨(CTLV)을 수신하고, 파라미터 저장부(350)로부터 파라미터들(HMEP)을 수신할 수 있다.
파라미터 로딩부(330)는 암호문 연산 레벨(CTLV)에 기초하여 파라미터들(HMEP) 중 동형 암호 스킴에 따른 암복호화 파라미터(PARAM)를 결정하여 동형 암호 처리부(500)로 출력한다.
암복호화 파라미터(PARAM)는 미리 설정된 동형 암호 스킴에 따라 동형 암호화, 동형 복호화, 및 동형 연산을 수행하기 위해 요구되는 파라미터일 수 있다.
상기 동형 암호 스킴은 다양한 관점에서 분류될 수 있다. 실시예에 따라, 상기 동형 암호 스킴은 암호문들 간의 일부 연산만을 지원하는 부분 동형 암호(partial homomorphic encryption), 상기 암호문들 간의 제한된 횟수의 연산을 지원하는 제한 동형 암호(somewhat homomorphic encryption), 및 상기 암호문들 간의 제한되지 않은 횟수의 연산을 지원하는 완전 동형 암호(fully homomorphic encryption) 중 어느 하나일 수 있다. 그러나 다른 실시예에 따라, 상기 동형 암호 스킴은 숫자 연산 동형 암호(digitwise homomorphic encryption) 및 비트 연산 동형 암호(bitwise homomorphic encryption) 중 어느 하나일 수 있다.
이하에서, 암호문 연산 레벨(CTLV)과 암복호화 파라미터(PARAM) 간의 관계를 설명하기로 한다. 설명의 편의를 위해 암복호화 파라미터(PARAM)는 양자 컴퓨터 공격에 대응가능한 격자 기반 암호로서, Ring-LWE(Ring-Learning With Errors) 기반의 동형 암호 스킴에 따라 요구되는 파라미터들 중 어느 하나인 것으로 가정하나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 3b를 참조하면, 암호문 연산 레벨(CTLV)은 필드 정보(FLDI)에 기초하여 결정되는 정보로서, 동형 암호 처리부(500)가 수행하는 동형 연산의 능력에 따라 제1 내지 제3 암호문 연산 레벨들(CL1, CL2, 및 CL3)을 포함할 수 있다.
암복호화 파라미터(PARAM)는 암호문 연산 레벨(CTLV)에 기초하여 선택되는 파라미터로서, 제1 내지 제3 파라미터들(P1, P2, 및 P3) 중 어느 하나로 선택될 수 있다. 실시예에 따라, 제1 내지 제3 파라미터들(P1, P2, 및 P3) 각각은 인코딩, 디코딩, 다중 메시지 패킹, 암호화, 복호화, 또는 키 생성에 관한 파라미터를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 다른 실시예에 따라, 제1 내지 제3 파라미터들(P1, P2, 및 P3) 각각은 자릿수 조정 또는 키 스위칭에 관한 파라미터를 더 포함할 수도 있다.
실시예에 따라, 제1 내지 제3 파라미터들(P1, P2, 및 P3) 각각은 암호문 연산 레벨(CTLV)의 값을 지수 인자로 가지는 파라미터를 포함할 수 있다. 예를 들어, 제1 암호문 연산 레벨(CL1)이 20, 제2 암호문 연산 레벨(CL2)이 30, 제3 암호문 연산 레벨(CL3)이 40의 값을 각각 포함하는 경우, 제1 파라미터(P1)는 p20q를, 제2 파라미터(P2)는 p30q를, 제3 파라미터(P3)는 p40q(여기서, 상기 p 및 상기 q 각각은 서로 다른 소수(prime number))를 각각 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 3b에서 예시된 바와 같이, 암호문 연산 레벨(CTLV)이 포함하는 암호문 연산 레벨들의 개수와 암복호화 파라미터(PARAM)가 포함하는 파라미터들의 개수가 동일한 경우, 상기 암호문 연산 레벨들과 상기 파라미터들 각각은 일대일 매칭될 수 있다. 즉, 제1 암호문 연산 레벨(CL1)에 대응되는 파라미터는 제1 파라미터(P1)로, 제2 암호문 연산 레벨(CL2)에 대응되는 파라미터는 제2 파라미터(P2)로, 제3 암호문 연산 레벨(CL3)에 대응되는 파라미터는 제3 파라미터(P3)로 각각 매칭될 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
암호문 연산 레벨(CTLV)이 포함하는 암호문 연산 레벨들의 개수와 암복호화 파라미터(PARAM)가 포함하는 파라미터들의 개수가 서로 상이한 경우, 상기 암호문 연산 레벨들과 상기 파라미터들 각각은 일대다 매칭 또는 다대일 매칭될 수도 있다.
도 4는 도 1의 동형 암호 처리부의 일 실시예를 나타내는 블록도이다. 도 5a는 도 4의 암호화부의 일 실시예를 나타내는 블록도이고, 도 5b는 도 4의 복호화부의 일 실시예를 나타내는 블록도이다.
도 4를 참조하면, 동형 암호 처리부(500)는 암호화부(510), 연산부(530), 및 복호화부(550)를 포함한다.
동형 암호 처리부(500)는 파라미터 출력부(300)로부터 암복호화 파라미터(PARAM)를 수신하고, 외부로부터 평문(PTIN) 또는 암호문(CTIN) 중 적어도 하나를 수신한다.
암호화부(510)는 암복호화 파라미터(PARAM)에 기초하여, 평문(PTIN)을 동형 암호화하여 암호화 된 암호문(CTOUT)을 생성할 수 있다.
복호화부(550)는 암호문(CTIN)을 동형복호화하여 복호화 된 평문(PTOUT)을 생성할 수 있다.
연산부(530)는 암호문(CTIN)에 대하여 동형 연산을 수행하여 동형 연산된 암호문(CTOUT)을 생성할 수 있다.
동형 암호 처리부(500)는 외부로부터 동형 암호 처리부(500)의 동작 모드를 결정하는 동작 모드 정보(OPRI)를 더 수신할 수 있다. 동작 모드 정보(OPRI)는 암호화부(510), 연산부(530), 또는 복호화부(550) 중 어느 하나를 활성화시키는 정보를 포함할 수 있다. 동형 암호 처리부(500)는 동작 모드 정보(OPRI)에 기초하여 상기 동형 암호화, 상기 동형 복호화, 또는 상기 동형 연산 중 어느 하나를 수행할 수 있다.
도 5a를 참조하면, 암호화부(510)는 인코더(511), 다항식 곱셈기들(513-1, 513-2), 가우시안 샘플러(515) 및 다항식 덧셈기들(517-1, 517-2, 517-3)을 포함한다.
암호화부(510)는 평문(PTIN) 및 암복호화 파라미터(PARAM)를 수신하고, 암복호화 파라미터(PARAM)에 기초하여 평문(PTIN)을 동형 암호화하여 암호화 된 암호문(CTOUT)을 생성할 수 있다. 암복호화 파라미터(PARAM)는 공개키들(PK1, PK2), 가우시안 샘플러(515)의 표준 편차, 인코딩을 위한 소수에 관한 파라미터를 포함할 수 있다. 가우시안 샘플러(515)의 출력값(GSOUT)은 다항식 곱셈기들(513-1, 513-2) 및 다항식 덧셈기들(517-1, 517-2) 각각에 입력될 수 있다. 그러나, 본 발명의 범위는 이에 한정되지 않는다.
도 5b를 참조하면, 복호화부(550)는 다항식 곱셈기(531), 다항식 덧셈기(553), 및 디코더(555)를 포함한다.
복호화부(550)는 암호문(CTIN)을 동형 복호화하여 복호화 된 평문(PTOUT)을 생성할 수 있다. 암복호화 파라미터(PARAM)는 비밀키(SK)에 관한 파라미터를 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 6은 본 발명의 다른 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 1과 도 6에 도시된 동형 암복호화 장치들(1000, 1000a)에 있어서, 동일한 참조부호를 사용하는 구성요소들은 유사한 기능을 수행하므로, 이하에서 중복되는 설명은 생략하기로 한다.
도 6을 참조하면, 동형 암복호화 장치(1000a)는 암호문 연산 레벨 결정부(100), 보안 레벨 결정부(200), 파라미터 출력부(300a), 및 동형 암호 처리부(500)를 포함한다.
암호문 연산 레벨 결정부(100)는 외부로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 암호문 연산 레벨(CTLV)을 결정하여 파라미터 출력부(300)로 출력한다.
보안 레벨 결정부(200)는 외부로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 보안 레벨(SCLV)을 결정하여 파라미터 출력부(300)로 출력한다.
보안 레벨(SCLV)은 필드 정보(FLDI)에 기초하여 결정되는 정보로서, 공개키 암호시스템에 대하여 공격하는 공격자가 2개의 평문들 중 어느 하나를 암호화하여 암호문을 생성한 경우, 상기 암호문이 상기 2개의 평문들 중 어느 평문에 상응하는 암호문인지 맞추도록 하는 게임에서, 승률이 1/(2^R)(여기서, R은 보안 레벨(SCLV)의 값)을 넘지 않도록 생성되는 값을 포함할 수 있다. 실시예에 따라, 보안 레벨(SCLV)은 128, 192, 및 256 중 어느 하나의 값으로 결정될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
파라미터 출력부(300a)는 암호문 연산 레벨 결정부(100)로부터 암호문 연산 레벨(CTLV)을 수신하고, 보안 레벨 결정부(200)로부터 보안 레벨(SCLV)을 수신한다.
파라미터 출력부(300a)는 암호문 연산 레벨(CTLV) 및 보안 레벨(SCLV)에 기초하여 동형 암호 스킴에 따른 암복호화 파라미터(PARAM)를 결정하여 동형 암호 처리부(500)로 출력한다.
동형 암호 처리부(500)는 파라미터 출력부(300)로부터 암복호화 파라미터(PARAM)를 수신하고, 외부로부터 평문(PTIN) 또는 암호문(CTIN) 중 적어도 하나를 수신한다.
동형 암호 처리부(500)는 암복호화 파라미터(PARAM)에 기초하여, 평문(PTIN)을 동형 암호화하여 암호화 된 암호문(CTOUT)을 생성할 수 있고, 암호문(CTIN)을 동형 복호화하여 복호화 된 평문(PTOUT)을 생성할 수 있으며, 암호문(CTIN)에 대하여 상기 동형 연산을 수행하여 동형 연산된 암호문(CTOUT)을 생성할 수도 있다.
동형 암호 처리부(500)는 외부로부터 동형 암호 처리부(500)의 동작 모드를 결정하는 동작 모드 정보(OPRI)를 더 수신할 수 있다. 동형 암호 처리부(500)는 동작 모드 정보(OPRI)에 기초하여 상기 동형 암호화, 상기 동형 복호화, 또는 상기 동형 연산 중 어느 하나를 수행할 수 있다.
도 7a는 도 6의 보안 레벨 결정부의 일 실시예를 나타내는 블록도이다. 도 7b는 필드 정보와 보안 레벨 간의 관계를 설명하기 위한 도면이다.
도 6 및 도 7a를 참조하면, 보안 레벨 결정부(200)는 필드 정보 수신부(230)와 보안 레벨 출력부(250)를 포함한다.
필드 정보 수신부(230)는 외부로부터 필드 정보(FLDI)를 수신하여 저장하고, 필드 정보(FLDI)를 보안 레벨 출력부(250)로 출력할 수 있다.
보안 레벨 출력부(250)는 필드 정보 수신부(230)로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 보안 레벨(SCLV)을 결정하여 출력할 수 있다.
이하에서, 필드 정보(FLDI)와 보안 레벨(SCLV) 간의 관계를 설명하기로 한다.
도 7b를 참조하면, 필드 정보(FLDI)는 상기 기술 응용 분야를 나타내는 정보를 포함할 수 있고, 상기 기술 응용 분야는 상기 동형 암호 기술이 적용되는 경우 수행되는 동형 연산의 연산량의 크기에 따라 제1 내지 제3 필드(F1, F2, 및 F3)로 분류될 수 있다.
보안 레벨(SCLV)은 필드 정보(FLDI)에 기초하여 결정되는 정보로서, 동형 암호 시스템의 보안 등급에 따라 제1 보안 레벨 내지 제3 보안 레벨(SC1, SC2, 및 SC3)들을 포함할 수 있다. 실시예에 따라, 제1 내지 제3 보안 레벨(SC1, SC2, 및 SC3)들 각각은 상기 동형 암호 시스템을 효율적으로 공격하기 위해 요구되는 최소한의 비트 연산의 횟수를 나타내는 값을 포함할 수 있다. 예를 들어 제1 보안 레벨(SC1)은 128, 제2 보안 레벨(SC2)은 192, 제3 보안 레벨(SC3)은 256의 값을 각각 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 7b에서 예시된 바와 같이, 필드 정보(FLDI)가 포함하는 필드들의 개수와 보안 레벨(SCLV)이 포함하는 보안 레벨들의 개수가 동일한 경우, 상기 필드들과 상기 보안 레벨들 각각은 일대일 매칭될 수 있다. 즉, 제1 필드(F1)에 포함되는 상기 기술 응용 분야는 제1 보안 레벨(SC1)로, 제2 필드(F2)에 포함되는 상기 기술 응용 분야는 제2 보안 레벨(SC2)로, 제3 필드(F3)에 포함되는 상기 기술 응용 분야는 제3 보안 레벨(SC3)로 각각 매칭될 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다.
필드 정보(FLDI)가 포함하는 필드들의 개수와 보안 레벨(SCLV)이 포함하는 보안 레벨들의 개수가 서로 상이한 경우, 상기 필드들과 상기 보안 레벨들 각각은 일대다 매칭 또는 다대일 매칭될 수도 있다.
도 8a는 도 6의 파라미터 출력부의 일 실시예를 나타내는 블록도이다. 도 8b는 암호문 연산 레벨, 보안 레벨, 및 암복호화 파라미터 간의 관계를 설명하기 위한 도면이다.
도 3a와 도 8a에 도시된 파라미터 출력부들(300, 300a)에 있어서, 동일한 참조부호를 사용하는 구성요소들은 유사한 기능을 수행하므로, 이하에서 중복되는 설명은 생략하기로 한다.
도 6 및 도 8a를 참조하면, 파라미터 출력부(300a)는 암호문 레벨 및 보안 레벨 수신부(310a), 파라미터 로딩부(330), 및 파라미터 저장부(350)를 포함한다.
암호문 레벨 및 보안 레벨 수신부(310a)는 암호문 연산 레벨 결정부(100)로부터 암호문 연산 레벨(CTLV)을 수신하여 저장하고, 보안 레벨 결정부(200)로부터 보안 레벨(SCLV)을 수신하여 저장하고, 암호문 연산레벨(CTLV) 및 보안 레벨(SCLV)을 파라미터 로딩부(330)로 출력할 수 있다.
파라미터 로딩부(330)는 암호문 연산 레벨 및 보안 레벨 수신부(310a)로부터 암호문 연산 레벨(CTLV) 및 보안 레벨(SCLV)을 수신하고, 파라미터 저장부(350)로부터 파라미터들(HMEP)을 수신할 수 있다. 파라미터들(HMEP)은 미리 설정된 동형 암호 스킴에 따라 동형 암호화, 동형 복호화, 및 동형 연산을 수행하기 위해 요구되는 파라미터일 수 있다.
이하에서, 암호문 연산 레벨(CTLV), 보안 레벨(SCLV), 및 암복호화 파라미터(PARAM) 간의 관계를 설명하기로 한다. 설명의 편의를 위해 암복호화 파라미터(PARAM)는 양자 컴퓨터 공격에 대응가능한 격자 기반 암호로서, Ring-LWE(Ring-Learning With Errors) 기반의 동형 암호 스킴에 따라 요구되는 파라미터들(HMEP) 중 어느 하나인 것으로 가정하나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 8b를 참조하면, 암호문 연산 레벨(CTLV)은 제1 내지 제3 암호문 연산 레벨(CL1, CL2, 및 CL3)들을 포함할 수 있고, 보안 레벨(SCLV)은 제1 보안 레벨(SC1), 제2 보안 레벨(SC2), 및 제3 보안 레벨(SC3)을 포함할 수 있다.
암복호화 파라미터(PARAM)는 상기 동형 암호 스킴에 따라 요구되는 파라미터일 수 있다. 암복호화 파라미터(PARAM)는 암호문 연산 레벨(CTLV) 및 보안 레벨(SCLV)에 기초하여 선택되는 파라미터로서, 제11 내지 제19 파라미터들(P11 내지 P19)을 포함할 수 있다. 실시예에 따라, 제11 내지 제19 파라미터들(P11 내지 P19) 은 암호문 연산 레벨(CTLV)의 값을 지수 인자로 가지는 값을 포함할 수 있다. 예를 들어, 제1 암호문 연산 레벨(CL1)이 20, 제2 암호문 연산 레벨(CL2)은 30, 제3 암호문 연산 레벨(CL3)이 40의 값을 각각 포함하는 경우, 제11 내지 제13 파라미터들(P11 내지 P13)은 p20q, 제14 내지 제16 파라미터들(P14 내지 P16)은 p30q, 제17 내지 제19 파라미터들(P17 내지 P19)은 p40q(여기서, 상기 p 및 상기 q 각각은 서로 다른 소수(prime number))를 각각 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
실시예에 따라, 제11 내지 제19 파라미터들(P11 내지 P19)은 보안 레벨(SCLV) 각각에 상응하는 상기 서로 다른 소수들(상기 p, 및 상기 q)을 포함할 수 있다. 예를 들어, 제1 보안 레벨(SC1)에 상응하는 상기 소수들(상기 p, 및 상기 q)은 2와 3, 제2 보안 레벨(SC2)에 상응하는 상기 소수들(상기 p, 및 상기 q)은 2와 7, 제3 보안 레벨(SC3)에 상응하는 상기 소수들은 5와 7일 수 있다. 이 경우, 제11, 제14, 및 제17 파라미터들(P11, P14, P17)은 2와 3을 상기 소수들(상기 p, 및 상기 q)로 포함하고, 제12, 제15, 및 제18 파라미터들(P12, P15, P18)은 2와 7을 상기 소수들(상기 p, 및 상기 q)로 포함하고, 제13, 제16, 및 제19 파라미터들(P13, P16, P19)은 5와 7을 상기 소수들(상기 p, 및 상기 q)로 각각 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
도 9는 본 발명의 또 다른 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 1, 도 6, 및 도 9에 도시된 동형 암복호화 장치들(1000, 1000a, 1000b)에 있어서, 동일한 참조부호를 사용하는 구성요소들은 유사한 기능을 수행하므로, 이하에서 중복되는 설명은 생략하기로 한다.
도 9를 참조하면, 동형 암복호화 장치(1000b)는 암호문 연산 레벨 결정부(100), 파라미터 출력부(300b), 및 동형 암호 처리부(500b)를 포함한다. 파라미터 출력부(300b)는 동형 암호 스킴 선택부(320)를 더 포함한다.
암호문 연산 레벨 결정부(100)는 외부로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 암호문 연산 레벨(CTLV)을 결정하여 파라미터 출력부(300a)로 출력한다.
파라미터 출력부(300b)는 암호문 연산 레벨 결정부(100)로부터 암호문 연산 레벨(CTLV)을 수신하고, 암호문 연산레벨(CTLV)에 기초하여 동형 암호 스킴(HSCM)에 따른 암복호화 파라미터(PARAM)를 결정하여 동형 암호 처리부(500b)로 출력한다.
동형 암호 스킴 선택부(320)는 암호문 연산 레벨(CTLV)에 기초하여 동형 암복호화를 수행하는 복수의 동형암호 스킴들 중 어느 하나(HSCM)를 선택하여 동형 암호 처리부(500b)로 출력한다.
상기 복수의 동형 암호 스킴들은 부분 동형 암호 스킴, 제한 동형 암호 스킴, 및 완전 동형 암호 스킴을 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
암복호화 파라미터(PARAM)는 동형 암호 스킴(HSCM)에 상응하는 복수(2 이상)의 파라미터들을 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
동형 암호 처리부(500b)는 파라미터 출력부(300b)로부터 동형 암호 스킴(HSCM) 및 암복호화 파라미터(PARAM)를 수신하고, 외부로부터 평문(PTIN) 또는 암호문(CTIN) 중 적어도 하나를 수신한다.
동형 암호 처리부(500b)는 동형 암호 스킴(HSCM) 및 암복호화 파라미터(PARAM)에 기초하여, 평문(PTIN)을 동형 암호화하여 암호화 된 암호문(CTOUT)을 생성할 수 있고, 암호문(CTIN)을 동형 복호화하여 복호화 된 평문(PTOUT)을 생성할 수 있으며, 암호문(CTIN)에 대하여 상기 동형 연산을 수행하여 동형 연산된 암호문(CTOUT)을 생성할 수도 있다.
동형 암호 처리부(500b)는 외부로부터 동형 암호 처리부(500b)의 동작 모드를 결정하는 동작 모드 정보(OPRI)를 더 수신할 수 있다. 동형 암호 처리부(500b)는 동작 모드 정보(OPRI)에 기초하여 상기 동형 암호화, 상기 동형 복호화, 또는 상기 동형 연산 중 어느 하나를 수행할 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 동형 암복호화 장치를 나타내는 블록도이다.
도 1, 도 6, 도 9, 및 도 10에 도시된 동형 암복호화 장치들(1000, 1000a, 1000b, 1000c)에 있어서, 동일한 참조부호를 사용하는 구성요소들은 유사한 기능을 수행하므로, 이하에서 중복되는 설명은 생략하기로 한다.
도 10을 참조하면, 동형 암복호화 장치(1000c)는 암호문 연산 레벨 결정부(100), 파라미터 출력부(300c), 및 동형 암호 처리부(500c)를 포함한다. 파라미터 출력부(300c)는 동형 암호 스킴 선택부(320)를 더 포함하고, 동형 암호 처리부(500c)는 부트스트래핑 감지부(535)를 더 포함한다.
암호문 연산 레벨 결정부(100)는 외부로부터 필드 정보(FLDI)를 수신하고, 필드 정보(FLDI)에 기초하여 암호문 연산 레벨(CTLV)을 결정하여 파라미터 출력부(300c)로 출력한다.
파라미터 출력부(300c)는 암호문 연산 레벨 결정부(100)로부터 암호문 연산 레벨(CTLV)을 수신하고, 암호문 연산레벨(CTLV)에 기초하여 동형 암호 스킴(HSCM)에 따른 암복호화 파라미터(PARAM)를 결정하여 동형 암호 처리부(500c)로 출력한다.
동형 암호 스킴 선택부(320)는 암호문 연산 레벨(CTLV)에 기초하여 동형 암복호화를 수행하는 복수의 동형암호 스킴들 중 어느 하나(HSCM)를 선택하여 동형 암호 처리부(500b)로 출력한다.
상기 복수의 동형 암호 스킴들은 부분 동형 암호 스킴, 제한 동형 암호 스킴, 및 완전 동형 암호 스킴을 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
암복호화 파라미터(PARAM)는 동형 암호 스킴(HSCM)에 상응하는 복수(2 이상)의 파라미터들을 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
동형 암호 처리부(500c)는 파라미터 출력부(300c)로부터 동형 암호 스킴(HSCM) 및 암복호화 파라미터(PARAM)를 수신하고, 외부로부터 평문(PTIN) 또는 암호문(CTIN) 중 적어도 하나를 수신한다.
동형 암호 처리부(500c)는 동형 암호 스킴(HSCM) 및 암복호화 파라미터(PARAM)에 기초하여, 평문(PTIN)을 동형 암호화하여 암호화 된 암호문(CTOUT)을 생성할 수 있고, 암호문(CTIN)을 동형 복호화하여 복호화 된 평문(PTOUT)을 생성할 수 있으며, 암호문(CTIN)에 대하여 상기 동형 연산을 수행하여 동형 연산된 암호문(CTOUT)을 생성할 수도 있다.
동형 암호 처리부(500)는 외부로부터 동형 암호 처리부(500)의 동작 모드를 결정하는 동작 모드 정보(OPRI)를 더 수신할 수 있다. 동형 암호 처리부(500)는 동작 모드 정보(OPRI)에 기초하여 상기 동형 암호화, 상기 동형 복호화, 또는 상기 동형 연산 중 어느 하나를 수행할 수 있다.
부트스트래핑 감지부(535)는 암호문(CTIN)에 대하여 상기 동형 연산을 수행함에 있어서, 부트스트래핑의 발생을 감지하여 부트스트래핑 감지 정보(BTSD)를 생성할 수 있다.
상기 부트스트래핑은 동형 암호문들 간의 곱셈 연산을 수행하는 횟수가 동형 용량(homomorphic capacity)을 초과하는 경우, 상기 곱셈 연산의 결과로서 얻어지는 암호문에 존재하는 노이즈를 감소시켜 새로운 암호문을 생성하는 프로세스를 말한다. 이 경우, 파라미터 출력부(300c)는 부트스트래핑 감지부(535)로부터 부트스트래핑 감지 정보(BTSD)를 수신하여 동형 암호 스킴(HSCM) 또는 동형 암호 스킴(HSCM)에 따른 암복호화 파라미터(PARAM) 중 적어도 하나를 다시 결정하여 동형 암호 처리부(500c)로 출력한다.
도 11은 동형 암복호화의 수행 방법을 나타내는 흐름도이다.
도 11을 참조하면, 동형 암복호화의 수행 방법에 따라, 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 필드 정보를 수신한다(S1000).
필드 정보(FLDI)는 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 정보를 포함할 수 있고, 상기 기술 응용 분야는 상기 동형 암호 기술이 적용되는 경우 수행되는 동형 연산의 연산량의 크기에 따라 복수의 필드들로 분류될 수 있다. 예를 들어, 필드 정보(FLDI)는 통계청이 제공하는 표준산업분류에 따른 정보통신업, 금융 및 보험업, 운수 및 창고업, 전문서비스업, 또는 보건업 등을 포함할 수 있다. 필드 정보(FLDI)는 상기 기술 응용 분야에 상기 동형 암호 기술을 적용하고자 하는 경우, 상기 적용의 과정 또는 결과에 대한 전체적인 상황을 나타내는 정보라는 의미에서 시나리오 정보라고 지칭될 수도 있다.
상기 필드 정보에 기초하여 부트스트래핑 과정 없이 동형 암호문들 간의곱셈 연산을 수행할 수 있는 최대 횟수를 나타내는 암호문 연산 레벨을 결정한다(S3000).
암호문 연산 레벨(CTLV)은 필드 정보(FLDI)에 기초하여 결정되는 정보로서, 동형 암호 처리부(500)가 수행하는 동형 연산의 능력에 관한 정보를 포함할 수 있다. 예를 들어, 암호문 연산레벨(CTLV)은 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈 연산을 수행할 수 있는 최대 횟수를 나타내는 값을 포함할 수 있고, 실시예에 따라 20, 30, 및 40 중 어느 하나의 값으로 결정될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
암호문 연산 레벨(CTLV)의 값을 증가시키는 경우(예를 들어, 20->40), 상기 동형 연산의 능력은 증가하나, 동형 암호화에 의하여 생성되는 암호문의 크기가 증가하고, 상기 동형 연산의 계산 복잡도 또한 증가할 수 있다. 반대 해석상, 암호문 연산 레벨(CTLV)의 값을 감소시키는 경우(예를 들어, 40->20), 상기 동형 연산의 능력은 감소하나, 상기 암호문의 크기가 감소하고, 상기 계산 복잡도 또한 감소할 수 있다.
상기 암호문 연산 레벨에 기초하여 동형 암호 스킴에 따른 암호화 파라미터를 생성한다(S5000).
상기 동형 암호 스킴은 미리 설정될 수 있고, 암복호화 파라미터(PARAM)는 상기 동형 암호 스킴에 상응하는 복수(2 이상)의 파라미터들을 포함할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.
상기 암호화 파라미터에 기초하여 동형암호화를 수행한다(S7000).
도 12는 본 발명의 실시예들에 따른 동형 암복호화 장치를 포함하는 클라이언트 또는 서버를 나타내는 블록도이다.
도 12를 참조하면, 클라이언트 또는 서버(3000)는 프로세서(3100), 동형 암복호화 장치(3200), 메모리 장치(3300), 통신(connectivity)부(3400), 사용자 인터페이스(3500), 및 파워 서플라이(3600)를 포함한다. 클라이언트 또는 서버(3000)는 임의의 모바일 시스템 또는 컴퓨팅 시스템일 수 있다.
프로세서(3100)는 클라이언트 또는 서버(3000)의 전반적인 동작을 제어하며, 운영 체제, 애플리케이션 등을 실행하고, 특정 계산들 또는 태스크들과 같은 다양한 컴퓨팅 기능들을 실행할 수 있다.
통신부(3400)는 외부 장치와 통신을 수행할 수 있다.
메모리 장치(3300)는 프로세서(3100)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(working memory)로서 작동할 수 있다.
사용자 인터페이스(3500)는 키패드, 버튼, 마이크, 터치 스크린 등과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치 등과 같은 하나 이상의 출력 장치를 포함할 수 있다.
파워 서플라이(3600)는 클라이언트 또는 서버(3000)의 동작 전압을 공급할 수 있다.
동형 암복호화 장치(3200)는 도 1, 도 6, 도 9, 및 도 10을 참조하여 상술한 동형 암호화, 동형 복호화, 및 동형 연산 중 적어도 하나를 수행할 수 있다.
도 13, 도 14 및 도 15는 본 발명의 실시예들에 따른 동형 암복호화 장치에 의한 딥러닝의 수행에 이용되는 네트워크 구조의 예를 설명하기 위한 도면들이다.
도 13을 참조하면, 일반적인 인공 신경망의 네트워크 구조는 입력 레이어(IL), 복수의 히든 레이어들(HL1, HL2, ..., HLn) 및 출력 레이어(OL)를 포함할 수 있다.
입력 레이어(IL)는 i(i는 자연수)개의 입력 노드들(x1, x2, ..., xi)을 포함할 수 있고, 길이가 i인 벡터 입력 데이터(IDAT)가 각 입력 노드에 입력될 수 있다.
복수의 히든 레이어들(HL1, HL2, ..., HLn)은 n(n은 자연수)개의 히든 레이어들을 포함하며, 히든 노드들(h11, h12, h13, ..., h1m, h21, h22, h23, ..., h2m, hn1, hn2, hn3, ..., hnm)을 포함할 수 있다. 예를 들어, 히든 레이어(HL1)는 m(m은 자연수)개의 히든 노드들(h11, h12, h13, ..., h1m)을 포함할 수 있고, 히든 레이어(HL2)는 m개의 히든 노드들(h21, h22, h23, ..., h2m)을 포함할 수 있으며, 히든 레이어(HLn)는 m개의 히든 노드들(hn1, hn2, hn3, ..., hnm)을 포함할 수 있다.
출력 레이어(OL)는 분류할 클래스에 대응하는 j(j는 자연수)개의 출력 노드들(y1, y2, ..., yj)을 포함할 수 있고, 입력 데이터(IDAT)에 대하여 각 클래스 별로 결과(예를 들어, 점수 또는 class score)를 출력할 수 있다. 출력 레이어(OL)는 fully connected 레이어라고 부를 수 있으며, 예를 들어 입력 데이터(IDAT)가 자동차에 대응할 확률을 수치로 나타낼 수 있다.
도 13에 도시된 네트워크 구조는, 두 개의 노드들 사이에 직선으로 도시된 노드들 간의 연결(branch)과, 도시되지는 않았지만 각 연결에서 사용되는 가중치(weight)를 포함할 수 있다. 이 때, 하나의 레이어 내의 노드들 간에는 연결이 되지 않을 수 있고, 서로 다른 레이어들에 포함되는 노드들은 완전하게 혹은 부분적으로 연결될 수 있다.
도 13의 각 노드(예를 들어, h11)는 이전 노드(예를 들어, x1)의 출력을 입력 받아 연산할 수 있고, 연산 결과를 이후 노드(예를 들어, h21)에 출력할 수 있다. 이 때, 각 노드는 입력된 값을 특정 함수, 예를 들어 비선형 함수에 적용하여 출력할 값을 연산할 수 있다.
일반적으로 신경망의 네트워크 구조는 미리 결정되어 있으며, 노드들 간의 연결에 따른 가중치들은 이미 어떤 클래스에 속할지 정답이 알려진 데이터를 이용하여 적절한 값을 산정하게 된다. 이와 같이 이미 정답이 알려진 데이터들을 '학습 데이터'라고 하고, 가중치를 결정하는 과정을 '학습'이라고 한다. 또한, 독립적으로 학습이 가능한 구조와 가중치의 묶음을 '모델'이라고 가정하고, 가중치가 결정된 모델이 입력 데이터가 어느 클래스에 속할지를 예측하여 그 예측값을 출력하는 것을 '테스트' 과정이라고 한다.
한편, 도 13에 도시된 일반적인 신경망은 각 노드(예를 들어, h11)가 앞쪽 레이어(previous layer)(예를 들어, IL)의 모든 노드들(예를 들어, x1, x2, ..., xi)과 연결되어 있어, 입력 데이터(IDAT)가 영상(또는 음성)인 경우에 영상의 크기가 증가할수록 필요한 가중치의 개수가 기하급수적으로 증가하며, 따라서 영상을 다루기에 적절하지 않을 수 있다. 이에 따라, 신경망에 필터 기술을 병합하여, 신경망이 2차원 영상을 잘 습득할 수 있도록 구현된 컨볼루션(convolutional) 신경망이 연구되고 있다.
도 14를 참조하면, 컨볼루션 신경망의 네트워크 구조는 복수의 레이어들(CONV1, RELU1, CONV2, RELU2, POOL1, CONV3, RELU3, CONV4, RELU4, POOL2, CONV5, RELU5, CONV6, RELU6, POOL3, FC)을 포함할 수 있다.
일반적인 신경망과 다르게, 컨볼루션 신경망의 각 레이어는 가로(또는 폭, width), 세로(또는 높이, height), 깊이(depth)의 3개의 차원을 가질 수 있다. 이에 따라, 각 레이어에 입력되는 데이터 또한 가로, 세로, 깊이의 3개의 차원을 가지는 볼륨 데이터일 수 있다. 예를 들어, 도 3b에서 입력 영상이 가로 32, 세로 32의 크기를 가지고 세 개의 컬러 채널(R, G, B)을 가지는 경우에, 상기 입력 영상에 대응하는 입력 데이터(IDAT)는 32*32*3의 크기를 가질 수 있다. 도 14b의 입력 데이터(IDAT)는 입력 볼륨 데이터 또는 입력 액티베이션 볼륨(activation volume)이라 부를 수 있다.
컨볼루션 레이어들(CONV1, CONV2, CONV3, CONV4, CONV5, CONV6)은 입력에 대한 컨볼루션 연산을 수행할 수 있다. 영상 처리에서 컨볼루션이란 가중치를 갖는 마스크를 이용하여 데이터를 처리하는 것을 의미할 수 있으며, 입력값과 마스크의 가중치를 곱한 후에 그 합을 출력 값으로 정하는 것을 나타낼 수 있다. 이 때, 마스크를 필터(filter), 윈도우(window) 또는 커널(kernel)이라고 부를 수 있다.
구체적으로, 각 컨볼루션 레이어의 파라미터들은 일련의 학습 가능한 필터들로 이루어져 있을 수 있다. 각 필터는 가로/세로 차원으로는 각 레이어의 전체 크기보다 작지만 깊이 차원으로는 각 레이어의 전체 깊이를 아우를 수 있다. 예를 들어, 각 필터를 입력 볼륨의 가로/세로 차원으로 슬라이딩(정확히는 convolve) 시키며 필터와 입력의 요소들 사이의 내적 연산(dot product)을 수행하여 2차원의 액티베이션 맵(activation map)을 생성할 수 있고, 이러한 액티베이션 맵을 깊이 차원을 따라 쌓아서 출력 볼륨을 생성할 수 있다. 예를 들어, 컨볼루션 레이어(CONV1)가 32*32*3의 크기의 입력 볼륨 데이터(IDAT)에 네 개의 필터들을 제로 패딩(zero-padding)과 함께 적용하면, 컨볼루션 레이어(CONV1)의 출력 볼륨은 32*32*12의 크기를 가질 수 있다(즉, 깊이 증가).
RELU 레이어들(RELU1, RELU2, RELU3, RELU4, RELU5, RELU6)은 입력에 대한 정정 선형 유닛 연산을 수행할 수 있다. 예를 들어, 정정 선형 유닛 연산은 max(0, x)와 같이 음수에 대해서만 0으로 처리하는 함수를 나타낼 수 있다. 예를 들어, RELU 레이어(RELU1)가 컨볼루션 레이어(CONV1)로부터 제공된 32*32*12의 크기의 입력 볼륨에 정정 선형 유닛 연산을 수행하면, RELU 레이어(RELU1)의 출력 볼륨은 32*32*12의 크기를 가질 수 있다(즉, 볼륨 유지).
풀링 레이어들(POOL1, POOL2, POOL3)은 입력 볼륨의 가로/세로 차원에 대해 다운 샘플링을 수행할 수 있다. 예를 들어, 2*2 필터를 적용하는 경우에 2*2 영역의 네 개의 입력들을 하나의 출력으로 변환할 수 있다. 구체적으로, 2*2 최대 값 풀링과 같이 2*2 영역의 네 개의 입력들 중 최대 값을 선택하거나, 2*2 평균 값 풀링과 같이 2*2 영역의 네 개의 입력들의 평균 값을 연산할 수 있다. 예를들어, 풀링 레이어(POOL1)가 32*32*12의 크기의 입력 볼륨에 2*2 필터를 적용하면, 풀링 레이어(POOL1)의 출력 볼륨은 16*16*12의 크기를 가질 수 있다(즉, 가로/세로 감소, 깊이 유지, 볼륨 감소).
일반적으로 컨볼루션 신경망에서는 하나의 컨볼루션 레이어(예를 들어, CONV1)와 하나의 RELU 레이어(예를 들어, RELU1)가 한 쌍을 형성할 수 있고, 컨볼루션/RELU 레이어들의 쌍이 반복 배치될 수 있으며, 컨볼루션/RELU 레이어들의 쌍이 반복 배치되는 중간 중간에 풀링 레이어를 삽입함으로써, 영상을 줄여나가면서 영상의 특징을 추출할 수 있다.
출력 레이어 또는 fully connected 레이어(FC)는 입력 볼륨 데이터(IDAT)에 대하여 각 클래스 별로 결과를 출력할 수 있다. 예를 들어, 컨볼루션 및 서브 샘플링을 반복 수행함에 따라 2차원 영상에 대응하는 입력 볼륨 데이터(IDAT)가 1차원 행렬(또는 벡터)로 변환될 수 있다. 예를 들어, fully connected 레이어(FC)는 입력 볼륨 데이터(IDAT)가 자동차(CAR), 트럭(TRUCK), 비행기(AIRPLANE), 배(SHIP), 말(HORSE)에 대응할 확률을 수치로 나타낼 수 있다.
한편, 도시하지는 않았으나, 컨볼루션 신경망에 포함되는 레이어들의 종류 및 개수는 실시예에 따라서 다양하게 변경될 수 있다. 또한, 도시하지는 않았으나, 실시예에 따라서 컨볼루션 신경망은 예측된 결과인 점수(score) 값을 확률 값으로 변환하는 Softmax 레이어, 바이어스(bias)를 추가하는 Bias add 레이어 등을 더 포함할 수 있다.
도 15를 참조하면, 회귀신경망의 네트워크 구조는 도 15의 좌측에 도시된 특정 노드(N) 또는 셀을 이용한 반복 구조를 포함할 수 있다.
도 15의 우측에 도시된 구조는 좌측에 도시된 회귀 신경망의 반복적인 연결이 펼쳐진(UNFOLD) 것을 나타내며, 회귀 신경망을 "펼친다"는 것은 네트워크를 모든 노드들(NA, NB, NC)을 포함하는 전체 시퀀스에 대해 도시한 것일 수 있다. 예를 들어, 관심 있는 시퀀스 정보가 3개의 단어로 이루어진 문장이라면, 회귀 신경망은 한 단어당 하나의 계층(layer)씩 (recurrent 연결이 없는, 또는 사이클이 없는) 3-layer 신경망 구조로 펼쳐질 수 있다.
회귀 신경망에서, X는 회귀 신경망의 입력값을 나타낸다. 예를 들어, Xt는 시간 스텝(time step) t에서의 입력값이며, Xt-1 및 Xt+1 역시 각각 시간 스텝 t-1 및 t+1에서의 입력값일 수 있다.
회귀 신경망에서, S는 히든 상태(hidden state)를 나타낸다. 예를 들어, St는 시간 스텝 t에서의 히든 상태이며, St-1 및 St+1도 역시 각각 시간 스텝 t-1 및 t+1에서의 히든 상태일 수 있다. 히든 상태는 이전 시간 스텝의 히든 상태 값과 현재 시간 스텝의 입력값에 의해 계산될 수 있다. 예를 들어, St=f(UXt+WSt-1)일 수 있고, 이 때 비선형 함수 f는 tanh나 ReLU가 사용될 수 있으며, 최초의 히든 상태를 계산하기 위한 S-1은 보통 0으로 초기화시킬 수 있다.
회귀 신경망에서, O는 시간 스텝 t에서의 출력값을 나타낸다. 예를 들어, Ot는 시간 스텝 t에서의 출력값이며, Ot-1 및 Ot+1 역시 각각 시간 스텝 t-1 및 t+1에서의 출력값일 수 있다. 예를 들어, 문장에서 다음 단어를 추측하고 싶다면 단어 수만큼의 차원의 확률 벡터가 될 것이다. 예를 들어, Ot=softmax(VSt)일 수 있다.
회귀 신경망에서, 히든 상태는 네트워크의 "메모리" 부분일 수 있다. 다시 말하면, 회귀 신경망은 현재까지 계산된 결과에 대한 "메모리" 정보를 갖고 있다고 볼 수 있다. St는 과거의 시간 스텝들에서 일어난 일들에 대한 정보를 전부 담고 있고, 출력값 Ot는 오로지 현재 시간 스텝 t의 메모리에만 의존할 수 있다. 또한, 각 계층마다의 파라미터 값들이 전부 다른 기존의 신경망 구조와 달리, 회귀 신경망은 모든 시간 스텝에 대해 파라미터 값(도 5c의 U, V, W)을 전부 공유하고 있다. 이는 회귀 신경망이 각 스텝마다 입력값만 다를 뿐 거의 똑같은 계산을 하고 있음을 나타내며, 학습해야 하는 파라미터 수를 감소시킬 수 있다.
일 실시예에서, 영상 분류(image classify) 서비스, 생체 정보에 기초한 사용자 인증(authentication) 서비스, 운전 보조 시스템(advanced driver assistance system; ADAS) 서비스, 음성 보조(voice assistant) 서비스, 자동 음성 인식(automatic speech recognition; ASR) 서비스 등과 같은 다양한 서비스 및/또는 어플리케이션이 도 14a, 14b 및 14c를 참조하여 상술한 신경망 시스템에 의해 실행 및 처리될 수 있다.
도 16은 본 발명의 실시예들에 따른 동형 암복호화 장치를 포함하는 동형 암호 시스템을 나타내는 블록도이다.
도 13을 참조하면, 동형 암호 시스템(5000)은 동형 암호 처리 서버(5100), 데이터 베이스(5300), 통신 네트워크(5500), 및 클라이언트들(5700-1, 5700-2, 5700-3)을 포함한다.
동형 암호 처리 서버(5100) 및 클라이언트들(5700-1, 5700-2, 5700-3) 중 적어도 하나는 암호문 연산 레벨 결정부(100), 보안 레벨 결정부(200), 파라미터 출력부(300, 300a, 300b, 300c), 및 동형 암호 처리부(500, 500b, 500c)를 포함할 수 있다.
클라이언트들(5700-1, 5700-2, 5700-3)은 통신 기능을 가지는 컴퓨팅 장치 또는 통신 단말기로서, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 장치(mobile internet device)(MID), 인터넷 태블릿, IoT(Internet of Things) 장치, 또는 웨어러블 컴퓨터일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
통신 네트워크(5500)는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 상기 무선 통신망은 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 및 라이파이(LiFi) 중 어느 하나일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따른 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 상기 장치의 동작 방법은 필드 정보(FLDI)에 기초하여 결정된 암호문 연산 레벨(CTLV)에 따라 암복호화 파라미터(PARAM)를 적응적으로 생성하고, 상기 암복호화 파라미터에 기초하여 동형 암호화, 동형 복호화, 및 동형 연산을 수행할 수 있다. 따라서, 동형 암복호화 장치(1000)는 필드 정보(FLDI)를 고려하여 적응적으로 동형 암호화, 동형 복호화, 및 동형 연산을 수행할 수 있게 된다.
본 발명의 실시예들에 따른 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 상기 장치의 동작 방법은 동형 암호 기술이 적용되는 여러 응용분야에서 폭 넓게 적용될 수 있을 것이다. 또한, 본 발명은 동형 암호 기술이 적용되는 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular phone), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자시스템에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 동형 암호 기술을 적용하고자 하는 기술 응용 분야를 나타내는 필드 정보를 수신하고, 상기 필드 정보에 기초하여 부트스트래핑 과정 없이 동형 암호문들 간의 곱셈연산을 수행할 수 있는 최대 횟수를 나타내는 암호문 연산 레벨을 결정하여 출력하는 암호문 연산 레벨 결정부;
    상기 암호문 연산 레벨에 기초하여 동형 암호 스킴에 따른 암복호화 파라미터를 선택하여 출력하는 파라미터 출력부; 및
    상기 암복호화 파라미터에 기초하여 동형 암호화를 수행하는 동형 암호 처리부를 포함하는, 동형 암복호화 장치.
  2. 제1 항에 있어서,
    상기 필드 정보는 상기 동형 암호 기술이 상기 기술 응용 분야에 적용되는 경우 수행되는 동형 연산의 연산량의 크기에 따라 복수의 필드들로 분류되는 것을 특징으로 하는 동형 암복호화 장치.
  3. 제1 항에 있어서, 상기 필드 정보는
    상기 동형 암호 기술이 적용되는 경우 수행되는 동형 연산의 연산량의 크기에 따라 제1 내지 제3 필드들로 분류되고,
    상기 제1 필드에 포함되는 상기 기술 응용 분야에 대하여 사칙 연산의 상기 동형 연산만이 수행되고, 상기 제2 필드에 포함되는 상기 기술 응용 분야에 대하여 지수 및 로그 연산의 상기 동형 연산이 수행되고, 상기 제3 필드에 포함되는 상기 기술응용 분야에 대하여 미분 연산의 상기 동형 연산이 수행되는 것을 특징으로 하는 동형 암복호화 장치.
  4. 제3 항에 있어서,
    상기 사칙 연산의 동형 연산만이 수행되는 상기 기술 응용 분야는 데이터 검색 또는 데이터 평가와 관련된 기술 응용 분야이고,
    상기 지수 및 로그 연산의 동형 연산이 더 수행되는 상기 기술 응용 분야는 데이터 분석과 관련된 기술 응용 분야이고,
    상기 미분 연산의 동형 연산이 더 수행되는 상기 기술 응용 분야는 기계 학습과 관련된 기술 응용 분야인 것을 특징으로 하는 동형 암복호화 장치.
  5. 제1 항에 있어서,
    상기 암호문 연산 레벨의 값을 증가시키는 경우, 동형 연산의 성능은 증가하나, 상기 동형 암호화에 의하여 생성되는 암호문의 크기 및 상기 동형 연산의 계산 복잡도가 증가하는 것을 특징으로 하는 동형 암복호화 장치.
  6. 제1 항에 있어서,
    상기 암호문 연산 레벨 결정부는
    외부로부터 상기 필드 정보를 수신하여 저장하여 출력하는 필드 정보 수신부 및
    상기 필드 정보를 수신하고, 상기 필드 정보에 기초하여 상기 암호문 연산 레벨을 결정하여 출력하는 암호문 레벨 출력부를 포함하는 것을 특징으로 하는 동형 암복호화 장치.
  7. 제1 항에 있어서, 상기 파라미터 출력부는
    상기 암호문 연산 레벨을 수신하여 저장하고, 상기 암호문 연산 레벨을 출력하는 암호문 연산 레벨 수신부;
    파라미터들을 저장하는 파라미터 저장부; 및
    상기 암호문 연산 레벨을 수신하고, 상기 암호문 연산 레벨에 기초하여 상기 동형 암호 스킴에 따른 상기 암복호화 파라미터를 결정하여 출력하는 파라미터 로딩부를 포함하는 것을 특징으로 하는 동형 암복호화 장치.
  8. 제1 항에 있어서, 상기 동형 암호 처리부는 암호화부를 포함하고,
    외부로부터 평문을 수신하고,
    상기 암호화부는 상기 암복호화 파라미터에 기초하여 상기 평문을 동형 암호화하여 암호화 된 암호문을 생성하는 것을 특징으로 하는 동형 암복호화 장치.
  9. 제1 항에 있어서,
    상기 암복호화 파라미터는
    공개키들, 가우시안 샘플러의 표준 편차, 인코딩을 위한 소수에 관한 파라미터를 포함하는 것을 특징으로 하는 동형 암복호화 장치.
  10. 제1 항에 있어서,
    외부로부터 상기 필드 정보를 수신하고, 상기 필드 정보에 기초하여 보안 레벨을 결정하여 출력하는 보안 레벨 결정부를 더 포함하는 것을 특징으로 하는 동형 암복호화 장치.
KR1020200053287A 2020-05-04 2020-05-04 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법 KR20210135075A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200053287A KR20210135075A (ko) 2020-05-04 2020-05-04 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법
US17/115,161 US11575502B2 (en) 2020-05-04 2020-12-08 Homomorphic encryption processing device, system including the same and method of performing homomorphic encryption processing
CN202110399828.9A CN113609495A (zh) 2020-05-04 2021-04-14 用于同态加密处理的设备和方法、包括该设备的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200053287A KR20210135075A (ko) 2020-05-04 2020-05-04 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법

Publications (1)

Publication Number Publication Date
KR20210135075A true KR20210135075A (ko) 2021-11-12

Family

ID=78293415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200053287A KR20210135075A (ko) 2020-05-04 2020-05-04 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법

Country Status (3)

Country Link
US (1) US11575502B2 (ko)
KR (1) KR20210135075A (ko)
CN (1) CN113609495A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102448625B1 (ko) * 2021-12-30 2022-09-28 주식회사 디사일로 동형 암호화된 데이터를 이용한 부정 거래 탐지 방법 및 시스템
CN116776359A (zh) * 2023-08-23 2023-09-19 北京电子科技学院 一种基于全同态加密的密文同态比较方法和装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102475273B1 (ko) * 2020-06-15 2022-12-08 주식회사 크립토랩 동형 암호 시스템에 대한 시뮬레이션 장치 및 방법
US20210119766A1 (en) * 2020-12-24 2021-04-22 Intel Corporation Technologies for memory and i/o efficient operations on homomorphically encrypted data
US20230041437A1 (en) * 2021-08-04 2023-02-09 Bank Of America Corporation System for end-to-end electronic data encryption using an intelligent homomorphic encryped privacy screen
CN113965313B (zh) * 2021-12-15 2022-04-05 北京百度网讯科技有限公司 基于同态加密的模型训练方法、装置、设备以及存储介质
CN114168991B (zh) * 2022-02-10 2022-05-20 北京鹰瞳科技发展股份有限公司 对加密数据进行处理的方法、电路及相关产品

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9083526B2 (en) * 2011-04-29 2015-07-14 International Business Machines Corporation Fully homomorphic encryption
US9087212B2 (en) * 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
KR101449239B1 (ko) 2013-01-24 2014-10-15 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
WO2014035146A2 (ko) 2012-08-28 2014-03-06 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
US9306738B2 (en) 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data
JP6413598B2 (ja) 2014-10-10 2018-10-31 富士通株式会社 暗号処理方法、暗号処理装置、及び暗号処理プログラム
US10075289B2 (en) 2015-11-05 2018-09-11 Microsoft Technology Licensing, Llc Homomorphic encryption with optimized parameter selection
US9846785B2 (en) 2015-11-25 2017-12-19 International Business Machines Corporation Efficient two party oblivious transfer using a leveled fully homomorphic encryption
KR101829267B1 (ko) 2016-04-27 2018-02-14 서울대학교산학협력단 암호문의 크기가 감소되는 동형 암호화 방법
KR101861089B1 (ko) 2016-07-28 2018-05-25 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
FR3060165B1 (fr) * 2016-12-09 2019-05-24 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode de classification securisee utilisant une operation de transchiffrement
US10541805B2 (en) * 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10778409B2 (en) 2017-12-15 2020-09-15 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102448625B1 (ko) * 2021-12-30 2022-09-28 주식회사 디사일로 동형 암호화된 데이터를 이용한 부정 거래 탐지 방법 및 시스템
WO2023128341A1 (ko) * 2021-12-30 2023-07-06 주식회사 디사일로 동형 암호화된 데이터를 이용한 부정 거래 탐지 방법 및 시스템
CN116776359A (zh) * 2023-08-23 2023-09-19 北京电子科技学院 一种基于全同态加密的密文同态比较方法和装置
CN116776359B (zh) * 2023-08-23 2023-11-03 北京电子科技学院 一种基于全同态加密的密文同态比较方法和装置

Also Published As

Publication number Publication date
US20210344479A1 (en) 2021-11-04
US11575502B2 (en) 2023-02-07
CN113609495A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
KR20210135075A (ko) 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법
So et al. CodedPrivateML: A fast and privacy-preserving framework for distributed machine learning
US9825758B2 (en) Secure computer evaluation of k-nearest neighbor models
US9787647B2 (en) Secure computer evaluation of decision trees
US11132923B2 (en) Encryption using spatial voting
CN111783130A (zh) 隐私保护的数据处理方法、装置及服务器
Miguel-Ramiro et al. Delocalized information in quantum networks
CN111404943B (zh) 数据的处理方法、装置、电子设备及计算机可读存储介质
Sabag et al. A single-letter upper bound on the feedback capacity of unifilar finite-state channels
CN113657471A (zh) 多分类梯度提升树的构建方法、装置及电子设备
CN114448598A (zh) 密文压缩方法、密文解压缩方法、装置、设备和存储介质
Kaur et al. Relative entropy of steering: on its definition and properties
Cheng et al. SecureAD: A secure video anomaly detection framework on convolutional neural network in edge computing environment
KR20220048225A (ko) 동형 연산 가속기 및 이를 포함하는 동형 연산 수행 장치
Sanon et al. Fully Homomorphic Encryption: Precision Loss in Wireless Mobile Communication
CN116049691A (zh) 模型转换方法、装置、电子设备和存储介质
CN115564447A (zh) 一种信用卡交易风险检测方法及装置
CN115834257A (zh) 一种云端电力数据安全防护方法及防护系统
CN115589281A (zh) 解密方法、相关装置及存储介质
CN114900325A (zh) 基于联邦学习的隐私集合求交方法、系统、设备及介质
CN113657685A (zh) 联邦模型的训练方法、装置、设备、存储介质及程序
CN115965093A (zh) 模型训练方法、装置、存储介质及电子设备
Guo et al. Privacy-Preserving Convolution Neural Network Inference with Edge-assistance
Wang et al. EPSLP: Efficient and privacy-preserving single-layer perceptron learning in cloud computing
Gençoğlu Mathematical cryptanalysis of “personalized information encryption using ECG signals with chaotic functions”

Legal Events

Date Code Title Description
A201 Request for examination