동형 암호 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:암호학]]
[[분류:암호학]][[분류:개인정보보호]][[분류:데이터 과학]]
[[분류:개인정보보호]]
[[분류:데이터 과학]]
 
;Homomorphic Encryption
;Homomorphic Encryption
;데이터를 암호화한 채로 연산할 수 있는 암호화 기법
;데이터를 암호화한 채로 연산할 수 있는 암호화 기법


==개념==
== 개념 ==
[[파일:동형암호.png|500px]]
[[파일:동형암호.png|500px]]


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


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


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


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


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


==각주==
== 같이 보기 ==
<references />
* [[PPDM]]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)