KR102409958B1 - 전자 장치, 그 제어 방법 및 서버 - Google Patents

전자 장치, 그 제어 방법 및 서버 Download PDF

Info

Publication number
KR102409958B1
KR102409958B1 KR1020200149677A KR20200149677A KR102409958B1 KR 102409958 B1 KR102409958 B1 KR 102409958B1 KR 1020200149677 A KR1020200149677 A KR 1020200149677A KR 20200149677 A KR20200149677 A KR 20200149677A KR 102409958 B1 KR102409958 B1 KR 102409958B1
Authority
KR
South Korea
Prior art keywords
polynomial
range
domain
minimax
value
Prior art date
Application number
KR1020200149677A
Other languages
English (en)
Other versions
KR20220063619A (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 KR1020200149677A priority Critical patent/KR102409958B1/ko
Priority to US17/367,252 priority patent/US11695540B2/en
Publication of KR20220063619A publication Critical patent/KR20220063619A/ko
Application granted granted Critical
Publication of KR102409958B1 publication Critical patent/KR102409958B1/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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 적어도 둘 이상의 다항식이 합성된 합성 함수가 저장된 메모리 및 복수의 동형 암호문에 대한 비교 연산 명령이 수신되면, 합성 함수에 복수의 동형 암호문을 반영하여 연산하고, 연산 결과에 기초하여 복수의 동형 암호문의 비교 결과를 획득하는 프로세서를 포함하며, 적어도 둘 이상의 다항식 각각은 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고, 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은 이전 다항식의 레인지에 기초하여 결정될 수 있다.

Description

전자 장치, 그 제어 방법 및 서버 { ELECTRONIC APPARATUS, CONTROL METHOD THEREOF AND SERVER }
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 완전 동형 암호와 관련된 연산을 수행하는 전자 장치, 그 제어 방법 및 서버에 대한 것이다.
최근 개인 정보 보호에 대한 필요성이 향상되면서 완전 동형 암호가 차세대 암호로서 개발되고 있다. 특히, 개인 정보 보호 이슈와 밀접한 금융과 의료 분야에서 완전 동형 암호 기술을 주목하고 있다.
완전 동형 암호는 암호화된 상태에서의 덧셈 및 곱셈 연산이 가능하여 종래의 암호화 해제에 따른 정보 유출 문제를 해결할 수 있다. 여기서, 비교 연산은 딥러닝을 포함한 다양한 응용에서 쓰이는 연산이므로 완전 동형 암호가 비교 연산을 수행하는 것은 매우 중요하다. 완전 동형 암호에서 암호화된 상태에서 비교연산을 수행하기 위해서는 부호 함수를 잘 근사하는 다항식을 찾아 그 다항식을 연산하는 방법이 이용되고 있다.
다만, 종래에는 부호 함수를 근사하는 다항식 자체의 한계가 있어, 좀더 부호 함수를 잘 근사할 필요가 있었다.
또한, 동형 암호에서의 비교 연산은 상당한 넌스칼라곱(non-scalar multiplication)과 뎁스 소모(depth consumption)를 필요로 하며, 이를 고려하여 좀더 비교 연산 속도를 향상시킬 필요가 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 완전 동형 암호의 비교 연산을 좀더 효율적으로 처리하기 위한 전자 장치, 그 제어 방법 및 서버를 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는 적어도 둘 이상의 다항식이 합성된 합성 함수가 저장된 메모리 및 복수의 동형 암호문에 대한 비교 연산 명령이 수신되면, 상기 합성 함수에 상기 복수의 동형 암호문을 반영하여 연산하고, 상기 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하는 프로세서를 포함하며, 상기 적어도 둘 이상의 다항식 각각은, 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고, 상기 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은, 이전 다항식의 레인지에 기초하여 결정될 수 있다.
또한, 상기 메모리는 상기 합성 함수를 구성하는 제1 다항식 및 제2 다항식을 저장하고, 상기 프로세서는 상기 제1 다항식에 상기 복수의 동형 암호문을 반영하여 제1 연산 결과를 획득하고, 상기 제2 다항식에 상기 제1 연산 결과를 반영하여 제2 연산 결과를 획득하며, 상기 제2 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하고, 상기 제1 다항식은 제1 도메인 내의 값에 대해 제1 레인지 내의 값을 출력하며, 상기 제2 다항식은 제2 도메인 내의 값에 대해 제2 레인지 내의 값을 출력하고, 상기 제2 도메인은 상기 제1 레인지에 기초하여 결정될 수 있다.
그리고, 상기 제1 다항식은 상기 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식이고, 상기 제2 다항식은 상기 제2 도메인에 기초하여 상기 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식일 수 있다.
또한, 상기 제2 레인지는 상기 제1 레인지보다 범위가 작을 수 있다.
그리고, 상기 제2 도메인은 상기 제1 레인지와 범위가 동일할 수 있다.
또한, 상기 적어도 둘 이상의 다항식 각각은 넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 획득될 수 있다.
그리고, 상기 복수의 동형 암호문은 제1 동형 암호문 및 제2 동형 암호문을 포함하고, 상기 프로세서는 상기 연산 결과가 0보다 크면 상기 제1 동형 암호문이 상기 제2 동형 암호문보다 큰 것으로 식별하고, 상기 연산 결과가 0보다 작으면 상기 제2 동형 암호문이 상기 제1 동형 암호문보다 큰 것으로 식별하며, 상기 연산 결과가 0이면 상기 제1 동형 암호문이 상기 제2 동형 암호문과 동일하다고 식별할 수 있다.
복수의 동형 암호문에 대한 비교 연산을 수행하는 합성 함수를 획득하는 서버는 제1 도메인(domain) 및 정밀도에 대한 정보가 저장된 메모리 및 상기 제1 도메인 및 상기 정밀도에 기초하여 제1 다항식을 획득하고, 상기 제1 도메인 내의 값에 대한 상기 제1 다항식의 출력 값의 범위를 나타내는 제1 레인지(range)를 식별하며, 상기 제1 레인지에 기초하여 제2 도메인을 획득하고, 상기 제2 도메인에 기초하여 제2 다항식을 획득하며, 상기 제1 다항식 및 상기 제2 다항식을 합성하여 상기 합성 함수를 획득하는 프로세서를 포함한다.
또한, 상기 프로세서는 상기 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식을 상기 제1 다항식으로 획득하고, 상기 제2 도메인에 기초하여 상기 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식을 상기 제2 다항식으로 획득할 수 있다.
그리고, 상기 제2 도메인 내의 값에 대한 상기 제2 다항식의 출력 값의 범위를 나타내는 제2 레인지는 상기 제1 레인지보다 범위가 작을 수 있다.
또한, 상기 프로세서는 상기 제1 레인지의 범위를 상기 제2 도메인으로 식별하고, 상기 제2 도메인에 기초하여 상기 제2 다항식을 획득할 수 있다.
그리고, 상기 프로세서는 Paterson-Stockmeyer 알고리즘에 기초하여 다항식의 차수 별 넌스칼라곱의 개수 및 뎁스 소모를 식별하고, 상기 넌스칼라곱의 개수 및 상기 뎁스 소모 중 하나에 기초하여 상기 제1 다항식 및 상기 제2 다항식 각각을 획득할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 복수의 동형 암호문에 대한 비교 연산 명령을 수신하는 단계, 적어도 둘 이상의 다항식이 합성된 합성 함수에 상기 복수의 동형 암호문을 반영하여 연산하는 단계 및 상기 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하는 단계를 포함하며, 상기 적어도 둘 이상의 다항식 각각은 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고, 상기 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은 이전 다항식의 레인지에 기초하여 결정될 수 있다.
또한, 상기 연산하는 단계는 상기 합성 함수를 구성하는 제1 다항식에 상기 복수의 동형 암호문을 반영하여 제1 연산 결과를 획득하고, 상기 합성 함수를 구성하는 제2 다항식에 상기 제1 연산 결과를 반영하여 제2 연산 결과를 획득하며, 상기 획득하는 단계는 상기 제2 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하고, 상기 제1 다항식은 제1 도메인 내의 값에 대해 제1 레인지 내의 값을 출력하며, 상기 제2 다항식은 제2 도메인 내의 값에 대해 제2 레인지 내의 값을 출력하고, 상기 제2 도메인은 상기 제1 레인지에 기초하여 결정될 수 있다.
그리고, 상기 제1 다항식은 상기 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식이고, 상기 제2 다항식은 상기 제2 도메인에 기초하여 상기 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식일 수 있다.
또한, 상기 복수의 동형 암호문은 제1 동형 암호문 및 제2 동형 암호문을 포함하고, 상기 획득하는 단계는 상기 연산 결과가 0보다 크면 상기 제1 동형 암호문이 상기 제2 동형 암호문보다 큰 것으로 식별하고, 상기 연산 결과가 0보다 작으면 상기 제2 동형 암호문이 상기 제1 동형 암호문보다 큰 것으로 식별하며, 상기 연산 결과가 0이면 상기 제1 동형 암호문이 상기 제2 동형 암호문과 동일하다고 식별할 수 있다.
그리고, 상기 제2 레인지는 상기 제1 레인지보다 범위가 작을 수 있다.
또한, 상기 제2 도메인은 상기 제1 레인지와 범위가 동일할 수 있다.
그리고, 상기 적어도 둘 이상의 다항식 각각은 넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 획득될 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 연속된 다항식 간 입출력 범위가 관련된 복수의 다항식을 포함하는 합성 함수를 이용하여 완전 동형 암호의 비교 연산을 수행함에 따라 완전 동형 암호의 비교 연산을 좀더 효율적으로 처리할 수 있다.
특히, 전자 장치는 넌스칼라 곱의 개수 또는 뎁스 소모 중 적어도 하나를 최소화하는 합성 함수를 이용하여 비교 연산을 수행함에 따라 연산 시간을 줄일 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 시스템을 도시한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 서버의 구성을 나타내는 블록도이다.
도 4a 내지 도 7b는 본 개시의 일 실시 예에 따른 부호 함수의 근사 다항식의 획득 방법을 설명하기 위한 도면들이다.
도 8a 내지 도 9는 본 개시에 따른 효과를 설명하기 위한 도면들이다.
도 10은 본 개시의 일 실시 예에 따른 암호화 상태에서 비교 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공 지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 다양한 실시 예를 보다 상세하게 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 시스템(1000)을 도시한 도면이다. 도 1에 도시된 바와 같이 전자 시스템(1000)은 전자 장치(100) 및 서버(200)를 포함한다.
전자 장치(100)는 동형 암호의 비교 연산을 수행하는 장치로서, 데스크탑 PC, 노트북, TV, 스마트폰, 태블릿 PC, 웨어러블 기기 등과 같은 장치로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 동형 암호의 비교 연산을 수행할 수 있는 장치라면 어떠한 장치라도 무방하다.
전자 장치(100)는 서버(200)로부터 수신된 합성 함수에 기초하여 복수의 동형 암호문에 대한 비교 연산을 수행할 수 있다.
서버(200)는 동형 암호의 비교 연산을 수행하기 위한 합성 함수를 획득하는 장치일 수 있다. 다만, 이에 한정되는 것은 아니며, 서버(200)는 데스크탑 PC, 노트북, TV, 스마트폰, 태블릿 PC, 웨어러블 기기 등과 같은 장치로 구현될 수도 있으며, 동형 암호의 비교 연산을 수행하기 위한 합성 함수를 획득할 수 있다면 어떠한 장치라도 무방하다.
서버(200)는 합성 함수에 포함된 복수의 다항식 중 연속된 다항식 간 입출력 범위를 고려하여 합성 함수를 획득할 수 있다. 예를 들어, 서버(200)는 제1 도메인에 기초하여 제1 다항식을 획득하고, 제1 도메인 내의 값에 대한 제1 다항식의 출력 값의 범위를 나타내는 제1 레인지(range)를 식별하며, 제1 레인지에 기초하여 제2 도메인을 획득하고, 제2 도메인에 기초하여 제2 다항식을 획득하며, 제1 다항식 및 제2 다항식을 합성하여 합성 함수를 획득할 수 있다. 여기서, 도메인은 입력값의 범위를 나타내며, 레인지는 출력값의 범위를 나타낸다.
서버(200)는 획득된 합성 함수를 전자 장치(100)로 제공할 수 있다.
도 1에서는 설명의 편의를 위하여, 전자 장치(100) 및 서버(200)가 구분된 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 전자 장치(100) 및 서버(200)는 하나의 장치로 구현될 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블록도이다. 전자 장치(100)는 도 2에 도시된 바와 같이, 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 프로세서(120) 등이 접근할 수 있도록 데이터 등의 정보를 전기 또는 자기 형태로 저장하는 하드웨어를 지칭할 수 있다. 이를 위해, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시 메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(110)에는 전자 장치(100) 또는 프로세서(120)의 동작에 필요한 적어도 하나의 인스트럭션(instruction) 또는 모듈이 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(120)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 모듈은 작업 단위의 특정 작업을 수행하는 일련의 인스트럭션의 집합체(instruction set)일 수 있다.
메모리(110)에는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 정보인 데이터가 저장될 수 있다. 예를 들어, 메모리(110)에는 적어도 둘 이상의 다항식이 합성된 합성 함수가 저장될 수 있다.
메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의해 인스트럭션, 모듈 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
프로세서(120)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(120)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(120)는 메모리(110), 통신 인터페이스(미도시) 등과 같은 구성과 연결되어 전자 장치(100)의 동작을 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
프로세서(120)는 복수의 동형 암호문에 대한 비교 연산 명령이 수신되면, 합성 함수에 복수의 동형 암호문을 반영하여 연산하고, 연산 결과에 기초하여 복수의 동형 암호문의 비교 결과를 획득할 수 있다. 여기서, 적어도 둘 이상의 다항식 각각은 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고, 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은 이전 다항식의 레인지에 기초하여 결정될 수 있다.
여기서, 메모리(110)는 합성 함수를 구성하는 제1 다항식 및 제2 다항식을 저장하고, 프로세서(120)는 제1 다항식에 복수의 동형 암호문을 반영하여 제1 연산 결과를 획득하고, 제2 다항식에 제1 연산 결과를 반영하여 제2 연산 결과를 획득하며, 제2 연산 결과에 기초하여 복수의 동형 암호문의 비교 결과를 획득할 수 있다. 여기서, 제1 다항식은 제1 도메인 내의 값에 대해 제1 레인지 내의 값을 출력하며, 제2 다항식은 제2 도메인 내의 값에 대해 제2 레인지 내의 값을 출력하고, 제2 도메인은 제1 레인지에 기초하여 결정될 수 있다.
특히, 제1 다항식은 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식이고, 제2 다항식은 제2 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식일 수 있다.
여기서, 제2 레인지는 제1 레인지보다 범위가 작을 수 있다.
또한, 제2 도메인은 제1 레인지와 범위가 동일할 수 있다.
그리고, 적어도 둘 이상의 다항식 각각은 넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 획득될 수 있다.
한편, 복수의 동형 암호문은 제1 동형 암호문 및 제2 동형 암호문을 포함하고, 프로세서(120)는 연산 결과가 0보다 크면 제1 동형 암호문이 제2 동형 암호문보다 큰 것으로 식별하고, 연산 결과가 0보다 작으면 제2 동형 암호문이 제1 동형 암호문보다 큰 것으로 식별하며, 연산 결과가 0이면 제1 동형 암호문이 제2 동형 암호문과 동일하다고 식별할 수 있다.
도 2에서는 설명의 편의를 위해 합성 함수가 제1 다항식 및 제2 다항식을 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 합성 함수는 3개 이상의 다항식이 합성될 수도 있다. 가령, 합성 함수는 제1 다항식, 제2 다항식 및 제3 다항식을 포함할 수도 있고, 제2 다항식의 제2 도메인은 제1 다항식의 제1 레인지에 기초하여 결정되고, 제3 다항식의 제3 도메인은 제2 다항식의 제2 레인지에 기초하여 결정될 수 있다.
다만, 이에 한정되는 것은 아니며, 모든 쌍의 연속된 다항식의 입출력 범위가 관련되지 않을 수도 있다. 가령, 합성 함수가 제1 다항식, 제2 다항식 및 제3 다항식을 포함하는 경우, 제2 다항식의 제2 도메인은 제1 다항식의 제1 레인지에 기초하여 결정되나, 제3 다항식의 제3 도메인은 제2 다항식의 제2 레인지와는 무관할 수도 있다. 즉, 합성 함수에 포함된 복수의 다항식 중 한 쌍 이상의 연속된 다항식만이 입출력 범위가 관련되면 무방하고, 모든 쌍의 연속된 다항식의 입출력 범위가 관련될 필요는 없다.
도 3은 본 개시의 일 실시 예에 따른 서버(200)의 구성을 나타내는 블록도이다. 서버(200)는 도 3에 도시된 바와 같이, 메모리(210) 및 프로세서(220)를 포함한다. 도 3의 메모리(210) 및 프로세서(220)는 각각 도 2의 메모리(110) 및 프로세서(120)와 하드웨어적으로 동일한 형태로 구현될 수 있으며, 구현과 관련된 중복되는 설명은 생략한다.
메모리(210)에는 제1 도메인(domain) 및 정밀도에 대한 정보가 저장될 수 있다. 예를 들어, 서버(200)는 사용자로부터 수신된 제1 도메인 및 정밀도에 대한 정보를 메모리(210)에 저장할 수 있다.
메모리(210)에는 부호 함수를 근사하는 다항식을 산출하는 방법이 저장될 수 있다. 예를 들어, 메모리(210)에는 미니맥스 근사 방법이 저장될 수 있다. 다만, 이에 한정되는 것은 아니며, 얼마든지 다양한 다항식 산출 방법이 저장될 수 있으며, 부호 함수를 근사할 수 있다면 어떠한 방법이라도 무방하다.
프로세서(220)는 서버(200)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(220)는 서버(200)의 각 구성과 연결되어 서버(200)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(220)는 메모리(210), 통신 인터페이스(미도시) 등과 같은 구성과 연결되어 서버(200)의 동작을 제어할 수 있다.
프로세서(220)는 제1 도메인에 기초하여 제1 다항식을 획득하고, 제1 도메인 내의 값에 대한 제1 다항식의 출력 값의 범위를 나타내는 제1 레인지(range)를 식별하며, 제1 레인지에 기초하여 제2 도메인을 획득하고, 제2 도메인에 기초하여 제2 다항식을 획득하며, 제1 다항식 및 제2 다항식을 합성하여 합성 함수를 획득할 수 있다.
또한, 프로세서(220)는 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식을 제1 다항식으로 획득하고, 제2 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식을 제2 다항식으로 획득할 수 있다.
여기서, 제2 도메인 내의 값에 대한 제2 다항식의 출력 값의 범위를 나타내는 제2 레인지는 제1 레인지보다 범위가 작을 수 있다.
또한, 프로세서(220)는 제1 레인지의 범위를 제2 도메인으로 식별하고, 제2 도메인에 기초하여 제2 다항식을 획득할 수 있다.
도 3에서는 설명의 편의를 위해 합성 함수가 제1 다항식 및 제2 다항식을 포함하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(220)는 3개 이상의 다항식을 합성할 수도 있다. 상술한 예에서, 프로세서(220)는 제2 다항식을 획득한 후, 제2 다항식의 제2 도메인 내의 값에 대한 제2 다항식의 출력 값의 범위를 나타내는 제2 레인지를 식별하며, 제2 레인지에 기초하여 제3 도메인을 획득하고, 제3 도메인에 기초하여 제3 다항식을 획득하며, 제1 다항식, 제2 다항식 및 제3 다항식을 합성하여 합성 함수를 획득할 수도 있다.
다만, 이에 한정되는 것은 아니며, 프로세서(220)는 제2 다항식까지 획득한 후, 제2 다항식의 제2 레인지와는 무관하게 제3 다항식을 획득하고, 제1 다항식, 제2 다항식 및 제3 다항식을 합성하여 합성 함수를 획득할 수도 있다.
이상과 같이 서버(200)는 입출력 범위를 관련된 연속된 다항식을 획득하여 합성 함수를 획득하고, 전자 장치(100)는 합성 함수를 이용하여 완전 동형 암호의 비교 연산을 수행함에 따라 완전 동형 암호의 비교 연산을 좀더 효율적으로 처리할 수 있다.
이하에서는 도면을 통해 합성 함수의 획득 방법을 좀더 구체적으로 설명한다.
도 4a 내지 도 7b는 본 개시의 일 실시 예에 따른 부호 함수의 근사 다항식의 획득 방법을 설명하기 위한 도면들이다.
도 4a는 부호 함수(sgn)를 나타내는 도면으로, x가 0보다 크면 y가 1이고, x가 0이면 y도 0이고, x가 0보다 작으면 y가 -1이다. 즉, 두 입력의 차이가 부호 함수에 입력되고, 그 출력에 기초하여 두 입력의 크기가 비교될 수 있다.
서버(200)는 도 4a는 부호 함수를 근사하는 근사 다항식을 획득할 수 있으며, 근사 다항식이 얼마나 부호 함수에 근접하느냐에 따라 연산의 정확도가 향상될 수 있다. 또한, 복수의 근사 다항식을 합성함에 따라 연산의 정확도를 좀더 향상시킬 수 있다.
근사 다항식을 획득하는 방법을 설명하기 위해, 수학식 1과 같은 조건을 상정한다. 임의의 다항식 p가 수학식 1을 만족할 때, p는 구간 [-1,1]에서 부호 함수에 (α,ε)-close하다고 할 수 있다. 여기서,
Figure 112020120310744-pat00001
는 구간 D 상의 infinity norm을 의미한다. 본 개시의 일 예에 따르면,
Figure 112020120310744-pat00002
로서 근사 함수를 획득할 수 있다. 여기서, α는 비교 연산의 정밀도에 해당하는 자연수 값이며, α가 클수록 정밀도가 높아진다. 즉, 도 4b에 도시된 바와 같이, 근사 함수가 구간 D에서 음영 내의 값을 출력하는 것이 조건이다.
[수학식 1]
Figure 112020120310744-pat00003
프로세서(220)는 미니맥스 근사를 통해 미니맥스 다항식(근사 다항식)을 획득할 수 있다. 여기서, 미니맥스 근사 다항식은 어떤 piece-wise continuous 함수에 대해 차수가 n 이하인 다항식들 중에서 최대 에러(maximum error)
Figure 112020120310744-pat00004
를 최소로하는 근사 다항식일 수 있다.
프로세서(220)는 미니맥스 다항식의 레인지에 기초하여 다음 미니맥스 다항식의 도메인을 설정할 수 있다. 예를 들어, 프로세서(220)는 미니맥스 다항식의 레인지와 다음 미니맥스 다항식의 도메인을 동일하게 설정할 수 있다. 또는, 프로세서(220)는 다음 미니맥스 다항식의 도메인을 미니맥스 다항식의 레인지보다 기설정된 비율로 확대할 수도 있다.
프로세서(220)는 동일한 방법으로 다음 미니맥스 다항식을 획득할 수 있다. 프로세서(220)는 이상과 같은 방법을 반복하여 복수의 미니맥스 다항식을 획득하고, 복수의 미니맥스 다항식을 합성하여 합성 함수를 획득할 수 있다.
특히, 프로세서(220)는 홀수 차수의 항들로 구성된 미니맥스 다항식을 획득할 수도 있다.
한편, 프로세서(220)는 넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 합성 함수를 획득할 수도 있다.
이에 대한 설명에 앞서 설명의 편의를 위해, F(a,b;d)가 구간 [-b,-a]∪[a,b]에서 부호 함수를 근사하는 최대 차수 d의 미니맥스 근사 다항식을 나타내고, E(a,b;d)가 구간 [-b,-a]∪[a,b]에서 부호 함수를 근사하는 최대 차수 d의 미니맥스 근사 다항식의 미니맥스 근사 에러(minimax approximation error)를 나타내는 것으로 설명한다. 또한, 차수 d인 다항식 계산에 있어서 필요한 넌스칼라곱의 개수(mult(d)) 및 뎁스 소모(dep(d)는 Paterson-Stockmeyer 알고리즘을 이용하며, 도 5에 도시하였다.
미니맥스 합성은 하기와 같이 정의될 수 있다. 함수 f1, f2, ..., fk는 홀수 차수 항들만 가지며, 다음을 만족하는 τ1, ..., τk 및 d1, ..., dk가 존재할 때
Figure 112020120310744-pat00005
를 미니맥스 합성이라고 할 수 있다.
i) f1은 구간 [-1,-ε]∪[ε,1]에서 sgn(x)에 대한 최대 차수 d1인 미니맥스 근사 다항식이며 미니맥스 근사 에러는 τ1이다.
ii) 2≤i≤k에 대해, fi는 구간 [-1-τi-1,-1+τi-1]∪[1-τi-1,1+τi-1]에서 sgn(x)에 대한 최대 차수 di인 미니맥스 근사 다항식이며 미니맥스 근사 에러는 τi이다.
프로세서(220)는 모든 미니맥스 합성을 탐색하는 동안, 에러 조건 (α-1,ε)-close를 만족시키면서 넌스칼라곱과 뎁스 소모를 가장 적게 필요로 하는 최적의 미니맥스 합성 다항식을 획득할 수 있다.
다만, 미니맥스 합성 다항식을 획득하기 위한 연산량은 상당하기 때문에 연산량을 줄일 필요가 있으며, 이를 위해 먼저 하기와 같이 정의한다.
자연수 d에 대해 MinErr(d,t)는 구간 [-1-t,-1+t]∪[1-t,1+t]에서 sgn(x)를 근사하는 최대 차후 d의 미니맥스 근사 다항식의 미니맥스 근사 에러로 정의하고, 자연수 d에 대해 InvMinErr(d,t)는 MinErr(d,t)=t를 만족하는 τ로 정의하며,
Figure 112020120310744-pat00006
Figure 112020120310744-pat00007
는 하기와 같이 정의한다.
Figure 112020120310744-pat00008
Figure 112020120310744-pat00009
f(m,n,t)는
Figure 112020120310744-pat00010
,
Figure 112020120310744-pat00011
Figure 112020120310744-pat00012
을 만족하는 어떤 미니맥스 합성
Figure 112020120310744-pat00013
가 존재하는 τ 중에서 가장 큰 값으로 정의한다. 즉, f(m,n,t)는 m번 이하의 넌스칼라곱, n번 이하의 뎁스 소모를 가지고 1로부터의 에러 τ가 1로부터의 에러 t로 줄어들 수 있는 τ중 가장 큰 값을 의미한다.
G(m,n,t)는 f(m,n,t) 정의에서 해당하는 미니맥스 합성의 구성 다항식들의 차수들을 저장해놓은 순서 집합(ordered set)이며, 이때 f(m,n,t)에 대해 다음의 재귀식이 성립할 수 있다.
Figure 112020120310744-pat00014
이상과 같은 가정 하에 프로세서(220)는 도 6과 같은 알고리즘을 통해 모든 m, n에 대하여 f(m,n,t) 및 G(m,n,t)를 획득할 수 있다. 특히, 프로세서(220)는 연산량을 줄이기 위해 31차 이하의 미니맥스 근사 다항식만을 획득할 수도 있다.
프로세서(220)는 f(m,n,t) 및 G(m,n,t)에 기초하여 에러 조건 (α-1,ε)-close를 만족시키면서 가장 적은 넌스칼라곱과 뎁스 소모를 필요로 하는 미니맥스 합성 다항식을 획득할 수 있다.
이때, 프로세서(220)는 도 7a에 도시된 바와 같이, DynMinMult 알고리즘에 기초하여 미니맥스 합성 다항식을 획득할 수 있다. DynMinMult 알고리즘은 뎁스 소모보다는 넌스칼라곱을 줄이는 것을 우선한다. 특히, DynMinMult 알고리즘은 넌스칼라곱의 개수를 최소로 하면서 뎁스 소모도 최소로 하는 것을 목적으로 한다. minmult는 넌스칼라곱 개수의 최소값이며, mindep는 넌스칼라곱 개수를 최소로 할 때의 뎁스 소모의 최소값을 나타낸다.
또는, 프로세서(220)는 도 7b에 도시된 바와 같이, DynMinDep 알고리즘에 기초하여 미니맥스 합성 다항식을 획득할 수도 있다. DynMinDep 알고리즘은 넌스칼라 곱보다는 뎁스 소모를 줄이는 것을 우선한다. 특히, DynMinDep 알고리즘은 뎁스 소모를 최소로 하면서 넌스칼라 곱도 최소로 하는 것을 목적으로 한다. mindep는 뎁스 소모의 최소값이며, minmult는 뎁스 소모를 최소로 할 때의 넌스칼라 곱의 최소값을 나타낸다.
두 알고리즘 모두에 대하여 mindegs는 최적의 합성 다항식에 해당하는 구성 미니맥스 근사 다항식들의 차수를 저장하는 순서 집합이고, mindegs를 알고 있으면, modified Remez algorithm을 통해 해당하는 구성 미니맥스 근사 다항식들을 순차적으로 얻음으로써 부호 함수를 근사하는 최적의 합성 다항식을 정확히 획득할 수 있다. 구체적으로,
Figure 112020120310744-pat00015
인 경우, f1은 구간 [-1,-ε]∪[ε,1]에서 sgn(x)에 대한 최대 차수 d1인 미니맥스 근사 다항식이며, 미니맥스 근사 에러는 τ1이고, 이후의 근사 다항식들은 재귀적으로 정의될 수 있다. 2≤i≤k에 대해, fi는 구간 [-1-τi-1,-1+τi-1]∪[1-τi-1,1+τi-1]에서 sgn(x)에 대한 최대 차수 di인 미니맥스 근사 다항식이며 미니맥스 근사 에러는 τi이다. 이상과 같이 프로세서(220)는 mindegs에 기초하여 부호 함수를 근사하는 최적 미니맥스 합성을 획득할 수 있다.
도 8a 내지 도 9는 본 개시에 따른 효과를 설명하기 위한 도면들이다.
동형 암호에서는 넌스칼라곱 연산을 수행하는데 많은 시간이 필요하고, 뎁스 소모가 일정 값을 넘어서면 부트스트래핑을 해야하는데 이때 상당한 시간이 필요하다. 따라서, 이상과 같은 방법으로 넌스칼라곱 개수와 뎁스 소모를 적게 사용하는 합성 함수를 이용하는 경우, 비교 연산의 시간이 줄어들게 된다.
도 8a은 넌스칼라곱 개수를 줄이는 것에 우선 순위를 둔 경우이다. 도 8a에 도시된 바와 같이, 넌스칼라곱 개수 및 뎁스 소모는 각각 종래보다 약 33%, 35% 감소하였다.
도 8b는 뎁스 소모를 줄이는 것에 우선 순위를 둔 경우이다. 도 8b에 도시된 바와 같이, 넌스칼라곱 개수 및 뎁스 소모는 각각 종래보다 약 10%, 47% 감소하였다.
도 9는 본 개시의 일 실시 예에 따른 DynMinMult 알고리즘 및 DynMinDep 알고리즘에서 최적 합성 함수의 구성 미니맥스 근사 다항식들의 차수들의 순서 집합을 나타낸다.
도 10은 본 개시의 일 실시 예에 따른 암호화 상태에서 비교 연산을 수행하는 방법을 설명하기 위한 도면이다.
서버(200)의 프로세서(220)는 도 4a 내지 도 7b에서 설명한 바와 같이, 정밀도 α에 대한 합성 다항식
Figure 112020120310744-pat00016
를 획득할 수 있다. 구체적으로, 프로세서(220)는 도 9의 α에 기초하여 mindegs 순서 집합을 획득할 수 있다. 예를 들어, 프로세서(220)는 넌스칼라곱 개수를 최소로 하고자 하는 경우 DynMinMult에 해당하는 mindegs 순서 집합을 획득하고, 뎁스 소모를 최소로 하고자 하는 경우 DynMinDep에 해당하는 mindegs 순서 집합을 획득할 수 있다. 가령, mindegs={d1,d2, ..., dk}이면, f1은 구간 [-1,-ε]∪[ε,1]에서 sgn(x)에 대한 최대 차수 d1인 미니맥스 근사 다항식이며 미니맥스 근사 에러는 τ1이고, 2≤i≤k에 대해, fi는 구간 [-1-τi-1,-1+τi-1]∪[1-τi-1,1+τi-1]에서 sgn(x)에 대한 최대 차수 di인 미니맥스 근사 다항식이며 미니맥스 근사 에러는 τi이다. 이러한 방식으로 프로세서(220)는 mindegs에 기초하여 부호 함수를 근사하는 최적 미니맥스 합성을 획득할 수 있다.
전자 장치(100)의 프로세서(120)는 0과 1 사이의 두 숫자 a, b의 비교 연산을 암호화 상태에서 수행할 수 있다. 프로세서(120)는 두 숫자 a, b가 0과 1 사이가 아닌 경우, 두 숫자 a, b를 0과 1 사이로 스케일링한 수 스케일링된 두 숫자 a, b의 비교 연산을 수행할 수도 있다.
프로세서(120)는
Figure 112020120310744-pat00017
에 기초하여 두 숫자 a, b에 대한 비교 연산을 수행할 수 있다. 구체적으로, 프로세서(120)는
Figure 112020120310744-pat00018
를 통해 정밀도 α에 대한 암호문을 획득하고, 획득된 암호문을 복호하여 비교 결과를 획득할 수 있다.
한편, 도 10에서는 전자 장치(100) 및 서버(200)가 구분된 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 전자 장치(100)가 서버(200)의 역할을 수행할 수도 있다. 이 경우, 전자 장치(100)는 정밀도 등에 대한 정보가 수신되면, 수신된 정보에 기초하여 합성 함수를 획득하고, 획득된 합성 함수를 통해 비교 연산을 수행할 수도 있다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 복수의 동형 암호문에 대한 비교 연산 명령을 수신한다(S1110). 그리고, 적어도 둘 이상의 다항식이 합성된 합성 함수에 복수의 동형 암호문을 반영하여 연산한다(S1120). 그리고, 연산 결과에 기초하여 복수의 동형 암호문의 비교 결과를 획득한다(S1130). 여기서, 적어도 둘 이상의 다항식 각각은 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고, 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은 이전 다항식의 레인지에 기초하여 결정될 수 있다.
여기서, 연산하는 단계(S1120)는 합성 함수를 구성하는 제1 다항식에 복수의 동형 암호문을 반영하여 제1 연산 결과를 획득하고, 합성 함수를 구성하는 제2 다항식에 제1 연산 결과를 반영하여 제2 연산 결과를 획득하며, 획득하는 단계(S1130)는 제2 연산 결과에 기초하여 복수의 동형 암호문의 비교 결과를 획득하고, 제1 다항식은 제1 도메인 내의 값에 대해 제1 레인지 내의 값을 출력하며, 제2 다항식은 제2 도메인 내의 값에 대해 제2 레인지 내의 값을 출력하고, 제2 도메인은 제1 레인지에 기초하여 결정될 수 있다.
그리고, 제1 다항식은 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식이고, 제2 다항식은 제2 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식일 수 있다.
한편, 복수의 동형 암호문은 제1 동형 암호문 및 제2 동형 암호문을 포함하고, 획득하는 단계(S1130)는 연산 결과가 0보다 크면 제1 동형 암호문이 제2 동형 암호문보다 큰 것으로 식별하고, 연산 결과가 0보다 작으면 제2 동형 암호문이 제1 동형 암호문보다 큰 것으로 식별하며, 연산 결과가 0이면 제1 동형 암호문이 제2 동형 암호문과 동일하다고 식별할 수 있다.
그리고, 제2 레인지는 제1 레인지보다 범위가 작을 수 있다.
또한, 제2 도메인은 제1 레인지와 범위가 동일할 수 있다.
그리고, 적어도 둘 이상의 다항식 각각은 넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 획득될 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 연속된 다항식 간 입출력 범위가 관련된 복수의 다항식을 포함하는 합성 함수를 이용하여 완전 동형 암호의 비교 연산을 수행함에 따라 완전 동형 암호의 비교 연산을 좀더 효율적으로 처리할 수 있다.
특히, 전자 장치는 넌스칼라 곱의 개수 또는 뎁스 소모 중 적어도 하나를 최소화하는 합성 함수를 이용하여 비교 연산을 수행함에 따라 연산 시간을 줄일 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
1000 : 전자 시스템 100 : 전자 장치
110 : 메모리 120 : 프로세서
200 : 서버 210 : 메모리
220 : 프로세서

Claims (19)

  1. 전자 장치에 있어서,
    적어도 둘 이상의 다항식이 합성된 합성 함수가 저장된 메모리; 및
    복수의 동형 암호문에 대한 비교 연산 명령이 수신되면, 상기 합성 함수에 상기 복수의 동형 암호문을 반영하여 연산하고, 상기 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하는 프로세서;를 포함하며,
    상기 적어도 둘 이상의 다항식 각각은, 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고,
    상기 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은, 이전 다항식의 레인지에 기초하여 결정된, 전자 장치.
  2. 제1항에 있어서,
    상기 메모리는,
    상기 합성 함수를 구성하는 제1 다항식 및 제2 다항식을 저장하고,
    상기 프로세서는,
    상기 제1 다항식에 상기 복수의 동형 암호문을 반영하여 제1 연산 결과를 획득하고, 상기 제2 다항식에 상기 제1 연산 결과를 반영하여 제2 연산 결과를 획득하며, 상기 제2 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하고,
    상기 제1 다항식은, 제1 도메인 내의 값에 대해 제1 레인지 내의 값을 출력하며,
    상기 제2 다항식은, 제2 도메인 내의 값에 대해 제2 레인지 내의 값을 출력하고,
    상기 제2 도메인은, 상기 제1 레인지에 기초하여 결정된, 전자 장치.
  3. 제2항에 있어서,
    상기 제1 다항식은,
    상기 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식이고,
    상기 제2 다항식은,
    상기 제2 도메인에 기초하여 상기 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식인, 전자 장치.
  4. 제2항에 있어서,
    상기 제2 레인지는, 상기 제1 레인지보다 범위가 작은, 전자 장치.
  5. 제2항에 있어서,
    상기 제2 도메인은, 상기 제1 레인지와 범위가 동일한, 전자 장치.
  6. 제1항에 있어서,
    상기 적어도 둘 이상의 다항식 각각은,
    넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 획득된, 전자 장치.
  7. 제1항에 있어서,
    상기 복수의 동형 암호문은, 제1 동형 암호문 및 제2 동형 암호문을 포함하고,
    상기 프로세서는,
    상기 연산 결과가 0보다 크면 상기 제1 동형 암호문이 상기 제2 동형 암호문보다 큰 것으로 식별하고,
    상기 연산 결과가 0보다 작으면 상기 제2 동형 암호문이 상기 제1 동형 암호문보다 큰 것으로 식별하며,
    상기 연산 결과가 0이면 상기 제1 동형 암호문이 상기 제2 동형 암호문과 동일하다고 식별하는, 전자 장치.
  8. 복수의 동형 암호문에 대한 비교 연산을 수행하는 합성 함수를 획득하는 서버에 있어서,
    제1 도메인(domain) 및 정밀도에 대한 정보가 저장된 메모리; 및
    상기 제1 도메인 및 상기 정밀도에 기초하여 제1 다항식을 획득하고,
    상기 제1 도메인 내의 값에 대한 상기 제1 다항식의 출력 값의 범위를 나타내는 제1 레인지(range)를 식별하며,
    상기 제1 레인지에 기초하여 제2 도메인을 획득하고,
    상기 제2 도메인에 기초하여 제2 다항식을 획득하며,
    상기 제1 다항식 및 상기 제2 다항식을 합성하여 상기 합성 함수를 획득하는 프로세서;를 포함하는, 서버.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식을 상기 제1 다항식으로 획득하고,
    상기 제2 도메인에 기초하여 상기 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식을 상기 제2 다항식으로 획득하는, 서버.
  10. 제8항에 있어서,
    상기 제2 도메인 내의 값에 대한 상기 제2 다항식의 출력 값의 범위를 나타내는 제2 레인지는, 상기 제1 레인지보다 범위가 작은, 서버.
  11. 제8항에 있어서,
    상기 프로세서는,
    상기 제1 레인지의 범위를 상기 제2 도메인으로 식별하고,
    상기 제2 도메인에 기초하여 상기 제2 다항식을 획득하는, 서버.
  12. 제8항에 있어서,
    상기 프로세서는,
    Paterson-Stockmeyer 알고리즘에 기초하여 다항식의 차수 별 넌스칼라곱의 개수 및 뎁스 소모를 식별하고,
    상기 넌스칼라곱의 개수 및 상기 뎁스 소모 중 하나에 기초하여 상기 제1 다항식 및 상기 제2 다항식 각각을 획득하는, 서버.
  13. 전자 장치의 제어 방법에 있어서,
    복수의 동형 암호문에 대한 비교 연산 명령을 수신하는 단계;
    적어도 둘 이상의 다항식이 합성된 합성 함수에 상기 복수의 동형 암호문을 반영하여 연산하는 단계; 및
    상기 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하는 단계;를 포함하며,
    상기 적어도 둘 이상의 다항식 각각은, 기설정된 도메인(domain) 내의 값에 대해 기설정된 레인지(range) 내의 값을 출력하고,
    상기 적어도 둘 이상의 다항식 중 하나의 다항식의 도메인은, 이전 다항식의 레인지에 기초하여 결정된, 제어 방법.
  14. 제13항에 있어서,
    상기 연산하는 단계는,
    상기 합성 함수를 구성하는 제1 다항식에 상기 복수의 동형 암호문을 반영하여 제1 연산 결과를 획득하고, 상기 합성 함수를 구성하는 제2 다항식에 상기 제1 연산 결과를 반영하여 제2 연산 결과를 획득하며,
    상기 획득하는 단계는,
    상기 제2 연산 결과에 기초하여 상기 복수의 동형 암호문의 비교 결과를 획득하고,
    상기 제1 다항식은, 제1 도메인 내의 값에 대해 제1 레인지 내의 값을 출력하며,
    상기 제2 다항식은, 제2 도메인 내의 값에 대해 제2 레인지 내의 값을 출력하고,
    상기 제2 도메인은, 상기 제1 레인지에 기초하여 결정된, 제어 방법.
  15. 제14항에 있어서,
    상기 제1 다항식은,
    상기 제1 도메인에 기초하여 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식이고,
    상기 제2 다항식은,
    상기 제2 도메인에 기초하여 상기 sgn 함수에 대한 미니맥스 근사를 통해 획득된 미니맥스 다항식인, 제어 방법.
  16. 제13항에 있어서,
    상기 복수의 동형 암호문은, 제1 동형 암호문 및 제2 동형 암호문을 포함하고,
    상기 획득하는 단계는,
    상기 연산 결과가 0보다 크면 상기 제1 동형 암호문이 상기 제2 동형 암호문보다 큰 것으로 식별하고,
    상기 연산 결과가 0보다 작으면 상기 제2 동형 암호문이 상기 제1 동형 암호문보다 큰 것으로 식별하며,
    상기 연산 결과가 0이면 상기 제1 동형 암호문이 상기 제2 동형 암호문과 동일하다고 식별하는, 제어 방법.
  17. 제14항에 있어서,
    상기 제2 레인지는, 상기 제1 레인지보다 범위가 작은, 제어 방법.
  18. 제14항에 있어서,
    상기 제2 도메인은, 상기 제1 레인지와 범위가 동일한, 제어 방법.
  19. 제13항에 있어서,
    상기 적어도 둘 이상의 다항식 각각은,
    넌스칼라곱의 개수 및 뎁스 소모 중 하나에 기초하여 획득된, 제어 방법.
KR1020200149677A 2020-11-10 2020-11-10 전자 장치, 그 제어 방법 및 서버 KR102409958B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200149677A KR102409958B1 (ko) 2020-11-10 2020-11-10 전자 장치, 그 제어 방법 및 서버
US17/367,252 US11695540B2 (en) 2020-11-10 2021-07-02 Electronic apparatus, control method thereof and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200149677A KR102409958B1 (ko) 2020-11-10 2020-11-10 전자 장치, 그 제어 방법 및 서버

Publications (2)

Publication Number Publication Date
KR20220063619A KR20220063619A (ko) 2022-05-17
KR102409958B1 true KR102409958B1 (ko) 2022-06-20

Family

ID=81453902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149677A KR102409958B1 (ko) 2020-11-10 2020-11-10 전자 장치, 그 제어 방법 및 서버

Country Status (2)

Country Link
US (1) US11695540B2 (ko)
KR (1) KR102409958B1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11575500B2 (en) * 2018-07-25 2023-02-07 Sap Se Encrypted protection system for a trained neural network
KR102550812B1 (ko) 2018-10-26 2023-07-03 삼성에스디에스 주식회사 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
KR102297536B1 (ko) * 2018-12-07 2021-09-03 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
WO2020116807A1 (ko) * 2018-12-07 2020-06-11 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
WO2020145503A1 (en) * 2019-01-10 2020-07-16 Crypto Lab Inc. Apparatus for processing approximately encrypted messages and methods thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. Cheon 외 2명, "Efficient homomorphic comparison methods with optimal complexity," Cryptol. ePrint Arch., Tech. Rep. 2019/1234 (2019.)

Also Published As

Publication number Publication date
US11695540B2 (en) 2023-07-04
US20220150047A1 (en) 2022-05-12
KR20220063619A (ko) 2022-05-17

Similar Documents

Publication Publication Date Title
US11456877B2 (en) Unified accelerator for classical and post-quantum digital signature schemes in computing environments
Prakasha et al. Two novel computational techniques for fractional Gardner and Cahn‐Hilliard equations
US9424031B2 (en) Techniques for enabling bit-parallel wide string matching with a SIMD register
US9704105B2 (en) Transductive lasso for high-dimensional data regression problems
US20170093806A1 (en) Mutual approval for privacy-preserving computing
TWI497418B (zh) 狀態機引擎、用於處置一狀態機引擎中之狀態向量資料之方法及用於組態一狀態機引擎之一狀態機晶格之方法
US11373098B2 (en) Processing apparatus, learning apparatus, processing method, and nonvolatile recording medium
EP3186804A1 (en) Method for text processing
US9336334B2 (en) Key-value pairs data processing apparatus and method
CN106688015B (zh) 处理用于当解码图像时对于块的操作的参数
CN114546206B (zh) 异形屏显示方法、装置、计算机设备和存储介质
KR20220078155A (ko) 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치
US10162798B2 (en) Method and apparatus for solving a mixed integer programming problem
KR20090042243A (ko) 경량 다각형 위상 기하학적 구조 표현을 위한 시스템 및 방법
CN109684566B (zh) 标签引擎实现方法、装置、计算机设备及存储介质
KR102409958B1 (ko) 전자 장치, 그 제어 방법 및 서버
JP6624052B2 (ja) 属性変換装置、属性変換方法、学習装置、属性変換プログラム、及び、学習プログラム
US20170192749A1 (en) Reproducible stochastic rounding for out of order processors
US10936792B2 (en) Harmonizing font contours
KR20200068553A (ko) 딥러닝 네트워크를 이용하여 복수의 이미지들로부터 이야기를 생성하기 위한 방법 및 장치
US20210374543A1 (en) System, training device, training method, and predicting device
KR20230084406A (ko) LDP(Local Differential Privacy) 기반 시계열 의료데이터의 합성 방법 및 장치
EP3358460A1 (en) Systems and methods for computing mathematical functions
CN116070230A (zh) 加密处理器、包括加密处理器的电子装置和计算方法
KR102225820B1 (ko) 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant