WO2020022598A1 - 암호문에 대한 근사 연산을 수행하는 장치 및 방법 - Google Patents

암호문에 대한 근사 연산을 수행하는 장치 및 방법 Download PDF

Info

Publication number
WO2020022598A1
WO2020022598A1 PCT/KR2019/001486 KR2019001486W WO2020022598A1 WO 2020022598 A1 WO2020022598 A1 WO 2020022598A1 KR 2019001486 W KR2019001486 W KR 2019001486W WO 2020022598 A1 WO2020022598 A1 WO 2020022598A1
Authority
WO
WIPO (PCT)
Prior art keywords
ciphertext
threshold
approximate
cipher text
operation result
Prior art date
Application number
PCT/KR2019/001486
Other languages
English (en)
French (fr)
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 JP2019560690A priority Critical patent/JP6964688B2/ja
Publication of WO2020022598A1 publication Critical patent/WO2020022598A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Definitions

  • the present invention relates to an apparatus and method for efficiently performing an approximation operation on cipher texts.
  • the other party When a message encrypted by an encryption technique is delivered to the other party, the other party must perform decryption in order to use the message. In this case, the counterpart is a waste of resources and time in the process of decrypting the encrypted data. In addition, when a hack of a third party is performed while the other party temporarily decodes the message for operation, the message may be easily leaked to the third party.
  • the present invention has been made in accordance with the above-described needs, and an object of the present invention is to provide a method and apparatus for performing an efficient approximation operation and approximate decryption on homogeneous cipher text.
  • the present invention is to achieve the above object, the method for processing a homogeneous cipher text according to an embodiment of the present invention, calculating an approximate polynomial corresponding to an operation function to be applied to the homogeneous cipher text and using the approximated polynomial And approximating the homogeneous cipher text.
  • the approximate polynomial is calculated such that an absolute value of the difference with the arithmetic function is equal to or less than a threshold.
  • the plain text space may be expanded by applying a function defined to obtain and remove a quotient obtained by dividing an encrypted input value by a predetermined threshold cipher text modulus to the operation result cipher text.
  • the threshold is set to a value less than a threshold for early rebooting, and the threshold may be the size of the plain text space in which subsequent operations on the ciphertext are impossible as a result of the calculation.
  • the method may further include providing additional information to be used to decrypt the operation result cipher text.
  • the additional information may include a scaling factor and a modulus value of the calculation result cipher text.
  • the computing device calculates an approximate polynomial corresponding to an interface for receiving homologous cryptograms, a memory for storing the homologous cryptograms, and an operation function to be applied to the homologous cryptograms, And a processor for approximating the homogeneous cipher text using a polynomial.
  • the processor sets the approximation polynomial so that an absolute value of the difference between the approximation polynomial and the operation polynomial is equal to or less than a threshold, and performs the approximation operation to obtain the approximation operation.
  • the plaintext space in the ciphertext can be expanded.
  • the processor may expand the plaintext space of the operation result ciphertext when the weight of the approximate message in the operation result ciphertext exceeds a threshold. have.
  • the threshold may be set to a value less than a threshold for early rebooting and stored in the memory, and the threshold may be the size of the plain text space in which subsequent operations on the ciphertext are impossible.
  • the processor may store additional information to be used to decrypt the calculation result cipher text in the memory, and the additional information may include a scaling factor and a modulus value of the calculation result cipher text.
  • FIG. 1 is a block diagram illustrating a data processing system according to an embodiment of the present invention
  • FIG. 2 is a block diagram showing a configuration of an encryption apparatus according to an embodiment of the present invention.
  • FIG. 3 is a block diagram showing a configuration of a computing device according to an embodiment of the present invention.
  • FIG. 5 is a view for explaining an operation of the data processing system of FIG. 1, and
  • FIG. 6 is a flowchart illustrating a homogeneous cipher text processing method according to an embodiment of the present invention.
  • value is defined as a concept including a vector as well as a scalar value.
  • a data processing system includes a plurality of apparatuses 100-1 to 100-3 and arithmetic apparatus 200.
  • a data processing system includes a plurality of apparatuses 100-1 to 100-3 and arithmetic apparatus 200.
  • three devices are included, but this may vary according to usage examples. For example, it may be implemented by only one device or may be implemented by three or more devices.
  • Each device 100-1 to 100-3 and the computing device 200 may be implemented in various types of devices such as a mobile phone, a tablet, a game player, a PC, a laptop PC, a home server, a kiosk, and other IoT functions. It can also be implemented in the form of the applied home appliances.
  • the first device 100-1 and the second device 100-2 perform homogeneous encryption, respectively, and provide the resultant homologous cipher text to the computing device 200.
  • the homologous cipher text means a homogeneous cipher text for an approximate message each containing an error.
  • the homogeneous cipher text generated by the first and second devices 100-1 and 100-2 is in a form in which a result value including a message and an error value is restored when decrypted later using a secret key. Can be generated.
  • a state in which an error is included in a message is called an approximate message.
  • the first and second devices 100-1 and 100-2 When the messages to be transmitted are input, the first and second devices 100-1 and 100-2 generate homogeneous cipher texts for the approximate message including an error.
  • an error may be added to each of the first and second devices 100-1 and 100-2 to homogeneously encrypt a message to form an approximate message.
  • the homogeneous cipher text generated by each of the first and second devices 100-1 and 100-2 is generated in a form satisfying the following properties when decrypted using a secret key.
  • ⁇ ,> is the inner inner product
  • ct is the ciphertext
  • sk is the secret key
  • M is the plaintext message
  • e is the encryption error value
  • q is the modulus of the ciphertext.
  • the computing device 200 performs an operation on the received homogeneous cipher texts.
  • the type of operation can be set in various ways. Due to the nature of the same type of cipher text, the computing device 200 may perform the operation without decryption, and the result value is also in the form of a cipher text. In the present specification, a result obtained by an operation is referred to as an operation result ciphertext.
  • the operation device 200 transmits the operation result cipher text to the third device 100-3.
  • the third device 100-3 may decrypt the received calculation result cipher text to obtain a calculation result value of data included in each homogeneous cipher text.
  • the first and second devices perform encryption and the third device performs decryption, but the present invention is not limited thereto.
  • the arithmetic device 100 may provide a calculation result value to at least one of the first and second devices.
  • two encryptions may be provided by performing two encryptions on one device, for example, the first device 100-1.
  • the computing device 200 may perform the calculation several times according to a user request. In this case, the weight of the approximate message in the ciphertext is different from the calculation result obtained for each operation. When the approximate message weight exceeds the threshold, the arithmetic device 200 expands the plain text space in the cipher text as a result of the calculation.
  • the computing device 200 may expand the plain text space by applying a function defined to obtain and remove a quotient obtained by dividing the encrypted input value by a predetermined threshold cipher text modulus to the cipher text of the calculation result.
  • Expansion of the plaintext space means changing the ciphertext ct into a ciphertext with a larger modulus. Extending the plain text space may be referred to as rebooting. As the reboot is performed, the ciphertext may be ready for operation again.
  • the first and second devices 100-1 and 100-2 are shown and described as creating a homogeneous cipher text for an approximate message including an error and providing the same to the computing device 200. It is not.
  • the computing device 200 may receive an isomorphic cipher text for the message itself rather than an approximate message.
  • the operation apparatus 200 may perform an approximation operation on the input homogeneous cipher texts.
  • An approximation operation is not an exact expression but an operation that is performed using an approximation that can obtain similar results. Approximation operations can be applied to homogeneous ciphertexts for general messages as well as homogeneous ciphertexts for general messages.
  • the computing device 200 calculates an approximate polynomial corresponding to the arithmetic function to be applied.
  • the arithmetic unit 200 may calculate an approximate polynomial such that an absolute value of the difference with the arithmetic function is equal to or less than a threshold. In this case, by the approximate operation, the plain text space of the operation result cipher text can be expanded.
  • the weight of the approximate message in the ciphertext is compared with the threshold and the threshold is exceeded. It is also possible to perform a plain text space expansion operation.
  • FIG. 2 illustrates a configuration of an encryption apparatus according to an embodiment of the present invention.
  • devices that perform homogeneous encryption such as the first and second devices 100-1 and 100-2, may be referred to as encryption devices.
  • the encryption apparatus 100 includes a processor 110 and a memory 120.
  • a processor 110 and a memory 120.
  • FIG. 2 only the minimum configuration necessary for the encryption operation is illustrated, and various components may be further added according to the type of the encryption apparatus 100.
  • a communication interface, a display unit, an input means, and the like may be further included.
  • these components are not directly related to homogeneous encryption, illustration and description are omitted.
  • the processor 110 stores the message in the memory 120.
  • the processor 110 homogeneously encrypts the message using various setting values and programs stored in the memory 120.
  • the public key can be used.
  • the processor 110 may generate and use a public key required for performing encryption on its own, or may receive and use it from an external device.
  • the third device 100-3 performing decryption may distribute the public key to other devices.
  • the processor 110 may generate a public key using a ring-LWE technique. Specifically, the processor 110 first sets various parameters and rings, and stores them in the memory 120. Examples of the parameters may include the length of the plain text message bits, the size of the public key and the private key.
  • the ring may be represented by the following equation.
  • Ring means a set of polynomials having predetermined coefficients.
  • a ring means a set of n th order polynomials having a coefficient of Zq.
  • f (x) means an n-th order polynomial.
  • n is ⁇ (N)
  • f (x) represents the ideal of Zq [x] produced by f (x).
  • Euler totient function ⁇ (N) is the number of natural numbers less than and smaller than N. If ⁇ N (x) is defined as the N-th order cyclotomic polynomial, the ring can also be expressed by the following equation.
  • the secret key sk may be expressed as follows.
  • s (x) means a polynomial generated randomly with small coefficients.
  • Processor 110 calculates a first random polynomial a (x) from the ring.
  • the first random polynomial can be expressed as follows.
  • the processor 110 extracts an error from a discrete Gaussian distribution or a distribution having a statistical distance close thereto.
  • the error may be expressed by the following equation.
  • the encryption apparatus 100 may calculate the second random polynomial by performing a modular operation on the first random polynomial and the secret key.
  • the second random polynomial can be expressed as follows.
  • the public key pk is set as follows to include a first random polynomial and a second random polynomial.
  • the present invention is not necessarily limited thereto.
  • the public key and the private key may be generated by other methods.
  • the processor 110 may store the same cipher text in the memory 120 or transmit the same cipher text to the computing device 200 according to a user request or a preset default command.
  • FIG. 3 is a block diagram illustrating a configuration of a computing device 200 according to an embodiment of the present invention.
  • the computing device 200 includes an interface 210, a processor 220, and a memory 230.
  • the computing device of FIG. 3 may further include various additional components, but parts not related or weak to the operation of the present invention will be omitted.
  • the interface 210 is a component for receiving or transmitting data and signals from various devices.
  • the interface 210 may be implemented as various wired or wireless communication interfaces such as LAN, wireless LAN, Wi-Fi, Bluetooth, Near Field Communication (NFC), Zigbee, and the like.
  • the processor 220 stores the homogeneous cipher text for the approximate message including the error in the memory 230 when the homogeneous cipher text is input through the interface 210. Even when a homogeneous cipher text for a general message containing no error is input, the processor 220 stores the same in the memory 230.
  • the memory 230 is a component for storing various programs and data as well as homogeneous cipher text.
  • the processor 220 performs an operation on homogeneous cipher texts according to a user request or a predetermined setting value. In this case, decryption of homogeneous cipher texts is not performed.
  • the type of operation can be set in various ways. As an example, if a multiplication value or an average value of two homogeneous cipher texts is requested, the processor 220 may multiply, or multiply, two divided homogeneous cipher texts by two. Alternatively, the processor 220 may perform an approximation operation.
  • the processor 220 checks the weight of the approximate message in the cipher text of the operation result obtained by the operation. When the approximate message weight exceeds the threshold, the processor 220 expands the plain text space of the operation result cipher text.
  • the processor 220 may extend the plain text space by applying a predetermined function to the operation result cipher text.
  • the processor 220 may use a function defined to obtain and remove a quotient of dividing an encrypted input value by a predetermined threshold ciphertext modulus.
  • the threshold may be set to any value and stored in memory 230 to suit encryption / decryption performance.
  • the threshold may be set to a specific gravity, that is, 100% when the calculation result occupies the plain text space.
  • it may be set to a value below the threshold value so that the reboot can be performed before the plain text space is occupied, that is, for an early reboot.
  • a limit of about 80-50% may be set.
  • the limit value means the size of the plain text space that the subsequent operation on the ciphertext is impossible as a result of the operation.
  • the processor 220 may calculate an approximate polynomial corresponding to the operation polynomial to be applied to the homologous cipher text, and calculate the calculation result cipher text using the calculated approximate polynomial to expand the plain text space.
  • the arithmetic polynomial is a decoding function
  • the approximate polynomial can be set such that the absolute value of the difference with the arithmetic polynomial is equal to or less than the threshold.
  • the decoding function may be set as follows.
  • the modulus operation included in the decoding function of Equation 9 can be approximately changed in the following manner.
  • a modulus operation may be calculated in a recursive manner.
  • the modulus operation can be expressed as follows.
  • Equation 11 k is an arbitrary integer. K may vary depending on the accuracy of the calculation or the characteristics of the parameter.
  • Sk means an approximate polynomial when the arithmetic function is a Sin function, as in Equation (11).
  • the processor 220 may store additional information to be used when the encryption result is later decrypted in the memory 230.
  • the additional information may include a position of the operation result message in the operation result cipher text, a modulus value used to expand the plain text space, and the like.
  • the processor 220 may provide the operation result cipher text and additional information through the interface 210 to the device requesting the operation result.
  • 4 is a diagram for specifically describing an operation of the computing device. 4 shows the operation and reboot process for two homogeneous ciphertexts 10 and 20.
  • Each homogeneous cipher text 10, 20 includes approximate message areas 11, 21, respectively.
  • messages and errors (m1 + e1, m2 + e2) are included together.
  • the computing device performs a specific operation using the two homogeneous ciphertexts 10 and 20 as input values.
  • the operation result ciphertext 30 includes an approximation message area 31 which contains the operation result m3 + e3 between each approximation message.
  • the approximate message area As the result of the operation becomes larger than the input value, the approximate message area also becomes large, thus reducing the remaining plain text space 32. If this operation is performed several times, the remaining plain text space 32 will eventually disappear or become smaller than the limit, making the operation impossible. If it is determined in this state, the computing device 200 performs a reboot.
  • the ciphertext 40 on which the reboot has been performed has the plain text space 42 expanded instead of the approximate message area 41 reduced.
  • the approximate message (m3 + e3) in the ciphertext before the reboot and the approximate message (m3 '+ e3') in the ciphertext after the reboot are slightly different, but because of the small difference in the magnitude of the error, there is a big difference compared to the original message. There will be no.
  • the data after decryption is designed to be the same as the original plaintext, but according to the present embodiment, an approximate message is output instead of the exact same plaintext.
  • the first device 100-1 and the second device 100-2 encrypt the messages m1 and m2 by isomorphism, respectively, and output homogeneous cipher texts E L (m1 ') and E L (m2'). .
  • the computing device 200 performs an operation on the same-type cipher text E L (m1 ') and E L (m2'), and outputs an operation result cipher text E Li (m3 ').
  • L is the modulus level of the ciphertext. As the operation is repeated, the modulus level continues to decrease.
  • the modulus level is reduced by i.
  • the modulus level falls below the threshold, no further operations on homogeneous cipher texts are possible.
  • the threshold is set at one level. Accordingly, it can be seen that the one-level homologous ciphertexts E 1 (m4 ') and E 1 (m5') are inoperable.
  • Computing device 200 generates an E 1 (m4 '), E 1 (m5' Reboot a), respectively, E L '(m4 ") , E L'(m5").
  • the computing device 200 calculates the encrypted cipher texts and provides the calculated cipher text E L'-i (m6 ") to the third apparatus 100-3.
  • the final calculated computing result cipher text is expressed as the following equation. Can be.
  • the third apparatus 100-3 decrypts the operation result ciphertext to obtain the approximate message m6 ′′.
  • the third device 100-3 may use additional information for decoding.
  • the additional information may include a scaling factor and a modulus value of an operation result cipher text.
  • the decrypted approximation message may be m6 "/ ⁇ '.
  • the modulus in the side information The value can be used as the modulus of the ring R in equation (9).
  • the third device 100-3 may finally obtain m 6 ′′ through decoding.
  • FIG. 6 is a flowchart illustrating a homogeneous cipher text processing method according to an embodiment of the present invention.
  • the requested operation is performed (S610).
  • the operation may be set as a basic operation such as multiplication, milling, addition, subtraction, and the like, but is not limited thereto.
  • a conjugate operation may be performed, and in addition, operations such as statistics or sorting may be performed.
  • the computing device may determine whether the approximate message weight in the homogeneous cipher texts exceeds the threshold before or after the operation (S620). In FIG. 6, the calculation is performed after the calculation, but is not necessarily limited thereto. As a result of the determination, if it is determined that the threshold is exceeded, the computing device performs a reboot to expand the plain text space (S630). Accordingly, the operation can be repeatedly performed efficiently.
  • the computing device may further perform the step of providing additional information to be used to decrypt the operation result cipher text.
  • the computing device may replace the calculation itself with an approximation operation.
  • the computing device may sequentially perform an operation of calculating an approximate polynomial corresponding to an operation function to be applied to the homologous cipher text, and an operation of approximating the homologous cipher text using the calculated approximate polynomial.
  • the arithmetic function is a decoding function
  • the approximate polynomial can be calculated so that the absolute value of the difference with the arithmetic function is equal to or less than a threshold.
  • the approximation operation is performed using the approximation polynomial, the plain text space of the cipher text can be expanded.
  • the plain text space when performing a subsequent operation on the encryption result cipher text obtained by the approximation operation, the plain text space may be expanded when the approximate message weight exceeds the threshold. Since the method for expanding the plain text space has been described in detail in the above-described part, redundant description thereof will be omitted.
  • the encryption method, the processing method, the decryption method, the reboot method, the calculation method, etc. may be stored and distributed in a recording medium in the form of program code for performing the method.
  • the apparatus in which the recording medium is mounted may perform operations according to the above-described various embodiments.
  • the recording medium may be various types of computer readable media such as ROM, RAM, memory chip, memory card, external hard, hard, CD, DVD, magnetic disk or magnetic tape, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

동형 암호문을 처리하는 연산 장치 및 방법을 개시한다. 본 방법은, 동형 암호문에 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출하는 단계 및 근사 다항식을 이용하여 동형 암호문을 근사 연산하는 단계를 포함한다. 이에 따라, 본 발명은 보다 효율적인 암호문 처리를 수행할 수 있게 된다.

Description

암호문에 대한 근사 연산을 수행하는 장치 및 방법
본 발명은 암호문들에 대한 근사 연산을 효율적으로 수행하기 위한 장치 및 방법에 대한 것이다.
통신 기술이 발달하고, 전자 장치의 보급이 활발해짐에 따라, 전자 장치 간의 통신 보안을 유지하기 위한 노력이 지속적으로 이루어지고 있다. 이에 따라, 대부분의 통신 환경에서는 암호화/복호화 기술이 사용되고 있다.
암호화 기술에 의해 암호화된 메시지가 상대방에게 전달되면, 상대방은 메시지를 이용하기 위해서는 복호화를 수행하여야 한다. 이 경우, 상대방은 암호화된 데이터를 복호화하는 과정에서 자원 및 시간 낭비가 발생하게 된다. 또한, 상대방이 연산을 위해 일시적으로 메시지를 복호화한 상태에서 제3자의 해킹이 이루어지는 경우, 그 메시지가 제3자에게 손쉽게 유출될 수 있다는 문제점도 있었다.
이러한 문제를 해결하기 위하여 동형 암호화 방법이 연구되고 있다. 동형 암호화에 따르면, 암호화된 정보를 복호화하지 않고 암호문 자체에서 연산을 하더라도, 평문에 대해 연산한 후 암호화한 값과 동일한 결과를 얻을 수 있다. 따라서, 암호문을 복호화하지 않은 상태에서 각종 연산을 수행할 수 있다.
하지만, 동형 암호문을 연산에 여러번 반복 사용할 경우, 그 암호문 내의 평문 영역이 부족해져서 더 이상 연산을 수행할 수 없게 되는 문제점이 있었다. 이에 따라, 효율적인 데이터 처리 방법에 대한 필요성이 대두되었다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 동형 암호문에 대한 효율적인 근사 연산 및 근사 복호화를 수행할 수 있는 방법 및 그 장치를 제공함에 있다.
본 발명은 이상과 같은 목적을 달성하기 위한 것으로, 본 발명의 일 실시 예에 따른 동형 암호문 처리 방법은, 동형 암호문에 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출하는 단계 및 상기 근사 다항식을 이용하여 상기 동형 암호문을 근사 연산하는 단계;를 포함한다.
여기서 상기 근사 다항식을 산출하는 단계는, 상기 연산 함수가 복호화 함수이면, 상기 연산 함수와의 차이의 절대값이 임계치 이하가 되도록 상기 근사 다항식을 산출한다.
또한, 상기 근사 연산에 의해 획득된 연산 결과 암호문에 대한 후속 연산을 수행하는 경우, 상기 연산 결과 암호문 내의 근사 메시지 비중이 임계치를 초과하면, 상기 연산 결과 암호문의 평문 공간을 확장하는 단계를 더 포함할 수 있다.
여기서, 상기 평문 공간을 확장하는 단계는, 암호화된 입력값을 기 설정된 임계 암호문 모듈러스로 나눈 몫을 구하고 제거하도록 정의된 함수를 상기 연산 결과 암호문에 적용하여 상기 평문 공간을 확장할 수 있다.
또한, 상기 임계치는, 조기 재부팅(early rebooting)을 위하여 한계치 미만의 값으로 설정되며, 상기 한계치는 상기 연산 결과 암호문에 대한 후속 연산이 불가능해지는 상기 평문 공간의 크기가 될 수 있다.
이상과 같은 방법에서, 상기 연산 결과 암호문의 복호화에 사용될 부가 정보를 제공하는 단계를 더 포함할 수도 있다. 여기서, 부가 정보는, 스케일링 팩터 및 상기 연산 결과 암호문의 모듈러스 값을 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따른 연산 장치는, 동형 암호문들을 입력받기 위한 인터페이스, 상기 동형 암호문들을 저장하는 메모리 및 상기 동형 암호문에 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출하고, 상기 근사 다항식을 이용하여 상기 동형 암호문을 근사 연산하는 프로세서를 포함한다.
여기서, 상기 프로세서는, 상기 연산 다항식이 복호화 함수이면, 상기 근사 다항식과 상기 연산 다항식의 차이의 절대값이 임계치 이하가 되도록 상기 근사 다항식을 설정하고 상기 근사 연산을 수행하여, 상기 근사 연산에 의해 획득된 연산 결과 암호문 내의 평문 공간을 확장할 수 있다.
또는, 상기 프로세서는, 상기 근사 연산에 의해 획득된 연산 결과 암호문에 대한 후속 연산이 요청되는 경우, 상기 연산 결과 암호문 내의 근사 메시지 비중이 임계치를 초과하면, 상기 연산 결과 암호문의 평문 공간을 확장할 수도 있다.
상기 임계치는, 조기 재부팅(early rebooting)을 위하여 한계치 미만의 값으로 설정되어 상기 메모리에 저장되고, 상기 한계치는 상기 연산 결과 암호문에 대한 후속 연산이 불가능해지는 상기 평문 공간의 크기가 될 수 있다.
또한, 상기 프로세서는, 상기 연산 결과 암호문의 복호화에 사용될 부가 정보를 상기 메모리에 저장하고, 상기 부가 정보는, 스케일링 팩터 및 상기 연산 결과 암호문의 모듈러스 값을 포함할 수 있다.
이상과 같은 본 발명의 다양한 실시 예들에 따르면, 동형 암호문에 대한 효율적 근사 계산 및 근사 복호화를 수행할 수 있게 된다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템을 설명하기 위한 블럭도,
도 2는 본 발명의 일 실시 예에 따른 암호화 장치의 구성을 나타내는 블럭도,
도 3은 본 발명의 일 실시 예에 따른 연산 장치의 구성을 나타내는 블럭도,
도 4는 연산 장치의 동작을 설명하기 위한 도면,
도 5는 도 1의 데이터 처리 시스템의 동작을 설명하기 위한 도면, 그리고,
도 6은 본 발명의 일 실시 예에 따른 동형 암호문 처리 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다. 본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터도 포함하는 개념으로 정의된다.
후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 발명의 권리 범위가 본 명세서에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
이하에서는 첨부된 도면을 이용하여 본 발명의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 구성을 나타내는 도면이다. 도 1에 따르면, 데이터 처리 시스템은 복수의 장치(100-1 ~ 100-3) 및 연산 장치(200)를 포함한다. 도 1에서는 3개의 장치를 포함하는 것으로 도시하였으나, 이는 사용 예에 따라 달라질 수 있다. 예를 들어, 하나의 장치만으로 구현될 수도 있고, 3개 이상의 장치로 구현될 수도 있다.
각 장치(100-1 ~ 100-3) 및 연산 장치(200)는 휴대폰, 태블릿, 게임 플레이어, PC, 랩탑 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다.
제1 장치(100-1) 및 제2 장치(100-2)는 각각 동형 암호화를 수행하여, 그 결과값인 동형 암호문을 연산 장치(200)로 제공한다. 여기서, 동형 암호문은 각각 에러를 포함하는 근사 메시지에 대한 동형암호문을 의미한다.
구체적으로는, 제1 및 제2 장치(100-1, 100-2)에서 생성하는 동형 암호문은, 추후에 비밀키를 이용하여 복호화하였을 때 메시지 및 에러 값을 포함하는 결과값이 복원되는 형태로 생성될 수 있다. 이하, 본 명세서에서는 메시지에 에러가 포함된 상태를 근사 메시지라 한다.
제1 및 제2 장치(100-1, 100-2)는 각각 전송하고자 하는 메시지가 입력되면, 에러를 포함하는 근사 메시지에 대한 동형 암호문을 생성한다.
일 예로, 제1 및 제2 장치(100-1, 100-2) 각각은 자체적으로 생성한 에러를 메시지에 포함시켜 근사 메시지를 만들 수 있다. 구체적으로는, 전송할 메시지 M이 입력되면, 제1 및 제2 장치(100-1, 100-2) 각각은 임의의 다항식 c1을 랜덤하게 생성하고 작은 에러 e를 생성한 후, c0= -c1*s+M+e(mod q)를 계산하여, 동형 암호문 E(m,s)=ct=(c0, c1)을 생성한다. 추후에 이를 복호화하게 되면, Dec(ct)=M+e(mod q)가 됨을 알 수 있다.
다른 예로, 제1 및 제2 장치(100-1, 100-2) 각각이 메시지를 동형 암호화 하는 과정에서 에러가 추가되어 근사 메시지 형태가 될 수도 있다. 구체적으로는, 제1 및 제2 장치(100-1, 100-2) 각각이 생성하는 동형 암호문은 비밀키를 이용하여 복호화 하였을 때 다음과 같은 성질을 만족하는 형태로 생성된다.
[수학식 1]
Dec(ct,sk) = <ct,sk> = M+e(mod q)
여기서 < , >는 내적 연산(usual inner product), ct는 암호문, sk는 비밀키, M은 평문 메시지, e는 암호화 에러 값, q는 암호문의 모듈러스(Modulus)를 의미한다.
연산 장치(200)는 수신된 동형 암호문들에 대한 연산을 수행한다. 연산의 종류는 다양하게 설정될 수 있다. 동형 암호문의 성질 상, 연산 장치(200)는 복호화를 하지 않은 상태에서 연산을 수행할 수 있고, 그 결과값도 암호문 형태가 된다. 본 명세서에서는 연산에 의해 획득된 결과값을 연산 결과 암호문이라 한다. 연산 장치(200)는 연산 결과 암호문을 제3 장치(100-3)로 전송한다. 제3 장치(100-3)는 수신된 연산 결과 암호문을 복호화하여, 각 동형 암호문들에 포함된 데이터들의 연산 결과값을 획득할 수 있다.
도 1에서는 제1 및 제2 장치에서 암호화를 수행하고, 제3 장치가 복호화를 수행하는 경우를 도시하였으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 연산 장치(100)는 연산 결과값을 제1 및 제2 장치 중 적어도 하나로 제공할 수도 있다. 또한, 하나의 장치, 예를 들어, 제1 장치(100-1)에서 두번의 암호화를 수행하여, 두 개의 동형 암호문을 제공하여 줄 수도 있다.
연산 장치(200)는 사용자 요청에 따라 연산을 수차례 수행할 수 있다. 이 경우, 매번 연산마다 획득되는 연산 결과 암호문 내의 근사 메시지 비중이 달라지게 된다. 연산 장치(200)는 근사 메시지 비중이 임계치를 초과하면, 연산 결과 암호문 내의 평문 공간을 확장하는 동작을 수행한다.
연산 장치(200)는, 암호화된 입력값을 기 설정된 임계 암호문 모듈러스로 나눈 몫을 구하고 제거하도록 정의된 함수를, 연산 결과 암호문에 적용하여, 평문 공간을 확장할 수 있다.
구체적으로는, 상술한 수학식 1에서 q가 M보다 작다면 M+e(mod q)는 M+e와 다른 값을 가지므로 복호화가 불가능해진다. 따라서, q 값은 항상 M보다 크게 유지되어야 한다. 하지만, 연산이 진행됨에 따라 q값은 점차 감소하게 된다. 평문 공간의 확장이란 암호문 ct를 더 큰 모듈러스(modulus)를 가지는 암호문으로 변화시키는 것을 의미한다. 평문 공간을 확장하는 동작은 다르게는 재부팅(rebooting)이라 할 수도 있다. 재부팅을 수행함에 따라, 암호문은 다시 연산이 가능한 상태가 될 수 있다.
한편, 도 1에서는 제1 및 제2 장치(100-1, 100-2)에서 각각 에러를 포함하는 근사 메시지에 대한 동형 암호문을 만들어서 연산 장치(200)로 제공하는 것으로 도시 및 설명하였으나 반드시 이에 한정하는 것은 아니다. 예를 들어, 연산 장치(200)는 근사 메시지가 아닌 메시지 그 자체에 대한 동형 암호문을 입력받을 수도 있다.
또한, 연산 장치(200)는 입력된 동형 암호문들에 대해서 근사 연산을 수행할 수도 있다. 근사 연산이란 정확한 연산식이 아니라 그와 유사한 결과를 얻을 수 있는 근사식을 이용하여 연산을 수행하는 것을 의미한다. 근사 연산은 근사 메시지에 대한 동형 암호문 뿐만 아니라, 일반 메시지에 대한 동형 암호문에 대해서도 적용될 수 있다.
근사 연산을 위해서, 연산 장치(200)는 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출한다. 연산 함수가 복호화 함수인 경우, 연산 장치(200)는 연산 함수와의 차이의 절대값이 임계치 이하가 되도록 근사 다항식을 산출할 수 있다. 이 경우, 근사 연산에 의해서, 연산 결과 암호문의 평문 공간이 확장될 수 있다.
만약, 복호화 함수에 대응되는 근사 다항식이 아닌 경우, 근사 연산에 의해 획득된 연산 결과 암호문에 대한 후속 연산을 수행해야 한다면, 그 연산 결과 암호문 내의 근사 메시지 비중을 임계치와 비교하여, 임계치를 초과하였을 때 평문 공간 확장 동작을 수행할 수도 있다.
이하에서 각 장치들의 구성 및 동작에 대해서 설명한다.
도 2는 본 발명의 일 실시 예에 따른 암호화 장치의 구성을 나타낸다. 도 1의 시스템에서 제1, 2 장치(100-1, 100-2)와 같이 동형 암호화를 수행하는 장치들을 다르게는 암호화 장치라고 할 수도 있다.
도 2에 따르면, 암호화 장치(100)는 프로세서(110), 메모리(120)를 포함한다. 도 2에서는 암호화 동작에 필요한 최소한의 구성만을 도시하였으며, 암호화 장치(100)의 종류에 따라서 다양한 구성요소들이 더 추가될 수도 있다. 예를 들어, 통신 인터페이스, 디스플레이부, 입력 수단 등이 더 포함될 수 있으나, 이러한 구성들은 동형 암호화와 직접적인 관련성이 없으므로 도시 및 설명은 생략한다.
프로세서(110)는 전송하고자 하는 메시지가 입력되면 메모리(120)에 저장한다. 프로세서(110)는 메모리(120)에 저장된 각종 설정 값 및 프로그램을 이용하여, 메시지를 동형 암호화한다. 이 경우, 공개키가 사용될 수 있다.
프로세서(110)는 암호화를 수행하는데 필요한 공개키를 자체적으로 생성하여 사용할 수도 있고, 외부 장치로부터 수신하여 사용할 수도 있다. 일 예로, 복호화를 수행하는 제3 장치(100-3)가 공개키를 다른 장치들에게 배포할 수 있다.
자체적으로 키를 생성하는 경우, 프로세서(110)는 Ring-LWE 기법을 이용하여 공개키를 생성할 수 있다. 구체적으로 설명하면, 프로세서(110)는 먼저 각종 파라미터 및 링을 설정하여, 메모리(120)에 저장한다. 파라미터의 예로는 평문 메시지 비트의 길이, 공개키 및 비밀키의 크기 등이 있을 수 있다.
링은 다음과 같은 수학식으로 표현될 수 있다.
[수학식 2]
Figure PCTKR2019001486-appb-I000001
링(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차 사이클로토믹 다항식으로 정의하면, 링은 다음과 같은 수학식으로도 표현될 수 있다.
[수학식 3]
Figure PCTKR2019001486-appb-I000002
비밀키(sk)는 다음과 같이 표현될 수 있다.
[수학식 4]
Figure PCTKR2019001486-appb-I000003
s(x)는 작은 계수로 랜덤하게 생성한 다항식을 의미한다.
프로세서(110)는 링으로부터 제1 랜덤 다항식(a(x))을 산출한다. 제1 랜덤 다항식은 다음과 같이 표현될 수 있다.
[수학식 5]
Figure PCTKR2019001486-appb-I000004
또한, 프로세서(110)는 이산 가우시안 분포 또는 그와 통계적 거리가 가까운 분포로부터 에러를 추출한다. 에러는 다음과 같은 수학식으로 표현될 수 있다.
[수학식 6]
Figure PCTKR2019001486-appb-I000005
에러까지 산출되면, 암호화 장치(100)는 제1 랜덤 다항식 및 비밀키에 에러를 모듈러 연산하여 제2 랜덤 다항식을 산출할 수 있다. 제2 랜덤 다항식은 다음과 같이 표현될 수 있다.
[수학식 7]
Figure PCTKR2019001486-appb-I000006
최종적으로 공개키(pk)는 제1 랜덤 다항식 및 제2 랜덤 다항식을 포함하는 형태로 다음과 같이 설정된다.
[수학식 8]
Figure PCTKR2019001486-appb-I000007
상술한 키 생성 방법은 일 예에 불과하므로, 반드시 이에 한정되는 것은 아니며, 이 밖에 다른 방법으로 공개키 및 비밀키를 생성할 수도 있음은 물론이다.
프로세서(110)는 동형 암호문이 생성되면 메모리(120)에 저장하거나, 사용자 요청 또는 기 설정된 디폴트 명령에 따라 동형 암호문을 연산 장치(200)로 전송하여 줄 수 있다.
도 3은 본 발명의 일 실시 예에 따른 연산 장치(200)의 구성을 나타내는 블럭도이다. 도 3에 따르면, 연산 장치(200)는 인터페이스(210), 프로세서(220), 메모리(230)를 포함한다. 도 2와 마찬가지로, 도 3의 연산 장치도 다양한 부가 구성을 더 포함할 수도 있지만, 본 발명의 동작과 관련성이 없거나 약한 부분은 도시 및 설명을 생략한다.
인터페이스(210)는 각종 장치들로부터 데이터 및 신호를 수신하거나 송신하기 위한 구성이다. 구체적으로는, 인터페이스(210)는 LAN, 무선 LAN, 와이파이, 블루투스, NFC(Near Field Communication), 지그비 등과 같은 다양한 유무선 통신 인터페이스로 구현될 수 있다.
프로세서(220)는 에러를 포함하는 근사 메시지에 대한 동형 암호문이 인터페이스(210)를 통해 입력되면, 이를 메모리(230)에 저장한다. 에러를 포함하지 않는 일반 메시지에 대한 동형 암호문이 입력된 경우에도, 프로세서(220)는 이를 메모리(230)에 저장한다.
메모리(230)는 동형 암호문 뿐만 아니라 각종 프로그램 및 데이터들을 저장하기 위한 구성요소이다.
프로세서(220)는 사용자 요청 또는 기 설정된 설정 값에 따라 동형 암호문들에 대한 연산을 수행한다. 이 경우, 동형 암호문들에 대한 복호화는 수행하지 않는다. 연산의 종류는 다양하게 설정될 수 있다. 일 예로, 두 개의 동형 암호문들에 대한 곱셈값이나 평균값을 요청받았다면, 프로세서(220)는 지정된 두 개의 동형 암호문들을 곱하거나, 곱한 후 2로 나누는 등의 연산을 수행할 수 있다. 또는, 프로세서(220)는 근사 연산을 수행할 수도 있다.
프로세서(220)는 연산에 의해 획득된 연산 결과 암호문 내의 근사 메시지 비중을 확인한다. 프로세서(220)는 근사 메시지 비중이 임계치를 초과하면, 연산 결과 암호문의 평문 공간을 확장한다.
구체적으로는, 프로세서(220)는 기 설정된 함수를 연산 결과 암호문에 적용하여 평문 공간을 확장할 수 있다. 프로세서(220)는 암호화된 입력 값을 기 설정된 임계 암호문 모듈러스로 나눈 몫을 구하고 제거하도록 정의된 함수를 사용할 수 있다. 임계치는 암호화/복호화 성능에 적합하도록 임의의 값으로 설정되어 메모리(230)에 저장되어 있을 수 있다. 일 예로, 임계치는 연산 결과가 평문 공간을 다 차지할 때의 비중, 즉, 100%로 설정될 수도 있다. 다른 예로, 평문 공간을 다 차지하기 이전에 재부팅을 수행할 수 있도록, 즉, 조기 재부팅을 위해서 한계치 미만의 값으로 설정될 수도 있다. 예를 들어, 80~50% 정도의 한계치가 설정되어 있을 수도 있다. 한계치는 연산 결과 암호문에 대한 후속 연산이 불가능해지는 평문 공간의 크기를 의미한다.
또는, 프로세서(220)는 동형 암호문에 적용하고자 하는 연산 다항식에 대응되는 근사 다항식을 산출하고, 산출된 근사 다항식을 이용하여 연산 결과 암호문을 연산하여, 평문 공간을 확장할 수도 있다. 이 경우, 연산 다항식이 복호화 함수이면, 근사 다항식은, 연산 다항식과의 차이의 절대값이 임계치 이하가 되도록 설정될 수 있다. 일 예로, 복호화 함수는 다음과 같이 설정될 수 있다.
[수학식 9]
Figure PCTKR2019001486-appb-I000008
수학식 9의 복호화 함수에 포함된 모듈러스 연산은 다음과 같은 방법으로 근사적으로 바꿀 수 있다.
[수학식 10]
Figure PCTKR2019001486-appb-I000009
다른 예로, 모듈러스 연산을 recursive 방법으로 계산할 수도 있다. 이 경우, 모듈러스 연산은 다음과 같이 표현될 수 있다.
[수학식 11]
Figure PCTKR2019001486-appb-I000010
수학식 11에서 k는 임의의 정수이다. K는 계산의 정확도나 파라미터의 특성에 따라 변동이 있을 수 있다.
수학식 11에서 Sk는 다음과 같은 4개의 수학식을 이용하여 산출할 수 있다.
[수학식 12]
Figure PCTKR2019001486-appb-I000011
Figure PCTKR2019001486-appb-I000012
Figure PCTKR2019001486-appb-I000013
Figure PCTKR2019001486-appb-I000014
여기서, Sk는 수학식 11에서와 같이, 연산 함수가 Sin함수일 때의 근사 다항식을 의미한다.
또한, 프로세서(220)는 연산 결과 암호문이 추후에 복호화될 때에 사용되어야 하는 부가 정보를 메모리(230)에 저장해 둘 수도 있다. 부가 정보는, 연산 결과 암호문 내에서의 연산 결과 메시지의 위치, 평문 공간 확장에 사용된 모듈러스 값 등을 포함할 수 있다.
프로세서(220)는 연산 결과를 요청한 장치에 대해 연산 결과 암호문과 부가 정보를 인터페이스(210)를 통해 제공해줄 수 있다.
도 4는 연산 장치의 동작을 구체적으로 설명하기 위한 도면이다. 도 4에서는 두 개의 동형 암호문(10, 20)에 대한 연산 및 재부팅 과정을 나타낸다.
각 동형 암호문(10, 20)은 근사 메시지 영역(11, 21)을 각각 포함한다. 근사 메시지 영역(11, 21)에는 메시지 및 에러(m1+e1, m2+e2)가 함께 들어가 있다.
연산 장치는 두 동형 암호문(10, 20)을 입력값으로 하여, 특정 연산을 수행한다. 연산 결과 암호문(30)은 각 근사 메시지 간의 연산 결과(m3+e3)가 담긴 근사 메시지 영역(31)을 포함한다. 연산 결과가 입력 값보다 커짐에 따라 근사 메시지 영역도 커지고 따라서 남은 평문 공간(32)이 줄어들게 된다. 이러한 연산이 수차례 수행되면, 결국 남은 평문 공간(32)이 없어지거나 한계치보다 작아지게 되어, 연산이 불가능해진다. 이러한 상태로 판단되면, 연산 장치(200)는 재부팅을 수행한다.
재부팅이 이루어진 암호문(40)은 근사 메시지 영역(41)이 줄어든 대신, 평문 공간(42)이 확장됨을 알 수 있다. 재부팅 이전의 암호문 내의 근사 메시지(m3+e3)와 재부팅 이후의 암호문 내의 근사 메시지(m3'+e3')는 약간의 차이가 있지만, 에러의 크기 차이가 작기 때문에 원 메시지와 비교하였을 때 큰 차이가 없게 된다. 종래의 암호화/복호화 매커니즘의 경우, 복호화 이후의 데이터가 원래의 평문과 같아지도록 설계하지만, 본 실시 예에 따르면 정확하게 같은 평문 대신에 근사 메시지가 출력된다. 결과적으로, 안전성을 위해서 필요로 하는 에러와 유효숫자 연산을 통해서 발생하는 에러를 포함하여 하나의 노이즈로 취급하므로, 암호화된 상태에서 실수 연산이 가능해지고, 암/복호화의 효율성을 증대시킬 수 있다.
도 5는 본 발명의 일 실시 예에 따른 데이터 처리 방법을 설명하기 위한 도면이다. 도 5에 따르면, 제1 장치(100-1) 및 제2 장치(100-2)는 각각 메시지 m1, m2를 동형 암호화하여 동형 암호문 EL(m1'), EL(m2')를 출력한다. 연산 장치(200)는 동형 암호문 EL(m1'), EL(m2')에 대한 연산을 수행하여, 연산 결과 암호문 EL-i(m3')을 출력한다. 여기서 L은 암호문의 모듈러스 레벨을 의미한다. 연산이 반복됨에 따라 모듈러스 레벨은 지속적으로 감소하게 된다. 예를 들어, 연산 장치(200)가 암호화된 상태로 수행하고 싶은 연산의 깊이가 i라면, 모듈러스 레벨은 i만큼 감소하게 된다. 이에 따라, 모듈러스 레벨이 임계치 미만으로 떨어지게 되면 동형 암호문들에 대한 더 이상의 연산은 불가능해진다.
도 5에서는 임계치를 1레벨로 설정하였다. 이에 따라, 1 레벨 동형 암호문 E1(m4'), E1(m5')는 연산 불가능한 상태임을 알 수 있다.
연산 장치(200)는 E1(m4'), E1(m5')를 각각 재부팅하여, EL'(m4"), EL'(m5")를 생성한다. 재부팅에 의해 모듈러스 레벨은 L과 거의 유사한 L' 레벨이 되었고, 근사 메지지 또한 m4', m5'에서 거의 유사한 m4", m5"와 같이 변하게 된다.
연산 장치(200)는 재부팅한 암호문들을 연산하여, 연산 결과 암호문 EL'-i(m6")를 제3 장치(100-3)로 제공한다. 최종 연산된 연산 결과 암호문은 다음 수학식과 같이 표현될 수 있다.
[수학식13]
Figure PCTKR2019001486-appb-I000015
제3 장치(100-3)는 연산 결과 암호문을 복호화하여 근사 메시지 m6"를 획득한다.
복호화를 위해서 제3 장치(100-3)는 부가 정보를 이용할 수 있다. 상술한 바와 같이, 부가 정보는, 스케일링 팩터 및 연산 결과 암호문의 모듈러스 값 등을 포함할 수 있다.
모듈러스 값이 Δ'라면, 복호화된 근사 메시지는 m6"/Δ'가 될 수 있다. 이에 따라, 실수 평문이 암호화 과정에서 정수화되었더라도, 복호화에서 다시 실수로 복구될 수 있다. 또한, 부가 정보 내의 모듈러스 값은 수학식 9에서 링(R)의 모듈러스로써 사용될 수 있다.
제3 장치(100-3)는 복호화를 통해 최종적으로 m6"를 획득할 수 있게 된다.
도 6은 본 발명의 일 실시 예에 따른 동형 암호문 처리 방법을 설명하기 위한 흐름도이다. 도 6에 따르면, 근사 메시지의 동형 암호문들이 입력되고, 그 암호문들에 대한 연산 요청이 입력되면, 요청된 연산을 수행한다(S610). 일 예로, 연산은 승산, 제분, 가산, 감산 등과 같은 기본 연산으로 설정될 수도 있지만, 반드시 이에 한정되는 것은 아니다. 구체적으로는, 암호화된 메시지가 복소수 형태인 경우, 컨쥬게이트(conjugate) 연산이 수행될 수도 있고, 이밖에 통계나 소팅 등의 연산도 이루어질 수 있다.
연산 장치는, 연산 이전에 또는 연산 이후에 동형 암호문들 내의 근사 메시지 비중이 임계치를 초과하였는지 여부를 판단할 수 있다(S620). 도 6에서는 연산 이후에 하는 것으로 도시하였으나 반드시 이에 한정되는 것은 아니다. 판단 결과, 임계치를 초과한 것으로 판단되면, 연산 장치는 평문 공간을 확장하는 재부팅을 수행한다(S630). 이에 따라, 연산이 효율적으로 반복 수행될 수 있다.
연산 장치는 이 밖에, 연산 결과 암호문의 복호화에 사용될 부가 정보를 제공하는 단계를 더 수행할 수도 있다.
또한, 상술한 바와 같이, 연산 장치는 연산 자체를 근사 연산으로 대체할 수도 있다. 이 경우, 연산 장치는, 동형 암호문에 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출하는 단계 및 산출된 근사 다항식을 이용하여 동형 암호문을 근사 연산하는 단계를 순차적으로 수행할 수 있다. 여기서, 근사 다항식은, 연산 함수가 복호화 함수일 경우, 연산 함수와의 차이의 절대값이 임계치 이하가 되도록 산출할 수 있다. 이러한 근사 다항식을 이용하여 근사 연산을 하게 되면, 연산 결과 암호문의 평문공간이 확장될 수 있다.
이외의 경우에는, 근사 연산에 의해 획득된 연산 결과 암호문에 대한 후속 연산을 수행하는 경우, 근사 메시지 비중이 임계치를 초과하면 평문 공간을 확장할 수도 있다. 평문 공간 확장 방법에 대해서는 상술한 부분에서 구체적으로 설명하였으므로, 중복 설명은 생략한다.
이상에서는 다양한 실시 예를 흐름도 및 블럭도를 이용하여 설명하였다. 각 흐름도에 도시한 단계들의 순서는 예시에 불과하며, 상황에 따라 순서가 변경될 수도 있다. 또한, 실시 예에 따라서는 일부 단계가 생략되거나, 추가될 수도 있다.
또한, 이상과 같은 다양한 실시 예에 따른 암호화 방법, 처리 방법, 복호화 방법, 재부팅 방법, 연산 방법 등은 그 방법을 수행하기 위한 프로그램 코드의 형태로 기록 매체에 저장되어 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 다양한 실시 예에 따른 동작들을 수행할 수 있다.
기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니 된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.

Claims (12)

  1. 동형 암호문에 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출하는 단계; 및
    상기 근사 다항식을 이용하여 상기 동형 암호문을 근사 연산하는 단계;를 포함하는 동형 암호문 처리 방법.
  2. 제1항에 있어서,
    상기 근사 다항식을 산출하는 단계는,
    상기 연산 함수가 복호화 함수이면, 상기 연산 함수와의 차이의 절대값이 임계치 이하가 되도록 상기 근사 다항식을 산출 하는 동형 암호문 처리 방법.
  3. 제1항에 있어서,
    상기 근사 연산에 의해 획득된 연산 결과 암호문에 대한 후속 연산을 수행하는 경우, 상기 연산 결과 암호문 내의 근사 메시지 비중이 임계치를 초과하면, 상기 연산 결과 암호문의 평문 공간을 확장하는 단계;를 더 포함하는 동형 암호문 처리 방법.
  4. 제3항에 있어서,
    상기 평문 공간을 확장하는 단계는,
    암호화된 입력값을 기 설정된 임계 암호문 모듈러스로 나눈 몫을 구하고 제거하도록 정의된 함수를 상기 연산 결과 암호문에 적용하여 상기 평문 공간을 확장하는, 동형 암호문 처리 방법.
  5. 제1항에 있어서,
    상기 임계치는, 조기 재부팅(early rebooting)을 위하여 한계치 미만의 값으로 설정되며, 상기 한계치는 상기 연산 결과 암호문에 대한 후속 연산이 불가능해지는 상기 평문 공간의 크기인, 동형 암호문 처리 방법.
  6. 제1항에 있어서,
    상기 연산 결과 암호문의 복호화에 사용될 부가 정보를 제공하는 단계;를 더 포함하며,
    상기 부가 정보는,
    스케일링 팩터 및 상기 연산 결과 암호문의 모듈러스 값을 포함하는, 동형 암호문 처리 방법.
  7. 동형 암호문들을 입력받기 위한 인터페이스;
    상기 동형 암호문들을 저장하는 메모리; 및
    상기 동형 암호문에 적용하고자 하는 연산 함수에 대응되는 근사 다항식을 산출하고, 상기 근사 다항식을 이용하여 상기 동형 암호문을 근사 연산하는 프로세서;를 포함하는 연산 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 연산 함수가 복호화 함수이면,
    상기 근사 다항식과 상기 연산 함수의 차이의 절대값이 임계치 이하가 되도록 상기 근사 다항식을 설정하고 상기 근사 연산을 수행하여, 상기 근사 연산에 의해 획득된 연산 결과 암호문 내의 평문 공간을 확장하는, 연산 장치.
  9. 제7항에 있어서,
    상기 프로세서는,
    상기 근사 연산에 의해 획득된 연산 결과 암호문에 대한 후속 연산을 수행하는 경우, 상기 연산 결과 암호문 내의 근사 메시지 비중이 임계치를 초과하면, 상기 연산 결과 암호문의 평문 공간을 확장하는, 연산 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    암호화된 입력값을 기 설정된 임계 암호문 모듈러스로 나눈 몫을 구하고 제거하도록 정의된 함수를 상기 연산 결과 암호문에 적용하여 상기 평문 공간을 확장하는, 연산 장치.
  11. 제9항에 있어서,
    상기 임계치는, 조기 재부팅(early rebooting)을 위하여 한계치 미만의 값으로 설정되어 상기 메모리에 저장되고,
    상기 한계치는 상기 연산 결과 암호문에 대한 후속 연산이 불가능해지는 상기 평문 공간의 크기인, 연산 장치.
  12. 제9항에 있어서,
    상기 프로세서는,
    상기 연산 결과 암호문의 복호화에 사용될 부가 정보를 상기 메모리에 저장하고,
    상기 부가 정보는,
    스케일링 팩터 및 상기 연산 결과 암호문의 모듈러스 값을 포함하는, 연산 장치.
PCT/KR2019/001486 2018-07-27 2019-02-01 암호문에 대한 근사 연산을 수행하는 장치 및 방법 WO2020022598A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019560690A JP6964688B2 (ja) 2018-07-27 2019-02-01 暗号文に対する近似演算を行う装置及び方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180087928A KR102040120B1 (ko) 2018-07-27 2018-07-27 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법
KR10-2018-0087928 2018-07-27

Publications (1)

Publication Number Publication Date
WO2020022598A1 true WO2020022598A1 (ko) 2020-01-30

Family

ID=68576779

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/001486 WO2020022598A1 (ko) 2018-07-27 2019-02-01 암호문에 대한 근사 연산을 수행하는 장치 및 방법

Country Status (4)

Country Link
US (1) US11115182B2 (ko)
JP (1) JP6964688B2 (ko)
KR (1) KR102040120B1 (ko)
WO (1) WO2020022598A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7276423B2 (ja) * 2019-02-25 2023-05-18 日本電気株式会社 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
US11275585B2 (en) * 2019-09-12 2022-03-15 Intuit Inc. System and method for approximating branching operations for use with data encrypted by fully homomorphic encryption (FHE)
KR102710768B1 (ko) * 2019-12-27 2024-09-26 삼성에스디에스 주식회사 근사 함수를 이용한 연산 장치 및 방법
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
KR20210118717A (ko) 2020-03-23 2021-10-01 삼성에스디에스 주식회사 암호화된 데이터를 이용한 연산을 수행하기 위한 방법 및 장치
US11277257B2 (en) 2020-03-23 2022-03-15 Samsung Sds Co., Ltd. Method and apparatus for performing operation using encrypted data
KR102349855B1 (ko) * 2020-04-16 2022-01-11 주식회사 크립토랩 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
US11546134B2 (en) 2020-04-16 2023-01-03 Samsung Electronics Co., Ltd. Method and apparatus for processing ciphertext based on homomorphic encryption
US11907052B2 (en) * 2020-04-20 2024-02-20 Dell Products L.P. Systems and methods for encrypting unique failure codes to aid in preventing fraudulent exchanges of information handling system components
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
KR20210146513A (ko) * 2020-05-27 2021-12-06 삼성전자주식회사 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치
KR102361327B1 (ko) 2020-05-29 2022-02-10 서울대학교산학협력단 쉘 정렬을 이용하여 동형 암호문에 대한 정렬을 수행하는 전자 장치 및 그 동작 방법
WO2021256843A1 (ko) * 2020-06-15 2021-12-23 주식회사 크립토랩 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
KR20220009643A (ko) 2020-07-16 2022-01-25 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 클라이언트 및 서버, 및 이의 동작 방법
KR20220040309A (ko) * 2020-09-23 2022-03-30 삼성전자주식회사 동형 암호화 장치 및 그 동작 방법
KR20220078155A (ko) 2020-12-03 2022-06-10 삼성전자주식회사 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치
US11870889B2 (en) 2021-02-23 2024-01-09 Samsung Electronics Co., Ltd. Method and apparatus with homomorphic encryption
KR102304992B1 (ko) * 2021-04-07 2021-09-27 서울대학교산학협력단 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
US11722290B2 (en) * 2021-05-21 2023-08-08 Samsung Electronics Co., Ltd. Method and apparatus for modulus refresh in homomorphic encryption
WO2023282359A1 (ko) * 2021-07-05 2023-01-12 주식회사 크립토랩 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
US20230344617A1 (en) * 2022-04-20 2023-10-26 Crypto Lab Inc. Apparatus for bootstrap processing homomorphic encrypted message and method thereof
WO2024186145A1 (ko) * 2023-03-07 2024-09-12 주식회사 크립토랩 바이너리 데이터에 대한 동형 암호문을 처리하는 전자 장치 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140095179A (ko) * 2013-01-24 2014-08-01 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
KR101475747B1 (ko) * 2014-01-22 2014-12-23 고려대학교 산학협력단 동형 암호를 이용한 다자간 위탁 연산 방법
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
KR20180013064A (ko) * 2016-07-28 2018-02-07 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8630422B2 (en) 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
WO2012149395A1 (en) 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption
KR20140084294A (ko) * 2011-10-27 2014-07-04 엘에스아이 코포레이션 복소 지수 비선형 함수와 함께 명령어를 갖는 디지털 처리
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
US9946970B2 (en) * 2014-11-07 2018-04-17 Microsoft Technology Licensing, Llc Neural networks for encrypted data
KR102359265B1 (ko) * 2015-09-18 2022-02-07 삼성전자주식회사 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법
KR101971215B1 (ko) 2016-06-17 2019-04-22 서울대학교산학협력단 유효 숫자 연산을 지원하는 동형 암호문의 생성 방법 및 그러한 방법에 의해서 생성된 동형 암호문에 대한 유효 숫자 연산 방법
FR3057090B1 (fr) * 2016-09-30 2018-10-19 Safran Identity & Security Procedes d'apprentissage securise de parametres d'un reseau de neurones a convolution, et de classification securisee d'une donnee d'entree
JP6695595B2 (ja) * 2017-08-30 2020-05-20 株式会社アクセル 推論装置、及び推論方法
US10728017B2 (en) * 2017-11-03 2020-07-28 International Business Machines Corporation Performing vector comparison operations in fully homomorphic encryption
KR101965628B1 (ko) 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140095179A (ko) * 2013-01-24 2014-08-01 서울대학교산학협력단 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
KR101475747B1 (ko) * 2014-01-22 2014-12-23 고려대학교 산학협력단 동형 암호를 이용한 다자간 위탁 연산 방법
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
KR20180013064A (ko) * 2016-07-28 2018-02-07 서울대학교산학협력단 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHEON, JUN HEE ET AL.: "Bootstrapping for Approximate Homomorphic Encryption", ADVANCES IN CRYPTOLOGY EUROCRYPT 2018, 7 February 2018 (2018-02-07), pages 360 - 384, XP047471999 *
CHEON, JUN HEE ET AL.: "Bootstrapping for Approximate Homomorphic Encryption", CONFERENCE PRESENTATION, 30 April 2018 (2018-04-30), pages 1 - 38, XP047471999 *
KIM, JIN-SU ET AL.: "Decoding Problem of Random Linear Code and Its Cryptographic Applications", JOURNAL OF THE KOREAN INSTITUTE OF COMMUNICATION SCIENCES (INFORMATION AND COMMUNICATIONS MAGAZINE, vol. 32, no. 6, May 2015 (2015-05-01), pages 30 - 38, XP055679970, Retrieved from the Internet <URL:http://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE06365170&language=ko_KR> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637700B2 (en) 2020-08-14 2023-04-25 Samsung Electronics Co., Ltd. Method and apparatus with encryption based on error variance in homomorphic encryption

Also Published As

Publication number Publication date
US20200036511A1 (en) 2020-01-30
JP6964688B2 (ja) 2021-11-10
KR102040120B1 (ko) 2019-11-05
US11115182B2 (en) 2021-09-07
JP2020530577A (ja) 2020-10-22

Similar Documents

Publication Publication Date Title
WO2020022598A1 (ko) 암호문에 대한 근사 연산을 수행하는 장치 및 방법
EP1063811B1 (en) Cryptographic apparatus and method
KR101088420B1 (ko) 데이터 암호 처리 방법 및 장치
US7224795B2 (en) Variable-length key cryptosystem
US20090103726A1 (en) Dual-mode variable key length cryptography system
US8108674B2 (en) Transmitting/receiving system and method, transmitting apparatus and method, receiving apparatus and method, and program used therewith
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
JP2006191626A (ja) 電子文書をセキュアに通信するシステム、方法およびプログラム
US7894608B2 (en) Secure approach to send data from one system to another
WO2004015916A1 (ja) 暗号化復号化装置及び方法、暗号化装置及び方法、復号化装置及び方法、並びに送受信装置
US20060233361A1 (en) Device, method, and program for encrypton and decryption and recording medium
WO2008059475A1 (en) Secure communication
JP2004158981A (ja) 通信装置及び通信方法
KR20180007974A (ko) 데이터의 암호화, 복호화 방법 및 이를 이용하는 장치
JPH0946332A (ja) Rsa型手順により暗号化された通信文用通信システム
WO2021256841A1 (ko) 동형 암호 시스템에 대한 시뮬레이션 장치 및 방법
KR20170127105A (ko) 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치
US20030174835A1 (en) Data encryption device, data decryption device, and data encryption/decryption device
EP1456997B1 (en) System and method for symmetrical cryptography
US8130945B2 (en) Encrypted cryptography system
WO2024144078A1 (ko) 동형 암호문의 선형변환 장치 및 방법
KR20060077808A (ko) 비밀정보 송수신 시스템 및 방법 그리고 그에 적용되는디바이스 및 근거리 무선통신장치
US20220276841A1 (en) Communication data text confusion encryption method
CN102474413A (zh) 私钥压缩
JP2010246158A (ja) 暗号化装置および方法、並びに復号装置および方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019560690

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19842030

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19842030

Country of ref document: EP

Kind code of ref document: A1