KR102213835B1 - 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법 - Google Patents

동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법 Download PDF

Info

Publication number
KR102213835B1
KR102213835B1 KR1020190143824A KR20190143824A KR102213835B1 KR 102213835 B1 KR102213835 B1 KR 102213835B1 KR 1020190143824 A KR1020190143824 A KR 1020190143824A KR 20190143824 A KR20190143824 A KR 20190143824A KR 102213835 B1 KR102213835 B1 KR 102213835B1
Authority
KR
South Korea
Prior art keywords
exponential function
ciphertext
value
result
input value
Prior art date
Application number
KR1020190143824A
Other languages
English (en)
Other versions
KR20200054119A (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 고려대학교 산학협력단
Publication of KR20200054119A publication Critical patent/KR20200054119A/ko
Application granted granted Critical
Publication of KR102213835B1 publication Critical patent/KR102213835B1/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 일 실시예에 따른 지수 함수 연산 서버에 의해 수행되는 동형암호 기법으로 이진 암호화된 입력값의 지수 함수 연산 방법에 있어서, (a) 지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하는 단계; (b) 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계; (c) 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계; 및 (d) 출력된 양의 이진 지수 함수 연산의 결과값과 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법을 제공하고자 한다.

Description

동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법{SERVER AND METHOD FOR EXPONENTIAL FUNCTION CALCULATION OF DATA ENCRYPTED WITH HOMOMORPHIC ENCRYPTION TECHNIQUE}
본 발명은 동형암호(Homomorphic Encryption)를 이용해 암호화된 데이터에 대해 별도의 복호화 없이 지수 함수 연산을 수행하는 서버 및 방법에 관한 것이다.
일반적으로, 사용자가 원하는 서비스를 서버에 요청하는 경우, 암호화된 파일을 서버에 전송한다. 이 후 서버는 이를 복호화하여 사용자가 원하는 서비스를 처리를 하게 된다. 다만, 여기에서 사용자가 보낸 파일 또는 데이터에 대해 서버가 수집을 할 수 있다는 문제점이 있다.
그러나, 동형암호 기법을 이용하게 되면, 서버는 사용자가 보낸 암호화된 데이터를 암호화된 상태에서 사용자가 원하는 서비스를 처리하여, 결과적으로 서버는 사용자가 보낸 데이터에 대해 어떠한 정보도 얻을 수 없게 된다. 즉, 동형암호는 사용자의 프라이버시를 보존할 수 있는 암호화 기법이다.
다만, 현재까지 동형암호의 연산은 다양화되지 않았고, 이에 따라 동형암호에 적용되는 기초적인 연산 구축의 필요성이 대두되고 있다.
나아가, 기존의 평문 상에서의 지수 함수 값을 구하는 방식으로는 암호화된 상태에서의 지수 함수 값을 구하는데 한계가 있었다. 따라서, 평문 상에서 지수 함수 값을 구하는 방식과는 달리 암호화된 상태에서는 입력 값이 무엇인지 알 수 없기 때문에 이에 대해 다른 알고리즘의 개발이 요구되고 있다.
대한민국공개특허공보 10-2017-0122458(2017. 11. 06. 공개)
상술한 문제를 해결하기 위하여, 본 발명에 따른 동형암호 기법으로 암호화된 데이터의 지수 연산 서버 및 방법은 동형암호를 이용해 암호화된 데이터에 대하여 복호화 없이 지수 함수 연산을 수행하는 서버 및 방법을 제공하고자 한다.
구체적으로, 본 발명은 암호화된 데이터 상에서의 암호문의 밑 변환 전처리, 양의 이진 지수 함수 연산, 음의 이진 지수 함수 연산을 이용하고 마지막으로 선택적 통합 기술을 통해 결과값을 도출하여 지수 함수 연산 결과값을 구하고자 한다.
본 발명의 일 실시예에 따른 지수 함수 연산 서버에 의해 수행되는 동형암호 기법으로 이진 암호화된 입력값의 지수 함수 연산 방법에 있어서, (a) 지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하는 단계; (b) 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계; (c) 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계; 및 (d) 출력된 양의 이진 지수 함수 연산의 결과값과 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법을 제공하고자 한다.
본 실시예에 있어서, (a) 단계는, 입력값(
Figure 112019115695528-pat00001
)의 암호문(
Figure 112019115695528-pat00002
)을 아래의 [수학식 1]에 기초하여 이진 지수 함수의 지수 부분 형태의 암호문(
Figure 112019115695528-pat00003
)으로 전처리하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법을 제공할 수 있다.
[수학식 1]
Figure 112019115695528-pat00004
본 실시예에 있어서, (b) 단계는, 전처리된 입력값의 암호문은 비트 형태로 표현되며, 암호문의 정수 부분(Integer Part)은 1로 대체하고, 1을 암호문의 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 정수 연산값으로 산출하는 단계; 암호문의 소수 부분(Decimal Part)은 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 소수 연산값으로 산출하는 단계; 및 제1 정수 연산값과 제1 소수 연산값을 더하여 양의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법을 제공할 수 있다.
본 실시예에 있어서, (c) 단계는, 전처리된 입력값의 암호문은 비트 형태로 표현되며, 암호문에 절대값 연산을 수행하여 양수화 암호문으로 변환하는 단계; 양수화 암호문의 정수 부분(Integer Part)은 1로 대체하고, 1을 양수화 암호문의 정수값의 횟수로 우이동연산(Right Shift Operation)하여 제2 정수 연산값으로 산출하는 단계; 소수 부분(Decimal Part)은 양수화 암호문의 소수 부분을 정수값+1의 횟수로 우이동연산(Left Shift Operation)하여 제2 소수 연산값으로 산출하는 단계; 및 제2 정수 연산값에서 제2 소수 연산값을 빼주어 음의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법을 제공할 수 있다.
본 실시예에 있어서, (d) 단계는, 전처리된 입력값의 암호문의 부호 비트에 NOT 연산을 수행하고, 이를 양의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제1 부분 결과값을 산출하는 단계; 전처리된 입력값의 암호문의 부호 비트를 음의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제2 부분 결과값을 산출하는 단계; 제1 부분 결과값과 제2 부분 결과값을 합산하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법을 제공할 수 있다.
본 발명의 일 실시예에 따른 지수 함수 연산 서버에 있어서, 동형암호 기법으로 이진 암호화된 입력값의 지수 함수 연산 방법 프로그램이 기록된 메모리; 및 메모리에 기록된 프로그램을 실행하는 프로세서를 포함하고, 프로세서는 프로그램의 실행에 따라, 지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하고, 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하고, 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하고, 출력된 양의 이진 지수 함수 연산의 결과값과 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는, 암호화된 데이터의 지수 함수 연산 서버를 제공하고자 한다.
본 실시예에 있어서, 지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하는 것은, 입력값(
Figure 112019115695528-pat00005
)의 암호문(
Figure 112019115695528-pat00006
)을 아래의 [수학식 1]에 기초하여 이진 지수 함수의 지수 부분 형태의 암호문(
Figure 112019115695528-pat00007
)으로 전처리하는 것인, 암호화된 데이터의 지수 함수 연산 서버를 제공할 수 있다.
본 실시예에 있어서, 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 것은, 전처리된 입력값의 암호문은 비트 형태로 표현되며, 암호문의 정수 부분(Integer Part)은 1로 대체하고, 1을 암호문의 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 정수 연산값으로 산출하고, 암호문의 소수 부분(Decimal Part)은 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 소수 연산값으로 산출하고, 제1 정수 연산값과 제1 소수 연산값을 더하여 양의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 서버를 제공할 수 있다.
본 실시예에 있어서, 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 것은, 전처리된 입력값의 암호문은 비트 형태로 표현되며, 암호문에 절대값 연산을 수행하여 양수화 암호문으로 변환하고, 양수화 암호문의 정수 부분(Integer Part)은 1로 대체하고, 1을 양수화 암호문의 정수값의 횟수로 우이동연산(Right Shift Operation)하여 제2 정수 연산값으로 산출하고, 소수 부분(Decimal Part)은 양수화 암호문의 소수 부분을 정수값+1의 횟수로 우이동연산(Left Shift Operation)하여 제2 소수 연산값으로 산출하고, 제2 정수 연산값에서 제2 소수 연산값을 빼주어 음의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 서버를 제공할 수 있다.
본 실시예에 있어서, 출력된 양의 이진 지수 함수 연산의 결과값과 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 것은, 전처리된 입력값의 암호문의 부호 비트에 NOT 연산을 수행하고, 이를 양의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제1 부분 결과값을 산출하고, 전처리된 입력값의 암호문의 부호 비트를 음의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제2 부분 결과값을 산출하고, 제1 부분 결과값과 제2 부분 결과값을 합산하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 것인, 암호화된 데이터의 지수 함수 연산 서버를 제공할 수 있다.
본 발명에 따른 동형암호 기법으로 암호화된 데이터의 지수 연산 서버 및 방법은 동형암호를 이용해 암호화된 데이터에 대하여 복호화 없이 지수 함수 연산을 수행하는 서버 및 방법을 제공할 수 있다.
구체적으로, 본 발명은 암호화된 데이터 상에서의 암호문의 밑 변환 전처리, 양의 이진지수함수, 음의 이진지수함수를 이용하고 마지막으로 선택적 통합 기술을 통해 결과값을 도출하여 지수 함수 연산 결과값을 구할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버를 보여주는 개략도이다.
도 2는 본 발명의 일 실시예에 따른 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 방법을 보여주는 순서도이다.
도 3은 본 발명의 일 실시예에 따른 입력값의 암호문을 전처리하는 과정을 보여주는 개략도이다.
도 4는 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 양의 이진 지수 함수 연산 방법을 보여주는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 입력값의 암호문을 비트 형태로 표현한 것을 보여주는 도면이다.
도 6은 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 양의 이진 지수 함수 연산 방법을 보여주는 개략도이다.
도 7은 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 음의 이진 지수 함수 연산 방법을 보여주는 순서도이다.
도 8은 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 음의 이진 지수 함수 연산 방법을 보여주는 개략도이다.
도 9는 본 발명의 일 실시예에 따른 양의 이진 지수 함수 연산 결과값과 음의 이진 지수 함수 연산 결과값을 선택적 통합하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 과정을 보여주는 순서도이다.
도 10은 본 발명의 일 실시예에 따른 입력값의 암호문의 지수 함수 연산 결과값을 참값과 비교한 그래프를 보여주는 도면이다.
아래에서는 첨부한 도면을 참조하여, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하에서는, 첨부된 도면을 참조하여 동형암호 기법으로 암호화된 데이터를 지수 함수 연산하는 서버를 이용한 지수 함수 연산 방법에 대하여 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버를 보여주는 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버는 사용자 단말로부터 입력값의 암호문을 수신하고, 이에 대하여 지수 함수 연산을 포함하는 알고리즘을 수행하여 그 암호화된 결과값을 사용자 단말에 전송할 수 있다. 사용자 단말에서는 암호화된 결과값을 복호화하여 결과적으로 입력 데이터의 지수 함수 연산 결과 데이터를 얻을 수 있다.
한편 암호화된 데이터의 지수 함수 연산 서버는 통신 모듈, 메모리, 프로세서를 포함할 수 있다.
통신 모듈은 통신망과 연동하여 암호화된 데이터의 지수 함수 연산 서버에 통신 인터페이스를 제공하는데, 사용자 단말과 데이터를 송수신하는 역할을 수행할 수 있다. 여기서, 통신 모듈은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
메모리는 암호화된 데이터의 지수 함수 연산 프로그램이 기록된 것일 수 있다. 또한, 메모리는 프로세서가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 여기서, 메모리는 휘발성 저장 매체(volatile storage media) 또는 비휘발성 저장 매체(non-volatile storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
프로세서는 암호화된 데이터의 지수 함수 연산 서버에서 암호화된 데이터의 지수 함수 연산 프로그램이 수행하는 전체 과정을 제어할 수 있다. 프로세서가 수행하는 과정의 각 단계에 대해서는 도 2 내지 도 10을 참조하여 후술하기로 한다.
여기서, 프로세서는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 방법을 보여주는 순서도이다. 도 3은 본 발명의 일 실시예에 따른 입력값의 암호문을 전처리하는 과정을 보여주는 개략도이다.
도 2 및 도 3을 참조하여, 본 발명의 일 실시예에 따른 지수 함수 연산 서버에 의해 수행되는 동형암호 기법으로 이진 암호화된 입력값의 지수 함수 연산 방법에 대하여 설명하기로 한다.
본 발명의 일 실시예에 따른 암호화된 입력값의 지수 함수 연산 방법은 먼저 입력값의 암호문을 전처리하고, 전처리한 암호문의 지수 부분이 양수, 음수 두 가지 경우에 서로 다른 알고리즘을 적용할 수 있다. 또한 암호문의 값이 양수 또는 음수인지 알 수 없으므로, 두 가지 알고리즘을 전부 수행하고 마지막 단계에서 선택적 통합(Selective Integration)을 통해 결과를 도출할 수 있다.
전체 과정의 첫번째 과정으로서, 지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리(Preprocessing)하는 단계(S210)가 수행될 수 있다.
전처리 단계는, 입력값(
Figure 112019115695528-pat00008
)의 암호문(
Figure 112019115695528-pat00009
)을 아래의 [수학식 1]에 기초하여 이진 지수 함수의 지수 부분 형태의 암호문(
Figure 112019115695528-pat00010
)으로 전처리하는 단계를 포함할 수 있다.
[수학식 1]
Figure 112019115695528-pat00011
구체적으로, 전처리 과정으로 암호문을 밑 변환 처리를 하게 되면, 일반적인 지수함수 값을 도출할 수 있다. 일반적으로 입력값(
Figure 112019115695528-pat00012
)의 밑변환은
Figure 112019115695528-pat00013
과 같이 구할 수 있고, 밑이 2에서 일반적인
Figure 112019115695528-pat00014
로 변경하는 경우에는
Figure 112019115695528-pat00015
와 같이 입력 값
Figure 112019115695528-pat00016
에 대해서
Figure 112019115695528-pat00017
값을 곱해주면 된다. 이 새로운 값
Figure 112019115695528-pat00018
을 다음단계의 입력으로 주게 되면, 이진 지수 함수 연산 알고리즘을 통해 입력값(
Figure 112019115695528-pat00019
)을 구할 수 있다.
도 4는 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 양의 이진 지수 함수 연산 방법을 보여주는 순서도이다. 도 5는 본 발명의 일 실시예에 따른 입력값의 암호문을 비트 형태로 표현한 것을 보여주는 도면이다. 도 6은 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 양의 이진 지수 함수 연산 방법을 보여주는 개략도이다.
도 5를 참조하면, 입력값이 8비트의 경우를 표현한 예시로서, 일반적으로 부호비트 1비트와 정수부분(
Figure 112019115695528-pat00020
bit) 그리고 소수부분(
Figure 112019115695528-pat00021
bit)으로 나누어 표현한 것을 알 수 있다. 한편, length는 입력값의 비트 길이를 의미하며, 여기서는 8이될 수 있다.
도 4 및 도 6을 참조하면 전체 과정의 두번째 과정으로서, 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계(S220)가 수행될 수 있다.
이 단계에서는 구체적으로, 전처리된 입력값의 암호문이 비트 형태로 표현되며, 먼저 이 암호문의 정수 부분(Integer Part)은 1로 대체하고, 1을 암호문의 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 정수 연산값으로 산출하는 단계(S410)가 수행될 수 있다. 즉, 입력값을 양의 이진 지수 함수의 결과 값의 정수부분에 대하여 1을 지수(
Figure 112019115695528-pat00022
)의 정수값의 횟수만큼 좌이동연산된 값으로 저장될 수 있다.
다음으로, 암호문의 소수 부분은 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 소수 연산값으로 산출하는 단계(S420)가 수행될 수 있다. 즉, 양의 이진 지수 함수의 결과값의 소수 부분은 지수(
Figure 112019115695528-pat00023
)의 소수부분을 지수(
Figure 112019115695528-pat00024
)의 정수값의 횟수만큼 좌이동연산된 값으로 저장될 수 있다.
다음으로, 제1 정수 연산값과 제1 소수 연산값을 더하여 양의 이진 지수 함수 연산 결과값으로 산출하는 단계(S430)가 수행될 수 있다. 즉, 위의 두 연산값을 더해주면 양의 이진 지수 함수의 결과값이 될 수 있다. 도 6에 표시된 예시에 따른 양의 이진 지수 함수 연산 결과값은
Figure 112019115695528-pat00025
이 될 수 있다.
도 7은 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 음의 이진 지수 함수 연산 방법을 보여주는 순서도이다. 도 8은 본 발명의 일 실시예에 따른 입력값의 암호문에 대하여 음의 이진 지수 함수 연산 방법을 보여주는 개략도이다.
도 7 및 도8을 참조하여 전체 과정의 세번째로서, 암호문의 음의 이진 지수 함수(Binary Negative Exponential Function) 연산 방법을 설명하기로 한다.
이 단계에서는 구체적으로, 전처리된 입력값의 암호문은 비트 형태로 표현되며, 먼저 암호문에 절대값 연산을 수행하여 양수화 암호문으로 변환하는 단계(S710)가 수행될 수 있다. 즉,
Figure 112019115695528-pat00026
Figure 112019115695528-pat00027
으로 변환할 수 있다. 이에 대해, 양의 이진지수함수와 마찬가지로 비슷한 연산을 하게 되는데, 여기서 이동연산의 방향과 이동거리를 다르게 취할 수 있다. 음의 이진 지수 함수 알고리즘 또한 입력 값을 소수부분과 정수부분 두 가지로 나누어 진행할 수 있다.
이에 대해, 먼저 양수화 암호문의 정수 부분(Integer Part)은 1로 대체하고, 상기 1을 양수화 암호문의 정수값의 횟수로 우이동연산(Right Shift Operation)하여 제2 정수 연산값으로 산출하는 단계(S720)가 수행될 수 있다. 즉, 음의 이진지수함수의 결과 값의 정수부분은 1을
Figure 112019115695528-pat00028
의 정수 값만큼 우이동연산된 값을 저장할 수 있다.
다음으로, 소수 부분(Decimal Part)은 양수화 암호문의 소수 부분을 정수값+1의 횟수로 우이동연산(Left Shift Operation)하여 제2 소수 연산값으로 산출하는 단계(S730)가 수행될 수 있다. 즉, 그 다음으로, 음의 이진지수함수의 결과 값의 소수부분은
Figure 112019115695528-pat00029
의 소수부분을
Figure 112019115695528-pat00030
의 (정수+1) 값만큼 우이동연산된 값을 저장할 수 있다.
다음으로, 제2 정수 연산값에서 제2 소수 연산값을 빼주어 음의 이진 지수 함수 연산 결과값으로 산출하는 단계(S740)가 수행될 수 있다. 즉, 위의 두 연산값에 대하여 제2 정수 연산값에서 제2 소수 연산값을 빼주면 음의 이진 지수 함수의 결과 값이 될 수 있다. 도 8에 개시된 예시의 결과값은
Figure 112019115695528-pat00031
가 될 수 있다.
도 9는 본 발명의 일 실시예에 따른 양의 이진 지수 함수 연산 결과값과 음의 이진 지수 함수 연산 결과값을 선택적 통합하여 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 과정을 보여주는 순서도이다.
도 9를 참조하여 전체 과정의 네번째 과정으로서, 결과 값의 선택적 통합 방법에 대하여 설명하기로 한다.
이 과정에서는 먼저, 전처리된 입력값의 암호문의 부호 비트에 NOT 연산을 수행하고, 이를 상기 양의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제1 부분 결과값을 산출하는 단계(S910)이 수행될 수 있다.
암호화된 지수 값이 양 또는 음인지 판별할 수 없으므로 두 값을 선택적으로 합해야 한다. 수식으로 설명하면, ~x[부호비트]∧A + x[부호비트]∧B가 되고, 여기서 A는 양의 이진 지수 함수의 결과 값이고 B는 음의 이진 지수 함수의 결과 값이 될 수 있다. 즉, 암호문이 양의 이진 지수일 경우는
Figure 112019115695528-pat00032
의 부호비트가 0이 되고, 이에 NOT 연산을 취해주면 1이 될 수 있다. 이 값에 대해 A와 AND 연산을 취해주면 A의 결과가 나오게 된다.
다음으로, 전처리된 입력값의 암호문의 부호 비트를 상기 음의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제2 부분 결과값을 산출하는 단계(S920)가 수행될 수 있다. 여기서 암호문이 양의 이진 지수일 경우 B의 결과는 x[부호비트]∧B에 의해서 0이 될 수 있다.
다음으로, 제1 부분 결과값과 상기 제2 부분 결과값을 합산하여 상기 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 단계(S930)가 수행될 수 있다. 결과적으로 제1 부분 결과값과 제2 부분 결과값을 합산하게 되면
Figure 112019115695528-pat00033
의 결과만 나올 수 있다. 반대로 암호문이 음의 이진 지수 함수인 경우의 결과값은 x[부호비트]가 1이므로 A의 결과값은 0이 되고 B의 결과값만이 출력될 수 있다.
도 10은 본 발명의 일 실시예에 따른 입력값의 암호문의 지수 함수 연산 결과값을 참값과 비교한 그래프를 보여주는 도면이다.
도 10을 참조하면, 정수인
Figure 112019115695528-pat00034
에 대한
Figure 112019115695528-pat00035
값의 좌표, 즉
Figure 112019115695528-pat00036
를 일차선으로 잇는 그래프가 동형암호 지수 함수를 근사하는 함수가 되는 것을 알 수 있다. 이로써, 본 발명의 일 실시예에 따른 동형암호로 암호화된 암호문의 지수 함수 연산 방법이 정확하다는 것을 알 수 있다.
이상으로 설명한 본 발명에 따른 동형암호 기법으로 암호화된 데이터의 지수 연산 서버 및 방법은 동형암호를 이용해 암호화된 데이터에 대하여 복호화 없이 지수 함수 연산을 수행하는 서버 및 방법을 제공할 수 있다.
구체적으로, 본 발명은 암호화된 데이터 상에서의 암호문의 밑 변환 전처리, 양의 이진지수함수, 음의 이진지수함수를 이용하고 마지막으로 선택적 통합 기술을 통해 결과값을 도출하여 지수 함수 연산 결과값을 구할 수 있다.
한편, 본 발명의 일 실시예에 따른 암호화된 데이터의 지수 함수 연산 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
이상의 설명은 본 발명의 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예는 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (11)

  1. 지수 함수 연산 서버에 의해 수행되는 동형암호 기법으로 이진 암호화된 입력값의 지수 함수 연산 방법에 있어서,
    (a) 지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하는 단계;
    (b) 상기 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계;
    (c) 상기 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 단계; 및
    (d) 출력된 상기 양의 이진 지수 함수 연산의 결과값과 상기 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 상기 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 단계를 포함하되,
    (b) 단계는,
    상기 전처리된 입력값의 암호문은 비트 형태로 표현되며, 상기 암호문의 정수 부분(Integer Part)은 1로 대체하고, 상기 1을 상기 암호문의 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 정수 연산값으로 산출하는 단계;
    상기 암호문의 소수 부분(Decimal Part)은 상기 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 소수 연산값으로 산출하는 단계; 및
    상기 제1 정수 연산값과 제1 소수 연산값을 더하여 양의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법.
  2. 제1항에 있어서,
    (a) 단계는,
    입력값(
    Figure 112019115695528-pat00037
    )의 암호문(
    Figure 112019115695528-pat00038
    )을 아래의 [수학식 1]에 기초하여 이진 지수 함수의 지수 부분 형태의 암호문(
    Figure 112019115695528-pat00039
    )으로 전처리하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법.
    [수학식 1]
    Figure 112019115695528-pat00040
  3. 삭제
  4. 제1항에 있어서,
    (c) 단계는,
    상기 전처리된 입력값의 암호문은 비트 형태로 표현되며, 상기 암호문에 절대값 연산을 수행하여 양수화 암호문으로 변환하는 단계;
    상기 양수화 암호문의 정수 부분(Integer Part)은 1로 대체하고, 상기 1을 상기 양수화 암호문의 정수값의 횟수로 우이동연산(Right Shift Operation)하여 제2 정수 연산값으로 산출하는 단계;
    소수 부분(Decimal Part)은 상기 양수화 암호문의 소수 부분을 상기 정수값+1의 횟수로 우이동연산(Left Shift Operation)하여 제2 소수 연산값으로 산출하는 단계; 및
    상기 제2 정수 연산값에서 상기 제2 소수 연산값을 빼주어 음의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법.
  5. 제4항에 있어서,
    (d) 단계는,
    상기 전처리된 입력값의 암호문의 부호 비트에 NOT 연산을 수행하고, 이를 상기 양의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제1 부분 결과값을 산출하는 단계;
    상기 전처리된 입력값의 암호문의 부호 비트를 상기 음의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제2 부분 결과값을 산출하는 단계;
    상기 제1 부분 결과값과 상기 제2 부분 결과값을 합산하여 상기 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 방법.
  6. 지수 함수 연산 서버에 있어서,
    동형암호 기법으로 이진 암호화된 입력값의 지수 함수 연산 방법 프로그램이 기록된 메모리; 및
    상기 메모리에 기록된 프로그램을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 프로그램의 실행에 따라,
    지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하고, 상기 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하고, 상기 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하고, 출력된 상기 양의 이진 지수 함수 연산의 결과값과 상기 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 상기 입력값의 암호문의 지수 함수 연산 결과값을 산출하되,
    상기 전처리된 입력값의 암호문에 대하여 양의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 것은,
    상기 전처리된 입력값의 암호문은 비트 형태로 표현되며, 상기 암호문의 정수 부분(Integer Part)은 1로 대체하고, 상기 1을 상기 암호문의 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 정수 연산값으로 산출하고, 상기 암호문의 소수 부분(Decimal Part)은 상기 정수값의 횟수로 좌이동연산(Left Shift Operation)하여 제1 소수 연산값으로 산출하고, 상기 제1 정수 연산값과 제1 소수 연산값을 더하여 양의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 서버.
  7. 제6항에 있어서,
    지수 함수 형태의 입력값의 암호문을 이진 지수 함수의 지수 부분 형태의 암호문으로 변환하여 전처리하는 것은,
    입력값(
    Figure 112019115695528-pat00041
    )의 암호문(
    Figure 112019115695528-pat00042
    )을 아래의 [수학식 1]에 기초하여 이진 지수 함수의 지수 부분 형태의 암호문(
    Figure 112019115695528-pat00043
    )으로 전처리하는 것인, 암호화된 데이터의 지수 함수 연산 서버.
  8. 삭제
  9. 제6항에 있어서
    상기 전처리된 입력값의 암호문에 대하여 음의 이진 지수 함수 연산을 수행하고 그 결과값을 출력하는 것은,
    상기 전처리된 입력값의 암호문은 비트 형태로 표현되며, 상기 암호문에 절대값 연산을 수행하여 양수화 암호문으로 변환하고, 상기 양수화 암호문의 정수 부분(Integer Part)은 1로 대체하고, 상기 1을 상기 양수화 암호문의 정수값의 횟수로 우이동연산(Right Shift Operation)하여 제2 정수 연산값으로 산출하고, 소수 부분(Decimal Part)은 상기 양수화 암호문의 소수 부분을 상기 정수값+1의 횟수로 우이동연산(Left Shift Operation)하여 제2 소수 연산값으로 산출하고, 상기 제2 정수 연산값에서 상기 제2 소수 연산값을 빼주어 음의 이진 지수 함수 연산 결과값으로 산출하는 단계를 포함하는, 암호화된 데이터의 지수 함수 연산 서버.
  10. 제9항에 있어서,
    출력된 상기 양의 이진 지수 함수 연산의 결과값과 상기 음의 이진 지수 함수 연산의 결과값을 선택적 통합하여 상기 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 것은,
    상기 전처리된 입력값의 암호문의 부호 비트에 NOT 연산을 수행하고, 이를 상기 양의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제1 부분 결과값을 산출하고, 상기 전처리된 입력값의 암호문의 부호 비트를 상기 음의 이진 지수 함수 연산 결과값과 AND 연산을 수행하여 제2 부분 결과값을 산출하고, 상기 제1 부분 결과값과 상기 제2 부분 결과값을 합산하여 상기 입력값의 암호문의 지수 함수 연산 결과값을 산출하는 것인, 암호화된 데이터의 지수 함수 연산 서버.
  11. 제1항, 제2항, 제4항 및 제5항 중 어느 한 항에 따른 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020190143824A 2018-11-09 2019-11-11 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법 KR102213835B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180137580 2018-11-09
KR20180137580 2018-11-09

Publications (2)

Publication Number Publication Date
KR20200054119A KR20200054119A (ko) 2020-05-19
KR102213835B1 true KR102213835B1 (ko) 2021-02-09

Family

ID=70913274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190143824A KR102213835B1 (ko) 2018-11-09 2019-11-11 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법

Country Status (1)

Country Link
KR (1) KR102213835B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102491894B1 (ko) 2019-11-29 2023-01-27 고려대학교 산학협력단 완전동형암호 기법으로 암호화된 데이터의 로지스틱 회귀 분석 연산 장치 및 방법
KR102491902B1 (ko) 2019-11-29 2023-01-27 고려대학교 산학협력단 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법
EP4369648A1 (en) 2022-11-11 2024-05-15 Electronics and Telecommunications Research Institute Program conversion apparatus and method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR101618941B1 (ko) * 2014-01-09 2016-05-09 서울대학교산학협력단 동형 암호 알고리즘과 페어링 기반 암호 알고리즘을 이용하여, 암호화 데이터를 연산하는 방법 및 이를 이용한 서버
KR101829267B1 (ko) 2016-04-27 2018-02-14 서울대학교산학협력단 암호문의 크기가 감소되는 동형 암호화 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Bai, Liwang, and Yuqing Lan. "A homomorphic arithmetic scheme on real number with fixed precision." AIP Conference Proceedings. Vol. 1839. No. 1. AIP Publishing LLC(2017.) 1부.*

Also Published As

Publication number Publication date
KR20200054119A (ko) 2020-05-19

Similar Documents

Publication Publication Date Title
KR102213835B1 (ko) 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법
US11551035B2 (en) Machine learning based on homomorphic encryption
US9774596B2 (en) Privacy-preserving biometric authentication
CN110753926A (zh) 同态数据分析
US20120307920A1 (en) Method and Apparatus to Perform Function Compression
US11374735B2 (en) Processing apparatus, processing method, storage medium, and encryption processing system
JP2017515195A (ja) 断熱量子計算を介してデジタル論理制約問題を解く
EP3644544A1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
WO2018135563A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
US20190334695A1 (en) Pinocchio / trinocchio on authenticated data
CN111241568A (zh) 加密方法、解密方法、装置、计算机设备和存储介质
CN111159730B (zh) 数据处理方法、查询方法、装置、电子设备和系统
KR102213819B1 (ko) 동형암호 기법으로 암호화된 데이터의 로그 연산 서버 및 방법
CN112434317A (zh) 数据处理方法、装置、设备及存储介质
JP6253803B2 (ja) ペアワイズ距離計算のためのシステム及び方法
KR20210082019A (ko) 교집합 연산을 위한 장치 및 방법
KR20240004830A (ko) 완전 동형 암호화에서 사용하기 위한 블라인드 회전
JP7184159B2 (ja) システム、クライアント装置、データ処理方法、コンピュータプログラム及び記録媒体
US9842086B2 (en) Calculation device, calculation method, and program
KR20220040309A (ko) 동형 암호화 장치 및 그 동작 방법
CN112182593A (zh) 一种数据处理方法、装置和电子设备
JP6980154B2 (ja) データ利用者鍵生成装置、鍵生成方法及び鍵生成プログラム
US20230188320A1 (en) Computing apparatus and method of integrating different homomorphic operations in homomorphic encryption
KR102491894B1 (ko) 완전동형암호 기법으로 암호화된 데이터의 로지스틱 회귀 분석 연산 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant