KR20220048156A - 동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법 - Google Patents

동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법 Download PDF

Info

Publication number
KR20220048156A
KR20220048156A KR1020200130964A KR20200130964A KR20220048156A KR 20220048156 A KR20220048156 A KR 20220048156A KR 1020200130964 A KR1020200130964 A KR 1020200130964A KR 20200130964 A KR20200130964 A KR 20200130964A KR 20220048156 A KR20220048156 A KR 20220048156A
Authority
KR
South Korea
Prior art keywords
homomorphic
value
ciphertext
isomorphic
input
Prior art date
Application number
KR1020200130964A
Other languages
English (en)
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 KR1020200130964A priority Critical patent/KR20220048156A/ko
Publication of KR20220048156A publication Critical patent/KR20220048156A/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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

동형암호를 이용한 비선형 함수 계산 시스템 및 방법이 개시된다. 일 실시예에 따른 시스템은, 원본 데이터의 동형암호문으로부터, 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 생성하는 동형 연산 장치; 및 상기 동형 연산 장치로부터 수신한 상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하고, 상기 입력값(m)의 근사값(m')을 생성하며, 상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 비밀키 관리 장치를 포함한다.

Description

동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법 {SYSTEM AND METHOD FOR CALCULATING NON-LINEAR FUNCTION FOR MACHINE LEARNING USING HOMOMORPHIC ENCRYPTION AND MULTI-PARTY COMPUTATION}
개시되는 실시예들은 동형 암호와 다자간 계산을 이용한 비선형 함수 계산과 관련된다.
동형 암호(homomorphic encryption)는 암호화된 데이터를 복호화하지 않고 연산이 가능하여 데이터의 프라이버시가 보호된 상태로 머신 러닝(machine learning) 등의 분석이 가능한 최신 암호기술이다.
대부분의 동형암호는 기본적으로 암호화된 상태에서의 덧셈, 곱셈을 지원한다. 따라서 동형암호를 이용한 기계학습은 기존의 알고리즘을 덧셈, 곱셈을 기반으로 재구성하여 수행된다. 특히 대부분의 기계학습 알고리즘은 비선형 활성함수 연산을 수반하기 때문에, 해당 활성함수를 덧셈과 곱셈으로 연산이 가능한 다항식 형태로 근사하는 과정이 필요하다.
기계학습에서 이용되는 활성함수의 대다수는 유계 단조증가함수이다. 따라서 활성함수의 입력을 그대로 받아 계산하는 대신, 입력이 너무 큰 범위일 때 이를 줄여주는 조정 과정을 거쳐서 함수를 계산해도 출력에 큰 변화가 없다. 그러나 암호화된 상태에서는 활성함수의 입력에 대한 범위를 확인할 수 없기 때문에, 상당히 넓은 범위에 대한 근사다항식을 이용해야 하고 이에 따른 비효율성과 정확도 저하가 야기된다.
대한민국 등록특허공보 제10-1965628호 (2019.04.04. 공고)
개시되는 실시예들은 동형 암호와 다자간 계산을 이용하여 비선형 함수 계산을 수행하기 위한 기술적인 수단을 제공하기 위한 것이다.
또한, 개시되는 실시예들은 비밀키 관리자와의 프로토콜 기반 통신을 통해 활성함수의 입력 암호문의 범위를 조정함으로써, 활성함수를 다항식 형태로 근사할 경우의 효율성 및 정확도를 향상하기 위한 것이다.
예시적인 실시예에 따르면 원본 데이터의 동형암호문으로부터 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 생성하는 동형 연산 장치; 및 상기 동형 연산 장치로부터 수신한 상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하고, 상기 입력값(m)의 근사값(m')을 생성하며, 상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 비밀키 관리 장치를 포함하는, 동형암호를 이용한 비선형 함수 계산 시스템이 제공된다.
상기 근사값(m')은, 다음의 수학식
Figure pat00001
(이때, R은 상기 비선형 함수의 근사 범위)
에 의하여 계산될 수 있다.
다른 예시적인 실시예에 따르면 비선형 함수의 입력값(m)에 대한 제1 동형 암호문에 랜덤값(r)을 동형 연산하여 제2 동형 암호문을 생성하는 동형 연산 장치; 및 상기 동형 연산 장치로부터 수신되는 상기 제2 동형 암호문으로부터, 상기 랜덤값이 마스킹된 입력값(m+r)을 복원하고, 상기 동형 연산 장치와의 2자간 연산을 통하여, 상기 마스킹된 입력값(m+r)으로부터 상기 입력값(m)의 범위 정보 및 상기 마스킹된 입력값(m+r)에 대한 제3 동형 암호문을 계산하며, 상기 범위 정보 및 상기 제3 동형 암호문(C0)을 상기 동형 연산 장치로 송신하는 비밀키 관리 장치를 포함하는, 동형암호를 이용한 비선형 함수 계산 시스템이 제공된다.
상기 범위 정보는, 상기 마스킹된 입력값(m+r) 및 상기 동형 연산 장치에 저장된 비교값(-r)의 합이 특정 범위에 속하는지에 대한 복수의 논리값을 포함할 수 있다.
상기 논리값은 제1 논리값(b1) 및 제2 논리값(b2)을 포함하며,
상기 제1 논리값(b1) 및 상기 제2 논리값(b2)은 다음의 수학식
Figure pat00002
Figure pat00003
(이때, R은 상기 비선형 함수의 근사 범위)
에 의하여 계산될 수 있다.
상기 비밀키 관리 장치는,
상기 제1 논리값(b1)에 대한 제4 동형 암호문(C1) 및 상기 제2 논리값(b2)에 대한 제5 동형 암호문(C2)을 상기 제3 동형 암호문(C0)과 함께 상기 동형 연산 장치로 송신할 수 있다.
상기 동형 연산 장치는, 제3 동형 암호문(C0), 상기 제4 동형 암호문(C1) 및 상기 제5 동형 암호문(C2)으로부터 상기 입력값(m)의 근사값(m')에 대한 동형 암호문을 생성할 수 있다.
상기 근사값(m')에 대한 동형 암호문(Cinput')은 다음의 수학식
Figure pat00004
(이때,
Figure pat00005
은 동형 덧셈,
Figure pat00006
은 동형 뺄셈,
Figure pat00007
은 동형 곱셈)
에 의하여 계산될 수 있다.
다른 예시적인 실시예에 따르면, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 수신하는 단계; 상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하는 단계; 상기 입력값(m)의 근사값(m')을 생성하는 단계; 및 상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 단계를 포함하는, 방법이 제공된다.
상기 근사값(m')은, 다음의 수학식
Figure pat00008
(이때, R은 상기 비선형 함수의 근사 범위)
에 의하여 계산될 수 있다.
다른 예시적인 실시예에 따르면, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 제1 동형 암호문에 랜덤값(r)을 동형 연산하여 생성되는 제2 동형 암호문을 수신하는 단계; 상기 제2 동형 암호문으로부터, 상기 랜덤값이 마스킹된 입력값(m+r)을 복원하는 단계; 상기 동형 연산 장치와의 2자간 연산을 통하여, 상기 마스킹된 입력값(m+r)으로부터 상기 입력값(m)의 범위 정보 및 상기 마스킹된 입력값(m+r)에 대한 제3 동형 암호문을 계산하는 단계; 및 상기 범위 정보 및 상기 제3 동형 암호문(C0)을 상기 동형 연산 장치로 송신하는 단계를 포함하는 방법이 제공된다.
상기 범위 정보는, 상기 마스킹된 입력값(m+r) 및 상기 동형 연산 장치에 저장된 비교값(-r)의 합이 특정 범위에 속하는지에 대한 복수의 논리값을 포함할 수 있다.
상기 논리값은 제1 논리값(b1) 및 제2 논리값(b2)을 포함하며,
상기 제1 논리값(b1) 및 상기 제2 논리값(b2)은 다음의 수학식
Figure pat00009
Figure pat00010
(이때, R은 상기 비선형 함수의 근사 범위)
에 의하여 계산될 수 있다.
상기 송신하는 단계는, 상기 제1 논리값(b1)에 대한 제4 동형 암호문(C1) 및 상기 제2 논리값(b2)에 대한 제5 동형 암호문(C2)을 상기 제3 동형 암호문(C0)과 함께 상기 동형 연산 장치로 송신하도록 구성될 수 있다.
상기 동형 연산 장치는, 제3 동형 암호문(C0), 상기 제4 동형 암호문(C1) 및 상기 제5 동형 암호문(C2)으로부터 상기 입력값(m)의 근사값(m')에 대한 동형 암호문을 생성할 수 있다.
상기 근사값(m')에 대한 동형 암호문(Cinput')은 다음의 수학식
Figure pat00011
(이때,
Figure pat00012
은 동형 덧셈,
Figure pat00013
은 동형 뺄셈,
Figure pat00014
은 동형 곱셈)
에 의하여 계산될 수 있다.
다른 예시적인 실시예에 따르면, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 상기 하나 이상의 명령어들이 실행됨에 따라, 동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 수신하는 단계; 상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하는 단계; 상기 입력값(m)의 근사값(m')을 생성하는 단계; 및 상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 단계를 수행하는, 장치가 제공된다.
다른 예시적인 실시예에 따르면, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 상기 하나 이상의 명령어들이 실행됨에 따라, 동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 제1 동형 암호문에 랜덤값(r)을 동형 연산하여 생성되는 제2 동형 암호문을 수신하는 단계; 상기 제2 동형 암호문으로부터, 상기 랜덤값이 마스킹된 입력값(m+r)을 복원하는 단계; 상기 동형 연산 장치와의 2자간 연산을 통하여, 상기 마스킹된 입력값(m+r)으로부터 상기 입력값(m)의 범위 정보 및 상기 마스킹된 입력값(m+r)에 대한 제3 동형 암호문을 계산하는 단계; 및 상기 범위 정보 및 상기 제3 동형 암호문(C0)을 상기 동형 연산 장치로 송신하는 단계를 수행하는, 장치가 제공된다.
개시되는 실시예들에 따르면, 동형 암호와 다자간 계산을 이용하여 원본 데이터가 암호화된 상태에서도 비선형 함수 계산을 수행할 수 있다. 또한, 비밀키 관리자와의 프로토콜 기반 통신을 통해 활성함수의 입력 암호문의 범위를 조정함으로써 다항식을 근사해야 할 범위를 대폭 감소시킬 수 있으며, 이에 따라 다항식 근사의 효율성 및 정확성을 높일 수 있다.
도 1은 일 실시예에 따른 동형암호를 이용한 비선형 함수 계산 시스템(100)을 설명하기 위한 블록도
도 2는 일 실시예에 따른 동형암호를 이용한 비선형 함수 계산 방법(200)을 설명하기 위한 흐름도
도 3은 다른 실시예에 따른 동형암호를 이용한 비선형 함수 계산 시스템(300)을 설명하기 위한 블록도
도 4는 다른 실시예에 따른 동형암호를 이용한 비선형 함수 계산 방법(400)을 설명하기 위한 흐름도
도 5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
본 발명의 실시예들을 설명함에 앞서, 동형암호 및 암호학적 2자간 계산을 설명하면 다음과 같다.
먼저, 동형암호(Homomorphic Encryption)는 (Enc(pk,m)) 상의 연산을 통해 평문 데이터(m) 를 분석 및 처리할 수 있게 하는 차세대 암호기술이다. 동형암호는 다음의 네 가지 알고리즘으로 구성된다:
KeyGen(1λ) → (pk,sk,evk): 안전성 파라미터 λ를 갖도록 공개키 pk, 비밀키 sk, 연산키 evk를 생성
Enc(pk,m) → c: pk를 이용해 메시지 m의 암호문 c를 출력
Eval(evk,f,c) → c*: evk를 이용해 암호문 c로부터 메시지 f(m)에 해당하는 새로운 암호문 c*를 출력
Dec(sk,c) → m: sk를 이용해 암호문 c로부터 메시지 m을 출력
일반 암호와 구분되는 동형암호의 특징은 암호화된 상태에서 메시지에 연산을 처리할 수 있는 Eval 알고리즘이다. Eval알고리즘은 두 메시지의 합 m+m'의 암호문을 계산해주는 Add(c, c') → cadd과 두 메시지의 곱 m·m'의 암호문을 계산해주는 Mult(c, c') → cmult의 두 알고리즘으로 이루어진다. 동형암호 연산 알고리즘 Eval은 Add와 Mult 두 알고리즘을 기본으로 다항식 또는 근사다항식을 이용해 연산하도록 구성된다.
다음으로, 암호학적 다자간 계산(Multi-Party Computation)이란 둘 이상의 사용자가 각자가 가진 입력값을 비밀로 하면서 해당 입력을 받는 함숫값을 계산하는 기술이다. 예컨대 암호학적 2자간 계산에서, 2변수 함수 f에 대해 두 사용자 A와 B는 각자의 입력 x, y을 암호화하여 몇 차례의 통신을 걸쳐 f(x, y) 값을 얻는다. 여기서의 암호화 알고리즘은 반드시 동형암호일 필요는 없다. 이때 각 사용자는 상대방의 입력을 알아낼 수 없다. 또한 결과값 f(x, y)은 두 사용자 모두에게 공개될 수도 있고, 한 사용자만이 결과를 얻도록 할 수도 있다.
동형암호를 이용한 기계학습은 일반적으로 모델행렬 곱 연산과 비선형 활성함수 연산의 반복으로 이루어진다. 행렬 곱셈은 Add와 Mult 알고리즘으로 표현할 수 있지만, 비선형함수의 경우 이를 Add와 Mult로 표현하기 위해 해당 함수를 근사한 다항식으로 대체하여 연산해야 한다. 그러나 동형기계학습에서는 기계학습의 입력이 암호화되어 있기 때문에, 비선형함수의 입력을 알 수 없는 상태로 연산이 수행된다. 따라서 가능한 입력의 최대 범위에서의 다항식 근사가 필요하고, 이에 필요한 근사다항식의 차수가 크게 증가한다. 일반적으로 동형 기계학습을 수행할 때의 활성함수(f)의 입력(m)의 범위는 극단적으로는 수백, 수천에 이를 수 있다. 따라서 효율성을 위해 적절한 차수에서의 근사를 수행할 수밖에 없고, 이에 따라 근사의 정확도가 떨어지게 되어 결국 동형기계학습 정확도가 하락한다.
개시되는 실시예들의 경우 기계학습에 이용되는 활성함수들의 형태를 활용하여 이러한 비효율적인 근사를 극복하도록 구성된다. 대부분의 기계학습에 이용되는 활성함수는 단조증가하며 유계인 특성을 가지고 있다. 따라서 입력이 들어왔을 때 이를 그대로 연산할 필요 없이, 입력의 절댓값이 너무 큰 경우 이를 적당히 작은 값으로 줄이고 연산해도 출력에 큰 차이가 없다. 따라서 개시되는 실시예들에서는 이러한 활성함수의 특성을 고려하여 입력값의 범위를 조정하게 된다.
도 1은 일 실시예에 따른 동형암호를 이용한 비선형 함수 계산 시스템(100)을 설명하기 위한 블록도이다. 도시된 바와 같이, 일 실시예에 따른 비선형 함수 계산 시스템(100)은 비밀키 관리자(102) 및 동형 연산자(104)를 포함한다.
비밀키 관리자(102)는 동형암호에 사용되는 공개키(pk) 및 비밀키(sk)를 생성하여 관리한다. 예를 들어, 비밀키 관리자(102)는 기계학습에 사용되는 원본 데이터의 소유자일 수 있다.
동형 연산자(104)는 비밀키 관리자(102)로부터 원본 데이터를 전송받아 기계학습을 수행한다. 이때 상기 기계학습에는 하나 이상의 비선형 함수(예를 들어, 활성함수인 Sigmoid 함수 등)의 연산이 포함될 수 있다. 동형 연산자(104)는 비밀키 관리자(102)로부터 동형암호에 의하여 암호화된 상태의 원본 데이터를 제공받고, 이를 이용하여 기계학습을 수행할 수 있다.
동형 연산자(104)가 비선형 함수(f)의 동형연산을 필요로 하는 경우, 동형 연산자(104)는 계산하고자 하는 동형 암호문(Cinput = Enc(pk,m), m = 비선형 함수의 입력값)을 비밀키 관리자(102)에게 송신한다. 이때 상기 동형 암호문은 상기 원본 데이터의 동형암호문으로부터 동형 연산을 통해 생성될 수 있다.
비밀키 관리자(102)는 수신된 동형 암호문(Cinput)으로부터 입력값(m)을 복호화하고, 상기 입력값(m)의 근사값(m')을 생성하며, 상기 근사값(m')에 대한 동형 암호문(Cinput' = Enc(pk,m'))을 상기 동형 연산 장치로 송신한다. 그러면 동형 연산자(104)는 수신된 동형 암호문(Cinput')을 이용하여 비선형 연산을 수행한다.
도 2는 일 실시예에 따른 동형암호를 이용한 비선형 함수 계산 방법(200)을 설명하기 위한 흐름도이다. 도시된 방법은 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 전술한 비밀키 관리자(102) 및 동형 연산자(104)에서 수행될 수 있다. 도시된 흐름도에서는 상기 방법 또는 과정을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
단계 202에서, 동형 연산자(104)는 동형 암호문(Cinput)을 비밀키 관리자(102)로 송신한다.
단계 204에서, 비밀키 관리자(102)는 동형 연산자(104)로부터 수신한 동형 암호문(Cinput)으로부터 다음의 수학식 1과 같이 입력값(m)을 복호화한다.
[수학식 1]
m ← Dec(sk, Cinput)
단계 206에서, 비밀키 관리자(102)는 입력값(m)의 근사값(m')을 생성한다. 상기 근사값(m')은 예컨대 다음의 수학식 2와 같이 생성될 수 있다.
[수학식 2]
Figure pat00015
(이때, R은 상기 비선형 함수의 근사 범위)
단계 208에서, 비밀키 관리자(102)는 다음의 수학식 3과 같이 근사값(m')에 대한 동형 암호문(Cinput')을 생성한다.
[수학식 3]
Cinput' ← Enc(pk, m')
단계 210에서, 비밀키 관리자(102)는 상기 근사값(m')에 대한 동형 암호문(Cinput')을 동형 연산자(104)로 송신한다.
이후 동형 연산자(104)는 수신된 근사값(m')에 대한 동형 암호문(Cinput')을 이용하여 다음과 같이 비선형 함수를 연산할 수 있다.
[수학식 4]
Cout = Enc(pk, f(m'))
Figure pat00016
Enc(pk, f(m))
(이때, Cout은 비선형 함수의 결과 값)
도 3은 다른 실시예에 따른 동형암호를 이용한 비선형 함수 계산 시스템(300)을 설명하기 위한 블록도이다. 본 실시예가 앞선 실시예와 다른 점은, 동형 연산자(304)가 입력값을 그대로 암호화하지 않고, 입력값에 랜덤값을 마스킹한 상태로 암호화한다는 점이다. 즉 본 실시예에서 비밀키 관리자(302)는 입력된 값 자체는 알지 못하는 상태로 입력값에 대한 범위 조정을 수행한다. 이는 학습된 모델을 보유한 주체가 모델은 공개하지 않으면서 기계학습 서비스를 제공하고 싶은 경우에 유용하게 적용될 수 있다.
도 4는 다른 실시예에 따른 동형암호를 이용한 비선형 함수 계산 방법(400)을 설명하기 위한 흐름도이다. 도시된 방법은 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 전술한 비밀키 관리자(302) 및 동형 연산자(304)에서 수행될 수 있다. 도시된 흐름도에서는 상기 방법 또는 과정을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
단계 402에서, 동형 연산자(304)는 계산하고자 하는 비선형 함수(f) 입력값(m)에 대한 제1 동형 암호문(Cinput)에 랜덤값(r)을 동형 연산하여 다음의 수학식 5와 같이 제2 동형 암호문(Cmask)을 생성한다. 이때 상기 동형 암호문은 원본 데이터의 동형암호문으로부터 동형 연산을 통해 생성될 수 있다.
[수학식 5]
Cmask ← Add(Cinput, r)
단계 404에서, 동형 연산자(304)는 제2 동형 암호문(Cmask)을 비밀키 관리자(302)로 송신한다.
단계 406에서, 비밀키 관리자(302)는 동형 연산자(104)로부터 수신한 제2 동형 암호문(Cmask)으로부터 다음의 수학식 6과 같이 랜덤값이 마스킹된 입력값(m+r)을 복호화한다.
[수학식 6]
m+r ← Dec(sk, Cmask)
단계 408에서, 비밀키 관리자(302)는 동형 연산자(304)와의 암호학적 2자간 연산을 수행하여 입력값(m)의 범위 정보를 계산한다. 비밀키 관리자(302)는 m+r의 값을 알고 있고, 동형 연산자(304)는 -r의 값을 알고 있다. 따라서 비밀키 관리자(302)는 동형 연산자(304)와의 암호학적 2자간 연산을 통하여 입력값(m)의 범위 정보를 계산할 수 있다. 이때 상기 범위 정보는, 마스킹된 입력값(m+r) 및 비교값(-r)의 합이 특정 범위에 속하는지에 대한 복수의 논리값을 포함한다. 상기 논리값은 제1 논리값(b1) 및 제2 논리값(b2)을 포함하며, 제1 논리값(b1) 및 제2 논리값(b2)은 각각 다음의 수학식 7에 의하여 계산될 수 있다.
[수학식 7]
Figure pat00017
Figure pat00018
(이때, R은 상기 비선형 함수의 근사 범위)
이후, 비밀키 관리자(302)는 제1 논리값(b1)에 대한 제4 동형 암호문(C1) 및 제2 논리값(b2)에 대한 제5 동형 암호문(C2)을 다음의 수학식 8과 같이 생성한다.
[수학식 8]
C1 ← Enc(pk, b1)
C2 ← Enc(pk, b2)
또한, 본 단계에서 비밀키 관리자(302)는 다음의 수학식 9와 같이 마스킹된 입력값(m+r)에 대한 제3 동형 암호문(C0)을 재계산한다.
[수학식 9]
C0 ← Enc(pk, m+r)
단계 412에서, 비밀키 관리자(302)는 제3 동형 암호문(C0), 제4 동형 암호문(C1) 및 제5 동형 암호문(C2)을 동형 연산자(304)로 송신한다.
단계 414에서, 동형 연산자(304)는 제3 동형 암호문(C0), 제4 동형 암호문(C1) 및 제5 동형 암호문(C2)으로부터 다음의 수학식 10과 같이 입력값(m)의 근사값(m')에 대한 동형 암호문을 생성한다.
[수학식 10]
Figure pat00019
(이때,
Figure pat00020
은 동형 덧셈,
Figure pat00021
은 동형 뺄셈,
Figure pat00022
은 동형 곱셈)
도 5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 않은 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 전술한 비밀키 관리자(102) 및 동형 연산자(104)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100, 300: 동형암호를 이용한 비선형 함수 계산 시스템
102, 302: 비밀키 관리자
104, 304: 동형 연산자
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스

Claims (18)

  1. 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 생성하는 동형 연산 장치; 및
    상기 동형 연산 장치로부터 수신한 상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하고, 상기 입력값(m)의 근사값(m')을 생성하며, 상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 비밀키 관리 장치를 포함하는, 동형암호를 이용한 비선형 함수 계산 시스템.
  2. 청구항 1에 있어서,
    상기 근사값(m')은, 다음의 수학식
    Figure pat00023

    (이때, R은 상기 비선형 함수의 근사 범위)
    에 의하여 계산되는, 동형암호를 이용한 비선형 함수 계산 시스템.
  3. 비선형 함수의 입력값(m)에 대한 제1 동형 암호문에 랜덤값(r)을 동형 연산하여 제2 동형 암호문을 생성하는 동형 연산 장치; 및
    상기 동형 연산 장치로부터 수신되는 상기 제2 동형 암호문으로부터, 상기 랜덤값이 마스킹된 입력값(m+r)을 복원하고, 상기 동형 연산 장치와의 2자간 연산을 통하여, 상기 마스킹된 입력값(m+r)으로부터 상기 입력값(m)의 범위 정보 및 상기 마스킹된 입력값(m+r)에 대한 제3 동형 암호문을 계산하며, 상기 범위 정보 및 상기 제3 동형 암호문(C0)을 상기 동형 연산 장치로 송신하는 비밀키 관리 장치를 포함하는, 동형암호를 이용한 비선형 함수 계산 시스템.
  4. 청구항 3에 있어서,
    상기 범위 정보는, 상기 마스킹된 입력값(m+r) 및 상기 동형 연산 장치에 저장된 비교값(-r)의 합이 특정 범위에 속하는지에 대한 복수의 논리값을 포함하는, 동형암호를 이용한 비선형 함수 계산 시스템.
  5. 청구항 4에 있어서,
    상기 논리값은 제1 논리값(b1) 및 제2 논리값(b2)을 포함하며,
    상기 제1 논리값(b1) 및 상기 제2 논리값(b2)은 다음의 수학식
    Figure pat00024

    Figure pat00025

    (이때, R은 상기 비선형 함수의 근사 범위)
    에 의하여 계산되는, 동형암호를 이용한 비선형 함수 계산 시스템.
  6. 청구항 5에 있어서,
    상기 비밀키 관리 장치는,
    상기 제1 논리값(b1)에 대한 제4 동형 암호문(C1) 및 상기 제2 논리값(b2)에 대한 제5 동형 암호문(C2)을 상기 상기 제3 동형 암호문(C0)과 함께 상기 동형 연산 장치로 송신하는, 동형암호를 이용한 비선형 함수 계산 시스템.
  7. 청구항 6에 있어서,
    상기 동형 연산 장치는, 제3 동형 암호문(C0), 상기 제4 동형 암호문(C1) 및 상기 제5 동형 암호문(C2)으로부터 상기 입력값(m)의 근사값(m')에 대한 동형 암호문을 생성하는, 동형암호를 이용한 비선형 함수 계산 시스템.
  8. 청구항 7에 있어서,
    상기 근사값(m')에 대한 동형 암호문(Cinput')은 다음의 수학식
    Figure pat00026

    (이때,
    Figure pat00027
    은 동형 덧셈,
    Figure pat00028
    은 동형 뺄셈,
    Figure pat00029
    은 동형 곱셈)
    에 의하여 계산되는, 동형암호를 이용한 비선형 함수 계산 시스템.
  9. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 수신하는 단계;
    상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하는 단계;
    상기 입력값(m)의 근사값(m')을 생성하는 단계; 및
    상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 단계를 포함하는, 방법.
  10. 청구항 9에 있어서,
    상기 근사값(m')은, 다음의 수학식
    Figure pat00030

    (이때, R은 상기 비선형 함수의 근사 범위)
    에 의하여 계산되는, 방법.
  11. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 제1 동형 암호문에 랜덤값(r)을 동형 연산하여 생성되는 제2 동형 암호문을 수신하는 단계;
    상기 제2 동형 암호문으로부터, 상기 랜덤값이 마스킹된 입력값(m+r)을 복원하는 단계;
    상기 동형 연산 장치와의 2자간 연산을 통하여, 상기 마스킹된 입력값(m+r)으로부터 상기 입력값(m)의 범위 정보 및 상기 마스킹된 입력값(m+r)에 대한 제3 동형 암호문을 계산하는 단계; 및
    상기 범위 정보 및 상기 제3 동형 암호문(C0)을 상기 동형 연산 장치로 송신하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서,
    상기 범위 정보는, 상기 마스킹된 입력값(m+r) 및 상기 동형 연산 장치에 저장된 비교값(-r)의 합이 특정 범위에 속하는지에 대한 복수의 논리값을 포함하는, 방법.
  13. 청구항 12에 있어서,
    상기 논리값은 제1 논리값(b1) 및 제2 논리값(b2)을 포함하며,
    상기 제1 논리값(b1) 및 상기 제2 논리값(b2)은 다음의 수학식
    Figure pat00031

    Figure pat00032

    (이때, R은 상기 비선형 함수의 근사 범위)
    에 의하여 계산되는, 방법.
  14. 청구항 13에 있어서,
    상기 송신하는 단계는,
    상기 제1 논리값(b1)에 대한 제4 동형 암호문(C1) 및 상기 제2 논리값(b2)에 대한 제5 동형 암호문(C2)을 상기 제3 동형 암호문(C0)과 함께 상기 동형 연산 장치로 송신하도록 구성되는, 방법.
  15. 청구항 14에 있어서,
    상기 동형 연산 장치는, 제3 동형 암호문(C0), 상기 제4 동형 암호문(C1) 및 상기 제5 동형 암호문(C2)으로부터 상기 입력값(m)의 근사값(m')에 대한 동형 암호문을 생성하는, 방법.
  16. 청구항 15에 있어서,
    상기 근사값(m')에 대한 동형 암호문(Cinput')은 다음의 수학식
    Figure pat00033

    (이때,
    Figure pat00034
    은 동형 덧셈,
    Figure pat00035
    은 동형 뺄셈,
    Figure pat00036
    은 동형 곱셈)
    에 의하여 계산되는, 방법.
  17. 하나 이상의 명령어를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 명령어들이 실행됨에 따라,
    동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 동형 암호문(Cinput)을 수신하는 단계;
    상기 동형 암호문(Cinput)으로부터 상기 입력값(m)을 복호화하는 단계;
    상기 입력값(m)의 근사값(m')을 생성하는 단계; 및
    상기 근사값(m')에 대한 동형 암호문(Cinput')을 상기 동형 연산 장치로 송신하는 단계를 수행하는, 장치.
  18. 하나 이상의 명령어를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는, 상기 하나 이상의 명령어들이 실행됨에 따라,
    동형 연산 장치로부터, 비선형 함수의 입력값(m)에 대한 제1 동형 암호문에 랜덤값(r)을 동형 연산하여 생성되는 제2 동형 암호문을 수신하는 단계;
    상기 제2 동형 암호문으로부터, 상기 랜덤값이 마스킹된 입력값(m+r)을 복원하는 단계;
    상기 동형 연산 장치와의 2자간 연산을 통하여, 상기 마스킹된 입력값(m+r)으로부터 상기 입력값(m)의 범위 정보 및 상기 마스킹된 입력값(m+r)에 대한 제3 동형 암호문을 계산하는 단계; 및
    상기 범위 정보 및 상기 제3 동형 암호문(C0)을 상기 동형 연산 장치로 송신하는 단계를 수행하는, 장치.
KR1020200130964A 2020-10-12 2020-10-12 동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법 KR20220048156A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200130964A KR20220048156A (ko) 2020-10-12 2020-10-12 동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200130964A KR20220048156A (ko) 2020-10-12 2020-10-12 동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20220048156A true KR20220048156A (ko) 2022-04-19

Family

ID=81391681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200130964A KR20220048156A (ko) 2020-10-12 2020-10-12 동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20220048156A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101965628B1 (ko) 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101965628B1 (ko) 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들

Similar Documents

Publication Publication Date Title
US10673615B2 (en) Computation using somewhat homomorphic encryption
JP6507171B2 (ja) 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法
KR20200047002A (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
CN112865953B (zh) 基于辅助服务器的安全多方计算方法、装置和系统
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
US11251936B2 (en) System and method for performing homomorphic aggregation over encrypted data
Natanael et al. Text encryption in android chat applications using elliptical curve cryptography (ECC)
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
CN112003696A (zh) Sm9密钥生成方法、系统、电子设备、装置及存储介质
KR102315632B1 (ko) 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템
CN114039785A (zh) 数据加密、解密、处理方法、装置、设备和存储介质
KR20210082019A (ko) 교집합 연산을 위한 장치 및 방법
KR20220048156A (ko) 동형암호와 다자간 계산을 이용한 비선형 함수 계산 시스템 및 방법
KR102281265B1 (ko) 시간 제약을 지원하는 교집합 연산을 위한 함수 암호 기술
KR102284877B1 (ko) 효율적인 교집합 연산을 위한 함수 암호 기술
CN111953480B (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
KR102526114B1 (ko) 암호화 및 복호화를 위한 장치 및 방법
US11646877B2 (en) Apparatus and method for generating secret key, apparatus and method for generating evaluation key
KR20210118717A (ko) 암호화된 데이터를 이용한 연산을 수행하기 위한 방법 및 장치
KR20200054117A (ko) 동형암호 기법으로 암호화된 데이터의 로그 연산 서버 및 방법
CN116402505B (zh) 基于同态加密的图扩散方法、装置及存储介质
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process
CN110601841B (zh) Sm2协同签名及解密方法、装置
CN116455575B (zh) 一种密钥生成、加密、解密方法、电子设备及存储介质