동형 암호: Difference between revisions

From IT Wiki
No edit summary
No edit summary
Line 1: Line 1:
[[분류:암호학]][[분류:개인정보보호]][[분류:데이터 과학]]
[[분류:암호학]]
[[분류:개인정보보호]]
[[분류:데이터 과학]]
 
;Homomorphic Encryption
;Homomorphic Encryption
;데이터를 암호화한 채로 연산할 수 있는 암호화 기법
;데이터를 암호화한 채로 연산할 수 있는 암호화 기법


== 개념 ==
==개념==
[[파일:동형암호.png|500px]]
[[파일:동형암호.png|500px]]
동형암호 개념은 Rivest, Adleman, and Dertouzos에 의해 1978년 제시되고, IBM의 연구원인 Craig Gentry에 의해 2009년 격자 기반 암호화를 사용하는 완전한 동형암(FHE)를 위한 구조가 최초로 제시되었다.<ref>완전동형암호 기술 및 표준 동향(나재훈 한국전자통신연구원 전문위원, 2021.9.)</ref>


== 특징 ==
* 동형암호 개념은 Rivest, Adleman, and Dertouzos에 의해 1978년 제시
* 데이터를 복호화하지 않음로 원본 데이터 유출 원천 차단 가능
* IBM의 연구원인 Craig Gentry에 의해 2009년 격자 기반 암호화를 사용하는 완전한 동형암호(FHE)를 위한 구조가 최초로 제시<ref>완전동형암호 기술 및 표준 동향(나재훈 한국전자통신연구원 전문위원, 2021.9.)</ref>
* 개인정보 비식별 조치와 달리 원본 데이터의 손실이 거의 없음
 
** 개인정보나 민감한 데이터를 대상으로 한 분석에 효과적([[PPDM]] 실현)
==특징==
* 데이터의 무결성을 보장하지 않으며 가단성(Malleability)을 제공
 
*데이터를 복호화하지 않음로 원본 데이터 유출 원천 차단 가능
*개인정보 비식별 조치와 달리 원본 데이터의 손실이 거의 없음
**개인정보나 민감한 데이터를 대상으로 한 분석에 효과적([[PPDM]] 실현)
*데이터의 무결성을 보장하지 않으며 가단성(Malleability)을 제공
 
==동형암호의 한계==
 
*연산 시 마다 암호문에 Noise가 발생하여 복잡한 계산이 불가
**Noise가 한계치를 넘으면 복호화 불가
**Bootstrap 기법을 통해 중도에 복호화하여 Noise를 제거하는 방향으로 연구 중
**Bootstrap 사용 시 연산 속도가 느려지고 계산 결과에 오차가 생기는 문제 발생
*현재 Noise 발생을 줄이거나 Bootstrapping을 효율적으로 수행하는 방법 연구 중
 
==동형암호의 분류==
===세대 구분===
 
*1세대: 곱셈, 덧셈 등 일부 연산만 가능
*2세대: 전체 사칙연산 가능. 성능상의 한계 존재
*3세대: 모든 연산 가능, 실무에 적용 가능한 효율성
 
===기능에 따른 구분===


== 동형암호의 한계 ==
*'''부분동형암호(Partial Homomorphic Encryption)'''
* 연산 시 마다 암호문에 Noise가 발생하여 복잡한 계산이 불가
**연산의 종류 제한
** Noise가 한계치를 넘으면 복호화 불가
**예) 덧셈이나 곱셈만 가능
** Bootstrap 기법을 통해 중도에 복호화하여 Noise를 제거하는 방향으로 연구 중
*'''준동형암호(Somewhat Homomorphic Encryption)'''
** Bootstrap 사용 시 연산 속도가 느려지고 계산 결과에 오차가 생기는 문제 발생
**연산 횟수 제한
* 현재 Noise 발생을 줄이거나 Bootstrapping을 효율적으로 수행하는 방법 연구 중
**예) 사칙연산 모두 가능하지만 연산이 반복될 경우 데이터 길이가 기하급수적으로 증가
*완전동형암호(Fully Homomorphic Encryption)
**연산의 종류나 횟수의 제한이 없음
**부트스트래핑, 스쿼싱, 근사값 계산 이용


== 동형암호의 분류 ==
==구현 모델==
=== 세대 구분 ===
* 1세대: 곱셈, 덧셈 등 일부 연산만 가능
* 2세대: 전체 사칙연산 가능. 성능상의 한계 존재
* 3세대: 모든 연산 가능, 실무에 적용 가능한 효율성


=== 기능에 따른 구분 ===
*'''[[엘가말]]'''
* 부분동형암호(Partial Homomorphic Encryption)
*'''[[HELib]]''': IBM에서 개발
** 연산의 종류 제한
**CKKS 및 BGV 체계와 부트스트랩을 지원
** 예) 덧셈이나 곱셈만 가능
**Slot 단위로 평문을 나누어 연산 처리
* 준동형암호(Somewhat Homomorphic Encryption)
**비트 단위 이동연산자 지원
** 연산 횟수 제한
*'''[[SEAL]]''': [[마이크로소프트]]에서 개발
** 예) 사칙연산이 모두 가능하지만 연산이 반복될 경우 데이터 길이가 기하급수적으로 증가
**BFV 및 CKKS 스킴을 지원
* 완전동형암호(Fully Homomorphic Encryption)
**정수의 덧셈, 곱셈 연산을 지원
** 연산의 종류나 횟수의 제한이 없음
**부트스트래핑을 수행하지 않음
** 부트스트래핑, 스쿼싱, 근사값 계산 이용
*[[혜안|'''혜안(HeaAn)''']]: 서울대학교 천정희 교수 개발
**고정 소수점 근사 산술을 기본적으로 지원하는 CKKS 스킴을 구현
**근사계산법을 사용하여 성능을 월등히 향상
*'''PALISADE''': DARPA 자금을 지원받는 방위 계약 업체 컨소시엄에서 개발
**BGV, BFV, CKKS, TFHE 및 FHEW와 같은 여러 동형 암호화 체계 지원
*'''Λ○λ'''('LOL'이라고 발음)
**FHE를 지원하는 링 기반 격자 암호화를 위한 Haskell 라이브러리
*'''NFLlib''': 유럽 HEAT 프로젝트의 파생 결과
**저수준 프로세서 프리미티브를 사용하여 고성능 동형 암호화 탐색을 목적으로 개발
*'''Lattigo'''
**Go로 작성된 격자 기반 암호화 라이브러리
*'''Concrete'''
**TFHE 스킴의 사용자 맞춤을 지원하는 라이브러리


== 구현 모델 ==
==같이 보기==
* [[엘가말]]
* [[HELib]]: IBM에서 개발
** CKKS 및 BGV 체계와 부트스트랩을 지원
** Slot 단위로 평문을 나누어 연산 처리
** 비트 단위 이동연산자 지원
* [[SEAL]]: [[마이크로소프트]]에서 개발
** BFV 및 CKKS 스킴을 지원
** 정수의 덧셈, 곱셈 연산을 지원
** 부트스트래핑을 수행하지 않음
* [[혜안|혜안(HeaAn)]]: 서울대학교 천정희 교수 개발
** 근사계산법을 사용하여 성능을 월등히 높였다.


== 같이 보기 ==
*[[PPDM]]
* [[PPDM]]
*[[차분 프라이버시]]
* [[차분 프라이버시]]


== 각주 ==
==각주==
<references />

Revision as of 10:37, 23 September 2021


Homomorphic Encryption
데이터를 암호화한 채로 연산할 수 있는 암호화 기법

개념

동형암호.png

  • 동형암호 개념은 Rivest, Adleman, and Dertouzos에 의해 1978년 제시
  • IBM의 연구원인 Craig Gentry에 의해 2009년 격자 기반 암호화를 사용하는 완전한 동형암호(FHE)를 위한 구조가 최초로 제시[1]

특징

  • 데이터를 복호화하지 않음로 원본 데이터 유출 원천 차단 가능
  • 개인정보 비식별 조치와 달리 원본 데이터의 손실이 거의 없음
    • 개인정보나 민감한 데이터를 대상으로 한 분석에 효과적(PPDM 실현)
  • 데이터의 무결성을 보장하지 않으며 가단성(Malleability)을 제공

동형암호의 한계

  • 연산 시 마다 암호문에 Noise가 발생하여 복잡한 계산이 불가
    • Noise가 한계치를 넘으면 복호화 불가
    • Bootstrap 기법을 통해 중도에 복호화하여 Noise를 제거하는 방향으로 연구 중
    • Bootstrap 사용 시 연산 속도가 느려지고 계산 결과에 오차가 생기는 문제 발생
  • 현재 Noise 발생을 줄이거나 Bootstrapping을 효율적으로 수행하는 방법 연구 중

동형암호의 분류

세대 구분

  • 1세대: 곱셈, 덧셈 등 일부 연산만 가능
  • 2세대: 전체 사칙연산 가능. 성능상의 한계 존재
  • 3세대: 모든 연산 가능, 실무에 적용 가능한 효율성

기능에 따른 구분

  • 부분동형암호(Partial Homomorphic Encryption)
    • 연산의 종류 제한
    • 예) 덧셈이나 곱셈만 가능
  • 준동형암호(Somewhat Homomorphic Encryption)
    • 연산 횟수 제한
    • 예) 사칙연산 모두 가능하지만 연산이 반복될 경우 데이터 길이가 기하급수적으로 증가
  • 완전동형암호(Fully Homomorphic Encryption)
    • 연산의 종류나 횟수의 제한이 없음
    • 부트스트래핑, 스쿼싱, 근사값 계산 이용

구현 모델

  • 엘가말
  • HELib: IBM에서 개발
    • CKKS 및 BGV 체계와 부트스트랩을 지원
    • Slot 단위로 평문을 나누어 연산 처리
    • 비트 단위 이동연산자 지원
  • SEAL: 마이크로소프트에서 개발
    • BFV 및 CKKS 스킴을 지원
    • 정수의 덧셈, 곱셈 연산을 지원
    • 부트스트래핑을 수행하지 않음
  • 혜안(HeaAn): 서울대학교 천정희 교수 개발
    • 고정 소수점 근사 산술을 기본적으로 지원하는 CKKS 스킴을 구현
    • 근사계산법을 사용하여 성능을 월등히 향상
  • PALISADE: DARPA 자금을 지원받는 방위 계약 업체 컨소시엄에서 개발
    • BGV, BFV, CKKS, TFHE 및 FHEW와 같은 여러 동형 암호화 체계 지원
  • Λ○λ('LOL'이라고 발음)
    • FHE를 지원하는 링 기반 격자 암호화를 위한 Haskell 라이브러리
  • NFLlib: 유럽 HEAT 프로젝트의 파생 결과
    • 저수준 프로세서 프리미티브를 사용하여 고성능 동형 암호화 탐색을 목적으로 개발
  • Lattigo
    • Go로 작성된 격자 기반 암호화 라이브러리
  • Concrete
    • TFHE 스킴의 사용자 맞춤을 지원하는 라이브러리

같이 보기

각주

  1. 완전동형암호 기술 및 표준 동향(나재훈 한국전자통신연구원 전문위원, 2021.9.)