KR20230068942A - 근사 연산을 지원하는 동형 암호 시스템 및 그것의 동작 방법 - Google Patents
근사 연산을 지원하는 동형 암호 시스템 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR20230068942A KR20230068942A KR1020220008489A KR20220008489A KR20230068942A KR 20230068942 A KR20230068942 A KR 20230068942A KR 1020220008489 A KR1020220008489 A KR 1020220008489A KR 20220008489 A KR20220008489 A KR 20220008489A KR 20230068942 A KR20230068942 A KR 20230068942A
- Authority
- KR
- South Korea
- Prior art keywords
- homomorphic encryption
- homomorphic
- ciphertext
- data
- value
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title claims description 11
- 238000000034 method Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 43
- 230000015654 memory Effects 0.000 description 36
- 238000007726 management method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 229960005486 vaccine Drugs 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 3
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 210000005260 human cell Anatomy 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Analysis (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 동형 암호 시스템은, 원본 데이터를 동형 암호 알고리즘을 이용하여 제 1 암호문으로 암호화하는 동형 암호 장치, 및 상기 동형 암호 장치로부터 상기 제 1 암호문을 수신하고, 이진 트리 구조로 동형 곱셈 동작을 수행함으로써 상기 제 1 암호문과 제 2 암호문에 대한 초월 함수의 근사 연산을 수행하는 동형 암호 연산 장치를 포함할 수 있다.
Description
본 발명은 근사 연산을 지원하는 동형 암호 시스템 및 그것의 동작 방법에 관한 것이다.
일반적으로, 동형 암호(Homomorphic Encryption)는 암호화된 정보를 복호화하지 않고 암호문 상태에서 연산을 하더라도, 평문에 대해 연산한 후 암호화한 값과 동일한 결과를 얻을 수 있다. 따라서, 암호문을 복호화하지 않은 상태에서 통계처리 및 machine learning 등 다양한 연산을 수행 할 수 있어 빅데이터 기반 서비스를 제공하는 업체들이 주목하는 핵심 기술이다. 동형 암호 기술 중 현재 상용화에 가장 근접한 기술은 유한한 횟수의 연산만 할 수 있는 동형 암호(Leveled Homomorphic Encryption)에 재부팅(bootstrap) 기술을 적용하여 연산 횟수 제한을 극복한 완전동형 암호(Fully Homomorphic Encryption) 기술이다. 동형 암호 기술의 상용화에 가장 큰 문제가 되는 부분은 원본 데이터 대비 수십 배 증가하는 암호문의 크기이다.
본 발명의 목적은 근사 연산을 지원하는 동형 암호 연산을 가능하게 하는 동형 암호 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 동형 암호 시스템은, 원본 데이터를 동형 암호 알고리즘을 이용하여 제 1 암호문으로 암호화하는 동형 암호 장치; 및 상기 동형 암호 장치로부터 상기 제 1 암호문을 수신하고, 이진 트리 구조로 동형 곱셈 동작을 수행함으로써 상기 제 1 암호문과 제 2 암호문에 대한 초월 함수의 근사 연산을 수행하는 동형 암호 연산 장치를 포함할 수 있다.
본 발명의 실시 예에 따른 동형 암호 연산을 수행하는 클라우드 서버의 동작 방법은, 사용자 장치로부터 제 1 암호문과 함께 검색 요청을 수신하는 단계; 상기 검색 요청에 응답하여 상기 제 1 암호문과 상기 클라우드 서버의 제 2 암호문을 이용하여 동형 암호 연산을 수행하는 단계; 및 상기 사용자 장치로 상기 동형 암호 연산을 수행한 결과값을 전송하는 단계를 포함하고, 상기 동형 암호 연산은 이진 트리 구조의 동형 곱셈 동작을 수행함으로써 상기 제 1 암호문과 상기 제 2 암호문에 대한 논리 연산의 근사 동작을 수행하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 사용자 장치의 동작 방법은, 클라우드 서버에서 오리지널 데이터에 대한 검색이 필요할 때, 상기 오리지널 데이터를 동형 암호 알고리즘을 이용하여 암호화하는 단계; 상기 암호화된 데이터와 함께 검색 요청을 상기 클라우드 서버로 전송하는 단계; 상기 클라우드 서버로부터 검색 결과값을 수신하는 단계; 및 상기 검색 결과값을 상기 동형 암호 알고리즘을 이용하여 복호화하는 단계를 포함하고, 상기 검색 결과값은 상기 클라우드 서버에서 이진 트리 구조의 동형 곱셈 동작을 통하여 출력되는 것을 특징으로 한다.
본 발명의 실시 예에 따른 동형 암호 시스템 및 그것의 동작 방법은, 이진 트리 구조의 동형 곱셈을 이용한 근사 연산을 수행함으로써, 복잡도를 줄이면서 효과적으로 동형 암호 연산을 가능하게 할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다.
도 1은 본 발명의 실시 예에 따른 동형 암호 시스템(10)을 예시적으로 보여주는 도면이다.
도 2는 일반적으로 동형 곱셈과 근사 연산의 관계를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 동형 암호 연산 장치의 근사 동등 체크 함수를 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 사용자가 서버 내 DB에서 특정 데이터를 검색하는 실시 예를 예시적으로 보여주는 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 사용자가 서버 내 DB에서 특정 데이터를 검색하고자 하는 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 동형 암호 장치의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 동형 암호 연산 장치의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 7을 참조하면, 동형 암호 연산 장치의 동작은 다음과 같이 진행될 수 있다.
도 8은 본 발명의 실시 예에 따른 클라우드 시스템의 동작 방법을 예시적으로 보여주는 래더 다이어그램이다.
도 9는 본 발명의 실시 예에 따른 코로나 백신 관리 시스템을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 저장 장치(10)를 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 저장 장치가 적용된 전자 장치(1000)를 예시적으로 보여주는 도면이다.
도 1은 본 발명의 실시 예에 따른 동형 암호 시스템(10)을 예시적으로 보여주는 도면이다.
도 2는 일반적으로 동형 곱셈과 근사 연산의 관계를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 동형 암호 연산 장치의 근사 동등 체크 함수를 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 사용자가 서버 내 DB에서 특정 데이터를 검색하는 실시 예를 예시적으로 보여주는 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 사용자가 서버 내 DB에서 특정 데이터를 검색하고자 하는 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 동형 암호 장치의 동작 방법을 예시적으로 보여주는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 동형 암호 연산 장치의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 7을 참조하면, 동형 암호 연산 장치의 동작은 다음과 같이 진행될 수 있다.
도 8은 본 발명의 실시 예에 따른 클라우드 시스템의 동작 방법을 예시적으로 보여주는 래더 다이어그램이다.
도 9는 본 발명의 실시 예에 따른 코로나 백신 관리 시스템을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 저장 장치(10)를 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 저장 장치가 적용된 전자 장치(1000)를 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시 할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
4세대 암호화 기술인 동형 암호는 암호화된 정보를 복호화하지 않고 암호문 상태에서 연산을 하더라도, 평문에 대해 연산한 후 암호화한 값과 동일한 결과를 얻을 수 있다. 따라서, 암호문을 복호화하지 않은 상태에서 통계처리 및 머신 러닝(machine learning) 등 다양한 연산을 수행함으로써, 빅데이터 기반 서비스를 제공하는 업체들이 주목하는 핵심 요소 기술이다. 동형 암호 기술 중 현재 상용화에 가장 근접한 기술은 유한한 횟수의 연산만 할 수 있는 동형 암호(Leveled Homomorphic encryption)에 재부팅 기술을 적용하여 연산 횟수 제한을 극복한 완전동형 암호(Fully Homomorphic encryption) 기술이다.
동형 암호에서 암호문 상태에서 가능한 연산은 다항식에 대한 사칙 연산이다. 따라서, 통계처리 및 머신 러닝(machine learning) 등에서 필요한 논리함수, 부호함수, 지시함수, 삼각함수 등과 같이 다항식의 근으로 정의할 수 없는 함수인 초월함수를 최소한의 연산 복잡도를 가지면서 근사 오류를 최소화시킬 필요가 있다. 본 발명의 실시 예에 따른 동형 암호 시스템 및 그것의 동작 방법은 이진 트리 구조의 동형 곱셈을 통하여 동형 암호 연산에 적합한 초월함수의 근사 기법을 개시한다.
도 1은 본 발명의 실시 예에 따른 동형 암호 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 동형 암호 시스템(10)은 동형 암호 장치(11) 및 동형 암호 연산 장치(12)를 포함할 수 있다.
동형 암호 장치(11)는 동형 암호 알고리즘을 이용하여 평문을 암호문으로 변환하거나, 암호문을 평문으로 변환하도록 구현될 수 있다. 실시 예에 있어서, 동형 암호 장치(11)는 사용자 장치일 수 있다. 예를 들어, 사용자 장치는 다양한 전자 장치일 수 있다. 여기서 전자장치는, 저장 장치, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 혹은 가전 장치를 포함할 수 있다. 특히, 전자 장치는 무선 통신 기술 및 IoT(Internet of Things) 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
동형 암호 연산 장치(12)는 동형 암호 장치(11)로부터 전송된 암호문들에 대하여 연산을 수행하도록 구현될 수 있다. 실시 예에 있어서, 동형 암호 연산 장치(12)는 서버일 수 있다. 예를 들어, 서버는 클라우드 서비스를 제공하거나, 분산 컴퓨팅 혹은 모바일 엣지 컴퓨팅(Mobile Edge Computing)을 이용한 초저지연 서비스를 제공할 수 있다. 특히, 서버는 머신 러닝/신경망을 이용하는 지능형 서버일 수 있다. 동형 암호 연산 장치(12)는 근사 연산 회로(12-1)를 포함할 수 있다.
근사 연산 회로(12)는 동형 암호에서 검색 연산을 수행하기 위하여 근사 연산을 제공하도록 구현될 수 있다. 근사 연산 회로(12)는 이진 트리 구조로 동형 곱셈을 수행함으로써 암호화 된 상태에서 암호문간 논리 연산을 수행하도록 구현될 수 있다. 즉, 근산 연산 회로(12)는 연산 복잡도를 줄이기 위하여 원본 데이터를 바이너리 데이터로 인코딩하고, 이후에 depth가 낮은 동형연산을 여러번 수행하도록 구현될 수 있다. 그 결과로써, 근사 연산 회로(12)는 동형 곱셈 depth를 최소화할 수 있다.
일반적인 동형 암호 시스템은 논리함수, 부호함수, 지시함수, 삼각함수 등과 같이 다항식의 근으로 정의할 수 없는 함수인 초월함수를 구현하기 위하여 이러한 함수들의 불연속 부분에 대한 다항식 근사를(예를 들어, 테일러 다항식 근사, 체비쇼프 다항식 근사 등) 수행하고 있다. 하지만 이러한 다항식 근사 방식은 동형 암호에 적용할 때 과도한 연산 복잡도를 야기하고 있다. 일반적으로 초월 함수의 최적화 근사 기법들을 동형 암호에 적용할 경우 연산 복잡도가 매우 크게 되어 현실적인 구현이 불가능하다. 동형 암호에 특화된 초월 함수의 근사 구현 방안이 필요하다.
본 발명의 실시 예에 따른 동형 암호 시스템(10)은 이진 트리 구조로 동형 곱셈을 수행함으로써 보안 레벨(security level)을 유지하면서 동시에 동형 암호에서 사용하는 연산의 복잡도를 낮출 수 있다.
도 2는 일반적으로 동형 곱셈과 근사 연산의 관계를 예시적으로 보여주는 도면이다. 도 2를 참조하면, 특정 초월 함수의 근사 다항식의 출력 유효 숫자는 근사 다항식의 정확도에만 영향을 받는다.
암호화 시 암호문 데이터에 오류를 삽입하는 방식으로 보안성을 얻는 RLWE 기반 동형 암호화에서는 동형 연산을 수행 할 때마다 삽입한 오류가 증가한다. 이는 근사 다항식의 차수를 증가시켜 근사 다항식의 정확도를 증가시키는 것과는 반대되는 방향성을 갖는다. 예를 들어, 도 2에 도시된 동형 곱셈 depth L = 22를 사용하여 근사 다항식을 생성 한 경우, 근사 함수가 출력 할 수 있는 정확도는 7 비트이다. 하지만, depth 22 연산으로 인해 입력 데이터의 정확도는 5 비트가 되어 최종적으로는 높은 정확도의 근사 다항식을 사용함에 있어서 동형 암호에 내재적으로 포함된 오류 수준을 고려해야 한다.
따라서, 일반적인 비선형/논리 함수의 최적화 근사해를 사용하는 것이 아닌, 동형 암호 스킴(scheme) 별로 특화된 응용함수 구현방안이 필요하다. 구체적으로, 동형 암호에서의 연산과 일반적인 연산의 가장 큰 차이는 하나의 데이터에 얼마나 많은 곱셈 연산을 수행하였는지를 나타내는 수치인 곱셈 depth이다. 동형 암호에서 곱셈 depth는 전체 동형 암호 시스템의 연산 복잡도와 보존 가능한 유효 비트를 결정한다. 따라서, 이러한 동형 암호 곱셈의 복잡도를 최소화 하는 것이 동형 암호 상용화에 있어 중요하다.
본 발명의 실시 예에 따른 동형 암호 연산 장치는 이진 트리(binary tree) 구조의 곱셈을 최대한 사용하여 근사 다항식의 근사 오차를 합리적인 수준으로 줄이면서 요구하는 곱셈 depth 최소화시킬 수 있다. 또한, 본 발명의 실시 예에 따른 동형 암호 연산 장치는 동형 곱셈 depth를 최소화 하도록 논리 함수 우회 시킬 수 있다.
동형 암호 연산 장치는 이진 트리 구조를 이용한 동형 암호의 논리 함수를 구현할 수 있다. 여기서 원본 데이터: , , 암호화 데이터 생성: → 동형 암호화 → a, → 동형 암호화 → b, 원본 데이터 영역에서 동작하는 Equality check function 는 아래와 같다.
초월 함수를 다항식으로 근사함에 있어, 높은 차수를 가지는 고차 다항식들을 조합할수록 근사 정확도가 올라가게 된다. 이러한 다항식을 효율적으로 구성하는 알고리즘이 있다. 하지만 동형 암호에서는 이러한 연산량을 줄이는 다양한 기법을 적용할 수 없다. 다항식 덧셈/곱셈만 사용 가능한 수학적 제약이 있다. 동형 암호 연산에서 다항식 차수를 증가시키는 가장 효율적인 방법은 이진 트리 방식으로 곱셈을 수행하는 것이다. 주어진 자원(사용 가능한 곱셈 depth)를 모두 이진 트리 곱셈에 할당하여 근사 다항식을 구성하는 것이 동형 암호에서 연산량 대비 높은 정확도를 달성 할 수 있는 초월함수의 다항식 근사 방법이다.
본 발명의 실시 예에 따른 동형 암호 연산 장치는 근사 등가 점검 함수(Approximated equality check function, 와 같이 이진 트리 곱셈 만으로 높은 차수를 구현할 수 있다.
도 3은 본 발명의 실시 예에 따른 동형 암호 연산 장치의 근사 동등 체크 함수를 예시적으로 보여주는 도면이다.
도 3을 참조하면, 예를 들어, 근사로 인한 error가 (제 1 기준값) 이하의 차이를 가질 때 두 값은 같고, (제 2 기준값) 이상의 차이를 가질 때 두 값을 다르다고 판정하게 된다. 과 는 의 항에 의해 sharpness가 결정된다.
도 4는 본 발명의 실시 예에 따른 사용자가 서버 내 DB에서 특정 데이터를 검색하는 실시 예를 예시적으로 보여주는 도면이다. 사용자가 자신이 가진 원본 데이터 D를 동형 암호화 하여 제 1 암호문(a)를 생성하고 이를 서버에 전달할 수 있다. 서버는 자신이 보유하고 있는 제 2 암호문(b)와 사용자로부터 전달받은 암호문 a를 제안하는 기법을 적용한 동형 암호 연산 장치로 연산하여 결과를 사용자에게 반환할 수 있다. 사용자는 서버가 전달한 연산 결과를 복호화 하여 결과를 확인할 수 있다.
또한, 본 발명의 실시 예에 따른 동형 암호 연산 장치는 동형 곱셈 depth를 최소화 하는 동형 암호의 논리 함수를 구현할 수 있다.
원본 데이터(, )에 대하여 암호화 데이터가 생성될 수 있다. 예를 들어, 를 바이너리 데이터로 인코딩 한 후, 인코딩된 값 을 동형 암호화하여 이 출력될 수 있다. 또한, 를 바이너리 데이터로 인코딩 한 후, 인코딩된 값 을 동형 암호화하여 이 출력될 수 있다. 여기서 이다.
원본 데이터 영역에서 동작하는 등가 점검 함수(Equality Check Function)은 다음과 같다.
근사 등가 점검 함수()의 동형 곱셈 depth는 이다. 여기서 B는 동형 암호 곱셈의 반복 횟수이다. 동형 암호에서 연산 복잡도는 depth에 기하 급수적으로 증가하므로, 이를 줄이기 위해 원본 데이터를 바이너리 데이터로 인코딩 한 후, depth가 낮은 동형연산을 여러번 적용하여 동형 곱셈 depth를 낮출 수 있다.
구체적으로, B = 1로 할 경우 실제 근사다항식의 정확도는 1 비트가 되므로, 1 비트 단위로 데이터를 분할하여 encode 함으로써, 낮은 정확도를 가지는 근사함수를 사용하더라도 동형 암호문간 논리 연산을 수행 할 수 있다.
Original Data | Encode | Encryption |
0000 | [ENC(0), ENC(0), ENC(0), ENC(0)] | |
0001 | [ENC(0), ENC(0), ENC(0), ENC(1)] |
도 5는 본 발명의 다른 실시 예에 따른 사용자가 서버 내 DB에서 특정 데이터를 검색하고자 하는 실시 예를 보여주는 도면이다. 사용자가 자신이 가진 원본 데이터(D)를 동형 암호화 하여 제 1 암호문(a)를 생성하고, 제 1 암호문(a)를 서버에 전달한다. 서버는 자신이 보유하고 있는 제 2 암호문(b)와 사용자로부터 전달받은 제 1 암호문(a)를 제안하는 기법을 적용한 동형 암호 연산 장치로 연산하여 결과를 사용자에게 반환한다. 사용자는 서버가 전달한 연산 결과를 복호화 하여 결과를 확인한다.
도 6은 본 발명의 실시 예에 따른 동형 암호 장치의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 6을 참조하면, 동형 암호 장치는 다음과 같이 동작할 수 있다. 동형 암호 장치는 서버에서 특정 데이터의 검색이 필요할 경우, 특정 데이터를 동형 암호 알고리즘에 의거하여 암호화할 수 있다(S110). 이후에 동형 암호 장치는 암호화된 데이터를 서버에 전송하면서 검색을 요청할 수 있다(S120). 이후에 검색 결과에 대하여 동형 암호 장치는 서버로부터 검색 결과 값을 수신할 수 있다(S130). 이후에 동형 암호 장치는 검색 결과를 동형 암호 알고리즘에 의거하여 복호화 할 수 있다(S140). 복호화된 결과값에 따라 서버에 대응하는 데이터가 있는지가 판별될 수 있다.
도 7은 본 발명의 실시 예에 따른 동형 암호 연산 장치의 동작 방법을 예시적으로 보여주는 흐름도이다. 도 7을 참조하면, 동형 암호 연산 장치의 동작은 다음과 같이 진행될 수 있다. 동형 암호 연산 장치는 암호화된 데이터와 함께 검색 요청을 수신할 수 있다(S210). 동형 암호 연산 장치는 이러한 검색 요청에 응답하여 근사 연산 회로에 의거하여 동형 곱셈을 수행함으로써 데이터의 존재 여부를 검색할 수 있다(S220). 이후에 동형 암호 연산 장치는 검색 결과에 대응하는 연산 결과 값을 전송할 수 있다(S230).
도 8은 본 발명의 실시 예에 따른 클라우드 시스템의 동작 방법을 예시적으로 보여주는 래더 다이어그램이다. 도 8를 참조하면, 클라우드 시스템의 동작은 다음과 같이 진행될 수 있다. IoT 장치(810)는 오리지널 데이터가 클라우드 서버(820)의 데이터베이스에 존재하는 지 검색할 필요가 있는 지 판별할 수 있다(S10). 만일, 검색이 필요하다면, IoT 장치(810)는 동형 암호 알고리즘에 의거하여 오리지널 데이터를 암호화할 수 있다(S20). IoT 장치(810)는 암호화된 데이터(a)와 함께 검색 요청을 클라우드 시스템(820)에 전송할 수 있다(S30).
클라우드 서버(820)는 검색 요청에 응답하여 오리지널 데이터를 검색하기 위하여 수신된 암호화된 데이터, 즉, 제 1 암호문(a)와 서버에 저장된 암호화된 데이터, 즉 제 2 암호문(b)에 대하여 사전에 결정된 근사 연산 동작을 수행할 수 있다(S40). 클라우드 서버(820)는 근사 연산 동작의 결과값을 IoT 장치(810)로 전송할 수 있다(S50). IoT 장치(810)는 근사 연산 동작의 결과값을 수신하고, 이를 동형 암호 알고리즘을 의거하여 복호화할 수 있다(S60). IoT 장치(810)는 복호화된 값을 이용하여 오리지널 데이터가 클라우드 서버(820)의 데이터베이스에 존재하는 지를 판별할 수 있다(S70).
한편, 본 발명의 실시 예에 따른 근사 연산 방식은 코로나 백신 관리를 위한 시스템에 적용 가능하다.
도 9는 본 발명의 실시 예에 따른 코로나 백신 관리 시스템을 예시적으로 보여주는 도면이다. 도 9를 참조하면, 서로 다른 개인 정보를 가진 두 기관의 암호화된 데이터를 기반으로 DB 분석이 수행될 수 있다. 본 발명의 검색 기술은 효율적인 검색 연산 기능을 제공할 수 있다.
데이터 분석가에 의해 공개키 및 암호화된 쿼리가 서버에 전송될 수 있다(S1). 여기서 암호화된 쿼리는 개인키에 의해 암호화된 데이터이다. 백신 센터 혹은 병원은 암호화된 데이터를 서버에 전송할 수 있다(S2). 암호화된 데이터는 개인에 따른 백신 종류, 병력 및 나이 등을 포함할 수 있다. 서버는 암호화된 데이터베이스를 포함한다. 암호화된 데이터베이스는 개인에 따른 백신 종류, 병력, 나이, 증상을 포함하는 테이블을 포함할 수 있다. 서버는 도 1 내지 도 8에서 설명된 근사 연산 기법을 이용하여 암호화된 데이터베이스 검색을 수행할 수 있다(S3). 검색 결과값은 데이터 분석가에 전송 될 수 있다. 데이터 분석가는 인간 세포(293)에 대응하는 개인키를 이용하여 검색 결과값을 복호화할 수 있다.
한편, 본 발명의 실시 예에 따른 사용자 장치는 스마트 저장 장치일 수 있다.
도 10은 본 발명의 실시 예에 따른 저장 장치(10)를 예시적으로 보여주는 도면이다. 도 10을 참조하면, 저장 장치(10)는 적어도 하나의 비휘발성 메모리 장치(NVM(s), 100) 및 제어기(CNTL, 200)를 포함할 수 있다.
적어도 하나의 비휘발성 메모리 장치(100)는 데이터를 저장하도록 구현될 수 있다. 비휘발성 메모리 장치(100)는 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리, 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory; RRAM), 상변화 메모리(phase-change memory; PRAM), 자기저항 메모리(magnetoresistive random access memory; MRAM), 강유전체 메모리(ferroelectric random access memory; FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory; STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치(100)는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치(100)가 수직형 낸드 플래시 메모리 장치(VNAND)라고 하겠다.
또한, 비휘발성 메모리 장치(100)는 복수의 메모리 블록들(BLK1 ~ BLKz, z는 2 이상의 정수) 및 제어 로직(150)을 포함하도록 구현될 수 있다. 복수의 메모리 블록들(BLK1 ~ BLKz)의 각각은, 복수의 페이지들(Page 1 ~ Page m, m은 2 이상의 정수)를 포함할 수 있다. 복수의 페이지들(Page 1 ~ Page m)의 각각은, 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들의 각각은 적어도 하나의 비트를 저장할 수 있다.
제어 로직(150)은 제어기(CNTL; 200)로부터 커맨드 및 어드레스를 수신하고, 수신된 커맨드에 대응하는 동작(프로그램 동작, 리드 동작, 이레이즈 동작 등)을 어드레스에 대응하는 메모리 셀들에 수행하도록 구현될 수 있다.
제어기(CNTL; 200)는 제어 신호들(예를 들어, CLE, ALE, CE(s), WE, RE, 등)을 전송하는 복수의 제어 핀들을 통하여 적어도 하나의 비휘발성 메모리 장치(100)에 연결될 수 있다. 또한, 제어 신호들(CLE, ALE, CE(s), WE, RE 등)을 이용하여 비휘발성 메모리 장치(100)를 제어하도록 구현될 수 있다. 예를 들어, 비휘발성 메모리 장치(100)는 CLE(command latch enable) 신호 및 ALE(address latch enable) 신호에 따라 WE(write enable)/RE(read enable) 신호의 엣지에서 커맨드 혹은 어드레스를 래치 함으로써, 프로그램 동작/리드 동작/이레이즈 동작을 수행할 수 있다. 예를 들어, 리드 동작시 칩 인에이블 신호(CE)는 활성화 되고, CLE는 커맨드의 전송 구간에 활성화 되고, ALE는 어드레스의 전송 구간에 활성화 되고, RE는 데이터 신호 라인(DQ)을 통해 데이터가 전송되는 구간에서 토글링 될 수 있다. 데이터 스트로브 신호(DQS)는 데이터 입출력 속도에 대응하는 주파수로 토글링 할 수 있다. 리드 데이터는 데이터 스트로브 신호(DQS)에 동기화되어 순차적으로 전송될 수 있다.
또한, 제어기(200)는 적어도 하나의 프로세서(CPU(Central Processing Unit)(s); 210), 버퍼 메모리(220) 및 보안 모듈(260)을 포함할 수 있다.
프로세서(210)는 저장 장치(10)의 전반적인 동작을 제어하도록 구현될 수 있다. 프로세서(210)는 캐시/버퍼 관리, 펌웨어 관리, 가비지 컬렉션 관리, 웨어 레벨링 관리, 데이터 중복 제거 관리, 리드 리프레쉬/리클레임 관리, 배드 블록 관리, 멀티-스트림 관리, 호스트 데이터와 비휘발성 메모리의 맵핑 관리, QoS(Quality of Service) 관리, 시스템 리소스 할당 관리, 비휘발성 메모리 큐(queue) 관리, 리드 레벨 관리, 이레이즈/프로그램 관리, 핫/콜드 데이터 관리, 전력 손실 보호 관리, 동적 열관리, 초기화 관리, RAID(Redundant Array of Inexpensive Disk) 관리 등과 같은 다양한 관리 동작들을 수행할 수 있다.
버퍼 메모리(220)는 휘발성 메모리(예를 들어, SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous RAM) 등) 혹은 비휘발성 메모리 (플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등)로 구현될 수 있다.
보안 모듈(260)은 저장 장치(10)의 보안 기능을 수행하도록 구현될 수 있다. 예를 들어, 보안 모듈(260)은 SED(Self Encryption Disk) 기능 혹은 TCG(Trusted Computing Group) 보안 기능을 수행할 수 있다. SED 기능은 암호 알고리즘을 이용하여 비휘발성 메모리 장치(100)에 암호화된 데이터를 저장하거나, 비휘발성 메모리 장치(100)로부터 암호화된 데이터를 복호화 할 수 있다. 이러한 암/복호화 동작은 내부에서 생성된 암호화키를 사용하여 수행될 수 있다. 실시 예에 있어서, 암호 알고리즘은 AES(Advanced Encryption Standard) 암호 알고리즘일 수 있다. 한편, 암호 알고리즘에 여기에 제한되지 않는다고 이해되어야 할 것이다. TCG 보안 기능은 저장 장치(10)의 사용자 데이터에 대한 접근 제어를 가능하게 하는 메커니즘을 제공할 수 있다. 예를 들어, TCG 보안 기능은 외부 장치와 저장 장치(10) 사이의 인증 절차를 수행할 수 있다. 실시 예에 있어서, SED 기능 혹은 TCG 보안 기능은 옵션적으로 선택 가능하다.
또한, 보안 모듈(260)은 레벨드 동형 암호(leveled homomorphic encryption) 알고리즘에 의거하여 암호문(EDATA)을 생성할 수 있다. 보안 모듈(260)은 호스트 장치로부터 수신된 연산 결과를 수신하여 레벨드 동형 암호 알고리즘에 의거하여 복호화할 수 있다.
한편, 본 발명은 저장 장치를 갖는 전자 장치에 적용 가능하다.
도 11은 본 발명의 실시 예에 따른 저장 장치가 적용된 전자 장치(1000)를 예시적으로 보여주는 도면이다. 도 11에 도시된 전자 장치(1000)는 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스 케어 기기 혹은 IoT(Internet of Things) 기기와 같은 모바일 시스템일 수 있다. 하지만 도 1의 전자 장치(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑 컴퓨터, 서버, 미디어 재생기 혹은 내비게이션과 같은 차량용 장비(automotive device) 등이 될 수 있다.
도 11을 참조하면, 전자 장치(1000)는 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 저장 장치(1300a, 1300b)를 포함할 수 있다. 또한, 전자 장치(1000)는 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 전자 장치(1000)의 전반적인 동작, 보다 구체적으로는 전자 장치(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 혹은 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있다. 또한, 메인 프로세서(1100)는 메모리(1200a, 1200b) 혹은 저장 장치(1300a, 1300b)를 제어하기 위한 제어기(1120)를 더 포함할 수 있다. 실시 예에 있어서, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(1130)를 더 포함할 수 있다. 이와 같은 가속기(1130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 혹은 DPU(Data Processing Unit) 등을 포함할 수 있다. 한편, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 전자 장치(1000)의 주기억 장치로 사용될 수 있다. 메모리(1200a, 1200b)는 SRAM 혹은 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 혹은 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
저장 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로 구현될 수 있다. 저장 장치(1300a, 1300b)는 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 저장 장치(1300a, 1300b)는 메모리 제어기(1310a, 1310b)와, 메모리 제어기(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 혹은 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
또한, 저장 장치(1300a, 1300b)는 도 1 내지 도 10에서 설명된 바와 같이, 동형 암호 알고리즘을 이용하여 암/복호 동작을 수행하도록 구현될 수 있다.
저장 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 전자 장치(1000)에 포함될 수도 있다. 또한, 저장 장치(1300a, 1300b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 저장 장치(1300a, 1300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 연결 인터페이스(1480)와 같은 인터페이스를 통해 전자 장치(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 저장 장치(1300a, 1300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.
촬영 장치(1410)는 정지 영상 혹은 동영상을 촬영할 수 있다. 촬영 장치(1410)는 카메라(camera), 캠코더(camcorder) 혹은 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 전자 장치(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 혹은 마이크(microphone) 등일 수 있다.
센서(1430)는 전자 장치(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 혹은 자이로스코프(gyroscope) 센서 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 전자 장치(1000) 외부의 다른 장치들과의 사이에서 유무선 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 혹은 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 전자 장치(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 전자 장치(1000)에 내장된 배터리 혹은 외부 전원으로부터 공급되는 전력을 적절히 변환하여 전자 장치(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 전자 장치(1000)과, 전자 장치(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
한편, 도 11에서 동형 암호 데이터 전송을 위한 일련의 동작은 메모리 제어기(1310a, 1310b)에 수행되고 있다. 하지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다. 본 발명의 전자 장치는 동형 암호 데이터 전송을 위한 일련의 동작을 독립적으로 수행하는 보안 모듈을 구비할 수 있다.
본 발명의 실시 예에 따른 동형 암호 연산 장치는, 이진 트리 구조로 동형 곱셈을 수행하여 암호화 된 상태에서 암호문간 논리 연산을 수행 하기 위한 암호문 논리 연산 장치를 포함할 수 있다. 본 발명의 실시 예에 따른 동형 암호 연산 장치의 암호문 연산 방법은, 이진 트리 구조로 동형 곱셈을 수행하여 암호화 된 상태에서 암호문간 논리연산을 수행할 수 있다.
종래의 응용 시스템에 동형암호를 적용하기 위해, 동형 암호만이 가지는 제약 조건을 고려해야 전체 시스템의 속도와 연산량을 최적화하고 있다. 일반적으로 동형암호 기반 응용 기술의 복잡도는 동형 곱셈의 효율적인 사용이 필요하다. 본 발명은 동형 암호에서 전체 시스템의 성능에 가장 큰 영향을 주는 암호문 depth를 줄임으로써 검색 연산 기능을 제공 할 때 Security level이 더 높고 연산 복잡도를 낮출 수 있다.
한편, 상술된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용 할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함 할 것이다.
10: 동형 암호 시스템
11: 동형 암호 장치
12: 동형 암호 연산 장치
12-1: 근사 연산 회로
100: 비휘발성 메모리 장치
200: 제어기
210: 중앙 처리 장치
220: 버퍼 메모리
260: 보안 모듈
11: 동형 암호 장치
12: 동형 암호 연산 장치
12-1: 근사 연산 회로
100: 비휘발성 메모리 장치
200: 제어기
210: 중앙 처리 장치
220: 버퍼 메모리
260: 보안 모듈
Claims (10)
- 원본 데이터를 동형 암호 알고리즘을 이용하여 제 1 암호문으로 암호화하는 동형 암호 장치; 및
상기 동형 암호 장치로부터 상기 제 1 암호문을 수신하고, 이진 트리 구조로 동형 곱셈 동작을 수행함으로써 상기 제 1 암호문과 제 2 암호문에 대한 초월 함수의 근사 연산을 수행하는 동형 암호 연산 장치를 포함하는 동형 암호 시스템. - 제 1 항에 있어서,
상기 동형 암호 연산 장치는,
근사 등가 점검 함수(approximated equality check function)를 이용하여 상기 초월 함수의 근사 연산을 수행하는 근사 연산 회로를 포함하는 동형 암호 시스템. - 제 2 항에 있어서,
상기 근사 등가 점검 함수는,
1에서 상기 제 1 암호문에서 상기 제 2 암호문의 차이값을 더한 값과 1에서 상기 차이값을 뺀 값을 동형 곱셈 동작을 수행하고, 상기 동형 곱셈 동작을 여러번 반복하는 것을 포함하는 동형 암호 시스템. - 제 3 항에 있어서,
상기 동형 암호 장치는 상기 동형 암호 연산 장치로부터 상기 근사 등가 점검 함수의 결과값을 수신하고, 상기 결과값을 상기 동형 암호 알고리즘을 이용하여 복호화 하는 것을 특징으로 하는 동형 암호 시스템. - 제 4 항에 있어서,
상기 동형 암호 장치는, 상기 복호화된 결과값이 제 1 기준값 이하일 때 상기 제 1 암호문에 대응하는 제 1 평문과 상기 제 2 암호문에 대응하는 제 2 평문은 서로 같다고 판별되고, 상기 복호화된 결과값이 제 2 기준값 이상일 때 상기 제 1 평문과 상기 제 2 평문은 다르다고 판별되고,
상기 제 2 기준값은 상기 제 1 기준값보다 큰 것을 특징으로 하는 동형 암호 시스템. - 제 1 항에 있어서,
상기 제 1 암호문은 대응하는 제 1 평문을 제 1 바이너리 데이터로 인코딩하고, 상기 인코딩된 제 1 바이너리 데이터를 상기 동형 암호 알고리즘을 이용하여 암호화시킨 제 1 값들이고,
상기 제 2 암호문은 대응하는 제 2 평문을 제 2 바이너리 데이터로 인코딩하고, 상기 인코딩된 제 2 바이너리 데이터를 상기 동형 암호 알고리즘을 이용하여 암호화시킨 제 2 값들인 것을 특징으로 하는 동형 암호 시스템. - 제 6 항에 있어서,
상기 동형 암호 연산 장치는,
상기 제 1 값과 상기 제 2 값들에 대하여 상기 이진 트리 구조의 동형 곱셈 동작을 수행하는 것을 특징으로 하는 동형 암호 시스템. - 제 7 항에 있어서,
상기 동형 암호 장치는 상기 동형 암호 연산 장치로부터 상기 동형 곱셈 동작의 결과값을 수신하고, 상기 수신된 결과값을 상기 동형 암호 알고리즘을 이용하여 복호화하고, 상기 복호화된 결과값을 이용하여 상기 제 1 평문과 상기 제 2 평문이 같은 지 여부를 판별하는 것을 특징으로 하는 동형 암호 시스템. - 동형 암호 연산을 수행하는 클라우드 서버의 동작 방법에 있어서,
사용자 장치로부터 제 1 암호문과 함께 검색 요청을 수신하는 단계;
상기 검색 요청에 응답하여 상기 제 1 암호문과 상기 클라우드 서버의 제 2 암호문을 이용하여 동형 암호 연산을 수행하는 단계; 및
상기 사용자 장치로 상기 동형 암호 연산을 수행한 결과값을 전송하는 단계를 포함하고,
상기 동형 암호 연산은 이진 트리 구조의 동형 곱셈 동작을 수행함으로써 상기 제 1 암호문과 상기 제 2 암호문에 대한 논리 연산의 근사 동작을 수행하는 것을 특징으로 하는 방법. - 사용자 장치의 동작 방법에 있어서,
클라우드 서버에서 오리지널 데이터에 대한 검색이 필요할 때, 상기 오리지널 데이터를 동형 암호 알고리즘을 이용하여 암호화하는 단계;
상기 암호화된 데이터와 함께 검색 요청을 상기 클라우드 서버로 전송하는 단계;
상기 클라우드 서버로부터 검색 결과값을 수신하는 단계; 및
상기 검색 결과값을 상기 동형 암호 알고리즘을 이용하여 복호화하는 단계를 포함하고,
상기 검색 결과값은 상기 클라우드 서버에서 이진 트리 구조의 동형 곱셈 동작을 통하여 출력되는 것을 특징으로 하는 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/739,512 US20230146149A1 (en) | 2021-11-11 | 2022-05-09 | Homomorphic encryption system for supporting approximate arithmetic operation and method of operating the same |
CN202211319836.9A CN116112146A (zh) | 2021-11-11 | 2022-10-26 | 用于支持逼近算术运算的同态加密系统及操作该同态加密系统的方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210154763 | 2021-11-11 | ||
KR1020210154763 | 2021-11-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230068942A true KR20230068942A (ko) | 2023-05-18 |
Family
ID=86545669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220008489A KR20230068942A (ko) | 2021-11-11 | 2022-01-20 | 근사 연산을 지원하는 동형 암호 시스템 및 그것의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230068942A (ko) |
-
2022
- 2022-01-20 KR KR1020220008489A patent/KR20230068942A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9760502B2 (en) | Encrypted transport solid-state disk controller | |
TWI737088B (zh) | 主機型快閃記憶體維護技術 | |
CN110795497A (zh) | 分布式存储系统中的协同压缩 | |
US20230368019A1 (en) | Deep learning system for performing private inference and operating method thereof | |
US11669395B2 (en) | Memory system including field programmable gate array (FPGA) and method of operating same | |
CN110661612B (zh) | 断电序列期间不相关熵的收集 | |
CN104364760A (zh) | 采用多个存储器件的并行计算 | |
US11036652B2 (en) | Secured access control in a storage system | |
CN116633520A (zh) | 同态加密操作加速器以及同态加密操作加速器的操作方法 | |
US20230146149A1 (en) | Homomorphic encryption system for supporting approximate arithmetic operation and method of operating the same | |
CN114647374A (zh) | 执行处理代码的存储装置和存储装置的操作方法 | |
US20240037027A1 (en) | Method and device for storing data | |
US20230141837A1 (en) | Device for supporting homomorphic encryption operation and operating method thereof | |
KR20230068942A (ko) | 근사 연산을 지원하는 동형 암호 시스템 및 그것의 동작 방법 | |
CN113721838A (zh) | 用于存储设备的写、读数据方法、存储控制器以及dma引擎 | |
KR102430495B1 (ko) | 저장 장치, 호스트 장치 및 그것의 데이터 전송 방법 | |
US20230135891A1 (en) | Storage device including storage controller and operating method | |
KR20230068945A (ko) | 동형 암호 연산을 지원하는 장치 및 그것의 동작 방법 | |
US20230269067A1 (en) | Homomorphic encryption operation accelerator, and operating method of homomorphic encryption operation accelerator | |
KR20230124453A (ko) | 동형암호 연산 가속기 및 그것의 동작 방법 | |
KR20230159204A (ko) | 프라이빗 추론을 수행하는 딥러닝 시스템 및 그것의 동작 방법 | |
US12032492B2 (en) | Method of operating storage device and method of operating storage system using the same | |
US20230359369A1 (en) | Storage compute services for encrypted data | |
US20230035988A1 (en) | Storage device, storage system operating method, and computing system | |
KR20230067436A (ko) | 트러스티드 컴퓨팅 장치 및 이의 동작 방법 |