검수요청.png검수요청.png

"동형암호"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(특징)
5번째 줄: 5번째 줄:
  
 
== 등장 배경 ==
 
== 등장 배경 ==
기업들은 개인정보 특히, 비밀번호, 생체정보와 같이 민감성이 높은 중요한 정보들을 안전하게 보호하기 위해 암호화하여 저장할 필요가 있다. 최근에는 개인정보에 대한 중요도가 높아지면서 법률에서 암호화를 요구하는 항목 외에도 더 넓은 범위의 개인정보들을 암호화하여 프라이버시 보호 수준을 높이는 기업들이 많아지고 있다. 이렇게 암호화된 정보들은 비밀키를 사용하여 복호화 과정을 거쳐야 한다. 이러한 부분은 데이터 활용에 있어서 여러가지 문제를 발생시킨다. 구체적으로 언급하자면 복호화 과정속에는 기술적. 비용적 부분이 포함되며 복호화 시 사용되는 비밀키의 안전에 따른 제약이 발생하기도 한다. 이러한 제약들을 해결하기 위해 암호화된 상태를 유지한 채, 저장된 데이터를 복호화 하지 않고 사용할 수 있는 동형 암호 기술이 주목을 받기 시작했다.<ref name="개인정보보호"></ref>
+
암호화는 데이터의 보안에 필수이지만, 기존의 암호화 기술은 암호화된 상태에서 연산, 탐색, 분석 등의 작업이 불가능했다. 기존의 암호화는 평문을 복호화키가 없이는 난수와 구별할 수 없는 문자열로 변환하는 것을 목표로 하므로 암호문을 가지고 의미있는 작업을 수행하는 것은 불가능하였다. 이와 달리 Rivest, Addleman and Dertouzous (1978)에 의해 제안된 동형암호는 암호화된 상태에서도 복호화키 없이 평문의 연산을 수행할 수 있어서 이상적인 암호로 여겨졌으나, 그 안전성에 대해서는 Gentry가 처음으로 안전한 동형암호를 제시한 2009년전까지 30여 년간 미해결 문제였다. Gentry (2009)는 그의 논문에서 정수론과 격자분야의 난제에 기반을 둔 동형암호를 설계하였고 그 안전성이 난제로 환원됨을 증명하였는데, 처음에는 매우 비효율적이었다. 그러나 그 후 많은 연구자들의 개선을 거치면서 동형암호기술은 최근에 들어 실용화를 앞두고 있으며 2011년 MIT Technical Review에서 10대 Emerging Technology로도 선정이 되는 등 IT전반에 큰 이슈가 되고 있다.<ref name ="pdf">천정희, 어윤희, 김재윤, 〈[file:///C:/Users/C620/Downloads/20180309142717_PK.pdf 개인정보가 보호되는 동형암호기반 금융데이터분석]〉, 《금융정보연구》, 2019-02-28</ref>
  
 
== 특징 ==
 
== 특징 ==
30번째 줄: 30번째 줄:
 
* '''장단점'''
 
* '''장단점'''
 
: 동형암호는 높은 보안성으로 인해 해커의 데이터 유출을 원천 봉쇄한다는 장점이 있다. 하지만 실제 동형암호는 훨씬 복잡하여 평문연산에 비해 속도가 수십배 느리고 저장공간은 수백배를 차지하는 단점이 있다.<ref>Mr산타, 〈[https://blog.naver.com/santa_ye/221403617208 동형암호]〉, 《네이버 블로그》, 2018-11-22</ref>
 
: 동형암호는 높은 보안성으로 인해 해커의 데이터 유출을 원천 봉쇄한다는 장점이 있다. 하지만 실제 동형암호는 훨씬 복잡하여 평문연산에 비해 속도가 수십배 느리고 저장공간은 수백배를 차지하는 단점이 있다.<ref>Mr산타, 〈[https://blog.naver.com/santa_ye/221403617208 동형암호]〉, 《네이버 블로그》, 2018-11-22</ref>
 +
 +
* '''성능비교'''
 +
: {| class="wikitable" width=600 style="color:balck; text-align: center; background-color:#F8F9FA;"
 +
!  || 공개키<br>크기 || 암호문<br>크기 || 평문<br>크기 || 암호화<br>시간 || 복호화<br>시간 || 덧셈<br>시간 || 곱셈<br>시간 || 허용<br>depth || 안전성
 +
|-
 +
! RSA
 +
| 2048bit || 2048bit || - || 6.1ms || 205.5ms || - || - || - || -
 +
|-
 +
! ECC
 +
| 193bit || 80B || - || 8.7ms || 18.1ms || - || - || - || -
 +
|-
 +
! Helib
 +
| 343KB || 105KB || ≤1KB || 17ms || 6ms || 0.6ms || 54.3ms || 6 || 128bit
 +
|-
 +
! SEAL2.4v
 +
| 2000KB || 224KB || ≤1KB || 5.9ms || 1.6ms || 0.2ms || 24ms || 9 || 128bit
 +
|-
 +
! HEAAN
 +
| 80KB || 96KB || 16KB || 43ms || 12ms || 5ms || 100ms || 6 || 128bit
 +
|-
 +
|}<ref name ="pdf"></ref>
 +
 +
== 종류 ==
 +
평문 <math>m_1</math>, <math>m_2</math>에 대한 암호문 <math>c_1</math>, <math>c_2</math>가 주어졌을 때 <math>m_1+m_2</math>의 암호문을 만드는 문제를 생각할 때, 이 암호에 대한 비밀키를 가지고 있으면 암호문 <math>c_1</math>, <math>c_2</math>를 복호화하여 평문 <math>m_1</math>, <math>m_2</math>를 얻고 이를 더한 후 다시 암호화하여 <math>m_1+m_2</math>의 암호문을 계산할 수 있다. 동형암호에서는 이 과정을 비밀키 없이 수행할 수 있으며, 덧셈뿐 아니라 곱셈도 수행할 수 있고 더 나아가 컴퓨터가 하는 모든 연산을 복호화 없이 수행할 수 있다. 실제 컴퓨터가 하는 모든 연산은 and, or, not 등의 논리연산의 합성으로 이루어져 있으므로 이들 세 가지 논리연산만 암호화한 상태에서 수행할 수 있으면 이를 반복하여 임의의 연산을 암호화한 상태에서 수행할 수 있다. 이에 반해 암호화한 상태에서 일부 연산만 수행할 수 있는 암호를 [[부분동형암호]](partial homomorphic encryption)이라고 하는데 유한체 위의 ElGamal암호가 곱셈만 가능한 [[곱셈동형암호]](multiplicative homomorphic encryption)이고 Okamoto-Uchiyama암호, Pailler암호가 대표적으로 덧셈만 보호하는 [[덧셈동형암호]](additive homomorphic encryption)이다. 다만 Gentry가 제안한 동형함호는 제한된 횟수의 연산만을 수행할 수 있었는데, 이는 어느 정도의 연산을 수행하고 나면 암호문 안에 들어있는 잡음(noise)이 커져서 평문이 훼손되기 때문이다. 만일 이 잡음이 큰 암호문을 평문을 유지하면서 잡음이 작은 새로운 암호문으로 바꿀 수 있으면 다시 연산을 지속할 수 있게 되는데 이러한 과정을 재부팅(bootstrapping)이라 한다. (물론 복호화키 없이 수행하여야 한다.) 이 재부팅 과정이 허용되는 암호는 무한한 회수의 연산도 가능하게 되며 이렇게 임의의 연산을 무한히 계속 할 수 있는 암호를 [[완전동형암호]](fully homomorphic encryption)라고 부른다. 이에 반해 제한된 회수의 연산만 수행할 수 있는 암호는 [[제한동형암호]](somewhat homomorphic encryption)라 부른다. [[완전동형암호]]는 암호화된 상태의 데이터에 대해서도 컴퓨터로 할 수 있는 모든 연산을 원하는 대로 수행할 수 있으므로 검색이나 통계적인 분석뿐 아니라 기계학습이나 영상처리 등 매우 복잡한 연산에도 적용할 수 있다. 개인정보를 기반으로 한 기계학습의 경우 암호화된 데이터 상에서 분석을 수행하고 분석결과를 확인하는 마지막 단계에서만 복호화하여 개인정보 열람을 최소화할 수 있다. [[완전동형암호]]는 컴퓨터가 하는 모든 연산을 암호화한 상태로도 수행할 수 있는 이론적 강점이 있는 반면 평문 연산에 비해 암호문 연산의 효율성에서는 떨어진다는 단점이 있다. 그러나 응용 연산의 종류에 따라 속도의 차이가 크기 때문에 개별 연산에 대해 최적화하여 적용하는 방법으로 효율성을 높일 수 있다. 또한 동형암호 연구가 아직 초기단계이므로 알고리즘의 개발에 따라 효율이 크게 향상될 여지가 있다. 예를 들면, 동형암호 연산 중에 가장 비효율적인 재부팅시간이 2011년도에는 30분이었던 것이 2013년에는 0.32초, 2015년에는 0.02초까지 계산속도가 빠르게 개선되고 있다.<ref name ="pdf"></ref>
 +
  
 
== 전망 ==
 
== 전망 ==
40번째 줄: 65번째 줄:
 
* 과학기술정보통신부, 〈[https://blog.naver.com/with_msip/221517757125 4세대 암호, '동형암호'를 소개합니다!]〉, 《네이버 블로그》, 2019-04-19
 
* 과학기술정보통신부, 〈[https://blog.naver.com/with_msip/221517757125 4세대 암호, '동형암호'를 소개합니다!]〉, 《네이버 블로그》, 2019-04-19
 
* 기술사를위해, 〈[https://blog.naver.com/bi1189/221528341879 동형암호]〉, 《네이버 블로그》, 2019-05-03
 
* 기술사를위해, 〈[https://blog.naver.com/bi1189/221528341879 동형암호]〉, 《네이버 블로그》, 2019-05-03
* IMDARC, 〈[http://imdarc.math.snu.ac.kr/board_apmJ27/3058 암호기술 혁명 - 동형암호]〉, 《IMDARC》, 2018-10-26<
+
* IMDARC, 〈[http://imdarc.math.snu.ac.kr/board_apmJ27/3058 암호기술 혁명 - 동형암호]〉, 《IMDARC》, 2018-10-26
 +
* 천정희, 어윤희, 김재윤, 〈[file:///C:/Users/C620/Downloads/20180309142717_PK.pdf 개인정보가 보호되는 동형암호기반 금융데이터분석]〉, 《금융정보연구》, 2019-02-28
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2019년 8월 5일 (월) 10:15 판

동형암호(Homomorphic Encryption;HE)는 암호화된 데이터를 복호화 없이도 연산할 수 있는 암호 기술이다. 암호화된 상태에서 연산한 결과 값을 복호화하면 평문 상태의 데이터를 연산한 결과와 동일한 값을 얻을 수 있게 된다. 이렇게 암호화한 상태에서나 하지 않은 상태에서 분석한 결과물의 형태가 같다는 의미에서 동형이라고 한다.[1]

개요

동형암호는 정보를 암호화한 상태에서 각종 연산을 했을 때, 그 결과가 암호화하지 않은 상태의 연산 결과와 동일하게 나오는 4세대 암호체계를 말한다. 동형암호는 튜링완전성을 갖는다. 이로부터 통계처리뿐만 아니라 검색, 기계학습까지 가능하다. 동형암호는 데이터를 사용하는 환경에 키가 저장되지 않는다. 키를 함께 제공하지 않고 암호화한 상태의 데이터만 맡겨 계산을 할 수 있게 해줌으로써 보안을 높여 해커의 데이터 유출을 막을 수 있다. 암호화한 상태에서나 하지 않은 상태에서 분석한 결과물의 형태가 같다는 의미에서 '동형(同型)'이라는 이름이 붙었다.[2][3]

등장 배경

암호화는 데이터의 보안에 필수이지만, 기존의 암호화 기술은 암호화된 상태에서 연산, 탐색, 분석 등의 작업이 불가능했다. 기존의 암호화는 평문을 복호화키가 없이는 난수와 구별할 수 없는 문자열로 변환하는 것을 목표로 하므로 암호문을 가지고 의미있는 작업을 수행하는 것은 불가능하였다. 이와 달리 Rivest, Addleman and Dertouzous (1978)에 의해 제안된 동형암호는 암호화된 상태에서도 복호화키 없이 평문의 연산을 수행할 수 있어서 이상적인 암호로 여겨졌으나, 그 안전성에 대해서는 Gentry가 처음으로 안전한 동형암호를 제시한 2009년전까지 30여 년간 미해결 문제였다. Gentry (2009)는 그의 논문에서 정수론과 격자분야의 난제에 기반을 둔 동형암호를 설계하였고 그 안전성이 난제로 환원됨을 증명하였는데, 처음에는 매우 비효율적이었다. 그러나 그 후 많은 연구자들의 개선을 거치면서 동형암호기술은 최근에 들어 실용화를 앞두고 있으며 2011년 MIT Technical Review에서 10대 Emerging Technology로도 선정이 되는 등 IT전반에 큰 이슈가 되고 있다.[4]

특징

  • 동형암호의 원리
동형암호화는 복호화 하지 않고 데이터를 분석할 수 있는 암호화이다.
동형암호의 원리
  • 특성
서킷 프라이버시 서킷 프라이버시는 연산 진행 시 연산에 대한 정보를 알지 못하는 성질이다.
다중 도약 동형성 다중 도약 동형성은 생성된 암호문이 다른 동형 연산의 입력으로 사용이 가능한 성질이다.
보안성 보안성은 암호화된 형태로 연산이 진행되어 해킹 차단할 수 있는 성질을 말한다.
[5]
  • 격자기반암호
동형암호는 암호체계 중 높은 난이도를 가졌다고 언급되는 격자기반암호(lattice problem)의 한 종류이다. 3차원까지는 인간의 머릿속에서 이미지를 그릴수 있지만 4차원부터는 오직 수식으로만 표현이 가능하다. 수백 차원의 격자 위의 임의의 위치에서 가장 가까운 점을 찾기가 어렵다는 것을 근거로 하여 동형암호는 계산되는데 엄청난 시간이 필요하고 양자 컴퓨터도 찾아내기 힘들다. 그로 인해 동형암호는 양자컴퓨팅의 보안방법 중 하나로 주목받고 있다.[2]
  • 장단점
동형암호는 높은 보안성으로 인해 해커의 데이터 유출을 원천 봉쇄한다는 장점이 있다. 하지만 실제 동형암호는 훨씬 복잡하여 평문연산에 비해 속도가 수십배 느리고 저장공간은 수백배를 차지하는 단점이 있다.[6]
  • 성능비교
공개키
크기
암호문
크기
평문
크기
암호화
시간
복호화
시간
덧셈
시간
곱셈
시간
허용
depth
안전성
RSA 2048bit 2048bit - 6.1ms 205.5ms - - - -
ECC 193bit 80B - 8.7ms 18.1ms - - - -
Helib 343KB 105KB ≤1KB 17ms 6ms 0.6ms 54.3ms 6 128bit
SEAL2.4v 2000KB 224KB ≤1KB 5.9ms 1.6ms 0.2ms 24ms 9 128bit
HEAAN 80KB 96KB 16KB 43ms 12ms 5ms 100ms 6 128bit
[4]

종류

평문 , 에 대한 암호문 , 가 주어졌을 때 의 암호문을 만드는 문제를 생각할 때, 이 암호에 대한 비밀키를 가지고 있으면 암호문 , 를 복호화하여 평문 , 를 얻고 이를 더한 후 다시 암호화하여 의 암호문을 계산할 수 있다. 동형암호에서는 이 과정을 비밀키 없이 수행할 수 있으며, 덧셈뿐 아니라 곱셈도 수행할 수 있고 더 나아가 컴퓨터가 하는 모든 연산을 복호화 없이 수행할 수 있다. 실제 컴퓨터가 하는 모든 연산은 and, or, not 등의 논리연산의 합성으로 이루어져 있으므로 이들 세 가지 논리연산만 암호화한 상태에서 수행할 수 있으면 이를 반복하여 임의의 연산을 암호화한 상태에서 수행할 수 있다. 이에 반해 암호화한 상태에서 일부 연산만 수행할 수 있는 암호를 부분동형암호(partial homomorphic encryption)이라고 하는데 유한체 위의 ElGamal암호가 곱셈만 가능한 곱셈동형암호(multiplicative homomorphic encryption)이고 Okamoto-Uchiyama암호, Pailler암호가 대표적으로 덧셈만 보호하는 덧셈동형암호(additive homomorphic encryption)이다. 다만 Gentry가 제안한 동형함호는 제한된 횟수의 연산만을 수행할 수 있었는데, 이는 어느 정도의 연산을 수행하고 나면 암호문 안에 들어있는 잡음(noise)이 커져서 평문이 훼손되기 때문이다. 만일 이 잡음이 큰 암호문을 평문을 유지하면서 잡음이 작은 새로운 암호문으로 바꿀 수 있으면 다시 연산을 지속할 수 있게 되는데 이러한 과정을 재부팅(bootstrapping)이라 한다. (물론 복호화키 없이 수행하여야 한다.) 이 재부팅 과정이 허용되는 암호는 무한한 회수의 연산도 가능하게 되며 이렇게 임의의 연산을 무한히 계속 할 수 있는 암호를 완전동형암호(fully homomorphic encryption)라고 부른다. 이에 반해 제한된 회수의 연산만 수행할 수 있는 암호는 제한동형암호(somewhat homomorphic encryption)라 부른다. 완전동형암호는 암호화된 상태의 데이터에 대해서도 컴퓨터로 할 수 있는 모든 연산을 원하는 대로 수행할 수 있으므로 검색이나 통계적인 분석뿐 아니라 기계학습이나 영상처리 등 매우 복잡한 연산에도 적용할 수 있다. 개인정보를 기반으로 한 기계학습의 경우 암호화된 데이터 상에서 분석을 수행하고 분석결과를 확인하는 마지막 단계에서만 복호화하여 개인정보 열람을 최소화할 수 있다. 완전동형암호는 컴퓨터가 하는 모든 연산을 암호화한 상태로도 수행할 수 있는 이론적 강점이 있는 반면 평문 연산에 비해 암호문 연산의 효율성에서는 떨어진다는 단점이 있다. 그러나 응용 연산의 종류에 따라 속도의 차이가 크기 때문에 개별 연산에 대해 최적화하여 적용하는 방법으로 효율성을 높일 수 있다. 또한 동형암호 연구가 아직 초기단계이므로 알고리즘의 개발에 따라 효율이 크게 향상될 여지가 있다. 예를 들면, 동형암호 연산 중에 가장 비효율적인 재부팅시간이 2011년도에는 30분이었던 것이 2013년에는 0.32초, 2015년에는 0.02초까지 계산속도가 빠르게 개선되고 있다.[4]


전망

동형암호는 의료 분야, 금융분야 뿐만 아니라 블록체인양자컴퓨팅 분야에 활용할 수 있을 것으로 예상된다. 블록체인은 연산 과정을 모두 파악할 수 있다는 특성이 있어 민감한 개인정보를 다루기 어려웠는데 동형 암호 기술을 활용한다면 효용성이 매우 상승할 것으로 기대된다. 또한 클라우드 기반 데이터 분선을 가능하게 하여 데이터를 활용하는 분야에 유용한 정보를 제공할 수 있을 것으로 전망된다.[2]

각주

  1. 개인정보보호, 〈안전한 개인정보 활용을 위한 동형 암호〉, 《네이버 블로그》, 2019-02-08
  2. 2.0 2.1 2.2 과학기술정보통신부, 〈4세대 암호, '동형암호'를 소개합니다!〉, 《네이버 블로그》, 2019-04-19
  3. IMDARC, 〈암호기술 혁명 - 동형암호〉, 《IMDARC》, 2018-10-26
  4. 4.0 4.1 4.2 천정희, 어윤희, 김재윤, 〈[file:///C:/Users/C620/Downloads/20180309142717_PK.pdf 개인정보가 보호되는 동형암호기반 금융데이터분석]〉, 《금융정보연구》, 2019-02-28
  5. 기술사를위해, 〈동형암호〉, 《네이버 블로그》, 2019-05-03
  6. Mr산타, 〈동형암호〉, 《네이버 블로그》, 2018-11-22

참고 자료

같이 보기


  검수요청.png검수요청.png 이 동형암호 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.