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 PDF

Info

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
Application number
KR1020170173608A
Other languages
Korean (ko)
Inventor
천정희
송용수
한규형
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020170173608A priority Critical patent/KR101965628B1/en
Priority to US16/478,596 priority patent/US10778409B2/en
Priority to SG10202100111PA priority patent/SG10202100111PA/en
Priority to JP2019572731A priority patent/JP7049374B2/en
Priority to PCT/KR2018/016060 priority patent/WO2019117694A1/en
Priority to EP20200111.1A priority patent/EP3793127B1/en
Priority to EP18882269.6A priority patent/EP3553995B1/en
Priority to CN201880008003.6A priority patent/CN110214433B/en
Priority to CN202210769462.4A priority patent/CN115134068A/en
Priority to SG11202001984SA priority patent/SG11202001984SA/en
Application granted granted Critical
Publication of KR101965628B1 publication Critical patent/KR101965628B1/en
Priority to US16/773,044 priority patent/US11101976B2/en
Priority to US16/855,262 priority patent/US11115183B2/en
Priority to JP2022021844A priority patent/JP7370402B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

An encryption method is disclosed. According to the method, a homomorphic encrypted message can be generated by reflecting a scaling factor in a message and using a public key. The generated encrypted message is generated in such a way that a result obtained by adding an error value to the value reflecting the scaling factor in the message when the message is decrypted. Thus, a homomorphic encrypted message that can be operated in an encrypted message state can be effectively generated.

Description

동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들 {TERMINAL DEVICE FOR PERFORMING HOMOMORPHIC ENCRYPTION, SERVER DEVICE FOR CALCULATING ENCRYPTED MESSAGES, AND METHODS THEREOF}TECHNICAL FIELD [0001] The present invention relates to a terminal device that performs homogeneous encryption, a server device that processes the cipher text, and methods thereof. [0002]

본 발명은 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들에 대한 것이다. 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 first server device 200, and a second server device 300 may be connected to each other through a network 10. [ The network 10 may be implemented in various types of wired / wireless communication networks, broadcasting communication networks, optical communication networks, cloud networks, etc., and each device may be connected in a manner such as Wi-Fi, Bluetooth, Near Field Communication It is possible.

도 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 first server 200 stores such information, and the second server 300 performs a part or all of the information stored in the first server 200.

각 단말 장치(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 first server device 200. [ The first server apparatus 200 can store the transmitted isomorphic cipher text in a cipher text state without decrypting it.

제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 second server device 300 may request the first server device 200 for a specific processing result for the same type cipher text. The first server device 200 performs a specific operation according to the request, and then transmits the result to the second server device 300. For example, when the ciphertexts ct1 and ct2 transmitted by the two terminal devices 100-1 and 100-2 are stored in the first server device 200, the second server device 300 transmits the ciphertexts ct1 and ct2 transmitted from the two terminal devices 100-1 and 100-2, , And 100-2 to the first server device 200. The first server device 200 may request the first server device 200 and the second server device 200, The first server device 200 may perform an operation of adding two ciphertexts according to a request and then transmit the resultant value ct1 + ct2 to the second server device 300. [

각 단말 장치는 동형 암호화를 수행하는 과정에서 산출되는 암호화 노이즈, 즉, 에러를 암호문에 포함시킨다. 구체적으로는, 각 단말 장치(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 first server apparatus 200 and then transmitted to the second server apparatus 300 in the cipher text state. The second server device 300 decrypts the transmitted cipher text using the secret key. Since the same type of encryption processing has been performed, the decrypted data can be the same result as the result of the operation after decoding the message itself. As a result, it is possible to prevent the risk of leakage to third parties in the intermediate process.

도 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 second server device 300 that performs decryption and distributed to each terminal device.

키 생성 과정에서는 Ring-LWE 기법이 사용될 수 있다. 제2 서버 장치(300)가 키를 생성하는 경우로 가정하면, 제2 서버 장치(300)는 각종 파라미터 및 링을 설정한다. 구체적으로는, 평문 메시지 비트의 길이, 공개 키 및 비밀키의 크기 등과 같은 다양한 파라미터들을 설정할 수 있다. In the key generation process, the Ring-LWE technique can be used. Assuming that the second server device 300 generates a key, the second server device 300 sets various parameters and rings. Specifically, various parameters such as the length of the plaintext message bits, the size of the public key and the secret key, and the like can be set.

링은 다음과 같은 수학식으로 표현될 수 있다.The ring can be expressed by the following equation.

[수학식 2]&Quot; (2) &quot;

Figure 112017125460189-pat00001
Figure 112017125460189-pat00001

링(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) &quot;

Figure 112017125460189-pat00002
Figure 112017125460189-pat00002

다음으로, 제2 서버 장치(300)는 링으로부터 비밀키(sk)를 산출한다. Next, the second server device 300 calculates the secret key sk from the ring.

[수학식 4]&Quot; (4) &quot;

Figure 112017125460189-pat00003
Figure 112017125460189-pat00003

s(x)는 작은 계수로 랜덤하게 생성한 다항식을 의미한다. s (x) means a randomly generated polynomial with a small coefficient.

제2 서버 장치(300)는 링으로부터 제1 랜덤 다항식(a(x))을 산출한다. 제1 랜덤 다항식은 다음과 같이 표현될 수 있다. The second server device 300 calculates the first random polynomial a (x) from the ring. The first random polynomial can be expressed as:

[수학식 5]&Quot; (5) &quot;

Figure 112017125460189-pat00004
Figure 112017125460189-pat00004

또한, 제2 서버 장치(300) 는 이산 가우시안 분포 또는 그와 통계적 거리가 가까운 분포로부터 에러를 추출한다. 에러는 다음과 같은 수학식으로 표현될 수 있다.In addition, the second server apparatus 300 extracts the error from the discrete Gaussian distribution or a distribution having a statistical distance from the discrete Gaussian distribution. The error can be expressed by the following equation.

[수학식 6]&Quot; (6) &quot;

Figure 112017125460189-pat00005
Figure 112017125460189-pat00005

에러까지 산출되면, 제2 서버 장치(300) 는 제1 랜덤 다항식 및 비밀키에 에러를 모듈러 연산하여 제2 랜덤 다항식을 산출할 수 있다. 제2 랜덤 다항식은 다음과 같이 표현될 수 있다. If the error is calculated, the second server device 300 may modulate the error with the first random polynomial and the secret key to yield a second random polynomial. The second random polynomial can be expressed as:

[수학식 7]&Quot; (7) &quot;

Figure 112017125460189-pat00006
Figure 112017125460189-pat00006

최종적으로 공개키(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) &quot;

Figure 112017125460189-pat00007
Figure 112017125460189-pat00007

제2 서버 장치(300)는 생성된 공개키를 각 단말 장치들(100-1 ~ 100-n)로 전송한다. 각 단말 장치들(100-1 ~ 100-n)은 수신된 공개키를 저장한 후, 암호화 시에 사용한다. The second server device 300 transmits the generated public key to each of the terminal devices 100-1 through 100-n. Each of the terminal devices 100-1 to 100-n stores the received public key and uses it for encryption.

상술한 예에서는 제2 서버 장치(300)가 공개키 및 비밀키를 생성하는 것으로 설명하였으나, 다른 예에서는 각 단말 장치(100-1 ~ 100-n) 또는 기타 장치가 공개키 및 비밀키 중 적어도 하나를 생성한 후, 타 장치와 공유하는 것도 가능하다. 또한, 상술한 키 생성 방법은 일 예에 불과하므로, 반드시 이에 한정되는 것은 아니며, 이 밖에 다른 방법으로 공개키 및 비밀키를 생성할 수도 있음은 물론이다. In the above-described example, the second server device 300 generates the public key and the secret key. However, in another example, each of the terminal devices 100-1 through 100-n or other device has at least one of a public key and a secret key It is also possible to create one and share it with other devices. In addition, the above-described key generation method is merely an example, and the present invention is not limited thereto. It is needless to say that a public key and a secret key may be generated by other methods.

도 2는 본 발명의 일 실시 예에 따른 단말 장치(100) 및 서버 장치(200)의 구성을 나타내는 블록도이다. 2 is a block diagram showing a configuration of a terminal device 100 and a server device 200 according to an embodiment of the present invention.

도 2에 따르면, 단말 장치(100)는 메모리(110), 프로세서(120), 통신부(130)를 포함한다. 2, the terminal device 100 includes a memory 110, a processor 120, and a communication unit 130.

메모리(110)는 단말 장치(100)를 구동하기 위한 O/S나 각종 소프트웨어, 데이터 등을 저장하기 위한 구성요소이다. 메모리(110)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다. The memory 110 is a component for storing O / S, various software, and data for driving the terminal device 100. [ The memory 110 may be implemented in various forms such as a RAM, a ROM, a flash memory, an HDD, an external memory, a memory card, and the like, but is not limited thereto.

메모리(110)는 공개키, 스케일링 팩터 등을 저장할 수 있다. The memory 110 may store a public key, a scaling factor, and the like.

프로세서(120)는 메모리(110)에 저장된 프로그램을 실행시켜 각종 연산 작업을 수행하기 위한 구성요소이다. The processor 120 is a component for executing a program stored in the memory 110 to perform various computing operations.

통신부(130)는 외부 장치들과 통신을 수행하기 위한 구성요소이다. 통신부(130)는 와이파이, 지그비, 블루투스, NFC 등과 같은 무선 통신뿐만 아니라, 각종 유선 통신 인터페이스를 통한 유선 통신을 지원하는 형태로도 구현될 수 있다. The communication unit 130 is a component for performing communication with external devices. The communication unit 130 may be implemented not only in wireless communication such as Wi-Fi, ZigBee, Bluetooth, and NFC, but also in a form supporting wired communication through various wired communication interfaces.

프로세서(120)는 암호화할 메시지에 스케일링 팩터를 반영한 후, 공개 키를 이용하여 암호화하여 동형 암호문을 생성한다. 프로세서(120)는 생성된 동형 암호문을 외부 장치로 전송하도록 통신부(130)를 제어할 수 있다.The processor 120 reflects the scaling factor in a message to be encrypted, and then encrypts the message using a public key to generate a ciphertext. The processor 120 may control the communication unit 130 to transmit the generated isoform ciphertext to the external device.

동형 암호문은 상술한 바와 같은 수학식 1과 같은 성질을 만족하도록 생성된다. 구체적으로, 프로세서(120)는 암호화할 메시지 M에 스케일링 팩터 Δ를 곱하여 정수 또는 정수 계수의 다항식인 ΔM을 계산한다.The isomorphic cipher text is generated so as to satisfy the above-mentioned property of Equation (1). Specifically, the processor 120 multiplies the message M to be encrypted with a scaling factor? To calculate? M, which is a polynomial of an integer or integer coefficient.

그리고 나서, 다항식 v를 랜덤하게 결정한다. 프로세서(120)는 v를 작은 분포(예를 들어, 이산 가우시안 또는 이와 유사한 분포)로부터 산출할 수 있다. 프로세서(120)는 에러 e0, e1도 작은 에러 분포(예를 들어, 이산 가우시안 또는 이와 유사한 분포)로부터 뽑을 수 있다. Then, the polynomial v is randomly determined. Processor 120 may calculate v from a small distribution (e. G., Discrete Gaussian or similar distribution). Processor 120 may be drawn from the error e 0, e 1 is also a small error distribution (e. G., A discrete Gaussian distribution or the like).

프로세서(120)는 공개키

Figure 112017125460189-pat00008
와, 다음과 같은 수학식을 이용하여 암호문을 생성한다. Processor 120 may be a public key
Figure 112017125460189-pat00008
And a ciphertext is generated using the following equation.

[수학식 9]&Quot; (9) &quot;

Figure 112017125460189-pat00009
Figure 112017125460189-pat00009

암호화할 메시지는 외부 소스로부터 수신할 수도 있고, 단말 장치(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 terminal device 100. [ In addition, the scaling factor may be entered directly by the user or may be provided through another device. For example, when the terminal device 100 includes a touch screen or a keypad, the processor 120 stores the data that the user inputs through the touch screen or the keypad in the memory 110, have. The generated isomorphic ciphertext can be reconstructed as a result of adding the error to the value reflecting the scaling factor in the message when decrypted. The scaling factor may be input in advance and used as it is.

상술한 암호문의 모듈러스 q는 실시 예에 따라 상이하게 설정될 수 있다. 일 예로, 프로세서(120)는 암호문 모듈러스를 스케일링 팩터 Δ의 지수승

Figure 112017125460189-pat00010
형태로 설정할 수 있다. 다른 예로, 프로세서(120)는 암호문 모듈러스를 복수의 서로 다른 스케일링 팩터들을 곱한 값으로 설정될 수도 있다. 프로세서(120)는 설정한 암호문 모듈러스를 메모리(110)에 저장할 수도 있다. 상술한 바와 같이 각 팩터들은 유사 범위 이내에서 서로 소인 관계를 자질 수 있다. The modulus q of the above-described ciphertext can be set differently according to the embodiment. As an example, the processor 120 may convert the cipher text modulus to an exponential &lt; RTI ID = 0.0 &gt;
Figure 112017125460189-pat00010
. As another example, the processor 120 may be set to a value obtained by multiplying the cipher text modulus by a plurality of different scaling factors. The processor 120 may store the set ciphertext modulus in the memory 110. As described above, the respective factors can have a scant relation with each other within a similar range.

프로세서(120)는 공개 키의 암호화를 위하여 에러를 사용할 수도 있다. 에러는 이산 가우시안 분포 또는 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 산출할 수 있다. 일 예로, 상술한 수학식 6과 같은 형태의 에러를 산출할 수 있다. 프로세서(120)는 메시지가 입력되면 스케일링 팩터를 그 메시지에 승산한 값에 에러를 가산한 후, 공개 키를 이용하여 암호화할 수 있다. 이 경우, 암호문을 복호화하였을 때 산출되는 에러 값은 암호화 시에 가산했던 초기 에러와 상이하게 도출된다.Processor 120 may use an error for encryption of the public key. The error can be calculated from a distribution having a statistical distance from the discrete Gaussian distribution or the discrete Gaussian distribution. For example, the error of the form of Equation (6) can be calculated. The processor 120 may add an error to the value obtained by multiplying the scaling factor by the message when the message is input, and then encrypt the message using the public key. In this case, the error value calculated when decrypting the ciphertext is derived differently from the initial error added at the time of encryption.

또는, 메시지 및 스케일링 팩터를 승산한 상태에서 바로 공개 키를 이용하여 암호화할 수도 있다. 이 경우, 암호화 과정에서 산출되는 에러가 메시지 및 스케일링 팩터를 승산한 결과값에 가산될 수 있다. 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)는 암호문의 길이를 스케일링 팩터의 크기에 대응되도록 생성할 수 있다.Processor 120 may generate the length of the ciphertext to correspond to the size of the scaling factor.

한편, 본 발명의 일 실시 예에 따르면, 패킹(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 first server device 200 performs an operation between the respective ciphertexts, the operation on the plurality of messages is processed in parallel, thereby greatly reducing the computational burden.

구체적으로는, 프로세서(120)는 메시지가 복수의 메시지 벡터로 이루어지는 경우, 복수의 메시지 벡터를 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환한 후, 그 다항식에 스케일링 팩터를 승산하고 공개 키를 이용하여 동형 암호화할 수도 있다. 이에 따라, 복수의 메시지 벡터를 패킹한 암호문을 생성할 수 있다. Specifically, when the message is composed of a plurality of message vectors, the processor 120 converts the plurality of message vectors into polynomials that can be encrypted in parallel, multiplies the polynomials by a scaling factor, And can be encrypted using the same method. Thus, a cipher text in which a plurality of message vectors are packed can be generated.

구체적으로는, 프로세서(120)는 N차 사이클로토믹 다항식 (N-th cyclotomic polynomial)

Figure 112017125460189-pat00011
가 복소수(
Figure 112017125460189-pat00012
)내에서 서로 다른
Figure 112017125460189-pat00013
개의 근
Figure 112017125460189-pat00014
(primitive N-th roots of unity)을 가진다는 점을 이용한다. 복소수 개념을 도입함으로써 후술하는 바와 같이 복수 개의 메시지를 동시에 동형 암호화하는 것이 가능하다.In particular, the processor 120 may include an N-th cyclotomic polynomial,
Figure 112017125460189-pat00011
Is a complex number (
Figure 112017125460189-pat00012
) Different within
Figure 112017125460189-pat00013
Dog muscle
Figure 112017125460189-pat00014
(primitive N-th roots of unity). By introducing the concept of a complex number, it is possible to simultaneously encrypt a plurality of messages as will be described later.

다음으로 기본 매장함수(canonical embedding function)를 변형하여 패킹 함수(σ)를 계산한다. 기본 매장함수는 다항식

Figure 112017125460189-pat00015
Figure 112017125460189-pat00016
의 근
Figure 112017125460189-pat00017
중에서 복소수 켤례(complex conjugate) 관계가 아닌
Figure 112017125460189-pat00018
개의 근
Figure 112017125460189-pat00019
에서의 값들의 쌍
Figure 112017125460189-pat00020
으로 대응시키는 함수이다. 이 함수가 동형함수(homomorphism)임은 이 분야에 평균적 지식을 가진 자라면 쉽게 증명할 수 있다.Next, the packing function (?) Is calculated by modifying the canonical embedding function. The basic store function is a polynomial
Figure 112017125460189-pat00015
To
Figure 112017125460189-pat00016
Near
Figure 112017125460189-pat00017
(Complex conjugate) relationship among
Figure 112017125460189-pat00018
Dog muscle
Figure 112017125460189-pat00019
A pair of values at
Figure 112017125460189-pat00020
. 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) &quot;

Figure 112017125460189-pat00021
Figure 112017125460189-pat00021

다항식

Figure 112017125460189-pat00022
를 계수들의 열벡터
Figure 112017125460189-pat00023
로 표현하면, 이 다항식의 패킹 함수
Figure 112017125460189-pat00024
와는
Figure 112017125460189-pat00025
관계, 즉, 다음과 같은 관계를 가지게 된다. Polynomial
Figure 112017125460189-pat00022
The column vector of coefficients
Figure 112017125460189-pat00023
, The packing function of this polynomial
Figure 112017125460189-pat00024
And
Figure 112017125460189-pat00025
Relationship, that is, the following relationship.

[수학식 11]&Quot; (11) &quot;

Figure 112017125460189-pat00026
Figure 112017125460189-pat00026

이와 같이 기본 매장 함수를 산출한 상태에서, 프로세서(120)는 복수 개(예를 들어, n/2개)의 메시지 벡터

Figure 112017125460189-pat00027
가 입력되면, 상술한 기본 매장 함수를 이용하여 메시지 벡터들을 다항식으로 변환한다. In this way, the processor 120 calculates a plurality of (for example, n / 2) message vectors
Figure 112017125460189-pat00027
The message vectors are converted into polynomials using the above-mentioned basic burial function.

[수학식 12]&Quot; (12) &quot;

Figure 112017125460189-pat00028
Figure 112017125460189-pat00028

수학식 12와 같은 방식으로 변환된 다항식 M(x)는

Figure 112017125460189-pat00029
와 같은 관계를 만족한다. The polynomial M (x) transformed in the same manner as in the expression (12)
Figure 112017125460189-pat00029
And so on.

프로세서(120)는 상술한 방식으로 변환된 다항식에 스케일링 팩터를 승산한 후, 공개 키를 이용하여 동형 암호화할 수 있다. 일 예로, 동형 암호화 방법 중 하나인 Ring LWE(Learning with Errors) 방식을 이용하여 동형 암호화할 수 있다. The processor 120 may multiply the transformed polynomial equation by the scaling factor in the above-described manner, and then may encrypt the same using the public key. For example, it is possible to encrypt the same type using Ring LWE (Learning with Errors) method, which is one of the same encryption methods.

구체적인 암호문은 다음과 같은 형태로 표현될 수 있다. The concrete ciphertext can be expressed in the following form.

[수학식 13]&Quot; (13) &quot;

Figure 112017125460189-pat00030
Figure 112017125460189-pat00030

상술한 바와 같이 단말 장치(100)가 생성한 동형 암호문은 제1 서버 장치(200)로 제공될 수 있다. 제1 서버 장치(200)는 단말 장치(100)로부터 수신되는 동형 암호문을 저장하여, 이후 연산 과정에 사용할 수 있다. 제1 서버 장치(200)는 복수의 서로 다른 단말 장치로부터 전송되는 여러 개의 동형 암호문 뿐만 아니라, 하나의 단말 장치(100)에서 전송되는 여러 개의 동형 암호문에 대해서도 연산 처리를 수행할 수 있다. As described above, the same type of cipher text generated by the terminal device 100 may be provided to the first server device 200. [ The first server device 200 stores the same-type cipher text received from the terminal device 100, and can use the same in the calculation process thereafter. The first server device 200 can perform not only a plurality of isoform ciphertexts transmitted from a plurality of different terminal devices but also a plurality of isoform ciphertexts transmitted from one terminal device 100. [

제1 서버 장치(200) 역시 메모리(210), 프로세서(220), 통신부(230)를 포함하는 형태로 구현될 수 있다. The first server device 200 may also be implemented as including a memory 210, a processor 220, and a communication unit 230.

통신부(230)는 단말 장치(100)로부터 각종 동형 암호문을 수신할 수 있다. 각 동형 암호문은 서로 다른 단말 장치 또는 하나의 단말 장치에서 개별적으로 암호화된 데이터를 의미한다. The communication unit 230 can receive various isomorphic ciphertexts from the terminal device 100. [ Each isomorphic cipher text means data encrypted separately from different terminal devices or one terminal device.

프로세서(220)는 수신된 동형 암호문을 메모리(210)에 저장한다. 도 2에서는 메모리(210)만을 도시하였으나, 제1 서버 장치(200)는 대용량의 데이터를 저장하기 위한 별도의 스토리지를 더 포함할 수도 있고, 이와 별도로 외부 저장 장치와 연결되어 그 외부 저장 장치에 각 동형 암호문들을 저장할 수도 있다.The processor 220 stores the received isomorphic cipher text in the memory 210. Although only the memory 210 is illustrated in FIG. 2, the first server 200 may further include a separate storage for storing a large amount of data, and may be connected to an external storage device separately from the external storage device. It is also possible to store homographies of the same type.

프로세서(220)는 복수의 동형 암호문에 대하여 기 설정된 연산을 수행할 수 있다. 수행되는 연산의 종류는 제1 서버 장치(200)의 관리자에 의해 직접 선택될 수도 있고, 제2 서버 장치(300)로부터 요청을 받을 수도 있다. Processor 220 may perform a predetermined operation on a plurality of isomorphic ciphertexts. The type of operation to be performed may be directly selected by the administrator of the first server device 200 or received from the second server device 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 processor 220 may parallelly process the ciphertexts of the polynomials contained in each of the plurality of ciphertexts. In this case, the operation order of the plurality of ciphertexts may be rotated, or the operation may be performed by mixing randomly. The specific operation of the second server 200 will be described later in detail.

도 2에서는 단말 장치(100) 및 제1 서버 장치(200)가 각각 통신부, 메모리, 프로세서만을 포함하는 형태인 것으로 도시하였으나, 반드시 이러한 구성으로 한정되는 것은 아니다. 즉, 각 장치의 종류 및 사용 환경 등에 따라 입력 수단, 디스플레이, 버스 등과 같은 다양한 구성요소들을 더 포함할 수도 있다. 일 예로, 단말 장치(100)는 전송할 메시지나 스케일링 팩터 등을 입력받기 위한 입력부(미도시)를 더 포함할 수도 있다. 프로세서(120)는 입력부를 통해 입력된 메시지 또는 스케일링 팩터 등을 메모리(110)에 저장할 수 있다. 또한, 프로세서(120)는 입력된 스케일링 팩터를 이용하여 상술한 다양한 방법으로 암호문의 모듈러스를 설정한 후, 메모리(110)에 저장할 수도 있다. In FIG. 2, the terminal device 100 and the first server device 200 are shown as including only a communication unit, a memory, and a processor, respectively. However, the present invention is not limited thereto. That is, it may further include various components such as an input means, a display, a bus, and the like according to the type of each device and the usage environment. For example, the terminal device 100 may further include an input unit (not shown) for receiving a message to be transmitted, a scaling factor, and the like. The processor 120 may store the message or scaling factor input through the input to the memory 110. In addition, the processor 120 may set the modulus of the ciphertext in various ways using the input scaling factor, and then store the modulus in the memory 110. [

도 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 terminal device 100 sets a scaling factor (S310). The scaling factor setting method may be variously implemented as described above.

단말 장치(100)는 설정된 스케일링 팩터를 저장한다. 단말 장치(100)는 암호화할 메시지가 발생하면, 그 메시지에 스케일링 팩터를 반영한 후, 공개 키를 이용하여 동형 암호화를 수행한다(S320). 공개 키는 단말 장치(100)가 직접 생성할 수도 있고, 외부 장치로부터 제공받을 수도 있다. The terminal device 100 stores the set scaling factor. When a message to be encrypted is generated, the terminal device 100 reflects the scaling factor in the message, and then performs the same type of encryption using the public key (S320). The public key may be directly generated by the terminal device 100 or may be provided from an external device.

도 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 first server device 200 will be described below.

도 4에 따르면, 제1 서버 장치(200)는 복수의 동형 암호문을 수신한다(S410). 각 동형 암호문은 스케일링 팩터가 적용된 상태에서 공개 키를 이용하여 동형 암호화한 데이터를 의미한다. Referring to FIG. 4, the first server device 200 receives a plurality of isomorphic ciphertexts (S410). Each isomorphic cipher text is data that has been encrypted using the public key in the state where the scaling factor is applied.

제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 first server 200 performs a requested operation on a plurality of isoform ciphertexts (S430). When the calculation is completed, the first server device 200 detects the data of the valid area from the calculation result data (S440). The first server device 200 can perform data rounding processing on the calculation result data to detect the data of the valid area. The rounding process means that the message is rounded off in an encrypted state, and may be referred to as rescaling. Specifically, the first server device 300 multiplies each component of the cipher text by the reciprocal of the scaling factor &Dgr; -1 and rounds it to remove the noise region. The noise region may be determined to correspond to the size of the scaling factor. As a result, it is possible to detect the message of the valid area excluding the noise area. Since it proceeds in the encrypted state, additional error occurs, but the size is small enough and can be ignored.

도 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 isochronous cipher text 51 and the second isochronous ciphertext 52, the first server 200 proceeds to the multiplication operation S510 in the cipher text state, 53). The computed cipher text 53 includes a message part ( 2 M 1 M 2 ) reflecting the scaling factor and error data (emult). Although the size of the error data increases in the multiplication process, the size of the message portion is reduced as described later, so that no problem arises. This is the same for addition.

다음으로 메시지부(Δ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 second server device 200 can remove the noise region by multiplying the operation cipher text 53 by the reciprocal of the scaling factor and performing a rounding process. As a result, the final operation cipher text 54 including the data ((M 1 M 2 ) '+ e') corresponding to the valid area can be generated. By this process, additional error occurs and the error data (emult) is changed to e ', but the size is sufficiently small and can be ignored.

도 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). &lt; / RTI &gt;

제1 서버 장치(200)는 제1 패킹 암호문(ct)과 제2 패킹 암호문(ct')에 대한 연산이 요청되면 위에서 기술한 실시예 등의 방법으로 두 암호문의 연산을 수행한다. 결과적으로 한 번의 암호문 연산으로 여러 데이터의 병렬 처리가 가능한 SIMD (Single Instruction Multiple Data) 연산이 이루어질 수 있다.When the first server 200 receives the first packing ciphertext ct and the second packing ciphertext ct ', the first server 200 performs operations of two ciphertexts according to the above-described embodiments. As a result, a single instruction multiple data (SIMD) operation capable of parallel processing of multiple data can be performed by a single ciphertext operation.

도 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 first server device 200 stores the transmitted encrypted texts in the encrypted state. If the second server device 300 requests a specific operation (S840), the first server device 200 performs an operation in a cipher text state (S845) and transmits the operation to the second server device 300 (S850). The second server device 300 decrypts the transmitted cipher text to detect the message.

예를 들어, 수학식 9와 같은 형태로 암호화된 암호문을 제2 서버 장치(300)가 비밀키 sk=(1, s)로 복호화한다면, 그 결과는 다음과 같은 수학식으로 표현될 수 있다. For example, if the second server device 300 decrypts the encrypted ciphertext in the form of Equation (9) to the secret key sk = (1, s), the result can be expressed by the following equation.

[수학식 14]&Quot; (14) &quot;

Figure 112017125460189-pat00031
Figure 112017125460189-pat00031

결과적으로 복호화된 데이터는 스케일링 팩터 및 메시지를 곱한 값에 작은 크기의 에러 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 first server device 200, the data becomes? 2 M 1 M 2 + e total ? 4243500. When this result value is multiplied by? -1 and rounded, the result is 4243. The second server device 200 can obtain such a result value by decoding.

제2 서버 장치(300)는 복호화된 메시지를 출력할 수 있다(S860). 예를 들어, 단말 장치 1, 2(100-1, 100-2)가 각각 사진을 제1 서버 장치(200)로 전송한 상태라면, 제2 서버 장치(300)는 각 장치(100-1, 100-2)에서 촬영된 사진을 한꺼번에 출력하여 줄 수 있다. The second server device 300 can output the decrypted message (S860). For example, if the terminal apparatuses 1 and 2 (100-1 and 100-2) have respectively transmitted pictures to the first server apparatus 200, the second server apparatus 300 transmits the pictures to the respective apparatuses 100-1, 100-2) can be outputted at a time.

상술한 실시 예에서는 제1 서버 장치(200)에서 암호문들 간의 연산을 수행하고, 노이즈 영역을 제거한 후 제2 서버 장치(300)로 전송하는 것으로 도시 및 설명하였으나 반드시 이에 한정되는 것은 아니다. 예를 들어, 제2 서버 장치(300)가 스케일링 팩터에 대한 정보를 알고 있다면, 직접 노이즈 영역을 제거하여 유효 영역을 검출한 후 복호화를 진행할 수도 있다. In the above-described embodiment, the first server 200 performs an operation between ciphertexts, removes the noise region, and transmits the ciphertexts to the second server 300. However, the present invention is not limited thereto. For example, if the second server device 300 knows the information on the scaling factor, it may detect the valid region by removing the direct noise region, and then proceed with decoding.

이상과 같은 암호화 방법 및 암호문 처리 방법은 각종 어플리케이션의 실행 결과뿐만 아니라 사용자가 직접 입력한 각종 신용 정보나 개인 정보 들의 수집에도 사용될 수 있다. 제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 second server device 300 is a bank server, the bank can collect and confirm only necessary items among the credit information of the customers.

한편, 상술한 다양한 실시 예들에 따른 암호화 방법 및 암호문 처리 방법 등은, 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 암호화 또는 암호문 처리 등의 동작들을 수행할 수 있다. 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.
제1항에 있어서,
상기 동형 암호문의 모듈러스는,
하나의 스케일링 팩터의 지수승으로 설정되는, 암호화 방법.
The method according to claim 1,
The modulus of the iso-
Quot; is set to the exponentiation power of one scaling factor.
제1항에 있어서,
상기 동형 암호문의 모듈러스는,
복수의 서로 다른 스케일링 팩터들을 승산한 값이며,
상기 복수의 서로 다른 스케일링 팩터들은 유사 범위 이내에서 서로 소 관계인 값들로 설정되는, 암호화 방법.
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.
제1항에 있어서,
상기 동형 암호문을 생성하는 단계는,
이산 가우시안 분포 또는 상기 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 에러를 산출하는 단계; 및
상기 메시지에 상기 스케일링 팩터를 승산하고 상기 에러를 가산한 후, 상기 공개키를 이용하여 암호화하여 상기 동형 암호문을 생성하는 단계;를 포함하는, 암호화 방법.
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.
제1항에 있어서,
상기 메시지가 복수의 메시지 벡터인 경우, 상기 복수의 메시지 벡터를, 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환하는 단계;를 더 포함하며,
상기 동형 암호문을 생성하는 단계는, 상기 다항식에 상기 스케일링 팩터를 승산한 후, 상기 공개키를 이용하여 동형 암호화하는 것을, 특징으로 하는 암호화 방법.
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.
제6항에 있어서,
상기 복수의 동형 암호문 각각이 복수의 메시지 벡터를 패킹한 암호문이면, 상기 복수의 동형 암호문 각각에 포함된 메시지 벡터들을 병렬적으로 연산 처리하는 단계;를 더 포함하는 암호문 처리 방법.
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.
제7항에 있어서,
상기 복수의 동형 암호문에 포함된 각 메시지 벡터들 간의 순서를 로테이션시키는 단계;를 더 포함하는, 암호문 처리 방법.
8. The method of claim 7,
And rotating the order of each message vector included in the plurality of isomorphic ciphertexts.
제7항에 있어서,
상기 메시지가 복소수인 경우, 상기 복수의 동형 암호문에 대하여 컨쥬게이션(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.
제10항에 있어서,
상기 메시지 및 상기 스케일링 팩터를 입력받기 위한 입력부;를 더 포함하며,
상기 프로세서는 상기 입력부를 통해 입력된 상기 메시지 및 상기 스케일링 팩터를 상기 메모리에 저장하는, 단말 장치.
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.
제10항에 있어서,
상기 프로세서는,
상기 동형 암호문의 모듈러스를 상기 스케일링 팩터의 지수승으로 설정하여 상기 메모리에 저장하는, 단말 장치.
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.
제10항에 있어서,
상기 프로세서는,
상기 동형 암호문의 모듈러스를 복수의 서로 다른 스케일링 팩터들을 승산한 값으로 설정하여 상기 메모리에 저장하며,
상기 복수의 서로 다른 스케일링 팩터들은 유사 범위 이내에서 서로 소 관계인 값들로 설정되는, 단말 장치.
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.
제10항에 있어서,
상기 프로세서는,
이산 가우시안 분포 또는 상기 이산 가우시안 분포와 통계적 거리가 가까운 분포로부터 에러를 산출하고, 상기 메시지 및 상기 스케일링 팩터를 승산한 값에 상기 에러를 가산한 후, 상기 공개키를 이용하여 암호화하는, 단말 장치.
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.
제10항에 있어서,
상기 프로세서는,
상기 메시지가 복수의 메시지 벡터인 경우, 상기 복수의 메시지 벡터를, 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환하며,
상기 다항식에 상기 스케일링 팩터를 승산한 후, 상기 공개키를 이용하여 동형 암호화하는, 단말 장치.
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.
KR1020170173608A 2017-12-15 2017-12-15 Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof KR101965628B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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