동형암호화와 블록체인의 개인정보보호

김병하
None
Published in
5 min readSep 17, 2018

본 포스팅은 2018 업비트 개발자 컨퍼런스에서 천정희 서울대학교 교수님께서 강연하신 Approximate Homomorphic Encryption and Privacy Preserving Machine Learning을 기반으로 한 내용입니다.

안녕하세요. 휴먼스케이프의 개발자 김병하입니다.

블록체인은 기본적으로 모든 정보를 공개하여 신뢰성을 확보하는 방식입니다. 블록체인 상에서 이루어지는 모든 연산과 정보는 모든 노드들에게 공개되며, 정보가 모두에게 공개하여 누구나 그 정당성을 확인할 수 있도록하여, 신뢰성을 확보하는 기술입니다.

그렇기 때문에 블록체인상에서 개인정보보호는 중요한 문제가 됩니다. 한 번의 거래로 상대방에게 내 지갑에 있는 잔액 뿐 아니라 이전에 있었던 모든 거래의 이력이 공개될 수 있고, 만약 거래 외에도 의료 데이터와 같은 중요한 정보가 블록체인에 올라가게 된다면 문제가 발생하게 됩니다.

이런 문제를 해결하는 하나의 방법으로 제시된 것이 동형암호화 기술입니다.

동형 암호화란 간단히 말해서 암호화된 정보로 연산을 진행하는 것입니다. 동형암호화를 사용하는 방법을 간단히 개념적으로 설명드리자면 이렇습니다. 두 숫자 a 와 b 의 덧셈 연산을 해서 c가 나온다고 생각해보겠습니다. 그런데 더하기 연산은 그대로 하되, a와 b와 c를 외부에 공개하고 싶지 않다면 어떻게 해야 할까요? 그러기 위해서 a 와 b 를 암호화해서 덧셈 연산을 진행했습니다. 암호화한 결과가 a는 A, b는 B, c는 C라고 생각해보죠. 그렇다면 연산 식은 A + B = C 가 될 것입니다. 이 암호화된 연산의 결과를 복호화했을 때 우리가 원하는 연산 결과인 c가 나온다면 외부에 데이터는 전혀 공개하지 않고 연산을 진행할 수 있습니다. 이 때 A + B = C 를 복호화한 값이 우리가 원하는 c 가 되는 성격이 바로 동형 암호화 성질입니다.

우리가 자주 사용하는 암호화 알고리즘은 사실 동형 암호 성질을 만족합니다. 기본적으로 암호화는 나머지 연산을 사용합니다. Enc() 가 암호화하는 함수라고 생각하고 Dec() 가 복호화하는 함수라고 생각하면 Enc(m)은 아주 간단하게 생각해서 암호화하는 과정은 Enc(m) = m + pq로 복호화하는 과정은 Enc(m) % p = (m + pq) % p = m 이렇게 볼 수 있습니다. 위의 a + b = c 의 예를 들어 보면 Enc(a) + Enc(b) = a + pq + b + pq = C 로 이 C 를 복호화하면 우리가 원하는 값인 c 가 나옵니다. Dec(C) = (a + pq + b + pq) % p = c

아주 쉬운 것 같지만 문제가 있습니다.

하나는 암호화를 진행하면 데이터가 아주 커진다는 것입니다.

암호화한 결과가 암호화하기 전보다 더 많은 비트를 차지하며 이 비트량은 암호화 방식의 취약점이 발견될 때마다 증가하고 있습니다. 더 많은 비트량은 단순히 저장 공간이 커지는 문제 뿐 아니라 연산 시간이 증가하는 문제도 가지고 있습니다. 현재로선 1000배 가까이 느려진다고 합니다. 가뜩이나 공간이 부족하고 계산이 오래 걸리는 블록체인에서는 적용하기 힘든 문제입니다.

또 다른 문제는 자리수 문제입니다. 소수점의 곱셈을 생각해보겠습니다. 1.1과 1.2를 곱해보면 1.1 x 1.2 = 1.32 로, 연산 전에는 소수점 두 자리였지만 연산 후에는 소수점 자리수가 증가합니다. 곱셈을 진행할수록 점차 증가하기 때문에 암호화하지 않은 데이터에 대해서는 유효자리수 이하는 반올림을 해서 이 문제를 해결합니다. 하지만 sha와 같은 기존 암호화 방식에서는 암호화한 값에서 반올림하고 복호화한 값이 우리가 원하는 연산 결과와 같다는 것을 보장할 수 없습니다. 즉 반올림을 했기 때문에 Dec(C)가 c가 아니게 될 수 있습니다.

동형 암호는 위와 같은 문제를 해결하면서 암호화된 상태에서 복호화 없이 임의의연산을 수행할 수 있는 새로운 암호기법입니다. 동형암호를 이용하면 개인정보의 유출없이 데이터 분석을 수행할수 있어 최근 문제가 되고 있는 개인정보보호와 빅데이터 분석의 충돌문제를 해결할 최선의 도구로 각광받고 있습니다.

현재까지는 현업에서 사용할 수 있을 정도의 솔루션이 만들어지지 않았지만, 앞으로 블록체인에서 활용할 수 있는 가능성이 많아 보입니다.

감사합니다.

참고
HEAAN
TFHE
homomorphicencryption.org

Get to know us better!
Join our official channels below.

Telegram(EN) : t.me/Humanscape
KakaoTalk(KR) : open.kakao.com/o/gqbUQEM
Website : humanscape.io
Medium : medium.com/humanscape-ico
Facebook : www.facebook.com/humanscape
Twitter : twitter.com/Humanscape_ICO
Reddit : https://www.reddit.com/r/Humanscape_official
Bitcointalk announcement : https://bit.ly/2rVsP4T
Email : support@humanscape.io

--

--