KR20220157649A - Method and apparatus for generating shares for equality check - Google Patents

Method and apparatus for generating shares for equality check Download PDF

Info

Publication number
KR20220157649A
KR20220157649A KR1020210065426A KR20210065426A KR20220157649A KR 20220157649 A KR20220157649 A KR 20220157649A KR 1020210065426 A KR1020210065426 A KR 1020210065426A KR 20210065426 A KR20210065426 A KR 20210065426A KR 20220157649 A KR20220157649 A KR 20220157649A
Authority
KR
South Korea
Prior art keywords
ciphertext
equation
value
stake
integer
Prior art date
Application number
KR1020210065426A
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 KR1020210065426A priority Critical patent/KR20220157649A/en
Publication of KR20220157649A publication Critical patent/KR20220157649A/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
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

A method for generating shares for equality check according to an embodiment comprises the steps of: generating a first conversion value, which is a base-t (t is an integer equal to or greater than 2) k-digit (k is an integer and 0 < k <= L) expression for a first integer value expressed as L bits (L is an integer equal to or greater than 1); generating a cryptogram set including cryptograms for each of the k digits of the first conversion value using a homomorphic encryption algorithm based on a modulus M determined based on t and k; transmitting the cryptogram set to an external device having a second integer value expressed as L bits; and receiving a cryptogram for a second share among a first share and the second share to be used instead of the first integer value and the second integer value for equality check between the first integer value and the second integer value as an element of an integer set defined by the modulus M from the external device. Therefore, a calculation amount and a transmission amount for equality check can be reduced.

Description

일치 확인을 위한 지분 생성 방법 및 장치{METHOD AND APPARATUS FOR GENERATING SHARES FOR EQUALITY CHECK}Stake generation method and apparatus for matching confirmation {METHOD AND APPARATUS FOR GENERATING SHARES FOR EQUALITY CHECK}

개시되는 실시예들은 암호화 기술과 관련된다.The disclosed embodiments relate to encryption technology.

최근 데이터 보호의 중요성이 강조되면서, 각자의 입력을 가지고 있는 두 기관이 서로의 입력을 숨기면서 여러 가지 연산을 수행하는 다양한 프로토콜이 개발되고 있다. Recently, as the importance of data protection is emphasized, various protocols are being developed in which two institutions having their own inputs perform various operations while hiding each other's inputs.

이러한 프로토콜들은 보통 기초 연산을 수행하는 프로토콜을 설계하고 이를 기반으로 복잡한 연산을 쌓아나가는 방식으로 구성되어 있다. 비교적 기초적인 연산인 일치 확인 연산에 대해 현재까지 알려진 프로토콜은 모두 비용(실행시간 및 통신량)이 데이터의 크기(비트 수)에 선형적으로 비례한다.These protocols are usually constructed by designing a protocol that performs basic operations and building complex operations on top of them. The cost (execution time and amount of communication) of all protocols known to date for the relatively basic operation of coincidence check is linearly proportional to the size of data (number of bits).

개시되는 실시예들은 일치 확인을 위한 지분 생성 방법 및 장치를 제공하기 위한 것이다.Disclosed embodiments are to provide a stake generation method and apparatus for matching confirmation.

일 실시예에 따른 일치 확인을 위한 지분 생성 방법은, L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하는 단계; 상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여, 상기 제1 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 생성하는 단계; L 비트로 표현되는 제2 정수 값을 가진 외부 장치로 상기 암호문 집합을 전송하는 단계; 및 상기 외부 장치로부터, 상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제2 지분에 대한 암호문을 수신하는 단계를 포함하고, 상기 제1 지분은, 상기 정수 집합에서 선택된 값이고, 상기 제2 지분에 대한 암호문은, 암호문 집합, 상기 제2 정수 값에 대한 k자리의 t진법 표현인 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문이다.A stake generation method for matching confirmation according to an embodiment includes t (t Generating a first conversion value that is an integer) hexadecimal expression of t≥2; Using a homomorphic encryption algorithm based on a modulus M determined based on t and k, a ciphertext set including ciphertext for each of the k-digit numbers of the first conversion value is generated. doing; Transmitting the ciphertext set having a second integer value represented by L bits to an external device; And the first integer value and the second integer value for an equality check between the first integer value and the second integer value as elements of the set of integers defined by the modulus M, from the external device. Receiving encryption text for a second share among first and second shares to be used instead, wherein the first share is a value selected from the set of integers, and the encryption text for the second share includes: Cipher text generated using a set, a second conversion value that is a base t expression of k digits for the second integer value, and the first stake.

상기 k는, 아래의 수학식 1The k is Equation 1 below

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

(이때, []는 최대 정수 함수(greatest integer function))에 기초하여 결정될 수 있다.(At this time, [] may be determined based on the greatest integer function).

상기 모듈러스 M은, 아래의 수학식 2The modulus M is expressed by Equation 2 below

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

에 기초하여 결정될 수 있다.can be determined based on

상기 제2 지분은, 아래의 수학식 3The second share is expressed by Equation 3 below

[수학식 3][Equation 3]

Figure pat00003
Figure pat00003

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분)을 만족하고, 상기 d는, 아래의 수학식 4(At this time, S 1 satisfies the first stake, S 2 is the second stake), and d is Equation 4 below

[수학식 4][Equation 4]

Figure pat00004
Figure pat00004

(이때, ai는 상기 제1 변환 값의 i번째 자리의 숫자, bi는 상기 제2 변환 값의 i번째 자리의 숫자)를 만족할 수 있다.(Here, a i is the i-th digit number of the first conversion value, and b i is the i-th digit number of the second conversion value).

상기 일치 확인을 위한 지분 생성 방법은, 상기 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 생성하는 단계를 더 포함하고, 상기 전송하는 단계는, 상기 암호문 집합 및 상기 합산한 값에 대한 암호문을 상기 외부 장치로 전송하고, 상기 제2 지분에 대한 암호문은, 상기 암호문 집합, 상기 합산한 값에 대한 암호문, 상기 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문일 수 있다.The stake generation method for matching confirmation further includes generating a ciphertext for a value obtained by squaring and summing each of the k-digit numbers, and the transmitting step comprises generating a ciphertext for the ciphertext set and the summed value The ciphertext is transmitted to the external device, and the ciphertext for the second stake may be ciphertext generated using the ciphertext set, the ciphertext for the summed value, the second conversion value, and the first stake.

일 실시예에 따른 일치 확인을 위한 지분 생성 방법은, L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하는 단계; 외부 장치로부터, 상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여 생성된, L 비트로 표현되는 제2 정수 값에 대한 k 자리의 t진법 표현인 제2 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 수신하는 단계; 상기 암호문 집합 및 상기 제1 변환 값을 이용하여 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이에 대한 암호문을 생성하는 단계; 상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제1 지분을 상기 정수 집합에서 선택하는 단계; 상기 암호문 집합, 상기 차이에 대한 암호문 및 상기 제1 지분을 이용하여 상기 제2 지분에 대한 암호문을 생성하는 단계; 및 상기 제2 지분에 대한 암호문을 상기 외부 장치로 전송하는 단계를 포함한다.A stake generation method for matching confirmation according to an embodiment includes t (t Generating a first conversion value that is an integer) hexadecimal expression of t≥2; A second integer value expressed by L bits generated from an external device using a homomorphic encryption algorithm based on a modulus M determined based on the t and the k t digit expression of k digits Receiving a ciphertext set including ciphertext for each of the k-digit numbers of the second conversion value of ?; generating ciphertext for a difference between the first conversion value and the second conversion value using the ciphertext set and the first conversion value; A first stake to be used instead of the first integer value and the second integer value for an equality check between the first integer value and the second integer value as an element of the set of integers defined by the modulus M and selecting the first share among the second shares from the set of integers; generating a ciphertext for the second stake using the ciphertext set, the ciphertext for the difference, and the first stake; and transmitting the encrypted text for the second stake to the external device.

상기 k는, 아래의 수학식 1The k is Equation 1 below

[수학식 1][Equation 1]

Figure pat00005
Figure pat00005

(이때, []는 최대 정수 함수(greatest integer function))에 기초하여 결정될 수 있다.(At this time, [] may be determined based on the greatest integer function).

상기 모듈러스 M은, 아래의 수학식 2The modulus M is expressed by Equation 2 below

[수학식 2][Equation 2]

Figure pat00006
Figure pat00006

(이때, M은 상기 모듈러스)에 기초하여 결정될 수 있다.(At this time, M may be determined based on the modulus).

상기 제2 지분은, 아래의 수학식 3The second share is expressed by Equation 3 below

[수학식 3][Equation 3]

Figure pat00007
Figure pat00007

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분, d는 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이)을 만족하고, 상기 d는, 아래의 수학식 4(At this time, S 1 is the first share, S 2 is the second share, d is the difference between the first conversion value and the second conversion value), and d is Equation 4 below

[수학식 4][Equation 4]

Figure pat00008
Figure pat00008

(이때, ai는 상기 제2 변환 값의 i번째 자리의 숫자, bi는 상기 제1 변환 값의 i번째 자리의 숫자)를 만족할 수 있다.(Here, a i is the number of the i-th digit of the second conversion value, and b i is the number of the i-th digit of the first conversion value).

상기 차이에 대한 암호문을 생성하는 단계는, 아래의 수학식 5The step of generating the ciphertext for the difference is Equation 5 below.

[수학식 5][Equation 5]

Figure pat00009
Figure pat00009

(이때, Cd는 상기 차이에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)을 이용하여 상기 차이에 대한 암호문을 생성할 수 있다.(At this time, C d is the ciphertext for the difference, C i is the ciphertext for the i th digit of the second conversion value, and HE.Enc() is encryption using the encryption algorithm of the homomorphic encryption) You can generate a ciphertext for the difference.

상기 일치 확인을 위한 지분 생성 방법은, 상기 외부 장치로부터, 상기 제2 변환 값의 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 수신하는 단계를 더 포함하고, 상기 차이에 대한 암호문을 생성하는 단계는, 상기 암호문 집합, 상기 합산한 값에 대한 암호문 및 상기 제1 변환 값을 이용하여 상기 차이에 대한 암호문을 생성할 수 있다.The stake generation method for matching confirmation further includes receiving, from the external device, ciphertext for a value obtained by squaring and summing each of the k-digit numbers of the second conversion value, and receiving the ciphertext for the difference In the generating step, ciphertext for the difference may be generated using the ciphertext set, the ciphertext for the summed value, and the first conversion value.

상기 차이에 대한 암호문을 생성하는 단계는, 아래의 수학식 6The step of generating the ciphertext for the difference is Equation 6 below

[수학식 6][Equation 6]

Figure pat00010
Figure pat00010

(이때, Cd는 상기 차이에 대한 암호문,

Figure pat00011
는 상기 제곱하여 합산한 값에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)을 이용하여 상기 차이에 대한 암호문을 생성할 수 있다.(At this time, C d is the ciphertext for the difference,
Figure pat00011
Is the ciphertext for the value obtained by summing the squares, C i is the ciphertext for the i-th digit of the second conversion value, and HE.Enc () is the encryption using the encryption algorithm of the homomorphic encryption). You can generate a ciphertext for .

상기 제2 지분에 대한 암호문을 생성하는 단계는, 아래의 수학식 7The step of generating the cipher text for the second stake is Equation 7 below.

[수학식 7][Equation 7]

Figure pat00012
Figure pat00012

(이때,

Figure pat00013
는 상기 제2 지분에 대한 암호문, Cd는 상기 차이에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)를 이용하여 상기 제2 지분에 대한 암호문을 생성할 수 있다.(At this time,
Figure pat00013
The ciphertext for the second stake may be generated using ciphertext for the second stake, Cd for the ciphertext for the difference, and HE.Enc () for encryption using the encryption algorithm of the homomorphic encryption).

일 실시예에 따른 일치 확인을 위한 지분 생성 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하고, 상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여, 상기 제1 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 생성하고, L 비트로 표현되는 제2 정수 값을 가진 외부 장치로 상기 암호문 집합을 전송하고, 상기 외부 장치로부터, 상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제2 지분에 대한 암호문을 수신하고, 상기 제1 지분은, 상기 정수 집합에서 선택된 값이고, 상기 제2 지분에 대한 암호문은, 암호문 집합, 상기 제2 정수 값에 대한 k자리의 t진법 표현인 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문이다.An apparatus for generating shares for matching confirmation according to an embodiment includes a memory for storing one or more commands; and one or more processors that execute the one or more instructions, wherein the one or more processors are configured to: k (where k is 0<k≤L) for a first integer value represented by L (L is an integer where L≥1) bits. Integer) generates a first conversion value that is a base expression of t (t is an integer with t≥2) digit, and a homomorphic encryption algorithm based on a modulus M determined based on the t and the k Homomorphic Encryption Algorithm generate a ciphertext set including ciphertext for each of the k-digit numbers of the first conversion value, transmit the ciphertext set to an external device having a second integer value represented by L bits, and From, as an element of the set of integers defined by the modulus M, a first integer value to be used instead of the second integer value for an equality check between the first integer value and the second integer value. Receive ciphertext for the second stake among 1 stake and 2nd stake, wherein the first stake is a value selected from the set of integers, and the ciphertext for the second stake is based on a set of ciphertexts and a value of the second integer It is ciphertext generated using a second conversion value, which is a k-digit t-base expression for , and the first stake.

상기 k는, 아래의 수학식 1The k is Equation 1 below

[수학식 1][Equation 1]

Figure pat00014
Figure pat00014

(이때, []는 최대 정수 함수(greatest integer function))에 기초하여 결정될 수 있다.(At this time, [] may be determined based on the greatest integer function).

상기 모듈러스 M은, 아래의 수학식 2The modulus M is expressed by Equation 2 below

[수학식 2][Equation 2]

Figure pat00015
Figure pat00015

에 기초하여 결정될 수 있다.can be determined based on

상기 제2 지분은, 아래의 수학식 3The second share is expressed by Equation 3 below

[수학식 3][Equation 3]

Figure pat00016
Figure pat00016

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분)을 만족하고, 상기 d는, 아래의 수학식 4(At this time, S 1 satisfies the first stake, S 2 is the second stake), and d is Equation 4 below

[수학식 4][Equation 4]

Figure pat00017
Figure pat00017

(이때, ai는 상기 제1 변환 값의 i번째 자리의 숫자, bi는 상기 제2 변환 값의 i번째 자리의 숫자)를 만족할 수 있다.(Here, a i is the i-th digit number of the first conversion value, and b i is the i-th digit number of the second conversion value).

상기 하나 이상의 프로세서는, 상기 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 생성하고, 상기 암호문 집합 및 상기 합산한 값에 대한 암호문을 상기 외부 장치로 전송하고, 상기 제2 지분에 대한 암호문은, 상기 암호문 집합, 상기 합산한 값에 대한 암호문, 상기 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문일 수 있다.The one or more processors generate ciphertext for a value obtained by squaring and summing each of the k-digit numbers, transmit the ciphertext for the ciphertext set and the summed value to the external device, and for the second stake The ciphertext may be ciphertext generated using the ciphertext set, the ciphertext for the summed value, the second conversion value, and the first stake.

일 실시예에 따른 일치 확인을 위한 지분 생성 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하고, 외부 장치로부터, 상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여 생성된, L 비트로 표현되는 제2 정수 값에 대한 k 자리의 t진법 표현인 제2 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 수신하고, 상기 암호문 집합 및 상기 제1 변환 값을 이용하여 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이에 대한 암호문을 생성하고, 상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제1 지분을 상기 정수 집합에서 선택하고, 상기 암호문 집합, 상기 차이에 대한 암호문 및 상기 제1 지분을 이용하여 상기 제2 지분에 대한 암호문을 생성하고, 상기 제2 지분에 대한 암호문을 상기 외부 장치로 전송한다.An apparatus for generating shares for matching confirmation according to an embodiment includes a memory for storing one or more commands; and one or more processors that execute the one or more instructions, wherein the one or more processors are configured to: k (where k is 0<k≤L) for a first integer value represented by L (L is an integer where L≥1) bits. Homomorphic encryption algorithm based on a modulus M determined based on the t and the k from an external device Encryption Algorithm) to receive a ciphertext set including ciphertext for each of the k-digit numbers of the second conversion value, which is a k-digit t-base t expression for a second integer value represented by L bits, and the Generating ciphertext for a difference between the first conversion value and the second conversion value using a ciphertext set and the first conversion value, and as an element of an integer set defined by the modulus M, the first integer value and Selecting the first share among the first share and the second share to be used instead of the first integer value and the second integer value from the set of integers for an equality check between the second integer values; The ciphertext for the second stake is generated using the ciphertext set, the ciphertext for the difference, and the first stake, and the ciphertext for the second stake is transmitted to the external device.

상기 k는, 아래의 수학식 1The k is Equation 1 below

[수학식 1][Equation 1]

Figure pat00018
Figure pat00018

(이때, []는 최대 정수 함수(greatest integer function))에 기초하여 결정될 수 있다.(At this time, [] may be determined based on the greatest integer function).

상기 모듈러스 M은, 아래의 수학식 2The modulus M is expressed by Equation 2 below

[수학식 2][Equation 2]

Figure pat00019
Figure pat00019

(이때, M은 상기 모듈러스)에 기초하여 결정될 수 있다.(At this time, M may be determined based on the modulus).

상기 제2 지분은, 아래의 수학식 3The second share is expressed by Equation 3 below

[수학식 3][Equation 3]

Figure pat00020
Figure pat00020

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분, d는 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이)을 만족하고, 상기 d는, 아래의 수학식 4(At this time, S 1 is the first share, S 2 is the second share, d is the difference between the first conversion value and the second conversion value), and d is Equation 4 below

[수학식 4][Equation 4]

Figure pat00021
Figure pat00021

(이때, ai는 상기 제2 변환 값의 i번째 자리의 숫자, bi는 상기 제1 변환 값의 i번째 자리의 숫자)를 만족할 수 있다.(Here, a i is the number of the i-th digit of the second conversion value, and b i is the number of the i-th digit of the first conversion value).

상기 하나 이상의 프로세서는, 아래의 수학식 5The one or more processors, Equation 5 below

[수학식 5][Equation 5]

Figure pat00022
Figure pat00022

(이때, Cd는 상기 차이에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)을 이용하여 상기 차이에 대한 암호문을 생성할 수 있다.(At this time, C d is the ciphertext for the difference, C i is the ciphertext for the i th digit of the second conversion value, and HE.Enc() is encryption using the encryption algorithm of the homomorphic encryption) You can generate a ciphertext for the difference.

상기 하나 이상의 프로세서는, 상기 외부 장치로부터, 상기 제2 변환 값의 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 수신하고, 상기 암호문 집합, 상기 합산한 값에 대한 암호문 및 상기 제1 변환 값을 이용하여 상기 차이에 대한 암호문을 생성할 수 있다.The one or more processors receive, from the external device, ciphertext for a sum obtained by squaring each of the k digit numbers of the second conversion value, and receive the ciphertext set, the ciphertext for the summed value, and the first A ciphertext for the difference may be generated using the conversion value.

상기 하나 이상의 프로세서는, 아래의 수학식 6The one or more processors, Equation 6 below

[수학식 6][Equation 6]

Figure pat00023
Figure pat00023

(이때, Cd는 상기 차이에 대한 암호문,

Figure pat00024
는 상기 제곱하여 합산한 값에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)을 이용하여 상기 차이에 대한 암호문을 생성할 수 있다.(At this time, C d is the ciphertext for the difference,
Figure pat00024
Is the ciphertext for the value obtained by summing the squares, C i is the ciphertext for the i-th digit of the second conversion value, and HE.Enc () is the encryption using the encryption algorithm of the homomorphic encryption). You can generate a ciphertext for .

상기 하나 이상의 프로세서는, 아래의 수학식 7The one or more processors, Equation 7 below

[수학식 7][Equation 7]

Figure pat00025
Figure pat00025

(이때,

Figure pat00026
는 상기 제2 지분에 대한 암호문, Cd는 상기 차이에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)을 이용하여 상기 제2 지분에 대한 암호문을 생성할 수 있다.(At this time,
Figure pat00026
The ciphertext for the second stake may be generated by using the ciphertext for the second stake, Cd for the ciphertext for the difference, and HE.Enc () for encryption using the encryption algorithm of the homomorphic encryption).

개시되는 실시예들에 따르면, 큰 숫자들 사이의 일치 확인 문제를 훨씬 작은 숫자 사이의 일치 확인 문제로 치환함으로써 일치 확인을 위한 연산량과 전송량을 감소시킬 수 있다.According to the disclosed embodiments, the amount of computation and transmission for coincidence confirmation can be reduced by replacing the problem of checking correspondence between large numbers with the problem of checking correspondence between much smaller numbers.

도 1은 일 실시예에 따른 일치 확인(equality check)을 위한 지분 생성 방법이 적용되는 시스템 환경을 나타낸 도면
도 2는 일 실시예에 따른 지분 생성 방법의 절차를 나타낸 순서도
도 3은 다른 실시예에 따른 지분 생성 방법의 절차를 나타낸 순서도
도 4는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is a diagram showing a system environment to which a method for generating a stake for an equality check according to an embodiment is applied.
Figure 2 is a flow chart showing the procedure of a stake generation method according to an embodiment
Figure 3 is a flow chart showing the procedure of a stake generation method according to another embodiment
4 is a block diagram for illustrating and describing a computing environment including a computing device according to an exemplary embodiment;

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The detailed descriptions that follow are provided to provide a comprehensive understanding of the methods, devices and/or systems described herein. However, this is only an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of a user or operator. Therefore, the definition should be made based on the contents throughout this specification. Terminology used in the detailed description is only for describing the embodiments of the present invention and should in no way be limiting. Unless expressly used otherwise, singular forms of expression include plural forms. In this description, expressions such as "comprising" or "comprising" are intended to indicate any characteristic, number, step, operation, element, portion or combination thereof, one or more other than those described. It should not be construed to exclude the existence or possibility of any other feature, number, step, operation, element, part or combination thereof.

도 1은 일 실시예에 따른 일치 확인(equality check)을 위한 지분 생성 방법(이하, 지분 생성 방법)이 적용되는 시스템 환경을 나타낸 도면이다.1 is a diagram illustrating a system environment to which a method for generating a stake (hereinafter, a method for generating a stake) for an equality check according to an embodiment is applied.

도 1을 참조하면, 일 실시예에 따른 시스템 환경(100)은 제1 장치(110) 및 제2 장치(120)를 포함한다.Referring to FIG. 1 , a system environment 100 according to an embodiment includes a first device 110 and a second device 120 .

일 실시예에 따르면, 제1 장치(110) 및 제2 장치(120)는 각각 상이한 사용자에 의해 이용되는 장치로서, 각 사용자가 가진 값을 다른 사용자에게 노출시키지 않고 특정한 함수에 대한 연산 결과를 생성하는 2자간 계산(Two-Party Computation)을 수행하기 위해 이용되는 장치일 수 있다.According to an embodiment, the first device 110 and the second device 120 are devices used by different users, and generate calculation results for a specific function without exposing values of each user to other users. It may be a device used to perform two-party computation (Two-Party Computation).

구체적으로, 제1 장치(110) 및 제2 장치(120)에 의해 수행되는 2자간 계산은 제1 장치(110)의 사용자와 제2 장치(120)의 사용자 각각이 가진 값들 사이의 교집합 연산과 같이 각 장치의 사용자가 가진 값들 사이의 일치 여부에 기초한 연산결과를 생성하기 위한 것일 수 있다. 이를 위해, 일 실시예에 따르면, 제1 장치(110) 및 제2 장치(120)는 각 장치의 사용자가 가진 값들에 대한 직접적인 비교 없이 일치 여부를 확인할 수 있도록 하기 위한 지분을 생성하여 나누어 가지고, 각 장치가 나누어 가진 지분 사이의 비교를 통해 각 장치의 사용자가 가진 값들 사이의 일치 여부에 대한 진리 값을 획득할 수 있다.Specifically, the two-way calculation performed by the first device 110 and the second device 120 is an intersection operation between values of the user of the first device 110 and the user of the second device 120, respectively. Similarly, it may be for generating an operation result based on whether the values of the user of each device match. To this end, according to an embodiment, the first device 110 and the second device 120 generate and share a stake to confirm whether or not they match without direct comparison of the values of the users of each device, It is possible to obtain a truth value for whether the values owned by users of each device are identical through comparison between shares owned by each device.

도 2는 일 실시예에 따른 지분 생성 방법의 절차를 나타낸 순서도이다.2 is a flowchart illustrating a procedure of a method for generating equity according to an embodiment.

도 2를 참조하면, 제1 장치(110)는 L(이때, L은 L≥1인 정수) 비트로 표현되는 정수 값 a에 대한 k(이때, k는 0<k≤L인 정수) 자리의 t(이때, t는 t≥2인 정수)진법 표현인 변환 값 a'를 생성하고(201), 제2 장치(120)는 L 비트로 표현되는 정수 값 b에 대한 k자리의 t진법 표현인 변환 값 b'를 생성한다(202).Referring to FIG. 2, the first device 110 is a t of k (where k is an integer where 0<k≤L) for an integer value a represented by L (where L is an integer where L≥1) bits. (At this time, t is an integer with t≥2) Generates a conversion value a' which is a base expression (201), and the second device 120 converts the k-digit base t expression to the integer value b represented by L bits. b' is generated (202).

이때, 변환 값 a' 및 b'는 각각 아래의 수학식 1 및 2와 같이 표현될 수 있다.In this case, the conversion values a' and b' may be expressed as Equations 1 and 2 below, respectively.

[수학식 1][Equation 1]

Figure pat00027
Figure pat00027

[수학식 2][Equation 2]

Figure pat00028
Figure pat00028

수학식 1에서, ai는 변환 값 a'의 k개의 자리 중 i(이때, 1≤i≤k) 번째 자리의 숫자를 의미하며, 0≤ai<t를 만족한다. 또한, 수학식 2에서 bi는 변환 값 b'의 k개의 자리 중 i 번째 자리의 숫자를 의미하며, 0≤bi<t를 만족한다.In Equation 1, a i means the number of the i (in this case, 1≤i≤k) th digit among the k digits of the conversion value a', and satisfies 0≤a i <t. Also, in Equation 2, b i means the number of the i th digit among the k digits of the conversion value b', and satisfies 0≤b i <t.

한편, L 비트는 제1 장치(110)와 제2 장치(120)의 정보 처리 단위일 수 있으며, 제1 장치(110)와 제2 장치(120)의 CPU, 운영 체제 등에 따라 변경될 수 있다.Meanwhile, the L bit may be an information processing unit of the first device 110 and the second device 120, and may be changed according to the CPU, operating system, etc. of the first device 110 and the second device 120. .

또한, t는 제1 장치(110)와 제2 장치(120) 사이에 사전 공유되는 값으로 실시예에 따라 변경될 수 있다. In addition, t is a value pre-shared between the first device 110 and the second device 120 and may be changed according to embodiments.

한편, k는 아래의 수학식 3에 기초하여 결정될 수 있다.Meanwhile, k may be determined based on Equation 3 below.

[수학식 3][Equation 3]

Figure pat00029
Figure pat00029

수학식 3에서 []는 최대 정수 함수(greatest integer function)를 의미한다.In Equation 3, [] means the greatest integer function.

구체적인 예로, a=50, L=16, t=8인 것으로 가정하면, 수학식 3에 따라 k=3이 되므로, 정수 값 a는 3자리의 8진수인 변환 값 a'=(a1, a2, a3)=(0, 6, 2)로 변환될 수 있다.As a specific example, assuming that a = 50, L = 16, t = 8, k = 3 according to Equation 3, so the integer value a is a 3-digit octal conversion value a' = (a 1 , a 2 , a 3 )=(0, 6, 2).

한편, 변환 값 a'를 생성한 제1 장치(110)는 t와 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호(Homomorphic Encryption)를 이용하여, 변환 값 a'의 k자리의 숫자 각각에 대한 암호문 Ci을 생성한다(203).On the other hand, the first device 110 that generates the conversion value a' uses homomorphic encryption based on the modulus M determined based on t and k, each of the k digits of the conversion value a' Generating the ciphertext C i for (203).

이때, 일 실시예에 따르면, 모듈러스 M은 아래의 수학식 4에 기초하여 결정될 수 있다.In this case, according to an embodiment, the modulus M may be determined based on Equation 4 below.

[수학식 4][Equation 4]

Figure pat00030
Figure pat00030

한편, 동형 암호는 암호문을 암호화된 상태로 이용하여 암호문에 대한 평문을 이용한 연산 결과에 대한 암호문을 생성할 수 있도록 하는 암호화 기술을 의미한다. On the other hand, homomorphic encryption refers to an encryption technology that enables the generation of ciphertext for an operation result using plaintext for the ciphertext by using the ciphertext in an encrypted state.

구체적으로, 일 실시예에 따르면, 동형 암호는 각각 모듈러스 M에 의해 정의되는 정수 집합 ZM={0, 1,..., M-1}의 원소인 m1 과 m2(즉, m1, m2 ∈ ZM)에 대해 아래의 수학식 5 내지 8과 같은 연산을 지원하는 동형 암호일 수 있으며 반드시 특정한 동형 암호로 한정되는 것은 아니다.Specifically, according to one embodiment, the homomorphic encryption is an element m 1 and m 2 (that is, m 1 , m 2 ∈ Z M ), it may be a homomorphic encryption that supports operations such as Equations 5 to 8 below, and is not necessarily limited to a specific homomorphic encryption.

[수학식 5][Equation 5]

Figure pat00031
Figure pat00031

[수학식 6][Equation 6]

Figure pat00032
Figure pat00032

[수학식 7][Equation 7]

Figure pat00033
Figure pat00033

[수학식 8][Equation 8]

Figure pat00034
Figure pat00034

한편, 수학식 5 내지 8에서 HE.Enc()는 동형 암호의 암호화 알고리즘을 이용한 암호화를 의미하며, 이하, 동일한 의미로 이용된다.Meanwhile, in Equations 5 to 8, HE.Enc() means encryption using a homomorphic encryption encryption algorithm, and is hereinafter used with the same meaning.

이후, 제1 장치(110)는 변환 값 a'의 k자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합 C를 제2 장치(120)로 전송한다(204).Thereafter, the first device 110 transmits the cipher text set C including the cipher text for each of the k-digit numbers of the conversion value a' to the second device 120 (204).

구체적으로, 변환 값 a'가 상술한 수학식 1과 같을 때, 암호문 집합 C는 아래의 수학식 9와 같이 표현될 수 있다.Specifically, when the conversion value a' is equal to Equation 1 described above, the ciphertext set C may be expressed as Equation 9 below.

[수학식 9][Equation 9]

Figure pat00035
Figure pat00035

이때, 암호문 집합 C에 포함된 각 암호문 Ci는 변환 값 a'의 k개의 자리 중 i 번째 자리에 대한 숫자 ai에 대한 암호문(즉,

Figure pat00036
)을 나타낸다.At this time, each cipher text C i included in the cipher text set C is the cipher text for the number a i for the i digit of the k digits of the conversion value a' (i.e.,
Figure pat00036
).

한편, 제1 장치(110)로부터 암호문 집합 C를 수신한 제2 장치(120)는 암호문 집합 C와 변환 값 b'를 이용하여 변환 값 a'와 변환 값 b' 사이의 차이 d에 대한 암호문 Cd을 생성한다(205).Meanwhile, the second device 120 receiving the ciphertext set C from the first device 110 uses the ciphertext set C and the conversion value b' to generate the ciphertext C for the difference d between the conversion value a' and the conversion value b'. Create d (205).

이때, 일 실시예에 따르면, 변환 값 a'와 변환 값 b' 사이의 차이 d는 아래의 수학식 10과 같이 정의될 수 있다.At this time, according to an embodiment, the difference d between the conversion value a' and the conversion value b' may be defined as Equation 10 below.

[수학식 10][Equation 10]

Figure pat00037
Figure pat00037

즉, d는 a'=b'(즉, a=b)인 경우, d=0을 만족한다. 또한, 상술한 바와 같이 ai와 bi가 각각 0≤ai<t 및 0≤bi<t을 만족하므로, a'≠b'(즉, a≠b)인 경우, 0<d≤M=k·(t-1)2을 만족한다.That is, d satisfies d=0 when a'=b' (that is, a=b). In addition, as described above, since a i and b i satisfy 0≤a i <t and 0≤b i <t, respectively, when a'≠b' (that is, a≠b), 0<d≤M =k·(t-1) 2 is satisfied.

한편, 일 실시예에 따르면, 제2 장치(120)는 아래의 수학식 11을 이용하여 변환 값 a'와 변환 값 b' 사이의 차이 d에 대한 암호문 Cd를 생성할 수 있다.Meanwhile, according to an embodiment, the second device 120 may generate the ciphertext C d for the difference d between the conversion value a' and the conversion value b' using Equation 11 below.

[수학식 10][Equation 10]

Figure pat00038
Figure pat00038

이후, 제2 장치(120)는 정수 집합 ZM의 원소 중 하나를 임의로 선택하고, 선택한 원소를 정수 값 a와 정수 값 b 사이의 일치 확인을 위한 제2 장치(120) 측의 지분 S1으로 결정한다(206). Thereafter, the second device 120 randomly selects one of the elements of the integer set Z M , and uses the selected element as a stake S 1 on the second device 120 side for matching confirmation between the integer value a and the integer value b. decide (206).

이후, 제2 장치(120)는 지분 S1과 암호문 Cd를 이용하여 정수 값 a와 정수 값 b 사이의 일치 확인을 위한 제1 장치(110) 측의 지분 S2에 대한 암호문을 생성한다(207).Thereafter, the second device 120 generates a cipher text for the stake S 2 of the first device 110 to verify the correspondence between the integer value a and the integer value b using the stake S 1 and the cipher text C d ( 207).

이때, 제1 장치 측의 지분 S2는 아래의 수학식 11과 같이 변환 값 a'와 변환 값 b' 사이의 차이 d와 제2 장치(120) 측의 지분 S1 사이의 모듈러 덧셈으로 정의될 수 있다. At this time, the stake S 2 of the first device side is defined as the modular addition between the difference d between the conversion value a' and the conversion value b' and the stake S 1 of the second device 120 as shown in Equation 11 below. can

[수학식 11][Equation 11]

Figure pat00039
Figure pat00039

또한, 일 실시예에 따르면, 제2 장치(120)는 아래의 수학식 12를 이용하여 제1 장치(110) 측의 지분 S2에 대한 암호문

Figure pat00040
를 생성할 수 있다.In addition, according to an embodiment, the second device 120 uses Equation 12 below to generate the cryptogram for the stake S 2 of the first device 110
Figure pat00040
can create

[수학식 12][Equation 12]

Figure pat00041
Figure pat00041

이후, 제2 장치(120)는 생성된 암호문

Figure pat00042
를 제1 장치(110)로 전송한다(208).Then, the second device 120 generates the encrypted text
Figure pat00042
is transmitted to the first device 110 (208).

또한, 제1 장치(110)는 제2 장치(120)로부터 수신된 암호문

Figure pat00043
를 복호화하여 제1 장치(110) 측의 지분 S2를 획득한다(209).In addition, the first device 110 receives the encrypted text from the second device 120
Figure pat00043
is decrypted to obtain a stake S 2 of the first device 110 (209).

한편, 도 2에 도시된 절차에 따라 제1 장치(110)와 제2 장치(120)는 지분 S1과 S2=S1+d를 나누어 가지게 된다. 상술한 바와 같이 a=b인 경우, d=0이므로, S1=S2가 성립한다. 또한, a≠b인 경우, d≠0이므로, S1≠S2가 성립한다. 따라서, 정수 값 a와 b 사이의 일치 확인은 a 및 b보다 매우 작은 수인 S1과 S2 사이의 일치 확인 문제로 치환되므로, 제1 장치(110)와 제2 장치(120)가 2자간 연산을 이용하여 a와 b 사이의 일치 확인을 위해 필요한 전송량과 연산량을 줄일 수 있게 된다.Meanwhile, according to the procedure shown in FIG. 2 , the first device 110 and the second device 120 share shares S 1 and S 2 =S 1 +d. As described above, when a = b, since d = 0, S 1 =S 2 holds. Also, when a≠b, since d≠0, S1≠S2 holds. Therefore, since the correspondence between the integer values a and b is replaced by the correspondence between S 1 and S 2 , which are much smaller than a and b, the first device 110 and the second device 120 perform a two-way operation. By using , it is possible to reduce the amount of transmission and calculation required to check the correspondence between a and b.

또한, 상술한 수학식 3에 따르면 L이 고정된 값일 때, t가 커질수록 k가 작아지므로, 도 2에 도시된 절차에서 암호문 전송량과 연산량이 감소된다. 그러나, 상술한 수학식 4에 따르면 t가 커질수록 M이 커지므로, 제1 장치(110)와 제2 장치(120)가 S1와 S2를 이용하여 일치 확인을 수행하기 위해 소요되는 전송량과 연산량이 증가하게 된다. 따라서, t 값은 제1 장치(110)와 제2 장치(120)의 성능, 제1 장치(110)와 제2 장치(120) 사이의 네트워크 상태 등을 고려하여 적절한 값으로 선택될 수 있다. In addition, according to Equation 3 described above, when L is a fixed value, k decreases as t increases, so that the amount of ciphertext transmission and the amount of calculation are reduced in the procedure shown in FIG. 2 . However, according to Equation 4 described above, since M increases as t increases, the amount of transmission required for the first device 110 and the second device 120 to perform coincidence check using S 1 and S 2 and the amount of computation increases. Therefore, the value t may be selected as an appropriate value in consideration of the performance of the first device 110 and the second device 120, the network state between the first device 110 and the second device 120, and the like.

한편, 도 2에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.On the other hand, in the flowchart shown in FIG. 2, at least some steps are performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, or one or more steps not shown are added. can be performed

도 3은 다른 실시예에 따른 지분 생성 방법의 절차를 나타낸 순서도이다.3 is a flowchart illustrating a procedure of a stake generation method according to another embodiment.

도 3을 참조하면, 제1 장치(110)는 L 비트로 표현되는 정수 값 a에 대한 k 자리의 t진법 표현인 변환 값 a'를 생성하고(301), 제2 장치(120)는 L 비트로 표현되는 정수 값 b에 대한 k자리의 t진법 표현인 변환 값 b'를 생성한다(302).Referring to FIG. 3, the first device 110 generates a conversion value a', which is a k-digit base-t expression for an integer value a expressed in L bits (301), and the second device 120 is expressed in L bits A conversion value b', which is a k-digit base-t expression for the integer value b, is generated (302).

이후, 제1 장치(110)는 t와 k에 기초하여 결정된 모듈러스 M에 기초한 동형 암호를 이용하여, 변환 값 a'의 k자리의 숫자 각각에 대한 암호문 Ci 및 변환 값 a'의 k자리의 숫자 각각을 제곱하여 합한 값에 대한 암호문

Figure pat00044
을 생성한다(303).Thereafter, the first device 110 uses a homomorphic encryption based on the modulus M determined based on t and k to obtain the ciphertext C i for each k-digit number of the conversion value a' and the k-digit number of the conversion value a' The ciphertext for the sum of the squares of each number
Figure pat00044
is generated (303).

이때, 암호문

Figure pat00045
는 아래의 수학식 13을 통해 생성될 수 있다.At this time, the ciphertext
Figure pat00045
Can be generated through Equation 13 below.

[수학식 13][Equation 13]

Figure pat00046
Figure pat00046

이후, 제1 장치(110)는 변환 값 a'의 k자리의 숫자 각각에 대한 암호문 Ci 을 포함하는 암호문 집합 C={C1,..., Ck} 및 변환 값 a'의 k자리의 숫자 각각을 제곱하여 합한 값에 대한 암호문

Figure pat00047
을 제2 장치(120)로 전송한다(304).Thereafter, the first device 110 provides a set of ciphertexts C={C 1 ,..., C k } including ciphertext C i for each of the k digits of the conversion value a' and the k digits of the conversion value a'. The ciphertext for the sum of the squares of each number in
Figure pat00047
is transmitted to the second device 120 (304).

이후, 제1 장치(110)로부터 암호문 집합 C 및 암호문

Figure pat00048
를 수신한 제2 장치(120)는 암호문 집합 C, 암호문
Figure pat00049
및 변환 값 b'를 이용하여 변환 값 a'와 변환 값 b' 사이의 차이 d에 대한 암호문 Cd을 생성한다(305).Thereafter, the ciphertext set C and the ciphertext from the first device 110
Figure pat00048
The second device 120 receiving the cipher text set C, cipher text
Figure pat00049
And cipher text C d for the difference d between the conversion value a' and the conversion value b' is generated using the conversion value b' (305).

이때, 일 실시예에 따르면, 제2 장치(120)는 아래의 수학식 14를 이용하여 변환 값 a'와 변환 값 b' 사이의 차이 d에 대한 암호문 Cd를 생성할 수 있다.In this case, according to an embodiment, the second device 120 may generate the cipher text C d for the difference d between the conversion value a' and the conversion value b' using Equation 14 below.

[수학식 14][Equation 14]

Figure pat00050
Figure pat00050

이후, 제2 장치(120)는 정수 집합 ZM의 원소 중 하나를 임의로 선택하고, 선택한 원소를 정수 값 a와 정수 값 b 사이의 일치 확인을 위한 제2 장치(120) 측의 지분 S1으로 결정한다(306). Thereafter, the second device 120 randomly selects one of the elements of the integer set Z M , and uses the selected element as a stake S 1 on the second device 120 side for matching confirmation between the integer value a and the integer value b. A decision is made (306).

이후, 제2 장치(120)는 제2 장치(120) 측의 지분 S1과 암호문 Cd를 이용하여 정수 값 a와 정수 값 b 사이의 일치 확인을 위한 제1 장치(110) 측의 지분 S2에 대한 암호문

Figure pat00051
을 생성한다(307).Thereafter, the second device 120 uses the stake S 1 of the second device 120 and the ciphertext C d to verify the coincidence between the integer value a and the integer value b, the first device 110's stake S Passphrase for 2
Figure pat00051
is generated (307).

이때, 제2 장치(120)는 상술한 수학식 12를 이용하여 제1 장치(110) 측의 지분 S2에 대한 암호문

Figure pat00052
를 생성할 수 있다.At this time, the second device 120 uses the above-described Equation 12 to generate the encrypted text for the stake S 2 of the first device 110.
Figure pat00052
can create

이후, 제2 장치(120)는 생성된 암호문

Figure pat00053
를 제1 장치(110)로 전송한다(308).Then, the second device 120 generates the encrypted text
Figure pat00053
is transmitted to the first device 110 (308).

또한, 제1 장치(110)는 제2 장치(120)로부터 수신된 암호문

Figure pat00054
를 복호화하여 제1 장치(110) 측의 지분 S2를 획득한다(309).In addition, the first device 110 receives the encrypted text from the second device 120
Figure pat00054
is decrypted to obtain a stake S 2 of the first device 110 (309).

한편, 도 3에 도시된 방법은 도 2에 도시된 방법과 비교하여 제1 장치(110)가 암호문

Figure pat00055
를 생성하여 제2 장치(120)로 전송하는 과정이 추가되나, 제2 장치(120)에서 k회의 평문-암호문 곱셈(즉,
Figure pat00056
)을 통해 암호문 Cd를 생성할 수 있게 된다. 따라서, 도 3에 도시된 방법은 암호문 Cd를 생성을 위해 k회의 암호문 곱셈(즉,
Figure pat00057
)이 요구되는 도 2에 도시된 방법에 비해 제1 장치(110) 측 지분 S2를 생성하기 위한 속도를 향상시킬 수 있다. Meanwhile, the method shown in FIG. 3 is compared to the method shown in FIG.
Figure pat00055
A process of generating and transmitting to the second device 120 is added, but k plaintext-ciphertext multiplications in the second device 120 (i.e.,
Figure pat00056
), the ciphertext C d can be generated. Therefore, the method shown in FIG. 3 involves k ciphertext multiplications (i.e.,
Figure pat00057
), it is possible to improve the speed for generating the stake S 2 on the side of the first device 110 compared to the method shown in FIG. 2 that requires.

한편, 도 3에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.Meanwhile, in the flowchart shown in FIG. 3, at least some of the steps are performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, or one or more steps not shown are added. can be performed

도 4는 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.4 is a block diagram illustrating and describing a computing environment including a computing device according to an exemplary embodiment. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.

도시된 컴퓨팅 환경(110)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 도 1에 도시된 제1 장치(110) 또는 제2 장치(120)에 포함된 하나 이상의 컴포넌트일 수 있다.The illustrated computing environment 110 includes a computing device 12 . In one embodiment, computing device 12 may be one or more components included in first device 110 or second device 120 shown in FIG. 1 .

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14 , a computer readable storage medium 16 and a communication bus 18 . Processor 14 may cause computing device 12 to operate according to the above-mentioned example embodiments. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16 . The one or more programs may include one or more computer-executable instructions, which when executed by processor 14 may cause computing device 12 to perform operations in accordance with an illustrative embodiment. It can be.

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. Program 20 stored on computer readable storage medium 16 includes a set of instructions executable by processor 14 . In one embodiment, computer readable storage medium 16 includes memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other forms of storage media that can be accessed by computing device 12 and store desired information, or any suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communications bus 18 interconnects various other components of computing device 12, including processor 14 and computer-readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . An input/output interface 22 and a network communication interface 26 are connected to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output devices 24 include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or a photographing device. input devices, and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 24 may be included inside the computing device 12 as a component constituting the computing device 12, or may be connected to the computing device 12 as a separate device distinct from the computing device 12. may be

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although the present invention has been described in detail through representative examples above, those skilled in the art can make various modifications to the above-described embodiments without departing from the scope of the present invention. will understand Therefore, the scope of the present invention should not be limited to the described embodiments and should not be defined, and should be defined by not only the claims to be described later, but also those equivalent to these claims.

10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 시스템 환경
110: 제1 장치
120: 제2 장치
10: Computing environment
12: computing device
14: Processor
16: computer readable storage medium
18: communication bus
20: program
22: I/O interface
24: I/O device
26: network communication interface
100: system environment
110: first device
120: second device

Claims (26)

L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하는 단계;
상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여, 상기 제1 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 생성하는 단계;
L 비트로 표현되는 제2 정수 값을 가진 외부 장치로 상기 암호문 집합을 전송하는 단계; 및
상기 외부 장치로부터, 상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제2 지분에 대한 암호문을 수신하는 단계를 포함하고,
상기 제1 지분은, 상기 정수 집합에서 선택된 값이고,
상기 제2 지분에 대한 암호문은, 암호문 집합, 상기 제2 정수 값에 대한 k자리의 t진법 표현인 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문인, 일치 확인을 위한 지분 생성 방법.
A first conversion value that is a t (t is an integer where t≥2) decimal representation of k (k is an integer where 0<k≤L) place for a first integer value represented by L (L is an integer where L≥1) bits generating;
Using a homomorphic encryption algorithm based on a modulus M determined based on t and k, a ciphertext set including ciphertext for each of the k-digit numbers of the first conversion value is generated. doing;
Transmitting the ciphertext set having a second integer value represented by L bits to an external device; and
Instead of the first integer value and the second integer value, for an equality check between the first integer value and the second integer value as elements of the set of integers defined by the modulus M, from the external device. Receiving encrypted text for a second share of a first share and a second share to be used;
The first stake is a value selected from the integer set,
The ciphertext for the second stake is a ciphertext set, a second conversion value that is a t-base t expression of k digits for the second integer value, and the ciphertext generated using the first stake. Share generation method for matching confirmation .
청구항 1에 있어서,
상기 k는, 아래의 수학식 1
[수학식 1]
Figure pat00058

(이때, []는 최대 정수 함수(greatest integer function))
에 기초하여 결정되는, 일치 확인을 위한 지분 생성 방법.
The method of claim 1,
The k is Equation 1 below
[Equation 1]
Figure pat00058

(where [] is the greatest integer function)
Stake creation method for matching, determined based on.
청구항 1에 있어서,
상기 모듈러스 M은, 아래의 수학식 2
[수학식 2]
Figure pat00059

에 기초하여 결정되는, 일치 확인을 위한 지분 생성 방법.
The method of claim 1,
The modulus M is expressed by Equation 2 below
[Equation 2]
Figure pat00059

Stake creation method for matching, determined based on.
청구항 1에 있어서,
상기 제2 지분은, 아래의 수학식 3
[수학식 3]
Figure pat00060

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분)
을 만족하고,
상기 d는, 아래의 수학식 4
[수학식 4]
Figure pat00061

(이때, ai는 상기 제1 변환 값의 i번째 자리의 숫자, bi는 상기 제2 변환 값의 i번째 자리의 숫자)
를 만족하는, 일치 확인을 위한 지분 생성 방법.
The method of claim 1,
The second share is expressed by Equation 3 below
[Equation 3]
Figure pat00060

(At this time, S 1 is the first share, S 2 is the second share)
satisfies,
The d is Equation 4 below
[Equation 4]
Figure pat00061

(At this time, a i is the i-th digit number of the first conversion value, b i is the i-th digit number of the second conversion value)
A stake generation method for matching, which satisfies .
청구항 1에 있어서,
상기 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 생성하는 단계를 더 포함하고,
상기 전송하는 단계는, 상기 암호문 집합 및 상기 합산한 값에 대한 암호문을 상기 외부 장치로 전송하고,
상기 제2 지분에 대한 암호문은, 상기 암호문 집합, 상기 합산한 값에 대한 암호문, 상기 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문인, 일치 확인을 위한 방법.
The method of claim 1,
Further comprising generating a ciphertext for a value obtained by squaring and summing each of the k digit numbers,
In the transmitting step, the ciphertext for the ciphertext set and the summed value is transmitted to the external device,
The ciphertext for the second stake is ciphertext generated using the ciphertext set, the ciphertext for the summed value, the second conversion value, and the first stake.
L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하는 단계;
외부 장치로부터, 상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여 생성된, L 비트로 표현되는 제2 정수 값에 대한 k 자리의 t진법 표현인 제2 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 수신하는 단계;
상기 암호문 집합 및 상기 제1 변환 값을 이용하여 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이에 대한 암호문을 생성하는 단계;
상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제1 지분을 상기 정수 집합에서 선택하는 단계;
상기 암호문 집합, 상기 차이에 대한 암호문 및 상기 제1 지분을 이용하여 상기 제2 지분에 대한 암호문을 생성하는 단계; 및
상기 제2 지분에 대한 암호문을 상기 외부 장치로 전송하는 단계를 포함하는, 일치 확인을 위한 지분 생성 방법
A first conversion value that is a t (t is an integer where t≥2) decimal representation of k (k is an integer where 0<k≤L) place for a first integer value represented by L (L is an integer where L≥1) bits generating;
A second integer value expressed by L bits generated from an external device using a homomorphic encryption algorithm based on a modulus M determined based on the t and the k t digit expression of k digits Receiving a ciphertext set including ciphertext for each of the k-digit numbers of the second conversion value of ?;
generating ciphertext for a difference between the first conversion value and the second conversion value using the ciphertext set and the first conversion value;
A first stake to be used instead of the first integer value and the second integer value for an equality check between the first integer value and the second integer value as an element of the set of integers defined by the modulus M and selecting the first share among the second shares from the set of integers;
generating a ciphertext for the second stake using the ciphertext set, the ciphertext for the difference, and the first stake; and
A share generation method for matching confirmation comprising transmitting the encrypted text for the second share to the external device.
청구항 6에 있어서,
상기 k는, 아래의 수학식 1
[수학식 1]
Figure pat00062

(이때, []는 최대 정수 함수(greatest integer function))
에 기초하여 결정되는, 일치 확인을 위한 지분 생성 방법.
The method of claim 6,
The k is Equation 1 below
[Equation 1]
Figure pat00062

(where [] is the greatest integer function)
Stake creation method for matching, determined based on.
청구항 6에 있어서,
상기 모듈러스 M은, 아래의 수학식 2
[수학식 2]
Figure pat00063

(이때, M은 상기 모듈러스)
에 기초하여 결정되는, 일치 확인을 위한 지분 생성 방법.
The method of claim 6,
The modulus M is expressed by Equation 2 below
[Equation 2]
Figure pat00063

(At this time, M is the modulus)
Stake creation method for matching, determined based on.
청구항 6에 있어서,
상기 제2 지분은, 아래의 수학식 3
[수학식 3]
Figure pat00064

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분, d는 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이)
을 만족하고,
상기 d는, 아래의 수학식 4
[수학식 4]
Figure pat00065

(이때, ai는 상기 제2 변환 값의 i번째 자리의 숫자, bi는 상기 제1 변환 값의 i번째 자리의 숫자)
를 만족하는, 일치 확인을 위한 지분 생성 방법.
The method of claim 6,
The second share is expressed by Equation 3 below
[Equation 3]
Figure pat00064

(At this time, S 1 is the first share, S 2 is the second share, and d is the difference between the first conversion value and the second conversion value)
satisfies,
The d is Equation 4 below
[Equation 4]
Figure pat00065

(At this time, a i is the number of the i-th digit of the second conversion value, and b i is the number of the i-th digit of the first conversion value)
A stake generation method for matching, which satisfies .
청구항 9에 있어서,
상기 차이에 대한 암호문을 생성하는 단계는, 아래의 수학식 5
[수학식 5]
Figure pat00066

(이때, Cd는 상기 차이에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)
을 이용하여, 상기 차이에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 방법.
The method of claim 9,
The step of generating the ciphertext for the difference is Equation 5 below.
[Equation 5]
Figure pat00066

(At this time, C d is the ciphertext for the difference, C i is the ciphertext for the i-th digit of the second conversion value, and HE.Enc() is encryption using the homomorphic encryption encryption algorithm)
A method for generating a stake for matching, generating a ciphertext for the difference using .
청구항 9에 있어서,
상기 외부 장치로부터, 상기 제2 변환 값의 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 수신하는 단계를 더 포함하고,
상기 차이에 대한 암호문을 생성하는 단계는, 상기 암호문 집합, 상기 합산한 값에 대한 암호문 및 상기 제1 변환 값을 이용하여 상기 차이에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 방법.
The method of claim 9,
Receiving, from the external device, ciphertext for a value obtained by squaring and summing each of the k-digit numbers of the second conversion value;
In the generating of the ciphertext for the difference, the ciphertext for the difference is generated using the ciphertext set, the ciphertext for the summed value, and the first conversion value.
청구항 11에 있어서,
상기 차이에 대한 암호문을 생성하는 단계는, 아래의 수학식 6
[수학식 6]
Figure pat00067

(이때, Cd는 상기 차이에 대한 암호문,
Figure pat00068
는 상기 제곱하여 합산한 값에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)
을 이용하여 상기 차이에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 방법.
The method of claim 11,
The step of generating the ciphertext for the difference is Equation 6 below
[Equation 6]
Figure pat00067

(At this time, C d is the ciphertext for the difference,
Figure pat00068
is the ciphertext for the value obtained by summing the squares, C i is the ciphertext for the i th digit of the second conversion value, and HE.Enc() is encryption using the homomorphic encryption encryption algorithm)
A method for generating a stake for matching, generating ciphertext for the difference using
청구항 9에 있어서,
상기 제2 지분에 대한 암호문을 생성하는 단계는, 아래의 수학식 7
[수학식 7]
Figure pat00069

(이때,
Figure pat00070
는 상기 제2 지분에 대한 암호문, Cd는 상기 차이에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)
를 이용하여 상기 제2 지분에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 방법.
The method of claim 9,
The step of generating the cipher text for the second stake is Equation 7 below.
[Equation 7]
Figure pat00069

(At this time,
Figure pat00070
is the ciphertext for the second stake, Cd is the ciphertext for the difference, and HE.Enc () is encryption using the encryption algorithm of the homomorphic encryption)
A method of generating a share for matching confirmation, generating a cryptogram for the second share using
하나 이상의 명령어를 저장하는 메모리; 및
상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하고,
상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여, 상기 제1 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 생성하고,
L 비트로 표현되는 제2 정수 값을 가진 외부 장치로 상기 암호문 집합을 전송하고,
상기 외부 장치로부터, 상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제2 지분에 대한 암호문을 수신하고,
상기 제1 지분은, 상기 정수 집합에서 선택된 값이고,
상기 제2 지분에 대한 암호문은, 암호문 집합, 상기 제2 정수 값에 대한 k자리의 t진법 표현인 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문인, 일치 확인을 위한 지분 생성 장치.
a memory that stores one or more instructions; and
comprising one or more processors to execute the one or more instructions;
The one or more processors,
A first conversion value that is a t (t is an integer where t≥2) decimal representation of k (k is an integer where 0<k≤L) place for a first integer value represented by L (L is an integer where L≥1) bits create,
Using a homomorphic encryption algorithm based on a modulus M determined based on t and k, a ciphertext set including ciphertext for each of the k-digit numbers of the first conversion value is generated. do,
Transmitting the cipher text set to an external device having a second integer value represented by L bits;
Instead of the first integer value and the second integer value, for an equality check between the first integer value and the second integer value as elements of the set of integers defined by the modulus M, from the external device. Receive cryptograms for a second stake of the first stake and the second stake to be used;
The first stake is a value selected from the integer set,
The ciphertext for the second stake is a ciphertext set, a second conversion value that is a k-digit t-base expression for the second integer value, and the ciphertext generated using the first stake. Share generating device for matching .
청구항 14에 있어서,
상기 k는, 아래의 수학식 1
[수학식 1]
Figure pat00071

(이때, []는 최대 정수 함수(greatest integer function))
에 기초하여 결정되는, 일치 확인을 위한 지분 생성 장치.
The method of claim 14,
The k is Equation 1 below
[Equation 1]
Figure pat00071

(where [] is the greatest integer function)
Stake generating device for matching, determined based on.
청구항 14에 있어서,
상기 모듈러스 M은, 아래의 수학식 2
[수학식 2]
Figure pat00072

에 기초하여 결정되는, 일치 확인을 위한 지분 생성 장치.
The method of claim 14,
The modulus M is expressed by Equation 2 below
[Equation 2]
Figure pat00072

Stake generating device for matching, determined based on.
청구항 14에 있어서,
상기 제2 지분은, 아래의 수학식 3
[수학식 3]
Figure pat00073

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분)
을 만족하고,
상기 d는, 아래의 수학식 4
[수학식 4]
Figure pat00074

(이때, ai는 상기 제1 변환 값의 i번째 자리의 숫자, bi는 상기 제2 변환 값의 i번째 자리의 숫자)
를 만족하는, 일치 확인을 위한 지분 생성 장치.
The method of claim 14,
The second share is expressed by Equation 3 below
[Equation 3]
Figure pat00073

(At this time, S 1 is the first share, S 2 is the second share)
satisfies,
The d is Equation 4 below
[Equation 4]
Figure pat00074

(At this time, a i is the i-th digit number of the first conversion value, b i is the i-th digit number of the second conversion value)
A stake generating device for matching, which satisfies.
청구항 14에 있어서,
상기 하나 이상의 프로세서는, 상기 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 생성하고,
상기 암호문 집합 및 상기 합산한 값에 대한 암호문을 상기 외부 장치로 전송하고,
상기 제2 지분에 대한 암호문은, 상기 암호문 집합, 상기 합산한 값에 대한 암호문, 상기 제2 변환 값 및 상기 제1 지분을 이용하여 생성된 암호문인, 일치 확인을 위한 장치.
The method of claim 14,
The one or more processors generate ciphertext for a value obtained by squaring and summing each of the k-digit numbers,
Transmitting the ciphertext for the ciphertext set and the summed value to the external device;
The ciphertext for the second stake is ciphertext generated using the ciphertext set, the ciphertext for the summed value, the second conversion value, and the first stake.
하나 이상의 명령어를 저장하는 메모리; 및
상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
L(L은 L≥1인 정수) 비트로 표현되는 제1 정수 값에 대한 k(k는 0<k≤L인 정수) 자리의 t(t는 t≥2인 정수)진법 표현인 제1 변환 값을 생성하고,
외부 장치로부터, 상기 t 및 상기 k에 기초하여 결정된 모듈러스(modulus) M에 기초한 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 이용하여 생성된, L 비트로 표현되는 제2 정수 값에 대한 k 자리의 t진법 표현인 제2 변환 값의 상기 k 자리의 숫자 각각에 대한 암호문을 포함하는 암호문 집합을 수신하고,
상기 암호문 집합 및 상기 제1 변환 값을 이용하여 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이에 대한 암호문을 생성하고,
상기 모듈러스 M에 의해 정의된 정수 집합의 원소로서 상기 제1 정수 값과 상기 제2 정수 값 사이의 일치 확인(equality check)을 위해 상기 제1 정수 값과 상기 제2 정수 값 대신 이용될 제1 지분 및 제2 지분 중 상기 제1 지분을 상기 정수 집합에서 선택하고,
상기 암호문 집합, 상기 차이에 대한 암호문 및 상기 제1 지분을 이용하여 상기 제2 지분에 대한 암호문을 생성하고,
상기 제2 지분에 대한 암호문을 상기 외부 장치로 전송하는, 일치 확인을 위한 지분 생성 장치.
a memory that stores one or more instructions; and
comprising one or more processors to execute the one or more instructions;
The one or more processors,
A first conversion value that is a t (t is an integer where t≥2) decimal representation of k (k is an integer where 0<k≤L) place for a first integer value represented by L (L is an integer where L≥1) bits create,
A second integer value expressed by L bits generated from an external device using a homomorphic encryption algorithm based on a modulus M determined based on the t and the k t digit expression of k digits Receiving a ciphertext set including ciphertext for each of the k digits of the second conversion value,
Generating ciphertext for a difference between the first conversion value and the second conversion value using the ciphertext set and the first conversion value;
A first stake to be used instead of the first integer value and the second integer value for an equality check between the first integer value and the second integer value as an element of the set of integers defined by the modulus M and selecting the first share among the second shares from the set of integers;
Generating ciphertext for the second stake using the ciphertext set, the ciphertext for the difference, and the first stake;
A share generating device for matching, which transmits the encrypted text for the second share to the external device.
청구항 19에 있어서,
상기 k는, 아래의 수학식 1
[수학식 1]
Figure pat00075

(이때, []는 최대 정수 함수(greatest integer function))
에 기초하여 결정되는, 일치 확인을 위한 지분 생성 장치.
The method of claim 19
The k is Equation 1 below
[Equation 1]
Figure pat00075

(where [] is the greatest integer function)
Stake generating device for matching, determined based on.
청구항 19에 있어서,
상기 모듈러스 M은, 아래의 수학식 2
[수학식 2]
Figure pat00076

(이때, M은 상기 모듈러스)
에 기초하여 결정되는, 일치 확인을 위한 지분 생성 장치.
The method of claim 19
The modulus M is expressed by Equation 2 below
[Equation 2]
Figure pat00076

(At this time, M is the modulus)
Stake generating device for matching, determined based on.
청구항 19에 있어서,
상기 제2 지분은, 아래의 수학식 3
[수학식 3]
Figure pat00077

(이때, S1은 상기 제1 지분, S2는 상기 제2 지분, d는 상기 제1 변환 값과 상기 제2 변환 값 사이의 차이)
을 만족하고,
상기 d는, 아래의 수학식 4
[수학식 4]
Figure pat00078

(이때, ai는 상기 제2 변환 값의 i번째 자리의 숫자, bi는 상기 제1 변환 값의 i번째 자리의 숫자)
를 만족하는, 일치 확인을 위한 지분 생성 장치.
The method of claim 19
The second share is expressed by Equation 3 below
[Equation 3]
Figure pat00077

(At this time, S 1 is the first share, S 2 is the second share, and d is the difference between the first conversion value and the second conversion value)
satisfies,
The d is Equation 4 below
[Equation 4]
Figure pat00078

(At this time, a i is the number of the i-th digit of the second conversion value, and b i is the number of the i-th digit of the first conversion value)
A stake generating device for matching, which satisfies.
청구항 22에 있어서,
상기 하나 이상의 프로세서는, 아래의 수학식 5
[수학식 5]
Figure pat00079

(이때, Cd는 상기 차이에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)
을 이용하여, 상기 차이에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 장치.
The method of claim 22
The one or more processors, Equation 5 below
[Equation 5]
Figure pat00079

(At this time, C d is the ciphertext for the difference, C i is the ciphertext for the i-th digit of the second conversion value, and HE.Enc() is encryption using the homomorphic encryption encryption algorithm)
A stake generating device for matching, generating ciphertext for the difference using .
청구항 22에 있어서,
상기 하나 이상의 프로세서는, 상기 외부 장치로부터, 상기 제2 변환 값의 k 자리의 숫자 각각을 제곱하여 합산한 값에 대한 암호문을 수신하고,
상기 암호문 집합, 상기 합산한 값에 대한 암호문 및 상기 제1 변환 값을 이용하여 상기 차이에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 장치.
The method of claim 22
The one or more processors receive, from the external device, ciphertext for a value obtained by squaring and summing each of the k-digit numbers of the second conversion value,
A share generating device for generating a match for generating a ciphertext for the difference using the ciphertext set, the ciphertext for the summed value, and the first conversion value.
청구항 24에 있어서,
상기 하나 이상의 프로세서는, 아래의 수학식 6
[수학식 6]
Figure pat00080

(이때, Cd는 상기 차이에 대한 암호문,
Figure pat00081
는 상기 제곱하여 합산한 값에 대한 암호문, Ci는 상기 제2 변환 값의 i 번째 자리의 숫자에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)
을 이용하여 상기 차이에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 장치.
The method of claim 24
The one or more processors, Equation 6 below
[Equation 6]
Figure pat00080

(At this time, C d is the ciphertext for the difference,
Figure pat00081
is the ciphertext for the value obtained by summing the squares, C i is the ciphertext for the i th digit of the second conversion value, and HE.Enc() is encryption using the homomorphic encryption encryption algorithm)
A stake generating device for matching, generating ciphertext for the difference using
청구항 22에 있어서,
상기 하나 이상의 프로세서는, 아래의 수학식 7
[수학식 7]
Figure pat00082

(이때,
Figure pat00083
는 상기 제2 지분에 대한 암호문, Cd는 상기 차이에 대한 암호문, HE.Enc()는 상기 동형 암호의 암호화 알고리즘을 이용한 암호화)
을 이용하여 상기 제2 지분에 대한 암호문을 생성하는, 일치 확인을 위한 지분 생성 장치.
The method of claim 22
The one or more processors, Equation 7 below
[Equation 7]
Figure pat00082

(At this time,
Figure pat00083
is the ciphertext for the second stake, Cd is the ciphertext for the difference, and HE.Enc () is encryption using the encryption algorithm of the homomorphic encryption)
Stake generating device for matching, which generates cryptograms for the second stake by using.
KR1020210065426A 2021-05-21 2021-05-21 Method and apparatus for generating shares for equality check KR20220157649A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210065426A KR20220157649A (en) 2021-05-21 2021-05-21 Method and apparatus for generating shares for equality check

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210065426A KR20220157649A (en) 2021-05-21 2021-05-21 Method and apparatus for generating shares for equality check

Publications (1)

Publication Number Publication Date
KR20220157649A true KR20220157649A (en) 2022-11-29

Family

ID=84235267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210065426A KR20220157649A (en) 2021-05-21 2021-05-21 Method and apparatus for generating shares for equality check

Country Status (1)

Country Link
KR (1) KR20220157649A (en)

Similar Documents

Publication Publication Date Title
EP3916604B1 (en) Method and apparatus for processing privacy data of block chain, device, storage medium and computer program product
CN109150499B (en) Method and device for dynamically encrypting data, computer equipment and storage medium
US11979492B2 (en) Computer-implemented system and method for distributing shares of digitally signed data
EP3264671A1 (en) Key replacement direction control system, and key replacement direction control method
US20210036849A1 (en) Methods and systems for encryption and homomorphic encryption systems using geometric algebra and hensel codes
JP2021523620A (en) Methods and systems for communicating secrets
US11991271B2 (en) System and method for quantum resistant public key encryption
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
JP2011164607A (en) Method and system for privacy-preserving computation of edit distance of symbol sequence
CN111368336B (en) Secret sharing-based training method and device, electronic equipment and storage medium
US20200044860A1 (en) System and method for quantum resistant digital signature
KR20200047002A (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
KR102143525B1 (en) Method for function encryption supporting set intersection operation and apparatus using the same
CN114039785B (en) Data encryption, decryption and processing methods, devices, equipment and storage medium
JP2023114996A (en) Correlation coefficient acquisition method, apparatus, electronic device and storage medium
Zajac Upper bounds on the complexity of algebraic cryptanalysis of ciphers with a low multiplicative complexity
KR20210082019A (en) Apparatus and method for set intersection operation
KR20220157649A (en) Method and apparatus for generating shares for equality check
KR102522708B1 (en) Apparatus and method for performing statistical calculation on homomorphic ciphertext
CN112131596B (en) Encryption and decryption method, equipment and storage medium
KR102284877B1 (en) Efficient functional encryption for set intersection
CN114726611A (en) Multiparty privacy set intersection method, system and device
KR102526114B1 (en) Apparatus and method for encryption and decryption
KR102281265B1 (en) Functional encryption for set intersection with time-constrained function keys
US20170352296A1 (en) Encoding device

Legal Events

Date Code Title Description
A201 Request for examination