KR101965628B1 - Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof - Google Patents
Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof Download PDFInfo
- Publication number
- KR101965628B1 KR101965628B1 KR1020170173608A KR20170173608A KR101965628B1 KR 101965628 B1 KR101965628 B1 KR 101965628B1 KR 1020170173608 A KR1020170173608 A KR 1020170173608A KR 20170173608 A KR20170173608 A KR 20170173608A KR 101965628 B1 KR101965628 B1 KR 101965628B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- scaling factor
- ciphertext
- encrypted
- ciphertexts
- Prior art date
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들에 대한 것이다. The present invention relates to a terminal apparatus for performing homotypic encryption, a server apparatus for processing the cipher text, and methods thereof.
전자 및 통신 기술의 발달에 힘입어 다양한 장치들 간에 데이터를 송수신하여 활용하는 다양한 서비스가 지원되고 있다. 그 중 일 예로, 사용자가 자신의 개인 정보 등을 서버에 저장하여 두고, 자신의 단말 장치를 이용하여 서버의 정보를 이용하는 클라우드 컴퓨팅 서비스도 활발하게 사용되고 있다. With the development of electronic and communication technologies, various services are being supported for transmitting and receiving data between various devices. For example, a cloud computing service in which a user stores his / her personal information in a server and uses the information of the server using his / her terminal device is actively used.
이러한 환경에서는 데이터 유출을 방지하기 위한 보안 기술의 사용이 필수적이다. 따라서, 서버는 암호화된 데이터를 저장하게 된다. 이 경우, 서버는 저장된 데이터를 검색하거나 그 데이터에 기초한 일련의 작업을 할 때마다, 암호화된 데이터를 복호화하여야 하므로, 자원 및 시간 낭비가 발생하게 된다. In such environments, the use of security technologies to prevent data leakage is essential. Thus, the server stores the encrypted data. In this case, each time the server searches stored data or performs a series of operations based on the data, the encrypted data must be decoded, resulting in resource and time wasted.
또한, 서버에서 연산을 위해 일시적으로 복호화한 상태에서 제3자의 해킹이 이루어지는 경우, 개인 정보가 제3자에게 손쉽게 유출될 수 있다는 문제점도 있었다. In addition, when the third party is hacked in a state where the server decrypts temporarily for calculation, the personal information can easily be leaked to a third party.
이러한 문제를 해결하기 위하여 동형 암호화 방법이 연구되고 있다. 동형 암호화에 따르면, 암호화된 정보를 복호화하지 않고 암호문 자체에서 연산을 하더라도, 평문에 대해 연산한 후 암호화한 값과 동일한 결과를 얻을 수 있다. 따라서, 암호문을 복호화하지 않은 상태에서 각종 연산을 수행할 수 있다. To solve this problem, a homogeneous encryption method has been studied. According to the homotypic encryption, even if the cipher text itself is operated without decrypting the encrypted information, the same result as the encrypted value can be obtained after calculating the plaintext. Therefore, various operations can be performed without decrypting the ciphertext.
하지만, 종래의 동형 암호화 방법에 따라 정수 연산을 수행하게 되면, 평문의 비트수가 기하급수적으로 증가하여, 연산에 소요되는 시간이 크게 증가하는 문제가 있었다.However, if integer arithmetic operations are performed according to the conventional encryption method, there is a problem that the number of bits of the plaintext increases exponentially and the time required for the operation is greatly increased.
본 발명은 이상과 같은 문제점을 해결하기 위하여 고안된 것으로, 본 발명의 목적은 메시지에 스케일링 팩터를 반영한 후 암호화하여 동형 암호문을 생성하는 단말 장치와 그 암호문을 연산하는 서버 장치 및 그 방법들을 제공함에 있다.It is an object of the present invention to provide a terminal device for generating a ciphertext by encrypting a scaling factor after a message is ciphered, a server device for operating the cipher text, and a method thereof .
이상과 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 단말 장치의 암호화 방법은, 스케일링 팩터를 설정하는 단계, 암호화할 메시지에 상기 스케일링 팩터를 반영한 후 공개키를 이용하여 암호화하여 동형 암호문을 생성하는 단계를 포함한다. 여기서, 상기 동형 암호문은, 복호화하였을 때 상기 메시지에 상기 스케일링 팩터를 반영한 값에 에러 값을 가산한 결과값이 복원되는 형태가 될 수 있다. In order to achieve the above object, a method of encrypting a terminal apparatus according to an embodiment of the present invention includes setting a scaling factor, reflecting the scaling factor in a message to be encrypted, and encrypting the message using a public key, . Here, the isochronous ciphertext may be a form in which a result obtained by adding an error value to a value reflecting the scaling factor in the message is decoded when decrypted.
그리고, 상기 동형 암호문의 모듈러스는, 하나의 스케일링 팩터의 지수승으로 설정될 수 있다.The modulus of the isoform ciphertext can be set to the exponentiation power of one scaling factor.
또는, 상기 동형 암호문의 모듈러스는, 복수의 서로 다른 스케일링 팩터들을 승산한 값으로 설정될 수도 있다. 여기서, 상기 복수의 서로 다른 스케일링 팩터들은 유사 범위 이내에서 서로 소 관계인 값들로 설정될 수 있다.Alternatively, the modulus of the homogeneous cipher text may be set to a value obtained by multiplying a plurality of different scaling factors. Here, the plurality of different scaling factors may be set to values that are mutually small within a similar range.
또한, 상기 동형 암호문을 생성하는 단계는, 이산 가우시안 분포 또는 상기 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 에러를 산출하는 단계, 상기 메시지에 상기 스케일링 팩터를 승산하고 상기 에러를 가산한 후, 상기 공개키를 이용하여 암호화하여 상기 암호문을 생성하는 단계를 포함할 수 있다.The step of generating the isomorphic cipher text further includes the steps of calculating an error from a distribution having a discrete Gaussian distribution or a statistical distance close to the discrete Gaussian distribution, multiplying the message by the scaling factor, adding the error, And generating the ciphertext by encrypting the ciphertext using the key.
또는, 상기 메시지가 복수의 메시지 벡터인 경우, 상기 복수의 메시지 벡터를, 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환하는 단계를 더 포함할 수도 있다. 이 경우, 상기 동형 암호문을 생성하는 단계는, 상기 다항식에 상기 스케일링 팩터를 승산한 후, 상기 공개키를 이용하여 동형 암호화할 수 있다.Or, if the message is a plurality of message vectors, converting the plurality of message vectors into a polynomial of a form capable of being encrypted in parallel may be further included. In this case, in the step of generating the isoform ciphertext, the polynomial may be multiplied by the scaling factor, and then the same type may be encrypted using the public key.
한편, 본 발명의 일 실시 예에 따른 서버 장치의 암호문 처리 방법은, 개별적으로 암호화된 복수의 동형 암호문을 수신하는 단계, 상기 복수의 동형 암호문에 대하여 기 설정된 연산을 수행하는 단계, 상기 연산에 의해 산출된 결과 암호문으로부터 노이즈 영역을 제거하여 유효 영역의 데이터를 추출하는 단계를 포함한다. 여기서, 상기 복수의 동형 암호문 각각은 메시지에 스케일링 팩터를 승산 한 후 암호화한 암호문이며, 상기 노이즈 영역은 상기 스케일링 팩터의 크기에 대응되도록 결정된다. Meanwhile, a method of processing a cipher text in a server apparatus according to an embodiment of the present invention includes: receiving a plurality of individually encrypted isotactic ciphertexts; performing a predetermined operation on the plurality of isotactic ciphertexts; And extracting the data of the valid region by removing the noise region from the calculated resultant cipher text. Here, each of the plurality of isochronous ciphertexts is a cipher text obtained by multiplying a message with a scaling factor and then encrypted, and the noise region is determined to correspond to the size of the scaling factor.
또한, 상기 복수의 동형 암호문 각각이 복수의 메시지 벡터를 패킹한 암호문이면, 상기 복수의 암호문 각각에 포함된 메시지 벡터들을 병렬적으로 연산 처리하는 단계를 더 포함할 수도 있다.The method may further include processing the message vectors included in each of the plurality of ciphertexts in parallel, if each of the plurality of ciphertexts is a ciphertext packed with a plurality of message vectors.
이 경우, 상기 복수의 암호문에 포함된 각 메시지 벡터들 간의 순서를 로테이션시키는 단계를 더 포함할 수도 있다. In this case, the method may further include rotating the order of each message vector included in the plurality of ciphertexts.
또는, 상기 메시지가 복소수인 경우, 상기 복수의 암호문에 대하여 컨쥬게이션(conjugation) 연산을 수행하는 단계를 더 포함할 수도 있다.Alternatively, when the message is a complex number, performing a conjugation operation on the plurality of ciphertexts.
본 발명의 일 실시 예에 따른 단말 장치는, 스케일링 팩터 및 공개키가 저장된 메모리, 암호화할 메시지에 상기 스케일링 팩터를 반영한 후 상기 공개키를 이용하여 암호화하여 동형 암호문을 생성하는 프로세서 및 상기 동형 암호문을 외부 장치로 전송하는 통신부를 포함한다. 여기서, 상기 동형 암호문은, 복호화하였을 때 상기 메시지에 상기 스케일링 팩터를 반영한 값에 에러 값을 승산한 결과값이 복원되는 형태가 될 수 있다. The terminal device according to an embodiment of the present invention includes a memory for storing a scaling factor and a public key, a processor for reflecting the scaling factor to a message to be encrypted and encrypting the message using the public key to generate an isochronous cipher text, To the external device. Here, the isochronous cipher text may be a form in which, when decrypted, the result obtained by multiplying a value reflecting the scaling factor by the error value is restored in the message.
또한, 상기 메시지 및 상기 스케일링 팩터를 입력받기 위한 입력부;를 더 포함할 수도 있다. 상기 프로세서는 상기 입력부를 통해 입력된 상기 메시지 및 상기 스케일링 팩터를 상기 메모리에 저장할 수도 있다. The apparatus may further include an input unit for receiving the message and the scaling factor. The processor may store the message and the scaling factor input via the input to the memory.
또한, 상기 프로세서는, 동형 암호문의 모듈러스를 상기 스케일링 팩터의 지수승으로 설정하여 상기 메모리에 저장할 수도 있다. Further, the processor may set the modulus of the isochronous ciphertext to an exponent of the scaling factor and store the same in the memory.
또는, 상기 프로세서는, 상기 동형 암호문의 모듈러스를 복수의 서로 다른 스케일링 팩터들을 승산한 값으로 설정하여 상기 메모리에 저장할 수도 있다. 이 경우, 상기 복수의 서로 다른 스케일링 팩터들은 유사 범위 이내에서 서로 소 관계인 값들로 설정될 수 있다. Alternatively, the processor may set the modulus of the isoform ciphertext to a value obtained by multiplying a plurality of different scaling factors, and store the same in the memory. In this case, the plurality of different scaling factors may be set to values that are mutually small within a similar range.
또한, 상기 프로세서는, 이산 가우시안 분포 또는 상기 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 에러를 산출하고, 상기 메시지 및 상기 스케일링 팩터를 승산한 값에 상기 에러를 가산한 후, 상기 공개키를 이용하여 암호화할 수도 있다. The processor is further configured to calculate an error from a distribution having a discrete Gaussian distribution or a statistical distance close to the discrete Gaussian distribution, add the error to a value obtained by multiplying the message and the scaling factor, It can also be encrypted.
또한, 상기 프로세서는, 상기 메시지가 복수의 메시지 벡터인 경우, 상기 복수의 메시지 벡터를, 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환하며, 상기 다항식에 상기 스케일링 팩터를 승산한 후, 상기 공개키를 이용하여 동형 암호화할 수도 있다.If the message is a plurality of message vectors, the processor may convert the plurality of message vectors into polynomials that can be encrypted in parallel, multiply the polynomials by the scaling factors, The same type of encryption can be performed using a key.
이상과 같은 본 발명의 다양한 실시 예들에 따르면, 유효 영역을 포함하는 동형 암호문을 생성할 수 있게 되므로, 메시지 손실을 최소화하면서, 연산 시간 및 부담을 경감시킬 수 있게 된다. According to various embodiments of the present invention as described above, it is possible to generate an isochronous cipher text including the valid area, so that the calculation time and burden can be reduced while minimizing message loss.
도 1은 본 발명의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 따른 단말 장치 및 서버 장치의 구성을 나타내는 블럭도,
도 3은 본 발명의 일 실시 예에 따른 단말 장치의 암호화 방법을 설명하기 위한 흐름도,
도 4는 본 발명의 일 실시 예에 따른 서버 장치의 암호문 처리 방법을 설명하기 위한 흐름도,
도 5 내지 도 7은 서버 장치의 암호문 처리 방법의 다양한 예들을 설명하기 위한 도면,
도 8은 본 발명의 일 실시 예에 따른 네트워크 시스템의 암호문 처리 방법을 설명하기 위한 도면이다.1 is a diagram for explaining a structure of a network system according to an embodiment of the present invention;
2 is a block diagram showing a configuration of a terminal device and a server device according to an embodiment of the present invention;
3 is a flowchart illustrating a method of encrypting a terminal according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating a method of processing a cipher text in a server apparatus according to an embodiment of the present invention.
5 to 7 are diagrams for explaining various examples of a cipher text processing method of a server apparatus,
8 is a diagram for explaining a method of processing a cipher text in a network system according to an embodiment of the present invention.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다. 본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. Encryption / decryption may be applied to the information (data) transmission process performed in the present specification, and expressions describing the process of transmitting information (data) in the present specification and claims are not limited to encryption / decryption Should be construed as including. Expression in the form of "transmission from A to B (transmission)" or "reception from A to B" includes transmission (transmission) or reception with another medium in between, It does not just represent direct transmission (forwarding) or reception.
본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.In the description of the present invention, the order of each step should be understood to be non-limiting, unless the preceding step must be performed logically and temporally before the next step. In other words, except for the exceptional case above, even if the process described in the following stage is performed before the process described in the preceding stage, the nature of the invention is not affected and the scope of the right should be defined regardless of the order of the stages. In the present specification, "A or B" is defined to mean not only A and B but also A and B. It is also to be understood that the term " comprising " is intended to encompass further including other elements in addition to the elements listed as being included.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.Only essential components necessary for explanation of the present invention are described in this specification, and components not related to the essence of the present invention are not mentioned. And should not be construed in an exclusive sense that includes only the recited elements, but should be interpreted in a non-exclusive sense to include other elements as well.
그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터도 포함하는 개념으로 정의된다. In this specification, the term " value " is defined as a concept including not only a scalar value but also a vector.
후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.The mathematical operation and computation of each step of the present invention to be described later can be realized by a computer operation by a coding method well known for carrying out the calculation or the calculation and / or coding designed according to the present invention.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 발명의 권리 범위가 본 명세서에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.The specific formulas described below are exemplarily described in various possible alternatives, and the scope of the present invention should not be construed as being limited to the formulas mentioned in this specification.
이하에서는 첨부된 도면을 이용하여 본 발명의 다양한 실시 예들에 대하여 구체적으로 설명한다. In the following, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시 예에 따른 네트워크 시스템의 구성을 나타내는 도면이다. 도 1에 따르면, 복수의 단말장치(100-1 ~ 100-n), 제1 서버 장치(200), 제2 서버 장치(300)가 네트워크(10)를 통해 서로 연결될 수 있다. 네트워크(10)는 다양한 형태의 유무선 통신 네트워크, 방송 통신 네트워크, 광통신 네트워크, 클라우드 네트워크 등으로 구현될 수 있으며, 각 장치들은 별도의 매개체 없이 와이파이, 블루투스, NFC(Near Field Communication) 등과 같은 방식으로 연결될 수도 있다. 1 is a diagram illustrating a configuration of a network system according to an embodiment of the present invention. 1, a plurality of terminal devices 100-1 to 100-n, a
도 1에서는 단말 장치가 복수 개(100-1 ~ 100-n)인 것으로 도시하였으나, 반드시 복수 개의 단말 장치가 사용되어야 하는 것은 아니며 하나의 장치가 사용될 수도 있다. 일 예로, 단말 장치(100-1 ~ 100-n)는 휴대폰, 태블릿, 게임 플레이어, PC, 랩탑 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다.Although a plurality of terminal apparatuses 100-1 to 100-n are shown in FIG. 1, a plurality of terminal apparatuses are not necessarily used, and one apparatus may be used. For example, the terminal devices 100-1 to 100-n can be implemented as various types of devices such as a mobile phone, a tablet, a game player, a PC, a laptop PC, a home server, a kiosk, It can also be implemented in product form.
사용자는 자신이 사용하는 단말 장치(100-1 ~ 100-n)를 통해서 다양한 정보를 입력할 수 있다. 입력된 정보는 단말 장치(100-1 ~ 100-n) 자체에 저장될 수도 있지만, 저장 용량 및 보안 등을 이유로 외부 장치로 전송되어 저장될 수도 있다. 도 1에서 제1 서버 장치(200)는 이러한 정보들을 저장하는 역할을 수행하고, 제2 서버 장치(300)는 제1 서버 장치(200)에 저장된 정보의 일부 또는 전부를 이용하는 역할을 수행한다. The user can input various information through the terminal devices 100-1 to 100-n that he / she uses. The input information may be stored in the terminal apparatuses 100-1 to 100-n itself, but may also be transferred to and stored in an external apparatus for reasons of storage capacity and security. In FIG. 1, the
각 단말 장치(100-1 ~ 100-n)는 입력된 정보를 동형 암호화하여, 동형 암호문을 제1 서버 장치(200)로 전송한다. 제1 서버 장치(200)는 전송된 동형 암호문을 복호화하지 않고, 암호문 상태로 저장할 수 있다. Each of the terminal devices 100-1 to 100-n encrypts the input information in the same manner and transmits the same type of ciphertext to the
제2 서버 장치(300)는 동형 암호문에 대한 특정 처리 결과를 제1 서버 장치(200)로 요청할 수 있다. 제1 서버 장치(200)는 요청에 따라 특정 연산을 수행한 후, 그 결과를 제2 서버 장치(300)로 전송한다. 일 예로, 두 개의 단말 장치(100-1, 100-2)가 전송한 암호문 ct1, ct2가 제1 서버 장치(200)에 저장된 경우, 제2 서버 장치(300)는 두 단말 장치(100-1, 100-2)로부터 제공된 정보들을 합산한 값을 제1 서버 장치(200)로 요청할 수 있다. 제1 서버 장치(200)는 요청에 따라 두 암호문을 합산하는 연산을 수행한 후, 그 결과값(ct1 + ct2)을 제2 서버 장치(300)로 전송할 수 있다. The
각 단말 장치는 동형 암호화를 수행하는 과정에서 산출되는 암호화 노이즈, 즉, 에러를 암호문에 포함시킨다. 구체적으로는, 각 단말 장치(100-1 ~ 100-n)에서 생성하는 동형 암호문은, 추후에 비밀키를 이용하여 복호화하였을 때 메시지 및 에러 값을 포함하는 결과값이 복원되는 형태로 생성될 수 있다. Each terminal device includes cryptographic noise, i.e., an error, which is calculated in the process of performing the same type of encryption, in the ciphertext. Specifically, the same type of ciphertext generated by each of the terminal devices 100-1 to 100-n can be generated in such a manner that a result value including a message and an error value is reconstructed when decrypted using a secret key have.
일 예로, 단말 장치(100-1 ~ 100-n)에서 생성하는 동형 암호문은 비밀키를 이용하여 복호화 하였을 때 다음과 같은 성질을 만족하는 형태로 생성된다.For example, the isochronous ciphertexts generated by the terminal devices 100-1 to 100-n are generated in a form that satisfies the following properties when decrypted using the secret key.
[수학식 1][Equation 1]
Dec(ct,sk) = <ct,sk> = ΔM+e(mod q)Dec (ct, sk) = <ct, sk> =? M + e (mod q)
여기서 < , >는 내적 연산(usual inner product), ct는 암호문, sk는 비밀키, M은 평문 메시지, e는 암호화 에러 값, Δ는 스케일링 팩터(scaling factor), 그리고 q는 암호문의 모듈러스(Modulus)를 의미한다. q는 스케일링 팩터가 메시지에 곱해진 결과값 ΔM 보다 크게 선택되어야 한다. 에러 값 e의 절대값이 ΔM에 비해서 충분히 작다면, 암호문의 복호화 값 ΔM+e 는 유효숫자연산에서 원래의 메시지를 동일한 정밀도로 대체할 수 있는 값이다. 복호화된 데이터 중에서 에러는 최하위 비트(LSB) 측에 배치되고, ΔM은 차하위 비트 측에 배치된다. Where c is the usual inner product, ct is the ciphertext, sk is the secret key, M is the plaintext message, e is the encryption error value, Δ is the scaling factor, and q is the modulus of the ciphertext ). q should be chosen larger than the resultant value M multiplied by the scaling factor in the message. If the absolute value of the error value e is sufficiently small compared to? M, then the decrypted value? M + e of the ciphertext is a value that can replace the original message with the same precision in the significant number operation. Of the decoded data, the error is arranged on the least significant bit (LSB) side, and? M is arranged on the lower-order bit side.
메시지의 크기가 너무 작거나 너무 큰 경우, 스케일링 팩터를 이용하여 그 크기를 조절할 수도 있다. 스케일링 팩터를 사용하게 되면, 정수 형태의 메시지 뿐만 아니라 실수 형태의 메시지까지도 암호화할 수 있게 되므로, 활용성이 크게 증대할 수 있다. 또한, 스케일링 팩터를 이용하여 메시지의 크기를 조절함으로써, 연산이 이루어지고 난 이후의 암호문에서 메시지들이 존재하는 영역, 즉, 유효 영역의 크기도 조절될 수 있다.If the message size is too small or too large, you can adjust its size using a scaling factor. If the scaling factor is used, not only the integer type message but also the real type message can be encrypted, so that the usability can be greatly increased. Also, by adjusting the size of the message using the scaling factor, the size of the area where the messages exist in the cipher text after the operation is performed, that is, the size of the valid area can be adjusted.
실시 예에 따라, 암호문 모듈러스 q는 다양한 형태로 설정되어 사용될 수 있다. 일 예로, 암호문의 모듈러스는 스케일링 팩터 Δ의 지수승 q=ΔL 형태로 설정될 수 있다. Δ가 2라면, q=210 과 같은 값으로 설정될 수 있다. According to the embodiment, the cipher text modulus q can be set and used in various forms. As an example, the modulus of the ciphertext can be set to the exponentiation of the scaling factor? = Q?? L. If? Is 2, it can be set to the same value as q = 2 10 .
다른 예로, 암호문 모듈러스는 복수의 서로 다른 스케일링 팩터들을 곱한 값으로 설정될 수도 있다. 각 팩터들은 유사 범위 이내의 값, 즉, 서로 비슷한 크기의 값으로 설정된다. 구체적으로는, q=q1 q2 q3 ··· qx로 설정되며, q1, q2, q3 ,, qx 각각은 스케일링 인수 Δ와 비슷한 크기이며 서로 소 관계의 값으로 설정된다. 스케일링 팩터를 이와 같은 방식으로 설정하게 되면, CRT(Chinese Remainder Theorem)에 따라 전체 연산을 복수 개의 모듈러스 연산으로 분리하여 진행할 수 있게 되므로, 연산 부담을 경감시킬 수 있다. 또한, 서로 비슷한 크기의 팩터를 사용함에 따라, 후술하는 단계에서 라운딩 처리를 수행하였을 때, 앞선 예에서의 결과값과 거의 같은 결과를 얻을 수 있다.As another example, the cipher text modulus may be set to a value multiplied by a plurality of different scaling factors. Each factor is set to a value within a similar range, i.e., a value of a similar size. Specifically, q = q 1 q 2 q 3 ... Q x , and q 1 , q 2 , q 3 , and q x are each set to a value of a small size similar to the scaling factor Δ . When the scaling factor is set in this manner, the entire operation can be divided into a plurality of modulo operations according to the CRT (Chinese Remainder Theorem), so that the calculation burden can be reduced. Also, by using factors having similar sizes, when the rounding process is performed in the step described later, the result almost equal to the result value in the previous example can be obtained.
이상과 같이, 각 단말 장치(100-1 ~ 100-n)에서 생성한 암호문은 제1 서버 장치(200)에 의해 처리된 후, 암호문 상태로 제2 서버 장치(300)로 전송된다. 제2 서버 장치(300)는 전송된 암호문을 비밀키를 이용하여 복호화한다. 동형 암호화 처리가 되었기 때문에, 복호화된 데이터는 메시지 자체를 복호화한 후 연산 처리한 결과와 같은 결과가 될 수 있다. 결과적으로 중간 과정에서 제3자에게 유출될 위험을 방지할 수 있게 된다. As described above, the cipher texts generated by the respective terminal apparatuses 100-1 to 100-n are processed by the
도 1의 실시 예에서 암호화를 수행하는데 사용되는 공개 키는 각 단말 장치에 의해 생성될 수도 있고, 복호화를 수행하는 제2 서버 장치(300)에서 생성한 후 각 단말 장치로 배포할 수도 있다. In the embodiment of FIG. 1, a public key used for performing encryption may be generated by each terminal device, or may be generated by a
키 생성 과정에서는 Ring-LWE 기법이 사용될 수 있다. 제2 서버 장치(300)가 키를 생성하는 경우로 가정하면, 제2 서버 장치(300)는 각종 파라미터 및 링을 설정한다. 구체적으로는, 평문 메시지 비트의 길이, 공개 키 및 비밀키의 크기 등과 같은 다양한 파라미터들을 설정할 수 있다. In the key generation process, the Ring-LWE technique can be used. Assuming that the
링은 다음과 같은 수학식으로 표현될 수 있다.The ring can be expressed by the following equation.
[수학식 2]&Quot; (2) "
링(Ring)이란 기 설정된 계수를 가지는 다항식의 집합을 의미한다. 일 예로, 링은 계수가 Zq인 n차 다항식의 집합을 의미한다. 수학식 2에서 f(x)는 n차 다항식을 의미한다. 구체적으로는, n이 Φ(N)일 때, N차 사이클로토믹 다항식 (N-th cyclotomic polynomial)을 의미한다. (f(x))란 f(x)로 생성되는 Zq[x]의 이데알(ideal)을 나타낸다. Euler totient 함수 Φ(N)이란 N과 서로소이고 N보다 작은 자연수의 개수를 의미한다. ΦN(x)를 N차 사이클로토믹 다항식으로 정의하면, 링은 다음과 같은 수학식으로도 표현될 수 있다. A ring means a set of polynomials having predetermined coefficients. As an example, a ring means a set of n-degree polynomials with coefficients Zq. In Equation (2), f (x) denotes the n-th order polynomial. Specifically, when n is Φ (N), it means an N-th cyclotomic polynomial. (f (x)) denotes the ideal of Zq [x] generated by f (x). The Euler totient function Φ (N) means the number of natural numbers that are small and smaller than N. If N (x) is defined as a Nth-order cyclotomic polynomial, then the ring can also be expressed by the following equation.
[수학식 3]&Quot; (3) "
다음으로, 제2 서버 장치(300)는 링으로부터 비밀키(sk)를 산출한다. Next, the
[수학식 4]&Quot; (4) "
s(x)는 작은 계수로 랜덤하게 생성한 다항식을 의미한다. s (x) means a randomly generated polynomial with a small coefficient.
제2 서버 장치(300)는 링으로부터 제1 랜덤 다항식(a(x))을 산출한다. 제1 랜덤 다항식은 다음과 같이 표현될 수 있다. The
[수학식 5]&Quot; (5) "
또한, 제2 서버 장치(300) 는 이산 가우시안 분포 또는 그와 통계적 거리가 가까운 분포로부터 에러를 추출한다. 에러는 다음과 같은 수학식으로 표현될 수 있다.In addition, the
[수학식 6]&Quot; (6) "
에러까지 산출되면, 제2 서버 장치(300) 는 제1 랜덤 다항식 및 비밀키에 에러를 모듈러 연산하여 제2 랜덤 다항식을 산출할 수 있다. 제2 랜덤 다항식은 다음과 같이 표현될 수 있다. If the error is calculated, the
[수학식 7]&Quot; (7) "
최종적으로 공개키(pk)는 제1 랜덤 다항식 및 제2 랜덤 다항식을 포함하는 형태로 다음과 같이 설정된다. Finally, the public key pk is set as follows including the first random polynomial and the second random polynomial.
[수학식 8]&Quot; (8) "
제2 서버 장치(300)는 생성된 공개키를 각 단말 장치들(100-1 ~ 100-n)로 전송한다. 각 단말 장치들(100-1 ~ 100-n)은 수신된 공개키를 저장한 후, 암호화 시에 사용한다. The
상술한 예에서는 제2 서버 장치(300)가 공개키 및 비밀키를 생성하는 것으로 설명하였으나, 다른 예에서는 각 단말 장치(100-1 ~ 100-n) 또는 기타 장치가 공개키 및 비밀키 중 적어도 하나를 생성한 후, 타 장치와 공유하는 것도 가능하다. 또한, 상술한 키 생성 방법은 일 예에 불과하므로, 반드시 이에 한정되는 것은 아니며, 이 밖에 다른 방법으로 공개키 및 비밀키를 생성할 수도 있음은 물론이다. In the above-described example, the
도 2는 본 발명의 일 실시 예에 따른 단말 장치(100) 및 서버 장치(200)의 구성을 나타내는 블록도이다. 2 is a block diagram showing a configuration of a
도 2에 따르면, 단말 장치(100)는 메모리(110), 프로세서(120), 통신부(130)를 포함한다. 2, the
메모리(110)는 단말 장치(100)를 구동하기 위한 O/S나 각종 소프트웨어, 데이터 등을 저장하기 위한 구성요소이다. 메모리(110)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다. The
메모리(110)는 공개키, 스케일링 팩터 등을 저장할 수 있다. The
프로세서(120)는 메모리(110)에 저장된 프로그램을 실행시켜 각종 연산 작업을 수행하기 위한 구성요소이다. The
통신부(130)는 외부 장치들과 통신을 수행하기 위한 구성요소이다. 통신부(130)는 와이파이, 지그비, 블루투스, NFC 등과 같은 무선 통신뿐만 아니라, 각종 유선 통신 인터페이스를 통한 유선 통신을 지원하는 형태로도 구현될 수 있다. The
프로세서(120)는 암호화할 메시지에 스케일링 팩터를 반영한 후, 공개 키를 이용하여 암호화하여 동형 암호문을 생성한다. 프로세서(120)는 생성된 동형 암호문을 외부 장치로 전송하도록 통신부(130)를 제어할 수 있다.The
동형 암호문은 상술한 바와 같은 수학식 1과 같은 성질을 만족하도록 생성된다. 구체적으로, 프로세서(120)는 암호화할 메시지 M에 스케일링 팩터 Δ를 곱하여 정수 또는 정수 계수의 다항식인 ΔM을 계산한다.The isomorphic cipher text is generated so as to satisfy the above-mentioned property of Equation (1). Specifically, the
그리고 나서, 다항식 v를 랜덤하게 결정한다. 프로세서(120)는 v를 작은 분포(예를 들어, 이산 가우시안 또는 이와 유사한 분포)로부터 산출할 수 있다. 프로세서(120)는 에러 e0, e1도 작은 에러 분포(예를 들어, 이산 가우시안 또는 이와 유사한 분포)로부터 뽑을 수 있다. Then, the polynomial v is randomly determined.
프로세서(120)는 공개키 와, 다음과 같은 수학식을 이용하여 암호문을 생성한다.
[수학식 9]&Quot; (9) "
암호화할 메시지는 외부 소스로부터 수신할 수도 있고, 단말 장치(100)에 직접 구비 또는 연결된 입력 장치로부터 입력될 수도 있다. 또한, 스케일링 팩터도 사용자가 직접 입력하거나, 다른 장치를 통해 제공받을 수도 있다. 예를 들어, 단말 장치(100)가 터치 스크린이나 키 패드를 포함하는 경우, 프로세서(120)는 사용자가 터치 스크린이나 키 패드를 통해 입력하는 데이터를 메모리(110)에 저장한 후, 암호화할 수 있다. 생성된 동형 암호문은 복호화하였을 때 메시지에 스케일링 팩터를 반영한 값에 에러를 더한 결과값으로 복원되는 형태가 될 수 있다. 스케일링 팩터는 사전에 입력되어 설정된 값을 그대로 사용할 수도 있다. The message to be encrypted may be received from an external source or may be input from an input device directly connected to or connected to the
상술한 암호문의 모듈러스 q는 실시 예에 따라 상이하게 설정될 수 있다. 일 예로, 프로세서(120)는 암호문 모듈러스를 스케일링 팩터 Δ의 지수승 형태로 설정할 수 있다. 다른 예로, 프로세서(120)는 암호문 모듈러스를 복수의 서로 다른 스케일링 팩터들을 곱한 값으로 설정될 수도 있다. 프로세서(120)는 설정한 암호문 모듈러스를 메모리(110)에 저장할 수도 있다. 상술한 바와 같이 각 팩터들은 유사 범위 이내에서 서로 소인 관계를 자질 수 있다. The modulus q of the above-described ciphertext can be set differently according to the embodiment. As an example, the
프로세서(120)는 공개 키의 암호화를 위하여 에러를 사용할 수도 있다. 에러는 이산 가우시안 분포 또는 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 산출할 수 있다. 일 예로, 상술한 수학식 6과 같은 형태의 에러를 산출할 수 있다. 프로세서(120)는 메시지가 입력되면 스케일링 팩터를 그 메시지에 승산한 값에 에러를 가산한 후, 공개 키를 이용하여 암호화할 수 있다. 이 경우, 암호문을 복호화하였을 때 산출되는 에러 값은 암호화 시에 가산했던 초기 에러와 상이하게 도출된다.
또는, 메시지 및 스케일링 팩터를 승산한 상태에서 바로 공개 키를 이용하여 암호화할 수도 있다. 이 경우, 암호화 과정에서 산출되는 에러가 메시지 및 스케일링 팩터를 승산한 결과값에 가산될 수 있다. Alternatively, the message and the scaling factor may be multiplied and encrypted using the public key immediately. In this case, the error produced in the encryption process may be added to the result of multiplying the message and the scaling factor.
프로세서(120)는 암호문의 길이를 스케일링 팩터의 크기에 대응되도록 생성할 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 패킹(packing)이 이루어질 수도 있다. 동형 암호화에서 패킹을 이용하게 되면, 다수의 메시지를 하나의 암호문으로 암호화하는 것이 가능해진다. 이 경우, 제1 서버 장치(200)에서 각 암호문들 간의 연산을 수행하게 되면, 결과적으로 다수의 메시지에 대한 연산이 병렬적으로 처리되므로 연산 부담이 크게 줄어들게 된다. According to an embodiment of the present invention, packing may be performed. When packing is used in homogeneous encryption, it becomes possible to encrypt a large number of messages with one cipher text. In this case, if the
구체적으로는, 프로세서(120)는 메시지가 복수의 메시지 벡터로 이루어지는 경우, 복수의 메시지 벡터를 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환한 후, 그 다항식에 스케일링 팩터를 승산하고 공개 키를 이용하여 동형 암호화할 수도 있다. 이에 따라, 복수의 메시지 벡터를 패킹한 암호문을 생성할 수 있다. Specifically, when the message is composed of a plurality of message vectors, the
구체적으로는, 프로세서(120)는 N차 사이클로토믹 다항식 (N-th cyclotomic polynomial) 가 복소수()내에서 서로 다른 개의 근 (primitive N-th roots of unity)을 가진다는 점을 이용한다. 복소수 개념을 도입함으로써 후술하는 바와 같이 복수 개의 메시지를 동시에 동형 암호화하는 것이 가능하다.In particular, the
다음으로 기본 매장함수(canonical embedding function)를 변형하여 패킹 함수(σ)를 계산한다. 기본 매장함수는 다항식 를 의 근 중에서 복소수 켤례(complex conjugate) 관계가 아닌 개의 근 에서의 값들의 쌍 으로 대응시키는 함수이다. 이 함수가 동형함수(homomorphism)임은 이 분야에 평균적 지식을 가진 자라면 쉽게 증명할 수 있다.Next, the packing function (?) Is calculated by modifying the canonical embedding function. The basic store function is a polynomial To Near (Complex conjugate) relationship among Dog muscle A pair of values at . This function is homomorphism, and it is easy to prove it to anyone with average knowledge in this field.
기본 매장함수를 행렬(C)로 표현하면 다음과 같다.The basic store function is represented by matrix (C) as follows.
[수학식 10]&Quot; (10) "
다항식 를 계수들의 열벡터 로 표현하면, 이 다항식의 패킹 함수 와는 관계, 즉, 다음과 같은 관계를 가지게 된다. Polynomial The column vector of coefficients , The packing function of this polynomial And Relationship, that is, the following relationship.
[수학식 11]&Quot; (11) "
이와 같이 기본 매장 함수를 산출한 상태에서, 프로세서(120)는 복수 개(예를 들어, n/2개)의 메시지 벡터 가 입력되면, 상술한 기본 매장 함수를 이용하여 메시지 벡터들을 다항식으로 변환한다. In this way, the
[수학식 12]&Quot; (12) "
수학식 12와 같은 방식으로 변환된 다항식 M(x)는 와 같은 관계를 만족한다. The polynomial M (x) transformed in the same manner as in the expression (12) And so on.
프로세서(120)는 상술한 방식으로 변환된 다항식에 스케일링 팩터를 승산한 후, 공개 키를 이용하여 동형 암호화할 수 있다. 일 예로, 동형 암호화 방법 중 하나인 Ring LWE(Learning with Errors) 방식을 이용하여 동형 암호화할 수 있다. The
구체적인 암호문은 다음과 같은 형태로 표현될 수 있다. The concrete ciphertext can be expressed in the following form.
[수학식 13]&Quot; (13) "
상술한 바와 같이 단말 장치(100)가 생성한 동형 암호문은 제1 서버 장치(200)로 제공될 수 있다. 제1 서버 장치(200)는 단말 장치(100)로부터 수신되는 동형 암호문을 저장하여, 이후 연산 과정에 사용할 수 있다. 제1 서버 장치(200)는 복수의 서로 다른 단말 장치로부터 전송되는 여러 개의 동형 암호문 뿐만 아니라, 하나의 단말 장치(100)에서 전송되는 여러 개의 동형 암호문에 대해서도 연산 처리를 수행할 수 있다. As described above, the same type of cipher text generated by the
제1 서버 장치(200) 역시 메모리(210), 프로세서(220), 통신부(230)를 포함하는 형태로 구현될 수 있다. The
통신부(230)는 단말 장치(100)로부터 각종 동형 암호문을 수신할 수 있다. 각 동형 암호문은 서로 다른 단말 장치 또는 하나의 단말 장치에서 개별적으로 암호화된 데이터를 의미한다. The
프로세서(220)는 수신된 동형 암호문을 메모리(210)에 저장한다. 도 2에서는 메모리(210)만을 도시하였으나, 제1 서버 장치(200)는 대용량의 데이터를 저장하기 위한 별도의 스토리지를 더 포함할 수도 있고, 이와 별도로 외부 저장 장치와 연결되어 그 외부 저장 장치에 각 동형 암호문들을 저장할 수도 있다.The
프로세서(220)는 복수의 동형 암호문에 대하여 기 설정된 연산을 수행할 수 있다. 수행되는 연산의 종류는 제1 서버 장치(200)의 관리자에 의해 직접 선택될 수도 있고, 제2 서버 장치(300)로부터 요청을 받을 수도 있다.
일 예로, 연산은 승산, 제분, 가산, 감산 등과 같은 기본 연산으로 설정될 수도 있지만, 반드시 이에 한정되는 것은 아니다. 구체적으로는, 암호화된 메시지가 복소수 형태인 경우, 컨쥬게이트(conjugate) 연산이 수행될 수도 있고, 이밖에 통계나 소팅 등의 연산도 이루어질 수 있다. For example, the operation may be set to basic operations such as multiplication, milling, addition, subtraction, and the like, but is not limited thereto. Specifically, when the encrypted message is a complex number, a conjugate operation may be performed, and operations such as statistics and sorting may be performed.
복수의 동형 암호문 각각이 복수의 메시지 벡터를 패킹한 암호문인 경우에는, 프로세서(220)는 복수의 암호문 각각에 포함된 다항식들의 암호문을 병렬적으로 연산 처리할 수도 있다. 이 경우, 복수의 암호문들의 연산 순서를 로테이션시키거나, 랜덤하게 섞어서 연산을 수행할 수도 있다. 제2 서버 장치(200)의 구체적인 연산 동작에 대해서는 후술하는 부분에서 구체적으로 다시 설명한다.When each of the plurality of isochronous ciphertexts is a ciphertext in which a plurality of message vectors are packed, the
도 2에서는 단말 장치(100) 및 제1 서버 장치(200)가 각각 통신부, 메모리, 프로세서만을 포함하는 형태인 것으로 도시하였으나, 반드시 이러한 구성으로 한정되는 것은 아니다. 즉, 각 장치의 종류 및 사용 환경 등에 따라 입력 수단, 디스플레이, 버스 등과 같은 다양한 구성요소들을 더 포함할 수도 있다. 일 예로, 단말 장치(100)는 전송할 메시지나 스케일링 팩터 등을 입력받기 위한 입력부(미도시)를 더 포함할 수도 있다. 프로세서(120)는 입력부를 통해 입력된 메시지 또는 스케일링 팩터 등을 메모리(110)에 저장할 수 있다. 또한, 프로세서(120)는 입력된 스케일링 팩터를 이용하여 상술한 다양한 방법으로 암호문의 모듈러스를 설정한 후, 메모리(110)에 저장할 수도 있다. In FIG. 2, the
도 3은 본 발명의 일 실시 예에 따른 단말 장치의 암호화 방법을 설명하기 위한 흐름도이다. 3 is a flowchart illustrating a method of encrypting a terminal according to an exemplary embodiment of the present invention.
도 3에 따르면, 단말 장치(100)는 스케일링 팩터를 설정한다(S310). 스케일링 팩터의 설정 방법은 상술한 바와 같이 다양하게 구현될 수 있다. Referring to FIG. 3, the
단말 장치(100)는 설정된 스케일링 팩터를 저장한다. 단말 장치(100)는 암호화할 메시지가 발생하면, 그 메시지에 스케일링 팩터를 반영한 후, 공개 키를 이용하여 동형 암호화를 수행한다(S320). 공개 키는 단말 장치(100)가 직접 생성할 수도 있고, 외부 장치로부터 제공받을 수도 있다. The
도 4는 본 발명의 일 실시 예에 따른 서버 장치의 암호문 처리 방법을 설명하기 위한 흐름도이다. 도 1에 도시한 바와 같이, 암호문 처리는 제1 서버 장치에서 수행되므로, 이하에서는 제1 서버 장치(200)가 수행하는 방법으로 설명한다.4 is a flowchart illustrating a method of processing a cipher text in a server apparatus according to an embodiment of the present invention. As shown in FIG. 1, since the cipher text processing is performed in the first server device, a method performed by the
도 4에 따르면, 제1 서버 장치(200)는 복수의 동형 암호문을 수신한다(S410). 각 동형 암호문은 스케일링 팩터가 적용된 상태에서 공개 키를 이용하여 동형 암호화한 데이터를 의미한다. Referring to FIG. 4, the
제1 서버 장치(200)는 외부 장치 또는 관리자로부터 연산 요청이 입력되면(S420), 복수의 동형 암호문을 대상으로 요청된 연산을 수행한다(S430). 연산이 완료되면, 제1 서버 장치(200)는 연산 결과 데이터로부터 유효 영역의 데이터를 검출한다(S440). 제1 서버 장치(200)는 연산 결과 데이터를 라운딩 처리를 수행하여 유효 영역의 데이터를 검출할 수 있다. 라운딩 처리란 암호화된 상태에서 메시지의 반올림(round-off)을 진행하는 것을 의미하며, 다르게는 리스케일링(rescaling)이라고 할 수도 있다. 구체적으로는, 제1 서버 장치(300)는 암호문 각각의 성분에 스케일링 인수의 역수인 Δ-1을 곱하고 반올림 하여, 노이즈 영역을 제거한다. 노이즈 영역은 스케일링 팩터의 크기에 대응되도록 결정될 수 있다. 결과적으로 노이즈 영역이 제외된 유효 영역의 메시지를 검출할 수 있다. 암호화 상태에서 진행되므로 추가적인 에러가 발생하지만 크기는 충분히 작으므로 무시할 수 있다. When an operation request is input from an external device or an administrator (S420), the
도 5는 도 4의 암호문 처리 방법을 구체적으로 설명하기 위한 모식도이다. FIG. 5 is a schematic diagram for explaining the cipher text processing method of FIG. 4 in detail.
예를 들어, 제1 동형 암호문(51)과 제2 동형 암호문(52)을 대상으로, 곱셈 연산이 요청되었다면, 제1 서버 장치(200)는 암호문 상태에서 곱셈(S510)을 진행하여 연산 암호문(53)을 생성한다. 산출된 연산 암호문(53)은 스케일링 팩터가 반영된 메시지부(Δ2M1M2)와 에러 데이터(emult)를 포함한다. 곱셈 과정에서 에러 데이터의 크기가 커지기는 하지만, 후술하는 바와 같이 메시지부의 크기가 축소되므로 문제가 발생하지 않는다. 이는 덧셈에 대해서도 동일하게 작용한다.For example, if a multiplication operation is requested with respect to the first
다음으로 메시지부(Δ2M1M2)를 유효 숫자에 해당하는 부분, 즉 유효 영역으로 크기를 축소시켜서 최종 연산 암호문(54)을 생성한다. 상술한 바와 같이, 제2 서버 장치(200)는 연산 암호문(53)에 대하여 스케일링 팩터의 역수를 곱한 후 라운딩 처리하는 방식으로, 노이즈 영역을 제거할 수 있다. 결과적으로 유효 영역에 해당하는 데이터((ΔM1M2)'+e')를 포함하는 최종 연산 암호문(54)을 생성할 수 있다. 이러한 처리 과정에 의해 추가적인 에러가 발생하여 에러 데이터(emult)가 e'로 변경되지만 크기는 충분히 작으므로 무시할 수 있다.Next, the message portion ( 2 M 1 M 2 ) is reduced to a portion corresponding to the significant digits, that is, the valid region, thereby generating the final operation cipher text (54). As described above, the
도 6은 위에서 기술한 패킹 방법을 통해 복수의 메시지를 하나의 암호문에 암호화한 경우 연산을 수행하는 방법을 설명하기 위한 방법이다. 설명의 편의를 위하여 복수의 메시지 벡터를 암호화한 암호문을 패킹 암호문으로 명명한다. 도 6에 따르면, 제1 패킹 암호문 (ct)는 복수의 메시지(61-1 ~ 61-k)로 이루어진 벡터를 암호화하고 있고 제2 패킹 암호문 (ct')는 복수의 메시지(62-1 ~ 62-k)로 이루어진 벡터를 암호화한 암호문이다.6 is a method for explaining a method of performing an operation when a plurality of messages are encrypted into one cipher text through the packing method described above. For convenience of explanation, a cipher text in which a plurality of message vectors are encrypted is referred to as a packing cipher text. 6, the first packing ciphertext ct encrypts a vector consisting of a plurality of messages 61-1 through 61-k, and the second packing ciphertext ct 'encrypts a plurality of messages 62-1 through 62- -k). < / RTI >
제1 서버 장치(200)는 제1 패킹 암호문(ct)과 제2 패킹 암호문(ct')에 대한 연산이 요청되면 위에서 기술한 실시예 등의 방법으로 두 암호문의 연산을 수행한다. 결과적으로 한 번의 암호문 연산으로 여러 데이터의 병렬 처리가 가능한 SIMD (Single Instruction Multiple Data) 연산이 이루어질 수 있다.When the
도 6에 따르면, 제1 패킹 암호문(ct)의 첫번째 메시지 성분(61-1)과 제2 패킹 암호문(ct')의 첫번째 메시지 성분(62-1)이 곱해지게 된다. 그와 동시에 두번째 메시지 성분들(61-2, 62-2)의 곱셈도 이루어진다. 결과적으로 최종 패킹 암호문(ctmult)은 같은 위치에 있는 메시지 성분들의 곱셈 값들로 이루어진 벡터(63-1 ~ 63-k)를 암호화한 암호문으로 이해할 수 있다.According to FIG. 6, the first message component 61-1 of the first packed cipher text ct is multiplied by the first message component 62-1 of the second packed cipher text ct '. At the same time, multiplication of the second message components (61-2, 62-2) is also performed. As a result, the final packing ciphertext (ct mult ) can be understood as a ciphertext in which vectors (63-1 to 63-k) composed of multiplication values of message components at the same position are encrypted.
도 7 은 SIMD 연산을 수행함에 있어서, 일부 동형 암호문의 위치를 변경하여 처리하는 방법을 설명하기 위한 도면이다. 도 7에 따르면, 제1 패킹 암호문(ct)을 이용하여 새로운 제2 패킹 암호문(ct')를 생성할 수 있다. 이때 제2 패킹 암호문의 첫번째 성분은 제1 패킹 암호문의 두번째 메시지 성분과 같아지도록 제1 패킹 암호문(ct)을 쉬프트시킨다. 그와 동시에 제2 패킹 암호문의 두 번째 성분은 제1 패킹 암호문의 세번째 메시지 성분과 같아진다. 결과적으로 제2 패킹 암호문은 제1패킹 암호문의 모든 메시지 위치를 이동시킨 새로운 메시지 벡터를 암호화한 패킹암호문이다. 본 명세서에서는 이상과 같이 암호문의 위치를 이동시키는 작업을 로테이션 처리라 한다.FIG. 7 is a diagram for explaining a method of performing processing by changing the position of a part of isomorphic ciphertext in SIMD operation. 7, a new second packing cipher text ct 'can be generated using the first packing cipher text ct. At this time, the first packing ciphertext (ct) is shifted so that the first component of the second packing ciphertext becomes the same as the second message component of the first packing ciphertext. At the same time, the second component of the second packing cipher is equal to the third message component of the first packing cipher. As a result, the second packing cipher text is a packing cipher text in which a new message vector that moves all message positions of the first packing cipher is encrypted. In this specification, the operation of moving the position of the ciphertext is referred to as a rotation process as described above.
도 8은 도 1의 네트워크 시스템의 동작을 종합적으로 설명하기 위한 타이밍도이다. 도 8에서는, 두 개의 단말 장치(100-1, 100-2)에서 암호문을 전송하는 경우를 도시하였다. FIG. 8 is a timing chart for explaining operations of the network system of FIG. 1 in general. FIG. 8 shows a case where a cipher text is transmitted from two terminal apparatuses 100-1 and 100-2.
먼저, 단말 장치 1(100-1)에서 제1 메시지가 입력되면(S810), 단말 장치 1(100-1)은 상술한 방식으로 제1 동형 암호문을 생성한 후(S815), 제1 서버 장치(200)로 전송할 수 있다(S820). 일 예로, 단말 장치 1(100-1)의 사용자가 사진을 촬영한 경우에는 그 사진 및 촬영 장소 등이 암호화될 수도 있고, 사용자가 음악 컨텐츠를 재생하거나 특정 URL로 접속하였다면, 그 재생 이력 이나 URL 접속 이력 등이 암호화될 수도 있다. First, when a first message is inputted in the terminal device 1 (100-1) (S810), the terminal device 1 (100-1) generates a first isoform cipher text in the above-described manner (S815) (S820). For example, when a user of the terminal device 1 (100-1) takes a picture, the picture and the photographing place may be encrypted. Alternatively, if the user reproduces the music content or connects to the specific URL, Connection history and the like may be encrypted.
단말 장치 2(100-2)도 유사한 형태로 암호문을 생성하여 제1 서버 장치(200)로 전송할 수 있다(S825, S830, S835).The terminal apparatus 2 (100-2) can also generate a cipher text in a similar form and transmit it to the first server apparatus 200 (S825, S830, S835).
제1 서버 장치(200)는 전송된 암호문들을 암호화된 그 상태 그대로 저장한다. 이러한 상태에서 제2 서버 장치(300)가 특정 연산을 요청한다면(S840), 제1 서버 장치(200)는 암호문 상태로 연산을 수행한 후(S845), 제2 서버 장치(300)로 전송한다(S850). 제2 서버 장치(300)는 전송된 암호문을 복호화하여 메시지를 검출한다. The
예를 들어, 수학식 9와 같은 형태로 암호화된 암호문을 제2 서버 장치(300)가 비밀키 sk=(1, s)로 복호화한다면, 그 결과는 다음과 같은 수학식으로 표현될 수 있다. For example, if the
[수학식 14]&Quot; (14) "
결과적으로 복호화된 데이터는 스케일링 팩터 및 메시지를 곱한 값에 작은 크기의 에러 esmall를 더한 값을 포함하며, 에러는 LSB 측에 배치되고 ΔM은 에러에 인접한 위치에 배치되게 된다. As a result, the decoded data includes a value obtained by multiplying the scaling factor and the message by a small error e small , and the error is placed on the LSB side and DELTA M is placed on the position adjacent to the error.
구체적인 예를 들어, 제1 메시지가 1.23이고 제2 메시지가 3.45이며, 스케일링 팩터 Δ=103 이라고 가정하면, ΔM1+e1 ≒1230, ΔM2+e2 ≒3450이 된다. 제1 서버 장치(200)에서 곱하기 연산을 수행하면, 데이터는 Δ2M1M2 + etotal ≒ 4243500 이 된다. 이 결과값에 Δ-1을 승산한 후 라운딩 처리하면 4243이 된다. 제2 서버 장치(200)는 복호화에 의해 이러한 결과값을 얻을 수 있다. A specific example, a first message and the second message is 1.23 3.45, assuming that the scaling factor Δ = 10 3, ΔM is the 1 + e 1 ≒ 1230, ΔM 2 + e 2 ≒ 3450. When the multiplication operation is performed in the
제2 서버 장치(300)는 복호화된 메시지를 출력할 수 있다(S860). 예를 들어, 단말 장치 1, 2(100-1, 100-2)가 각각 사진을 제1 서버 장치(200)로 전송한 상태라면, 제2 서버 장치(300)는 각 장치(100-1, 100-2)에서 촬영된 사진을 한꺼번에 출력하여 줄 수 있다. The
상술한 실시 예에서는 제1 서버 장치(200)에서 암호문들 간의 연산을 수행하고, 노이즈 영역을 제거한 후 제2 서버 장치(300)로 전송하는 것으로 도시 및 설명하였으나 반드시 이에 한정되는 것은 아니다. 예를 들어, 제2 서버 장치(300)가 스케일링 팩터에 대한 정보를 알고 있다면, 직접 노이즈 영역을 제거하여 유효 영역을 검출한 후 복호화를 진행할 수도 있다. In the above-described embodiment, the
이상과 같은 암호화 방법 및 암호문 처리 방법은 각종 어플리케이션의 실행 결과뿐만 아니라 사용자가 직접 입력한 각종 신용 정보나 개인 정보 들의 수집에도 사용될 수 있다. 제2 서버 장치(300)가 은행 서버인 경우, 은행은 고객들의 신용 정보 중 필요한 항목들만 모아서 확인할 수 있다. The encryption method and the cipher text processing method as described above can be used not only for execution results of various applications, but also for collection of various credit information and personal information directly inputted by the user. If the
한편, 상술한 다양한 실시 예들에 따른 암호화 방법 및 암호문 처리 방법 등은, 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 암호화 또는 암호문 처리 등의 동작들을 수행할 수 있다. Meanwhile, the encryption method and the cipher text processing method according to various embodiments described above may be implemented in the form of program codes for performing the respective steps, and may be stored and distributed on the recording medium. In this case, the apparatus on which the recording medium is mounted can perform the above-mentioned operations such as encryption or ciphering processing.
이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다. Such a recording medium may be various types of computer readable media such as ROM, RAM, memory chip, memory card, external hard disk, hard disk, CD, DVD, magnetic disk or magnetic tape.
이상 설명한 바와 같이, 본 발명의 다양한 실시 예에 따라 암호화 및 암호문 처리 등을 수행하게 되면 양자 컴퓨터 시대에서도 안전하며, 암호화/복호화 속도를 크게 향상시킬 수 있고 암호문 크기도 줄일 수 있다. 특히, 암호화에 사용되는 메시지를 실수 영역까지 확장시킬 수 있어서 활용성이 크게 증대될 수 있다. As described above, according to various embodiments of the present invention, encryption and ciphertext processing are performed securely in the quantum computer age, and the encryption / decryption rate can be greatly improved and the size of ciphertext can be reduced. Particularly, since the message used for encryption can be extended to the real area, the usability can be greatly increased.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.While the present invention has been described with reference to the accompanying drawings, it is to be understood that the scope of the present invention is defined by the claims that follow, and should not be construed as limited to the above-described embodiments and / or drawings. It is to be expressly understood that improvements, changes and modifications that are obvious to those skilled in the art are also within the scope of the present invention as set forth in the claims.
100: 단말 장치 110: 메모리
120: 프로세서 130 : 통신부100: terminal device 110: memory
120: processor 130:
Claims (15)
스케일링 팩터를 설정하는 단계; 및
암호화할 메시지에 상기 스케일링 팩터를 반영한 후 공개키를 이용하여 암호화하여 동형 암호문을 생성하는 단계;를 포함하며,
상기 동형 암호문은, 복호화하였을 때 상기 메시지에 상기 스케일링 팩터를 반영한 값에 에러 값을 가산한 결과값이 복원되는 형태인, 암호화 방법.A method for encrypting a terminal apparatus,
Setting a scaling factor; And
Encrypting a message to be encrypted with the scaling factor, and encrypting the message using a public key to generate a ciphertext;
Wherein the isochronous ciphertext is a form in which a result obtained by adding an error value to a value reflecting the scaling factor is restored in the message when decrypted.
상기 동형 암호문의 모듈러스는,
하나의 스케일링 팩터의 지수승으로 설정되는, 암호화 방법. The method according to claim 1,
The modulus of the iso-
Quot; is set to the exponentiation power of one scaling factor.
상기 동형 암호문의 모듈러스는,
복수의 서로 다른 스케일링 팩터들을 승산한 값이며,
상기 복수의 서로 다른 스케일링 팩터들은 유사 범위 이내에서 서로 소 관계인 값들로 설정되는, 암호화 방법. The method according to claim 1,
The modulus of the iso-
Is a value obtained by multiplying a plurality of different scaling factors,
Wherein the plurality of different scaling factors are set to values that are small relative to each other within a similar range.
상기 동형 암호문을 생성하는 단계는,
이산 가우시안 분포 또는 상기 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 에러를 산출하는 단계; 및
상기 메시지에 상기 스케일링 팩터를 승산하고 상기 에러를 가산한 후, 상기 공개키를 이용하여 암호화하여 상기 동형 암호문을 생성하는 단계;를 포함하는, 암호화 방법.The method according to claim 1,
Wherein the step of generating the iso-
Calculating an error from a discrete Gaussian distribution or a distribution having a statistical distance from the discrete Gaussian distribution; And
Multiplying the message by the scaling factor, adding the error, and encrypting the message using the public key to generate the isoform ciphertext.
상기 메시지가 복수의 메시지 벡터인 경우, 상기 복수의 메시지 벡터를, 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환하는 단계;를 더 포함하며,
상기 동형 암호문을 생성하는 단계는, 상기 다항식에 상기 스케일링 팩터를 승산한 후, 상기 공개키를 이용하여 동형 암호화하는 것을, 특징으로 하는 암호화 방법. The method according to claim 1,
If the message is a plurality of message vectors, transforming the plurality of message vectors into a polynomial of a form that can be encrypted in parallel,
Wherein the step of generating the isoform ciphertext comprises the steps of: multiplying the polynomial equation by the scaling factor; and then performing the same type of encryption using the public key.
개별적으로 암호화된 복수의 동형 암호문을 수신하는 단계;
상기 복수의 동형 암호문에 대하여 기 설정된 연산을 수행하는 단계;
상기 연산에 의해 산출된 결과 암호문으로부터 노이즈 영역을 제거하여 유효 영역의 데이터를 추출하는 단계;를 포함하며,
상기 복수의 동형 암호문 각각은 메시지에 스케일링 팩터를 승산 한 후 암호화한 암호문이며,
상기 노이즈 영역은 상기 스케일링 팩터의 크기에 대응되도록 결정된, 암호문 처리 방법. A method of processing a cipher text in a server device,
Receiving a plurality of individually encrypted isomorphic ciphertexts;
Performing a predetermined operation on the plurality of isomorphic ciphertexts;
And extracting data of a valid region by removing a noise region from the resultant cipher text calculated by the calculation,
Wherein each of the plurality of isochronous ciphertexts is a cipher text obtained by multiplying a message by a scaling factor and then encrypting the message,
Wherein the noise region is determined to correspond to a size of the scaling factor.
상기 복수의 동형 암호문 각각이 복수의 메시지 벡터를 패킹한 암호문이면, 상기 복수의 동형 암호문 각각에 포함된 메시지 벡터들을 병렬적으로 연산 처리하는 단계;를 더 포함하는 암호문 처리 방법. The method according to claim 6,
And if each of the plurality of isochronous ciphertexts is a ciphertext packed with a plurality of message vectors, processing message vectors included in each of the plurality of isochronous ciphertexts in parallel.
상기 복수의 동형 암호문에 포함된 각 메시지 벡터들 간의 순서를 로테이션시키는 단계;를 더 포함하는, 암호문 처리 방법. 8. The method of claim 7,
And rotating the order of each message vector included in the plurality of isomorphic ciphertexts.
상기 메시지가 복소수인 경우, 상기 복수의 동형 암호문에 대하여 컨쥬게이션(conjugation) 연산을 수행하는 단계;를 더 포함하는 암호문 처리 방법.8. The method of claim 7,
And performing a conjugation operation on the plurality of isomorphic ciphertexts when the message is a complex number.
스케일링 팩터 및 공개키가 저장된 메모리;
암호화할 메시지에 상기 스케일링 팩터를 반영한 후 상기 공개키를 이용하여 암호화하여 동형 암호문을 생성하는 프로세서; 및
상기 동형 암호문을 외부 장치로 전송하는 통신부;를 포함하며,
상기 동형 암호문은, 복호화하였을 때 상기 메시지에 상기 스케일링 팩터를 반영한 값에 에러 값을 승산한 결과값이 복원되는 형태인, 단말 장치.In the terminal device,
A memory for storing a scaling factor and a public key;
A processor for reflecting the scaling factor to a message to be encrypted and then encrypting the message using the public key to generate an isochronous ciphertext; And
And a communication unit for transmitting the same type of cipher text to an external device,
Wherein the isochronous ciphertext is a form in which a result obtained by multiplying a value reflecting the scaling factor by an error value is restored in the message when decrypted.
상기 메시지 및 상기 스케일링 팩터를 입력받기 위한 입력부;를 더 포함하며,
상기 프로세서는 상기 입력부를 통해 입력된 상기 메시지 및 상기 스케일링 팩터를 상기 메모리에 저장하는, 단말 장치. 11. The method of claim 10,
And an input unit for receiving the message and the scaling factor,
Wherein the processor stores the message and the scaling factor input via the input unit in the memory.
상기 프로세서는,
상기 동형 암호문의 모듈러스를 상기 스케일링 팩터의 지수승으로 설정하여 상기 메모리에 저장하는, 단말 장치. 11. The method of claim 10,
The processor comprising:
And sets the modulus of the isochronous ciphertext to the scaling factor of the scaling factor and stores the result in the memory.
상기 프로세서는,
상기 동형 암호문의 모듈러스를 복수의 서로 다른 스케일링 팩터들을 승산한 값으로 설정하여 상기 메모리에 저장하며,
상기 복수의 서로 다른 스케일링 팩터들은 유사 범위 이내에서 서로 소 관계인 값들로 설정되는, 단말 장치. 11. The method of claim 10,
The processor comprising:
The modulus of the isoform ciphertext is set to a value obtained by multiplying a plurality of different scaling factors and stored in the memory,
Wherein the plurality of different scaling factors are set to values that are mutually small within a similar range.
상기 프로세서는,
이산 가우시안 분포 또는 상기 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 에러를 산출하고, 상기 메시지 및 상기 스케일링 팩터를 승산한 값에 상기 에러를 가산한 후, 상기 공개키를 이용하여 암호화하는, 단말 장치.11. The method of claim 10,
The processor comprising:
The error is calculated from a discrete Gaussian distribution or a distribution having a statistical distance close to the discrete Gaussian distribution, and the error is added to a value obtained by multiplying the message and the scaling factor, and then encrypted using the public key.
상기 프로세서는,
상기 메시지가 복수의 메시지 벡터인 경우, 상기 복수의 메시지 벡터를, 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환하며,
상기 다항식에 상기 스케일링 팩터를 승산한 후, 상기 공개키를 이용하여 동형 암호화하는, 단말 장치.11. The method of claim 10,
The processor comprising:
If the message is a plurality of message vectors, converting the plurality of message vectors into polynomials of a form capable of being encrypted in parallel,
Multiplies the polynomial equation by the scaling factor, and then encrypts the same using the public key.
Priority Applications (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170173608A KR101965628B1 (en) | 2017-12-15 | 2017-12-15 | Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof |
US16/478,596 US10778409B2 (en) | 2017-12-15 | 2018-12-07 | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
JP2019572731A JP7049374B2 (en) | 2017-12-15 | 2018-12-17 | A terminal device that performs the same type of encryption, a server device that processes the ciphertext, and its method. |
PCT/KR2018/016060 WO2019117694A1 (en) | 2017-12-15 | 2018-12-17 | Terminal device for performing homomorphic encryption, server device for processing cipher text thereof, and methods therefor |
EP20200111.1A EP3793127B1 (en) | 2017-12-15 | 2018-12-17 | Terminal device performing homomorphic encryption, server device processing cipher text thereof, and methods thereof |
EP18882269.6A EP3553995B1 (en) | 2017-12-15 | 2018-12-17 | Terminal device for performing homomorphic encryption, server device for processing cipher text thereof, and methods therefor |
SG10202100111PA SG10202100111PA (en) | 2017-12-15 | 2018-12-17 | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
CN201880008003.6A CN110214433B (en) | 2017-12-15 | 2018-12-17 | Terminal device for homomorphic encryption, encryption method thereof and ciphertext processing method of server device |
CN202210769462.4A CN115134068A (en) | 2017-12-15 | 2018-12-17 | Terminal device for homomorphic encryption and encryption method of terminal device |
SG11202001984SA SG11202001984SA (en) | 2017-12-15 | 2018-12-17 | Terminal device for performing homomorphic encryption, server device for processing cipher text thereof, and methods therefor |
US16/773,044 US11101976B2 (en) | 2017-12-15 | 2020-01-27 | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
US16/855,262 US11115183B2 (en) | 2017-12-15 | 2020-04-22 | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
JP2022021844A JP7370402B2 (en) | 2017-12-15 | 2022-02-16 | Encryption method and terminal in terminal device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170173608A KR101965628B1 (en) | 2017-12-15 | 2017-12-15 | Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101965628B1 true KR101965628B1 (en) | 2019-04-04 |
Family
ID=66105330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170173608A KR101965628B1 (en) | 2017-12-15 | 2017-12-15 | Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101965628B1 (en) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210083974A (en) | 2019-12-27 | 2021-07-07 | 삼성에스디에스 주식회사 | Apparatus and method for performing operation using approximation function |
US11115182B2 (en) | 2018-07-27 | 2021-09-07 | Crypto Lab Inc. | Apparatus for approximately processing encrypted messages and methods thereof |
WO2021206275A1 (en) * | 2020-04-08 | 2021-10-14 | 주식회사 크립토랩 | Encoding or decoding for approximate encrypted ciphertext |
KR20210128303A (en) * | 2020-04-16 | 2021-10-26 | 주식회사 크립토랩 | Method for encrypting or decrypting message by space complexity |
WO2021256843A1 (en) * | 2020-06-15 | 2021-12-23 | 주식회사 크립토랩 | Device and method for performing statistical calculation on homomorphic ciphertext |
KR20220048156A (en) | 2020-10-12 | 2022-04-19 | 삼성에스디에스 주식회사 | System and method for calculating non-linear function for machine learning using homomorphic encryption and multi-party computation |
US11483128B2 (en) | 2020-05-29 | 2022-10-25 | Samsung Electronics Co., Ltd. | Homomorphic encryption device and ciphertext arithmetic method thereof |
US11496295B2 (en) | 2019-12-23 | 2022-11-08 | Samsung Electronics Co., Ltd. | Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device |
US11546134B2 (en) | 2020-04-16 | 2023-01-03 | Samsung Electronics Co., Ltd. | Method and apparatus for processing ciphertext based on homomorphic encryption |
WO2023282359A1 (en) * | 2021-07-05 | 2023-01-12 | 주식회사 크립토랩 | Method for homomorphic encryption or decryption considering space complexity |
US11558172B2 (en) | 2020-04-22 | 2023-01-17 | Samsung Electronics Co., Ltd. | Encryption method and apparatus based on homomorphic encryption using composition of functions |
US11637700B2 (en) | 2020-08-14 | 2023-04-25 | Samsung Electronics Co., Ltd. | Method and apparatus with encryption based on error variance in homomorphic encryption |
US11671239B2 (en) | 2020-05-08 | 2023-06-06 | Samsung Electronics Co., Ltd. | Encryption method and apparatus based on homomorphic encryption using odd function property |
US11870889B2 (en) | 2021-02-23 | 2024-01-09 | Samsung Electronics Co., Ltd. | Method and apparatus with homomorphic encryption |
KR102710768B1 (en) | 2019-12-27 | 2024-09-26 | 삼성에스디에스 주식회사 | Apparatus and method for performing operation using approximation function |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2317689A2 (en) * | 2009-09-04 | 2011-05-04 | Gradiant-Centro Tecnoloxico de Telecomunicacións de Galicia | Cryptographic system for performing secure computations and signal processing directly on encrypted data in untrusted environments |
KR20140095179A (en) * | 2013-01-24 | 2014-08-01 | 서울대학교산학협력단 | Homomorphic Encryption and Decryption Method using Ring Isomorphism and apparatus using the same |
KR20150122513A (en) * | 2014-04-23 | 2015-11-02 | 삼성전자주식회사 | Encryption apparatus, method for encryption and computer-readable recording medium |
KR20170122458A (en) * | 2016-04-27 | 2017-11-06 | 서울대학교산학협력단 | Homomorphic Encryption Method by Which Ciphertext Size Is Reduced |
-
2017
- 2017-12-15 KR KR1020170173608A patent/KR101965628B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2317689A2 (en) * | 2009-09-04 | 2011-05-04 | Gradiant-Centro Tecnoloxico de Telecomunicacións de Galicia | Cryptographic system for performing secure computations and signal processing directly on encrypted data in untrusted environments |
KR20140095179A (en) * | 2013-01-24 | 2014-08-01 | 서울대학교산학협력단 | Homomorphic Encryption and Decryption Method using Ring Isomorphism and apparatus using the same |
KR20150122513A (en) * | 2014-04-23 | 2015-11-02 | 삼성전자주식회사 | Encryption apparatus, method for encryption and computer-readable recording medium |
KR20170122458A (en) * | 2016-04-27 | 2017-11-06 | 서울대학교산학협력단 | Homomorphic Encryption Method by Which Ciphertext Size Is Reduced |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11115182B2 (en) | 2018-07-27 | 2021-09-07 | Crypto Lab Inc. | Apparatus for approximately processing encrypted messages and methods thereof |
US11496295B2 (en) | 2019-12-23 | 2022-11-08 | Samsung Electronics Co., Ltd. | Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device |
KR102710768B1 (en) | 2019-12-27 | 2024-09-26 | 삼성에스디에스 주식회사 | Apparatus and method for performing operation using approximation function |
KR20210083974A (en) | 2019-12-27 | 2021-07-07 | 삼성에스디에스 주식회사 | Apparatus and method for performing operation using approximation function |
US11411714B2 (en) | 2019-12-27 | 2022-08-09 | Samsung Sds Co., Ltd. | Apparatus and method for performing operation using approximation function |
KR20210125352A (en) * | 2020-04-08 | 2021-10-18 | 주식회사 크립토랩 | Encoding or decoding for approximate encrypted messages |
KR102393941B1 (en) * | 2020-04-08 | 2022-05-04 | 주식회사 크립토랩 | Encoding or decoding for approximate encrypted messages |
WO2021206275A1 (en) * | 2020-04-08 | 2021-10-14 | 주식회사 크립토랩 | Encoding or decoding for approximate encrypted ciphertext |
KR102349855B1 (en) * | 2020-04-16 | 2022-01-11 | 주식회사 크립토랩 | Method for encrypting or decrypting message by space complexity |
KR20210128303A (en) * | 2020-04-16 | 2021-10-26 | 주식회사 크립토랩 | Method for encrypting or decrypting message by space complexity |
US11546134B2 (en) | 2020-04-16 | 2023-01-03 | Samsung Electronics Co., Ltd. | Method and apparatus for processing ciphertext based on homomorphic encryption |
US11558172B2 (en) | 2020-04-22 | 2023-01-17 | Samsung Electronics Co., Ltd. | Encryption method and apparatus based on homomorphic encryption using composition of functions |
US11671239B2 (en) | 2020-05-08 | 2023-06-06 | Samsung Electronics Co., Ltd. | Encryption method and apparatus based on homomorphic encryption using odd function property |
US11483128B2 (en) | 2020-05-29 | 2022-10-25 | Samsung Electronics Co., Ltd. | Homomorphic encryption device and ciphertext arithmetic method thereof |
KR20220163493A (en) * | 2020-06-15 | 2022-12-09 | 주식회사 크립토랩 | Apparatus and method for performing statistical calculation on homomorphic ciphertext |
KR102522708B1 (en) | 2020-06-15 | 2023-04-18 | 주식회사 크립토랩 | Apparatus and method for performing statistical calculation on homomorphic ciphertext |
WO2021256843A1 (en) * | 2020-06-15 | 2021-12-23 | 주식회사 크립토랩 | Device and method for performing statistical calculation on homomorphic ciphertext |
US11637700B2 (en) | 2020-08-14 | 2023-04-25 | Samsung Electronics Co., Ltd. | Method and apparatus with encryption based on error variance in homomorphic encryption |
KR20220048156A (en) | 2020-10-12 | 2022-04-19 | 삼성에스디에스 주식회사 | System and method for calculating non-linear function for machine learning using homomorphic encryption and multi-party computation |
US11870889B2 (en) | 2021-02-23 | 2024-01-09 | Samsung Electronics Co., Ltd. | Method and apparatus with homomorphic encryption |
WO2023282359A1 (en) * | 2021-07-05 | 2023-01-12 | 주식회사 크립토랩 | Method for homomorphic encryption or decryption considering space complexity |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101965628B1 (en) | Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof | |
CN110214433B (en) | Terminal device for homomorphic encryption, encryption method thereof and ciphertext processing method of server device | |
JP6964688B2 (en) | Devices and methods for performing approximation operations on ciphertext | |
KR102040106B1 (en) | Method for homomorphic encryption of plain text in real numbers | |
US20120269340A1 (en) | Hierarchical encryption/decryption device and method thereof | |
KR102297536B1 (en) | Apparatus for processing non-polynomial operation on encrypted messages and methods thereof | |
KR20140114933A (en) | System and method for providing compressed encryption and decryption in homomorphic cryptography based on intergers | |
KR102349855B1 (en) | Method for encrypting or decrypting message by space complexity | |
KR102393942B1 (en) | Apparatus for performing quorum design on secret key and method thereof | |
KR20220121221A (en) | Apparatus for conversion of homomorphic encrypted messase and method thereof | |
JP7170878B2 (en) | Apparatus and method for performing non-polynomial arithmetic on ciphertext | |
KR102475273B1 (en) | Simulation apparatus for homomorphic encryption system and method thereof | |
KR102522708B1 (en) | Apparatus and method for performing statistical calculation on homomorphic ciphertext | |
CN112131596B (en) | Encryption and decryption method, equipment and storage medium | |
KR102452181B1 (en) | Apparatus for sorting of approximate encrypted messages and method thereof | |
KR102160294B1 (en) | Apparatus for performing quorum design on secret key and method thereof | |
JP4685621B2 (en) | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program | |
JP2013098722A (en) | Ciphering device of stream cipher, deciphering device of stream cipher, ciphering method of stream cipher, deciphering method of stream cipher, and program | |
KR102393941B1 (en) | Encoding or decoding for approximate encrypted messages | |
KR20240140829A (en) | Electronic apparatus for bootstrap processing homomorphic encrypted messages and methods thereof | |
KR20230049052A (en) | Method for generating secret key of lattice electronic signature and apparatus thereof | |
KR20230127905A (en) | Apparatus for generating blind signature and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |