KR20210083974A - 근사 함수를 이용한 연산 장치 및 방법 - Google Patents

근사 함수를 이용한 연산 장치 및 방법 Download PDF

Info

Publication number
KR20210083974A
KR20210083974A KR1020190176814A KR20190176814A KR20210083974A KR 20210083974 A KR20210083974 A KR 20210083974A KR 1020190176814 A KR1020190176814 A KR 1020190176814A KR 20190176814 A KR20190176814 A KR 20190176814A KR 20210083974 A KR20210083974 A KR 20210083974A
Authority
KR
South Korea
Prior art keywords
error value
encrypted data
function
target function
isomorphic
Prior art date
Application number
KR1020190176814A
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 KR1020190176814A priority Critical patent/KR20210083974A/ko
Priority to US16/884,957 priority patent/US11411714B2/en
Priority to EP20195188.6A priority patent/EP3843318A1/en
Publication of KR20210083974A publication Critical patent/KR20210083974A/ko

Links

Images

Classifications

    • 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/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

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

Abstract

근사 함수를 이용한 연산 장치 및 방법이 개시된다. 일 실시예에 따른 연산 방법은, 암호화된 데이터에 에러 값을 부여하는 단계; 및 상기 에러 값이 부여된 암호화된 데이터를 입력 값으로 이용하여 대상 함수를 근사화한 근사 함수에 대한 동형 연산을 수행하는 단계를 포함한다.

Description

근사 함수를 이용한 연산 장치 및 방법{APPARATUS AND METHOD FOR PERFORMING OPERATION USING APPROXIMATION FUNCTION}
개시되는 실시예들은 동형 암호 기술과 관련된다.
동형 암호(Homomorphic encryption)는 암호화된 데이터를 복호화하지 않고 연산이 가능하여 데이터의 프라이버시가 보호된 상태로 머신 러닝(machine learning) 등의 분석이 가능한 최신 암호기술이다.
일반적으로 동형 암호는 덧셈, 곱셈과 같은 기본적인 동형 연산을 지원하고 있어 이를 이용해 효율적인 다항식 동형 연산 수행이 가능하다. 다항식 외의 연산은 동형연산이 크게 비효율적인 경우가 많아 근사다항식을 이용하여 효율성을 높인다. 그러나, 근사다항식의 경우 특정범위(ex. 불연속점)에서 실제 값과 차이가 커지는 본질적인 한계가 있어 계산 결과의 정확도가 떨어지게 되며, 이를 해결하기 위해 더 높은 차수의 근사다항식을 사용하게 되면 다시 효율성이 떨어지는 문제가 발생한다.
대한민국 등록특허공보 제10-1965628호 (2019.04.04. 공고)
개시되는 실시예들은 근사 함수를 이용한 연산 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 연산 방법은, 암호화된 데이터에 에러 값을 부여하는 단계; 및 상기 에러 값이 부여된 암호화된 데이터를 입력 값으로 이용하여 대상 함수를 근사화한 근사 함수에 대한 동형 연산을 수행하는 단계를 포함한다.
상기 근사 함수는, 상기 대상 함수를 n(이때, n은 n≥1인 자연수)차 다항식으로 근사화한 함수일 수 있다.
상기 암호화된 데이터는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 지원하는 동형 암호 알고리즘을 이용하여 암호화된 데이터이고, 상기 동형 연산을 수행하는 단계는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 이용하여 근사 함수에 대한 동형 연산을 수행할 수 있다.
상기 에러 값을 부여하는 단계는, 상기 암호화된 데이터에 상기 에러 값을 더하여 상기 에러 값을 상기 암호화된 데이터에 부여할 수 있다.
상기 에러 값을 부여하는 단계는, 아래의 수학식 1을 만족하는 에러 값을 상기 암호화된 데이터에 더할 수 있다.
[수학식 1]
Figure pat00001
(이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, e는 상기 에러 값)
상기 에러 값을 부여하는 단계는, 상기 암호화된 데이터에 상기 에러 값을 곱하여 상기 에러 값을 상기 암호화된 데이터에 부여할 수 있다.
상기 에러 값을 부여하는 단계는, 아래의 수학식 2를 만족하는 에러 값을 상기 암호화된 데이터에 곱할 수 있다.
[수학식 2]
Figure pat00002
(이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, a는 상기 에러 값)
일 실시예에 따른 연산 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 암호화된 데이터에 기 설정된 에러 값을 부여하고, 상기 에러 값이 부여된 암호화된 데이터를 입력 값으로 이용하여 대상 함수를 근사화한 근사 함수에 대한 동형 연산을 수행한다.
상기 근사 함수는, 상기 대상 함수를 n(이때, n은 n≥1인 자연수)차 다항식으로 근사화한 함수일 수 있다.
상기 암호화된 데이터는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 지원하는 동형 암호 알고리즘을 이용하여 암호화된 데이터이고, 상기 하나 이상의 프로세서는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 이용하여 근사 함수에 대한 동형 연산을 수행할 수 있다.
상기 하나 이상의 프로세서는, 상기 암호화된 데이터에 상기 에러 값을 더하여 상기 에러 값을 상기 암호화된 데이터에 부여할 수 있다.
상기 하나 이상의 프로세서는, 아래의 수학식 1을 만족하는 에러 값을 상기 암호화된 데이터에 더할 수 있다.
[수학식 1]
Figure pat00003
(이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, e는 상기 에러 값)
상기 하나 이상의 프로세서는, 상기 암호화된 데이터에 상기 에러 값을 곱하여 상기 에러 값을 상기 암호화된 데이터에 부여할 수 있다.
상기 하나 이상의 프로세서는, 아래의 수학식 2를 만족하는 에러 값을 상기 암호화된 데이터에 곱할 수 있다.
[수학식 2]
Figure pat00004
(이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, a는 상기 에러 값)
개시되는 실시예들에 따르면, 대상 함수에 대한 근사 함수를 이용하여 동형 연산을 수행하되 입력 값에 적절한 에러 값을 부가함으로써, 낮은 차수의 근사다항식을 사용하더라도 계산 효율성을 높이는 동시에 동형 연산의 정확도를 향상시킬 수 있게 된다.
도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 일 실시예에 따른 근사 함수를 이용한 연산 방법의 순서도
도 3은 근사 다항식의 그래프의 일 예를 나타낸 예시도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, “포함” 또는 “구비”와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 않은 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 후술할 암호문 비교 방법을 수행하기 위한 장치일 수 있다.
컴퓨팅 장치(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)와 연결될 수도 있다.
도 2는 일 실시예에 따른 근사 함수를 이용한 연산 방법의 순서도이다.
도 2에 도시된 각 단계들은 예를 들어, 컴퓨팅 장치(12)에 의해 수행될 수 있다.
도 2를 참조하면, 우선, 컴퓨팅 장치(12)는 암호화된 데이터에 에러 값을 부여한다(210).
일 실시예에 따르면, 암호화된 데이터는 동형 암호 알고리즘(Homomorphic encryption)을 이용하여 암호화된 데이터일 수 있다. 이때, 동형 암호 알고리즘은 덧셈에 대한 동형 연산 및 곱셈에 대한 동형 연산 중 적어도 하나를 지원하는 공지된 다양한 동형 암호 알고리즘 중 하나일 수 있으며, 반드시 특정한 동형 암호 알고리즘으로 한정되는 것은 아니다.
한편, 동형 암호 알고리즘이 특정 연산에 대한 동형 연산을 지원한다는 것은 동형 암호 알고리즘을 이용하여 암호화된 암호문을 암호화된 상태로 연산하여 암호문의 평문에 대해 특정 연산을 적용한 결과에 대한 암호문을 생성할 수 있음을 의미한다. 구체적으로, 덧셈에 대한 동형 연산
Figure pat00005
, 곱셈에 대한 동형 연산
Figure pat00006
및 함수 f에 대한 동형 연산
Figure pat00007
은 각각 아래의 수학식 1 내지 3을 만족할 수 있다.
[수학식 1]
Figure pat00008
[수학식 2]
Figure pat00009
[수학식 3]
Figure pat00010
한편, 암호화된 데이터에 부여되는 에러 값은 사전 설정된 값 내지는 사전 설정된 범위 내의 값들 중 임의로 선택된 값일 수 있다. 예를 들어, 에러 값 내지는 에러 값의 범위는 대상 함수, 대상 함수에 대한 근사 함수의 차수, 연산량, 연산의 정확도 등을 고려하여 실시예에 따라 변경될 수 있다.
한편, 일 실시예에 따르면, 컴퓨팅 장치(12)는 암호화된 데이터에 에러 값을 더하여 암호화된 데이터에 에러 값을 부여할 수 있다.
다른 실시예에 따르면, 컴퓨팅 장치(12)는 암호화된 데이터에 에러 값을 곱하여 암호화된 데이터에 에러 값을 부여할 수 있다.
한편, 컴퓨팅 장치(12)는 암호화된 데이터에 에러 값을 부여한 후, 에러 값이 부여된 암호화된 데이터를 입력 값으로 이용하여 대상 함수를 근사화한 근사 함수에 대한 동형 연산을 수행한다(220).
일 실시예에 따르면, 근사 함수는 대상 함수를 n(이때, n은 n≥1인 자연수)차 다항식으로 근사화한 함수일 수 있다. 이때, 근사 함수의 차수는 사전 설정될 수 있으며, 연산량, 연산의 정확도 등을 고려하여 실시예에 따라 변경될 수 있다.
일 실시예에서, 대상 함수는 예를 들어, 근사 함수보다 높은 차수를 가진 다항식 함수이거나, 다항식으로 근사 가능한 비(非)다항식 함수일 수 있으나, 다항식으로 근사화 가능하다면 반드시 특정한 함수로 한정되는 것은 아니다.
한편, 대상 함수 f(x)를 근사화한 n차 다항식 fn(x)과 m(이때, m≫n)차 다항식 fm(x)이 입력 값 x에 대해 아래의 수학식 4 또는 수학식 5를 만족하는 경우를 가정해보자.
[수학식 4]
Figure pat00011
[수학식 5]
Figure pat00012
수학식 4에서 e는 작은 에러 값으로서 양수 또는 음수이며, 수학식 5에서 a는 1에 가까운 에러 값으로서 양수이다.
이때, fn(x)과 fm(x)의 입력 값이 동일한 경우, 차수가 높은 근사 다항식인 fm(x)이 fn(x)보다 대상 함수 f(x)에 근접할 수 있다. 그러나, 상술한 수학식 4를 만족하는 e가 더해진 입력 값 x+e를 fn(x)의 입력 값으로 이용하거나 수학식 5를 만족하는 a가 곱해진 입력 값 ax를 fn(x)의 입력 값으로 이용하는 경우, x를 fm(x)의 입력 값으로 이용하는 경우보다 대상 함수 f(x)에 근접한 결과를 얻을 수 있게 된다.
또한, 다항식에 대한 동형 연산은 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 하나 이상의 조합을 통해 수행될 수 있으므로, fn(x)에 대한 동형 연산은 fm(x)에 대한 동형 연산과 비교하여 연산량과 연산에 소요되는 시간이 줄어들게 될 수 있다.
결과적으로, 암호화된 데이터에 상술한 수학식 4 또는 5를 만족하는 에러를 부가한 값을 입력 값으로 이용하여 fn(x)에 대한 동형 연산을 수행하는 경우, 에러 값 부가 없이 암호화된 데이터 자체를 입력 값으로 이용하여 fm(x)에 대한 동형 연산을 수행하는 경우보다 연산의 효율성과 정확성이 향상될 수 있다.
구체적인 예로, 아래의 수학식 6과 같이 임의의 수치 데이터 a와 b 사이의 대소 비교를 위해 이용될 수 있는 함수 g(x)를 가정해보자.
[수학식 6]
Figure pat00013
이때, x∈(0, 1)에 대해 함수 g(x)를 근사화한 32차 근사 다항식 g32(x)와 4차 근사 다항식 g4(x)의 그래프는 도 3에 도시된 예와 같다.
도 3에 도시된 g32(x)의 그래프(310)와 g4(x)의 그래프(320)를 참조하면, g(x)의 불연속 점인 x=0에 가까워질수록 g32(x)가 g4(x)에 비해 g(x)에 근접하게 되나, g32(x)에 대한 동형 연산을 위해서는 곱셈에 대한 동형 연산이 다섯 번 이상 중첩 수행되어야 하므로 g4(x)에 대한 동형 연산에 비해 시간 복잡도가 증가하게 된다.
한편, x=0.05에서
Figure pat00014
일 때, x=0.05에서 g32(x)와 g(x) 사이의 오차는
Figure pat00015
이다. 한편, x에 작은 에러 값을 더한
Figure pat00016
를 g4(x)의 입력 값으로 이용하면
Figure pat00017
이고, g4(x+e)와 g(x) 사이의 오차는
Figure pat00018
이므로, g4(x+e)는 g32(x)와 비슷한 수준의 오차를 가지게 된다. 즉, g4(x+e)에 대한 동형 연산은 g32(x)에 대한 동형 연산에 비해 비슷한 수준의 정확도를 가지나, 곱셈에 대한 동형 연산이 2번 중첩 수행되므로 시간 복잡도가 크게 줄어들게 된다.
한편, 머신 러닝(Machine Learning) 지도학습(Supervised learning)의 일종인 의사결정 트리 학습(Decision tree learning)에서는 데이터의 특징을 나타내는 특징 값과 결과 값을 나타내는 라벨(label)로 이루어진 학습 데이터를 이용하여 라벨이 없는 데이터의 라벨 값을 가장 잘 예측하는 특징 값들을 트리 구조의 질문들로 구성하는 것을 목표로 하고 있다.
구체적으로, 의사결정 트리 학습에서는 각 특징들을 기준으로 데이터를 분류해보고 라벨이 잘 분류되는 순서대로 루트 노드(root node)부터 트리 모델을 생성한다. 이때, 라벨이 잘 분류되었는지 여부를 판단하는 척도로서 불순도(impurity)를 나타내는 지니 계수(Gini index), 불확실성(Uncertainty)을 나타내는 엔트로피(Entropy)를 이용한 정보 획득(Information gain) 등이 사용되며, 데이터를 불순도가 작은 순서 또는 정보 획득이 큰 순서로 트리 모델의 루트 노드부터 특징 값에 대한 질문을 확정하게 된다.
즉, 트리 모델을 생성을 위해서는 라벨에 대한 분류 척도(지니 계수, 정보 획득 등)의 최대 값 또는 최소 값을 가지는 특징 값에 접근이 필요하고, 이는 MaxIndex 함수 또는 MinIndex 함수 등을 이용하여 수행될 수 있다. 이때, MaxIndex 함수는 예를 들어 아래의 수학식 7과 같이 표현될 수 있다.
[수학식 7]
Figure pat00019
구체적으로, MaxIndex 함수는 n개의 실수
Figure pat00020
에 대해
Figure pat00021
가 최대 값인 경우,
Figure pat00022
을 출력하고,
Figure pat00023
가 최대 값이 아닌 경우,
Figure pat00024
을 출력한다.
한편,
Figure pat00025
에 대해
Figure pat00026
로 정의하면,
Figure pat00027
가 최대 값인 경우 수학식 7에 따른 MaxIndex 함수는 아래의 (1) 및 (2)와 같은 성질을 만족한다.
(1)
Figure pat00028
(2) i≠i'에 대해,
Figure pat00029
충분히 큰 d에 대해
Figure pat00030
이므로
Figure pat00031
의 근삿값으로
Figure pat00032
를 생각할 수 있으며, d가 커질수록 근삿값
Figure pat00033
과 참값
Figure pat00034
사이의 오차도 작아진다. 이때,
Figure pat00035
은 아래의 수학식 8과 같이
Figure pat00036
에 대한 근사 다항식을 이용하여 계산 가능하다.
[수학식 8]
Figure pat00037
한편,
Figure pat00038
Figure pat00039
Figure pat00040
의 값이 아주 가까운 경우 d가 커짐에 따라
Figure pat00041
에서는 천천히
Figure pat00042
,
Figure pat00043
으로 수렴하게 된다. 따라서, 동형 연산을 이용하여 MaxIndex 함수에 대한 유효한 결과값을 얻기 위해서는 아주 큰 d를 이용해야 하므로 시간 복잡도가 크게 증가한다. 그러나, 상술한 실시예와 같이
Figure pat00044
Figure pat00045
각각에 에러 값을 부가하여
Figure pat00046
값이 커지게 되면 더 작은
Figure pat00047
(
Figure pat00048
) 에 대하여
Figure pat00049
,
Figure pat00050
과 근사한 값을 얻게 되고, 동형 연산의 효율성을 향상시킬 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스

Claims (14)

  1. 암호화된 데이터에 에러 값을 부여하는 단계; 및
    상기 에러 값이 부여된 암호화된 데이터를 입력 값으로 이용하여 대상 함수를 근사화한 근사 함수에 대한 동형 연산을 수행하는 단계를 포함하는 연산 방법.
  2. 청구항 1에 있어서,
    상기 근사 함수는, 상기 대상 함수를 n(이때, n은 n≥1인 자연수)차 다항식으로 근사화한 함수인 연산 방법.
  3. 청구항 2에 있어서,
    상기 암호화된 데이터는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 지원하는 동형 암호 알고리즘을 이용하여 암호화된 데이터이고,
    상기 동형 연산을 수행하는 단계는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 이용하여 근사 함수에 대한 동형 연산을 수행하는 연산 방법.
  4. 청구항 2에 있어서,
    상기 에러 값을 부여하는 단계는, 상기 암호화된 데이터에 상기 에러 값을 더하여 상기 에러 값을 상기 암호화된 데이터에 부여하는 연산 방법.
  5. 청구항 4에 있어서,
    상기 에러 값을 부여하는 단계는, 아래의 수학식 1을 만족하는 에러 값을 상기 암호화된 데이터에 더하는 연산 방법.
    [수학식 1]
    Figure pat00051

    (이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, e는 상기 에러 값)
  6. 청구항 2에 있어서,
    상기 에러 값을 부여하는 단계는, 상기 암호화된 데이터에 상기 에러 값을 곱하여 상기 에러 값을 상기 암호화된 데이터에 부여하는 연산 방법.
  7. 청구항 6에 있어서,
    상기 에러 값을 부여하는 단계는, 아래의 수학식 2를 만족하는 에러 값을 상기 암호화된 데이터에 곱하는 연산 방법.
    [수학식 2]
    Figure pat00052

    (이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, a는 상기 에러 값)
  8. 하나 이상의 명령어를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는,
    암호화된 데이터에 기 설정된 에러 값을 부여하고,
    상기 에러 값이 부여된 암호화된 데이터를 입력 값으로 이용하여 대상 함수를 근사화한 근사 함수에 대한 동형 연산을 수행하는 연산 장치.
  9. 청구항 8에 있어서,
    상기 근사 함수는, 상기 대상 함수를 n(이때, n은 n≥1인 자연수)차 다항식으로 근사화한 함수인 연산 장치.
  10. 청구항 9에 있어서,
    상기 암호화된 데이터는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 지원하는 동형 암호 알고리즘을 이용하여 암호화된 데이터이고,
    상기 하나 이상의 프로세서는, 곱셈에 대한 동형 연산 및 덧셈에 대한 동형 연산 중 적어도 하나를 이용하여 근사 함수에 대한 동형 연산을 수행하는 연산 장치.
  11. 청구항 9에 있어서,
    상기 하나 이상의 프로세서는, 상기 암호화된 데이터에 상기 에러 값을 더하여 상기 에러 값을 상기 암호화된 데이터에 부여하는 연산 장치.
  12. 청구항 11에 있어서,
    상기 하나 이상의 프로세서는, 아래의 수학식 1을 만족하는 에러 값을 상기 암호화된 데이터에 더하는 연산 장치.
    [수학식 1]
    Figure pat00053

    (이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, e는 상기 에러 값)
  13. 청구항 9에 있어서,
    상기 하나 이상의 프로세서는, 상기 암호화된 데이터에 상기 에러 값을 곱하여 상기 에러 값을 상기 암호화된 데이터에 부여하는 연산 장치.
  14. 청구항 13에 있어서,
    상기 하나 이상의 프로세서는, 아래의 수학식 2를 만족하는 에러 값을 상기 암호화된 데이터에 곱하는 연산 장치.
    [수학식 2]
    Figure pat00054

    (이때, f(x)는 상기 대상 함수, fn(x)는 상기 n차 다항식, fm(x)는 상기 대상 함수에 대한 m차 다항식, m은 m≫n인 자연수, a는 상기 에러 값)
KR1020190176814A 2019-12-27 2019-12-27 근사 함수를 이용한 연산 장치 및 방법 KR20210083974A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190176814A KR20210083974A (ko) 2019-12-27 2019-12-27 근사 함수를 이용한 연산 장치 및 방법
US16/884,957 US11411714B2 (en) 2019-12-27 2020-05-27 Apparatus and method for performing operation using approximation function
EP20195188.6A EP3843318A1 (en) 2019-12-27 2020-09-09 Apparatus and method for performing homomorphic operation using approximation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190176814A KR20210083974A (ko) 2019-12-27 2019-12-27 근사 함수를 이용한 연산 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210083974A true KR20210083974A (ko) 2021-07-07

Family

ID=72432795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190176814A KR20210083974A (ko) 2019-12-27 2019-12-27 근사 함수를 이용한 연산 장치 및 방법

Country Status (3)

Country Link
US (1) US11411714B2 (ko)
EP (1) EP3843318A1 (ko)
KR (1) KR20210083974A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102475273B1 (ko) * 2020-06-15 2022-12-08 주식회사 크립토랩 동형 암호 시스템에 대한 시뮬레이션 장치 및 방법
CN113965313B (zh) * 2021-12-15 2022-04-05 北京百度网讯科技有限公司 基于同态加密的模型训练方法、装置、设备以及存储介质

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 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4220464A1 (en) * 2017-03-22 2023-08-02 Visa International Service Association Privacy-preserving machine learning
US10778409B2 (en) * 2017-12-15 2020-09-15 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
WO2020145503A1 (en) * 2019-01-10 2020-07-16 Crypto Lab Inc. Apparatus for processing approximately encrypted messages and methods thereof

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 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들

Also Published As

Publication number Publication date
EP3843318A1 (en) 2021-06-30
US20210203474A1 (en) 2021-07-01
US11411714B2 (en) 2022-08-09

Similar Documents

Publication Publication Date Title
US11023682B2 (en) Vector representation based on context
CN111476264A (zh) 访问受限的系统的对抗鲁棒性的测试
CN108733508B (zh) 用于控制数据备份的方法和系统
US20200104366A1 (en) Personalized interactive semantic parsing using a graph-to-sequence model
US10878032B2 (en) Labeled graph isomorphism allowing for false positive
US20210064666A1 (en) Natural language interaction with automated machine learning systems
KR20210083974A (ko) 근사 함수를 이용한 연산 장치 및 방법
JP2012208924A (ja) 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム
US10664743B2 (en) Modeling a subject process by machine learning with adaptive inputs
KR20220009126A (ko) 뉴럴 네트워크 연산 처리 장치 및 방법
CN115081598A (zh) 算子处理方法及装置、电子设备、计算机可读存储介质
US20170220322A1 (en) Generating gaussian random numbers using inverse sampling and recurrence relationship
KR20210130044A (ko) 데이터 분석 장치 및 방법
US20210217204A1 (en) Neural network model compression with selective structured weight unification
US11573785B2 (en) Predicting code vulnerabilities using machine learning classifier models trained on internal analysis states
US20210334646A1 (en) Robustness-aware quantization for neural networks against weight perturbations
US11227231B2 (en) Computational efficiency in symbolic sequence analytics using random sequence embeddings
US11947426B2 (en) Method, electronic device, and computer program product for recommending protection strategy
CN114548407A (zh) 层级目标定向因果发现方法、装置及电子设备
US10831635B2 (en) Preemption of false positives in code scanning
US20210232891A1 (en) Neural network model compression with structured weight unification
US11163953B2 (en) Natural language processing and candidate response evaluation
US10482157B2 (en) Data compression apparatus and data compression method and storage medium
US10832466B2 (en) View-dependent stochastic volume rendering with Monte Carlo ray exploration
CN111723247A (zh) 基于图的假设计算

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal