KR20210129573A - 암호화 장치 및 방법, 암호문 변환 장치 및 방법 - Google Patents
암호화 장치 및 방법, 암호문 변환 장치 및 방법 Download PDFInfo
- Publication number
- KR20210129573A KR20210129573A KR1020200137067A KR20200137067A KR20210129573A KR 20210129573 A KR20210129573 A KR 20210129573A KR 1020200137067 A KR1020200137067 A KR 1020200137067A KR 20200137067 A KR20200137067 A KR 20200137067A KR 20210129573 A KR20210129573 A KR 20210129573A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- cipher text
- encryption algorithm
- key stream
- encoding
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000013598 vector Substances 0.000 claims abstract description 88
- 238000006243 chemical reaction Methods 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 claims description 79
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical 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
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
일 실시예에 따른 암호화 방법은, 정수 기반의 제1 동형 암호 알고리즘을 이용하여, 정수 벡터인 비밀키에 대한 암호문을 생성하는 단계; 키 스트림 생성기를 이용하여 논스(nonce) 및 상기 비밀키로부터 상기 정수 벡터인 키 스트림(key stream)을 생성하는 단계; 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩하는 단계; 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여, 실수 벡터인 메시지를 인코딩하는 단계; 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과를 이용하여 상기 메시지에 대한 암호문을 생성하는 단계; 및 상기 논스, 상기 비밀키에 대한 암호문 및 상기 메시지에 대한 암호문을 암호문 변환 장치로 전송하는 단계를 포함한다.
Description
개시되는 실시예들은 동형 암호(homomorphic encryption) 기술과 관련된다.
동형 암호는 복호화 없이도 암호화된 데이터에 대한 분석을 가능하게 해주는 암호 시스템이다. 현재 동형암호를 사용할 때의 가장 큰 문제점은 암호화된 데이터의 크기가 매우 커서 네트워크 전송 비용과 서버 저장 비용이 많이 든다는 점이다.
반면, 대칭키 암호는 메시지와 암호문의 크기가 같기 때문에 안전하면서도 효율적인 데이터 전송/저장이 가능하지만, 복호화 없이는 암호화된 데이터를 분석할 수 없다는 단점을 가지고 있다.
한편, 대칭키 암호에 대한 암호문을 동형 암호에 대한 암호문으로 변환하는 연구가 존재했으나, 이는 정수 연산을 지원하는 동형 암호에 국한된 연구여서 실수 연산을 지원하는 동형 암호에 적용이 불가능했다. 그러나, 실제 데이터 분석 시 많은 경우 그 입력 값이 실 수값이며, 정수형을 입력 값으로 하더라도 분석 과정 중 연산처리에 의해 대부분의 값들은 실수 값을 가지게 된다. 즉, 실제 암호화된 데이터에 대한 머신 러닝(machine learning), 딥 러닝(deep learning) 등을 수행하기 위해서는 실수 연산이 필수적이다. 그러나 실수로 된 데이터에 대한 암호화된 분석이 필요한 경우 대칭키 암호로 암호화된 암호문을 실수 연산을 지원하는 동형 암호에 대한 암호문으로 변환하는 효율적인 방법이 존재하지 않았다.
비특허문헌 1: Cheon, Jung Hee, et al. "A full RNS variant of approximate homomorphic encryption." International Conference on Selected Areas in Cryptography. Springer, Cham, 2018.
비특허문헌 2: Fan, Junfeng, and Frederik Vercauteren. "Somewhat Practical Fully Homomorphic Encryption." IACR Cryptology ePrint Archive 2012 (2012): 144.
개시되는 실시예들은 암호화 장치 및 방법과 암호문 변환 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 암호화 방법은, 정수 기반의 제1 동형 암호 알고리즘을 이용하여, 정수 벡터인 비밀키에 대한 암호문을 생성하는 단계; 키 스트림 생성기를 이용하여 논스(nonce) 및 상기 비밀키로부터 상기 정수 벡터인 키 스트림(key stream)을 생성하는 단계; 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩하는 단계; 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여, 실수 벡터인 메시지를 인코딩하는 단계; 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과를 이용하여 상기 메시지에 대한 암호문을 생성하는 단계; 및 상기 논스, 상기 비밀키에 대한 암호문 및 상기 메시지에 대한 암호문을 암호문 변환 장치로 전송하는 단계를 포함한다.
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘일 수 있다.
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고, 상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소일 수 있다.
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함할 수 있다.
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고, 상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소일 수 있다.
상기 암호문을 생성하는 단계는, 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과에 대해 상기 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 상기 메시지에 대한 암호문을 생성할 수 있다.
일 실시예에 따른 암호문 변환 장법은, 암호화 장치로부터, 논스(nonce), 정수 벡터인 비밀키에 대한 암호문 및 실수 벡터인 메시지에 대한 암호문을 수신하는 단계; 상기 논스 및 상기 비밀키에 대한 암호문에 기초하여, 상기 암호화 장치가 상기 메시지에 대한 암호문의 생성을 위해 이용한 키 스트림(key stream)에 대한 암호문을 생성하는 단계; 및 상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문을 이용하여 상기 메시지에 대한 암호문을 변환하는 단계를 포함하고, 상기 비밀키에 대한 암호문은, 정수 기반의 제1 동형 암호 알고리즘을 이용하여 암호화된 암호문이고, 상기 메시지에 대한 암호문은, 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩한 결과 및 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 메시지를 인코딩한 결과를 이용하여 생성된 암호문이며, 상기 키 스트림은, 키 스트림 생성기를 이용하여 상기 논스 및 상기 비밀키로부터 생성된 정수 벡터이고, 상기 키 스트림에 대한 암호문을 생성하는 단계는, 상기 키 스트림 생성기에 대한 상기 제1 동형 암호 알고리즘 기반의 동형 연산을 이용하여 상기 키 스트림에 대한 암호문을 생성하고, 상기 변환하는 단계는, 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환한다.
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘일 수 있다.
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고, 상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소일 수 있다.
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함할 수 있다.
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고, 상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소일 수 있다.
상기 메시지에 대한 암호문은, 상기 키 스트림을 인코딩한 결과 및 상기 메시지를 인코딩한 결과에 대해 상기 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 생성된 암호문이고, 상기 변환하는 단계는, 상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문에 대해 상기 제2 동형 암호 알고리즘에 설정된 정수 q를 법으로 하는 모듈로 뺄셈을 수행하여 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환할 수 있다.
일 실시예에 따른 암호화 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 정수 기반의 제1 동형 암호 알고리즘을 이용하여, 정수 벡터인 비밀키에 대한 암호문을 생성하는 단계; 키 스트림 생성기를 이용하여 논스(nonce) 및 상기 비밀키로부터 상기 정수 벡터인 키 스트림(key stream)을 생성하는 단계; 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩하는 단계; 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여, 실수 벡터인 메시지를 인코딩하는 단계; 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과를 이용하여 상기 메시지에 대한 암호문을 생성하는 단계; 및 상기 논스, 상기 비밀키에 대한 암호문 및 상기 메시지에 대한 암호문을 암호문 변환 장치로 전송하는 단계를 수행한다.
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘일 수 있다.
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고, 상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소일 수 있다.
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함할 수 있다.
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고, 상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소일 수 있다.
상기 암호문을 생성하는 단계는, 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과에 대해 상기 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 상기 메시지에 대한 암호문을 생성할 수 있다.
일 실시예에 따른 암호문 변환 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 암호화 장치로부터, 논스(nonce), 정수 벡터인 비밀키에 대한 암호문 및 실수 벡터인 메시지에 대한 암호문을 수신하는 단계; 상기 논스 및 상기 비밀키에 대한 암호문에 기초하여, 상기 암호화 장치가 상기 메시지에 대한 암호문의 생성을 위해 이용한 키 스트림(key stream)에 대한 암호문을 생성하는 단계; 및 상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문을 이용하여 상기 메시지에 대한 암호문을 변환하는 단계를 수행하고, 상기 비밀키에 대한 암호문은, 정수 기반의 제1 동형 암호 알고리즘을 이용하여 암호화된 암호문이고, 상기 메시지에 대한 암호문은, 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩한 결과 및 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 메시지를 인코딩한 결과를 이용하여 생성된 암호문이며, 상기 키 스트림은, 키 스트림 생성기를 이용하여 상기 논스 및 상기 비밀키로부터 생성된 정수 벡터이고, 상기 키 스트림에 대한 암호문을 생성하는 단계는, 상기 키 스트림 생성기에 대한 상기 제1 동형 암호 알고리즘 기반의 동형 연산을 이용하여 상기 키 스트림에 대한 암호문을 생성하고, 상기 변환하는 단계는, 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환한다.
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘일 수 있다.
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고, 상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소일 수 있다.
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함할 수 있다.
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고, 상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소일 수 있다.
상기 메시지에 대한 암호문은, 상기 키 스트림을 인코딩한 결과 및 상기 메시지를 인코딩한 결과에 대해 상기 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 생성된 암호문이고, 상기 변환하는 단계는, 상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문에 대해 상기 제2 동형 암호 알고리즘에 설정된 정수 q를 법으로 하는 모듈로 뺄셈을 수행하여 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환할 수 있다.
개시되는 실시예들에 따르면, 대칭키 암호를 사용해서 실수 데이터를 암호화하고, 데이터에 대한 분석이 필요할 시 이를 실수 연산을 지원하는 동형 암호로 암호화된 암호문으로 변환할 수 있도록 함으로써, 암호화된 상태에서 실수 데이터를 분석할 수 있으면서도 암호문 저장량과 네트워크 전송량을 크게 줄일 수 있게 된다.
도 1은 일 실시예에 따른 암호화 시스템의 동작을 설명하기 위한 도면
도 2는 일 실시예에 따른 키 스트림 생성기를 이용한 키 스트림 생성의 일 예를 나타낸 도면
도 3은 일 실시예에 따른 암호화 방법의 순서도
도 4는 일 실시예에 따른 암호문 변환 방법의 순서도
도 5는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 일 실시예에 따른 키 스트림 생성기를 이용한 키 스트림 생성의 일 예를 나타낸 도면
도 3은 일 실시예에 따른 암호화 방법의 순서도
도 4는 일 실시예에 따른 암호문 변환 방법의 순서도
도 5는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 암호화 시스템의 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 암호화 시스템(100)은 암호화 장치(110) 및 암호문 변환 장치(120)를 포함한다.
암호화 장치(110)는 실수 벡터인 메시지에 대한 암호문을 생성하여 암호문 변환 장치(120)로 제공하기 위한 장치이다.
구체적으로, 암호화 장치(110)는 정수(integer) 기반의 동형 암호(homomorphic encryption) 알고리즘인 제1 동형 암호 알고리즘을 이용하여 정수 벡터인 비밀키 K에 대한 암호문 Encint(K)을 생성한다.
이때, 동형 암호 알고리즘은 암호화된 데이터를 암호화된 상태로 연산할 수 있도록 하는 암호 기술을 의미한다. 또한, 이하에서, 특정 연산 또는 특정 함수에 대한 동형 암호 알고리즘 기반의 동형 연산은 해당 동형 암호 알고리즘을 이용하여 암호화된 데이터를 암호화된 상태로 이용하여 해당 암호된 데이터의 평문 데이터에 특정 연산 또는 특정 함수를 적용한 결과에 대한 암호문을 생성하는 연산을 의미한다.
구체적인 예로, 덧셈에 대한 동형 연산 은 예를 들어, 아래의 수학식 1과 같이 평문 데이터 x1을 암호화한 암호문 Enc(x1)과 평문 데이터 x2을 암호화한 암호문 Enc(x2)을 암호화된 상태로 이용하여 x1과 x2 사이의 덧셈 결과에 대한 암호문 Enc(x1+x2)을 생성하는 연산을 의미할 수 있다.
[수학식 1]
또한, 곱셈에 대한 동형 연산 은 예를 들어, 아래의 수학식 2와 같이 평문 데이터 x1을 암호화한 암호문 Enc(x1)과 평문 데이터 x2을 암호화한 암호문 Enc(x2)을 암호화된 상태로 이용하여 x1과 x2 사이의 곱셈 결과에 대한 암호문 Enc(x1ㅇx2)을 생성하는 연산을 의미할 수 있다.
[수학식 2]
또한, 특정 함수 f에 대한 동형 연산 은 예를 들어, 아래의 수학식 2와 같이 평문 데이터 x를 암호화한 암호문 Enc(x)을 암호화된 상태로 이용하여 평문 데이터 x에 함수 f를 적용한 결과에 대한 암호문 Enc(f(x))을 생성하는 연산을 의미할 수 있다.
[수학식 3]
한편, 정수(integer) 기반의 동형 암호 알고리즘은 정수 데이터에 대한 암호화 및 동형 연산을 지원하는 동형 암호 알고리즘을 의미한다. 구체적으로, 일 실시예에 따르면, 정수 기반의 동형 암호 알고리즘은 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘일 수 있다.
예를 들어, 제1 동형 암호 알고리즘은 B/FV 스킴(Brakerski/Fan-Vercauteren scheme)에 기반한 동형 암호 알고리즘(이하, BFV 동형 암호 알고리즘)일 수 있으나, 정수 기반의 동형 암호 알고리즘이라면 반드시 특정한 동형 암호 알고리즘으로 한정되는 것은 아니다.
한편, 제1 동형 암호 알고리즘의 메시지 공간은 소수 t를 법(modulus)으로 하는 유한체(finite field) 상의 벡터 공간 (이때, n은 벡터 공간의 차수로서 n≥1인 자연수)일 수 있으며, 비밀키 K는 의 원소일 수 있다(즉, ).
한편, 암호화 장치(110)는 키 스트림 생성기(E)를 이용하여 논스(nonce) nc 및 비밀키 K로부터 정수 벡터인 키 스트림(key stream)을 생성한다.
구체적으로, 키 스트림 생성기(E)는 벡터 공간 의 원소인 논스 nc와 비밀키 K를 입력 값으로 이용하여, 벡터 공간 의 원소인 키 스트림을 랜덤하게 생성할 수 있는 다양한 함수를 이용하여 구현될 수 있다.
구체적으로, 도 2는 일 실시예에 따른 키 스트림 생성기를 이용한 키 스트림 생성의 일 예를 나타낸 도면이다.
도 2를 참조하면, 일 실시예에 따른 키 스트림 생성기(E)는 논스 nc 및 카운터 ctr에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수(202) 및 각각 선형 레이어(204)와 비선형 레이어(206)를 포함하는 r개(이때, r은 r≥1인 자연수)의 라운드 함수로 구성될 수 있다.
구체적으로, 키 스트림 생성기(E)의 생성 함수(202)는 논스 nc 및 카운터 ctr를 입력받아 각각 k*n 차원(이때, k는 k≥1인 자연수)의 랜덤 벡터인 r개의 벡터를 생성할 수 있다. 이때, 카운터 ctr은 0부터 시작하여 키 스트림 생성기(E)를 이용하여 비밀키에 대한 키 스트림을 생성할 때마다 1씩 증가하도록 사전 설정된 값일 수 있다. 또한, 생성 함수(202)는 예를 들어, 국제 표준 해시 함수인 SHA3 기반의 SHAKE-256 함수 등이 사용될 수 있으나, 반드시 특정 함수에 한정되는 것은 아니다.
이때, r개의 행렬 중 i번째 행렬 Mi(1≤i≤r)는 예를 들어, 생성 함수(202)에 의해 생성된 r개의 k*n 차원 벡터 중 i번째 벡터에 포함된 k*n개의 값 중 1번째 값부터 n번째의 값을 포함하는 n차원의 벡터와 기 설정된 기약 다항식(irreducible polynomial)을 이용하여 생성될 수 있다.
구체적인 예로, 생성 함수(202)에서 생성된 r개의 벡터 중 i번째 벡터의 1번째 값부터 n번째의 값을 포함하는 n차원의 벡터를 ai = (a1, …, an)이라 할 때, 행렬 Mi는 ai 와 의 생성원인 α에 의하여 다음의 수학식 4와 같이 구성될 수 있다.
[수학식 4]
한편, r개의 n차원 벡터 중 i번째 벡터 bi는 예를 들어 생성 함수(202)에 의해 생성된 r개의 k*n 차원 벡터 중 i번째 벡터에 포함된 k*n개의 값 중 k*n-n+1번째 값부터 k*n번째의 값을 포함할 수 있다.
이후, 키 스트림 생성기(E)는 비밀키 K에 대해 r개의 라운드 함수를 차례로 적용할 수 있다. 이때, r개의 라운드 함수 중 i번째 라운드 함수는 각각 선형 레이어(204)와 비선형 레이어(206)로 구성될 수 있다.
이때, i번째 라운드 함수의 선형 레이어(204)는 아래의 수학식 5와 같이 정의될 수 있다.
[수학식 5]
이때, xi는 i번째 라운드 함수의 선형 레이어(204)에 대한 입력 벡터를 나타낸다.
한편, i번째 라운드 함수의 비선형 레이어(206)는 비선형 레이어(206)로 입력되는 입력 벡터에 기 설정된 비선형 함수(non-linear function)을 적용하여 출력 벡터를 생성하도록 구성될 수 있다.
구체적으로, i번째 라운드 함수의 선형 레이어(204)의 출력 벡터가 Li(x)=(y1,…,yn)일 때, 비선형 함수는 예를 들어, 아래의 수학식 6과 같이 정의된 χ 함수일 수 있다.
[수학식 6]
이때, j는 mod n으로 순환적으로(Cyclic) 선택될 수 있다.
한편, 비선형 레이어(206)에서 이용되는 비선형 함수는 반드시 상술한 χ 함수에 한정되는 것은 아니며, χ 함수 외에도 의 원소인 입력 벡터에 대해 의 원소인 출력 벡터를 생성할 수 있는 다양한 비선형 함수가 이용될 수 있다.
한편, 키 스트림 생성기(E)는 아래의 수학식 7과 같이 비밀키 K에 대해 r개의 라운드 함수를 순차적으로 적용하여 생성된 결과와 비밀키 K에 대한 모듈러 덧셈을 통해 키 스트림 ks을 생성할 수 있다.
[수학식 7]
한편, 암호화 장치(110)에 의해 이용되는 키 스트림 생성기(E)는 반드시 도 2에 도시된 예에 한정되는 것은 아니며, 도 2에 도시된 예 외에도 각각 벡터 공간 의 원소인 논스 nc 및 비밀키 K로부터 벡터 공간 의 원소인 임의의 벡터를 생성할 수 있는 다양한 함수를 이용하여 구현될 수 있다.
다시 도 1을 참조하면, 암호화 장치(110)는 제1 동형 암호 알고리즘의 메시지 인코딩 함수 Ecdint를 이용하여 키 스트림 ks를 인코딩한다.
이때, 메시지 인코딩 함수는 SIMD(Single Instruction, Multiple Data) 연산이 가능하도록 하기 위해 암호화 대상인 복수의 데이터를 하나의 다항식(또는, 다항식에 대응되는 벡터)로 인코딩하기 위해 이용되는 함수를 의미한다.
예를 들어, 제1 동형 암호 알고리즘이 B/FV 동형 암호 알고리즘인 경우, 암호화 장치(110)는 아래의 수학식 8과 같은 메시지 인코딩 함수를 이용하여 n차원의 정수 벡터인 키 스트림 ks(즉, )을 인코딩할 수 있다.
[수학식 8]
한편, 제1 동형 암호 알고리즘의 메시지 인코딩 함수는 제1 동형 암호 알고리즘의 종류에 따라 변형될 수 있으며, 반드시 특정한 함수로 한정되는 것은 아니다.
한편, 암호화 장치(110)는 실수(real number) 기반의 동형 암호 알고리즘인 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 실수 벡터인 메시지 M을 인코딩한다.
이때, 실수(integer) 기반의 동형 암호 알고리즘은 실수 데이터에 대한 암호화 및 동형 연산을 지원하는 동형 암호 알고리즘을 의미한다.
예를 들어, 제2 동형 암호 알고리즘은 CKKS(Cheon, Kim, Kim and Song) 스킴에 기반한 동형 암호 알고리즘(이하, CKKS 동형 암호 알고리즘)일 수 있으나, 실수 기반의 동형 암호 알고리즘이라면 반드시 특정한 동형 암호 알고리즘으로 한정되는 것은 아니다.
한편, 제2 동형 암호 알고리즘이 예를 들어, CKKS 동형 암호 알고리즘의 경우, 암호화 장치(110)는 아래의 수학식 9와 같은 메시지 인코딩 함수를 이용하여 메시지 M을 인코딩할 수 있다.
[수학식 9]
이때, 메시지 M은 인 실수 벡터, δ는 δ>0인 실수 스케일링 팩터(scaling factor), [·]은 가까운 정수로 반올림(rounding off)하는 라운딩 함수를 나타낸다. 또한, τ는 일 때, 가 으로 정의되는 표준매입(canonical embedding)을 나타낸다.
한편, 제2 동형 암호 알고리즘의 메시지 인코딩 함수는 제2 동형 암호 알고리즘의 종류에 따라 변형될 수 있으며, 반드시 특정한 함수로 한정되는 것은 아니다.
한편, 암호화 장치(110)는 키 스트림 ks에 대한 인코딩 결과 Ecdint(ks) 및 메시지 M에 대한 인코딩 결과 Ecdreal(M)를 이용하여 메시지 M에 대한 암호문 C를 생성한다.
이때, 일 실시예에 다르면, 암호화 장치(110)는 아래의 수학식 10과 같이 소수 t를 법으로 하는 모듈로 덧셈을 수행하여 암호문 C를 생성할 수 있다.
[수학식 10]
이후, 암호화 장치(110)는 논스 nc, 비밀키 K에 대한 암호문 Encint(K) 및 메시지 M에 대한 암호문 C를 암호문 변환 장치(120)로 전송한다.
암호문 변환 장치(120)는 암호화 장치(110)로부터 수신된 암호문 C를 제2 동형 암호 알고리즘 기반의 암호문으로 변환한다. 이때, 암호문 C를 제2 동형 암호 알고리즘 기반의 암호문으로 변환한다는 것은, 제2 동형 암호 알고리즘을 이용하여 메시지 M을 암호화함으로써 생성되는 암호문과 동일한 암호문으로 암호문 C를 변환함을 의미할 수 있다.
구체적으로, 암호문 변환 장치(120)는 암호화 장치(110)로부터 수신된 암호문 Encint(K) 및 논스 nc를 이용하여 키 스트림 생성기(E)에 대한 제1 동형 암호 알고리즘 기반의 동형 연산을 수행함으로써 키 스트림 ks에 대한 제1 동형 암호 알고리즘 기반의 암호문 Encint(ks)을 생성한다. 이때, 키 스트림 ks에 대한 제1 동형 암호 알고리즘 기반의 암호문 Encint(ks)은 제1 동형 암호 알고리즘을 이용하여 키 스트림 ks를 암호화함으로써 생성되는 암호문과 동일한 암호문을 의미한다.
예를 들어, 키 스트림 생성기(E)에 의한 키 스트림 생성 과정이 도 2에 도시된 예와 동일한 경우, 암호문 변환 장치(120)는 생성 함수(203), 각 라운드 함수를 구성하는 선형 레이어(204) 및 비선형 레이어(206) 각각에 대응되는 제1 동형 암호 알고리즘 기반의 동형 연산을 수행하여 암호문 Encint(K) 및 논스 nc로부터 암호문 Encint(ks)를 생성할 수 있다.
한편, 암호문 Encint(ks)가 생성된 경우, 암호문 변환 장치(120)는 생성된 암호문 Encint(ks) 및 암호화 장치(110)로부터 수신된 메시지 M에 대한 암호문 C를 이용하여 암호문 C를 제2 동형 암호 알고리즘 기반의 암호문 Encreal(M)으로 변환한다.
구체적으로, 암호문 변환 장치(120)는 예를 들어, 아래의 수학식 11을 이용하여 암호문 C를 제2 동형 암호 알고리즘 기반의 암호문 Encreal(M)로 변환할 수 있다.
[수학식 11]
이때, q는 제2 동형 암호 알고리즘을 이용한 암호화를 위해 설정된 법(modulus)로서 q≥2인 정수, Δ는 Δ=[q/t]인 양의 실수를 나타낸다.
도 3은 일 실시예에 따른 암호화 방법의 순서도이다.
도 3에 도시된 방법은 예를 들어, 도 1에 도시된 암호화 장치(110)에 의해 수행될 수 있다.
도 3을 참조하면, 우선 암호화 장치(110)는 정수 기반의 제1 동형 암호 알고리즘을 이용하여 정수 벡터인 비밀키 K에 대한 암호문 Encint(K)을 생성한다(310).
이후, 암호화 장치(110)는 키 스트림 생성기를 이용하여 논스 nc 및 비밀키 K로부터 정수 벡터인 키 스트림 ks를 생성한다(320).
이후, 암호화 장치(110)는 제1 동형 암호 알고리즘의 메시지 인코딩 함수 Ecdint를 이용하여 키 스트림 ks를 인코딩한다(330).
이후, 암호화 장치(110)는 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수 Endreal를 이용하여 메시지 M을 인코딩한다(340).
이후, 암호화 장치(110)는 키 스트림 ks에 대한 인코딩 결과 Ecdint(ks) 및 메시지 M에 대한 인코딩 결과 Ecdreal(M)를 이용하여 메시지 M에 대한 암호문 C를 생성한다(350).
이후, 암호화 장치(110)는 논스 nc, 비밀키 K에 대한 암호문 Encint(K) 및 메시지 M에 대한 암호문 C를 암호문 변환 장치(120)로 전송한다(360).
한편, 도 3에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 4는 일 실시예에 따른 암호문 변환 방법의 순서도이다.
도 4에 도시된 방법은 예를 들어, 도 1에 도시된 암호문 변환 장치(120)에 의해 수행될 수 있다.
암호문 변환 장치(120)는 암호화 장치(110)로부터 논스 nc, 비밀키 K에 대한 암호문 Encint(K) 및 메시지 M에 대한 암호문 C를 수신한다(410).
이후, 암호문 변환 장치(120)는 암호화 장치(110)로부터 수신된 암호문 Encint(K) 및 논스 nc를 이용하여 키 스트림 생성기(E)에 대한 제1 동형 암호 알고리즘 기반의 동형 연산을 수행함으로써 키 스트림 ks에 대한 제1 동형 암호 알고리즘 기반의 암호문 Encint(ks)을 생성한다(420).
이후, 암호문 변환 장치(120)는 생성된 암호문 Encint(ks) 및 암호화 장치(110)로부터 수신된 메시지 M에 대한 암호문 C를 이용하여 암호문 C를 제2 동형 암호 알고리즘 기반의 암호문 Encreal(M)으로 변환한다(430).
한편, 도 4에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 5는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(110)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 도 1에 도시된 암호화 장치(110) 또는 암호문 변환 장치(120)에 포함된 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 암호화 시스템
110: 암호화 장치
120: 암호문 변환 장치
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 암호화 시스템
110: 암호화 장치
120: 암호문 변환 장치
Claims (24)
- 정수 기반의 제1 동형 암호 알고리즘을 이용하여, 정수 벡터인 비밀키에 대한 암호문을 생성하는 단계;
키 스트림 생성기를 이용하여 논스(nonce) 및 상기 비밀키로부터 상기 정수 벡터인 키 스트림(key stream)을 생성하는 단계;
상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩하는 단계;
실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여, 실수 벡터인 메시지를 인코딩하는 단계;
상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과를 이용하여 상기 메시지에 대한 암호문을 생성하는 단계; 및
상기 논스, 상기 비밀키에 대한 암호문 및 상기 메시지에 대한 암호문을 암호문 변환 장치로 전송하는 단계를 포함하는 암호화 방법.
- 청구항 1에 있어서,
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘인 암호화 방법.
- 청구항 2에 있어서,
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고,
상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소인 암호화 방법.
- 청구항 1에 있어서,
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함하는 암호화 방법.
- 청구항 1에 있어서,
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고,
상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소인 암호화 방법.
- 청구항 1에 있어서,
상기 암호문을 생성하는 단계는, 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과에 대해 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 상기 메시지에 대한 암호문을 생성하는 암호화 방법.
- 암호화 장치로부터, 논스(nonce), 정수 벡터인 비밀키에 대한 암호문 및 실수 벡터인 메시지에 대한 암호문을 수신하는 단계;
상기 논스 및 상기 비밀키에 대한 암호문에 기초하여, 상기 암호화 장치가 상기 메시지에 대한 암호문의 생성을 위해 이용한 키 스트림(key stream)에 대한 암호문을 생성하는 단계; 및
상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문을 이용하여 상기 메시지에 대한 암호문을 변환하는 단계를 포함하고,
상기 비밀키에 대한 암호문은, 정수 기반의 제1 동형 암호 알고리즘을 이용하여 암호화된 암호문이고,
상기 메시지에 대한 암호문은, 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩한 결과 및 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 메시지를 인코딩한 결과를 이용하여 생성된 암호문이며,
상기 키 스트림은, 키 스트림 생성기를 이용하여 상기 논스 및 상기 비밀키로부터 생성된 정수 벡터이고,
상기 키 스트림에 대한 암호문을 생성하는 단계는, 상기 키 스트림 생성기에 대한 상기 제1 동형 암호 알고리즘 기반의 동형 연산을 이용하여 상기 키 스트림에 대한 암호문을 생성하고,
상기 변환하는 단계는, 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환하는 암호문 변환 방법.
- 청구항 7에 있어서,
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘인 암호문 변환 방법.
- 청구항 8에 있어서,
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고,
상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소인 암호문 변환 방법.
- 청구항 7에 있어서,
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함하는 암호문 변환 방법.
- 청구항 7에 있어서,
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고,
상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소인 암호문 변환 방법.
- 청구항 7에 있어서,
상기 메시지에 대한 암호문은, 상기 키 스트림을 인코딩한 결과 및 상기 메시지를 인코딩한 결과에 대해 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 생성된 암호문이고,
상기 변환하는 단계는, 상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문에 대해 상기 제2 동형 암호 알고리즘에 설정된 정수 q를 법으로 하는 모듈로 뺄셈을 수행하여 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환하는 암호문 변환 방법.
- 하나 이상의 명령어를 저장하는 메모리; 및
상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
정수 기반의 제1 동형 암호 알고리즘을 이용하여, 정수 벡터인 비밀키에 대한 암호문을 생성하는 단계;
키 스트림 생성기를 이용하여 논스(nonce) 및 상기 비밀키로부터 상기 정수 벡터인 키 스트림(key stream)을 생성하는 단계;
상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩하는 단계;
실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여, 실수 벡터인 메시지를 인코딩하는 단계;
상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과를 이용하여 상기 메시지에 대한 암호문을 생성하는 단계; 및
상기 논스, 상기 비밀키에 대한 암호문 및 상기 메시지에 대한 암호문을 암호문 변환 장치로 전송하는 단계를 수행하는 암호화 장치.
- 청구항 13에 있어서,
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘인 암호화 장치.
- 청구항 14에 있어서,
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고,
상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소인 암호화 장치.
- 청구항 13에 있어서,
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함하는 암호화 장치.
- 청구항 13에 있어서,
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고,
상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소인 암호화 장치.
- 청구항 13에 있어서,
상기 암호문을 생성하는 단계는, 상기 키 스트림에 대한 인코딩 결과 및 상기 메시지에 대한 인코딩 결과에 대해 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 상기 메시지에 대한 암호문을 생성하는 암호화 장치.
- 하나 이상의 명령어를 저장하는 메모리; 및
상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
암호화 장치로부터, 논스(nonce), 정수 벡터인 비밀키에 대한 암호문 및 실수 벡터인 메시지에 대한 암호문을 수신하는 단계;
상기 논스 및 상기 비밀키에 대한 암호문에 기초하여, 상기 암호화 장치가 상기 메시지에 대한 암호문의 생성을 위해 이용한 키 스트림(key stream)에 대한 암호문을 생성하는 단계; 및
상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문을 이용하여 상기 메시지에 대한 암호문을 변환하는 단계를 수행하고,
상기 비밀키에 대한 암호문은, 정수 기반의 제1 동형 암호 알고리즘을 이용하여 암호화된 암호문이고,
상기 메시지에 대한 암호문은, 상기 제1 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 키 스트림을 인코딩한 결과 및 실수 기반의 제2 동형 암호 알고리즘의 메시지 인코딩 함수를 이용하여 상기 메시지를 인코딩한 결과를 이용하여 생성된 암호문이며,
상기 키 스트림은, 키 스트림 생성기를 이용하여 상기 논스 및 상기 비밀키로부터 생성된 정수 벡터이고,
상기 키 스트림에 대한 암호문을 생성하는 단계는, 상기 키 스트림 생성기에 대한 상기 제1 동형 암호 알고리즘 기반의 동형 연산을 이용하여 상기 키 스트림에 대한 암호문을 생성하고,
상기 변환하는 단계는, 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환하는 암호문 변환 장치.
- 청구항 19에 있어서,
상기 제1 동형 암호 알고리즘은, 소수(prime number) t를 법(modulus)으로 하는 모듈로 연산(modulo operation)을 지원하는 동형 암호 알고리즘인 암호문 변환 장치.
- 청구항 20에 있어서,
상기 제1 동형 암호 알고리즘의 메시지 공간은, 상기 소수 t를 법으로 하는 유한체(finite field) 상의 벡터 공간이고,
상기 논스, 상기 비밀키, 상기 키 스트림 및 상기 메시지에 대한 암호문은 각각 상기 벡터 공간의 원소인 암호문 변환 장치.
- 청구항 19에 있어서,
상기 키 스트림 생성기는, 상기 논스 및 카운터에 기초하여 기 설정된 길이의 랜덤 벡터를 생성하는 생성 함수 및 상기 랜덤 수열에 기초하여 상기 비밀키에 대해 순차적으로 적용되는 r(이때, r≥1) 개의 라운드 함수를 포함하는 암호문 변환 장치.
- 청구항 19에 있어서,
상기 제2 동형 암호 알고리즘의 메시지 공간은, 실수 공간 또는 복소수 공간이고,
상기 메시지는, 상기 실수 공간 또는 상기 복소수 공간의 원소인 암호문 변환 장치.
- 청구항 19에 있어서,
상기 메시지에 대한 암호문은, 상기 키 스트림을 인코딩한 결과 및 상기 메시지를 인코딩한 결과에 대해 소수 t를 법으로 하는 모듈로 덧셈(modulo addition)을 수행하여 생성된 암호문이고,
상기 변환하는 단계는, 상기 키 스트림에 대한 암호문 및 상기 메시지에 대한 암호문에 대해 상기 제2 동형 암호 알고리즘에 설정된 정수 q를 법으로 하는 모듈로 뺄셈을 수행하여 상기 메시지에 대한 암호문을 상기 제2 동형 암호 알고리즘 기반의 암호문으로 변환하는 암호문 변환 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/081,862 US11558171B2 (en) | 2020-04-20 | 2020-10-27 | Apparatus and method for encryption, apparatus and method for converting ciphertext |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200047585 | 2020-04-20 | ||
KR1020200047585 | 2020-04-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210129573A true KR20210129573A (ko) | 2021-10-28 |
Family
ID=78232815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200137067A Pending KR20210129573A (ko) | 2020-04-20 | 2020-10-21 | 암호화 장치 및 방법, 암호문 변환 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210129573A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230128728A (ko) * | 2022-02-28 | 2023-09-05 | 강석진 | 동형암호 시스템 및 방법 |
WO2024225497A1 (ko) * | 2023-04-25 | 2024-10-31 | 엘지전자 주식회사 | 통신 시스템에서 동형 암호 기반의 통신 방법 및 이를 위한 장치 |
KR20250031333A (ko) | 2023-08-28 | 2025-03-07 | 고려대학교 산학협력단 | 역행렬 기법을 이용하여 암호화된 데이터에 대한 역행렬을 생성하는 장치 및 방법 |
-
2020
- 2020-10-21 KR KR1020200137067A patent/KR20210129573A/ko active Pending
Non-Patent Citations (2)
Title |
---|
비특허문헌 1: Cheon, Jung Hee, et al. "A full RNS variant of approximate homomorphic encryption." International Conference on Selected Areas in Cryptography. Springer, Cham, 2018. |
비특허문헌 2: Fan, Junfeng, and Frederik Vercauteren. "Somewhat Practical Fully Homomorphic Encryption." IACR Cryptology ePrint Archive 2012 (2012): 144. |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230128728A (ko) * | 2022-02-28 | 2023-09-05 | 강석진 | 동형암호 시스템 및 방법 |
WO2024225497A1 (ko) * | 2023-04-25 | 2024-10-31 | 엘지전자 주식회사 | 통신 시스템에서 동형 암호 기반의 통신 방법 및 이를 위한 장치 |
KR20250031333A (ko) | 2023-08-28 | 2025-03-07 | 고려대학교 산학협력단 | 역행렬 기법을 이용하여 암호화된 데이터에 대한 역행렬을 생성하는 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6934963B2 (ja) | データを暗号化する方法およびシステム | |
Wang et al. | Cryptanalysis of a symmetric fully homomorphic encryption scheme | |
US10057057B2 (en) | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management | |
CN107294697B (zh) | 基于明文相似矩阵的对称全同态加密方法 | |
KR102550812B1 (ko) | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 | |
Ur Rehman et al. | Block mode image encryption technique using two-fold operations based on chaos, MD5 and DNA rules | |
KR101866935B1 (ko) | 연관된 개인 키 부분을 사용하는 보다 빠른 공개 키 암호화를 위한 시스템들 및 방법들 | |
US11558171B2 (en) | Apparatus and method for encryption, apparatus and method for converting ciphertext | |
KR20210129573A (ko) | 암호화 장치 및 방법, 암호문 변환 장치 및 방법 | |
Biswas et al. | A DNA cryptographic technique based on dynamic DNA encoding and asymmetric cryptosystem | |
KR102143525B1 (ko) | 교집합 연산을 지원하는 함수 암호를 위한 방법 및 이를 이용한 장치 | |
KR20210017396A (ko) | 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 | |
Gadhiya et al. | A review on different level data encryption through a compression techniques | |
Biksham et al. | A lightweight fully homomorphic encryption scheme for cloud security | |
Li et al. | Fully homomorphic encryption with table lookup for privacy-preserving smart grid | |
Manikandan et al. | On dual encryption with RC6 and combined logistic tent map for grayscale and DICOM | |
Deshmukh et al. | Lightweight symmetric key encryption for text using XOR operation and permutation matrix | |
Acharya | Image encryption using a new chaos based encryption algorithm | |
Niu et al. | SoK: FHE-Friendly Symmetric Ciphers and Transciphering | |
Theodouli et al. | Implementing private k-means clustering using a LWE-based cryptosystem | |
Wu et al. | Vpip: Values packing in paillier for communication efficient oblivious linear computations | |
Chaddha et al. | Selection on Various Traditional Image Encryption Techniques: A Study | |
KR102284877B1 (ko) | 효율적인 교집합 연산을 위한 함수 암호 기술 | |
Asante et al. | A symmetric, probabilistic, non-circuit based fully homomorphic encryption scheme | |
KR102281265B1 (ko) | 시간 제약을 지원하는 교집합 연산을 위한 함수 암호 기술 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20201021 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20230222 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20201021 Comment text: Patent Application |