KR20230029388A - 동형 암호를 활용한 사적 변수의 보안 방법 및 장치 - Google Patents

동형 암호를 활용한 사적 변수의 보안 방법 및 장치 Download PDF

Info

Publication number
KR20230029388A
KR20230029388A KR1020210111809A KR20210111809A KR20230029388A KR 20230029388 A KR20230029388 A KR 20230029388A KR 1020210111809 A KR1020210111809 A KR 1020210111809A KR 20210111809 A KR20210111809 A KR 20210111809A KR 20230029388 A KR20230029388 A KR 20230029388A
Authority
KR
South Korea
Prior art keywords
data
homomorphic encryption
value
dataset
average value
Prior art date
Application number
KR1020210111809A
Other languages
English (en)
Other versions
KR102615381B1 (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 KR1020210111809A priority Critical patent/KR102615381B1/ko
Priority to US17/853,798 priority patent/US20230081162A1/en
Publication of KR20230029388A publication Critical patent/KR20230029388A/ko
Application granted granted Critical
Publication of KR102615381B1 publication Critical patent/KR102615381B1/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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예는 동형 암호 데이터 처리 방법 및 장치에 관한 것으로서, 동형 암호가 포함된 데이터셋의 클래스 분류값(로짓값) 및 분포값에 대하여 가중치를 설정하고, 이를 이용하여 동형 암호가 유지된 상태로 데이터의 연산 및 학습을 수행하는 동형 암호 데이터 처리 방법 및 장치에 관한 것이다.

Description

동형 암호를 활용한 사적 변수의 보안 방법 및 장치{METHOD FOR PRIVACY PRESERVING USING HOMOMORPHIC ENCRYPTION WITH PRIVATE VARIABLES AND APPARATUS THEROEF}
본 발명의 실시예는 동형 암호를 활용한 사적 변수의 보안 방법 및 장치에 관한 것으로서, 보다 상세하게는 다양한 변수 중 보안이 필요한 사적 변수만을 암호화하여 회귀 분석을 수행할 수 있는 방법 및 장치에 관한 것이다.
최근, 머신 러닝은 자율 주행, 마케팅 및 금융을 포함한 거의 모든 부문에서 놀라운 성과를 나타내었다. 머신 러닝의 성공은 GPU로 대표되는 계산 및 저장 기능의 성능 개선뿐만 아니라 공개 데이터의 수도 폭발적으로 증가시켰다.
이러한 점에서, 기업과 기관은 다양한 출처, 특히 개인으로부터 데이터를 수집하기 위해 다양한 노력을 시도하고 있다. 그러나 개별적인 데이터에는 개인 정보가 포함되어있어 개인 정보 침해에 대한 우려가 제기되고 있다. 개인은 어떤 이유로든 자신의 개인 정보를 다른 사람이 활용하는 것을 원하지 않을 수 있으며, 그러한 정보를 제공하는데 동의하더라도 데이터베이스가 공격을 받으면 원치 않는 개인 정보의 유출이 발생할 수 있다.
따라서, 데이터 공개에 보안 기술을 적용하는 것은 더 이상 선택 사항이 아니라 필수이다. 따라서, 개인 정보에 대한 다양한 보안 기술이 제안되고 있으며, 최근에는 이를 해결하기 위한 방법으로 동형 암호화 방법에 대한 연구가 증가하고 있다.
동형 암호는 4세대 암호 기술로서, 기존 암호화 방법과 달리 암호화 상태에서 데이터의 결합, 연산, 분석 등이 가능하며, 데이터 보안이 필요한 모든 영역에 적용이 가능하다.
동형 암호는 복호 과정 없이 암호화된 데이터에 대한 덧셈 및 곱셈을 수행할 수 있다. 따라서, 동형 암호를 활용함으로써 클라이언트는 신뢰할 수 없는 클라우드 서버에 계산을 위임할 수 있으며, 암호화된 상태의 입력 데이터를 서버에 전송하고, 어떠한 추가적인 질의가 없는 상태에서 모든 계산을 수행할 수 있다. 이와 같이 동형 암호는 개인 데이터에 대한 계산의 위임 구조를 단순하고 안전하게 제공한다.
그러나, 머신 러닝에 동형 암호를 활용하는 경우에는 시간과 스토리지 효율성 부분에서 문제점이 존재한다. 예를 들어, 일반 텍스트로 몇 분 내에 달성할 수 있는 학습 과정에서, 동형 암호문을 이용하는 경우에는 며칠이 소요된다는 문제점이 있다.
본 발명의 실시예에 따른 동형 암호를 활용한 사적 변수의 보안 방법 및 장치는 다양한 변수 중 보안이 필요한 사적 변수만을 암호화하여 회귀 분석을 수행할 수 있는 방법 및 장치를 제공하기 위한 것이다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 실시예에 따른 암호 데이터 처리 방법은, 데이터가 동형 암호 데이터인지 여부를 판별하는 클래스 분류 모듈에, 동형 암호가 포함된 데이터의 데이터셋을 입력하여 상기 동형 암호가 포함된 데이터셋의 클래스 분류값인, 제1 분류값을 도출하는 단계, 상기 제1 분류값의 제1 분포 평균값을 도출하고, 상기 제1 분포 평균값에 가중치를 더하여 제2 분포 평균값을 도출하는 단계, 상기 제2 분포 평균값을 이용하여 제2 분류값을 도출하는 단계, 그리고 상기 제2 분류값 및 상기 제2 분포 평균값을 이용하여 동형 암호가 포함된 데이터의 연산을 수행하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 제1 분류값을 도출하는 단계는, 상기 동형 암호가 포함된 데이터셋의 제1 로짓(logit)을 추출하는 단계, 상기 제1 로짓으로부터 상기 동형 암호가 포함된 데이터셋의 데이터가, 암호화된 데이터 클래스 또는 암호화되지 않은 데이터 클래스 중 어느 하나로 분류될 확률에 대응하는 값을 상기 제1 분류값으로 설정하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 제2 분포 평균값을 도출하는 단계는, 상기 클래스 분류 모듈에 동형 암호가 포함되지 않은 데이터의 데이터셋을 입력하여 동형 암호화되지 않은 데이터셋의 클래스 분류값인 제3 분류값을 도출하는 단계, 상기 제3 분류값의 분포 평균값인 제3 분포 평균값을 도출하는 단계, 그리고 상기 제1 분포 평균값과 상기 제3 분포 평균값의 평균 맞춤을 수행하여 상기 제1 분포 평균값과 상기 제3 분포 평균값이 같아지도록 상기 가중치를 설정하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 동형 암호가 포함된 데이터의 연산을 수행하는 단계는, 상기 동형 암호가 포함된 데이터 및 상기 동형 암호가 포함되지 않은 데이터를 슬롯으로 포함하는 제1 데이터셋을 저장하는 단계, 상기 제1 데이터셋 내의 동형 암호화된 데이터와 동형 암호화되지 않은 데이터를 기저장된 선형 모델에 적용하여 상기 선형 모델에 대한 추정값을 산출하는 단계, 그리고 상기 산출된 추정 값을 외부 장치에 전송하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 추정값을 산출하는 단계는, 상기 선형 모델의 추정값의 산출에 필요한 다항식 중 상기 동형 암호화된 데이터를 이용하는 항(term)을 추출하고, 상기 추출된 항에 대한 동형 연산을 수행하여 상기 추정값을 산출하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 추정값을 산출하는 단계는, 상기 제1 데이터셋에 대응되는 행렬을 생성하는 단계, 상기 행렬에 대해서 상기 동형 암호화된 데이터를 포함하는 제1 행렬과 상기 동형 암호화된 데이터를 포함하지 않는 제2 행렬로 분해하는 단계, 상기 제2 행렬이 상기 제1 행렬에 직교하도록 하는 단계, 상기 제1 행렬과 상기 제2 행렬을 이용하여 상기 선형 모델에 대한 추정값을 산출하는 단계를 더 포함한다.
본 발명의 실시예에 따른 동형 암호를 활용한 사적 변수의 보안 방법 및 장치는 다양한 변수 중 보안이 필요한 사적 변수만을 암호화하여 회귀 분석을 수행할 수 있는 방법 및 장치를 제공하기 할 수 있다.
도 1은 실시예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면이다.
도 2는 실시예에 연산 장치의 구성을 나타낸 블럭도이다.
도 3은 실시예에 따른 프로세서의 구성을 나타내는 블록도이다.
도 4는 실시예에 따른 평균 맞춤을 설명하기 위한 예시 그래프이다.
도 5는 실시예에 따른 동형 암호문에 대한 기본 동작을 설명하기 위한 도면이다.
도 6은 실시예에 따른 동형 암호문에 대한 처리 함수의 예를 설명하기 위한 도면이다.
도 7은 실시예에 따른 리지 회귀를 위한 중간 값 산출 알고리즘을 설명하기 위한 도면이다.
도 8은 실시예에 따른 산출된 중간 값을 이용하여 리지 회귀의 결과를 산출하는 알고리즘을 설명하기 위한 도면이다.
도 9는 실시예에 따른 동형 암호문에 대한 패깅 동작을 이용한 연산 동작을 설명하기 위한 도면이다.
도 10은 실시예에 따른 리지 회귀 동작의 성능을 설명하기 위한 도면이다.
도 11은 실시예에 따른 암호 데이터 처리 방법의 흐름도이다.
도 12는 실시예에 따른 암호 데이터의 연산 및 학습 방법의 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 출원에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 “A로부터 B로 전송(전달)” 또는 “A가 B로부터 수신”과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과 정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터도 포함하는 개념으로 정의된다.
후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예
시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
이하, 도1을 참조하여 실시예에 따른 네트워크 시스템의 구조를 설명한다.
도 1은 실시예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면이다.
도 1을 참조하면, 네트워크 시스템(1000)은 사용자 단말장치(100), 제1 서버(200) 및 제2 서버(300)를 포함할 수 있으며, 각 구성은 네트워크를 통하여 연결될 수 있다.
여기서 네트워크는 다양한 형태의 유무선 통신 네트워크, 방송 통신 네트워크, 광통신 네트워크, 클라우드 네트워크 등으로 구현될 수 있으며, 각 장치들은 별도의 매개체 없이 와이파이, 블루투스, NFC(Near Field Communication) 등과 같은 방식으로 연결될 수도 있다.
도 1에서는 사용자 단말장치(100)가 하나인 것으로 도시하였지만, 구현시에 네트워크 시스템(1000)에는 복수의 사용자 단말장치(100)가 사용될 수 있다. 일 예로, 사용자 단말장치(100)는 스마트폰, 태블릿, 게임 플레이어, PC, 랩톱 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이 밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다.
도 1에 도시된 사용자 단말장치(100)는 데이터 소유자, 제1 서버(200)는 암호화 서비스 공급자(CSP, Crypto-sevice provider), 제2 서버(300)는 머신러닝 서비스 공급자(MLSP, Machin learning sevice provider)로 지칭될 수도 있다.
제1 서버(200)는 동형 암호에 필요한 비밀 키와 공개 키를 생성하고, 생성된 공개 키를 제2 서버(300) 및 사용자 단말장치(100)에 제공할 수 있다. 구체적으로, 제1 서버(200)는 동형암호화에 필요한 각종 파라미터에 기초하여 비밀 키 및 공개 키를 생성할 수 있다. 구체적인 비밀 키 및 공개 키 생성 동작에 대해서는 도 5를 참조하여 후술한다.
사용자는 자신이 사용하는 사용자 단말장치(100)를 통해서 다양한 정보를 입력할 수 있다. 입력된 정보는 사용자 단말장치(100) 자체에 저장될 수도 있지만, 저장 용량 및 보안 등을 이유로 외부 장치로 전송되어 저장될 수도 있다. 도 2에서 제2 서버(300)는 이러한 정보들을 저장하는 역할을 수행할 수 있다.
사용자 단말장치(100)는 개인 정보를 제공받은 공개 키를 이용하여 암호화하고, 암호화된 개인 정보를 제2 서버(300)에 제공할 수 있다. 이때, 사용자 단말장치(100)는 제2 서버(300)에 제공할 여러 정보 중 정보 보고가 필요한 개인 정보에 대해서만 동형 암호화 방식으로 암호화하고, 나머지 정보에 대해서는 동형 암호화 처리 없이 제2 서버(300)에 제공할 수 있다.
즉, 사용자 단말장치(100)는 개인 정보(또는 사적 변수)를 공개 키를 이용하여 암호화하고, 암호화된 개인 정보와 암호화되지 않은 정보(또는 변수)를 제2 서버(300)에 제공할 수 있다. 여기서 개인 정보 보호가 필요한 정보는 사적 변수라고 지칭될 수 이으며, 하나의 정보(또는 항목)일 수 있으며, 복수의 정보(또는 복수의 항목)일 수 있다. 예를 들어, 이러한 사적 변수는 나이, 성별, 인종 등일 수 있다. 개인 정보 보호가 필요한 항목은 자동으로 선택될 수 있으며, 사용자가 지적한 항목이 사적 변수가 될 수도 있다.
사용자 단말장치(100)는 동형 암호화를 수행하는 과정에서 산출되는 암호화 노이즈, 즉, 에러를 암호문에 포함시킬 수 있다. 구체적으로, 각 사용자 단말장치(100)에서 생성하는 동형 암호문은, 추후에 비밀 키를 이용하여 복호화하였을 때 메시지 및 에러 값을 포함하는 결과 값이 복원되는 형태로 생성될 수 있다. 예를 들어, 상술한 바와 같은 동형 암호화는 HEAAN 스킴을 이용하여 생성될 수 있으나, 이에 한정되지는 않는다. HEAAN 스킴의 자세한 동작에 대해서는 후술한다.
공개 키를 제공받은 사용자 단말장치(100)는 제공받은 공개 키를 이용하여 복수의 변수(또는 복수의 개인 정보 또는 복수의 정보) 중 보안이 필요한 변수에 대해서는 동형 암호 처리를 수행하고, 동형 암호화된 변수와 암호화되지 않은 변수를 포함하는 데이터를 제2 서버(300)에 전송할 수 있다.
제2 서버(300)는 사용자 단말장치(100)로부터 데이터를 제공받으면, 제공받은 데이터를 저장할 수 있다.
그리고 제2 서버(300)는 외부의 요청 또는 사용자 단말장치(100)의 요청에 따라, 저장된 데이터를 이용하여 연산 처리를 수행할 수 있다. 여기서 연산 처리는 회귀 분석과 같은 기계 학습 동작일 수 있다. 이러한 기계 학습 동작에 대해서는 도 2를 참조하여 후술한다.
그리고, 제2 서버(300)는 연산 처리 결과를 제1 서버(200)에 제공할 수 있다. 연산 처리 결과를 제공받은 제1 서버(200)는 비밀 키를 이용하여 연산 처리 결과를 해독하고, 그 결과를 사용자 단말장치(100)에 전송할 수 있다.
이하에서는, 상술한 제1 서버(200)와 제2 서버(300)는 정직하지만, 호기심 많고, 서로 공모하지 않은 장치로 가정한다. 일반적으로 머신 러닝 서비스 공급자와 암호화 서비스 공급자는 소비자에게 서비스를 제공하여 수익을 얻는 서로 다른 회사이기 때문에, 상술한 가정은 합리적이다.
한편, 제1 서버(200)는 비밀 키를 갖는다는 점에서, 최종 결과를 직접 해독하여 최종 결과를 확인하는 것이 가능하다. 이러한 점을 방지하기 위하여, 사용자 단말장치(100)는 마스크(mask)라고 하는 최종 결과와 길이가 같은 임의 벡터 값을 결정하고, 마스크를 암호화하여 제2 서버(300)에 데이터를 전송할 수 있다. 이와 같이 사용자 단말장치(100)가 데이터를 마스크 처리하여 제2 서버(300)에 제공하는바, 제1 서버(200)는 비밀 키를 이용하여 연산 결과를 복호화하더라도, 사적 변수를 획득하기 어렵게 된다.
이때, 사용자 단말장치(100)는 데이터의 전송 전에 전송할 데이터에 대한 마스킹 처리를 수행하고, 마스킹 처리된 데이터를 제2 서버(300)에 제공할 수 도 있다. 마스킹 처리에 대한 구체적인 내용은 후술한다.
이상과 같이 본 실시 예에 따른 네트워크 시스템(1000)은 개인 정보 보호가 필요한 항목에 대해서만 암호화 처리하는바, 보안 처리가 가능하다. 또한, 사용자의 모든 정보를 암호화하여 처리하는 것이 아니라, 개인 정보가 필요한 항목에 대해서만 동형 암호화 처리한다는 점에서, 분석 과정에서 보다 빠른 연산이 가능하다.
한편, 도 1을 도시하고 설명함에 있어서, 별도의 제1 서버(200)가 암호문에 필요한 공개 키 및 비밀 키를 생성하고, 사용자 단말장치(100)가 공개 키를 제공받아 동형 암호문 처리를 수행하는 것으로 설명하였지만, 구현시에는 제1 서버(200)의 기능을 사용자 단말장치(100)가 수행할 수도 있다. 즉, 사용자 단말장치(100)가 직접 비밀 키 및 공개 키를 생성하고, 생성한 공개 키를 이용하여 정보를 동형 암호화하여 제2 서버(200)에 제공하고, 제2 서버(200)에서의 연산 결과를 사용자 단말장치(100)가 제공받아 직접 비밀 키로 복원하는 방식으로도 구현될 수 있다.
이하, 도 2를 참조하여 실시예에 따른 연산 장치의 구성을 설명한다.
도 2는 실시예에 따른 연산 장치의 구성을 나타낸 블럭도이다.
구체적으로, 도 1의 시스템에서 사용자 단말장치 등과 같이 동형 암호화를 수행하는 장치, 제1 서버 장치 등과 같이 동형 암호문에 필요한 키 값을 산출하는 제1 서버, 제2 서버 등과 같이 동형 암호문에 대한 연산을 수행하는 장치 등을 연산 장치라고 지칭할 수 있다. 이러한 연산 장치는 PC(Personal computer), 노트북, 스마트폰, 태블릿, 서버 등 다양한 장치일 수 있다.
도 2를 참조하면, 연산 장치(400)는 통신 장치(410), 메모리(420), 디스플레이(430), 조작 입력 장치(440) 및 프로세서(450)를 포함할 수 있다.
통신 장치(410)는 연산 장치(400)를 외부 장치(미도시)와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 외부 장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, Wifi 802, 11a/b/g/n, NFC, Bluetooth) 포트를 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(410)는 송수신부(transceiver)로 지칭될 수도 있다.
통신 장치(410)는 공개 키를 외부 장치로부터 수신할 수 있으며, 연산 장치(400) 자체적으로 생성한 공개 키를 외부 장치로 전송할 수 있다.
그리고 통신 장치(410)는 외부 장치로부터 메시지를 수신할 수 있으며, 생성한 동형 암호문을 외부 장치로 송신할 수 있다.
또한, 통신 장치(410)는 암호문 생성에 필요한 각종 파라미터를 외부 장치로부터 수신할 수 있다. 한편, 구현시에 각종 파라미터는 후술하는 조작 입력 장치(440)를 통하여 사용자로부터 직접 입력받을 수 있다.
또한, 통신 장치(410)는 외부 장치로부터 동형 암호문에 대한 연산을 요청받을 수 있으며, 그에 따라 계산된 결과를 외부 장치에 전송할 수 있다. 여기서 요청받은 연산은 덧셈, 뺄셈, 곱셈과 같은 연산일 수 있으며, 복수의 데이터에 대한 회귀 분석 연산일 수도 있다. 더불어, 요청받은 연산은, 입력 데이터가 암호가 포함된 데이터인 지 암호가 포함되지 않은 데이터인지 여부를 구분하는 클래스 분류 연산 및 클래스 분류 결과의 분포 평균에 가중치를 설정하는 연산을 포함할 수 있다.
메모리(420)에는 연산 장치(400)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 구체적으로, 메모리(420)에는 본 개시의 다양한 실시예에 따라 연산 장치(400)가 동작하기 위한 각종 프로그램(또는 소프트웨어)이 저장될 수 있다.
이러한 메모리(420)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다.
메모리(420)는 암호화할 메시지를 저장할 수 있다. 여기서 메시지는 사용자가 인용한 각종 신용 정보, 개인 정보 등일 수 있으며, 연산 장치(400)에서 사용되는 위치 정보, 인터넷 사용 시간 정보 등 사용 이력 등과 관련된 정보일 수도 있다.
그리고 메모리(420)는 공개 키를 저장할 수 있으며, 연산 장치(400)가 직접 공개 키를 생성한 장치인 경우, 비밀 키뿐만 아니라, 공개 키 및 비밀 키 생성에 필요한 각종 파라미터를 저장할 수 있다.
그리고 메모리(420)는 후술한 과정에서 생성된 동형 암호문을 저장할 수 있다. 그리고 메모리(420)는 외부 장치에서 전송한 동형 암호문을 저장할 수도 있다. 또한, 메모리(420)는 후술하는 연산 과정에서의 결과물인 연산 결과 암호문을 저장할 수도 있다.
그리고 메모리(420)는 머신 러닝에 필요한 학습 모델을 저장할 수 있다. 그리고 메모리(420)는 해당 학습 모델에서 사용되는 연산 함수 및 그에 대한 근사 다항식을 저장할 수 있다. 예를들어, 메모리(420)는 후술하는 수학식 10, 15와 같은 선형 모델에 대한 함수를 저장할 수 있다. 더불어, 메모리(420)는 입력 데이터가 암호가 포함된 데이터인지 암호가 포함되지 않은 데이터인지 여부를 구분하는 클래스 분류 연산 및 클래스 분류 결과의 분포 평균에 가중치를 설정하는 연산에 대한 함수를 저장할 수 있다.
디스플레이(430)는 연산 장치(400)가 지원하는 기능을 선택받기 위한 사용자 인터페이스 창을 표시한다. 구체적으로, 디스플레이(430)는 연산 장치(400)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(430)는 LCD(liquid crystal display), OLED(Organic Light Emitting Diodes) 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(440)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
디스플레이(430)는 비밀 키 및 공개 키 생성에 필요한 파라미터의 입력을 요청하는 메시지를 표시할 수 있다. 그리고 디스플레이(430)는 암호화 대상이 메시지를 선택하는 메시지를 표시하거나, 사적 변수를 선택하는 메시지를 표시할 수 있다. 한편, 구현시에 암호화 대상(즉, 사적 변수)은 사용자가 직접 선택할 수도 있고, 자동으로 선택될 수 있다. 즉, 암호화가 필요한 개인 정보 등은 사용자가 직접 메시지를 선택하지 않더라도 자동으로 설정될 수 있다.
조작 입력 장치(440)는 사용자로부터 연산 장치(400)의 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 구체적으로, 조작 입력 장치(400)는 사용자로부터 비밀 키 및 공개 키 생성에 필요한 파라미터를 입력받을 수 있다. 또한, 조작 입력 장치(440)는 사용자로부터 암호화될 메시지를 설정받을 수 있다.
프로세서(450)는 연산 장치(400)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(450)는 메모리(420)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 연산 장치(400)의 동작을 전반적으로 제어할 수 있다. 이러한 프로세서(450)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다.
프로세서(450)는 전송하고자 하는 메시지가 입력되면 메모리(420)에 저장할 수 있다. 그리고 프로세서(450)는 메모리(420)에 저장된 각종 설정 값 및 프로그램을 이용하여, 메시지를 동형 암호화할 수 있다. 이 경우, 공개 키가 사용될 수 있다. 이때, 복수의 메시지 중 개인 정보 보호가 필요한 항목(사적 변수)에 대해서는 동형 암호화를 수행하고, 개인 정보가 필요하지 않은 항목은 암호화 처리를 수행하지 않을 수 있다.
또한, 프로세서(450)는 상술한 복수의 메시지에 대한 외부 장치로의 전송 전에, 복수의 메시지에 대한 마스크 처리를 수행하고, 마스크 처리된 데이터를 외부 장치에 전송할 수도 있다.
프로세서(450)는 암호화를 수행하는데 필요한 공개 키를 자체적으로 생성하여 사용할 수동 있고, 외부 장치로부터 수신하여 사용할 수도 있다. 일 예로, 연산 장치가 도 1의 제1 서버 장치(200)인 경우, 비밀 키 및 공개 키를 생성하고, 생성한 공개 키를 도 1의 사용자 단말장치(100)에 전송할 수 있다.
그리고 프로세서(450)는 메시지에 대한 동형 암호문을 생성할 수 있다. 구체적으로, 프로세서(450)는 메시지 중 사적 보호가 필요한 항목에 대해서는 공개 키를 적용하여 동형 암호문을 생성할 수 있다. 한편, HEAAN 방식으로 암호문을 처리하는 경우, 프로세서(450)는 메시지에 대해서 링에 속하는 다항식(또는 벡터)으로 변환한 이후에, 공개키를 이용하여 동형 암호문을 생성할 수 있다.
그리고 프로세서(450)는 동형 암호문이 생성되면 메모리(420)에 저장하거나, 사용자 요청 또는 기 설정된 디폴트 명령에 따라 동형 암호문을 다른 장치에 전송하도록 통신 장치(410)를 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 패킹(packing)이 이루어질 수도 있다. 동형 암호화에서 패킹을 이용하게 되면, 다수의 메시지를 하나의 암호문으로 암호화하는 것이 가능해진다. 이 경우, 연산 장치(400)에서 각 암호문들 간의 연산을 수행하게 되면, 결과적으로 다수의 메시지에 대한 연산이 병렬적으로 처리되므로 연산 부담이 크게 줄어들게 된다.
구체적으로는, 프로세서(450)는 메시지가 복수의 메시지 벡터로 이루어지는 경우, 복수의 메시지 벡터를 병렬적으로 암호화할 수 있는 형태의 다항식으로 변환한 후, 그 다항식에 스케일링 벡터를 승산하고 공개 키를 이용하여 동형 암호화할 수도 있다. 이에 따라, 복수의 메시지 벡터를 패킹한 암호문을 생성할 수 있다.
그리고 프로세서(450)는 동형 암호문에 대한 복호가 필요한 경우, 동형 암호문에 비밀 키를 적용하여 다항식 형태의 복호문을 생성하고, 다항식 형태의 복호문을 디코딩하여 메시지를 생성할 수 있다.
또한, 프로세서(450) 수신된 메시지(또는 데이터)에서 사적 변수(개인 정보)가 암호화된 상태를 유지하면서 머신 러닝의 학습을 수행하기 위한 전처리 과정을 수행할 수 있다.
구체적으로, 프로세서(450)는 수신된 메시지(또는 입력 데이터셋)에 대하여, 수신된 메시지에 암호화된 데이터가 포함되었는지 여부를 구분하는 클래스 분류를 수행할 수 있다. 또한, 클래스 분류 결과값인 제1 분류값의 제1 분포 평균을 도출하고, 제1 분포 평균 값에 가중치를 더하여 제2 분포 평균값을 도출할 수 있다.
더불어, 프로세서(450)는 제2 분포 평균값에 대응하는 제2 분류값 및 제2 분포 평균값을 이용하여 암호가 포함된 데이터의 연산 및 회기학습을 수행할 수 있다. 클래스 분류 및 가중치 설정에 관한 구체적인 내용은 후술하는 도 3을 참조하여 설명한다.
그리고 프로세서(450)는 암호문에 대한 연산을 수행할 수 있다. 구체적으로, 프로세서(450)는 동형 암호문에 대해서 암호화된 상태를 유지한 상테에서 덧셈, 뺄셈, 또는 곱셈 등의 연산을 수행할 수 있다.
또한, 프로세서(450)는 암호문에 대해서 리지 회귀를 수행할 수 있다. 리지 회귀는 규제가 추가된 선형 회귀 모델이다. 선형 회귀 모델은 입력 특성에 대한 선형 함수를 만들어 예측을 수행하는 모델로, 일반적인 선형 회귀는 오버 피팅이 발생할 수 있다는 점에서, 규제 항이 추가된 모델이다. 리지 회귀에 대한 보다 구체적인 내용은 후술한다.
그리고 연산 장치(400)는 연산이 완료되면, 연산 결과 데이터로부터 유효 영역의 데이터를 검출할 수 있다. 구체적으로, 연산 장치(400)는 연산 결과 데이터를 라운딩 처리 수행하여 유효 영역의 데이터를 검출할 수 있다. 라운딩 처리란 암호화된 상태에서 메시지의 반올림(round-off)을 진행하는 것을 의미하며, 다르게는 리스케일링(rescaling)이라고 할 수도 있다.
또한, 연산 장치(400)는 연산 결과 암호문 내의 근사 메시지 비중이 임계치를 초과하면, 암호문에 대한 재부팅 동작을 수행할 수 있다.
이상과 같은 본 개시에 따른 연산 장치(400)는 개인 보호가 필요한 사적 변수와 그렇지 않은 변수를 구분하여 동형 암호화 처리하여 연산을 처리하는 바, 보다 빠른 연산을 수행할 수 있다. 또한, 학습 과정에서 경사 하강법을 사용하지 않음으로써, 보다 정확한 해를 효율적으로 얻을 수 있을 뿐만 아니라, 경사 하강법의 성능 최적화에 필요한 학습 검색을 생략할 수 있는바, 보다 빠른 머신 러닝 학습이 가능한 효과가 있다.
이하에서는 본 개시에서 이용하는 리지 회귀에 대해서 먼저 간략하게 설명한다.
리지 회귀(Ridge regression)는 입력 변수와 종속 변수 간의 선형 관계를 모델링하는 다양한 기계 학습 기술의 필수 구성 요소이다. 리지 회귀 학습 프로세스에서 가장 많은 리소스가 소요되는 과정은 행렬 반전 연산(matrix inversion operation)이다.
본 개시에서는 동형 암호를 이용하여 사적 변수만 암호화하는 리지 회귀 분석 방법을 설명한다. 리지 추정 공식을 개인 속성이 있는 부분과 없는 부분을 나눠서 암호문과 관련된 작업을 최소화한다. 그런 다음 분해된 행렬의 중복 열을 개인 속성과 직교하도록 강제하여 계산의 최적화를 수행한다.
본 개시에 따른 방법은 경사 하강법을 사용하지 않음으로 정확한 해를 더 효율적으로 얻을 수 있다. 또한, 경사 하강법의 성능을 최적화하는데 필요한 학습의 검색이 생략되는바, 빠른 처리가 가능하다.
한편, 현재는 암호화된 도메인의 매개 변수 검색에 많은 계산이 필요하기 때문에 관련 매개변수를 일반 텍스트를 사용하여 미리 검색하고 있다. 그러나 이는 실용적인 방법이 아니다.
이하에서는 본 개시에서 이용하는 동형 암호에 대한 동작을 설명한다.
동형 암호 스킴은 일반적으로 다음과 같은 구조를 갖는다.
KeyGen(Iλ, Iτ) →(sKey, pKey) : 보안 파리미터(λ) 및 기능 파라미터(τ)를 입력하고, 비밀 키(sKey)와 공개 키(pKey)를 출력.
Enctypt(pKey, m) → c : 공개 키와 입력 텍스트(m)를 이용하여 암호문(c)을 출력.
Dectypt(sKey, c) → m : 비밀 키와 암호문을 입력하여 복호화된 텍스트(m)를 출력.
Evaluate(pKey, f, c) → cf : 회로(f)의 입력으로 암호문의 벡터에 대해서 f의 출력에 대한 암호문의 벡터를 출력.
동형 암호화는 정보 검색과 같은 간단한 쿼리에서 복잡한 기계 학습 알고리즘에 이르기까지 다양한 응용 프로그램을 가지고 있다. 기능 파라미터(τ)는 스킴을 이용한 연산에서 회로의 깊이 경계를 결정한다.
동형 암호를 실현하는데 사용되는 암호화 시스템은 수년 동안 개발 중이며, 초기 체계는 더하기 또는 곱하기만 지원하며, 이러한 동형 암호를 부분적인 동형 암호화라고 지칭한다.
최근에는 덧셈과 곱셈을 모두 지원하며, 암호화 프로세스 중에 암호문에 노이즈가 추가된다. 특히 곱셈은 덧셈 연산보다 더 많은 노이즈를 증가시킨다. 노이즈가 임계 값을 초과하면 암호문은 더 이상 복호화할 수 없는 상태가 된다. 이와 같이 노이즈의 증가에 따라 일정 횟수의 작업 수만 가능한 체계를 SHE(Some homomorphic encryption)라 한다. SHE 방식 중 일정 수준까지의 깊이로 연산을 정확하게 수행할 수 있는 방식을 LHE(Leveled Homomorphic Encryption)이라 한다. 반대로, 완전 동형 암호화(FHE) 체계는 임의 곱셈 깊이를 갖는 모든 함수를 처리할 수 있다.
한편, 동형 암호를 사용할 때, 고려해야 하는 사항은 비다항식 함수를 사용하는 것이다. 지수 함수와 같은 비다항식 함수는 덧셈 및 곱셈 등으로만 구성되는 다항 함수로 근사해야 하며, 높은 정밀도를 보장하려면 고차 다항식 연산이 필요로 한다.
최근에는 고차 다항식을 근사하기 위하여 반복적인 방법을 사용하나, 이러한 반복적인 방법은 곱셈 깊이를 증가시킨다. 한편, 행렬 반전 연산은 여러 행렬 곱셈이 필요하고, 수치 안전성을 위해 Schulz 알고리즘 등과 같은 알려진 알고리즘을 사용하여 근사화할 수 있지만 많은 근사화에 많은 리소스가 요구된다.
상술한 바와 같이 개인 정보를 보호된 상태에서 기계 학습을 수행하기 위해서는 동형 암호 스킴을 이용하여야 하나, 기존의 기계 학습은 동형 암호에서의 곱셈 깊이를 증가시키는 행렬 곱셈이 많이 요구된다는 점에서, 기존의 기계 학습에 사용하는 알고리즘을 그대로 동형 암호화 방식으로 처리하기에는 많은 리소스가 요구되는 문제가 있다.
이하에서는 상술한 바와 같은 문제점을 해결하기 위한 본 개시에 따른 동형 암호를 이용하여 회귀 분석 방법에 대해서 설명한다.
한편, 암호문 간에 연산을 위해서는, 각 암호문에 대한 평문 슬롯의 수는 동일해야 한다. 즉, 데이터의 수는 데이터 소유자별로 다를 수 있음으로, 사용자 단말장치(100)는 미리 일반 텍스트 슬롯의 크기를 결정해야 할 필요가 있다. 즉, 사용자 단말장치(100)가 보유한 데이터 포인트의 수가 r이고, 일반 텍스트 슬롯의 크기가 N인 경우, 데이터 소유자는 각 열을 [r/N]조각으로 분할하고, 마지막 조각을 0으로 채울 필요가 있다. 여기서 길이는 N이다.
이와 같은 설정은 사용자 단말 장치(100)가 여러 데이터를 소유하는 것과 다르지 않다. 따라서, 이하에서는 도 1의 제2 서버(300)가 모든 데이터를 소유한다는 가정하에 회귀 분석 방법을 설명한다.
선형 모델(linear model)은 입력 특성에 대한 선형 함수를 만들어 예측을 수행하는 방법이다. 이러한 선형의 예측(accuracy)을 높이기 위하여 여러 정규화 방법이 사용될 수 있다. 본 개시에서는 여러 정규화 방식 중 리지 회귀(도는 능형 회귀, ridge regression)를 이용하여 설명하나, 본 개시는 상술한 리지 회귀 방식뿐만 아니라 다른 회귀 방식에도 적용될 수 있다.
이하에서는 먼저, 사적 변수가 하나 있는 경우를 설명한다. 예를 들어, 하나의 종속 변수(Y)와 p개의 독립적인 비 사적 변수(X1, X2, …, Xp), 하나의 사적 변수(Xn)를 사용하는 경우, 해당 선형 모델은 다음과 같은 수학식 1과 같이 표현될 수 있다.
[수학식 1]
Figure pat00001
여기서, Y는 종속 변수(dependent variable), X1, X2, …, Xp 각각은 p개의 독립적인 비 사적 변수, Xs 은 사적 변수이고,
Figure pat00002
는 추정할 회귀 계수이며, ε는 에러 항이다. 그리고, X1, X2, …, Xp, Xs, Y에 대한 i번째 관측 값은 (xi1, …, xip, xis yi)(여기서, I = 1, …, n)로 표시한다. n > p+1 임을 가정하며, 이는 독립 변수의 수보다 더 많은 관측 값이 있다는 가정이다.
상술한 바와 같은 하나의 사적 변수와 복수의 비사적 변수가 있는 경우, 사적 변수에 대해서 동형 암호가 적용된다면, 사용자 단말장치(100)에서 제2 서버(300)로 전송될 데이터는 (xi1, …, xip, h(xis) yi) 이다.
이하에서는 이러한 데이터에 동형 암호가 적용되는 경우를 설명한다. hi = h(xis)가 사적 변수 xis에 대한 완전 동형 암호이다. 이하에서는 편의상 일반 텍스트와 암호문 사이의 연산 또는 암호문 간의 연산 등을 모두 평문으로 표시한다.
이와 같은 경우에 있어서,
Figure pat00003
를 사용하여 각 xij
Figure pat00004
로 교체하고,
Figure pat00005
Figure pat00006
을 추정하며, 다음의 수학식 2와 같이 인터셉트가 없는 회귀 모델을 나타낼 수 있다.
[수학식 2]
Figure pat00007
여기서, X는 사적 변수 및 비사적 변수를 갖는 행렬(데이터 세트에 대응되는 행렬 이라고 지칭될 수 있음), β는 회귀 계수, ε는 에러항이다.
오버 피팅(overfitting)을 제어하기 위하여, 정규화 항을 에러 함수에 추가하면, 총 에러 함수는 다음의 수학식 3과 같이 최소화될 수 있다.
[수학식 3]
Figure pat00008
여기서, ε(β)는 총 에러항, εD(β)는 정규화 항에 대한 에러이고, εW(β) 는 규제를 위한 에러항이다.
이에 따른 리지 회귀의 해는 다음의 수학식 4와 같다.
[수학식 4]
Figure pat00009
여기서,
Figure pat00010
은 리지 회귀의 해이고, Ip+1은 (p+1) * (p+1)에 대한 항등 행렬(identity matrix)이다. 인터셉트 β0는 변수의 중심화 ‹š문에 정규화되지 않는다. 따라서, 리지 추정 값은 다음과 같은 수학식 5와 같이 나타낼 수 있다.
[수학식 5]
Figure pat00011
여기서,
Figure pat00012
은 리지 추정 값이고, XXT 는 n×n 행렬이다. 수학식 5의 뒷부분은
Figure pat00013
와 같다. 그 이유는 수학식 6과 같다. 따라서,
Figure pat00014
이다.
[수학식 6]
Figure pat00015
여기서 hs 는 (h(x1s), …, h(xns))τ이고, X(-s)는 X의 다른 파트이고, Sherman-Woobury inversion formula를 사용하면, 수학식 7과 같다.
[수학식 7]
Figure pat00016
여기서,
Figure pat00017
이다.
Figure pat00018
(여기서,
Figure pat00019
,
Figure pat00020
는 직교 매트릭스이고,
Figure pat00021
는 대각 성분(σ1 ≥…≥ σp)을 갖는 대각 행렬이다. 단일 벡터 분해(singular vector decomposition, SVD)를 사용하면, 수학식 8과 같이 나타낼 수 있다.
[수학식 8]
Figure pat00022
여기서, σp+1 = … = σn = 0, 다음과 같은 항으로 정의된다.
[수학식 9]
Figure pat00023
따라서, 리지 추정은 다음과 같은 수학식 10과 같다.
[수학식 10]
Figure pat00024
여기서, uj
Figure pat00025
의 칼럼이고,
Figure pat00026
이다.
상술한 계산에서는, n개의 합산이 포함된다. 계산을 단순화하기 위하여,
Figure pat00027
(여기서,
Figure pat00028
,
Figure pat00029
)사실을 사용한다.
SVD를 줄이기 위하여,
Figure pat00030
를 만족하는 범위 내에서 u2를 선택할 수 있다. 그리고 up+1를 uj가 hs에 직교하도록 선택하고, 모든 j=p+2, …, n에 대해서 hs에 직교하는 up+1를 선택할 수 있다. 여기서, U1은 수학식 11과 같다.
[수학식 11]
Figure pat00031
따라서, η, ξ 다음과 같이 단순화할 수 있다.
[수학식 12]
Figure pat00032
따라서, 리지 추정 값은 다음과 같이 단순화하여 표현될 수 있다.
[수학식 13]
Figure pat00033
여기서는 단지 p개의 합산만을 포함한다.
회귀 분석에 사용되는 모든 데이터가 동형 암호화되어 있는 경우에는 상술한 바와 같이 선형 모델의 추정 값의 산출에 필요한 다항식을 분해하기 어려운 점이 있다. 그러나 본 개시에서는 사적 보호가 필요한 항목만 동형 암호화 처리가 되어 있으며, 사적 보호가 필요하지 않은 일반 변수는 일반적인 행렬 연산 등으로 빠르게 처리 가능하다는 점에서, 상술한 바와 같이 선형 모델의 추정 값의 산출에 필요한 다항식 중 동형 암호화된 메시지를 이용하는 항만을 따로 추출하고, 해당 항에 대해서만 동형 연산을 수행함으로써 동형 연산의 횟수를 최소화할 수 있다.
또한, 동형 연산 과정에서의 계산 복잡도를 낮추기 위하여, 데이터 세트를 구성하는 행렬을 동형 암호문을 포함하는 제1 행렬과, 동형 암호문을 포함하지 않는 제2 행렬로 분해하고, 제2 행렬은 제1 행렬에 직교하도록 함으로써, 상술한 동형 연산 과정에서의 동형 연산을 보다 빠르게 처리하는 것이 가능하다.
한편, 이상에서는 상술한 데이터 세트에 하나의 사적 변수만이 포함되는 것으로 설명하였지만, 데이터 세트는 복수의 사적 변수를 포함할 수 있다. 예를 들어, 성별과 인종이 동일한 데이터 세트에 포함된 경우, 둘 다 사적 변수로 처리해야 할 필요가 있다. 이하에서는 앞선 하나의 사적 변수가 있는 경우를 2개의 사적 변수가 있는 것으로 확장하여 설명한다.
2개의 사적 변수가 있는 경우는 다음과 같은 수학식 14로 표현될 수 있다.
[수학식 14]
Figure pat00034
여기서,
Figure pat00035
,
Figure pat00036
이고, 각각은 암호화된 사적 변수이다.
앞선 방식과 동일하게 리지 회귀의 추정값은 다음과 같은 수학식 15와 같이 나타낼 수 있다.
[수학식 15]
Figure pat00037
여기서, 중간 값은 다음과 같은 수학식 16과 같이 정의될 수 있다.
[수학식 16]
Figure pat00038
앞선 결과를 확장하면,
Figure pat00039
로서 U2를 자유롭게 먼저 선택하고, 직교 처리가 수행되고, h가 먼저 처리되고, 나중에 g가 적용될수 있다.
Figure pat00040
상술한 과정에서의 각 항목은 다음과 같다.
Figure pat00041
따라서, 앞선 하나의 사적 변수에서의 수학식 12를 참조하면,
Figure pat00042
각각은 다음과 같은 수학식 17과 같이 단순화하여 표현할 수 있다.
[수학식 17]
Figure pat00043
그러나,
Figure pat00044
계산은 up+1를 사용하여 계산되는 up+2를 포함하기 때문에 더 복잡해 보인다. 그러나,
Figure pat00045
는 up+2를사용하지 않는 방식으로 단순화하여 표현될 수 있다. 이를 위하여, 일반성을 잃지 않고, 직교 처리 g를 먼저 적용하고, h를 나중에 처리하는 다음과 같은 방식을 이용할 수 있다.
Figure pat00046
[수학식 18]
Figure pat00047
따라서,
Figure pat00048
는 다음과 같은 수학식 19와 같이 단순화될 수 있다.
[수학식 19]
Figure pat00049
따라서, 리지 추정은 다음과 같은 수학식 20과 같이 단순히 표기될 수 있다.
[수학식 20]
Figure pat00050
이와 같이 2개의 사적 변수를 갖는 경우에도 복수의 연산만으로 그 해를 산출하는 것이 가능하다. 이상에서는 사적 변수가 1개 있는 경우와 2개가 있는 경우만을 설명하였지만, 3개 이상의 사적 변수가 있는 경우에 대해서도 동일한 방식을 적용하여 구현할 수 있다.
이하, 도 3 및 도 4를 참조하여 프로세서(450)의 구성을 설명한다.
도 3은 실시예에 따른 프로세서의 구성을 나타내는 블록도이다.
도 3을 참조하면, 프로세서(450)는 상술한 사적 변수의 암호화 상태를 유지하면서 머신 러닝의 학습을 수행하기 위해 전처리 과정을 추가로 수행할 수 있는 클래스 분류 모듈(451) 및 가중치 설정 모듈(452)을 포함한다.
클래스 분류 모듈(451)은, 입력된 메시지(동형 암호가 포함된 데이터셋)에 대한 클래스 분류를 수행한다. 구체적으로, 클래스 분류 모듈(451)은 입력된 데이터의 로짓(logit)을 추출할 수 있는 분류 모델을 이용하여 입력된 데이터셋의 로짓을 추출한다. 이 때, 추출된 로짓값은 입력 데이터가 암호 클래스와 암호화되지 않은 클래스 중 어느 하나로 분류될 확률 값에 대응한다.
따라서, 클래스 분류 모듈(451)은 동형 암호가 포함된 데이터셋의 로짓을 추출하여 제1 분류값을 도출한다. 제1 분류값은 로짓값으로서 입력된 메시지(데이터셋)에 포함된 데이터가 암호 클래스 또는 암호화되지 않은 클래스 중 어느 하나로 분류될 확률값에 대응한다.
또한, 클래스 분류 모듈(451)은 로짓을 추출하는 분류 모델은 로지스틱 회귀 학습과 같이 입력 데이터의 로짓을 추출(inference)하거나 클래스 분류를 수행하기 위한 모든 학습 모델을 포함하며, 분류 모델의 학습을 위해 동형 암호가 포함되지 않은 데이터를 이용하여 분류 모델의 반복 학습을 수행할 수 있다.
가중치 설정 모듈(452)은 제1 분류값의 제1 분포 평균값을 도출한다. 또한, 제1 분포 평균값에 가중치를 더하여 제2 분포 평균값을 도출한다. 도출된 제2 분포 평균 값과 제2 분포 평균 값에 대응되는 제2 분류값을 이용하여 동형 암호 데이터의 연산을 수행한다.
가중치 설정 모듈(452)은 제1 분포 평균값의 가중치를 도출하기 위해, 평균 맞춤을 수행하여 가중치를 도출한다. 구체적으로, 가중치를 설정하기 위해 동형 암호가 포함되지 않은 데이터의 데이터셋을 클래스 분류 모듈(451)에 입력하여 제3 분류값을 도출한다. 그리고, 도출된 제3 분류 값의 분포 평균값인 제3 분포 평균값을 도출한다.
가중치 설정 모듈(452)은 제1 분포 평균값과 제3 분포 평균값의 평균 맞춤을 수행하여 가중치를 도출한다. 동형 암호가 포함된 데이터의 분포(제1 분포 평균값)과 동형 암호가 포함되지 않은 데이터의 분포(제3 분포 평균값)의 분포는 서로 다를 수 있기 때문이다.
예를 들어, 자신의 사적인 정보를 제공하려는 사람과 제공하지 않으려는 사람의 성향은 매우 다를 수 있다. 따라서, 이러한 두 집단의 차이는 로짓의 분포가 다르게 나타날 수 있다는 것을 의미한다. 그러므로, 로짓의 분포를 맞추기 위해 두 집단 간의 로짓들의 가중 평균을 같게 하는 평균 맞춤을 사용한다. 이 때, 실제 클래스 변수의 분포를 고려하기 위하여 클래스 변수(분류값)의 분포 평균의 역수를 가중치로 사용한다. 따라서, 가중치는 아래의 수학식 21을 만족해야 한다.
[수학식 21]
Figure pat00051
여기서, 클래스 분류 모델을 fs, 동형 암호가 포함되지 않은 데이터와 클래스 변수를
Figure pat00052
, 동형 암호화된 데이터와 클래스 변수를
Figure pat00053
라 하면, 평균 맞춤을 위해 암호화된 로짓인 제1 분류값에 더해주어야 할 가중치는 β이다. 또한, n1은 암호화 되지 않은 데이터의 개수, n2는 암호화된 데이터의 개수를 의미한다. 따라서, 변환된 로짓은 아래의 수학식 22로 표현된다.
[수학식 22]
Figure pat00054
여기서
Figure pat00055
는 변환된 로짓값을 의미한다.
따라서, 제1 로짓값에 가중치가 더해짐으로서, 제1 분포 평균값의 평균 맞춤이 수행된다. 이러한 평균 맞춤으로 인한 분포 평균의 이동은 도 4를 참조하여 설명한다.
도 4는 실시예에 따른 평균 맞춤을 설명하기 위한 예시 그래프이다.
도 4를 참조하면, l1은 동형 암호가 포함되지 않은 데이터셋에 로지스틱 회귀를 학습하여 도출한 로짓의 분포 값인 제3 로짓값의 분포를 나타낸다.
Figure pat00056
는 동형 암호가 포함된 데이터셋에 로지스틱 회귀 학습을 수행하여 도출한 로짓의 분포 값인 제1 로짓값의 분포를 나타낸다.
그러나, 동형 암호가 포함되지 않은 데이터를 이용하여 학습된 분류 모델이 동형 암호가 포함된 데이터의 로짓을 도출하는 경우, l2와 같이 동형 암호가 포함되지 않은 데이터셋의 분포 쪽으로 편향된 분포 결과가 나타난다.
따라서, 상술한 수학식 21 및 수학식 22를 이용하여 평균 맞춤을 수행하는 경우, l2
Figure pat00057
Figure pat00058
와 같이 편향된 분포 결과가 와 같이 의 분포에 가깝게 변환된다. 즉, 동형 암호가 포함되지 않은 데이터를 이용하여 학습을 수행함으로써, 동형 암호가 포함된 데이터의 로짓 분포의 편향이 발생한다. 그리고, 제1 분포 평균값과 제3 분포 평균값의 평균 맞춤을 이용한 가중치 설정에 따라 편향된 분포를 보정할 수 있다.
프로세서(450)는, 가중치 설정에 따라 보정된 로짓값인 제2 분포값 및 제2 분포 평균값을 이용하여 상술한 바와 같이 입력 메시지(데이터)의 사적 변수가 암호화된 상태에서의 연산 또는 리지 회귀 학습을 수행할 수 있다.
이하에서는, 구체적인 데이터셋의 예시를 이용하여 상술한 클래스 분류 모듈(451) 및 가중치 설정 모듈(452)의 동작을 설명한다.
암호가 포함되지 않은 데이터의 데이터셋을
Figure pat00059
, 암호가 포함된 데이터셋을
Figure pat00060
로 설정한다. 이 때, 전체 p+l개 변수 중 l개의 변수가 암호화된 것으로 가정한다. 즉, 암호화를 []로 표현할 때,
Figure pat00061
의 한 개의 샘플은 다음의 수학식 23과 같이 표현된다.
[수학식 23]
Figure pat00062
=
Figure pat00063
클래스 분류 모듈(451)에 포함된 분류 모델을
Figure pat00064
로 설정하는 경우,
Figure pat00065
는 로짓값으로 도출되며, 로짓으로부터 각 클래스에 속할 확률을 도출할 수 있다.
따라서, 클래스 분류 모듈(451)은
Figure pat00066
Figure pat00067
를 적용하여 제1 분류값인
Figure pat00068
를 도출한다. 클래스 분류 모듈이 로지스틱 회귀를 이용하여 로짓값을 도출하는 경우, 로짓값은 학습된 제2 가중치와 각
Figure pat00069
에 대한 내적으로 나타난다. 따라서, 암호화된 데이터에 대해서 쉽게 로짓값을 도출할 수 있다. 또한, 클래스 분류 모듈(451)은 D1에 대하여
Figure pat00070
를 적용하여 제3 분류값을 도출한다.
가중치 설정 모듈(452)은 도출된 제1 분류값(
Figure pat00071
)의 분포 l2 를 도출하고, 제3 분류값의 분포 l1을 도출한다. 그리고, 상술한 수학식 21 및 22을 이용하여 l1과 l2의 평균 맞춤을 수행한다. 따라서, 평균 맞춤에 따라 l2의 보정을 위한 가중치(β)를 설정되어, 보정된 로짓은
Figure pat00072
로 나타난다.
보정된 로짓인
Figure pat00073
은 제3 분포 또는 제3 분류값에 대응될 수 있다. 프로세서(450)는
Figure pat00074
에 대하여 연산 또는 리지 회귀 학습을 수행한다. 따라서, 프로세서(450)는 입력 메시지(데이터)의 사적 변수가 암호화된 상태에서 머신 러닝을 수행할 수 있도록 한다.
이하, 도 5를 참조하여 상술한 리지 추정을 HEAAN 스킴에 적용한 경우를 설명한다.
도 5는 실시예에 따른 동형 암호문에 대한 기본 동작을 설명하기 위한 도면이다.
HEAAN 스킴의 주요한 기능은 암호화 이전에 일반 텍스트 벡터를 링(또는 환)으로 인코딩하는 특유의 동작이 있다. 구체적으로, 메시지를 링에 속하는 벡터로 인코딩하고, 인코딩된 메시지를 공개키를 이용하여 동형 암호문으로 변환할 수 있다. 반대로, 복호 과정에서는 암호문을 벡터로 변환하는 디코딩 절차를 수행하고, 변환된 벡터를 비밀 키로 복호화하여 메시지로 복원할 수 있다.
이와 같이 인코딩을 통해 HEAAN 스킴은 복잡한 벡터에 대한 암호화를 지원하고, SMID 작업도 가능하다.
디코딩은 인코딩의 역 동작과 동일하며, 복호화 동작 이후에 수행된다.
도 6은 실시예에 따른 동형 암호문에 대한 처리 함수의 예를 설명하기 위한 도면이다.
도 6을 참조하면, HEAAN 스킴에서의 정수 덧셈, 덧셈, 정수 곱셈 및 곱셈 연산에 대한 연산 동작을 도시한다. 이러한 기본 연산을 조합하여 특정 함수에 대한 연산을 수행할 수 있다.
도시된 예에서, Add와 Mult는 암호문 사이의 덧셈과 곱셈을 나타내는 반면, ConstaAdd와 ConsMult는 암호문과 상수 다항식 간의 연산을 나타낸다. HEAAN 스킴뿐만 아니라, 병렬 연산을 지원하는 방식에서 이러한 연산은 슬롯 방식으로 수행되므로, 일반 텍스트 슬롯 수만큼의 연산을 한번에 수행할 수 있다.
한편, HEAAN 스킴에서는 상술한 연산뿐만 아니라, left Rotate, Right Rotate, Rescale 처리도 가능하다. 여기서 left Rotate는 각각 슬롯 방향의 왼쪽으로 회전을 적용하는 것이고, Right Rotate는 각각 슬롯 방향의 오른쪽으로 회전을 적용하는 것이다.
이러한 방식은 암호문에 동일한 값을 추가할 때 유용하며, 효율적인 병렬 작업을 가능케 한다. Rescale은 오류의 크기를 줄이기 위하여, 모든 ConstMult 또는 Mult 후에 수행될 수 있다. 다만, Rescale은 암호문 모듈러스를 감소시키므로 부트 스트랩트 없이는 그 작업 횟수가 제한될 수 있다.
한편, 상술한 리지 회귀에서는 변수의 수만큼 많은 합산 연산이 필요로 하기 때문에, 각 사적 변수를 암호문에 넣고, 각 열의 모든 값을 하나의 암호문으로 그룹화할 수 있다. 여기서 하나의 암호문으로 압축할 수 있는 일반 텍스트의 최대 수는 동형 암호문의 보안 파라미터에 의해 결정된다. 이하에서는 열의 길이가 보안 파라미너틔 값을 초과하지 않는다고 가정한다. 열의 길이가 보안 파라미터의 값을 초과하는 경우, 각 열을 여러 개의 암호문으로 분해해야 하지만, 암호문이 여러 개로 분해된다고 하더라도, 이는 상술한 리지 회귀 알고리즘의 복잡성에 큰 영향을 주지 않는다. 한편, 암호문에 η, ξ 과 같은 스칼라 값을 포함할 수 있는데, 이는 동일한 값을 슬롯수만큼 반복하는 벡터로 취급할 수 있다.
한편, 동형 암호문에 대해서는 패킹이 적용된다. 동형 암호화에 패킹을 이용하게 되면, 다수의 메시지를 하나의 암호문으로 암호화하는 것이 가능해진다. 이 경우, 연산 장치는 각 암호문 간의 연산을 수행하게 되면, 결과적으로 다수의 메시지에 대한 연산이 병렬적으로 처리되므로 연산 부담이 많이 줄어들게 된다. 도 9에 도시된 바와 같이 패킹된 두 개의 암호문에 대한 덧셈 또는 곱셈 동작을 통하여 복수의 메시지에 대한 덧셈 또는 곱셈 동작을 수행할 수 있다.
도 7은 실시예에 따른 리지 회귀를 위한 중간 값 산출 알고리즘을 설명하기 위한 도면이다. 구체적으로, 도 7은 하나의 사적 변수만을 포함하는 경우의 리지 회귀의 추정을 위한 중간 값을 산출하는 방법이다.
도 7을 참조하면, 상술할 수학식 15 또는 수학식 20에 포함된 중간 값을 HEAAN 스킴에서 지원하는 ConstMult, Mult, IRotate, ADD 등을 이용하여 산출할 수 있다.
도 8은 실시예에 따른 리지 추정 값의 산출 동작을 설명하기 위한 도면이다.
도 8을 참조하면, 도 7에서 산출된 중간 값을 사용하여, 최종 리지 회귀 추정 값을 산출한다. 편의를 위하여, 곱셈 동작 이후에 리스케일 동작은 생략되어 있다. 동형 회전을 사용하면, 암호문 내의 n개 요소에 대한 합을 log n번에 계산이 가능하다. 따라서, 도 7에 도시된 알고리즘의 복잡성은 o(p log n)이다.
도 10은 실시예에 따른 리지 회귀 동작의 성능을 설명하기 위한 도면이다. 구체적으로, 도 10의 각 점은 하나의 데이터셋에 대한 결과를 나타내며, x축과 y축은 각각 열 수와 성능 비율을 나타낸다.
도 10을 참조하면, 열 수와 성능 비율 사이에 선형 관계가 있음을 알 수 있다. 그리고 데이터셋의 열 개수가 적을 때, 본 개시에 따른 방법을 이용하면 보다 효율적으로 수행할 수 있음을 확인할 수 있다. 반대로, 데이터셋의 열 개수가 많아져 효율적이지 않다고 해석될 수 있으나, 실시예에 따른 방법은 경사 하강법을 사용하지 않기 때문에, 학습률을 검색할 필요가 없다는 점에서, 기존 방식과 비교해서는 빠른 연산이 가능하다.
이하, 도 11을 참조하여 실시예에 따른 암호 데이터 처리 방법을 설명한다.
도 11은 실시예에 따른 암호 데이터 처리 방법의 흐름도이다.
도 11을 참조하면, 프로세서(450)는 입력 데이터가 암호 클래스와 암호화되지 않은 클래스 중 어느 하나로 분류될 확률 값을 도출하는 클래스 분류 모델을 학습한다(S100). 이 때, 프로세서(450)는 암호가 포함되지 않은 데이터 세트를 이용하여 클래스 분류 모델을 학습한다.
또한, 프로세서(450)는 입력 메시지(데이터) 또는 동형 암호가 포함된 데이터 세트의 클래스 분류 값인 제1 분류값을 도출한다(S200). 구체적으로, 클래스 분류 모듈(451)은 입력된 데이터의 로짓(logit)을 추출할 수 있는 분류 모델을 이용하여 입력된 데이터셋의 로짓을 추출한다. 이 때, 추출된 로짓값은 입력 데이터가 암호 클래스와 암호화되지 않은 클래스 중 어느 하나로 분류될 확률 값에 대응한다.
분류 모델은 동형 암호가 포함되지 않은 데이터 세트를 이용하여 학습이 수행된다. 따라서, 암호가 포함된 데이터가 입력되는 경우 분포의 편향이 발생한다. 이러한 분포의 편향을 보정하기 위해, 프로세서(450)는 제1 분류값의 가중치를 설정한다(S300).
가중치를 설정하기 위해, 가중치 설정 모듈(452)은 제1 분류값의 제1 분포 평균값을 도출한다. 또한, 제1 분포 평균값에 가중치를 더하여 제2 분포 평균값을 도출한다. 도출된 제2 분포 평균 값과 제2 분포 평균 값에 대응되는 제2 분류값을 이용하여 동형 암호 데이터의 연산을 수행한다.
구체적으로, 프로세서(450)는 동형 암호가 포함되지 않은 데이터의 데이터 세트를 클래스 분류 모듈(451)에 입력하여 제3 분류값을 도출한다. 그리고, 도출된 제3 분류 값의 분포 평균값인 제3 분포 평균값을 도출한다. 가중치 설정 모듈(452)은 상술한 수학식 21 및 22를 이용하여 제1 분포 평균값과 제3 분포 평균값의 평균 맞춤을 수행하여 가중치를 도출한다.
이에 따라, 프로세서(450)는 제1 분류값에 가중치가 보정된 제2 분류값을 도출한다(S400). 그리고, 도출된 제2 분류값 및 제2 분포값을 이용하여 입력 데이터의 연산 및 학습을 수행한다(S500). 이 때, 입력 데이터(동형 암호 데이터)의 연산 및 학습은 후술하는 도 12를 참조하여 상세히 설명한다.
도 12는 실시예에 따른 입력 데이터(동형 암호 데이터)의 연산 처리 방법을 설명하기 위한 흐름도이다.
도 12는 실시예에 따른 암호 데이터의 연산 및 학습 방법의 흐름도이다.
먼저, 동형 암호화된 메시지(암호화된 데이터) 및 동형 암호화되지 않은 메시지(암호화 되지 않은 데이터)를 슬롯으로 포함하는 데이터 세트를 수신하여 저장한다(S510). 이와 같은 데이터 세트는 앞서 설명한 바와 같이 마스킹 처리되어 있을 수 있으며, 데이터 세트 내에서는 하나의 사적 변수만을 포함할 수 있으며, 복수의 사적 변수가 포함되어 있을 수 있다. 그리고 포함된 사적 변수는 동형 암호화되어 있는바, 해당 데이터 세트를 수신하는 장치에서는 개인 정보가 보호될 수 있다.
데이터 세트 내의 동형 암호화된 메시지와 동형 암호화되지 않은 메시지를 기저장된 선형 모델에 적용하여 상기 선형 모델에 대한 추정 값을 산출한다. 구체적으로, 선형 모델의 추정 값의 산출에 필요한 다항식 중 동형 암호화된 메시지를 이용하는 항(term)을 추출하고, 추출된 항에 대한 동형 연산을 수행하여 상기 추정 값을 산출할 수 있다. 이와 같이 데이터 세트 내에 모든 변수가 동형 암호화되어 있지 않고, 개인 보호가 필요한 사적 변수에 대해서만 동형 암호가 되어 있기 때문에, 선형 모델의 추정 값의 산출에 필요한 다항식 중 동형 암호화된 메시지를 이용하는 항과 그렇지 않은 항을 구분하는 것이 가능하며, 동형 암호화된 메시지를 이용하는 항에 대해서만 동형 연산 방식을 수행하여 연산 처리할 수 있다.
또한, 동형 연산 과정에서 보다 빠른 연산을 위하여, 데이터 세트에 대응되는 행렬을 동형 암호화된 메시지를 포함하는 제1 행렬과 그렇지 않은 제2 행렬로 분해하고, 제2 행렬을 제1 행렬에 직교하도록 하는 처리할 수 있다(S520). 연산 과정에서 선형 모델에 대한 추정 값 산출을 보다 빠르게 수행할 수 있다(S530).
상술한 바와 같은 연산을 완료하여, 연산 결과를 다른 장치에 전송하는 과정을 수행하거나, 해당 연산 결과를 비밀 키로 복호화할 수도 있다.
이상과 같이 본 개시에 따른 암호문 처리 방법은 개인 보호가 필요한 사적 변수와 그렇지 않은 변수를 구분하여 동형 암호화 처리하여 연산을 처리하는바, 더욱 빠른 연산을 수행할 수 있다. 또한, 학습 과정에서 경사 하강법을 사용하지 않음으로써, 보다 정확한 해를 효율적으로 얻을 수 있을 뿐만 아니라, 경사 하강법의 성능 최적화에 필요한 학습률 검색을 생략할 수 있는바, 보다 빠른 머신 러닝 학습이 가능한 효과가 있다.
한편, 상술한 다양한 실시 예에 따른 암호문 처리 방법은 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 암호화 또는 암호문 처리 등의 동작들을 수행할 수 있다.
이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다.
이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1000: 네트워크 시스템
100: 사용자 단말장치
200: 제1 서버
300: 제2 서버
400: 연산 장치
410: 통신 장치
420: 메모리
430: 디스플레이
440: 조작 입력 장치
450: 프로세서

Claims (18)

  1. 동형 암호 데이터 처리 방법에 있어서,
    데이터가 동형 암호 데이터인지 여부를 판별하는 클래스 분류 모듈에, 동형 암호가 포함된 데이터의 데이터셋을 입력하여 상기 동형 암호가 포함된 데이터셋의 클래스 분류값인, 제1 분류값을 도출하는 단계,
    상기 제1 분류값의 제1 분포 평균값을 도출하고, 상기 제1 분포 평균값에 가중치를 더하여 제2 분포 평균값을 도출하는 단계,
    상기 제2 분포 평균값을 이용하여 제2 분류값을 도출하는 단계, 그리고
    상기 제2 분류값 및 상기 제2 분포 평균값을 이용하여 동형 암호가 포함된 데이터의 연산을 수행하는 단계
    를 포함하는, 동형 암호 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 제1 분류값을 도출하는 단계는,
    상기 동형 암호가 포함된 데이터셋의 제1 로짓(logit)을 추출하는 단계, 그리고
    상기 제1 로짓으로부터 상기 동형 암호가 포함된 데이터셋의 데이터가, 암호화된 데이터 클래스 또는 암호화되지 않은 데이터 클래스 중 어느 하나로 분류될 확률에 대응하는 값을 상기 제1 분류값으로 설정하는 단계,
    를 포함하는, 동형 암호 데이터 처리 방법.
  3. 제2항에 있어서,
    상기 제2 분포 평균값을 도출하는 단계는,
    상기 클래스 분류 모듈에 동형 암호가 포함되지 않은 데이터의 데이터셋을 입력하여 상기 동형 암호가 포함되지 않은 데이터셋의 클래스 분류값인 제3 분류값을 도출하는 단계,
    상기 제3 분류값의 분포 평균값인 제3 분포 평균값을 도출하는 단계, 그리고
    상기 제1 분포 평균값과 상기 제3 분포 평균값의 평균 맞춤을 수행하여 상기 제1 분포 평균값과 상기 제3 분포 평균값이 같아지도록 상기 가중치를 설정하는 단계,
    를 포함하는, 동형 암호 데이터 처리 방법.
  4. 제3항에 있어서,
    상기 제1 분류값을 도출하는 단계는,
    상기 동형 암호가 포함되지 않은 데이터셋을 이용하여 상기 클래스 분류 모듈의 학습을 수행하는 단계
    를 포함하는, 동형 암호 데이터 처리 방법.
  5. 제4항에 있어서,
    상기 동형 암호가 포함된 데이터의 연산을 수행하는 단계는,
    상기 동형 암호가 포함된 데이터 및 상기 동형 암호가 포함되지 않은 데이터를 슬롯으로 포함하는 제1 데이터셋을 저장하는 단계,
    상기 제1 데이터셋 내의 동형 암호화된 데이터와 동형 암호화되지 않은 데이터를 기저장된 선형 모델에 적용하여 상기 선형 모델에 대한 추정값을 산출하는 단계, 그리고
    상기 산출된 추정 값을 외부 장치에 전송하는 단계
    를 포함하는, 동형 암호 데이터 처리 방법.
  6. 제5항에 있어서,
    상기 추정값을 산출하는 단계는,
    상기 선형 모델의 추정값의 산출에 필요한 다항식 중 상기 동형 암호화된 데이터를 이용하는 항(term)을 추출하고, 상기 추출된 항에 대한 동형 연산을 수행하여 상기 추정값을 산출하는 단계
    를 포함하는, 동형 암호 데이터 처리 방법.
  7. 제6항에 있어서,
    상기 추정값을 산출하는 단계는,
    상기 제1 데이터셋에 대응되는 행렬을 생성하는 단계,
    상기 행렬에 대해서 상기 동형 암호화된 데이터를 포함하는 제1 행렬과 상기 동형 암호화된 데이터를 포함하지 않는 제2 행렬로 분해하는 단계,
    상기 제2 행렬이 상기 제1 행렬에 직교하도록 하는 단계,
    상기 제1 행렬과 상기 제2 행렬을 이용하여 상기 선형 모델에 대한 추정값을 산출하는 단계
    를 더 포함하는, 동형 암호 데이터 처리 방법.
  8. 제7항에 있어서,
    상기 제1 데이터셋은,
    각각 동형 암호화된 서로 다른 복수의 변수를 포함하는, 동형 암호 데이터 처리 방법.
  9. 제8항에 있어서,
    상기 선형 모델은,
    리지 회귀(ridge regression) 선형 모델인, 동형 암호 데이터 처리 방법.
  10. 동형 암호 데이터 연상 장치에 있어서,
    적어도 하나의 인스트럭션(instruction)을 저장하는 메모리, 그리고
    상기 적어도 하나의 인스트럭션을 실행하는 프로세서
    를 포함하고,
    상기 프로세서는,
    상기 적어도 하나의 인스트럭션을 실행함으로써,
    데이터가 동형 암호 데이터인지 여부를 분류하고, 동형 암호가 포함된 데이터의 데이터셋의 클래스 분류값인, 제1 분류값을 도출하며, 상기 제1 분류값의 제1 분포 평균값을 도출하고, 상기 제1 분포 평균값에 가중치를 더하여 제2 분포 평균값을 도출하고, 상기 제2 분포 평균값을 이용하여 제2 분류값을 도출하고, 상기 제2 분류값 및 상기 제2 분포 평균값을 이용하여 동형 암호가 포함된 데이터의 연산을 수행하는, 동형 암호 데이터 연산 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 동형 암호가 포함된 데이터셋의 제1 로짓(logit)을 추출하고, 상기 제1 로짓으로부터 상기 동형 암호가 포함된 데이터셋의 데이터가, 암호화된 데이터 클래스 또는 암호화되지 않은 데이터 클래스 중 어느 하나로 분류될 확률에 대응하는 값을 상기 제1 분류값으로 설정하는, 동형 암호 데이터 연산 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    클래스 분류 모듈에 동형 암호화되지 않은 데이터의 데이터셋을 입력하여 동형 암호화되지 않은 데이터셋의 클래스 분류값인, 제3 분류값을 도출하고, 상기 제3 분류값의 분포 평균값인 제3 분포 평균값을 도출하며, 상기 제1 분포 평균값과 상기 제3 분포 평균값의 평균 맞춤을 수행하여 상기 제1 분포 평균값과 상기 제3 분포 평균값이 같아지도록 상기 가중치를 설정하는, 동형 암호 데이터 연산 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 동형 암호화되지 않은 데이터셋을 이용하여, 데이터가 동형 암호 데이터인지 여부에 대한 분류 수행 과정의 반복 학습을 수행하는, 동형 암호 데이터 연산 장치.
  14. 제13항에 있어서,
    상기 프로세서는, 상기 동형 암호가 포함된 데이터 및 상기 동형 암호가 포함되지 않은 데이터를 슬롯으로 포함하는 제1 데이터셋을 저장하고, 상기 제1 데이터셋 내의 동형 암호화된 데이터와 동형 암호화되지 않은 데이터를 기저장된 선형 모델에 적용하여 상기 선형 모델에 대한 추정값을 산출하는, 동형 암호 데이터 연산 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 선형 모델의 추정값의 산출에 필요한 다항식 중 상기 동형 암호화된 데이터를 이용하는 항(term)을 추출하고, 상기 추출된 항에 대한 동형 연산을 수행하여 상기 추정값을 산출하는, 동형 암호 데이터 연산 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 제1 데이터셋에 대응되는 행렬을 생성하고, 상기 행렬에 대해서 상기 동형 암호화된 데이터를 포함하는 제1 행렬과 상기 동형 암호화된 데이터를 포함하지 않는 제2 행렬로 분해하고, 상기 제2 행렬이 상기 제1 행렬에 직교하도록 하고, 상기 제1 행렬과 상기 제2 행렬을 이용하여 상기 선형 모델에 대한 추정값을 산출하는, 동형 암호 데이터 연산 장치.
  17. 제16항에 있어서,
    상기 제1 데이터셋은,
    각각 동형 암호화된 서로 다른 복수의 변수를 포함하는, 동형 암호 데이터 연산 장치.
  18. 제17항에 있어서,
    상기 선형 모델은,
    리지 회귀(ridge regression) 선형 모델인, 동형 암호 데이터 연산 장치.
KR1020210111809A 2021-08-24 2021-08-24 동형 암호를 활용한 사적 변수의 보안 방법 및 장치 KR102615381B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210111809A KR102615381B1 (ko) 2021-08-24 2021-08-24 동형 암호를 활용한 사적 변수의 보안 방법 및 장치
US17/853,798 US20230081162A1 (en) 2021-08-24 2022-06-29 Method and apparatus for privacy preserving using homomorphic encryption with private variables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210111809A KR102615381B1 (ko) 2021-08-24 2021-08-24 동형 암호를 활용한 사적 변수의 보안 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20230029388A true KR20230029388A (ko) 2023-03-03
KR102615381B1 KR102615381B1 (ko) 2023-12-19

Family

ID=85479316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210111809A KR102615381B1 (ko) 2021-08-24 2021-08-24 동형 암호를 활용한 사적 변수의 보안 방법 및 장치

Country Status (2)

Country Link
US (1) US20230081162A1 (ko)
KR (1) KR102615381B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192363B (zh) * 2023-04-26 2023-07-11 中新宽维传媒科技有限公司 基于文字信息的可听化处理方法、装置、介质和计算设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160002697A (ko) * 2013-03-04 2016-01-08 톰슨 라이센싱 부분 준동형 암호화 및 마스크들을 이용한 프라이버시-보호 리지 회귀
WO2020233260A1 (zh) * 2019-07-12 2020-11-26 之江实验室 一种基于同态加密的隐私保护多机构数据分类方法
KR20210092699A (ko) * 2020-01-16 2021-07-26 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 분류모델의 트레이닝과 사용방법, 장치, 기기, 매체 및 프로그램
CN113179223A (zh) * 2021-04-23 2021-07-27 中山大学 一种基于深度学习和序列化特征的网络应用识别方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160002697A (ko) * 2013-03-04 2016-01-08 톰슨 라이센싱 부분 준동형 암호화 및 마스크들을 이용한 프라이버시-보호 리지 회귀
WO2020233260A1 (zh) * 2019-07-12 2020-11-26 之江实验室 一种基于同态加密的隐私保护多机构数据分类方法
KR20210092699A (ko) * 2020-01-16 2021-07-26 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 분류모델의 트레이닝과 사용방법, 장치, 기기, 매체 및 프로그램
CN113179223A (zh) * 2021-04-23 2021-07-27 中山大学 一种基于深度学习和序列化特征的网络应用识别方法及系统

Also Published As

Publication number Publication date
KR102615381B1 (ko) 2023-12-19
US20230081162A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
CN105122721B (zh) 用于管理针对加密数据的托管安全计算的方法和系统
US10778409B2 (en) Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
CN110753926B (zh) 用于数据加密的方法、系统和计算机可读存储介质
JP5762232B2 (ja) プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム
KR102393942B1 (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
US20220029783A1 (en) Operating device and method using multivariate packing
JP7361928B2 (ja) 勾配ブースティングを介したプライバシーを守る機械学習
KR102615381B1 (ko) 동형 암호를 활용한 사적 변수의 보안 방법 및 장치
Ciucanu et al. Secure cumulative reward maximization in linear stochastic bandits
JP2023179681A (ja) 同型暗号文に対する非多項式演算を行う方法
US11700110B2 (en) Approximate algebraic operations for homomorphic encryption
KR20240004830A (ko) 완전 동형 암호화에서 사용하기 위한 블라인드 회전
EP4087177A1 (en) Blind rotation for use in fully homomorphic encryption
KR102633416B1 (ko) 동형 암호를 활용한 사적 변수의 보안 방법 및 장치
Alex et al. Energy Efficient and Secure Neural Network–based Disease Detection Framework for Mobile Healthcare Network
KR20200099957A (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
KR102257779B1 (ko) 다자간 계산을 위한 유사 보간
KR102393941B1 (ko) 근사 암호화된 암호문에 대한 인코딩 또는 디코딩
US20240163076A1 (en) Apparatus for calculating matrix multiplication of homomorphic encryption and method thereof
US20220021535A1 (en) Identity-based encryption method based on lattices
KR101831324B1 (ko) 사용자의 선호도를 예측하여 정보를 제공하는 전자장치 및 그 제어방법
KR20240018490A (ko) 완전 동형 평가를 위한 컴퓨테이셔널 네트워크 인코딩
Abdolmaleki et al. Homomorphic Encrypted Revenue Management
CN116508288A (zh) 具有改进的数据项表示的全同态密码
KR20210049378A (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